From a0303ee5ef95977dca3c8dbbe98b287af82c1ddb Mon Sep 17 00:00:00 2001 From: Alex Eftimie Date: Wed, 7 Jun 2023 03:46:41 +0200 Subject: [PATCH 001/372] scaffolder: enable each property on task step (#8890) Signed-off-by: Alex Eftimie --- .../tasks/NunjucksWorkflowRunner.test.ts | 33 +++++++++ .../tasks/NunjucksWorkflowRunner.ts | 70 ++++++++++++++----- plugins/scaffolder-common/src/TaskSpec.ts | 6 +- plugins/scaffolder-node/src/actions/types.ts | 5 ++ 4 files changed, 94 insertions(+), 20 deletions(-) diff --git a/plugins/scaffolder-backend/src/scaffolder/tasks/NunjucksWorkflowRunner.test.ts b/plugins/scaffolder-backend/src/scaffolder/tasks/NunjucksWorkflowRunner.test.ts index 5d4f7b73cc..8fbbd45b94 100644 --- a/plugins/scaffolder-backend/src/scaffolder/tasks/NunjucksWorkflowRunner.test.ts +++ b/plugins/scaffolder-backend/src/scaffolder/tasks/NunjucksWorkflowRunner.test.ts @@ -573,6 +573,39 @@ describe('DefaultWorkflowRunner', () => { }); }); + describe('each', () => { + it('should run a step repeatedly', async () => { + const task = createMockTaskWithSpec({ + apiVersion: 'scaffolder.backstage.io/v1beta3', + steps: [ + { + id: 'test', + name: 'name', + each: '${{parameters.colors}}', + action: 'jest-mock-action', + input: { color: '${{each}}' }, + }, + ], + output: {}, + parameters: { + colors: ['blue', 'green', 'red'], + }, + }); + + await runner.execute(task); + + expect(fakeActionHandler).toHaveBeenCalledWith( + expect.objectContaining({ input: { color: 'blue' } }), + ); + expect(fakeActionHandler).toHaveBeenCalledWith( + expect.objectContaining({ input: { color: 'green' } }), + ); + expect(fakeActionHandler).toHaveBeenCalledWith( + expect.objectContaining({ input: { color: 'red' } }), + ); + }); + }); + describe('secrets', () => { it('should pass through the secrets to the context', async () => { const task = createMockTaskWithSpec( diff --git a/plugins/scaffolder-backend/src/scaffolder/tasks/NunjucksWorkflowRunner.ts b/plugins/scaffolder-backend/src/scaffolder/tasks/NunjucksWorkflowRunner.ts index da690bcb82..e3233483ef 100644 --- a/plugins/scaffolder-backend/src/scaffolder/tasks/NunjucksWorkflowRunner.ts +++ b/plugins/scaffolder-backend/src/scaffolder/tasks/NunjucksWorkflowRunner.ts @@ -76,6 +76,7 @@ type TemplateContext = { entity?: UserEntity; ref?: string; }; + each?: JsonValue; }; const isValidTaskSpec = (taskSpec: TaskSpec): taskSpec is TaskSpecV1beta3 => { @@ -311,25 +312,56 @@ export class NunjucksWorkflowRunner implements WorkflowRunner { const tmpDirs = new Array(); const stepOutput: { [outputName: string]: JsonValue } = {}; - await action.handler({ - input, - secrets: task.secrets ?? {}, - logger: taskLogger, - logStream: streamLogger, - workspacePath, - createTemporaryDirectory: async () => { - const tmpDir = await fs.mkdtemp(`${workspacePath}_step-${step.id}-`); - tmpDirs.push(tmpDir); - return tmpDir; - }, - output(name: string, value: JsonValue) { - stepOutput[name] = value; - }, - templateInfo: task.spec.templateInfo, - user: task.spec.user, - isDryRun: task.isDryRun, - signal: task.cancelSignal, - }); + const iterations = new Array(); + if (step.each) { + const each = await this.render(step.each, context, renderTemplate); + iterations.push(...each); + } else { + iterations.push({}); + } + + let actionInput = input; + for (const iteration of iterations) { + if (step.each) { + taskLogger.info(`Running step each: ${iteration}`); + context.each = iteration; + // re-render input with the modified context that includes each + actionInput = + (step.input && + this.render( + step.input, + { ...context, secrets: task.secrets ?? {} }, + renderTemplate, + )) ?? + {}; + } + await action.handler({ + input: actionInput, + secrets: task.secrets ?? {}, + logger: taskLogger, + logStream: streamLogger, + workspacePath, + createTemporaryDirectory: async () => { + const tmpDir = await fs.mkdtemp( + `${workspacePath}_step-${step.id}-`, + ); + tmpDirs.push(tmpDir); + return tmpDir; + }, + output(name: string, value: JsonValue) { + if (step.each) { + stepOutput[name] = stepOutput[name] || []; + stepOutput[name].push(value); + } else { + stepOutput[name] = value; + } + }, + templateInfo: task.spec.templateInfo, + user: task.spec.user, + isDryRun: task.isDryRun, + signal: task.cancelSignal, + }); + } // Remove all temporary directories that were created when executing the action for (const tmpDir of tmpDirs) { diff --git a/plugins/scaffolder-common/src/TaskSpec.ts b/plugins/scaffolder-common/src/TaskSpec.ts index 7c06fe2b99..6b144b4f78 100644 --- a/plugins/scaffolder-common/src/TaskSpec.ts +++ b/plugins/scaffolder-common/src/TaskSpec.ts @@ -15,7 +15,7 @@ */ import type { EntityMeta, UserEntity } from '@backstage/catalog-model'; -import type { JsonObject, JsonValue } from '@backstage/types'; +import type { JsonArray, JsonObject, JsonValue } from '@backstage/types'; /** * Information about a template that is stored on a task specification. @@ -70,6 +70,10 @@ export interface TaskStep { * When this is false, or if the templated value string evaluates to something that is falsy the step will be skipped. */ if?: string | boolean; + /** + * Run step repeatedly + */ + each?: string | JsonArray; } /** diff --git a/plugins/scaffolder-node/src/actions/types.ts b/plugins/scaffolder-node/src/actions/types.ts index e35f55aa67..7e8c2b4f5f 100644 --- a/plugins/scaffolder-node/src/actions/types.ts +++ b/plugins/scaffolder-node/src/actions/types.ts @@ -71,6 +71,11 @@ export type ActionContext< * Implement the signal to make your custom step abortable https://developer.mozilla.org/en-US/docs/Web/API/AbortController/signal */ signal?: AbortSignal; + + /** + * Optional value of each invocation + */ + each?: JsonObject; }; /** @public */ From e514aac3eac0e3b730d8bef4077f84fb1fcd6303 Mon Sep 17 00:00:00 2001 From: Alex Eftimie Date: Sun, 11 Jun 2023 23:54:41 +0200 Subject: [PATCH 002/372] Add .changeset Signed-off-by: Alex Eftimie --- .changeset/tasty-lamps-shop.md | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 .changeset/tasty-lamps-shop.md diff --git a/.changeset/tasty-lamps-shop.md b/.changeset/tasty-lamps-shop.md new file mode 100644 index 0000000000..5036932816 --- /dev/null +++ b/.changeset/tasty-lamps-shop.md @@ -0,0 +1,7 @@ +--- +'@backstage/plugin-scaffolder-backend': minor +'@backstage/plugin-scaffolder-common': minor +'@backstage/plugin-scaffolder-node': minor +--- + +Introduce `each` property on action steps, allowing them to be ran repeatedly. From 0f58402454bd6a089f0a06741a3afea4cd9c0aed Mon Sep 17 00:00:00 2001 From: Alex Eftimie Date: Mon, 12 Jun 2023 00:08:07 +0200 Subject: [PATCH 003/372] Update docs. Fix tsc Signed-off-by: Alex Eftimie --- .../software-templates/writing-templates.md | 22 +++++++++++++++++++ .../tasks/NunjucksWorkflowRunner.ts | 4 ++-- 2 files changed, 24 insertions(+), 2 deletions(-) diff --git a/docs/features/software-templates/writing-templates.md b/docs/features/software-templates/writing-templates.md index 67bcb6c179..81418faf21 100644 --- a/docs/features/software-templates/writing-templates.md +++ b/docs/features/software-templates/writing-templates.md @@ -495,6 +495,7 @@ template. These follow the same standard format: - id: fetch-base # A unique id for the step name: Fetch Base # A title displayed in the frontend if: ${{ parameters.name }} # Optional condition, skip the step if not truthy + each: ${{ parameters.iterable }} # Optional iterable, run the same step multiple times action: fetch:template # An action to call input: # Input that is passed as arguments to the action handler url: ./template @@ -506,6 +507,27 @@ By default we ship some [built in actions](./builtin-actions.md) that you can take a look at, or you can [create your own custom actions](./writing-custom-actions.md). +When `each` is provided, the current iteration value is available in the `${{ each }}` input. + +Examples: + +```yaml +each: ['apples', 'oranges'] +input: + values: + fruit: ${{ each}} +``` + +```yaml +each: [{ name: 'apple', count: 3 }, { name: 'orange', count: 1 }] +input: + values: + fruit: ${{ each.name }} + count: ${{ each.count }} +``` + +When `each` is used, the outputs of a repeated step are returned as an array of outputs from each iteration. + ## Outputs Each individual step can output some variables that can be used in the diff --git a/plugins/scaffolder-backend/src/scaffolder/tasks/NunjucksWorkflowRunner.ts b/plugins/scaffolder-backend/src/scaffolder/tasks/NunjucksWorkflowRunner.ts index e3233483ef..a6c486c58d 100644 --- a/plugins/scaffolder-backend/src/scaffolder/tasks/NunjucksWorkflowRunner.ts +++ b/plugins/scaffolder-backend/src/scaffolder/tasks/NunjucksWorkflowRunner.ts @@ -25,7 +25,7 @@ import * as winston from 'winston'; import fs from 'fs-extra'; import path from 'path'; import nunjucks from 'nunjucks'; -import { JsonObject, JsonValue } from '@backstage/types'; +import { JsonArray, JsonObject, JsonValue } from '@backstage/types'; import { InputError, NotAllowedError } from '@backstage/errors'; import { PassThrough } from 'stream'; import { generateExampleOutput, isTruthy } from './helper'; @@ -351,7 +351,7 @@ export class NunjucksWorkflowRunner implements WorkflowRunner { output(name: string, value: JsonValue) { if (step.each) { stepOutput[name] = stepOutput[name] || []; - stepOutput[name].push(value); + (stepOutput[name] as JsonArray).push(value); } else { stepOutput[name] = value; } From 6a754699b43e1387289fbce751224b8405b2fb61 Mon Sep 17 00:00:00 2001 From: Alex Eftimie Date: Mon, 12 Jun 2023 00:21:40 +0200 Subject: [PATCH 004/372] Update api-report Signed-off-by: Alex Eftimie --- plugins/scaffolder-common/api-report.md | 2 ++ plugins/scaffolder-node/api-report.md | 1 + 2 files changed, 3 insertions(+) diff --git a/plugins/scaffolder-common/api-report.md b/plugins/scaffolder-common/api-report.md index 7c40780b57..6113c72659 100644 --- a/plugins/scaffolder-common/api-report.md +++ b/plugins/scaffolder-common/api-report.md @@ -5,6 +5,7 @@ ```ts import { Entity } from '@backstage/catalog-model'; import type { EntityMeta } from '@backstage/catalog-model'; +import type { JsonArray } from '@backstage/types'; import { JsonObject } from '@backstage/types'; import type { JsonValue } from '@backstage/types'; import { KindValidator } from '@backstage/catalog-model'; @@ -36,6 +37,7 @@ export interface TaskSpecV1beta3 { // @public export interface TaskStep { action: string; + each?: string | JsonArray; id: string; if?: string | boolean; input?: JsonObject; diff --git a/plugins/scaffolder-node/api-report.md b/plugins/scaffolder-node/api-report.md index 46aba960d8..962daca2ad 100644 --- a/plugins/scaffolder-node/api-report.md +++ b/plugins/scaffolder-node/api-report.md @@ -36,6 +36,7 @@ export type ActionContext< ref?: string; }; signal?: AbortSignal; + each?: JsonObject; }; // @public From 72f8b2be2ff25eab1f88863e6982e41a69b59283 Mon Sep 17 00:00:00 2001 From: Paulo Eduardo Peixoto Date: Thu, 13 Jul 2023 14:16:04 -0300 Subject: [PATCH 005/372] docs(features/software-templates): update "writing-custom-field-extensions.md" after deprecated "createScaffolderFieldExtension" and "ScaffolderFieldExtensions" from "@backstage/plugin-scaffolder". Signed-off-by: Paulo Eduardo Peixoto --- .../software-templates/writing-custom-field-extensions.md | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/docs/features/software-templates/writing-custom-field-extensions.md b/docs/features/software-templates/writing-custom-field-extensions.md index 20575a0b4a..f22cecd22c 100644 --- a/docs/features/software-templates/writing-custom-field-extensions.md +++ b/docs/features/software-templates/writing-custom-field-extensions.md @@ -89,10 +89,8 @@ export const validateKebabCaseValidation = ( then please use `scaffolderPlugin.provide` from there instead and export it part of your `plugin.ts` rather than re-using the `scaffolder.plugin`. */ -import { - scaffolderPlugin, - createScaffolderFieldExtension, -} from '@backstage/plugin-scaffolder'; +import { scaffolderPlugin } from '@backstage/plugin-scaffolder'; +import { createScaffolderFieldExtension } from '@backstage/plugin-scaffolder-react'; import { ValidateKebabCase, validateKebabCaseValidation, @@ -133,7 +131,7 @@ Should look something like this instead: ```tsx import { ValidateKebabCaseFieldExtension } from './scaffolder/ValidateKebabCase'; -import { ScaffolderFieldExtensions } from '@backstage/plugin-scaffolder'; +import { ScaffolderFieldExtensions } from '@backstage/plugin-scaffolder-react'; const routes = ( From 98d3f2fa31680b782caddc7d328e71e178ccddab Mon Sep 17 00:00:00 2001 From: Scott Guymer Date: Mon, 24 Jul 2023 11:56:37 +0200 Subject: [PATCH 006/372] Add email to index for user entity Signed-off-by: Scott Guymer --- .../defaultCatalogCollatorEntityTransformer.test.ts | 3 ++- .../collators/defaultCatalogCollatorEntityTransformer.ts | 6 ++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/plugins/search-backend-module-catalog/src/collators/defaultCatalogCollatorEntityTransformer.test.ts b/plugins/search-backend-module-catalog/src/collators/defaultCatalogCollatorEntityTransformer.test.ts index 8206a58599..4ae6c88c06 100644 --- a/plugins/search-backend-module-catalog/src/collators/defaultCatalogCollatorEntityTransformer.test.ts +++ b/plugins/search-backend-module-catalog/src/collators/defaultCatalogCollatorEntityTransformer.test.ts @@ -42,6 +42,7 @@ const userEntity = { spec: { profile: { displayName: 'User 1', + email: 'test@test.com', }, }, }; @@ -94,7 +95,7 @@ describe('DefaultCatalogCollatorEntityTransformer', () => { expect(document).toMatchObject({ title: userEntity.metadata.name, - text: `${userEntity.metadata.description} : ${userEntity.spec.profile.displayName}`, + text: `${userEntity.metadata.description} : ${userEntity.spec.profile.displayName} : ${userEntity.spec.profile.email}}`, namespace: 'default', componentType: 'other', lifecycle: '', diff --git a/plugins/search-backend-module-catalog/src/collators/defaultCatalogCollatorEntityTransformer.ts b/plugins/search-backend-module-catalog/src/collators/defaultCatalogCollatorEntityTransformer.ts index 2fc0c5d50d..db239b8669 100644 --- a/plugins/search-backend-module-catalog/src/collators/defaultCatalogCollatorEntityTransformer.ts +++ b/plugins/search-backend-module-catalog/src/collators/defaultCatalogCollatorEntityTransformer.ts @@ -27,6 +27,12 @@ const getDocumentText = (entity: Entity): string => { } } + if (isUserEntity(entity)) { + if (entity.spec?.profile?.email) { + documentTexts.push(entity.spec.profile.email); + } + } + return documentTexts.join(' : '); }; From d4f19a16bd52861c835dbc28cd32bfdb8e34b415 Mon Sep 17 00:00:00 2001 From: Scott Guymer Date: Mon, 24 Jul 2023 12:02:36 +0200 Subject: [PATCH 007/372] added changeset Signed-off-by: Scott Guymer --- .changeset/twelve-pigs-cough.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/twelve-pigs-cough.md diff --git a/.changeset/twelve-pigs-cough.md b/.changeset/twelve-pigs-cough.md new file mode 100644 index 0000000000..e2eef61915 --- /dev/null +++ b/.changeset/twelve-pigs-cough.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-search-backend-module-catalog': patch +--- + +Add User Entity email to the search index so that users can be found by their email. From ee52a48b63d501874db0e7747752ee970e374be7 Mon Sep 17 00:00:00 2001 From: AmbrishRamachandiran Date: Wed, 26 Jul 2023 08:15:33 +0530 Subject: [PATCH 008/372] Limit the use of the same shortcut name when adding a shortcut Signed-off-by: AmbrishRamachandiran --- .changeset/nervous-suits-give.md | 5 +++++ plugins/shortcuts/src/AddShortcut.tsx | 19 +++++++++++++------ plugins/shortcuts/src/EditShortcut.tsx | 19 +++++++++++++------ 3 files changed, 31 insertions(+), 12 deletions(-) create mode 100644 .changeset/nervous-suits-give.md diff --git a/.changeset/nervous-suits-give.md b/.changeset/nervous-suits-give.md new file mode 100644 index 0000000000..e08d8d89a2 --- /dev/null +++ b/.changeset/nervous-suits-give.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-shortcuts': patch +--- + +Limit the use of the duplicate shortcut name when adding a shortcut diff --git a/plugins/shortcuts/src/AddShortcut.tsx b/plugins/shortcuts/src/AddShortcut.tsx index 15850ab389..70988c49eb 100644 --- a/plugins/shortcuts/src/AddShortcut.tsx +++ b/plugins/shortcuts/src/AddShortcut.tsx @@ -67,12 +67,19 @@ export const AddShortcut = ({ const shortcut: Omit = { url, title }; try { - await api.add(shortcut); - alertApi.post({ - message: `Added shortcut '${title}' to your sidebar`, - severity: 'success', - display: 'transient', - }); + if (api.get().some(shortcutTitle => shortcutTitle.title === title)) { + alertApi.post({ + message: `Shortcut title already exist`, + severity: 'error', + }); + } else { + await api.add(shortcut); + alertApi.post({ + message: `Added shortcut '${title}' to your sidebar`, + severity: 'success', + display: 'transient', + }); + } } catch (error) { alertApi.post({ message: `Could not add shortcut: ${error.message}`, diff --git a/plugins/shortcuts/src/EditShortcut.tsx b/plugins/shortcuts/src/EditShortcut.tsx index 9f2ffe10be..ecc14d93d9 100644 --- a/plugins/shortcuts/src/EditShortcut.tsx +++ b/plugins/shortcuts/src/EditShortcut.tsx @@ -70,12 +70,19 @@ export const EditShortcut = ({ }; try { - await api.update(newShortcut); - alertApi.post({ - message: `Updated shortcut '${title}'`, - severity: 'success', - display: 'transient', - }); + if (api.get().some(shortcutTitle => shortcutTitle.title === title)) { + alertApi.post({ + message: `Shortcut title already exist`, + severity: 'error', + }); + } else { + await api.update(newShortcut); + alertApi.post({ + message: `Updated shortcut '${title}'`, + severity: 'success', + display: 'transient', + }); + } } catch (error) { alertApi.post({ message: `Could not update shortcut: ${error.message}`, From 5d99ca9350573b07eca710a9e6f461e258abb818 Mon Sep 17 00:00:00 2001 From: AmbrishRamachandiran Date: Wed, 26 Jul 2023 09:48:50 +0530 Subject: [PATCH 009/372] Limit the use of the same shortcut name when adding a shortcut Signed-off-by: AmbrishRamachandiran --- plugins/shortcuts/src/EditShortcut.tsx | 19 ++++++------------- 1 file changed, 6 insertions(+), 13 deletions(-) diff --git a/plugins/shortcuts/src/EditShortcut.tsx b/plugins/shortcuts/src/EditShortcut.tsx index ecc14d93d9..9f2ffe10be 100644 --- a/plugins/shortcuts/src/EditShortcut.tsx +++ b/plugins/shortcuts/src/EditShortcut.tsx @@ -70,19 +70,12 @@ export const EditShortcut = ({ }; try { - if (api.get().some(shortcutTitle => shortcutTitle.title === title)) { - alertApi.post({ - message: `Shortcut title already exist`, - severity: 'error', - }); - } else { - await api.update(newShortcut); - alertApi.post({ - message: `Updated shortcut '${title}'`, - severity: 'success', - display: 'transient', - }); - } + await api.update(newShortcut); + alertApi.post({ + message: `Updated shortcut '${title}'`, + severity: 'success', + display: 'transient', + }); } catch (error) { alertApi.post({ message: `Could not update shortcut: ${error.message}`, From d37b9c5aeeb9bc9925a63832a92d638aea5a04e5 Mon Sep 17 00:00:00 2001 From: AmbrishRamachandiran Date: Wed, 26 Jul 2023 10:17:53 +0530 Subject: [PATCH 010/372] Limit the use of the same shortcut name when adding a shortcut Signed-off-by: AmbrishRamachandiran --- plugins/shortcuts/src/AddShortcut.tsx | 7 +++++-- plugins/shortcuts/src/EditShortcut.tsx | 23 ++++++++++++++++------- 2 files changed, 21 insertions(+), 9 deletions(-) diff --git a/plugins/shortcuts/src/AddShortcut.tsx b/plugins/shortcuts/src/AddShortcut.tsx index 70988c49eb..32a5aaa947 100644 --- a/plugins/shortcuts/src/AddShortcut.tsx +++ b/plugins/shortcuts/src/AddShortcut.tsx @@ -63,11 +63,14 @@ export const AddShortcut = ({ const analytics = useAnalytics(); const handleSave: SubmitHandler = async ({ url, title }) => { - analytics.captureEvent('click', `Clicked 'Save' in AddShortcut`); + if (!api.get().some(shortcutTitle => shortcutTitle.title === title)) { + analytics.captureEvent('click', `Clicked 'Save' in AddShortcut`); + } const shortcut: Omit = { url, title }; + const shortcutData = api.get(); try { - if (api.get().some(shortcutTitle => shortcutTitle.title === title)) { + if (shortcutData.some(shortcutTitle => shortcutTitle.title === title)) { alertApi.post({ message: `Shortcut title already exist`, severity: 'error', diff --git a/plugins/shortcuts/src/EditShortcut.tsx b/plugins/shortcuts/src/EditShortcut.tsx index 9f2ffe10be..df0476f5db 100644 --- a/plugins/shortcuts/src/EditShortcut.tsx +++ b/plugins/shortcuts/src/EditShortcut.tsx @@ -62,7 +62,9 @@ export const EditShortcut = ({ const analytics = useAnalytics(); const handleSave: SubmitHandler = async ({ url, title }) => { - analytics.captureEvent('click', `Clicked 'Save' in Edit Shortcut`); + if (!api.get().some(shortcutTitle => shortcutTitle.title === title)) { + analytics.captureEvent('click', `Clicked 'Save' in Edit Shortcut`); + } const newShortcut: Shortcut = { ...shortcut, url, @@ -70,12 +72,19 @@ export const EditShortcut = ({ }; try { - await api.update(newShortcut); - alertApi.post({ - message: `Updated shortcut '${title}'`, - severity: 'success', - display: 'transient', - }); + if (api.get().some(shortcutTitle => shortcutTitle.title === title)) { + alertApi.post({ + message: `Shortcut title already exist`, + severity: 'error', + }); + } else { + await api.update(newShortcut); + alertApi.post({ + message: `Updated shortcut '${title}'`, + severity: 'success', + display: 'transient', + }); + } } catch (error) { alertApi.post({ message: `Could not update shortcut: ${error.message}`, From ceee1c3ca25377bfac35d137795dc85455bf9fa1 Mon Sep 17 00:00:00 2001 From: AmbrishRamachandiran Date: Wed, 26 Jul 2023 11:28:41 +0530 Subject: [PATCH 011/372] Limit the use of the same shortcut name when adding a shortcut Signed-off-by: AmbrishRamachandiran --- plugins/shortcuts/src/AddShortcut.tsx | 7 ++----- plugins/shortcuts/src/EditShortcut.tsx | 8 +++----- 2 files changed, 5 insertions(+), 10 deletions(-) diff --git a/plugins/shortcuts/src/AddShortcut.tsx b/plugins/shortcuts/src/AddShortcut.tsx index 32a5aaa947..e518a89934 100644 --- a/plugins/shortcuts/src/AddShortcut.tsx +++ b/plugins/shortcuts/src/AddShortcut.tsx @@ -61,20 +61,17 @@ export const AddShortcut = ({ const [formValues, setFormValues] = useState(); const open = Boolean(anchorEl); const analytics = useAnalytics(); + const shortcutData = api.get(); const handleSave: SubmitHandler = async ({ url, title }) => { if (!api.get().some(shortcutTitle => shortcutTitle.title === title)) { analytics.captureEvent('click', `Clicked 'Save' in AddShortcut`); } const shortcut: Omit = { url, title }; - const shortcutData = api.get(); try { if (shortcutData.some(shortcutTitle => shortcutTitle.title === title)) { - alertApi.post({ - message: `Shortcut title already exist`, - severity: 'error', - }); + throw new Error(`Shortcut Title '${title}' already Exist`); } else { await api.add(shortcut); alertApi.post({ diff --git a/plugins/shortcuts/src/EditShortcut.tsx b/plugins/shortcuts/src/EditShortcut.tsx index df0476f5db..5f1125e37a 100644 --- a/plugins/shortcuts/src/EditShortcut.tsx +++ b/plugins/shortcuts/src/EditShortcut.tsx @@ -60,6 +60,7 @@ export const EditShortcut = ({ const alertApi = useApi(alertApiRef); const open = Boolean(anchorEl); const analytics = useAnalytics(); + const shortcutData = api.get(); const handleSave: SubmitHandler = async ({ url, title }) => { if (!api.get().some(shortcutTitle => shortcutTitle.title === title)) { @@ -72,11 +73,8 @@ export const EditShortcut = ({ }; try { - if (api.get().some(shortcutTitle => shortcutTitle.title === title)) { - alertApi.post({ - message: `Shortcut title already exist`, - severity: 'error', - }); + if (shortcutData.some(shortcutTitle => shortcutTitle.title === title)) { + throw new Error(`Shortcut Title '${title}' already Exist`); } else { await api.update(newShortcut); alertApi.post({ From 85803bf5a8acb00ea63d52928a62584d34acee0d Mon Sep 17 00:00:00 2001 From: "Flores, Juan" Date: Wed, 26 Jul 2023 13:30:38 +0100 Subject: [PATCH 012/372] Fixes Bug #18728 Signed-off-by: Flores, Juan --- .../software-templates/writing-custom-step-layouts.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/features/software-templates/writing-custom-step-layouts.md b/docs/features/software-templates/writing-custom-step-layouts.md index 69d61b93dc..b965f60f6b 100644 --- a/docs/features/software-templates/writing-custom-step-layouts.md +++ b/docs/features/software-templates/writing-custom-step-layouts.md @@ -4,7 +4,7 @@ title: Writing custom step layouts description: How to override the default step form layout --- -Every form in each step rendered in the frontend uses the default form layout from [react-json-schema-form](https://react-jsonschema-form.readthedocs.io/). It is possible to override this behaviour by supplying a `ui:ObjectFieldTemplate` property for a particular step: +Every form in each step rendered in the frontend uses the default form layout from [react-jsonschema-form](https://rjsf-team.github.io/react-jsonschema-form/docs/). It is possible to override this behaviour by supplying a `ui:ObjectFieldTemplate` property for a particular step: ```yaml parameters: @@ -12,7 +12,7 @@ parameters: ui:ObjectFieldTemplate: TwoColumn ``` -This is the same [field](https://react-jsonschema-form.readthedocs.io/en/latest/advanced-customization/custom-templates/#objectfieldtemplate) used by [react-json-schema-form](https://react-jsonschema-form.readthedocs.io/) but we need to add a couple of steps to ensure that the string value of `TwoColumn` above is resolved to a react component. +This is the same [field](https://rjsf-team.github.io/react-jsonschema-form/docs/advanced-customization/custom-templates#objectfieldtemplate) used by [react-jsonschema-form](https://rjsf-team.github.io/react-jsonschema-form/docs/) but we need to add a couple of steps to ensure that the string value of `TwoColumn` above is resolved to a react component. ## Registering a React component as a custom step layout From b0d9047894644a97d171dd7331c43d0c4c69e872 Mon Sep 17 00:00:00 2001 From: AmbrishRamachandiran Date: Thu, 27 Jul 2023 12:02:13 +0530 Subject: [PATCH 013/372] Limit the use of the same shortcut name when adding a shortcut Signed-off-by: AmbrishRamachandiran --- plugins/shortcuts/src/AddShortcut.tsx | 4 +--- plugins/shortcuts/src/EditShortcut.tsx | 4 +--- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/plugins/shortcuts/src/AddShortcut.tsx b/plugins/shortcuts/src/AddShortcut.tsx index e518a89934..d1a17f267f 100644 --- a/plugins/shortcuts/src/AddShortcut.tsx +++ b/plugins/shortcuts/src/AddShortcut.tsx @@ -64,9 +64,7 @@ export const AddShortcut = ({ const shortcutData = api.get(); const handleSave: SubmitHandler = async ({ url, title }) => { - if (!api.get().some(shortcutTitle => shortcutTitle.title === title)) { - analytics.captureEvent('click', `Clicked 'Save' in AddShortcut`); - } + analytics.captureEvent('click', `Clicked 'Save' in AddShortcut`); const shortcut: Omit = { url, title }; try { diff --git a/plugins/shortcuts/src/EditShortcut.tsx b/plugins/shortcuts/src/EditShortcut.tsx index 5f1125e37a..288b35d9f0 100644 --- a/plugins/shortcuts/src/EditShortcut.tsx +++ b/plugins/shortcuts/src/EditShortcut.tsx @@ -63,9 +63,7 @@ export const EditShortcut = ({ const shortcutData = api.get(); const handleSave: SubmitHandler = async ({ url, title }) => { - if (!api.get().some(shortcutTitle => shortcutTitle.title === title)) { - analytics.captureEvent('click', `Clicked 'Save' in Edit Shortcut`); - } + analytics.captureEvent('click', `Clicked 'Save' in Edit Shortcut`); const newShortcut: Shortcut = { ...shortcut, url, From 2ec7d0cdf8c7a8eb14b1528ad3708170679fd6ac Mon Sep 17 00:00:00 2001 From: AmbrishRamachandiran Date: Thu, 27 Jul 2023 15:38:43 +0530 Subject: [PATCH 014/372] Limit the use of the same shortcut name when adding a shortcut Signed-off-by: AmbrishRamachandiran --- plugins/shortcuts/src/AddShortcut.tsx | 17 ++++++----------- plugins/shortcuts/src/EditShortcut.tsx | 17 ++++++----------- plugins/shortcuts/src/ShortcutForm.tsx | 11 +++++++++++ 3 files changed, 23 insertions(+), 22 deletions(-) diff --git a/plugins/shortcuts/src/AddShortcut.tsx b/plugins/shortcuts/src/AddShortcut.tsx index d1a17f267f..15850ab389 100644 --- a/plugins/shortcuts/src/AddShortcut.tsx +++ b/plugins/shortcuts/src/AddShortcut.tsx @@ -61,23 +61,18 @@ export const AddShortcut = ({ const [formValues, setFormValues] = useState(); const open = Boolean(anchorEl); const analytics = useAnalytics(); - const shortcutData = api.get(); const handleSave: SubmitHandler = async ({ url, title }) => { analytics.captureEvent('click', `Clicked 'Save' in AddShortcut`); const shortcut: Omit = { url, title }; try { - if (shortcutData.some(shortcutTitle => shortcutTitle.title === title)) { - throw new Error(`Shortcut Title '${title}' already Exist`); - } else { - await api.add(shortcut); - alertApi.post({ - message: `Added shortcut '${title}' to your sidebar`, - severity: 'success', - display: 'transient', - }); - } + await api.add(shortcut); + alertApi.post({ + message: `Added shortcut '${title}' to your sidebar`, + severity: 'success', + display: 'transient', + }); } catch (error) { alertApi.post({ message: `Could not add shortcut: ${error.message}`, diff --git a/plugins/shortcuts/src/EditShortcut.tsx b/plugins/shortcuts/src/EditShortcut.tsx index 288b35d9f0..9f2ffe10be 100644 --- a/plugins/shortcuts/src/EditShortcut.tsx +++ b/plugins/shortcuts/src/EditShortcut.tsx @@ -60,7 +60,6 @@ export const EditShortcut = ({ const alertApi = useApi(alertApiRef); const open = Boolean(anchorEl); const analytics = useAnalytics(); - const shortcutData = api.get(); const handleSave: SubmitHandler = async ({ url, title }) => { analytics.captureEvent('click', `Clicked 'Save' in Edit Shortcut`); @@ -71,16 +70,12 @@ export const EditShortcut = ({ }; try { - if (shortcutData.some(shortcutTitle => shortcutTitle.title === title)) { - throw new Error(`Shortcut Title '${title}' already Exist`); - } else { - await api.update(newShortcut); - alertApi.post({ - message: `Updated shortcut '${title}'`, - severity: 'success', - display: 'transient', - }); - } + await api.update(newShortcut); + alertApi.post({ + message: `Updated shortcut '${title}'`, + severity: 'success', + display: 'transient', + }); } catch (error) { alertApi.post({ message: `Could not update shortcut: ${error.message}`, diff --git a/plugins/shortcuts/src/ShortcutForm.tsx b/plugins/shortcuts/src/ShortcutForm.tsx index 99aa0d29b7..2b5aae52d9 100644 --- a/plugins/shortcuts/src/ShortcutForm.tsx +++ b/plugins/shortcuts/src/ShortcutForm.tsx @@ -24,6 +24,7 @@ import { TextField, } from '@material-ui/core'; import { FormValues } from './types'; +import { ShortcutApi } from './api'; const useStyles = makeStyles(theme => ({ field: { @@ -39,6 +40,7 @@ const useStyles = makeStyles(theme => ({ type Props = { formValues?: FormValues; onSave: SubmitHandler; + api: ShortcutApi; onClose: () => void; allowExternalLinks?: boolean; }; @@ -46,10 +48,12 @@ type Props = { export const ShortcutForm = ({ formValues, onSave, + api, onClose, allowExternalLinks, }: Props) => { const classes = useStyles(); + const shortcutData = api.get(); const { handleSubmit, reset, @@ -63,6 +67,12 @@ export const ShortcutForm = ({ }, }); + const titleIsUnique = async (title: string) => { + if (shortcutData.some(shortcutTitle => shortcutTitle.title === title)) + return 'This title name is already exist'; + return true; + }; + useEffect(() => { reset(formValues); }, [reset, formValues]); @@ -112,6 +122,7 @@ export const ShortcutForm = ({ control={control} rules={{ required: true, + validate: titleIsUnique, minLength: { value: 2, message: 'Must be at least 2 characters', From 788afefcf332ea2817c8f2859599894a58d6de5f Mon Sep 17 00:00:00 2001 From: AmbrishRamachandiran Date: Thu, 27 Jul 2023 15:54:27 +0530 Subject: [PATCH 015/372] Limit the use of the same shortcut name when adding a shortcut Signed-off-by: AmbrishRamachandiran --- plugins/shortcuts/src/ShortcutForm.tsx | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/plugins/shortcuts/src/ShortcutForm.tsx b/plugins/shortcuts/src/ShortcutForm.tsx index 2b5aae52d9..891739f299 100644 --- a/plugins/shortcuts/src/ShortcutForm.tsx +++ b/plugins/shortcuts/src/ShortcutForm.tsx @@ -24,7 +24,8 @@ import { TextField, } from '@material-ui/core'; import { FormValues } from './types'; -import { ShortcutApi } from './api'; +import { shortcutsApiRef } from './api'; +import { useApi } from '@backstage/core-plugin-api'; const useStyles = makeStyles(theme => ({ field: { @@ -40,7 +41,7 @@ const useStyles = makeStyles(theme => ({ type Props = { formValues?: FormValues; onSave: SubmitHandler; - api: ShortcutApi; + // api: ShortcutApi; onClose: () => void; allowExternalLinks?: boolean; }; @@ -48,12 +49,13 @@ type Props = { export const ShortcutForm = ({ formValues, onSave, - api, + // api, onClose, allowExternalLinks, }: Props) => { const classes = useStyles(); - const shortcutData = api.get(); + const shortcutApi = useApi(shortcutsApiRef); + const shortcutData = shortcutApi.get(); const { handleSubmit, reset, From 3ed5a3fdb996f84156d0ed65c6cb3d1236219094 Mon Sep 17 00:00:00 2001 From: AmbrishRamachandiran Date: Thu, 27 Jul 2023 15:56:06 +0530 Subject: [PATCH 016/372] Limit the use of the same shortcut name when adding a shortcut Signed-off-by: AmbrishRamachandiran --- plugins/shortcuts/src/ShortcutForm.tsx | 2 -- 1 file changed, 2 deletions(-) diff --git a/plugins/shortcuts/src/ShortcutForm.tsx b/plugins/shortcuts/src/ShortcutForm.tsx index 891739f299..f8a53620ee 100644 --- a/plugins/shortcuts/src/ShortcutForm.tsx +++ b/plugins/shortcuts/src/ShortcutForm.tsx @@ -41,7 +41,6 @@ const useStyles = makeStyles(theme => ({ type Props = { formValues?: FormValues; onSave: SubmitHandler; - // api: ShortcutApi; onClose: () => void; allowExternalLinks?: boolean; }; @@ -49,7 +48,6 @@ type Props = { export const ShortcutForm = ({ formValues, onSave, - // api, onClose, allowExternalLinks, }: Props) => { From e8fa09e881ef60d68daead5cd75c14d207066600 Mon Sep 17 00:00:00 2001 From: AmbrishRamachandiran Date: Thu, 27 Jul 2023 16:08:16 +0530 Subject: [PATCH 017/372] Limit the use of the same shortcut name when adding a shortcut- added test cases Signed-off-by: AmbrishRamachandiran --- plugins/shortcuts/src/ShortcutForm.test.tsx | 3 +++ 1 file changed, 3 insertions(+) diff --git a/plugins/shortcuts/src/ShortcutForm.test.tsx b/plugins/shortcuts/src/ShortcutForm.test.tsx index 3a52356b5d..0e878c1fa4 100644 --- a/plugins/shortcuts/src/ShortcutForm.test.tsx +++ b/plugins/shortcuts/src/ShortcutForm.test.tsx @@ -40,6 +40,9 @@ describe('ShortcutForm', () => { expect( screen.getByText('Must be at least 2 characters'), ).toBeInTheDocument(); + expect( + screen.getByText('This title name is already exist'), + ).toBeInTheDocument(); }); }); From a24d9df8757c61f9dc09684cc6bc489e980d94db Mon Sep 17 00:00:00 2001 From: Connor Younglund Date: Thu, 27 Jul 2023 15:19:52 -0400 Subject: [PATCH 018/372] [sonarqube-backend plugin] added optional `externalUrl` config Signed-off-by: Connor Younglund --- .changeset/warm-peas-hang.md | 5 +++ plugins/sonarqube-backend/README.md | 28 ++++++++++++ plugins/sonarqube-backend/config.d.ts | 14 ++++++ .../src/service/router.test.ts | 21 ++++++++- .../sonarqube-backend/src/service/router.ts | 4 +- .../src/service/sonarqubeInfoProvider.test.ts | 43 +++++++++++++++++++ .../src/service/sonarqubeInfoProvider.ts | 22 ++++++++-- 7 files changed, 129 insertions(+), 8 deletions(-) create mode 100644 .changeset/warm-peas-hang.md diff --git a/.changeset/warm-peas-hang.md b/.changeset/warm-peas-hang.md new file mode 100644 index 0000000000..685bdc2489 --- /dev/null +++ b/.changeset/warm-peas-hang.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-sonarqube-backend': minor +--- + +Added optional `externalUrl` config for setting a different frontend URL diff --git a/plugins/sonarqube-backend/README.md b/plugins/sonarqube-backend/README.md index 4d16dce025..9061dc9d1d 100644 --- a/plugins/sonarqube-backend/README.md +++ b/plugins/sonarqube-backend/README.md @@ -138,6 +138,34 @@ sonarqube: apiKey: abcdef0123456789abcedf0123456789ab ``` +#### Example - Different frontend and backend URLs + +In some instances, you might want to use one URL for the backend and another for the frontend. +This can be achieved by using the optional `externalUrl` property in the config. + +##### Single instance config + +```yaml +sonarqube: + baseUrl: https://sonarqube-internal.example.com + externalUrl: https://sonarqube.example.com + apiKey: 123456789abcdef0123456789abcedf012 +``` + +##### Multiple instance config + +```yaml +sonarqube: + instances: + - name: default + baseUrl: https://default-sonarqube-internal.example.com + externalUrl: https://default-sonarqube.example.com + apiKey: 123456789abcdef0123456789abcedf012 + - name: specialProject + baseUrl: https://special-project-sonarqube.example.com + apiKey: abcdef0123456789abcedf0123456789ab +``` + ## Links - [Sonarqube Frontend](../sonarqube/README.md) diff --git a/plugins/sonarqube-backend/config.d.ts b/plugins/sonarqube-backend/config.d.ts index 7e93f61eb4..0e2ac1ca64 100644 --- a/plugins/sonarqube-backend/config.d.ts +++ b/plugins/sonarqube-backend/config.d.ts @@ -23,6 +23,13 @@ export interface Config { */ baseUrl?: string; + /** + * The external url of the sonarqube installation. + * Use this if you want to use a different url for the frontend than the backend. + * @visibility frontend + */ + externalUrl?: string; + /** * The api key to access the sonarqube instance under baseUrl. * @visibility secret @@ -46,6 +53,13 @@ export interface Config { */ baseUrl: string; + /** + * The external url of the sonarqube instance. + * Use this if you want to use a different url for the frontend than the backend. + * @visibility frontend + */ + externalUrl?: string; + /** * The api key to access the sonarqube instance. * @visibility secret diff --git a/plugins/sonarqube-backend/src/service/router.test.ts b/plugins/sonarqube-backend/src/service/router.test.ts index 7045cdf0d2..bede4c7f6f 100644 --- a/plugins/sonarqube-backend/src/service/router.test.ts +++ b/plugins/sonarqube-backend/src/service/router.test.ts @@ -24,7 +24,7 @@ import { SonarqubeFindings } from './sonarqubeInfoProvider'; describe('createRouter', () => { let app: express.Express; const getBaseUrlMock: jest.Mock< - { baseUrl: string }, + { baseUrl: string; externalUrl?: string }, [{ instanceName: string }] > = jest.fn(); const getFindingsMock: jest.Mock< @@ -55,6 +55,7 @@ describe('createRouter', () => { describe('GET /findings', () => { const DUMMY_COMPONENT_KEY = 'my:component'; const DUMMY_INSTANCE_KEY = 'myInstance'; + it('returns ok', async () => { const measures = { analysisDate: '2022-01-01T00:00:00Z', @@ -77,6 +78,7 @@ describe('createRouter', () => { expect(response.status).toEqual(200); expect(response.body).toEqual(measures); }); + it('returns an error when component key is not defined', async () => { const response = await request(app) .get('/findings') @@ -112,9 +114,12 @@ describe('createRouter', () => { expect(response.body).toEqual(measures); }); }); + describe('GET /instanceUrl', () => { const DUMMY_INSTANCE_KEY = 'myInstance'; - const DUMMY_INSTANCE_URL = 'http://sonarqube.example.com'; + const DUMMY_INSTANCE_URL = 'http://sonarqube-internal.example.com'; + const DUMMY_INSTANCE_EXTERNAL_URL = 'http://sonarqube.example.com'; + it('returns ok', async () => { getBaseUrlMock.mockReturnValue({ baseUrl: DUMMY_INSTANCE_URL }); const response = await request(app) @@ -141,5 +146,17 @@ describe('createRouter', () => { expect(response.status).toEqual(200); expect(response.body).toEqual({ instanceUrl: DUMMY_INSTANCE_URL }); }); + + it('returns the external url when provided', async () => { + getBaseUrlMock.mockReturnValue({ + baseUrl: DUMMY_INSTANCE_URL, + externalUrl: DUMMY_INSTANCE_EXTERNAL_URL, + }); + const response = await request(app).get('/instanceUrl').send(); + expect(response.status).toEqual(200); + expect(response.body).toEqual({ + instanceUrl: DUMMY_INSTANCE_EXTERNAL_URL, + }); + }); }); }); diff --git a/plugins/sonarqube-backend/src/service/router.ts b/plugins/sonarqube-backend/src/service/router.ts index f244ae5ce3..9c63c5c3cd 100644 --- a/plugins/sonarqube-backend/src/service/router.ts +++ b/plugins/sonarqube-backend/src/service/router.ts @@ -81,11 +81,11 @@ export async function createRouter( ? `Retrieving sonarqube instance URL for key ${instanceKey}` : `Retrieving default sonarqube instance URL as instanceKey is not provided`, ); - const { baseUrl } = sonarqubeInfoProvider.getBaseUrl({ + const { baseUrl, externalUrl } = sonarqubeInfoProvider.getBaseUrl({ instanceName: instanceKey, }); response.json({ - instanceUrl: baseUrl, + instanceUrl: externalUrl || baseUrl, }); }); diff --git a/plugins/sonarqube-backend/src/service/sonarqubeInfoProvider.test.ts b/plugins/sonarqube-backend/src/service/sonarqubeInfoProvider.test.ts index 72ab2ecee2..151f767974 100644 --- a/plugins/sonarqube-backend/src/service/sonarqubeInfoProvider.test.ts +++ b/plugins/sonarqube-backend/src/service/sonarqubeInfoProvider.test.ts @@ -27,6 +27,7 @@ describe('SonarqubeConfig', () => { const SONARQUBE_DEFAULT_INSTANCE_NAME = 'default'; const DUMMY_SONAR_URL = 'https://sonarqube.example.com'; const DUMMY_SONAR_APIKEY = '123456789abcdef0123456789abcedf012'; + const DUMMY_SIMPLE_OBJECT_FOR_DEFAULT_SONARQUBE_CONFIG = { name: SONARQUBE_DEFAULT_INSTANCE_NAME, baseUrl: DUMMY_SONAR_URL, @@ -112,6 +113,7 @@ describe('SonarqubeConfig', () => { }, ]); }); + it('Throw an error if both a named default config and top level config', async () => { expect(() => SonarqubeConfig.fromConfig( @@ -299,6 +301,46 @@ describe('DefaultSonarqubeInfoProvider', () => { baseUrl: 'https://sonarqube-other.example.com', }); }); + + it('Provide external url for simple config', async () => { + const provider = configureProvider({ + sonarqube: { + baseUrl: 'https://sonarqube-internal.example.com', + externalUrl: 'https://sonarqube.example.com', + apiKey: '123456789abcdef0123456789abcedf012', + }, + }); + + expect(provider.getBaseUrl()).toEqual({ + baseUrl: 'https://sonarqube-internal.example.com', + externalUrl: 'https://sonarqube.example.com', + }); + }); + + it('Provide external url for named config', async () => { + const provider = configureProvider({ + sonarqube: { + instances: [ + { + name: 'default', + baseUrl: 'https://sonarqube.example.com', + apiKey: '123456789abcdef0123456789abcedf012', + }, + { + name: 'other', + baseUrl: 'https://sonarqube-other-internal.example.com', + externalUrl: 'https://sonarqube-other.example.com', + apiKey: '123456789abcdef0123456789abcedf012', + }, + ], + }, + }); + + expect(provider.getBaseUrl({ instanceName: 'other' })).toEqual({ + baseUrl: 'https://sonarqube-other-internal.example.com', + externalUrl: 'https://sonarqube-other.example.com', + }); + }); }); describe('getFindings', () => { @@ -385,6 +427,7 @@ describe('DefaultSonarqubeInfoProvider', () => { apiKey: DUMMY_API_KEY, }, }; + it('Provide findings when everything is ok', async () => { setupHandlers(); const provider = configureProvider(DUMMY_SIMPLE_CONFIG_FOR_PROVIDER); diff --git a/plugins/sonarqube-backend/src/service/sonarqubeInfoProvider.ts b/plugins/sonarqube-backend/src/service/sonarqubeInfoProvider.ts index 2b96e6764e..6277f6f57e 100644 --- a/plugins/sonarqube-backend/src/service/sonarqubeInfoProvider.ts +++ b/plugins/sonarqube-backend/src/service/sonarqubeInfoProvider.ts @@ -30,7 +30,10 @@ export interface SonarqubeInfoProvider { * @param instanceName - Name of the sonarqube instance to get the info from * @returns the url of the instance */ - getBaseUrl(options?: { instanceName?: string }): { baseUrl: string }; + getBaseUrl(options?: { instanceName?: string }): { + baseUrl: string; + externalUrl?: string; + }; /** * Query the sonarqube instance corresponding to the instanceName to get all @@ -96,6 +99,10 @@ export interface SonarqubeInstanceConfig { * Base url to access the instance */ baseUrl: string; + /** + * External url to access the instance from the frontend + */ + externalUrl?: string; /** * Access token to access the sonarqube instance as generated in user profile. */ @@ -132,6 +139,7 @@ export class SonarqubeConfig { sonarqubeConfig.getOptionalConfigArray('instances')?.map(c => ({ name: c.getString('name'), baseUrl: c.getString('baseUrl'), + externalUrl: c.getOptionalString('externalUrl'), apiKey: c.getString('apiKey'), })) || []; @@ -142,9 +150,10 @@ export class SonarqubeConfig { // Get these as optional strings and check to give a better error message const baseUrl = sonarqubeConfig.getOptionalString('baseUrl'); + const externalUrl = sonarqubeConfig.getOptionalString('externalUrl'); const apiKey = sonarqubeConfig.getOptionalString('apiKey'); - if (hasNamedDefault && (baseUrl || apiKey)) { + if (hasNamedDefault && (baseUrl || externalUrl || apiKey)) { throw new Error( `Found both a named sonarqube instance with name ${DEFAULT_SONARQUBE_NAME} and top level baseUrl or apiKey config. Use only one style of config.`, ); @@ -160,10 +169,11 @@ export class SonarqubeConfig { if (unnamedAllPresent) { const unnamedInstanceConfig = [ - { name: DEFAULT_SONARQUBE_NAME, baseUrl, apiKey }, + { name: DEFAULT_SONARQUBE_NAME, baseUrl, externalUrl, apiKey }, ] as { name: string; baseUrl: string; + externalUrl?: string; apiKey: string; }[]; @@ -303,11 +313,15 @@ export class DefaultSonarqubeInfoProvider implements SonarqubeInfoProvider { */ getBaseUrl(options: { instanceName?: string } = {}): { baseUrl: string; + externalUrl?: string; } { const instanceConfig = this.config.getInstanceConfig({ sonarqubeName: options.instanceName, }); - return { baseUrl: instanceConfig.baseUrl }; + return { + baseUrl: instanceConfig.baseUrl, + externalUrl: instanceConfig.externalUrl, + }; } /** From b1e9dcec6a21658140fdc364fa49ca42411b2d50 Mon Sep 17 00:00:00 2001 From: Connor Younglund Date: Thu, 27 Jul 2023 15:42:33 -0400 Subject: [PATCH 019/372] updated api-report.md Signed-off-by: Connor Younglund --- plugins/sonarqube-backend/api-report.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/plugins/sonarqube-backend/api-report.md b/plugins/sonarqube-backend/api-report.md index 0fbd463cf3..cf0314aad1 100644 --- a/plugins/sonarqube-backend/api-report.md +++ b/plugins/sonarqube-backend/api-report.md @@ -15,6 +15,7 @@ export class DefaultSonarqubeInfoProvider implements SonarqubeInfoProvider { static fromConfig(config: Config): DefaultSonarqubeInfoProvider; getBaseUrl(options?: { instanceName?: string }): { baseUrl: string; + externalUrl?: string; }; getFindings(options: { componentKey: string; @@ -49,6 +50,7 @@ export interface SonarqubeFindings { export interface SonarqubeInfoProvider { getBaseUrl(options?: { instanceName?: string }): { baseUrl: string; + externalUrl?: string; }; getFindings(options: { componentKey: string; @@ -60,6 +62,7 @@ export interface SonarqubeInfoProvider { export interface SonarqubeInstanceConfig { apiKey: string; baseUrl: string; + externalUrl?: string; name: string; } From e5f5054bb03ea869cfd2107377cb3624ed3cec75 Mon Sep 17 00:00:00 2001 From: Scott Guymer Date: Fri, 28 Jul 2023 09:43:52 +0200 Subject: [PATCH 020/372] Remove extra brace Signed-off-by: Scott Guymer --- .../collators/defaultCatalogCollatorEntityTransformer.test.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/search-backend-module-catalog/src/collators/defaultCatalogCollatorEntityTransformer.test.ts b/plugins/search-backend-module-catalog/src/collators/defaultCatalogCollatorEntityTransformer.test.ts index 4ae6c88c06..3fe6a9c3e5 100644 --- a/plugins/search-backend-module-catalog/src/collators/defaultCatalogCollatorEntityTransformer.test.ts +++ b/plugins/search-backend-module-catalog/src/collators/defaultCatalogCollatorEntityTransformer.test.ts @@ -95,7 +95,7 @@ describe('DefaultCatalogCollatorEntityTransformer', () => { expect(document).toMatchObject({ title: userEntity.metadata.name, - text: `${userEntity.metadata.description} : ${userEntity.spec.profile.displayName} : ${userEntity.spec.profile.email}}`, + text: `${userEntity.metadata.description} : ${userEntity.spec.profile.displayName} : ${userEntity.spec.profile.email}`, namespace: 'default', componentType: 'other', lifecycle: '', From 33526cdb9e2ea026eb46103b6d0cbfe995cc3533 Mon Sep 17 00:00:00 2001 From: AmbrishRamachandiran Date: Fri, 28 Jul 2023 20:11:22 +0530 Subject: [PATCH 021/372] Limit the use of the same shortcut name when adding a shortcut- error message changed Signed-off-by: AmbrishRamachandiran --- plugins/shortcuts/src/ShortcutForm.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/shortcuts/src/ShortcutForm.tsx b/plugins/shortcuts/src/ShortcutForm.tsx index f8a53620ee..f5c5152ff7 100644 --- a/plugins/shortcuts/src/ShortcutForm.tsx +++ b/plugins/shortcuts/src/ShortcutForm.tsx @@ -69,7 +69,7 @@ export const ShortcutForm = ({ const titleIsUnique = async (title: string) => { if (shortcutData.some(shortcutTitle => shortcutTitle.title === title)) - return 'This title name is already exist'; + return 'A shortcut with this title already exists'; return true; }; From d2be7f636653341a1ef3e287834e560cd4befb1c Mon Sep 17 00:00:00 2001 From: AmbrishRamachandiran Date: Fri, 28 Jul 2023 20:13:09 +0530 Subject: [PATCH 022/372] Limit the use of the same shortcut name when adding a shortcut- error message changed Signed-off-by: AmbrishRamachandiran --- plugins/shortcuts/src/ShortcutForm.test.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/shortcuts/src/ShortcutForm.test.tsx b/plugins/shortcuts/src/ShortcutForm.test.tsx index 0e878c1fa4..511c1842c3 100644 --- a/plugins/shortcuts/src/ShortcutForm.test.tsx +++ b/plugins/shortcuts/src/ShortcutForm.test.tsx @@ -41,7 +41,7 @@ describe('ShortcutForm', () => { screen.getByText('Must be at least 2 characters'), ).toBeInTheDocument(); expect( - screen.getByText('This title name is already exist'), + screen.getByText('A shortcut with this title already exists'), ).toBeInTheDocument(); }); }); From adff62590f5c4feec2cfad68dbcafc8d6c6241fe Mon Sep 17 00:00:00 2001 From: AmbrishRamachandiran Date: Fri, 28 Jul 2023 20:34:22 +0530 Subject: [PATCH 023/372] Limit the use of the same shortcut name when adding a shortcut- test file changes Signed-off-by: AmbrishRamachandiran --- plugins/shortcuts/src/AddShortcut.test.tsx | 5 ++++- plugins/shortcuts/src/EditShortcut.test.tsx | 5 ++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/plugins/shortcuts/src/AddShortcut.test.tsx b/plugins/shortcuts/src/AddShortcut.test.tsx index f8786e2b24..10ed59503b 100644 --- a/plugins/shortcuts/src/AddShortcut.test.tsx +++ b/plugins/shortcuts/src/AddShortcut.test.tsx @@ -26,6 +26,7 @@ import { import { AlertDisplay } from '@backstage/core-components'; import { TestApiProvider } from '@backstage/test-utils'; import { analyticsApiRef } from '@backstage/core-plugin-api'; +import { shortcutsApiRef } from './api'; describe('AddShortcut', () => { const api = new DefaultShortcutsApi(MockStorageApi.create()); @@ -78,7 +79,9 @@ describe('AddShortcut', () => { const spy = jest.spyOn(api, 'add'); await renderInTestApp( - + , ); diff --git a/plugins/shortcuts/src/EditShortcut.test.tsx b/plugins/shortcuts/src/EditShortcut.test.tsx index 72a89c13b6..618e3c784d 100644 --- a/plugins/shortcuts/src/EditShortcut.test.tsx +++ b/plugins/shortcuts/src/EditShortcut.test.tsx @@ -27,6 +27,7 @@ import { } from '@backstage/test-utils'; import { AlertDisplay } from '@backstage/core-components'; import { analyticsApiRef } from '@backstage/core-plugin-api'; +import { shortcutsApiRef } from './api'; describe('EditShortcut', () => { const shortcut: Shortcut = { @@ -86,7 +87,9 @@ describe('EditShortcut', () => { const spy = jest.spyOn(api, 'update'); await renderInTestApp( - + , ); From 831c28e3fcd1a2c8ad66c8b4c1d87a85df16cb69 Mon Sep 17 00:00:00 2001 From: AmbrishRamachandiran Date: Fri, 28 Jul 2023 20:52:29 +0530 Subject: [PATCH 024/372] Limit the use of the same shortcut name when adding a shortcut- test file changes added Signed-off-by: AmbrishRamachandiran --- plugins/shortcuts/src/AddShortcut.test.tsx | 7 +++++-- plugins/shortcuts/src/EditShortcut.test.tsx | 7 +++++-- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/plugins/shortcuts/src/AddShortcut.test.tsx b/plugins/shortcuts/src/AddShortcut.test.tsx index 10ed59503b..1fcbacb8e6 100644 --- a/plugins/shortcuts/src/AddShortcut.test.tsx +++ b/plugins/shortcuts/src/AddShortcut.test.tsx @@ -26,7 +26,7 @@ import { import { AlertDisplay } from '@backstage/core-components'; import { TestApiProvider } from '@backstage/test-utils'; import { analyticsApiRef } from '@backstage/core-plugin-api'; -import { shortcutsApiRef } from './api'; +import { shortcutsApiRef, shortcutApi } from './api'; describe('AddShortcut', () => { const api = new DefaultShortcutsApi(MockStorageApi.create()); @@ -80,7 +80,10 @@ describe('AddShortcut', () => { await renderInTestApp( , diff --git a/plugins/shortcuts/src/EditShortcut.test.tsx b/plugins/shortcuts/src/EditShortcut.test.tsx index 618e3c784d..fcd20951dc 100644 --- a/plugins/shortcuts/src/EditShortcut.test.tsx +++ b/plugins/shortcuts/src/EditShortcut.test.tsx @@ -27,7 +27,7 @@ import { } from '@backstage/test-utils'; import { AlertDisplay } from '@backstage/core-components'; import { analyticsApiRef } from '@backstage/core-plugin-api'; -import { shortcutsApiRef } from './api'; +import { shortcutsApiRef, shortcutApi } from './api'; describe('EditShortcut', () => { const shortcut: Shortcut = { @@ -88,7 +88,10 @@ describe('EditShortcut', () => { await renderInTestApp( , From caaa5c8a558e975cf70f8b3152f653dc6f222db1 Mon Sep 17 00:00:00 2001 From: AmbrishRamachandiran Date: Fri, 28 Jul 2023 21:05:57 +0530 Subject: [PATCH 025/372] Limit the use of the same shortcut name when adding a shortcut- test file changes removed Signed-off-by: AmbrishRamachandiran --- plugins/shortcuts/src/AddShortcut.test.tsx | 8 +------- plugins/shortcuts/src/EditShortcut.test.tsx | 8 +------- 2 files changed, 2 insertions(+), 14 deletions(-) diff --git a/plugins/shortcuts/src/AddShortcut.test.tsx b/plugins/shortcuts/src/AddShortcut.test.tsx index 1fcbacb8e6..f8786e2b24 100644 --- a/plugins/shortcuts/src/AddShortcut.test.tsx +++ b/plugins/shortcuts/src/AddShortcut.test.tsx @@ -26,7 +26,6 @@ import { import { AlertDisplay } from '@backstage/core-components'; import { TestApiProvider } from '@backstage/test-utils'; import { analyticsApiRef } from '@backstage/core-plugin-api'; -import { shortcutsApiRef, shortcutApi } from './api'; describe('AddShortcut', () => { const api = new DefaultShortcutsApi(MockStorageApi.create()); @@ -79,12 +78,7 @@ describe('AddShortcut', () => { const spy = jest.spyOn(api, 'add'); await renderInTestApp( - + , ); diff --git a/plugins/shortcuts/src/EditShortcut.test.tsx b/plugins/shortcuts/src/EditShortcut.test.tsx index fcd20951dc..72a89c13b6 100644 --- a/plugins/shortcuts/src/EditShortcut.test.tsx +++ b/plugins/shortcuts/src/EditShortcut.test.tsx @@ -27,7 +27,6 @@ import { } from '@backstage/test-utils'; import { AlertDisplay } from '@backstage/core-components'; import { analyticsApiRef } from '@backstage/core-plugin-api'; -import { shortcutsApiRef, shortcutApi } from './api'; describe('EditShortcut', () => { const shortcut: Shortcut = { @@ -87,12 +86,7 @@ describe('EditShortcut', () => { const spy = jest.spyOn(api, 'update'); await renderInTestApp( - + , ); From fab2acc5c393bffb6d6be5f992a74de778540d95 Mon Sep 17 00:00:00 2001 From: AmbrishRamachandiran Date: Sun, 30 Jul 2023 20:26:28 +0530 Subject: [PATCH 026/372] Limit the use of the same shortcut name and url when adding a shortcut with test cases Signed-off-by: AmbrishRamachandiran --- plugins/shortcuts/src/AddShortcut.test.tsx | 66 +++++++++++++++++---- plugins/shortcuts/src/EditShortcut.test.tsx | 59 +++++++++++++++--- plugins/shortcuts/src/ShortcutForm.test.tsx | 62 ++++++++++++++++--- plugins/shortcuts/src/ShortcutForm.tsx | 7 +++ 4 files changed, 167 insertions(+), 27 deletions(-) diff --git a/plugins/shortcuts/src/AddShortcut.test.tsx b/plugins/shortcuts/src/AddShortcut.test.tsx index f8786e2b24..958e963a3e 100644 --- a/plugins/shortcuts/src/AddShortcut.test.tsx +++ b/plugins/shortcuts/src/AddShortcut.test.tsx @@ -17,7 +17,7 @@ import React from 'react'; import { screen, fireEvent, waitFor } from '@testing-library/react'; import { AddShortcut } from './AddShortcut'; -import { DefaultShortcutsApi } from './api'; +import { DefaultShortcutsApi, shortcutsApiRef } from './api'; import { MockAnalyticsApi, MockStorageApi, @@ -42,13 +42,29 @@ describe('AddShortcut', () => { }); it('displays the title', async () => { - await renderInTestApp(); + await renderInTestApp( + + + , + ); expect(screen.getByText('Add Shortcut')).toBeInTheDocument(); }); it('closes the popup', async () => { - await renderInTestApp(); + await renderInTestApp( + + + , + ); fireEvent.click(screen.getByText('Cancel')); expect(props.onClose).toHaveBeenCalledTimes(1); @@ -57,7 +73,17 @@ describe('AddShortcut', () => { it('saves the input', async () => { const spy = jest.spyOn(api, 'add'); - await renderInTestApp(); + await renderInTestApp( + await renderInTestApp( + + + , + ), + ); const urlInput = screen.getByPlaceholderText('Enter a URL'); const titleInput = screen.getByPlaceholderText('Enter a display name'); @@ -78,7 +104,12 @@ describe('AddShortcut', () => { const spy = jest.spyOn(api, 'add'); await renderInTestApp( - + , ); @@ -106,9 +137,18 @@ describe('AddShortcut', () => { it('pastes the values', async () => { const spy = jest.spyOn(api, 'add'); - await renderInTestApp(, { - routeEntries: ['/some-initial-url'], - }); + await renderInTestApp( + + , + , + { + routeEntries: ['/some-initial-url'], + }, + ); fireEvent.click(screen.getByText('Use current page')); fireEvent.click(screen.getByText('Save')); @@ -125,8 +165,14 @@ describe('AddShortcut', () => { await renderInTestApp( <> - - + + + + , ); diff --git a/plugins/shortcuts/src/EditShortcut.test.tsx b/plugins/shortcuts/src/EditShortcut.test.tsx index 72a89c13b6..3077168193 100644 --- a/plugins/shortcuts/src/EditShortcut.test.tsx +++ b/plugins/shortcuts/src/EditShortcut.test.tsx @@ -18,7 +18,7 @@ import React from 'react'; import { screen, fireEvent, waitFor } from '@testing-library/react'; import { EditShortcut } from './EditShortcut'; import { Shortcut } from './types'; -import { DefaultShortcutsApi } from './api'; +import { DefaultShortcutsApi, shortcutsApiRef } from './api'; import { MockAnalyticsApi, MockStorageApi, @@ -48,13 +48,29 @@ describe('EditShortcut', () => { }); it('displays the title', async () => { - await renderInTestApp(); + await renderInTestApp( + + + , + ); expect(screen.getByText('Edit Shortcut')).toBeInTheDocument(); }); it('closes the popup', async () => { - await renderInTestApp(); + await renderInTestApp( + + + , + ); fireEvent.click(screen.getByText('Cancel')); expect(props.onClose).toHaveBeenCalledTimes(1); @@ -63,7 +79,15 @@ describe('EditShortcut', () => { it('updates the shortcut', async () => { const spy = jest.spyOn(api, 'update'); - await renderInTestApp(); + await renderInTestApp( + + + , + ); const urlInput = screen.getByPlaceholderText('Enter a URL'); const titleInput = screen.getByPlaceholderText('Enter a display name'); @@ -86,7 +110,12 @@ describe('EditShortcut', () => { const spy = jest.spyOn(api, 'update'); await renderInTestApp( - + , ); @@ -115,7 +144,15 @@ describe('EditShortcut', () => { it('removes the shortcut', async () => { const spy = jest.spyOn(api, 'remove'); - await renderInTestApp(); + await renderInTestApp( + + + , + ); fireEvent.click(screen.getByText('Remove')); expect(spy).toHaveBeenCalledWith('id'); @@ -132,8 +169,14 @@ describe('EditShortcut', () => { await renderInTestApp( <> - - + + + + , ); diff --git a/plugins/shortcuts/src/ShortcutForm.test.tsx b/plugins/shortcuts/src/ShortcutForm.test.tsx index 511c1842c3..748f1ad022 100644 --- a/plugins/shortcuts/src/ShortcutForm.test.tsx +++ b/plugins/shortcuts/src/ShortcutForm.test.tsx @@ -16,7 +16,12 @@ import React from 'react'; import { screen, fireEvent, waitFor } from '@testing-library/react'; import { ShortcutForm } from './ShortcutForm'; -import { renderInTestApp } from '@backstage/test-utils'; +import { DefaultShortcutsApi, shortcutsApiRef } from './api'; +import { + renderInTestApp, + TestApiProvider, + MockStorageApi, +} from '@backstage/test-utils'; describe('ShortcutForm', () => { const props = { @@ -25,7 +30,15 @@ describe('ShortcutForm', () => { }; it('displays validation messages', async () => { - await renderInTestApp(); + await renderInTestApp( + + + , + ); const urlInput = screen.getByPlaceholderText('Enter a URL'); const titleInput = screen.getByPlaceholderText('Enter a display name'); @@ -47,7 +60,15 @@ describe('ShortcutForm', () => { }); it('allows external links', async () => { - await renderInTestApp(); + await renderInTestApp( + + + , + ); const urlInput = screen.getByPlaceholderText('Enter a URL'); const titleInput = screen.getByPlaceholderText('Enter a display name'); @@ -69,7 +90,15 @@ describe('ShortcutForm', () => { }); it('allows relative links when external links are enabled', async () => { - await renderInTestApp(); + await renderInTestApp( + + + , + ); const urlInput = screen.getByPlaceholderText('Enter a URL'); const titleInput = screen.getByPlaceholderText('Enter a display name'); @@ -92,10 +121,17 @@ describe('ShortcutForm', () => { it('calls the save handler', async () => { await renderInTestApp( - , + + + , + , ); fireEvent.click(screen.getByText('Save')); @@ -108,7 +144,15 @@ describe('ShortcutForm', () => { }); it('calls the close handler', async () => { - await renderInTestApp(); + await renderInTestApp( + + + , + ); fireEvent.click(screen.getByText('Cancel')); await waitFor(() => { diff --git a/plugins/shortcuts/src/ShortcutForm.tsx b/plugins/shortcuts/src/ShortcutForm.tsx index f5c5152ff7..388d22596e 100644 --- a/plugins/shortcuts/src/ShortcutForm.tsx +++ b/plugins/shortcuts/src/ShortcutForm.tsx @@ -73,6 +73,12 @@ export const ShortcutForm = ({ return true; }; + const urlIsUnique = async (url: string) => { + if (shortcutApi.get().some(shortcutUrl => shortcutUrl.url === url)) + return 'A shortcut with this url already exists'; + return true; + }; + useEffect(() => { reset(formValues); }, [reset, formValues]); @@ -85,6 +91,7 @@ export const ShortcutForm = ({ control={control} rules={{ required: true, + validate: urlIsUnique, ...(allowExternalLinks ? { pattern: { From 3fec69363ba58c98df276a37bd082c2247790d73 Mon Sep 17 00:00:00 2001 From: AmbrishRamachandiran Date: Sun, 30 Jul 2023 20:38:25 +0530 Subject: [PATCH 027/372] Limit the use of the same shortcut name and url when adding a shortcut with test cases Signed-off-by: AmbrishRamachandiran --- plugins/shortcuts/src/ShortcutForm.test.tsx | 3 --- 1 file changed, 3 deletions(-) diff --git a/plugins/shortcuts/src/ShortcutForm.test.tsx b/plugins/shortcuts/src/ShortcutForm.test.tsx index 748f1ad022..773c5491da 100644 --- a/plugins/shortcuts/src/ShortcutForm.test.tsx +++ b/plugins/shortcuts/src/ShortcutForm.test.tsx @@ -53,9 +53,6 @@ describe('ShortcutForm', () => { expect( screen.getByText('Must be at least 2 characters'), ).toBeInTheDocument(); - expect( - screen.getByText('A shortcut with this title already exists'), - ).toBeInTheDocument(); }); }); From 38b272d1f4d494dacf12df38e7a354f221924277 Mon Sep 17 00:00:00 2001 From: AmbrishRamachandiran Date: Mon, 31 Jul 2023 09:58:08 +0530 Subject: [PATCH 028/372] Limit the use of the same shortcut name and url when adding a shortcut with test cases Signed-off-by: AmbrishRamachandiran --- plugins/shortcuts/src/ShortcutForm.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/shortcuts/src/ShortcutForm.tsx b/plugins/shortcuts/src/ShortcutForm.tsx index 388d22596e..a23951c939 100644 --- a/plugins/shortcuts/src/ShortcutForm.tsx +++ b/plugins/shortcuts/src/ShortcutForm.tsx @@ -74,7 +74,7 @@ export const ShortcutForm = ({ }; const urlIsUnique = async (url: string) => { - if (shortcutApi.get().some(shortcutUrl => shortcutUrl.url === url)) + if (shortcutData.get().some(shortcutUrl => shortcutUrl.url === url)) return 'A shortcut with this url already exists'; return true; }; From 900dbea7f7181cd1dddd724e7a68c1b6721ab8a8 Mon Sep 17 00:00:00 2001 From: AmbrishRamachandiran Date: Mon, 31 Jul 2023 10:05:31 +0530 Subject: [PATCH 029/372] Limit the use of the same shortcut name and url when adding a shortcut with test cases Signed-off-by: AmbrishRamachandiran --- plugins/shortcuts/src/ShortcutForm.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/shortcuts/src/ShortcutForm.tsx b/plugins/shortcuts/src/ShortcutForm.tsx index a23951c939..4384f1c061 100644 --- a/plugins/shortcuts/src/ShortcutForm.tsx +++ b/plugins/shortcuts/src/ShortcutForm.tsx @@ -74,7 +74,7 @@ export const ShortcutForm = ({ }; const urlIsUnique = async (url: string) => { - if (shortcutData.get().some(shortcutUrl => shortcutUrl.url === url)) + if (shortcutData.some(shortcutUrl => shortcutUrl.url === url)) return 'A shortcut with this url already exists'; return true; }; From 433288347d60d8703994f8da3d2b60a39c1715e7 Mon Sep 17 00:00:00 2001 From: AmbrishRamachandiran Date: Mon, 31 Jul 2023 10:12:05 +0530 Subject: [PATCH 030/372] Limit the use of the same shortcut name and url when adding a shortcut with test case error message added Signed-off-by: AmbrishRamachandiran --- plugins/shortcuts/src/AddShortcut.test.tsx | 16 +++++++--------- plugins/shortcuts/src/ShortcutForm.test.tsx | 6 ++++++ 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/plugins/shortcuts/src/AddShortcut.test.tsx b/plugins/shortcuts/src/AddShortcut.test.tsx index 958e963a3e..35f37bc265 100644 --- a/plugins/shortcuts/src/AddShortcut.test.tsx +++ b/plugins/shortcuts/src/AddShortcut.test.tsx @@ -74,15 +74,13 @@ describe('AddShortcut', () => { const spy = jest.spyOn(api, 'add'); await renderInTestApp( - await renderInTestApp( - - - , - ), + + + , ); const urlInput = screen.getByPlaceholderText('Enter a URL'); diff --git a/plugins/shortcuts/src/ShortcutForm.test.tsx b/plugins/shortcuts/src/ShortcutForm.test.tsx index 773c5491da..8eda30e1ae 100644 --- a/plugins/shortcuts/src/ShortcutForm.test.tsx +++ b/plugins/shortcuts/src/ShortcutForm.test.tsx @@ -53,6 +53,12 @@ describe('ShortcutForm', () => { expect( screen.getByText('Must be at least 2 characters'), ).toBeInTheDocument(); + expect( + screen.getByText('A shortcut with this title already exists'), + ).toBeInTheDocument(); + expect( + screen.getByText('A shortcut with this url already exists'), + ).toBeInTheDocument(); }); }); From b5321414b2045833387a308a381b3522e8bc7635 Mon Sep 17 00:00:00 2001 From: AmbrishRamachandiran Date: Mon, 31 Jul 2023 11:44:53 +0530 Subject: [PATCH 031/372] Limit the use of the same shortcut name and url when adding a shortcut with test case error message removed Signed-off-by: AmbrishRamachandiran --- plugins/shortcuts/src/ShortcutForm.test.tsx | 6 ------ 1 file changed, 6 deletions(-) diff --git a/plugins/shortcuts/src/ShortcutForm.test.tsx b/plugins/shortcuts/src/ShortcutForm.test.tsx index 8eda30e1ae..773c5491da 100644 --- a/plugins/shortcuts/src/ShortcutForm.test.tsx +++ b/plugins/shortcuts/src/ShortcutForm.test.tsx @@ -53,12 +53,6 @@ describe('ShortcutForm', () => { expect( screen.getByText('Must be at least 2 characters'), ).toBeInTheDocument(); - expect( - screen.getByText('A shortcut with this title already exists'), - ).toBeInTheDocument(); - expect( - screen.getByText('A shortcut with this url already exists'), - ).toBeInTheDocument(); }); }); From 2167b7eab09bea146fc71816d409883e4465b858 Mon Sep 17 00:00:00 2001 From: Robert Bunning Date: Mon, 31 Jul 2023 12:51:30 -0400 Subject: [PATCH 032/372] Add pagination support to newrelic plugin Signed-off-by: Robert Bunning --- .changeset/khaki-camels-rush.md | 5 + app-config.yaml | 2 + plugins/newrelic/README.md | 4 + plugins/newrelic/src/api/index.test.ts | 312 +++++++++++++++++++++++++ plugins/newrelic/src/api/index.ts | 91 ++++++-- plugins/newrelic/src/plugin.ts | 9 +- 6 files changed, 408 insertions(+), 15 deletions(-) create mode 100644 .changeset/khaki-camels-rush.md create mode 100644 plugins/newrelic/src/api/index.test.ts diff --git a/.changeset/khaki-camels-rush.md b/.changeset/khaki-camels-rush.md new file mode 100644 index 0000000000..a38600abf3 --- /dev/null +++ b/.changeset/khaki-camels-rush.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-newrelic': patch +--- + +The newrelic plugin now supports pagination when retrieving results from newrelic. It will no longer truncate results. To see all applications, the link header will need to be allowed through the proxy (see the newrelic plugin readme). diff --git a/app-config.yaml b/app-config.yaml index 2b562ee689..da505d390b 100644 --- a/app-config.yaml +++ b/app-config.yaml @@ -70,6 +70,8 @@ proxy: target: https://api.newrelic.com/v2 headers: X-Api-Key: ${NEW_RELIC_REST_API_KEY} + allowedHeaders: + - link '/newrelic/api': target: https://api.newrelic.com diff --git a/plugins/newrelic/README.md b/plugins/newrelic/README.md index 8ac7ed2c72..14049ba39c 100644 --- a/plugins/newrelic/README.md +++ b/plugins/newrelic/README.md @@ -18,6 +18,8 @@ APIs. target: https://api.newrelic.com/v2 headers: X-Api-Key: ${NEW_RELIC_REST_API_KEY} + allowedHeaders: + - link ``` There is some types of api key on new relic, to this use must be `User` type of key, In your production deployment of Backstage, you would also need to ensure that @@ -33,6 +35,8 @@ APIs. '/newrelic/apm/api': headers: X-Api-Key: NRRA-YourActualApiKey + allowedHeaders: + - link ``` Read more about how to find or generate this key in diff --git a/plugins/newrelic/src/api/index.test.ts b/plugins/newrelic/src/api/index.test.ts new file mode 100644 index 0000000000..13d9c5304d --- /dev/null +++ b/plugins/newrelic/src/api/index.test.ts @@ -0,0 +1,312 @@ +/* + * 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 { NewRelicClient } from '.'; +import { FetchApi } from '@backstage/core-plugin-api'; +import { DiscoveryApi } from '@backstage/core-plugin-api'; + +beforeEach(() => { + jest.resetAllMocks(); +}); + +describe('NewRelicClient', () => { + test.each([ + ['https://test.test/BASEPATH/apm/api/applications.json', '/BASEPATH'], + ['https://test.test/BASEPATH2/apm/api/applications.json', '/BASEPATH2'], + ['https://test.testBASEPATH3/apm/api/applications.json', 'BASEPATH3'], + ['https://test.test/newrelic/apm/api/applications.json', undefined], + ])( + 'It correctly forms the request url (%p) when proxyPathBase is %p', + async (expectedUrl, basePathOverride) => { + const mockedDiscoveryApi: DiscoveryApi = { + getBaseUrl: jest.fn().mockResolvedValueOnce('https://test.test'), + }; + + const mockedFetchApi: FetchApi = { + fetch: jest.fn().mockResolvedValueOnce({ + ok: true, + json: async () => [], + headers: new Map(), + }), + }; + + const client = new NewRelicClient({ + discoveryApi: mockedDiscoveryApi, + fetchApi: mockedFetchApi, + proxyPathBase: basePathOverride, + }); + await client.getApplications(); + + expect(mockedFetchApi.fetch).toHaveBeenCalledWith(expectedUrl); + }, + ); + + it('Correctly reads all pages of results and returns the expected results', async () => { + const mockedDiscoveryApi: DiscoveryApi = { + getBaseUrl: jest.fn().mockResolvedValueOnce('https://test.test'), + }; + + const mockedApplicationOne = { + id: 1, + application_summary: { + apdex_score: 0, + error_rate: 100, + host_count: 500, + instance_count: 5000, + response_time: 20, + throughput: 500000, + }, + name: 'Testing Application #1', + language: 'en-us', + health_status: 'Failing', + reporting: true, + settings: { + app_apdex_threshold: 0, + end_user_apdex_threshold: 0, + enable_real_user_monitoring: true, + use_server_side_config: true, + }, + }; + + const mockedApplicationTwo = { + id: 2, + name: 'Testing Application #2', + language: 'en-us', + health_status: 'Working', + reporting: true, + settings: { + app_apdex_threshold: 0, + end_user_apdex_threshold: 0, + enable_real_user_monitoring: true, + use_server_side_config: true, + }, + }; + + const mockedApplicationThree = { + id: 3, + application_summary: { + apdex_score: -900, + error_rate: 0, + host_count: 0, + instance_count: 0, + response_time: 0, + throughput: 0, + }, + name: 'Testing Application #3', + language: 'en-us', + health_status: 'Waiting', + reporting: false, + settings: { + app_apdex_threshold: 1000, + end_user_apdex_threshold: 500, + enable_real_user_monitoring: false, + use_server_side_config: false, + }, + }; + + const mockedFetchApi: FetchApi = { + fetch: jest + .fn() + .mockResolvedValueOnce({ + ok: true, + json: async () => ({ applications: [mockedApplicationOne] }), + headers: new Map([ + [ + 'link', + '; rel="next", ; rel="next"', + ], + ['otherheader', 'otherValue'], + ]), + }) + .mockResolvedValueOnce({ + ok: true, + json: async () => ({ applications: [] }), + headers: new Map([ + ['Link', '; rel="next",'], + ]), + }) + .mockResolvedValueOnce({ + ok: true, + json: async () => ({ + applications: [mockedApplicationTwo, mockedApplicationThree], + }), + headers: new Map([ + [ + 'link', + '; rel="first", ; rel="next"', + ], + ]), + }), + }; + + const client = new NewRelicClient({ + discoveryApi: mockedDiscoveryApi, + fetchApi: mockedFetchApi, + }); + const actual = await client.getApplications(); + const expected = { + applications: [ + mockedApplicationOne, + mockedApplicationTwo, + mockedApplicationThree, + ], + }; + + expect(mockedFetchApi.fetch).toHaveBeenCalledTimes(3); + expect(mockedFetchApi.fetch).toHaveBeenCalledWith( + 'https://test.test/newrelic/apm/api/applications.json', + ); + expect(mockedFetchApi.fetch).toHaveBeenCalledWith( + 'https://next.page/page2', + ); + expect(mockedFetchApi.fetch).toHaveBeenCalledWith( + 'https://next.page/page3', + ); + expect(actual).toStrictEqual(expected); + }); + + test.each([['LINK'], ['lINK']])( + 'It does not attempt pagination when the link header name is invalid (%p)', + async linkHeaderName => { + const mockedDiscoveryApi: DiscoveryApi = { + getBaseUrl: jest.fn().mockResolvedValueOnce('https://test.test'), + }; + + const mockedFetchApi: FetchApi = { + fetch: jest.fn().mockResolvedValueOnce({ + ok: true, + json: async () => ({ applications: [] }), + headers: new Map([ + [ + linkHeaderName, + '; rel="next", ; rel="next"', + ], + ['otherheader', 'otherValue'], + ]), + }), + }; + + const client = new NewRelicClient({ + discoveryApi: mockedDiscoveryApi, + fetchApi: mockedFetchApi, + }); + await client.getApplications(); + + expect(mockedFetchApi.fetch).toHaveBeenCalledTimes(1); + expect(mockedFetchApi.fetch).toHaveBeenCalledWith( + 'https://test.test/newrelic/apm/api/applications.json', + ); + }, + ); + + test.each([ + [''], + ['<> rel=""'], + ['<>; rel=""'], + ['; rel=""'], + ['<>; rel:"value"'], + ['; rel: "next"'], + ['ABCDE'], + ])( + 'It does not attempt pagination when the link header value is invalid (%p)', + async linkHeaderValue => { + const mockedDiscoveryApi: DiscoveryApi = { + getBaseUrl: jest.fn().mockResolvedValueOnce('https://test.test'), + }; + + const mockedFetchApi: FetchApi = { + fetch: jest.fn().mockResolvedValueOnce({ + ok: true, + json: async () => ({ applications: [] }), + headers: new Map([ + ['Link', linkHeaderValue], + ['otherheader', 'otherValue'], + ]), + }), + }; + + const client = new NewRelicClient({ + discoveryApi: mockedDiscoveryApi, + fetchApi: mockedFetchApi, + }); + await client.getApplications(); + + expect(mockedFetchApi.fetch).toHaveBeenCalledTimes(1); + expect(mockedFetchApi.fetch).toHaveBeenCalledWith( + 'https://test.test/newrelic/apm/api/applications.json', + ); + }, + ); + + test.each([ + [ + { + ok: false, + statusText: 'statusText', + json: async () => ({ error: { title: 'TESTING' } }), + }, + ], + [ + { + ok: false, + statusText: 'statusText', + json: async () => ({}), + }, + ], + ])( + 'It returns an empty array of applications when the fetch is not okay', + async fetchResult => { + const mockedDiscoveryApi: DiscoveryApi = { + getBaseUrl: jest.fn().mockResolvedValueOnce('https://test.test'), + }; + + const mockedFetchApi: FetchApi = { + fetch: jest.fn().mockResolvedValueOnce({ + ok: true, + json: async () => fetchResult, + }), + }; + + const client = new NewRelicClient({ + discoveryApi: mockedDiscoveryApi, + fetchApi: mockedFetchApi, + }); + const actual = await client.getApplications(); + + expect(actual).toStrictEqual({ applications: [] }); + }, + ); + + it('Returns an empty array when the fetch itself throws an error', async () => { + const mockedDiscoveryApi: DiscoveryApi = { + getBaseUrl: jest.fn().mockResolvedValueOnce('https://test.test'), + }; + + const mockedFetchApi: FetchApi = { + fetch: () => { + throw new Error('TESTING'); + }, + }; + + const client = new NewRelicClient({ + discoveryApi: mockedDiscoveryApi, + fetchApi: mockedFetchApi, + }); + const actual = await client.getApplications(); + + expect(actual).toStrictEqual({ applications: [] }); + }); +}); diff --git a/plugins/newrelic/src/api/index.ts b/plugins/newrelic/src/api/index.ts index 2734dd2b4f..9c95f3fe1f 100644 --- a/plugins/newrelic/src/api/index.ts +++ b/plugins/newrelic/src/api/index.ts @@ -14,7 +14,11 @@ * limitations under the License. */ -import { createApiRef, DiscoveryApi } from '@backstage/core-plugin-api'; +import { + createApiRef, + DiscoveryApi, + FetchApi, +} from '@backstage/core-plugin-api'; export type NewRelicApplication = { id: number; @@ -61,6 +65,7 @@ const DEFAULT_PROXY_PATH_BASE = '/newrelic'; type Options = { discoveryApi: DiscoveryApi; + fetchApi: FetchApi; /** * Path to use for requests via the proxy, defaults to /newrelic */ @@ -71,27 +76,58 @@ export interface NewRelicApi { getApplications(): Promise; } +interface PaginationInformation { + nextPageLink: string; + relation: string; +} + +interface NewRelicPageReadResult { + hasMoreApplications: boolean; + pagination: PaginationInformation | undefined; + applicationsFromReadPage: NewRelicApplication[]; +} + export class NewRelicClient implements NewRelicApi { private readonly discoveryApi: DiscoveryApi; + private readonly fetchApi: FetchApi; private readonly proxyPathBase: string; constructor(options: Options) { this.discoveryApi = options.discoveryApi; + this.fetchApi = options.fetchApi; this.proxyPathBase = options.proxyPathBase ?? DEFAULT_PROXY_PATH_BASE; } async getApplications(): Promise { - const url = await this.getApiUrl('apm', 'applications.json'); - const response = await fetch(url); - let responseJson; + const proxyUrl = await this.discoveryApi.getBaseUrl('proxy'); + let targetUrl = `${proxyUrl}${this.proxyPathBase}/apm/api/applications.json`; + let hasNextPage = true; try { - responseJson = await response.json(); - } catch (e) { - responseJson = { applications: [] }; - } + let applications: NewRelicApplication[] = []; - if (response.status !== 200) { + do { + const { hasMoreApplications, pagination, applicationsFromReadPage } = + await this.fetchNewRelic(targetUrl); + + hasNextPage = hasMoreApplications; + targetUrl = pagination!.nextPageLink; + applications = applications.concat(applicationsFromReadPage); + } while (hasNextPage); + + return { applications }; + } catch (e) { + return { applications: [] }; + } + } + + private async fetchNewRelic( + targetUrl: string, + ): Promise { + const response = await this.fetchApi.fetch(targetUrl); + const responseJson = await response.json(); + + if (!response.ok) { throw new Error( `Error communicating with New Relic: ${ responseJson?.error?.title || response.statusText @@ -99,11 +135,40 @@ export class NewRelicClient implements NewRelicApi { ); } - return responseJson; + const readResponse = responseJson as NewRelicApplications; + const linkHeader = + response.headers.get('Link') || response.headers.get('link'); + const pagination = this.parseLinkHeader(linkHeader); + + return { + hasMoreApplications: !!(pagination && pagination.relation === 'next'), + pagination, + applicationsFromReadPage: readResponse.applications, + }; } - private async getApiUrl(product: string, path: string) { - const proxyUrl = await this.discoveryApi.getBaseUrl('proxy'); - return `${proxyUrl}${this.proxyPathBase}/${product}/api/${path}`; + private parseLinkHeader( + linkHeader: string | null, + ): PaginationInformation | undefined { + if (!linkHeader) { + return undefined; + } + + const nextRelevantLink = linkHeader.replaceAll(' ', '').split(',')[0]; + + // Link should be of the format ;rel="relation" + const linkParts = nextRelevantLink.match(/^<(.+)>;rel="(.+)"$/); + const nextPageLink = linkParts?.[1]; + const relation = linkParts?.[2]; + const isValidLink = !!(!!linkParts && nextPageLink && relation); + + if (!nextRelevantLink || !isValidLink) { + return undefined; + } + + return { + nextPageLink, + relation, + }; } } diff --git a/plugins/newrelic/src/plugin.ts b/plugins/newrelic/src/plugin.ts index 0387c50aa9..da7cae9b93 100644 --- a/plugins/newrelic/src/plugin.ts +++ b/plugins/newrelic/src/plugin.ts @@ -20,6 +20,7 @@ import { createPlugin, createRouteRef, discoveryApiRef, + fetchApiRef, createRoutableExtension, } from '@backstage/core-plugin-api'; @@ -33,8 +34,12 @@ export const newRelicPlugin = createPlugin({ apis: [ createApiFactory({ api: newRelicApiRef, - deps: { discoveryApi: discoveryApiRef }, - factory: ({ discoveryApi }) => new NewRelicClient({ discoveryApi }), + deps: { + discoveryApi: discoveryApiRef, + fetchApi: fetchApiRef, + }, + factory: ({ discoveryApi, fetchApi }) => + new NewRelicClient({ discoveryApi, fetchApi }), }), ], routes: { From 2b41e9397486c1fb1bcc2b137c605e1282d9487a Mon Sep 17 00:00:00 2001 From: Chris James Date: Mon, 31 Jul 2023 16:43:53 -0700 Subject: [PATCH 033/372] Adding the ability to not render the change events tab for the PD card when viewing an entity Signed-off-by: Chris James --- .../components/EntityPagerDutyCard/index.tsx | 11 +++++++++-- .../src/components/PagerDutyCard/index.tsx | 19 ++++++++++++------- 2 files changed, 21 insertions(+), 9 deletions(-) diff --git a/plugins/pagerduty/src/components/EntityPagerDutyCard/index.tsx b/plugins/pagerduty/src/components/EntityPagerDutyCard/index.tsx index 50e6f3a096..b252069b90 100644 --- a/plugins/pagerduty/src/components/EntityPagerDutyCard/index.tsx +++ b/plugins/pagerduty/src/components/EntityPagerDutyCard/index.tsx @@ -30,12 +30,19 @@ export const isPluginApplicableToEntity = (entity: Entity) => /** @public */ export type EntityPagerDutyCardProps = { readOnly?: boolean; + disableChangeEvents?: boolean; }; /** @public */ export const EntityPagerDutyCard = (props: EntityPagerDutyCardProps) => { - const { readOnly } = props; + const { readOnly, disableChangeEvents } = props; const { entity } = useEntity(); const pagerDutyEntity = getPagerDutyEntity(entity); - return ; + return ( + + ); }; diff --git a/plugins/pagerduty/src/components/PagerDutyCard/index.tsx b/plugins/pagerduty/src/components/PagerDutyCard/index.tsx index bb89865c5f..a10dc1984b 100644 --- a/plugins/pagerduty/src/components/PagerDutyCard/index.tsx +++ b/plugins/pagerduty/src/components/PagerDutyCard/index.tsx @@ -46,11 +46,12 @@ const BasicCard = ({ children }: { children: ReactNode }) => ( /** @public */ export type PagerDutyCardProps = PagerDutyEntity & { readOnly?: boolean; + disableChangeEvents?: boolean; }; /** @public */ export const PagerDutyCard = (props: PagerDutyCardProps) => { - const { readOnly, integrationKey, name } = props; + const { readOnly, disableChangeEvents, integrationKey, name } = props; const api = useApi(pagerDutyApiRef); const [refreshIncidents, setRefreshIncidents] = useState(false); const [refreshChangeEvents, setRefreshChangeEvents] = @@ -169,12 +170,16 @@ export const PagerDutyCard = (props: PagerDutyCardProps) => { refreshIncidents={refreshIncidents} /> - - - + <> + {disableChangeEvents === true && ( + + + + )} + From e33e07547ec592c5e03970b7dd844b5e53faaa20 Mon Sep 17 00:00:00 2001 From: Chris James Date: Mon, 31 Jul 2023 16:46:06 -0700 Subject: [PATCH 034/372] Fix conditional Signed-off-by: Chris James --- plugins/pagerduty/src/components/PagerDutyCard/index.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/pagerduty/src/components/PagerDutyCard/index.tsx b/plugins/pagerduty/src/components/PagerDutyCard/index.tsx index a10dc1984b..332d823f1f 100644 --- a/plugins/pagerduty/src/components/PagerDutyCard/index.tsx +++ b/plugins/pagerduty/src/components/PagerDutyCard/index.tsx @@ -171,7 +171,7 @@ export const PagerDutyCard = (props: PagerDutyCardProps) => { /> <> - {disableChangeEvents === true && ( + {disableChangeEvents !== true && ( Date: Mon, 31 Jul 2023 17:00:30 -0700 Subject: [PATCH 035/372] Adding api report Signed-off-by: Chris James --- plugins/pagerduty/api-report.md | 1 + 1 file changed, 1 insertion(+) diff --git a/plugins/pagerduty/api-report.md b/plugins/pagerduty/api-report.md index dd24aa9bec..f398a6bee7 100644 --- a/plugins/pagerduty/api-report.md +++ b/plugins/pagerduty/api-report.md @@ -22,6 +22,7 @@ export const EntityPagerDutyCard: ( // @public (undocumented) export type EntityPagerDutyCardProps = { readOnly?: boolean; + disableChangeEvents?: boolean; }; // @public (undocumented) From 8e741a1bd29b92c767e9b308f151d10468be1980 Mon Sep 17 00:00:00 2001 From: Connor Younglund Date: Tue, 1 Aug 2023 08:42:10 -0400 Subject: [PATCH 036/372] renamed config and variables Signed-off-by: Connor Younglund --- .changeset/warm-peas-hang.md | 2 +- plugins/sonarqube-backend/README.md | 6 +++--- plugins/sonarqube-backend/api-report.md | 6 +++--- plugins/sonarqube-backend/config.d.ts | 4 ++-- .../src/service/router.test.ts | 6 +++--- .../sonarqube-backend/src/service/router.ts | 4 ++-- .../src/service/sonarqubeInfoProvider.test.ts | 12 ++++++------ .../src/service/sonarqubeInfoProvider.ts | 19 ++++++++++--------- 8 files changed, 30 insertions(+), 29 deletions(-) diff --git a/.changeset/warm-peas-hang.md b/.changeset/warm-peas-hang.md index 685bdc2489..a8a40c1ccd 100644 --- a/.changeset/warm-peas-hang.md +++ b/.changeset/warm-peas-hang.md @@ -2,4 +2,4 @@ '@backstage/plugin-sonarqube-backend': minor --- -Added optional `externalUrl` config for setting a different frontend URL +Added optional `externalBaseUrl` config for setting a different frontend URL diff --git a/plugins/sonarqube-backend/README.md b/plugins/sonarqube-backend/README.md index 9061dc9d1d..b417fea7c4 100644 --- a/plugins/sonarqube-backend/README.md +++ b/plugins/sonarqube-backend/README.md @@ -141,14 +141,14 @@ sonarqube: #### Example - Different frontend and backend URLs In some instances, you might want to use one URL for the backend and another for the frontend. -This can be achieved by using the optional `externalUrl` property in the config. +This can be achieved by using the optional `externalBaseUrl` property in the config. ##### Single instance config ```yaml sonarqube: baseUrl: https://sonarqube-internal.example.com - externalUrl: https://sonarqube.example.com + externalBaseUrl: https://sonarqube.example.com apiKey: 123456789abcdef0123456789abcedf012 ``` @@ -159,7 +159,7 @@ sonarqube: instances: - name: default baseUrl: https://default-sonarqube-internal.example.com - externalUrl: https://default-sonarqube.example.com + externalBaseUrl: https://default-sonarqube.example.com apiKey: 123456789abcdef0123456789abcedf012 - name: specialProject baseUrl: https://special-project-sonarqube.example.com diff --git a/plugins/sonarqube-backend/api-report.md b/plugins/sonarqube-backend/api-report.md index cf0314aad1..535db37185 100644 --- a/plugins/sonarqube-backend/api-report.md +++ b/plugins/sonarqube-backend/api-report.md @@ -15,7 +15,7 @@ export class DefaultSonarqubeInfoProvider implements SonarqubeInfoProvider { static fromConfig(config: Config): DefaultSonarqubeInfoProvider; getBaseUrl(options?: { instanceName?: string }): { baseUrl: string; - externalUrl?: string; + externalBaseUrl?: string; }; getFindings(options: { componentKey: string; @@ -50,7 +50,7 @@ export interface SonarqubeFindings { export interface SonarqubeInfoProvider { getBaseUrl(options?: { instanceName?: string }): { baseUrl: string; - externalUrl?: string; + externalBaseUrl?: string; }; getFindings(options: { componentKey: string; @@ -62,7 +62,7 @@ export interface SonarqubeInfoProvider { export interface SonarqubeInstanceConfig { apiKey: string; baseUrl: string; - externalUrl?: string; + externalBaseUrl?: string; name: string; } diff --git a/plugins/sonarqube-backend/config.d.ts b/plugins/sonarqube-backend/config.d.ts index 0e2ac1ca64..6e03a53f0c 100644 --- a/plugins/sonarqube-backend/config.d.ts +++ b/plugins/sonarqube-backend/config.d.ts @@ -28,7 +28,7 @@ export interface Config { * Use this if you want to use a different url for the frontend than the backend. * @visibility frontend */ - externalUrl?: string; + externalBaseUrl?: string; /** * The api key to access the sonarqube instance under baseUrl. @@ -58,7 +58,7 @@ export interface Config { * Use this if you want to use a different url for the frontend than the backend. * @visibility frontend */ - externalUrl?: string; + externalBaseUrl?: string; /** * The api key to access the sonarqube instance. diff --git a/plugins/sonarqube-backend/src/service/router.test.ts b/plugins/sonarqube-backend/src/service/router.test.ts index bede4c7f6f..b40e2d1528 100644 --- a/plugins/sonarqube-backend/src/service/router.test.ts +++ b/plugins/sonarqube-backend/src/service/router.test.ts @@ -24,7 +24,7 @@ import { SonarqubeFindings } from './sonarqubeInfoProvider'; describe('createRouter', () => { let app: express.Express; const getBaseUrlMock: jest.Mock< - { baseUrl: string; externalUrl?: string }, + { baseUrl: string; externalBaseUrl?: string }, [{ instanceName: string }] > = jest.fn(); const getFindingsMock: jest.Mock< @@ -147,10 +147,10 @@ describe('createRouter', () => { expect(response.body).toEqual({ instanceUrl: DUMMY_INSTANCE_URL }); }); - it('returns the external url when provided', async () => { + it('returns the external base url when provided', async () => { getBaseUrlMock.mockReturnValue({ baseUrl: DUMMY_INSTANCE_URL, - externalUrl: DUMMY_INSTANCE_EXTERNAL_URL, + externalBaseUrl: DUMMY_INSTANCE_EXTERNAL_URL, }); const response = await request(app).get('/instanceUrl').send(); expect(response.status).toEqual(200); diff --git a/plugins/sonarqube-backend/src/service/router.ts b/plugins/sonarqube-backend/src/service/router.ts index 9c63c5c3cd..5a993b5d59 100644 --- a/plugins/sonarqube-backend/src/service/router.ts +++ b/plugins/sonarqube-backend/src/service/router.ts @@ -81,11 +81,11 @@ export async function createRouter( ? `Retrieving sonarqube instance URL for key ${instanceKey}` : `Retrieving default sonarqube instance URL as instanceKey is not provided`, ); - const { baseUrl, externalUrl } = sonarqubeInfoProvider.getBaseUrl({ + const { baseUrl, externalBaseUrl } = sonarqubeInfoProvider.getBaseUrl({ instanceName: instanceKey, }); response.json({ - instanceUrl: externalUrl || baseUrl, + instanceUrl: externalBaseUrl || baseUrl, }); }); diff --git a/plugins/sonarqube-backend/src/service/sonarqubeInfoProvider.test.ts b/plugins/sonarqube-backend/src/service/sonarqubeInfoProvider.test.ts index 151f767974..468020c1b3 100644 --- a/plugins/sonarqube-backend/src/service/sonarqubeInfoProvider.test.ts +++ b/plugins/sonarqube-backend/src/service/sonarqubeInfoProvider.test.ts @@ -302,22 +302,22 @@ describe('DefaultSonarqubeInfoProvider', () => { }); }); - it('Provide external url for simple config', async () => { + it('Provide external base url for simple config', async () => { const provider = configureProvider({ sonarqube: { baseUrl: 'https://sonarqube-internal.example.com', - externalUrl: 'https://sonarqube.example.com', + externalBaseUrl: 'https://sonarqube.example.com', apiKey: '123456789abcdef0123456789abcedf012', }, }); expect(provider.getBaseUrl()).toEqual({ baseUrl: 'https://sonarqube-internal.example.com', - externalUrl: 'https://sonarqube.example.com', + externalBaseUrl: 'https://sonarqube.example.com', }); }); - it('Provide external url for named config', async () => { + it('Provide external base url for named config', async () => { const provider = configureProvider({ sonarqube: { instances: [ @@ -329,7 +329,7 @@ describe('DefaultSonarqubeInfoProvider', () => { { name: 'other', baseUrl: 'https://sonarqube-other-internal.example.com', - externalUrl: 'https://sonarqube-other.example.com', + externalBaseUrl: 'https://sonarqube-other.example.com', apiKey: '123456789abcdef0123456789abcedf012', }, ], @@ -338,7 +338,7 @@ describe('DefaultSonarqubeInfoProvider', () => { expect(provider.getBaseUrl({ instanceName: 'other' })).toEqual({ baseUrl: 'https://sonarqube-other-internal.example.com', - externalUrl: 'https://sonarqube-other.example.com', + externalBaseUrl: 'https://sonarqube-other.example.com', }); }); }); diff --git a/plugins/sonarqube-backend/src/service/sonarqubeInfoProvider.ts b/plugins/sonarqube-backend/src/service/sonarqubeInfoProvider.ts index 6277f6f57e..a5c0bf985a 100644 --- a/plugins/sonarqube-backend/src/service/sonarqubeInfoProvider.ts +++ b/plugins/sonarqube-backend/src/service/sonarqubeInfoProvider.ts @@ -32,7 +32,7 @@ export interface SonarqubeInfoProvider { */ getBaseUrl(options?: { instanceName?: string }): { baseUrl: string; - externalUrl?: string; + externalBaseUrl?: string; }; /** @@ -102,7 +102,7 @@ export interface SonarqubeInstanceConfig { /** * External url to access the instance from the frontend */ - externalUrl?: string; + externalBaseUrl?: string; /** * Access token to access the sonarqube instance as generated in user profile. */ @@ -139,7 +139,7 @@ export class SonarqubeConfig { sonarqubeConfig.getOptionalConfigArray('instances')?.map(c => ({ name: c.getString('name'), baseUrl: c.getString('baseUrl'), - externalUrl: c.getOptionalString('externalUrl'), + externalBaseUrl: c.getOptionalString('externalBaseUrl'), apiKey: c.getString('apiKey'), })) || []; @@ -150,10 +150,11 @@ export class SonarqubeConfig { // Get these as optional strings and check to give a better error message const baseUrl = sonarqubeConfig.getOptionalString('baseUrl'); - const externalUrl = sonarqubeConfig.getOptionalString('externalUrl'); + const externalBaseUrl = + sonarqubeConfig.getOptionalString('externalBaseUrl'); const apiKey = sonarqubeConfig.getOptionalString('apiKey'); - if (hasNamedDefault && (baseUrl || externalUrl || apiKey)) { + if (hasNamedDefault && (baseUrl || externalBaseUrl || apiKey)) { throw new Error( `Found both a named sonarqube instance with name ${DEFAULT_SONARQUBE_NAME} and top level baseUrl or apiKey config. Use only one style of config.`, ); @@ -169,11 +170,11 @@ export class SonarqubeConfig { if (unnamedAllPresent) { const unnamedInstanceConfig = [ - { name: DEFAULT_SONARQUBE_NAME, baseUrl, externalUrl, apiKey }, + { name: DEFAULT_SONARQUBE_NAME, baseUrl, externalBaseUrl, apiKey }, ] as { name: string; baseUrl: string; - externalUrl?: string; + externalBaseUrl?: string; apiKey: string; }[]; @@ -313,14 +314,14 @@ export class DefaultSonarqubeInfoProvider implements SonarqubeInfoProvider { */ getBaseUrl(options: { instanceName?: string } = {}): { baseUrl: string; - externalUrl?: string; + externalBaseUrl?: string; } { const instanceConfig = this.config.getInstanceConfig({ sonarqubeName: options.instanceName, }); return { baseUrl: instanceConfig.baseUrl, - externalUrl: instanceConfig.externalUrl, + externalBaseUrl: instanceConfig.externalBaseUrl, }; } From f55b6fd1e28e0dd67a6974a2acb507e2b3538221 Mon Sep 17 00:00:00 2001 From: Robert Bunning Date: Tue, 1 Aug 2023 11:20:31 -0400 Subject: [PATCH 037/372] Ensure subsequent page reads are run through the proxy Signed-off-by: Robert Bunning --- plugins/newrelic/src/api/index.test.ts | 34 +++++++++++++++++++++++--- plugins/newrelic/src/api/index.ts | 22 +++++++++++------ 2 files changed, 44 insertions(+), 12 deletions(-) diff --git a/plugins/newrelic/src/api/index.test.ts b/plugins/newrelic/src/api/index.test.ts index 13d9c5304d..69cf74066f 100644 --- a/plugins/newrelic/src/api/index.test.ts +++ b/plugins/newrelic/src/api/index.test.ts @@ -126,7 +126,7 @@ describe('NewRelicClient', () => { headers: new Map([ [ 'link', - '; rel="next", ; rel="next"', + '; rel="next", ; rel="next"', ], ['otherheader', 'otherValue'], ]), @@ -135,7 +135,7 @@ describe('NewRelicClient', () => { ok: true, json: async () => ({ applications: [] }), headers: new Map([ - ['Link', '; rel="next",'], + ['Link', '; rel="next",'], ]), }) .mockResolvedValueOnce({ @@ -170,10 +170,10 @@ describe('NewRelicClient', () => { 'https://test.test/newrelic/apm/api/applications.json', ); expect(mockedFetchApi.fetch).toHaveBeenCalledWith( - 'https://next.page/page2', + 'https://test.test/newrelic/apm/api/applications.json?page=2', ); expect(mockedFetchApi.fetch).toHaveBeenCalledWith( - 'https://next.page/page3', + 'https://test.test/newrelic/apm/api/applications.json?page=3', ); expect(actual).toStrictEqual(expected); }); @@ -220,6 +220,7 @@ describe('NewRelicClient', () => { ['<>; rel:"value"'], ['; rel: "next"'], ['ABCDE'], + ['; rel="next",'], ])( 'It does not attempt pagination when the link header value is invalid (%p)', async linkHeaderValue => { @@ -309,4 +310,29 @@ describe('NewRelicClient', () => { expect(actual).toStrictEqual({ applications: [] }); }); + + it('Generates the base url only once', async () => { + const mockedDiscoveryApi: DiscoveryApi = { + getBaseUrl: jest.fn().mockResolvedValueOnce('https://test.test'), + }; + + const mockedFetchApi: FetchApi = { + fetch: jest.fn().mockResolvedValue({ + ok: true, + json: async () => ({ applications: [] }), + }), + }; + + const client = new NewRelicClient({ + discoveryApi: mockedDiscoveryApi, + fetchApi: mockedFetchApi, + }); + + await client.getApplications(); + await client.getApplications(); + await client.getApplications(); + await client.getApplications(); + + expect(mockedDiscoveryApi.getBaseUrl).toHaveBeenCalledTimes(1); + }); }); diff --git a/plugins/newrelic/src/api/index.ts b/plugins/newrelic/src/api/index.ts index 9c95f3fe1f..b471104139 100644 --- a/plugins/newrelic/src/api/index.ts +++ b/plugins/newrelic/src/api/index.ts @@ -91,16 +91,22 @@ export class NewRelicClient implements NewRelicApi { private readonly discoveryApi: DiscoveryApi; private readonly fetchApi: FetchApi; private readonly proxyPathBase: string; + private baseUrl: string; constructor(options: Options) { this.discoveryApi = options.discoveryApi; this.fetchApi = options.fetchApi; this.proxyPathBase = options.proxyPathBase ?? DEFAULT_PROXY_PATH_BASE; + this.baseUrl = ''; } async getApplications(): Promise { - const proxyUrl = await this.discoveryApi.getBaseUrl('proxy'); - let targetUrl = `${proxyUrl}${this.proxyPathBase}/apm/api/applications.json`; + if (!this.baseUrl) { + const proxyUrl = await this.discoveryApi.getBaseUrl('proxy'); + this.baseUrl = `${proxyUrl}${this.proxyPathBase}/apm/api/applications.json`; + } + + let targetUrl = this.baseUrl; let hasNextPage = true; try { @@ -111,7 +117,7 @@ export class NewRelicClient implements NewRelicApi { await this.fetchNewRelic(targetUrl); hasNextPage = hasMoreApplications; - targetUrl = pagination!.nextPageLink; + targetUrl = hasNextPage ? pagination!.nextPageLink : ''; applications = applications.concat(applicationsFromReadPage); } while (hasNextPage); @@ -155,12 +161,12 @@ export class NewRelicClient implements NewRelicApi { } const nextRelevantLink = linkHeader.replaceAll(' ', '').split(',')[0]; - - // Link should be of the format ;rel="relation" - const linkParts = nextRelevantLink.match(/^<(.+)>;rel="(.+)"$/); - const nextPageLink = linkParts?.[1]; + const linkParts = nextRelevantLink.match(/^<.+(\?page=.+)>;rel="(.+)"$/); + const nextPageNumber = linkParts?.[1]; const relation = linkParts?.[2]; - const isValidLink = !!(!!linkParts && nextPageLink && relation); + + const nextPageLink = `${this.baseUrl}${nextPageNumber}`; + const isValidLink = !!(!!linkParts && nextPageNumber && relation); if (!nextRelevantLink || !isValidLink) { return undefined; From 5003fc9667415e744ea28ef16b1959170aa1cf46 Mon Sep 17 00:00:00 2001 From: Chris James Date: Tue, 1 Aug 2023 10:35:07 -0700 Subject: [PATCH 038/372] Add changeset for changes Signed-off-by: Chris James --- .changeset/clever-adults-add.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/clever-adults-add.md diff --git a/.changeset/clever-adults-add.md b/.changeset/clever-adults-add.md new file mode 100644 index 0000000000..940b82474e --- /dev/null +++ b/.changeset/clever-adults-add.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-pagerduty': minor +--- + +Add new 'disableChangeEvents' attribute to PagerDuty Card to hide the Change Events tab and disable fetching of chang events for a the service. From 365b0125c05156fff4beb8f6cc5322fb97f89325 Mon Sep 17 00:00:00 2001 From: Chris James Date: Tue, 1 Aug 2023 10:36:24 -0700 Subject: [PATCH 039/372] Update clever-adults-add.md Signed-off-by: Chris James --- .changeset/clever-adults-add.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.changeset/clever-adults-add.md b/.changeset/clever-adults-add.md index 940b82474e..c5ca2de902 100644 --- a/.changeset/clever-adults-add.md +++ b/.changeset/clever-adults-add.md @@ -2,4 +2,4 @@ '@backstage/plugin-pagerduty': minor --- -Add new 'disableChangeEvents' attribute to PagerDuty Card to hide the Change Events tab and disable fetching of chang events for a the service. +Add new 'disableChangeEvents' attribute to PagerDuty Card to hide the Change Events tab and disable fetching of change events for the PagerDuty service. From 0a9034a49088fbc6a0d787c5ca10ef9ba3f51888 Mon Sep 17 00:00:00 2001 From: Adam Harvey Date: Tue, 1 Aug 2023 15:59:04 -0400 Subject: [PATCH 040/372] chore(security): Add OpenSSF Scorecard scanning Signed-off-by: Adam Harvey --- .github/workflows/scorecard.yml | 67 +++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 .github/workflows/scorecard.yml diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml new file mode 100644 index 0000000000..6841b0776f --- /dev/null +++ b/.github/workflows/scorecard.yml @@ -0,0 +1,67 @@ +# This workflow uses actions that are not certified by GitHub. They are provided +# by a third-party and are governed by separate terms of service, privacy +# policy, and support documentation. + +name: Scorecard supply-chain security +on: + # For Branch-Protection check. Only the default branch is supported. See + # https://github.com/ossf/scorecard/blob/main/docs/checks.md#branch-protection + # branch_protection_rule: + # To guarantee Maintained check is occasionally updated. See + # https://github.com/ossf/scorecard/blob/main/docs/checks.md#maintained + schedule: + - cron: '41 8 * * 6' + push: + branches: [ "master" ] + +# Declare default permissions as read only. +permissions: read-all + +jobs: + analysis: + name: Scorecard analysis + runs-on: ubuntu-latest + permissions: + # Needed to upload the results to code-scanning dashboard. + security-events: write + # Needed to publish results and get a badge (see publish_results below). + id-token: write + + steps: + - name: "Checkout code" + uses: actions/checkout@93ea575cb5d8a053eaa0ac8fa3b40d7e05a33cc8 # v3.1.0 + with: + persist-credentials: false + + - name: "Run analysis" + uses: ossf/scorecard-action@e38b1902ae4f44df626f11ba0734b14fb91f8f86 # v2.1.2 + with: + results_file: results.sarif + results_format: sarif + # (Optional) "write" PAT token. Uncomment the `repo_token` line below if: + # - you want to enable the Branch-Protection check on a *public* repository, or + # - you are installing Scorecard on a *private* repository + # To create the PAT, follow the steps in https://github.com/ossf/scorecard-action#authentication-with-pat. + # repo_token: ${{ secrets.SCORECARD_TOKEN }} + + # Public repositories: + # - Publish results to OpenSSF REST API for easy access by consumers + # - Allows the repository to include the Scorecard badge. + # - See https://github.com/ossf/scorecard-action#publishing-results. + publish_results: true + + # Upload the results as artifacts (optional). Commenting out will disable uploads of run results in SARIF + # format to the repository Actions tab. + - name: "Upload artifact" + uses: actions/upload-artifact@3cea5372237819ed00197afe530f5a7ea3e805c8 # v3.1.0 + with: + name: SARIF file + path: results.sarif + retention-days: 5 + + # Upload the results to GitHub's code scanning dashboard. + - name: "Upload to code-scanning" + uses: github/codeql-action/upload-sarif@17573ee1cc1b9d061760f3a006fc4aac4f944fd5 # v2.2.4 + with: + sarif_file: results.sarif + From 31cd0dd9e514b24523913ac083d576be9fccbce2 Mon Sep 17 00:00:00 2001 From: Adam Harvey Date: Tue, 1 Aug 2023 16:25:53 -0400 Subject: [PATCH 041/372] chore: Prettier cleanup Signed-off-by: Adam Harvey --- .github/workflows/scorecard.yml | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml index 6841b0776f..63c44bcf20 100644 --- a/.github/workflows/scorecard.yml +++ b/.github/workflows/scorecard.yml @@ -12,7 +12,7 @@ on: schedule: - cron: '41 8 * * 6' push: - branches: [ "master" ] + branches: ['master'] # Declare default permissions as read only. permissions: read-all @@ -28,12 +28,12 @@ jobs: id-token: write steps: - - name: "Checkout code" + - name: 'Checkout code' uses: actions/checkout@93ea575cb5d8a053eaa0ac8fa3b40d7e05a33cc8 # v3.1.0 with: persist-credentials: false - - name: "Run analysis" + - name: 'Run analysis' uses: ossf/scorecard-action@e38b1902ae4f44df626f11ba0734b14fb91f8f86 # v2.1.2 with: results_file: results.sarif @@ -52,7 +52,7 @@ jobs: # Upload the results as artifacts (optional). Commenting out will disable uploads of run results in SARIF # format to the repository Actions tab. - - name: "Upload artifact" + - name: 'Upload artifact' uses: actions/upload-artifact@3cea5372237819ed00197afe530f5a7ea3e805c8 # v3.1.0 with: name: SARIF file @@ -60,8 +60,7 @@ jobs: retention-days: 5 # Upload the results to GitHub's code scanning dashboard. - - name: "Upload to code-scanning" + - name: 'Upload to code-scanning' uses: github/codeql-action/upload-sarif@17573ee1cc1b9d061760f3a006fc4aac4f944fd5 # v2.2.4 with: sarif_file: results.sarif - From 83467b0534eeed2d816912daf1e1e7efd07e4cf6 Mon Sep 17 00:00:00 2001 From: "jean-philippe.blary" Date: Wed, 2 Aug 2023 09:37:51 +0200 Subject: [PATCH 042/372] fix(explore): don't put ? if no query parameters Signed-off-by: jean-philippe.blary --- .changeset/violet-dogs-breathe.md | 5 +++++ plugins/explore/src/api/ExploreClient.test.ts | 16 ++++++++++++++++ plugins/explore/src/api/ExploreClient.ts | 2 +- 3 files changed, 22 insertions(+), 1 deletion(-) create mode 100644 .changeset/violet-dogs-breathe.md diff --git a/.changeset/violet-dogs-breathe.md b/.changeset/violet-dogs-breathe.md new file mode 100644 index 0000000000..938c8df678 --- /dev/null +++ b/.changeset/violet-dogs-breathe.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-explore': patch +--- + +Don't put "?" in URL if no query parameters. diff --git a/plugins/explore/src/api/ExploreClient.test.ts b/plugins/explore/src/api/ExploreClient.test.ts index bbec568a09..77eb42ddf6 100644 --- a/plugins/explore/src/api/ExploreClient.test.ts +++ b/plugins/explore/src/api/ExploreClient.test.ts @@ -83,6 +83,22 @@ describe('ExploreClient', () => { }); expect(response).toEqual(expectedResponse); }); + + it('should request explore tools without filters', async () => { + const expectedResponse: GetExploreToolsResponse = { + tools: mockTools, + }; + + server.use( + rest.get(`${mockBaseUrl}/tools`, (req, res, ctx) => { + expect(req.url.search).toBe(''); + return res(ctx.json(expectedResponse)); + }), + ); + + const response = await client.getTools(); + expect(response).toEqual(expectedResponse); + }); }); describe('when using exploreToolsConfig for backwards compatibility', () => { diff --git a/plugins/explore/src/api/ExploreClient.ts b/plugins/explore/src/api/ExploreClient.ts index 9dca2755fe..4528200b43 100644 --- a/plugins/explore/src/api/ExploreClient.ts +++ b/plugins/explore/src/api/ExploreClient.ts @@ -71,7 +71,7 @@ export class ExploreClient implements ExploreApi { filter?.lifecycle?.map(l => `lifecycle=${encodeURIComponent(l)}`) ?? []; const query = [...tags, ...lifecycles].join('&'); - const response = await fetch(`${baseUrl}/tools?${query}`); + const response = await fetch(`${baseUrl}/tools${query ? `?${query}` : ''}`); if (!response.ok) { throw await ResponseError.fromResponse(response); From e0ecbd684cf9cbdde73cb76626a50c6d103d3bb1 Mon Sep 17 00:00:00 2001 From: Adam Harvey Date: Wed, 2 Aug 2023 11:27:43 -0400 Subject: [PATCH 043/372] chore: Add CLO Monitor exemption settings Signed-off-by: Adam Harvey --- .clomonitor.yml | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 .clomonitor.yml diff --git a/.clomonitor.yml b/.clomonitor.yml new file mode 100644 index 0000000000..1e217dd400 --- /dev/null +++ b/.clomonitor.yml @@ -0,0 +1,9 @@ +# CLOMonitor metadata file +# This file must be located at the root of the repository +# https://clomonitor.io/projects/cncf/backstage + +# Checks exemptions +exemptions: + - check: trademark_disclaimer # Check identifier (see https://github.com/cncf/clomonitor/blob/main/docs/checks.md#exemptions) + # Justification of this exemption (mandatory, it will be displayed on the UI) + reason: 'The Linux Foundation trademark disclaimer and link are contained within the project web site at https://backstage.io in the copyright footer. However, because the site is delivered dynamically via React through JavaScript, the check cannot currently identify it.' From 593ea01f6a05192900b6f87ab9e834de9264576a Mon Sep 17 00:00:00 2001 From: Vincenzo Scamporlino Date: Wed, 2 Aug 2023 23:17:08 +0200 Subject: [PATCH 044/372] catalog: fix EntitySwitch unmounting children on entity refresh Signed-off-by: Vincenzo Scamporlino --- .../EntitySwitch/EntitySwitch.test.tsx | 93 ++++++++++++++++++- .../components/EntitySwitch/EntitySwitch.tsx | 10 +- 2 files changed, 95 insertions(+), 8 deletions(-) diff --git a/plugins/catalog/src/components/EntitySwitch/EntitySwitch.test.tsx b/plugins/catalog/src/components/EntitySwitch/EntitySwitch.test.tsx index 13e214d823..3a8795ccb7 100644 --- a/plugins/catalog/src/components/EntitySwitch/EntitySwitch.test.tsx +++ b/plugins/catalog/src/components/EntitySwitch/EntitySwitch.test.tsx @@ -20,7 +20,7 @@ import { EntityProvider, } from '@backstage/plugin-catalog-react'; import { render, screen } from '@testing-library/react'; -import React from 'react'; +import React, { useEffect } from 'react'; import { isKind } from './conditions'; import { EntitySwitch } from './EntitySwitch'; import { featureFlagsApiRef } from '@backstage/core-plugin-api'; @@ -209,6 +209,97 @@ describe('EntitySwitch', () => { expect(screen.queryByText('B')).not.toBeInTheDocument(); }); + it('should display the children in case entity is available and loading is true', () => { + const entity = { metadata: { name: 'mock' }, kind: 'component' } as Entity; + + render( + + + + Component

} + /> + System

} /> +
+
+
, + ); + + expect(screen.queryByText('Component')).toBeInTheDocument(); + expect(screen.queryByText('System')).not.toBeInTheDocument(); + }); + + it(`shouldn't unmount the children on entity refresh`, () => { + const entity = { metadata: { name: 'mock' }, kind: 'component' } as Entity; + + let mountsCount = 0; + function Component() { + useEffect(() => { + ++mountsCount; + }, []); + + return

Component

; + } + + const rendered = render( + + + + } + /> + System

} /> +
+
+
, + ); + + expect(screen.queryByText('Component')).toBeInTheDocument(); + expect(screen.queryByText('System')).not.toBeInTheDocument(); + + expect(mountsCount).toBe(1); + + rendered.rerender( + + + + } + /> + System

} /> +
+
+
, + ); + + expect(screen.queryByText('Component')).toBeInTheDocument(); + expect(screen.queryByText('System')).not.toBeInTheDocument(); + + expect(mountsCount).toBe(1); + + rendered.rerender( + + + + } + /> + System

} /> +
+
+
, + ); + + expect(screen.queryByText('Component')).toBeInTheDocument(); + expect(screen.queryByText('System')).not.toBeInTheDocument(); + + expect(mountsCount).toBe(1); + }); + it('should switch with async condition that is true', async () => { const entity = { metadata: { name: 'mock' }, kind: 'component' } as Entity; diff --git a/plugins/catalog/src/components/EntitySwitch/EntitySwitch.tsx b/plugins/catalog/src/components/EntitySwitch/EntitySwitch.tsx index 3cd806faa5..90de358ef9 100644 --- a/plugins/catalog/src/components/EntitySwitch/EntitySwitch.tsx +++ b/plugins/catalog/src/components/EntitySwitch/EntitySwitch.tsx @@ -64,8 +64,9 @@ export interface EntitySwitchProps { /** @public */ export const EntitySwitch = (props: EntitySwitchProps) => { - const { entity, loading } = useAsyncEntity(); + const { entity } = useAsyncEntity(); const apis = useApiHolder(); + const results = useElementFilter( props.children, collection => @@ -76,11 +77,6 @@ export const EntitySwitch = (props: EntitySwitchProps) => { }) .getElements() .flatMap((element: ReactElement) => { - // Nothing is rendered while loading - if (loading) { - return []; - } - const { if: condition, children: elementsChildren } = element.props as EntitySwitchCase; @@ -100,7 +96,7 @@ export const EntitySwitch = (props: EntitySwitchProps) => { }, ]; }), - [apis, entity, loading], + [apis, entity], ); const hasAsyncCases = results.some( From 136cea792bd4ea7404a0cbfbadc3655c4284fdf2 Mon Sep 17 00:00:00 2001 From: Vincenzo Scamporlino Date: Wed, 2 Aug 2023 23:19:15 +0200 Subject: [PATCH 045/372] changeset Signed-off-by: Vincenzo Scamporlino --- .changeset/twelve-ducks-swim.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/twelve-ducks-swim.md diff --git a/.changeset/twelve-ducks-swim.md b/.changeset/twelve-ducks-swim.md new file mode 100644 index 0000000000..1e44f09be1 --- /dev/null +++ b/.changeset/twelve-ducks-swim.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-catalog': patch +--- + +Fixed an issue causing `EntitySwitch` to unmount its children once entity refresh was invoked From 047e0906364366606bd626a8010e680da6d04d3d Mon Sep 17 00:00:00 2001 From: Vincenzo Scamporlino Date: Wed, 2 Aug 2023 23:42:59 +0200 Subject: [PATCH 046/372] I think unmount should be valid Signed-off-by: Vincenzo Scamporlino --- .github/vale/Vocab/Backstage/accept.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/vale/Vocab/Backstage/accept.txt b/.github/vale/Vocab/Backstage/accept.txt index ed09c73c91..f85139ccbf 100644 --- a/.github/vale/Vocab/Backstage/accept.txt +++ b/.github/vale/Vocab/Backstage/accept.txt @@ -405,6 +405,7 @@ unbreak Unconference unicode unmanaged +unmount unregister unregistering unregistration From 17d626cad4d6191bc15138c51f87541501847471 Mon Sep 17 00:00:00 2001 From: Alex Eftimie Date: Thu, 3 Aug 2023 10:34:25 +0300 Subject: [PATCH 047/372] Fix variable passing Signed-off-by: Alex Eftimie --- .../tasks/NunjucksWorkflowRunner.test.ts | 66 ++++++++++++++++++- .../tasks/NunjucksWorkflowRunner.ts | 11 +++- 2 files changed, 72 insertions(+), 5 deletions(-) diff --git a/plugins/scaffolder-backend/src/scaffolder/tasks/NunjucksWorkflowRunner.test.ts b/plugins/scaffolder-backend/src/scaffolder/tasks/NunjucksWorkflowRunner.test.ts index 8fbbd45b94..253a6c4388 100644 --- a/plugins/scaffolder-backend/src/scaffolder/tasks/NunjucksWorkflowRunner.test.ts +++ b/plugins/scaffolder-backend/src/scaffolder/tasks/NunjucksWorkflowRunner.test.ts @@ -574,7 +574,7 @@ describe('DefaultWorkflowRunner', () => { }); describe('each', () => { - it('should run a step repeatedly', async () => { + it('should run a step repeatedly - flat values', async () => { const task = createMockTaskWithSpec({ apiVersion: 'scaffolder.backstage.io/v1beta3', steps: [ @@ -583,7 +583,7 @@ describe('DefaultWorkflowRunner', () => { name: 'name', each: '${{parameters.colors}}', action: 'jest-mock-action', - input: { color: '${{each}}' }, + input: { color: '${{each.value}}' }, }, ], output: {}, @@ -604,6 +604,68 @@ describe('DefaultWorkflowRunner', () => { expect.objectContaining({ input: { color: 'red' } }), ); }); + + it('should run a step repeatedly - object list', async () => { + const task = createMockTaskWithSpec({ + apiVersion: 'scaffolder.backstage.io/v1beta3', + steps: [ + { + id: 'test', + name: 'name', + each: '${{parameters.settings}}', + action: 'jest-mock-action', + input: { + key: '${{each.key}}', + value: '${{each.value}}', + }, + }, + ], + output: {}, + parameters: { + settings: [{ color: 'blue' }], + }, + }); + + await runner.execute(task); + + expect(fakeActionHandler).toHaveBeenCalledWith( + expect.objectContaining({ + input: { key: '0', value: { color: 'blue' } }, + }), + ); + }); + + it('should run a step repeatedly - object', async () => { + const task = createMockTaskWithSpec({ + apiVersion: 'scaffolder.backstage.io/v1beta3', + steps: [ + { + id: 'test', + name: 'name', + each: '${{parameters.settings}}', + action: 'jest-mock-action', + input: { key: '${{each.key}}', value: '${{each.value}}' }, + }, + ], + output: {}, + parameters: { + settings: { color: 'blue', transparent: 'yes' }, + }, + }); + + await runner.execute(task); + + expect(fakeActionHandler).toHaveBeenCalledWith( + expect.objectContaining({ + input: { key: 'color', value: 'blue' }, + }), + ); + expect(fakeActionHandler).toHaveBeenCalledWith( + expect.objectContaining({ + input: { key: 'transparent', value: 'yes' }, + }), + ); + }); }); describe('secrets', () => { diff --git a/plugins/scaffolder-backend/src/scaffolder/tasks/NunjucksWorkflowRunner.ts b/plugins/scaffolder-backend/src/scaffolder/tasks/NunjucksWorkflowRunner.ts index a6c486c58d..b0b8fd6d09 100644 --- a/plugins/scaffolder-backend/src/scaffolder/tasks/NunjucksWorkflowRunner.ts +++ b/plugins/scaffolder-backend/src/scaffolder/tasks/NunjucksWorkflowRunner.ts @@ -315,7 +315,9 @@ export class NunjucksWorkflowRunner implements WorkflowRunner { const iterations = new Array(); if (step.each) { const each = await this.render(step.each, context, renderTemplate); - iterations.push(...each); + iterations.push( + ...Object.keys(each).map((key: any) => [key, each[key]]), + ); } else { iterations.push({}); } @@ -324,13 +326,16 @@ export class NunjucksWorkflowRunner implements WorkflowRunner { for (const iteration of iterations) { if (step.each) { taskLogger.info(`Running step each: ${iteration}`); - context.each = iteration; + const iterationContext = { + ...context, + each: { key: iteration[0], value: iteration[1] }, + }; // re-render input with the modified context that includes each actionInput = (step.input && this.render( step.input, - { ...context, secrets: task.secrets ?? {} }, + { ...iterationContext, secrets: task.secrets ?? {} }, renderTemplate, )) ?? {}; From 43b61fdb394c987def5b9ccb2186d71ab5c4e57e Mon Sep 17 00:00:00 2001 From: Alex Eftimie Date: Thu, 3 Aug 2023 10:44:37 +0300 Subject: [PATCH 048/372] fix tsc Signed-off-by: Alex Eftimie --- .../src/scaffolder/tasks/NunjucksWorkflowRunner.ts | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/plugins/scaffolder-backend/src/scaffolder/tasks/NunjucksWorkflowRunner.ts b/plugins/scaffolder-backend/src/scaffolder/tasks/NunjucksWorkflowRunner.ts index b0b8fd6d09..1f93ded94c 100644 --- a/plugins/scaffolder-backend/src/scaffolder/tasks/NunjucksWorkflowRunner.ts +++ b/plugins/scaffolder-backend/src/scaffolder/tasks/NunjucksWorkflowRunner.ts @@ -316,7 +316,9 @@ export class NunjucksWorkflowRunner implements WorkflowRunner { if (step.each) { const each = await this.render(step.each, context, renderTemplate); iterations.push( - ...Object.keys(each).map((key: any) => [key, each[key]]), + ...Object.keys(each).map((key: any) => { + return { key: key, value: each[key] }; + }), ); } else { iterations.push({}); @@ -328,7 +330,7 @@ export class NunjucksWorkflowRunner implements WorkflowRunner { taskLogger.info(`Running step each: ${iteration}`); const iterationContext = { ...context, - each: { key: iteration[0], value: iteration[1] }, + each: iteration, }; // re-render input with the modified context that includes each actionInput = From 5b0b80f39582c2082d1a57229c66899a8b9f67f5 Mon Sep 17 00:00:00 2001 From: Alex Eftimie Date: Thu, 3 Aug 2023 12:23:46 +0300 Subject: [PATCH 049/372] fix docs Signed-off-by: Alex Eftimie --- docs/features/software-templates/writing-templates.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/features/software-templates/writing-templates.md b/docs/features/software-templates/writing-templates.md index db342bcf61..57e261f19f 100644 --- a/docs/features/software-templates/writing-templates.md +++ b/docs/features/software-templates/writing-templates.md @@ -526,8 +526,8 @@ input: each: [{ name: 'apple', count: 3 }, { name: 'orange', count: 1 }] input: values: - fruit: ${{ each.name }} - count: ${{ each.count }} + fruit: ${{ each.value.name }} + count: ${{ each.value.count }} ``` When `each` is used, the outputs of a repeated step are returned as an array of outputs from each iteration. From ee497790227247c112d9e97003ed166c048817f8 Mon Sep 17 00:00:00 2001 From: coderrob Date: Thu, 3 Aug 2023 12:46:59 -0500 Subject: [PATCH 050/372] Fix invalid deprecated import paths in plugin-catalog-backend Signed-off-by: coderrob --- plugins/catalog-backend/src/index.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/plugins/catalog-backend/src/index.ts b/plugins/catalog-backend/src/index.ts index 345102adcd..8ce258d3b6 100644 --- a/plugins/catalog-backend/src/index.ts +++ b/plugins/catalog-backend/src/index.ts @@ -36,13 +36,13 @@ import { /** * @public - * @deprecated import from `@backstage/search-backend-module-catalog` instead + * @deprecated import from @backstage/plugin-search-backend-module-catalog` instead */ export const DefaultCatalogCollatorFactory = _DefaultCatalogCollatorFactory; /** * @public - * @deprecated import from `@backstage/search-backend-module-catalog` instead + * @deprecated import from @backstage/plugin-search-backend-module-catalog` instead */ export const defaultCatalogCollatorEntityTransformer = _defaultCatalogCollatorEntityTransformer; @@ -54,14 +54,14 @@ import type { /** * @public - * @deprecated import from `@backstage/search-backend-module-catalog` instead + * @deprecated import from @backstage/plugin-search-backend-module-catalog` instead */ export type DefaultCatalogCollatorFactoryOptions = _DefaultCatalogCollatorFactoryOptions; /** * @public - * @deprecated import from `@backstage/search-backend-module-catalog` instead + * @deprecated import from @backstage/plugin-search-backend-module-catalog` instead */ export type CatalogCollatorEntityTransformer = _CatalogCollatorEntityTransformer; From 6ca6c3b865b16db32620f7b932d18021c1c11f7a Mon Sep 17 00:00:00 2001 From: coderrob Date: Thu, 3 Aug 2023 12:48:13 -0500 Subject: [PATCH 051/372] Fix invalid deprecated import paths in plugins/explore-backend Signed-off-by: coderrob --- plugins/explore-backend/src/index.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/plugins/explore-backend/src/index.ts b/plugins/explore-backend/src/index.ts index ca501db96b..15659d6ab6 100644 --- a/plugins/explore-backend/src/index.ts +++ b/plugins/explore-backend/src/index.ts @@ -36,19 +36,19 @@ import type { /** * @public - * @deprecated import from `@backstage/search-backend-module-explore` instead + * @deprecated import from `@backstage/plugin-search-backend-module-explore` instead */ export const ToolDocumentCollatorFactory = _ToolDocumentCollatorFactory; /** * @public - * @deprecated import from `@backstage/search-backend-module-explore` instead + * @deprecated import from `@backstage/plugin-search-backend-module-explore` instead */ export type ToolDocument = _ToolDocument; /** * @public - * @deprecated import from `@backstage/search-backend-module-explore` instead + * @deprecated import from `@backstage/plugin-search-backend-module-explore` instead */ export type ToolDocumentCollatorFactoryOptions = _ToolDocumentCollatorFactoryOptions; From 659264dad4030c167c33eb672a328917339161e4 Mon Sep 17 00:00:00 2001 From: coderrob Date: Thu, 3 Aug 2023 12:49:00 -0500 Subject: [PATCH 052/372] Fix invalid deprecated import paths in plugins/techdocs-backend Signed-off-by: coderrob --- plugins/techdocs-backend/src/search/index.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/techdocs-backend/src/search/index.ts b/plugins/techdocs-backend/src/search/index.ts index fc2b48375e..904f998042 100644 --- a/plugins/techdocs-backend/src/search/index.ts +++ b/plugins/techdocs-backend/src/search/index.ts @@ -25,12 +25,12 @@ import type { TechDocsCollatorFactoryOptions as _TechDocsCollatorFactoryOptions /** * @public - * @deprecated import from `@backstage/search-backend-module-techdocs` instead + * @deprecated import from `@backstage/plugin-search-backend-module-techdocs` instead */ export type TechDocsCollatorFactoryOptions = _TechDocsCollatorFactoryOptions; /** * @public - * @deprecated import from `@backstage/search-backend-module-techdocs` instead + * @deprecated import from `@backstage/plugin-search-backend-module-techdocs` instead */ export const DefaultTechDocsCollatorFactory = _DefaultTechDocsCollatorFactory; From 51d47ba5abca2377ad84efa32db1e8b9d65bd2dd Mon Sep 17 00:00:00 2001 From: Rob Lindley Date: Thu, 3 Aug 2023 12:51:23 -0500 Subject: [PATCH 053/372] Fix missing ` in catalog-backend find / replace Signed-off-by: Rob Lindley Signed-off-by: coderrob --- plugins/catalog-backend/src/index.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/plugins/catalog-backend/src/index.ts b/plugins/catalog-backend/src/index.ts index 8ce258d3b6..55c1c672d3 100644 --- a/plugins/catalog-backend/src/index.ts +++ b/plugins/catalog-backend/src/index.ts @@ -36,13 +36,13 @@ import { /** * @public - * @deprecated import from @backstage/plugin-search-backend-module-catalog` instead + * @deprecated import from `@backstage/plugin-search-backend-module-catalog` instead */ export const DefaultCatalogCollatorFactory = _DefaultCatalogCollatorFactory; /** * @public - * @deprecated import from @backstage/plugin-search-backend-module-catalog` instead + * @deprecated import from `@backstage/plugin-search-backend-module-catalog` instead */ export const defaultCatalogCollatorEntityTransformer = _defaultCatalogCollatorEntityTransformer; @@ -54,14 +54,14 @@ import type { /** * @public - * @deprecated import from @backstage/plugin-search-backend-module-catalog` instead + * @deprecated import from `@backstage/plugin-search-backend-module-catalog` instead */ export type DefaultCatalogCollatorFactoryOptions = _DefaultCatalogCollatorFactoryOptions; /** * @public - * @deprecated import from @backstage/plugin-search-backend-module-catalog` instead + * @deprecated import from `@backstage/plugin-search-backend-module-catalog` instead */ export type CatalogCollatorEntityTransformer = _CatalogCollatorEntityTransformer; From a6f2f70515ab7131ee8a777f1f0f21c66d86eb1c Mon Sep 17 00:00:00 2001 From: Robert Bunning <129326788+wss-rbunning@users.noreply.github.com> Date: Thu, 3 Aug 2023 14:47:25 -0400 Subject: [PATCH 054/372] Update plugins/newrelic/src/api/index.ts MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Fredrik Adelöw Signed-off-by: Robert Bunning <129326788+wss-rbunning@users.noreply.github.com> --- plugins/newrelic/src/api/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/newrelic/src/api/index.ts b/plugins/newrelic/src/api/index.ts index b471104139..9ce6f2c111 100644 --- a/plugins/newrelic/src/api/index.ts +++ b/plugins/newrelic/src/api/index.ts @@ -166,7 +166,7 @@ export class NewRelicClient implements NewRelicApi { const relation = linkParts?.[2]; const nextPageLink = `${this.baseUrl}${nextPageNumber}`; - const isValidLink = !!(!!linkParts && nextPageNumber && relation); + const isValidLink = !!(linkParts && nextPageNumber && relation); if (!nextRelevantLink || !isValidLink) { return undefined; From 86b9c3b0d34558660393efaf8a9c7ea1a804f70e Mon Sep 17 00:00:00 2001 From: Adam Harvey Date: Thu, 3 Aug 2023 18:41:57 -0400 Subject: [PATCH 055/372] chore: Add Storybook automated labeling Signed-off-by: Adam Harvey --- .github/labeler.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/labeler.yml b/.github/labeler.yml index eaba199588..dc048b1744 100644 --- a/.github/labeler.yml +++ b/.github/labeler.yml @@ -24,6 +24,8 @@ documentation: - docs/**/* microsite: - microsite/**/* +storybook: + - storybook/**/* auth: - plugins/auth-backend/**/* - packages/core-app-api/src/apis/implementations/auth/**/* From 586402b75ca0ce53ccdbfc2917bb2da816bfd37b Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 4 Aug 2023 02:01:44 +0000 Subject: [PATCH 056/372] chore(deps): update helm/kind-action action to v1.8.0 Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .github/workflows/verify_e2e-kubernetes.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/verify_e2e-kubernetes.yml b/.github/workflows/verify_e2e-kubernetes.yml index c05339f595..49fc8f0aa1 100644 --- a/.github/workflows/verify_e2e-kubernetes.yml +++ b/.github/workflows/verify_e2e-kubernetes.yml @@ -35,7 +35,7 @@ jobs: cache-prefix: ${{ runner.os }}-v${{ matrix.node-version }} - name: bootstrap kind - uses: helm/kind-action@v1.7.0 + uses: helm/kind-action@v1.8.0 - name: kubernetes test working-directory: packages/backend-common From cef344c45c0c2a0de6b955325f7758d6ade921c9 Mon Sep 17 00:00:00 2001 From: AmbrishRamachandiran Date: Fri, 4 Aug 2023 09:40:23 +0530 Subject: [PATCH 057/372] Limit the use of the same shortcut name and url when adding a shortcut fixed review changes Signed-off-by: AmbrishRamachandiran --- plugins/shortcuts/src/ShortcutForm.tsx | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/plugins/shortcuts/src/ShortcutForm.tsx b/plugins/shortcuts/src/ShortcutForm.tsx index 4384f1c061..6085c6c182 100644 --- a/plugins/shortcuts/src/ShortcutForm.tsx +++ b/plugins/shortcuts/src/ShortcutForm.tsx @@ -15,6 +15,7 @@ */ import React, { useEffect } from 'react'; +import useObservable from 'react-use/lib/useObservable'; import { useForm, SubmitHandler, Controller } from 'react-hook-form'; import { Button, @@ -53,7 +54,10 @@ export const ShortcutForm = ({ }: Props) => { const classes = useStyles(); const shortcutApi = useApi(shortcutsApiRef); - const shortcutData = shortcutApi.get(); + const shortcutData = useObservable( + shortcutApi.shortcut$(), + shortcutApi.get(), + ); const { handleSubmit, reset, @@ -67,13 +71,13 @@ export const ShortcutForm = ({ }, }); - const titleIsUnique = async (title: string) => { + const titleIsUnique = (title: string) => { if (shortcutData.some(shortcutTitle => shortcutTitle.title === title)) return 'A shortcut with this title already exists'; return true; }; - const urlIsUnique = async (url: string) => { + const urlIsUnique = (url: string) => { if (shortcutData.some(shortcutUrl => shortcutUrl.url === url)) return 'A shortcut with this url already exists'; return true; From 16e4c6bfb123208cca0a91f17316be5d5100edc2 Mon Sep 17 00:00:00 2001 From: AmbrishRamachandiran Date: Fri, 4 Aug 2023 09:57:31 +0530 Subject: [PATCH 058/372] Limit the use of the same shortcut name and url when adding a shortcut fixed review changes Signed-off-by: AmbrishRamachandiran --- plugins/shortcuts/src/ShortcutForm.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/shortcuts/src/ShortcutForm.tsx b/plugins/shortcuts/src/ShortcutForm.tsx index 6085c6c182..e8cd8144d0 100644 --- a/plugins/shortcuts/src/ShortcutForm.tsx +++ b/plugins/shortcuts/src/ShortcutForm.tsx @@ -71,13 +71,13 @@ export const ShortcutForm = ({ }, }); - const titleIsUnique = (title: string) => { + const titleIsUnique = (title: string) => { if (shortcutData.some(shortcutTitle => shortcutTitle.title === title)) return 'A shortcut with this title already exists'; return true; }; - const urlIsUnique = (url: string) => { + const urlIsUnique = (url: string) => { if (shortcutData.some(shortcutUrl => shortcutUrl.url === url)) return 'A shortcut with this url already exists'; return true; From 96846456b10dd34dfc1c7e175803f68c559844e9 Mon Sep 17 00:00:00 2001 From: Robert Bunning Date: Fri, 4 Aug 2023 11:46:19 -0400 Subject: [PATCH 059/372] Only get lowercased link header Signed-off-by: Robert Bunning --- plugins/newrelic/src/api/index.test.ts | 4 ++-- plugins/newrelic/src/api/index.ts | 3 +-- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/plugins/newrelic/src/api/index.test.ts b/plugins/newrelic/src/api/index.test.ts index 69cf74066f..70fda9606d 100644 --- a/plugins/newrelic/src/api/index.test.ts +++ b/plugins/newrelic/src/api/index.test.ts @@ -135,7 +135,7 @@ describe('NewRelicClient', () => { ok: true, json: async () => ({ applications: [] }), headers: new Map([ - ['Link', '; rel="next",'], + ['link', '; rel="next",'], ]), }) .mockResolvedValueOnce({ @@ -178,7 +178,7 @@ describe('NewRelicClient', () => { expect(actual).toStrictEqual(expected); }); - test.each([['LINK'], ['lINK']])( + test.each([['Link'], ['LINK'], ['lINK']])( 'It does not attempt pagination when the link header name is invalid (%p)', async linkHeaderName => { const mockedDiscoveryApi: DiscoveryApi = { diff --git a/plugins/newrelic/src/api/index.ts b/plugins/newrelic/src/api/index.ts index 9ce6f2c111..237fe95fde 100644 --- a/plugins/newrelic/src/api/index.ts +++ b/plugins/newrelic/src/api/index.ts @@ -142,8 +142,7 @@ export class NewRelicClient implements NewRelicApi { } const readResponse = responseJson as NewRelicApplications; - const linkHeader = - response.headers.get('Link') || response.headers.get('link'); + const linkHeader = response.headers.get('link'); const pagination = this.parseLinkHeader(linkHeader); return { From 9177ff8a9d48209082b0de630b795e510665c206 Mon Sep 17 00:00:00 2001 From: Matt Benson Date: Fri, 4 Aug 2023 11:43:30 -0500 Subject: [PATCH 060/372] document correct generated relations for group.children Signed-off-by: Matt Benson --- docs/features/software-catalog/descriptor-format.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/features/software-catalog/descriptor-format.md b/docs/features/software-catalog/descriptor-format.md index 0be2bf0292..924c59a6fa 100644 --- a/docs/features/software-catalog/descriptor-format.md +++ b/docs/features/software-catalog/descriptor-format.md @@ -978,9 +978,9 @@ way. The entries of this array are [entity references](https://backstage.io/docs/features/software-catalog/references). -| [`kind`](#apiversion-and-kind-required) | Default [`namespace`](#namespace-optional) | Generated [relation](well-known-relations.md) type | -| --------------------------------------- | ------------------------------------------ | ------------------------------------------------------------------------------------- | -| [`Group`](#kind-group) (default) | Same as this entity, typically `default` | [`hasMember`, and reverse `memberOf`](well-known-relations.md#memberof-and-hasmember) | +| [`kind`](#apiversion-and-kind-required) | Default [`namespace`](#namespace-optional) | Generated [relation](well-known-relations.md) type | +| --------------------------------------- | ------------------------------------------ | --------------------------------------------------------------------------------- | +| [`Group`](#kind-group) (default) | Same as this entity, typically `default` | [`parentOf`, and reverse `childOf`](well-known-relations.md#parentof-and-childof) | ### `spec.members` [optional] From 4c99b8fca63ff69e0c4ecebf2e004f0ab7b18ee1 Mon Sep 17 00:00:00 2001 From: Robert Bunning Date: Fri, 4 Aug 2023 15:19:43 -0400 Subject: [PATCH 061/372] Switch to using other link header parser Signed-off-by: Robert Bunning --- plugins/newrelic/package.json | 2 + plugins/newrelic/src/api/index.test.ts | 2 +- plugins/newrelic/src/api/index.ts | 52 +++++--------------------- yarn.lock | 20 +++++++++- 4 files changed, 32 insertions(+), 44 deletions(-) diff --git a/plugins/newrelic/package.json b/plugins/newrelic/package.json index b09050c599..7e42a26d9f 100644 --- a/plugins/newrelic/package.json +++ b/plugins/newrelic/package.json @@ -39,6 +39,8 @@ "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.61", + "@types/parse-link-header": "^2.0.1", + "parse-link-header": "^2.0.0", "react-use": "^17.2.4" }, "peerDependencies": { diff --git a/plugins/newrelic/src/api/index.test.ts b/plugins/newrelic/src/api/index.test.ts index 70fda9606d..94bdc8ff94 100644 --- a/plugins/newrelic/src/api/index.test.ts +++ b/plugins/newrelic/src/api/index.test.ts @@ -126,7 +126,7 @@ describe('NewRelicClient', () => { headers: new Map([ [ 'link', - '; rel="next", ; rel="next"', + '; rel="next", ; rel="first"', ], ['otherheader', 'otherValue'], ]), diff --git a/plugins/newrelic/src/api/index.ts b/plugins/newrelic/src/api/index.ts index 237fe95fde..ede225dc05 100644 --- a/plugins/newrelic/src/api/index.ts +++ b/plugins/newrelic/src/api/index.ts @@ -20,6 +20,8 @@ import { FetchApi, } from '@backstage/core-plugin-api'; +import parseLinkHeader from 'parse-link-header'; + export type NewRelicApplication = { id: number; application_summary: NewRelicApplicationSummary; @@ -76,14 +78,8 @@ export interface NewRelicApi { getApplications(): Promise; } -interface PaginationInformation { - nextPageLink: string; - relation: string; -} - interface NewRelicPageReadResult { - hasMoreApplications: boolean; - pagination: PaginationInformation | undefined; + nextPageUrl: string | undefined; applicationsFromReadPage: NewRelicApplication[]; } @@ -106,20 +102,17 @@ export class NewRelicClient implements NewRelicApi { this.baseUrl = `${proxyUrl}${this.proxyPathBase}/apm/api/applications.json`; } - let targetUrl = this.baseUrl; - let hasNextPage = true; - try { let applications: NewRelicApplication[] = []; + let targetUrl = this.baseUrl; do { - const { hasMoreApplications, pagination, applicationsFromReadPage } = + const { nextPageUrl, applicationsFromReadPage } = await this.fetchNewRelic(targetUrl); - hasNextPage = hasMoreApplications; - targetUrl = hasNextPage ? pagination!.nextPageLink : ''; + targetUrl = nextPageUrl ?? ''; applications = applications.concat(applicationsFromReadPage); - } while (hasNextPage); + } while (!!targetUrl); return { applications }; } catch (e) { @@ -143,37 +136,12 @@ export class NewRelicClient implements NewRelicApi { const readResponse = responseJson as NewRelicApplications; const linkHeader = response.headers.get('link'); - const pagination = this.parseLinkHeader(linkHeader); + const parseResult = parseLinkHeader(linkHeader); + const nextPageNumber = parseResult?.next?.page; return { - hasMoreApplications: !!(pagination && pagination.relation === 'next'), - pagination, + nextPageUrl: nextPageNumber && `${this.baseUrl}?page=${nextPageNumber}`, applicationsFromReadPage: readResponse.applications, }; } - - private parseLinkHeader( - linkHeader: string | null, - ): PaginationInformation | undefined { - if (!linkHeader) { - return undefined; - } - - const nextRelevantLink = linkHeader.replaceAll(' ', '').split(',')[0]; - const linkParts = nextRelevantLink.match(/^<.+(\?page=.+)>;rel="(.+)"$/); - const nextPageNumber = linkParts?.[1]; - const relation = linkParts?.[2]; - - const nextPageLink = `${this.baseUrl}${nextPageNumber}`; - const isValidLink = !!(linkParts && nextPageNumber && relation); - - if (!nextRelevantLink || !isValidLink) { - return undefined; - } - - return { - nextPageLink, - relation, - }; - } } diff --git a/yarn.lock b/yarn.lock index 3f9b0ee1bc..1399f1d622 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7605,9 +7605,11 @@ __metadata: "@testing-library/react": ^12.1.3 "@testing-library/user-event": ^14.0.0 "@types/node": ^16.11.26 + "@types/parse-link-header": ^2.0.1 "@types/react": ^16.13.1 || ^17.0.0 cross-fetch: ^3.1.5 msw: ^1.0.0 + parse-link-header: ^2.0.0 react-use: ^17.2.4 peerDependencies: react: ^16.13.1 || ^17.0.0 @@ -17606,6 +17608,13 @@ __metadata: languageName: node linkType: hard +"@types/parse-link-header@npm:^2.0.1": + version: 2.0.1 + resolution: "@types/parse-link-header@npm:2.0.1" + checksum: f76678612511365aefc23704f00f3262fcb1d6bd9c4dd83f783a38e50e3ccf26615f9a62c757952cab5af6f2bd8b3b1763ce391376458afce5fe47c6fe2b80e1 + languageName: node + linkType: hard + "@types/passport-auth0@npm:^1.0.5": version: 1.0.5 resolution: "@types/passport-auth0@npm:1.0.5" @@ -34337,6 +34346,15 @@ __metadata: languageName: node linkType: hard +"parse-link-header@npm:^2.0.0": + version: 2.0.0 + resolution: "parse-link-header@npm:2.0.0" + dependencies: + xtend: ~4.0.1 + checksum: 0e96c6af9910e8f92084b49b8dc6a10dd58db470847d1499f562576180c1ac5e49d18007697f0d538e5f3efdc8ce1d8777641f3ae225302b74af0dd0578b628e + languageName: node + linkType: hard + "parse-path@npm:^7.0.0": version: 7.0.0 resolution: "parse-path@npm:7.0.0" @@ -42745,7 +42763,7 @@ __metadata: languageName: node linkType: hard -"xtend@npm:^4.0.0": +"xtend@npm:^4.0.0, xtend@npm:~4.0.1": version: 4.0.2 resolution: "xtend@npm:4.0.2" checksum: ac5dfa738b21f6e7f0dd6e65e1b3155036d68104e67e5d5d1bde74892e327d7e5636a076f625599dc394330a731861e87343ff184b0047fef1360a7ec0a5a36a From 2fd2b0816283177be7cd6b656ab8ed0774aa2fe5 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 5 Aug 2023 16:14:53 +0000 Subject: [PATCH 062/372] fix(deps): update dependency @microsoft/microsoft-graph-types to v2.38.0 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 1a7517ab07..a17cc23451 100644 --- a/yarn.lock +++ b/yarn.lock @@ -12882,9 +12882,9 @@ __metadata: linkType: hard "@microsoft/microsoft-graph-types@npm:^2.25.0, @microsoft/microsoft-graph-types@npm:^2.6.0": - version: 2.35.0 - resolution: "@microsoft/microsoft-graph-types@npm:2.35.0" - checksum: d2053799a8b78f5743a64853727e3887101cbb6b26558b8a6e8501b561b04d4bca1dac6c74534229b9e40daa489f47188ae5837ada42108a50d4062cfb60f57e + version: 2.38.0 + resolution: "@microsoft/microsoft-graph-types@npm:2.38.0" + checksum: f5778650655034a6d92fbb932376002aefcf0cd358de323267b65fbec59284e8c0208e895c5523dcbbe79c4b583f3822c6beea01b70c687da26929c92de93c92 languageName: node linkType: hard From fa33214ba89d2389fb3adb01eae9b14ccb25607b Mon Sep 17 00:00:00 2001 From: Kurt King Date: Sat, 5 Aug 2023 16:57:48 -0600 Subject: [PATCH 063/372] docs: provide example for github:repo:create Signed-off-by: Kurt King --- .../github/githubRepoCreate.examples.test.ts | 135 ++++++++++++++++++ .../github/githubRepoCreate.examples.ts | 35 +++++ .../builtin/github/githubRepoCreate.ts | 2 + 3 files changed, 172 insertions(+) create mode 100644 plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/githubRepoCreate.examples.test.ts create mode 100644 plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/githubRepoCreate.examples.ts diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/githubRepoCreate.examples.test.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/githubRepoCreate.examples.test.ts new file mode 100644 index 0000000000..2f4adbf7db --- /dev/null +++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/githubRepoCreate.examples.test.ts @@ -0,0 +1,135 @@ +/* + * 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 { TemplateAction } from '@backstage/plugin-scaffolder-node'; + +jest.mock('../helpers'); + +import { getVoidLogger } from '@backstage/backend-common'; +import { ConfigReader } from '@backstage/config'; +import { + DefaultGithubCredentialsProvider, + GithubCredentialsProvider, + ScmIntegrations, +} from '@backstage/integration'; +import { PassThrough } from 'stream'; +import { createGithubRepoCreateAction } from './githubRepoCreate'; +import { entityRefToName } from '../helpers'; +import yaml from 'yaml'; +import { examples } from './githubRepoCreate.examples'; + +const publicKey = '2Sg8iYjAxxmI2LvUXpJjkYrMxURPc8r+dB7TJyvvcCU='; + +const mockOctokit = { + rest: { + users: { + getByUsername: jest.fn(), + }, + repos: { + addCollaborator: jest.fn(), + createInOrg: jest.fn(), + createForAuthenticatedUser: jest.fn(), + replaceAllTopics: jest.fn(), + }, + teams: { + addOrUpdateRepoPermissionsInOrg: jest.fn(), + getByName: jest.fn(), + }, + actions: { + createRepoVariable: jest.fn(), + createOrUpdateRepoSecret: jest.fn(), + getRepoPublicKey: jest.fn(), + }, + }, +}; +jest.mock('octokit', () => ({ + Octokit: class { + constructor() { + return mockOctokit; + } + }, +})); + +describe('github:repo:create', () => { + const config = new ConfigReader({ + integrations: { + github: [ + { host: 'github.com', token: 'tokenlols' }, + { host: 'ghe.github.com' }, + ], + }, + }); + + const integrations = ScmIntegrations.fromConfig(config); + let githubCredentialsProvider: GithubCredentialsProvider; + let action: TemplateAction; + + const mockContext = { + input: { + repoUrl: 'github.com?repo=repo&owner=owner', + }, + workspacePath: 'lol', + logger: getVoidLogger(), + logStream: new PassThrough(), + output: jest.fn(), + createTemporaryDirectory: jest.fn(), + }; + + beforeEach(() => { + githubCredentialsProvider = + DefaultGithubCredentialsProvider.fromIntegrations(integrations); + action = createGithubRepoCreateAction({ + integrations, + githubCredentialsProvider, + }); + (entityRefToName as jest.Mock).mockImplementation((s: string) => s); + mockOctokit.rest.actions.getRepoPublicKey.mockResolvedValue({ + data: { + key: publicKey, + key_id: 'keyid', + }, + }); + }); + + afterEach(jest.resetAllMocks); + + it('should call the githubApis with the correct values for createInOrg', async () => { + mockOctokit.rest.users.getByUsername.mockResolvedValue({ + data: { type: 'Organization' }, + }); + + mockOctokit.rest.repos.createInOrg.mockResolvedValue({ data: {} }); + + await action.handler({ + ...mockContext, + input: yaml.parse(examples[0].example).steps[0].input, + }); + + expect(mockOctokit.rest.repos.createInOrg).toHaveBeenCalledWith({ + name: 'repo', + org: 'owner', + private: true, + delete_branch_on_merge: false, + allow_squash_merge: true, + squash_merge_commit_title: 'COMMIT_OR_PR_TITLE', + squash_merge_commit_message: 'COMMIT_MESSAGES', + allow_merge_commit: true, + allow_rebase_merge: true, + allow_auto_merge: false, + visibility: 'private', + }); + }); +}); diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/githubRepoCreate.examples.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/githubRepoCreate.examples.ts new file mode 100644 index 0000000000..d64afe1338 --- /dev/null +++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/githubRepoCreate.examples.ts @@ -0,0 +1,35 @@ +/* + * 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 { TemplateExample } from '@backstage/plugin-scaffolder-node'; +import yaml from 'yaml'; + +export const examples: TemplateExample[] = [ + { + description: 'Creates a GitHub repository.', + example: yaml.stringify({ + steps: [ + { + action: 'github:repo:create', + name: 'Create a new GitHub repository', + input: { + repoUrl: 'github.com?repo=repo&owner=owner', + }, + }, + ], + }), + }, +]; diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/githubRepoCreate.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/githubRepoCreate.ts index 0ec1c83910..e0fde3b193 100644 --- a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/githubRepoCreate.ts +++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/githubRepoCreate.ts @@ -28,6 +28,7 @@ import { } from './helpers'; import * as inputProps from './inputProperties'; import * as outputProps from './outputProperties'; +import { examples } from './githubRepoCreate.examples'; /** * Creates a new action that initializes a git repository @@ -96,6 +97,7 @@ export function createGithubRepoCreateAction(options: { }>({ id: 'github:repo:create', description: 'Creates a GitHub repository.', + examples, schema: { input: { type: 'object', From 6c6115b6e1714e02622c6a9e05f0b590ddab3729 Mon Sep 17 00:00:00 2001 From: Kurt King Date: Sat, 5 Aug 2023 17:01:46 -0600 Subject: [PATCH 064/372] test: update description Signed-off-by: Kurt King --- .../actions/builtin/github/githubRepoCreate.examples.test.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/githubRepoCreate.examples.test.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/githubRepoCreate.examples.test.ts index 2f4adbf7db..15dc423dd8 100644 --- a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/githubRepoCreate.examples.test.ts +++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/githubRepoCreate.examples.test.ts @@ -63,7 +63,7 @@ jest.mock('octokit', () => ({ }, })); -describe('github:repo:create', () => { +describe('github:repo:create examples', () => { const config = new ConfigReader({ integrations: { github: [ From 2e7c770cda51a7009c5179c77155d0bb5a41458d Mon Sep 17 00:00:00 2001 From: Kurt King Date: Sat, 5 Aug 2023 18:03:20 -0600 Subject: [PATCH 065/372] docs: provide example for github:repo:push Signed-off-by: Kurt King --- .../github/githubRepoPush.examples.test.ts | 131 ++++++++++++++++++ .../builtin/github/githubRepoPush.examples.ts | 65 +++++++++ .../actions/builtin/github/githubRepoPush.ts | 2 + 3 files changed, 198 insertions(+) create mode 100644 plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/githubRepoPush.examples.test.ts create mode 100644 plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/githubRepoPush.examples.ts diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/githubRepoPush.examples.test.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/githubRepoPush.examples.test.ts new file mode 100644 index 0000000000..84d489272d --- /dev/null +++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/githubRepoPush.examples.test.ts @@ -0,0 +1,131 @@ +/* + * 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 { TemplateAction } from '@backstage/plugin-scaffolder-node'; +import { getVoidLogger } from '@backstage/backend-common'; +import { ConfigReader } from '@backstage/config'; +import { + DefaultGithubCredentialsProvider, + GithubCredentialsProvider, + ScmIntegrations, +} from '@backstage/integration'; +import { PassThrough } from 'stream'; +import { initRepoAndPush } from '../helpers'; +import { createGithubRepoPushAction } from './githubRepoPush'; +import { examples } from './githubRepoPush.examples'; +import yaml from 'yaml'; + +const mockGit = { + init: jest.fn(), + add: jest.fn(), + checkout: jest.fn(), + commit: jest + .fn() + .mockResolvedValue('220f19cc36b551763d157f1b5e4a4b446165dbd6'), + fetch: jest.fn(), + addRemote: jest.fn(), + push: jest.fn(), +}; + +jest.mock('@backstage/backend-common', () => ({ + Git: { + fromAuth() { + return mockGit; + }, + }, + getVoidLogger: jest.requireActual('@backstage/backend-common').getVoidLogger, +})); + +jest.mock('../helpers'); + +const initRepoAndPushMocked = initRepoAndPush as jest.Mock< + Promise<{ commitHash: string }> +>; + +const mockOctokit = { + rest: { + repos: { + get: jest.fn(), + }, + }, +}; +jest.mock('octokit', () => ({ + Octokit: class { + constructor() { + return mockOctokit; + } + }, +})); + +describe('github:repo:push examples', () => { + const config = new ConfigReader({ + integrations: { + github: [ + { host: 'github.com', token: 'tokenlols' }, + { host: 'ghe.github.com' }, + ], + }, + }); + + const integrations = ScmIntegrations.fromConfig(config); + let githubCredentialsProvider: GithubCredentialsProvider; + let action: TemplateAction; + + const mockContext = { + workspacePath: 'lol', + logger: getVoidLogger(), + logStream: new PassThrough(), + output: jest.fn(), + createTemporaryDirectory: jest.fn(), + }; + + beforeEach(() => { + jest.resetAllMocks(); + + initRepoAndPushMocked.mockResolvedValue({ commitHash: 'test123' }); + + githubCredentialsProvider = + DefaultGithubCredentialsProvider.fromIntegrations(integrations); + action = createGithubRepoPushAction({ + integrations, + config, + githubCredentialsProvider, + }); + }); + + it('should call initRepoAndPush with the correct values', async () => { + mockOctokit.rest.repos.get.mockResolvedValue({ + data: { + clone_url: 'https://github.com/clone/url.git', + html_url: 'https://github.com/html/url', + }, + }); + + await action.handler({ + ...mockContext, + input: yaml.parse(examples[0].example).steps[0].input, + }); + + expect(initRepoAndPush).toHaveBeenCalledWith({ + dir: mockContext.workspacePath, + remoteUrl: 'https://github.com/clone/url.git', + defaultBranch: 'master', + auth: { username: 'x-access-token', password: 'tokenlols' }, + logger: mockContext.logger, + commitMessage: 'initial commit', + gitAuthorInfo: {}, + }); + }); +}); diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/githubRepoPush.examples.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/githubRepoPush.examples.ts new file mode 100644 index 0000000000..5d3ba1e9d8 --- /dev/null +++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/githubRepoPush.examples.ts @@ -0,0 +1,65 @@ +/* + * 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 { TemplateExample } from '@backstage/plugin-scaffolder-node'; +import yaml from 'yaml'; + +export const examples: TemplateExample[] = [ + { + description: 'Setup repo with no modifications to branch protection rules', + example: yaml.stringify({ + steps: [ + { + action: 'github:repo:push', + name: 'Create test repo with testuser as owner.', + input: { + repoUrl: 'github.com?repo=test&owner=testuser', + }, + }, + ], + }), + }, + { + description: 'Setup repo with required codeowners check', + example: yaml.stringify({ + steps: [ + { + action: 'github:repo:push', + name: 'Require codeowner branch protection rule', + input: { + repoUrl: 'github.com?repo=reponame&owner=owner', + requireCodeOwnerReviews: true, + }, + }, + ], + }), + }, + { + description: 'Change the default required number of approvals', + example: yaml.stringify({ + steps: [ + { + action: 'github:repo:push', + name: 'Require two approvals before merging', + input: { + repoUrl: 'github.com?repo=reponame&owner=owner', + requiredApprovingReviewCount: 2, + }, + }, + ], + }), + }, +]; diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/githubRepoPush.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/githubRepoPush.ts index fb15535453..e30eedad02 100644 --- a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/githubRepoPush.ts +++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/githubRepoPush.ts @@ -26,6 +26,7 @@ import { parseRepoUrl } from '../publish/util'; import { getOctokitOptions, initRepoPushAndProtect } from './helpers'; import * as inputProps from './inputProperties'; import * as outputProps from './outputProperties'; +import { examples } from './githubRepoPush.examples'; /** * Creates a new action that initializes a git repository of the content in the workspace @@ -76,6 +77,7 @@ export function createGithubRepoPushAction(options: { id: 'github:repo:push', description: 'Initializes a git repository of contents in workspace and publishes it to GitHub.', + examples, schema: { input: { type: 'object', From 563b8443e92ebe13ca1b08b6303f25621c579722 Mon Sep 17 00:00:00 2001 From: Kurt King Date: Sat, 5 Aug 2023 18:13:37 -0600 Subject: [PATCH 066/372] docs: add more examples Signed-off-by: Kurt King --- .../github/githubRepoCreate.examples.test.ts | 57 +++++++++++++++++++ .../github/githubRepoCreate.examples.ts | 33 ++++++++++- 2 files changed, 89 insertions(+), 1 deletion(-) diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/githubRepoCreate.examples.test.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/githubRepoCreate.examples.test.ts index 15dc423dd8..71bbc7c1c6 100644 --- a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/githubRepoCreate.examples.test.ts +++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/githubRepoCreate.examples.test.ts @@ -132,4 +132,61 @@ describe('github:repo:create examples', () => { visibility: 'private', }); }); + + it('should call the githubApis with a description for createInOrg', async () => { + mockOctokit.rest.users.getByUsername.mockResolvedValue({ + data: { type: 'Organization' }, + }); + + mockOctokit.rest.repos.createInOrg.mockResolvedValue({ data: {} }); + + await action.handler({ + ...mockContext, + input: yaml.parse(examples[1].example).steps[0].input, + }); + + expect(mockOctokit.rest.repos.createInOrg).toHaveBeenCalledWith({ + name: 'repo', + description: 'My new repository', + org: 'owner', + private: true, + delete_branch_on_merge: false, + allow_squash_merge: true, + squash_merge_commit_title: 'COMMIT_OR_PR_TITLE', + squash_merge_commit_message: 'COMMIT_MESSAGES', + allow_merge_commit: true, + allow_rebase_merge: true, + allow_auto_merge: false, + visibility: 'private', + }); + }); + + it('should call the githubApis with wiki and issues disabled for createInOrg', async () => { + mockOctokit.rest.users.getByUsername.mockResolvedValue({ + data: { type: 'Organization' }, + }); + + mockOctokit.rest.repos.createInOrg.mockResolvedValue({ data: {} }); + + await action.handler({ + ...mockContext, + input: yaml.parse(examples[2].example).steps[0].input, + }); + + expect(mockOctokit.rest.repos.createInOrg).toHaveBeenCalledWith({ + name: 'repo', + org: 'owner', + private: true, + delete_branch_on_merge: false, + allow_squash_merge: true, + squash_merge_commit_title: 'COMMIT_OR_PR_TITLE', + squash_merge_commit_message: 'COMMIT_MESSAGES', + allow_merge_commit: true, + allow_rebase_merge: true, + allow_auto_merge: false, + visibility: 'private', + has_issues: false, // disable issues + has_wiki: false, // disable wiki + }); + }); }); diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/githubRepoCreate.examples.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/githubRepoCreate.examples.ts index d64afe1338..b2577fa97b 100644 --- a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/githubRepoCreate.examples.ts +++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/githubRepoCreate.examples.ts @@ -19,7 +19,7 @@ import yaml from 'yaml'; export const examples: TemplateExample[] = [ { - description: 'Creates a GitHub repository.', + description: 'Creates a GitHub repository with default configuration.', example: yaml.stringify({ steps: [ { @@ -32,4 +32,35 @@ export const examples: TemplateExample[] = [ ], }), }, + { + description: 'Add a description.', + example: yaml.stringify({ + steps: [ + { + action: 'github:repo:create', + name: 'Create a new GitHub repository', + input: { + repoUrl: 'github.com?repo=repo&owner=owner', + description: 'My new repository', + }, + }, + ], + }), + }, + { + description: 'Disable wiki and issues.', + example: yaml.stringify({ + steps: [ + { + action: 'github:repo:create', + name: 'Create a new GitHub repository', + input: { + repoUrl: 'github.com?repo=repo&owner=owner', + hasIssues: false, + hasWiki: false, + }, + }, + ], + }), + }, ]; From 0f873325068d05b709c2a5c3c80d57155eba1abe Mon Sep 17 00:00:00 2001 From: Kurt King Date: Sat, 5 Aug 2023 18:19:33 -0600 Subject: [PATCH 067/372] chore: add changeset Signed-off-by: Kurt King --- .changeset/orange-pandas-worry.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/orange-pandas-worry.md diff --git a/.changeset/orange-pandas-worry.md b/.changeset/orange-pandas-worry.md new file mode 100644 index 0000000000..78bd1fad79 --- /dev/null +++ b/.changeset/orange-pandas-worry.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-scaffolder-backend': patch +--- + +docs: add examples for github:repo:create and github:repo:push scaffolder actions From 1e945f311b17b0fc34a41872793cc69cb957c365 Mon Sep 17 00:00:00 2001 From: Kurt King Date: Sat, 5 Aug 2023 18:24:54 -0600 Subject: [PATCH 068/372] chore: minor description updates Signed-off-by: Kurt King --- .../actions/builtin/github/githubRepoCreate.examples.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/githubRepoCreate.examples.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/githubRepoCreate.examples.ts index b2577fa97b..a58da1ee29 100644 --- a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/githubRepoCreate.examples.ts +++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/github/githubRepoCreate.examples.ts @@ -38,7 +38,7 @@ export const examples: TemplateExample[] = [ steps: [ { action: 'github:repo:create', - name: 'Create a new GitHub repository', + name: 'Create a new GitHub repository with a description', input: { repoUrl: 'github.com?repo=repo&owner=owner', description: 'My new repository', @@ -53,7 +53,7 @@ export const examples: TemplateExample[] = [ steps: [ { action: 'github:repo:create', - name: 'Create a new GitHub repository', + name: 'Create a new GitHub repository without wiki and issues', input: { repoUrl: 'github.com?repo=repo&owner=owner', hasIssues: false, From 8d1cc7cbcc34b29eee3bf89c7748b3e422f8c7f9 Mon Sep 17 00:00:00 2001 From: Philipp Hugenroth Date: Mon, 7 Aug 2023 12:04:29 +0200 Subject: [PATCH 069/372] Update v1.16.0.md The "Mailchimp" link seems to have stoped working. Suggestion to replace the link in the latest release note - as well as the upcoming release notes - with the link used for the newsletter in other place. Let me know if there is a template somewhere where I can apply this change as well. Signed-off-by: Philipp Hugenroth --- docs/releases/v1.16.0.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/releases/v1.16.0.md b/docs/releases/v1.16.0.md index 5435d15994..37a458cc32 100644 --- a/docs/releases/v1.16.0.md +++ b/docs/releases/v1.16.0.md @@ -84,4 +84,4 @@ Below you can find a list of links and references to help you learn about and st - [Changelog](https://github.com/backstage/backstage/tree/master/docs/releases/v1.16.0-changelog.md) - Backstage [Demos](https://backstage.io/demos), [Blog](https://backstage.io/blog), [Roadmap](https://backstage.io/docs/overview/roadmap) and [Plugins](https://backstage.io/plugins) -Sign up for our [newsletter](https://mailchi.mp/spotify/backstage-community) if you want to be informed about what is happening in the world of Backstage. +Sign up for our [newsletter](https://info.backstage.spotify.com/newsletter_subscribe) if you want to be informed about what is happening in the world of Backstage. From 0c450c0e9e44571cb6f8139d6b8a3331eb1dfc6d Mon Sep 17 00:00:00 2001 From: Vincenzo Scamporlino Date: Tue, 1 Aug 2023 11:55:25 +0200 Subject: [PATCH 070/372] add feature discovery service Co-authored-by: Patrik Oldsberg Signed-off-by: Vincenzo Scamporlino --- .../src/wiring/BackendInitializer.ts | 17 +++++++++++ packages/backend-plugin-api/package.json | 19 ++++++++++-- packages/backend-plugin-api/src/alpha.ts | 29 +++++++++++++++++++ 3 files changed, 62 insertions(+), 3 deletions(-) create mode 100644 packages/backend-plugin-api/src/alpha.ts diff --git a/packages/backend-app-api/src/wiring/BackendInitializer.ts b/packages/backend-app-api/src/wiring/BackendInitializer.ts index ec4b2a79ac..cf140158a6 100644 --- a/packages/backend-app-api/src/wiring/BackendInitializer.ts +++ b/packages/backend-app-api/src/wiring/BackendInitializer.ts @@ -27,6 +27,7 @@ import { EnumerableServiceHolder, ServiceOrExtensionPoint } from './types'; // eslint-disable-next-line @backstage/no-forbidden-package-imports import { InternalBackendFeature } from '@backstage/backend-plugin-api/src/wiring/types'; import { ForwardedError } from '@backstage/errors'; +import { featureDiscoveryServiceRef } from '@backstage/backend-plugin-api/alpha'; export interface BackendRegisterInit { consumes: Set; @@ -87,6 +88,10 @@ export class BackendInitializer { if (this.#startPromise) { throw new Error('feature can not be added after the backend has started'); } + this.#addFeature(feature); + } + + #addFeature(feature: BackendFeature) { if (feature.$$type !== '@backstage/BackendFeature') { throw new Error( `Failed to add feature, invalid type '${feature.$$type}'`, @@ -129,6 +134,18 @@ export class BackendInitializer { } async #doStart(): Promise { + const featureDiscovery = await this.#serviceHolder.get( + featureDiscoveryServiceRef, + 'root', + ); + + if (featureDiscovery) { + const { features } = await featureDiscovery.getBackendFeatures(); + for (const plugin of features) { + this.#addFeature(plugin); + } + } + // Initialize all root scoped services for (const ref of this.#serviceHolder.getServiceRefs()) { if (ref.scope === 'root') { diff --git a/packages/backend-plugin-api/package.json b/packages/backend-plugin-api/package.json index 5d0bfe08fb..555c60c8e4 100644 --- a/packages/backend-plugin-api/package.json +++ b/packages/backend-plugin-api/package.json @@ -5,13 +5,26 @@ "main": "src/index.ts", "types": "src/index.ts", "publishConfig": { - "access": "public", - "main": "dist/index.cjs.js", - "types": "dist/index.d.ts" + "access": "public" }, "backstage": { "role": "node-library" }, + "exports": { + ".": "./src/index.ts", + "./alpha": "./src/alpha.ts", + "./package.json": "./package.json" + }, + "typesVersions": { + "*": { + "alpha": [ + "src/alpha.ts" + ], + "package.json": [ + "package.json" + ] + } + }, "homepage": "https://backstage.io", "repository": { "type": "git", diff --git a/packages/backend-plugin-api/src/alpha.ts b/packages/backend-plugin-api/src/alpha.ts new file mode 100644 index 0000000000..6db9b009cf --- /dev/null +++ b/packages/backend-plugin-api/src/alpha.ts @@ -0,0 +1,29 @@ +/* + * 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 { createServiceRef } from './services'; +import { BackendFeature } from './wiring'; + +/** @alpha */ +export interface FeatureDiscoveryService { + getBackendFeatures(): Promise<{ features: Array }>; +} + +/** @alpha */ +export const featureDiscoveryServiceRef = + createServiceRef({ + id: 'core.featureDiscovery', + }); From 0b4dbb40827c6097b741c58cb4fd11e9cf25dedc Mon Sep 17 00:00:00 2001 From: Vincenzo Scamporlino Date: Tue, 1 Aug 2023 16:52:56 +0200 Subject: [PATCH 071/372] discover backend feature factory Co-authored-by: Patrik Oldsberg Signed-off-by: Vincenzo Scamporlino --- packages/backend-app-api/package.json | 20 ++- packages/backend-app-api/src/alpha.ts | 118 ++++++++++++++++++ packages/backend-next/package.json | 1 + .../src/wiring/factories.ts | 10 +- yarn.lock | 2 + 5 files changed, 147 insertions(+), 4 deletions(-) create mode 100644 packages/backend-app-api/src/alpha.ts diff --git a/packages/backend-app-api/package.json b/packages/backend-app-api/package.json index d1aa511794..75890b4370 100644 --- a/packages/backend-app-api/package.json +++ b/packages/backend-app-api/package.json @@ -5,13 +5,26 @@ "main": "src/index.ts", "types": "src/index.ts", "publishConfig": { - "access": "public", - "main": "dist/index.cjs.js", - "types": "dist/index.d.ts" + "access": "public" }, "backstage": { "role": "node-library" }, + "exports": { + ".": "./src/index.ts", + "./alpha": "./src/alpha.ts", + "./package.json": "./package.json" + }, + "typesVersions": { + "*": { + "alpha": [ + "src/alpha.ts" + ], + "package.json": [ + "package.json" + ] + } + }, "homepage": "https://backstage.io", "repository": { "type": "git", @@ -36,6 +49,7 @@ "@backstage/backend-plugin-api": "workspace:^", "@backstage/backend-tasks": "workspace:^", "@backstage/cli-common": "workspace:^", + "@backstage/cli-node": "workspace:^", "@backstage/config": "workspace:^", "@backstage/config-loader": "workspace:^", "@backstage/errors": "workspace:^", diff --git a/packages/backend-app-api/src/alpha.ts b/packages/backend-app-api/src/alpha.ts new file mode 100644 index 0000000000..da77c7cfc5 --- /dev/null +++ b/packages/backend-app-api/src/alpha.ts @@ -0,0 +1,118 @@ +/* + * 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 { + BackendFeature, + RootConfigService, + coreServices, + createServiceFactory, +} from '@backstage/backend-plugin-api'; +import { + featureDiscoveryServiceRef, + FeatureDiscoveryService, +} from '@backstage/backend-plugin-api/alpha'; +import { resolve as resolvePath, dirname } from 'path'; +import fs from 'fs-extra'; +import { BackstagePackageJson } from '@backstage/cli-node'; + +const LOADED_PACKAGE_ROLES = ['backend-plugin', 'backend-module']; + +/** @internal */ +async function findClosestPackageDir( + searchDir: string, +): Promise { + let path = searchDir; + + // Some confidence check to avoid infinite loop + for (let i = 0; i < 1000; i++) { + const packagePath = resolvePath(path, 'package.json'); + const exists = await fs.pathExists(packagePath); + if (exists) { + return path; + } + + const newPath = dirname(path); + if (newPath === path) { + return undefined; + } + path = newPath; + } + + throw new Error( + `Iteration limit reached when searching for root package.json at ${searchDir}`, + ); +} + +/** @alpha */ +export class PackageDiscoveryService implements FeatureDiscoveryService { + constructor(private readonly config: RootConfigService) {} + + async getBackendFeatures(): Promise<{ features: Array }> { + // if (this.config.getOptionalString('backend.packages') !== 'all') { + // return { features: [] }; + // } + + console.log(`DEBUG: executing backend feature discovery`); + const packageDir = await findClosestPackageDir(process.argv[1]); + if (!packageDir) { + throw new Error('NOOOOOOOOOOOOOOOOOOOOOOOOOO'); + } + console.log(`DEBUG: packageDir=`, packageDir); + const { dependencies } = require(resolvePath(packageDir, 'package.json')); + const dependencyNames = Object.keys(dependencies); + console.log(`DEBUG: dependencyNames=`, dependencyNames); + + const features: BackendFeature[] = []; + + for (const name of dependencyNames) { + const depPkg = require(`${name}/package.json`) as BackstagePackageJson; + if (!LOADED_PACKAGE_ROLES.includes(depPkg?.backstage?.role ?? '')) { + continue; + } + const depModule = require(name); // @backstage/plugin-catalog-backend + console.log(`DEBUG: loaded ${name} depModule=`, depModule); + Object.values(depModule).filter(exportValue => { + if ( + exportValue && + typeof exportValue === 'object' && + (exportValue as any).$$type === '@backstage/BackendFeature' + ) { + features.push(exportValue as BackendFeature); + } + if ( + typeof exportValue === 'function' && + (exportValue as any).$$type === '@backstage/BackendFeatureFactory' + ) { + features.push(exportValue() as BackendFeature); + } + }); + } + + console.log(`DEBUG: features=`, features); + return { features }; + } +} + +/** @alpha */ +export const packageFeatureDiscoveryServiceFactory = createServiceFactory({ + service: featureDiscoveryServiceRef, + deps: { + config: coreServices.rootConfig, + }, + factory({ config }) { + return new PackageDiscoveryService(config); + }, +}); diff --git a/packages/backend-next/package.json b/packages/backend-next/package.json index af4f483db0..f36f90998b 100644 --- a/packages/backend-next/package.json +++ b/packages/backend-next/package.json @@ -26,6 +26,7 @@ }, "dependencies": { "@backstage/backend-defaults": "workspace:^", + "@backstage/backend-plugin-api": "workspace:^", "@backstage/backend-tasks": "workspace:^", "@backstage/plugin-adr-backend": "workspace:^", "@backstage/plugin-app-backend": "workspace:^", diff --git a/packages/backend-plugin-api/src/wiring/factories.ts b/packages/backend-plugin-api/src/wiring/factories.ts index 928c933af0..41584e9a29 100644 --- a/packages/backend-plugin-api/src/wiring/factories.ts +++ b/packages/backend-plugin-api/src/wiring/factories.ts @@ -78,6 +78,11 @@ export interface BackendPluginConfig { register(reg: BackendPluginRegistrationPoints): void; } +export const catalogPlugin = createBackendPlugin({ + pluginId: 'catalog', + register() {}, +}); + /** * Creates a new backend plugin. * @@ -89,7 +94,7 @@ export function createBackendPlugin( config: BackendPluginConfig | ((...params: TOptions) => BackendPluginConfig), ): (...params: TOptions) => BackendFeature { const configCallback = typeof config === 'function' ? config : () => config; - return (...options: TOptions): InternalBackendFeature => { + const factory = (...options: TOptions): InternalBackendFeature => { const c = configCallback(...options); let registrations: InternalBackendPluginRegistration[]; @@ -144,6 +149,9 @@ export function createBackendPlugin( }, }; }; + + factory.$$type = '@backstage/BackendFeatureFactory'; + return factory; } /** diff --git a/yarn.lock b/yarn.lock index 88a07ef408..07c182f207 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3292,6 +3292,7 @@ __metadata: "@backstage/backend-test-utils": "workspace:^" "@backstage/cli": "workspace:^" "@backstage/cli-common": "workspace:^" + "@backstage/cli-node": "workspace:^" "@backstage/config": "workspace:^" "@backstage/config-loader": "workspace:^" "@backstage/errors": "workspace:^" @@ -25169,6 +25170,7 @@ __metadata: resolution: "example-backend-next@workspace:packages/backend-next" dependencies: "@backstage/backend-defaults": "workspace:^" + "@backstage/backend-plugin-api": "workspace:^" "@backstage/backend-tasks": "workspace:^" "@backstage/cli": "workspace:^" "@backstage/plugin-adr-backend": "workspace:^" From 36a40b4903059537a8e0ef174819c44ef2b886a7 Mon Sep 17 00:00:00 2001 From: Vincenzo Scamporlino Date: Tue, 1 Aug 2023 20:43:28 +0200 Subject: [PATCH 072/372] define BackendFeatureFactory Signed-off-by: Vincenzo Scamporlino --- packages/backend-app-api/src/alpha.ts | 48 ++++++++++++------- .../src/wiring/factories.ts | 17 ++++--- .../backend-plugin-api/src/wiring/index.ts | 1 + .../backend-plugin-api/src/wiring/types.ts | 8 ++++ 4 files changed, 51 insertions(+), 23 deletions(-) diff --git a/packages/backend-app-api/src/alpha.ts b/packages/backend-app-api/src/alpha.ts index da77c7cfc5..31b61950b9 100644 --- a/packages/backend-app-api/src/alpha.ts +++ b/packages/backend-app-api/src/alpha.ts @@ -16,6 +16,7 @@ import { BackendFeature, + BackendFeatureFactory, RootConfigService, coreServices, createServiceFactory, @@ -71,8 +72,11 @@ export class PackageDiscoveryService implements FeatureDiscoveryService { throw new Error('NOOOOOOOOOOOOOOOOOOOOOOOOOO'); } console.log(`DEBUG: packageDir=`, packageDir); - const { dependencies } = require(resolvePath(packageDir, 'package.json')); - const dependencyNames = Object.keys(dependencies); + const { dependencies } = require(resolvePath( + packageDir, + 'package.json', + )) as BackstagePackageJson; + const dependencyNames = Object.keys(dependencies || {}); console.log(`DEBUG: dependencyNames=`, dependencyNames); const features: BackendFeature[] = []; @@ -82,23 +86,16 @@ export class PackageDiscoveryService implements FeatureDiscoveryService { if (!LOADED_PACKAGE_ROLES.includes(depPkg?.backstage?.role ?? '')) { continue; } - const depModule = require(name); // @backstage/plugin-catalog-backend + const depModule = require(name); console.log(`DEBUG: loaded ${name} depModule=`, depModule); - Object.values(depModule).filter(exportValue => { - if ( - exportValue && - typeof exportValue === 'object' && - (exportValue as any).$$type === '@backstage/BackendFeature' - ) { - features.push(exportValue as BackendFeature); + for (const exportValue of Object.values(depModule)) { + if (isBackendFeature(exportValue)) { + features.push(exportValue); } - if ( - typeof exportValue === 'function' && - (exportValue as any).$$type === '@backstage/BackendFeatureFactory' - ) { - features.push(exportValue() as BackendFeature); + if (isBackendFeatureFactory(exportValue)) { + features.push(exportValue()); } - }); + } } console.log(`DEBUG: features=`, features); @@ -116,3 +113,22 @@ export const packageFeatureDiscoveryServiceFactory = createServiceFactory({ return new PackageDiscoveryService(config); }, }); + +function isBackendFeature(value: unknown): value is BackendFeature { + return ( + !!value && + typeof value === 'object' && + (value as BackendFeature).$$type === '@backstage/BackendFeature' + ); +} + +function isBackendFeatureFactory( + value: unknown, +): value is BackendFeatureFactory { + return ( + !!value && + typeof value === 'object' && + (value as BackendFeatureFactory).$$type === + '@backstage/BackendFeatureFactory' + ); +} diff --git a/packages/backend-plugin-api/src/wiring/factories.ts b/packages/backend-plugin-api/src/wiring/factories.ts index 41584e9a29..ba9238e0e0 100644 --- a/packages/backend-plugin-api/src/wiring/factories.ts +++ b/packages/backend-plugin-api/src/wiring/factories.ts @@ -17,11 +17,10 @@ import { BackendModuleRegistrationPoints, BackendPluginRegistrationPoints, - BackendFeature, ExtensionPoint, - InternalBackendFeature, InternalBackendModuleRegistration, InternalBackendPluginRegistration, + BackendFeatureFactory, } from './types'; /** @@ -92,9 +91,10 @@ export const catalogPlugin = createBackendPlugin({ */ export function createBackendPlugin( config: BackendPluginConfig | ((...params: TOptions) => BackendPluginConfig), -): (...params: TOptions) => BackendFeature { +): BackendFeatureFactory { const configCallback = typeof config === 'function' ? config : () => config; - const factory = (...options: TOptions): InternalBackendFeature => { + + const factory: BackendFeatureFactory = (...options) => { const c = configCallback(...options); let registrations: InternalBackendPluginRegistration[]; @@ -149,8 +149,8 @@ export function createBackendPlugin( }, }; }; - factory.$$type = '@backstage/BackendFeatureFactory'; + return factory; } @@ -184,9 +184,9 @@ export interface BackendModuleConfig { */ export function createBackendModule( config: BackendModuleConfig | ((...params: TOptions) => BackendModuleConfig), -): (...params: TOptions) => BackendFeature { +): BackendFeatureFactory { const configCallback = typeof config === 'function' ? config : () => config; - return (...options: TOptions): InternalBackendFeature => { + const factory: BackendFeatureFactory = (...options: TOptions) => { const c = configCallback(...options); let registrations: InternalBackendModuleRegistration[]; @@ -231,4 +231,7 @@ export function createBackendModule( }, }; }; + factory.$$type = '@backstage/BackendFeatureFactory'; + + return factory; } diff --git a/packages/backend-plugin-api/src/wiring/index.ts b/packages/backend-plugin-api/src/wiring/index.ts index 9cb767b8ac..0b7104374a 100644 --- a/packages/backend-plugin-api/src/wiring/index.ts +++ b/packages/backend-plugin-api/src/wiring/index.ts @@ -28,5 +28,6 @@ export type { BackendModuleRegistrationPoints, BackendPluginRegistrationPoints, BackendFeature, + BackendFeatureFactory, ExtensionPoint, } from './types'; diff --git a/packages/backend-plugin-api/src/wiring/types.ts b/packages/backend-plugin-api/src/wiring/types.ts index c81ee3ceb7..b9b4f3ff10 100644 --- a/packages/backend-plugin-api/src/wiring/types.ts +++ b/packages/backend-plugin-api/src/wiring/types.ts @@ -67,6 +67,14 @@ export interface BackendModuleRegistrationPoints { }): void; } +/** @public */ +export interface BackendFeatureFactory< + TOptions extends [options?: object] = [], +> { + (...options: TOptions): BackendFeature; + $$type: '@backstage/BackendFeatureFactory'; +} + /** @public */ export interface BackendFeature { // NOTE: This type is opaque in order to simplify future API evolution. From 83ae67710a703a475943b1cce6486c1c75f966dc Mon Sep 17 00:00:00 2001 From: Vincenzo Scamporlino Date: Wed, 2 Aug 2023 11:02:53 +0200 Subject: [PATCH 073/372] move feature discovery to alpha Co-authored-by: Patrik Oldsberg Signed-off-by: Vincenzo Scamporlino --- packages/backend-app-api/src/alpha.ts | 119 +--------------- .../alpha/featureDiscoveryServiceFactory.ts | 129 ++++++++++++++++++ packages/backend-app-api/src/alpha/index.ts | 17 +++ 3 files changed, 147 insertions(+), 118 deletions(-) create mode 100644 packages/backend-app-api/src/alpha/featureDiscoveryServiceFactory.ts create mode 100644 packages/backend-app-api/src/alpha/index.ts diff --git a/packages/backend-app-api/src/alpha.ts b/packages/backend-app-api/src/alpha.ts index 31b61950b9..d9068b8f82 100644 --- a/packages/backend-app-api/src/alpha.ts +++ b/packages/backend-app-api/src/alpha.ts @@ -14,121 +14,4 @@ * limitations under the License. */ -import { - BackendFeature, - BackendFeatureFactory, - RootConfigService, - coreServices, - createServiceFactory, -} from '@backstage/backend-plugin-api'; -import { - featureDiscoveryServiceRef, - FeatureDiscoveryService, -} from '@backstage/backend-plugin-api/alpha'; -import { resolve as resolvePath, dirname } from 'path'; -import fs from 'fs-extra'; -import { BackstagePackageJson } from '@backstage/cli-node'; - -const LOADED_PACKAGE_ROLES = ['backend-plugin', 'backend-module']; - -/** @internal */ -async function findClosestPackageDir( - searchDir: string, -): Promise { - let path = searchDir; - - // Some confidence check to avoid infinite loop - for (let i = 0; i < 1000; i++) { - const packagePath = resolvePath(path, 'package.json'); - const exists = await fs.pathExists(packagePath); - if (exists) { - return path; - } - - const newPath = dirname(path); - if (newPath === path) { - return undefined; - } - path = newPath; - } - - throw new Error( - `Iteration limit reached when searching for root package.json at ${searchDir}`, - ); -} - -/** @alpha */ -export class PackageDiscoveryService implements FeatureDiscoveryService { - constructor(private readonly config: RootConfigService) {} - - async getBackendFeatures(): Promise<{ features: Array }> { - // if (this.config.getOptionalString('backend.packages') !== 'all') { - // return { features: [] }; - // } - - console.log(`DEBUG: executing backend feature discovery`); - const packageDir = await findClosestPackageDir(process.argv[1]); - if (!packageDir) { - throw new Error('NOOOOOOOOOOOOOOOOOOOOOOOOOO'); - } - console.log(`DEBUG: packageDir=`, packageDir); - const { dependencies } = require(resolvePath( - packageDir, - 'package.json', - )) as BackstagePackageJson; - const dependencyNames = Object.keys(dependencies || {}); - console.log(`DEBUG: dependencyNames=`, dependencyNames); - - const features: BackendFeature[] = []; - - for (const name of dependencyNames) { - const depPkg = require(`${name}/package.json`) as BackstagePackageJson; - if (!LOADED_PACKAGE_ROLES.includes(depPkg?.backstage?.role ?? '')) { - continue; - } - const depModule = require(name); - console.log(`DEBUG: loaded ${name} depModule=`, depModule); - for (const exportValue of Object.values(depModule)) { - if (isBackendFeature(exportValue)) { - features.push(exportValue); - } - if (isBackendFeatureFactory(exportValue)) { - features.push(exportValue()); - } - } - } - - console.log(`DEBUG: features=`, features); - return { features }; - } -} - -/** @alpha */ -export const packageFeatureDiscoveryServiceFactory = createServiceFactory({ - service: featureDiscoveryServiceRef, - deps: { - config: coreServices.rootConfig, - }, - factory({ config }) { - return new PackageDiscoveryService(config); - }, -}); - -function isBackendFeature(value: unknown): value is BackendFeature { - return ( - !!value && - typeof value === 'object' && - (value as BackendFeature).$$type === '@backstage/BackendFeature' - ); -} - -function isBackendFeatureFactory( - value: unknown, -): value is BackendFeatureFactory { - return ( - !!value && - typeof value === 'object' && - (value as BackendFeatureFactory).$$type === - '@backstage/BackendFeatureFactory' - ); -} +export * from './alpha'; diff --git a/packages/backend-app-api/src/alpha/featureDiscoveryServiceFactory.ts b/packages/backend-app-api/src/alpha/featureDiscoveryServiceFactory.ts new file mode 100644 index 0000000000..ee1c2aa729 --- /dev/null +++ b/packages/backend-app-api/src/alpha/featureDiscoveryServiceFactory.ts @@ -0,0 +1,129 @@ +/* + * 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 { + BackendFeature, + BackendFeatureFactory, + RootConfigService, + coreServices, + createServiceFactory, +} from '@backstage/backend-plugin-api'; +import { + featureDiscoveryServiceRef, + FeatureDiscoveryService, +} from '@backstage/backend-plugin-api/alpha'; +import { resolve as resolvePath, dirname } from 'path'; +import fs from 'fs-extra'; +import { BackstagePackageJson } from '@backstage/cli-node'; + +const LOADED_PACKAGE_ROLES = ['backend-plugin', 'backend-module']; + +/** @internal */ +async function findClosestPackageDir( + searchDir: string, +): Promise { + let path = searchDir; + + // Some confidence check to avoid infinite loop + for (let i = 0; i < 1000; i++) { + const packagePath = resolvePath(path, 'package.json'); + const exists = await fs.pathExists(packagePath); + if (exists) { + return path; + } + + const newPath = dirname(path); + if (newPath === path) { + return undefined; + } + path = newPath; + } + + throw new Error( + `Iteration limit reached when searching for root package.json at ${searchDir}`, + ); +} + +/** @internal */ +class PackageDiscoveryService implements FeatureDiscoveryService { + constructor(private readonly config: RootConfigService) {} + + async getBackendFeatures(): Promise<{ features: Array }> { + if (this.config.getOptionalString('backend.packages') !== 'all') { + return { features: [] }; + } + + const packageDir = await findClosestPackageDir(process.argv[1]); + if (!packageDir) { + throw new Error('Package discovery failed to find package.json'); + } + const { dependencies } = require(resolvePath( + packageDir, + 'package.json', + )) as BackstagePackageJson; + const dependencyNames = Object.keys(dependencies || {}); + + const features: BackendFeature[] = []; + + for (const name of dependencyNames) { + const depPkg = require(`${name}/package.json`) as BackstagePackageJson; + if (!LOADED_PACKAGE_ROLES.includes(depPkg?.backstage?.role ?? '')) { + continue; + } + const depModule = require(name); + for (const exportValue of Object.values(depModule)) { + if (isBackendFeature(exportValue)) { + features.push(exportValue); + } + if (isBackendFeatureFactory(exportValue)) { + features.push(exportValue()); + } + } + } + + return { features }; + } +} + +/** @alpha */ +export const featureDiscoveryServiceFactory = createServiceFactory({ + service: featureDiscoveryServiceRef, + deps: { + config: coreServices.rootConfig, + }, + factory({ config }) { + return new PackageDiscoveryService(config); + }, +}); + +function isBackendFeature(value: unknown): value is BackendFeature { + return ( + !!value && + typeof value === 'object' && + (value as BackendFeature).$$type === '@backstage/BackendFeature' + ); +} + +function isBackendFeatureFactory( + value: unknown, +): value is BackendFeatureFactory { + return ( + !!value && + typeof value === 'object' && + (value as BackendFeatureFactory).$$type === + '@backstage/BackendFeatureFactory' + ); +} diff --git a/packages/backend-app-api/src/alpha/index.ts b/packages/backend-app-api/src/alpha/index.ts new file mode 100644 index 0000000000..6afc9e2eb6 --- /dev/null +++ b/packages/backend-app-api/src/alpha/index.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 { featureDiscoveryServiceFactory } from './featureDiscoveryServiceFactory'; From 95676ce51aa11d9c861d56b2cfab23506c15b59e Mon Sep 17 00:00:00 2001 From: Vincenzo Scamporlino Date: Wed, 2 Aug 2023 13:38:07 +0200 Subject: [PATCH 074/372] add featureDiscoveryServiceFactory test Co-authored-by: Patrik Oldsberg Signed-off-by: Vincenzo Scamporlino --- packages/backend-app-api/package.json | 5 +- packages/backend-app-api/src/alpha.ts | 17 --- .../featureDiscoveryServiceFactory.test.ts | 114 ++++++++++++++++++ .../alpha/featureDiscoveryServiceFactory.ts | 8 +- packages/backend-plugin-api/src/alpha.ts | 5 +- yarn.lock | 1 + 6 files changed, 127 insertions(+), 23 deletions(-) delete mode 100644 packages/backend-app-api/src/alpha.ts create mode 100644 packages/backend-app-api/src/alpha/featureDiscoveryServiceFactory.test.ts diff --git a/packages/backend-app-api/package.json b/packages/backend-app-api/package.json index 75890b4370..bc3318fce5 100644 --- a/packages/backend-app-api/package.json +++ b/packages/backend-app-api/package.json @@ -12,13 +12,13 @@ }, "exports": { ".": "./src/index.ts", - "./alpha": "./src/alpha.ts", + "./alpha": "./src/alpha/index.ts", "./package.json": "./package.json" }, "typesVersions": { "*": { "alpha": [ - "src/alpha.ts" + "src/alpha/index.ts" ], "package.json": [ "package.json" @@ -87,6 +87,7 @@ "@types/node-forge": "^1.3.0", "@types/stoppable": "^1.1.0", "http-errors": "^2.0.0", + "mock-fs": "^5.2.0", "supertest": "^6.1.3" }, "files": [ diff --git a/packages/backend-app-api/src/alpha.ts b/packages/backend-app-api/src/alpha.ts deleted file mode 100644 index d9068b8f82..0000000000 --- a/packages/backend-app-api/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 * from './alpha'; diff --git a/packages/backend-app-api/src/alpha/featureDiscoveryServiceFactory.test.ts b/packages/backend-app-api/src/alpha/featureDiscoveryServiceFactory.test.ts new file mode 100644 index 0000000000..5a5917dd3b --- /dev/null +++ b/packages/backend-app-api/src/alpha/featureDiscoveryServiceFactory.test.ts @@ -0,0 +1,114 @@ +/* + * 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 mockFs from 'mock-fs'; +import { resolve as resolvePath, dirname } from 'path'; +import { startTestBackend, mockServices } from '@backstage/backend-test-utils'; +import { featureDiscoveryServiceFactory } from './featureDiscoveryServiceFactory'; +import { + coreServices, + createServiceFactory, +} from '@backstage/backend-plugin-api'; + +const rootDir = dirname(process.argv[1]); + +describe('featureDiscoveryServiceFactory', () => { + beforeEach(() => { + mockFs({ + [rootDir]: { + 'package.json': JSON.stringify({ + name: 'example-app', + dependencies: { + 'detected-plugin': '0.0.0', + 'detected-module': '0.0.0', + }, + }), + }, + [resolvePath(rootDir, 'node_modules/detected-plugin')]: { + 'package.json': JSON.stringify({ + name: 'detected-plugin', + main: 'index.js', + backstage: { + role: 'backend-plugin', + }, + }), + 'index.js': ` + const { createBackendPlugin, coreServices } = require('@backstage/backend-plugin-api'); + exports.detectedPlugin = createBackendPlugin({ + pluginId: 'detected', + register(env) { + env.registerInit({ + deps: { identity: coreServices.identity }, + async init({ identity }) { + identity.getIdentity('detected-plugin'); + }, + }); + }, + }); + `, + }, + [resolvePath(rootDir, 'node_modules/detected-module')]: { + 'package.json': JSON.stringify({ + name: 'detected-module', + main: 'index.js', + backstage: { + role: 'backend-module', + }, + }), + 'index.js': ` + const { createBackendModule, coreServices } = require('@backstage/backend-plugin-api'); + exports.detectedModuleDerp = createBackendModule({ + pluginId: 'detected', + moduleId: 'derp', + register(env) { + env.registerInit({ + deps: { identity: coreServices.identity }, + async init({ identity }) { + identity.getIdentity('detected-module'); + }, + }); + }, + }); + `, + }, + }); + }); + + afterEach(() => { + mockFs.restore(); + }); + + it('should detect plugin and module packages', async () => { + const fn = jest.fn().mockResolvedValue({}); + + await startTestBackend({ + services: [ + createServiceFactory({ + service: coreServices.identity, + deps: {}, + factory: () => ({ getIdentity: fn }), + }), + featureDiscoveryServiceFactory(), + mockServices.rootConfig.factory({ + data: { backend: { packages: 'all' } }, + }), + ], + }); + + expect(fn).toHaveBeenCalledWith('detected-plugin'); + expect(fn).toHaveBeenCalledWith('detected-module'); + }); +}); diff --git a/packages/backend-app-api/src/alpha/featureDiscoveryServiceFactory.ts b/packages/backend-app-api/src/alpha/featureDiscoveryServiceFactory.ts index ee1c2aa729..7062448eb1 100644 --- a/packages/backend-app-api/src/alpha/featureDiscoveryServiceFactory.ts +++ b/packages/backend-app-api/src/alpha/featureDiscoveryServiceFactory.ts @@ -79,11 +79,13 @@ class PackageDiscoveryService implements FeatureDiscoveryService { const features: BackendFeature[] = []; for (const name of dependencyNames) { - const depPkg = require(`${name}/package.json`) as BackstagePackageJson; + const depPkg = require(require.resolve(`${name}/package.json`, { + paths: [packageDir], + })) as BackstagePackageJson; if (!LOADED_PACKAGE_ROLES.includes(depPkg?.backstage?.role ?? '')) { continue; } - const depModule = require(name); + const depModule = require(require.resolve(name, { paths: [packageDir] })); for (const exportValue of Object.values(depModule)) { if (isBackendFeature(exportValue)) { features.push(exportValue); @@ -122,7 +124,7 @@ function isBackendFeatureFactory( ): value is BackendFeatureFactory { return ( !!value && - typeof value === 'object' && + typeof value === 'function' && (value as BackendFeatureFactory).$$type === '@backstage/BackendFeatureFactory' ); diff --git a/packages/backend-plugin-api/src/alpha.ts b/packages/backend-plugin-api/src/alpha.ts index 6db9b009cf..1030b55d95 100644 --- a/packages/backend-plugin-api/src/alpha.ts +++ b/packages/backend-plugin-api/src/alpha.ts @@ -22,7 +22,10 @@ export interface FeatureDiscoveryService { getBackendFeatures(): Promise<{ features: Array }>; } -/** @alpha */ +/** + * An optional service that can be used to dynamically load in additional BackendFeatures at runtime. + * @alpha + */ export const featureDiscoveryServiceRef = createServiceRef({ id: 'core.featureDiscovery', diff --git a/yarn.lock b/yarn.lock index 07c182f207..fcdc40a97a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3320,6 +3320,7 @@ __metadata: logform: ^2.3.2 minimatch: ^5.0.0 minimist: ^1.2.5 + mock-fs: ^5.2.0 morgan: ^1.10.0 node-forge: ^1.3.1 selfsigned: ^2.0.0 From cc9256a33bcc8f1115a1251dfd621e9f1148ce35 Mon Sep 17 00:00:00 2001 From: Vincenzo Scamporlino Date: Wed, 2 Aug 2023 13:45:12 +0200 Subject: [PATCH 075/372] changesets Co-authored-by: Patrik Oldsberg Signed-off-by: Vincenzo Scamporlino --- .changeset/rotten-dolls-sing.md | 5 +++++ .changeset/serious-singers-vanish.md | 5 +++++ 2 files changed, 10 insertions(+) create mode 100644 .changeset/rotten-dolls-sing.md create mode 100644 .changeset/serious-singers-vanish.md diff --git a/.changeset/rotten-dolls-sing.md b/.changeset/rotten-dolls-sing.md new file mode 100644 index 0000000000..039b287a77 --- /dev/null +++ b/.changeset/rotten-dolls-sing.md @@ -0,0 +1,5 @@ +--- +'@backstage/backend-plugin-api': patch +--- + +Added new experimental `featureDiscoveryServiceRef`, available as an `/alpha` export. diff --git a/.changeset/serious-singers-vanish.md b/.changeset/serious-singers-vanish.md new file mode 100644 index 0000000000..e1f4a754a7 --- /dev/null +++ b/.changeset/serious-singers-vanish.md @@ -0,0 +1,5 @@ +--- +'@backstage/backend-app-api': patch +--- + +Added new experimental `featureDiscoveryServiceFactory`, available as an `/alpha` export. From 97f21bce4731092905b08ec25fbaea9a38be0fb9 Mon Sep 17 00:00:00 2001 From: Vincenzo Scamporlino Date: Wed, 2 Aug 2023 14:13:58 +0200 Subject: [PATCH 076/372] api report Signed-off-by: Vincenzo Scamporlino --- .../backend-plugin-api/alpha-api-report.md | 27 +++++++++++++++++++ packages/backend-plugin-api/api-report.md | 14 ++++++++-- 2 files changed, 39 insertions(+), 2 deletions(-) create mode 100644 packages/backend-plugin-api/alpha-api-report.md diff --git a/packages/backend-plugin-api/alpha-api-report.md b/packages/backend-plugin-api/alpha-api-report.md new file mode 100644 index 0000000000..84fe2de175 --- /dev/null +++ b/packages/backend-plugin-api/alpha-api-report.md @@ -0,0 +1,27 @@ +## API Report File for "@backstage/backend-plugin-api" + +> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). + +```ts +// @alpha (undocumented) +export interface FeatureDiscoveryService { + // (undocumented) + getBackendFeatures(): Promise<{ + features: Array; + }>; +} + +// Warning: (ae-forgotten-export) The symbol "ServiceRef" needs to be exported by the entry point alpha.d.ts +// +// @alpha +export const featureDiscoveryServiceRef: ServiceRef< + FeatureDiscoveryService, + 'plugin' +>; + +// Warnings were encountered during analysis: +// +// src/alpha.d.ts:5:9 - (ae-forgotten-export) The symbol "BackendFeature" needs to be exported by the entry point alpha.d.ts + +// (No @packageDocumentation comment for this package) +``` diff --git a/packages/backend-plugin-api/api-report.md b/packages/backend-plugin-api/api-report.md index a1ae6284c6..a9eba1ba86 100644 --- a/packages/backend-plugin-api/api-report.md +++ b/packages/backend-plugin-api/api-report.md @@ -21,6 +21,16 @@ export interface BackendFeature { $$type: '@backstage/BackendFeature'; } +// @public (undocumented) +export interface BackendFeatureFactory< + TOptions extends [options?: object] = [], +> { + // (undocumented) + $$type: '@backstage/BackendFeatureFactory'; + // (undocumented) + (...options: TOptions): BackendFeature; +} + // @public export interface BackendModuleConfig { moduleId: string; @@ -116,12 +126,12 @@ export namespace coreServices { // @public export function createBackendModule( config: BackendModuleConfig | ((...params: TOptions) => BackendModuleConfig), -): (...params: TOptions) => BackendFeature; +): BackendFeatureFactory; // @public export function createBackendPlugin( config: BackendPluginConfig | ((...params: TOptions) => BackendPluginConfig), -): (...params: TOptions) => BackendFeature; +): BackendFeatureFactory; // @public export function createExtensionPoint( From c9039c79a8e1a41710a9ceba056085eb31c23061 Mon Sep 17 00:00:00 2001 From: Vincenzo Scamporlino Date: Wed, 2 Aug 2023 14:28:48 +0200 Subject: [PATCH 077/372] update api report Signed-off-by: Vincenzo Scamporlino --- plugins/adr-backend/api-report.md | 4 ++-- plugins/airbrake-backend/api-report.md | 4 ++-- plugins/app-backend/alpha-api-report.md | 4 ++-- plugins/azure-devops-backend/api-report.md | 4 ++-- plugins/badges-backend/api-report.md | 4 ++-- plugins/bazaar-backend/api-report.md | 4 ++-- .../alpha-api-report.md | 4 ++-- .../alpha-api-report.md | 4 ++-- .../alpha-api-report.md | 6 ++++-- .../alpha-api-report.md | 6 ++++-- .../catalog-backend-module-gcp/api-report.md | 4 ++-- .../alpha-api-report.md | 4 ++-- .../alpha-api-report.md | 4 ++-- .../alpha-api-report.md | 6 ++++-- .../alpha-api-report.md | 18 +++++++++++------- .../alpha-api-report.md | 6 ++++-- .../alpha-api-report.md | 4 ++-- .../api-report.md | 4 ++-- plugins/catalog-backend/alpha-api-report.md | 4 ++-- plugins/devtools-backend/api-report.md | 4 ++-- plugins/entity-feedback-backend/api-report.md | 4 ++-- .../alpha-api-report.md | 6 ++++-- .../alpha-api-report.md | 4 ++-- .../alpha-api-report.md | 4 ++-- .../alpha-api-report.md | 4 ++-- .../alpha-api-report.md | 6 +++--- .../alpha-api-report.md | 6 +++--- plugins/events-backend/alpha-api-report.md | 4 ++-- .../example-todo-list-backend/api-report.md | 4 ++-- plugins/kafka-backend/api-report.md | 4 ++-- plugins/kubernetes-backend/alpha-api-report.md | 4 ++-- plugins/lighthouse-backend/api-report.md | 4 ++-- plugins/linguist-backend/api-report.md | 6 ++++-- plugins/periskop-backend/api-report.md | 4 ++-- plugins/permission-backend/alpha-api-report.md | 6 +++--- plugins/proxy-backend/api-report.md | 4 ++-- plugins/scaffolder-backend/alpha-api-report.md | 10 +++++----- .../alpha-api-report.md | 8 ++++---- .../alpha-api-report.md | 8 ++++---- .../alpha-api-report.md | 8 ++++---- .../alpha-api-report.md | 4 ++-- .../alpha-api-report.md | 8 ++++---- plugins/search-backend/alpha-api-report.md | 4 ++-- plugins/techdocs-backend/alpha-api-report.md | 4 ++-- plugins/todo-backend/api-report.md | 4 ++-- plugins/user-settings-backend/api-report.md | 4 ++-- 46 files changed, 127 insertions(+), 111 deletions(-) diff --git a/plugins/adr-backend/api-report.md b/plugins/adr-backend/api-report.md index 2fd22ef9cd..4092a6eb60 100644 --- a/plugins/adr-backend/api-report.md +++ b/plugins/adr-backend/api-report.md @@ -7,7 +7,7 @@ import { AdrDocument } from '@backstage/plugin-adr-common'; import { AdrFilePathFilterFn } from '@backstage/plugin-adr-common'; -import { BackendFeature } from '@backstage/backend-plugin-api'; +import { BackendFeatureFactory } from '@backstage/backend-plugin-api'; import { CacheClient } from '@backstage/backend-common'; import { CatalogApi } from '@backstage/catalog-client'; import { Config } from '@backstage/config'; @@ -45,7 +45,7 @@ export type AdrParserContext = { }; // @public -export const adrPlugin: () => BackendFeature; +export const adrPlugin: BackendFeatureFactory<[]>; // @public (undocumented) export type AdrRouterOptions = { diff --git a/plugins/airbrake-backend/api-report.md b/plugins/airbrake-backend/api-report.md index c410245e31..d3dd706c29 100644 --- a/plugins/airbrake-backend/api-report.md +++ b/plugins/airbrake-backend/api-report.md @@ -3,7 +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 { BackendFeatureFactory } from '@backstage/backend-plugin-api'; import { Config } from '@backstage/config'; import express from 'express'; import { Logger } from 'winston'; @@ -14,7 +14,7 @@ export interface AirbrakeConfig { } // @public -export const airbrakePlugin: () => BackendFeature; +export const airbrakePlugin: BackendFeatureFactory<[]>; // @public export function createRouter(options: RouterOptions): Promise; diff --git a/plugins/app-backend/alpha-api-report.md b/plugins/app-backend/alpha-api-report.md index 5fb0546a79..32d8cc3605 100644 --- a/plugins/app-backend/alpha-api-report.md +++ b/plugins/app-backend/alpha-api-report.md @@ -3,10 +3,10 @@ > Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). ```ts -import { BackendFeature } from '@backstage/backend-plugin-api'; +import { BackendFeatureFactory } from '@backstage/backend-plugin-api'; // @alpha -export const appPlugin: () => BackendFeature; +export const appPlugin: BackendFeatureFactory<[]>; // (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 a2a43cd6af..6447f03796 100644 --- a/plugins/azure-devops-backend/api-report.md +++ b/plugins/azure-devops-backend/api-report.md @@ -3,7 +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 { BackendFeatureFactory } 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'; @@ -96,7 +96,7 @@ export class AzureDevOpsApi { } // @public -export const azureDevOpsPlugin: () => BackendFeature; +export const azureDevOpsPlugin: BackendFeatureFactory<[]>; // @public (undocumented) export function createRouter(options: RouterOptions): Promise; diff --git a/plugins/badges-backend/api-report.md b/plugins/badges-backend/api-report.md index 4594228543..30fd1e0752 100644 --- a/plugins/badges-backend/api-report.md +++ b/plugins/badges-backend/api-report.md @@ -3,7 +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 { BackendFeatureFactory } from '@backstage/backend-plugin-api'; import { CatalogApi } from '@backstage/catalog-client'; import { Config } from '@backstage/config'; import { Entity } from '@backstage/catalog-model'; @@ -83,7 +83,7 @@ export type BadgeSpec = { }; // @public -export const badgesPlugin: () => BackendFeature; +export const badgesPlugin: BackendFeatureFactory<[]>; // @public export interface BadgesStore { diff --git a/plugins/bazaar-backend/api-report.md b/plugins/bazaar-backend/api-report.md index 6281530851..d3fe7987a1 100644 --- a/plugins/bazaar-backend/api-report.md +++ b/plugins/bazaar-backend/api-report.md @@ -3,7 +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 { BackendFeatureFactory } from '@backstage/backend-plugin-api'; import { Config } from '@backstage/config'; import express from 'express'; import { IdentityApi } from '@backstage/plugin-auth-node'; @@ -11,7 +11,7 @@ import { Logger } from 'winston'; import { PluginDatabaseManager } from '@backstage/backend-common'; // @alpha -export const bazaarPlugin: () => BackendFeature; +export const bazaarPlugin: BackendFeatureFactory<[]>; // @public (undocumented) export function createRouter(options: RouterOptions): Promise; diff --git a/plugins/catalog-backend-module-aws/alpha-api-report.md b/plugins/catalog-backend-module-aws/alpha-api-report.md index f78f6a802d..6f4fa2c760 100644 --- a/plugins/catalog-backend-module-aws/alpha-api-report.md +++ b/plugins/catalog-backend-module-aws/alpha-api-report.md @@ -3,10 +3,10 @@ > Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). ```ts -import { BackendFeature } from '@backstage/backend-plugin-api'; +import { BackendFeatureFactory } from '@backstage/backend-plugin-api'; // @alpha -export const catalogModuleAwsS3EntityProvider: () => BackendFeature; +export const catalogModuleAwsS3EntityProvider: BackendFeatureFactory<[]>; // (No @packageDocumentation comment for this package) ``` diff --git a/plugins/catalog-backend-module-azure/alpha-api-report.md b/plugins/catalog-backend-module-azure/alpha-api-report.md index 66551a2856..833eb3dc59 100644 --- a/plugins/catalog-backend-module-azure/alpha-api-report.md +++ b/plugins/catalog-backend-module-azure/alpha-api-report.md @@ -3,10 +3,10 @@ > Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). ```ts -import { BackendFeature } from '@backstage/backend-plugin-api'; +import { BackendFeatureFactory } from '@backstage/backend-plugin-api'; // @alpha -export const catalogModuleAzureDevOpsEntityProvider: () => BackendFeature; +export const catalogModuleAzureDevOpsEntityProvider: BackendFeatureFactory<[]>; // (No @packageDocumentation comment for this package) ``` diff --git a/plugins/catalog-backend-module-bitbucket-cloud/alpha-api-report.md b/plugins/catalog-backend-module-bitbucket-cloud/alpha-api-report.md index a5d0ffc665..0f76de5552 100644 --- a/plugins/catalog-backend-module-bitbucket-cloud/alpha-api-report.md +++ b/plugins/catalog-backend-module-bitbucket-cloud/alpha-api-report.md @@ -3,10 +3,12 @@ > 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 { BackendFeatureFactory } from '@backstage/backend-plugin-api'; // @alpha (undocumented) -export const catalogModuleBitbucketCloudEntityProvider: () => BackendFeature; +export const catalogModuleBitbucketCloudEntityProvider: BackendFeatureFactory< + [] +>; // (No @packageDocumentation comment for this package) ``` diff --git a/plugins/catalog-backend-module-bitbucket-server/alpha-api-report.md b/plugins/catalog-backend-module-bitbucket-server/alpha-api-report.md index 2cc53a3c16..2616e92cba 100644 --- a/plugins/catalog-backend-module-bitbucket-server/alpha-api-report.md +++ b/plugins/catalog-backend-module-bitbucket-server/alpha-api-report.md @@ -3,10 +3,12 @@ > 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 { BackendFeatureFactory } from '@backstage/backend-plugin-api'; // @alpha (undocumented) -export const catalogModuleBitbucketServerEntityProvider: () => BackendFeature; +export const catalogModuleBitbucketServerEntityProvider: BackendFeatureFactory< + [] +>; // (No @packageDocumentation comment for this package) ``` diff --git a/plugins/catalog-backend-module-gcp/api-report.md b/plugins/catalog-backend-module-gcp/api-report.md index 6f963ed51d..489032b830 100644 --- a/plugins/catalog-backend-module-gcp/api-report.md +++ b/plugins/catalog-backend-module-gcp/api-report.md @@ -3,7 +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 { BackendFeatureFactory } from '@backstage/backend-plugin-api'; import { Config } from '@backstage/config'; import * as container from '@google-cloud/container'; import { EntityProvider } from '@backstage/plugin-catalog-node'; @@ -12,7 +12,7 @@ import { Logger } from 'winston'; import { SchedulerService } from '@backstage/backend-plugin-api'; // @public -export const catalogModuleGcpGkeEntityProvider: () => BackendFeature; +export const catalogModuleGcpGkeEntityProvider: BackendFeatureFactory<[]>; // @public export class GkeEntityProvider implements EntityProvider { diff --git a/plugins/catalog-backend-module-gerrit/alpha-api-report.md b/plugins/catalog-backend-module-gerrit/alpha-api-report.md index 5aee61f28a..b7e00008cf 100644 --- a/plugins/catalog-backend-module-gerrit/alpha-api-report.md +++ b/plugins/catalog-backend-module-gerrit/alpha-api-report.md @@ -3,10 +3,10 @@ > Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). ```ts -import { BackendFeature } from '@backstage/backend-plugin-api'; +import { BackendFeatureFactory } from '@backstage/backend-plugin-api'; // @alpha (undocumented) -export const catalogModuleGerritEntityProvider: () => BackendFeature; +export const catalogModuleGerritEntityProvider: BackendFeatureFactory<[]>; // (No @packageDocumentation comment for this package) ``` diff --git a/plugins/catalog-backend-module-github/alpha-api-report.md b/plugins/catalog-backend-module-github/alpha-api-report.md index 0d4e16b4ea..abc5b4d2a0 100644 --- a/plugins/catalog-backend-module-github/alpha-api-report.md +++ b/plugins/catalog-backend-module-github/alpha-api-report.md @@ -3,10 +3,10 @@ > Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). ```ts -import { BackendFeature } from '@backstage/backend-plugin-api'; +import { BackendFeatureFactory } from '@backstage/backend-plugin-api'; // @alpha -export const catalogModuleGithubEntityProvider: () => BackendFeature; +export const catalogModuleGithubEntityProvider: BackendFeatureFactory<[]>; // (No @packageDocumentation comment for this package) ``` diff --git a/plugins/catalog-backend-module-gitlab/alpha-api-report.md b/plugins/catalog-backend-module-gitlab/alpha-api-report.md index f14b41d6c5..51ebbc4ae2 100644 --- a/plugins/catalog-backend-module-gitlab/alpha-api-report.md +++ b/plugins/catalog-backend-module-gitlab/alpha-api-report.md @@ -3,10 +3,12 @@ > 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 { BackendFeatureFactory } from '@backstage/backend-plugin-api'; // @alpha -export const catalogModuleGitlabDiscoveryEntityProvider: () => BackendFeature; +export const catalogModuleGitlabDiscoveryEntityProvider: BackendFeatureFactory< + [] +>; // (No @packageDocumentation comment for this package) ``` diff --git a/plugins/catalog-backend-module-incremental-ingestion/alpha-api-report.md b/plugins/catalog-backend-module-incremental-ingestion/alpha-api-report.md index b11ec43cf5..f067a0a6d7 100644 --- a/plugins/catalog-backend-module-incremental-ingestion/alpha-api-report.md +++ b/plugins/catalog-backend-module-incremental-ingestion/alpha-api-report.md @@ -3,17 +3,21 @@ > 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 { BackendFeatureFactory } from '@backstage/backend-plugin-api'; import { IncrementalEntityProvider } from '@backstage/plugin-catalog-backend-module-incremental-ingestion'; import { IncrementalEntityProviderOptions } from '@backstage/plugin-catalog-backend-module-incremental-ingestion'; // @alpha -export const catalogModuleIncrementalIngestionEntityProvider: (options: { - providers: { - provider: IncrementalEntityProvider; - options: IncrementalEntityProviderOptions; - }[]; -}) => BackendFeature; +export const catalogModuleIncrementalIngestionEntityProvider: BackendFeatureFactory< + [ + options: { + providers: { + provider: IncrementalEntityProvider; + options: IncrementalEntityProviderOptions; + }[]; + }, + ] +>; // (No @packageDocumentation comment for this package) ``` diff --git a/plugins/catalog-backend-module-msgraph/alpha-api-report.md b/plugins/catalog-backend-module-msgraph/alpha-api-report.md index 0fa093a1bc..d8aa5f5816 100644 --- a/plugins/catalog-backend-module-msgraph/alpha-api-report.md +++ b/plugins/catalog-backend-module-msgraph/alpha-api-report.md @@ -3,13 +3,15 @@ > 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 { BackendFeatureFactory } from '@backstage/backend-plugin-api'; import { GroupTransformer } from '@backstage/plugin-catalog-backend-module-msgraph'; import { OrganizationTransformer } from '@backstage/plugin-catalog-backend-module-msgraph'; import { UserTransformer } from '@backstage/plugin-catalog-backend-module-msgraph'; // @alpha -export const catalogModuleMicrosoftGraphOrgEntityProvider: () => BackendFeature; +export const catalogModuleMicrosoftGraphOrgEntityProvider: BackendFeatureFactory< + [] +>; // @alpha export interface CatalogModuleMicrosoftGraphOrgEntityProviderOptions { diff --git a/plugins/catalog-backend-module-puppetdb/alpha-api-report.md b/plugins/catalog-backend-module-puppetdb/alpha-api-report.md index 0856fdb836..be38b9fc25 100644 --- a/plugins/catalog-backend-module-puppetdb/alpha-api-report.md +++ b/plugins/catalog-backend-module-puppetdb/alpha-api-report.md @@ -3,10 +3,10 @@ > Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). ```ts -import { BackendFeature } from '@backstage/backend-plugin-api'; +import { BackendFeatureFactory } from '@backstage/backend-plugin-api'; // @alpha -export const catalogModulePuppetDbEntityProvider: () => BackendFeature; +export const catalogModulePuppetDbEntityProvider: BackendFeatureFactory<[]>; // (No @packageDocumentation comment for this package) ``` diff --git a/plugins/catalog-backend-module-unprocessed/api-report.md b/plugins/catalog-backend-module-unprocessed/api-report.md index 7fd7119276..6f52fdd967 100644 --- a/plugins/catalog-backend-module-unprocessed/api-report.md +++ b/plugins/catalog-backend-module-unprocessed/api-report.md @@ -3,12 +3,12 @@ > 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 { BackendFeatureFactory } from '@backstage/backend-plugin-api'; import { HttpRouterService } from '@backstage/backend-plugin-api'; import { Knex } from 'knex'; // @public -export const catalogModuleUnprocessedEntities: () => BackendFeature; +export const catalogModuleUnprocessedEntities: BackendFeatureFactory<[]>; // @public export class UnprocessedEntitiesModule { diff --git a/plugins/catalog-backend/alpha-api-report.md b/plugins/catalog-backend/alpha-api-report.md index df3e809ade..57a10cbeda 100644 --- a/plugins/catalog-backend/alpha-api-report.md +++ b/plugins/catalog-backend/alpha-api-report.md @@ -3,7 +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 { BackendFeatureFactory } from '@backstage/backend-plugin-api'; import { ConditionalPolicyDecision } from '@backstage/plugin-permission-common'; import { Conditions } from '@backstage/plugin-permission-node'; import { Entity } from '@backstage/catalog-model'; @@ -74,7 +74,7 @@ export type CatalogPermissionRule< > = PermissionRule; // @alpha -export const catalogPlugin: () => BackendFeature; +export const catalogPlugin: BackendFeatureFactory<[]>; // @alpha export const createCatalogConditionalDecision: ( diff --git a/plugins/devtools-backend/api-report.md b/plugins/devtools-backend/api-report.md index dc51fc8387..dd356951f4 100644 --- a/plugins/devtools-backend/api-report.md +++ b/plugins/devtools-backend/api-report.md @@ -3,7 +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 { BackendFeatureFactory } from '@backstage/backend-plugin-api'; import { Config } from '@backstage/config'; import { ConfigInfo } from '@backstage/plugin-devtools-common'; import { DevToolsInfo } from '@backstage/plugin-devtools-common'; @@ -27,7 +27,7 @@ export class DevToolsBackendApi { } // @public -export const devtoolsPlugin: () => BackendFeature; +export const devtoolsPlugin: BackendFeatureFactory<[]>; // @public (undocumented) export interface RouterOptions { diff --git a/plugins/entity-feedback-backend/api-report.md b/plugins/entity-feedback-backend/api-report.md index 3e8f90220e..fddce48592 100644 --- a/plugins/entity-feedback-backend/api-report.md +++ b/plugins/entity-feedback-backend/api-report.md @@ -3,7 +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 { BackendFeatureFactory } from '@backstage/backend-plugin-api'; import express from 'express'; import { IdentityApi } from '@backstage/plugin-auth-node'; import { Logger } from 'winston'; @@ -14,7 +14,7 @@ import { PluginEndpointDiscovery } from '@backstage/backend-common'; export function createRouter(options: RouterOptions): Promise; // @public -export const entityFeedbackPlugin: () => BackendFeature; +export const entityFeedbackPlugin: BackendFeatureFactory<[]>; // @public (undocumented) export interface RouterOptions { diff --git a/plugins/events-backend-module-aws-sqs/alpha-api-report.md b/plugins/events-backend-module-aws-sqs/alpha-api-report.md index e48515a414..8f81ff00d1 100644 --- a/plugins/events-backend-module-aws-sqs/alpha-api-report.md +++ b/plugins/events-backend-module-aws-sqs/alpha-api-report.md @@ -3,10 +3,12 @@ > 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 { BackendFeatureFactory } from '@backstage/backend-plugin-api'; // @alpha -export const eventsModuleAwsSqsConsumingEventPublisher: () => BackendFeature; +export const eventsModuleAwsSqsConsumingEventPublisher: BackendFeatureFactory< + [] +>; // (No @packageDocumentation comment for this package) ``` diff --git a/plugins/events-backend-module-azure/alpha-api-report.md b/plugins/events-backend-module-azure/alpha-api-report.md index 1bd568d1df..680c609c10 100644 --- a/plugins/events-backend-module-azure/alpha-api-report.md +++ b/plugins/events-backend-module-azure/alpha-api-report.md @@ -3,10 +3,10 @@ > Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). ```ts -import { BackendFeature } from '@backstage/backend-plugin-api'; +import { BackendFeatureFactory } from '@backstage/backend-plugin-api'; // @alpha -export const eventsModuleAzureDevOpsEventRouter: () => BackendFeature; +export const eventsModuleAzureDevOpsEventRouter: BackendFeatureFactory<[]>; // (No @packageDocumentation comment for this package) ``` diff --git a/plugins/events-backend-module-bitbucket-cloud/alpha-api-report.md b/plugins/events-backend-module-bitbucket-cloud/alpha-api-report.md index 5e63ae36c8..52b2cac142 100644 --- a/plugins/events-backend-module-bitbucket-cloud/alpha-api-report.md +++ b/plugins/events-backend-module-bitbucket-cloud/alpha-api-report.md @@ -3,10 +3,10 @@ > Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). ```ts -import { BackendFeature } from '@backstage/backend-plugin-api'; +import { BackendFeatureFactory } from '@backstage/backend-plugin-api'; // @alpha -export const eventsModuleBitbucketCloudEventRouter: () => BackendFeature; +export const eventsModuleBitbucketCloudEventRouter: BackendFeatureFactory<[]>; // (No @packageDocumentation comment for this package) ``` diff --git a/plugins/events-backend-module-gerrit/alpha-api-report.md b/plugins/events-backend-module-gerrit/alpha-api-report.md index d1be54730f..82588d05ac 100644 --- a/plugins/events-backend-module-gerrit/alpha-api-report.md +++ b/plugins/events-backend-module-gerrit/alpha-api-report.md @@ -3,10 +3,10 @@ > Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). ```ts -import { BackendFeature } from '@backstage/backend-plugin-api'; +import { BackendFeatureFactory } from '@backstage/backend-plugin-api'; // @alpha -export const eventsModuleGerritEventRouter: () => BackendFeature; +export const eventsModuleGerritEventRouter: BackendFeatureFactory<[]>; // (No @packageDocumentation comment for this package) ``` diff --git a/plugins/events-backend-module-github/alpha-api-report.md b/plugins/events-backend-module-github/alpha-api-report.md index c233df8634..21bfdbb9d2 100644 --- a/plugins/events-backend-module-github/alpha-api-report.md +++ b/plugins/events-backend-module-github/alpha-api-report.md @@ -3,13 +3,13 @@ > 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 { BackendFeatureFactory } from '@backstage/backend-plugin-api'; // @alpha -export const eventsModuleGithubEventRouter: () => BackendFeature; +export const eventsModuleGithubEventRouter: BackendFeatureFactory<[]>; // @alpha -export const eventsModuleGithubWebhook: () => BackendFeature; +export const eventsModuleGithubWebhook: BackendFeatureFactory<[]>; // (No @packageDocumentation comment for this package) ``` diff --git a/plugins/events-backend-module-gitlab/alpha-api-report.md b/plugins/events-backend-module-gitlab/alpha-api-report.md index bf61f66a4b..bca947c195 100644 --- a/plugins/events-backend-module-gitlab/alpha-api-report.md +++ b/plugins/events-backend-module-gitlab/alpha-api-report.md @@ -3,13 +3,13 @@ > 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 { BackendFeatureFactory } from '@backstage/backend-plugin-api'; // @alpha -export const eventsModuleGitlabEventRouter: () => BackendFeature; +export const eventsModuleGitlabEventRouter: BackendFeatureFactory<[]>; // @alpha -export const eventsModuleGitlabWebhook: () => BackendFeature; +export const eventsModuleGitlabWebhook: BackendFeatureFactory<[]>; // (No @packageDocumentation comment for this package) ``` diff --git a/plugins/events-backend/alpha-api-report.md b/plugins/events-backend/alpha-api-report.md index 3e32f769c1..72d4bce4b2 100644 --- a/plugins/events-backend/alpha-api-report.md +++ b/plugins/events-backend/alpha-api-report.md @@ -3,10 +3,10 @@ > Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). ```ts -import { BackendFeature } from '@backstage/backend-plugin-api'; +import { BackendFeatureFactory } from '@backstage/backend-plugin-api'; // @alpha -export const eventsPlugin: () => BackendFeature; +export const eventsPlugin: BackendFeatureFactory<[]>; // (No @packageDocumentation comment for this package) ``` diff --git a/plugins/example-todo-list-backend/api-report.md b/plugins/example-todo-list-backend/api-report.md index 319fbbf226..80b86c4e4d 100644 --- a/plugins/example-todo-list-backend/api-report.md +++ b/plugins/example-todo-list-backend/api-report.md @@ -3,7 +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 { BackendFeatureFactory } from '@backstage/backend-plugin-api'; import express from 'express'; import { IdentityApi } from '@backstage/plugin-auth-node'; import { Logger } from 'winston'; @@ -12,7 +12,7 @@ import { Logger } from 'winston'; export function createRouter(options: RouterOptions): Promise; // @alpha -export const exampleTodoListPlugin: () => BackendFeature; +export const exampleTodoListPlugin: BackendFeatureFactory<[]>; // @public export interface RouterOptions { diff --git a/plugins/kafka-backend/api-report.md b/plugins/kafka-backend/api-report.md index a748a543d9..176c961cd4 100644 --- a/plugins/kafka-backend/api-report.md +++ b/plugins/kafka-backend/api-report.md @@ -3,7 +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 { BackendFeatureFactory } from '@backstage/backend-plugin-api'; import { Config } from '@backstage/config'; import express from 'express'; import { Logger } from 'winston'; @@ -12,7 +12,7 @@ import { Logger } from 'winston'; export function createRouter(options: RouterOptions): Promise; // @alpha -export const kafkaPlugin: () => BackendFeature; +export const kafkaPlugin: BackendFeatureFactory<[]>; // @public (undocumented) export interface RouterOptions { diff --git a/plugins/kubernetes-backend/alpha-api-report.md b/plugins/kubernetes-backend/alpha-api-report.md index f95c1414f3..77a300d344 100644 --- a/plugins/kubernetes-backend/alpha-api-report.md +++ b/plugins/kubernetes-backend/alpha-api-report.md @@ -3,10 +3,10 @@ > Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). ```ts -import { BackendFeature } from '@backstage/backend-plugin-api'; +import { BackendFeatureFactory } from '@backstage/backend-plugin-api'; // @alpha -export const kubernetesPlugin: () => BackendFeature; +export const kubernetesPlugin: BackendFeatureFactory<[]>; // (No @packageDocumentation comment for this package) ``` diff --git a/plugins/lighthouse-backend/api-report.md b/plugins/lighthouse-backend/api-report.md index 5d9d948cf4..f504ce70c9 100644 --- a/plugins/lighthouse-backend/api-report.md +++ b/plugins/lighthouse-backend/api-report.md @@ -3,7 +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 { BackendFeatureFactory } from '@backstage/backend-plugin-api'; import { CatalogApi } from '@backstage/catalog-client'; import { Config } from '@backstage/config'; import { Logger } from 'winston'; @@ -30,7 +30,7 @@ export function createScheduler( ): Promise; // @public -export const lighthousePlugin: () => BackendFeature; +export const lighthousePlugin: BackendFeatureFactory<[]>; // (No @packageDocumentation comment for this package) ``` diff --git a/plugins/linguist-backend/api-report.md b/plugins/linguist-backend/api-report.md index aac978e426..995b54da62 100644 --- a/plugins/linguist-backend/api-report.md +++ b/plugins/linguist-backend/api-report.md @@ -3,7 +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 { BackendFeatureFactory } from '@backstage/backend-plugin-api'; import { CatalogProcessor } from '@backstage/plugin-catalog-node'; import { CatalogProcessorCache } from '@backstage/plugin-catalog-node'; import { Config } from '@backstage/config'; @@ -36,7 +36,9 @@ export interface LinguistBackendApi { } // @public -export const linguistPlugin: (options: LinguistPluginOptions) => BackendFeature; +export const linguistPlugin: BackendFeatureFactory< + [options: LinguistPluginOptions] +>; // @public export interface LinguistPluginOptions { diff --git a/plugins/periskop-backend/api-report.md b/plugins/periskop-backend/api-report.md index 7906bc4785..e548a70a75 100644 --- a/plugins/periskop-backend/api-report.md +++ b/plugins/periskop-backend/api-report.md @@ -3,7 +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 { BackendFeatureFactory } from '@backstage/backend-plugin-api'; import { Config } from '@backstage/config'; import express from 'express'; import { Logger } from 'winston'; @@ -12,7 +12,7 @@ import { Logger } from 'winston'; export function createRouter(options: RouterOptions): Promise; // @alpha -export const periskopPlugin: () => BackendFeature; +export const periskopPlugin: BackendFeatureFactory<[]>; // @public (undocumented) export interface RouterOptions { diff --git a/plugins/permission-backend/alpha-api-report.md b/plugins/permission-backend/alpha-api-report.md index 926691930b..5068992c71 100644 --- a/plugins/permission-backend/alpha-api-report.md +++ b/plugins/permission-backend/alpha-api-report.md @@ -3,13 +3,13 @@ > 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 { BackendFeatureFactory } from '@backstage/backend-plugin-api'; // @alpha -export const permissionModuleAllowAllPolicy: () => BackendFeature; +export const permissionModuleAllowAllPolicy: BackendFeatureFactory<[]>; // @alpha -export const permissionPlugin: () => BackendFeature; +export const permissionPlugin: BackendFeatureFactory<[]>; // (No @packageDocumentation comment for this package) ``` diff --git a/plugins/proxy-backend/api-report.md b/plugins/proxy-backend/api-report.md index 9c5cf5f9ef..7960c9658c 100644 --- a/plugins/proxy-backend/api-report.md +++ b/plugins/proxy-backend/api-report.md @@ -3,7 +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 { BackendFeatureFactory } from '@backstage/backend-plugin-api'; import { Config } from '@backstage/config'; import express from 'express'; import { Logger } from 'winston'; @@ -13,7 +13,7 @@ import { PluginEndpointDiscovery } from '@backstage/backend-common'; export function createRouter(options: RouterOptions): Promise; // @alpha -export const proxyPlugin: () => BackendFeature; +export const proxyPlugin: BackendFeatureFactory<[]>; // @public (undocumented) export interface RouterOptions { diff --git a/plugins/scaffolder-backend/alpha-api-report.md b/plugins/scaffolder-backend/alpha-api-report.md index 363fcafd17..f4174697b2 100644 --- a/plugins/scaffolder-backend/alpha-api-report.md +++ b/plugins/scaffolder-backend/alpha-api-report.md @@ -3,7 +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 { BackendFeatureFactory } from '@backstage/backend-plugin-api'; import { ConditionalPolicyDecision } from '@backstage/plugin-permission-common'; import { Conditions } from '@backstage/plugin-permission-node'; import { JsonObject } from '@backstage/types'; @@ -20,7 +20,7 @@ import { TemplateGlobal } from '@backstage/plugin-scaffolder-backend'; import { TemplateParametersV1beta3 } from '@backstage/plugin-scaffolder-common'; // @alpha -export const catalogModuleTemplateKind: () => BackendFeature; +export const catalogModuleTemplateKind: BackendFeatureFactory<[]>; // @alpha (undocumented) export const createScaffolderActionConditionalDecision: ( @@ -90,9 +90,9 @@ export const scaffolderActionConditions: Conditions<{ }>; // @alpha -export const scaffolderPlugin: ( - options?: ScaffolderPluginOptions | undefined, -) => BackendFeature; +export const scaffolderPlugin: BackendFeatureFactory< + [options?: ScaffolderPluginOptions | undefined] +>; // @alpha export type ScaffolderPluginOptions = { diff --git a/plugins/search-backend-module-catalog/alpha-api-report.md b/plugins/search-backend-module-catalog/alpha-api-report.md index 7c6e91b6a1..02a2ea2266 100644 --- a/plugins/search-backend-module-catalog/alpha-api-report.md +++ b/plugins/search-backend-module-catalog/alpha-api-report.md @@ -3,14 +3,14 @@ > 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 { BackendFeatureFactory } from '@backstage/backend-plugin-api'; import { DefaultCatalogCollatorFactoryOptions } from '@backstage/plugin-search-backend-module-catalog'; import { TaskScheduleDefinition } from '@backstage/backend-tasks'; // @alpha -export const searchModuleCatalogCollator: ( - options?: SearchModuleCatalogCollatorOptions | undefined, -) => BackendFeature; +export const searchModuleCatalogCollator: BackendFeatureFactory< + [options?: SearchModuleCatalogCollatorOptions | undefined] +>; // @alpha export type SearchModuleCatalogCollatorOptions = Omit< diff --git a/plugins/search-backend-module-elasticsearch/alpha-api-report.md b/plugins/search-backend-module-elasticsearch/alpha-api-report.md index 91007c20de..254771b484 100644 --- a/plugins/search-backend-module-elasticsearch/alpha-api-report.md +++ b/plugins/search-backend-module-elasticsearch/alpha-api-report.md @@ -3,14 +3,14 @@ > 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 { BackendFeatureFactory } from '@backstage/backend-plugin-api'; import { ElasticSearchCustomIndexTemplate } from '@backstage/plugin-search-backend-module-elasticsearch'; import { ElasticSearchQueryTranslator } from '@backstage/plugin-search-backend-module-elasticsearch'; // @alpha -export const searchModuleElasticsearchEngine: ( - options?: SearchModuleElasticsearchEngineOptions | undefined, -) => BackendFeature; +export const searchModuleElasticsearchEngine: BackendFeatureFactory< + [options?: SearchModuleElasticsearchEngineOptions | undefined] +>; // @alpha export type SearchModuleElasticsearchEngineOptions = { diff --git a/plugins/search-backend-module-explore/alpha-api-report.md b/plugins/search-backend-module-explore/alpha-api-report.md index 7b0f2658d6..f8053601b3 100644 --- a/plugins/search-backend-module-explore/alpha-api-report.md +++ b/plugins/search-backend-module-explore/alpha-api-report.md @@ -3,13 +3,13 @@ > 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 { BackendFeatureFactory } from '@backstage/backend-plugin-api'; import { TaskScheduleDefinition } from '@backstage/backend-tasks'; // @alpha -export const searchModuleExploreCollator: ( - options?: SearchModuleExploreCollatorOptions | undefined, -) => BackendFeature; +export const searchModuleExploreCollator: BackendFeatureFactory< + [options?: SearchModuleExploreCollatorOptions | undefined] +>; // @alpha export type SearchModuleExploreCollatorOptions = { diff --git a/plugins/search-backend-module-pg/alpha-api-report.md b/plugins/search-backend-module-pg/alpha-api-report.md index eaee78e944..d41010a594 100644 --- a/plugins/search-backend-module-pg/alpha-api-report.md +++ b/plugins/search-backend-module-pg/alpha-api-report.md @@ -3,10 +3,10 @@ > Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). ```ts -import { BackendFeature } from '@backstage/backend-plugin-api'; +import { BackendFeatureFactory } from '@backstage/backend-plugin-api'; // @alpha -export const searchModulePostgresEngine: () => BackendFeature; +export const searchModulePostgresEngine: BackendFeatureFactory<[]>; // (No @packageDocumentation comment for this package) ``` diff --git a/plugins/search-backend-module-techdocs/alpha-api-report.md b/plugins/search-backend-module-techdocs/alpha-api-report.md index 0eac010b4c..4f7515dac5 100644 --- a/plugins/search-backend-module-techdocs/alpha-api-report.md +++ b/plugins/search-backend-module-techdocs/alpha-api-report.md @@ -3,14 +3,14 @@ > 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 { BackendFeatureFactory } from '@backstage/backend-plugin-api'; import { TaskScheduleDefinition } from '@backstage/backend-tasks'; import { TechDocsCollatorFactoryOptions } from '@backstage/plugin-search-backend-module-techdocs'; // @alpha -export const searchModuleTechDocsCollator: ( - options?: SearchModuleTechDocsCollatorOptions | undefined, -) => BackendFeature; +export const searchModuleTechDocsCollator: BackendFeatureFactory< + [options?: SearchModuleTechDocsCollatorOptions | undefined] +>; // @alpha export type SearchModuleTechDocsCollatorOptions = Omit< diff --git a/plugins/search-backend/alpha-api-report.md b/plugins/search-backend/alpha-api-report.md index 6ee94a0e29..9d620efe0e 100644 --- a/plugins/search-backend/alpha-api-report.md +++ b/plugins/search-backend/alpha-api-report.md @@ -3,10 +3,10 @@ > Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). ```ts -import { BackendFeature } from '@backstage/backend-plugin-api'; +import { BackendFeatureFactory } from '@backstage/backend-plugin-api'; // @alpha -export const searchPlugin: () => BackendFeature; +export const searchPlugin: BackendFeatureFactory<[]>; // (No @packageDocumentation comment for this package) ``` diff --git a/plugins/techdocs-backend/alpha-api-report.md b/plugins/techdocs-backend/alpha-api-report.md index 16db84c216..6de1a7d209 100644 --- a/plugins/techdocs-backend/alpha-api-report.md +++ b/plugins/techdocs-backend/alpha-api-report.md @@ -3,10 +3,10 @@ > Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). ```ts -import { BackendFeature } from '@backstage/backend-plugin-api'; +import { BackendFeatureFactory } from '@backstage/backend-plugin-api'; // @alpha -export const techdocsPlugin: () => BackendFeature; +export const techdocsPlugin: BackendFeatureFactory<[]>; // (No @packageDocumentation comment for this package) ``` diff --git a/plugins/todo-backend/api-report.md b/plugins/todo-backend/api-report.md index 6db1e012e9..a3703eaaab 100644 --- a/plugins/todo-backend/api-report.md +++ b/plugins/todo-backend/api-report.md @@ -3,7 +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 { BackendFeatureFactory } from '@backstage/backend-plugin-api'; import { CatalogApi } from '@backstage/catalog-client'; import { CompoundEntityRef } from '@backstage/catalog-model'; import { Config } from '@backstage/config'; @@ -91,7 +91,7 @@ export type TodoParserResult = { }; // @public -export const todoPlugin: () => BackendFeature; +export const todoPlugin: BackendFeatureFactory<[]>; // @public (undocumented) export interface TodoReader { diff --git a/plugins/user-settings-backend/api-report.md b/plugins/user-settings-backend/api-report.md index b015915723..32722bbf2d 100644 --- a/plugins/user-settings-backend/api-report.md +++ b/plugins/user-settings-backend/api-report.md @@ -3,7 +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 { BackendFeatureFactory } from '@backstage/backend-plugin-api'; import express from 'express'; import { IdentityApi } from '@backstage/plugin-auth-node'; import { PluginDatabaseManager } from '@backstage/backend-common'; @@ -20,7 +20,7 @@ export interface RouterOptions { } // @alpha -export const userSettingsPlugin: () => BackendFeature; +export const userSettingsPlugin: BackendFeatureFactory<[]>; // (No @packageDocumentation comment for this package) ``` From 9f88cb0ebd1d037cac6223ad23e6933cd25bf4fe Mon Sep 17 00:00:00 2001 From: Vincenzo Scamporlino Date: Wed, 2 Aug 2023 22:37:28 +0200 Subject: [PATCH 078/372] backend-app-api: improve naming Signed-off-by: Vincenzo Scamporlino --- packages/backend-app-api/src/wiring/BackendInitializer.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/backend-app-api/src/wiring/BackendInitializer.ts b/packages/backend-app-api/src/wiring/BackendInitializer.ts index cf140158a6..6bc4e995e2 100644 --- a/packages/backend-app-api/src/wiring/BackendInitializer.ts +++ b/packages/backend-app-api/src/wiring/BackendInitializer.ts @@ -141,8 +141,8 @@ export class BackendInitializer { if (featureDiscovery) { const { features } = await featureDiscovery.getBackendFeatures(); - for (const plugin of features) { - this.#addFeature(plugin); + for (const feature of features) { + this.#addFeature(feature); } } From 6246562ab473bd14a9119e09b298eb6c14e97703 Mon Sep 17 00:00:00 2001 From: Vincenzo Scamporlino Date: Wed, 2 Aug 2023 22:38:53 +0200 Subject: [PATCH 079/372] backend-plugin-api: fix scope Signed-off-by: Vincenzo Scamporlino --- packages/backend-plugin-api/alpha-api-report.md | 16 +++++++++++++--- packages/backend-plugin-api/src/alpha.ts | 4 ++++ 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/packages/backend-plugin-api/alpha-api-report.md b/packages/backend-plugin-api/alpha-api-report.md index 84fe2de175..74616a5138 100644 --- a/packages/backend-plugin-api/alpha-api-report.md +++ b/packages/backend-plugin-api/alpha-api-report.md @@ -11,14 +11,24 @@ export interface FeatureDiscoveryService { }>; } -// Warning: (ae-forgotten-export) The symbol "ServiceRef" needs to be exported by the entry point alpha.d.ts -// // @alpha export const featureDiscoveryServiceRef: ServiceRef< FeatureDiscoveryService, - 'plugin' + 'root' >; +// @public +export type ServiceRef< + TService, + TScope extends 'root' | 'plugin' = 'root' | 'plugin', +> = { + id: string; + scope: TScope; + T: TService; + toString(): string; + $$type: '@backstage/ServiceRef'; +}; + // Warnings were encountered during analysis: // // src/alpha.d.ts:5:9 - (ae-forgotten-export) The symbol "BackendFeature" needs to be exported by the entry point alpha.d.ts diff --git a/packages/backend-plugin-api/src/alpha.ts b/packages/backend-plugin-api/src/alpha.ts index 1030b55d95..bd6be5b75e 100644 --- a/packages/backend-plugin-api/src/alpha.ts +++ b/packages/backend-plugin-api/src/alpha.ts @@ -29,4 +29,8 @@ export interface FeatureDiscoveryService { export const featureDiscoveryServiceRef = createServiceRef({ id: 'core.featureDiscovery', + scope: 'root', }); + +export type { ServiceRef } from './services'; +export type { BackendFeature }; From 5726b01e4d9a47b8f11638b24a9d7931c8962435 Mon Sep 17 00:00:00 2001 From: Vincenzo Scamporlino Date: Wed, 2 Aug 2023 22:39:52 +0200 Subject: [PATCH 080/372] backend-plugin-api: unused object Signed-off-by: Vincenzo Scamporlino --- packages/backend-plugin-api/src/wiring/factories.ts | 5 ----- 1 file changed, 5 deletions(-) diff --git a/packages/backend-plugin-api/src/wiring/factories.ts b/packages/backend-plugin-api/src/wiring/factories.ts index ba9238e0e0..cbc3771b86 100644 --- a/packages/backend-plugin-api/src/wiring/factories.ts +++ b/packages/backend-plugin-api/src/wiring/factories.ts @@ -77,11 +77,6 @@ export interface BackendPluginConfig { register(reg: BackendPluginRegistrationPoints): void; } -export const catalogPlugin = createBackendPlugin({ - pluginId: 'catalog', - register() {}, -}); - /** * Creates a new backend plugin. * From 35ccc2365a0756fc7ef100c5d003b3943135590d Mon Sep 17 00:00:00 2001 From: Philipp Hugenroth Date: Mon, 7 Aug 2023 15:08:48 +0200 Subject: [PATCH 081/372] Fix backend-plugin-api alpha api report Signed-off-by: Philipp Hugenroth --- packages/backend-app-api/alpha-api-report.md | 16 ++++++++++++++++ packages/backend-app-api/package.json | 4 ++-- .../src/{alpha/index.ts => alpha.ts} | 2 +- packages/backend-plugin-api/alpha-api-report.md | 10 ++++++---- 4 files changed, 25 insertions(+), 7 deletions(-) create mode 100644 packages/backend-app-api/alpha-api-report.md rename packages/backend-app-api/src/{alpha/index.ts => alpha.ts} (87%) diff --git a/packages/backend-app-api/alpha-api-report.md b/packages/backend-app-api/alpha-api-report.md new file mode 100644 index 0000000000..488feedf2c --- /dev/null +++ b/packages/backend-app-api/alpha-api-report.md @@ -0,0 +1,16 @@ +## API Report File for "@backstage/backend-app-api" + +> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). + +```ts +import { FeatureDiscoveryService } from '@backstage/backend-plugin-api/alpha'; +import { ServiceFactory } from '@backstage/backend-plugin-api'; + +// @alpha (undocumented) +export const featureDiscoveryServiceFactory: () => ServiceFactory< + FeatureDiscoveryService, + 'root' +>; + +// (No @packageDocumentation comment for this package) +``` diff --git a/packages/backend-app-api/package.json b/packages/backend-app-api/package.json index bc3318fce5..d1f3f8ac43 100644 --- a/packages/backend-app-api/package.json +++ b/packages/backend-app-api/package.json @@ -12,13 +12,13 @@ }, "exports": { ".": "./src/index.ts", - "./alpha": "./src/alpha/index.ts", + "./alpha": "./src/alpha.ts", "./package.json": "./package.json" }, "typesVersions": { "*": { "alpha": [ - "src/alpha/index.ts" + "src/alpha.ts" ], "package.json": [ "package.json" diff --git a/packages/backend-app-api/src/alpha/index.ts b/packages/backend-app-api/src/alpha.ts similarity index 87% rename from packages/backend-app-api/src/alpha/index.ts rename to packages/backend-app-api/src/alpha.ts index 6afc9e2eb6..a334214738 100644 --- a/packages/backend-app-api/src/alpha/index.ts +++ b/packages/backend-app-api/src/alpha.ts @@ -14,4 +14,4 @@ * limitations under the License. */ -export { featureDiscoveryServiceFactory } from './featureDiscoveryServiceFactory'; +export { featureDiscoveryServiceFactory } from './alpha/featureDiscoveryServiceFactory'; diff --git a/packages/backend-plugin-api/alpha-api-report.md b/packages/backend-plugin-api/alpha-api-report.md index 74616a5138..d76d7e4deb 100644 --- a/packages/backend-plugin-api/alpha-api-report.md +++ b/packages/backend-plugin-api/alpha-api-report.md @@ -3,6 +3,12 @@ > Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). ```ts +// @public (undocumented) +export interface BackendFeature { + // (undocumented) + $$type: '@backstage/BackendFeature'; +} + // @alpha (undocumented) export interface FeatureDiscoveryService { // (undocumented) @@ -29,9 +35,5 @@ export type ServiceRef< $$type: '@backstage/ServiceRef'; }; -// Warnings were encountered during analysis: -// -// src/alpha.d.ts:5:9 - (ae-forgotten-export) The symbol "BackendFeature" needs to be exported by the entry point alpha.d.ts - // (No @packageDocumentation comment for this package) ``` From 5cc0ac5ef3d152b027df7bcfd1737fabee365be7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fredrik=20Adel=C3=B6w?= Date: Mon, 7 Aug 2023 15:33:32 +0200 Subject: [PATCH 082/372] bump concurrently MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Fredrik Adelöw --- .changeset/eighty-cycles-ring.md | 5 ++ package.json | 2 +- .../templates/default-app/package.json.hbs | 2 +- yarn.lock | 86 ++++++++++++------- 4 files changed, 61 insertions(+), 34 deletions(-) create mode 100644 .changeset/eighty-cycles-ring.md diff --git a/.changeset/eighty-cycles-ring.md b/.changeset/eighty-cycles-ring.md new file mode 100644 index 0000000000..dae404a3ff --- /dev/null +++ b/.changeset/eighty-cycles-ring.md @@ -0,0 +1,5 @@ +--- +'@backstage/create-app': patch +--- + +Bump to a newer version of the `concurrently` library diff --git a/package.json b/package.json index abaaec252c..d5b74285e2 100644 --- a/package.json +++ b/package.json @@ -65,7 +65,7 @@ "@types/node": "^16.11.26", "@types/webpack": "^5.28.0", "command-exists": "^1.2.9", - "concurrently": "^7.0.0", + "concurrently": "^8.0.0", "cross-env": "^7.0.0", "e2e-test": "workspace:*", "eslint": "^8.6.0", diff --git a/packages/create-app/templates/default-app/package.json.hbs b/packages/create-app/templates/default-app/package.json.hbs index 0682114a35..c53ed6970f 100644 --- a/packages/create-app/templates/default-app/package.json.hbs +++ b/packages/create-app/templates/default-app/package.json.hbs @@ -31,7 +31,7 @@ "devDependencies": { "@backstage/cli": "^{{version '@backstage/cli'}}", "@spotify/prettier-config": "^12.0.0", - "concurrently": "^6.0.0", + "concurrently": "^8.0.0", "lerna": "^4.0.0", "node-gyp": "^9.0.0", "prettier": "^2.3.2", diff --git a/yarn.lock b/yarn.lock index 0fcea0a990..581e705dd4 100644 --- a/yarn.lock +++ b/yarn.lock @@ -21333,6 +21333,17 @@ __metadata: languageName: node linkType: hard +"cliui@npm:^8.0.1": + version: 8.0.1 + resolution: "cliui@npm:8.0.1" + dependencies: + string-width: ^4.2.0 + strip-ansi: ^6.0.1 + wrap-ansi: ^7.0.0 + checksum: 79648b3b0045f2e285b76fb2e24e207c6db44323581e421c3acbd0e86454cba1b37aea976ab50195a49e7384b871e6dfb2247ad7dec53c02454ac6497394cb56 + languageName: node + linkType: hard + "clone-buffer@npm:^1.0.0": version: 1.0.0 resolution: "clone-buffer@npm:1.0.0" @@ -21889,23 +21900,23 @@ __metadata: languageName: node linkType: hard -"concurrently@npm:^7.0.0": - version: 7.6.0 - resolution: "concurrently@npm:7.6.0" +"concurrently@npm:^8.0.0": + version: 8.2.0 + resolution: "concurrently@npm:8.2.0" dependencies: - chalk: ^4.1.0 - date-fns: ^2.29.1 + chalk: ^4.1.2 + date-fns: ^2.30.0 lodash: ^4.17.21 - rxjs: ^7.0.0 - shell-quote: ^1.7.3 - spawn-command: ^0.0.2-1 - supports-color: ^8.1.0 + rxjs: ^7.8.1 + shell-quote: ^1.8.1 + spawn-command: 0.0.2 + supports-color: ^8.1.1 tree-kill: ^1.2.2 - yargs: ^17.3.1 + yargs: ^17.7.2 bin: conc: dist/bin/concurrently.js concurrently: dist/bin/concurrently.js - checksum: f705c9a7960f1b16559ca64958043faeeef6385c0bf30a03d1375e15ab2d96dba4f8166f1bbbb1c85e8da35ca0ce3c353875d71dff2aa132b2357bb533b3332e + checksum: eafe6a4d9b7fda87f55ea285cfc6acd937a5286ceec8991ab48e6cc27c45fce6a5c6f45e18d7555defa15dc7d7e8941bc5a9d1ceaf182e31441d420e00333434 languageName: node linkType: hard @@ -22948,10 +22959,12 @@ __metadata: languageName: node linkType: hard -"date-fns@npm:^2.16.1, date-fns@npm:^2.18.0, date-fns@npm:^2.29.1": - version: 2.29.3 - resolution: "date-fns@npm:2.29.3" - checksum: e01cf5b62af04e05dfff921bb9c9933310ed0e1ae9a81eb8653452e64dc841acf7f6e01e1a5ae5644d0337e9a7f936175fd2cb6819dc122fdd9c5e86c56be484 +"date-fns@npm:^2.16.1, date-fns@npm:^2.18.0, date-fns@npm:^2.30.0": + version: 2.30.0 + resolution: "date-fns@npm:2.30.0" + dependencies: + "@babel/runtime": ^7.21.0 + checksum: f7be01523282e9bb06c0cd2693d34f245247a29098527d4420628966a2d9aad154bd0e90a6b1cf66d37adcb769cd108cf8a7bd49d76db0fb119af5cdd13644f4 languageName: node linkType: hard @@ -38158,7 +38171,7 @@ __metadata: "@types/node": ^16.11.26 "@types/webpack": ^5.28.0 command-exists: ^1.2.9 - concurrently: ^7.0.0 + concurrently: ^8.0.0 cross-env: ^7.0.0 e2e-test: "workspace:*" eslint: ^8.6.0 @@ -38242,7 +38255,7 @@ __metadata: languageName: node linkType: hard -"rxjs@npm:7.8.0, rxjs@npm:^7.0.0, rxjs@npm:^7.2.0, rxjs@npm:^7.5.1, rxjs@npm:^7.5.5, rxjs@npm:^7.8.0": +"rxjs@npm:7.8.0": version: 7.8.0 resolution: "rxjs@npm:7.8.0" dependencies: @@ -38260,6 +38273,15 @@ __metadata: languageName: node linkType: hard +"rxjs@npm:^7.2.0, rxjs@npm:^7.5.1, rxjs@npm:^7.5.5, rxjs@npm:^7.8.0, rxjs@npm:^7.8.1": + version: 7.8.1 + resolution: "rxjs@npm:7.8.1" + dependencies: + tslib: ^2.1.0 + checksum: de4b53db1063e618ec2eca0f7965d9137cabe98cf6be9272efe6c86b47c17b987383df8574861bcced18ebd590764125a901d5506082be84a8b8e364bf05f119 + languageName: node + linkType: hard + "sade@npm:^1.7.3": version: 1.8.1 resolution: "sade@npm:1.8.1" @@ -38771,10 +38793,10 @@ __metadata: languageName: node linkType: hard -"shell-quote@npm:^1.7.3": - version: 1.7.3 - resolution: "shell-quote@npm:1.7.3" - checksum: aca58e73a3a5d933d02e0bdddedc53ee14f7c2ec264f97ac915b9d4482d077a38e422aa664631d60a672cd3cdb4054eb2e6c0303f54882453dacb6483e482d34 +"shell-quote@npm:^1.7.3, shell-quote@npm:^1.8.1": + version: 1.8.1 + resolution: "shell-quote@npm:1.8.1" + checksum: 5f01201f4ef504d4c6a9d0d283fa17075f6770bfbe4c5850b074974c68062f37929ca61700d95ad2ac8822e14e8c4b990ca0e6e9272e64befd74ce5e19f0736b languageName: node linkType: hard @@ -39160,10 +39182,10 @@ __metadata: languageName: node linkType: hard -"spawn-command@npm:^0.0.2-1": - version: 0.0.2-1 - resolution: "spawn-command@npm:0.0.2-1" - checksum: 2cac8519332193d1ed37d57298c4a1f73095e9edd20440fbab4aa47f531da83831734f2b51c44bb42b2747bf3485dec3fa2b0a1003f74c67561f2636622e328b +"spawn-command@npm:0.0.2, spawn-command@npm:^0.0.2-1": + version: 0.0.2 + resolution: "spawn-command@npm:0.0.2" + checksum: e35c5d28177b4d461d33c88cc11f6f3a5079e2b132c11e1746453bbb7a0c0b8a634f07541a2a234fa4758239d88203b758def509161b651e81958894c0b4b64b languageName: node linkType: hard @@ -42864,7 +42886,7 @@ __metadata: languageName: node linkType: hard -"yargs-parser@npm:^21.0.0": +"yargs-parser@npm:^21.1.1": version: 21.1.1 resolution: "yargs-parser@npm:21.1.1" checksum: ed2d96a616a9e3e1cc7d204c62ecc61f7aaab633dcbfab2c6df50f7f87b393993fe6640d017759fe112d0cb1e0119f2b4150a87305cc873fd90831c6a58ccf1c @@ -42915,18 +42937,18 @@ __metadata: languageName: node linkType: hard -"yargs@npm:^17.0.0, yargs@npm:^17.1.1, yargs@npm:^17.2.1, yargs@npm:^17.3.1": - version: 17.5.1 - resolution: "yargs@npm:17.5.1" +"yargs@npm:^17.0.0, yargs@npm:^17.1.1, yargs@npm:^17.2.1, yargs@npm:^17.3.1, yargs@npm:^17.7.2": + version: 17.7.2 + resolution: "yargs@npm:17.7.2" dependencies: - cliui: ^7.0.2 + cliui: ^8.0.1 escalade: ^3.1.1 get-caller-file: ^2.0.5 require-directory: ^2.1.1 string-width: ^4.2.3 y18n: ^5.0.5 - yargs-parser: ^21.0.0 - checksum: 00d58a2c052937fa044834313f07910fd0a115dec5ee35919e857eeee3736b21a4eafa8264535800ba8bac312991ce785ecb8a51f4d2cc8c4676d865af1cfbde + yargs-parser: ^21.1.1 + checksum: 73b572e863aa4a8cbef323dd911d79d193b772defd5a51aab0aca2d446655216f5002c42c5306033968193bdbf892a7a4c110b0d77954a7fdf563e653967b56a languageName: node linkType: hard From b8f5c9a97367f0184f272ae6632824eba4fab852 Mon Sep 17 00:00:00 2001 From: Judy Bogart <31899326+jbogarthyde@users.noreply.github.com> Date: Mon, 7 Aug 2023 09:10:42 -0700 Subject: [PATCH 083/372] Update glossary.md Copy edit and more explicit identification of user types. Note this page needs more terms and categories of terms. Signed-off-by: Judy Bogart <31899326+jbogarthyde@users.noreply.github.com> --- docs/overview/glossary.md | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/docs/overview/glossary.md b/docs/overview/glossary.md index 97a2823365..d409fcf915 100644 --- a/docs/overview/glossary.md +++ b/docs/overview/glossary.md @@ -2,25 +2,26 @@ id: glossary title: Backstage Glossary # prettier-ignore -description: List of all the terms, abbreviations, and phrases used in Backstage, together with their explanations. +description: List of terms, abbreviations, and phrases used in Backstage, together with their explanations. --- -The Backstage Glossary lists all the terms, abbreviations, and phrases used in +The Backstage Glossary lists terms, abbreviations, and phrases used in Backstage, together with their explanations. We encourage you to use the terminology below for clarity and consistency when discussing Backstage. -### Authentication Glossary - -This [page](../auth/glossary.md) directs to the terms and phrases related to -authentication and identity section of Backstage. +See also [Authentication Glossary] (../auth/glossary.md), a separate glossary of terms and phrases +specifically related to the authentication and identity section of Backstage. ### Backstage User Profiles There are three main user profiles for Backstage: the integrator, the -contributor, and the software engineer. +contributor, and the end user (typically a software engineer). | Term | Explanation | | ----------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Integrator | The **integrator** hosts the Backstage app and configures which plugins are available to use in the app. | | Contributor | The **contributor** adds functionality to the app by writing plugins. | -| Software Engineer | The **software engineer** uses the app's functionality and interacts with its plugins. In practice, this profile covers the various roles that help deliver software, from the Software Engineer themselves, to Designers, Data Scientists, Product Owners, Engineering Managers, etc. | +| End user | The **end user** uses the app's functionality and interacts with its plugins. This profile covers the various roles that help deliver software. The typical end user is a **software engineer**, but users might also consider themselves *designers*, *data scientists*, *product owners*, *engineering managers*, *technical writers*, and so on. | +| Software engineer | The **software engineer** is an **end user** who uses the app's functionality and interacts with its plugins in the course of writing and documenting code. This user is more likely to embed documentation in the code files they produce, and create rough drafts of conceptual pages in collaboration with a **technical writer** or *technical editor*. | +| Technical writer | The **technical writer** is an **end user** who uses the app's functionality and interacts with its plugins in the course of writing and editing documentation. This user is more likely to produce and customize templates and produce conceptual pages to supplement documentation embedded in code files. | + From c4126fc789ed994a93740ec18d655164cc6fd50d Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 7 Aug 2023 16:25:08 +0000 Subject: [PATCH 084/372] fix(deps): update dependency @roadiehq/backstage-plugin-github-pull-requests to v2.5.14 Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- yarn.lock | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/yarn.lock b/yarn.lock index 121ed2eb9a..b3888cb697 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3539,7 +3539,7 @@ __metadata: languageName: unknown linkType: soft -"@backstage/catalog-model@^1.1.5, @backstage/catalog-model@^1.4.0, @backstage/catalog-model@^1.4.1, @backstage/catalog-model@workspace:^, @backstage/catalog-model@workspace:packages/catalog-model": +"@backstage/catalog-model@^1.1.5, @backstage/catalog-model@^1.4.1, @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: @@ -3883,7 +3883,7 @@ __metadata: languageName: node linkType: hard -"@backstage/core-components@npm:^0.13.2, @backstage/core-components@npm:^0.13.3": +"@backstage/core-components@npm:^0.13.3": version: 0.13.3 resolution: "@backstage/core-components@npm:0.13.3" dependencies: @@ -4010,7 +4010,7 @@ __metadata: languageName: unknown linkType: soft -"@backstage/core-plugin-api@^1.3.0, @backstage/core-plugin-api@^1.5.0, @backstage/core-plugin-api@^1.5.2, @backstage/core-plugin-api@^1.5.3, @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.3, @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: @@ -5553,7 +5553,7 @@ __metadata: languageName: unknown linkType: soft -"@backstage/plugin-catalog-react@npm:^1.2.4, @backstage/plugin-catalog-react@npm:^1.7.0, @backstage/plugin-catalog-react@npm:^1.8.0": +"@backstage/plugin-catalog-react@npm:^1.2.4, @backstage/plugin-catalog-react@npm:^1.8.0": version: 1.8.0 resolution: "@backstage/plugin-catalog-react@npm:1.8.0" dependencies: @@ -7020,7 +7020,7 @@ __metadata: languageName: unknown linkType: soft -"@backstage/plugin-home@npm:^0.5.3": +"@backstage/plugin-home@npm:^0.5.4": version: 0.5.4 resolution: "@backstage/plugin-home@npm:0.5.4" dependencies: @@ -14351,14 +14351,14 @@ __metadata: linkType: hard "@roadiehq/backstage-plugin-github-pull-requests@npm:^2.2.7": - version: 2.5.13 - resolution: "@roadiehq/backstage-plugin-github-pull-requests@npm:2.5.13" + version: 2.5.14 + resolution: "@roadiehq/backstage-plugin-github-pull-requests@npm:2.5.14" dependencies: - "@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 + "@backstage/catalog-model": ^1.4.1 + "@backstage/core-components": ^0.13.3 + "@backstage/core-plugin-api": ^1.5.3 + "@backstage/plugin-catalog-react": ^1.8.0 + "@backstage/plugin-home": ^0.5.4 "@material-ui/core": ^4.11.0 "@material-ui/icons": ^4.9.1 "@material-ui/lab": ^4.0.0-alpha.60 @@ -14375,7 +14375,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: 1af9997d26ee9dba046d71aa5415bde7e207c4118ca77e6e3e9623920ce7f6e314d8365fe2d1ef3eb1c279ac113653df903f1286005aba681faf75381a387189 + checksum: 6a51fa45c716c0313baedfb5e67a898b1cd0b02b7742473c46e7f6dc9742c88db950da110de7aa0ad2019fb2ed855ae5b9c567d5348ad31a3340ac49c77e1b11 languageName: node linkType: hard From 671ab1dff264aa1cb93bfd0bcc095dbe3fd5325b Mon Sep 17 00:00:00 2001 From: Adam Harvey Date: Mon, 7 Aug 2023 13:25:00 -0400 Subject: [PATCH 085/372] chore: Patch to some of the latest actions Signed-off-by: Adam Harvey --- .github/workflows/scorecard.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml index 63c44bcf20..85c4b70724 100644 --- a/.github/workflows/scorecard.yml +++ b/.github/workflows/scorecard.yml @@ -29,12 +29,12 @@ jobs: steps: - name: 'Checkout code' - uses: actions/checkout@93ea575cb5d8a053eaa0ac8fa3b40d7e05a33cc8 # v3.1.0 + uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3 with: persist-credentials: false - name: 'Run analysis' - uses: ossf/scorecard-action@e38b1902ae4f44df626f11ba0734b14fb91f8f86 # v2.1.2 + uses: ossf/scorecard-action@08b4669551908b1024bb425080c797723083c031 # v2.2.0 with: results_file: results.sarif results_format: sarif @@ -53,7 +53,7 @@ jobs: # Upload the results as artifacts (optional). Commenting out will disable uploads of run results in SARIF # format to the repository Actions tab. - name: 'Upload artifact' - uses: actions/upload-artifact@3cea5372237819ed00197afe530f5a7ea3e805c8 # v3.1.0 + uses: actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce # v3.1.2 with: name: SARIF file path: results.sarif From 5c512baac569ac764eaf316f24781d1a1bdaa79f Mon Sep 17 00:00:00 2001 From: dphuang2 Date: Mon, 7 Aug 2023 12:18:02 -0700 Subject: [PATCH 086/372] Create api-sdk-generator.yaml Signed-off-by: dphuang2 --- microsite/data/plugins/api-sdk-generator.yaml | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 microsite/data/plugins/api-sdk-generator.yaml diff --git a/microsite/data/plugins/api-sdk-generator.yaml b/microsite/data/plugins/api-sdk-generator.yaml new file mode 100644 index 0000000000..5553089807 --- /dev/null +++ b/microsite/data/plugins/api-sdk-generator.yaml @@ -0,0 +1,10 @@ +--- +title: API SDK Generator +author: Konfig +authorUrl: https://konfigthis.com/ +category: Development +description: Generate SDKs for your REST API to accelerate integration +documentation: https://github.com/konfig-dev/backstage-plugin-konfig/tree/main/plugins/backstage-plugin-konfig +iconUrl: https://raw.githubusercontent.com/konfig-dev/backstage-plugin-konfig/main/plugins/backstage-plugin-konfig/docs/logo.png +npmPackageName: 'backstage-plugin-konfig' +addedDate: '2023-08-07' From 7c8e57af3dcfc2fd92a85b36fbbbde946523b89e Mon Sep 17 00:00:00 2001 From: Robert Bunning Date: Mon, 7 Aug 2023 15:39:18 -0400 Subject: [PATCH 087/372] Convert tests to use msw instead of mocking fetch Signed-off-by: Robert Bunning --- plugins/newrelic/package.json | 3 +- plugins/newrelic/src/api/index.test.ts | 266 ++++++++++++++----------- yarn.lock | 11 +- 3 files changed, 163 insertions(+), 117 deletions(-) diff --git a/plugins/newrelic/package.json b/plugins/newrelic/package.json index 7e42a26d9f..b510e9cbbe 100644 --- a/plugins/newrelic/package.json +++ b/plugins/newrelic/package.json @@ -49,6 +49,7 @@ "react-router-dom": "6.0.0-beta.0 || ^6.3.0" }, "devDependencies": { + "@backstage/backend-test-utils": "workspace:^", "@backstage/cli": "workspace:^", "@backstage/core-app-api": "workspace:^", "@backstage/dev-utils": "workspace:^", @@ -60,7 +61,7 @@ "@types/node": "^16.11.26", "@types/react": "^16.13.1 || ^17.0.0", "cross-fetch": "^3.1.5", - "msw": "^1.0.0" + "msw": "^1.2.3" }, "files": [ "dist" diff --git a/plugins/newrelic/src/api/index.test.ts b/plugins/newrelic/src/api/index.test.ts index 94bdc8ff94..f45482be87 100644 --- a/plugins/newrelic/src/api/index.test.ts +++ b/plugins/newrelic/src/api/index.test.ts @@ -14,15 +14,24 @@ * limitations under the License. */ -import { NewRelicClient } from '.'; -import { FetchApi } from '@backstage/core-plugin-api'; +import { NewRelicApplication, NewRelicClient } from '.'; import { DiscoveryApi } from '@backstage/core-plugin-api'; +import { rest } from 'msw'; +import { setupServer } from 'msw/node'; +import { MockFetchApi, setupRequestMockHandlers } from '@backstage/test-utils'; beforeEach(() => { jest.resetAllMocks(); }); describe('NewRelicClient', () => { + const server = setupServer(); + setupRequestMockHandlers(server); + + beforeEach(() => { + server.resetHandlers(); + }); + test.each([ ['https://test.test/BASEPATH/apm/api/applications.json', '/BASEPATH'], ['https://test.test/BASEPATH2/apm/api/applications.json', '/BASEPATH2'], @@ -31,17 +40,18 @@ describe('NewRelicClient', () => { ])( 'It correctly forms the request url (%p) when proxyPathBase is %p', async (expectedUrl, basePathOverride) => { + server.use( + rest.get(expectedUrl, (_, res, ctx) => + res(ctx.status(200), ctx.json({ applications: [] })), + ), + ); + const mockedDiscoveryApi: DiscoveryApi = { getBaseUrl: jest.fn().mockResolvedValueOnce('https://test.test'), }; - const mockedFetchApi: FetchApi = { - fetch: jest.fn().mockResolvedValueOnce({ - ok: true, - json: async () => [], - headers: new Map(), - }), - }; + const mockedFetchApi = new MockFetchApi(); + const fetchSpy = jest.spyOn(mockedFetchApi, 'fetch'); const client = new NewRelicClient({ discoveryApi: mockedDiscoveryApi, @@ -50,7 +60,7 @@ describe('NewRelicClient', () => { }); await client.getApplications(); - expect(mockedFetchApi.fetch).toHaveBeenCalledWith(expectedUrl); + expect(fetchSpy).toHaveBeenCalledWith(expectedUrl); }, ); @@ -59,7 +69,7 @@ describe('NewRelicClient', () => { getBaseUrl: jest.fn().mockResolvedValueOnce('https://test.test'), }; - const mockedApplicationOne = { + const mockedApplicationOne: NewRelicApplication = { id: 1, application_summary: { apdex_score: 0, @@ -81,8 +91,16 @@ describe('NewRelicClient', () => { }, }; - const mockedApplicationTwo = { + const mockedApplicationTwo: NewRelicApplication = { id: 2, + application_summary: { + apdex_score: -900, + error_rate: 0, + host_count: 0, + instance_count: 0, + response_time: 0, + throughput: 0, + }, name: 'Testing Application #2', language: 'en-us', health_status: 'Working', @@ -95,7 +113,7 @@ describe('NewRelicClient', () => { }, }; - const mockedApplicationThree = { + const mockedApplicationThree: NewRelicApplication = { id: 3, application_summary: { apdex_score: -900, @@ -117,45 +135,65 @@ describe('NewRelicClient', () => { }, }; - const mockedFetchApi: FetchApi = { - fetch: jest - .fn() - .mockResolvedValueOnce({ - ok: true, - json: async () => ({ applications: [mockedApplicationOne] }), - headers: new Map([ - [ - 'link', - '; rel="next", ; rel="first"', - ], - ['otherheader', 'otherValue'], - ]), - }) - .mockResolvedValueOnce({ - ok: true, - json: async () => ({ applications: [] }), - headers: new Map([ - ['link', '; rel="next",'], - ]), - }) - .mockResolvedValueOnce({ - ok: true, - json: async () => ({ - applications: [mockedApplicationTwo, mockedApplicationThree], - }), - headers: new Map([ - [ - 'link', - '; rel="first", ; rel="next"', - ], - ]), - }), - }; + const queryToRequestData = new Map< + string | null, + { link?: string | string[]; apps: NewRelicApplication[] } + >([ + [ + null, + { + link: [ + '; rel="next"', + '; rel="bad"', + ], + apps: [mockedApplicationOne], + }, + ], + [ + '2', + { + link: '; rel="next",', + apps: [], + }, + ], + [ + '3', + { + apps: [mockedApplicationTwo, mockedApplicationThree], + }, + ], + ]); + + const mockedFetchApi = new MockFetchApi(); + const fetchSpy = jest.spyOn(mockedFetchApi, 'fetch'); + + server.use( + rest.get( + 'https://test.test/newrelic/apm/api/applications.json', + (req, res, ctx) => { + const nextPageNumber = req.url.searchParams.get('page'); + const requestData = queryToRequestData.get(nextPageNumber) ?? { + apps: [], + }; + + const { link, apps: applications } = requestData; + const statusTransform = ctx.status(200); + const responseBody = ctx.json({ applications }); + + if (!!link) { + return res(statusTransform, ctx.set({ link }), responseBody); + } + + return res(statusTransform, responseBody); + }, + ), + ); const client = new NewRelicClient({ discoveryApi: mockedDiscoveryApi, fetchApi: mockedFetchApi, }); + const actual = await client.getApplications(); const expected = { applications: [ @@ -165,14 +203,14 @@ describe('NewRelicClient', () => { ], }; - expect(mockedFetchApi.fetch).toHaveBeenCalledTimes(3); - expect(mockedFetchApi.fetch).toHaveBeenCalledWith( + expect(fetchSpy).toHaveBeenCalledTimes(3); + expect(fetchSpy).toHaveBeenCalledWith( 'https://test.test/newrelic/apm/api/applications.json', ); - expect(mockedFetchApi.fetch).toHaveBeenCalledWith( + expect(fetchSpy).toHaveBeenCalledWith( 'https://test.test/newrelic/apm/api/applications.json?page=2', ); - expect(mockedFetchApi.fetch).toHaveBeenCalledWith( + expect(fetchSpy).toHaveBeenCalledWith( 'https://test.test/newrelic/apm/api/applications.json?page=3', ); expect(actual).toStrictEqual(expected); @@ -185,19 +223,28 @@ describe('NewRelicClient', () => { getBaseUrl: jest.fn().mockResolvedValueOnce('https://test.test'), }; - const mockedFetchApi: FetchApi = { - fetch: jest.fn().mockResolvedValueOnce({ - ok: true, - json: async () => ({ applications: [] }), - headers: new Map([ - [ - linkHeaderName, - '; rel="next", ; rel="next"', - ], - ['otherheader', 'otherValue'], - ]), + const mockedFetchApi = new MockFetchApi(); + const fetchSpy = jest.spyOn(mockedFetchApi, 'fetch'); + + server.use( + rest.get( + 'https://test.test/newrelic/apm/api/applications.json', + (_, res, ctx) => + res( + ctx.status(200), + ctx.set( + linkHeaderName, + '; rel="next"', + ), + ctx.json({ applications: [] }), + ), + ), + rest.get('https://test.test/badroute', () => { + throw new Error( + 'NewRelicClient attempted to paginate when it should not have', + ); }), - }; + ); const client = new NewRelicClient({ discoveryApi: mockedDiscoveryApi, @@ -205,8 +252,8 @@ describe('NewRelicClient', () => { }); await client.getApplications(); - expect(mockedFetchApi.fetch).toHaveBeenCalledTimes(1); - expect(mockedFetchApi.fetch).toHaveBeenCalledWith( + expect(fetchSpy).toHaveBeenCalledTimes(1); + expect(fetchSpy).toHaveBeenCalledWith( 'https://test.test/newrelic/apm/api/applications.json', ); }, @@ -228,16 +275,25 @@ describe('NewRelicClient', () => { getBaseUrl: jest.fn().mockResolvedValueOnce('https://test.test'), }; - const mockedFetchApi: FetchApi = { - fetch: jest.fn().mockResolvedValueOnce({ - ok: true, - json: async () => ({ applications: [] }), - headers: new Map([ - ['Link', linkHeaderValue], - ['otherheader', 'otherValue'], - ]), + const mockedFetchApi = new MockFetchApi(); + const fetchSpy = jest.spyOn(mockedFetchApi, 'fetch'); + + server.use( + rest.get( + 'https://test.test/newrelic/apm/api/applications.json', + (_, res, ctx) => + res( + ctx.status(200), + ctx.set('link', linkHeaderValue), + ctx.json({ applications: [] }), + ), + ), + rest.get('https://test.test/badroute', () => { + throw new Error( + 'NewRelicClient attempted to paginate when it should not have', + ); }), - }; + ); const client = new NewRelicClient({ discoveryApi: mockedDiscoveryApi, @@ -245,45 +301,33 @@ describe('NewRelicClient', () => { }); await client.getApplications(); - expect(mockedFetchApi.fetch).toHaveBeenCalledTimes(1); - expect(mockedFetchApi.fetch).toHaveBeenCalledWith( + expect(fetchSpy).toHaveBeenCalledTimes(1); + expect(fetchSpy).toHaveBeenCalledWith( 'https://test.test/newrelic/apm/api/applications.json', ); }, ); test.each([ - [ - { - ok: false, - statusText: 'statusText', - json: async () => ({ error: { title: 'TESTING' } }), - }, - ], - [ - { - ok: false, - statusText: 'statusText', - json: async () => ({}), - }, - ], + [404, { error: { title: 'TESTING' } }], + [500, {}], ])( 'It returns an empty array of applications when the fetch is not okay', - async fetchResult => { + async (statusCode, jsonBody) => { const mockedDiscoveryApi: DiscoveryApi = { getBaseUrl: jest.fn().mockResolvedValueOnce('https://test.test'), }; - const mockedFetchApi: FetchApi = { - fetch: jest.fn().mockResolvedValueOnce({ - ok: true, - json: async () => fetchResult, - }), - }; + server.use( + rest.get( + 'https://test.test/newrelic/apm/api/applications.json', + (_, res, ctx) => res(ctx.status(statusCode), ctx.json(jsonBody)), + ), + ); const client = new NewRelicClient({ discoveryApi: mockedDiscoveryApi, - fetchApi: mockedFetchApi, + fetchApi: new MockFetchApi(), }); const actual = await client.getApplications(); @@ -296,15 +340,15 @@ describe('NewRelicClient', () => { getBaseUrl: jest.fn().mockResolvedValueOnce('https://test.test'), }; - const mockedFetchApi: FetchApi = { - fetch: () => { - throw new Error('TESTING'); - }, - }; + server.use( + rest.get('https://test.test/newrelic/apm/api/applications.json', () => { + throw new Error('Network Error'); + }), + ); const client = new NewRelicClient({ discoveryApi: mockedDiscoveryApi, - fetchApi: mockedFetchApi, + fetchApi: new MockFetchApi(), }); const actual = await client.getApplications(); @@ -316,16 +360,16 @@ describe('NewRelicClient', () => { getBaseUrl: jest.fn().mockResolvedValueOnce('https://test.test'), }; - const mockedFetchApi: FetchApi = { - fetch: jest.fn().mockResolvedValue({ - ok: true, - json: async () => ({ applications: [] }), - }), - }; + server.use( + rest.get( + 'https://test.test/newrelic/apm/api/applications.json', + (_, res, ctx) => res(ctx.status(200), ctx.json({ applications: [] })), + ), + ); const client = new NewRelicClient({ discoveryApi: mockedDiscoveryApi, - fetchApi: mockedFetchApi, + fetchApi: new MockFetchApi(), }); await client.getApplications(); diff --git a/yarn.lock b/yarn.lock index 1399f1d622..b7d49886f5 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7590,6 +7590,7 @@ __metadata: version: 0.0.0-use.local resolution: "@backstage/plugin-newrelic@workspace:plugins/newrelic" dependencies: + "@backstage/backend-test-utils": "workspace:^" "@backstage/cli": "workspace:^" "@backstage/core-app-api": "workspace:^" "@backstage/core-components": "workspace:^" @@ -7608,7 +7609,7 @@ __metadata: "@types/parse-link-header": ^2.0.1 "@types/react": ^16.13.1 || ^17.0.0 cross-fetch: ^3.1.5 - msw: ^1.0.0 + msw: ^1.2.3 parse-link-header: ^2.0.0 react-use: ^17.2.4 peerDependencies: @@ -32846,9 +32847,9 @@ __metadata: languageName: node linkType: hard -"msw@npm:^1.0.0, msw@npm:^1.0.1, msw@npm:^1.2.1": - version: 1.2.2 - resolution: "msw@npm:1.2.2" +"msw@npm:^1.0.0, msw@npm:^1.0.1, msw@npm:^1.2.1, msw@npm:^1.2.3": + version: 1.2.3 + resolution: "msw@npm:1.2.3" dependencies: "@mswjs/cookies": ^0.2.2 "@mswjs/interceptors": ^0.17.5 @@ -32876,7 +32877,7 @@ __metadata: optional: true bin: msw: cli/index.js - checksum: e42cec8f5523663020bdecf6a7977a10aa86a4718d1920def3fbde0ff3734391873668cc6e3996d6790add3c74dac95a952f8560ce2543697280125eb55138e8 + checksum: 832a6fc3973726a97e03ce2690c3b6e1774b5156d064a478657a1b33f9933e4834af833cc8a859e1b717fa9b71f1271b3e66a1ec6eed7f76bfe79406e9ec3986 languageName: node linkType: hard From b6ee85d1e7e930d8d992cd3f10b6c815a0435925 Mon Sep 17 00:00:00 2001 From: Robert Bunning Date: Mon, 7 Aug 2023 15:41:55 -0400 Subject: [PATCH 088/372] Switch to using push to add on read applications Signed-off-by: Robert Bunning --- plugins/newrelic/src/api/index.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/newrelic/src/api/index.ts b/plugins/newrelic/src/api/index.ts index ede225dc05..3fdebd1494 100644 --- a/plugins/newrelic/src/api/index.ts +++ b/plugins/newrelic/src/api/index.ts @@ -103,7 +103,7 @@ export class NewRelicClient implements NewRelicApi { } try { - let applications: NewRelicApplication[] = []; + const applications: NewRelicApplication[] = []; let targetUrl = this.baseUrl; do { @@ -111,7 +111,7 @@ export class NewRelicClient implements NewRelicApi { await this.fetchNewRelic(targetUrl); targetUrl = nextPageUrl ?? ''; - applications = applications.concat(applicationsFromReadPage); + applications.push(...applicationsFromReadPage); } while (!!targetUrl); return { applications }; From 9261f22f1c04c5aec8620db011dc85ba3a9ce636 Mon Sep 17 00:00:00 2001 From: Vincenzo Scamporlino Date: Tue, 8 Aug 2023 13:00:08 +0200 Subject: [PATCH 089/372] keep BackendFeatureFactory internal Signed-off-by: Vincenzo Scamporlino --- .../backend-plugin-api/alpha-api-report.md | 10 ++++++++++ packages/backend-plugin-api/api-report.md | 4 ++-- packages/backend-plugin-api/src/alpha.ts | 4 ++-- .../backend-plugin-api/src/wiring/factories.ts | 5 +++-- plugins/adr-backend/api-report.md | 4 ++-- plugins/airbrake-backend/api-report.md | 4 ++-- plugins/app-backend/alpha-api-report.md | 4 ++-- plugins/azure-devops-backend/api-report.md | 4 ++-- plugins/badges-backend/api-report.md | 4 ++-- plugins/bazaar-backend/api-report.md | 4 ++-- .../alpha-api-report.md | 4 ++-- .../alpha-api-report.md | 4 ++-- .../alpha-api-report.md | 6 ++---- .../alpha-api-report.md | 6 ++---- .../catalog-backend-module-gcp/api-report.md | 4 ++-- .../alpha-api-report.md | 4 ++-- .../alpha-api-report.md | 4 ++-- .../alpha-api-report.md | 6 ++---- .../alpha-api-report.md | 18 +++++++----------- .../alpha-api-report.md | 6 ++---- .../alpha-api-report.md | 4 ++-- .../api-report.md | 4 ++-- plugins/catalog-backend/alpha-api-report.md | 4 ++-- plugins/devtools-backend/api-report.md | 4 ++-- plugins/entity-feedback-backend/api-report.md | 4 ++-- .../alpha-api-report.md | 6 ++---- .../alpha-api-report.md | 4 ++-- .../alpha-api-report.md | 4 ++-- .../alpha-api-report.md | 4 ++-- .../alpha-api-report.md | 6 +++--- .../alpha-api-report.md | 6 +++--- plugins/events-backend/alpha-api-report.md | 4 ++-- .../example-todo-list-backend/api-report.md | 4 ++-- plugins/kafka-backend/api-report.md | 4 ++-- plugins/kubernetes-backend/alpha-api-report.md | 4 ++-- plugins/lighthouse-backend/api-report.md | 4 ++-- plugins/linguist-backend/api-report.md | 6 ++---- plugins/periskop-backend/api-report.md | 4 ++-- plugins/permission-backend/alpha-api-report.md | 6 +++--- plugins/proxy-backend/api-report.md | 4 ++-- plugins/scaffolder-backend/alpha-api-report.md | 10 +++++----- .../alpha-api-report.md | 8 ++++---- .../alpha-api-report.md | 8 ++++---- .../alpha-api-report.md | 8 ++++---- .../alpha-api-report.md | 4 ++-- .../alpha-api-report.md | 8 ++++---- plugins/search-backend/alpha-api-report.md | 4 ++-- plugins/techdocs-backend/alpha-api-report.md | 4 ++-- plugins/todo-backend/api-report.md | 4 ++-- plugins/user-settings-backend/api-report.md | 4 ++-- 50 files changed, 128 insertions(+), 133 deletions(-) diff --git a/packages/backend-plugin-api/alpha-api-report.md b/packages/backend-plugin-api/alpha-api-report.md index d76d7e4deb..29f78ed9d1 100644 --- a/packages/backend-plugin-api/alpha-api-report.md +++ b/packages/backend-plugin-api/alpha-api-report.md @@ -9,6 +9,16 @@ export interface BackendFeature { $$type: '@backstage/BackendFeature'; } +// @public (undocumented) +export interface BackendFeatureFactory< + TOptions extends [options?: object] = [], +> { + // (undocumented) + $$type: '@backstage/BackendFeatureFactory'; + // (undocumented) + (...options: TOptions): BackendFeature; +} + // @alpha (undocumented) export interface FeatureDiscoveryService { // (undocumented) diff --git a/packages/backend-plugin-api/api-report.md b/packages/backend-plugin-api/api-report.md index a9eba1ba86..dc75c09b18 100644 --- a/packages/backend-plugin-api/api-report.md +++ b/packages/backend-plugin-api/api-report.md @@ -126,12 +126,12 @@ export namespace coreServices { // @public export function createBackendModule( config: BackendModuleConfig | ((...params: TOptions) => BackendModuleConfig), -): BackendFeatureFactory; +): (...params: TOptions) => BackendFeature; // @public export function createBackendPlugin( config: BackendPluginConfig | ((...params: TOptions) => BackendPluginConfig), -): BackendFeatureFactory; +): (...params: TOptions) => BackendFeature; // @public export function createExtensionPoint( diff --git a/packages/backend-plugin-api/src/alpha.ts b/packages/backend-plugin-api/src/alpha.ts index bd6be5b75e..e3598dff5a 100644 --- a/packages/backend-plugin-api/src/alpha.ts +++ b/packages/backend-plugin-api/src/alpha.ts @@ -15,7 +15,7 @@ */ import { createServiceRef } from './services'; -import { BackendFeature } from './wiring'; +import { BackendFeature, BackendFeatureFactory } from './wiring'; /** @alpha */ export interface FeatureDiscoveryService { @@ -33,4 +33,4 @@ export const featureDiscoveryServiceRef = }); export type { ServiceRef } from './services'; -export type { BackendFeature }; +export type { BackendFeature, BackendFeatureFactory }; diff --git a/packages/backend-plugin-api/src/wiring/factories.ts b/packages/backend-plugin-api/src/wiring/factories.ts index cbc3771b86..ecaccdc6de 100644 --- a/packages/backend-plugin-api/src/wiring/factories.ts +++ b/packages/backend-plugin-api/src/wiring/factories.ts @@ -21,6 +21,7 @@ import { InternalBackendModuleRegistration, InternalBackendPluginRegistration, BackendFeatureFactory, + BackendFeature, } from './types'; /** @@ -86,7 +87,7 @@ export interface BackendPluginConfig { */ export function createBackendPlugin( config: BackendPluginConfig | ((...params: TOptions) => BackendPluginConfig), -): BackendFeatureFactory { +): (...params: TOptions) => BackendFeature { const configCallback = typeof config === 'function' ? config : () => config; const factory: BackendFeatureFactory = (...options) => { @@ -179,7 +180,7 @@ export interface BackendModuleConfig { */ export function createBackendModule( config: BackendModuleConfig | ((...params: TOptions) => BackendModuleConfig), -): BackendFeatureFactory { +): (...params: TOptions) => BackendFeature { const configCallback = typeof config === 'function' ? config : () => config; const factory: BackendFeatureFactory = (...options: TOptions) => { const c = configCallback(...options); diff --git a/plugins/adr-backend/api-report.md b/plugins/adr-backend/api-report.md index 4092a6eb60..2fd22ef9cd 100644 --- a/plugins/adr-backend/api-report.md +++ b/plugins/adr-backend/api-report.md @@ -7,7 +7,7 @@ import { AdrDocument } from '@backstage/plugin-adr-common'; import { AdrFilePathFilterFn } from '@backstage/plugin-adr-common'; -import { BackendFeatureFactory } from '@backstage/backend-plugin-api'; +import { BackendFeature } from '@backstage/backend-plugin-api'; import { CacheClient } from '@backstage/backend-common'; import { CatalogApi } from '@backstage/catalog-client'; import { Config } from '@backstage/config'; @@ -45,7 +45,7 @@ export type AdrParserContext = { }; // @public -export const adrPlugin: BackendFeatureFactory<[]>; +export const adrPlugin: () => BackendFeature; // @public (undocumented) export type AdrRouterOptions = { diff --git a/plugins/airbrake-backend/api-report.md b/plugins/airbrake-backend/api-report.md index d3dd706c29..c410245e31 100644 --- a/plugins/airbrake-backend/api-report.md +++ b/plugins/airbrake-backend/api-report.md @@ -3,7 +3,7 @@ > Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). ```ts -import { BackendFeatureFactory } from '@backstage/backend-plugin-api'; +import { BackendFeature } from '@backstage/backend-plugin-api'; import { Config } from '@backstage/config'; import express from 'express'; import { Logger } from 'winston'; @@ -14,7 +14,7 @@ export interface AirbrakeConfig { } // @public -export const airbrakePlugin: BackendFeatureFactory<[]>; +export const airbrakePlugin: () => BackendFeature; // @public export function createRouter(options: RouterOptions): Promise; diff --git a/plugins/app-backend/alpha-api-report.md b/plugins/app-backend/alpha-api-report.md index 32d8cc3605..5fb0546a79 100644 --- a/plugins/app-backend/alpha-api-report.md +++ b/plugins/app-backend/alpha-api-report.md @@ -3,10 +3,10 @@ > Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). ```ts -import { BackendFeatureFactory } from '@backstage/backend-plugin-api'; +import { BackendFeature } from '@backstage/backend-plugin-api'; // @alpha -export const appPlugin: BackendFeatureFactory<[]>; +export const appPlugin: () => 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 6447f03796..a2a43cd6af 100644 --- a/plugins/azure-devops-backend/api-report.md +++ b/plugins/azure-devops-backend/api-report.md @@ -3,7 +3,7 @@ > Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). ```ts -import { BackendFeatureFactory } from '@backstage/backend-plugin-api'; +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'; @@ -96,7 +96,7 @@ export class AzureDevOpsApi { } // @public -export const azureDevOpsPlugin: BackendFeatureFactory<[]>; +export const azureDevOpsPlugin: () => BackendFeature; // @public (undocumented) export function createRouter(options: RouterOptions): Promise; diff --git a/plugins/badges-backend/api-report.md b/plugins/badges-backend/api-report.md index 30fd1e0752..4594228543 100644 --- a/plugins/badges-backend/api-report.md +++ b/plugins/badges-backend/api-report.md @@ -3,7 +3,7 @@ > Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). ```ts -import { BackendFeatureFactory } from '@backstage/backend-plugin-api'; +import { BackendFeature } from '@backstage/backend-plugin-api'; import { CatalogApi } from '@backstage/catalog-client'; import { Config } from '@backstage/config'; import { Entity } from '@backstage/catalog-model'; @@ -83,7 +83,7 @@ export type BadgeSpec = { }; // @public -export const badgesPlugin: BackendFeatureFactory<[]>; +export const badgesPlugin: () => BackendFeature; // @public export interface BadgesStore { diff --git a/plugins/bazaar-backend/api-report.md b/plugins/bazaar-backend/api-report.md index d3fe7987a1..6281530851 100644 --- a/plugins/bazaar-backend/api-report.md +++ b/plugins/bazaar-backend/api-report.md @@ -3,7 +3,7 @@ > Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). ```ts -import { BackendFeatureFactory } from '@backstage/backend-plugin-api'; +import { BackendFeature } from '@backstage/backend-plugin-api'; import { Config } from '@backstage/config'; import express from 'express'; import { IdentityApi } from '@backstage/plugin-auth-node'; @@ -11,7 +11,7 @@ import { Logger } from 'winston'; import { PluginDatabaseManager } from '@backstage/backend-common'; // @alpha -export const bazaarPlugin: BackendFeatureFactory<[]>; +export const bazaarPlugin: () => BackendFeature; // @public (undocumented) export function createRouter(options: RouterOptions): Promise; diff --git a/plugins/catalog-backend-module-aws/alpha-api-report.md b/plugins/catalog-backend-module-aws/alpha-api-report.md index 6f4fa2c760..f78f6a802d 100644 --- a/plugins/catalog-backend-module-aws/alpha-api-report.md +++ b/plugins/catalog-backend-module-aws/alpha-api-report.md @@ -3,10 +3,10 @@ > Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). ```ts -import { BackendFeatureFactory } from '@backstage/backend-plugin-api'; +import { BackendFeature } from '@backstage/backend-plugin-api'; // @alpha -export const catalogModuleAwsS3EntityProvider: BackendFeatureFactory<[]>; +export const catalogModuleAwsS3EntityProvider: () => BackendFeature; // (No @packageDocumentation comment for this package) ``` diff --git a/plugins/catalog-backend-module-azure/alpha-api-report.md b/plugins/catalog-backend-module-azure/alpha-api-report.md index 833eb3dc59..66551a2856 100644 --- a/plugins/catalog-backend-module-azure/alpha-api-report.md +++ b/plugins/catalog-backend-module-azure/alpha-api-report.md @@ -3,10 +3,10 @@ > Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). ```ts -import { BackendFeatureFactory } from '@backstage/backend-plugin-api'; +import { BackendFeature } from '@backstage/backend-plugin-api'; // @alpha -export const catalogModuleAzureDevOpsEntityProvider: BackendFeatureFactory<[]>; +export const catalogModuleAzureDevOpsEntityProvider: () => BackendFeature; // (No @packageDocumentation comment for this package) ``` diff --git a/plugins/catalog-backend-module-bitbucket-cloud/alpha-api-report.md b/plugins/catalog-backend-module-bitbucket-cloud/alpha-api-report.md index 0f76de5552..a5d0ffc665 100644 --- a/plugins/catalog-backend-module-bitbucket-cloud/alpha-api-report.md +++ b/plugins/catalog-backend-module-bitbucket-cloud/alpha-api-report.md @@ -3,12 +3,10 @@ > Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). ```ts -import { BackendFeatureFactory } from '@backstage/backend-plugin-api'; +import { BackendFeature } from '@backstage/backend-plugin-api'; // @alpha (undocumented) -export const catalogModuleBitbucketCloudEntityProvider: BackendFeatureFactory< - [] ->; +export const catalogModuleBitbucketCloudEntityProvider: () => BackendFeature; // (No @packageDocumentation comment for this package) ``` diff --git a/plugins/catalog-backend-module-bitbucket-server/alpha-api-report.md b/plugins/catalog-backend-module-bitbucket-server/alpha-api-report.md index 2616e92cba..2cc53a3c16 100644 --- a/plugins/catalog-backend-module-bitbucket-server/alpha-api-report.md +++ b/plugins/catalog-backend-module-bitbucket-server/alpha-api-report.md @@ -3,12 +3,10 @@ > Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). ```ts -import { BackendFeatureFactory } from '@backstage/backend-plugin-api'; +import { BackendFeature } from '@backstage/backend-plugin-api'; // @alpha (undocumented) -export const catalogModuleBitbucketServerEntityProvider: BackendFeatureFactory< - [] ->; +export const catalogModuleBitbucketServerEntityProvider: () => BackendFeature; // (No @packageDocumentation comment for this package) ``` diff --git a/plugins/catalog-backend-module-gcp/api-report.md b/plugins/catalog-backend-module-gcp/api-report.md index 489032b830..6f963ed51d 100644 --- a/plugins/catalog-backend-module-gcp/api-report.md +++ b/plugins/catalog-backend-module-gcp/api-report.md @@ -3,7 +3,7 @@ > Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). ```ts -import { BackendFeatureFactory } from '@backstage/backend-plugin-api'; +import { BackendFeature } from '@backstage/backend-plugin-api'; import { Config } from '@backstage/config'; import * as container from '@google-cloud/container'; import { EntityProvider } from '@backstage/plugin-catalog-node'; @@ -12,7 +12,7 @@ import { Logger } from 'winston'; import { SchedulerService } from '@backstage/backend-plugin-api'; // @public -export const catalogModuleGcpGkeEntityProvider: BackendFeatureFactory<[]>; +export const catalogModuleGcpGkeEntityProvider: () => BackendFeature; // @public export class GkeEntityProvider implements EntityProvider { diff --git a/plugins/catalog-backend-module-gerrit/alpha-api-report.md b/plugins/catalog-backend-module-gerrit/alpha-api-report.md index b7e00008cf..5aee61f28a 100644 --- a/plugins/catalog-backend-module-gerrit/alpha-api-report.md +++ b/plugins/catalog-backend-module-gerrit/alpha-api-report.md @@ -3,10 +3,10 @@ > Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). ```ts -import { BackendFeatureFactory } from '@backstage/backend-plugin-api'; +import { BackendFeature } from '@backstage/backend-plugin-api'; // @alpha (undocumented) -export const catalogModuleGerritEntityProvider: BackendFeatureFactory<[]>; +export const catalogModuleGerritEntityProvider: () => BackendFeature; // (No @packageDocumentation comment for this package) ``` diff --git a/plugins/catalog-backend-module-github/alpha-api-report.md b/plugins/catalog-backend-module-github/alpha-api-report.md index abc5b4d2a0..0d4e16b4ea 100644 --- a/plugins/catalog-backend-module-github/alpha-api-report.md +++ b/plugins/catalog-backend-module-github/alpha-api-report.md @@ -3,10 +3,10 @@ > Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). ```ts -import { BackendFeatureFactory } from '@backstage/backend-plugin-api'; +import { BackendFeature } from '@backstage/backend-plugin-api'; // @alpha -export const catalogModuleGithubEntityProvider: BackendFeatureFactory<[]>; +export const catalogModuleGithubEntityProvider: () => BackendFeature; // (No @packageDocumentation comment for this package) ``` diff --git a/plugins/catalog-backend-module-gitlab/alpha-api-report.md b/plugins/catalog-backend-module-gitlab/alpha-api-report.md index 51ebbc4ae2..f14b41d6c5 100644 --- a/plugins/catalog-backend-module-gitlab/alpha-api-report.md +++ b/plugins/catalog-backend-module-gitlab/alpha-api-report.md @@ -3,12 +3,10 @@ > Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). ```ts -import { BackendFeatureFactory } from '@backstage/backend-plugin-api'; +import { BackendFeature } from '@backstage/backend-plugin-api'; // @alpha -export const catalogModuleGitlabDiscoveryEntityProvider: BackendFeatureFactory< - [] ->; +export const catalogModuleGitlabDiscoveryEntityProvider: () => BackendFeature; // (No @packageDocumentation comment for this package) ``` diff --git a/plugins/catalog-backend-module-incremental-ingestion/alpha-api-report.md b/plugins/catalog-backend-module-incremental-ingestion/alpha-api-report.md index f067a0a6d7..b11ec43cf5 100644 --- a/plugins/catalog-backend-module-incremental-ingestion/alpha-api-report.md +++ b/plugins/catalog-backend-module-incremental-ingestion/alpha-api-report.md @@ -3,21 +3,17 @@ > Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). ```ts -import { BackendFeatureFactory } from '@backstage/backend-plugin-api'; +import { BackendFeature } from '@backstage/backend-plugin-api'; import { IncrementalEntityProvider } from '@backstage/plugin-catalog-backend-module-incremental-ingestion'; import { IncrementalEntityProviderOptions } from '@backstage/plugin-catalog-backend-module-incremental-ingestion'; // @alpha -export const catalogModuleIncrementalIngestionEntityProvider: BackendFeatureFactory< - [ - options: { - providers: { - provider: IncrementalEntityProvider; - options: IncrementalEntityProviderOptions; - }[]; - }, - ] ->; +export const catalogModuleIncrementalIngestionEntityProvider: (options: { + providers: { + provider: IncrementalEntityProvider; + options: IncrementalEntityProviderOptions; + }[]; +}) => BackendFeature; // (No @packageDocumentation comment for this package) ``` diff --git a/plugins/catalog-backend-module-msgraph/alpha-api-report.md b/plugins/catalog-backend-module-msgraph/alpha-api-report.md index d8aa5f5816..0fa093a1bc 100644 --- a/plugins/catalog-backend-module-msgraph/alpha-api-report.md +++ b/plugins/catalog-backend-module-msgraph/alpha-api-report.md @@ -3,15 +3,13 @@ > Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). ```ts -import { BackendFeatureFactory } from '@backstage/backend-plugin-api'; +import { BackendFeature } from '@backstage/backend-plugin-api'; import { GroupTransformer } from '@backstage/plugin-catalog-backend-module-msgraph'; import { OrganizationTransformer } from '@backstage/plugin-catalog-backend-module-msgraph'; import { UserTransformer } from '@backstage/plugin-catalog-backend-module-msgraph'; // @alpha -export const catalogModuleMicrosoftGraphOrgEntityProvider: BackendFeatureFactory< - [] ->; +export const catalogModuleMicrosoftGraphOrgEntityProvider: () => BackendFeature; // @alpha export interface CatalogModuleMicrosoftGraphOrgEntityProviderOptions { diff --git a/plugins/catalog-backend-module-puppetdb/alpha-api-report.md b/plugins/catalog-backend-module-puppetdb/alpha-api-report.md index be38b9fc25..0856fdb836 100644 --- a/plugins/catalog-backend-module-puppetdb/alpha-api-report.md +++ b/plugins/catalog-backend-module-puppetdb/alpha-api-report.md @@ -3,10 +3,10 @@ > Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). ```ts -import { BackendFeatureFactory } from '@backstage/backend-plugin-api'; +import { BackendFeature } from '@backstage/backend-plugin-api'; // @alpha -export const catalogModulePuppetDbEntityProvider: BackendFeatureFactory<[]>; +export const catalogModulePuppetDbEntityProvider: () => BackendFeature; // (No @packageDocumentation comment for this package) ``` diff --git a/plugins/catalog-backend-module-unprocessed/api-report.md b/plugins/catalog-backend-module-unprocessed/api-report.md index 6f52fdd967..7fd7119276 100644 --- a/plugins/catalog-backend-module-unprocessed/api-report.md +++ b/plugins/catalog-backend-module-unprocessed/api-report.md @@ -3,12 +3,12 @@ > Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). ```ts -import { BackendFeatureFactory } from '@backstage/backend-plugin-api'; +import { BackendFeature } from '@backstage/backend-plugin-api'; import { HttpRouterService } from '@backstage/backend-plugin-api'; import { Knex } from 'knex'; // @public -export const catalogModuleUnprocessedEntities: BackendFeatureFactory<[]>; +export const catalogModuleUnprocessedEntities: () => BackendFeature; // @public export class UnprocessedEntitiesModule { diff --git a/plugins/catalog-backend/alpha-api-report.md b/plugins/catalog-backend/alpha-api-report.md index 57a10cbeda..df3e809ade 100644 --- a/plugins/catalog-backend/alpha-api-report.md +++ b/plugins/catalog-backend/alpha-api-report.md @@ -3,7 +3,7 @@ > Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). ```ts -import { BackendFeatureFactory } from '@backstage/backend-plugin-api'; +import { BackendFeature } from '@backstage/backend-plugin-api'; import { ConditionalPolicyDecision } from '@backstage/plugin-permission-common'; import { Conditions } from '@backstage/plugin-permission-node'; import { Entity } from '@backstage/catalog-model'; @@ -74,7 +74,7 @@ export type CatalogPermissionRule< > = PermissionRule; // @alpha -export const catalogPlugin: BackendFeatureFactory<[]>; +export const catalogPlugin: () => BackendFeature; // @alpha export const createCatalogConditionalDecision: ( diff --git a/plugins/devtools-backend/api-report.md b/plugins/devtools-backend/api-report.md index dd356951f4..dc51fc8387 100644 --- a/plugins/devtools-backend/api-report.md +++ b/plugins/devtools-backend/api-report.md @@ -3,7 +3,7 @@ > Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). ```ts -import { BackendFeatureFactory } from '@backstage/backend-plugin-api'; +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'; @@ -27,7 +27,7 @@ export class DevToolsBackendApi { } // @public -export const devtoolsPlugin: BackendFeatureFactory<[]>; +export const devtoolsPlugin: () => BackendFeature; // @public (undocumented) export interface RouterOptions { diff --git a/plugins/entity-feedback-backend/api-report.md b/plugins/entity-feedback-backend/api-report.md index fddce48592..3e8f90220e 100644 --- a/plugins/entity-feedback-backend/api-report.md +++ b/plugins/entity-feedback-backend/api-report.md @@ -3,7 +3,7 @@ > Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). ```ts -import { BackendFeatureFactory } from '@backstage/backend-plugin-api'; +import { BackendFeature } from '@backstage/backend-plugin-api'; import express from 'express'; import { IdentityApi } from '@backstage/plugin-auth-node'; import { Logger } from 'winston'; @@ -14,7 +14,7 @@ import { PluginEndpointDiscovery } from '@backstage/backend-common'; export function createRouter(options: RouterOptions): Promise; // @public -export const entityFeedbackPlugin: BackendFeatureFactory<[]>; +export const entityFeedbackPlugin: () => BackendFeature; // @public (undocumented) export interface RouterOptions { diff --git a/plugins/events-backend-module-aws-sqs/alpha-api-report.md b/plugins/events-backend-module-aws-sqs/alpha-api-report.md index 8f81ff00d1..e48515a414 100644 --- a/plugins/events-backend-module-aws-sqs/alpha-api-report.md +++ b/plugins/events-backend-module-aws-sqs/alpha-api-report.md @@ -3,12 +3,10 @@ > Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). ```ts -import { BackendFeatureFactory } from '@backstage/backend-plugin-api'; +import { BackendFeature } from '@backstage/backend-plugin-api'; // @alpha -export const eventsModuleAwsSqsConsumingEventPublisher: BackendFeatureFactory< - [] ->; +export const eventsModuleAwsSqsConsumingEventPublisher: () => BackendFeature; // (No @packageDocumentation comment for this package) ``` diff --git a/plugins/events-backend-module-azure/alpha-api-report.md b/plugins/events-backend-module-azure/alpha-api-report.md index 680c609c10..1bd568d1df 100644 --- a/plugins/events-backend-module-azure/alpha-api-report.md +++ b/plugins/events-backend-module-azure/alpha-api-report.md @@ -3,10 +3,10 @@ > Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). ```ts -import { BackendFeatureFactory } from '@backstage/backend-plugin-api'; +import { BackendFeature } from '@backstage/backend-plugin-api'; // @alpha -export const eventsModuleAzureDevOpsEventRouter: BackendFeatureFactory<[]>; +export const eventsModuleAzureDevOpsEventRouter: () => BackendFeature; // (No @packageDocumentation comment for this package) ``` diff --git a/plugins/events-backend-module-bitbucket-cloud/alpha-api-report.md b/plugins/events-backend-module-bitbucket-cloud/alpha-api-report.md index 52b2cac142..5e63ae36c8 100644 --- a/plugins/events-backend-module-bitbucket-cloud/alpha-api-report.md +++ b/plugins/events-backend-module-bitbucket-cloud/alpha-api-report.md @@ -3,10 +3,10 @@ > Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). ```ts -import { BackendFeatureFactory } from '@backstage/backend-plugin-api'; +import { BackendFeature } from '@backstage/backend-plugin-api'; // @alpha -export const eventsModuleBitbucketCloudEventRouter: BackendFeatureFactory<[]>; +export const eventsModuleBitbucketCloudEventRouter: () => BackendFeature; // (No @packageDocumentation comment for this package) ``` diff --git a/plugins/events-backend-module-gerrit/alpha-api-report.md b/plugins/events-backend-module-gerrit/alpha-api-report.md index 82588d05ac..d1be54730f 100644 --- a/plugins/events-backend-module-gerrit/alpha-api-report.md +++ b/plugins/events-backend-module-gerrit/alpha-api-report.md @@ -3,10 +3,10 @@ > Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). ```ts -import { BackendFeatureFactory } from '@backstage/backend-plugin-api'; +import { BackendFeature } from '@backstage/backend-plugin-api'; // @alpha -export const eventsModuleGerritEventRouter: BackendFeatureFactory<[]>; +export const eventsModuleGerritEventRouter: () => BackendFeature; // (No @packageDocumentation comment for this package) ``` diff --git a/plugins/events-backend-module-github/alpha-api-report.md b/plugins/events-backend-module-github/alpha-api-report.md index 21bfdbb9d2..c233df8634 100644 --- a/plugins/events-backend-module-github/alpha-api-report.md +++ b/plugins/events-backend-module-github/alpha-api-report.md @@ -3,13 +3,13 @@ > Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). ```ts -import { BackendFeatureFactory } from '@backstage/backend-plugin-api'; +import { BackendFeature } from '@backstage/backend-plugin-api'; // @alpha -export const eventsModuleGithubEventRouter: BackendFeatureFactory<[]>; +export const eventsModuleGithubEventRouter: () => BackendFeature; // @alpha -export const eventsModuleGithubWebhook: BackendFeatureFactory<[]>; +export const eventsModuleGithubWebhook: () => BackendFeature; // (No @packageDocumentation comment for this package) ``` diff --git a/plugins/events-backend-module-gitlab/alpha-api-report.md b/plugins/events-backend-module-gitlab/alpha-api-report.md index bca947c195..bf61f66a4b 100644 --- a/plugins/events-backend-module-gitlab/alpha-api-report.md +++ b/plugins/events-backend-module-gitlab/alpha-api-report.md @@ -3,13 +3,13 @@ > Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). ```ts -import { BackendFeatureFactory } from '@backstage/backend-plugin-api'; +import { BackendFeature } from '@backstage/backend-plugin-api'; // @alpha -export const eventsModuleGitlabEventRouter: BackendFeatureFactory<[]>; +export const eventsModuleGitlabEventRouter: () => BackendFeature; // @alpha -export const eventsModuleGitlabWebhook: BackendFeatureFactory<[]>; +export const eventsModuleGitlabWebhook: () => BackendFeature; // (No @packageDocumentation comment for this package) ``` diff --git a/plugins/events-backend/alpha-api-report.md b/plugins/events-backend/alpha-api-report.md index 72d4bce4b2..3e32f769c1 100644 --- a/plugins/events-backend/alpha-api-report.md +++ b/plugins/events-backend/alpha-api-report.md @@ -3,10 +3,10 @@ > Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). ```ts -import { BackendFeatureFactory } from '@backstage/backend-plugin-api'; +import { BackendFeature } from '@backstage/backend-plugin-api'; // @alpha -export const eventsPlugin: BackendFeatureFactory<[]>; +export const eventsPlugin: () => BackendFeature; // (No @packageDocumentation comment for this package) ``` diff --git a/plugins/example-todo-list-backend/api-report.md b/plugins/example-todo-list-backend/api-report.md index 80b86c4e4d..319fbbf226 100644 --- a/plugins/example-todo-list-backend/api-report.md +++ b/plugins/example-todo-list-backend/api-report.md @@ -3,7 +3,7 @@ > Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). ```ts -import { BackendFeatureFactory } from '@backstage/backend-plugin-api'; +import { BackendFeature } from '@backstage/backend-plugin-api'; import express from 'express'; import { IdentityApi } from '@backstage/plugin-auth-node'; import { Logger } from 'winston'; @@ -12,7 +12,7 @@ import { Logger } from 'winston'; export function createRouter(options: RouterOptions): Promise; // @alpha -export const exampleTodoListPlugin: BackendFeatureFactory<[]>; +export const exampleTodoListPlugin: () => BackendFeature; // @public export interface RouterOptions { diff --git a/plugins/kafka-backend/api-report.md b/plugins/kafka-backend/api-report.md index 176c961cd4..a748a543d9 100644 --- a/plugins/kafka-backend/api-report.md +++ b/plugins/kafka-backend/api-report.md @@ -3,7 +3,7 @@ > Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). ```ts -import { BackendFeatureFactory } from '@backstage/backend-plugin-api'; +import { BackendFeature } from '@backstage/backend-plugin-api'; import { Config } from '@backstage/config'; import express from 'express'; import { Logger } from 'winston'; @@ -12,7 +12,7 @@ import { Logger } from 'winston'; export function createRouter(options: RouterOptions): Promise; // @alpha -export const kafkaPlugin: BackendFeatureFactory<[]>; +export const kafkaPlugin: () => BackendFeature; // @public (undocumented) export interface RouterOptions { diff --git a/plugins/kubernetes-backend/alpha-api-report.md b/plugins/kubernetes-backend/alpha-api-report.md index 77a300d344..f95c1414f3 100644 --- a/plugins/kubernetes-backend/alpha-api-report.md +++ b/plugins/kubernetes-backend/alpha-api-report.md @@ -3,10 +3,10 @@ > Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). ```ts -import { BackendFeatureFactory } from '@backstage/backend-plugin-api'; +import { BackendFeature } from '@backstage/backend-plugin-api'; // @alpha -export const kubernetesPlugin: BackendFeatureFactory<[]>; +export const kubernetesPlugin: () => BackendFeature; // (No @packageDocumentation comment for this package) ``` diff --git a/plugins/lighthouse-backend/api-report.md b/plugins/lighthouse-backend/api-report.md index f504ce70c9..5d9d948cf4 100644 --- a/plugins/lighthouse-backend/api-report.md +++ b/plugins/lighthouse-backend/api-report.md @@ -3,7 +3,7 @@ > Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). ```ts -import { BackendFeatureFactory } from '@backstage/backend-plugin-api'; +import { BackendFeature } from '@backstage/backend-plugin-api'; import { CatalogApi } from '@backstage/catalog-client'; import { Config } from '@backstage/config'; import { Logger } from 'winston'; @@ -30,7 +30,7 @@ export function createScheduler( ): Promise; // @public -export const lighthousePlugin: BackendFeatureFactory<[]>; +export const lighthousePlugin: () => BackendFeature; // (No @packageDocumentation comment for this package) ``` diff --git a/plugins/linguist-backend/api-report.md b/plugins/linguist-backend/api-report.md index 995b54da62..aac978e426 100644 --- a/plugins/linguist-backend/api-report.md +++ b/plugins/linguist-backend/api-report.md @@ -3,7 +3,7 @@ > Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). ```ts -import { BackendFeatureFactory } from '@backstage/backend-plugin-api'; +import { BackendFeature } from '@backstage/backend-plugin-api'; import { CatalogProcessor } from '@backstage/plugin-catalog-node'; import { CatalogProcessorCache } from '@backstage/plugin-catalog-node'; import { Config } from '@backstage/config'; @@ -36,9 +36,7 @@ export interface LinguistBackendApi { } // @public -export const linguistPlugin: BackendFeatureFactory< - [options: LinguistPluginOptions] ->; +export const linguistPlugin: (options: LinguistPluginOptions) => BackendFeature; // @public export interface LinguistPluginOptions { diff --git a/plugins/periskop-backend/api-report.md b/plugins/periskop-backend/api-report.md index e548a70a75..7906bc4785 100644 --- a/plugins/periskop-backend/api-report.md +++ b/plugins/periskop-backend/api-report.md @@ -3,7 +3,7 @@ > Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). ```ts -import { BackendFeatureFactory } from '@backstage/backend-plugin-api'; +import { BackendFeature } from '@backstage/backend-plugin-api'; import { Config } from '@backstage/config'; import express from 'express'; import { Logger } from 'winston'; @@ -12,7 +12,7 @@ import { Logger } from 'winston'; export function createRouter(options: RouterOptions): Promise; // @alpha -export const periskopPlugin: BackendFeatureFactory<[]>; +export const periskopPlugin: () => BackendFeature; // @public (undocumented) export interface RouterOptions { diff --git a/plugins/permission-backend/alpha-api-report.md b/plugins/permission-backend/alpha-api-report.md index 5068992c71..926691930b 100644 --- a/plugins/permission-backend/alpha-api-report.md +++ b/plugins/permission-backend/alpha-api-report.md @@ -3,13 +3,13 @@ > Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). ```ts -import { BackendFeatureFactory } from '@backstage/backend-plugin-api'; +import { BackendFeature } from '@backstage/backend-plugin-api'; // @alpha -export const permissionModuleAllowAllPolicy: BackendFeatureFactory<[]>; +export const permissionModuleAllowAllPolicy: () => BackendFeature; // @alpha -export const permissionPlugin: BackendFeatureFactory<[]>; +export const permissionPlugin: () => BackendFeature; // (No @packageDocumentation comment for this package) ``` diff --git a/plugins/proxy-backend/api-report.md b/plugins/proxy-backend/api-report.md index 7960c9658c..9c5cf5f9ef 100644 --- a/plugins/proxy-backend/api-report.md +++ b/plugins/proxy-backend/api-report.md @@ -3,7 +3,7 @@ > Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). ```ts -import { BackendFeatureFactory } from '@backstage/backend-plugin-api'; +import { BackendFeature } from '@backstage/backend-plugin-api'; import { Config } from '@backstage/config'; import express from 'express'; import { Logger } from 'winston'; @@ -13,7 +13,7 @@ import { PluginEndpointDiscovery } from '@backstage/backend-common'; export function createRouter(options: RouterOptions): Promise; // @alpha -export const proxyPlugin: BackendFeatureFactory<[]>; +export const proxyPlugin: () => BackendFeature; // @public (undocumented) export interface RouterOptions { diff --git a/plugins/scaffolder-backend/alpha-api-report.md b/plugins/scaffolder-backend/alpha-api-report.md index f4174697b2..363fcafd17 100644 --- a/plugins/scaffolder-backend/alpha-api-report.md +++ b/plugins/scaffolder-backend/alpha-api-report.md @@ -3,7 +3,7 @@ > Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). ```ts -import { BackendFeatureFactory } from '@backstage/backend-plugin-api'; +import { BackendFeature } from '@backstage/backend-plugin-api'; import { ConditionalPolicyDecision } from '@backstage/plugin-permission-common'; import { Conditions } from '@backstage/plugin-permission-node'; import { JsonObject } from '@backstage/types'; @@ -20,7 +20,7 @@ import { TemplateGlobal } from '@backstage/plugin-scaffolder-backend'; import { TemplateParametersV1beta3 } from '@backstage/plugin-scaffolder-common'; // @alpha -export const catalogModuleTemplateKind: BackendFeatureFactory<[]>; +export const catalogModuleTemplateKind: () => BackendFeature; // @alpha (undocumented) export const createScaffolderActionConditionalDecision: ( @@ -90,9 +90,9 @@ export const scaffolderActionConditions: Conditions<{ }>; // @alpha -export const scaffolderPlugin: BackendFeatureFactory< - [options?: ScaffolderPluginOptions | undefined] ->; +export const scaffolderPlugin: ( + options?: ScaffolderPluginOptions | undefined, +) => BackendFeature; // @alpha export type ScaffolderPluginOptions = { diff --git a/plugins/search-backend-module-catalog/alpha-api-report.md b/plugins/search-backend-module-catalog/alpha-api-report.md index 02a2ea2266..7c6e91b6a1 100644 --- a/plugins/search-backend-module-catalog/alpha-api-report.md +++ b/plugins/search-backend-module-catalog/alpha-api-report.md @@ -3,14 +3,14 @@ > Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). ```ts -import { BackendFeatureFactory } from '@backstage/backend-plugin-api'; +import { BackendFeature } from '@backstage/backend-plugin-api'; import { DefaultCatalogCollatorFactoryOptions } from '@backstage/plugin-search-backend-module-catalog'; import { TaskScheduleDefinition } from '@backstage/backend-tasks'; // @alpha -export const searchModuleCatalogCollator: BackendFeatureFactory< - [options?: SearchModuleCatalogCollatorOptions | undefined] ->; +export const searchModuleCatalogCollator: ( + options?: SearchModuleCatalogCollatorOptions | undefined, +) => BackendFeature; // @alpha export type SearchModuleCatalogCollatorOptions = Omit< diff --git a/plugins/search-backend-module-elasticsearch/alpha-api-report.md b/plugins/search-backend-module-elasticsearch/alpha-api-report.md index 254771b484..91007c20de 100644 --- a/plugins/search-backend-module-elasticsearch/alpha-api-report.md +++ b/plugins/search-backend-module-elasticsearch/alpha-api-report.md @@ -3,14 +3,14 @@ > Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). ```ts -import { BackendFeatureFactory } from '@backstage/backend-plugin-api'; +import { BackendFeature } from '@backstage/backend-plugin-api'; import { ElasticSearchCustomIndexTemplate } from '@backstage/plugin-search-backend-module-elasticsearch'; import { ElasticSearchQueryTranslator } from '@backstage/plugin-search-backend-module-elasticsearch'; // @alpha -export const searchModuleElasticsearchEngine: BackendFeatureFactory< - [options?: SearchModuleElasticsearchEngineOptions | undefined] ->; +export const searchModuleElasticsearchEngine: ( + options?: SearchModuleElasticsearchEngineOptions | undefined, +) => BackendFeature; // @alpha export type SearchModuleElasticsearchEngineOptions = { diff --git a/plugins/search-backend-module-explore/alpha-api-report.md b/plugins/search-backend-module-explore/alpha-api-report.md index f8053601b3..7b0f2658d6 100644 --- a/plugins/search-backend-module-explore/alpha-api-report.md +++ b/plugins/search-backend-module-explore/alpha-api-report.md @@ -3,13 +3,13 @@ > Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). ```ts -import { BackendFeatureFactory } from '@backstage/backend-plugin-api'; +import { BackendFeature } from '@backstage/backend-plugin-api'; import { TaskScheduleDefinition } from '@backstage/backend-tasks'; // @alpha -export const searchModuleExploreCollator: BackendFeatureFactory< - [options?: SearchModuleExploreCollatorOptions | undefined] ->; +export const searchModuleExploreCollator: ( + options?: SearchModuleExploreCollatorOptions | undefined, +) => BackendFeature; // @alpha export type SearchModuleExploreCollatorOptions = { diff --git a/plugins/search-backend-module-pg/alpha-api-report.md b/plugins/search-backend-module-pg/alpha-api-report.md index d41010a594..eaee78e944 100644 --- a/plugins/search-backend-module-pg/alpha-api-report.md +++ b/plugins/search-backend-module-pg/alpha-api-report.md @@ -3,10 +3,10 @@ > Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). ```ts -import { BackendFeatureFactory } from '@backstage/backend-plugin-api'; +import { BackendFeature } from '@backstage/backend-plugin-api'; // @alpha -export const searchModulePostgresEngine: BackendFeatureFactory<[]>; +export const searchModulePostgresEngine: () => BackendFeature; // (No @packageDocumentation comment for this package) ``` diff --git a/plugins/search-backend-module-techdocs/alpha-api-report.md b/plugins/search-backend-module-techdocs/alpha-api-report.md index 4f7515dac5..0eac010b4c 100644 --- a/plugins/search-backend-module-techdocs/alpha-api-report.md +++ b/plugins/search-backend-module-techdocs/alpha-api-report.md @@ -3,14 +3,14 @@ > Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). ```ts -import { BackendFeatureFactory } from '@backstage/backend-plugin-api'; +import { BackendFeature } from '@backstage/backend-plugin-api'; import { TaskScheduleDefinition } from '@backstage/backend-tasks'; import { TechDocsCollatorFactoryOptions } from '@backstage/plugin-search-backend-module-techdocs'; // @alpha -export const searchModuleTechDocsCollator: BackendFeatureFactory< - [options?: SearchModuleTechDocsCollatorOptions | undefined] ->; +export const searchModuleTechDocsCollator: ( + options?: SearchModuleTechDocsCollatorOptions | undefined, +) => BackendFeature; // @alpha export type SearchModuleTechDocsCollatorOptions = Omit< diff --git a/plugins/search-backend/alpha-api-report.md b/plugins/search-backend/alpha-api-report.md index 9d620efe0e..6ee94a0e29 100644 --- a/plugins/search-backend/alpha-api-report.md +++ b/plugins/search-backend/alpha-api-report.md @@ -3,10 +3,10 @@ > Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). ```ts -import { BackendFeatureFactory } from '@backstage/backend-plugin-api'; +import { BackendFeature } from '@backstage/backend-plugin-api'; // @alpha -export const searchPlugin: BackendFeatureFactory<[]>; +export const searchPlugin: () => BackendFeature; // (No @packageDocumentation comment for this package) ``` diff --git a/plugins/techdocs-backend/alpha-api-report.md b/plugins/techdocs-backend/alpha-api-report.md index 6de1a7d209..16db84c216 100644 --- a/plugins/techdocs-backend/alpha-api-report.md +++ b/plugins/techdocs-backend/alpha-api-report.md @@ -3,10 +3,10 @@ > Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). ```ts -import { BackendFeatureFactory } from '@backstage/backend-plugin-api'; +import { BackendFeature } from '@backstage/backend-plugin-api'; // @alpha -export const techdocsPlugin: BackendFeatureFactory<[]>; +export const techdocsPlugin: () => BackendFeature; // (No @packageDocumentation comment for this package) ``` diff --git a/plugins/todo-backend/api-report.md b/plugins/todo-backend/api-report.md index a3703eaaab..6db1e012e9 100644 --- a/plugins/todo-backend/api-report.md +++ b/plugins/todo-backend/api-report.md @@ -3,7 +3,7 @@ > Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). ```ts -import { BackendFeatureFactory } from '@backstage/backend-plugin-api'; +import { BackendFeature } from '@backstage/backend-plugin-api'; import { CatalogApi } from '@backstage/catalog-client'; import { CompoundEntityRef } from '@backstage/catalog-model'; import { Config } from '@backstage/config'; @@ -91,7 +91,7 @@ export type TodoParserResult = { }; // @public -export const todoPlugin: BackendFeatureFactory<[]>; +export const todoPlugin: () => BackendFeature; // @public (undocumented) export interface TodoReader { diff --git a/plugins/user-settings-backend/api-report.md b/plugins/user-settings-backend/api-report.md index 32722bbf2d..b015915723 100644 --- a/plugins/user-settings-backend/api-report.md +++ b/plugins/user-settings-backend/api-report.md @@ -3,7 +3,7 @@ > Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). ```ts -import { BackendFeatureFactory } from '@backstage/backend-plugin-api'; +import { BackendFeature } from '@backstage/backend-plugin-api'; import express from 'express'; import { IdentityApi } from '@backstage/plugin-auth-node'; import { PluginDatabaseManager } from '@backstage/backend-common'; @@ -20,7 +20,7 @@ export interface RouterOptions { } // @alpha -export const userSettingsPlugin: BackendFeatureFactory<[]>; +export const userSettingsPlugin: () => BackendFeature; // (No @packageDocumentation comment for this package) ``` From a58fc22210ac0df11e47edb269a681c372f08648 Mon Sep 17 00:00:00 2001 From: Vincenzo Scamporlino Date: Tue, 8 Aug 2023 13:47:36 +0200 Subject: [PATCH 090/372] avoid exporting BackendFeatureFactory Signed-off-by: Vincenzo Scamporlino --- .../src/alpha/featureDiscoveryServiceFactory.ts | 6 ++---- packages/backend-plugin-api/alpha-api-report.md | 10 ---------- packages/backend-plugin-api/api-report.md | 10 ---------- packages/backend-plugin-api/src/alpha.ts | 4 ++-- packages/backend-plugin-api/src/wiring/index.ts | 1 - packages/backend-plugin-api/src/wiring/types.ts | 2 +- 6 files changed, 5 insertions(+), 28 deletions(-) diff --git a/packages/backend-app-api/src/alpha/featureDiscoveryServiceFactory.ts b/packages/backend-app-api/src/alpha/featureDiscoveryServiceFactory.ts index 7062448eb1..f9ee7edc5f 100644 --- a/packages/backend-app-api/src/alpha/featureDiscoveryServiceFactory.ts +++ b/packages/backend-app-api/src/alpha/featureDiscoveryServiceFactory.ts @@ -16,7 +16,6 @@ import { BackendFeature, - BackendFeatureFactory, RootConfigService, coreServices, createServiceFactory, @@ -121,11 +120,10 @@ function isBackendFeature(value: unknown): value is BackendFeature { function isBackendFeatureFactory( value: unknown, -): value is BackendFeatureFactory { +): value is () => BackendFeature { return ( !!value && typeof value === 'function' && - (value as BackendFeatureFactory).$$type === - '@backstage/BackendFeatureFactory' + (value as any).$$type === '@backstage/BackendFeatureFactory' ); } diff --git a/packages/backend-plugin-api/alpha-api-report.md b/packages/backend-plugin-api/alpha-api-report.md index 29f78ed9d1..d76d7e4deb 100644 --- a/packages/backend-plugin-api/alpha-api-report.md +++ b/packages/backend-plugin-api/alpha-api-report.md @@ -9,16 +9,6 @@ export interface BackendFeature { $$type: '@backstage/BackendFeature'; } -// @public (undocumented) -export interface BackendFeatureFactory< - TOptions extends [options?: object] = [], -> { - // (undocumented) - $$type: '@backstage/BackendFeatureFactory'; - // (undocumented) - (...options: TOptions): BackendFeature; -} - // @alpha (undocumented) export interface FeatureDiscoveryService { // (undocumented) diff --git a/packages/backend-plugin-api/api-report.md b/packages/backend-plugin-api/api-report.md index dc75c09b18..a1ae6284c6 100644 --- a/packages/backend-plugin-api/api-report.md +++ b/packages/backend-plugin-api/api-report.md @@ -21,16 +21,6 @@ export interface BackendFeature { $$type: '@backstage/BackendFeature'; } -// @public (undocumented) -export interface BackendFeatureFactory< - TOptions extends [options?: object] = [], -> { - // (undocumented) - $$type: '@backstage/BackendFeatureFactory'; - // (undocumented) - (...options: TOptions): BackendFeature; -} - // @public export interface BackendModuleConfig { moduleId: string; diff --git a/packages/backend-plugin-api/src/alpha.ts b/packages/backend-plugin-api/src/alpha.ts index e3598dff5a..bd6be5b75e 100644 --- a/packages/backend-plugin-api/src/alpha.ts +++ b/packages/backend-plugin-api/src/alpha.ts @@ -15,7 +15,7 @@ */ import { createServiceRef } from './services'; -import { BackendFeature, BackendFeatureFactory } from './wiring'; +import { BackendFeature } from './wiring'; /** @alpha */ export interface FeatureDiscoveryService { @@ -33,4 +33,4 @@ export const featureDiscoveryServiceRef = }); export type { ServiceRef } from './services'; -export type { BackendFeature, BackendFeatureFactory }; +export type { BackendFeature }; diff --git a/packages/backend-plugin-api/src/wiring/index.ts b/packages/backend-plugin-api/src/wiring/index.ts index 0b7104374a..9cb767b8ac 100644 --- a/packages/backend-plugin-api/src/wiring/index.ts +++ b/packages/backend-plugin-api/src/wiring/index.ts @@ -28,6 +28,5 @@ export type { BackendModuleRegistrationPoints, BackendPluginRegistrationPoints, BackendFeature, - BackendFeatureFactory, ExtensionPoint, } from './types'; diff --git a/packages/backend-plugin-api/src/wiring/types.ts b/packages/backend-plugin-api/src/wiring/types.ts index b9b4f3ff10..028c2b87da 100644 --- a/packages/backend-plugin-api/src/wiring/types.ts +++ b/packages/backend-plugin-api/src/wiring/types.ts @@ -67,7 +67,7 @@ export interface BackendModuleRegistrationPoints { }): void; } -/** @public */ +/** @internal */ export interface BackendFeatureFactory< TOptions extends [options?: object] = [], > { From dfb01beddae77daa15059720d3ca67b8a91d45d8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fredrik=20Adel=C3=B6w?= Date: Tue, 8 Aug 2023 15:00:45 +0200 Subject: [PATCH 091/372] import non-alpha imports from the main package MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Fredrik Adelöw --- .../backend-plugin-api/alpha-api-report.md | 19 ++----------------- packages/backend-plugin-api/src/alpha.ts | 9 ++++----- 2 files changed, 6 insertions(+), 22 deletions(-) diff --git a/packages/backend-plugin-api/alpha-api-report.md b/packages/backend-plugin-api/alpha-api-report.md index d76d7e4deb..81b378a671 100644 --- a/packages/backend-plugin-api/alpha-api-report.md +++ b/packages/backend-plugin-api/alpha-api-report.md @@ -3,11 +3,8 @@ > Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). ```ts -// @public (undocumented) -export interface BackendFeature { - // (undocumented) - $$type: '@backstage/BackendFeature'; -} +import { BackendFeature } from '@backstage/backend-plugin-api'; +import { ServiceRef } from '@backstage/backend-plugin-api'; // @alpha (undocumented) export interface FeatureDiscoveryService { @@ -23,17 +20,5 @@ export const featureDiscoveryServiceRef: ServiceRef< 'root' >; -// @public -export type ServiceRef< - TService, - TScope extends 'root' | 'plugin' = 'root' | 'plugin', -> = { - id: string; - scope: TScope; - T: TService; - toString(): string; - $$type: '@backstage/ServiceRef'; -}; - // (No @packageDocumentation comment for this package) ``` diff --git a/packages/backend-plugin-api/src/alpha.ts b/packages/backend-plugin-api/src/alpha.ts index bd6be5b75e..baee739f49 100644 --- a/packages/backend-plugin-api/src/alpha.ts +++ b/packages/backend-plugin-api/src/alpha.ts @@ -14,8 +14,10 @@ * limitations under the License. */ -import { createServiceRef } from './services'; -import { BackendFeature } from './wiring'; +import { + BackendFeature, + createServiceRef, +} from '@backstage/backend-plugin-api'; /** @alpha */ export interface FeatureDiscoveryService { @@ -31,6 +33,3 @@ export const featureDiscoveryServiceRef = id: 'core.featureDiscovery', scope: 'root', }); - -export type { ServiceRef } from './services'; -export type { BackendFeature }; From 74f77f151a969857eb85def90c6eeabcdb3ad109 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Tue, 8 Aug 2023 14:07:10 +0000 Subject: [PATCH 092/372] Version Packages (next) --- .changeset/create-app-1691503547.md | 5 + .changeset/pre.json | 25 +- docs/releases/v1.17.0-next.2-changelog.md | 1430 +++++++++++++++++ package.json | 2 +- packages/app/CHANGELOG.md | 63 + packages/app/package.json | 2 +- packages/backend-app-api/CHANGELOG.md | 14 + packages/backend-app-api/package.json | 2 +- packages/backend-common/CHANGELOG.md | 9 + packages/backend-common/package.json | 2 +- packages/backend-defaults/CHANGELOG.md | 9 + packages/backend-defaults/package.json | 2 +- packages/backend-next/CHANGELOG.md | 32 + packages/backend-next/package.json | 2 +- packages/backend-plugin-api/CHANGELOG.md | 9 + packages/backend-plugin-api/package.json | 2 +- packages/backend-tasks/CHANGELOG.md | 8 + packages/backend-tasks/package.json | 2 +- packages/backend-test-utils/CHANGELOG.md | 10 + packages/backend-test-utils/package.json | 2 +- packages/backend/CHANGELOG.md | 49 + packages/backend/package.json | 2 +- packages/create-app/CHANGELOG.md | 6 + packages/create-app/package.json | 2 +- packages/dev-utils/CHANGELOG.md | 8 + packages/dev-utils/package.json | 2 +- packages/e2e-test/CHANGELOG.md | 7 + packages/e2e-test/package.json | 2 +- .../techdocs-cli-embedded-app/CHANGELOG.md | 10 + .../techdocs-cli-embedded-app/package.json | 2 +- packages/techdocs-cli/CHANGELOG.md | 8 + packages/techdocs-cli/package.json | 2 +- plugins/adr-backend/CHANGELOG.md | 8 + plugins/adr-backend/package.json | 2 +- plugins/adr/CHANGELOG.md | 8 + plugins/adr/package.json | 2 +- plugins/airbrake-backend/CHANGELOG.md | 8 + plugins/airbrake-backend/package.json | 2 +- plugins/airbrake/CHANGELOG.md | 8 + plugins/airbrake/package.json | 2 +- plugins/allure/CHANGELOG.md | 7 + plugins/allure/package.json | 2 +- plugins/api-docs/CHANGELOG.md | 8 + plugins/api-docs/package.json | 2 +- plugins/app-backend/CHANGELOG.md | 11 + plugins/app-backend/package.json | 2 +- plugins/app-node/CHANGELOG.md | 12 + plugins/app-node/package.json | 2 +- plugins/auth-backend/CHANGELOG.md | 10 + plugins/auth-backend/package.json | 2 +- plugins/auth-node/CHANGELOG.md | 7 + plugins/auth-node/package.json | 2 +- plugins/azure-devops-backend/CHANGELOG.md | 8 + plugins/azure-devops-backend/package.json | 2 +- plugins/azure-devops/CHANGELOG.md | 7 + plugins/azure-devops/package.json | 2 +- plugins/azure-sites-backend/CHANGELOG.md | 7 + plugins/azure-sites-backend/package.json | 2 +- plugins/azure-sites/CHANGELOG.md | 7 + plugins/azure-sites/package.json | 2 +- plugins/badges-backend/CHANGELOG.md | 9 + plugins/badges-backend/package.json | 2 +- plugins/badges/CHANGELOG.md | 7 + plugins/badges/package.json | 2 +- plugins/bazaar-backend/CHANGELOG.md | 9 + plugins/bazaar-backend/package.json | 2 +- plugins/bazaar/CHANGELOG.md | 9 + plugins/bazaar/package.json | 2 +- plugins/bitrise/CHANGELOG.md | 7 + plugins/bitrise/package.json | 2 +- .../catalog-backend-module-aws/CHANGELOG.md | 10 + .../catalog-backend-module-aws/package.json | 2 +- .../catalog-backend-module-azure/CHANGELOG.md | 10 + .../catalog-backend-module-azure/package.json | 2 +- .../CHANGELOG.md | 11 + .../package.json | 2 +- .../CHANGELOG.md | 10 + .../package.json | 2 +- .../CHANGELOG.md | 8 + .../package.json | 2 +- .../catalog-backend-module-gcp/CHANGELOG.md | 10 + .../catalog-backend-module-gcp/package.json | 2 +- .../CHANGELOG.md | 10 + .../package.json | 2 +- .../CHANGELOG.md | 12 + .../package.json | 2 +- .../CHANGELOG.md | 11 + .../package.json | 2 +- .../CHANGELOG.md | 12 + .../package.json | 2 +- .../catalog-backend-module-ldap/CHANGELOG.md | 8 + .../catalog-backend-module-ldap/package.json | 2 +- .../CHANGELOG.md | 10 + .../package.json | 2 +- .../CHANGELOG.md | 9 + .../package.json | 2 +- .../CHANGELOG.md | 10 + .../package.json | 2 +- .../CHANGELOG.md | 8 + .../package.json | 2 +- plugins/catalog-backend/CHANGELOG.md | 18 + plugins/catalog-backend/package.json | 2 +- plugins/catalog-customized/CHANGELOG.md | 8 + plugins/catalog-customized/package.json | 2 +- plugins/catalog-graph/CHANGELOG.md | 8 + plugins/catalog-graph/package.json | 2 +- plugins/catalog-import/CHANGELOG.md | 8 + plugins/catalog-import/package.json | 2 +- plugins/catalog-node/CHANGELOG.md | 7 + plugins/catalog-node/package.json | 2 +- plugins/catalog-react/CHANGELOG.md | 6 + plugins/catalog-react/package.json | 2 +- plugins/catalog/CHANGELOG.md | 8 + plugins/catalog/package.json | 2 +- .../CHANGELOG.md | 7 + .../package.json | 2 +- plugins/cicd-statistics/CHANGELOG.md | 7 + plugins/cicd-statistics/package.json | 2 +- plugins/circleci/CHANGELOG.md | 7 + plugins/circleci/package.json | 2 +- plugins/cloudbuild/CHANGELOG.md | 7 + plugins/cloudbuild/package.json | 2 +- plugins/code-climate/CHANGELOG.md | 7 + plugins/code-climate/package.json | 2 +- plugins/code-coverage-backend/CHANGELOG.md | 7 + plugins/code-coverage-backend/package.json | 2 +- plugins/code-coverage/CHANGELOG.md | 7 + plugins/code-coverage/package.json | 2 +- plugins/cost-insights/CHANGELOG.md | 7 + plugins/cost-insights/package.json | 2 +- plugins/devtools-backend/CHANGELOG.md | 11 + plugins/devtools-backend/package.json | 2 +- plugins/dynatrace/CHANGELOG.md | 7 + plugins/dynatrace/package.json | 2 +- plugins/entity-feedback-backend/CHANGELOG.md | 9 + plugins/entity-feedback-backend/package.json | 2 +- plugins/entity-feedback/CHANGELOG.md | 7 + plugins/entity-feedback/package.json | 2 +- plugins/entity-validation/CHANGELOG.md | 7 + plugins/entity-validation/package.json | 2 +- .../CHANGELOG.md | 10 + .../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 | 8 + .../events-backend-module-github/package.json | 2 +- .../events-backend-module-gitlab/CHANGELOG.md | 8 + .../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 | 9 + plugins/events-backend/package.json | 2 +- plugins/events-node/CHANGELOG.md | 7 + plugins/events-node/package.json | 2 +- .../example-todo-list-backend/CHANGELOG.md | 9 + .../example-todo-list-backend/package.json | 2 +- plugins/explore-backend/CHANGELOG.md | 9 + plugins/explore-backend/package.json | 2 +- plugins/explore/CHANGELOG.md | 8 + plugins/explore/package.json | 2 +- plugins/firehydrant/CHANGELOG.md | 7 + plugins/firehydrant/package.json | 2 +- plugins/fossa/CHANGELOG.md | 7 + plugins/fossa/package.json | 2 +- plugins/github-actions/CHANGELOG.md | 8 + plugins/github-actions/package.json | 2 +- plugins/github-deployments/CHANGELOG.md | 8 + plugins/github-deployments/package.json | 2 +- plugins/github-issues/CHANGELOG.md | 7 + plugins/github-issues/package.json | 2 +- .../github-pull-requests-board/CHANGELOG.md | 7 + .../github-pull-requests-board/package.json | 2 +- plugins/gocd/CHANGELOG.md | 7 + plugins/gocd/package.json | 2 +- plugins/graphql-backend/CHANGELOG.md | 7 + plugins/graphql-backend/package.json | 2 +- plugins/graphql-voyager/CHANGELOG.md | 6 + plugins/graphql-voyager/package.json | 2 +- plugins/home/CHANGELOG.md | 8 + plugins/home/package.json | 2 +- plugins/ilert/CHANGELOG.md | 7 + plugins/ilert/package.json | 2 +- plugins/jenkins-backend/CHANGELOG.md | 9 + plugins/jenkins-backend/package.json | 2 +- plugins/jenkins/CHANGELOG.md | 7 + plugins/jenkins/package.json | 2 +- plugins/kafka-backend/CHANGELOG.md | 8 + plugins/kafka-backend/package.json | 2 +- plugins/kafka/CHANGELOG.md | 7 + plugins/kafka/package.json | 2 +- plugins/kubernetes-backend/CHANGELOG.md | 11 + plugins/kubernetes-backend/package.json | 2 +- plugins/kubernetes/CHANGELOG.md | 7 + plugins/kubernetes/package.json | 2 +- plugins/lighthouse-backend/CHANGELOG.md | 10 + plugins/lighthouse-backend/package.json | 2 +- plugins/lighthouse/CHANGELOG.md | 7 + plugins/lighthouse/package.json | 2 +- plugins/linguist-backend/CHANGELOG.md | 16 + plugins/linguist-backend/package.json | 2 +- plugins/linguist-common/CHANGELOG.md | 6 + plugins/linguist-common/package.json | 2 +- plugins/linguist/CHANGELOG.md | 8 + plugins/linguist/package.json | 2 +- plugins/newrelic-dashboard/CHANGELOG.md | 7 + plugins/newrelic-dashboard/package.json | 2 +- plugins/nomad-backend/CHANGELOG.md | 7 + plugins/nomad-backend/package.json | 2 +- plugins/nomad/CHANGELOG.md | 7 + plugins/nomad/package.json | 2 +- plugins/octopus-deploy/CHANGELOG.md | 7 + plugins/octopus-deploy/package.json | 2 +- plugins/org-react/CHANGELOG.md | 7 + plugins/org-react/package.json | 2 +- plugins/org/CHANGELOG.md | 7 + plugins/org/package.json | 2 +- plugins/pagerduty/CHANGELOG.md | 8 + plugins/pagerduty/package.json | 2 +- plugins/periskop-backend/CHANGELOG.md | 8 + plugins/periskop-backend/package.json | 2 +- plugins/periskop/CHANGELOG.md | 7 + plugins/periskop/package.json | 2 +- plugins/permission-backend/CHANGELOG.md | 10 + plugins/permission-backend/package.json | 2 +- plugins/permission-node/CHANGELOG.md | 9 + plugins/permission-node/package.json | 2 +- plugins/playlist-backend/CHANGELOG.md | 9 + plugins/playlist-backend/package.json | 2 +- plugins/playlist/CHANGELOG.md | 7 + plugins/playlist/package.json | 2 +- plugins/proxy-backend/CHANGELOG.md | 12 + plugins/proxy-backend/package.json | 2 +- plugins/puppetdb/CHANGELOG.md | 7 + plugins/puppetdb/package.json | 2 +- plugins/rollbar-backend/CHANGELOG.md | 7 + plugins/rollbar-backend/package.json | 2 +- plugins/rollbar/CHANGELOG.md | 7 + plugins/rollbar/package.json | 2 +- .../CHANGELOG.md | 8 + .../package.json | 2 +- .../CHANGELOG.md | 8 + .../package.json | 2 +- .../CHANGELOG.md | 7 + .../package.json | 2 +- .../CHANGELOG.md | 8 + .../package.json | 2 +- .../CHANGELOG.md | 7 + .../package.json | 2 +- .../CHANGELOG.md | 7 + .../package.json | 2 +- plugins/scaffolder-backend/CHANGELOG.md | 16 + plugins/scaffolder-backend/package.json | 2 +- plugins/scaffolder-node/CHANGELOG.md | 9 + plugins/scaffolder-node/package.json | 2 +- plugins/scaffolder-react/CHANGELOG.md | 7 + plugins/scaffolder-react/package.json | 2 +- plugins/scaffolder/CHANGELOG.md | 9 + plugins/scaffolder/package.json | 2 +- .../CHANGELOG.md | 12 + .../package.json | 2 +- .../CHANGELOG.md | 9 + .../package.json | 2 +- .../CHANGELOG.md | 11 + .../package.json | 2 +- plugins/search-backend-module-pg/CHANGELOG.md | 9 + plugins/search-backend-module-pg/package.json | 2 +- .../CHANGELOG.md | 13 + .../package.json | 2 +- plugins/search-backend-node/CHANGELOG.md | 9 + plugins/search-backend-node/package.json | 2 +- plugins/search-backend/CHANGELOG.md | 11 + plugins/search-backend/package.json | 2 +- plugins/search/CHANGELOG.md | 7 + plugins/search/package.json | 2 +- plugins/sentry/CHANGELOG.md | 7 + plugins/sentry/package.json | 2 +- plugins/sonarqube-backend/CHANGELOG.md | 7 + plugins/sonarqube-backend/package.json | 2 +- plugins/sonarqube/CHANGELOG.md | 7 + plugins/sonarqube/package.json | 2 +- plugins/splunk-on-call/CHANGELOG.md | 7 + plugins/splunk-on-call/package.json | 2 +- plugins/stack-overflow-backend/CHANGELOG.md | 7 + plugins/stack-overflow-backend/package.json | 2 +- .../CHANGELOG.md | 8 + .../package.json | 2 +- plugins/tech-insights-backend/CHANGELOG.md | 9 + plugins/tech-insights-backend/package.json | 2 +- plugins/tech-insights-node/CHANGELOG.md | 8 + plugins/tech-insights-node/package.json | 2 +- plugins/tech-insights/CHANGELOG.md | 7 + plugins/tech-insights/package.json | 2 +- .../techdocs-addons-test-utils/CHANGELOG.md | 9 + .../techdocs-addons-test-utils/package.json | 2 +- plugins/techdocs-backend/CHANGELOG.md | 10 + plugins/techdocs-backend/package.json | 2 +- plugins/techdocs-node/CHANGELOG.md | 7 + plugins/techdocs-node/package.json | 2 +- plugins/techdocs/CHANGELOG.md | 8 + plugins/techdocs/package.json | 2 +- plugins/todo-backend/CHANGELOG.md | 9 + plugins/todo-backend/package.json | 2 +- plugins/todo/CHANGELOG.md | 7 + plugins/todo/package.json | 2 +- plugins/user-settings-backend/CHANGELOG.md | 9 + plugins/user-settings-backend/package.json | 2 +- plugins/user-settings/CHANGELOG.md | 7 + plugins/user-settings/package.json | 2 +- plugins/vault-backend/CHANGELOG.md | 8 + plugins/vault-backend/package.json | 2 +- plugins/vault/CHANGELOG.md | 7 + plugins/vault/package.json | 2 +- 316 files changed, 3046 insertions(+), 158 deletions(-) create mode 100644 .changeset/create-app-1691503547.md create mode 100644 docs/releases/v1.17.0-next.2-changelog.md create mode 100644 plugins/app-node/CHANGELOG.md diff --git a/.changeset/create-app-1691503547.md b/.changeset/create-app-1691503547.md new file mode 100644 index 0000000000..b50d431d4b --- /dev/null +++ b/.changeset/create-app-1691503547.md @@ -0,0 +1,5 @@ +--- +'@backstage/create-app': patch +--- + +Bumped create-app version. diff --git a/.changeset/pre.json b/.changeset/pre.json index 605f1ea771..64c8890ee2 100644 --- a/.changeset/pre.json +++ b/.changeset/pre.json @@ -230,26 +230,39 @@ "@backstage/plugin-vault-backend": "0.3.3", "@backstage/plugin-xcmetrics": "0.2.40", "@backstage/plugin-analytics-module-newrelic-browser": "0.0.0", - "@backstage/plugin-catalog-backend-module-gcp": "0.0.0" + "@backstage/plugin-catalog-backend-module-gcp": "0.0.0", + "@backstage/plugin-app-node": "0.0.0" }, "changesets": [ "analytics-millenial-whoop", "angry-beers-relate", + "beige-files-reflect", + "brown-taxis-develop", "chatty-foxes-buy", "chatty-seahorses-juggle", "chilly-keys-count", "cold-numbers-sleep", "create-app-1690284535", "create-app-1690892926", + "create-app-1691503547", + "cuddly-colts-repeat", "dirty-chefs-listen", + "fluffy-pens-prove", + "funny-dancers-deliver", + "gold-steaks-thank", "gorgeous-months-doubt", + "hot-cats-rush", "hungry-shrimps-care", "khaki-flies-draw", "kind-cougars-allow", + "large-badgers-switch", "large-experts-poke", "large-vans-cross", + "lazy-pugs-wash", + "little-penguins-build", "loud-garlics-press", "mean-squids-relax", + "metal-buttons-search", "mighty-lions-search-2", "mighty-lions-search-3", "mighty-lions-search", @@ -261,21 +274,31 @@ "quiet-starfishes-kick", "rare-pens-exist", "rich-zoos-occur", + "rotten-dolls-sing", + "rotten-rabbits-move", "rude-feet-sparkle", "search-donuts-wash", "selfish-coats-shout", "serious-bats-repair", + "serious-papayas-shout", + "serious-singers-vanish", + "seven-cougars-smash", + "sharp-months-think", "slimy-kids-jam", "smart-pandas-applaud", + "sour-hats-kick", "stale-wombats-talk", + "strange-shrimps-mix", "strong-bobcats-unite", "stupid-berries-run", + "ten-lies-cheat", "ten-otters-appear", "tender-fireants-cheer", "thin-yaks-hang", "tidy-cobras-scream", "tough-dolphins-care", "tough-lies-float", + "unlucky-bags-pump", "wild-timers-sparkle" ] } diff --git a/docs/releases/v1.17.0-next.2-changelog.md b/docs/releases/v1.17.0-next.2-changelog.md new file mode 100644 index 0000000000..d1da6fa2be --- /dev/null +++ b/docs/releases/v1.17.0-next.2-changelog.md @@ -0,0 +1,1430 @@ +# Release v1.17.0-next.2 + +## @backstage/plugin-app-node@0.1.0-next.0 + +### Minor Changes + +- 9fbe95ef6503: Added the `app` plugin node library, initially providing an extension point that can be used to configure a static fallback handler. + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.0-next.2 + +## @backstage/plugin-catalog-backend@1.12.0-next.2 + +### Minor Changes + +- b8cccd8ee858: Support configuring applicable kinds for `AnnotateScmSlugEntityProcessor` + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-search-backend-module-catalog@0.1.4-next.2 + - @backstage/backend-plugin-api@0.6.0-next.2 + - @backstage/backend-tasks@0.5.5-next.2 + - @backstage/backend-common@0.19.2-next.2 + - @backstage/plugin-catalog-node@1.4.1-next.2 + - @backstage/plugin-events-node@0.2.9-next.2 + - @backstage/plugin-permission-node@0.7.11-next.2 + - @backstage/plugin-auth-node@0.2.17-next.2 + +## @backstage/plugin-linguist-backend@0.4.0-next.2 + +### Minor Changes + +- d440f1dd0e72: Adds a processor to the linguist backend which can automatically add language tags to entities + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-linguist-common@0.1.1-next.1 + - @backstage/backend-plugin-api@0.6.0-next.2 + - @backstage/backend-tasks@0.5.5-next.2 + - @backstage/backend-common@0.19.2-next.2 + - @backstage/plugin-catalog-node@1.4.1-next.2 + - @backstage/plugin-auth-node@0.2.17-next.2 + +## @backstage/plugin-proxy-backend@0.3.0-next.2 + +### Minor Changes + +- 7daf65bfcfa1: Defining proxy endpoints directly under the root `proxy` configuration key is deprecated. Endpoints should now be declared under `proxy.endpoints` instead. The `skipInvalidProxies` and `reviveConsumedRequestBodies` can now also be configured through static configuration. + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.0-next.2 + - @backstage/backend-common@0.19.2-next.2 + +## @backstage/backend-app-api@0.5.0-next.2 + +### Patch Changes + +- e65c4896f755: Do not throw in backend.stop, if start failed +- cc9256a33bcc: Added new experimental `featureDiscoveryServiceFactory`, available as an `/alpha` export. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.0-next.2 + - @backstage/backend-tasks@0.5.5-next.2 + - @backstage/backend-common@0.19.2-next.2 + - @backstage/plugin-permission-node@0.7.11-next.2 + - @backstage/plugin-auth-node@0.2.17-next.2 + - @backstage/config-loader@1.4.0-next.1 + +## @backstage/backend-common@0.19.2-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-app-api@0.5.0-next.2 + - @backstage/backend-plugin-api@0.6.0-next.2 + - @backstage/config-loader@1.4.0-next.1 + +## @backstage/backend-defaults@0.2.0-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-app-api@0.5.0-next.2 + - @backstage/backend-plugin-api@0.6.0-next.2 + - @backstage/backend-common@0.19.2-next.2 + +## @backstage/backend-plugin-api@0.6.0-next.2 + +### Patch Changes + +- cc9256a33bcc: Added new experimental `featureDiscoveryServiceRef`, available as an `/alpha` export. +- Updated dependencies + - @backstage/backend-tasks@0.5.5-next.2 + - @backstage/plugin-auth-node@0.2.17-next.2 + +## @backstage/backend-tasks@0.5.5-next.2 + +### Patch Changes + +- dfd1b6b2fc33: Make `readTaskScheduleDefinitionFromConfig` properly handle bad inputs +- Updated dependencies + - @backstage/backend-common@0.19.2-next.2 + +## @backstage/backend-test-utils@0.2.0-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-app-api@0.5.0-next.2 + - @backstage/backend-plugin-api@0.6.0-next.2 + - @backstage/backend-common@0.19.2-next.2 + - @backstage/plugin-auth-node@0.2.17-next.2 + +## @backstage/create-app@0.5.4-next.2 + +### Patch Changes + +- Bumped create-app version. + +## @backstage/dev-utils@1.0.18-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.8.1-next.1 + - @backstage/integration-react@1.1.16-next.1 + +## @techdocs/cli@1.4.5-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.2-next.2 + - @backstage/plugin-techdocs-node@1.7.4-next.2 + +## @backstage/plugin-adr@0.6.4-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.8.1-next.1 + - @backstage/integration-react@1.1.16-next.1 + +## @backstage/plugin-adr-backend@0.3.6-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.0-next.2 + - @backstage/backend-common@0.19.2-next.2 + +## @backstage/plugin-airbrake@0.3.21-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.8.1-next.1 + - @backstage/dev-utils@1.0.18-next.2 + +## @backstage/plugin-airbrake-backend@0.2.21-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.0-next.2 + - @backstage/backend-common@0.19.2-next.2 + +## @backstage/plugin-allure@0.1.37-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.8.1-next.1 + +## @backstage/plugin-api-docs@0.9.7-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.8.1-next.1 + - @backstage/plugin-catalog@1.12.1-next.2 + +## @backstage/plugin-app-backend@0.3.48-next.2 + +### Patch Changes + +- d564ad142b17: Migrated the alpha `appBackend` export to use static configuration and extension points rather than accepting options. +- Updated dependencies + - @backstage/plugin-app-node@0.1.0-next.0 + - @backstage/backend-plugin-api@0.6.0-next.2 + - @backstage/backend-common@0.19.2-next.2 + - @backstage/config-loader@1.4.0-next.1 + +## @backstage/plugin-auth-backend@0.18.6-next.2 + +### Patch Changes + +- 16452cd007ae: Updated `frameHandler` to return `undefined` when using the redirect flow instead of returning `postMessageReponse` which was causing errors +- bb70a9c3886a: Add frontend visibility to provider objects in `auth` config. +- Updated dependencies + - @backstage/backend-common@0.19.2-next.2 + - @backstage/plugin-auth-node@0.2.17-next.2 + +## @backstage/plugin-auth-node@0.2.17-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.2-next.2 + +## @backstage/plugin-azure-devops@0.3.3-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.8.1-next.1 + +## @backstage/plugin-azure-devops-backend@0.3.27-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.0-next.2 + - @backstage/backend-common@0.19.2-next.2 + +## @backstage/plugin-azure-sites@0.1.10-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.8.1-next.1 + +## @backstage/plugin-azure-sites-backend@0.1.10-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.2-next.2 + +## @backstage/plugin-badges@0.2.45-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.8.1-next.1 + +## @backstage/plugin-badges-backend@0.2.3-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.0-next.2 + - @backstage/backend-common@0.19.2-next.2 + - @backstage/plugin-auth-node@0.2.17-next.2 + +## @backstage/plugin-bazaar@0.2.12-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.8.1-next.1 + - @backstage/plugin-catalog@1.12.1-next.2 + - @backstage/cli@0.22.10-next.1 + +## @backstage/plugin-bazaar-backend@0.2.11-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.0-next.2 + - @backstage/backend-common@0.19.2-next.2 + - @backstage/plugin-auth-node@0.2.17-next.2 + +## @backstage/plugin-bitrise@0.1.48-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.8.1-next.1 + +## @backstage/plugin-catalog@1.12.1-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.8.1-next.1 + - @backstage/integration-react@1.1.16-next.1 + +## @backstage/plugin-catalog-backend-module-aws@0.2.3-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.0-next.2 + - @backstage/backend-tasks@0.5.5-next.2 + - @backstage/backend-common@0.19.2-next.2 + - @backstage/plugin-catalog-node@1.4.1-next.2 + +## @backstage/plugin-catalog-backend-module-azure@0.1.19-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.0-next.2 + - @backstage/backend-tasks@0.5.5-next.2 + - @backstage/backend-common@0.19.2-next.2 + - @backstage/plugin-catalog-node@1.4.1-next.2 + +## @backstage/plugin-catalog-backend-module-bitbucket@0.2.15-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.2-next.2 + - @backstage/plugin-catalog-node@1.4.1-next.2 + +## @backstage/plugin-catalog-backend-module-bitbucket-cloud@0.1.15-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.0-next.2 + - @backstage/backend-tasks@0.5.5-next.2 + - @backstage/backend-common@0.19.2-next.2 + - @backstage/plugin-catalog-node@1.4.1-next.2 + - @backstage/plugin-events-node@0.2.9-next.2 + +## @backstage/plugin-catalog-backend-module-bitbucket-server@0.1.13-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.0-next.2 + - @backstage/backend-tasks@0.5.5-next.2 + - @backstage/backend-common@0.19.2-next.2 + - @backstage/plugin-catalog-node@1.4.1-next.2 + +## @backstage/plugin-catalog-backend-module-gcp@0.1.0-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.0-next.2 + - @backstage/backend-tasks@0.5.5-next.2 + - @backstage/backend-common@0.19.2-next.2 + - @backstage/plugin-catalog-node@1.4.1-next.2 + +## @backstage/plugin-catalog-backend-module-gerrit@0.1.16-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.0-next.2 + - @backstage/backend-tasks@0.5.5-next.2 + - @backstage/backend-common@0.19.2-next.2 + - @backstage/plugin-catalog-node@1.4.1-next.2 + +## @backstage/plugin-catalog-backend-module-github@0.3.3-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-backend@1.12.0-next.2 + - @backstage/backend-plugin-api@0.6.0-next.2 + - @backstage/backend-tasks@0.5.5-next.2 + - @backstage/backend-common@0.19.2-next.2 + - @backstage/plugin-catalog-node@1.4.1-next.2 + - @backstage/plugin-events-node@0.2.9-next.2 + +## @backstage/plugin-catalog-backend-module-gitlab@0.2.4-next.2 + +### Patch Changes + +- 2fe1f5973ff7: Filter Gitlab archived projects through APIs +- Updated dependencies + - @backstage/backend-plugin-api@0.6.0-next.2 + - @backstage/backend-tasks@0.5.5-next.2 + - @backstage/backend-common@0.19.2-next.2 + - @backstage/plugin-catalog-node@1.4.1-next.2 + +## @backstage/plugin-catalog-backend-module-incremental-ingestion@0.4.1-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-backend@1.12.0-next.2 + - @backstage/backend-plugin-api@0.6.0-next.2 + - @backstage/backend-tasks@0.5.5-next.2 + - @backstage/backend-common@0.19.2-next.2 + - @backstage/plugin-catalog-node@1.4.1-next.2 + - @backstage/plugin-events-node@0.2.9-next.2 + +## @backstage/plugin-catalog-backend-module-ldap@0.5.15-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-tasks@0.5.5-next.2 + - @backstage/plugin-catalog-node@1.4.1-next.2 + +## @backstage/plugin-catalog-backend-module-msgraph@0.5.7-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.0-next.2 + - @backstage/backend-tasks@0.5.5-next.2 + - @backstage/backend-common@0.19.2-next.2 + - @backstage/plugin-catalog-node@1.4.1-next.2 + +## @backstage/plugin-catalog-backend-module-openapi@0.1.14-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-backend@1.12.0-next.2 + - @backstage/backend-common@0.19.2-next.2 + - @backstage/plugin-catalog-node@1.4.1-next.2 + +## @backstage/plugin-catalog-backend-module-puppetdb@0.1.5-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.0-next.2 + - @backstage/backend-tasks@0.5.5-next.2 + - @backstage/backend-common@0.19.2-next.2 + - @backstage/plugin-catalog-node@1.4.1-next.2 + +## @backstage/plugin-catalog-backend-module-unprocessed@0.2.0-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.0-next.2 + - @backstage/plugin-auth-node@0.2.17-next.2 + +## @backstage/plugin-catalog-graph@0.2.33-next.2 + +### Patch Changes + +- 62dc7a2b1ad1: Added maximum depth parameter to the catalogGraphParams in CatalogGraphCard. +- Updated dependencies + - @backstage/plugin-catalog-react@1.8.1-next.1 + +## @backstage/plugin-catalog-import@0.9.11-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.8.1-next.1 + - @backstage/integration-react@1.1.16-next.1 + +## @backstage/plugin-catalog-node@1.4.1-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.0-next.2 + +## @backstage/plugin-catalog-react@1.8.1-next.1 + +### Patch Changes + +- aa3feedce10a: Allow specifying screen size when catalog filters are hidden in drawer + +## @backstage/plugin-cicd-statistics@0.1.23-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.8.1-next.1 + +## @backstage/plugin-cicd-statistics-module-gitlab@0.1.17-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-cicd-statistics@0.1.23-next.1 + +## @backstage/plugin-circleci@0.3.21-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.8.1-next.1 + +## @backstage/plugin-cloudbuild@0.3.21-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.8.1-next.1 + +## @backstage/plugin-code-climate@0.1.21-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.8.1-next.1 + +## @backstage/plugin-code-coverage@0.2.14-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.8.1-next.1 + +## @backstage/plugin-code-coverage-backend@0.2.14-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.2-next.2 + +## @backstage/plugin-cost-insights@0.12.10-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.8.1-next.1 + +## @backstage/plugin-devtools-backend@0.1.3-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.0-next.2 + - @backstage/backend-common@0.19.2-next.2 + - @backstage/plugin-permission-node@0.7.11-next.2 + - @backstage/plugin-auth-node@0.2.17-next.2 + - @backstage/config-loader@1.4.0-next.1 + +## @backstage/plugin-dynatrace@7.0.1-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.8.1-next.1 + +## @backstage/plugin-entity-feedback@0.2.4-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.8.1-next.1 + +## @backstage/plugin-entity-feedback-backend@0.1.6-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.0-next.2 + - @backstage/backend-common@0.19.2-next.2 + - @backstage/plugin-auth-node@0.2.17-next.2 + +## @backstage/plugin-entity-validation@0.1.6-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.8.1-next.1 + +## @backstage/plugin-events-backend@0.2.9-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.0-next.2 + - @backstage/backend-common@0.19.2-next.2 + - @backstage/plugin-events-node@0.2.9-next.2 + +## @backstage/plugin-events-backend-module-aws-sqs@0.2.3-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.0-next.2 + - @backstage/backend-tasks@0.5.5-next.2 + - @backstage/backend-common@0.19.2-next.2 + - @backstage/plugin-events-node@0.2.9-next.2 + +## @backstage/plugin-events-backend-module-azure@0.1.10-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.0-next.2 + - @backstage/plugin-events-node@0.2.9-next.2 + +## @backstage/plugin-events-backend-module-bitbucket-cloud@0.1.10-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.0-next.2 + - @backstage/plugin-events-node@0.2.9-next.2 + +## @backstage/plugin-events-backend-module-gerrit@0.1.10-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.0-next.2 + - @backstage/plugin-events-node@0.2.9-next.2 + +## @backstage/plugin-events-backend-module-github@0.1.10-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.0-next.2 + - @backstage/plugin-events-node@0.2.9-next.2 + +## @backstage/plugin-events-backend-module-gitlab@0.1.10-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.0-next.2 + - @backstage/plugin-events-node@0.2.9-next.2 + +## @backstage/plugin-events-backend-test-utils@0.1.10-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-events-node@0.2.9-next.2 + +## @backstage/plugin-events-node@0.2.9-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.0-next.2 + +## @backstage/plugin-explore@0.4.7-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.8.1-next.1 + - @backstage/plugin-explore-react@0.0.30 + +## @backstage/plugin-explore-backend@0.0.10-next.2 + +### Patch Changes + +- eda2a699f40d: Moved the config example from the "Tools as Code" section to the "Tools as Config" section of the README +- Updated dependencies + - @backstage/plugin-search-backend-module-explore@0.1.4-next.2 + - @backstage/backend-common@0.19.2-next.2 + +## @backstage/plugin-firehydrant@0.2.5-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.8.1-next.1 + +## @backstage/plugin-fossa@0.2.53-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.8.1-next.1 + +## @backstage/plugin-github-actions@0.6.2-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.8.1-next.1 + - @backstage/integration-react@1.1.16-next.1 + +## @backstage/plugin-github-deployments@0.1.52-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.8.1-next.1 + - @backstage/integration-react@1.1.16-next.1 + +## @backstage/plugin-github-issues@0.2.10-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.8.1-next.1 + +## @backstage/plugin-github-pull-requests-board@0.1.15-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.8.1-next.1 + +## @backstage/plugin-gocd@0.1.27-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.8.1-next.1 + +## @backstage/plugin-graphql-backend@0.1.38-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.2-next.2 + +## @backstage/plugin-graphql-voyager@0.1.6-next.2 + +### Patch Changes + +- bb1e1c2b26cc: Fix typo in install instructions. + +## @backstage/plugin-home@0.5.5-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.8.1-next.1 + - @backstage/plugin-home-react@0.1.2-next.0 + +## @backstage/plugin-ilert@0.2.10-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.8.1-next.1 + +## @backstage/plugin-jenkins@0.8.3-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.8.1-next.1 + +## @backstage/plugin-jenkins-backend@0.2.3-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.2-next.2 + - @backstage/plugin-permission-node@0.7.11-next.2 + - @backstage/plugin-auth-node@0.2.17-next.2 + +## @backstage/plugin-kafka@0.3.21-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.8.1-next.1 + +## @backstage/plugin-kafka-backend@0.2.41-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.0-next.2 + - @backstage/backend-common@0.19.2-next.2 + +## @backstage/plugin-kubernetes@0.9.4-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.8.1-next.1 + +## @backstage/plugin-kubernetes-backend@0.11.3-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.0-next.2 + - @backstage/backend-common@0.19.2-next.2 + - @backstage/plugin-catalog-node@1.4.1-next.2 + - @backstage/plugin-permission-node@0.7.11-next.2 + - @backstage/plugin-auth-node@0.2.17-next.2 + +## @backstage/plugin-lighthouse@0.4.6-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.8.1-next.1 + +## @backstage/plugin-lighthouse-backend@0.2.4-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.0-next.2 + - @backstage/backend-tasks@0.5.5-next.2 + - @backstage/backend-common@0.19.2-next.2 + - @backstage/plugin-catalog-node@1.4.1-next.2 + +## @backstage/plugin-linguist@0.1.6-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-linguist-common@0.1.1-next.1 + - @backstage/plugin-catalog-react@1.8.1-next.1 + +## @backstage/plugin-linguist-common@0.1.1-next.1 + +### Patch Changes + +- d440f1dd0e72: Exported new LanguageType type alias + +## @backstage/plugin-newrelic-dashboard@0.2.14-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.8.1-next.1 + +## @backstage/plugin-nomad@0.1.2-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.8.1-next.1 + +## @backstage/plugin-nomad-backend@0.1.2-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.2-next.2 + +## @backstage/plugin-octopus-deploy@0.2.3-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.8.1-next.1 + +## @backstage/plugin-org@0.6.11-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.8.1-next.1 + +## @backstage/plugin-org-react@0.1.10-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.8.1-next.1 + +## @backstage/plugin-pagerduty@0.6.2-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.8.1-next.1 + - @backstage/plugin-home-react@0.1.2-next.0 + +## @backstage/plugin-periskop@0.1.19-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.8.1-next.1 + +## @backstage/plugin-periskop-backend@0.1.19-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.0-next.2 + - @backstage/backend-common@0.19.2-next.2 + +## @backstage/plugin-permission-backend@0.5.23-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.0-next.2 + - @backstage/backend-common@0.19.2-next.2 + - @backstage/plugin-permission-node@0.7.11-next.2 + - @backstage/plugin-auth-node@0.2.17-next.2 + +## @backstage/plugin-permission-node@0.7.11-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.0-next.2 + - @backstage/backend-common@0.19.2-next.2 + - @backstage/plugin-auth-node@0.2.17-next.2 + +## @backstage/plugin-playlist@0.1.13-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.8.1-next.1 + +## @backstage/plugin-playlist-backend@0.3.4-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.2-next.2 + - @backstage/plugin-permission-node@0.7.11-next.2 + - @backstage/plugin-auth-node@0.2.17-next.2 + +## @backstage/plugin-puppetdb@0.1.4-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.8.1-next.1 + +## @backstage/plugin-rollbar@0.4.21-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.8.1-next.1 + +## @backstage/plugin-rollbar-backend@0.1.45-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.2-next.2 + +## @backstage/plugin-scaffolder@1.14.2-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.8.1-next.1 + - @backstage/plugin-scaffolder-react@1.5.2-next.1 + - @backstage/integration-react@1.1.16-next.1 + +## @backstage/plugin-scaffolder-backend@1.15.2-next.2 + +### Patch Changes + +- 33c76caef72a: Added examples for the fs:delete and fs:rename actions +- 0b1d775be05b: Adds examples to a few scaffolder actions. +- Updated dependencies + - @backstage/plugin-catalog-backend@1.12.0-next.2 + - @backstage/backend-plugin-api@0.6.0-next.2 + - @backstage/backend-tasks@0.5.5-next.2 + - @backstage/plugin-scaffolder-node@0.1.6-next.2 + - @backstage/backend-common@0.19.2-next.2 + - @backstage/plugin-catalog-node@1.4.1-next.2 + - @backstage/plugin-permission-node@0.7.11-next.2 + - @backstage/plugin-auth-node@0.2.17-next.2 + +## @backstage/plugin-scaffolder-backend-module-confluence-to-markdown@0.2.1-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-scaffolder-node@0.1.6-next.2 + - @backstage/backend-common@0.19.2-next.2 + +## @backstage/plugin-scaffolder-backend-module-cookiecutter@0.2.24-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-scaffolder-node@0.1.6-next.2 + - @backstage/backend-common@0.19.2-next.2 + +## @backstage/plugin-scaffolder-backend-module-gitlab@0.2.3-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-scaffolder-node@0.1.6-next.2 + +## @backstage/plugin-scaffolder-backend-module-rails@0.4.17-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-scaffolder-node@0.1.6-next.2 + - @backstage/backend-common@0.19.2-next.2 + +## @backstage/plugin-scaffolder-backend-module-sentry@0.1.8-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-scaffolder-node@0.1.6-next.2 + +## @backstage/plugin-scaffolder-backend-module-yeoman@0.2.21-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-scaffolder-node@0.1.6-next.2 + +## @backstage/plugin-scaffolder-node@0.1.6-next.2 + +### Patch Changes + +- 0b1d775be05b: Export `TemplateExample` from the `createTemplateAction` type. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.0-next.2 + - @backstage/backend-common@0.19.2-next.2 + +## @backstage/plugin-scaffolder-react@1.5.2-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.8.1-next.1 + +## @backstage/plugin-search@1.3.4-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.8.1-next.1 + +## @backstage/plugin-search-backend@1.4.0-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.0-next.2 + - @backstage/backend-common@0.19.2-next.2 + - @backstage/plugin-permission-node@0.7.11-next.2 + - @backstage/plugin-search-backend-node@1.2.4-next.2 + - @backstage/plugin-auth-node@0.2.17-next.2 + +## @backstage/plugin-search-backend-module-catalog@0.1.4-next.2 + +### Patch Changes + +- 29f77f923c71: Ensure that all services are dependency injected into the module instead of taken from options +- Updated dependencies + - @backstage/backend-plugin-api@0.6.0-next.2 + - @backstage/backend-tasks@0.5.5-next.2 + - @backstage/backend-common@0.19.2-next.2 + - @backstage/plugin-catalog-node@1.4.1-next.2 + - @backstage/plugin-search-backend-node@1.2.4-next.2 + +## @backstage/plugin-search-backend-module-elasticsearch@1.3.3-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.0-next.2 + - @backstage/backend-common@0.19.2-next.2 + - @backstage/plugin-search-backend-node@1.2.4-next.2 + +## @backstage/plugin-search-backend-module-explore@0.1.4-next.2 + +### Patch Changes + +- 29f77f923c71: Ensure that all services are dependency injected into the module instead of taken from options +- Updated dependencies + - @backstage/backend-plugin-api@0.6.0-next.2 + - @backstage/backend-tasks@0.5.5-next.2 + - @backstage/backend-common@0.19.2-next.2 + - @backstage/plugin-search-backend-node@1.2.4-next.2 + +## @backstage/plugin-search-backend-module-pg@0.5.9-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.0-next.2 + - @backstage/backend-common@0.19.2-next.2 + - @backstage/plugin-search-backend-node@1.2.4-next.2 + +## @backstage/plugin-search-backend-module-techdocs@0.1.4-next.2 + +### Patch Changes + +- 29f77f923c71: Ensure that all services are dependency injected into the module instead of taken from options +- Updated dependencies + - @backstage/backend-plugin-api@0.6.0-next.2 + - @backstage/backend-tasks@0.5.5-next.2 + - @backstage/backend-common@0.19.2-next.2 + - @backstage/plugin-catalog-node@1.4.1-next.2 + - @backstage/plugin-search-backend-node@1.2.4-next.2 + - @backstage/plugin-techdocs-node@1.7.4-next.2 + +## @backstage/plugin-search-backend-node@1.2.4-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.0-next.2 + - @backstage/backend-tasks@0.5.5-next.2 + - @backstage/backend-common@0.19.2-next.2 + +## @backstage/plugin-sentry@0.5.6-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.8.1-next.1 + +## @backstage/plugin-sonarqube@0.7.2-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.8.1-next.1 + +## @backstage/plugin-sonarqube-backend@0.2.2-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.2-next.2 + +## @backstage/plugin-splunk-on-call@0.4.10-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.8.1-next.1 + +## @backstage/plugin-stack-overflow-backend@0.2.4-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.2-next.2 + +## @backstage/plugin-tech-insights@0.3.13-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.8.1-next.1 + +## @backstage/plugin-tech-insights-backend@0.5.14-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-tasks@0.5.5-next.2 + - @backstage/backend-common@0.19.2-next.2 + - @backstage/plugin-tech-insights-node@0.4.6-next.2 + +## @backstage/plugin-tech-insights-backend-module-jsonfc@0.1.32-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.2-next.2 + - @backstage/plugin-tech-insights-node@0.4.6-next.2 + +## @backstage/plugin-tech-insights-node@0.4.6-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-tasks@0.5.5-next.2 + - @backstage/backend-common@0.19.2-next.2 + +## @backstage/plugin-techdocs@1.6.6-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.8.1-next.1 + - @backstage/integration-react@1.1.16-next.1 + +## @backstage/plugin-techdocs-addons-test-utils@1.0.17-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog@1.12.1-next.2 + - @backstage/plugin-techdocs@1.6.6-next.2 + - @backstage/integration-react@1.1.16-next.1 + +## @backstage/plugin-techdocs-backend@1.6.5-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-search-backend-module-techdocs@0.1.4-next.2 + - @backstage/backend-plugin-api@0.6.0-next.2 + - @backstage/backend-common@0.19.2-next.2 + - @backstage/plugin-techdocs-node@1.7.4-next.2 + +## @backstage/plugin-techdocs-node@1.7.4-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.2-next.2 + +## @backstage/plugin-todo@0.2.23-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.8.1-next.1 + +## @backstage/plugin-todo-backend@0.2.0-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.0-next.2 + - @backstage/backend-common@0.19.2-next.2 + - @backstage/plugin-catalog-node@1.4.1-next.2 + +## @backstage/plugin-user-settings@0.7.6-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.8.1-next.1 + +## @backstage/plugin-user-settings-backend@0.1.12-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.0-next.2 + - @backstage/backend-common@0.19.2-next.2 + - @backstage/plugin-auth-node@0.2.17-next.2 + +## @backstage/plugin-vault@0.1.15-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.8.1-next.1 + +## @backstage/plugin-vault-backend@0.3.4-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-tasks@0.5.5-next.2 + - @backstage/backend-common@0.19.2-next.2 + +## example-app@0.2.86-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-graph@0.2.33-next.2 + - @backstage/plugin-linguist-common@0.1.1-next.1 + - @backstage/plugin-catalog-react@1.8.1-next.1 + - @backstage/plugin-linguist@0.1.6-next.2 + - @backstage/plugin-adr@0.6.4-next.2 + - @backstage/plugin-airbrake@0.3.21-next.2 + - @backstage/plugin-api-docs@0.9.7-next.2 + - @backstage/plugin-azure-devops@0.3.3-next.1 + - @backstage/plugin-azure-sites@0.1.10-next.1 + - @backstage/plugin-badges@0.2.45-next.1 + - @internal/plugin-catalog-customized@0.0.13-next.2 + - @backstage/plugin-catalog-import@0.9.11-next.2 + - @backstage/plugin-circleci@0.3.21-next.1 + - @backstage/plugin-cloudbuild@0.3.21-next.1 + - @backstage/plugin-code-coverage@0.2.14-next.2 + - @backstage/plugin-cost-insights@0.12.10-next.1 + - @backstage/plugin-dynatrace@7.0.1-next.2 + - @backstage/plugin-entity-feedback@0.2.4-next.2 + - @backstage/plugin-explore@0.4.7-next.1 + - @backstage/plugin-github-actions@0.6.2-next.2 + - @backstage/plugin-gocd@0.1.27-next.1 + - @backstage/plugin-home@0.5.5-next.1 + - @backstage/plugin-jenkins@0.8.3-next.2 + - @backstage/plugin-kafka@0.3.21-next.2 + - @backstage/plugin-kubernetes@0.9.4-next.1 + - @backstage/plugin-lighthouse@0.4.6-next.1 + - @backstage/plugin-newrelic-dashboard@0.2.14-next.2 + - @backstage/plugin-nomad@0.1.2-next.2 + - @backstage/plugin-octopus-deploy@0.2.3-next.2 + - @backstage/plugin-org@0.6.11-next.2 + - @backstage/plugin-pagerduty@0.6.2-next.1 + - @backstage/plugin-playlist@0.1.13-next.2 + - @backstage/plugin-puppetdb@0.1.4-next.1 + - @backstage/plugin-rollbar@0.4.21-next.1 + - @backstage/plugin-scaffolder@1.14.2-next.2 + - @backstage/plugin-scaffolder-react@1.5.2-next.1 + - @backstage/plugin-search@1.3.4-next.1 + - @backstage/plugin-sentry@0.5.6-next.1 + - @backstage/plugin-tech-insights@0.3.13-next.2 + - @backstage/plugin-techdocs@1.6.6-next.2 + - @backstage/plugin-todo@0.2.23-next.1 + - @backstage/plugin-user-settings@0.7.6-next.1 + - @backstage/cli@0.22.10-next.1 + - @backstage/integration-react@1.1.16-next.1 + - @backstage/plugin-apache-airflow@0.2.14-next.1 + - @backstage/plugin-catalog-unprocessed-entities@0.1.2-next.0 + - @backstage/plugin-devtools@0.1.3-next.1 + - @backstage/plugin-gcalendar@0.3.17-next.1 + - @backstage/plugin-gcp-projects@0.3.40-next.0 + - @backstage/plugin-graphiql@0.2.53-next.0 + - @backstage/plugin-microsoft-calendar@0.1.6-next.1 + - @backstage/plugin-newrelic@0.3.39-next.0 + - @backstage/plugin-shortcuts@0.3.13-next.1 + - @backstage/plugin-stack-overflow@0.1.19-next.1 + - @backstage/plugin-stackstorm@0.1.5-next.0 + - @backstage/plugin-tech-radar@0.6.7-next.0 + - @backstage/plugin-techdocs-module-addons-contrib@1.0.16-next.1 + +## example-backend@0.2.86-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-auth-backend@0.18.6-next.2 + - @backstage/plugin-scaffolder-backend@1.15.2-next.2 + - @backstage/plugin-explore-backend@0.0.10-next.2 + - @backstage/plugin-catalog-backend@1.12.0-next.2 + - @backstage/plugin-proxy-backend@0.3.0-next.2 + - @backstage/backend-tasks@0.5.5-next.2 + - @backstage/plugin-app-backend@0.3.48-next.2 + - @backstage/plugin-linguist-backend@0.4.0-next.2 + - @backstage/plugin-techdocs-backend@1.6.5-next.2 + - @backstage/backend-common@0.19.2-next.2 + - example-app@0.2.86-next.2 + - @backstage/plugin-adr-backend@0.3.6-next.2 + - @backstage/plugin-azure-devops-backend@0.3.27-next.2 + - @backstage/plugin-badges-backend@0.2.3-next.2 + - @backstage/plugin-catalog-backend-module-unprocessed@0.2.0-next.2 + - @backstage/plugin-catalog-node@1.4.1-next.2 + - @backstage/plugin-devtools-backend@0.1.3-next.2 + - @backstage/plugin-entity-feedback-backend@0.1.6-next.2 + - @backstage/plugin-events-backend@0.2.9-next.2 + - @backstage/plugin-events-node@0.2.9-next.2 + - @backstage/plugin-kafka-backend@0.2.41-next.2 + - @backstage/plugin-kubernetes-backend@0.11.3-next.2 + - @backstage/plugin-lighthouse-backend@0.2.4-next.2 + - @backstage/plugin-permission-backend@0.5.23-next.2 + - @backstage/plugin-permission-node@0.7.11-next.2 + - @backstage/plugin-search-backend@1.4.0-next.2 + - @backstage/plugin-search-backend-module-elasticsearch@1.3.3-next.2 + - @backstage/plugin-search-backend-module-pg@0.5.9-next.2 + - @backstage/plugin-search-backend-node@1.2.4-next.2 + - @backstage/plugin-todo-backend@0.2.0-next.2 + - @backstage/plugin-tech-insights-backend@0.5.14-next.2 + - @backstage/plugin-tech-insights-node@0.4.6-next.2 + - @backstage/plugin-scaffolder-backend-module-confluence-to-markdown@0.2.1-next.2 + - @backstage/plugin-scaffolder-backend-module-rails@0.4.17-next.2 + - @backstage/plugin-auth-node@0.2.17-next.2 + - @backstage/plugin-azure-sites-backend@0.1.10-next.2 + - @backstage/plugin-code-coverage-backend@0.2.14-next.2 + - @backstage/plugin-graphql-backend@0.1.38-next.2 + - @backstage/plugin-jenkins-backend@0.2.3-next.2 + - @backstage/plugin-nomad-backend@0.1.2-next.2 + - @backstage/plugin-playlist-backend@0.3.4-next.2 + - @backstage/plugin-rollbar-backend@0.1.45-next.2 + - @backstage/plugin-tech-insights-backend-module-jsonfc@0.1.32-next.2 + +## example-backend-next@0.0.14-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-search-backend-module-techdocs@0.1.4-next.2 + - @backstage/plugin-search-backend-module-catalog@0.1.4-next.2 + - @backstage/plugin-search-backend-module-explore@0.1.4-next.2 + - @backstage/plugin-scaffolder-backend@1.15.2-next.2 + - @backstage/plugin-catalog-backend@1.12.0-next.2 + - @backstage/backend-plugin-api@0.6.0-next.2 + - @backstage/plugin-proxy-backend@0.3.0-next.2 + - @backstage/backend-tasks@0.5.5-next.2 + - @backstage/plugin-app-backend@0.3.48-next.2 + - @backstage/plugin-linguist-backend@0.4.0-next.2 + - @backstage/plugin-techdocs-backend@1.6.5-next.2 + - @backstage/backend-defaults@0.2.0-next.2 + - @backstage/plugin-adr-backend@0.3.6-next.2 + - @backstage/plugin-azure-devops-backend@0.3.27-next.2 + - @backstage/plugin-badges-backend@0.2.3-next.2 + - @backstage/plugin-catalog-backend-module-unprocessed@0.2.0-next.2 + - @backstage/plugin-devtools-backend@0.1.3-next.2 + - @backstage/plugin-entity-feedback-backend@0.1.6-next.2 + - @backstage/plugin-kubernetes-backend@0.11.3-next.2 + - @backstage/plugin-lighthouse-backend@0.2.4-next.2 + - @backstage/plugin-permission-backend@0.5.23-next.2 + - @backstage/plugin-permission-node@0.7.11-next.2 + - @backstage/plugin-search-backend@1.4.0-next.2 + - @backstage/plugin-search-backend-node@1.2.4-next.2 + - @backstage/plugin-todo-backend@0.2.0-next.2 + - @backstage/plugin-auth-node@0.2.17-next.2 + +## e2e-test@0.2.6-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/create-app@0.5.4-next.2 + +## techdocs-cli-embedded-app@0.2.85-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog@1.12.1-next.2 + - @backstage/plugin-techdocs@1.6.6-next.2 + - @backstage/cli@0.22.10-next.1 + - @backstage/integration-react@1.1.16-next.1 + +## @internal/plugin-catalog-customized@0.0.13-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.8.1-next.1 + - @backstage/plugin-catalog@1.12.1-next.2 + +## @internal/plugin-todo-list-backend@1.0.16-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.0-next.2 + - @backstage/backend-common@0.19.2-next.2 + - @backstage/plugin-auth-node@0.2.17-next.2 diff --git a/package.json b/package.json index abaaec252c..e9813d113d 100644 --- a/package.json +++ b/package.json @@ -47,7 +47,7 @@ "@types/react": "^17", "@types/react-dom": "^17" }, - "version": "1.17.0-next.1", + "version": "1.17.0-next.2", "dependencies": { "@backstage/errors": "workspace:^", "@manypkg/get-packages": "^1.1.3" diff --git a/packages/app/CHANGELOG.md b/packages/app/CHANGELOG.md index c1886c92d5..12e3dada41 100644 --- a/packages/app/CHANGELOG.md +++ b/packages/app/CHANGELOG.md @@ -1,5 +1,68 @@ # example-app +## 0.2.86-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-graph@0.2.33-next.2 + - @backstage/plugin-linguist-common@0.1.1-next.1 + - @backstage/plugin-catalog-react@1.8.1-next.1 + - @backstage/plugin-linguist@0.1.6-next.2 + - @backstage/plugin-adr@0.6.4-next.2 + - @backstage/plugin-airbrake@0.3.21-next.2 + - @backstage/plugin-api-docs@0.9.7-next.2 + - @backstage/plugin-azure-devops@0.3.3-next.1 + - @backstage/plugin-azure-sites@0.1.10-next.1 + - @backstage/plugin-badges@0.2.45-next.1 + - @internal/plugin-catalog-customized@0.0.13-next.2 + - @backstage/plugin-catalog-import@0.9.11-next.2 + - @backstage/plugin-circleci@0.3.21-next.1 + - @backstage/plugin-cloudbuild@0.3.21-next.1 + - @backstage/plugin-code-coverage@0.2.14-next.2 + - @backstage/plugin-cost-insights@0.12.10-next.1 + - @backstage/plugin-dynatrace@7.0.1-next.2 + - @backstage/plugin-entity-feedback@0.2.4-next.2 + - @backstage/plugin-explore@0.4.7-next.1 + - @backstage/plugin-github-actions@0.6.2-next.2 + - @backstage/plugin-gocd@0.1.27-next.1 + - @backstage/plugin-home@0.5.5-next.1 + - @backstage/plugin-jenkins@0.8.3-next.2 + - @backstage/plugin-kafka@0.3.21-next.2 + - @backstage/plugin-kubernetes@0.9.4-next.1 + - @backstage/plugin-lighthouse@0.4.6-next.1 + - @backstage/plugin-newrelic-dashboard@0.2.14-next.2 + - @backstage/plugin-nomad@0.1.2-next.2 + - @backstage/plugin-octopus-deploy@0.2.3-next.2 + - @backstage/plugin-org@0.6.11-next.2 + - @backstage/plugin-pagerduty@0.6.2-next.1 + - @backstage/plugin-playlist@0.1.13-next.2 + - @backstage/plugin-puppetdb@0.1.4-next.1 + - @backstage/plugin-rollbar@0.4.21-next.1 + - @backstage/plugin-scaffolder@1.14.2-next.2 + - @backstage/plugin-scaffolder-react@1.5.2-next.1 + - @backstage/plugin-search@1.3.4-next.1 + - @backstage/plugin-sentry@0.5.6-next.1 + - @backstage/plugin-tech-insights@0.3.13-next.2 + - @backstage/plugin-techdocs@1.6.6-next.2 + - @backstage/plugin-todo@0.2.23-next.1 + - @backstage/plugin-user-settings@0.7.6-next.1 + - @backstage/cli@0.22.10-next.1 + - @backstage/integration-react@1.1.16-next.1 + - @backstage/plugin-apache-airflow@0.2.14-next.1 + - @backstage/plugin-catalog-unprocessed-entities@0.1.2-next.0 + - @backstage/plugin-devtools@0.1.3-next.1 + - @backstage/plugin-gcalendar@0.3.17-next.1 + - @backstage/plugin-gcp-projects@0.3.40-next.0 + - @backstage/plugin-graphiql@0.2.53-next.0 + - @backstage/plugin-microsoft-calendar@0.1.6-next.1 + - @backstage/plugin-newrelic@0.3.39-next.0 + - @backstage/plugin-shortcuts@0.3.13-next.1 + - @backstage/plugin-stack-overflow@0.1.19-next.1 + - @backstage/plugin-stackstorm@0.1.5-next.0 + - @backstage/plugin-tech-radar@0.6.7-next.0 + - @backstage/plugin-techdocs-module-addons-contrib@1.0.16-next.1 + ## 0.2.86-next.1 ### Patch Changes diff --git a/packages/app/package.json b/packages/app/package.json index f33a5645b9..0528f33c68 100644 --- a/packages/app/package.json +++ b/packages/app/package.json @@ -1,6 +1,6 @@ { "name": "example-app", - "version": "0.2.86-next.1", + "version": "0.2.86-next.2", "private": true, "backstage": { "role": "frontend" diff --git a/packages/backend-app-api/CHANGELOG.md b/packages/backend-app-api/CHANGELOG.md index cbfbfef468..dd474ba143 100644 --- a/packages/backend-app-api/CHANGELOG.md +++ b/packages/backend-app-api/CHANGELOG.md @@ -1,5 +1,19 @@ # @backstage/backend-app-api +## 0.5.0-next.2 + +### Patch Changes + +- e65c4896f755: Do not throw in backend.stop, if start failed +- cc9256a33bcc: Added new experimental `featureDiscoveryServiceFactory`, available as an `/alpha` export. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.0-next.2 + - @backstage/backend-tasks@0.5.5-next.2 + - @backstage/backend-common@0.19.2-next.2 + - @backstage/plugin-permission-node@0.7.11-next.2 + - @backstage/plugin-auth-node@0.2.17-next.2 + - @backstage/config-loader@1.4.0-next.1 + ## 0.5.0-next.1 ### Minor Changes diff --git a/packages/backend-app-api/package.json b/packages/backend-app-api/package.json index d1f3f8ac43..c1f9d30f92 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.5.0-next.1", + "version": "0.5.0-next.2", "main": "src/index.ts", "types": "src/index.ts", "publishConfig": { diff --git a/packages/backend-common/CHANGELOG.md b/packages/backend-common/CHANGELOG.md index f0c6d75478..c11acc0966 100644 --- a/packages/backend-common/CHANGELOG.md +++ b/packages/backend-common/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/backend-common +## 0.19.2-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-app-api@0.5.0-next.2 + - @backstage/backend-plugin-api@0.6.0-next.2 + - @backstage/config-loader@1.4.0-next.1 + ## 0.19.2-next.1 ### Patch Changes diff --git a/packages/backend-common/package.json b/packages/backend-common/package.json index e18369b7e7..c8cb426eb3 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.2-next.1", + "version": "0.19.2-next.2", "main": "src/index.ts", "types": "src/index.ts", "publishConfig": { diff --git a/packages/backend-defaults/CHANGELOG.md b/packages/backend-defaults/CHANGELOG.md index 089f80d745..ceb931df2a 100644 --- a/packages/backend-defaults/CHANGELOG.md +++ b/packages/backend-defaults/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/backend-defaults +## 0.2.0-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-app-api@0.5.0-next.2 + - @backstage/backend-plugin-api@0.6.0-next.2 + - @backstage/backend-common@0.19.2-next.2 + ## 0.2.0-next.1 ### Minor Changes diff --git a/packages/backend-defaults/package.json b/packages/backend-defaults/package.json index 5a89bb51f0..84e1d5c665 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.2.0-next.1", + "version": "0.2.0-next.2", "main": "src/index.ts", "types": "src/index.ts", "publishConfig": { diff --git a/packages/backend-next/CHANGELOG.md b/packages/backend-next/CHANGELOG.md index a5eb6fe466..df26f26f50 100644 --- a/packages/backend-next/CHANGELOG.md +++ b/packages/backend-next/CHANGELOG.md @@ -1,5 +1,37 @@ # example-backend-next +## 0.0.14-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-search-backend-module-techdocs@0.1.4-next.2 + - @backstage/plugin-search-backend-module-catalog@0.1.4-next.2 + - @backstage/plugin-search-backend-module-explore@0.1.4-next.2 + - @backstage/plugin-scaffolder-backend@1.15.2-next.2 + - @backstage/plugin-catalog-backend@1.12.0-next.2 + - @backstage/backend-plugin-api@0.6.0-next.2 + - @backstage/plugin-proxy-backend@0.3.0-next.2 + - @backstage/backend-tasks@0.5.5-next.2 + - @backstage/plugin-app-backend@0.3.48-next.2 + - @backstage/plugin-linguist-backend@0.4.0-next.2 + - @backstage/plugin-techdocs-backend@1.6.5-next.2 + - @backstage/backend-defaults@0.2.0-next.2 + - @backstage/plugin-adr-backend@0.3.6-next.2 + - @backstage/plugin-azure-devops-backend@0.3.27-next.2 + - @backstage/plugin-badges-backend@0.2.3-next.2 + - @backstage/plugin-catalog-backend-module-unprocessed@0.2.0-next.2 + - @backstage/plugin-devtools-backend@0.1.3-next.2 + - @backstage/plugin-entity-feedback-backend@0.1.6-next.2 + - @backstage/plugin-kubernetes-backend@0.11.3-next.2 + - @backstage/plugin-lighthouse-backend@0.2.4-next.2 + - @backstage/plugin-permission-backend@0.5.23-next.2 + - @backstage/plugin-permission-node@0.7.11-next.2 + - @backstage/plugin-search-backend@1.4.0-next.2 + - @backstage/plugin-search-backend-node@1.2.4-next.2 + - @backstage/plugin-todo-backend@0.2.0-next.2 + - @backstage/plugin-auth-node@0.2.17-next.2 + ## 0.0.14-next.1 ### Patch Changes diff --git a/packages/backend-next/package.json b/packages/backend-next/package.json index f36f90998b..8548294398 100644 --- a/packages/backend-next/package.json +++ b/packages/backend-next/package.json @@ -1,6 +1,6 @@ { "name": "example-backend-next", - "version": "0.0.14-next.1", + "version": "0.0.14-next.2", "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 510797672c..4e64cca8ee 100644 --- a/packages/backend-plugin-api/CHANGELOG.md +++ b/packages/backend-plugin-api/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/backend-plugin-api +## 0.6.0-next.2 + +### Patch Changes + +- cc9256a33bcc: Added new experimental `featureDiscoveryServiceRef`, available as an `/alpha` export. +- Updated dependencies + - @backstage/backend-tasks@0.5.5-next.2 + - @backstage/plugin-auth-node@0.2.17-next.2 + ## 0.6.0-next.1 ### Minor Changes diff --git a/packages/backend-plugin-api/package.json b/packages/backend-plugin-api/package.json index 555c60c8e4..86eb1135f4 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.6.0-next.1", + "version": "0.6.0-next.2", "main": "src/index.ts", "types": "src/index.ts", "publishConfig": { diff --git a/packages/backend-tasks/CHANGELOG.md b/packages/backend-tasks/CHANGELOG.md index 05e51c661c..f2f558f084 100644 --- a/packages/backend-tasks/CHANGELOG.md +++ b/packages/backend-tasks/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/backend-tasks +## 0.5.5-next.2 + +### Patch Changes + +- dfd1b6b2fc33: Make `readTaskScheduleDefinitionFromConfig` properly handle bad inputs +- Updated dependencies + - @backstage/backend-common@0.19.2-next.2 + ## 0.5.5-next.1 ### Patch Changes diff --git a/packages/backend-tasks/package.json b/packages/backend-tasks/package.json index 9dd2c9e557..aaba56f48e 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.5-next.1", + "version": "0.5.5-next.2", "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 78a8e7cd6d..7cff4e8f6b 100644 --- a/packages/backend-test-utils/CHANGELOG.md +++ b/packages/backend-test-utils/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/backend-test-utils +## 0.2.0-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-app-api@0.5.0-next.2 + - @backstage/backend-plugin-api@0.6.0-next.2 + - @backstage/backend-common@0.19.2-next.2 + - @backstage/plugin-auth-node@0.2.17-next.2 + ## 0.2.0-next.1 ### Minor Changes diff --git a/packages/backend-test-utils/package.json b/packages/backend-test-utils/package.json index beebf06624..9f59962a8a 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.2.0-next.1", + "version": "0.2.0-next.2", "main": "src/index.ts", "types": "src/index.ts", "publishConfig": { diff --git a/packages/backend/CHANGELOG.md b/packages/backend/CHANGELOG.md index 84c802ae58..14ad991533 100644 --- a/packages/backend/CHANGELOG.md +++ b/packages/backend/CHANGELOG.md @@ -1,5 +1,54 @@ # example-backend +## 0.2.86-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-auth-backend@0.18.6-next.2 + - @backstage/plugin-scaffolder-backend@1.15.2-next.2 + - @backstage/plugin-explore-backend@0.0.10-next.2 + - @backstage/plugin-catalog-backend@1.12.0-next.2 + - @backstage/plugin-proxy-backend@0.3.0-next.2 + - @backstage/backend-tasks@0.5.5-next.2 + - @backstage/plugin-app-backend@0.3.48-next.2 + - @backstage/plugin-linguist-backend@0.4.0-next.2 + - @backstage/plugin-techdocs-backend@1.6.5-next.2 + - @backstage/backend-common@0.19.2-next.2 + - example-app@0.2.86-next.2 + - @backstage/plugin-adr-backend@0.3.6-next.2 + - @backstage/plugin-azure-devops-backend@0.3.27-next.2 + - @backstage/plugin-badges-backend@0.2.3-next.2 + - @backstage/plugin-catalog-backend-module-unprocessed@0.2.0-next.2 + - @backstage/plugin-catalog-node@1.4.1-next.2 + - @backstage/plugin-devtools-backend@0.1.3-next.2 + - @backstage/plugin-entity-feedback-backend@0.1.6-next.2 + - @backstage/plugin-events-backend@0.2.9-next.2 + - @backstage/plugin-events-node@0.2.9-next.2 + - @backstage/plugin-kafka-backend@0.2.41-next.2 + - @backstage/plugin-kubernetes-backend@0.11.3-next.2 + - @backstage/plugin-lighthouse-backend@0.2.4-next.2 + - @backstage/plugin-permission-backend@0.5.23-next.2 + - @backstage/plugin-permission-node@0.7.11-next.2 + - @backstage/plugin-search-backend@1.4.0-next.2 + - @backstage/plugin-search-backend-module-elasticsearch@1.3.3-next.2 + - @backstage/plugin-search-backend-module-pg@0.5.9-next.2 + - @backstage/plugin-search-backend-node@1.2.4-next.2 + - @backstage/plugin-todo-backend@0.2.0-next.2 + - @backstage/plugin-tech-insights-backend@0.5.14-next.2 + - @backstage/plugin-tech-insights-node@0.4.6-next.2 + - @backstage/plugin-scaffolder-backend-module-confluence-to-markdown@0.2.1-next.2 + - @backstage/plugin-scaffolder-backend-module-rails@0.4.17-next.2 + - @backstage/plugin-auth-node@0.2.17-next.2 + - @backstage/plugin-azure-sites-backend@0.1.10-next.2 + - @backstage/plugin-code-coverage-backend@0.2.14-next.2 + - @backstage/plugin-graphql-backend@0.1.38-next.2 + - @backstage/plugin-jenkins-backend@0.2.3-next.2 + - @backstage/plugin-nomad-backend@0.1.2-next.2 + - @backstage/plugin-playlist-backend@0.3.4-next.2 + - @backstage/plugin-rollbar-backend@0.1.45-next.2 + - @backstage/plugin-tech-insights-backend-module-jsonfc@0.1.32-next.2 + ## 0.2.86-next.1 ### Patch Changes diff --git a/packages/backend/package.json b/packages/backend/package.json index 4f5b896d27..965da35ee3 100644 --- a/packages/backend/package.json +++ b/packages/backend/package.json @@ -1,6 +1,6 @@ { "name": "example-backend", - "version": "0.2.86-next.1", + "version": "0.2.86-next.2", "main": "dist/index.cjs.js", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/packages/create-app/CHANGELOG.md b/packages/create-app/CHANGELOG.md index eb2f048d62..978911ed3e 100644 --- a/packages/create-app/CHANGELOG.md +++ b/packages/create-app/CHANGELOG.md @@ -1,5 +1,11 @@ # @backstage/create-app +## 0.5.4-next.2 + +### Patch Changes + +- Bumped create-app version. + ## 0.5.4-next.1 ### Patch Changes diff --git a/packages/create-app/package.json b/packages/create-app/package.json index de1a9791ae..62d455b7db 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.4-next.1", + "version": "0.5.4-next.2", "publishConfig": { "access": "public" }, diff --git a/packages/dev-utils/CHANGELOG.md b/packages/dev-utils/CHANGELOG.md index 132f330d8f..cc1b274d98 100644 --- a/packages/dev-utils/CHANGELOG.md +++ b/packages/dev-utils/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/dev-utils +## 1.0.18-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.8.1-next.1 + - @backstage/integration-react@1.1.16-next.1 + ## 1.0.18-next.1 ### Patch Changes diff --git a/packages/dev-utils/package.json b/packages/dev-utils/package.json index 730d8ffe4e..b5cc72bfcd 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.18-next.1", + "version": "1.0.18-next.2", "publishConfig": { "access": "public", "main": "dist/index.esm.js", diff --git a/packages/e2e-test/CHANGELOG.md b/packages/e2e-test/CHANGELOG.md index a334051aae..5b3930f0af 100644 --- a/packages/e2e-test/CHANGELOG.md +++ b/packages/e2e-test/CHANGELOG.md @@ -1,5 +1,12 @@ # e2e-test +## 0.2.6-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/create-app@0.5.4-next.2 + ## 0.2.6-next.1 ### Patch Changes diff --git a/packages/e2e-test/package.json b/packages/e2e-test/package.json index 3708f1bae4..64ee370d8a 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.6-next.1", + "version": "0.2.6-next.2", "private": true, "backstage": { "role": "cli" diff --git a/packages/techdocs-cli-embedded-app/CHANGELOG.md b/packages/techdocs-cli-embedded-app/CHANGELOG.md index 915d54fec3..8e1d2bcaa8 100644 --- a/packages/techdocs-cli-embedded-app/CHANGELOG.md +++ b/packages/techdocs-cli-embedded-app/CHANGELOG.md @@ -1,5 +1,15 @@ # techdocs-cli-embedded-app +## 0.2.85-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog@1.12.1-next.2 + - @backstage/plugin-techdocs@1.6.6-next.2 + - @backstage/cli@0.22.10-next.1 + - @backstage/integration-react@1.1.16-next.1 + ## 0.2.85-next.1 ### Patch Changes diff --git a/packages/techdocs-cli-embedded-app/package.json b/packages/techdocs-cli-embedded-app/package.json index d980d2ab6c..8a8675f3e8 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.85-next.1", + "version": "0.2.85-next.2", "private": true, "backstage": { "role": "frontend" diff --git a/packages/techdocs-cli/CHANGELOG.md b/packages/techdocs-cli/CHANGELOG.md index ec0678b2d6..e41e16b4d3 100644 --- a/packages/techdocs-cli/CHANGELOG.md +++ b/packages/techdocs-cli/CHANGELOG.md @@ -1,5 +1,13 @@ # @techdocs/cli +## 1.4.5-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.2-next.2 + - @backstage/plugin-techdocs-node@1.7.4-next.2 + ## 1.4.5-next.1 ### Patch Changes diff --git a/packages/techdocs-cli/package.json b/packages/techdocs-cli/package.json index 82ba61e0f6..5968deddfb 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.5-next.1", + "version": "1.4.5-next.2", "publishConfig": { "access": "public" }, diff --git a/plugins/adr-backend/CHANGELOG.md b/plugins/adr-backend/CHANGELOG.md index 07b40ac349..574d649a67 100644 --- a/plugins/adr-backend/CHANGELOG.md +++ b/plugins/adr-backend/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-adr-backend +## 0.3.6-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.0-next.2 + - @backstage/backend-common@0.19.2-next.2 + ## 0.3.6-next.1 ### Patch Changes diff --git a/plugins/adr-backend/package.json b/plugins/adr-backend/package.json index 0caa9563d8..9af7a1e617 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.6-next.1", + "version": "0.3.6-next.2", "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 57f888eaa7..976b9ef238 100644 --- a/plugins/adr/CHANGELOG.md +++ b/plugins/adr/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-adr +## 0.6.4-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.8.1-next.1 + - @backstage/integration-react@1.1.16-next.1 + ## 0.6.4-next.1 ### Patch Changes diff --git a/plugins/adr/package.json b/plugins/adr/package.json index 84d5080a4a..c280e87bc9 100644 --- a/plugins/adr/package.json +++ b/plugins/adr/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-adr", - "version": "0.6.4-next.1", + "version": "0.6.4-next.2", "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 3892e5563b..c283d99987 100644 --- a/plugins/airbrake-backend/CHANGELOG.md +++ b/plugins/airbrake-backend/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-airbrake-backend +## 0.2.21-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.0-next.2 + - @backstage/backend-common@0.19.2-next.2 + ## 0.2.21-next.1 ### Patch Changes diff --git a/plugins/airbrake-backend/package.json b/plugins/airbrake-backend/package.json index f3ff319d65..17ddf81297 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.21-next.1", + "version": "0.2.21-next.2", "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 5ef51bc443..ca3c39d275 100644 --- a/plugins/airbrake/CHANGELOG.md +++ b/plugins/airbrake/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-airbrake +## 0.3.21-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.8.1-next.1 + - @backstage/dev-utils@1.0.18-next.2 + ## 0.3.21-next.1 ### Patch Changes diff --git a/plugins/airbrake/package.json b/plugins/airbrake/package.json index 72f3bc6094..1cbefe43b7 100644 --- a/plugins/airbrake/package.json +++ b/plugins/airbrake/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-airbrake", - "version": "0.3.21-next.1", + "version": "0.3.21-next.2", "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 8bbf800b78..b53cd64d52 100644 --- a/plugins/allure/CHANGELOG.md +++ b/plugins/allure/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-allure +## 0.1.37-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.8.1-next.1 + ## 0.1.37-next.1 ### Patch Changes diff --git a/plugins/allure/package.json b/plugins/allure/package.json index 730347cf8c..71458aa0f1 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.37-next.1", + "version": "0.1.37-next.2", "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 7ed022f59e..d7d002739a 100644 --- a/plugins/api-docs/CHANGELOG.md +++ b/plugins/api-docs/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-api-docs +## 0.9.7-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.8.1-next.1 + - @backstage/plugin-catalog@1.12.1-next.2 + ## 0.9.7-next.1 ### Patch Changes diff --git a/plugins/api-docs/package.json b/plugins/api-docs/package.json index 8d67619aa9..43af4da872 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.7-next.1", + "version": "0.9.7-next.2", "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 a92677ab41..eb570e4153 100644 --- a/plugins/app-backend/CHANGELOG.md +++ b/plugins/app-backend/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-app-backend +## 0.3.48-next.2 + +### Patch Changes + +- d564ad142b17: Migrated the alpha `appBackend` export to use static configuration and extension points rather than accepting options. +- Updated dependencies + - @backstage/plugin-app-node@0.1.0-next.0 + - @backstage/backend-plugin-api@0.6.0-next.2 + - @backstage/backend-common@0.19.2-next.2 + - @backstage/config-loader@1.4.0-next.1 + ## 0.3.48-next.1 ### Patch Changes diff --git a/plugins/app-backend/package.json b/plugins/app-backend/package.json index be1b6b3a80..0000cfdcb1 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.48-next.1", + "version": "0.3.48-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/app-node/CHANGELOG.md b/plugins/app-node/CHANGELOG.md new file mode 100644 index 0000000000..cd67ddf91d --- /dev/null +++ b/plugins/app-node/CHANGELOG.md @@ -0,0 +1,12 @@ +# @backstage/plugin-app-node + +## 0.1.0-next.0 + +### Minor Changes + +- 9fbe95ef6503: Added the `app` plugin node library, initially providing an extension point that can be used to configure a static fallback handler. + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.0-next.2 diff --git a/plugins/app-node/package.json b/plugins/app-node/package.json index c971bdb628..106b3bdb01 100644 --- a/plugins/app-node/package.json +++ b/plugins/app-node/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-app-node", "description": "Node.js library for the app plugin", - "version": "0.0.0", + "version": "0.1.0-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 478570bb31..c8900b6df6 100644 --- a/plugins/auth-backend/CHANGELOG.md +++ b/plugins/auth-backend/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-auth-backend +## 0.18.6-next.2 + +### Patch Changes + +- 16452cd007ae: Updated `frameHandler` to return `undefined` when using the redirect flow instead of returning `postMessageReponse` which was causing errors +- bb70a9c3886a: Add frontend visibility to provider objects in `auth` config. +- Updated dependencies + - @backstage/backend-common@0.19.2-next.2 + - @backstage/plugin-auth-node@0.2.17-next.2 + ## 0.18.6-next.1 ### Patch Changes diff --git a/plugins/auth-backend/package.json b/plugins/auth-backend/package.json index 2a3b80de6a..1ad8d6c0c0 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.6-next.1", + "version": "0.18.6-next.2", "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 f19e99feab..9cfd5c28d9 100644 --- a/plugins/auth-node/CHANGELOG.md +++ b/plugins/auth-node/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-auth-node +## 0.2.17-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.2-next.2 + ## 0.2.17-next.1 ### Patch Changes diff --git a/plugins/auth-node/package.json b/plugins/auth-node/package.json index ab98ce1e7f..f57ff4e2fb 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.17-next.1", + "version": "0.2.17-next.2", "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 c961856b7b..0cd3b2eed5 100644 --- a/plugins/azure-devops-backend/CHANGELOG.md +++ b/plugins/azure-devops-backend/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-azure-devops-backend +## 0.3.27-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.0-next.2 + - @backstage/backend-common@0.19.2-next.2 + ## 0.3.27-next.1 ### Patch Changes diff --git a/plugins/azure-devops-backend/package.json b/plugins/azure-devops-backend/package.json index 857b1643b3..2702d38539 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.27-next.1", + "version": "0.3.27-next.2", "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 1b405ad870..46583f66b2 100644 --- a/plugins/azure-devops/CHANGELOG.md +++ b/plugins/azure-devops/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-azure-devops +## 0.3.3-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.8.1-next.1 + ## 0.3.3-next.0 ### Patch Changes diff --git a/plugins/azure-devops/package.json b/plugins/azure-devops/package.json index daaedae825..abc08d6c65 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.3-next.0", + "version": "0.3.3-next.1", "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 4a025ba54e..4ce541ce02 100644 --- a/plugins/azure-sites-backend/CHANGELOG.md +++ b/plugins/azure-sites-backend/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-azure-sites-backend +## 0.1.10-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.2-next.2 + ## 0.1.10-next.1 ### Patch Changes diff --git a/plugins/azure-sites-backend/package.json b/plugins/azure-sites-backend/package.json index 93cdffe8a5..178a207071 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.10-next.1", + "version": "0.1.10-next.2", "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 636c69c76a..4faef98d4f 100644 --- a/plugins/azure-sites/CHANGELOG.md +++ b/plugins/azure-sites/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-azure-sites +## 0.1.10-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.8.1-next.1 + ## 0.1.10-next.0 ### Patch Changes diff --git a/plugins/azure-sites/package.json b/plugins/azure-sites/package.json index 82b1bd1041..35b1bf365d 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.10-next.0", + "version": "0.1.10-next.1", "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 4645a45090..531cf25310 100644 --- a/plugins/badges-backend/CHANGELOG.md +++ b/plugins/badges-backend/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-badges-backend +## 0.2.3-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.0-next.2 + - @backstage/backend-common@0.19.2-next.2 + - @backstage/plugin-auth-node@0.2.17-next.2 + ## 0.2.3-next.1 ### Patch Changes diff --git a/plugins/badges-backend/package.json b/plugins/badges-backend/package.json index f68854b9f6..a3f822ef95 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.3-next.1", + "version": "0.2.3-next.2", "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 5d7527fba4..970344653a 100644 --- a/plugins/badges/CHANGELOG.md +++ b/plugins/badges/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-badges +## 0.2.45-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.8.1-next.1 + ## 0.2.45-next.0 ### Patch Changes diff --git a/plugins/badges/package.json b/plugins/badges/package.json index 79add2944c..dc288eb4d0 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.45-next.0", + "version": "0.2.45-next.1", "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 f505eb9b81..70b9ea1a21 100644 --- a/plugins/bazaar-backend/CHANGELOG.md +++ b/plugins/bazaar-backend/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-bazaar-backend +## 0.2.11-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.0-next.2 + - @backstage/backend-common@0.19.2-next.2 + - @backstage/plugin-auth-node@0.2.17-next.2 + ## 0.2.11-next.1 ### Patch Changes diff --git a/plugins/bazaar-backend/package.json b/plugins/bazaar-backend/package.json index 6532c6c291..5dacefc140 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.11-next.1", + "version": "0.2.11-next.2", "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 b9e8e4001e..519b5aa753 100644 --- a/plugins/bazaar/CHANGELOG.md +++ b/plugins/bazaar/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-bazaar +## 0.2.12-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.8.1-next.1 + - @backstage/plugin-catalog@1.12.1-next.2 + - @backstage/cli@0.22.10-next.1 + ## 0.2.12-next.1 ### Patch Changes diff --git a/plugins/bazaar/package.json b/plugins/bazaar/package.json index d0f26d68f0..252c1c037f 100644 --- a/plugins/bazaar/package.json +++ b/plugins/bazaar/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-bazaar", - "version": "0.2.12-next.1", + "version": "0.2.12-next.2", "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 51a286ff26..bb1cf3b072 100644 --- a/plugins/bitrise/CHANGELOG.md +++ b/plugins/bitrise/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-bitrise +## 0.1.48-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.8.1-next.1 + ## 0.1.48-next.1 ### Patch Changes diff --git a/plugins/bitrise/package.json b/plugins/bitrise/package.json index 1ee1d7efbe..f499ec6dd5 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.48-next.1", + "version": "0.1.48-next.2", "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 09d7823993..49df1ca628 100644 --- a/plugins/catalog-backend-module-aws/CHANGELOG.md +++ b/plugins/catalog-backend-module-aws/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-catalog-backend-module-aws +## 0.2.3-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.0-next.2 + - @backstage/backend-tasks@0.5.5-next.2 + - @backstage/backend-common@0.19.2-next.2 + - @backstage/plugin-catalog-node@1.4.1-next.2 + ## 0.2.3-next.1 ### Patch Changes diff --git a/plugins/catalog-backend-module-aws/package.json b/plugins/catalog-backend-module-aws/package.json index bd5377fb67..c470b30e70 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.3-next.1", + "version": "0.2.3-next.2", "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 bf2ce7bb76..48bd1452d5 100644 --- a/plugins/catalog-backend-module-azure/CHANGELOG.md +++ b/plugins/catalog-backend-module-azure/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-catalog-backend-module-azure +## 0.1.19-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.0-next.2 + - @backstage/backend-tasks@0.5.5-next.2 + - @backstage/backend-common@0.19.2-next.2 + - @backstage/plugin-catalog-node@1.4.1-next.2 + ## 0.1.19-next.1 ### Patch Changes diff --git a/plugins/catalog-backend-module-azure/package.json b/plugins/catalog-backend-module-azure/package.json index fe9cb9a7cc..9c91403165 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.19-next.1", + "version": "0.1.19-next.2", "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 593e1fd2a1..2aceb188be 100644 --- a/plugins/catalog-backend-module-bitbucket-cloud/CHANGELOG.md +++ b/plugins/catalog-backend-module-bitbucket-cloud/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-catalog-backend-module-bitbucket-cloud +## 0.1.15-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.0-next.2 + - @backstage/backend-tasks@0.5.5-next.2 + - @backstage/backend-common@0.19.2-next.2 + - @backstage/plugin-catalog-node@1.4.1-next.2 + - @backstage/plugin-events-node@0.2.9-next.2 + ## 0.1.15-next.1 ### Patch Changes diff --git a/plugins/catalog-backend-module-bitbucket-cloud/package.json b/plugins/catalog-backend-module-bitbucket-cloud/package.json index 30875be251..6806ce1184 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.15-next.1", + "version": "0.1.15-next.2", "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 52920ff815..feb0a2f984 100644 --- a/plugins/catalog-backend-module-bitbucket-server/CHANGELOG.md +++ b/plugins/catalog-backend-module-bitbucket-server/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-catalog-backend-module-bitbucket-server +## 0.1.13-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.0-next.2 + - @backstage/backend-tasks@0.5.5-next.2 + - @backstage/backend-common@0.19.2-next.2 + - @backstage/plugin-catalog-node@1.4.1-next.2 + ## 0.1.13-next.1 ### Patch Changes diff --git a/plugins/catalog-backend-module-bitbucket-server/package.json b/plugins/catalog-backend-module-bitbucket-server/package.json index ac28eecc36..cd1d19cd90 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.13-next.1", + "version": "0.1.13-next.2", "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 5b1e75e86d..d7b456e3ee 100644 --- a/plugins/catalog-backend-module-bitbucket/CHANGELOG.md +++ b/plugins/catalog-backend-module-bitbucket/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-catalog-backend-module-bitbucket +## 0.2.15-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.2-next.2 + - @backstage/plugin-catalog-node@1.4.1-next.2 + ## 0.2.15-next.1 ### Patch Changes diff --git a/plugins/catalog-backend-module-bitbucket/package.json b/plugins/catalog-backend-module-bitbucket/package.json index 53d80eb89e..fb641a5af9 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.15-next.1", + "version": "0.2.15-next.2", "deprecated": true, "main": "src/index.ts", "types": "src/index.ts", diff --git a/plugins/catalog-backend-module-gcp/CHANGELOG.md b/plugins/catalog-backend-module-gcp/CHANGELOG.md index 7fd00d048d..3885e371a2 100644 --- a/plugins/catalog-backend-module-gcp/CHANGELOG.md +++ b/plugins/catalog-backend-module-gcp/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-catalog-backend-module-gcp +## 0.1.0-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.0-next.2 + - @backstage/backend-tasks@0.5.5-next.2 + - @backstage/backend-common@0.19.2-next.2 + - @backstage/plugin-catalog-node@1.4.1-next.2 + ## 0.1.0-next.0 ### Minor Changes diff --git a/plugins/catalog-backend-module-gcp/package.json b/plugins/catalog-backend-module-gcp/package.json index 7ddb7d7b97..24f7dd0a25 100644 --- a/plugins/catalog-backend-module-gcp/package.json +++ b/plugins/catalog-backend-module-gcp/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-catalog-backend-module-gcp", "description": "A Backstage catalog backend module that helps integrate towards GCP", - "version": "0.1.0-next.0", + "version": "0.1.0-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/catalog-backend-module-gerrit/CHANGELOG.md b/plugins/catalog-backend-module-gerrit/CHANGELOG.md index 3f7d7a8dd3..54ed3b5a02 100644 --- a/plugins/catalog-backend-module-gerrit/CHANGELOG.md +++ b/plugins/catalog-backend-module-gerrit/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-catalog-backend-module-gerrit +## 0.1.16-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.0-next.2 + - @backstage/backend-tasks@0.5.5-next.2 + - @backstage/backend-common@0.19.2-next.2 + - @backstage/plugin-catalog-node@1.4.1-next.2 + ## 0.1.16-next.1 ### Patch Changes diff --git a/plugins/catalog-backend-module-gerrit/package.json b/plugins/catalog-backend-module-gerrit/package.json index f9566da0e2..f0cafe2c9e 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.16-next.1", + "version": "0.1.16-next.2", "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 af93dd5419..fbee4b92d6 100644 --- a/plugins/catalog-backend-module-github/CHANGELOG.md +++ b/plugins/catalog-backend-module-github/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-catalog-backend-module-github +## 0.3.3-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-backend@1.12.0-next.2 + - @backstage/backend-plugin-api@0.6.0-next.2 + - @backstage/backend-tasks@0.5.5-next.2 + - @backstage/backend-common@0.19.2-next.2 + - @backstage/plugin-catalog-node@1.4.1-next.2 + - @backstage/plugin-events-node@0.2.9-next.2 + ## 0.3.3-next.1 ### Patch Changes diff --git a/plugins/catalog-backend-module-github/package.json b/plugins/catalog-backend-module-github/package.json index b05630862c..08214b0342 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.3-next.1", + "version": "0.3.3-next.2", "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 d92ddbce43..a1f7d0265e 100644 --- a/plugins/catalog-backend-module-gitlab/CHANGELOG.md +++ b/plugins/catalog-backend-module-gitlab/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-catalog-backend-module-gitlab +## 0.2.4-next.2 + +### Patch Changes + +- 2fe1f5973ff7: Filter Gitlab archived projects through APIs +- Updated dependencies + - @backstage/backend-plugin-api@0.6.0-next.2 + - @backstage/backend-tasks@0.5.5-next.2 + - @backstage/backend-common@0.19.2-next.2 + - @backstage/plugin-catalog-node@1.4.1-next.2 + ## 0.2.4-next.1 ### Patch Changes diff --git a/plugins/catalog-backend-module-gitlab/package.json b/plugins/catalog-backend-module-gitlab/package.json index 1465b430ae..08f4d8b897 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.4-next.1", + "version": "0.2.4-next.2", "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 0cc4dc584d..3e33f19f54 100644 --- a/plugins/catalog-backend-module-incremental-ingestion/CHANGELOG.md +++ b/plugins/catalog-backend-module-incremental-ingestion/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-catalog-backend-module-incremental-ingestion +## 0.4.1-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-backend@1.12.0-next.2 + - @backstage/backend-plugin-api@0.6.0-next.2 + - @backstage/backend-tasks@0.5.5-next.2 + - @backstage/backend-common@0.19.2-next.2 + - @backstage/plugin-catalog-node@1.4.1-next.2 + - @backstage/plugin-events-node@0.2.9-next.2 + ## 0.4.1-next.1 ### Patch Changes diff --git a/plugins/catalog-backend-module-incremental-ingestion/package.json b/plugins/catalog-backend-module-incremental-ingestion/package.json index d4cae08da0..aa664151d8 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.4.1-next.1", + "version": "0.4.1-next.2", "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 9cb5788b30..bb411cc81d 100644 --- a/plugins/catalog-backend-module-ldap/CHANGELOG.md +++ b/plugins/catalog-backend-module-ldap/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-catalog-backend-module-ldap +## 0.5.15-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-tasks@0.5.5-next.2 + - @backstage/plugin-catalog-node@1.4.1-next.2 + ## 0.5.15-next.1 ### Patch Changes diff --git a/plugins/catalog-backend-module-ldap/package.json b/plugins/catalog-backend-module-ldap/package.json index 8a963923ff..a9cf8c6079 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.15-next.1", + "version": "0.5.15-next.2", "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 f2e0173a13..c37c228dc4 100644 --- a/plugins/catalog-backend-module-msgraph/CHANGELOG.md +++ b/plugins/catalog-backend-module-msgraph/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-catalog-backend-module-msgraph +## 0.5.7-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.0-next.2 + - @backstage/backend-tasks@0.5.5-next.2 + - @backstage/backend-common@0.19.2-next.2 + - @backstage/plugin-catalog-node@1.4.1-next.2 + ## 0.5.7-next.1 ### Patch Changes diff --git a/plugins/catalog-backend-module-msgraph/package.json b/plugins/catalog-backend-module-msgraph/package.json index 002531f141..e5a61ae54d 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.7-next.1", + "version": "0.5.7-next.2", "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 1e63a1193d..c9cbc11199 100644 --- a/plugins/catalog-backend-module-openapi/CHANGELOG.md +++ b/plugins/catalog-backend-module-openapi/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-catalog-backend-module-openapi +## 0.1.14-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-backend@1.12.0-next.2 + - @backstage/backend-common@0.19.2-next.2 + - @backstage/plugin-catalog-node@1.4.1-next.2 + ## 0.1.14-next.1 ### Patch Changes diff --git a/plugins/catalog-backend-module-openapi/package.json b/plugins/catalog-backend-module-openapi/package.json index 13f0305cae..8fbe3840c5 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.14-next.1", + "version": "0.1.14-next.2", "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 8d86cc9c2f..6fab80842e 100644 --- a/plugins/catalog-backend-module-puppetdb/CHANGELOG.md +++ b/plugins/catalog-backend-module-puppetdb/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-catalog-backend-module-puppetdb +## 0.1.5-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.0-next.2 + - @backstage/backend-tasks@0.5.5-next.2 + - @backstage/backend-common@0.19.2-next.2 + - @backstage/plugin-catalog-node@1.4.1-next.2 + ## 0.1.5-next.1 ### Patch Changes diff --git a/plugins/catalog-backend-module-puppetdb/package.json b/plugins/catalog-backend-module-puppetdb/package.json index d17b788737..938ea30f24 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.5-next.1", + "version": "0.1.5-next.2", "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 0e4ac7a0e2..c54fd24a21 100644 --- a/plugins/catalog-backend-module-unprocessed/CHANGELOG.md +++ b/plugins/catalog-backend-module-unprocessed/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-catalog-backend-module-unprocessed +## 0.2.0-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.0-next.2 + - @backstage/plugin-auth-node@0.2.17-next.2 + ## 0.2.0-next.1 ### Patch Changes diff --git a/plugins/catalog-backend-module-unprocessed/package.json b/plugins/catalog-backend-module-unprocessed/package.json index 6052015439..429f778677 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.2.0-next.1", + "version": "0.2.0-next.2", "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 cedbc1ed08..83a15e0d83 100644 --- a/plugins/catalog-backend/CHANGELOG.md +++ b/plugins/catalog-backend/CHANGELOG.md @@ -1,5 +1,23 @@ # @backstage/plugin-catalog-backend +## 1.12.0-next.2 + +### Minor Changes + +- b8cccd8ee858: Support configuring applicable kinds for `AnnotateScmSlugEntityProcessor` + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-search-backend-module-catalog@0.1.4-next.2 + - @backstage/backend-plugin-api@0.6.0-next.2 + - @backstage/backend-tasks@0.5.5-next.2 + - @backstage/backend-common@0.19.2-next.2 + - @backstage/plugin-catalog-node@1.4.1-next.2 + - @backstage/plugin-events-node@0.2.9-next.2 + - @backstage/plugin-permission-node@0.7.11-next.2 + - @backstage/plugin-auth-node@0.2.17-next.2 + ## 1.12.0-next.1 ### Minor Changes diff --git a/plugins/catalog-backend/package.json b/plugins/catalog-backend/package.json index 2fee3c3a46..9585d79bb1 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.12.0-next.1", + "version": "1.12.0-next.2", "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 a488e91148..f74079973b 100644 --- a/plugins/catalog-customized/CHANGELOG.md +++ b/plugins/catalog-customized/CHANGELOG.md @@ -1,5 +1,13 @@ # @internal/plugin-catalog-customized +## 0.0.13-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.8.1-next.1 + - @backstage/plugin-catalog@1.12.1-next.2 + ## 0.0.13-next.1 ### Patch Changes diff --git a/plugins/catalog-customized/package.json b/plugins/catalog-customized/package.json index c849e6c2a3..695f964d1f 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.13-next.1", + "version": "0.0.13-next.2", "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 118600f318..ec1ceb76d5 100644 --- a/plugins/catalog-graph/CHANGELOG.md +++ b/plugins/catalog-graph/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-catalog-graph +## 0.2.33-next.2 + +### Patch Changes + +- 62dc7a2b1ad1: Added maximum depth parameter to the catalogGraphParams in CatalogGraphCard. +- Updated dependencies + - @backstage/plugin-catalog-react@1.8.1-next.1 + ## 0.2.33-next.1 ### Patch Changes diff --git a/plugins/catalog-graph/package.json b/plugins/catalog-graph/package.json index 0e8f891dab..4f815fce82 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.33-next.1", + "version": "0.2.33-next.2", "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 139c8b0615..90cd7012d9 100644 --- a/plugins/catalog-import/CHANGELOG.md +++ b/plugins/catalog-import/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-catalog-import +## 0.9.11-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.8.1-next.1 + - @backstage/integration-react@1.1.16-next.1 + ## 0.9.11-next.1 ### Patch Changes diff --git a/plugins/catalog-import/package.json b/plugins/catalog-import/package.json index 55d596c955..dc31a37e17 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.11-next.1", + "version": "0.9.11-next.2", "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 6299cd2424..852650f62b 100644 --- a/plugins/catalog-node/CHANGELOG.md +++ b/plugins/catalog-node/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-catalog-node +## 1.4.1-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.0-next.2 + ## 1.4.1-next.1 ### Patch Changes diff --git a/plugins/catalog-node/package.json b/plugins/catalog-node/package.json index 5a10c9e000..9575fb05a2 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.4.1-next.1", + "version": "1.4.1-next.2", "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 6ae43f297c..9699a4a62d 100644 --- a/plugins/catalog-react/CHANGELOG.md +++ b/plugins/catalog-react/CHANGELOG.md @@ -1,5 +1,11 @@ # @backstage/plugin-catalog-react +## 1.8.1-next.1 + +### Patch Changes + +- aa3feedce10a: Allow specifying screen size when catalog filters are hidden in drawer + ## 1.8.1-next.0 ### Patch Changes diff --git a/plugins/catalog-react/package.json b/plugins/catalog-react/package.json index 67a3409830..e9bc8d249e 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.8.1-next.0", + "version": "1.8.1-next.1", "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 88d0651a03..64215a213c 100644 --- a/plugins/catalog/CHANGELOG.md +++ b/plugins/catalog/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-catalog +## 1.12.1-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.8.1-next.1 + - @backstage/integration-react@1.1.16-next.1 + ## 1.12.1-next.1 ### Patch Changes diff --git a/plugins/catalog/package.json b/plugins/catalog/package.json index a27cb26f77..985616be8d 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.12.1-next.1", + "version": "1.12.1-next.2", "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 f6c2ea06a6..25744f9bdf 100644 --- a/plugins/cicd-statistics-module-gitlab/CHANGELOG.md +++ b/plugins/cicd-statistics-module-gitlab/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-cicd-statistics-module-gitlab +## 0.1.17-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-cicd-statistics@0.1.23-next.1 + ## 0.1.17-next.1 ### Patch Changes diff --git a/plugins/cicd-statistics-module-gitlab/package.json b/plugins/cicd-statistics-module-gitlab/package.json index f7c34ade60..39d9aadc22 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.17-next.1", + "version": "0.1.17-next.2", "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 bdfe0cd1a9..aac48e8190 100644 --- a/plugins/cicd-statistics/CHANGELOG.md +++ b/plugins/cicd-statistics/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-cicd-statistics +## 0.1.23-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.8.1-next.1 + ## 0.1.23-next.0 ### Patch Changes diff --git a/plugins/cicd-statistics/package.json b/plugins/cicd-statistics/package.json index 6bd94c67e2..d98b6d9dac 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.23-next.0", + "version": "0.1.23-next.1", "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 c4a429ec47..f4dce44764 100644 --- a/plugins/circleci/CHANGELOG.md +++ b/plugins/circleci/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-circleci +## 0.3.21-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.8.1-next.1 + ## 0.3.21-next.0 ### Patch Changes diff --git a/plugins/circleci/package.json b/plugins/circleci/package.json index 68066ae890..50c6dd71fa 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.21-next.0", + "version": "0.3.21-next.1", "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 ebd4d6bc54..e59626fbe0 100644 --- a/plugins/cloudbuild/CHANGELOG.md +++ b/plugins/cloudbuild/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-cloudbuild +## 0.3.21-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.8.1-next.1 + ## 0.3.21-next.0 ### Patch Changes diff --git a/plugins/cloudbuild/package.json b/plugins/cloudbuild/package.json index 6a487c5494..bdb4541e9b 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.21-next.0", + "version": "0.3.21-next.1", "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 72d15c9730..33470a2191 100644 --- a/plugins/code-climate/CHANGELOG.md +++ b/plugins/code-climate/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-code-climate +## 0.1.21-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.8.1-next.1 + ## 0.1.21-next.1 ### Patch Changes diff --git a/plugins/code-climate/package.json b/plugins/code-climate/package.json index 3782e25a5a..ca1800b897 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.21-next.1", + "version": "0.1.21-next.2", "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 b2fd302e8c..52eddd9afe 100644 --- a/plugins/code-coverage-backend/CHANGELOG.md +++ b/plugins/code-coverage-backend/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-code-coverage-backend +## 0.2.14-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.2-next.2 + ## 0.2.14-next.1 ### Patch Changes diff --git a/plugins/code-coverage-backend/package.json b/plugins/code-coverage-backend/package.json index 6b366ab312..67b1fc1d2f 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.14-next.1", + "version": "0.2.14-next.2", "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 28c8abef54..fce7d9a4b2 100644 --- a/plugins/code-coverage/CHANGELOG.md +++ b/plugins/code-coverage/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-code-coverage +## 0.2.14-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.8.1-next.1 + ## 0.2.14-next.1 ### Patch Changes diff --git a/plugins/code-coverage/package.json b/plugins/code-coverage/package.json index 8e2b111878..ea14a18b87 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.14-next.1", + "version": "0.2.14-next.2", "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 98a48380ee..687528e3fd 100644 --- a/plugins/cost-insights/CHANGELOG.md +++ b/plugins/cost-insights/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-cost-insights +## 0.12.10-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.8.1-next.1 + ## 0.12.10-next.0 ### Patch Changes diff --git a/plugins/cost-insights/package.json b/plugins/cost-insights/package.json index b87b3db435..e626e8e173 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.10-next.0", + "version": "0.12.10-next.1", "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 c1f6c2e10f..d5488d6dbc 100644 --- a/plugins/devtools-backend/CHANGELOG.md +++ b/plugins/devtools-backend/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-devtools-backend +## 0.1.3-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.0-next.2 + - @backstage/backend-common@0.19.2-next.2 + - @backstage/plugin-permission-node@0.7.11-next.2 + - @backstage/plugin-auth-node@0.2.17-next.2 + - @backstage/config-loader@1.4.0-next.1 + ## 0.1.3-next.1 ### Patch Changes diff --git a/plugins/devtools-backend/package.json b/plugins/devtools-backend/package.json index f45b38c120..3b17a8ac7f 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.3-next.1", + "version": "0.1.3-next.2", "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 6cd8f6b0c4..10f7e55f9f 100644 --- a/plugins/dynatrace/CHANGELOG.md +++ b/plugins/dynatrace/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-dynatrace +## 7.0.1-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.8.1-next.1 + ## 7.0.1-next.1 ### Patch Changes diff --git a/plugins/dynatrace/package.json b/plugins/dynatrace/package.json index c0a855aa26..94b3716645 100644 --- a/plugins/dynatrace/package.json +++ b/plugins/dynatrace/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-dynatrace", - "version": "7.0.1-next.1", + "version": "7.0.1-next.2", "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 c0cd2d8c81..fd1db9e1d8 100644 --- a/plugins/entity-feedback-backend/CHANGELOG.md +++ b/plugins/entity-feedback-backend/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-entity-feedback-backend +## 0.1.6-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.0-next.2 + - @backstage/backend-common@0.19.2-next.2 + - @backstage/plugin-auth-node@0.2.17-next.2 + ## 0.1.6-next.1 ### Patch Changes diff --git a/plugins/entity-feedback-backend/package.json b/plugins/entity-feedback-backend/package.json index 91cc97a65c..28cb9110a4 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.6-next.1", + "version": "0.1.6-next.2", "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 8429cdb56b..8582353e5b 100644 --- a/plugins/entity-feedback/CHANGELOG.md +++ b/plugins/entity-feedback/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-entity-feedback +## 0.2.4-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.8.1-next.1 + ## 0.2.4-next.1 ### Patch Changes diff --git a/plugins/entity-feedback/package.json b/plugins/entity-feedback/package.json index 2736a3a1e2..4cbdc26a85 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.4-next.1", + "version": "0.2.4-next.2", "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 beaf7524d2..a2607bf96f 100644 --- a/plugins/entity-validation/CHANGELOG.md +++ b/plugins/entity-validation/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-entity-validation +## 0.1.6-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.8.1-next.1 + ## 0.1.6-next.1 ### Patch Changes diff --git a/plugins/entity-validation/package.json b/plugins/entity-validation/package.json index 5b85f1f199..75c82a0a9b 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.6-next.1", + "version": "0.1.6-next.2", "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 ab4643de53..f961ceaa5c 100644 --- a/plugins/events-backend-module-aws-sqs/CHANGELOG.md +++ b/plugins/events-backend-module-aws-sqs/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-events-backend-module-aws-sqs +## 0.2.3-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.0-next.2 + - @backstage/backend-tasks@0.5.5-next.2 + - @backstage/backend-common@0.19.2-next.2 + - @backstage/plugin-events-node@0.2.9-next.2 + ## 0.2.3-next.1 ### Patch Changes diff --git a/plugins/events-backend-module-aws-sqs/package.json b/plugins/events-backend-module-aws-sqs/package.json index 0e0e1e65e4..5017afbcf0 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.3-next.1", + "version": "0.2.3-next.2", "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 c4a72dfbdd..84cffef924 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.10-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.0-next.2 + - @backstage/plugin-events-node@0.2.9-next.2 + ## 0.1.10-next.1 ### Patch Changes diff --git a/plugins/events-backend-module-azure/package.json b/plugins/events-backend-module-azure/package.json index 568e3eda8f..ec6ef05036 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.10-next.1", + "version": "0.1.10-next.2", "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 a916666a22..79ab2a2e13 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.10-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.0-next.2 + - @backstage/plugin-events-node@0.2.9-next.2 + ## 0.1.10-next.1 ### Patch Changes diff --git a/plugins/events-backend-module-bitbucket-cloud/package.json b/plugins/events-backend-module-bitbucket-cloud/package.json index 1ef814848d..1dfac9149f 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.10-next.1", + "version": "0.1.10-next.2", "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 07276b736b..a6ea0c9f8b 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.10-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.0-next.2 + - @backstage/plugin-events-node@0.2.9-next.2 + ## 0.1.10-next.1 ### Patch Changes diff --git a/plugins/events-backend-module-gerrit/package.json b/plugins/events-backend-module-gerrit/package.json index 3f265c6613..d0d7baf10e 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.10-next.1", + "version": "0.1.10-next.2", "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 e29d71c92f..29894dd946 100644 --- a/plugins/events-backend-module-github/CHANGELOG.md +++ b/plugins/events-backend-module-github/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-events-backend-module-github +## 0.1.10-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.0-next.2 + - @backstage/plugin-events-node@0.2.9-next.2 + ## 0.1.10-next.1 ### Patch Changes diff --git a/plugins/events-backend-module-github/package.json b/plugins/events-backend-module-github/package.json index abde4c91a7..d76a72fbb3 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.10-next.1", + "version": "0.1.10-next.2", "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 231bf6dfe2..d3aac0d322 100644 --- a/plugins/events-backend-module-gitlab/CHANGELOG.md +++ b/plugins/events-backend-module-gitlab/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-events-backend-module-gitlab +## 0.1.10-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.0-next.2 + - @backstage/plugin-events-node@0.2.9-next.2 + ## 0.1.10-next.1 ### Patch Changes diff --git a/plugins/events-backend-module-gitlab/package.json b/plugins/events-backend-module-gitlab/package.json index e25366b2f7..f4fa7ed905 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.10-next.1", + "version": "0.1.10-next.2", "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 123a6224ed..ba70f001a2 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.10-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-events-node@0.2.9-next.2 + ## 0.1.10-next.1 ### Patch Changes diff --git a/plugins/events-backend-test-utils/package.json b/plugins/events-backend-test-utils/package.json index a90a16a6c4..6597998504 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.10-next.1", + "version": "0.1.10-next.2", "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 f2f9d5f01d..e022fe0acd 100644 --- a/plugins/events-backend/CHANGELOG.md +++ b/plugins/events-backend/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-events-backend +## 0.2.9-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.0-next.2 + - @backstage/backend-common@0.19.2-next.2 + - @backstage/plugin-events-node@0.2.9-next.2 + ## 0.2.9-next.1 ### Patch Changes diff --git a/plugins/events-backend/package.json b/plugins/events-backend/package.json index eaa9a8f278..c1fe0e64fb 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.9-next.1", + "version": "0.2.9-next.2", "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 af8c020ca3..b155a1bb4a 100644 --- a/plugins/events-node/CHANGELOG.md +++ b/plugins/events-node/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-events-node +## 0.2.9-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.0-next.2 + ## 0.2.9-next.1 ### Patch Changes diff --git a/plugins/events-node/package.json b/plugins/events-node/package.json index 0cea638e4f..2fa55fabac 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.9-next.1", + "version": "0.2.9-next.2", "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 ef47064c18..8057837b57 100644 --- a/plugins/example-todo-list-backend/CHANGELOG.md +++ b/plugins/example-todo-list-backend/CHANGELOG.md @@ -1,5 +1,14 @@ # @internal/plugin-todo-list-backend +## 1.0.16-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.0-next.2 + - @backstage/backend-common@0.19.2-next.2 + - @backstage/plugin-auth-node@0.2.17-next.2 + ## 1.0.16-next.1 ### Patch Changes diff --git a/plugins/example-todo-list-backend/package.json b/plugins/example-todo-list-backend/package.json index 2417f2a883..4dddbfcbea 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.16-next.1", + "version": "1.0.16-next.2", "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 de8b7b7dd6..68092aca47 100644 --- a/plugins/explore-backend/CHANGELOG.md +++ b/plugins/explore-backend/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-explore-backend +## 0.0.10-next.2 + +### Patch Changes + +- eda2a699f40d: Moved the config example from the "Tools as Code" section to the "Tools as Config" section of the README +- Updated dependencies + - @backstage/plugin-search-backend-module-explore@0.1.4-next.2 + - @backstage/backend-common@0.19.2-next.2 + ## 0.0.10-next.1 ### Patch Changes diff --git a/plugins/explore-backend/package.json b/plugins/explore-backend/package.json index 5b8a20eea7..f7b912f91c 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.10-next.1", + "version": "0.0.10-next.2", "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 79cc36bcd3..c757d877a2 100644 --- a/plugins/explore/CHANGELOG.md +++ b/plugins/explore/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-explore +## 0.4.7-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.8.1-next.1 + - @backstage/plugin-explore-react@0.0.30 + ## 0.4.7-next.0 ### Patch Changes diff --git a/plugins/explore/package.json b/plugins/explore/package.json index 702bbbf2d4..c54e084802 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.7-next.0", + "version": "0.4.7-next.1", "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 05b2093663..c027052ff1 100644 --- a/plugins/firehydrant/CHANGELOG.md +++ b/plugins/firehydrant/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-firehydrant +## 0.2.5-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.8.1-next.1 + ## 0.2.5-next.1 ### Patch Changes diff --git a/plugins/firehydrant/package.json b/plugins/firehydrant/package.json index b955b6e129..966bb3eebf 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.5-next.1", + "version": "0.2.5-next.2", "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 60e7d48bde..0e7d8e4211 100644 --- a/plugins/fossa/CHANGELOG.md +++ b/plugins/fossa/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-fossa +## 0.2.53-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.8.1-next.1 + ## 0.2.53-next.0 ### Patch Changes diff --git a/plugins/fossa/package.json b/plugins/fossa/package.json index b98741390d..c69d8717c4 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.53-next.0", + "version": "0.2.53-next.1", "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 00da125064..a984f8fba0 100644 --- a/plugins/github-actions/CHANGELOG.md +++ b/plugins/github-actions/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-github-actions +## 0.6.2-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.8.1-next.1 + - @backstage/integration-react@1.1.16-next.1 + ## 0.6.2-next.1 ### Patch Changes diff --git a/plugins/github-actions/package.json b/plugins/github-actions/package.json index 664da9fc91..5f7e5fbeef 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.2-next.1", + "version": "0.6.2-next.2", "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 949c221a1f..b9e1ae1348 100644 --- a/plugins/github-deployments/CHANGELOG.md +++ b/plugins/github-deployments/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-github-deployments +## 0.1.52-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.8.1-next.1 + - @backstage/integration-react@1.1.16-next.1 + ## 0.1.52-next.1 ### Patch Changes diff --git a/plugins/github-deployments/package.json b/plugins/github-deployments/package.json index 1a31fab535..341ce50000 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.52-next.1", + "version": "0.1.52-next.2", "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 985b114cb1..6bb63aa17e 100644 --- a/plugins/github-issues/CHANGELOG.md +++ b/plugins/github-issues/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-github-issues +## 0.2.10-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.8.1-next.1 + ## 0.2.10-next.1 ### Patch Changes diff --git a/plugins/github-issues/package.json b/plugins/github-issues/package.json index 179364a725..9e8bf5beaf 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.10-next.1", + "version": "0.2.10-next.2", "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 4f27413a0c..b5ba25ef4a 100644 --- a/plugins/github-pull-requests-board/CHANGELOG.md +++ b/plugins/github-pull-requests-board/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-github-pull-requests-board +## 0.1.15-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.8.1-next.1 + ## 0.1.15-next.0 ### Patch Changes diff --git a/plugins/github-pull-requests-board/package.json b/plugins/github-pull-requests-board/package.json index 614abfb617..e0c17811a5 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.15-next.0", + "version": "0.1.15-next.1", "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 4f1ba08f4b..92a790fc33 100644 --- a/plugins/gocd/CHANGELOG.md +++ b/plugins/gocd/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-gocd +## 0.1.27-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.8.1-next.1 + ## 0.1.27-next.0 ### Patch Changes diff --git a/plugins/gocd/package.json b/plugins/gocd/package.json index bd34adf50a..672f19ba9f 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.27-next.0", + "version": "0.1.27-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/graphql-backend/CHANGELOG.md b/plugins/graphql-backend/CHANGELOG.md index b8fc2982f7..63b5f4639a 100644 --- a/plugins/graphql-backend/CHANGELOG.md +++ b/plugins/graphql-backend/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-graphql-backend +## 0.1.38-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.2-next.2 + ## 0.1.38-next.1 ### Patch Changes diff --git a/plugins/graphql-backend/package.json b/plugins/graphql-backend/package.json index 530f814625..675a6cc293 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.38-next.1", + "version": "0.1.38-next.2", "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 6106ce1684..ecb16e0aa0 100644 --- a/plugins/graphql-voyager/CHANGELOG.md +++ b/plugins/graphql-voyager/CHANGELOG.md @@ -1,5 +1,11 @@ # @backstage/plugin-graphql-voyager +## 0.1.6-next.2 + +### Patch Changes + +- bb1e1c2b26cc: Fix typo in install instructions. + ## 0.1.6-next.1 ### Patch Changes diff --git a/plugins/graphql-voyager/package.json b/plugins/graphql-voyager/package.json index 7cfe6e3147..bddebf7a3f 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.6-next.1", + "version": "0.1.6-next.2", "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 9becea45ad..4746842db6 100644 --- a/plugins/home/CHANGELOG.md +++ b/plugins/home/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-home +## 0.5.5-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.8.1-next.1 + - @backstage/plugin-home-react@0.1.2-next.0 + ## 0.5.5-next.0 ### Patch Changes diff --git a/plugins/home/package.json b/plugins/home/package.json index f9e97b2760..e717bd2c00 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.5-next.0", + "version": "0.5.5-next.1", "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 5a30c11db7..7369bddf34 100644 --- a/plugins/ilert/CHANGELOG.md +++ b/plugins/ilert/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-ilert +## 0.2.10-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.8.1-next.1 + ## 0.2.10-next.1 ### Patch Changes diff --git a/plugins/ilert/package.json b/plugins/ilert/package.json index 1ff95f665d..da707874cb 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.10-next.1", + "version": "0.2.10-next.2", "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 d03a2646df..5dd8cf70cb 100644 --- a/plugins/jenkins-backend/CHANGELOG.md +++ b/plugins/jenkins-backend/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-jenkins-backend +## 0.2.3-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.2-next.2 + - @backstage/plugin-permission-node@0.7.11-next.2 + - @backstage/plugin-auth-node@0.2.17-next.2 + ## 0.2.3-next.1 ### Patch Changes diff --git a/plugins/jenkins-backend/package.json b/plugins/jenkins-backend/package.json index 942a623ad0..f22f47b38c 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.3-next.1", + "version": "0.2.3-next.2", "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 bb28eeeaf5..c108eaeb0b 100644 --- a/plugins/jenkins/CHANGELOG.md +++ b/plugins/jenkins/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-jenkins +## 0.8.3-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.8.1-next.1 + ## 0.8.3-next.1 ### Patch Changes diff --git a/plugins/jenkins/package.json b/plugins/jenkins/package.json index a44861de23..8f0ec1aea2 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.3-next.1", + "version": "0.8.3-next.2", "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 48291adcc1..5970704e19 100644 --- a/plugins/kafka-backend/CHANGELOG.md +++ b/plugins/kafka-backend/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-kafka-backend +## 0.2.41-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.0-next.2 + - @backstage/backend-common@0.19.2-next.2 + ## 0.2.41-next.1 ### Patch Changes diff --git a/plugins/kafka-backend/package.json b/plugins/kafka-backend/package.json index c3cf662208..0eab682023 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.41-next.1", + "version": "0.2.41-next.2", "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 80751d23b8..d04153c02b 100644 --- a/plugins/kafka/CHANGELOG.md +++ b/plugins/kafka/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-kafka +## 0.3.21-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.8.1-next.1 + ## 0.3.21-next.1 ### Patch Changes diff --git a/plugins/kafka/package.json b/plugins/kafka/package.json index 46ec0e8e51..4c04878450 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.21-next.1", + "version": "0.3.21-next.2", "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 532d0e0618..1c10e43c92 100644 --- a/plugins/kubernetes-backend/CHANGELOG.md +++ b/plugins/kubernetes-backend/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-kubernetes-backend +## 0.11.3-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.0-next.2 + - @backstage/backend-common@0.19.2-next.2 + - @backstage/plugin-catalog-node@1.4.1-next.2 + - @backstage/plugin-permission-node@0.7.11-next.2 + - @backstage/plugin-auth-node@0.2.17-next.2 + ## 0.11.3-next.1 ### Patch Changes diff --git a/plugins/kubernetes-backend/package.json b/plugins/kubernetes-backend/package.json index 6663479f5e..ab24437243 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.3-next.1", + "version": "0.11.3-next.2", "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 600363e960..55d917ea1c 100644 --- a/plugins/kubernetes/CHANGELOG.md +++ b/plugins/kubernetes/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-kubernetes +## 0.9.4-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.8.1-next.1 + ## 0.9.4-next.0 ### Patch Changes diff --git a/plugins/kubernetes/package.json b/plugins/kubernetes/package.json index 1f137a6240..ed063900ba 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.4-next.0", + "version": "0.9.4-next.1", "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 80c54e4501..9892e72566 100644 --- a/plugins/lighthouse-backend/CHANGELOG.md +++ b/plugins/lighthouse-backend/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-lighthouse-backend +## 0.2.4-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.0-next.2 + - @backstage/backend-tasks@0.5.5-next.2 + - @backstage/backend-common@0.19.2-next.2 + - @backstage/plugin-catalog-node@1.4.1-next.2 + ## 0.2.4-next.1 ### Patch Changes diff --git a/plugins/lighthouse-backend/package.json b/plugins/lighthouse-backend/package.json index c5b9bb49ca..8811164592 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.4-next.1", + "version": "0.2.4-next.2", "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 e45facf69f..ae5103502a 100644 --- a/plugins/lighthouse/CHANGELOG.md +++ b/plugins/lighthouse/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-lighthouse +## 0.4.6-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.8.1-next.1 + ## 0.4.6-next.0 ### Patch Changes diff --git a/plugins/lighthouse/package.json b/plugins/lighthouse/package.json index 02b2e67c1a..1cdb8f84da 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.6-next.0", + "version": "0.4.6-next.1", "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 774dc72250..ff16c53da5 100644 --- a/plugins/linguist-backend/CHANGELOG.md +++ b/plugins/linguist-backend/CHANGELOG.md @@ -1,5 +1,21 @@ # @backstage/plugin-linguist-backend +## 0.4.0-next.2 + +### Minor Changes + +- d440f1dd0e72: Adds a processor to the linguist backend which can automatically add language tags to entities + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-linguist-common@0.1.1-next.1 + - @backstage/backend-plugin-api@0.6.0-next.2 + - @backstage/backend-tasks@0.5.5-next.2 + - @backstage/backend-common@0.19.2-next.2 + - @backstage/plugin-catalog-node@1.4.1-next.2 + - @backstage/plugin-auth-node@0.2.17-next.2 + ## 0.3.2-next.1 ### Patch Changes diff --git a/plugins/linguist-backend/package.json b/plugins/linguist-backend/package.json index ba71e3c756..0cdd8b12c5 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.2-next.1", + "version": "0.4.0-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/linguist-common/CHANGELOG.md b/plugins/linguist-common/CHANGELOG.md index 1bfe9fcc84..920c5c533b 100644 --- a/plugins/linguist-common/CHANGELOG.md +++ b/plugins/linguist-common/CHANGELOG.md @@ -1,5 +1,11 @@ # @backstage/plugin-linguist-common +## 0.1.1-next.1 + +### Patch Changes + +- d440f1dd0e72: Exported new LanguageType type alias + ## 0.1.1-next.0 ### Patch Changes diff --git a/plugins/linguist-common/package.json b/plugins/linguist-common/package.json index 4ca2b65283..601146457e 100644 --- a/plugins/linguist-common/package.json +++ b/plugins/linguist-common/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-linguist-common", "description": "Common functionalities for the linguist plugin", - "version": "0.1.1-next.0", + "version": "0.1.1-next.1", "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 84af3bdd60..3b515a2dda 100644 --- a/plugins/linguist/CHANGELOG.md +++ b/plugins/linguist/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-linguist +## 0.1.6-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-linguist-common@0.1.1-next.1 + - @backstage/plugin-catalog-react@1.8.1-next.1 + ## 0.1.6-next.1 ### Patch Changes diff --git a/plugins/linguist/package.json b/plugins/linguist/package.json index 2f5369b404..eadbfd7c43 100644 --- a/plugins/linguist/package.json +++ b/plugins/linguist/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-linguist", - "version": "0.1.6-next.1", + "version": "0.1.6-next.2", "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 de7a9c6b5b..6a43d80cc2 100644 --- a/plugins/newrelic-dashboard/CHANGELOG.md +++ b/plugins/newrelic-dashboard/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-newrelic-dashboard +## 0.2.14-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.8.1-next.1 + ## 0.2.14-next.1 ### Patch Changes diff --git a/plugins/newrelic-dashboard/package.json b/plugins/newrelic-dashboard/package.json index b32fd6c1e2..e5c9f53b10 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.14-next.1", + "version": "0.2.14-next.2", "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 37a5ba36cf..399d250a1f 100644 --- a/plugins/nomad-backend/CHANGELOG.md +++ b/plugins/nomad-backend/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-nomad-backend +## 0.1.2-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.2-next.2 + ## 0.1.2-next.1 ### Patch Changes diff --git a/plugins/nomad-backend/package.json b/plugins/nomad-backend/package.json index 78a3e3a386..cd987e3df8 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.2-next.1", + "version": "0.1.2-next.2", "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 151657c12b..f22e3fe1a5 100644 --- a/plugins/nomad/CHANGELOG.md +++ b/plugins/nomad/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-nomad +## 0.1.2-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.8.1-next.1 + ## 0.1.2-next.1 ### Patch Changes diff --git a/plugins/nomad/package.json b/plugins/nomad/package.json index 283b6cdb9c..6b8c6211ae 100644 --- a/plugins/nomad/package.json +++ b/plugins/nomad/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-nomad", - "version": "0.1.2-next.1", + "version": "0.1.2-next.2", "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 b6a652e24d..1921f102c8 100644 --- a/plugins/octopus-deploy/CHANGELOG.md +++ b/plugins/octopus-deploy/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-octopus-deploy +## 0.2.3-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.8.1-next.1 + ## 0.2.3-next.1 ### Patch Changes diff --git a/plugins/octopus-deploy/package.json b/plugins/octopus-deploy/package.json index 65010ae66f..ff54b6b8b0 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.3-next.1", + "version": "0.2.3-next.2", "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 eeac469210..0daf3bcd0d 100644 --- a/plugins/org-react/CHANGELOG.md +++ b/plugins/org-react/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-org-react +## 0.1.10-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.8.1-next.1 + ## 0.1.10-next.1 ### Patch Changes diff --git a/plugins/org-react/package.json b/plugins/org-react/package.json index 176722ad03..ab48b5b7e6 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.10-next.1", + "version": "0.1.10-next.2", "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 4e98307d04..fdaf76aebd 100644 --- a/plugins/org/CHANGELOG.md +++ b/plugins/org/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-org +## 0.6.11-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.8.1-next.1 + ## 0.6.11-next.1 ### Patch Changes diff --git a/plugins/org/package.json b/plugins/org/package.json index 81d6495d08..f8d976a3a0 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.11-next.1", + "version": "0.6.11-next.2", "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 4ff94ae479..09add705bb 100644 --- a/plugins/pagerduty/CHANGELOG.md +++ b/plugins/pagerduty/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-pagerduty +## 0.6.2-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.8.1-next.1 + - @backstage/plugin-home-react@0.1.2-next.0 + ## 0.6.2-next.0 ### Patch Changes diff --git a/plugins/pagerduty/package.json b/plugins/pagerduty/package.json index 13d56fd3f2..1ced106c06 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.2-next.0", + "version": "0.6.2-next.1", "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 2bf8f6c147..1cfe50033f 100644 --- a/plugins/periskop-backend/CHANGELOG.md +++ b/plugins/periskop-backend/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-periskop-backend +## 0.1.19-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.0-next.2 + - @backstage/backend-common@0.19.2-next.2 + ## 0.1.19-next.1 ### Patch Changes diff --git a/plugins/periskop-backend/package.json b/plugins/periskop-backend/package.json index 52c7d127b0..70e64188dd 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.19-next.1", + "version": "0.1.19-next.2", "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 a12e00971f..fe031696ed 100644 --- a/plugins/periskop/CHANGELOG.md +++ b/plugins/periskop/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-periskop +## 0.1.19-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.8.1-next.1 + ## 0.1.19-next.1 ### Patch Changes diff --git a/plugins/periskop/package.json b/plugins/periskop/package.json index 3ac124e85c..4e5d87dfeb 100644 --- a/plugins/periskop/package.json +++ b/plugins/periskop/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-periskop", - "version": "0.1.19-next.1", + "version": "0.1.19-next.2", "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 2d641baae8..085dbfb074 100644 --- a/plugins/permission-backend/CHANGELOG.md +++ b/plugins/permission-backend/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-permission-backend +## 0.5.23-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.0-next.2 + - @backstage/backend-common@0.19.2-next.2 + - @backstage/plugin-permission-node@0.7.11-next.2 + - @backstage/plugin-auth-node@0.2.17-next.2 + ## 0.5.23-next.1 ### Patch Changes diff --git a/plugins/permission-backend/package.json b/plugins/permission-backend/package.json index 269cb12061..7e4e087927 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.23-next.1", + "version": "0.5.23-next.2", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/permission-node/CHANGELOG.md b/plugins/permission-node/CHANGELOG.md index 41e5f3ca5b..1fbc7fdabf 100644 --- a/plugins/permission-node/CHANGELOG.md +++ b/plugins/permission-node/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-permission-node +## 0.7.11-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.0-next.2 + - @backstage/backend-common@0.19.2-next.2 + - @backstage/plugin-auth-node@0.2.17-next.2 + ## 0.7.11-next.1 ### Patch Changes diff --git a/plugins/permission-node/package.json b/plugins/permission-node/package.json index c5f30ff4a0..92416abb55 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.11-next.1", + "version": "0.7.11-next.2", "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 f55ad9991e..0f807e1592 100644 --- a/plugins/playlist-backend/CHANGELOG.md +++ b/plugins/playlist-backend/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-playlist-backend +## 0.3.4-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.2-next.2 + - @backstage/plugin-permission-node@0.7.11-next.2 + - @backstage/plugin-auth-node@0.2.17-next.2 + ## 0.3.4-next.1 ### Patch Changes diff --git a/plugins/playlist-backend/package.json b/plugins/playlist-backend/package.json index 5285406e58..6e4e550f5b 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.4-next.1", + "version": "0.3.4-next.2", "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 3850cc3e5d..ed4956ccda 100644 --- a/plugins/playlist/CHANGELOG.md +++ b/plugins/playlist/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-playlist +## 0.1.13-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.8.1-next.1 + ## 0.1.13-next.1 ### Patch Changes diff --git a/plugins/playlist/package.json b/plugins/playlist/package.json index 69e02df8dd..e2fa6468cb 100644 --- a/plugins/playlist/package.json +++ b/plugins/playlist/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-playlist", - "version": "0.1.13-next.1", + "version": "0.1.13-next.2", "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 4a9e2bdb70..d03bd2b237 100644 --- a/plugins/proxy-backend/CHANGELOG.md +++ b/plugins/proxy-backend/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-proxy-backend +## 0.3.0-next.2 + +### Minor Changes + +- 7daf65bfcfa1: Defining proxy endpoints directly under the root `proxy` configuration key is deprecated. Endpoints should now be declared under `proxy.endpoints` instead. The `skipInvalidProxies` and `reviveConsumedRequestBodies` can now also be configured through static configuration. + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.0-next.2 + - @backstage/backend-common@0.19.2-next.2 + ## 0.2.42-next.1 ### Patch Changes diff --git a/plugins/proxy-backend/package.json b/plugins/proxy-backend/package.json index 959c946d55..eb413e472c 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.42-next.1", + "version": "0.3.0-next.2", "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 dbd5fde6df..5e84652c40 100644 --- a/plugins/puppetdb/CHANGELOG.md +++ b/plugins/puppetdb/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-puppetdb +## 0.1.4-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.8.1-next.1 + ## 0.1.4-next.0 ### Patch Changes diff --git a/plugins/puppetdb/package.json b/plugins/puppetdb/package.json index ef9370200e..d7c7209744 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.4-next.0", + "version": "0.1.4-next.1", "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 9789127cc4..5b45b7806f 100644 --- a/plugins/rollbar-backend/CHANGELOG.md +++ b/plugins/rollbar-backend/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-rollbar-backend +## 0.1.45-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.2-next.2 + ## 0.1.45-next.1 ### Patch Changes diff --git a/plugins/rollbar-backend/package.json b/plugins/rollbar-backend/package.json index 3def2395f1..702c90d176 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.45-next.1", + "version": "0.1.45-next.2", "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 6bacf806bc..06c1cd8ef5 100644 --- a/plugins/rollbar/CHANGELOG.md +++ b/plugins/rollbar/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-rollbar +## 0.4.21-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.8.1-next.1 + ## 0.4.21-next.0 ### Patch Changes diff --git a/plugins/rollbar/package.json b/plugins/rollbar/package.json index 8c17895e48..db73661f59 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.21-next.0", + "version": "0.4.21-next.1", "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 ea3e24c720..09d7eb149f 100644 --- a/plugins/scaffolder-backend-module-confluence-to-markdown/CHANGELOG.md +++ b/plugins/scaffolder-backend-module-confluence-to-markdown/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-scaffolder-backend-module-confluence-to-markdown +## 0.2.1-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-scaffolder-node@0.1.6-next.2 + - @backstage/backend-common@0.19.2-next.2 + ## 0.2.1-next.1 ### 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 0d342d1717..e51ca9eeb8 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.2.1-next.1", + "version": "0.2.1-next.2", "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 f6d1e6bd01..665f08bd8b 100644 --- a/plugins/scaffolder-backend-module-cookiecutter/CHANGELOG.md +++ b/plugins/scaffolder-backend-module-cookiecutter/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-scaffolder-backend-module-cookiecutter +## 0.2.24-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-scaffolder-node@0.1.6-next.2 + - @backstage/backend-common@0.19.2-next.2 + ## 0.2.24-next.1 ### Patch Changes diff --git a/plugins/scaffolder-backend-module-cookiecutter/package.json b/plugins/scaffolder-backend-module-cookiecutter/package.json index df1d81bbd3..c995cdc3f4 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.24-next.1", + "version": "0.2.24-next.2", "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 4c50ef46fd..bb47bb5ad0 100644 --- a/plugins/scaffolder-backend-module-gitlab/CHANGELOG.md +++ b/plugins/scaffolder-backend-module-gitlab/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-scaffolder-backend-module-gitlab +## 0.2.3-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-scaffolder-node@0.1.6-next.2 + ## 0.2.3-next.1 ### Patch Changes diff --git a/plugins/scaffolder-backend-module-gitlab/package.json b/plugins/scaffolder-backend-module-gitlab/package.json index 8c9ba33a77..5a540e7094 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.3-next.1", + "version": "0.2.3-next.2", "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 fa3f9201ac..eea495e84e 100644 --- a/plugins/scaffolder-backend-module-rails/CHANGELOG.md +++ b/plugins/scaffolder-backend-module-rails/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-scaffolder-backend-module-rails +## 0.4.17-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-scaffolder-node@0.1.6-next.2 + - @backstage/backend-common@0.19.2-next.2 + ## 0.4.17-next.1 ### Patch Changes diff --git a/plugins/scaffolder-backend-module-rails/package.json b/plugins/scaffolder-backend-module-rails/package.json index c514354955..7d44215e18 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.17-next.1", + "version": "0.4.17-next.2", "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 fbeed9e5e3..d414f1cf58 100644 --- a/plugins/scaffolder-backend-module-sentry/CHANGELOG.md +++ b/plugins/scaffolder-backend-module-sentry/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-scaffolder-backend-module-sentry +## 0.1.8-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-scaffolder-node@0.1.6-next.2 + ## 0.1.8-next.1 ### Patch Changes diff --git a/plugins/scaffolder-backend-module-sentry/package.json b/plugins/scaffolder-backend-module-sentry/package.json index 5b58d1ef87..222c7fd484 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.8-next.1", + "version": "0.1.8-next.2", "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 fcf915a348..284494c3c8 100644 --- a/plugins/scaffolder-backend-module-yeoman/CHANGELOG.md +++ b/plugins/scaffolder-backend-module-yeoman/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-scaffolder-backend-module-yeoman +## 0.2.21-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-scaffolder-node@0.1.6-next.2 + ## 0.2.21-next.1 ### Patch Changes diff --git a/plugins/scaffolder-backend-module-yeoman/package.json b/plugins/scaffolder-backend-module-yeoman/package.json index 6e90170dab..5b4ce071f6 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.21-next.1", + "version": "0.2.21-next.2", "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 dc8140c996..a5df5d6138 100644 --- a/plugins/scaffolder-backend/CHANGELOG.md +++ b/plugins/scaffolder-backend/CHANGELOG.md @@ -1,5 +1,21 @@ # @backstage/plugin-scaffolder-backend +## 1.15.2-next.2 + +### Patch Changes + +- 33c76caef72a: Added examples for the fs:delete and fs:rename actions +- 0b1d775be05b: Adds examples to a few scaffolder actions. +- Updated dependencies + - @backstage/plugin-catalog-backend@1.12.0-next.2 + - @backstage/backend-plugin-api@0.6.0-next.2 + - @backstage/backend-tasks@0.5.5-next.2 + - @backstage/plugin-scaffolder-node@0.1.6-next.2 + - @backstage/backend-common@0.19.2-next.2 + - @backstage/plugin-catalog-node@1.4.1-next.2 + - @backstage/plugin-permission-node@0.7.11-next.2 + - @backstage/plugin-auth-node@0.2.17-next.2 + ## 1.15.2-next.1 ### Patch Changes diff --git a/plugins/scaffolder-backend/package.json b/plugins/scaffolder-backend/package.json index d1481e2068..9db076a4a9 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.2-next.1", + "version": "1.15.2-next.2", "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 fd1605c2df..607836b141 100644 --- a/plugins/scaffolder-node/CHANGELOG.md +++ b/plugins/scaffolder-node/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-scaffolder-node +## 0.1.6-next.2 + +### Patch Changes + +- 0b1d775be05b: Export `TemplateExample` from the `createTemplateAction` type. +- Updated dependencies + - @backstage/backend-plugin-api@0.6.0-next.2 + - @backstage/backend-common@0.19.2-next.2 + ## 0.1.6-next.1 ### Patch Changes diff --git a/plugins/scaffolder-node/package.json b/plugins/scaffolder-node/package.json index 555a25417d..7f78352323 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.6-next.1", + "version": "0.1.6-next.2", "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 e4762983c7..68e1db12ca 100644 --- a/plugins/scaffolder-react/CHANGELOG.md +++ b/plugins/scaffolder-react/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-scaffolder-react +## 1.5.2-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.8.1-next.1 + ## 1.5.2-next.0 ### Patch Changes diff --git a/plugins/scaffolder-react/package.json b/plugins/scaffolder-react/package.json index ddf27cc83d..448199d709 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.2-next.0", + "version": "1.5.2-next.1", "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 414e7acf53..2f9d1341e4 100644 --- a/plugins/scaffolder/CHANGELOG.md +++ b/plugins/scaffolder/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-scaffolder +## 1.14.2-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.8.1-next.1 + - @backstage/plugin-scaffolder-react@1.5.2-next.1 + - @backstage/integration-react@1.1.16-next.1 + ## 1.14.2-next.1 ### Patch Changes diff --git a/plugins/scaffolder/package.json b/plugins/scaffolder/package.json index f010329b14..4291016fb8 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.2-next.1", + "version": "1.14.2-next.2", "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 b2a9d07118..f9b716d456 100644 --- a/plugins/search-backend-module-catalog/CHANGELOG.md +++ b/plugins/search-backend-module-catalog/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-search-backend-module-catalog +## 0.1.4-next.2 + +### Patch Changes + +- 29f77f923c71: Ensure that all services are dependency injected into the module instead of taken from options +- Updated dependencies + - @backstage/backend-plugin-api@0.6.0-next.2 + - @backstage/backend-tasks@0.5.5-next.2 + - @backstage/backend-common@0.19.2-next.2 + - @backstage/plugin-catalog-node@1.4.1-next.2 + - @backstage/plugin-search-backend-node@1.2.4-next.2 + ## 0.1.4-next.1 ### Patch Changes diff --git a/plugins/search-backend-module-catalog/package.json b/plugins/search-backend-module-catalog/package.json index 37473ef04b..f279ec399d 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.4-next.1", + "version": "0.1.4-next.2", "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 2191fa05ff..c8ff1e32ad 100644 --- a/plugins/search-backend-module-elasticsearch/CHANGELOG.md +++ b/plugins/search-backend-module-elasticsearch/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-search-backend-module-elasticsearch +## 1.3.3-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.0-next.2 + - @backstage/backend-common@0.19.2-next.2 + - @backstage/plugin-search-backend-node@1.2.4-next.2 + ## 1.3.3-next.1 ### Patch Changes diff --git a/plugins/search-backend-module-elasticsearch/package.json b/plugins/search-backend-module-elasticsearch/package.json index f119b1b28a..9c68cfdaa0 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.3-next.1", + "version": "1.3.3-next.2", "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 fc9fedf290..4d954aea2f 100644 --- a/plugins/search-backend-module-explore/CHANGELOG.md +++ b/plugins/search-backend-module-explore/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-search-backend-module-explore +## 0.1.4-next.2 + +### Patch Changes + +- 29f77f923c71: Ensure that all services are dependency injected into the module instead of taken from options +- Updated dependencies + - @backstage/backend-plugin-api@0.6.0-next.2 + - @backstage/backend-tasks@0.5.5-next.2 + - @backstage/backend-common@0.19.2-next.2 + - @backstage/plugin-search-backend-node@1.2.4-next.2 + ## 0.1.4-next.1 ### Patch Changes diff --git a/plugins/search-backend-module-explore/package.json b/plugins/search-backend-module-explore/package.json index 13c6ce474c..e8f3835b39 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.4-next.1", + "version": "0.1.4-next.2", "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 3bc95aaa2d..9bd8664ff7 100644 --- a/plugins/search-backend-module-pg/CHANGELOG.md +++ b/plugins/search-backend-module-pg/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-search-backend-module-pg +## 0.5.9-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.0-next.2 + - @backstage/backend-common@0.19.2-next.2 + - @backstage/plugin-search-backend-node@1.2.4-next.2 + ## 0.5.9-next.1 ### Patch Changes diff --git a/plugins/search-backend-module-pg/package.json b/plugins/search-backend-module-pg/package.json index 63c8061fea..875af316b2 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.9-next.1", + "version": "0.5.9-next.2", "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 6fc2307106..f456f03030 100644 --- a/plugins/search-backend-module-techdocs/CHANGELOG.md +++ b/plugins/search-backend-module-techdocs/CHANGELOG.md @@ -1,5 +1,18 @@ # @backstage/plugin-search-backend-module-techdocs +## 0.1.4-next.2 + +### Patch Changes + +- 29f77f923c71: Ensure that all services are dependency injected into the module instead of taken from options +- Updated dependencies + - @backstage/backend-plugin-api@0.6.0-next.2 + - @backstage/backend-tasks@0.5.5-next.2 + - @backstage/backend-common@0.19.2-next.2 + - @backstage/plugin-catalog-node@1.4.1-next.2 + - @backstage/plugin-search-backend-node@1.2.4-next.2 + - @backstage/plugin-techdocs-node@1.7.4-next.2 + ## 0.1.4-next.1 ### Patch Changes diff --git a/plugins/search-backend-module-techdocs/package.json b/plugins/search-backend-module-techdocs/package.json index ffc9d0ff4f..1ee329075d 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.4-next.1", + "version": "0.1.4-next.2", "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 a8b8b930ee..2733e5b22d 100644 --- a/plugins/search-backend-node/CHANGELOG.md +++ b/plugins/search-backend-node/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-search-backend-node +## 1.2.4-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.0-next.2 + - @backstage/backend-tasks@0.5.5-next.2 + - @backstage/backend-common@0.19.2-next.2 + ## 1.2.4-next.1 ### Patch Changes diff --git a/plugins/search-backend-node/package.json b/plugins/search-backend-node/package.json index 842c636bba..845b9bddd1 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.4-next.1", + "version": "1.2.4-next.2", "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 db52ff9e55..52fd4963ce 100644 --- a/plugins/search-backend/CHANGELOG.md +++ b/plugins/search-backend/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-search-backend +## 1.4.0-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.0-next.2 + - @backstage/backend-common@0.19.2-next.2 + - @backstage/plugin-permission-node@0.7.11-next.2 + - @backstage/plugin-search-backend-node@1.2.4-next.2 + - @backstage/plugin-auth-node@0.2.17-next.2 + ## 1.4.0-next.1 ### Patch Changes diff --git a/plugins/search-backend/package.json b/plugins/search-backend/package.json index 167e4d835a..c2357f2a0b 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.4.0-next.1", + "version": "1.4.0-next.2", "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 cbc0187d23..73650ae636 100644 --- a/plugins/search/CHANGELOG.md +++ b/plugins/search/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-search +## 1.3.4-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.8.1-next.1 + ## 1.3.4-next.0 ### Patch Changes diff --git a/plugins/search/package.json b/plugins/search/package.json index 7a8d7dffab..5d935d57b8 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.4-next.0", + "version": "1.3.4-next.1", "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 f4bac35016..1ca911f366 100644 --- a/plugins/sentry/CHANGELOG.md +++ b/plugins/sentry/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-sentry +## 0.5.6-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.8.1-next.1 + ## 0.5.6-next.0 ### Patch Changes diff --git a/plugins/sentry/package.json b/plugins/sentry/package.json index c0bc4c1246..3c700575b0 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.6-next.0", + "version": "0.5.6-next.1", "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 3ef87ad9d1..95388cda61 100644 --- a/plugins/sonarqube-backend/CHANGELOG.md +++ b/plugins/sonarqube-backend/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-sonarqube-backend +## 0.2.2-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.2-next.2 + ## 0.2.2-next.1 ### Patch Changes diff --git a/plugins/sonarqube-backend/package.json b/plugins/sonarqube-backend/package.json index 2df0d1fd71..0473d2c165 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.2-next.1", + "version": "0.2.2-next.2", "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 59b6e51883..531ada7eda 100644 --- a/plugins/sonarqube/CHANGELOG.md +++ b/plugins/sonarqube/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-sonarqube +## 0.7.2-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.8.1-next.1 + ## 0.7.2-next.1 ### Patch Changes diff --git a/plugins/sonarqube/package.json b/plugins/sonarqube/package.json index ed3bc6142e..e892f2d5e3 100644 --- a/plugins/sonarqube/package.json +++ b/plugins/sonarqube/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-sonarqube", "description": "", - "version": "0.7.2-next.1", + "version": "0.7.2-next.2", "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 3d6ec3088f..427d54ef33 100644 --- a/plugins/splunk-on-call/CHANGELOG.md +++ b/plugins/splunk-on-call/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-splunk-on-call +## 0.4.10-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.8.1-next.1 + ## 0.4.10-next.0 ### Patch Changes diff --git a/plugins/splunk-on-call/package.json b/plugins/splunk-on-call/package.json index fb39c0da1a..181e5d2565 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.10-next.0", + "version": "0.4.10-next.1", "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 aa16d5b8d4..dd3d187afe 100644 --- a/plugins/stack-overflow-backend/CHANGELOG.md +++ b/plugins/stack-overflow-backend/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-stack-overflow-backend +## 0.2.4-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.2-next.2 + ## 0.2.4-next.1 ### Patch Changes diff --git a/plugins/stack-overflow-backend/package.json b/plugins/stack-overflow-backend/package.json index c2fbc85def..88f9d7fb18 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.4-next.1", + "version": "0.2.4-next.2", "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 a678af8513..e41eaa1898 100644 --- a/plugins/tech-insights-backend-module-jsonfc/CHANGELOG.md +++ b/plugins/tech-insights-backend-module-jsonfc/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-tech-insights-backend-module-jsonfc +## 0.1.32-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.2-next.2 + - @backstage/plugin-tech-insights-node@0.4.6-next.2 + ## 0.1.32-next.1 ### Patch Changes diff --git a/plugins/tech-insights-backend-module-jsonfc/package.json b/plugins/tech-insights-backend-module-jsonfc/package.json index 021fed330c..ca3849773a 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.32-next.1", + "version": "0.1.32-next.2", "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 f652b66b77..f6a96bdb5e 100644 --- a/plugins/tech-insights-backend/CHANGELOG.md +++ b/plugins/tech-insights-backend/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-tech-insights-backend +## 0.5.14-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-tasks@0.5.5-next.2 + - @backstage/backend-common@0.19.2-next.2 + - @backstage/plugin-tech-insights-node@0.4.6-next.2 + ## 0.5.14-next.1 ### Patch Changes diff --git a/plugins/tech-insights-backend/package.json b/plugins/tech-insights-backend/package.json index c5dfc94afb..af66228d4e 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.14-next.1", + "version": "0.5.14-next.2", "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 57ab233cfd..ec3195f9ea 100644 --- a/plugins/tech-insights-node/CHANGELOG.md +++ b/plugins/tech-insights-node/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-tech-insights-node +## 0.4.6-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-tasks@0.5.5-next.2 + - @backstage/backend-common@0.19.2-next.2 + ## 0.4.6-next.1 ### Patch Changes diff --git a/plugins/tech-insights-node/package.json b/plugins/tech-insights-node/package.json index f89bb41748..9499f65a83 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.6-next.1", + "version": "0.4.6-next.2", "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 c415a5a5af..5be97e85af 100644 --- a/plugins/tech-insights/CHANGELOG.md +++ b/plugins/tech-insights/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-tech-insights +## 0.3.13-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.8.1-next.1 + ## 0.3.13-next.1 ### Patch Changes diff --git a/plugins/tech-insights/package.json b/plugins/tech-insights/package.json index 21f65edd6b..d3318c46fd 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.13-next.1", + "version": "0.3.13-next.2", "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 ffa103dd67..12af94f42a 100644 --- a/plugins/techdocs-addons-test-utils/CHANGELOG.md +++ b/plugins/techdocs-addons-test-utils/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-techdocs-addons-test-utils +## 1.0.17-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog@1.12.1-next.2 + - @backstage/plugin-techdocs@1.6.6-next.2 + - @backstage/integration-react@1.1.16-next.1 + ## 1.0.17-next.1 ### Patch Changes diff --git a/plugins/techdocs-addons-test-utils/package.json b/plugins/techdocs-addons-test-utils/package.json index a718d5a842..e9cf034e07 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.17-next.1", + "version": "1.0.17-next.2", "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 ebb0e6c2ed..3dbae8c0a3 100644 --- a/plugins/techdocs-backend/CHANGELOG.md +++ b/plugins/techdocs-backend/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-techdocs-backend +## 1.6.5-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-search-backend-module-techdocs@0.1.4-next.2 + - @backstage/backend-plugin-api@0.6.0-next.2 + - @backstage/backend-common@0.19.2-next.2 + - @backstage/plugin-techdocs-node@1.7.4-next.2 + ## 1.6.5-next.1 ### Patch Changes diff --git a/plugins/techdocs-backend/package.json b/plugins/techdocs-backend/package.json index 87d10c91ae..561d3a81fb 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.5-next.1", + "version": "1.6.5-next.2", "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 4f3b73146d..4d5dbcf11e 100644 --- a/plugins/techdocs-node/CHANGELOG.md +++ b/plugins/techdocs-node/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-techdocs-node +## 1.7.4-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.2-next.2 + ## 1.7.4-next.1 ### Patch Changes diff --git a/plugins/techdocs-node/package.json b/plugins/techdocs-node/package.json index 5f0f3d69d7..a255d5fea1 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.4-next.1", + "version": "1.7.4-next.2", "main": "src/index.ts", "types": "src/index.ts", "publishConfig": { diff --git a/plugins/techdocs/CHANGELOG.md b/plugins/techdocs/CHANGELOG.md index fe0813b36a..3dcc35d072 100644 --- a/plugins/techdocs/CHANGELOG.md +++ b/plugins/techdocs/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-techdocs +## 1.6.6-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.8.1-next.1 + - @backstage/integration-react@1.1.16-next.1 + ## 1.6.6-next.1 ### Patch Changes diff --git a/plugins/techdocs/package.json b/plugins/techdocs/package.json index 080401b9f6..c4f09c9f17 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.6-next.1", + "version": "1.6.6-next.2", "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 ab059adbff..9d2a85b2c4 100644 --- a/plugins/todo-backend/CHANGELOG.md +++ b/plugins/todo-backend/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-todo-backend +## 0.2.0-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.0-next.2 + - @backstage/backend-common@0.19.2-next.2 + - @backstage/plugin-catalog-node@1.4.1-next.2 + ## 0.2.0-next.1 ### Patch Changes diff --git a/plugins/todo-backend/package.json b/plugins/todo-backend/package.json index 520fac0215..4c864ea379 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.2.0-next.1", + "version": "0.2.0-next.2", "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 9a7758da72..7d1570ae20 100644 --- a/plugins/todo/CHANGELOG.md +++ b/plugins/todo/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-todo +## 0.2.23-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.8.1-next.1 + ## 0.2.23-next.0 ### Patch Changes diff --git a/plugins/todo/package.json b/plugins/todo/package.json index fa18bf94bb..51a37bffe5 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.23-next.0", + "version": "0.2.23-next.1", "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 c33eab6b77..869280ceb9 100644 --- a/plugins/user-settings-backend/CHANGELOG.md +++ b/plugins/user-settings-backend/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-user-settings-backend +## 0.1.12-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.0-next.2 + - @backstage/backend-common@0.19.2-next.2 + - @backstage/plugin-auth-node@0.2.17-next.2 + ## 0.1.12-next.1 ### Patch Changes diff --git a/plugins/user-settings-backend/package.json b/plugins/user-settings-backend/package.json index b472754b2b..f2eca3e6d4 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.12-next.1", + "version": "0.1.12-next.2", "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 026ea410f9..c015344dad 100644 --- a/plugins/user-settings/CHANGELOG.md +++ b/plugins/user-settings/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-user-settings +## 0.7.6-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.8.1-next.1 + ## 0.7.6-next.0 ### Patch Changes diff --git a/plugins/user-settings/package.json b/plugins/user-settings/package.json index 57a6d89be0..6a5bc24770 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.6-next.0", + "version": "0.7.6-next.1", "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 cac3188526..d28b252b31 100644 --- a/plugins/vault-backend/CHANGELOG.md +++ b/plugins/vault-backend/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-vault-backend +## 0.3.4-next.2 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-tasks@0.5.5-next.2 + - @backstage/backend-common@0.19.2-next.2 + ## 0.3.4-next.1 ### Patch Changes diff --git a/plugins/vault-backend/package.json b/plugins/vault-backend/package.json index 44d01c576b..c40eabf3c7 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.4-next.1", + "version": "0.3.4-next.2", "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 d6ba597c0d..351fe4b168 100644 --- a/plugins/vault/CHANGELOG.md +++ b/plugins/vault/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-vault +## 0.1.15-next.1 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.8.1-next.1 + ## 0.1.15-next.0 ### Patch Changes diff --git a/plugins/vault/package.json b/plugins/vault/package.json index 7d77495527..e0c147c041 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.15-next.0", + "version": "0.1.15-next.1", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", From 959a6bc83312fd6734797122a4d5b52664645d89 Mon Sep 17 00:00:00 2001 From: Vincenzo Scamporlino Date: Tue, 8 Aug 2023 17:03:57 +0200 Subject: [PATCH 093/372] EntitySwitch: do not render anything in case no entity is present Signed-off-by: Vincenzo Scamporlino --- .../src/components/EntitySwitch/EntitySwitch.tsx | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/plugins/catalog/src/components/EntitySwitch/EntitySwitch.tsx b/plugins/catalog/src/components/EntitySwitch/EntitySwitch.tsx index 90de358ef9..b12495052e 100644 --- a/plugins/catalog/src/components/EntitySwitch/EntitySwitch.tsx +++ b/plugins/catalog/src/components/EntitySwitch/EntitySwitch.tsx @@ -77,18 +77,14 @@ export const EntitySwitch = (props: EntitySwitchProps) => { }) .getElements() .flatMap((element: ReactElement) => { + // If the entity is missing or there is an error, render nothing + if (!entity) { + return []; + } + const { if: condition, children: elementsChildren } = element.props as EntitySwitchCase; - // If the entity is missing or there is an error, render the default page - if (!entity) { - return [ - { - if: condition === undefined, - children: elementsChildren, - }, - ]; - } return [ { if: condition?.(entity, { apis }), From 5ad126667787a1ffd8165deedfbc7f58b2d7125a Mon Sep 17 00:00:00 2001 From: Vincenzo Scamporlino Date: Tue, 8 Aug 2023 17:05:29 +0200 Subject: [PATCH 094/372] EntitySwitch: add missing tests and small improvements Signed-off-by: Vincenzo Scamporlino --- .../EntitySwitch/EntitySwitch.test.tsx | 86 +++++++++++++++++-- 1 file changed, 81 insertions(+), 5 deletions(-) diff --git a/plugins/catalog/src/components/EntitySwitch/EntitySwitch.test.tsx b/plugins/catalog/src/components/EntitySwitch/EntitySwitch.test.tsx index 3a8795ccb7..c93922e938 100644 --- a/plugins/catalog/src/components/EntitySwitch/EntitySwitch.test.tsx +++ b/plugins/catalog/src/components/EntitySwitch/EntitySwitch.test.tsx @@ -19,7 +19,7 @@ import { AsyncEntityProvider, EntityProvider, } from '@backstage/plugin-catalog-react'; -import { render, screen } from '@testing-library/react'; +import { render, screen, waitFor } from '@testing-library/react'; import React, { useEffect } from 'react'; import { isKind } from './conditions'; import { EntitySwitch } from './EntitySwitch'; @@ -35,6 +35,80 @@ const Wrapper = ({ children }: { children?: React.ReactNode }) => ( ); describe('EntitySwitch', () => { + it('should render only the first match', () => { + const content = ( + + + + + + ); + + render( + + + {content} + + , + ); + + expect(screen.getByText('A')).toBeInTheDocument(); + expect(screen.queryByText('B')).not.toBeInTheDocument(); + expect(screen.queryByText('C')).not.toBeInTheDocument(); + }); + + it('should render the fallback if no cases are matching', () => { + const content = ( + + + + + + ); + + render( + + + {content} + + , + ); + + expect(screen.queryByText('A')).not.toBeInTheDocument(); + expect(screen.queryByText('B')).not.toBeInTheDocument(); + expect(screen.getByText('C')).toBeInTheDocument(); + }); + + it('should render only the first fallback in case no cases are matching', () => { + const content = ( + + + + + + + ); + + render( + + + {content} + + , + ); + + expect(screen.queryByText('A')).not.toBeInTheDocument(); + expect(screen.queryByText('B')).not.toBeInTheDocument(); + expect(screen.getByText('C')).toBeInTheDocument(); + expect(screen.queryByText('D')).not.toBeInTheDocument(); + }); + it('should switch child when entity switches', () => { const content = ( @@ -96,7 +170,7 @@ describe('EntitySwitch', () => { expect(screen.queryByText('A')).not.toBeInTheDocument(); expect(screen.queryByText('B')).not.toBeInTheDocument(); - expect(screen.getByText('C')).toBeInTheDocument(); + expect(screen.queryByText('C')).not.toBeInTheDocument(); }); it('should switch child when filters switch', () => { @@ -383,10 +457,10 @@ describe('EntitySwitch', () => { expect(screen.queryByText('A')).not.toBeInTheDocument(); }); - it('should switch with sync condition that throws', async () => { + it('should switch with async condition that throws', async () => { const entity = { metadata: { name: 'mock' }, kind: 'component' } as Entity; - const shouldRender = () => Promise.reject(); + const shouldRender = jest.fn().mockRejectedValue(undefined); render( @@ -399,7 +473,9 @@ describe('EntitySwitch', () => { , ); - await expect(screen.findByText('C')).resolves.toBeInTheDocument(); + await waitFor(() => expect(shouldRender).toHaveBeenCalled()); + + expect(screen.getByText('C')).toBeInTheDocument(); expect(screen.queryByText('A')).not.toBeInTheDocument(); expect(screen.queryByText('B')).not.toBeInTheDocument(); }); From 50eb5efd7e7b04019e4c706c1a62aa0e1e799142 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Tue, 8 Aug 2023 17:13:53 +0200 Subject: [PATCH 095/372] changesets: use inline code block Signed-off-by: Patrik Oldsberg --- .changeset/funny-dancers-deliver.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.changeset/funny-dancers-deliver.md b/.changeset/funny-dancers-deliver.md index 8d0b1f823d..0518fe0a01 100644 --- a/.changeset/funny-dancers-deliver.md +++ b/.changeset/funny-dancers-deliver.md @@ -2,4 +2,4 @@ '@backstage/plugin-scaffolder-backend': patch --- -Added examples for the fs:delete and fs:rename actions +Added examples for the `fs:delete` and `fs:rename` actions From f0ccb95a29fdbad66f7a38a31e6b10a1070ee54c Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 8 Aug 2023 17:41:45 +0000 Subject: [PATCH 096/372] fix(deps): update dependency @stoplight/types to v13.18.0 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 84a1db2846..7bbc842038 100644 --- a/yarn.lock +++ b/yarn.lock @@ -15495,12 +15495,12 @@ __metadata: linkType: hard "@stoplight/types@npm:^12.3.0 || ^13.0.0, @stoplight/types@npm:^13.0.0, @stoplight/types@npm:^13.14.0, @stoplight/types@npm:^13.15.0, @stoplight/types@npm:^13.6.0": - version: 13.15.0 - resolution: "@stoplight/types@npm:13.15.0" + version: 13.18.0 + resolution: "@stoplight/types@npm:13.18.0" dependencies: "@types/json-schema": ^7.0.4 utility-types: ^3.10.0 - checksum: 839f0bbedb791bd6792ef22b6a821ca504b14b705927f7c510c4cdcc591eddc8818c82b8857129501aa809d6f369b82e4487bfe18dfc5ce00e28317ecad2df9a + checksum: 17f464b6986fcb07719584cbb55c59e1c8d72d6d000ed64b13cae92acbdc069e5a725b4d14c4a2998eb701a0289e6ce3aee151e4200698df906ba058747e210f languageName: node linkType: hard From 89435f72405aa5ab6a11389bb578dd4bbd1e99eb Mon Sep 17 00:00:00 2001 From: Robert Bunning Date: Tue, 8 Aug 2023 13:50:27 -0400 Subject: [PATCH 097/372] Display http errors first. Allow json parsing errors to escape and be displayed Signed-off-by: Robert Bunning --- plugins/newrelic/src/api/index.test.ts | 84 +++++++++++++------------- plugins/newrelic/src/api/index.ts | 34 ++++++----- 2 files changed, 61 insertions(+), 57 deletions(-) diff --git a/plugins/newrelic/src/api/index.test.ts b/plugins/newrelic/src/api/index.test.ts index f45482be87..d4ed4a1691 100644 --- a/plugins/newrelic/src/api/index.test.ts +++ b/plugins/newrelic/src/api/index.test.ts @@ -20,6 +20,10 @@ import { rest } from 'msw'; import { setupServer } from 'msw/node'; import { MockFetchApi, setupRequestMockHandlers } from '@backstage/test-utils'; +const mockedDiscoveryApi: DiscoveryApi = { + getBaseUrl: async () => 'https://test.test', +}; + beforeEach(() => { jest.resetAllMocks(); }); @@ -46,10 +50,6 @@ describe('NewRelicClient', () => { ), ); - const mockedDiscoveryApi: DiscoveryApi = { - getBaseUrl: jest.fn().mockResolvedValueOnce('https://test.test'), - }; - const mockedFetchApi = new MockFetchApi(); const fetchSpy = jest.spyOn(mockedFetchApi, 'fetch'); @@ -65,10 +65,6 @@ describe('NewRelicClient', () => { ); it('Correctly reads all pages of results and returns the expected results', async () => { - const mockedDiscoveryApi: DiscoveryApi = { - getBaseUrl: jest.fn().mockResolvedValueOnce('https://test.test'), - }; - const mockedApplicationOne: NewRelicApplication = { id: 1, application_summary: { @@ -219,10 +215,6 @@ describe('NewRelicClient', () => { test.each([['Link'], ['LINK'], ['lINK']])( 'It does not attempt pagination when the link header name is invalid (%p)', async linkHeaderName => { - const mockedDiscoveryApi: DiscoveryApi = { - getBaseUrl: jest.fn().mockResolvedValueOnce('https://test.test'), - }; - const mockedFetchApi = new MockFetchApi(); const fetchSpy = jest.spyOn(mockedFetchApi, 'fetch'); @@ -271,10 +263,6 @@ describe('NewRelicClient', () => { ])( 'It does not attempt pagination when the link header value is invalid (%p)', async linkHeaderValue => { - const mockedDiscoveryApi: DiscoveryApi = { - getBaseUrl: jest.fn().mockResolvedValueOnce('https://test.test'), - }; - const mockedFetchApi = new MockFetchApi(); const fetchSpy = jest.spyOn(mockedFetchApi, 'fetch'); @@ -309,19 +297,38 @@ describe('NewRelicClient', () => { ); test.each([ - [404, { error: { title: 'TESTING' } }], - [500, {}], + ['Error communicating with New Relic: Not Found', 404, JSON.stringify({})], + [ + 'Error communicating with New Relic: ERROR TITLE', + 404, + JSON.stringify({ + error: { + title: 'ERROR TITLE', + }, + }), + ], + [ + 'Error communicating with New Relic: Internal Server Error', + 500, + JSON.stringify(undefined), + ], + [ + 'Error communicating with New Relic: Internal Server Error', + 500, + JSON.stringify(null), + ], + [ + 'Error communicating with New Relic: Internal Server Error', + 500, + ' { - const mockedDiscoveryApi: DiscoveryApi = { - getBaseUrl: jest.fn().mockResolvedValueOnce('https://test.test'), - }; - + 'It throws this error: %p when the status code is %p and the body is %j', + async (expectedErrorMessage, statusCode, body) => { server.use( rest.get( 'https://test.test/newrelic/apm/api/applications.json', - (_, res, ctx) => res(ctx.status(statusCode), ctx.json(jsonBody)), + (_, res, ctx) => res(ctx.status(statusCode), ctx.body(body)), ), ); @@ -329,36 +336,31 @@ describe('NewRelicClient', () => { discoveryApi: mockedDiscoveryApi, fetchApi: new MockFetchApi(), }); - const actual = await client.getApplications(); - expect(actual).toStrictEqual({ applications: [] }); + await expect(client.getApplications()).rejects.toThrow( + expectedErrorMessage, + ); }, ); - it('Returns an empty array when the fetch itself throws an error', async () => { - const mockedDiscoveryApi: DiscoveryApi = { - getBaseUrl: jest.fn().mockResolvedValueOnce('https://test.test'), - }; - + it('Throws an error when the body is invalid json but the status code is 200', async () => { server.use( - rest.get('https://test.test/newrelic/apm/api/applications.json', () => { - throw new Error('Network Error'); - }), + rest.get( + 'https://test.test/newrelic/apm/api/applications.json', + (_, res, ctx) => res(ctx.status(200), ctx.body(' { - const mockedDiscoveryApi: DiscoveryApi = { - getBaseUrl: jest.fn().mockResolvedValueOnce('https://test.test'), - }; + const getBaseUrlSpy = jest.spyOn(mockedDiscoveryApi, 'getBaseUrl'); server.use( rest.get( @@ -377,6 +379,6 @@ describe('NewRelicClient', () => { await client.getApplications(); await client.getApplications(); - expect(mockedDiscoveryApi.getBaseUrl).toHaveBeenCalledTimes(1); + expect(getBaseUrlSpy).toHaveBeenCalledTimes(1); }); }); diff --git a/plugins/newrelic/src/api/index.ts b/plugins/newrelic/src/api/index.ts index 3fdebd1494..b37575b163 100644 --- a/plugins/newrelic/src/api/index.ts +++ b/plugins/newrelic/src/api/index.ts @@ -102,39 +102,41 @@ export class NewRelicClient implements NewRelicApi { this.baseUrl = `${proxyUrl}${this.proxyPathBase}/apm/api/applications.json`; } - try { - const applications: NewRelicApplication[] = []; - let targetUrl = this.baseUrl; + const applications: NewRelicApplication[] = []; + let targetUrl = this.baseUrl; - do { - const { nextPageUrl, applicationsFromReadPage } = - await this.fetchNewRelic(targetUrl); + do { + const { nextPageUrl, applicationsFromReadPage } = + await this.fetchNewRelic(targetUrl); - targetUrl = nextPageUrl ?? ''; - applications.push(...applicationsFromReadPage); - } while (!!targetUrl); + targetUrl = nextPageUrl ?? ''; + applications.push(...applicationsFromReadPage); + } while (!!targetUrl); - return { applications }; - } catch (e) { - return { applications: [] }; - } + return { applications }; } private async fetchNewRelic( targetUrl: string, ): Promise { const response = await this.fetchApi.fetch(targetUrl); - const responseJson = await response.json(); if (!response.ok) { + let specificErrorTitle = undefined; + try { + specificErrorTitle = (await response.json())?.error?.title; + } catch (e) { + /* empty */ + } + throw new Error( `Error communicating with New Relic: ${ - responseJson?.error?.title || response.statusText + specificErrorTitle || response.statusText }`, ); } - const readResponse = responseJson as NewRelicApplications; + const readResponse = (await response.json()) as NewRelicApplications; const linkHeader = response.headers.get('link'); const parseResult = parseLinkHeader(linkHeader); const nextPageNumber = parseResult?.next?.page; From 28803a7e200b62e63015634a9b6ea8e4534ee7e3 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 8 Aug 2023 20:09:35 +0000 Subject: [PATCH 098/372] fix(deps): update aws-sdk-js-v3 monorepo to v3.387.0 Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- yarn.lock | 1266 ++++++++++++++++++++++++++--------------------------- 1 file changed, 612 insertions(+), 654 deletions(-) diff --git a/yarn.lock b/yarn.lock index 84a1db2846..de57b2ee01 100644 --- a/yarn.lock +++ b/yarn.lock @@ -569,498 +569,457 @@ __metadata: languageName: node linkType: hard -"@aws-sdk/client-cognito-identity@npm:3.382.0": - version: 3.382.0 - resolution: "@aws-sdk/client-cognito-identity@npm:3.382.0" +"@aws-sdk/client-cognito-identity@npm:3.387.0": + version: 3.387.0 + resolution: "@aws-sdk/client-cognito-identity@npm:3.387.0" dependencies: "@aws-crypto/sha256-browser": 3.0.0 "@aws-crypto/sha256-js": 3.0.0 - "@aws-sdk/client-sts": 3.382.0 - "@aws-sdk/credential-provider-node": 3.382.0 - "@aws-sdk/middleware-host-header": 3.379.1 - "@aws-sdk/middleware-logger": 3.378.0 - "@aws-sdk/middleware-recursion-detection": 3.378.0 - "@aws-sdk/middleware-signing": 3.379.1 - "@aws-sdk/middleware-user-agent": 3.382.0 - "@aws-sdk/types": 3.378.0 - "@aws-sdk/util-endpoints": 3.382.0 - "@aws-sdk/util-user-agent-browser": 3.378.0 - "@aws-sdk/util-user-agent-node": 3.378.0 - "@smithy/config-resolver": ^2.0.1 - "@smithy/fetch-http-handler": ^2.0.1 - "@smithy/hash-node": ^2.0.1 - "@smithy/invalid-dependency": ^2.0.1 - "@smithy/middleware-content-length": ^2.0.1 - "@smithy/middleware-endpoint": ^2.0.1 - "@smithy/middleware-retry": ^2.0.1 - "@smithy/middleware-serde": ^2.0.1 + "@aws-sdk/client-sts": 3.387.0 + "@aws-sdk/credential-provider-node": 3.387.0 + "@aws-sdk/middleware-host-header": 3.387.0 + "@aws-sdk/middleware-logger": 3.387.0 + "@aws-sdk/middleware-recursion-detection": 3.387.0 + "@aws-sdk/middleware-signing": 3.387.0 + "@aws-sdk/middleware-user-agent": 3.387.0 + "@aws-sdk/types": 3.387.0 + "@aws-sdk/util-endpoints": 3.387.0 + "@aws-sdk/util-user-agent-browser": 3.387.0 + "@aws-sdk/util-user-agent-node": 3.387.0 + "@smithy/config-resolver": ^2.0.2 + "@smithy/fetch-http-handler": ^2.0.2 + "@smithy/hash-node": ^2.0.2 + "@smithy/invalid-dependency": ^2.0.2 + "@smithy/middleware-content-length": ^2.0.2 + "@smithy/middleware-endpoint": ^2.0.2 + "@smithy/middleware-retry": ^2.0.2 + "@smithy/middleware-serde": ^2.0.2 "@smithy/middleware-stack": ^2.0.0 - "@smithy/node-config-provider": ^2.0.1 - "@smithy/node-http-handler": ^2.0.1 - "@smithy/protocol-http": ^2.0.1 - "@smithy/smithy-client": ^2.0.1 - "@smithy/types": ^2.0.2 - "@smithy/url-parser": ^2.0.1 + "@smithy/node-config-provider": ^2.0.2 + "@smithy/node-http-handler": ^2.0.2 + "@smithy/protocol-http": ^2.0.2 + "@smithy/smithy-client": ^2.0.2 + "@smithy/types": ^2.1.0 + "@smithy/url-parser": ^2.0.2 "@smithy/util-base64": ^2.0.0 "@smithy/util-body-length-browser": ^2.0.0 "@smithy/util-body-length-node": ^2.0.0 - "@smithy/util-defaults-mode-browser": ^2.0.1 - "@smithy/util-defaults-mode-node": ^2.0.1 + "@smithy/util-defaults-mode-browser": ^2.0.2 + "@smithy/util-defaults-mode-node": ^2.0.2 "@smithy/util-retry": ^2.0.0 "@smithy/util-utf8": ^2.0.0 tslib: ^2.5.0 - checksum: 42f44e01e751358f427c0a60b4b996dc6eda3ac1c5f6324785067f6ca36c1cbee213a4d6d642a73b072ad5b54ff15b84b57c69accfbfda082c39e63c727f5a96 + checksum: 88be8e754b0f65bef93cf00f87336aa66b6e7d52d78f6bef132716f528f908318628f87316d0feae2d4a8fcf0ba2d2362ecae4bdea193eb8f14ed43eaa2deee1 languageName: node linkType: hard "@aws-sdk/client-eks@npm:^3.350.0": - version: 3.382.0 - resolution: "@aws-sdk/client-eks@npm:3.382.0" + version: 3.387.0 + resolution: "@aws-sdk/client-eks@npm:3.387.0" dependencies: "@aws-crypto/sha256-browser": 3.0.0 "@aws-crypto/sha256-js": 3.0.0 - "@aws-sdk/client-sts": 3.382.0 - "@aws-sdk/credential-provider-node": 3.382.0 - "@aws-sdk/middleware-host-header": 3.379.1 - "@aws-sdk/middleware-logger": 3.378.0 - "@aws-sdk/middleware-recursion-detection": 3.378.0 - "@aws-sdk/middleware-signing": 3.379.1 - "@aws-sdk/middleware-user-agent": 3.382.0 - "@aws-sdk/types": 3.378.0 - "@aws-sdk/util-endpoints": 3.382.0 - "@aws-sdk/util-user-agent-browser": 3.378.0 - "@aws-sdk/util-user-agent-node": 3.378.0 - "@smithy/config-resolver": ^2.0.1 - "@smithy/fetch-http-handler": ^2.0.1 - "@smithy/hash-node": ^2.0.1 - "@smithy/invalid-dependency": ^2.0.1 - "@smithy/middleware-content-length": ^2.0.1 - "@smithy/middleware-endpoint": ^2.0.1 - "@smithy/middleware-retry": ^2.0.1 - "@smithy/middleware-serde": ^2.0.1 + "@aws-sdk/client-sts": 3.387.0 + "@aws-sdk/credential-provider-node": 3.387.0 + "@aws-sdk/middleware-host-header": 3.387.0 + "@aws-sdk/middleware-logger": 3.387.0 + "@aws-sdk/middleware-recursion-detection": 3.387.0 + "@aws-sdk/middleware-signing": 3.387.0 + "@aws-sdk/middleware-user-agent": 3.387.0 + "@aws-sdk/types": 3.387.0 + "@aws-sdk/util-endpoints": 3.387.0 + "@aws-sdk/util-user-agent-browser": 3.387.0 + "@aws-sdk/util-user-agent-node": 3.387.0 + "@smithy/config-resolver": ^2.0.2 + "@smithy/fetch-http-handler": ^2.0.2 + "@smithy/hash-node": ^2.0.2 + "@smithy/invalid-dependency": ^2.0.2 + "@smithy/middleware-content-length": ^2.0.2 + "@smithy/middleware-endpoint": ^2.0.2 + "@smithy/middleware-retry": ^2.0.2 + "@smithy/middleware-serde": ^2.0.2 "@smithy/middleware-stack": ^2.0.0 - "@smithy/node-config-provider": ^2.0.1 - "@smithy/node-http-handler": ^2.0.1 - "@smithy/protocol-http": ^2.0.1 - "@smithy/smithy-client": ^2.0.1 - "@smithy/types": ^2.0.2 - "@smithy/url-parser": ^2.0.1 + "@smithy/node-config-provider": ^2.0.2 + "@smithy/node-http-handler": ^2.0.2 + "@smithy/protocol-http": ^2.0.2 + "@smithy/smithy-client": ^2.0.2 + "@smithy/types": ^2.1.0 + "@smithy/url-parser": ^2.0.2 "@smithy/util-base64": ^2.0.0 "@smithy/util-body-length-browser": ^2.0.0 "@smithy/util-body-length-node": ^2.0.0 - "@smithy/util-defaults-mode-browser": ^2.0.1 - "@smithy/util-defaults-mode-node": ^2.0.1 + "@smithy/util-defaults-mode-browser": ^2.0.2 + "@smithy/util-defaults-mode-node": ^2.0.2 "@smithy/util-retry": ^2.0.0 "@smithy/util-utf8": ^2.0.0 - "@smithy/util-waiter": ^2.0.1 + "@smithy/util-waiter": ^2.0.2 tslib: ^2.5.0 uuid: ^8.3.2 - checksum: 129ea874365fd5938257e918d4ffb59216528b5f6ae877a35b71e63b893529090cd710a5eb3bb15b182e24a8212de0c8131410d84698a6d8b52024b7aad26ec2 + checksum: f4a8a64d7c7bfef23c4fb610156a4b80c14728870bf67346ee052082f136f02776aba89600adc79dae803d1e96c351f16a0dc4a0ddbe9df09a198644966d4fc3 languageName: node linkType: hard "@aws-sdk/client-organizations@npm:^3.350.0": - version: 3.382.0 - resolution: "@aws-sdk/client-organizations@npm:3.382.0" + version: 3.387.0 + resolution: "@aws-sdk/client-organizations@npm:3.387.0" dependencies: "@aws-crypto/sha256-browser": 3.0.0 "@aws-crypto/sha256-js": 3.0.0 - "@aws-sdk/client-sts": 3.382.0 - "@aws-sdk/credential-provider-node": 3.382.0 - "@aws-sdk/middleware-host-header": 3.379.1 - "@aws-sdk/middleware-logger": 3.378.0 - "@aws-sdk/middleware-recursion-detection": 3.378.0 - "@aws-sdk/middleware-signing": 3.379.1 - "@aws-sdk/middleware-user-agent": 3.382.0 - "@aws-sdk/types": 3.378.0 - "@aws-sdk/util-endpoints": 3.382.0 - "@aws-sdk/util-user-agent-browser": 3.378.0 - "@aws-sdk/util-user-agent-node": 3.378.0 - "@smithy/config-resolver": ^2.0.1 - "@smithy/fetch-http-handler": ^2.0.1 - "@smithy/hash-node": ^2.0.1 - "@smithy/invalid-dependency": ^2.0.1 - "@smithy/middleware-content-length": ^2.0.1 - "@smithy/middleware-endpoint": ^2.0.1 - "@smithy/middleware-retry": ^2.0.1 - "@smithy/middleware-serde": ^2.0.1 + "@aws-sdk/client-sts": 3.387.0 + "@aws-sdk/credential-provider-node": 3.387.0 + "@aws-sdk/middleware-host-header": 3.387.0 + "@aws-sdk/middleware-logger": 3.387.0 + "@aws-sdk/middleware-recursion-detection": 3.387.0 + "@aws-sdk/middleware-signing": 3.387.0 + "@aws-sdk/middleware-user-agent": 3.387.0 + "@aws-sdk/types": 3.387.0 + "@aws-sdk/util-endpoints": 3.387.0 + "@aws-sdk/util-user-agent-browser": 3.387.0 + "@aws-sdk/util-user-agent-node": 3.387.0 + "@smithy/config-resolver": ^2.0.2 + "@smithy/fetch-http-handler": ^2.0.2 + "@smithy/hash-node": ^2.0.2 + "@smithy/invalid-dependency": ^2.0.2 + "@smithy/middleware-content-length": ^2.0.2 + "@smithy/middleware-endpoint": ^2.0.2 + "@smithy/middleware-retry": ^2.0.2 + "@smithy/middleware-serde": ^2.0.2 "@smithy/middleware-stack": ^2.0.0 - "@smithy/node-config-provider": ^2.0.1 - "@smithy/node-http-handler": ^2.0.1 - "@smithy/protocol-http": ^2.0.1 - "@smithy/smithy-client": ^2.0.1 - "@smithy/types": ^2.0.2 - "@smithy/url-parser": ^2.0.1 + "@smithy/node-config-provider": ^2.0.2 + "@smithy/node-http-handler": ^2.0.2 + "@smithy/protocol-http": ^2.0.2 + "@smithy/smithy-client": ^2.0.2 + "@smithy/types": ^2.1.0 + "@smithy/url-parser": ^2.0.2 "@smithy/util-base64": ^2.0.0 "@smithy/util-body-length-browser": ^2.0.0 "@smithy/util-body-length-node": ^2.0.0 - "@smithy/util-defaults-mode-browser": ^2.0.1 - "@smithy/util-defaults-mode-node": ^2.0.1 + "@smithy/util-defaults-mode-browser": ^2.0.2 + "@smithy/util-defaults-mode-node": ^2.0.2 "@smithy/util-retry": ^2.0.0 "@smithy/util-utf8": ^2.0.0 tslib: ^2.5.0 - checksum: 0abb001f0738f2037afb56e4de39c55efadd728b338da52d2b4c1f605209442ad5f9229b93ee04315f182a054c651283099e782e933e1b4df10aa63a8e93171f + checksum: 095de70f230113d1b035a25c93074e6953a06b99deb0bf39928c661e05710c7678defbdbb58dbb6919e6f4633fbc9a26a684b07821ba69e244e14733ba978eaa languageName: node linkType: hard "@aws-sdk/client-s3@npm:^3.350.0": - version: 3.383.0 - resolution: "@aws-sdk/client-s3@npm:3.383.0" + version: 3.387.0 + resolution: "@aws-sdk/client-s3@npm:3.387.0" dependencies: "@aws-crypto/sha1-browser": 3.0.0 "@aws-crypto/sha256-browser": 3.0.0 "@aws-crypto/sha256-js": 3.0.0 - "@aws-sdk/client-sts": 3.382.0 - "@aws-sdk/credential-provider-node": 3.382.0 - "@aws-sdk/middleware-bucket-endpoint": 3.378.0 - "@aws-sdk/middleware-expect-continue": 3.378.0 - "@aws-sdk/middleware-flexible-checksums": 3.383.0 - "@aws-sdk/middleware-host-header": 3.379.1 - "@aws-sdk/middleware-location-constraint": 3.379.1 - "@aws-sdk/middleware-logger": 3.378.0 - "@aws-sdk/middleware-recursion-detection": 3.378.0 - "@aws-sdk/middleware-sdk-s3": 3.379.1 - "@aws-sdk/middleware-signing": 3.379.1 - "@aws-sdk/middleware-ssec": 3.378.0 - "@aws-sdk/middleware-user-agent": 3.382.0 - "@aws-sdk/signature-v4-multi-region": 3.378.0 - "@aws-sdk/types": 3.378.0 - "@aws-sdk/util-endpoints": 3.382.0 - "@aws-sdk/util-user-agent-browser": 3.378.0 - "@aws-sdk/util-user-agent-node": 3.378.0 + "@aws-sdk/client-sts": 3.387.0 + "@aws-sdk/credential-provider-node": 3.387.0 + "@aws-sdk/middleware-bucket-endpoint": 3.387.0 + "@aws-sdk/middleware-expect-continue": 3.387.0 + "@aws-sdk/middleware-flexible-checksums": 3.387.0 + "@aws-sdk/middleware-host-header": 3.387.0 + "@aws-sdk/middleware-location-constraint": 3.387.0 + "@aws-sdk/middleware-logger": 3.387.0 + "@aws-sdk/middleware-recursion-detection": 3.387.0 + "@aws-sdk/middleware-sdk-s3": 3.387.0 + "@aws-sdk/middleware-signing": 3.387.0 + "@aws-sdk/middleware-ssec": 3.387.0 + "@aws-sdk/middleware-user-agent": 3.387.0 + "@aws-sdk/signature-v4-multi-region": 3.387.0 + "@aws-sdk/types": 3.387.0 + "@aws-sdk/util-endpoints": 3.387.0 + "@aws-sdk/util-user-agent-browser": 3.387.0 + "@aws-sdk/util-user-agent-node": 3.387.0 "@aws-sdk/xml-builder": 3.310.0 - "@smithy/config-resolver": ^2.0.1 - "@smithy/eventstream-serde-browser": ^2.0.1 - "@smithy/eventstream-serde-config-resolver": ^2.0.1 - "@smithy/eventstream-serde-node": ^2.0.1 - "@smithy/fetch-http-handler": ^2.0.1 - "@smithy/hash-blob-browser": ^2.0.1 - "@smithy/hash-node": ^2.0.1 - "@smithy/hash-stream-node": ^2.0.1 - "@smithy/invalid-dependency": ^2.0.1 - "@smithy/md5-js": ^2.0.1 - "@smithy/middleware-content-length": ^2.0.1 - "@smithy/middleware-endpoint": ^2.0.1 - "@smithy/middleware-retry": ^2.0.1 - "@smithy/middleware-serde": ^2.0.1 + "@smithy/config-resolver": ^2.0.2 + "@smithy/eventstream-serde-browser": ^2.0.2 + "@smithy/eventstream-serde-config-resolver": ^2.0.2 + "@smithy/eventstream-serde-node": ^2.0.2 + "@smithy/fetch-http-handler": ^2.0.2 + "@smithy/hash-blob-browser": ^2.0.2 + "@smithy/hash-node": ^2.0.2 + "@smithy/hash-stream-node": ^2.0.2 + "@smithy/invalid-dependency": ^2.0.2 + "@smithy/md5-js": ^2.0.2 + "@smithy/middleware-content-length": ^2.0.2 + "@smithy/middleware-endpoint": ^2.0.2 + "@smithy/middleware-retry": ^2.0.2 + "@smithy/middleware-serde": ^2.0.2 "@smithy/middleware-stack": ^2.0.0 - "@smithy/node-config-provider": ^2.0.1 - "@smithy/node-http-handler": ^2.0.1 - "@smithy/protocol-http": ^2.0.1 - "@smithy/smithy-client": ^2.0.1 - "@smithy/types": ^2.0.2 - "@smithy/url-parser": ^2.0.1 + "@smithy/node-config-provider": ^2.0.2 + "@smithy/node-http-handler": ^2.0.2 + "@smithy/protocol-http": ^2.0.2 + "@smithy/smithy-client": ^2.0.2 + "@smithy/types": ^2.1.0 + "@smithy/url-parser": ^2.0.2 "@smithy/util-base64": ^2.0.0 "@smithy/util-body-length-browser": ^2.0.0 "@smithy/util-body-length-node": ^2.0.0 - "@smithy/util-defaults-mode-browser": ^2.0.1 - "@smithy/util-defaults-mode-node": ^2.0.1 + "@smithy/util-defaults-mode-browser": ^2.0.2 + "@smithy/util-defaults-mode-node": ^2.0.2 "@smithy/util-retry": ^2.0.0 - "@smithy/util-stream": ^2.0.1 + "@smithy/util-stream": ^2.0.2 "@smithy/util-utf8": ^2.0.0 - "@smithy/util-waiter": ^2.0.1 + "@smithy/util-waiter": ^2.0.2 fast-xml-parser: 4.2.5 tslib: ^2.5.0 - checksum: 0d3302e132e99e598db0628e697579828abc8a3ff68cf60b25113d077a62e05ca8438a822ae9601bb90420d7446caa6dc590bc5daf4d3bd9c48fd0527a928de6 + checksum: cc0600dfc971b203bb737850613ab986811b36014f4f42e8cebca71d05baf7ef3d618687ae43c50694b1341f339a44671813187dff6910d24130418d755dd265 languageName: node linkType: hard "@aws-sdk/client-sqs@npm:^3.350.0": - version: 3.382.0 - resolution: "@aws-sdk/client-sqs@npm:3.382.0" + version: 3.387.0 + resolution: "@aws-sdk/client-sqs@npm:3.387.0" dependencies: "@aws-crypto/sha256-browser": 3.0.0 "@aws-crypto/sha256-js": 3.0.0 - "@aws-sdk/client-sts": 3.382.0 - "@aws-sdk/credential-provider-node": 3.382.0 - "@aws-sdk/middleware-host-header": 3.379.1 - "@aws-sdk/middleware-logger": 3.378.0 - "@aws-sdk/middleware-recursion-detection": 3.378.0 - "@aws-sdk/middleware-sdk-sqs": 3.378.0 - "@aws-sdk/middleware-signing": 3.379.1 - "@aws-sdk/middleware-user-agent": 3.382.0 - "@aws-sdk/types": 3.378.0 - "@aws-sdk/util-endpoints": 3.382.0 - "@aws-sdk/util-user-agent-browser": 3.378.0 - "@aws-sdk/util-user-agent-node": 3.378.0 - "@smithy/config-resolver": ^2.0.1 - "@smithy/fetch-http-handler": ^2.0.1 - "@smithy/hash-node": ^2.0.1 - "@smithy/invalid-dependency": ^2.0.1 - "@smithy/md5-js": ^2.0.1 - "@smithy/middleware-content-length": ^2.0.1 - "@smithy/middleware-endpoint": ^2.0.1 - "@smithy/middleware-retry": ^2.0.1 - "@smithy/middleware-serde": ^2.0.1 + "@aws-sdk/client-sts": 3.387.0 + "@aws-sdk/credential-provider-node": 3.387.0 + "@aws-sdk/middleware-host-header": 3.387.0 + "@aws-sdk/middleware-logger": 3.387.0 + "@aws-sdk/middleware-recursion-detection": 3.387.0 + "@aws-sdk/middleware-sdk-sqs": 3.387.0 + "@aws-sdk/middleware-signing": 3.387.0 + "@aws-sdk/middleware-user-agent": 3.387.0 + "@aws-sdk/types": 3.387.0 + "@aws-sdk/util-endpoints": 3.387.0 + "@aws-sdk/util-user-agent-browser": 3.387.0 + "@aws-sdk/util-user-agent-node": 3.387.0 + "@smithy/config-resolver": ^2.0.2 + "@smithy/fetch-http-handler": ^2.0.2 + "@smithy/hash-node": ^2.0.2 + "@smithy/invalid-dependency": ^2.0.2 + "@smithy/md5-js": ^2.0.2 + "@smithy/middleware-content-length": ^2.0.2 + "@smithy/middleware-endpoint": ^2.0.2 + "@smithy/middleware-retry": ^2.0.2 + "@smithy/middleware-serde": ^2.0.2 "@smithy/middleware-stack": ^2.0.0 - "@smithy/node-config-provider": ^2.0.1 - "@smithy/node-http-handler": ^2.0.1 - "@smithy/protocol-http": ^2.0.1 - "@smithy/smithy-client": ^2.0.1 - "@smithy/types": ^2.0.2 - "@smithy/url-parser": ^2.0.1 + "@smithy/node-config-provider": ^2.0.2 + "@smithy/node-http-handler": ^2.0.2 + "@smithy/protocol-http": ^2.0.2 + "@smithy/smithy-client": ^2.0.2 + "@smithy/types": ^2.1.0 + "@smithy/url-parser": ^2.0.2 "@smithy/util-base64": ^2.0.0 "@smithy/util-body-length-browser": ^2.0.0 "@smithy/util-body-length-node": ^2.0.0 - "@smithy/util-defaults-mode-browser": ^2.0.1 - "@smithy/util-defaults-mode-node": ^2.0.1 + "@smithy/util-defaults-mode-browser": ^2.0.2 + "@smithy/util-defaults-mode-node": ^2.0.2 "@smithy/util-retry": ^2.0.0 "@smithy/util-utf8": ^2.0.0 fast-xml-parser: 4.2.5 tslib: ^2.5.0 - checksum: 51fb80f57b579b053156ba5c9c2fa5bcdead931ed519b8bd3ceb486c74d8881458aafb8eb9497b76581fe3d7eab9deb207bcc2925d1189b13869a8ebbb7cb6cf + checksum: 3382ad67ec9679b73a571e0389db1ae80f21fa28beb3a13e3107ce72021705f37c3aacb06b3a3cfb4bc751de0453a443e30f315d5b2cb319abcd3454158c3518 languageName: node linkType: hard -"@aws-sdk/client-sso-oidc@npm:3.382.0": - version: 3.382.0 - resolution: "@aws-sdk/client-sso-oidc@npm:3.382.0" +"@aws-sdk/client-sso@npm:3.387.0": + version: 3.387.0 + resolution: "@aws-sdk/client-sso@npm:3.387.0" dependencies: "@aws-crypto/sha256-browser": 3.0.0 "@aws-crypto/sha256-js": 3.0.0 - "@aws-sdk/middleware-host-header": 3.379.1 - "@aws-sdk/middleware-logger": 3.378.0 - "@aws-sdk/middleware-recursion-detection": 3.378.0 - "@aws-sdk/middleware-user-agent": 3.382.0 - "@aws-sdk/types": 3.378.0 - "@aws-sdk/util-endpoints": 3.382.0 - "@aws-sdk/util-user-agent-browser": 3.378.0 - "@aws-sdk/util-user-agent-node": 3.378.0 - "@smithy/config-resolver": ^2.0.1 - "@smithy/fetch-http-handler": ^2.0.1 - "@smithy/hash-node": ^2.0.1 - "@smithy/invalid-dependency": ^2.0.1 - "@smithy/middleware-content-length": ^2.0.1 - "@smithy/middleware-endpoint": ^2.0.1 - "@smithy/middleware-retry": ^2.0.1 - "@smithy/middleware-serde": ^2.0.1 + "@aws-sdk/middleware-host-header": 3.387.0 + "@aws-sdk/middleware-logger": 3.387.0 + "@aws-sdk/middleware-recursion-detection": 3.387.0 + "@aws-sdk/middleware-user-agent": 3.387.0 + "@aws-sdk/types": 3.387.0 + "@aws-sdk/util-endpoints": 3.387.0 + "@aws-sdk/util-user-agent-browser": 3.387.0 + "@aws-sdk/util-user-agent-node": 3.387.0 + "@smithy/config-resolver": ^2.0.2 + "@smithy/fetch-http-handler": ^2.0.2 + "@smithy/hash-node": ^2.0.2 + "@smithy/invalid-dependency": ^2.0.2 + "@smithy/middleware-content-length": ^2.0.2 + "@smithy/middleware-endpoint": ^2.0.2 + "@smithy/middleware-retry": ^2.0.2 + "@smithy/middleware-serde": ^2.0.2 "@smithy/middleware-stack": ^2.0.0 - "@smithy/node-config-provider": ^2.0.1 - "@smithy/node-http-handler": ^2.0.1 - "@smithy/protocol-http": ^2.0.1 - "@smithy/smithy-client": ^2.0.1 - "@smithy/types": ^2.0.2 - "@smithy/url-parser": ^2.0.1 + "@smithy/node-config-provider": ^2.0.2 + "@smithy/node-http-handler": ^2.0.2 + "@smithy/protocol-http": ^2.0.2 + "@smithy/smithy-client": ^2.0.2 + "@smithy/types": ^2.1.0 + "@smithy/url-parser": ^2.0.2 "@smithy/util-base64": ^2.0.0 "@smithy/util-body-length-browser": ^2.0.0 "@smithy/util-body-length-node": ^2.0.0 - "@smithy/util-defaults-mode-browser": ^2.0.1 - "@smithy/util-defaults-mode-node": ^2.0.1 + "@smithy/util-defaults-mode-browser": ^2.0.2 + "@smithy/util-defaults-mode-node": ^2.0.2 "@smithy/util-retry": ^2.0.0 "@smithy/util-utf8": ^2.0.0 tslib: ^2.5.0 - checksum: 8e63db2ed9d27326d4afe897f7debbe4d7f6c2b27015d5a5e2ce0656adc3757860c313403c1f0e5bfb6790e610d63c8ef3d6ce103abaa07155b4578e4fae768d + checksum: ca4750675bc39e7201b4b611cd642cb5f37413138a09670499c00ea637509aab0bd54a7b96e6b4a2bec810f12c9c87d0519fc6cad0a7f8a86ecad4bf8047a7ac languageName: node linkType: hard -"@aws-sdk/client-sso@npm:3.382.0": - version: 3.382.0 - resolution: "@aws-sdk/client-sso@npm:3.382.0" +"@aws-sdk/client-sts@npm:3.387.0, @aws-sdk/client-sts@npm:^3.350.0": + version: 3.387.0 + resolution: "@aws-sdk/client-sts@npm:3.387.0" dependencies: "@aws-crypto/sha256-browser": 3.0.0 "@aws-crypto/sha256-js": 3.0.0 - "@aws-sdk/middleware-host-header": 3.379.1 - "@aws-sdk/middleware-logger": 3.378.0 - "@aws-sdk/middleware-recursion-detection": 3.378.0 - "@aws-sdk/middleware-user-agent": 3.382.0 - "@aws-sdk/types": 3.378.0 - "@aws-sdk/util-endpoints": 3.382.0 - "@aws-sdk/util-user-agent-browser": 3.378.0 - "@aws-sdk/util-user-agent-node": 3.378.0 - "@smithy/config-resolver": ^2.0.1 - "@smithy/fetch-http-handler": ^2.0.1 - "@smithy/hash-node": ^2.0.1 - "@smithy/invalid-dependency": ^2.0.1 - "@smithy/middleware-content-length": ^2.0.1 - "@smithy/middleware-endpoint": ^2.0.1 - "@smithy/middleware-retry": ^2.0.1 - "@smithy/middleware-serde": ^2.0.1 + "@aws-sdk/credential-provider-node": 3.387.0 + "@aws-sdk/middleware-host-header": 3.387.0 + "@aws-sdk/middleware-logger": 3.387.0 + "@aws-sdk/middleware-recursion-detection": 3.387.0 + "@aws-sdk/middleware-sdk-sts": 3.387.0 + "@aws-sdk/middleware-signing": 3.387.0 + "@aws-sdk/middleware-user-agent": 3.387.0 + "@aws-sdk/types": 3.387.0 + "@aws-sdk/util-endpoints": 3.387.0 + "@aws-sdk/util-user-agent-browser": 3.387.0 + "@aws-sdk/util-user-agent-node": 3.387.0 + "@smithy/config-resolver": ^2.0.2 + "@smithy/fetch-http-handler": ^2.0.2 + "@smithy/hash-node": ^2.0.2 + "@smithy/invalid-dependency": ^2.0.2 + "@smithy/middleware-content-length": ^2.0.2 + "@smithy/middleware-endpoint": ^2.0.2 + "@smithy/middleware-retry": ^2.0.2 + "@smithy/middleware-serde": ^2.0.2 "@smithy/middleware-stack": ^2.0.0 - "@smithy/node-config-provider": ^2.0.1 - "@smithy/node-http-handler": ^2.0.1 - "@smithy/protocol-http": ^2.0.1 - "@smithy/smithy-client": ^2.0.1 - "@smithy/types": ^2.0.2 - "@smithy/url-parser": ^2.0.1 + "@smithy/node-config-provider": ^2.0.2 + "@smithy/node-http-handler": ^2.0.2 + "@smithy/protocol-http": ^2.0.2 + "@smithy/smithy-client": ^2.0.2 + "@smithy/types": ^2.1.0 + "@smithy/url-parser": ^2.0.2 "@smithy/util-base64": ^2.0.0 "@smithy/util-body-length-browser": ^2.0.0 "@smithy/util-body-length-node": ^2.0.0 - "@smithy/util-defaults-mode-browser": ^2.0.1 - "@smithy/util-defaults-mode-node": ^2.0.1 - "@smithy/util-retry": ^2.0.0 - "@smithy/util-utf8": ^2.0.0 - tslib: ^2.5.0 - checksum: ef6c13d334913e05d3f4e0296259312beb8e257a8ed2a7421bf3239e96b8712259e8f94c12d26dc2b3b2948dfd1ea1141bde24931916c55ab398f7556e05bb6b - languageName: node - linkType: hard - -"@aws-sdk/client-sts@npm:3.382.0, @aws-sdk/client-sts@npm:^3.350.0": - version: 3.382.0 - resolution: "@aws-sdk/client-sts@npm:3.382.0" - dependencies: - "@aws-crypto/sha256-browser": 3.0.0 - "@aws-crypto/sha256-js": 3.0.0 - "@aws-sdk/credential-provider-node": 3.382.0 - "@aws-sdk/middleware-host-header": 3.379.1 - "@aws-sdk/middleware-logger": 3.378.0 - "@aws-sdk/middleware-recursion-detection": 3.378.0 - "@aws-sdk/middleware-sdk-sts": 3.379.1 - "@aws-sdk/middleware-signing": 3.379.1 - "@aws-sdk/middleware-user-agent": 3.382.0 - "@aws-sdk/types": 3.378.0 - "@aws-sdk/util-endpoints": 3.382.0 - "@aws-sdk/util-user-agent-browser": 3.378.0 - "@aws-sdk/util-user-agent-node": 3.378.0 - "@smithy/config-resolver": ^2.0.1 - "@smithy/fetch-http-handler": ^2.0.1 - "@smithy/hash-node": ^2.0.1 - "@smithy/invalid-dependency": ^2.0.1 - "@smithy/middleware-content-length": ^2.0.1 - "@smithy/middleware-endpoint": ^2.0.1 - "@smithy/middleware-retry": ^2.0.1 - "@smithy/middleware-serde": ^2.0.1 - "@smithy/middleware-stack": ^2.0.0 - "@smithy/node-config-provider": ^2.0.1 - "@smithy/node-http-handler": ^2.0.1 - "@smithy/protocol-http": ^2.0.1 - "@smithy/smithy-client": ^2.0.1 - "@smithy/types": ^2.0.2 - "@smithy/url-parser": ^2.0.1 - "@smithy/util-base64": ^2.0.0 - "@smithy/util-body-length-browser": ^2.0.0 - "@smithy/util-body-length-node": ^2.0.0 - "@smithy/util-defaults-mode-browser": ^2.0.1 - "@smithy/util-defaults-mode-node": ^2.0.1 + "@smithy/util-defaults-mode-browser": ^2.0.2 + "@smithy/util-defaults-mode-node": ^2.0.2 "@smithy/util-retry": ^2.0.0 "@smithy/util-utf8": ^2.0.0 fast-xml-parser: 4.2.5 tslib: ^2.5.0 - checksum: e13fe8cfc271ea8fb56718e3e844a9715960165b65f6f8b226f02859d34344f1380987a4ce808530444c78853033ec37048dd4fa9c93ac0df8de89eeba71bd8e + checksum: 6f3a0a36c7d2881b438e64a2b6cb11f809c4bc406af27fb692d5d3a7cebb93fc5b26f235ee5a4f3eea620b0c07d015ce11e2d8f32c79b3ea01221fe8548c2421 languageName: node linkType: hard -"@aws-sdk/credential-provider-cognito-identity@npm:3.382.0": - version: 3.382.0 - resolution: "@aws-sdk/credential-provider-cognito-identity@npm:3.382.0" +"@aws-sdk/credential-provider-cognito-identity@npm:3.387.0": + version: 3.387.0 + resolution: "@aws-sdk/credential-provider-cognito-identity@npm:3.387.0" dependencies: - "@aws-sdk/client-cognito-identity": 3.382.0 - "@aws-sdk/types": 3.378.0 + "@aws-sdk/client-cognito-identity": 3.387.0 + "@aws-sdk/types": 3.387.0 "@smithy/property-provider": ^2.0.0 - "@smithy/types": ^2.0.2 + "@smithy/types": ^2.1.0 tslib: ^2.5.0 - checksum: 795efad00f9de6590c24770d8599ce70907f6abaa77f8702a0f77d4631f44dfd3108ebca32fe99a59d4ff37af7e357dbac7259e18a6e9f7ba8c416dc35678762 + checksum: 126a72f6b6515237aa128c22fe6b0fbdfefbfb39950da8686187f567fdbaa6cb18d41437b67e80bd66e4f5d2eae0018587585700e0950c2a639e04092f31445e languageName: node linkType: hard -"@aws-sdk/credential-provider-env@npm:3.378.0": - version: 3.378.0 - resolution: "@aws-sdk/credential-provider-env@npm:3.378.0" +"@aws-sdk/credential-provider-env@npm:3.387.0": + version: 3.387.0 + resolution: "@aws-sdk/credential-provider-env@npm:3.387.0" dependencies: - "@aws-sdk/types": 3.378.0 + "@aws-sdk/types": 3.387.0 "@smithy/property-provider": ^2.0.0 - "@smithy/types": ^2.0.2 + "@smithy/types": ^2.1.0 tslib: ^2.5.0 - checksum: ff32e595305f93756bb8fe9b26ca9a5336ca0517ca0d62dfc4cfa36d3bb990a65ebe7b0afcebaf102e4037ddb5b03132a6dde268f421bb72cbbd4249a22715b6 + checksum: 7cfa4c87224a8632741d8fd1c25384a59413581b94eb79e1547a4f9b3542c2b27559c097a09f747f4b1617a3c382795f17aebc290b5e35a8a5fae1f93736449f languageName: node linkType: hard -"@aws-sdk/credential-provider-ini@npm:3.382.0": - version: 3.382.0 - resolution: "@aws-sdk/credential-provider-ini@npm:3.382.0" +"@aws-sdk/credential-provider-ini@npm:3.387.0": + version: 3.387.0 + resolution: "@aws-sdk/credential-provider-ini@npm:3.387.0" dependencies: - "@aws-sdk/credential-provider-env": 3.378.0 - "@aws-sdk/credential-provider-process": 3.378.0 - "@aws-sdk/credential-provider-sso": 3.382.0 - "@aws-sdk/credential-provider-web-identity": 3.378.0 - "@aws-sdk/types": 3.378.0 + "@aws-sdk/credential-provider-env": 3.387.0 + "@aws-sdk/credential-provider-process": 3.387.0 + "@aws-sdk/credential-provider-sso": 3.387.0 + "@aws-sdk/credential-provider-web-identity": 3.387.0 + "@aws-sdk/types": 3.387.0 "@smithy/credential-provider-imds": ^2.0.0 "@smithy/property-provider": ^2.0.0 "@smithy/shared-ini-file-loader": ^2.0.0 - "@smithy/types": ^2.0.2 + "@smithy/types": ^2.1.0 tslib: ^2.5.0 - checksum: c52c431f03864d46d23e3515516c62a91af175995fba9dadb7cff4e005d7d2ed19b9b5508859768ce4d98746da260709e7caf703c7211b1a21c62a6a1606ef5d + checksum: 40e69ca6081d24016b0a56fab6cca9b6cd2d5ca2cf17ab2e3e99a99e351d78d86d38f5e424a6c26355d099c6e060e24c56ff3064b6b1fbc2cad9c89b1dd655c4 languageName: node linkType: hard -"@aws-sdk/credential-provider-node@npm:3.382.0, @aws-sdk/credential-provider-node@npm:^3.350.0": - version: 3.382.0 - resolution: "@aws-sdk/credential-provider-node@npm:3.382.0" +"@aws-sdk/credential-provider-node@npm:3.387.0, @aws-sdk/credential-provider-node@npm:^3.350.0": + version: 3.387.0 + resolution: "@aws-sdk/credential-provider-node@npm:3.387.0" dependencies: - "@aws-sdk/credential-provider-env": 3.378.0 - "@aws-sdk/credential-provider-ini": 3.382.0 - "@aws-sdk/credential-provider-process": 3.378.0 - "@aws-sdk/credential-provider-sso": 3.382.0 - "@aws-sdk/credential-provider-web-identity": 3.378.0 - "@aws-sdk/types": 3.378.0 + "@aws-sdk/credential-provider-env": 3.387.0 + "@aws-sdk/credential-provider-ini": 3.387.0 + "@aws-sdk/credential-provider-process": 3.387.0 + "@aws-sdk/credential-provider-sso": 3.387.0 + "@aws-sdk/credential-provider-web-identity": 3.387.0 + "@aws-sdk/types": 3.387.0 "@smithy/credential-provider-imds": ^2.0.0 "@smithy/property-provider": ^2.0.0 "@smithy/shared-ini-file-loader": ^2.0.0 - "@smithy/types": ^2.0.2 + "@smithy/types": ^2.1.0 tslib: ^2.5.0 - checksum: 895405b84fc938b0c3e34f73c63b5426761de3bc2dcfa06e1a06f55ae0f8135d81530c0340c0b1b33b4bcb479f5048a9ec0390288503a261c692a0df2a0b933d + checksum: cdc3f29c6be304e39cb42f8b53227f607e8bb10d0fae542614d76b322e1a75718d70a4726d97cb24d6e3da51245b837dcb07cfaf34eb8600d290267c8987a06a languageName: node linkType: hard -"@aws-sdk/credential-provider-process@npm:3.378.0": - version: 3.378.0 - resolution: "@aws-sdk/credential-provider-process@npm:3.378.0" +"@aws-sdk/credential-provider-process@npm:3.387.0": + version: 3.387.0 + resolution: "@aws-sdk/credential-provider-process@npm:3.387.0" dependencies: - "@aws-sdk/types": 3.378.0 + "@aws-sdk/types": 3.387.0 "@smithy/property-provider": ^2.0.0 "@smithy/shared-ini-file-loader": ^2.0.0 - "@smithy/types": ^2.0.2 + "@smithy/types": ^2.1.0 tslib: ^2.5.0 - checksum: 6b8343fb9266ef490bf8e654f0d0b53585498ecf755e0e5cbee9bc93426927703637d02740050c491738a83c097a4d848244f3a66a633fd526d9339d846bdbdd + checksum: 90b5c902b659dd6d39b6e81503fa4587ed5bb7c4b6a7ecb648561e8ca7a82c621b0b65496855cba3e68d63e1c432e26d40c89c0194e5952f31b52cbd20bca8ae languageName: node linkType: hard -"@aws-sdk/credential-provider-sso@npm:3.382.0": - version: 3.382.0 - resolution: "@aws-sdk/credential-provider-sso@npm:3.382.0" +"@aws-sdk/credential-provider-sso@npm:3.387.0": + version: 3.387.0 + resolution: "@aws-sdk/credential-provider-sso@npm:3.387.0" dependencies: - "@aws-sdk/client-sso": 3.382.0 - "@aws-sdk/token-providers": 3.382.0 - "@aws-sdk/types": 3.378.0 + "@aws-sdk/client-sso": 3.387.0 + "@aws-sdk/token-providers": 3.387.0 + "@aws-sdk/types": 3.387.0 "@smithy/property-provider": ^2.0.0 "@smithy/shared-ini-file-loader": ^2.0.0 - "@smithy/types": ^2.0.2 + "@smithy/types": ^2.1.0 tslib: ^2.5.0 - checksum: ec0d216077a0dd5724fed30cdbc4a235b998c5b5821ba250be749e0e4c0410ce1e06c1a2531281570798b77fbe7a9ff36a0d9960853d8f6b2d98247702649d68 + checksum: 740d16079be50a43a23b59c10d44fabca3da67ee251f2b6975d7b58909554c66e0c8a40f6e9457d85f2997a63cf435bcbf82e53d9d2f7c7005f243dbe5305fff languageName: node linkType: hard -"@aws-sdk/credential-provider-web-identity@npm:3.378.0": - version: 3.378.0 - resolution: "@aws-sdk/credential-provider-web-identity@npm:3.378.0" +"@aws-sdk/credential-provider-web-identity@npm:3.387.0": + version: 3.387.0 + resolution: "@aws-sdk/credential-provider-web-identity@npm:3.387.0" dependencies: - "@aws-sdk/types": 3.378.0 + "@aws-sdk/types": 3.387.0 "@smithy/property-provider": ^2.0.0 - "@smithy/types": ^2.0.2 + "@smithy/types": ^2.1.0 tslib: ^2.5.0 - checksum: 22cf227f609ea654749517e25c88e9c5e7b9dd97cc781d168b1f7cedf26a692a0d1643c3933a1975a95414c0d6a7dbcef6255ca4f13a788e101f95372e17a3af + checksum: 47cf13e4275ee948750c78c147fe70a64698197ed86bc38c29269e745001775cf4261e763e6dd37235ed50adc5638add08b3c04d6bb9af1cf1ef7c79f0cd336b languageName: node linkType: hard "@aws-sdk/credential-providers@npm:^3.350.0": - version: 3.382.0 - resolution: "@aws-sdk/credential-providers@npm:3.382.0" + version: 3.387.0 + resolution: "@aws-sdk/credential-providers@npm:3.387.0" dependencies: - "@aws-sdk/client-cognito-identity": 3.382.0 - "@aws-sdk/client-sso": 3.382.0 - "@aws-sdk/client-sts": 3.382.0 - "@aws-sdk/credential-provider-cognito-identity": 3.382.0 - "@aws-sdk/credential-provider-env": 3.378.0 - "@aws-sdk/credential-provider-ini": 3.382.0 - "@aws-sdk/credential-provider-node": 3.382.0 - "@aws-sdk/credential-provider-process": 3.378.0 - "@aws-sdk/credential-provider-sso": 3.382.0 - "@aws-sdk/credential-provider-web-identity": 3.378.0 - "@aws-sdk/types": 3.378.0 + "@aws-sdk/client-cognito-identity": 3.387.0 + "@aws-sdk/client-sso": 3.387.0 + "@aws-sdk/client-sts": 3.387.0 + "@aws-sdk/credential-provider-cognito-identity": 3.387.0 + "@aws-sdk/credential-provider-env": 3.387.0 + "@aws-sdk/credential-provider-ini": 3.387.0 + "@aws-sdk/credential-provider-node": 3.387.0 + "@aws-sdk/credential-provider-process": 3.387.0 + "@aws-sdk/credential-provider-sso": 3.387.0 + "@aws-sdk/credential-provider-web-identity": 3.387.0 + "@aws-sdk/types": 3.387.0 "@smithy/credential-provider-imds": ^2.0.0 "@smithy/property-provider": ^2.0.0 - "@smithy/types": ^2.0.2 + "@smithy/types": ^2.1.0 tslib: ^2.5.0 - checksum: 0518892179add223708eef3e3c3420a25d2ec353bee6361f4f88290dca11d1ec04737b2f67d2f6db6e194c74ae51121223997b5d5da4324b3ef346685a9dae37 + checksum: 761260e185f932cddc523d3e1491497cf3ff147496af354aed2ddd43da5a86218dbc2eccec00a71c166070dd24261795c2eb227ab986761478bd138ccb3fa9af languageName: node linkType: hard @@ -1086,33 +1045,33 @@ __metadata: linkType: hard "@aws-sdk/lib-storage@npm:^3.350.0": - version: 3.383.0 - resolution: "@aws-sdk/lib-storage@npm:3.383.0" + version: 3.387.0 + resolution: "@aws-sdk/lib-storage@npm:3.387.0" dependencies: "@smithy/abort-controller": ^2.0.1 - "@smithy/middleware-endpoint": ^2.0.1 - "@smithy/smithy-client": ^2.0.1 + "@smithy/middleware-endpoint": ^2.0.2 + "@smithy/smithy-client": ^2.0.2 buffer: 5.6.0 events: 3.3.0 stream-browserify: 3.0.0 tslib: ^2.5.0 peerDependencies: "@aws-sdk/client-s3": ^3.0.0 - checksum: fca3fe53d4631449e3a929151a4e1aed4b70a2b4442f9360ec1edea5db7a83c82abbe1a1eefee51b647290b903eae7341798f7f3418b15fce21e1b3243af3976 + checksum: aa753c2e6f9db051fe893ab2352a3c7c84ca53089ba837b972e1ae5911af71bb978002ea07ed59f673b3773fe3d1fbd2ce2fff251b671f672655cfbf9b48626e languageName: node linkType: hard -"@aws-sdk/middleware-bucket-endpoint@npm:3.378.0": - version: 3.378.0 - resolution: "@aws-sdk/middleware-bucket-endpoint@npm:3.378.0" +"@aws-sdk/middleware-bucket-endpoint@npm:3.387.0": + version: 3.387.0 + resolution: "@aws-sdk/middleware-bucket-endpoint@npm:3.387.0" dependencies: - "@aws-sdk/types": 3.378.0 + "@aws-sdk/types": 3.387.0 "@aws-sdk/util-arn-parser": 3.310.0 - "@smithy/protocol-http": ^2.0.1 - "@smithy/types": ^2.0.2 + "@smithy/protocol-http": ^2.0.2 + "@smithy/types": ^2.1.0 "@smithy/util-config-provider": ^2.0.0 tslib: ^2.5.0 - checksum: 7aa034b5e4abbf8a52a6dea7de61a43c744bda65f0f5d5db8967dd804206264878c321191aa9c6ce6e304e7981e711e47603e0aa0d06b9bde4991ffd1f7accba + checksum: 61b134bb6ba13d8007f1e8bd9a9c4ab4041c66fa184deaf7a0796297c218f14eb175f957038577909ac94e16fdf97d115f698a2d629ce1d4122593fba86f192e languageName: node linkType: hard @@ -1129,115 +1088,115 @@ __metadata: languageName: node linkType: hard -"@aws-sdk/middleware-expect-continue@npm:3.378.0": - version: 3.378.0 - resolution: "@aws-sdk/middleware-expect-continue@npm:3.378.0" +"@aws-sdk/middleware-expect-continue@npm:3.387.0": + version: 3.387.0 + resolution: "@aws-sdk/middleware-expect-continue@npm:3.387.0" dependencies: - "@aws-sdk/types": 3.378.0 - "@smithy/protocol-http": ^2.0.1 - "@smithy/types": ^2.0.2 + "@aws-sdk/types": 3.387.0 + "@smithy/protocol-http": ^2.0.2 + "@smithy/types": ^2.1.0 tslib: ^2.5.0 - checksum: 0935bd4cbb3ae84f2a84ed1b3526d798b69f2c81a2b94bbb6b04525b907f64891cde4518edaeb7d561bcc37bfeda44fb589c56e5a30de49c4c23a61bc801bcf0 + checksum: 48644c0809702b9b82c9d43bad3a3919868295914550d5c0ce72dbefa39dd24daf4aa02b7a431e1856e7bff3c3bff93ea1d06936f7a20213c1ddbea14cf6b1ad languageName: node linkType: hard -"@aws-sdk/middleware-flexible-checksums@npm:3.383.0": - version: 3.383.0 - resolution: "@aws-sdk/middleware-flexible-checksums@npm:3.383.0" +"@aws-sdk/middleware-flexible-checksums@npm:3.387.0": + version: 3.387.0 + resolution: "@aws-sdk/middleware-flexible-checksums@npm:3.387.0" dependencies: "@aws-crypto/crc32": 3.0.0 "@aws-crypto/crc32c": 3.0.0 - "@aws-sdk/types": 3.378.0 + "@aws-sdk/types": 3.387.0 "@smithy/is-array-buffer": ^2.0.0 - "@smithy/protocol-http": ^2.0.1 - "@smithy/types": ^2.0.2 + "@smithy/protocol-http": ^2.0.2 + "@smithy/types": ^2.1.0 "@smithy/util-utf8": ^2.0.0 tslib: ^2.5.0 - checksum: fc08432955bf24f4494eaebf350b3d18f0bce0fe97b5a7f0b022a21a15048094fdb9104bf7b8e45aa9c885ed18a93ab29066c6667a2f5009d02688ab14bf49cc + checksum: 056a4558750f3c6bf676154778de813bbed2897d5a79efbe142ea6f99643fdf98b4367f602bb61a3cecd5e22ea2b680b842a0cfc5cf8f828d936626d8d4126ea languageName: node linkType: hard -"@aws-sdk/middleware-host-header@npm:3.379.1": - version: 3.379.1 - resolution: "@aws-sdk/middleware-host-header@npm:3.379.1" +"@aws-sdk/middleware-host-header@npm:3.387.0": + version: 3.387.0 + resolution: "@aws-sdk/middleware-host-header@npm:3.387.0" dependencies: - "@aws-sdk/types": 3.378.0 - "@smithy/protocol-http": ^2.0.1 - "@smithy/types": ^2.0.2 + "@aws-sdk/types": 3.387.0 + "@smithy/protocol-http": ^2.0.2 + "@smithy/types": ^2.1.0 tslib: ^2.5.0 - checksum: 32651531108e43edf745721828feab703ab7f39837da8214bb37593200daab71042336a25b58bd9b3e9b78ac647a828674a48ebbc1f5946a533f8642fb16b92d + checksum: 91fdffa0051d1c426533170b1770c174abffc822b6e8e0cf0b850536a32c9fdea3241279494e2511232a46260b2320546bb9a59b2d4ee05a72f3cedabe6fa1a1 languageName: node linkType: hard -"@aws-sdk/middleware-location-constraint@npm:3.379.1": - version: 3.379.1 - resolution: "@aws-sdk/middleware-location-constraint@npm:3.379.1" +"@aws-sdk/middleware-location-constraint@npm:3.387.0": + version: 3.387.0 + resolution: "@aws-sdk/middleware-location-constraint@npm:3.387.0" dependencies: - "@aws-sdk/types": 3.378.0 - "@smithy/types": ^2.0.2 + "@aws-sdk/types": 3.387.0 + "@smithy/types": ^2.1.0 tslib: ^2.5.0 - checksum: 6cc91e29e89bb8036bcf53933ac70ec0b90ef899105c10fab8293721424b4a3f4cb86996cec4073c4d7988b9a2810c5bcaab55c18e8be2a5b20646e83306f23a + checksum: 4027555e3c0ba089711a93ce0ca0ab4527052ff67fe7d390b59d305f238109b9f4aec63ac1e51b6e5a88026c2417967dc7091178061d096fbb3ee23ca2947555 languageName: node linkType: hard -"@aws-sdk/middleware-logger@npm:3.378.0": - version: 3.378.0 - resolution: "@aws-sdk/middleware-logger@npm:3.378.0" +"@aws-sdk/middleware-logger@npm:3.387.0": + version: 3.387.0 + resolution: "@aws-sdk/middleware-logger@npm:3.387.0" dependencies: - "@aws-sdk/types": 3.378.0 - "@smithy/types": ^2.0.2 + "@aws-sdk/types": 3.387.0 + "@smithy/types": ^2.1.0 tslib: ^2.5.0 - checksum: c1c32a5ba4ae92cf988d2c0fed3a15975e1b4612cb546133ac74eb91276fc0714278e3aa30e88d0fae00596208baed76b58e97d952daafd63777b79f185a6c3f + checksum: 75812390856559eaf9e8259f3d335c97268783d2e175dbd4568271e8f321a7a34754fcfcff0f70726a751c0418f6787ddbd7f1ebb3b644530e743edb5da63c2b languageName: node linkType: hard -"@aws-sdk/middleware-recursion-detection@npm:3.378.0": - version: 3.378.0 - resolution: "@aws-sdk/middleware-recursion-detection@npm:3.378.0" +"@aws-sdk/middleware-recursion-detection@npm:3.387.0": + version: 3.387.0 + resolution: "@aws-sdk/middleware-recursion-detection@npm:3.387.0" dependencies: - "@aws-sdk/types": 3.378.0 - "@smithy/protocol-http": ^2.0.1 - "@smithy/types": ^2.0.2 + "@aws-sdk/types": 3.387.0 + "@smithy/protocol-http": ^2.0.2 + "@smithy/types": ^2.1.0 tslib: ^2.5.0 - checksum: 2104b3834ac6674afac7a50eb4430277ef789f3fbf439d2adab9d43b6dca5dad7518f2a8cb578d3f2ff2c9883ee4e756c7fa10166c0e49f8ea307555f69b06f0 + checksum: dd6ed9eb8969181f3adf5820f66db38ab544fda03f44bec87e6efdb194f01184094dc2d3ce150e9f045a75decb99e37a9a1dc8b37a78f8722caae8367c9db8d9 languageName: node linkType: hard -"@aws-sdk/middleware-sdk-s3@npm:3.379.1": - version: 3.379.1 - resolution: "@aws-sdk/middleware-sdk-s3@npm:3.379.1" +"@aws-sdk/middleware-sdk-s3@npm:3.387.0": + version: 3.387.0 + resolution: "@aws-sdk/middleware-sdk-s3@npm:3.387.0" dependencies: - "@aws-sdk/types": 3.378.0 + "@aws-sdk/types": 3.387.0 "@aws-sdk/util-arn-parser": 3.310.0 - "@smithy/protocol-http": ^2.0.1 - "@smithy/types": ^2.0.2 + "@smithy/protocol-http": ^2.0.2 + "@smithy/types": ^2.1.0 tslib: ^2.5.0 - checksum: 0e1ff73d9354817439434627c1fbe30ef958f7bcfafecc83cf541e6ef7c8ef623d46db6aa97b0fac2c9ff833e2a9cd55b6de001baba1edf22d2199ebc3bc1bd3 + checksum: 674ebd73ed89f8375b5a7f15135a65e61736b8bc58f076504a050e9cb679da867ba256e6dc8c46b2a403c3a2fbed0667e40bb3b40bf79bc54a669650f09d97ac languageName: node linkType: hard -"@aws-sdk/middleware-sdk-sqs@npm:3.378.0": - version: 3.378.0 - resolution: "@aws-sdk/middleware-sdk-sqs@npm:3.378.0" +"@aws-sdk/middleware-sdk-sqs@npm:3.387.0": + version: 3.387.0 + resolution: "@aws-sdk/middleware-sdk-sqs@npm:3.387.0" dependencies: - "@aws-sdk/types": 3.378.0 - "@smithy/types": ^2.0.2 + "@aws-sdk/types": 3.387.0 + "@smithy/types": ^2.1.0 "@smithy/util-hex-encoding": ^2.0.0 "@smithy/util-utf8": ^2.0.0 tslib: ^2.5.0 - checksum: 83ff0b0c3a09543ac1b298556408ef7f602a83efd2837b31d4cb4a499223ff0b10f20a03e0c59fea5342a41bbd9b36b3188ea5a2d8e5f52aa0a33f43d09ca7a1 + checksum: fa734414df1c597c8fbcdff5131cfb240682a99d6d2302096040a05ff64742383f6812e8e41a7b1d32421b5556a138fd9241bced7eb35a29bcbca5376bb793b1 languageName: node linkType: hard -"@aws-sdk/middleware-sdk-sts@npm:3.379.1": - version: 3.379.1 - resolution: "@aws-sdk/middleware-sdk-sts@npm:3.379.1" +"@aws-sdk/middleware-sdk-sts@npm:3.387.0": + version: 3.387.0 + resolution: "@aws-sdk/middleware-sdk-sts@npm:3.387.0" dependencies: - "@aws-sdk/middleware-signing": 3.379.1 - "@aws-sdk/types": 3.378.0 - "@smithy/types": ^2.0.2 + "@aws-sdk/middleware-signing": 3.387.0 + "@aws-sdk/types": 3.387.0 + "@smithy/types": ^2.1.0 tslib: ^2.5.0 - checksum: 22fd2f565c5270ca0de75fbd7d751e15639a8d5fb75656bd8caf62091eda8e47ea208514964a1ae211db63b4d7e98d9a8a8f6e4067953e18a74c039e1a8b9084 + checksum: b9d5e4af2e10f980ef19add7eccd7f04eb5e42987c238acb17093b1d4239ae3430fb25e1c34ef915cd3420a2e93d59cf6570c1f9275bf5345733b1b030876cb5 languageName: node linkType: hard @@ -1251,42 +1210,42 @@ __metadata: languageName: node linkType: hard -"@aws-sdk/middleware-signing@npm:3.379.1": - version: 3.379.1 - resolution: "@aws-sdk/middleware-signing@npm:3.379.1" +"@aws-sdk/middleware-signing@npm:3.387.0": + version: 3.387.0 + resolution: "@aws-sdk/middleware-signing@npm:3.387.0" dependencies: - "@aws-sdk/types": 3.378.0 + "@aws-sdk/types": 3.387.0 "@smithy/property-provider": ^2.0.0 - "@smithy/protocol-http": ^2.0.1 + "@smithy/protocol-http": ^2.0.2 "@smithy/signature-v4": ^2.0.0 - "@smithy/types": ^2.0.2 + "@smithy/types": ^2.1.0 "@smithy/util-middleware": ^2.0.0 tslib: ^2.5.0 - checksum: f36f6de13624f504f14db8039e02a6473d366eb11c670f555613ddeb0feac523d08f7d66a985c2a7c1eee548c66f55ac4ed7c148e79efe3fa1f5ad165af627f4 + checksum: 3553748d92a64232df572f2b56d122943db9520d31b224f263ecce5711368de9d8bddc51facde9bf8a7d1075c3c381a96e65d4ad8d7f14f097d8f7e484c712e4 languageName: node linkType: hard -"@aws-sdk/middleware-ssec@npm:3.378.0": - version: 3.378.0 - resolution: "@aws-sdk/middleware-ssec@npm:3.378.0" +"@aws-sdk/middleware-ssec@npm:3.387.0": + version: 3.387.0 + resolution: "@aws-sdk/middleware-ssec@npm:3.387.0" dependencies: - "@aws-sdk/types": 3.378.0 - "@smithy/types": ^2.0.2 + "@aws-sdk/types": 3.387.0 + "@smithy/types": ^2.1.0 tslib: ^2.5.0 - checksum: 4250668f826a5ab855983a98adb08431cf35ad68785e89e1c029c74f994db9d283c8bdcdc1f9fc60a3691b479b78a1cf48898b105f32448d5f092a2a96841e6d + checksum: 362b2c5faf5a606734d72104071a6a5aaaab7ecb8eb36507f1db32e22f842898fa589916b59e239f8cbbccdbf4743c978ad2fab2e434d14f3397f71086df31f4 languageName: node linkType: hard -"@aws-sdk/middleware-user-agent@npm:3.382.0": - version: 3.382.0 - resolution: "@aws-sdk/middleware-user-agent@npm:3.382.0" +"@aws-sdk/middleware-user-agent@npm:3.387.0": + version: 3.387.0 + resolution: "@aws-sdk/middleware-user-agent@npm:3.387.0" dependencies: - "@aws-sdk/types": 3.378.0 - "@aws-sdk/util-endpoints": 3.382.0 - "@smithy/protocol-http": ^2.0.1 - "@smithy/types": ^2.0.2 + "@aws-sdk/types": 3.387.0 + "@aws-sdk/util-endpoints": 3.387.0 + "@smithy/protocol-http": ^2.0.2 + "@smithy/types": ^2.1.0 tslib: ^2.5.0 - checksum: e53150ecc07f408caa6fa69e6e30ebf9aa000fb59737eeb350fdf4db4789e0d2163bf14f17f4ff4223174e932ce5b71bd9ec662efc61a78a963e12891ecfed6f + checksum: 54cb1ddbd743bf70a28c1eebd6d1bc0adfad79b2bff0553737d238de01a83e11c9130c38526d4236457fa124d6024fd0c09607d796808dfe43821c75387d8fba languageName: node linkType: hard @@ -1334,21 +1293,21 @@ __metadata: languageName: node linkType: hard -"@aws-sdk/signature-v4-multi-region@npm:3.378.0": - version: 3.378.0 - resolution: "@aws-sdk/signature-v4-multi-region@npm:3.378.0" +"@aws-sdk/signature-v4-multi-region@npm:3.387.0": + version: 3.387.0 + resolution: "@aws-sdk/signature-v4-multi-region@npm:3.387.0" dependencies: - "@aws-sdk/types": 3.378.0 - "@smithy/protocol-http": ^2.0.1 + "@aws-sdk/types": 3.387.0 + "@smithy/protocol-http": ^2.0.2 "@smithy/signature-v4": ^2.0.0 - "@smithy/types": ^2.0.2 + "@smithy/types": ^2.1.0 tslib: ^2.5.0 peerDependencies: "@aws-sdk/signature-v4-crt": ^3.118.0 peerDependenciesMeta: "@aws-sdk/signature-v4-crt": optional: true - checksum: 0bf5e16946f6c263e14a36702de7e2be8c070c47426dd5e226e00d0fcd48d407ae6f48127386cc7250ccbad8cb17a0336bfad958236ea11c3a94d3e148244d35 + checksum: a520eb8a564edd12169addef6c449c236e6c86a657f7e1cda0331eff8adfa925e1ff4a201f4adbedd6f078fe5ceb89f933a268e5c4b61c92ff60ae47132ff5ae languageName: node linkType: hard @@ -1368,17 +1327,16 @@ __metadata: languageName: node linkType: hard -"@aws-sdk/token-providers@npm:3.382.0": - version: 3.382.0 - resolution: "@aws-sdk/token-providers@npm:3.382.0" +"@aws-sdk/token-providers@npm:3.387.0": + version: 3.387.0 + resolution: "@aws-sdk/token-providers@npm:3.387.0" dependencies: - "@aws-sdk/client-sso-oidc": 3.382.0 - "@aws-sdk/types": 3.378.0 + "@aws-sdk/types": 3.387.0 "@smithy/property-provider": ^2.0.0 "@smithy/shared-ini-file-loader": ^2.0.0 - "@smithy/types": ^2.0.2 + "@smithy/types": ^2.1.0 tslib: ^2.5.0 - checksum: 813dc973f616c2d7ec6f71da14e92d7c4b84c28309ac4d8426fe88d0c6bbe70006f9df0a984985cfcf232976188afc3d17ac5168e832e717ae4db41a21c6d67d + checksum: dffbaa98da3bd30fdedab88093d3ae94b4fdad1dd12b30fd5dbf7cfb01d1e219e3f5abe403ca71514bfa1f92818dde97a6d9c9d2cda35f2cbd43882750017bc2 languageName: node linkType: hard @@ -1392,13 +1350,13 @@ __metadata: languageName: node linkType: hard -"@aws-sdk/types@npm:3.378.0, @aws-sdk/types@npm:^3.222.0, @aws-sdk/types@npm:^3.347.0": - version: 3.378.0 - resolution: "@aws-sdk/types@npm:3.378.0" +"@aws-sdk/types@npm:3.387.0, @aws-sdk/types@npm:^3.222.0, @aws-sdk/types@npm:^3.347.0": + version: 3.387.0 + resolution: "@aws-sdk/types@npm:3.387.0" dependencies: - "@smithy/types": ^2.0.2 + "@smithy/types": ^2.1.0 tslib: ^2.5.0 - checksum: c4c7ebb48a625cb990a1288466f2dd8f0d770078cc77b60d5ee4a803b473ff41df474271dff26d3dadad151d5a016b398167738dd4926266ff1cd04585d4d8e8 + checksum: 39c5c3eea4cd8705c0c9dafa187ac6e14585a1bb6d162bbda8dc3ea5522020302ccd3ff7c8b425225c625d2b83ae6e6f6b71f621da790830a8a55ed5643197ec languageName: node linkType: hard @@ -1432,13 +1390,13 @@ __metadata: languageName: node linkType: hard -"@aws-sdk/util-endpoints@npm:3.382.0": - version: 3.382.0 - resolution: "@aws-sdk/util-endpoints@npm:3.382.0" +"@aws-sdk/util-endpoints@npm:3.387.0": + version: 3.387.0 + resolution: "@aws-sdk/util-endpoints@npm:3.387.0" dependencies: - "@aws-sdk/types": 3.378.0 + "@aws-sdk/types": 3.387.0 tslib: ^2.5.0 - checksum: 9573e0d30ef7aafb5f51a51d7cf0416b8fe21af6456bff2c1e660a615325012177b70bf78f6591dbb6d863f4e57ac6ac3279bfa3eca2d504a9121f82edf73118 + checksum: 15c3250f096ca4ed7a832294cc3b609e62004f8888781cbd5ee907bd325bb5b999867aa7c8fdd5b806e92424f2561f5dd8ae3ebbb876044289d36163180fa2a5 languageName: node linkType: hard @@ -1490,32 +1448,32 @@ __metadata: languageName: node linkType: hard -"@aws-sdk/util-user-agent-browser@npm:3.378.0": - version: 3.378.0 - resolution: "@aws-sdk/util-user-agent-browser@npm:3.378.0" +"@aws-sdk/util-user-agent-browser@npm:3.387.0": + version: 3.387.0 + resolution: "@aws-sdk/util-user-agent-browser@npm:3.387.0" dependencies: - "@aws-sdk/types": 3.378.0 - "@smithy/types": ^2.0.2 + "@aws-sdk/types": 3.387.0 + "@smithy/types": ^2.1.0 bowser: ^2.11.0 tslib: ^2.5.0 - checksum: 412ef9ffdcd3d32b9e9bb62dfa252871bc9fbee19814553aeff65bffb21de6ca236199b47eb646c4af8cb326aebab3d63ef4b303050e61fb08eed0d12bb73f8c + checksum: a7ab9c2d98c4e00f7ac8aab8f08e8f0472d026573c0790aa6036557de0dae5c6e89a3989e00937725badbefcfdfd4fa5e5a996e5e11a043a3d594b5956cfae2c languageName: node linkType: hard -"@aws-sdk/util-user-agent-node@npm:3.378.0": - version: 3.378.0 - resolution: "@aws-sdk/util-user-agent-node@npm:3.378.0" +"@aws-sdk/util-user-agent-node@npm:3.387.0": + version: 3.387.0 + resolution: "@aws-sdk/util-user-agent-node@npm:3.387.0" dependencies: - "@aws-sdk/types": 3.378.0 - "@smithy/node-config-provider": ^2.0.1 - "@smithy/types": ^2.0.2 + "@aws-sdk/types": 3.387.0 + "@smithy/node-config-provider": ^2.0.2 + "@smithy/types": ^2.1.0 tslib: ^2.5.0 peerDependencies: aws-crt: ">=1.0.0" peerDependenciesMeta: aws-crt: optional: true - checksum: b37271d56a8d91072b7af5d71351e388a822b389167638d779ce0b099a1024b412fd3b50a6b6334687a3ae0bebec89479e48a9dceed2262f8801e76e3b5f89ad + checksum: abe3cf2d058ff0a907780ee2100b0d5805d7878c434115cda645d2fe0a57226dd7cf86c2d795ef75d8062914d89c8d71752789b355317586417b92482e05c98f languageName: node linkType: hard @@ -14693,13 +14651,13 @@ __metadata: languageName: node linkType: hard -"@smithy/abort-controller@npm:^2.0.1": - version: 2.0.1 - resolution: "@smithy/abort-controller@npm:2.0.1" +"@smithy/abort-controller@npm:^2.0.1, @smithy/abort-controller@npm:^2.0.2": + version: 2.0.2 + resolution: "@smithy/abort-controller@npm:2.0.2" dependencies: - "@smithy/types": ^2.0.2 + "@smithy/types": ^2.1.0 tslib: ^2.5.0 - checksum: ec126164886a6f44ed83bde7599cd1a16e20cf429c05bf68897d06220b638aab6c7b6b3b937e65fc25d383d015ed2218ca8c1afaed2ff65fad197d0df2ccebc7 + checksum: 68a331dc59decd842b2eecae3ff8705340d9504048a0e5af31286e9505e2473f81d96bfb2dd395161529adee5413bf6aaed7e264debd0862113325c85e0771da languageName: node linkType: hard @@ -14722,141 +14680,141 @@ __metadata: languageName: node linkType: hard -"@smithy/config-resolver@npm:^2.0.1": - version: 2.0.1 - resolution: "@smithy/config-resolver@npm:2.0.1" +"@smithy/config-resolver@npm:^2.0.2": + version: 2.0.2 + resolution: "@smithy/config-resolver@npm:2.0.2" dependencies: - "@smithy/types": ^2.0.2 + "@smithy/types": ^2.1.0 "@smithy/util-config-provider": ^2.0.0 "@smithy/util-middleware": ^2.0.0 tslib: ^2.5.0 - checksum: ded6c77fd29ab026b5dcc1b4c4adb417515f7fd18af80f487f1868273ae98003d35ff7c6286207895fc74f5098e6eb8a94555a5af89818796a2fb8bb01a80c60 + checksum: deb7ecab3d3f2ce57304d99605e55739c94356105c8106c8ca9bb5c0fc329e2b4153788a12bb8600187c51645b9a5be799571c8e380cc4458d110c37f127c75b languageName: node linkType: hard -"@smithy/credential-provider-imds@npm:^2.0.0, @smithy/credential-provider-imds@npm:^2.0.1": - version: 2.0.1 - resolution: "@smithy/credential-provider-imds@npm:2.0.1" +"@smithy/credential-provider-imds@npm:^2.0.0, @smithy/credential-provider-imds@npm:^2.0.2": + version: 2.0.2 + resolution: "@smithy/credential-provider-imds@npm:2.0.2" dependencies: - "@smithy/node-config-provider": ^2.0.1 - "@smithy/property-provider": ^2.0.1 - "@smithy/types": ^2.0.2 - "@smithy/url-parser": ^2.0.1 + "@smithy/node-config-provider": ^2.0.2 + "@smithy/property-provider": ^2.0.2 + "@smithy/types": ^2.1.0 + "@smithy/url-parser": ^2.0.2 tslib: ^2.5.0 - checksum: cf0ee4b50da5584685afc9019af1a8e8c910890dc3128a574b606b7845d898cd65429263682ef27da79dc358286f48b4452617a2fe9fcb98e5483908ac05ce8b + checksum: 519fd53a74e7fdb4a5e39bf4d0554983231919d80e2b9e324976a14ec41d4e0e4de6c9272af10820c220810ba30a9803a901c677b9994b8893aded10e1b36505 languageName: node linkType: hard -"@smithy/eventstream-codec@npm:^2.0.1": - version: 2.0.1 - resolution: "@smithy/eventstream-codec@npm:2.0.1" +"@smithy/eventstream-codec@npm:^2.0.1, @smithy/eventstream-codec@npm:^2.0.2": + version: 2.0.2 + resolution: "@smithy/eventstream-codec@npm:2.0.2" dependencies: "@aws-crypto/crc32": 3.0.0 - "@smithy/types": ^2.0.2 + "@smithy/types": ^2.1.0 "@smithy/util-hex-encoding": ^2.0.0 tslib: ^2.5.0 - checksum: 2b7dc1f974b5302dd9fc0982c2484a4d6286e512db78c1c0b8796a5916c3846644b02c6dbbc8433181aeb41c5468d73635459e9f37d640a0bdaf3fe670da8914 + checksum: aa9136264c1f9a3bc8b9bc175d28b10d0ce72377593b4ed32d11b1753723a88e6305991ab0c6822d986f31edb914355df6bec8fb65ffe1f66c2ce6dab0768668 languageName: node linkType: hard -"@smithy/eventstream-serde-browser@npm:^2.0.1": - version: 2.0.1 - resolution: "@smithy/eventstream-serde-browser@npm:2.0.1" +"@smithy/eventstream-serde-browser@npm:^2.0.2": + version: 2.0.2 + resolution: "@smithy/eventstream-serde-browser@npm:2.0.2" dependencies: - "@smithy/eventstream-serde-universal": ^2.0.1 - "@smithy/types": ^2.0.2 + "@smithy/eventstream-serde-universal": ^2.0.2 + "@smithy/types": ^2.1.0 tslib: ^2.5.0 - checksum: 08fc90c21a27f323a30c95d6fbbd57df077fbde8d80ae554b13984cc9a189f31e173296fdff64d7630118949f206d2054e75dd8e0ed97d281e1b41c933947570 + checksum: b21c97d9e02fe3ba9110cbea35f674b3746c36eafde2874e878fcea03f7c1d1f34f38797df38b8b04dcc19576aa9f568e3e241f79aac696169941c4f44132d08 languageName: node linkType: hard -"@smithy/eventstream-serde-config-resolver@npm:^2.0.1": - version: 2.0.1 - resolution: "@smithy/eventstream-serde-config-resolver@npm:2.0.1" +"@smithy/eventstream-serde-config-resolver@npm:^2.0.2": + version: 2.0.2 + resolution: "@smithy/eventstream-serde-config-resolver@npm:2.0.2" dependencies: - "@smithy/types": ^2.0.2 + "@smithy/types": ^2.1.0 tslib: ^2.5.0 - checksum: 9efb031a7029fe21153d695126ee28bfbaa1c42d6d7b4ffedf06959e9d4ab3c7312c7c75cea102af2451dad919bea49dbe9d6fb9877fbf25fdd639a8c715a864 + checksum: 707e6e39e2ccb832db06f82bbf96c655548052458bf3f8b8b00e32461747b1fab1be9ec60a5ddbff8770e48b2cd153277bc81b203765d66b78fc2f76252ce8b9 languageName: node linkType: hard -"@smithy/eventstream-serde-node@npm:^2.0.1": - version: 2.0.1 - resolution: "@smithy/eventstream-serde-node@npm:2.0.1" +"@smithy/eventstream-serde-node@npm:^2.0.2": + version: 2.0.2 + resolution: "@smithy/eventstream-serde-node@npm:2.0.2" dependencies: - "@smithy/eventstream-serde-universal": ^2.0.1 - "@smithy/types": ^2.0.2 + "@smithy/eventstream-serde-universal": ^2.0.2 + "@smithy/types": ^2.1.0 tslib: ^2.5.0 - checksum: ff7460759e45286980d8c7addff2bd52b8c8dbcddd6ad6877f31654f936be5dbfbe9745b1ce70fb6b05b0426181594555593826b209f41e74fdc78dcb2e500b7 + checksum: dfda607f0d76098616341c1e6f3012242c58f1d3211a464631f4d337f7113bce7f0380fe5cdf5b6e4e391beb54562d1a96494ca8d2af847f1f13264f362365aa languageName: node linkType: hard -"@smithy/eventstream-serde-universal@npm:^2.0.1": - version: 2.0.1 - resolution: "@smithy/eventstream-serde-universal@npm:2.0.1" +"@smithy/eventstream-serde-universal@npm:^2.0.2": + version: 2.0.2 + resolution: "@smithy/eventstream-serde-universal@npm:2.0.2" dependencies: - "@smithy/eventstream-codec": ^2.0.1 - "@smithy/types": ^2.0.2 + "@smithy/eventstream-codec": ^2.0.2 + "@smithy/types": ^2.1.0 tslib: ^2.5.0 - checksum: b9c7492719ccf444d209e6ced04c1526211b65cab23d6dbf89213c65957493cd5d0ec0f382d021c22e93461d2a7f3a2c7cb08c899d9e1690c3bf9c47d3edfa47 + checksum: 887d03832126054fdfd6426ee3153eec54ecfcddeb04c63c69f6f1fcc23e0b8af737dce7c8ae07ca456f1e0be63614498280b77ff5c919793a0633b1d7d11a2c languageName: node linkType: hard -"@smithy/fetch-http-handler@npm:^2.0.1": - version: 2.0.1 - resolution: "@smithy/fetch-http-handler@npm:2.0.1" +"@smithy/fetch-http-handler@npm:^2.0.2": + version: 2.0.2 + resolution: "@smithy/fetch-http-handler@npm:2.0.2" dependencies: - "@smithy/protocol-http": ^2.0.1 - "@smithy/querystring-builder": ^2.0.1 - "@smithy/types": ^2.0.2 + "@smithy/protocol-http": ^2.0.2 + "@smithy/querystring-builder": ^2.0.2 + "@smithy/types": ^2.1.0 "@smithy/util-base64": ^2.0.0 tslib: ^2.5.0 - checksum: ba80a2182d3c68a88212a99cbeb1bd645f5f6f7584081763faf5590443266e9f32b15e8f7380eaf92ed61fe9fdfbdec1ec030eb0c02b68ed48b4fa710c6718e3 + checksum: 2c7c97c02bc347b420c51a052b97884e70cfbed25475e68d5a1e8f46b1b0873d727c4989b4a71aaa5e5e1ba055c423f989f5b01bf105176580acc9d5cc80eb72 languageName: node linkType: hard -"@smithy/hash-blob-browser@npm:^2.0.1": - version: 2.0.1 - resolution: "@smithy/hash-blob-browser@npm:2.0.1" +"@smithy/hash-blob-browser@npm:^2.0.2": + version: 2.0.2 + resolution: "@smithy/hash-blob-browser@npm:2.0.2" dependencies: "@smithy/chunked-blob-reader": ^2.0.0 "@smithy/chunked-blob-reader-native": ^2.0.0 - "@smithy/types": ^2.0.2 + "@smithy/types": ^2.1.0 tslib: ^2.5.0 - checksum: 480555069022fc725f05b1b5ecdd3d70280d851a4e61b5ddd3f1c43ef59e8c0e9e3b45991716a87d9bb7d542833d01d0d614d3b7d60448ffa521956a8be58cb3 + checksum: add61e1fbdcaf5b019bb8ad4d1dbb70cbc59c65f039cab2ac9fc4617333ce7a3aa356d51b737732560d23db29f7afbd5c1addb4db738ec21dfa2cad5dd82ca05 languageName: node linkType: hard -"@smithy/hash-node@npm:^2.0.1": - version: 2.0.1 - resolution: "@smithy/hash-node@npm:2.0.1" +"@smithy/hash-node@npm:^2.0.2": + version: 2.0.2 + resolution: "@smithy/hash-node@npm:2.0.2" dependencies: - "@smithy/types": ^2.0.2 + "@smithy/types": ^2.1.0 "@smithy/util-buffer-from": ^2.0.0 "@smithy/util-utf8": ^2.0.0 tslib: ^2.5.0 - checksum: e1a1b1ea44f42eacd982680877c31ce4ea4243455bc16e89357981c60902f93074874148701bc82776f41e66eacc6b16c8cc46cd7c99f4135ba13f4ba4a44edf + checksum: 2917822fcc965596755a284cbae8376adb0d1ebc5998ae8a5682e4385f29eaac4408b24e560eced4b7fb8a279fa4453277dc3853114724d4e4c62ce935863fa9 languageName: node linkType: hard -"@smithy/hash-stream-node@npm:^2.0.1": - version: 2.0.1 - resolution: "@smithy/hash-stream-node@npm:2.0.1" +"@smithy/hash-stream-node@npm:^2.0.2": + version: 2.0.2 + resolution: "@smithy/hash-stream-node@npm:2.0.2" dependencies: - "@smithy/types": ^2.0.2 + "@smithy/types": ^2.1.0 "@smithy/util-utf8": ^2.0.0 tslib: ^2.5.0 - checksum: 8c80dbfe4ae143d73feae381c47e78e29f05d9bfed457cfdb22c5e0fc5b773500c943cd9ca58a1eb04f7ccfcea197bcd05741ad68ae17b08472264e900bc8edf + checksum: b588608e200978a09633591e5f155bb63890d0f96776eaf94bfbf8df7223bf6a83e8f1a0b256fd7ee286b7b2ca53f1f7124e2d436d5e21ddf10aeb52e7ab528d languageName: node linkType: hard -"@smithy/invalid-dependency@npm:^2.0.1": - version: 2.0.1 - resolution: "@smithy/invalid-dependency@npm:2.0.1" +"@smithy/invalid-dependency@npm:^2.0.2": + version: 2.0.2 + resolution: "@smithy/invalid-dependency@npm:2.0.2" dependencies: - "@smithy/types": ^2.0.2 + "@smithy/types": ^2.1.0 tslib: ^2.5.0 - checksum: d50f5781c9e0b1cb336fa20979ee69640bfa586139237eacae9f9068e40c8c729b3b4646af5fab0250e8e49649acab14262d3524f515ecbecc58cd24b68b7ef5 + checksum: c31f5d8555729ac34a0e56f350061ee127a6869c6fbe5e30c303e8b273aa52370d7e3a9ec603448cf2e986740a4c67e5285a350d738896e2ad4f7312cb3ed943 languageName: node linkType: hard @@ -14869,63 +14827,63 @@ __metadata: languageName: node linkType: hard -"@smithy/md5-js@npm:^2.0.1": - version: 2.0.1 - resolution: "@smithy/md5-js@npm:2.0.1" +"@smithy/md5-js@npm:^2.0.2": + version: 2.0.2 + resolution: "@smithy/md5-js@npm:2.0.2" dependencies: - "@smithy/types": ^2.0.2 + "@smithy/types": ^2.1.0 "@smithy/util-utf8": ^2.0.0 tslib: ^2.5.0 - checksum: 29593e5ea6a53140edadbbfba1004ca811cef1d53db800446fa578a88d71fb1e042cb551b5b954162066027a09c7866d7d955f6d0aadfebeec01af744f7c8b8a + checksum: 889056925d17f424f23540b25c237c7ad4e9b7b8a7817a0172cf0a648da5ab9c709593790629955365c93504787c534b2156aa8d056ea27fe81a88106126268b languageName: node linkType: hard -"@smithy/middleware-content-length@npm:^2.0.1": - version: 2.0.1 - resolution: "@smithy/middleware-content-length@npm:2.0.1" +"@smithy/middleware-content-length@npm:^2.0.2": + version: 2.0.2 + resolution: "@smithy/middleware-content-length@npm:2.0.2" dependencies: - "@smithy/protocol-http": ^2.0.1 - "@smithy/types": ^2.0.2 + "@smithy/protocol-http": ^2.0.2 + "@smithy/types": ^2.1.0 tslib: ^2.5.0 - checksum: f9074ba2d5780b0d55e46aeacff8276fb11acf828afdc813ec3c5f118323533f774dd2b99ae00c946993c5ba91c66afa5b40d66ce5f035a456cf6c4cd38a83e1 + checksum: d4a28b967629eab3ee2265ad34e6f45b8006e247e51fdce53604431de58a7840a304ff530475b160d50dc9fb47b1c4c91e51e340003c57b9aaa8483686540336 languageName: node linkType: hard -"@smithy/middleware-endpoint@npm:^2.0.1": - version: 2.0.1 - resolution: "@smithy/middleware-endpoint@npm:2.0.1" +"@smithy/middleware-endpoint@npm:^2.0.2": + version: 2.0.2 + resolution: "@smithy/middleware-endpoint@npm:2.0.2" dependencies: - "@smithy/middleware-serde": ^2.0.1 - "@smithy/types": ^2.0.2 - "@smithy/url-parser": ^2.0.1 + "@smithy/middleware-serde": ^2.0.2 + "@smithy/types": ^2.1.0 + "@smithy/url-parser": ^2.0.2 "@smithy/util-middleware": ^2.0.0 tslib: ^2.5.0 - checksum: 5aa0a4c6972a533936dba5eb0d719bb9b534484a401f1a6135a201fc683083aa925d207f2155e15656b2c941c05de2a2aa74dae5e0b9d1a183371a3c3b90b3f6 + checksum: 2a1ba8fa8fe0aef2bdd87c6fc7d3567b4b03e63ad8b46531130042c226b627d438f163caad81295b7dcb506536fd0700fb0ddc20bfc894c7be589b8c891fa799 languageName: node linkType: hard -"@smithy/middleware-retry@npm:^2.0.1": - version: 2.0.1 - resolution: "@smithy/middleware-retry@npm:2.0.1" +"@smithy/middleware-retry@npm:^2.0.2": + version: 2.0.2 + resolution: "@smithy/middleware-retry@npm:2.0.2" dependencies: - "@smithy/protocol-http": ^2.0.1 + "@smithy/protocol-http": ^2.0.2 "@smithy/service-error-classification": ^2.0.0 - "@smithy/types": ^2.0.2 + "@smithy/types": ^2.1.0 "@smithy/util-middleware": ^2.0.0 "@smithy/util-retry": ^2.0.0 tslib: ^2.5.0 uuid: ^8.3.2 - checksum: a1dd6d1feb560632075f3b3be2f3d406635dc3a158e286eb43f3b93c52deacb2a7c7262f3c911cb652f42e4cb4091155482b04a6c0c61360b650468a54f944b2 + checksum: c88134fe739b9b038117b388b10e29e53407af3bd6f61fbfdc2600b45b6415bb2e75ee4ce9b0423376d11472d0fb96ba6300c23a1c0ddf8a5d3806f8b7d3c088 languageName: node linkType: hard -"@smithy/middleware-serde@npm:^2.0.1": - version: 2.0.1 - resolution: "@smithy/middleware-serde@npm:2.0.1" +"@smithy/middleware-serde@npm:^2.0.2": + version: 2.0.2 + resolution: "@smithy/middleware-serde@npm:2.0.2" dependencies: - "@smithy/types": ^2.0.2 + "@smithy/types": ^2.1.0 tslib: ^2.5.0 - checksum: 115d2b94925f24e3592d6e3889179c30c8992957021bfdc67496f9e36dcb3ffe2282a01c0e439282e89c0a5b56bf125a1bec2c87aed02e325316e3b6050ed9fa + checksum: 6d343eceeff45c08142ff0567885b910f6d77e7ec95396f8fc4b0fc259284c8d430bd8412ef36c5c45905ee631c660524e38450bda86400b06f3272f4504b08f languageName: node linkType: hard @@ -14938,69 +14896,69 @@ __metadata: languageName: node linkType: hard -"@smithy/node-config-provider@npm:^2.0.1": - version: 2.0.1 - resolution: "@smithy/node-config-provider@npm:2.0.1" +"@smithy/node-config-provider@npm:^2.0.2": + version: 2.0.2 + resolution: "@smithy/node-config-provider@npm:2.0.2" dependencies: - "@smithy/property-provider": ^2.0.1 - "@smithy/shared-ini-file-loader": ^2.0.1 - "@smithy/types": ^2.0.2 + "@smithy/property-provider": ^2.0.2 + "@smithy/shared-ini-file-loader": ^2.0.2 + "@smithy/types": ^2.1.0 tslib: ^2.5.0 - checksum: 9752c8e7c01fc991b93bb080e8486b82d55d592a2c7573004c2e296c192c153b967c79c03be0924c59e14ffc3de04ca861e99370d2ae9a0d8c54f25ea3f99be8 + checksum: 6cf3953dfd08f337b5ef41fa6808b083ceb06624e2de4996bfbb7d4326a8deefe73e47d6bb00ca81a2d2dc9b662d3eaaa3d1698262f2256d1a7c71290663ca12 languageName: node linkType: hard -"@smithy/node-http-handler@npm:^2.0.1": - version: 2.0.1 - resolution: "@smithy/node-http-handler@npm:2.0.1" +"@smithy/node-http-handler@npm:^2.0.2": + version: 2.0.2 + resolution: "@smithy/node-http-handler@npm:2.0.2" dependencies: - "@smithy/abort-controller": ^2.0.1 - "@smithy/protocol-http": ^2.0.1 - "@smithy/querystring-builder": ^2.0.1 - "@smithy/types": ^2.0.2 + "@smithy/abort-controller": ^2.0.2 + "@smithy/protocol-http": ^2.0.2 + "@smithy/querystring-builder": ^2.0.2 + "@smithy/types": ^2.1.0 tslib: ^2.5.0 - checksum: 04705e7c28fb71a5800a511f64dd182230a501742f779860b1d2155a02eec9c9df3b573e2ad9cd3a0148891f02b780edb7803c95b321dd4a2659715ac73566ee + checksum: 1c5e0189d2f68bfc4c50c107182eb34b34024de3213a552cab2088c01bea8707c51c7cbbd7cf61290cf8b71e13ec2d715e51b7647edc9f5d27ab8779011e2a4d languageName: node linkType: hard -"@smithy/property-provider@npm:^2.0.0, @smithy/property-provider@npm:^2.0.1": - version: 2.0.1 - resolution: "@smithy/property-provider@npm:2.0.1" +"@smithy/property-provider@npm:^2.0.0, @smithy/property-provider@npm:^2.0.2": + version: 2.0.2 + resolution: "@smithy/property-provider@npm:2.0.2" dependencies: - "@smithy/types": ^2.0.2 + "@smithy/types": ^2.1.0 tslib: ^2.5.0 - checksum: 56ea840032911b37a2e602144cf4cf08401a79a3ab06e226a4cf65a14b77e70e4d0bd8f762d172e322a0cf75f45bd1886a265687e090a2848798225e276f2882 + checksum: e18df64d5ec92b2c7876dc1e7a596dc80066e13d49fcad6d8caac50394e8b3f3b15aa1f517429a85cdfefc218ee3d72028613454c706638352732ab1ae0f7418 languageName: node linkType: hard -"@smithy/protocol-http@npm:^2.0.1": - version: 2.0.1 - resolution: "@smithy/protocol-http@npm:2.0.1" +"@smithy/protocol-http@npm:^2.0.2": + version: 2.0.2 + resolution: "@smithy/protocol-http@npm:2.0.2" dependencies: - "@smithy/types": ^2.0.2 + "@smithy/types": ^2.1.0 tslib: ^2.5.0 - checksum: cc3d354fad3f27ab29cf7053bbdbbd150dca1864595a46d463abf06595af68e5c31cfc2d03b971fbb693cb9abd3be5763a195497a4fe19f8aed3132069ae3246 + checksum: 61202d08d4433a4406a56e1e77863b89a60431a39984b38fec04a18276973857524b18d60c394236f3b664a08ec1996d837c295798e44f02ba93aca5336e9432 languageName: node linkType: hard -"@smithy/querystring-builder@npm:^2.0.1": - version: 2.0.1 - resolution: "@smithy/querystring-builder@npm:2.0.1" +"@smithy/querystring-builder@npm:^2.0.2": + version: 2.0.2 + resolution: "@smithy/querystring-builder@npm:2.0.2" dependencies: - "@smithy/types": ^2.0.2 + "@smithy/types": ^2.1.0 "@smithy/util-uri-escape": ^2.0.0 tslib: ^2.5.0 - checksum: f8ec37623054fcbad8317b57ef41fc906f3f22260b365e7c3b107219dcf456c5c7347165f3bf25d47a4c592548d835778f9c8bc7cc7306b65aa6ce429d94a345 + checksum: cdda228f0ac049aed302dcd19c47309a81eeb4d4c360189a399bc70bd6283ba218c87cfdee43e33c406cbe452d7979a389de9150b06de5221dfe4a6f69e53c1b languageName: node linkType: hard -"@smithy/querystring-parser@npm:^2.0.1": - version: 2.0.1 - resolution: "@smithy/querystring-parser@npm:2.0.1" +"@smithy/querystring-parser@npm:^2.0.2": + version: 2.0.2 + resolution: "@smithy/querystring-parser@npm:2.0.2" dependencies: - "@smithy/types": ^2.0.2 + "@smithy/types": ^2.1.0 tslib: ^2.5.0 - checksum: a6107281ae33beb5518b85de82fea7692cfcb6c15155719c6ba6ee44cc75b20f07ce28214c635ee38b0474995c0a23b4872feef8bd9f98a7811b7ccf59bac819 + checksum: 0a571dbf7876096823071583e4b8506d9ce4fc1ff2af9fac07987bdf9a6e0dfee1598280cf411a6709cf535e2904eeab385bb2186bb6fe3aa987bae84620256c languageName: node linkType: hard @@ -15011,13 +14969,13 @@ __metadata: languageName: node linkType: hard -"@smithy/shared-ini-file-loader@npm:^2.0.0, @smithy/shared-ini-file-loader@npm:^2.0.1": - version: 2.0.1 - resolution: "@smithy/shared-ini-file-loader@npm:2.0.1" +"@smithy/shared-ini-file-loader@npm:^2.0.0, @smithy/shared-ini-file-loader@npm:^2.0.2": + version: 2.0.2 + resolution: "@smithy/shared-ini-file-loader@npm:2.0.2" dependencies: - "@smithy/types": ^2.0.2 + "@smithy/types": ^2.1.0 tslib: ^2.5.0 - checksum: 0f67d0ba9e44286a444301e603260a2ae5973324d43bc89f6ca15d2a830b32c1232474ff452cf3d607ee08d4fa6d17517fd901a4e6fd4dddbc571aa6b1ae3b6d + checksum: 5a7100b1db34d0a479dcbc2d649840dcf37fb2be4d5798ba7bef58186b636d867c3c555796f1372bcfc5554705a3f267e13008705451f44cd03a2c5a87c5c89e languageName: node linkType: hard @@ -15037,15 +14995,15 @@ __metadata: languageName: node linkType: hard -"@smithy/smithy-client@npm:^2.0.1": - version: 2.0.1 - resolution: "@smithy/smithy-client@npm:2.0.1" +"@smithy/smithy-client@npm:^2.0.2": + version: 2.0.2 + resolution: "@smithy/smithy-client@npm:2.0.2" dependencies: "@smithy/middleware-stack": ^2.0.0 - "@smithy/types": ^2.0.2 - "@smithy/util-stream": ^2.0.1 + "@smithy/types": ^2.1.0 + "@smithy/util-stream": ^2.0.2 tslib: ^2.5.0 - checksum: 5c4abe0a0a67f2c2aa47cbf2806d0d44a34f97ebc83f1add9654d95cef3303fc0dff41237a7e360ae6c2be721e945c889bf869f11476a759c0ad82d61df18f5a + checksum: 999b814ece054dfcc4808e5e3bdf6d24f5bc1a16b375bccad95ba9f0ff709a68f4c6437d1378b8b1ef870ce75e4cd2e55df4143394890e9759cec69fd078062d languageName: node linkType: hard @@ -15058,23 +15016,23 @@ __metadata: languageName: node linkType: hard -"@smithy/types@npm:^2.0.2": - version: 2.0.2 - resolution: "@smithy/types@npm:2.0.2" +"@smithy/types@npm:^2.0.2, @smithy/types@npm:^2.1.0": + version: 2.1.0 + resolution: "@smithy/types@npm:2.1.0" dependencies: tslib: ^2.5.0 - checksum: 4afdd7c77b212abd9e0770a1489057aa0470f8a59061c4fb2175b1f12e02180db3d85e16f2cd870a95c17bd28a5a4b8ef1dff1ade6852f85eafea12872d9588e + checksum: 15c61c1b6520ef21257b64e4be7c8334c1206db8f21c9fb301838b5e09699996060c4361e51d2c63ee972f8678df68a8a60e2dd18216ae70751393d9d4188c5a languageName: node linkType: hard -"@smithy/url-parser@npm:^2.0.1": - version: 2.0.1 - resolution: "@smithy/url-parser@npm:2.0.1" +"@smithy/url-parser@npm:^2.0.2": + version: 2.0.2 + resolution: "@smithy/url-parser@npm:2.0.2" dependencies: - "@smithy/querystring-parser": ^2.0.1 - "@smithy/types": ^2.0.2 + "@smithy/querystring-parser": ^2.0.2 + "@smithy/types": ^2.1.0 tslib: ^2.5.0 - checksum: 653bdeff812b972fa88a4e2d795c38df1aca68055818d150727b8b7d2b7b6bb00aed003b113febe371ed2e38e8dd4715b31af6afce7e883d937aed75e7ff48fb + checksum: 3a977e6a2c8d6d01e29d8925ef351d2cbc0951029d774490e3362d681fd18d97622afd2e99cea158f3e851cf423dc8dde5f6aee639cdf77f31e80150a732478b languageName: node linkType: hard @@ -15125,29 +15083,29 @@ __metadata: languageName: node linkType: hard -"@smithy/util-defaults-mode-browser@npm:^2.0.1": - version: 2.0.1 - resolution: "@smithy/util-defaults-mode-browser@npm:2.0.1" +"@smithy/util-defaults-mode-browser@npm:^2.0.2": + version: 2.0.2 + resolution: "@smithy/util-defaults-mode-browser@npm:2.0.2" dependencies: - "@smithy/property-provider": ^2.0.1 - "@smithy/types": ^2.0.2 + "@smithy/property-provider": ^2.0.2 + "@smithy/types": ^2.1.0 bowser: ^2.11.0 tslib: ^2.5.0 - checksum: b436183ca880c1bb607116c780e7e8d1e252aeb51daf5f35740281671a4553431f393847d74ad180e9388bf11aeab1c675f61bb3a34a0d2fa9943111b063b17d + checksum: 0e4d70040268757120aec9b6207256d091772075e21dc1778c29d33d002c12e4825a192a2424ca3099d79ceb9ce8e6e77a627b680e12a657a171ca9ed84818e7 languageName: node linkType: hard -"@smithy/util-defaults-mode-node@npm:^2.0.1": - version: 2.0.1 - resolution: "@smithy/util-defaults-mode-node@npm:2.0.1" +"@smithy/util-defaults-mode-node@npm:^2.0.2": + version: 2.0.2 + resolution: "@smithy/util-defaults-mode-node@npm:2.0.2" dependencies: - "@smithy/config-resolver": ^2.0.1 - "@smithy/credential-provider-imds": ^2.0.1 - "@smithy/node-config-provider": ^2.0.1 - "@smithy/property-provider": ^2.0.1 - "@smithy/types": ^2.0.2 + "@smithy/config-resolver": ^2.0.2 + "@smithy/credential-provider-imds": ^2.0.2 + "@smithy/node-config-provider": ^2.0.2 + "@smithy/property-provider": ^2.0.2 + "@smithy/types": ^2.1.0 tslib: ^2.5.0 - checksum: ffd9601a8b37e1ea7a2c23bcaa70bf297c5c95113e8bab41a2f533d1a2f9f9631e66b5360312e202980dbd03ed3c8d8146dd33c8d4e5d3caf30c78a39b301de2 + checksum: 25b8988bad21b7fb45c715e303b57bee4e865644f3c3282aa36f81ce71000e94289c84bccdd820556a8625d5d6bfa4ce70eb0f02bd74e9bb117ed713fabeba5d languageName: node linkType: hard @@ -15179,19 +15137,19 @@ __metadata: languageName: node linkType: hard -"@smithy/util-stream@npm:^2.0.1": - version: 2.0.1 - resolution: "@smithy/util-stream@npm:2.0.1" +"@smithy/util-stream@npm:^2.0.2": + version: 2.0.2 + resolution: "@smithy/util-stream@npm:2.0.2" dependencies: - "@smithy/fetch-http-handler": ^2.0.1 - "@smithy/node-http-handler": ^2.0.1 - "@smithy/types": ^2.0.2 + "@smithy/fetch-http-handler": ^2.0.2 + "@smithy/node-http-handler": ^2.0.2 + "@smithy/types": ^2.1.0 "@smithy/util-base64": ^2.0.0 "@smithy/util-buffer-from": ^2.0.0 "@smithy/util-hex-encoding": ^2.0.0 "@smithy/util-utf8": ^2.0.0 tslib: ^2.5.0 - checksum: 3a190a9e5e3675e69ffdb72bec00216cb8c3e5a565cdcea47bff593c8aac34bc39897c870c4ad82ea369a5be5caa63b08a20516653b6de0e0a19a291315c3773 + checksum: 32115fa35437370671dcedf14714ab32b94ceb598baffe1d8afa7c574084b4cf0826f15fd3a76bc1450010512d2d067cbe62fe8c6ce4ee640fb0270768a8d87c languageName: node linkType: hard @@ -15214,14 +15172,14 @@ __metadata: languageName: node linkType: hard -"@smithy/util-waiter@npm:^2.0.1": - version: 2.0.1 - resolution: "@smithy/util-waiter@npm:2.0.1" +"@smithy/util-waiter@npm:^2.0.2": + version: 2.0.2 + resolution: "@smithy/util-waiter@npm:2.0.2" dependencies: - "@smithy/abort-controller": ^2.0.1 - "@smithy/types": ^2.0.2 + "@smithy/abort-controller": ^2.0.2 + "@smithy/types": ^2.1.0 tslib: ^2.5.0 - checksum: d85893533b4222545151d8a0e4c67400a8370bc3dce34c17f5ce0c19b4dadf102ffa7b3ef2b5004abcf0892c318825b07498f8a86f2430cc886f55bf7369a57f + checksum: a0d23641fb724684b299d5131d82578f1c11cdcde9d55af309e00a0f75b19792016207eb1effb58da21eeafcac6cd5ed7ea4632c2c2e2e5eb423aa40f2e50fdf languageName: node linkType: hard From 8faaa4898b6dce9e1c44071d74c6f76ccb0818c6 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 9 Aug 2023 00:32:57 +0000 Subject: [PATCH 099/372] chore(deps): update dependency @types/node to v16.18.40 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 de57b2ee01..d867e1e1d4 100644 --- a/yarn.lock +++ b/yarn.lock @@ -17505,9 +17505,9 @@ __metadata: linkType: hard "@types/node@npm:*, @types/node@npm:>=12.12.47, @types/node@npm:>=13.7.0": - version: 20.4.8 - resolution: "@types/node@npm:20.4.8" - checksum: 86a3963c0c7af3410553d1dfa4b018a20b3cb3ab4d8e8ffe27408b6338c5de0374b0bf379bc705da2205b466daa751ccfe062f453ba9bde34fdb0e5163ca6a68 + version: 20.4.9 + resolution: "@types/node@npm:20.4.9" + checksum: 504e3da96274f3865c1251830f4750bb0a8f6ef6f8648902cd3bba33370c5f219235471bfbf55cce726b25c8eacfcc8e2aad0ec3b13e27ea6708b00d4a9a46c8 languageName: node linkType: hard @@ -17540,16 +17540,16 @@ __metadata: linkType: hard "@types/node@npm:^16.0.0, @types/node@npm:^16.11.26, @types/node@npm:^16.9.2": - version: 16.18.39 - resolution: "@types/node@npm:16.18.39" - checksum: eac9b202b76013256cb517ca8d3e3f61df206edb1615ca8d8df4c80616e92879fe4d3f8570a11d60f4216a82724a3265d5888b24c6994c80b057a0423c9ff1d2 + version: 16.18.40 + resolution: "@types/node@npm:16.18.40" + checksum: a683930491b4fd7cb2dc7684e32bbeedc4a83fb1949a7b15ea724fbfaa9988cec59091f169a3f1090cb91992caba8c1a7d50315b2c67c6e2579a3788bb09eec4 languageName: node linkType: hard "@types/node@npm:^18.11.17": - version: 18.17.3 - resolution: "@types/node@npm:18.17.3" - checksum: 884fb68936b2b0ff90863fcf80610dd2f3d9fe1947897248b0138df05fe41ee6ce62941b37b565e3b3fd77601cd3977a64de858654c6ab9064413b171740d6ba + version: 18.17.4 + resolution: "@types/node@npm:18.17.4" + checksum: d4c458202d82c999f38d85ca9ae8a2d3e521645c7f1b908cd6a0303d0e13c7d5eb3f888c41f584ba029ecf802d0a0005b7816c149400371a3c035abc4bd9a4c5 languageName: node linkType: hard From 5c28ebc79fd662405b9d3ca06e09b2411084ac33 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 9 Aug 2023 03:32:36 +0000 Subject: [PATCH 100/372] chore(deps): update dependency esbuild to ^0.19.0 Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .changeset/renovate-9a0aa29.md | 6 + packages/cli/package.json | 2 +- plugins/scaffolder-backend/package.json | 2 +- yarn.lock | 188 ++++++++++++------------ 4 files changed, 102 insertions(+), 96 deletions(-) create mode 100644 .changeset/renovate-9a0aa29.md diff --git a/.changeset/renovate-9a0aa29.md b/.changeset/renovate-9a0aa29.md new file mode 100644 index 0000000000..8885bf30cd --- /dev/null +++ b/.changeset/renovate-9a0aa29.md @@ -0,0 +1,6 @@ +--- +'@backstage/cli': patch +'@backstage/plugin-scaffolder-backend': patch +--- + +Updated dependency `esbuild` to `^0.19.0`. diff --git a/packages/cli/package.json b/packages/cli/package.json index 8fe6a579ea..37f3d3a093 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -78,7 +78,7 @@ "cross-spawn": "^7.0.3", "css-loader": "^6.5.1", "diff": "^5.0.0", - "esbuild": "^0.18.0", + "esbuild": "^0.19.0", "esbuild-loader": "^2.18.0", "eslint": "^8.6.0", "eslint-config-prettier": "^8.3.0", diff --git a/plugins/scaffolder-backend/package.json b/plugins/scaffolder-backend/package.json index 9db076a4a9..9376cabf17 100644 --- a/plugins/scaffolder-backend/package.json +++ b/plugins/scaffolder-backend/package.json @@ -110,7 +110,7 @@ "@types/nunjucks": "^3.1.4", "@types/supertest": "^2.0.8", "@types/zen-observable": "^0.8.0", - "esbuild": "^0.18.0", + "esbuild": "^0.19.0", "jest-when": "^3.1.0", "mock-fs": "^5.1.0", "msw": "^1.0.0", diff --git a/yarn.lock b/yarn.lock index fd36fd1910..0bf4d0ba0b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3620,7 +3620,7 @@ __metadata: css-loader: ^6.5.1 del: ^7.0.0 diff: ^5.0.0 - esbuild: ^0.18.0 + esbuild: ^0.19.0 esbuild-loader: ^2.18.0 eslint: ^8.6.0 eslint-config-prettier: ^8.3.0 @@ -8236,7 +8236,7 @@ __metadata: command-exists: ^1.2.9 compression: ^1.7.4 cors: ^2.8.5 - esbuild: ^0.18.0 + esbuild: ^0.19.0 express: ^4.17.1 express-promise-router: ^4.1.0 fs-extra: 10.1.0 @@ -10361,9 +10361,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/android-arm64@npm:0.18.19": - version: 0.18.19 - resolution: "@esbuild/android-arm64@npm:0.18.19" +"@esbuild/android-arm64@npm:0.19.0": + version: 0.19.0 + resolution: "@esbuild/android-arm64@npm:0.19.0" conditions: os=android & cpu=arm64 languageName: node linkType: hard @@ -10382,9 +10382,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/android-arm@npm:0.18.19": - version: 0.18.19 - resolution: "@esbuild/android-arm@npm:0.18.19" +"@esbuild/android-arm@npm:0.19.0": + version: 0.19.0 + resolution: "@esbuild/android-arm@npm:0.19.0" conditions: os=android & cpu=arm languageName: node linkType: hard @@ -10396,9 +10396,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/android-x64@npm:0.18.19": - version: 0.18.19 - resolution: "@esbuild/android-x64@npm:0.18.19" +"@esbuild/android-x64@npm:0.19.0": + version: 0.19.0 + resolution: "@esbuild/android-x64@npm:0.19.0" conditions: os=android & cpu=x64 languageName: node linkType: hard @@ -10410,9 +10410,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/darwin-arm64@npm:0.18.19": - version: 0.18.19 - resolution: "@esbuild/darwin-arm64@npm:0.18.19" +"@esbuild/darwin-arm64@npm:0.19.0": + version: 0.19.0 + resolution: "@esbuild/darwin-arm64@npm:0.19.0" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard @@ -10424,9 +10424,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/darwin-x64@npm:0.18.19": - version: 0.18.19 - resolution: "@esbuild/darwin-x64@npm:0.18.19" +"@esbuild/darwin-x64@npm:0.19.0": + version: 0.19.0 + resolution: "@esbuild/darwin-x64@npm:0.19.0" conditions: os=darwin & cpu=x64 languageName: node linkType: hard @@ -10438,9 +10438,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/freebsd-arm64@npm:0.18.19": - version: 0.18.19 - resolution: "@esbuild/freebsd-arm64@npm:0.18.19" +"@esbuild/freebsd-arm64@npm:0.19.0": + version: 0.19.0 + resolution: "@esbuild/freebsd-arm64@npm:0.19.0" conditions: os=freebsd & cpu=arm64 languageName: node linkType: hard @@ -10452,9 +10452,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/freebsd-x64@npm:0.18.19": - version: 0.18.19 - resolution: "@esbuild/freebsd-x64@npm:0.18.19" +"@esbuild/freebsd-x64@npm:0.19.0": + version: 0.19.0 + resolution: "@esbuild/freebsd-x64@npm:0.19.0" conditions: os=freebsd & cpu=x64 languageName: node linkType: hard @@ -10466,9 +10466,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-arm64@npm:0.18.19": - version: 0.18.19 - resolution: "@esbuild/linux-arm64@npm:0.18.19" +"@esbuild/linux-arm64@npm:0.19.0": + version: 0.19.0 + resolution: "@esbuild/linux-arm64@npm:0.19.0" conditions: os=linux & cpu=arm64 languageName: node linkType: hard @@ -10480,9 +10480,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-arm@npm:0.18.19": - version: 0.18.19 - resolution: "@esbuild/linux-arm@npm:0.18.19" +"@esbuild/linux-arm@npm:0.19.0": + version: 0.19.0 + resolution: "@esbuild/linux-arm@npm:0.19.0" conditions: os=linux & cpu=arm languageName: node linkType: hard @@ -10494,9 +10494,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-ia32@npm:0.18.19": - version: 0.18.19 - resolution: "@esbuild/linux-ia32@npm:0.18.19" +"@esbuild/linux-ia32@npm:0.19.0": + version: 0.19.0 + resolution: "@esbuild/linux-ia32@npm:0.19.0" conditions: os=linux & cpu=ia32 languageName: node linkType: hard @@ -10515,9 +10515,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-loong64@npm:0.18.19": - version: 0.18.19 - resolution: "@esbuild/linux-loong64@npm:0.18.19" +"@esbuild/linux-loong64@npm:0.19.0": + version: 0.19.0 + resolution: "@esbuild/linux-loong64@npm:0.19.0" conditions: os=linux & cpu=loong64 languageName: node linkType: hard @@ -10529,9 +10529,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-mips64el@npm:0.18.19": - version: 0.18.19 - resolution: "@esbuild/linux-mips64el@npm:0.18.19" +"@esbuild/linux-mips64el@npm:0.19.0": + version: 0.19.0 + resolution: "@esbuild/linux-mips64el@npm:0.19.0" conditions: os=linux & cpu=mips64el languageName: node linkType: hard @@ -10543,9 +10543,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-ppc64@npm:0.18.19": - version: 0.18.19 - resolution: "@esbuild/linux-ppc64@npm:0.18.19" +"@esbuild/linux-ppc64@npm:0.19.0": + version: 0.19.0 + resolution: "@esbuild/linux-ppc64@npm:0.19.0" conditions: os=linux & cpu=ppc64 languageName: node linkType: hard @@ -10557,9 +10557,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-riscv64@npm:0.18.19": - version: 0.18.19 - resolution: "@esbuild/linux-riscv64@npm:0.18.19" +"@esbuild/linux-riscv64@npm:0.19.0": + version: 0.19.0 + resolution: "@esbuild/linux-riscv64@npm:0.19.0" conditions: os=linux & cpu=riscv64 languageName: node linkType: hard @@ -10571,9 +10571,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-s390x@npm:0.18.19": - version: 0.18.19 - resolution: "@esbuild/linux-s390x@npm:0.18.19" +"@esbuild/linux-s390x@npm:0.19.0": + version: 0.19.0 + resolution: "@esbuild/linux-s390x@npm:0.19.0" conditions: os=linux & cpu=s390x languageName: node linkType: hard @@ -10585,9 +10585,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-x64@npm:0.18.19": - version: 0.18.19 - resolution: "@esbuild/linux-x64@npm:0.18.19" +"@esbuild/linux-x64@npm:0.19.0": + version: 0.19.0 + resolution: "@esbuild/linux-x64@npm:0.19.0" conditions: os=linux & cpu=x64 languageName: node linkType: hard @@ -10599,9 +10599,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/netbsd-x64@npm:0.18.19": - version: 0.18.19 - resolution: "@esbuild/netbsd-x64@npm:0.18.19" +"@esbuild/netbsd-x64@npm:0.19.0": + version: 0.19.0 + resolution: "@esbuild/netbsd-x64@npm:0.19.0" conditions: os=netbsd & cpu=x64 languageName: node linkType: hard @@ -10613,9 +10613,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/openbsd-x64@npm:0.18.19": - version: 0.18.19 - resolution: "@esbuild/openbsd-x64@npm:0.18.19" +"@esbuild/openbsd-x64@npm:0.19.0": + version: 0.19.0 + resolution: "@esbuild/openbsd-x64@npm:0.19.0" conditions: os=openbsd & cpu=x64 languageName: node linkType: hard @@ -10627,9 +10627,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/sunos-x64@npm:0.18.19": - version: 0.18.19 - resolution: "@esbuild/sunos-x64@npm:0.18.19" +"@esbuild/sunos-x64@npm:0.19.0": + version: 0.19.0 + resolution: "@esbuild/sunos-x64@npm:0.19.0" conditions: os=sunos & cpu=x64 languageName: node linkType: hard @@ -10641,9 +10641,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/win32-arm64@npm:0.18.19": - version: 0.18.19 - resolution: "@esbuild/win32-arm64@npm:0.18.19" +"@esbuild/win32-arm64@npm:0.19.0": + version: 0.19.0 + resolution: "@esbuild/win32-arm64@npm:0.19.0" conditions: os=win32 & cpu=arm64 languageName: node linkType: hard @@ -10655,9 +10655,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/win32-ia32@npm:0.18.19": - version: 0.18.19 - resolution: "@esbuild/win32-ia32@npm:0.18.19" +"@esbuild/win32-ia32@npm:0.19.0": + version: 0.19.0 + resolution: "@esbuild/win32-ia32@npm:0.19.0" conditions: os=win32 & cpu=ia32 languageName: node linkType: hard @@ -10669,9 +10669,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/win32-x64@npm:0.18.19": - version: 0.18.19 - resolution: "@esbuild/win32-x64@npm:0.18.19" +"@esbuild/win32-x64@npm:0.19.0": + version: 0.19.0 + resolution: "@esbuild/win32-x64@npm:0.19.0" conditions: os=win32 & cpu=x64 languageName: node linkType: hard @@ -24284,32 +24284,32 @@ __metadata: languageName: node linkType: hard -"esbuild@npm:^0.18.0": - version: 0.18.19 - resolution: "esbuild@npm:0.18.19" +"esbuild@npm:^0.19.0": + version: 0.19.0 + resolution: "esbuild@npm:0.19.0" dependencies: - "@esbuild/android-arm": 0.18.19 - "@esbuild/android-arm64": 0.18.19 - "@esbuild/android-x64": 0.18.19 - "@esbuild/darwin-arm64": 0.18.19 - "@esbuild/darwin-x64": 0.18.19 - "@esbuild/freebsd-arm64": 0.18.19 - "@esbuild/freebsd-x64": 0.18.19 - "@esbuild/linux-arm": 0.18.19 - "@esbuild/linux-arm64": 0.18.19 - "@esbuild/linux-ia32": 0.18.19 - "@esbuild/linux-loong64": 0.18.19 - "@esbuild/linux-mips64el": 0.18.19 - "@esbuild/linux-ppc64": 0.18.19 - "@esbuild/linux-riscv64": 0.18.19 - "@esbuild/linux-s390x": 0.18.19 - "@esbuild/linux-x64": 0.18.19 - "@esbuild/netbsd-x64": 0.18.19 - "@esbuild/openbsd-x64": 0.18.19 - "@esbuild/sunos-x64": 0.18.19 - "@esbuild/win32-arm64": 0.18.19 - "@esbuild/win32-ia32": 0.18.19 - "@esbuild/win32-x64": 0.18.19 + "@esbuild/android-arm": 0.19.0 + "@esbuild/android-arm64": 0.19.0 + "@esbuild/android-x64": 0.19.0 + "@esbuild/darwin-arm64": 0.19.0 + "@esbuild/darwin-x64": 0.19.0 + "@esbuild/freebsd-arm64": 0.19.0 + "@esbuild/freebsd-x64": 0.19.0 + "@esbuild/linux-arm": 0.19.0 + "@esbuild/linux-arm64": 0.19.0 + "@esbuild/linux-ia32": 0.19.0 + "@esbuild/linux-loong64": 0.19.0 + "@esbuild/linux-mips64el": 0.19.0 + "@esbuild/linux-ppc64": 0.19.0 + "@esbuild/linux-riscv64": 0.19.0 + "@esbuild/linux-s390x": 0.19.0 + "@esbuild/linux-x64": 0.19.0 + "@esbuild/netbsd-x64": 0.19.0 + "@esbuild/openbsd-x64": 0.19.0 + "@esbuild/sunos-x64": 0.19.0 + "@esbuild/win32-arm64": 0.19.0 + "@esbuild/win32-ia32": 0.19.0 + "@esbuild/win32-x64": 0.19.0 dependenciesMeta: "@esbuild/android-arm": optional: true @@ -24357,7 +24357,7 @@ __metadata: optional: true bin: esbuild: bin/esbuild - checksum: 326c38d33eff024278b293308eff52e9a6b28c897f2ee4a4f8f25a092648d16090b206cbe0f448a3680f87af80af59decea7d68051c3eea937570415087e4d9f + checksum: 77ef2e57a94d1b88657fb6cd79c3ad6e3161823fd1b615f2ce4b71f163755b85e98cb5b565ed6c38db1f788c52c092b5534caa6800178de99a25de0671f92186 languageName: node linkType: hard From bba2d813679173eb47404cd9e4fa802cf1513934 Mon Sep 17 00:00:00 2001 From: AmbrishRamachandiran Date: Wed, 9 Aug 2023 14:07:35 +0530 Subject: [PATCH 101/372] Limit the use of the same shortcut title and url when adding a shortcut Signed-off-by: AmbrishRamachandiran --- plugins/shortcuts/src/ShortcutForm.test.tsx | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/plugins/shortcuts/src/ShortcutForm.test.tsx b/plugins/shortcuts/src/ShortcutForm.test.tsx index 773c5491da..56309b4a64 100644 --- a/plugins/shortcuts/src/ShortcutForm.test.tsx +++ b/plugins/shortcuts/src/ShortcutForm.test.tsx @@ -53,6 +53,12 @@ describe('ShortcutForm', () => { expect( screen.getByText('Must be at least 2 characters'), ).toBeInTheDocument(); + expect( + screen.queryByText('A shortcut with this title already exists'), + ).not.toBeInTheDocument(); + expect( + screen.queryByText('A shortcut with this url already exists'), + ).not.toBeInTheDocument(); }); }); From 863cb026b006fd4b276c0d65693a99fd1726c11d Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Sun, 14 May 2023 12:59:51 +0200 Subject: [PATCH 102/372] auth-backend: replace Logger with LoggerService Signed-off-by: Patrik Oldsberg --- plugins/auth-backend/package.json | 1 + plugins/auth-backend/src/identity/FirestoreKeyStore.ts | 4 ++-- plugins/auth-backend/src/identity/KeyStores.ts | 4 ++-- plugins/auth-backend/src/identity/TokenFactory.ts | 6 +++--- .../auth-backend/src/lib/catalog/CatalogIdentityClient.ts | 4 ++-- .../src/lib/resolvers/CatalogAuthResolverContext.ts | 6 +++--- plugins/auth-backend/src/providers/microsoft/provider.ts | 6 +++--- .../src/providers/oauth2-proxy/provider.test.ts | 6 +++--- plugins/auth-backend/src/providers/types.ts | 4 ++-- plugins/auth-backend/src/service/router.ts | 4 ++-- plugins/auth-backend/src/service/standaloneServer.ts | 4 ++-- yarn.lock | 1 + 12 files changed, 26 insertions(+), 24 deletions(-) diff --git a/plugins/auth-backend/package.json b/plugins/auth-backend/package.json index 1ad8d6c0c0..6bbf6c901c 100644 --- a/plugins/auth-backend/package.json +++ b/plugins/auth-backend/package.json @@ -33,6 +33,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/auth-backend/src/identity/FirestoreKeyStore.ts b/plugins/auth-backend/src/identity/FirestoreKeyStore.ts index a5479a6470..b5f4f5dcfb 100644 --- a/plugins/auth-backend/src/identity/FirestoreKeyStore.ts +++ b/plugins/auth-backend/src/identity/FirestoreKeyStore.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import { Logger } from 'winston'; +import { LoggerService } from '@backstage/backend-plugin-api'; import { DocumentData, Firestore, @@ -57,7 +57,7 @@ export class FirestoreKeyStore implements KeyStore { static async verifyConnection( keyStore: FirestoreKeyStore, - logger?: Logger, + logger?: LoggerService, ): Promise { try { await keyStore.verify(); diff --git a/plugins/auth-backend/src/identity/KeyStores.ts b/plugins/auth-backend/src/identity/KeyStores.ts index 4cd8f91842..cc35c0d84e 100644 --- a/plugins/auth-backend/src/identity/KeyStores.ts +++ b/plugins/auth-backend/src/identity/KeyStores.ts @@ -15,7 +15,7 @@ */ import { pickBy } from 'lodash'; -import { Logger } from 'winston'; +import { LoggerService } from '@backstage/backend-plugin-api'; import { Config } from '@backstage/config'; @@ -26,7 +26,7 @@ import { MemoryKeyStore } from './MemoryKeyStore'; import { KeyStore } from './types'; type Options = { - logger: Logger; + logger: LoggerService; database: AuthDatabase; }; diff --git a/plugins/auth-backend/src/identity/TokenFactory.ts b/plugins/auth-backend/src/identity/TokenFactory.ts index f80b79b6bc..ca16f8821f 100644 --- a/plugins/auth-backend/src/identity/TokenFactory.ts +++ b/plugins/auth-backend/src/identity/TokenFactory.ts @@ -18,14 +18,14 @@ import { AuthenticationError } from '@backstage/errors'; import { exportJWK, generateKeyPair, importJWK, JWK, SignJWT } from 'jose'; import { DateTime } from 'luxon'; import { v4 as uuid } from 'uuid'; -import { Logger } from 'winston'; +import { LoggerService } from '@backstage/backend-plugin-api'; import { AnyJWK, KeyStore, TokenIssuer, TokenParams } from './types'; const MS_IN_S = 1000; type Options = { - logger: Logger; + logger: LoggerService; /** Value of the issuer claim in issued tokens */ issuer: string; /** Key store used for storing signing keys */ @@ -57,7 +57,7 @@ type Options = { */ export class TokenFactory implements TokenIssuer { private readonly issuer: string; - private readonly logger: Logger; + private readonly logger: LoggerService; private readonly keyStore: KeyStore; private readonly keyDurationSeconds: number; private readonly algorithm: string; diff --git a/plugins/auth-backend/src/lib/catalog/CatalogIdentityClient.ts b/plugins/auth-backend/src/lib/catalog/CatalogIdentityClient.ts index 494e8b4d38..ff983e27a5 100644 --- a/plugins/auth-backend/src/lib/catalog/CatalogIdentityClient.ts +++ b/plugins/auth-backend/src/lib/catalog/CatalogIdentityClient.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import { Logger } from 'winston'; +import { LoggerService } from '@backstage/backend-plugin-api'; import { ConflictError, NotFoundError } from '@backstage/errors'; import { CatalogApi } from '@backstage/catalog-client'; import { @@ -78,7 +78,7 @@ export class CatalogIdentityClient { */ async resolveCatalogMembership(query: { entityRefs: string[]; - logger?: Logger; + logger?: LoggerService; }): Promise { const { entityRefs, logger } = query; const resolvedEntityRefs = entityRefs diff --git a/plugins/auth-backend/src/lib/resolvers/CatalogAuthResolverContext.ts b/plugins/auth-backend/src/lib/resolvers/CatalogAuthResolverContext.ts index cbc2439563..7d22526193 100644 --- a/plugins/auth-backend/src/lib/resolvers/CatalogAuthResolverContext.ts +++ b/plugins/auth-backend/src/lib/resolvers/CatalogAuthResolverContext.ts @@ -24,7 +24,7 @@ import { stringifyEntityRef, } from '@backstage/catalog-model'; import { ConflictError, InputError, NotFoundError } from '@backstage/errors'; -import { Logger } from 'winston'; +import { LoggerService } from '@backstage/backend-plugin-api'; import { TokenIssuer, TokenParams } from '../../identity/types'; import { AuthResolverContext } from '../../providers'; import { AuthResolverCatalogUserQuery } from '../../providers/types'; @@ -54,7 +54,7 @@ export function getDefaultOwnershipEntityRefs(entity: Entity) { */ export class CatalogAuthResolverContext implements AuthResolverContext { static create(options: { - logger: Logger; + logger: LoggerService; catalogApi: CatalogApi; tokenIssuer: TokenIssuer; tokenManager: TokenManager; @@ -73,7 +73,7 @@ export class CatalogAuthResolverContext implements AuthResolverContext { } private constructor( - public readonly logger: Logger, + public readonly logger: LoggerService, public readonly tokenIssuer: TokenIssuer, public readonly catalogIdentityClient: CatalogIdentityClient, private readonly catalogApi: CatalogApi, diff --git a/plugins/auth-backend/src/providers/microsoft/provider.ts b/plugins/auth-backend/src/providers/microsoft/provider.ts index bc581f6d10..8fc8459f10 100644 --- a/plugins/auth-backend/src/providers/microsoft/provider.ts +++ b/plugins/auth-backend/src/providers/microsoft/provider.ts @@ -47,7 +47,7 @@ import { commonByEmailLocalPartResolver, commonByEmailResolver, } from '../resolvers'; -import { Logger } from 'winston'; +import { LoggerService } from '@backstage/backend-plugin-api'; import fetch from 'node-fetch'; import { decodeJwt } from 'jose'; import { Profile as PassportProfile } from 'passport'; @@ -60,7 +60,7 @@ type PrivateInfo = { type Options = OAuthProviderOptions & { signInResolver?: SignInResolver; authHandler: AuthHandler; - logger: Logger; + logger: LoggerService; resolverContext: AuthResolverContext; authorizationUrl?: string; tokenUrl?: string; @@ -70,7 +70,7 @@ export class MicrosoftAuthProvider implements OAuthHandlers { private readonly _strategy: MicrosoftStrategy; private readonly signInResolver?: SignInResolver; private readonly authHandler: AuthHandler; - private readonly logger: Logger; + private readonly logger: LoggerService; private readonly resolverContext: AuthResolverContext; constructor(options: Options) { diff --git a/plugins/auth-backend/src/providers/oauth2-proxy/provider.test.ts b/plugins/auth-backend/src/providers/oauth2-proxy/provider.test.ts index 0279604f2d..f585d4831f 100644 --- a/plugins/auth-backend/src/providers/oauth2-proxy/provider.test.ts +++ b/plugins/auth-backend/src/providers/oauth2-proxy/provider.test.ts @@ -22,7 +22,7 @@ jest.mock('@backstage/catalog-client'); import { AuthenticationError } from '@backstage/errors'; import express from 'express'; import * as jose from 'jose'; -import { Logger } from 'winston'; +import { LoggerService } from '@backstage/backend-plugin-api'; import { AuthHandler, AuthResolverContext, SignInResolver } from '../types'; import { oauth2Proxy, @@ -36,7 +36,7 @@ describe('Oauth2ProxyAuthProvider', () => { 'eyblob.eyJzdWIiOiJ1c2VyOmRlZmF1bHQvamltbXltYXJrdW0iLCJlbnQiOlsidXNlcjpkZWZhdWx0L2ppbW15bWFya3VtIl19.eyblob'; let provider: Oauth2ProxyAuthProvider; - let logger: jest.Mocked; + let logger: jest.Mocked; let signInResolver: jest.MockedFunction< SignInResolver> >; @@ -53,7 +53,7 @@ describe('Oauth2ProxyAuthProvider', () => { >; authHandler = jest.fn(); signInResolver = jest.fn(); - logger = { error: jest.fn() } as unknown as jest.Mocked; + logger = { error: jest.fn() } as unknown as jest.Mocked; mockResponse = { status: jest.fn(), diff --git a/plugins/auth-backend/src/providers/types.ts b/plugins/auth-backend/src/providers/types.ts index 1459cff484..cba4ee1ee4 100644 --- a/plugins/auth-backend/src/providers/types.ts +++ b/plugins/auth-backend/src/providers/types.ts @@ -22,7 +22,7 @@ import { BackstageSignInResult, } from '@backstage/plugin-auth-node'; import express from 'express'; -import { Logger } from 'winston'; +import { LoggerService } from '@backstage/backend-plugin-api'; import { TokenParams } from '../identity/types'; import { OAuthStartRequest } from '../lib/oauth/types'; @@ -207,7 +207,7 @@ export type AuthProviderFactory = (options: { providerId: string; globalConfig: AuthProviderConfig; config: Config; - logger: Logger; + logger: LoggerService; resolverContext: AuthResolverContext; }) => AuthProviderRouteHandlers; diff --git a/plugins/auth-backend/src/service/router.ts b/plugins/auth-backend/src/service/router.ts index fa8dd95727..b28d2aeca1 100644 --- a/plugins/auth-backend/src/service/router.ts +++ b/plugins/auth-backend/src/service/router.ts @@ -17,7 +17,7 @@ import express from 'express'; import Router from 'express-promise-router'; import cookieParser from 'cookie-parser'; -import { Logger } from 'winston'; +import { LoggerService } from '@backstage/backend-plugin-api'; import { defaultAuthProviderFactories, AuthProviderFactory, @@ -44,7 +44,7 @@ export type ProviderFactories = { [s: string]: AuthProviderFactory }; /** @public */ export interface RouterOptions { - logger: Logger; + logger: LoggerService; database: PluginDatabaseManager; config: Config; discovery: PluginEndpointDiscovery; diff --git a/plugins/auth-backend/src/service/standaloneServer.ts b/plugins/auth-backend/src/service/standaloneServer.ts index 16ebbc9345..abda3a341c 100644 --- a/plugins/auth-backend/src/service/standaloneServer.ts +++ b/plugins/auth-backend/src/service/standaloneServer.ts @@ -23,11 +23,11 @@ import { } from '@backstage/backend-common'; import { Server } from 'http'; import Knex from 'knex'; -import { Logger } from 'winston'; +import { LoggerService } from '@backstage/backend-plugin-api'; import { createRouter } from './router'; export interface ServerOptions { - logger: Logger; + logger: LoggerService; } export async function startStandaloneServer( diff --git a/yarn.lock b/yarn.lock index fd36fd1910..cecd8afe31 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4581,6 +4581,7 @@ __metadata: resolution: "@backstage/plugin-auth-backend@workspace:plugins/auth-backend" dependencies: "@backstage/backend-common": "workspace:^" + "@backstage/backend-plugin-api": "workspace:^" "@backstage/backend-test-utils": "workspace:^" "@backstage/catalog-client": "workspace:^" "@backstage/catalog-model": "workspace:^" From e19e04eab0f161066c52b11e2624362dc98c8653 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Thu, 13 Jul 2023 21:56:04 +0200 Subject: [PATCH 103/372] auth-backend: diagram for new architecture Signed-off-by: Patrik Oldsberg --- plugins/auth-backend/architecture.drawio.svg | 262 +++++++++++++++++++ 1 file changed, 262 insertions(+) create mode 100644 plugins/auth-backend/architecture.drawio.svg diff --git a/plugins/auth-backend/architecture.drawio.svg b/plugins/auth-backend/architecture.drawio.svg new file mode 100644 index 0000000000..d709935e3e --- /dev/null +++ b/plugins/auth-backend/architecture.drawio.svg @@ -0,0 +1,262 @@ + + + + + + + +
+
+
+ PassportStrategy +
+
+
+
+ + PassportStrategy + +
+
+ + + + + + + + +
+
+
+ OAuthAuthenticator +
+
+
+
+ + OAuthAuthenticator + +
+
+ + + + + + + + + + + + +
+
+
+ ProxyProviderFactory +
+
+
+
+ + ProxyProviderFactory + +
+
+ + + + + + + + + + + + + + + + +
+
+
+ OAuthProviderFactory +
+
+
+
+ + OAuthProviderFactory + +
+
+ + + + +
+
+
+ ProfileTransform +
+
+
+
+ + ProfileTransform + +
+
+ + + + +
+
+
+ ProxyAuthenticator +
+
+
+
+ + ProxyAuthenticator + +
+
+ + + + +
+
+
+ AccessCheck +
+
+
+
+ + AccessCheck + +
+
+ + + + +
+
+
+ SignInResolver +
+
+
+
+ + SignInResolver + +
+
+ + + + + + +
+
+
+ authModule*Provider +
+
+
+
+ + authModule*Provider + +
+
+ + + + +
+
+
+ OAuthEnvironmentHandler +
+
+
+
+ + OAuthEnvironmentHandler + +
+
+ + + + +
+
+
+ OAuthAdapter +
+
+
+
+ + OAuthAdapter + +
+
+ + + + +
+
+
+ PassportOAuthAuthenticatorHelper +
+
+
+
+ + PassportOAuthAuthenticatorHelper + +
+
+ + + + + + +
+
+
+ authModule*Provider +
+
+
+
+ + authModule*Provider + +
+
+
+ + + + + Text is not SVG - cannot display + + + +
From 1c522713cd85fd0c2bd226a0d7d92375471f2252 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Thu, 13 Jul 2023 21:57:08 +0200 Subject: [PATCH 104/372] auth-backend: throw error if sign-in result does not contain token when preparting identity response Signed-off-by: Patrik Oldsberg --- .../src/providers/prepareBackstageIdentityResponse.ts | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/plugins/auth-backend/src/providers/prepareBackstageIdentityResponse.ts b/plugins/auth-backend/src/providers/prepareBackstageIdentityResponse.ts index 761618c225..e2753d6648 100644 --- a/plugins/auth-backend/src/providers/prepareBackstageIdentityResponse.ts +++ b/plugins/auth-backend/src/providers/prepareBackstageIdentityResponse.ts @@ -14,6 +14,7 @@ * limitations under the License. */ +import { InputError } from '@backstage/errors'; import { BackstageIdentityResponse, BackstageSignInResult, @@ -34,6 +35,10 @@ function parseJwtPayload(token: string) { export function prepareBackstageIdentityResponse( result: BackstageSignInResult, ): BackstageIdentityResponse { + if (!result.token) { + throw new InputError(`Identity response must return a token`); + } + const { sub, ent } = parseJwtPayload(result.token); return { From 747712f930fc4bb76b5c13f907b028cab42750b1 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Thu, 13 Jul 2023 21:57:45 +0200 Subject: [PATCH 105/372] auth-backend: add optional token_type field in OAuthResult Signed-off-by: Patrik Oldsberg --- plugins/auth-backend/src/lib/oauth/types.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/plugins/auth-backend/src/lib/oauth/types.ts b/plugins/auth-backend/src/lib/oauth/types.ts index e960af2988..46009218a9 100644 --- a/plugins/auth-backend/src/lib/oauth/types.ts +++ b/plugins/auth-backend/src/lib/oauth/types.ts @@ -45,6 +45,7 @@ export type OAuthResult = { params: { id_token?: string; scope: string; + token_type?: string; expires_in: number; }; accessToken: string; From 318816cef913d0a3cb87e4995ecb1409ecd08ac3 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Sat, 22 Jul 2023 09:46:47 +0200 Subject: [PATCH 106/372] auth-backend: move a few types to auth-node Signed-off-by: Patrik Oldsberg --- plugins/auth-backend/src/identity/types.ts | 22 +--- plugins/auth-backend/src/providers/types.ts | 90 ++-------------- plugins/auth-node/package.json | 3 + plugins/auth-node/src/index.ts | 4 + plugins/auth-node/src/types.ts | 113 ++++++++++++++++++++ yarn.lock | 3 + 6 files changed, 137 insertions(+), 98 deletions(-) diff --git a/plugins/auth-backend/src/identity/types.ts b/plugins/auth-backend/src/identity/types.ts index e325f74c81..fcfc0345cc 100644 --- a/plugins/auth-backend/src/identity/types.ts +++ b/plugins/auth-backend/src/identity/types.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import { JsonValue } from '@backstage/types'; +import { TokenParams as _TokenParams } from '@backstage/plugin-auth-node'; /** Represents any form of serializable JWK */ export interface AnyJWK extends Record { @@ -25,26 +25,10 @@ export interface AnyJWK extends Record { } /** - * Parameters used to issue new ID Tokens - * * @public + * @deprecated import from `@backstage/plugin-auth-node` instead */ -export type TokenParams = { - /** - * The claims that will be embedded within the token. At a minimum, this should include - * the subject claim, `sub`. It is common to also list entity ownership relations in the - * `ent` list. Additional claims may also be added at the developer's discretion except - * for the following list, which will be overwritten by the TokenIssuer: `iss`, `aud`, - * `iat`, and `exp`. The Backstage team also maintains the right add new claims in the future - * without listing the change as a "breaking change". - */ - claims: { - /** The token subject, i.e. User ID */ - sub: string; - /** A list of entity references that the user claims ownership through */ - ent?: string[]; - } & Record; -}; +export type TokenParams = _TokenParams; /** * A TokenIssuer is able to issue verifiable ID Tokens on demand. diff --git a/plugins/auth-backend/src/providers/types.ts b/plugins/auth-backend/src/providers/types.ts index cba4ee1ee4..e382148b5d 100644 --- a/plugins/auth-backend/src/providers/types.ts +++ b/plugins/auth-backend/src/providers/types.ts @@ -14,8 +14,6 @@ * limitations under the License. */ -import { GetEntitiesRequest } from '@backstage/catalog-client'; -import { Entity } from '@backstage/catalog-model'; import { Config } from '@backstage/config'; import { BackstageIdentityResponse, @@ -23,71 +21,24 @@ import { } from '@backstage/plugin-auth-node'; import express from 'express'; import { LoggerService } from '@backstage/backend-plugin-api'; -import { TokenParams } from '../identity/types'; +import { + AuthResolverCatalogUserQuery as _AuthResolverCatalogUserQuery, + AuthResolverContext as _AuthResolverContext, + ProfileInfo as _ProfileInfo, +} from '@backstage/plugin-auth-node'; import { OAuthStartRequest } from '../lib/oauth/types'; /** - * A query for a single user in the catalog. - * - * If `entityRef` is used, the default kind is `'User'`. - * - * If `annotations` are used, all annotations must be present and - * match the provided value exactly. Only entities of kind `'User'` will be considered. - * - * If `filter` are used they are passed on as they are to the `CatalogApi`. - * - * Regardless of the query method, the query must match exactly one entity - * in the catalog, or an error will be thrown. - * * @public + * @deprecated import from `@backstage/plugin-auth-node` instead */ -export type AuthResolverCatalogUserQuery = - | { - entityRef: - | string - | { - kind?: string; - namespace?: string; - name: string; - }; - } - | { - annotations: Record; - } - | { - filter: Exclude; - }; +export type AuthResolverCatalogUserQuery = _AuthResolverCatalogUserQuery; /** - * The context that is used for auth processing. - * * @public + * @deprecated import from `@backstage/plugin-auth-node` instead */ -export type AuthResolverContext = { - /** - * Issues a Backstage token using the provided parameters. - */ - issueToken(params: TokenParams): Promise<{ token: string }>; - - /** - * Finds a single user in the catalog using the provided query. - * - * See {@link AuthResolverCatalogUserQuery} for details. - */ - findCatalogUser( - query: AuthResolverCatalogUserQuery, - ): Promise<{ entity: Entity }>; - - /** - * Finds a single user in the catalog using the provided query, and then - * issues an identity for that user using default ownership resolution. - * - * See {@link AuthResolverCatalogUserQuery} for details. - */ - signInWithCatalogUser( - query: AuthResolverCatalogUserQuery, - ): Promise; -}; +export type AuthResolverContext = _AuthResolverContext; /** * The callback used to resolve the cookie configuration for auth providers that use cookies. @@ -219,29 +170,10 @@ export type AuthResponse = { }; /** - * Used to display login information to user, i.e. sidebar popup. - * - * It is also temporarily used as the profile of the signed-in user's Backstage - * identity, but we want to replace that with data from identity and/org catalog - * service - * * @public + * @deprecated import from `@backstage/plugin-auth-node` instead */ -export type ProfileInfo = { - /** - * Email ID of the signed in user. - */ - email?: string; - /** - * Display name that can be presented to the signed in user. - */ - displayName?: string; - /** - * URL to an image that can be used as the display image or avatar of the - * signed in user. - */ - picture?: string; -}; +export type ProfileInfo = _ProfileInfo; /** * Type of sign in information context. Includes the profile information and diff --git a/plugins/auth-node/package.json b/plugins/auth-node/package.json index f57ff4e2fb..a7a70e02d2 100644 --- a/plugins/auth-node/package.json +++ b/plugins/auth-node/package.json @@ -29,8 +29,11 @@ }, "dependencies": { "@backstage/backend-common": "workspace:^", + "@backstage/catalog-client": "workspace:^", + "@backstage/catalog-model": "workspace:^", "@backstage/config": "workspace:^", "@backstage/errors": "workspace:^", + "@backstage/types": "workspace:^", "@types/express": "*", "express": "^4.17.1", "jose": "^4.6.0", diff --git a/plugins/auth-node/src/index.ts b/plugins/auth-node/src/index.ts index a70f667adf..7a18040abc 100644 --- a/plugins/auth-node/src/index.ts +++ b/plugins/auth-node/src/index.ts @@ -26,8 +26,12 @@ export { IdentityClient } from './IdentityClient'; export type { IdentityApi } from './IdentityApi'; export type { IdentityClientOptions } from './DefaultIdentityClient'; export type { + AuthResolverCatalogUserQuery, + AuthResolverContext, BackstageIdentityResponse, BackstageSignInResult, BackstageUserIdentity, IdentityApiGetIdentityRequest, + ProfileInfo, + TokenParams, } from './types'; diff --git a/plugins/auth-node/src/types.ts b/plugins/auth-node/src/types.ts index 9aec98a372..823f06320f 100644 --- a/plugins/auth-node/src/types.ts +++ b/plugins/auth-node/src/types.ts @@ -14,6 +14,9 @@ * limitations under the License. */ +import { EntityFilterQuery } from '@backstage/catalog-client'; +import { Entity } from '@backstage/catalog-model'; +import { JsonValue } from '@backstage/types'; import { Request } from 'express'; /** @@ -76,3 +79,113 @@ export type BackstageUserIdentity = { */ ownershipEntityRefs: string[]; }; + +/** + * A query for a single user in the catalog. + * + * If `entityRef` is used, the default kind is `'User'`. + * + * If `annotations` are used, all annotations must be present and + * match the provided value exactly. Only entities of kind `'User'` will be considered. + * + * If `filter` are used they are passed on as they are to the `CatalogApi`. + * + * Regardless of the query method, the query must match exactly one entity + * in the catalog, or an error will be thrown. + * + * @public + */ +export type AuthResolverCatalogUserQuery = + | { + entityRef: + | string + | { + kind?: string; + namespace?: string; + name: string; + }; + } + | { + annotations: Record; + } + | { + filter: EntityFilterQuery; + }; + +/** + * Parameters used to issue new ID Tokens + * + * @public + */ +export type TokenParams = { + /** + * The claims that will be embedded within the token. At a minimum, this should include + * the subject claim, `sub`. It is common to also list entity ownership relations in the + * `ent` list. Additional claims may also be added at the developer's discretion except + * for the following list, which will be overwritten by the TokenIssuer: `iss`, `aud`, + * `iat`, and `exp`. The Backstage team also maintains the right add new claims in the future + * without listing the change as a "breaking change". + */ + claims: { + /** The token subject, i.e. User ID */ + sub: string; + /** A list of entity references that the user claims ownership through */ + ent?: string[]; + } & Record; +}; + +/** + * The context that is used for auth processing. + * + * @public + */ +export type AuthResolverContext = { + /** + * Issues a Backstage token using the provided parameters. + */ + issueToken(params: TokenParams): Promise<{ token: string }>; + + /** + * Finds a single user in the catalog using the provided query. + * + * See {@link AuthResolverCatalogUserQuery} for details. + */ + findCatalogUser( + query: AuthResolverCatalogUserQuery, + ): Promise<{ entity: Entity }>; + + /** + * Finds a single user in the catalog using the provided query, and then + * issues an identity for that user using default ownership resolution. + * + * See {@link AuthResolverCatalogUserQuery} for details. + */ + signInWithCatalogUser( + query: AuthResolverCatalogUserQuery, + ): Promise; +}; + +/** + * Used to display login information to user, i.e. sidebar popup. + * + * It is also temporarily used as the profile of the signed-in user's Backstage + * identity, but we want to replace that with data from identity and/org catalog + * service + * + * @public + */ +export type ProfileInfo = { + /** + * Email ID of the signed in user. + */ + email?: string; + /** + * Display name that can be presented to the signed in user. + */ + displayName?: string; + /** + * URL to an image that can be used as the display image or avatar of the + * signed in user. + */ + picture?: string; +}; diff --git a/yarn.lock b/yarn.lock index cecd8afe31..e3ce7fd2e3 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4648,9 +4648,12 @@ __metadata: dependencies: "@backstage/backend-common": "workspace:^" "@backstage/backend-test-utils": "workspace:^" + "@backstage/catalog-client": "workspace:^" + "@backstage/catalog-model": "workspace:^" "@backstage/cli": "workspace:^" "@backstage/config": "workspace:^" "@backstage/errors": "workspace:^" + "@backstage/types": "workspace:^" "@types/express": "*" express: ^4.17.1 jose: ^4.6.0 From 68ae81a6a7989d9c946f0fdd969bb16bf99d660f Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Sat, 22 Jul 2023 09:54:09 +0200 Subject: [PATCH 107/372] auth-node: initial oauth authenticator types Signed-off-by: Patrik Oldsberg --- plugins/auth-node/src/oauth/types.ts | 85 ++++++++++++++++++++++++++++ 1 file changed, 85 insertions(+) create mode 100644 plugins/auth-node/src/oauth/types.ts diff --git a/plugins/auth-node/src/oauth/types.ts b/plugins/auth-node/src/oauth/types.ts new file mode 100644 index 0000000000..4a53beaae6 --- /dev/null +++ b/plugins/auth-node/src/oauth/types.ts @@ -0,0 +1,85 @@ +/* + * 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 { Config } from '@backstage/config'; +import { Request } from 'express'; +import { AuthResolverContext, ProfileInfo } from '../types'; + +export interface OAuthSession { + accessToken: string; + tokenType: string; + idToken?: string; + scope: string; + expiresInSeconds: number; + refreshToken?: string; +} + +export type OAuthProfileTransform = ( + result: OAuthAuthenticatorResult, + context: AuthResolverContext, +) => Promise<{ profile: ProfileInfo }>; + +export interface OAuthAuthenticatorStartInput { + scope: string; + state: string; + req: Request; +} + +export interface OAuthAuthenticatorAuthenticateInput { + req: Request; +} + +export interface OAuthAuthenticatorRefreshInput { + scope: string; + refreshToken: string; + req: Request; +} + +export interface OAuthAuthenticatorLogoutInput { + accessToken?: string; + refreshToken?: string; + req: Request; +} + +export interface OAuthAuthenticatorResult { + fullProfile: TProfile; + session: OAuthSession; +} + +export interface OAuthAuthenticator { + defaultProfileTransform: OAuthProfileTransform; + shouldPersistScopes?: boolean; + initialize(ctx: { callbackUrl: string; config: Config }): TContext; + start( + input: OAuthAuthenticatorStartInput, + ctx: TContext, + ): Promise<{ url: string; status?: number }>; + authenticate( + input: OAuthAuthenticatorAuthenticateInput, + ctx: TContext, + ): Promise>; + refresh( + input: OAuthAuthenticatorRefreshInput, + ctx: TContext, + ): Promise>; + logout?(input: OAuthAuthenticatorLogoutInput, ctx: TContext): Promise; +} + +export function createOAuthAuthenticator( + authenticator: OAuthAuthenticator, +): OAuthAuthenticator { + return authenticator; +} From 6c7952ee85a5f7860d086f6e6ac02562acef4a07 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Sat, 22 Jul 2023 10:42:39 +0200 Subject: [PATCH 108/372] auth-backend: move CookieConfigurer to auth-node Signed-off-by: Patrik Oldsberg --- plugins/auth-backend/src/providers/types.ts | 19 +++---------------- plugins/auth-node/src/index.ts | 1 + plugins/auth-node/src/types.ts | 20 ++++++++++++++++++++ 3 files changed, 24 insertions(+), 16 deletions(-) diff --git a/plugins/auth-backend/src/providers/types.ts b/plugins/auth-backend/src/providers/types.ts index e382148b5d..89c7e92c35 100644 --- a/plugins/auth-backend/src/providers/types.ts +++ b/plugins/auth-backend/src/providers/types.ts @@ -24,6 +24,7 @@ import { LoggerService } from '@backstage/backend-plugin-api'; import { AuthResolverCatalogUserQuery as _AuthResolverCatalogUserQuery, AuthResolverContext as _AuthResolverContext, + CookieConfigurer as _CookieConfigurer, ProfileInfo as _ProfileInfo, } from '@backstage/plugin-auth-node'; import { OAuthStartRequest } from '../lib/oauth/types'; @@ -41,24 +42,10 @@ export type AuthResolverCatalogUserQuery = _AuthResolverCatalogUserQuery; export type AuthResolverContext = _AuthResolverContext; /** - * The callback used to resolve the cookie configuration for auth providers that use cookies. * @public + * @deprecated import from `@backstage/plugin-auth-node` instead */ -export type CookieConfigurer = (ctx: { - /** ID of the auth provider that this configuration applies to */ - providerId: string; - /** The externally reachable base URL of the auth-backend plugin */ - baseUrl: string; - /** The configured callback URL of the auth provider */ - callbackUrl: string; - /** The origin URL of the app */ - appOrigin: string; -}) => { - domain: string; - path: string; - secure: boolean; - sameSite?: 'none' | 'lax' | 'strict'; -}; +export type CookieConfigurer = _CookieConfigurer; /** @public */ export type AuthProviderConfig = { diff --git a/plugins/auth-node/src/index.ts b/plugins/auth-node/src/index.ts index 7a18040abc..e5ef84e02c 100644 --- a/plugins/auth-node/src/index.ts +++ b/plugins/auth-node/src/index.ts @@ -31,6 +31,7 @@ export type { BackstageIdentityResponse, BackstageSignInResult, BackstageUserIdentity, + CookieConfigurer, IdentityApiGetIdentityRequest, ProfileInfo, TokenParams, diff --git a/plugins/auth-node/src/types.ts b/plugins/auth-node/src/types.ts index 823f06320f..383fe50a74 100644 --- a/plugins/auth-node/src/types.ts +++ b/plugins/auth-node/src/types.ts @@ -189,3 +189,23 @@ export type ProfileInfo = { */ picture?: string; }; + +/** + * The callback used to resolve the cookie configuration for auth providers that use cookies. + * @public + */ +export type CookieConfigurer = (ctx: { + /** ID of the auth provider that this configuration applies to */ + providerId: string; + /** The externally reachable base URL of the auth-backend plugin */ + baseUrl: string; + /** The configured callback URL of the auth provider */ + callbackUrl: string; + /** The origin URL of the app */ + appOrigin: string; +}) => { + domain: string; + path: string; + secure: boolean; + sameSite?: 'none' | 'lax' | 'strict'; +}; From 93427ba7bc289d6c515bedc0f0ba03b6a304c350 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Sat, 22 Jul 2023 10:44:55 +0200 Subject: [PATCH 109/372] auth-node: add OAuthCookieManager Signed-off-by: Patrik Oldsberg --- .../auth-node/src/oauth/OAuthCookieManager.ts | 127 ++++++++++++++++++ 1 file changed, 127 insertions(+) create mode 100644 plugins/auth-node/src/oauth/OAuthCookieManager.ts diff --git a/plugins/auth-node/src/oauth/OAuthCookieManager.ts b/plugins/auth-node/src/oauth/OAuthCookieManager.ts new file mode 100644 index 0000000000..5fe2304610 --- /dev/null +++ b/plugins/auth-node/src/oauth/OAuthCookieManager.ts @@ -0,0 +1,127 @@ +/* + * 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 { Request, Response } from 'express'; +import { CookieConfigurer } from '../types'; + +const THOUSAND_DAYS_MS = 1000 * 24 * 60 * 60 * 1000; +const TEN_MINUTES_MS = 600 * 1000; + +const defaultCookieConfigurer: CookieConfigurer = ({ + callbackUrl, + providerId, + appOrigin, +}) => { + const { hostname: domain, pathname, protocol } = new URL(callbackUrl); + const secure = protocol === 'https:'; + + // For situations where the auth-backend is running on a + // different domain than the app, we set the SameSite attribute + // to 'none' to allow third-party access to the cookie, but + // only if it's in a secure context (https). + let sameSite: ReturnType['sameSite'] = 'lax'; + if (new URL(appOrigin).hostname !== domain && secure) { + sameSite = 'none'; + } + + // If the provider supports callbackUrls, the pathname will + // contain the complete path to the frame handler so we need + // to slice off the trailing part of the path. + const path = pathname.endsWith(`${providerId}/handler/frame`) + ? pathname.slice(0, -'/handler/frame'.length) + : `${pathname}/${providerId}`; + + return { domain, path, secure, sameSite }; +}; + +/** @internal */ +export class OAuthCookieManager { + private readonly cookieConfigurer: CookieConfigurer; + private readonly nonceCookie: string; + private readonly refreshTokenCookie: string; + private readonly grantedScopeCookie: string; + + constructor( + private readonly options: { + providerId: string; + defaultAppOrigin: string; + baseUrl: string; + callbackUrl: string; + cookieConfigurer?: CookieConfigurer; + }, + ) { + this.cookieConfigurer = options.cookieConfigurer ?? defaultCookieConfigurer; + + this.nonceCookie = `${options.providerId}-nonce`; + this.refreshTokenCookie = `${options.providerId}-refresh-token`; + this.grantedScopeCookie = `${options.providerId}-granted-scope`; + } + + private getConfig(origin?: string, pathSuffix: string = '') { + const cookieConfig = this.cookieConfigurer({ + providerId: this.options.providerId, + baseUrl: this.options.baseUrl, + callbackUrl: this.options.callbackUrl, + appOrigin: origin ?? this.options.defaultAppOrigin, + }); + return { + httpOnly: true, + sameSite: 'lax' as const, + ...cookieConfig, + path: cookieConfig.path + pathSuffix, + }; + } + + setNonce(res: Response, nonce: string, origin?: string) { + res.cookie(this.nonceCookie, nonce, { + maxAge: TEN_MINUTES_MS, + ...this.getConfig(origin, '/handler'), + }); + } + + setRefreshToken(res: Response, refreshToken: string, origin?: string) { + res.cookie(this.refreshTokenCookie, refreshToken, { + maxAge: THOUSAND_DAYS_MS, + ...this.getConfig(origin), + }); + } + + removeRefreshToken(res: Response, origin?: string) { + res.cookie(this.refreshTokenCookie, '', { + maxAge: 0, + ...this.getConfig(origin), + }); + } + + setGrantedScopes(res: Response, scope: string, origin?: string) { + res.cookie(this.grantedScopeCookie, scope, { + maxAge: THOUSAND_DAYS_MS, + ...this.getConfig(origin), + }); + } + + getNonce(req: Request) { + return req.cookies[this.nonceCookie]; + } + + getRefreshToken(req: Request) { + return req.cookies[this.refreshTokenCookie]; + } + + getGrantedScopes(req: Request) { + return req.cookies[this.grantedScopeCookie]; + } +} From b62b47a6dda7ec557ed5dd143a194824c4ef3d7f Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Tue, 25 Jul 2023 17:07:46 +0200 Subject: [PATCH 110/372] auth-backend: move a couple more types to auth-node Signed-off-by: Patrik Oldsberg --- plugins/auth-backend/src/providers/types.ts | 146 ++++---------------- plugins/auth-node/package.json | 1 + plugins/auth-node/src/index.ts | 6 + plugins/auth-node/src/types.ts | 131 +++++++++++++++++- yarn.lock | 1 + 5 files changed, 165 insertions(+), 120 deletions(-) diff --git a/plugins/auth-backend/src/providers/types.ts b/plugins/auth-backend/src/providers/types.ts index 89c7e92c35..45d5be7c66 100644 --- a/plugins/auth-backend/src/providers/types.ts +++ b/plugins/auth-backend/src/providers/types.ts @@ -14,18 +14,17 @@ * limitations under the License. */ -import { Config } from '@backstage/config'; -import { - BackstageIdentityResponse, - BackstageSignInResult, -} from '@backstage/plugin-auth-node'; -import express from 'express'; -import { LoggerService } from '@backstage/backend-plugin-api'; import { + AuthProviderConfig as _AuthProviderConfig, + AuthProviderRouteHandlers as _AuthProviderRouteHandlers, + AuthProviderFactory as _AuthProviderFactory, AuthResolverCatalogUserQuery as _AuthResolverCatalogUserQuery, AuthResolverContext as _AuthResolverContext, + ClientAuthResponse as _ClientAuthResponse, CookieConfigurer as _CookieConfigurer, ProfileInfo as _ProfileInfo, + SignInInfo as _SignInInfo, + SignInResolver as _SignInResolver, } from '@backstage/plugin-auth-node'; import { OAuthStartRequest } from '../lib/oauth/types'; @@ -47,30 +46,6 @@ export type AuthResolverContext = _AuthResolverContext; */ export type CookieConfigurer = _CookieConfigurer; -/** @public */ -export type AuthProviderConfig = { - /** - * The protocol://domain[:port] where the app is hosted. This is used to construct the - * callbackURL to redirect to once the user signs in to the auth provider. - */ - baseUrl: string; - - /** - * The base URL of the app as provided by app.baseUrl - */ - appUrl: string; - - /** - * A function that is called to check whether an origin is allowed to receive the authentication result. - */ - isOriginAllowed: (origin: string) => boolean; - - /** - * The function used to resolve cookie configuration based on the auth provider options. - */ - cookieConfigurer?: CookieConfigurer; -}; - /** @public */ export type OAuthStartResponse = { /** @@ -84,77 +59,28 @@ export type OAuthStartResponse = { }; /** - * Any Auth provider needs to implement this interface which handles the routes in the - * auth backend. Any auth API requests from the frontend reaches these methods. - * - * The routes in the auth backend API are tied to these methods like below - * - * `/auth/[provider]/start -> start` - * `/auth/[provider]/handler/frame -> frameHandler` - * `/auth/[provider]/refresh -> refresh` - * `/auth/[provider]/logout -> logout` - * * @public + * @deprecated import from `@backstage/plugin-auth-node` instead */ -export interface AuthProviderRouteHandlers { - /** - * Handles the start route of the API. This initiates a sign in request with an auth provider. - * - * Request - * - scopes for the auth request (Optional) - * Response - * - redirect to the auth provider for the user to sign in or consent. - * - sets a nonce cookie and also pass the nonce as 'state' query parameter in the redirect request - */ - start(req: express.Request, res: express.Response): Promise; +export type AuthProviderConfig = _AuthProviderConfig; - /** - * Once the user signs in or consents in the OAuth screen, the auth provider redirects to the - * callbackURL which is handled by this method. - * - * Request - * - to contain a nonce cookie and a 'state' query parameter - * Response - * - postMessage to the window with a payload that contains accessToken, expiryInSeconds?, idToken? and scope. - * - sets a refresh token cookie if the auth provider supports refresh tokens - */ - frameHandler(req: express.Request, res: express.Response): Promise; +/** + * @public + * @deprecated import from `@backstage/plugin-auth-node` instead + */ +export type AuthProviderRouteHandlers = _AuthProviderRouteHandlers; - /** - * (Optional) If the auth provider supports refresh tokens then this method handles - * requests to get a new access token. - * - * Request - * - to contain a refresh token cookie and scope (Optional) query parameter. - * Response - * - payload with accessToken, expiryInSeconds?, idToken?, scope and user profile information. - */ - refresh?(req: express.Request, res: express.Response): Promise; +/** + * @public + * @deprecated import from `@backstage/plugin-auth-node` instead + */ +export type AuthProviderFactory = _AuthProviderFactory; - /** - * (Optional) Handles sign out requests - * - * Response - * - removes the refresh token cookie - */ - logout?(req: express.Request, res: express.Response): Promise; -} - -/** @public */ -export type AuthProviderFactory = (options: { - providerId: string; - globalConfig: AuthProviderConfig; - config: Config; - logger: LoggerService; - resolverContext: AuthResolverContext; -}) => AuthProviderRouteHandlers; - -/** @public */ -export type AuthResponse = { - providerInfo: ProviderInfo; - profile: ProfileInfo; - backstageIdentity?: BackstageIdentityResponse; -}; +/** + * @public + * @deprecated import `ClientAuthResponse` from `@backstage/plugin-auth-node` instead + */ +export type AuthResponse = _ClientAuthResponse; /** * @public @@ -163,34 +89,16 @@ export type AuthResponse = { export type ProfileInfo = _ProfileInfo; /** - * Type of sign in information context. Includes the profile information and - * authentication result which contains auth related information. - * * @public + * @deprecated import from `@backstage/plugin-auth-node` instead */ -export type SignInInfo = { - /** - * The simple profile passed down for use in the frontend. - */ - profile: ProfileInfo; - - /** - * The authentication result that was received from the authentication - * provider. - */ - result: TAuthResult; -}; +export type SignInInfo = _SignInInfo; /** - * Describes the function which handles the result of a successful - * authentication. Must return a valid {@link @backstage/plugin-auth-node#BackstageSignInResult}. - * * @public + * @deprecated import from `@backstage/plugin-auth-node` instead */ -export type SignInResolver = ( - info: SignInInfo, - context: AuthResolverContext, -) => Promise; +export type SignInResolver = _SignInResolver; /** * The return type of an authentication handler. Must contain valid profile diff --git a/plugins/auth-node/package.json b/plugins/auth-node/package.json index a7a70e02d2..a570f24bff 100644 --- a/plugins/auth-node/package.json +++ b/plugins/auth-node/package.json @@ -29,6 +29,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/auth-node/src/index.ts b/plugins/auth-node/src/index.ts index e5ef84e02c..2e25eec10e 100644 --- a/plugins/auth-node/src/index.ts +++ b/plugins/auth-node/src/index.ts @@ -26,13 +26,19 @@ export { IdentityClient } from './IdentityClient'; export type { IdentityApi } from './IdentityApi'; export type { IdentityClientOptions } from './DefaultIdentityClient'; export type { + AuthProviderConfig, + AuthProviderRouteHandlers, + AuthProviderFactory, AuthResolverCatalogUserQuery, AuthResolverContext, BackstageIdentityResponse, BackstageSignInResult, BackstageUserIdentity, + ClientAuthResponse, CookieConfigurer, IdentityApiGetIdentityRequest, ProfileInfo, + SignInInfo, + SignInResolver, TokenParams, } from './types'; diff --git a/plugins/auth-node/src/types.ts b/plugins/auth-node/src/types.ts index 383fe50a74..d6d24d17b4 100644 --- a/plugins/auth-node/src/types.ts +++ b/plugins/auth-node/src/types.ts @@ -14,10 +14,12 @@ * limitations under the License. */ +import { LoggerService } from '@backstage/backend-plugin-api'; import { EntityFilterQuery } from '@backstage/catalog-client'; import { Entity } from '@backstage/catalog-model'; +import { Config } from '@backstage/config'; import { JsonValue } from '@backstage/types'; -import { Request } from 'express'; +import { Request, Response } from 'express'; /** * A representation of a successful Backstage sign-in. @@ -165,6 +167,133 @@ export type AuthResolverContext = { ): Promise; }; +/** + * Any Auth provider needs to implement this interface which handles the routes in the + * auth backend. Any auth API requests from the frontend reaches these methods. + * + * The routes in the auth backend API are tied to these methods like below + * + * `/auth/[provider]/start -> start` + * `/auth/[provider]/handler/frame -> frameHandler` + * `/auth/[provider]/refresh -> refresh` + * `/auth/[provider]/logout -> logout` + * + * @public + */ +export interface AuthProviderRouteHandlers { + /** + * Handles the start route of the API. This initiates a sign in request with an auth provider. + * + * Request + * - scopes for the auth request (Optional) + * Response + * - redirect to the auth provider for the user to sign in or consent. + * - sets a nonce cookie and also pass the nonce as 'state' query parameter in the redirect request + */ + start(req: Request, res: Response): Promise; + + /** + * Once the user signs in or consents in the OAuth screen, the auth provider redirects to the + * callbackURL which is handled by this method. + * + * Request + * - to contain a nonce cookie and a 'state' query parameter + * Response + * - postMessage to the window with a payload that contains accessToken, expiryInSeconds?, idToken? and scope. + * - sets a refresh token cookie if the auth provider supports refresh tokens + */ + frameHandler(req: Request, res: Response): Promise; + + /** + * (Optional) If the auth provider supports refresh tokens then this method handles + * requests to get a new access token. + * + * Request + * - to contain a refresh token cookie and scope (Optional) query parameter. + * Response + * - payload with accessToken, expiryInSeconds?, idToken?, scope and user profile information. + */ + refresh?(req: Request, res: Response): Promise; + + /** + * (Optional) Handles sign out requests + * + * Response + * - removes the refresh token cookie + */ + logout?(req: Request, res: Response): Promise; +} + +/** @public */ +export type AuthProviderConfig = { + /** + * The protocol://domain[:port] where the app is hosted. This is used to construct the + * callbackURL to redirect to once the user signs in to the auth provider. + */ + baseUrl: string; + + /** + * The base URL of the app as provided by app.baseUrl + */ + appUrl: string; + + /** + * A function that is called to check whether an origin is allowed to receive the authentication result. + */ + isOriginAllowed: (origin: string) => boolean; + + /** + * The function used to resolve cookie configuration based on the auth provider options. + */ + cookieConfigurer?: CookieConfigurer; +}; + +/** @public */ +export type AuthProviderFactory = (options: { + providerId: string; + globalConfig: AuthProviderConfig; + config: Config; + logger: LoggerService; + resolverContext: AuthResolverContext; +}) => AuthProviderRouteHandlers; + +/** @public */ +export type ClientAuthResponse = { + providerInfo: ProviderInfo; + profile: ProfileInfo; + backstageIdentity?: BackstageIdentityResponse; +}; + +/** + * Type of sign in information context. Includes the profile information and + * authentication result which contains auth related information. + * + * @public + */ +export type SignInInfo = { + /** + * The simple profile passed down for use in the frontend. + */ + profile: ProfileInfo; + + /** + * The authentication result that was received from the authentication + * provider. + */ + result: TAuthResult; +}; + +/** + * Describes the function which handles the result of a successful + * authentication. Must return a valid {@link @backstage/plugin-auth-node#BackstageSignInResult}. + * + * @public + */ +export type SignInResolver = ( + info: SignInInfo, + context: AuthResolverContext, +) => Promise; + /** * Used to display login information to user, i.e. sidebar popup. * diff --git a/yarn.lock b/yarn.lock index e3ce7fd2e3..997bfb5aa6 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4647,6 +4647,7 @@ __metadata: resolution: "@backstage/plugin-auth-node@workspace:plugins/auth-node" dependencies: "@backstage/backend-common": "workspace:^" + "@backstage/backend-plugin-api": "workspace:^" "@backstage/backend-test-utils": "workspace:^" "@backstage/catalog-client": "workspace:^" "@backstage/catalog-model": "workspace:^" From 48793dfc95184eb10422dd11a668ab1ce63e3f9e Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Wed, 26 Jul 2023 10:32:50 +0200 Subject: [PATCH 111/372] auth-backend: move prepareBackstageIdentityResponse to auth-node Signed-off-by: Patrik Oldsberg --- .../prepareBackstageIdentityResponse.ts | 36 ++----------- plugins/auth-node/src/identity/index.ts | 17 ++++++ .../prepareBackstageIdentityResponse.test.ts | 0 .../prepareBackstageIdentityResponse.ts | 52 +++++++++++++++++++ plugins/auth-node/src/index.ts | 1 + 5 files changed, 74 insertions(+), 32 deletions(-) create mode 100644 plugins/auth-node/src/identity/index.ts rename plugins/{auth-backend/src/providers => auth-node/src/identity}/prepareBackstageIdentityResponse.test.ts (100%) create mode 100644 plugins/auth-node/src/identity/prepareBackstageIdentityResponse.ts diff --git a/plugins/auth-backend/src/providers/prepareBackstageIdentityResponse.ts b/plugins/auth-backend/src/providers/prepareBackstageIdentityResponse.ts index e2753d6648..1fa8f4a2fa 100644 --- a/plugins/auth-backend/src/providers/prepareBackstageIdentityResponse.ts +++ b/plugins/auth-backend/src/providers/prepareBackstageIdentityResponse.ts @@ -14,39 +14,11 @@ * limitations under the License. */ -import { InputError } from '@backstage/errors'; -import { - BackstageIdentityResponse, - BackstageSignInResult, -} from '@backstage/plugin-auth-node'; - -function parseJwtPayload(token: string) { - const [_header, payload, _signature] = token.split('.'); - return JSON.parse(Buffer.from(payload, 'base64').toString()); -} +import { prepareBackstageIdentityResponse as _prepareBackstageIdentityResponse } from '@backstage/plugin-auth-node'; /** - * Parses a Backstage-issued token and decorates the - * {@link @backstage/plugin-auth-node#BackstageIdentityResponse} with identity information sourced from the - * token. - * * @public + * @deprecated import from `@backstage/plugin-auth-node` instead */ -export function prepareBackstageIdentityResponse( - result: BackstageSignInResult, -): BackstageIdentityResponse { - if (!result.token) { - throw new InputError(`Identity response must return a token`); - } - - const { sub, ent } = parseJwtPayload(result.token); - - return { - ...result, - identity: { - type: 'user', - userEntityRef: sub, - ownershipEntityRefs: ent ?? [], - }, - }; -} +export const prepareBackstageIdentityResponse = + _prepareBackstageIdentityResponse; diff --git a/plugins/auth-node/src/identity/index.ts b/plugins/auth-node/src/identity/index.ts new file mode 100644 index 0000000000..4e9b129605 --- /dev/null +++ b/plugins/auth-node/src/identity/index.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 { prepareBackstageIdentityResponse } from './prepareBackstageIdentityResponse'; diff --git a/plugins/auth-backend/src/providers/prepareBackstageIdentityResponse.test.ts b/plugins/auth-node/src/identity/prepareBackstageIdentityResponse.test.ts similarity index 100% rename from plugins/auth-backend/src/providers/prepareBackstageIdentityResponse.test.ts rename to plugins/auth-node/src/identity/prepareBackstageIdentityResponse.test.ts diff --git a/plugins/auth-node/src/identity/prepareBackstageIdentityResponse.ts b/plugins/auth-node/src/identity/prepareBackstageIdentityResponse.ts new file mode 100644 index 0000000000..e2753d6648 --- /dev/null +++ b/plugins/auth-node/src/identity/prepareBackstageIdentityResponse.ts @@ -0,0 +1,52 @@ +/* + * Copyright 2020 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { InputError } from '@backstage/errors'; +import { + BackstageIdentityResponse, + BackstageSignInResult, +} from '@backstage/plugin-auth-node'; + +function parseJwtPayload(token: string) { + const [_header, payload, _signature] = token.split('.'); + return JSON.parse(Buffer.from(payload, 'base64').toString()); +} + +/** + * Parses a Backstage-issued token and decorates the + * {@link @backstage/plugin-auth-node#BackstageIdentityResponse} with identity information sourced from the + * token. + * + * @public + */ +export function prepareBackstageIdentityResponse( + result: BackstageSignInResult, +): BackstageIdentityResponse { + if (!result.token) { + throw new InputError(`Identity response must return a token`); + } + + const { sub, ent } = parseJwtPayload(result.token); + + return { + ...result, + identity: { + type: 'user', + userEntityRef: sub, + ownershipEntityRefs: ent ?? [], + }, + }; +} diff --git a/plugins/auth-node/src/index.ts b/plugins/auth-node/src/index.ts index 2e25eec10e..c3ab152149 100644 --- a/plugins/auth-node/src/index.ts +++ b/plugins/auth-node/src/index.ts @@ -20,6 +20,7 @@ * @packageDocumentation */ +export * from './identity'; export { getBearerTokenFromAuthorizationHeader } from './getBearerTokenFromAuthorizationHeader'; export { DefaultIdentityClient } from './DefaultIdentityClient'; export { IdentityClient } from './IdentityClient'; From 4f7eed7b257129195662dc4567d6b9608778bf9b Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Wed, 26 Jul 2023 11:16:35 +0200 Subject: [PATCH 112/372] auth-node: added duplicate and refactored oauth state codec Signed-off-by: Patrik Oldsberg --- plugins/auth-node/package.json | 1 + plugins/auth-node/src/oauth/state.ts | 67 ++++++++++++++++++++++++++++ 2 files changed, 68 insertions(+) create mode 100644 plugins/auth-node/src/oauth/state.ts diff --git a/plugins/auth-node/package.json b/plugins/auth-node/package.json index a570f24bff..800ea22b61 100644 --- a/plugins/auth-node/package.json +++ b/plugins/auth-node/package.json @@ -38,6 +38,7 @@ "@types/express": "*", "express": "^4.17.1", "jose": "^4.6.0", + "lodash": "^4.17.21", "node-fetch": "^2.6.7", "winston": "^3.2.1" }, diff --git a/plugins/auth-node/src/oauth/state.ts b/plugins/auth-node/src/oauth/state.ts new file mode 100644 index 0000000000..668fe3736a --- /dev/null +++ b/plugins/auth-node/src/oauth/state.ts @@ -0,0 +1,67 @@ +/* + * 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 pickBy from 'lodash/pickBy'; +import { Request } from 'express'; + +export type OAuthState = { + /* A type for the serialized value in the `state` parameter of the OAuth authorization flow + */ + nonce: string; + env: string; + origin?: string; + scope?: string; + redirectUrl?: string; + flow?: string; +}; + +/** @public */ +export type OAuthStateEncoder = ( + state: OAuthState, + context: { req: Request }, +) => Promise<{ encodedState: string }>; + +/** @public */ +export type OAuthStateDecoder = ( + encodedState: string, + context: { req: Request }, +) => Promise<{ state: OAuthState }>; + +/** @public */ +export const defaultStateEncoder: OAuthStateEncoder = async state => { + const stateString = new URLSearchParams( + pickBy(state, value => value !== undefined), + ).toString(); + + return { encodedState: Buffer.from(stateString, 'utf-8').toString('hex') }; +}; + +/** @public */ +export const defaultStateDecoder: OAuthStateDecoder = async encodedState => { + const state = Object.fromEntries( + new URLSearchParams(Buffer.from(encodedState, 'hex').toString('utf-8')), + ); + if ( + !state.nonce || + !state.env || + state.nonce?.length === 0 || + state.env?.length === 0 + ) { + throw Error(`Invalid state passed via request`); + } + + return { state: state as OAuthState }; +}; From 14fd4fb7c83e4cd86a2a79c52e43ca44397c59c3 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Wed, 26 Jul 2023 13:29:50 +0200 Subject: [PATCH 113/372] auth-node: add createOAuthHandlers Signed-off-by: Patrik Oldsberg --- .../src/oauth/createOAuthHandlers.ts | 340 ++++++++++++++++++ 1 file changed, 340 insertions(+) create mode 100644 plugins/auth-node/src/oauth/createOAuthHandlers.ts diff --git a/plugins/auth-node/src/oauth/createOAuthHandlers.ts b/plugins/auth-node/src/oauth/createOAuthHandlers.ts new file mode 100644 index 0000000000..548ce05701 --- /dev/null +++ b/plugins/auth-node/src/oauth/createOAuthHandlers.ts @@ -0,0 +1,340 @@ +/* + * Copyright 2020 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import express from 'express'; +import crypto from 'crypto'; +import { URL } from 'url'; +import { + AuthenticationError, + InputError, + isError, + NotAllowedError, +} from '@backstage/errors'; +import { defaultStateDecoder, defaultStateEncoder, OAuthState } from './state'; +import { postMessageResponse, ensuresXRequestedWith } from '../flow'; +import { prepareBackstageIdentityResponse } from '../identity'; +import { OAuthCookieManager } from './OAuthCookieManager'; +import { + AuthProviderRouteHandlers, + AuthResolverContext, + ClientAuthResponse, + CookieConfigurer, + SignInResolver, +} from '../types'; +import { + OAuthAuthenticator, + OAuthAuthenticatorResult, + OAuthProfileTransform, +} from './types'; +import { Config } from '@backstage/config'; + +/** @public */ +export interface OAuthHandlersOptions { + authenticator: OAuthAuthenticator; + appUrl: string; + baseUrl: string; + isOriginAllowed: (origin: string) => boolean; + callbackUrl: string; + providerId: string; + config: Config; + resolverContext: AuthResolverContext; + profileTransform: OAuthProfileTransform; + cookieConfigurer?: CookieConfigurer; + signInResolver?: SignInResolver>; +} + +/** @internal */ +type ClientOAuthResponse = ClientAuthResponse<{ + /** + * An access token issued for the signed in user. + */ + accessToken: string; + /** + * (Optional) Id token issued for the signed in user. + */ + idToken?: string; + /** + * Expiry of the access token in seconds. + */ + expiresInSeconds?: number; + /** + * Scopes granted for the access token. + */ + scope: string; +}>; + +/** @public */ +export function createOAuthHandlers( + options: OAuthHandlersOptions, +): AuthProviderRouteHandlers { + const { + authenticator, + config, + baseUrl, + appUrl, + providerId, + isOriginAllowed, + cookieConfigurer, + resolverContext, + profileTransform, + signInResolver, + } = options; + + const defaultAppOrigin = new URL(appUrl).origin; + const callbackUrl = + config.getOptionalString('callbackUrl') ?? + `${baseUrl}/${providerId}/handler/frame`; + + const authenticatorCtx = authenticator.initialize({ config, callbackUrl }); + const cookieManager = new OAuthCookieManager({ + baseUrl, + callbackUrl, + defaultAppOrigin, + providerId, + cookieConfigurer, + }); + + return { + async start( + this: never, + req: express.Request, + res: express.Response, + ): Promise { + // retrieve scopes from request + const scope = req.query.scope?.toString() ?? ''; + const env = req.query.env?.toString(); + const origin = req.query.origin?.toString(); + const redirectUrl = req.query.redirectUrl?.toString(); + const flow = req.query.flow?.toString(); + + if (!env) { + throw new InputError('No env provided in request query parameters'); + } + + const nonce = crypto.randomBytes(16).toString('base64'); + // set a nonce cookie before redirecting to oauth provider + cookieManager.setNonce(res, nonce, origin); + + const state: OAuthState = { nonce, env, origin, redirectUrl, flow }; + + // If scopes are persisted then we pass them through the state so that we + // can set the cookie on successful auth + if (authenticator.shouldPersistScopes) { + state.scope = scope; + } + + const { encodedState } = await defaultStateEncoder(state, { req }); + + const { url, status } = await options.authenticator.start( + { req, scope, state: encodedState }, + authenticatorCtx, + ); + + res.statusCode = status || 302; + res.setHeader('Location', url); + res.setHeader('Content-Length', '0'); + res.end(); + }, + + async frameHandler( + this: never, + req: express.Request, + res: express.Response, + ): Promise { + let appOrigin = defaultAppOrigin; + + try { + const { state } = await defaultStateDecoder( + req.query.state?.toString() ?? '', + { req }, + ); + + if (state.origin) { + try { + appOrigin = new URL(state.origin).origin; + } catch { + throw new NotAllowedError('App origin is invalid, failed to parse'); + } + if (!isOriginAllowed(appOrigin)) { + throw new NotAllowedError(`Origin '${appOrigin}' is not allowed`); + } + } + + // The same nonce is passed through cookie and state, and they must match + const cookieNonce = cookieManager.getNonce(req); + const stateNonce = state.nonce; + if (!cookieNonce) { + throw new Error('Auth response is missing cookie nonce'); + } + if (stateNonce.length === 0) { + throw new Error('Auth response is missing state nonce'); + } + if (cookieNonce !== stateNonce) { + throw new Error('Invalid nonce'); + } + + const result = await authenticator.authenticate( + { req }, + authenticatorCtx, + ); + const { profile } = await profileTransform(result, resolverContext); + + const response: ClientOAuthResponse = { + profile, + providerInfo: { + idToken: result.session.idToken, + accessToken: result.session.accessToken, + scope: result.session.scope, + expiresInSeconds: result.session.expiresInSeconds, + }, + }; + + if (signInResolver) { + const identity = await signInResolver( + { profile, result }, + resolverContext, + ); + response.backstageIdentity = + prepareBackstageIdentityResponse(identity); + } + + // Store the scope that we have been granted for this session. This is useful if + // the provider does not return granted scopes on refresh or if they are normalized. + if (authenticator.shouldPersistScopes && state.scope) { + cookieManager.setGrantedScopes(res, state.scope, appOrigin); + result.session.scope = state.scope; + } + + if (result.session.refreshToken) { + // set new refresh token + cookieManager.setRefreshToken( + res, + result.session.refreshToken, + appOrigin, + ); + } + + // When using the redirect flow we rely on refresh token we just + // acquired to get a new session once we're back in the app. + if (state.flow === 'redirect') { + if (!state.redirectUrl) { + throw new InputError( + 'No redirectUrl provided in request query parameters', + ); + } + res.redirect(state.redirectUrl); + } + // post message back to popup if successful + return postMessageResponse(res, appOrigin, { + type: 'authorization_response', + response, + }); + } catch (error) { + const { name, message } = isError(error) + ? error + : new Error('Encountered invalid error'); // Being a bit safe and not forwarding the bad value + // post error message back to popup if failure + return postMessageResponse(res, appOrigin, { + type: 'authorization_response', + error: { name, message }, + }); + } + }, + + async logout( + this: never, + req: express.Request, + res: express.Response, + ): Promise { + if (!ensuresXRequestedWith(req)) { + throw new AuthenticationError('Invalid X-Requested-With header'); + } + + if (authenticator.logout) { + const refreshToken = cookieManager.getRefreshToken(req); + await authenticator.logout({ req, refreshToken }, authenticatorCtx); + } + + // remove refresh token cookie if it is set + cookieManager.removeRefreshToken(res, req.get('origin')); + + res.status(200).end(); + }, + + async refresh( + this: never, + req: express.Request, + res: express.Response, + ): Promise { + if (!ensuresXRequestedWith(req)) { + throw new AuthenticationError('Invalid X-Requested-With header'); + } + + try { + const refreshToken = cookieManager.getRefreshToken(req); + + // throw error if refresh token is missing in the request + if (!refreshToken) { + throw new InputError('Missing session cookie'); + } + + let scope = req.query.scope?.toString() ?? ''; + if (authenticator.shouldPersistScopes) { + scope = cookieManager.getGrantedScopes(req); + } + + const result = await authenticator.refresh( + { req, scope, refreshToken }, + authenticatorCtx, + ); + + const { profile } = await profileTransform(result, resolverContext); + + const newRefreshToken = result.session.refreshToken; + if (newRefreshToken && newRefreshToken !== refreshToken) { + cookieManager.setRefreshToken( + res, + newRefreshToken, + req.get('origin'), + ); + } + + const response: ClientOAuthResponse = { + profile, + providerInfo: { + idToken: result.session.idToken, + accessToken: result.session.accessToken, + scope: result.session.scope, + expiresInSeconds: result.session.expiresInSeconds, + }, + }; + + if (signInResolver) { + const identity = await signInResolver( + { profile, result }, + resolverContext, + ); + response.backstageIdentity = + prepareBackstageIdentityResponse(identity); + } + + res.status(200).json(response); + } catch (error) { + throw new AuthenticationError('Refresh failed', error); + } + }, + }; +} From feefbd3da6377e1f72cf71d14cf4a7e3a6aa9c80 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Wed, 26 Jul 2023 14:19:16 +0200 Subject: [PATCH 114/372] auth-node: add PassportHelpers Signed-off-by: Patrik Oldsberg --- plugins/auth-node/package.json | 1 + plugins/auth-node/src/index.ts | 1 + .../auth-node/src/passport/PassportHelpers.ts | 246 ++++++++++++++++++ plugins/auth-node/src/passport/index.ts | 18 ++ plugins/auth-node/src/passport/types.ts | 29 +++ yarn.lock | 1 + 6 files changed, 296 insertions(+) create mode 100644 plugins/auth-node/src/passport/PassportHelpers.ts create mode 100644 plugins/auth-node/src/passport/index.ts create mode 100644 plugins/auth-node/src/passport/types.ts diff --git a/plugins/auth-node/package.json b/plugins/auth-node/package.json index 800ea22b61..92ad426a11 100644 --- a/plugins/auth-node/package.json +++ b/plugins/auth-node/package.json @@ -40,6 +40,7 @@ "jose": "^4.6.0", "lodash": "^4.17.21", "node-fetch": "^2.6.7", + "passport": "^0.6.0", "winston": "^3.2.1" }, "devDependencies": { diff --git a/plugins/auth-node/src/index.ts b/plugins/auth-node/src/index.ts index c3ab152149..a1f4ef3206 100644 --- a/plugins/auth-node/src/index.ts +++ b/plugins/auth-node/src/index.ts @@ -21,6 +21,7 @@ */ export * from './identity'; +export * from './passport'; export { getBearerTokenFromAuthorizationHeader } from './getBearerTokenFromAuthorizationHeader'; export { DefaultIdentityClient } from './DefaultIdentityClient'; export { IdentityClient } from './IdentityClient'; diff --git a/plugins/auth-node/src/passport/PassportHelpers.ts b/plugins/auth-node/src/passport/PassportHelpers.ts new file mode 100644 index 0000000000..d24163bf34 --- /dev/null +++ b/plugins/auth-node/src/passport/PassportHelpers.ts @@ -0,0 +1,246 @@ +/* + * 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 { Request } from 'express'; +import { Strategy } from 'passport'; +import { PassportProfile } from './types'; +import { ProfileInfo } from '../types'; + +// Re-declared here to avoid direct dependency on passport-oauth2 +/** @internal */ +interface InternalOAuthError extends Error { + oauthError?: { + data?: string; + }; +} + +/** @internal */ +function decodeJwtPayload(token: string): Record { + const payloadStr = token.split('.')[1]; + if (!payloadStr) { + throw new Error('Invalid JWT token'); + } + + let payload: unknown; + try { + payload = JSON.parse( + atob(payloadStr.replace(/-/g, '+').replace(/_/g, '/')), + ); + } catch (e) { + throw new Error('Invalid JWT token'); + } + if (!payload || typeof payload !== 'object' || Array.isArray(payload)) { + throw new Error('Invalid JWT token'); + } + return payload as Record; +} + +/** @public */ +export class PassportHelpers { + private constructor() {} + + static transformProfile = ( + profile: PassportProfile, + idToken?: string, + ): ProfileInfo => { + let email: string | undefined = undefined; + if (profile.emails && profile.emails.length > 0) { + const [firstEmail] = profile.emails; + email = firstEmail.value; + } + + let picture: string | undefined = undefined; + if (profile.avatarUrl) { + picture = profile.avatarUrl; + } else if (profile.photos && profile.photos.length > 0) { + const [firstPhoto] = profile.photos; + picture = firstPhoto.value; + } + + let displayName: string | undefined = + profile.displayName ?? profile.username ?? profile.id; + + if ((!email || !picture || !displayName) && idToken) { + try { + const decoded: Record = decodeJwtPayload(idToken); + if (!email && decoded.email) { + email = decoded.email; + } + if (!picture && decoded.picture) { + picture = decoded.picture; + } + if (!displayName && decoded.name) { + displayName = decoded.name; + } + } catch (e) { + throw new Error(`Failed to parse id token and get profile info, ${e}`); + } + } + + return { + email, + picture, + displayName, + }; + }; + + static async executeRedirectStrategy( + req: Request, + providerStrategy: Strategy, + options: Record, + ): Promise<{ + /** + * URL to redirect to + */ + url: string; + /** + * Status code to use for the redirect + */ + status?: number; + }> { + return new Promise(resolve => { + const strategy = Object.create(providerStrategy); + strategy.redirect = (url: string, status?: number) => { + resolve({ url, status: status ?? undefined }); + }; + + strategy.authenticate(req, { ...options }); + }); + } + + static async executeFrameHandlerStrategy( + req: Request, + providerStrategy: Strategy, + options?: Record, + ): Promise<{ result: TResult; privateInfo: TPrivateInfo }> { + return new Promise((resolve, reject) => { + const strategy = Object.create(providerStrategy); + strategy.success = (result: any, privateInfo: any) => { + resolve({ result, privateInfo }); + }; + strategy.fail = ( + info: { type: 'success' | 'error'; message?: string }, + // _status: number, + ) => { + reject(new Error(`Authentication rejected, ${info.message ?? ''}`)); + }; + strategy.error = (error: InternalOAuthError) => { + let message = `Authentication failed, ${error.message}`; + + if (error.oauthError?.data) { + try { + const errorData = JSON.parse(error.oauthError.data); + + if (errorData.message) { + message += ` - ${errorData.message}`; + } + } catch (parseError) { + message += ` - ${error.oauthError}`; + } + } + + reject(new Error(message)); + }; + strategy.redirect = () => { + reject(new Error('Unexpected redirect')); + }; + strategy.authenticate(req, { ...(options ?? {}) }); + }); + } + + static async executeRefreshTokenStrategy( + providerStrategy: Strategy, + refreshToken: string, + scope: string, + ): Promise<{ + /** + * An access token issued for the signed in user. + */ + accessToken: string; + /** + * Optionally, the server can issue a new Refresh Token for the user + */ + refreshToken?: string; + params: any; + }> { + return new Promise((resolve, reject) => { + const anyStrategy = providerStrategy as any; + const OAuth2 = anyStrategy._oauth2.constructor; + const oauth2 = new OAuth2( + anyStrategy._oauth2._clientId, + anyStrategy._oauth2._clientSecret, + anyStrategy._oauth2._baseSite, + anyStrategy._oauth2._authorizeUrl, + anyStrategy._refreshURL || anyStrategy._oauth2._accessTokenUrl, + anyStrategy._oauth2._customHeaders, + ); + + oauth2.getOAuthAccessToken( + refreshToken, + { + scope, + grant_type: 'refresh_token', + }, + ( + err: Error | null, + accessToken: string, + newRefreshToken: string, + params: any, + ) => { + if (err) { + reject( + new Error(`Failed to refresh access token ${err.toString()}`), + ); + } + if (!accessToken) { + reject( + new Error( + `Failed to refresh access token, no access token received`, + ), + ); + } + + resolve({ + accessToken, + refreshToken: newRefreshToken, + params, + }); + }, + ); + }); + } + + static async executeFetchUserProfileStrategy( + providerStrategy: Strategy, + accessToken: string, + ): Promise { + return new Promise((resolve, reject) => { + const anyStrategy = providerStrategy as unknown as { + userProfile(accessToken: string, callback: Function): void; + }; + anyStrategy.userProfile( + accessToken, + (error: Error, rawProfile: PassportProfile) => { + if (error) { + reject(error); + } else { + resolve(rawProfile); + } + }, + ); + }); + } +} diff --git a/plugins/auth-node/src/passport/index.ts b/plugins/auth-node/src/passport/index.ts new file mode 100644 index 0000000000..f70c0af921 --- /dev/null +++ b/plugins/auth-node/src/passport/index.ts @@ -0,0 +1,18 @@ +/* + * 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 { PassportHelpers } from './PassportHelpers'; +export type { PassportDoneCallback, PassportProfile } from './types'; diff --git a/plugins/auth-node/src/passport/types.ts b/plugins/auth-node/src/passport/types.ts new file mode 100644 index 0000000000..4a3f41b6b2 --- /dev/null +++ b/plugins/auth-node/src/passport/types.ts @@ -0,0 +1,29 @@ +/* + * 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 { Profile } from 'passport'; + +/** @public */ +export type PassportProfile = Profile & { + avatarUrl?: string; +}; + +/** @public */ +export type PassportDoneCallback = ( + err?: Error, + result?: TResult, + privateInfo?: TPrivateInfo, +) => void; diff --git a/yarn.lock b/yarn.lock index 997bfb5aa6..7c10183f74 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4661,6 +4661,7 @@ __metadata: lodash: ^4.17.21 msw: ^1.0.0 node-fetch: ^2.6.7 + passport: ^0.6.0 uuid: ^8.0.0 winston: ^3.2.1 languageName: unknown From 679239161dc936a1f1ef0cd2fde4ea2441aab244 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Wed, 26 Jul 2023 14:24:14 +0200 Subject: [PATCH 115/372] auth-node: add PassportOAuthAuthenticatorHelper Signed-off-by: Patrik Oldsberg --- .../oauth/PassportOAuthAuthenticatorHelper.ts | 112 ++++++++++++++++++ 1 file changed, 112 insertions(+) create mode 100644 plugins/auth-node/src/oauth/PassportOAuthAuthenticatorHelper.ts diff --git a/plugins/auth-node/src/oauth/PassportOAuthAuthenticatorHelper.ts b/plugins/auth-node/src/oauth/PassportOAuthAuthenticatorHelper.ts new file mode 100644 index 0000000000..dc76207342 --- /dev/null +++ b/plugins/auth-node/src/oauth/PassportOAuthAuthenticatorHelper.ts @@ -0,0 +1,112 @@ +/* + * 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 { Strategy } from 'passport'; +import { PassportHelpers, PassportProfile } from '../passport'; +import { + OAuthAuthenticatorAuthenticateInput, + OAuthAuthenticatorRefreshInput, + OAuthAuthenticatorResult, + OAuthAuthenticatorStartInput, +} from './types'; + +/** @internal */ +export type PassportOAuthResult = { + fullProfile: PassportProfile; + params: { + id_token?: string; + scope: string; + token_type?: string; + expires_in: number; + }; + accessToken: string; +}; + +/** @public */ +export class PassportOAuthAuthenticatorHelper { + static from(strategy: Strategy) { + return new PassportOAuthAuthenticatorHelper(strategy); + } + + readonly #strategy: Strategy; + + private constructor(strategy: Strategy) { + this.#strategy = strategy; + } + + async start( + input: OAuthAuthenticatorStartInput, + options: Record, + ): Promise<{ url: string; status?: number }> { + return PassportHelpers.executeRedirectStrategy(input.req, this.#strategy, { + scope: input.scope, + state: input.state, + ...options, + }); + } + + async authenticate( + input: OAuthAuthenticatorAuthenticateInput, + ): Promise> { + const { result, privateInfo } = + await PassportHelpers.executeFrameHandlerStrategy< + PassportOAuthResult, + { refreshToken?: string } + >(input.req, this.#strategy); + + return { + fullProfile: result.fullProfile as PassportProfile, + session: { + accessToken: result.accessToken, + tokenType: result.params.token_type ?? 'bearer', + scope: result.params.scope, + expiresInSeconds: result.params.expires_in, + idToken: result.params.id_token, + refreshToken: privateInfo.refreshToken, + }, + }; + } + + async refresh( + input: OAuthAuthenticatorRefreshInput, + ): Promise> { + const result = await PassportHelpers.executeRefreshTokenStrategy( + this.#strategy, + input.refreshToken, + input.scope, + ); + const fullProfile = await this.fetchProfile(result.accessToken); + return { + fullProfile, + session: { + accessToken: result.accessToken, + tokenType: result.params.token_type ?? 'bearer', + scope: result.params.scope, + expiresInSeconds: result.params.expires_in, + idToken: result.params.id_token, + refreshToken: result.refreshToken, + }, + }; + } + + async fetchProfile(accessToken: string): Promise { + const profile = await PassportHelpers.executeFetchUserProfileStrategy( + this.#strategy, + accessToken, + ); + return profile; + } +} From ac8f47aa694759de5fda6ad7d878dd50ff8cce7d Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Wed, 26 Jul 2023 14:30:03 +0200 Subject: [PATCH 116/372] auth-node: inline ensuresXRequestedWith Signed-off-by: Patrik Oldsberg --- plugins/auth-node/src/oauth/createOAuthHandlers.ts | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/plugins/auth-node/src/oauth/createOAuthHandlers.ts b/plugins/auth-node/src/oauth/createOAuthHandlers.ts index 548ce05701..151d4d418e 100644 --- a/plugins/auth-node/src/oauth/createOAuthHandlers.ts +++ b/plugins/auth-node/src/oauth/createOAuthHandlers.ts @@ -24,7 +24,7 @@ import { NotAllowedError, } from '@backstage/errors'; import { defaultStateDecoder, defaultStateEncoder, OAuthState } from './state'; -import { postMessageResponse, ensuresXRequestedWith } from '../flow'; +import { postMessageResponse } from '../flow'; import { prepareBackstageIdentityResponse } from '../identity'; import { OAuthCookieManager } from './OAuthCookieManager'; import { @@ -259,7 +259,8 @@ export function createOAuthHandlers( req: express.Request, res: express.Response, ): Promise { - if (!ensuresXRequestedWith(req)) { + // We use this as a lightweight CSRF protection + if (req.header('X-Requested-With') !== 'XMLHttpRequest') { throw new AuthenticationError('Invalid X-Requested-With header'); } @@ -279,7 +280,8 @@ export function createOAuthHandlers( req: express.Request, res: express.Response, ): Promise { - if (!ensuresXRequestedWith(req)) { + // We use this as a lightweight CSRF protection + if (req.header('X-Requested-With') !== 'XMLHttpRequest') { throw new AuthenticationError('Invalid X-Requested-With header'); } From 52af2a8472fd9ef8aa0dff49ec0562c572b18b50 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Wed, 26 Jul 2023 16:19:59 +0200 Subject: [PATCH 117/372] auth-node: add sendWebMessageResponse Signed-off-by: Patrik Oldsberg --- plugins/auth-node/src/flow/index.ts | 20 ++ .../src/flow/sendWebMessageResponse.test.ts | 179 ++++++++++++++++++ .../src/flow/sendWebMessageResponse.ts | 87 +++++++++ plugins/auth-node/src/index.ts | 1 + .../src/oauth/createOAuthHandlers.ts | 6 +- 5 files changed, 290 insertions(+), 3 deletions(-) create mode 100644 plugins/auth-node/src/flow/index.ts create mode 100644 plugins/auth-node/src/flow/sendWebMessageResponse.test.ts create mode 100644 plugins/auth-node/src/flow/sendWebMessageResponse.ts diff --git a/plugins/auth-node/src/flow/index.ts b/plugins/auth-node/src/flow/index.ts new file mode 100644 index 0000000000..51d91e5d58 --- /dev/null +++ b/plugins/auth-node/src/flow/index.ts @@ -0,0 +1,20 @@ +/* + * Copyright 2020 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +export { + sendWebMessageResponse, + type WebMessageResponse, +} from './sendWebMessageResponse'; diff --git a/plugins/auth-node/src/flow/sendWebMessageResponse.test.ts b/plugins/auth-node/src/flow/sendWebMessageResponse.test.ts new file mode 100644 index 0000000000..fd706159ba --- /dev/null +++ b/plugins/auth-node/src/flow/sendWebMessageResponse.test.ts @@ -0,0 +1,179 @@ +/* + * Copyright 2020 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import express from 'express'; +import { + safelyEncodeURIComponent, + sendWebMessageResponse, + type WebMessageResponse, +} from './sendWebMessageResponse'; + +describe('oauth helpers', () => { + describe('safelyEncodeURIComponent', () => { + it('encodes all occurrences of single quotes', () => { + expect(safelyEncodeURIComponent("a'ö'b")).toBe('a%27%C3%B6%27b'); + }); + }); + + describe('sendWebMessageResponse', () => { + const appOrigin = 'http://localhost:3000'; + it('should post a message back with payload success', () => { + const mockResponse = { + end: jest.fn().mockReturnThis(), + setHeader: jest.fn().mockReturnThis(), + } as unknown as express.Response; + + const data: WebMessageResponse = { + type: 'authorization_response', + response: { + providerInfo: { + accessToken: 'ACCESS_TOKEN', + idToken: 'ID_TOKEN', + expiresInSeconds: 10, + scope: 'email', + }, + profile: { + email: 'foo@bar.com', + }, + backstageIdentity: { + token: 'a.b.c', + identity: { + type: 'user', + ownershipEntityRefs: [], + userEntityRef: 'a', + }, + }, + }, + }; + const encoded = safelyEncodeURIComponent(JSON.stringify(data)); + + sendWebMessageResponse(mockResponse, appOrigin, data); + expect(mockResponse.setHeader).toHaveBeenCalledTimes(3); + expect(mockResponse.end).toHaveBeenCalledTimes(1); + expect(mockResponse.end).toHaveBeenCalledWith( + expect.stringContaining(encoded), + ); + }); + + it('should post a message back with payload error', () => { + const mockResponse = { + end: jest.fn().mockReturnThis(), + setHeader: jest.fn().mockReturnThis(), + } as unknown as express.Response; + + const data: WebMessageResponse = { + type: 'authorization_response', + error: new Error('Unknown error occurred'), + }; + const encoded = safelyEncodeURIComponent(JSON.stringify(data)); + + sendWebMessageResponse(mockResponse, appOrigin, data); + expect(mockResponse.setHeader).toHaveBeenCalledTimes(3); + expect(mockResponse.end).toHaveBeenCalledTimes(1); + expect(mockResponse.end).toHaveBeenCalledWith( + expect.stringContaining(encoded), + ); + }); + + it('should call postMessage twice but only one of them with target *', () => { + let responseBody = ''; + + const mockResponse = { + end: jest.fn(body => { + responseBody = body; + return this; + }), + setHeader: jest.fn().mockReturnThis(), + } as unknown as express.Response; + + const data: WebMessageResponse = { + type: 'authorization_response', + response: { + providerInfo: { + accessToken: 'ACCESS_TOKEN', + idToken: 'ID_TOKEN', + expiresInSeconds: 10, + scope: 'email', + }, + profile: { + email: 'foo@bar.com', + }, + backstageIdentity: { + token: 'a.b.c', + identity: { + type: 'user', + ownershipEntityRefs: [], + userEntityRef: 'a', + }, + }, + }, + }; + sendWebMessageResponse(mockResponse, appOrigin, data); + expect(responseBody.match(/.postMessage\(/g)).toHaveLength(2); + expect( + responseBody.match(/.postMessage\([a-zA-z.()]*, \'\*\'\)/g), + ).toHaveLength(1); + + const errData: WebMessageResponse = { + type: 'authorization_response', + error: new Error('Unknown error occurred'), + }; + sendWebMessageResponse(mockResponse, appOrigin, errData); + expect(responseBody.match(/.postMessage\(/g)).toHaveLength(2); + expect( + responseBody.match(/.postMessage\([a-zA-z.()]*, \'\*\'\)/g), + ).toHaveLength(1); + }); + + it('handles single quotes and unicode chars safely', () => { + const mockResponse = { + end: jest.fn().mockReturnThis(), + setHeader: jest.fn().mockReturnThis(), + } as unknown as express.Response; + + const data: WebMessageResponse = { + type: 'authorization_response', + response: { + providerInfo: { + accessToken: 'ACCESS_TOKEN', + idToken: 'ID_TOKEN', + expiresInSeconds: 10, + scope: 'email', + }, + profile: { + email: 'foo@bar.com', + displayName: "Adam l'Hôpital", + }, + backstageIdentity: { + token: 'a.b.c', + identity: { + type: 'user', + ownershipEntityRefs: [], + userEntityRef: 'a', + }, + }, + }, + }; + + sendWebMessageResponse(mockResponse, appOrigin, data); + expect(mockResponse.setHeader).toHaveBeenCalledTimes(3); + expect(mockResponse.end).toHaveBeenCalledTimes(1); + expect(mockResponse.end).toHaveBeenCalledWith( + expect.stringContaining('Adam%20l%27H%C3%B4pital'), + ); + }); + }); +}); diff --git a/plugins/auth-node/src/flow/sendWebMessageResponse.ts b/plugins/auth-node/src/flow/sendWebMessageResponse.ts new file mode 100644 index 0000000000..7bb658bd11 --- /dev/null +++ b/plugins/auth-node/src/flow/sendWebMessageResponse.ts @@ -0,0 +1,87 @@ +/* + * Copyright 2020 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { Response } from 'express'; +import crypto from 'crypto'; +import { ClientAuthResponse } from '../types'; + +/** + * Payload sent as a post message after the auth request is complete. + * If successful then has a valid payload with Auth information else contains an error. + * + * @public + */ +export type WebMessageResponse = + | { + type: 'authorization_response'; + response: ClientAuthResponse; + } + | { + type: 'authorization_response'; + error: Error; + }; + +/** @internal */ +export function safelyEncodeURIComponent(value: string): string { + // Note the g at the end of the regex; all occurrences of single quotes must + // be replaced, which encodeURIComponent does not do itself by default + return encodeURIComponent(value).replace(/'/g, '%27'); +} + +/** @public */ +export function sendWebMessageResponse( + res: Response, + appOrigin: string, + response: WebMessageResponse, +): void { + const jsonData = JSON.stringify(response); + const base64Data = safelyEncodeURIComponent(jsonData); + const base64Origin = safelyEncodeURIComponent(appOrigin); + + // NOTE: It is absolutely imperative that we use the safe encoder above, to + // be sure that the js code below does not allow the injection of malicious + // data. + + // TODO: Make target app origin configurable globally + + // + // postMessage fails silently if the targetOrigin is disallowed. + // So 2 postMessages are sent from the popup to the parent window. + // First, the origin being used to post the actual authorization response is + // shared with the parent window with a postMessage with targetOrigin '*'. + // Second, the actual authorization response is sent with the app origin + // as the targetOrigin. + // If the first message was received but the actual auth response was + // never received, the event listener can conclude that targetOrigin + // was disallowed, indicating potential misconfiguration. + // + const script = ` + var authResponse = decodeURIComponent('${base64Data}'); + var origin = decodeURIComponent('${base64Origin}'); + var originInfo = {'type': 'config_info', 'targetOrigin': origin}; + (window.opener || window.parent).postMessage(originInfo, '*'); + (window.opener || window.parent).postMessage(JSON.parse(authResponse), origin); + setTimeout(() => { + window.close(); + }, 100); // same as the interval of the core-app-api lib/loginPopup.ts (to address race conditions) + `; + const hash = crypto.createHash('sha256').update(script).digest('base64'); + + res.setHeader('Content-Type', 'text/html'); + res.setHeader('X-Frame-Options', 'sameorigin'); + res.setHeader('Content-Security-Policy', `script-src 'sha256-${hash}'`); + res.end(``); +} diff --git a/plugins/auth-node/src/index.ts b/plugins/auth-node/src/index.ts index a1f4ef3206..7740651d44 100644 --- a/plugins/auth-node/src/index.ts +++ b/plugins/auth-node/src/index.ts @@ -20,6 +20,7 @@ * @packageDocumentation */ +export * from './flow'; export * from './identity'; export * from './passport'; export { getBearerTokenFromAuthorizationHeader } from './getBearerTokenFromAuthorizationHeader'; diff --git a/plugins/auth-node/src/oauth/createOAuthHandlers.ts b/plugins/auth-node/src/oauth/createOAuthHandlers.ts index 151d4d418e..9f7bc7f6f9 100644 --- a/plugins/auth-node/src/oauth/createOAuthHandlers.ts +++ b/plugins/auth-node/src/oauth/createOAuthHandlers.ts @@ -24,7 +24,7 @@ import { NotAllowedError, } from '@backstage/errors'; import { defaultStateDecoder, defaultStateEncoder, OAuthState } from './state'; -import { postMessageResponse } from '../flow'; +import { sendWebMessageResponse } from '../flow'; import { prepareBackstageIdentityResponse } from '../identity'; import { OAuthCookieManager } from './OAuthCookieManager'; import { @@ -238,7 +238,7 @@ export function createOAuthHandlers( res.redirect(state.redirectUrl); } // post message back to popup if successful - return postMessageResponse(res, appOrigin, { + return sendWebMessageResponse(res, appOrigin, { type: 'authorization_response', response, }); @@ -247,7 +247,7 @@ export function createOAuthHandlers( ? error : new Error('Encountered invalid error'); // Being a bit safe and not forwarding the bad value // post error message back to popup if failure - return postMessageResponse(res, appOrigin, { + return sendWebMessageResponse(res, appOrigin, { type: 'authorization_response', error: { name, message }, }); From 1e5baf0c6e0aab0b4e98924b354cdf82d3809950 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Wed, 26 Jul 2023 16:42:40 +0200 Subject: [PATCH 118/372] auth-node: move identity related modules to identity dir Signed-off-by: Patrik Oldsberg --- .../{ => identity}/DefaultIdentityClient.test.ts | 2 +- .../src/{ => identity}/DefaultIdentityClient.ts | 7 ++----- .../auth-node/src/{ => identity}/IdentityApi.ts | 16 ++++++++++++---- .../src/{ => identity}/IdentityClient.test.ts | 0 .../src/{ => identity}/IdentityClient.ts | 2 +- ...getBearerTokenFromAuthorizationHeader.test.ts | 0 .../getBearerTokenFromAuthorizationHeader.ts | 0 plugins/auth-node/src/identity/index.ts | 7 +++++++ plugins/auth-node/src/index.ts | 6 ------ plugins/auth-node/src/types.ts | 9 --------- 10 files changed, 23 insertions(+), 26 deletions(-) rename plugins/auth-node/src/{ => identity}/DefaultIdentityClient.test.ts (99%) rename plugins/auth-node/src/{ => identity}/DefaultIdentityClient.ts (97%) rename plugins/auth-node/src/{ => identity}/IdentityApi.ts (80%) rename plugins/auth-node/src/{ => identity}/IdentityClient.test.ts (100%) rename plugins/auth-node/src/{ => identity}/IdentityClient.ts (97%) rename plugins/auth-node/src/{ => identity}/getBearerTokenFromAuthorizationHeader.test.ts (100%) rename plugins/auth-node/src/{ => identity}/getBearerTokenFromAuthorizationHeader.ts (100%) diff --git a/plugins/auth-node/src/DefaultIdentityClient.test.ts b/plugins/auth-node/src/identity/DefaultIdentityClient.test.ts similarity index 99% rename from plugins/auth-node/src/DefaultIdentityClient.test.ts rename to plugins/auth-node/src/identity/DefaultIdentityClient.test.ts index 13d9c5a17b..b9bf3cabd2 100644 --- a/plugins/auth-node/src/DefaultIdentityClient.test.ts +++ b/plugins/auth-node/src/identity/DefaultIdentityClient.test.ts @@ -26,7 +26,7 @@ import { setupServer } from 'msw/node'; import { v4 as uuid } from 'uuid'; import { DefaultIdentityClient } from './DefaultIdentityClient'; -import { IdentityApiGetIdentityRequest } from './types'; +import { IdentityApiGetIdentityRequest } from './IdentityApi'; interface AnyJWK extends Record { use: 'sig'; diff --git a/plugins/auth-node/src/DefaultIdentityClient.ts b/plugins/auth-node/src/identity/DefaultIdentityClient.ts similarity index 97% rename from plugins/auth-node/src/DefaultIdentityClient.ts rename to plugins/auth-node/src/identity/DefaultIdentityClient.ts index 8af8bf09e1..1095609dec 100644 --- a/plugins/auth-node/src/DefaultIdentityClient.ts +++ b/plugins/auth-node/src/identity/DefaultIdentityClient.ts @@ -25,12 +25,9 @@ import { jwtVerify, } from 'jose'; import { GetKeyFunction } from 'jose/dist/types/types'; -import { - BackstageIdentityResponse, - IdentityApiGetIdentityRequest, -} from './types'; import { getBearerTokenFromAuthorizationHeader } from './getBearerTokenFromAuthorizationHeader'; -import { IdentityApi } from './IdentityApi'; +import { IdentityApi, IdentityApiGetIdentityRequest } from './IdentityApi'; +import { BackstageIdentityResponse } from '../types'; const CLOCK_MARGIN_S = 10; diff --git a/plugins/auth-node/src/IdentityApi.ts b/plugins/auth-node/src/identity/IdentityApi.ts similarity index 80% rename from plugins/auth-node/src/IdentityApi.ts rename to plugins/auth-node/src/identity/IdentityApi.ts index 86171fa3ab..8322b9f827 100644 --- a/plugins/auth-node/src/IdentityApi.ts +++ b/plugins/auth-node/src/identity/IdentityApi.ts @@ -13,10 +13,18 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import { - BackstageIdentityResponse, - IdentityApiGetIdentityRequest, -} from './types'; + +import { Request } from 'express'; +import { BackstageIdentityResponse } from '../types'; + +/** + * Options to request the identity from a Backstage backend request + * + * @public + */ +export type IdentityApiGetIdentityRequest = { + request: Request; +}; /** * An identity client api to authenticate Backstage diff --git a/plugins/auth-node/src/IdentityClient.test.ts b/plugins/auth-node/src/identity/IdentityClient.test.ts similarity index 100% rename from plugins/auth-node/src/IdentityClient.test.ts rename to plugins/auth-node/src/identity/IdentityClient.test.ts diff --git a/plugins/auth-node/src/IdentityClient.ts b/plugins/auth-node/src/identity/IdentityClient.ts similarity index 97% rename from plugins/auth-node/src/IdentityClient.ts rename to plugins/auth-node/src/identity/IdentityClient.ts index 8252a61f81..fd6580dbb2 100644 --- a/plugins/auth-node/src/IdentityClient.ts +++ b/plugins/auth-node/src/identity/IdentityClient.ts @@ -18,7 +18,7 @@ import { DefaultIdentityClient, IdentityClientOptions, } from './DefaultIdentityClient'; -import { BackstageIdentityResponse } from './types'; +import { BackstageIdentityResponse } from '../types'; /** * An identity client to interact with auth-backend and authenticate Backstage diff --git a/plugins/auth-node/src/getBearerTokenFromAuthorizationHeader.test.ts b/plugins/auth-node/src/identity/getBearerTokenFromAuthorizationHeader.test.ts similarity index 100% rename from plugins/auth-node/src/getBearerTokenFromAuthorizationHeader.test.ts rename to plugins/auth-node/src/identity/getBearerTokenFromAuthorizationHeader.test.ts diff --git a/plugins/auth-node/src/getBearerTokenFromAuthorizationHeader.ts b/plugins/auth-node/src/identity/getBearerTokenFromAuthorizationHeader.ts similarity index 100% rename from plugins/auth-node/src/getBearerTokenFromAuthorizationHeader.ts rename to plugins/auth-node/src/identity/getBearerTokenFromAuthorizationHeader.ts diff --git a/plugins/auth-node/src/identity/index.ts b/plugins/auth-node/src/identity/index.ts index 4e9b129605..1a39c7aba3 100644 --- a/plugins/auth-node/src/identity/index.ts +++ b/plugins/auth-node/src/identity/index.ts @@ -15,3 +15,10 @@ */ export { prepareBackstageIdentityResponse } from './prepareBackstageIdentityResponse'; +export { getBearerTokenFromAuthorizationHeader } from './getBearerTokenFromAuthorizationHeader'; +export { + DefaultIdentityClient, + type IdentityClientOptions, +} from './DefaultIdentityClient'; +export { IdentityClient } from './IdentityClient'; +export type { IdentityApi } from './IdentityApi'; diff --git a/plugins/auth-node/src/index.ts b/plugins/auth-node/src/index.ts index 7740651d44..6c0993203b 100644 --- a/plugins/auth-node/src/index.ts +++ b/plugins/auth-node/src/index.ts @@ -23,11 +23,6 @@ export * from './flow'; export * from './identity'; export * from './passport'; -export { getBearerTokenFromAuthorizationHeader } from './getBearerTokenFromAuthorizationHeader'; -export { DefaultIdentityClient } from './DefaultIdentityClient'; -export { IdentityClient } from './IdentityClient'; -export type { IdentityApi } from './IdentityApi'; -export type { IdentityClientOptions } from './DefaultIdentityClient'; export type { AuthProviderConfig, AuthProviderRouteHandlers, @@ -39,7 +34,6 @@ export type { BackstageUserIdentity, ClientAuthResponse, CookieConfigurer, - IdentityApiGetIdentityRequest, ProfileInfo, SignInInfo, SignInResolver, diff --git a/plugins/auth-node/src/types.ts b/plugins/auth-node/src/types.ts index d6d24d17b4..409ad71ff9 100644 --- a/plugins/auth-node/src/types.ts +++ b/plugins/auth-node/src/types.ts @@ -36,15 +36,6 @@ export interface BackstageSignInResult { token: string; } -/** - * Options to request the identity from a Backstage backend request - * - * @public - */ -export type IdentityApiGetIdentityRequest = { - request: Request; -}; - /** * Response object containing the {@link BackstageUserIdentity} and the token * from the authentication provider. From 6f5414273c9b6e87881766f8683684484016ffeb Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Wed, 26 Jul 2023 17:56:44 +0200 Subject: [PATCH 119/372] auth-node: add default OAuth profile transform Signed-off-by: Patrik Oldsberg --- .../src/oauth/PassportOAuthAuthenticatorHelper.ts | 9 +++++++++ plugins/auth-node/src/oauth/createOAuthHandlers.ts | 5 +++-- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/plugins/auth-node/src/oauth/PassportOAuthAuthenticatorHelper.ts b/plugins/auth-node/src/oauth/PassportOAuthAuthenticatorHelper.ts index dc76207342..7c188435d5 100644 --- a/plugins/auth-node/src/oauth/PassportOAuthAuthenticatorHelper.ts +++ b/plugins/auth-node/src/oauth/PassportOAuthAuthenticatorHelper.ts @@ -21,6 +21,7 @@ import { OAuthAuthenticatorRefreshInput, OAuthAuthenticatorResult, OAuthAuthenticatorStartInput, + OAuthProfileTransform, } from './types'; /** @internal */ @@ -37,6 +38,14 @@ export type PassportOAuthResult = { /** @public */ export class PassportOAuthAuthenticatorHelper { + static defaultProfileTransform: OAuthProfileTransform = + async input => ({ + profile: PassportHelpers.transformProfile( + input.fullProfile, + input.session.idToken, + ), + }); + static from(strategy: Strategy) { return new PassportOAuthAuthenticatorHelper(strategy); } diff --git a/plugins/auth-node/src/oauth/createOAuthHandlers.ts b/plugins/auth-node/src/oauth/createOAuthHandlers.ts index 9f7bc7f6f9..e4fd3e5a50 100644 --- a/plugins/auth-node/src/oauth/createOAuthHandlers.ts +++ b/plugins/auth-node/src/oauth/createOAuthHandlers.ts @@ -51,7 +51,7 @@ export interface OAuthHandlersOptions { providerId: string; config: Config; resolverContext: AuthResolverContext; - profileTransform: OAuthProfileTransform; + profileTransform?: OAuthProfileTransform; cookieConfigurer?: CookieConfigurer; signInResolver?: SignInResolver>; } @@ -89,7 +89,6 @@ export function createOAuthHandlers( isOriginAllowed, cookieConfigurer, resolverContext, - profileTransform, signInResolver, } = options; @@ -98,6 +97,8 @@ export function createOAuthHandlers( config.getOptionalString('callbackUrl') ?? `${baseUrl}/${providerId}/handler/frame`; + const profileTransform = + options.profileTransform ?? authenticator.defaultProfileTransform; const authenticatorCtx = authenticator.initialize({ config, callbackUrl }); const cookieManager = new OAuthCookieManager({ baseUrl, From a49f1dc7e81e0e673198187a7508578cb7771f52 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Wed, 26 Jul 2023 17:58:52 +0200 Subject: [PATCH 120/372] auth-node: add oauth index exports Signed-off-by: Patrik Oldsberg --- plugins/auth-node/src/index.ts | 1 + plugins/auth-node/src/oauth/index.ts | 32 ++++++++++++++++++++++++++++ 2 files changed, 33 insertions(+) create mode 100644 plugins/auth-node/src/oauth/index.ts diff --git a/plugins/auth-node/src/index.ts b/plugins/auth-node/src/index.ts index 6c0993203b..b055e3a7d3 100644 --- a/plugins/auth-node/src/index.ts +++ b/plugins/auth-node/src/index.ts @@ -22,6 +22,7 @@ export * from './flow'; export * from './identity'; +export * from './oauth'; export * from './passport'; export type { AuthProviderConfig, diff --git a/plugins/auth-node/src/oauth/index.ts b/plugins/auth-node/src/oauth/index.ts new file mode 100644 index 0000000000..52c7b859f7 --- /dev/null +++ b/plugins/auth-node/src/oauth/index.ts @@ -0,0 +1,32 @@ +/* + * 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 { + createOAuthHandlers, + type OAuthHandlersOptions, +} from './createOAuthHandlers'; +export { PassportOAuthAuthenticatorHelper } from './PassportOAuthAuthenticatorHelper'; +export { + createOAuthAuthenticator, + type OAuthAuthenticator, + type OAuthAuthenticatorAuthenticateInput, + type OAuthAuthenticatorLogoutInput, + type OAuthAuthenticatorRefreshInput, + type OAuthAuthenticatorResult, + type OAuthAuthenticatorStartInput, + type OAuthProfileTransform, + type OAuthSession, +} from './types'; From c723a90f3220085e93f7cf68e8230e7616d21980 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Wed, 26 Jul 2023 18:00:42 +0200 Subject: [PATCH 121/372] auth-node: add providers extension point Signed-off-by: Patrik Oldsberg --- .../extensions/AuthProvidersExtensionPoint.ts | 35 +++++++++++++++++++ plugins/auth-node/src/extensions/index.ts | 21 +++++++++++ plugins/auth-node/src/index.ts | 1 + 3 files changed, 57 insertions(+) create mode 100644 plugins/auth-node/src/extensions/AuthProvidersExtensionPoint.ts create mode 100644 plugins/auth-node/src/extensions/index.ts diff --git a/plugins/auth-node/src/extensions/AuthProvidersExtensionPoint.ts b/plugins/auth-node/src/extensions/AuthProvidersExtensionPoint.ts new file mode 100644 index 0000000000..b67d5be017 --- /dev/null +++ b/plugins/auth-node/src/extensions/AuthProvidersExtensionPoint.ts @@ -0,0 +1,35 @@ +/* + * 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 { createExtensionPoint } from '@backstage/backend-plugin-api'; +import { AuthProviderFactory } from '../types'; + +/** @public */ +export interface AuthProviderRegistrationOptions { + providerId: string; + factory: AuthProviderFactory; +} + +/** @public */ +export interface AuthProvidersExtensionPoint { + registerProvider(options: AuthProviderRegistrationOptions): void; +} + +/** @public */ +export const authProvidersExtensionPoint = + createExtensionPoint({ + id: 'auth.providers', + }); diff --git a/plugins/auth-node/src/extensions/index.ts b/plugins/auth-node/src/extensions/index.ts new file mode 100644 index 0000000000..43e1751685 --- /dev/null +++ b/plugins/auth-node/src/extensions/index.ts @@ -0,0 +1,21 @@ +/* + * 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 { + authProvidersExtensionPoint, + type AuthProviderRegistrationOptions, + type AuthProvidersExtensionPoint, +} from './AuthProvidersExtensionPoint'; diff --git a/plugins/auth-node/src/index.ts b/plugins/auth-node/src/index.ts index b055e3a7d3..e857f8af97 100644 --- a/plugins/auth-node/src/index.ts +++ b/plugins/auth-node/src/index.ts @@ -20,6 +20,7 @@ * @packageDocumentation */ +export * from './extensions'; export * from './flow'; export * from './identity'; export * from './oauth'; From 5195c2adaa0aa67674efe79052e045652c44d035 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Sat, 29 Jul 2023 11:17:11 +0200 Subject: [PATCH 122/372] auth-node: provide passport OAuth helper types Signed-off-by: Patrik Oldsberg --- .../oauth/PassportOAuthAuthenticatorHelper.ts | 21 ++++++++++++++++--- plugins/auth-node/src/oauth/index.ts | 7 ++++++- 2 files changed, 24 insertions(+), 4 deletions(-) diff --git a/plugins/auth-node/src/oauth/PassportOAuthAuthenticatorHelper.ts b/plugins/auth-node/src/oauth/PassportOAuthAuthenticatorHelper.ts index 7c188435d5..c7fe81c3ee 100644 --- a/plugins/auth-node/src/oauth/PassportOAuthAuthenticatorHelper.ts +++ b/plugins/auth-node/src/oauth/PassportOAuthAuthenticatorHelper.ts @@ -15,7 +15,11 @@ */ import { Strategy } from 'passport'; -import { PassportHelpers, PassportProfile } from '../passport'; +import { + PassportDoneCallback, + PassportHelpers, + PassportProfile, +} from '../passport'; import { OAuthAuthenticatorAuthenticateInput, OAuthAuthenticatorRefreshInput, @@ -24,7 +28,7 @@ import { OAuthProfileTransform, } from './types'; -/** @internal */ +/** @public */ export type PassportOAuthResult = { fullProfile: PassportProfile; params: { @@ -36,6 +40,17 @@ export type PassportOAuthResult = { accessToken: string; }; +/** @public */ +export type PassportOAuthPrivateInfo = { + refreshToken?: string; +}; + +/** @public */ +export type PassportOAuthDoneCallback = PassportDoneCallback< + PassportOAuthResult, + PassportOAuthPrivateInfo +>; + /** @public */ export class PassportOAuthAuthenticatorHelper { static defaultProfileTransform: OAuthProfileTransform = @@ -73,7 +88,7 @@ export class PassportOAuthAuthenticatorHelper { const { result, privateInfo } = await PassportHelpers.executeFrameHandlerStrategy< PassportOAuthResult, - { refreshToken?: string } + PassportOAuthPrivateInfo >(input.req, this.#strategy); return { diff --git a/plugins/auth-node/src/oauth/index.ts b/plugins/auth-node/src/oauth/index.ts index 52c7b859f7..a2de5f4a27 100644 --- a/plugins/auth-node/src/oauth/index.ts +++ b/plugins/auth-node/src/oauth/index.ts @@ -18,7 +18,12 @@ export { createOAuthHandlers, type OAuthHandlersOptions, } from './createOAuthHandlers'; -export { PassportOAuthAuthenticatorHelper } from './PassportOAuthAuthenticatorHelper'; +export { + PassportOAuthAuthenticatorHelper, + type PassportOAuthDoneCallback, + type PassportOAuthPrivateInfo, + type PassportOAuthResult, +} from './PassportOAuthAuthenticatorHelper'; export { createOAuthAuthenticator, type OAuthAuthenticator, From 3c1df5d4a957caa1e67ed837a3f00b7029ebdfa2 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Sat, 29 Jul 2023 11:19:31 +0200 Subject: [PATCH 123/372] auth-node: createOAuthHandleres -> createOAuthRouteHandlers + refactor state transform Signed-off-by: Patrik Oldsberg --- ...andlers.ts => createOAuthRouteHandlers.ts} | 26 +++++++++++-------- plugins/auth-node/src/oauth/index.ts | 6 ++--- plugins/auth-node/src/oauth/state.ts | 21 ++++++--------- 3 files changed, 26 insertions(+), 27 deletions(-) rename plugins/auth-node/src/oauth/{createOAuthHandlers.ts => createOAuthRouteHandlers.ts} (93%) diff --git a/plugins/auth-node/src/oauth/createOAuthHandlers.ts b/plugins/auth-node/src/oauth/createOAuthRouteHandlers.ts similarity index 93% rename from plugins/auth-node/src/oauth/createOAuthHandlers.ts rename to plugins/auth-node/src/oauth/createOAuthRouteHandlers.ts index e4fd3e5a50..fa6cb57e31 100644 --- a/plugins/auth-node/src/oauth/createOAuthHandlers.ts +++ b/plugins/auth-node/src/oauth/createOAuthRouteHandlers.ts @@ -23,7 +23,12 @@ import { isError, NotAllowedError, } from '@backstage/errors'; -import { defaultStateDecoder, defaultStateEncoder, OAuthState } from './state'; +import { + encodeOAuthState, + decodeOAuthState, + OAuthStateTransform, + OAuthState, +} from './state'; import { sendWebMessageResponse } from '../flow'; import { prepareBackstageIdentityResponse } from '../identity'; import { OAuthCookieManager } from './OAuthCookieManager'; @@ -42,15 +47,15 @@ import { import { Config } from '@backstage/config'; /** @public */ -export interface OAuthHandlersOptions { - authenticator: OAuthAuthenticator; +export interface OAuthRouteHandlersOptions { + authenticator: OAuthAuthenticator; appUrl: string; baseUrl: string; isOriginAllowed: (origin: string) => boolean; - callbackUrl: string; providerId: string; config: Config; resolverContext: AuthResolverContext; + stateTransform?: OAuthStateTransform; profileTransform?: OAuthProfileTransform; cookieConfigurer?: CookieConfigurer; signInResolver?: SignInResolver>; @@ -77,8 +82,8 @@ type ClientOAuthResponse = ClientAuthResponse<{ }>; /** @public */ -export function createOAuthHandlers( - options: OAuthHandlersOptions, +export function createOAuthRouteHandlers( + options: OAuthRouteHandlersOptions, ): AuthProviderRouteHandlers { const { authenticator, @@ -97,6 +102,7 @@ export function createOAuthHandlers( config.getOptionalString('callbackUrl') ?? `${baseUrl}/${providerId}/handler/frame`; + const stateTransform = options.stateTransform ?? (state => ({ state })); const profileTransform = options.profileTransform ?? authenticator.defaultProfileTransform; const authenticatorCtx = authenticator.initialize({ config, callbackUrl }); @@ -137,7 +143,8 @@ export function createOAuthHandlers( state.scope = scope; } - const { encodedState } = await defaultStateEncoder(state, { req }); + const { state: transformedState } = await stateTransform(state, { req }); + const encodedState = encodeOAuthState(transformedState); const { url, status } = await options.authenticator.start( { req, scope, state: encodedState }, @@ -158,10 +165,7 @@ export function createOAuthHandlers( let appOrigin = defaultAppOrigin; try { - const { state } = await defaultStateDecoder( - req.query.state?.toString() ?? '', - { req }, - ); + const state = decodeOAuthState(req.query.state?.toString() ?? ''); if (state.origin) { try { diff --git a/plugins/auth-node/src/oauth/index.ts b/plugins/auth-node/src/oauth/index.ts index a2de5f4a27..e07ee01a58 100644 --- a/plugins/auth-node/src/oauth/index.ts +++ b/plugins/auth-node/src/oauth/index.ts @@ -15,9 +15,9 @@ */ export { - createOAuthHandlers, - type OAuthHandlersOptions, -} from './createOAuthHandlers'; + createOAuthRouteHandlers, + type OAuthRouteHandlersOptions, +} from './createOAuthRouteHandlers'; export { PassportOAuthAuthenticatorHelper, type PassportOAuthDoneCallback, diff --git a/plugins/auth-node/src/oauth/state.ts b/plugins/auth-node/src/oauth/state.ts index 668fe3736a..71c5a2afb8 100644 --- a/plugins/auth-node/src/oauth/state.ts +++ b/plugins/auth-node/src/oauth/state.ts @@ -17,6 +17,7 @@ import pickBy from 'lodash/pickBy'; import { Request } from 'express'; +/** @public */ export type OAuthState = { /* A type for the serialized value in the `state` parameter of the OAuth authorization flow */ @@ -29,28 +30,22 @@ export type OAuthState = { }; /** @public */ -export type OAuthStateEncoder = ( +export type OAuthStateTransform = ( state: OAuthState, context: { req: Request }, -) => Promise<{ encodedState: string }>; - -/** @public */ -export type OAuthStateDecoder = ( - encodedState: string, - context: { req: Request }, ) => Promise<{ state: OAuthState }>; /** @public */ -export const defaultStateEncoder: OAuthStateEncoder = async state => { +export function encodeOAuthState(state: OAuthState): string { const stateString = new URLSearchParams( pickBy(state, value => value !== undefined), ).toString(); - return { encodedState: Buffer.from(stateString, 'utf-8').toString('hex') }; -}; + return Buffer.from(stateString, 'utf-8').toString('hex'); +} /** @public */ -export const defaultStateDecoder: OAuthStateDecoder = async encodedState => { +export function decodeOAuthState(encodedState: string): OAuthState { const state = Object.fromEntries( new URLSearchParams(Buffer.from(encodedState, 'hex').toString('utf-8')), ); @@ -63,5 +58,5 @@ export const defaultStateDecoder: OAuthStateDecoder = async encodedState => { throw Error(`Invalid state passed via request`); } - return { state: state as OAuthState }; -}; + return state as OAuthState; +} From 112e45e37fd4b461abf16fa8977ccc065db6d5e4 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Sat, 29 Jul 2023 11:24:20 +0200 Subject: [PATCH 124/372] auth-backend: move OAuthEnvironmentHandler to auth-node Signed-off-by: Patrik Oldsberg --- .../src/lib/oauth/OAuthEnvironmentHandler.ts | 86 ++-------------- .../src/oauth/OAuthEnvironmentHandler.ts | 97 +++++++++++++++++++ plugins/auth-node/src/oauth/index.ts | 1 + 3 files changed, 104 insertions(+), 80 deletions(-) create mode 100644 plugins/auth-node/src/oauth/OAuthEnvironmentHandler.ts diff --git a/plugins/auth-backend/src/lib/oauth/OAuthEnvironmentHandler.ts b/plugins/auth-backend/src/lib/oauth/OAuthEnvironmentHandler.ts index 1c6d45d0a4..eef85f4e34 100644 --- a/plugins/auth-backend/src/lib/oauth/OAuthEnvironmentHandler.ts +++ b/plugins/auth-backend/src/lib/oauth/OAuthEnvironmentHandler.ts @@ -14,84 +14,10 @@ * limitations under the License. */ -import express from 'express'; -import { Config } from '@backstage/config'; -import { InputError, NotFoundError } from '@backstage/errors'; -import { readState } from './helpers'; -import { AuthProviderRouteHandlers } from '../../providers/types'; +import { OAuthEnvironmentHandler as _OAuthEnvironmentHandler } from '@backstage/plugin-auth-node'; -/** @public */ -export class OAuthEnvironmentHandler implements AuthProviderRouteHandlers { - static mapConfig( - config: Config, - factoryFunc: (envConfig: Config) => AuthProviderRouteHandlers, - ) { - const envs = config.keys(); - const handlers = new Map(); - - for (const env of envs) { - const envConfig = config.getConfig(env); - const handler = factoryFunc(envConfig); - handlers.set(env, handler); - } - - return new OAuthEnvironmentHandler(handlers); - } - - constructor( - private readonly handlers: Map, - ) {} - - async start(req: express.Request, res: express.Response): Promise { - const provider = this.getProviderForEnv(req); - await provider.start(req, res); - } - - async frameHandler( - req: express.Request, - res: express.Response, - ): Promise { - const provider = this.getProviderForEnv(req); - await provider.frameHandler(req, res); - } - - async refresh(req: express.Request, res: express.Response): Promise { - const provider = this.getProviderForEnv(req); - await provider.refresh?.(req, res); - } - - async logout(req: express.Request, res: express.Response): Promise { - const provider = this.getProviderForEnv(req); - await provider.logout?.(req, res); - } - - private getRequestFromEnv(req: express.Request): string | undefined { - const reqEnv = req.query.env?.toString(); - if (reqEnv) { - return reqEnv; - } - const stateParams = req.query.state?.toString(); - if (!stateParams) { - return undefined; - } - const env = readState(stateParams).env; - return env; - } - - private getProviderForEnv(req: express.Request): AuthProviderRouteHandlers { - const env: string | undefined = this.getRequestFromEnv(req); - - if (!env) { - throw new InputError(`Must specify 'env' query to select environment`); - } - - const handler = this.handlers.get(env); - if (!handler) { - throw new NotFoundError( - `No configuration available for the '${env}' environment of this provider.`, - ); - } - - return handler; - } -} +/** + * @public + * @deprecated import from `@backstage/plugin-auth-node` instead + */ +export type OAuthEnvironmentHandler = _OAuthEnvironmentHandler; diff --git a/plugins/auth-node/src/oauth/OAuthEnvironmentHandler.ts b/plugins/auth-node/src/oauth/OAuthEnvironmentHandler.ts new file mode 100644 index 0000000000..3a5ee00f8b --- /dev/null +++ b/plugins/auth-node/src/oauth/OAuthEnvironmentHandler.ts @@ -0,0 +1,97 @@ +/* + * Copyright 2020 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import express from 'express'; +import { Config } from '@backstage/config'; +import { InputError, NotFoundError } from '@backstage/errors'; +import { AuthProviderRouteHandlers } from '../types'; +import { decodeOAuthState } from './state'; + +/** @public */ +export class OAuthEnvironmentHandler implements AuthProviderRouteHandlers { + static mapConfig( + config: Config, + factoryFunc: (envConfig: Config) => AuthProviderRouteHandlers, + ) { + const envs = config.keys(); + const handlers = new Map(); + + for (const env of envs) { + const envConfig = config.getConfig(env); + const handler = factoryFunc(envConfig); + handlers.set(env, handler); + } + + return new OAuthEnvironmentHandler(handlers); + } + + constructor( + private readonly handlers: Map, + ) {} + + async start(req: express.Request, res: express.Response): Promise { + const provider = this.getProviderForEnv(req); + await provider.start(req, res); + } + + async frameHandler( + req: express.Request, + res: express.Response, + ): Promise { + const provider = this.getProviderForEnv(req); + await provider.frameHandler(req, res); + } + + async refresh(req: express.Request, res: express.Response): Promise { + const provider = this.getProviderForEnv(req); + await provider.refresh?.(req, res); + } + + async logout(req: express.Request, res: express.Response): Promise { + const provider = this.getProviderForEnv(req); + await provider.logout?.(req, res); + } + + private getEnvFromRequest(req: express.Request): string | undefined { + const reqEnv = req.query.env?.toString(); + if (reqEnv) { + return reqEnv; + } + const stateParams = req.query.state?.toString(); + if (!stateParams) { + return undefined; + } + const { env } = decodeOAuthState(stateParams); + return env; + } + + private getProviderForEnv(req: express.Request): AuthProviderRouteHandlers { + const env: string | undefined = this.getEnvFromRequest(req); + + if (!env) { + throw new InputError(`Must specify 'env' query to select environment`); + } + + const handler = this.handlers.get(env); + if (!handler) { + throw new NotFoundError( + `No configuration available for the '${env}' environment of this provider.`, + ); + } + + return handler; + } +} diff --git a/plugins/auth-node/src/oauth/index.ts b/plugins/auth-node/src/oauth/index.ts index e07ee01a58..046d7a47f7 100644 --- a/plugins/auth-node/src/oauth/index.ts +++ b/plugins/auth-node/src/oauth/index.ts @@ -24,6 +24,7 @@ export { type PassportOAuthPrivateInfo, type PassportOAuthResult, } from './PassportOAuthAuthenticatorHelper'; +export { OAuthEnvironmentHandler } from './OAuthEnvironmentHandler'; export { createOAuthAuthenticator, type OAuthAuthenticator, From 987637d75a322e5bec2d745cfc21a306f51338a8 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Sat, 29 Jul 2023 11:31:00 +0200 Subject: [PATCH 125/372] auth-node: added createOAuthProviderFactory Signed-off-by: Patrik Oldsberg --- .../src/oauth/createOAuthProviderFactory.ts | 51 +++++++++++++++++++ plugins/auth-node/src/oauth/index.ts | 1 + 2 files changed, 52 insertions(+) create mode 100644 plugins/auth-node/src/oauth/createOAuthProviderFactory.ts diff --git a/plugins/auth-node/src/oauth/createOAuthProviderFactory.ts b/plugins/auth-node/src/oauth/createOAuthProviderFactory.ts new file mode 100644 index 0000000000..6120bb528a --- /dev/null +++ b/plugins/auth-node/src/oauth/createOAuthProviderFactory.ts @@ -0,0 +1,51 @@ +/* + * 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 { AuthProviderFactory, SignInResolver } from '../types'; +import { OAuthEnvironmentHandler } from './OAuthEnvironmentHandler'; +import { createOAuthRouteHandlers } from './createOAuthRouteHandlers'; +import { OAuthStateTransform } from './state'; +import { + OAuthAuthenticator, + OAuthAuthenticatorResult, + OAuthProfileTransform, +} from './types'; + +/** @public */ +export function createOAuthProviderFactory(options: { + authenticator: OAuthAuthenticator; + stateTransform?: OAuthStateTransform; + profileTransform?: OAuthProfileTransform; + signInResolver?: SignInResolver>; +}): AuthProviderFactory { + return ctx => { + return OAuthEnvironmentHandler.mapConfig(ctx.config, envConfig => { + return createOAuthRouteHandlers({ + authenticator: options.authenticator, + appUrl: ctx.globalConfig.appUrl, + baseUrl: ctx.globalConfig.baseUrl, + config: envConfig, + isOriginAllowed: ctx.globalConfig.isOriginAllowed, + cookieConfigurer: ctx.globalConfig.cookieConfigurer, + providerId: ctx.providerId, + resolverContext: ctx.resolverContext, + stateTransform: options.stateTransform, + profileTransform: options.profileTransform, + signInResolver: options.signInResolver, + }); + }); + }; +} diff --git a/plugins/auth-node/src/oauth/index.ts b/plugins/auth-node/src/oauth/index.ts index 046d7a47f7..99f05b0d0c 100644 --- a/plugins/auth-node/src/oauth/index.ts +++ b/plugins/auth-node/src/oauth/index.ts @@ -25,6 +25,7 @@ export { type PassportOAuthResult, } from './PassportOAuthAuthenticatorHelper'; export { OAuthEnvironmentHandler } from './OAuthEnvironmentHandler'; +export { createOAuthProviderFactory } from './createOAuthProviderFactory'; export { createOAuthAuthenticator, type OAuthAuthenticator, From afdfeb797457e049dc424452b50e638d1271009b Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Sat, 29 Jul 2023 11:35:24 +0200 Subject: [PATCH 126/372] auth-backend: deprecate OAuthAdapter Signed-off-by: Patrik Oldsberg --- plugins/auth-backend/src/lib/oauth/OAuthAdapter.ts | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/plugins/auth-backend/src/lib/oauth/OAuthAdapter.ts b/plugins/auth-backend/src/lib/oauth/OAuthAdapter.ts index fb0750f0cb..0e0fb2b90f 100644 --- a/plugins/auth-backend/src/lib/oauth/OAuthAdapter.ts +++ b/plugins/auth-backend/src/lib/oauth/OAuthAdapter.ts @@ -50,7 +50,10 @@ import { prepareBackstageIdentityResponse } from '../../providers/prepareBacksta export const THOUSAND_DAYS_MS = 1000 * 24 * 60 * 60 * 1000; export const TEN_MINUTES_MS = 600 * 1000; -/** @public */ +/** + * @public + * @deprecated + */ export type OAuthAdapterOptions = { providerId: string; persistScopes?: boolean; @@ -61,7 +64,10 @@ export type OAuthAdapterOptions = { callbackUrl: string; }; -/** @public */ +/** + * @public + * @deprecated Use `createOAuthRouteHandlers` from `@backstage/plugin-auth-node` instead + */ export class OAuthAdapter implements AuthProviderRouteHandlers { static fromConfig( config: AuthProviderConfig, From 63484f54c6bc57d62d55a7be0277b63ba31e59dc Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Sat, 29 Jul 2023 11:38:55 +0200 Subject: [PATCH 127/372] auth-node: export OAuth state helpers and types Signed-off-by: Patrik Oldsberg --- plugins/auth-node/src/oauth/index.ts | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/plugins/auth-node/src/oauth/index.ts b/plugins/auth-node/src/oauth/index.ts index 99f05b0d0c..ff07a1e6a8 100644 --- a/plugins/auth-node/src/oauth/index.ts +++ b/plugins/auth-node/src/oauth/index.ts @@ -26,6 +26,12 @@ export { } from './PassportOAuthAuthenticatorHelper'; export { OAuthEnvironmentHandler } from './OAuthEnvironmentHandler'; export { createOAuthProviderFactory } from './createOAuthProviderFactory'; +export { + encodeOAuthState, + decodeOAuthState, + type OAuthState, + type OAuthStateTransform, +} from './state'; export { createOAuthAuthenticator, type OAuthAuthenticator, From 969f9f255387a44ccc490b7c0e384d5107efd5a4 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Sat, 29 Jul 2023 11:43:45 +0200 Subject: [PATCH 128/372] auth-backend: deprecate OAuth types Signed-off-by: Patrik Oldsberg --- plugins/auth-backend/src/lib/oauth/types.ts | 50 ++++++++++++--------- 1 file changed, 28 insertions(+), 22 deletions(-) diff --git a/plugins/auth-backend/src/lib/oauth/types.ts b/plugins/auth-backend/src/lib/oauth/types.ts index 46009218a9..e91f3819c4 100644 --- a/plugins/auth-backend/src/lib/oauth/types.ts +++ b/plugins/auth-backend/src/lib/oauth/types.ts @@ -16,13 +16,17 @@ import express from 'express'; import { Profile as PassportProfile } from 'passport'; -import { BackstageSignInResult } from '@backstage/plugin-auth-node'; +import { + BackstageSignInResult, + OAuthState as _OAuthState, +} from '@backstage/plugin-auth-node'; import { OAuthStartResponse, ProfileInfo } from '../../providers/types'; /** * Common options for passport.js-based OAuth providers * * @public + * @deprecated */ export type OAuthProviderOptions = { /** @@ -39,7 +43,10 @@ export type OAuthProviderOptions = { callbackUrl: string; }; -/** @public */ +/** + * @public + * @deprecated Use `OAuthAuthenticatorResult` from `@backstage/plugin-auth-node` instead + */ export type OAuthResult = { fullProfile: PassportProfile; params: { @@ -53,9 +60,8 @@ export type OAuthResult = { }; /** - * The expected response from an OAuth flow. - * * @public + * @deprecated Use `ClientAuthResponse` from `@backstage/plugin-auth-node` instead */ export type OAuthResponse = { profile: ProfileInfo; @@ -83,41 +89,41 @@ export type OAuthProviderInfo = { scope: string; }; -/** @public */ -export type OAuthState = { - /* A type for the serialized value in the `state` parameter of the OAuth authorization flow - */ - nonce: string; - env: string; - origin?: string; - scope?: string; - redirectUrl?: string; - flow?: string; -}; +/** + * @public + * @deprecated import from `@backstage/plugin-auth-node` instead + */ +export type OAuthState = _OAuthState; -/** @public */ +/** + * @public + * @deprecated Use `createOAuthRouteHandlers` from `@backstage/plugin-auth-node` instead + */ export type OAuthStartRequest = express.Request<{}> & { scope: string; state: OAuthState; }; -/** @public */ +/** + * @public + * @deprecated Use `createOAuthRouteHandlers` from `@backstage/plugin-auth-node` instead + */ export type OAuthRefreshRequest = express.Request<{}> & { scope: string; refreshToken: string; }; -/** @public */ +/** + * @public + * @deprecated Use `createOAuthRouteHandlers` from `@backstage/plugin-auth-node` instead + */ export type OAuthLogoutRequest = express.Request<{}> & { refreshToken: string; }; /** - * Any OAuth provider needs to implement this interface which has provider specific - * handlers for different methods to perform authentication, get access tokens, - * refresh tokens and perform sign out. - * * @public + * @deprecated Use `createOAuthRouteHandlers` from `@backstage/plugin-auth-node` instead */ export interface OAuthHandlers { /** From 12b4d8a3f8cc585a5fcd0a0ac0bf543ef9e12703 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Sat, 29 Jul 2023 11:56:38 +0200 Subject: [PATCH 129/372] auth-node: deprecate AuthProviderConfig and move to top-level props instead Signed-off-by: Patrik Oldsberg --- .../src/oauth/createOAuthProviderFactory.ts | 8 ++--- plugins/auth-node/src/types.ts | 30 +++++++++++++++++-- 2 files changed, 31 insertions(+), 7 deletions(-) diff --git a/plugins/auth-node/src/oauth/createOAuthProviderFactory.ts b/plugins/auth-node/src/oauth/createOAuthProviderFactory.ts index 6120bb528a..282fa6fad9 100644 --- a/plugins/auth-node/src/oauth/createOAuthProviderFactory.ts +++ b/plugins/auth-node/src/oauth/createOAuthProviderFactory.ts @@ -35,11 +35,11 @@ export function createOAuthProviderFactory(options: { return OAuthEnvironmentHandler.mapConfig(ctx.config, envConfig => { return createOAuthRouteHandlers({ authenticator: options.authenticator, - appUrl: ctx.globalConfig.appUrl, - baseUrl: ctx.globalConfig.baseUrl, + appUrl: ctx.appUrl, + baseUrl: ctx.baseUrl, config: envConfig, - isOriginAllowed: ctx.globalConfig.isOriginAllowed, - cookieConfigurer: ctx.globalConfig.cookieConfigurer, + isOriginAllowed: ctx.isOriginAllowed, + cookieConfigurer: ctx.cookieConfigurer, providerId: ctx.providerId, resolverContext: ctx.resolverContext, stateTransform: options.stateTransform, diff --git a/plugins/auth-node/src/types.ts b/plugins/auth-node/src/types.ts index 409ad71ff9..f1d7063700 100644 --- a/plugins/auth-node/src/types.ts +++ b/plugins/auth-node/src/types.ts @@ -215,7 +215,10 @@ export interface AuthProviderRouteHandlers { logout?(req: Request, res: Response): Promise; } -/** @public */ +/** + * @public + * @deprecated Use top-level properties passed to `AuthProviderFactory` instead + */ export type AuthProviderConfig = { /** * The protocol://domain[:port] where the app is hosted. This is used to construct the @@ -242,15 +245,36 @@ export type AuthProviderConfig = { /** @public */ export type AuthProviderFactory = (options: { providerId: string; + /** @deprecated Use top-level properties instead */ globalConfig: AuthProviderConfig; config: Config; logger: LoggerService; resolverContext: AuthResolverContext; + /** + * The protocol://domain[:port] where the app is hosted. This is used to construct the + * callbackURL to redirect to once the user signs in to the auth provider. + */ + baseUrl: string; + + /** + * The base URL of the app as provided by app.baseUrl + */ + appUrl: string; + + /** + * A function that is called to check whether an origin is allowed to receive the authentication result. + */ + isOriginAllowed: (origin: string) => boolean; + + /** + * The function used to resolve cookie configuration based on the auth provider options. + */ + cookieConfigurer?: CookieConfigurer; }) => AuthProviderRouteHandlers; /** @public */ -export type ClientAuthResponse = { - providerInfo: ProviderInfo; +export type ClientAuthResponse = { + providerInfo: TProviderInfo; profile: ProfileInfo; backstageIdentity?: BackstageIdentityResponse; }; From 39e19858b8454b0be3c625b7f390611a8c83394a Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Wed, 2 Aug 2023 10:07:22 +0200 Subject: [PATCH 130/372] auth-node: add sign-in resolver factory Signed-off-by: Patrik Oldsberg --- plugins/auth-node/package.json | 4 +- .../sign-in/createSignInResolverFactory.ts | 71 +++++++++++++++++++ plugins/auth-node/src/sign-in/index.ts | 17 +++++ yarn.lock | 12 ++-- 4 files changed, 98 insertions(+), 6 deletions(-) create mode 100644 plugins/auth-node/src/sign-in/createSignInResolverFactory.ts create mode 100644 plugins/auth-node/src/sign-in/index.ts diff --git a/plugins/auth-node/package.json b/plugins/auth-node/package.json index 92ad426a11..b0c503c144 100644 --- a/plugins/auth-node/package.json +++ b/plugins/auth-node/package.json @@ -41,7 +41,9 @@ "lodash": "^4.17.21", "node-fetch": "^2.6.7", "passport": "^0.6.0", - "winston": "^3.2.1" + "winston": "^3.2.1", + "zod": "^3.21.4", + "zod-to-json-schema": "^3.21.4" }, "devDependencies": { "@backstage/backend-test-utils": "workspace:^", diff --git a/plugins/auth-node/src/sign-in/createSignInResolverFactory.ts b/plugins/auth-node/src/sign-in/createSignInResolverFactory.ts new file mode 100644 index 0000000000..25e65754fe --- /dev/null +++ b/plugins/auth-node/src/sign-in/createSignInResolverFactory.ts @@ -0,0 +1,71 @@ +/* + * 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 { ZodSchema, ZodTypeDef } from 'zod'; +import { SignInResolver } from '../types'; +import zodToJsonSchema from 'zod-to-json-schema'; +import { JsonObject } from '@backstage/types'; + +export interface SignInResolverFactory { + ( + ...options: undefined extends TOptions + ? [options?: TOptions] + : [options: TOptions] + ): SignInResolver; + optionsJsonSchema?: JsonObject; +} + +export interface SignInResolverFactoryOptions< + TAuthResult, + TOptionsOutput, + TOptionsInput, +> { + optionsSchema?: ZodSchema; + create(options: TOptionsOutput): SignInResolver; +} + +export function createSignInResolverFactory< + TAuthResult, + TOptionsOutput, + TOptionsInput, +>( + options: SignInResolverFactoryOptions< + TAuthResult, + TOptionsOutput, + TOptionsInput + >, +): SignInResolverFactory { + const { optionsSchema } = options; + if (!optionsSchema) { + return (resolverOptions?: TOptionsInput) => { + if (resolverOptions) { + throw new Error('sign-in resolver does not accept options'); + } + return options.create(undefined as TOptionsOutput); + }; + } + const factory = ( + ...[resolverOptions]: undefined extends TOptionsInput + ? [options?: TOptionsInput] + : [options: TOptionsInput] + ) => { + const parsedOptions = optionsSchema.parse(resolverOptions); + return options.create(parsedOptions); + }; + + factory.optionsJsonSchema = zodToJsonSchema(optionsSchema) as JsonObject; + return factory; +} diff --git a/plugins/auth-node/src/sign-in/index.ts b/plugins/auth-node/src/sign-in/index.ts new file mode 100644 index 0000000000..fd5b95b970 --- /dev/null +++ b/plugins/auth-node/src/sign-in/index.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 { createSignInResolverFactory } from './createSignInResolverFactory'; diff --git a/yarn.lock b/yarn.lock index 7c10183f74..47a73df84f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4664,6 +4664,8 @@ __metadata: passport: ^0.6.0 uuid: ^8.0.0 winston: ^3.2.1 + zod: ^3.21.4 + zod-to-json-schema: ^3.21.4 languageName: unknown linkType: soft @@ -43089,12 +43091,12 @@ __metadata: languageName: node linkType: hard -"zod-to-json-schema@npm:^3.20.4": - version: 3.20.4 - resolution: "zod-to-json-schema@npm:3.20.4" +"zod-to-json-schema@npm:^3.20.4, zod-to-json-schema@npm:^3.21.4": + version: 3.21.4 + resolution: "zod-to-json-schema@npm:3.21.4" peerDependencies: - zod: ^3.20.0 - checksum: 55bc649dbc82ce25fbfbfdd42ca530d883d83be5d02cb81e89f6401d54bca151fc6b8cc57999c75eb6a3dcaa3f000697315fbd4f505637472621570ed52784d8 + zod: ^3.21.4 + checksum: 899c1f461fb6547c0b08a265c82040c250be9b88d3f408f2f3ff77a418fdfad7549077e589d418fccb312c1f6d555c3c7217b199cc9072762e1fab20716dd2a6 languageName: node linkType: hard From 861c5708c26784f4511511f582a1ddc486fb1352 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Wed, 2 Aug 2023 14:32:32 +0200 Subject: [PATCH 131/372] auth-node: add common sign-in resolvers Signed-off-by: Patrik Oldsberg --- .../src/sign-in/resolvers/byEmail.ts | 39 +++++++++++++++++++ .../src/sign-in/resolvers/byEmailLocalPart.ts | 38 ++++++++++++++++++ .../auth-node/src/sign-in/resolvers/index.ts | 18 +++++++++ 3 files changed, 95 insertions(+) create mode 100644 plugins/auth-node/src/sign-in/resolvers/byEmail.ts create mode 100644 plugins/auth-node/src/sign-in/resolvers/byEmailLocalPart.ts create mode 100644 plugins/auth-node/src/sign-in/resolvers/index.ts diff --git a/plugins/auth-node/src/sign-in/resolvers/byEmail.ts b/plugins/auth-node/src/sign-in/resolvers/byEmail.ts new file mode 100644 index 0000000000..0e087c7c7f --- /dev/null +++ b/plugins/auth-node/src/sign-in/resolvers/byEmail.ts @@ -0,0 +1,39 @@ +/* + * 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 { createSignInResolverFactory } from '../createSignInResolverFactory'; + +/** + * A common sign-in resolver that looks up the user using their email address + * as email of the entity. + */ +export const byEmail = createSignInResolverFactory({ + create() { + return async (info, ctx) => { + const { profile } = info; + + if (!profile.email) { + throw new Error('Login failed, user profile does not contain an email'); + } + + return ctx.signInWithCatalogUser({ + filter: { + 'spec.profile.email': profile.email, + }, + }); + }; + }, +}); diff --git a/plugins/auth-node/src/sign-in/resolvers/byEmailLocalPart.ts b/plugins/auth-node/src/sign-in/resolvers/byEmailLocalPart.ts new file mode 100644 index 0000000000..9328e7d6f7 --- /dev/null +++ b/plugins/auth-node/src/sign-in/resolvers/byEmailLocalPart.ts @@ -0,0 +1,38 @@ +/* + * 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 { createSignInResolverFactory } from '../createSignInResolverFactory'; + +/** + * A common sign-in resolver that looks up the user using the local part of + * their email address as the entity name. + */ +export const byEmailLocalPart = createSignInResolverFactory({ + create() { + return async (info, ctx) => { + const { profile } = info; + + if (!profile.email) { + throw new Error('Login failed, user profile does not contain an email'); + } + const [localPart] = profile.email.split('@'); + + return ctx.signInWithCatalogUser({ + entityRef: { name: localPart }, + }); + }; + }, +}); diff --git a/plugins/auth-node/src/sign-in/resolvers/index.ts b/plugins/auth-node/src/sign-in/resolvers/index.ts new file mode 100644 index 0000000000..b3018391f2 --- /dev/null +++ b/plugins/auth-node/src/sign-in/resolvers/index.ts @@ -0,0 +1,18 @@ +/* + * 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 { byEmail } from './byEmail'; +export { byEmailLocalPart } from './byEmailLocalPart'; From bbeb816313fc52be24b0936422ba2d9147576e3c Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Wed, 2 Aug 2023 14:35:05 +0200 Subject: [PATCH 132/372] add auth-backend-module-google-auth-provider Signed-off-by: Patrik Oldsberg --- .../.eslintrc.js | 1 + .../README.md | 5 ++ .../config.d.ts | 33 +++++++ .../package.json | 52 +++++++++++ .../src/authenticator.ts | 86 +++++++++++++++++++ .../src/index.ts | 18 ++++ .../src/module.ts | 42 +++++++++ yarn.lock | 16 ++++ 8 files changed, 253 insertions(+) create mode 100644 plugins/auth-backend-module-google-provider/.eslintrc.js create mode 100644 plugins/auth-backend-module-google-provider/README.md create mode 100644 plugins/auth-backend-module-google-provider/config.d.ts create mode 100644 plugins/auth-backend-module-google-provider/package.json create mode 100644 plugins/auth-backend-module-google-provider/src/authenticator.ts create mode 100644 plugins/auth-backend-module-google-provider/src/index.ts create mode 100644 plugins/auth-backend-module-google-provider/src/module.ts diff --git a/plugins/auth-backend-module-google-provider/.eslintrc.js b/plugins/auth-backend-module-google-provider/.eslintrc.js new file mode 100644 index 0000000000..e2a53a6ad2 --- /dev/null +++ b/plugins/auth-backend-module-google-provider/.eslintrc.js @@ -0,0 +1 @@ +module.exports = require('@backstage/cli/config/eslint-factory')(__dirname); diff --git a/plugins/auth-backend-module-google-provider/README.md b/plugins/auth-backend-module-google-provider/README.md new file mode 100644 index 0000000000..e031482f64 --- /dev/null +++ b/plugins/auth-backend-module-google-provider/README.md @@ -0,0 +1,5 @@ +# Auth Backend Module - Google Provider + +## Links + +- [The Backstage homepage](https://backstage.io) diff --git a/plugins/auth-backend-module-google-provider/config.d.ts b/plugins/auth-backend-module-google-provider/config.d.ts new file mode 100644 index 0000000000..6a1716c5bf --- /dev/null +++ b/plugins/auth-backend-module-google-provider/config.d.ts @@ -0,0 +1,33 @@ +/* + * Copyright 2020 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +export interface Config { + /** Configuration options for the auth plugin */ + auth?: { + providers?: { + google?: { + [authEnv: string]: { + clientId: string; + /** + * @visibility secret + */ + clientSecret: string; + callbackUrl?: string; + }; + }; + }; + }; +} diff --git a/plugins/auth-backend-module-google-provider/package.json b/plugins/auth-backend-module-google-provider/package.json new file mode 100644 index 0000000000..2104af5124 --- /dev/null +++ b/plugins/auth-backend-module-google-provider/package.json @@ -0,0 +1,52 @@ +{ + "name": "@backstage/plugin-auth-backend-module-google-provider", + "description": "A Google auth provider module for the Backstage auth backend", + "version": "0.0.0", + "main": "src/index.ts", + "types": "src/index.ts", + "license": "Apache-2.0", + "publishConfig": { + "access": "public", + "main": "dist/index.cjs.js", + "types": "dist/index.d.ts" + }, + "backstage": { + "role": "backend-plugin-module" + }, + "homepage": "https://backstage.io", + "repository": { + "type": "git", + "url": "https://github.com/backstage/backstage", + "directory": "plugins/auth-backend-module-google-provider" + }, + "keywords": [ + "backstage" + ], + "scripts": { + "start": "backstage-cli package start", + "build": "backstage-cli package build", + "lint": "backstage-cli package lint", + "test": "backstage-cli package test", + "prepack": "backstage-cli package prepack", + "postpack": "backstage-cli package postpack", + "clean": "backstage-cli package clean" + }, + "dependencies": { + "@backstage/backend-plugin-api": "workspace:^", + "@backstage/plugin-auth-node": "workspace:^", + "google-auth-library": "^8.0.0", + "passport-google-oauth20": "^2.0.0" + }, + "devDependencies": { + "@backstage/backend-test-utils": "workspace:^", + "@backstage/cli": "workspace:^", + "@types/passport-google-oauth20": "^2.0.3", + "msw": "^1.0.0", + "supertest": "^6.1.3" + }, + "files": [ + "dist", + "config.d.ts" + ], + "configSchema": "config.d.ts" +} diff --git a/plugins/auth-backend-module-google-provider/src/authenticator.ts b/plugins/auth-backend-module-google-provider/src/authenticator.ts new file mode 100644 index 0000000000..a428519fee --- /dev/null +++ b/plugins/auth-backend-module-google-provider/src/authenticator.ts @@ -0,0 +1,86 @@ +/* + * 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 { + PassportOAuthAuthenticatorHelper, + PassportOAuthDoneCallback, + PassportProfile, + createOAuthAuthenticator, +} from '@backstage/plugin-auth-node'; +import { OAuth2Client } from 'google-auth-library'; +import { Strategy as GoogleStrategy } from 'passport-google-oauth20'; + +/** @public */ +export const googleAuthenticator = createOAuthAuthenticator({ + defaultProfileTransform: + PassportOAuthAuthenticatorHelper.defaultProfileTransform, + initialize({ callbackUrl, config }) { + const clientId = config.getString('clientId'); + const clientSecret = config.getString('clientSecret'); + + return PassportOAuthAuthenticatorHelper.from( + new GoogleStrategy( + { + clientID: clientId, + clientSecret: clientSecret, + callbackURL: callbackUrl, + passReqToCallback: false, + }, + ( + accessToken: string, + refreshToken: string, + params: any, + fullProfile: PassportProfile, + done: PassportOAuthDoneCallback, + ) => { + done( + undefined, + { + fullProfile, + params, + accessToken, + }, + { + refreshToken, + }, + ); + }, + ), + ); + }, + + async start(input, helper) { + return helper.start(input, { + accessType: 'offline', + prompt: 'consent', + }); + }, + + async authenticate(input, helper) { + return helper.authenticate(input); + }, + + async refresh(input, helper) { + return helper.refresh(input); + }, + + async logout(input) { + if (input.refreshToken) { + const oauthClient = new OAuth2Client(); + await oauthClient.revokeToken(input.refreshToken); + } + }, +}); diff --git a/plugins/auth-backend-module-google-provider/src/index.ts b/plugins/auth-backend-module-google-provider/src/index.ts new file mode 100644 index 0000000000..81934894c2 --- /dev/null +++ b/plugins/auth-backend-module-google-provider/src/index.ts @@ -0,0 +1,18 @@ +/* + * 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 { googleAuthenticator } from './authenticator'; +export { authModuleGoogleProvider } from './module'; diff --git a/plugins/auth-backend-module-google-provider/src/module.ts b/plugins/auth-backend-module-google-provider/src/module.ts new file mode 100644 index 0000000000..95522b40f6 --- /dev/null +++ b/plugins/auth-backend-module-google-provider/src/module.ts @@ -0,0 +1,42 @@ +/* + * 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 { createBackendModule } from '@backstage/backend-plugin-api'; +import { + authProvidersExtensionPoint, + createOAuthProviderFactory, +} from '@backstage/plugin-auth-node'; +import { googleAuthenticator } from './authenticator'; + +export const authModuleGoogleProvider = createBackendModule({ + pluginId: 'auth', + moduleId: 'googleProvider', + register(reg) { + reg.registerInit({ + deps: { + providers: authProvidersExtensionPoint, + }, + async init({ providers }) { + providers.registerProvider({ + providerId: 'google', + factory: createOAuthProviderFactory({ + authenticator: googleAuthenticator, + }), + }); + }, + }); + }, +}); diff --git a/yarn.lock b/yarn.lock index 47a73df84f..b974ad70d3 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4576,6 +4576,22 @@ __metadata: languageName: unknown linkType: soft +"@backstage/plugin-auth-backend-module-google-provider@workspace:plugins/auth-backend-module-google-provider": + version: 0.0.0-use.local + resolution: "@backstage/plugin-auth-backend-module-google-provider@workspace:plugins/auth-backend-module-google-provider" + dependencies: + "@backstage/backend-plugin-api": "workspace:^" + "@backstage/backend-test-utils": "workspace:^" + "@backstage/cli": "workspace:^" + "@backstage/plugin-auth-node": "workspace:^" + "@types/passport-google-oauth20": ^2.0.3 + google-auth-library: ^8.0.0 + msw: ^1.0.0 + passport-google-oauth20: ^2.0.0 + supertest: ^6.1.3 + languageName: unknown + linkType: soft + "@backstage/plugin-auth-backend@workspace:^, @backstage/plugin-auth-backend@workspace:plugins/auth-backend": version: 0.0.0-use.local resolution: "@backstage/plugin-auth-backend@workspace:plugins/auth-backend" From d30b4e387a94ea407ca92ce635182412daf5ccab Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Mon, 7 Aug 2023 10:34:08 +0200 Subject: [PATCH 133/372] auth-node: add readDeclarativeSignInResolver Signed-off-by: Patrik Oldsberg --- .../src/oauth/createOAuthProviderFactory.ts | 16 ++++- plugins/auth-node/src/sign-in/index.ts | 4 ++ .../sign-in/readDeclarativeSignInResolver.ts | 69 +++++++++++++++++++ 3 files changed, 88 insertions(+), 1 deletion(-) create mode 100644 plugins/auth-node/src/sign-in/readDeclarativeSignInResolver.ts diff --git a/plugins/auth-node/src/oauth/createOAuthProviderFactory.ts b/plugins/auth-node/src/oauth/createOAuthProviderFactory.ts index 282fa6fad9..e08756860a 100644 --- a/plugins/auth-node/src/oauth/createOAuthProviderFactory.ts +++ b/plugins/auth-node/src/oauth/createOAuthProviderFactory.ts @@ -14,6 +14,7 @@ * limitations under the License. */ +import { readDeclarativeSignInResolver } from '../sign-in'; import { AuthProviderFactory, SignInResolver } from '../types'; import { OAuthEnvironmentHandler } from './OAuthEnvironmentHandler'; import { createOAuthRouteHandlers } from './createOAuthRouteHandlers'; @@ -23,6 +24,7 @@ import { OAuthAuthenticatorResult, OAuthProfileTransform, } from './types'; +import { SignInResolverFactory } from '../sign-in/createSignInResolverFactory'; /** @public */ export function createOAuthProviderFactory(options: { @@ -30,9 +32,21 @@ export function createOAuthProviderFactory(options: { stateTransform?: OAuthStateTransform; profileTransform?: OAuthProfileTransform; signInResolver?: SignInResolver>; + signInResolverFactories?: { + [name in string]: SignInResolverFactory< + OAuthAuthenticatorResult, + unknown + >; + }; }): AuthProviderFactory { return ctx => { return OAuthEnvironmentHandler.mapConfig(ctx.config, envConfig => { + const signInResolver = + options.signInResolver ?? + readDeclarativeSignInResolver(envConfig, { + signInResolverFactories: options.signInResolverFactories, + }); + return createOAuthRouteHandlers({ authenticator: options.authenticator, appUrl: ctx.appUrl, @@ -44,7 +58,7 @@ export function createOAuthProviderFactory(options: { resolverContext: ctx.resolverContext, stateTransform: options.stateTransform, profileTransform: options.profileTransform, - signInResolver: options.signInResolver, + signInResolver, }); }); }; diff --git a/plugins/auth-node/src/sign-in/index.ts b/plugins/auth-node/src/sign-in/index.ts index fd5b95b970..05d0792ba4 100644 --- a/plugins/auth-node/src/sign-in/index.ts +++ b/plugins/auth-node/src/sign-in/index.ts @@ -15,3 +15,7 @@ */ export { createSignInResolverFactory } from './createSignInResolverFactory'; +export { + readDeclarativeSignInResolver, + type ReadDeclarativeSignInResolverOptions, +} from './readDeclarativeSignInResolver'; diff --git a/plugins/auth-node/src/sign-in/readDeclarativeSignInResolver.ts b/plugins/auth-node/src/sign-in/readDeclarativeSignInResolver.ts new file mode 100644 index 0000000000..31c4dd92a9 --- /dev/null +++ b/plugins/auth-node/src/sign-in/readDeclarativeSignInResolver.ts @@ -0,0 +1,69 @@ +/* + * 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 { Config } from '@backstage/config'; +import { JsonObject } from '@backstage/types'; +import { SignInResolver } from '../types'; +import { SignInResolverFactory } from './createSignInResolverFactory'; + +/** @public */ +export interface ReadDeclarativeSignInResolverOptions { + config: Config; + signInResolverFactories: { + [name in string]: SignInResolverFactory; + }; +} + +/** @public */ +export function readDeclarativeSignInResolver( + options: ReadDeclarativeSignInResolverOptions, +): SignInResolver | undefined { + const resolvers = + options.config + .getOptionalConfigArray('signIn.resolvers') + ?.map(resolverConfig => { + const resolverName = resolverConfig.getString('resolver'); + if (!Object.hasOwn(options.signInResolverFactories, resolverName)) { + throw new Error( + `Sign-in resolver '${resolverName}' is not available`, + ); + } + const resolver = options.signInResolverFactories[resolverName]; + const { resolver: _ignored, ...resolverOptions } = + resolverConfig.get(); + + return resolver(resolverOptions); + }) ?? []; + + if (resolvers.length === 0) { + return undefined; + } + + return async (profile, context) => { + for (const resolver of resolvers ?? []) { + try { + return await resolver(profile, context); + } catch (error) { + if (error?.name === 'NotFoundError') { + continue; + } + throw error; + } + } + + throw new Error('Failed to sign-in, unable to resolve user identity'); + }; +} From e14ad7c018e43b6e78d32860bf3bd6c87342dead Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Mon, 7 Aug 2023 11:16:25 +0200 Subject: [PATCH 134/372] auth-node: fix OAuth redirect flow return Signed-off-by: Patrik Oldsberg --- plugins/auth-node/src/oauth/createOAuthRouteHandlers.ts | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/plugins/auth-node/src/oauth/createOAuthRouteHandlers.ts b/plugins/auth-node/src/oauth/createOAuthRouteHandlers.ts index fa6cb57e31..72640c8692 100644 --- a/plugins/auth-node/src/oauth/createOAuthRouteHandlers.ts +++ b/plugins/auth-node/src/oauth/createOAuthRouteHandlers.ts @@ -241,9 +241,11 @@ export function createOAuthRouteHandlers( ); } res.redirect(state.redirectUrl); + return; } + // post message back to popup if successful - return sendWebMessageResponse(res, appOrigin, { + sendWebMessageResponse(res, appOrigin, { type: 'authorization_response', response, }); @@ -252,7 +254,7 @@ export function createOAuthRouteHandlers( ? error : new Error('Encountered invalid error'); // Being a bit safe and not forwarding the bad value // post error message back to popup if failure - return sendWebMessageResponse(res, appOrigin, { + sendWebMessageResponse(res, appOrigin, { type: 'authorization_response', error: { name, message }, }); From f7b3d26cf49e03f80d53dca3bca125b8363807f9 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Mon, 7 Aug 2023 13:17:00 +0200 Subject: [PATCH 135/372] auth-node: export sign-in helpers and built-in resolver factories Signed-off-by: Patrik Oldsberg --- plugins/auth-node/src/index.ts | 1 + plugins/auth-node/src/sign-in/index.ts | 7 ++++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/plugins/auth-node/src/index.ts b/plugins/auth-node/src/index.ts index e857f8af97..d528a3b3a7 100644 --- a/plugins/auth-node/src/index.ts +++ b/plugins/auth-node/src/index.ts @@ -25,6 +25,7 @@ export * from './flow'; export * from './identity'; export * from './oauth'; export * from './passport'; +export * from './sign-in'; export type { AuthProviderConfig, AuthProviderRouteHandlers, diff --git a/plugins/auth-node/src/sign-in/index.ts b/plugins/auth-node/src/sign-in/index.ts index 05d0792ba4..a560002e04 100644 --- a/plugins/auth-node/src/sign-in/index.ts +++ b/plugins/auth-node/src/sign-in/index.ts @@ -14,8 +14,13 @@ * limitations under the License. */ -export { createSignInResolverFactory } from './createSignInResolverFactory'; +export { + createSignInResolverFactory, + type SignInResolverFactory, + type SignInResolverFactoryOptions, +} from './createSignInResolverFactory'; export { readDeclarativeSignInResolver, type ReadDeclarativeSignInResolverOptions, } from './readDeclarativeSignInResolver'; +export * as commonSignInResolvers from './resolvers'; From acbf02aadaf0778ca5161827c75e086d63c56081 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Mon, 7 Aug 2023 13:46:58 +0200 Subject: [PATCH 136/372] auth-node: refactor and rename common sign-in resolvers Signed-off-by: Patrik Oldsberg --- .../src/sign-in/commonSignInResolvers.ts | 73 +++++++++++++++++++ plugins/auth-node/src/sign-in/index.ts | 2 +- .../src/sign-in/resolvers/byEmail.ts | 39 ---------- .../src/sign-in/resolvers/byEmailLocalPart.ts | 38 ---------- .../auth-node/src/sign-in/resolvers/index.ts | 18 ----- 5 files changed, 74 insertions(+), 96 deletions(-) create mode 100644 plugins/auth-node/src/sign-in/commonSignInResolvers.ts delete mode 100644 plugins/auth-node/src/sign-in/resolvers/byEmail.ts delete mode 100644 plugins/auth-node/src/sign-in/resolvers/byEmailLocalPart.ts delete mode 100644 plugins/auth-node/src/sign-in/resolvers/index.ts diff --git a/plugins/auth-node/src/sign-in/commonSignInResolvers.ts b/plugins/auth-node/src/sign-in/commonSignInResolvers.ts new file mode 100644 index 0000000000..5b5da07c73 --- /dev/null +++ b/plugins/auth-node/src/sign-in/commonSignInResolvers.ts @@ -0,0 +1,73 @@ +/* + * 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 { createSignInResolverFactory } from './createSignInResolverFactory'; + +/** + * A collection of common sign-in resolvers that work with any auth provider. + * + * @public + */ +export namespace commonSignInResolvers { + /** + * A common sign-in resolver that looks up the user using their email address + * as email of the entity. + */ + export const emailMatchingUserEntityProfileEmail = + createSignInResolverFactory({ + create() { + return async (info, ctx) => { + const { profile } = info; + + if (!profile.email) { + throw new Error( + 'Login failed, user profile does not contain an email', + ); + } + + return ctx.signInWithCatalogUser({ + filter: { + 'spec.profile.email': profile.email, + }, + }); + }; + }, + }); + + /** + * A common sign-in resolver that looks up the user using the local part of + * their email address as the entity name. + */ + export const emailLocalPartMatchingUserEntityName = + createSignInResolverFactory({ + create() { + return async (info, ctx) => { + const { profile } = info; + + if (!profile.email) { + throw new Error( + 'Login failed, user profile does not contain an email', + ); + } + const [localPart] = profile.email.split('@'); + + return ctx.signInWithCatalogUser({ + entityRef: { name: localPart }, + }); + }; + }, + }); +} diff --git a/plugins/auth-node/src/sign-in/index.ts b/plugins/auth-node/src/sign-in/index.ts index a560002e04..736393a762 100644 --- a/plugins/auth-node/src/sign-in/index.ts +++ b/plugins/auth-node/src/sign-in/index.ts @@ -23,4 +23,4 @@ export { readDeclarativeSignInResolver, type ReadDeclarativeSignInResolverOptions, } from './readDeclarativeSignInResolver'; -export * as commonSignInResolvers from './resolvers'; +export { commonSignInResolvers } from './commonSignInResolvers'; diff --git a/plugins/auth-node/src/sign-in/resolvers/byEmail.ts b/plugins/auth-node/src/sign-in/resolvers/byEmail.ts deleted file mode 100644 index 0e087c7c7f..0000000000 --- a/plugins/auth-node/src/sign-in/resolvers/byEmail.ts +++ /dev/null @@ -1,39 +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. - */ - -import { createSignInResolverFactory } from '../createSignInResolverFactory'; - -/** - * A common sign-in resolver that looks up the user using their email address - * as email of the entity. - */ -export const byEmail = createSignInResolverFactory({ - create() { - return async (info, ctx) => { - const { profile } = info; - - if (!profile.email) { - throw new Error('Login failed, user profile does not contain an email'); - } - - return ctx.signInWithCatalogUser({ - filter: { - 'spec.profile.email': profile.email, - }, - }); - }; - }, -}); diff --git a/plugins/auth-node/src/sign-in/resolvers/byEmailLocalPart.ts b/plugins/auth-node/src/sign-in/resolvers/byEmailLocalPart.ts deleted file mode 100644 index 9328e7d6f7..0000000000 --- a/plugins/auth-node/src/sign-in/resolvers/byEmailLocalPart.ts +++ /dev/null @@ -1,38 +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. - */ - -import { createSignInResolverFactory } from '../createSignInResolverFactory'; - -/** - * A common sign-in resolver that looks up the user using the local part of - * their email address as the entity name. - */ -export const byEmailLocalPart = createSignInResolverFactory({ - create() { - return async (info, ctx) => { - const { profile } = info; - - if (!profile.email) { - throw new Error('Login failed, user profile does not contain an email'); - } - const [localPart] = profile.email.split('@'); - - return ctx.signInWithCatalogUser({ - entityRef: { name: localPart }, - }); - }; - }, -}); diff --git a/plugins/auth-node/src/sign-in/resolvers/index.ts b/plugins/auth-node/src/sign-in/resolvers/index.ts deleted file mode 100644 index b3018391f2..0000000000 --- a/plugins/auth-node/src/sign-in/resolvers/index.ts +++ /dev/null @@ -1,18 +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 { byEmail } from './byEmail'; -export { byEmailLocalPart } from './byEmailLocalPart'; From 2b8781affd5fd983ea4bf15ec528872ba911f154 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Mon, 7 Aug 2023 13:51:31 +0200 Subject: [PATCH 137/372] auth-backend-module-google-provider: add sign-in resolvers Signed-off-by: Patrik Oldsberg --- .../src/index.ts | 1 + .../src/module.ts | 6 +++ .../src/resolvers.ts | 53 +++++++++++++++++++ 3 files changed, 60 insertions(+) create mode 100644 plugins/auth-backend-module-google-provider/src/resolvers.ts diff --git a/plugins/auth-backend-module-google-provider/src/index.ts b/plugins/auth-backend-module-google-provider/src/index.ts index 81934894c2..9999dd2bc5 100644 --- a/plugins/auth-backend-module-google-provider/src/index.ts +++ b/plugins/auth-backend-module-google-provider/src/index.ts @@ -16,3 +16,4 @@ export { googleAuthenticator } from './authenticator'; export { authModuleGoogleProvider } from './module'; +export { googleSignInResolvers } from './resolvers'; diff --git a/plugins/auth-backend-module-google-provider/src/module.ts b/plugins/auth-backend-module-google-provider/src/module.ts index 95522b40f6..fe067c223a 100644 --- a/plugins/auth-backend-module-google-provider/src/module.ts +++ b/plugins/auth-backend-module-google-provider/src/module.ts @@ -17,9 +17,11 @@ import { createBackendModule } from '@backstage/backend-plugin-api'; import { authProvidersExtensionPoint, + commonSignInResolvers, createOAuthProviderFactory, } from '@backstage/plugin-auth-node'; import { googleAuthenticator } from './authenticator'; +import { googleSignInResolvers } from './resolvers'; export const authModuleGoogleProvider = createBackendModule({ pluginId: 'auth', @@ -34,6 +36,10 @@ export const authModuleGoogleProvider = createBackendModule({ providerId: 'google', factory: createOAuthProviderFactory({ authenticator: googleAuthenticator, + signInResolverFactories: { + ...googleSignInResolvers, + ...commonSignInResolvers, + }, }), }); }, diff --git a/plugins/auth-backend-module-google-provider/src/resolvers.ts b/plugins/auth-backend-module-google-provider/src/resolvers.ts new file mode 100644 index 0000000000..b19fc4d49f --- /dev/null +++ b/plugins/auth-backend-module-google-provider/src/resolvers.ts @@ -0,0 +1,53 @@ +/* + * 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 { + createSignInResolverFactory, + OAuthAuthenticatorResult, + PassportProfile, + SignInInfo, +} from '@backstage/plugin-auth-node'; + +/** + * Available sign-in resolvers for the Google auth provider. + * + * @public + */ +export namespace googleSignInResolvers { + /** + * Looks up the user by matching their email to the `google.com/email` annotation. + */ + export const emailMatchingUserEntityAnnotation = createSignInResolverFactory({ + create() { + return async ( + info: SignInInfo>, + ctx, + ) => { + const { profile } = info; + + if (!profile.email) { + throw new Error('Google profile contained no email'); + } + + return ctx.signInWithCatalogUser({ + annotations: { + 'google.com/email': profile.email, + }, + }); + }; + }, + }); +} From d3265deba86e8e6dbe653c645a3a98632d5133f0 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Mon, 7 Aug 2023 17:43:17 +0200 Subject: [PATCH 138/372] auth-node: refactor to use plain ProfileTransform Signed-off-by: Patrik Oldsberg --- plugins/auth-node/src/index.ts | 1 + .../oauth/PassportOAuthAuthenticatorHelper.ts | 17 +++++++++-------- .../src/oauth/createOAuthProviderFactory.ts | 19 ++++++++++--------- .../src/oauth/createOAuthRouteHandlers.ts | 9 +++------ plugins/auth-node/src/oauth/types.ts | 9 ++------- plugins/auth-node/src/types.ts | 13 +++++++++++++ 6 files changed, 38 insertions(+), 30 deletions(-) diff --git a/plugins/auth-node/src/index.ts b/plugins/auth-node/src/index.ts index d528a3b3a7..a376c87338 100644 --- a/plugins/auth-node/src/index.ts +++ b/plugins/auth-node/src/index.ts @@ -38,6 +38,7 @@ export type { ClientAuthResponse, CookieConfigurer, ProfileInfo, + ProfileTransform, SignInInfo, SignInResolver, TokenParams, diff --git a/plugins/auth-node/src/oauth/PassportOAuthAuthenticatorHelper.ts b/plugins/auth-node/src/oauth/PassportOAuthAuthenticatorHelper.ts index c7fe81c3ee..420a661da5 100644 --- a/plugins/auth-node/src/oauth/PassportOAuthAuthenticatorHelper.ts +++ b/plugins/auth-node/src/oauth/PassportOAuthAuthenticatorHelper.ts @@ -20,12 +20,12 @@ import { PassportHelpers, PassportProfile, } from '../passport'; +import { ProfileTransform } from '../types'; import { OAuthAuthenticatorAuthenticateInput, OAuthAuthenticatorRefreshInput, OAuthAuthenticatorResult, OAuthAuthenticatorStartInput, - OAuthProfileTransform, } from './types'; /** @public */ @@ -53,13 +53,14 @@ export type PassportOAuthDoneCallback = PassportDoneCallback< /** @public */ export class PassportOAuthAuthenticatorHelper { - static defaultProfileTransform: OAuthProfileTransform = - async input => ({ - profile: PassportHelpers.transformProfile( - input.fullProfile, - input.session.idToken, - ), - }); + static defaultProfileTransform: ProfileTransform< + OAuthAuthenticatorResult + > = async input => ({ + profile: PassportHelpers.transformProfile( + input.fullProfile, + input.session.idToken, + ), + }); static from(strategy: Strategy) { return new PassportOAuthAuthenticatorHelper(strategy); diff --git a/plugins/auth-node/src/oauth/createOAuthProviderFactory.ts b/plugins/auth-node/src/oauth/createOAuthProviderFactory.ts index e08756860a..87fde6a1a2 100644 --- a/plugins/auth-node/src/oauth/createOAuthProviderFactory.ts +++ b/plugins/auth-node/src/oauth/createOAuthProviderFactory.ts @@ -15,22 +15,22 @@ */ import { readDeclarativeSignInResolver } from '../sign-in'; -import { AuthProviderFactory, SignInResolver } from '../types'; +import { + AuthProviderFactory, + ProfileTransform, + SignInResolver, +} from '../types'; import { OAuthEnvironmentHandler } from './OAuthEnvironmentHandler'; import { createOAuthRouteHandlers } from './createOAuthRouteHandlers'; import { OAuthStateTransform } from './state'; -import { - OAuthAuthenticator, - OAuthAuthenticatorResult, - OAuthProfileTransform, -} from './types'; +import { OAuthAuthenticator, OAuthAuthenticatorResult } from './types'; import { SignInResolverFactory } from '../sign-in/createSignInResolverFactory'; /** @public */ export function createOAuthProviderFactory(options: { authenticator: OAuthAuthenticator; stateTransform?: OAuthStateTransform; - profileTransform?: OAuthProfileTransform; + profileTransform?: ProfileTransform>; signInResolver?: SignInResolver>; signInResolverFactories?: { [name in string]: SignInResolverFactory< @@ -43,8 +43,9 @@ export function createOAuthProviderFactory(options: { return OAuthEnvironmentHandler.mapConfig(ctx.config, envConfig => { const signInResolver = options.signInResolver ?? - readDeclarativeSignInResolver(envConfig, { - signInResolverFactories: options.signInResolverFactories, + readDeclarativeSignInResolver({ + config: envConfig, + signInResolverFactories: options.signInResolverFactories ?? {}, }); return createOAuthRouteHandlers({ diff --git a/plugins/auth-node/src/oauth/createOAuthRouteHandlers.ts b/plugins/auth-node/src/oauth/createOAuthRouteHandlers.ts index 72640c8692..6c4819a320 100644 --- a/plugins/auth-node/src/oauth/createOAuthRouteHandlers.ts +++ b/plugins/auth-node/src/oauth/createOAuthRouteHandlers.ts @@ -37,13 +37,10 @@ import { AuthResolverContext, ClientAuthResponse, CookieConfigurer, + ProfileTransform, SignInResolver, } from '../types'; -import { - OAuthAuthenticator, - OAuthAuthenticatorResult, - OAuthProfileTransform, -} from './types'; +import { OAuthAuthenticator, OAuthAuthenticatorResult } from './types'; import { Config } from '@backstage/config'; /** @public */ @@ -56,7 +53,7 @@ export interface OAuthRouteHandlersOptions { config: Config; resolverContext: AuthResolverContext; stateTransform?: OAuthStateTransform; - profileTransform?: OAuthProfileTransform; + profileTransform?: ProfileTransform>; cookieConfigurer?: CookieConfigurer; signInResolver?: SignInResolver>; } diff --git a/plugins/auth-node/src/oauth/types.ts b/plugins/auth-node/src/oauth/types.ts index 4a53beaae6..e6ddf370b6 100644 --- a/plugins/auth-node/src/oauth/types.ts +++ b/plugins/auth-node/src/oauth/types.ts @@ -16,7 +16,7 @@ import { Config } from '@backstage/config'; import { Request } from 'express'; -import { AuthResolverContext, ProfileInfo } from '../types'; +import { ProfileTransform } from '../types'; export interface OAuthSession { accessToken: string; @@ -27,11 +27,6 @@ export interface OAuthSession { refreshToken?: string; } -export type OAuthProfileTransform = ( - result: OAuthAuthenticatorResult, - context: AuthResolverContext, -) => Promise<{ profile: ProfileInfo }>; - export interface OAuthAuthenticatorStartInput { scope: string; state: string; @@ -60,7 +55,7 @@ export interface OAuthAuthenticatorResult { } export interface OAuthAuthenticator { - defaultProfileTransform: OAuthProfileTransform; + defaultProfileTransform: ProfileTransform>; shouldPersistScopes?: boolean; initialize(ctx: { callbackUrl: string; config: Config }): TContext; start( diff --git a/plugins/auth-node/src/types.ts b/plugins/auth-node/src/types.ts index f1d7063700..ccdfb0c39b 100644 --- a/plugins/auth-node/src/types.ts +++ b/plugins/auth-node/src/types.ts @@ -309,6 +309,19 @@ export type SignInResolver = ( context: AuthResolverContext, ) => Promise; +/** + * Describes the function that transforms the result of a successful + * authentication into a {@link ProfileInfo} object. + * + * This function may optionally throw an error in order to reject authentication. + * + * @public + */ +export type ProfileTransform = ( + result: TResult, + context: AuthResolverContext, +) => Promise<{ profile: ProfileInfo }>; + /** * Used to display login information to user, i.e. sidebar popup. * From c3aa1b91e12b4960165f30707b775750ec956109 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Mon, 7 Aug 2023 17:44:37 +0200 Subject: [PATCH 139/372] auth-node: add proxy provider APIs Signed-off-by: Patrik Oldsberg --- plugins/auth-node/src/index.ts | 1 + .../proxy/createProxyAuthProviderFactory.ts | 60 ++++++++++++++ .../src/proxy/createProxyRouteHandlers.ts | 79 +++++++++++++++++++ plugins/auth-node/src/proxy/index.ts | 22 ++++++ plugins/auth-node/src/proxy/types.ts | 34 ++++++++ 5 files changed, 196 insertions(+) create mode 100644 plugins/auth-node/src/proxy/createProxyAuthProviderFactory.ts create mode 100644 plugins/auth-node/src/proxy/createProxyRouteHandlers.ts create mode 100644 plugins/auth-node/src/proxy/index.ts create mode 100644 plugins/auth-node/src/proxy/types.ts diff --git a/plugins/auth-node/src/index.ts b/plugins/auth-node/src/index.ts index a376c87338..e7b0b628b8 100644 --- a/plugins/auth-node/src/index.ts +++ b/plugins/auth-node/src/index.ts @@ -25,6 +25,7 @@ export * from './flow'; export * from './identity'; export * from './oauth'; export * from './passport'; +export * from './proxy'; export * from './sign-in'; export type { AuthProviderConfig, diff --git a/plugins/auth-node/src/proxy/createProxyAuthProviderFactory.ts b/plugins/auth-node/src/proxy/createProxyAuthProviderFactory.ts new file mode 100644 index 0000000000..a50225e911 --- /dev/null +++ b/plugins/auth-node/src/proxy/createProxyAuthProviderFactory.ts @@ -0,0 +1,60 @@ +/* + * 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 { + readDeclarativeSignInResolver, + SignInResolverFactory, +} from '../sign-in'; +import { + AuthProviderFactory, + ProfileTransform, + SignInResolver, +} from '../types'; +import { createProxyAuthRouteHandlers } from './createProxyRouteHandlers'; +import { ProxyAuthenticator } from './types'; + +export function createProxyAuthProviderFactory(options: { + authenticator: ProxyAuthenticator; + profileTransform?: ProfileTransform; + signInResolver?: SignInResolver; + signInResolverFactories?: Record< + string, + SignInResolverFactory + >; +}): AuthProviderFactory { + return ctx => { + const signInResolver = + options.signInResolver ?? + readDeclarativeSignInResolver({ + config: ctx.config, + signInResolverFactories: options.signInResolverFactories ?? {}, + }); + + if (!signInResolver) { + throw new Error( + `No sign-in resolver configured for proxy auth provider '${ctx.providerId}'`, + ); + } + + return createProxyAuthRouteHandlers({ + signInResolver, + config: ctx.config, + authenticator: options.authenticator, + resolverContext: ctx.resolverContext, + profileTransform: options.profileTransform, + }); + }; +} diff --git a/plugins/auth-node/src/proxy/createProxyRouteHandlers.ts b/plugins/auth-node/src/proxy/createProxyRouteHandlers.ts new file mode 100644 index 0000000000..10ad62d2bf --- /dev/null +++ b/plugins/auth-node/src/proxy/createProxyRouteHandlers.ts @@ -0,0 +1,79 @@ +/* + * Copyright 2020 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { Request, Response } from 'express'; +import { Config } from '@backstage/config'; +import { + AuthProviderRouteHandlers, + AuthResolverContext, + ClientAuthResponse, + ProfileTransform, + SignInResolver, +} from '../types'; +import { ProxyAuthenticator } from './types'; +import { prepareBackstageIdentityResponse } from '../identity'; + +/** @public */ +export interface ProxyAuthRouteHandlersOptions { + authenticator: ProxyAuthenticator; + config: Config; + resolverContext: AuthResolverContext; + signInResolver: SignInResolver; + profileTransform?: ProfileTransform; +} + +/** @public */ +export function createProxyAuthRouteHandlers( + options: ProxyAuthRouteHandlersOptions, +): AuthProviderRouteHandlers { + const { authenticator, config, resolverContext, signInResolver } = options; + + const profileTransform = + options.profileTransform ?? authenticator.defaultProfileTransform; + const authenticatorCtx = authenticator.initialize({ config }); + + return { + async start(): Promise { + throw new Error('Not implemented'); + }, + + async frameHandler(): Promise { + throw new Error('Not implemented'); + }, + + async refresh(this: never, req: Request, res: Response): Promise { + const { result } = await authenticator.authenticate( + { req }, + authenticatorCtx, + ); + + const { profile } = await profileTransform(result, resolverContext); + + const identity = await signInResolver( + { profile, result }, + resolverContext, + ); + + const response: ClientAuthResponse<{}> = { + profile, + providerInfo: {}, + backstageIdentity: prepareBackstageIdentityResponse(identity), + }; + + res.status(200).json(response); + }, + }; +} diff --git a/plugins/auth-node/src/proxy/index.ts b/plugins/auth-node/src/proxy/index.ts new file mode 100644 index 0000000000..907f8829e5 --- /dev/null +++ b/plugins/auth-node/src/proxy/index.ts @@ -0,0 +1,22 @@ +/* + * 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 { createProxyAuthenticator, type ProxyAuthenticator } from './types'; +export { createProxyAuthProviderFactory } from './createProxyAuthProviderFactory'; +export { + createProxyAuthRouteHandlers, + type ProxyAuthRouteHandlersOptions, +} from './createProxyRouteHandlers'; diff --git a/plugins/auth-node/src/proxy/types.ts b/plugins/auth-node/src/proxy/types.ts new file mode 100644 index 0000000000..a7e0da2d4c --- /dev/null +++ b/plugins/auth-node/src/proxy/types.ts @@ -0,0 +1,34 @@ +/* + * 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 { Config } from '@backstage/config'; +import { Request } from 'express'; +import { ProfileTransform } from '../types'; + +export interface ProxyAuthenticator { + defaultProfileTransform: ProfileTransform; + initialize(ctx: { config: Config }): Promise; + authenticate( + options: { req: Request }, + ctx: TContext, + ): Promise<{ result: TResult }>; +} + +export function createProxyAuthenticator( + authenticator: ProxyAuthenticator, +): ProxyAuthenticator { + return authenticator; +} From 2f214950a38e45e2dbae7588b03b31998ede4d37 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Mon, 7 Aug 2023 17:45:58 +0200 Subject: [PATCH 140/372] add auth-backend-module-iap-provider Signed-off-by: Patrik Oldsberg --- .../.eslintrc.js | 1 + .../README.md | 5 + .../config.d.ts | 29 ++++ .../package.json | 52 +++++++ .../src/authenticator.ts | 52 +++++++ .../src/helpers.test.ts | 124 ++++++++++++++++ .../src/helpers.ts | 67 +++++++++ .../src/index.ts | 19 +++ .../src/module.ts | 48 +++++++ .../src/resolvers.ts | 49 +++++++ .../src/types.ts | 50 +++++++ .../src/providers/gcp-iap/helpers.test.ts | 134 ------------------ .../src/providers/gcp-iap/helpers.ts | 82 ----------- yarn.lock | 16 +++ 14 files changed, 512 insertions(+), 216 deletions(-) create mode 100644 plugins/auth-backend-module-gcp-iap-provider/.eslintrc.js create mode 100644 plugins/auth-backend-module-gcp-iap-provider/README.md create mode 100644 plugins/auth-backend-module-gcp-iap-provider/config.d.ts create mode 100644 plugins/auth-backend-module-gcp-iap-provider/package.json create mode 100644 plugins/auth-backend-module-gcp-iap-provider/src/authenticator.ts create mode 100644 plugins/auth-backend-module-gcp-iap-provider/src/helpers.test.ts create mode 100644 plugins/auth-backend-module-gcp-iap-provider/src/helpers.ts create mode 100644 plugins/auth-backend-module-gcp-iap-provider/src/index.ts create mode 100644 plugins/auth-backend-module-gcp-iap-provider/src/module.ts create mode 100644 plugins/auth-backend-module-gcp-iap-provider/src/resolvers.ts create mode 100644 plugins/auth-backend-module-gcp-iap-provider/src/types.ts delete mode 100644 plugins/auth-backend/src/providers/gcp-iap/helpers.test.ts delete mode 100644 plugins/auth-backend/src/providers/gcp-iap/helpers.ts diff --git a/plugins/auth-backend-module-gcp-iap-provider/.eslintrc.js b/plugins/auth-backend-module-gcp-iap-provider/.eslintrc.js new file mode 100644 index 0000000000..e2a53a6ad2 --- /dev/null +++ b/plugins/auth-backend-module-gcp-iap-provider/.eslintrc.js @@ -0,0 +1 @@ +module.exports = require('@backstage/cli/config/eslint-factory')(__dirname); diff --git a/plugins/auth-backend-module-gcp-iap-provider/README.md b/plugins/auth-backend-module-gcp-iap-provider/README.md new file mode 100644 index 0000000000..a5f3ce1d4c --- /dev/null +++ b/plugins/auth-backend-module-gcp-iap-provider/README.md @@ -0,0 +1,5 @@ +# Auth Backend Module - GCP IAP Provider + +## Links + +- [The Backstage homepage](https://backstage.io) diff --git a/plugins/auth-backend-module-gcp-iap-provider/config.d.ts b/plugins/auth-backend-module-gcp-iap-provider/config.d.ts new file mode 100644 index 0000000000..c8460470af --- /dev/null +++ b/plugins/auth-backend-module-gcp-iap-provider/config.d.ts @@ -0,0 +1,29 @@ +/* + * Copyright 2020 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +export interface Config { + auth?: { + providers?: { + gcpIap?: { + [authEnv: string]: { + audience: string; + + jwtHeader?: string; + }; + }; + }; + }; +} diff --git a/plugins/auth-backend-module-gcp-iap-provider/package.json b/plugins/auth-backend-module-gcp-iap-provider/package.json new file mode 100644 index 0000000000..93c47f2706 --- /dev/null +++ b/plugins/auth-backend-module-gcp-iap-provider/package.json @@ -0,0 +1,52 @@ +{ + "name": "@backstage/plugin-auth-backend-module-gcp-iap-provider", + "description": "A GCP IAP auth provider module for the Backstage auth backend", + "version": "0.0.0", + "main": "src/index.ts", + "types": "src/index.ts", + "license": "Apache-2.0", + "publishConfig": { + "access": "public", + "main": "dist/index.cjs.js", + "types": "dist/index.d.ts" + }, + "backstage": { + "role": "backend-plugin-module" + }, + "homepage": "https://backstage.io", + "repository": { + "type": "git", + "url": "https://github.com/backstage/backstage", + "directory": "plugins/auth-backend-module-gcp-iap-provider" + }, + "keywords": [ + "backstage" + ], + "scripts": { + "start": "backstage-cli package start", + "build": "backstage-cli package build", + "lint": "backstage-cli package lint", + "test": "backstage-cli package test", + "prepack": "backstage-cli package prepack", + "postpack": "backstage-cli package postpack", + "clean": "backstage-cli package clean" + }, + "dependencies": { + "@backstage/backend-plugin-api": "workspace:^", + "@backstage/errors": "workspace:^", + "@backstage/plugin-auth-node": "workspace:^", + "@backstage/types": "workspace:^", + "google-auth-library": "^8.0.0" + }, + "devDependencies": { + "@backstage/backend-test-utils": "workspace:^", + "@backstage/cli": "workspace:^", + "msw": "^1.0.0", + "supertest": "^6.1.3" + }, + "files": [ + "dist", + "config.d.ts" + ], + "configSchema": "config.d.ts" +} diff --git a/plugins/auth-backend-module-gcp-iap-provider/src/authenticator.ts b/plugins/auth-backend-module-gcp-iap-provider/src/authenticator.ts new file mode 100644 index 0000000000..ca104ded86 --- /dev/null +++ b/plugins/auth-backend-module-gcp-iap-provider/src/authenticator.ts @@ -0,0 +1,52 @@ +/* + * 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 { AuthenticationError } from '@backstage/errors'; +import { createProxyAuthenticator } from '@backstage/plugin-auth-node'; +import { createTokenValidator } from './helpers'; +import { GcpIapResult } from './types'; + +/** + * The header name used by the IAP. + */ +const DEFAULT_IAP_JWT_HEADER = 'x-goog-iap-jwt-assertion'; + +/** @public */ +export const gcpIapAuthenticator = createProxyAuthenticator({ + defaultProfileTransform: async (result: GcpIapResult) => { + return { profile: { email: result.iapToken.email } }; + }, + async initialize({ config }) { + const audience = config.getString('audience'); + const jwtHeader = + config.getOptionalString('jwtHeader') ?? DEFAULT_IAP_JWT_HEADER; + + const tokenValidator = createTokenValidator(audience); + + return { jwtHeader, tokenValidator }; + }, + async authenticate({ req }, { jwtHeader, tokenValidator }) { + const token = req.header(jwtHeader); + + if (!token || typeof token !== 'string') { + throw new AuthenticationError('Missing Google IAP header'); + } + + const iapToken = await tokenValidator(token); + + return { result: { iapToken } }; + }, +}); diff --git a/plugins/auth-backend-module-gcp-iap-provider/src/helpers.test.ts b/plugins/auth-backend-module-gcp-iap-provider/src/helpers.test.ts new file mode 100644 index 0000000000..4079f8f7d3 --- /dev/null +++ b/plugins/auth-backend-module-gcp-iap-provider/src/helpers.test.ts @@ -0,0 +1,124 @@ +/* + * Copyright 2021 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { OAuth2Client } from 'google-auth-library'; +import { createTokenValidator } from './helpers'; + +const mockJwt = 'a.b.c'; + +beforeEach(() => { + jest.clearAllMocks(); +}); + +describe('helpers', () => { + describe('createTokenValidator', () => { + it('runs the happy path', async () => { + const mockClient = { + getIapPublicKeys: async () => ({ pubkeys: '' }), + verifySignedJwtWithCertsAsync: async () => ({ + getPayload: () => ({ sub: 's', email: 'e@mail.com' }), + }), + }; + const validator = createTokenValidator( + 'a', + mockClient as unknown as OAuth2Client, + ); + await expect(validator(mockJwt)).resolves.toMatchObject({ + sub: 's', + email: 'e@mail.com', + }); + }); + + it('throws if listing keys fail', async () => { + const mockClient = { + getIapPublicKeys: async () => { + throw new Error('NOPE'); + }, + }; + const validator = createTokenValidator( + 'a', + mockClient as unknown as OAuth2Client, + ); + await expect(validator(mockJwt)).rejects.toThrow( + 'Unable to list Google IAP token verification keys, Error: NOPE', + ); + }); + + it('throws if the verifying signature fails', async () => { + const mockClient = { + getIapPublicKeys: async () => ({ pubkeys: '' }), + verifySignedJwtWithCertsAsync: async () => { + throw new Error('NOPE'); + }, + }; + const validator = createTokenValidator( + 'a', + mockClient as unknown as OAuth2Client, + ); + await expect(validator(mockJwt)).rejects.toThrow( + 'Google IAP token verification failed, Error: NOPE', + ); + }); + + it('rejects empty payload', async () => { + const mockClient = { + getIapPublicKeys: async () => ({ pubkeys: '' }), + verifySignedJwtWithCertsAsync: async () => ({ + getPayload: () => undefined, + }), + }; + const validator = createTokenValidator( + 'a', + mockClient as unknown as OAuth2Client, + ); + await expect(validator(mockJwt)).rejects.toThrow( + 'Google IAP token verification failed, token had no payload', + ); + }); + + it('rejects payload without subject', async () => { + const mockClient = { + getIapPublicKeys: async () => ({ pubkeys: '' }), + verifySignedJwtWithCertsAsync: async () => ({ + getPayload: () => ({ email: 'e@mail.com' }), + }), + }; + const validator = createTokenValidator( + 'a', + mockClient as unknown as OAuth2Client, + ); + await expect(validator(mockJwt)).rejects.toThrow( + 'Google IAP token payload is missing subject claim', + ); + }); + + it('rejects payload without email', async () => { + const mockClient = { + getIapPublicKeys: async () => ({ pubkeys: '' }), + verifySignedJwtWithCertsAsync: async () => ({ + getPayload: () => ({ sub: 's' }), + }), + }; + const validator = createTokenValidator( + 'a', + mockClient as unknown as OAuth2Client, + ); + await expect(validator(mockJwt)).rejects.toThrow( + 'Google IAP token payload is missing email claim', + ); + }); + }); +}); diff --git a/plugins/auth-backend-module-gcp-iap-provider/src/helpers.ts b/plugins/auth-backend-module-gcp-iap-provider/src/helpers.ts new file mode 100644 index 0000000000..54db7117f9 --- /dev/null +++ b/plugins/auth-backend-module-gcp-iap-provider/src/helpers.ts @@ -0,0 +1,67 @@ +/* + * Copyright 2021 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { AuthenticationError } from '@backstage/errors'; +import { OAuth2Client } from 'google-auth-library'; +import { GcpIapTokenInfo } from './types'; + +export function createTokenValidator( + audience: string, + providedClient?: OAuth2Client, +): (token: string) => Promise { + const client = providedClient ?? new OAuth2Client(); + + return async function tokenValidator(token) { + // TODO(freben): Rate limit the public key reads. It may be sensible to + // cache these for some reasonable time rather than asking for the public + // keys on every single sign-in. But since the rate of events here is so + // slow, I decided to keep it simple for now. + const response = await client.getIapPublicKeys().catch(error => { + throw new AuthenticationError( + `Unable to list Google IAP token verification keys, ${error}`, + ); + }); + const ticket = await client + .verifySignedJwtWithCertsAsync(token, response.pubkeys, audience, [ + 'https://cloud.google.com/iap', + ]) + .catch(error => { + throw new AuthenticationError( + `Google IAP token verification failed, ${error}`, + ); + }); + + const payload = ticket.getPayload(); + if (!payload) { + throw new AuthenticationError( + 'Google IAP token verification failed, token had no payload', + ); + } + + if (!payload.sub) { + throw new AuthenticationError( + 'Google IAP token payload is missing subject claim', + ); + } + if (!payload.email) { + throw new AuthenticationError( + 'Google IAP token payload is missing email claim', + ); + } + + return payload as unknown as GcpIapTokenInfo; + }; +} diff --git a/plugins/auth-backend-module-gcp-iap-provider/src/index.ts b/plugins/auth-backend-module-gcp-iap-provider/src/index.ts new file mode 100644 index 0000000000..50ea1cb2af --- /dev/null +++ b/plugins/auth-backend-module-gcp-iap-provider/src/index.ts @@ -0,0 +1,19 @@ +/* + * 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 { gcpIapAuthenticator } from './authenticator'; +export { authModuleGcpIapProvider } from './module'; +export { gcpIapSignInResolvers } from './resolvers'; diff --git a/plugins/auth-backend-module-gcp-iap-provider/src/module.ts b/plugins/auth-backend-module-gcp-iap-provider/src/module.ts new file mode 100644 index 0000000000..38742e4236 --- /dev/null +++ b/plugins/auth-backend-module-gcp-iap-provider/src/module.ts @@ -0,0 +1,48 @@ +/* + * 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 { createBackendModule } from '@backstage/backend-plugin-api'; +import { + authProvidersExtensionPoint, + commonSignInResolvers, + createProxyAuthProviderFactory, +} from '@backstage/plugin-auth-node'; +import { gcpIapAuthenticator } from './authenticator'; +import { gcpIapSignInResolvers } from './resolvers'; + +export const authModuleGcpIapProvider = createBackendModule({ + pluginId: 'auth', + moduleId: 'gcpIapProvider', + register(reg) { + reg.registerInit({ + deps: { + providers: authProvidersExtensionPoint, + }, + async init({ providers }) { + providers.registerProvider({ + providerId: 'gcpIap', + factory: createProxyAuthProviderFactory({ + authenticator: gcpIapAuthenticator, + signInResolverFactories: { + ...gcpIapSignInResolvers, + ...commonSignInResolvers, + }, + }), + }); + }, + }); + }, +}); diff --git a/plugins/auth-backend-module-gcp-iap-provider/src/resolvers.ts b/plugins/auth-backend-module-gcp-iap-provider/src/resolvers.ts new file mode 100644 index 0000000000..32ab2b6cc7 --- /dev/null +++ b/plugins/auth-backend-module-gcp-iap-provider/src/resolvers.ts @@ -0,0 +1,49 @@ +/* + * 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 { + createSignInResolverFactory, + SignInInfo, +} from '@backstage/plugin-auth-node'; +import { GcpIapResult } from './types'; + +/** + * Available sign-in resolvers for the Google auth provider. + * + * @public + */ +export namespace gcpIapSignInResolvers { + /** + * Looks up the user by matching their email to the `google.com/email` annotation. + */ + export const emailMatchingUserEntityAnnotation = createSignInResolverFactory({ + create() { + return async (info: SignInInfo, ctx) => { + const email = info.result.iapToken.email; + + if (!email) { + throw new Error('Google IAP sign-in result is missing email'); + } + + return ctx.signInWithCatalogUser({ + annotations: { + 'google.com/email': email, + }, + }); + }; + }, + }); +} diff --git a/plugins/auth-backend-module-gcp-iap-provider/src/types.ts b/plugins/auth-backend-module-gcp-iap-provider/src/types.ts new file mode 100644 index 0000000000..a967a4d579 --- /dev/null +++ b/plugins/auth-backend-module-gcp-iap-provider/src/types.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 { JsonPrimitive } from '@backstage/types'; + +/** + * The data extracted from an IAP token. + * + * @public + */ +export type GcpIapTokenInfo = { + /** + * The unique, stable identifier for the user. + */ + sub: string; + /** + * User email address. + */ + email: string; + /** + * Other fields. + */ + [key: string]: JsonPrimitive; +}; + +/** + * The result of the initial auth challenge. This is the input to the auth + * callbacks. + * + * @public + */ +export type GcpIapResult = { + /** + * The data extracted from the IAP token header. + */ + iapToken: GcpIapTokenInfo; +}; diff --git a/plugins/auth-backend/src/providers/gcp-iap/helpers.test.ts b/plugins/auth-backend/src/providers/gcp-iap/helpers.test.ts deleted file mode 100644 index 0162366f61..0000000000 --- a/plugins/auth-backend/src/providers/gcp-iap/helpers.test.ts +++ /dev/null @@ -1,134 +0,0 @@ -/* - * Copyright 2021 The Backstage Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import { ConflictError } from '@backstage/errors'; -import { OAuth2Client } from 'google-auth-library'; -import { createTokenValidator, parseRequestToken } from './helpers'; - -const validJwt = - 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6ImZvbyIsImlzcyI6ImZvbyJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.T2BNS4G-6RoiFnXc8Q8TiwdWzTpNitY8jcsGM3N3-Yo'; - -beforeEach(() => { - jest.clearAllMocks(); -}); - -describe('helpers', () => { - describe('createTokenValidator', () => { - it('runs the happy path', async () => { - const mockClient = { - getIapPublicKeys: async () => ({ pubkeys: '' }), - verifySignedJwtWithCertsAsync: async () => ({ - getPayload: () => ({ sub: 's', email: 'e@mail.com' }), - }), - }; - const validator = createTokenValidator( - 'a', - mockClient as unknown as OAuth2Client, - ); - await expect(validator(validJwt)).resolves.toMatchObject({ - sub: 's', - email: 'e@mail.com', - }); - }); - - it('throws if the client throws', async () => { - const mockClient = { - getIapPublicKeys: async () => { - throw new TypeError('bam'); - }, - }; - const validator = createTokenValidator( - 'a', - mockClient as unknown as OAuth2Client, - ); - await expect(validator(validJwt)).rejects.toThrow(TypeError); - }); - - it('rejects empty payload', async () => { - const mockClient = { - getIapPublicKeys: async () => ({ pubkeys: '' }), - verifySignedJwtWithCertsAsync: async () => ({ - getPayload: () => undefined, - }), - }; - const validator = createTokenValidator( - 'a', - mockClient as unknown as OAuth2Client, - ); - await expect(validator(validJwt)).rejects.toMatchObject({ - name: 'TypeError', - message: 'Token had no payload', - }); - }); - }); - - describe('parseRequestToken', () => { - it('runs the happy path', async () => { - await expect( - parseRequestToken( - validJwt, - async () => ({ sub: 's', email: 'e@mail.com' } as any), - ), - ).resolves.toMatchObject({ - iapToken: { - sub: 's', - email: 'e@mail.com', - }, - }); - }); - - it('rejects bad tokens', async () => { - await expect( - parseRequestToken(7, undefined as any), - ).rejects.toMatchObject({ - name: 'AuthenticationError', - message: 'Missing Google IAP header', - }); - await expect( - parseRequestToken(undefined, undefined as any), - ).rejects.toMatchObject({ - name: 'AuthenticationError', - message: 'Missing Google IAP header', - }); - await expect( - parseRequestToken('', undefined as any), - ).rejects.toMatchObject({ - name: 'AuthenticationError', - message: 'Missing Google IAP header', - }); - }); - - it('translates validator errors', async () => { - await expect( - parseRequestToken(validJwt, async () => { - throw new ConflictError('Ouch'); - }), - ).rejects.toMatchObject({ - name: 'AuthenticationError', - message: 'Google IAP token verification failed, ConflictError: Ouch', - }); - }); - - it('rejects bad token payloads', async () => { - await expect( - parseRequestToken(validJwt, async () => ({ sub: 'a' } as any)), - ).rejects.toMatchObject({ - name: 'AuthenticationError', - message: 'Google IAP token payload is missing sub and/or email claim', - }); - }); - }); -}); diff --git a/plugins/auth-backend/src/providers/gcp-iap/helpers.ts b/plugins/auth-backend/src/providers/gcp-iap/helpers.ts deleted file mode 100644 index 26d9a8c904..0000000000 --- a/plugins/auth-backend/src/providers/gcp-iap/helpers.ts +++ /dev/null @@ -1,82 +0,0 @@ -/* - * Copyright 2021 The Backstage Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import { AuthenticationError } from '@backstage/errors'; -import { OAuth2Client, TokenPayload } from 'google-auth-library'; -import { AuthHandler } from '../types'; -import { GcpIapResult } from './types'; - -export function createTokenValidator( - audience: string, - mockClient?: OAuth2Client, -): (token: string) => Promise { - const client = mockClient ?? new OAuth2Client(); - - return async function tokenValidator(token) { - // TODO(freben): Rate limit the public key reads. It may be sensible to - // cache these for some reasonable time rather than asking for the public - // keys on every single sign-in. But since the rate of events here is so - // slow, I decided to keep it simple for now. - const response = await client.getIapPublicKeys(); - const ticket = await client.verifySignedJwtWithCertsAsync( - token, - response.pubkeys, - audience, - ['https://cloud.google.com/iap'], - ); - - const payload = ticket.getPayload(); - if (!payload) { - throw new TypeError('Token had no payload'); - } - - return payload; - }; -} - -export async function parseRequestToken( - jwtToken: unknown, - tokenValidator: (token: string) => Promise, -): Promise { - if (typeof jwtToken !== 'string' || !jwtToken) { - throw new AuthenticationError('Missing Google IAP header'); - } - - let payload: TokenPayload; - try { - payload = await tokenValidator(jwtToken); - } catch (e) { - throw new AuthenticationError(`Google IAP token verification failed, ${e}`); - } - - if (!payload.sub || !payload.email) { - throw new AuthenticationError( - 'Google IAP token payload is missing sub and/or email claim', - ); - } - - return { - iapToken: { - ...payload, - sub: payload.sub, - email: payload.email, - }, - }; -} - -export const defaultAuthHandler: AuthHandler = async ({ - iapToken, -}) => ({ profile: { email: iapToken.email } }); diff --git a/yarn.lock b/yarn.lock index b974ad70d3..48b1c3999a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4576,6 +4576,22 @@ __metadata: languageName: unknown linkType: soft +"@backstage/plugin-auth-backend-module-gcp-iap-provider@workspace:plugins/auth-backend-module-gcp-iap-provider": + version: 0.0.0-use.local + resolution: "@backstage/plugin-auth-backend-module-gcp-iap-provider@workspace:plugins/auth-backend-module-gcp-iap-provider" + dependencies: + "@backstage/backend-plugin-api": "workspace:^" + "@backstage/backend-test-utils": "workspace:^" + "@backstage/cli": "workspace:^" + "@backstage/errors": "workspace:^" + "@backstage/plugin-auth-node": "workspace:^" + "@backstage/types": "workspace:^" + google-auth-library: ^8.0.0 + msw: ^1.0.0 + supertest: ^6.1.3 + languageName: unknown + linkType: soft + "@backstage/plugin-auth-backend-module-google-provider@workspace:plugins/auth-backend-module-google-provider": version: 0.0.0-use.local resolution: "@backstage/plugin-auth-backend-module-google-provider@workspace:plugins/auth-backend-module-google-provider" From a4d47d29adeca8566b98d9d80c1d88b0fdb05adb Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Mon, 7 Aug 2023 19:26:03 +0200 Subject: [PATCH 141/372] auth-backend: more deprecations in lib Signed-off-by: Patrik Oldsberg --- .../src/lib/flow/authFlowHelpers.ts | 10 ++++- plugins/auth-backend/src/lib/flow/types.ts | 16 ++----- plugins/auth-backend/src/lib/oauth/helpers.ts | 44 ++++++++----------- 3 files changed, 29 insertions(+), 41 deletions(-) diff --git a/plugins/auth-backend/src/lib/flow/authFlowHelpers.ts b/plugins/auth-backend/src/lib/flow/authFlowHelpers.ts index 94ac4fba15..2f1770a3d4 100644 --- a/plugins/auth-backend/src/lib/flow/authFlowHelpers.ts +++ b/plugins/auth-backend/src/lib/flow/authFlowHelpers.ts @@ -24,7 +24,10 @@ export const safelyEncodeURIComponent = (value: string) => { return encodeURIComponent(value).replace(/'/g, '%27'); }; -/** @public */ +/** + * @public + * @deprecated Use `sendWebMessageResponse` from `@backstage/plugin-auth-node` instead + */ export const postMessageResponse = ( res: express.Response, appOrigin: string, @@ -69,7 +72,10 @@ export const postMessageResponse = ( res.end(``); }; -/** @public */ +/** + * @public + * @deprecated Use inline logic to check that the `X-Requested-With` header is set to `'XMLHttpRequest'` instead. + */ export const ensuresXRequestedWith = (req: express.Request) => { const requiredHeader = req.header('X-Requested-With'); if (!requiredHeader || requiredHeader !== 'XMLHttpRequest') { diff --git a/plugins/auth-backend/src/lib/flow/types.ts b/plugins/auth-backend/src/lib/flow/types.ts index f67198a1b0..36f3033b21 100644 --- a/plugins/auth-backend/src/lib/flow/types.ts +++ b/plugins/auth-backend/src/lib/flow/types.ts @@ -14,20 +14,10 @@ * limitations under the License. */ -import { AuthResponse } from '../../providers/types'; +import { WebMessageResponse as _WebMessageResponse } from '@backstage/plugin-auth-node'; /** - * Payload sent as a post message after the auth request is complete. - * If successful then has a valid payload with Auth information else contains an error. - * * @public + * @deprecated import from `@backstage/plugin-auth-node` instead */ -export type WebMessageResponse = - | { - type: 'authorization_response'; - response: AuthResponse; - } - | { - type: 'authorization_response'; - error: Error; - }; +export type WebMessageResponse = _WebMessageResponse; diff --git a/plugins/auth-backend/src/lib/oauth/helpers.ts b/plugins/auth-backend/src/lib/oauth/helpers.ts index 2b4e50b477..5e67b072e3 100644 --- a/plugins/auth-backend/src/lib/oauth/helpers.ts +++ b/plugins/auth-backend/src/lib/oauth/helpers.ts @@ -16,36 +16,28 @@ import express from 'express'; import { OAuthState } from './types'; -import pickBy from 'lodash/pickBy'; import { CookieConfigurer } from '../../providers/types'; +import { + decodeOAuthState, + encodeOAuthState, +} from '@backstage/plugin-auth-node'; -/** @public */ -export const readState = (stateString: string): OAuthState => { - const state = Object.fromEntries( - new URLSearchParams(Buffer.from(stateString, 'hex').toString('utf-8')), - ); - if ( - !state.nonce || - !state.env || - state.nonce?.length === 0 || - state.env?.length === 0 - ) { - throw Error(`Invalid state passed via request`); - } +/** + * @public + * @deprecated Use `decodeOAuthState` from `@backstage/plugin-auth-node` instead + */ +export const readState = decodeOAuthState; - return state as OAuthState; -}; +/** + * @public + * @deprecated Use `encodeOAuthState` from `@backstage/plugin-auth-node` instead + */ +export const encodeState = encodeOAuthState; -/** @public */ -export const encodeState = (state: OAuthState): string => { - const stateString = new URLSearchParams( - pickBy(state, value => value !== undefined), - ).toString(); - - return Buffer.from(stateString, 'utf-8').toString('hex'); -}; - -/** @public */ +/** + * @public + * @deprecated Use inline logic to make sure the session and state nonce matches instead. + */ export const verifyNonce = (req: express.Request, providerId: string) => { const cookieNonce = req.cookies[`${providerId}-nonce`]; const state: OAuthState = readState(req.query.state?.toString() ?? ''); From 705ac88dcc91c0f9874c94c2c034f89aea118901 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Mon, 7 Aug 2023 19:37:08 +0200 Subject: [PATCH 142/372] auth-backend: added legacy authHandler transform Signed-off-by: Patrik Oldsberg --- plugins/auth-backend/src/index.ts | 3 + .../legacy/adaptLegacyOAuthHandler.test.ts | 61 +++++++++++++++++++ .../src/lib/legacy/adaptLegacyOAuthHandler.ts | 46 ++++++++++++++ plugins/auth-backend/src/lib/legacy/index.ts | 17 ++++++ 4 files changed, 127 insertions(+) create mode 100644 plugins/auth-backend/src/lib/legacy/adaptLegacyOAuthHandler.test.ts create mode 100644 plugins/auth-backend/src/lib/legacy/adaptLegacyOAuthHandler.ts create mode 100644 plugins/auth-backend/src/lib/legacy/index.ts diff --git a/plugins/auth-backend/src/index.ts b/plugins/auth-backend/src/index.ts index f8a8580359..cc6d460f3c 100644 --- a/plugins/auth-backend/src/index.ts +++ b/plugins/auth-backend/src/index.ts @@ -31,6 +31,9 @@ export * from './lib/flow'; // OAuth wrapper over a passport or a custom `strategy`. export * from './lib/oauth'; +// Helpers to convert new API in @backstage/plugin-auth-node to old API +export * from './lib/legacy'; + export * from './lib/catalog'; export { getDefaultOwnershipEntityRefs } from './lib/resolvers'; diff --git a/plugins/auth-backend/src/lib/legacy/adaptLegacyOAuthHandler.test.ts b/plugins/auth-backend/src/lib/legacy/adaptLegacyOAuthHandler.test.ts new file mode 100644 index 0000000000..5c5de6a890 --- /dev/null +++ b/plugins/auth-backend/src/lib/legacy/adaptLegacyOAuthHandler.test.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 { AuthResolverContext } from '@backstage/plugin-auth-node'; +import { AuthHandler } from '../../providers'; +import { OAuthResult } from '../oauth'; +import { PassportProfile } from '../passport/types'; +import { adaptLegacyOAuthHandler } from './adaptLegacyOAuthHandler'; + +describe('adaptLegacyOAuthHandler', () => { + it('should pass through undefined', () => { + expect(adaptLegacyOAuthHandler(undefined)).toBeUndefined(); + }); + + it('should convert an old auth handler to a new profile transform', () => { + const authHandler: AuthHandler = jest.fn(); + const profileTransform = adaptLegacyOAuthHandler(authHandler); + + profileTransform?.( + { + fullProfile: { id: 'id' } as PassportProfile, + session: { + accessToken: 'token', + expiresInSeconds: 3, + scope: 'sco pe', + tokenType: 'bear', + idToken: 'id-token', + refreshToken: 'refresh-token', + }, + }, + { ctx: 'ctx' } as unknown as AuthResolverContext, + ); + + expect(authHandler).toHaveBeenCalledWith( + { + fullProfile: { id: 'id' }, + accessToken: 'token', + params: { + scope: 'sco pe', + id_token: 'id-token', + expires_in: 3, + token_type: 'bear', + }, + }, + { ctx: 'ctx' }, + ); + }); +}); diff --git a/plugins/auth-backend/src/lib/legacy/adaptLegacyOAuthHandler.ts b/plugins/auth-backend/src/lib/legacy/adaptLegacyOAuthHandler.ts new file mode 100644 index 0000000000..3114306424 --- /dev/null +++ b/plugins/auth-backend/src/lib/legacy/adaptLegacyOAuthHandler.ts @@ -0,0 +1,46 @@ +/* + * 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 { + OAuthAuthenticatorResult, + ProfileTransform, +} from '@backstage/plugin-auth-node'; +import { AuthHandler } from '../../providers'; +import { OAuthResult } from '../oauth'; +import { PassportProfile } from '../passport/types'; + +/** @public */ +export function adaptLegacyOAuthHandler( + authHandler?: AuthHandler, +): ProfileTransform> | undefined { + return ( + authHandler && + (async (result, ctx) => + authHandler( + { + fullProfile: result.fullProfile, + accessToken: result.session.accessToken, + params: { + scope: result.session.scope, + id_token: result.session.idToken, + token_type: result.session.tokenType, + expires_in: result.session.expiresInSeconds, + }, + }, + ctx, + )) + ); +} diff --git a/plugins/auth-backend/src/lib/legacy/index.ts b/plugins/auth-backend/src/lib/legacy/index.ts new file mode 100644 index 0000000000..b05f9afdab --- /dev/null +++ b/plugins/auth-backend/src/lib/legacy/index.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 { adaptLegacyOAuthHandler } from './adaptLegacyOAuthHandler'; From 7d29ca8e8c364c4e0de99fd8b505a3b8389c24ad Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Mon, 7 Aug 2023 19:45:19 +0200 Subject: [PATCH 143/372] auth-backend: added legacy sign-in resolver transform Signed-off-by: Patrik Oldsberg --- .../adoptLegacyOAuthSignInResolver.test.ts | 69 +++++++++++++++++++ .../legacy/adoptLegacyOAuthSignInResolver.ts | 49 +++++++++++++ plugins/auth-backend/src/lib/legacy/index.ts | 1 + 3 files changed, 119 insertions(+) create mode 100644 plugins/auth-backend/src/lib/legacy/adoptLegacyOAuthSignInResolver.test.ts create mode 100644 plugins/auth-backend/src/lib/legacy/adoptLegacyOAuthSignInResolver.ts diff --git a/plugins/auth-backend/src/lib/legacy/adoptLegacyOAuthSignInResolver.test.ts b/plugins/auth-backend/src/lib/legacy/adoptLegacyOAuthSignInResolver.test.ts new file mode 100644 index 0000000000..ab18970918 --- /dev/null +++ b/plugins/auth-backend/src/lib/legacy/adoptLegacyOAuthSignInResolver.test.ts @@ -0,0 +1,69 @@ +/* + * 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 { + AuthResolverContext, + PassportProfile, +} from '@backstage/plugin-auth-node'; +import { adoptLegacyOAuthSignInResolver } from './adoptLegacyOAuthSignInResolver'; + +describe('adoptLegacyOAuthSignInResolver', () => { + it('should pass through undefined', () => { + expect(adoptLegacyOAuthSignInResolver(undefined)).toBeUndefined(); + }); + + it('should convert a legacy resolver to a new one', () => { + const legacyResolver = jest.fn(); + + const newResolver = adoptLegacyOAuthSignInResolver(legacyResolver); + + newResolver?.( + { + profile: { email: 'em@i.l' }, + result: { + fullProfile: { id: 'id' } as PassportProfile, + session: { + accessToken: 'token', + expiresInSeconds: 3, + scope: 'sco pe', + tokenType: 'bear', + idToken: 'id-token', + refreshToken: 'refresh-token', + }, + }, + }, + { ctx: 'ctx' } as unknown as AuthResolverContext, + ); + + expect(legacyResolver).toHaveBeenCalledWith( + { + profile: { email: 'em@i.l' }, + result: { + fullProfile: { id: 'id' }, + accessToken: 'token', + refreshToken: 'refresh-token', + params: { + scope: 'sco pe', + id_token: 'id-token', + expires_in: 3, + token_type: 'bear', + }, + }, + }, + { ctx: 'ctx' }, + ); + }); +}); diff --git a/plugins/auth-backend/src/lib/legacy/adoptLegacyOAuthSignInResolver.ts b/plugins/auth-backend/src/lib/legacy/adoptLegacyOAuthSignInResolver.ts new file mode 100644 index 0000000000..594c296374 --- /dev/null +++ b/plugins/auth-backend/src/lib/legacy/adoptLegacyOAuthSignInResolver.ts @@ -0,0 +1,49 @@ +/* + * 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 { + OAuthAuthenticatorResult, + PassportProfile, + SignInResolver, +} from '@backstage/plugin-auth-node'; +import { OAuthResult } from '../oauth'; + +/** @public */ +export function adoptLegacyOAuthSignInResolver( + signInResolver?: SignInResolver, +): SignInResolver> | undefined { + return ( + signInResolver && + (async (input, ctx) => + signInResolver( + { + profile: input.profile, + result: { + fullProfile: input.result.fullProfile, + accessToken: input.result.session.accessToken, + refreshToken: input.result.session.refreshToken, + params: { + scope: input.result.session.scope, + id_token: input.result.session.idToken, + token_type: input.result.session.tokenType, + expires_in: input.result.session.expiresInSeconds, + }, + }, + }, + ctx, + )) + ); +} diff --git a/plugins/auth-backend/src/lib/legacy/index.ts b/plugins/auth-backend/src/lib/legacy/index.ts index b05f9afdab..44bbae998c 100644 --- a/plugins/auth-backend/src/lib/legacy/index.ts +++ b/plugins/auth-backend/src/lib/legacy/index.ts @@ -15,3 +15,4 @@ */ export { adaptLegacyOAuthHandler } from './adaptLegacyOAuthHandler'; +export { adoptLegacyOAuthSignInResolver } from './adoptLegacyOAuthSignInResolver'; From 549dd6db1205a5e8bf9766ac253c97f86f091bbb Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Tue, 8 Aug 2023 10:04:59 +0200 Subject: [PATCH 144/372] auth-backend: added new to legacy sign-in resolvers transform Signed-off-by: Patrik Oldsberg --- .../adaptOAuthSignInResolverToLegacy.test.ts | 82 +++++++++++++++++++ .../adaptOAuthSignInResolverToLegacy.ts | 54 ++++++++++++ plugins/auth-backend/src/lib/legacy/index.ts | 1 + 3 files changed, 137 insertions(+) create mode 100644 plugins/auth-backend/src/lib/legacy/adaptOAuthSignInResolverToLegacy.test.ts create mode 100644 plugins/auth-backend/src/lib/legacy/adaptOAuthSignInResolverToLegacy.ts diff --git a/plugins/auth-backend/src/lib/legacy/adaptOAuthSignInResolverToLegacy.test.ts b/plugins/auth-backend/src/lib/legacy/adaptOAuthSignInResolverToLegacy.test.ts new file mode 100644 index 0000000000..37853d4840 --- /dev/null +++ b/plugins/auth-backend/src/lib/legacy/adaptOAuthSignInResolverToLegacy.test.ts @@ -0,0 +1,82 @@ +/* + * 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 { + AuthResolverContext, + PassportProfile, +} from '@backstage/plugin-auth-node'; +import { adaptOAuthSignInResolverToLegacy } from './adaptOAuthSignInResolverToLegacy'; + +describe('adaptOAuthSignInResolverToLegacy', () => { + it('should pass through an empty object', () => { + const legacyResolvers = adaptOAuthSignInResolverToLegacy({}); + expect(legacyResolvers).toEqual({}); + + // @ts-expect-error + legacyResolvers.missing?.(); + }); + + it('should adapt a collection of sign-in resolvers', () => { + const resolverA = jest.fn(); + const resolverB = jest.fn(); + + const legacyResolvers = adaptOAuthSignInResolverToLegacy({ + resolverA, + resolverB, + }); + + const legacyResolverA = legacyResolvers.resolverA(); + legacyResolverA( + { + profile: { email: 'em@i.l' }, + result: { + fullProfile: { id: 'id' } as PassportProfile, + accessToken: 'token', + refreshToken: 'refresh-token', + params: { + scope: 'sco pe', + id_token: 'id-token', + expires_in: 3, + token_type: 'bear', + }, + }, + }, + { ctx: 'ctx' } as unknown as AuthResolverContext, + ); + + expect(resolverA).toHaveBeenCalledWith( + { + profile: { email: 'em@i.l' }, + result: { + fullProfile: { id: 'id' } as PassportProfile, + session: { + accessToken: 'token', + expiresInSeconds: 3, + scope: 'sco pe', + tokenType: 'bear', + idToken: 'id-token', + refreshToken: 'refresh-token', + }, + }, + }, + { ctx: 'ctx' }, + ); + + expect(resolverB).not.toHaveBeenCalled(); + legacyResolvers.resolverB()({} as any, {} as any); + expect(resolverB).toHaveBeenCalled(); + }); +}); diff --git a/plugins/auth-backend/src/lib/legacy/adaptOAuthSignInResolverToLegacy.ts b/plugins/auth-backend/src/lib/legacy/adaptOAuthSignInResolverToLegacy.ts new file mode 100644 index 0000000000..43b8fa2e9a --- /dev/null +++ b/plugins/auth-backend/src/lib/legacy/adaptOAuthSignInResolverToLegacy.ts @@ -0,0 +1,54 @@ +/* + * 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 { + OAuthAuthenticatorResult, + PassportProfile, + SignInResolver, +} from '@backstage/plugin-auth-node'; +import { OAuthResult } from '../oauth'; + +export function adaptOAuthSignInResolverToLegacy< + TKeys extends string, +>(resolvers: { + [key in TKeys]: SignInResolver>; +}): { [key in TKeys]: () => SignInResolver } { + const legacyResolvers = {} as { + [key in TKeys]: () => SignInResolver; + }; + for (const name of Object.keys(resolvers) as TKeys[]) { + const resolver = resolvers[name]; + legacyResolvers[name] = () => async (input, ctx) => + resolver( + { + profile: input.profile, + result: { + fullProfile: input.result.fullProfile, + session: { + accessToken: input.result.accessToken, + expiresInSeconds: input.result.params.expires_in, + scope: input.result.params.scope, + idToken: input.result.params.id_token, + tokenType: input.result.params.token_type ?? 'bearer', + refreshToken: input.result.refreshToken, + }, + }, + }, + ctx, + ); + } + return legacyResolvers; +} diff --git a/plugins/auth-backend/src/lib/legacy/index.ts b/plugins/auth-backend/src/lib/legacy/index.ts index 44bbae998c..dcff046ded 100644 --- a/plugins/auth-backend/src/lib/legacy/index.ts +++ b/plugins/auth-backend/src/lib/legacy/index.ts @@ -16,3 +16,4 @@ export { adaptLegacyOAuthHandler } from './adaptLegacyOAuthHandler'; export { adoptLegacyOAuthSignInResolver } from './adoptLegacyOAuthSignInResolver'; +export { adaptOAuthSignInResolverToLegacy } from './adaptOAuthSignInResolverToLegacy'; From 23a8fa50251fcedf1344cb5213965c39d9c048ba Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Tue, 8 Aug 2023 10:07:53 +0200 Subject: [PATCH 145/372] auth-backend: spelling fix Signed-off-by: Patrik Oldsberg --- ...ver.test.ts => adaptLegacyOAuthSignInResolver.test.ts} | 8 ++++---- ...ignInResolver.ts => adaptLegacyOAuthSignInResolver.ts} | 2 +- plugins/auth-backend/src/lib/legacy/index.ts | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) rename plugins/auth-backend/src/lib/legacy/{adoptLegacyOAuthSignInResolver.test.ts => adaptLegacyOAuthSignInResolver.test.ts} (88%) rename plugins/auth-backend/src/lib/legacy/{adoptLegacyOAuthSignInResolver.ts => adaptLegacyOAuthSignInResolver.ts} (96%) diff --git a/plugins/auth-backend/src/lib/legacy/adoptLegacyOAuthSignInResolver.test.ts b/plugins/auth-backend/src/lib/legacy/adaptLegacyOAuthSignInResolver.test.ts similarity index 88% rename from plugins/auth-backend/src/lib/legacy/adoptLegacyOAuthSignInResolver.test.ts rename to plugins/auth-backend/src/lib/legacy/adaptLegacyOAuthSignInResolver.test.ts index ab18970918..749cf96cbb 100644 --- a/plugins/auth-backend/src/lib/legacy/adoptLegacyOAuthSignInResolver.test.ts +++ b/plugins/auth-backend/src/lib/legacy/adaptLegacyOAuthSignInResolver.test.ts @@ -18,17 +18,17 @@ import { AuthResolverContext, PassportProfile, } from '@backstage/plugin-auth-node'; -import { adoptLegacyOAuthSignInResolver } from './adoptLegacyOAuthSignInResolver'; +import { adaptLegacyOAuthSignInResolver } from './adaptLegacyOAuthSignInResolver'; -describe('adoptLegacyOAuthSignInResolver', () => { +describe('adaptLegacyOAuthSignInResolver', () => { it('should pass through undefined', () => { - expect(adoptLegacyOAuthSignInResolver(undefined)).toBeUndefined(); + expect(adaptLegacyOAuthSignInResolver(undefined)).toBeUndefined(); }); it('should convert a legacy resolver to a new one', () => { const legacyResolver = jest.fn(); - const newResolver = adoptLegacyOAuthSignInResolver(legacyResolver); + const newResolver = adaptLegacyOAuthSignInResolver(legacyResolver); newResolver?.( { diff --git a/plugins/auth-backend/src/lib/legacy/adoptLegacyOAuthSignInResolver.ts b/plugins/auth-backend/src/lib/legacy/adaptLegacyOAuthSignInResolver.ts similarity index 96% rename from plugins/auth-backend/src/lib/legacy/adoptLegacyOAuthSignInResolver.ts rename to plugins/auth-backend/src/lib/legacy/adaptLegacyOAuthSignInResolver.ts index 594c296374..02056c0517 100644 --- a/plugins/auth-backend/src/lib/legacy/adoptLegacyOAuthSignInResolver.ts +++ b/plugins/auth-backend/src/lib/legacy/adaptLegacyOAuthSignInResolver.ts @@ -22,7 +22,7 @@ import { import { OAuthResult } from '../oauth'; /** @public */ -export function adoptLegacyOAuthSignInResolver( +export function adaptLegacyOAuthSignInResolver( signInResolver?: SignInResolver, ): SignInResolver> | undefined { return ( diff --git a/plugins/auth-backend/src/lib/legacy/index.ts b/plugins/auth-backend/src/lib/legacy/index.ts index dcff046ded..8bd8b5c62e 100644 --- a/plugins/auth-backend/src/lib/legacy/index.ts +++ b/plugins/auth-backend/src/lib/legacy/index.ts @@ -15,5 +15,5 @@ */ export { adaptLegacyOAuthHandler } from './adaptLegacyOAuthHandler'; -export { adoptLegacyOAuthSignInResolver } from './adoptLegacyOAuthSignInResolver'; +export { adaptLegacyOAuthSignInResolver } from './adaptLegacyOAuthSignInResolver'; export { adaptOAuthSignInResolverToLegacy } from './adaptOAuthSignInResolverToLegacy'; From 647929a483e3e4702218fe4110cb45ef8272d36e Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Tue, 8 Aug 2023 10:12:07 +0200 Subject: [PATCH 146/372] auth-backend: migrate google provider to use new system Signed-off-by: Patrik Oldsberg --- plugins/auth-backend/package.json | 1 + .../src/providers/google/provider.ts | 238 ++---------------- yarn.lock | 3 +- 3 files changed, 28 insertions(+), 214 deletions(-) diff --git a/plugins/auth-backend/package.json b/plugins/auth-backend/package.json index 6bbf6c901c..7d24f9d64d 100644 --- a/plugins/auth-backend/package.json +++ b/plugins/auth-backend/package.json @@ -38,6 +38,7 @@ "@backstage/catalog-model": "workspace:^", "@backstage/config": "workspace:^", "@backstage/errors": "workspace:^", + "@backstage/plugin-auth-backend-module-google-provider": "workspace:^", "@backstage/plugin-auth-node": "workspace:^", "@backstage/types": "workspace:^", "@davidzemon/passport-okta-oauth": "^0.0.5", diff --git a/plugins/auth-backend/src/providers/google/provider.ts b/plugins/auth-backend/src/providers/google/provider.ts index afe5c27f6b..d467977094 100644 --- a/plugins/auth-backend/src/providers/google/provider.ts +++ b/plugins/auth-backend/src/providers/google/provider.ts @@ -14,166 +14,22 @@ * limitations under the License. */ -import express from 'express'; -import passport from 'passport'; -import { OAuth2Client } from 'google-auth-library'; -import { Strategy as GoogleStrategy } from 'passport-google-oauth20'; import { - encodeState, - OAuthAdapter, - OAuthEnvironmentHandler, - OAuthHandlers, - OAuthProviderOptions, - OAuthRefreshRequest, - OAuthResponse, - OAuthResult, - OAuthStartRequest, - OAuthLogoutRequest, -} from '../../lib/oauth'; + googleAuthenticator, + googleSignInResolvers, +} from '@backstage/plugin-auth-backend-module-google-provider'; import { - executeFetchUserProfileStrategy, - executeFrameHandlerStrategy, - executeRedirectStrategy, - executeRefreshTokenStrategy, - makeProfileInfo, - PassportDoneCallback, -} from '../../lib/passport'; + commonSignInResolvers, + createOAuthProviderFactory, +} from '@backstage/plugin-auth-node'; import { - AuthHandler, - AuthResolverContext, - OAuthStartResponse, - SignInResolver, -} from '../types'; + adaptLegacyOAuthHandler, + adaptLegacyOAuthSignInResolver, + adaptOAuthSignInResolverToLegacy, +} from '../../lib/legacy'; +import { OAuthResult } from '../../lib/oauth'; import { createAuthProviderIntegration } from '../createAuthProviderIntegration'; -import { - commonByEmailLocalPartResolver, - commonByEmailResolver, -} from '../resolvers'; - -type PrivateInfo = { - refreshToken: string; -}; - -type Options = OAuthProviderOptions & { - signInResolver?: SignInResolver; - authHandler: AuthHandler; - resolverContext: AuthResolverContext; -}; - -export class GoogleAuthProvider implements OAuthHandlers { - private readonly strategy: GoogleStrategy; - private readonly signInResolver?: SignInResolver; - private readonly authHandler: AuthHandler; - private readonly resolverContext: AuthResolverContext; - - constructor(options: Options) { - this.authHandler = options.authHandler; - this.signInResolver = options.signInResolver; - this.resolverContext = options.resolverContext; - this.strategy = new GoogleStrategy( - { - clientID: options.clientId, - clientSecret: options.clientSecret, - callbackURL: options.callbackUrl, - passReqToCallback: false, - }, - ( - accessToken: any, - refreshToken: any, - params: any, - fullProfile: passport.Profile, - done: PassportDoneCallback, - ) => { - done( - undefined, - { - fullProfile, - params, - accessToken, - refreshToken, - }, - { - refreshToken, - }, - ); - }, - ); - } - - async start(req: OAuthStartRequest): Promise { - return await executeRedirectStrategy(req, this.strategy, { - accessType: 'offline', - prompt: 'consent', - scope: req.scope, - state: encodeState(req.state), - }); - } - - async handler(req: express.Request) { - const { result, privateInfo } = await executeFrameHandlerStrategy< - OAuthResult, - PrivateInfo - >(req, this.strategy); - - return { - response: await this.handleResult(result), - refreshToken: privateInfo.refreshToken, - }; - } - - async logout(req: OAuthLogoutRequest) { - const oauthClient = new OAuth2Client(); - await oauthClient.revokeToken(req.refreshToken); - } - - async refresh(req: OAuthRefreshRequest) { - const { accessToken, refreshToken, params } = - await executeRefreshTokenStrategy( - this.strategy, - req.refreshToken, - req.scope, - ); - const fullProfile = await executeFetchUserProfileStrategy( - this.strategy, - accessToken, - ); - - return { - response: await this.handleResult({ - fullProfile, - params, - accessToken, - }), - refreshToken, - }; - } - - private async handleResult(result: OAuthResult) { - const { profile } = await this.authHandler(result, this.resolverContext); - - const response: OAuthResponse = { - providerInfo: { - idToken: result.params.id_token, - accessToken: result.accessToken, - scope: result.params.scope, - expiresInSeconds: result.params.expires_in, - }, - profile, - }; - - if (this.signInResolver) { - response.backstageIdentity = await this.signInResolver( - { - result, - profile, - }, - this.resolverContext, - ); - } - - return response; - } -} +import { AuthHandler, SignInResolver } from '../types'; /** * Auth provider integration for Google auth @@ -198,62 +54,18 @@ export const google = createAuthProviderIntegration({ resolver: SignInResolver; }; }) { - return ({ providerId, globalConfig, config, resolverContext }) => - OAuthEnvironmentHandler.mapConfig(config, envConfig => { - const clientId = envConfig.getString('clientId'); - const clientSecret = envConfig.getString('clientSecret'); - const customCallbackUrl = envConfig.getOptionalString('callbackUrl'); - const callbackUrl = - customCallbackUrl || - `${globalConfig.baseUrl}/${providerId}/handler/frame`; - - const authHandler: AuthHandler = options?.authHandler - ? options.authHandler - : async ({ fullProfile, params }) => ({ - profile: makeProfileInfo(fullProfile, params.id_token), - }); - - const provider = new GoogleAuthProvider({ - clientId, - clientSecret, - callbackUrl, - signInResolver: options?.signIn?.resolver, - authHandler, - resolverContext, - }); - - return OAuthAdapter.fromConfig(globalConfig, provider, { - providerId, - callbackUrl, - }); - }); - }, - resolvers: { - /** - * Looks up the user by matching their email local part to the entity name. - */ - emailLocalPartMatchingUserEntityName: () => commonByEmailLocalPartResolver, - /** - * Looks up the user by matching their email to the entity email. - */ - emailMatchingUserEntityProfileEmail: () => commonByEmailResolver, - /** - * Looks up the user by matching their email to the `google.com/email` annotation. - */ - emailMatchingUserEntityAnnotation(): SignInResolver { - return async (info, ctx) => { - const { profile } = info; - - if (!profile.email) { - throw new Error('Google profile contained no email'); - } - - return ctx.signInWithCatalogUser({ - annotations: { - 'google.com/email': profile.email, - }, - }); - }; - }, + return createOAuthProviderFactory({ + authenticator: googleAuthenticator, + profileTransform: adaptLegacyOAuthHandler(options?.authHandler), + signInResolver: adaptLegacyOAuthSignInResolver(options?.signIn?.resolver), + }); }, + resolvers: adaptOAuthSignInResolverToLegacy({ + emailLocalPartMatchingUserEntityName: + commonSignInResolvers.emailLocalPartMatchingUserEntityName(), + emailMatchingUserEntityProfileEmail: + commonSignInResolvers.emailMatchingUserEntityProfileEmail(), + emailMatchingUserEntityAnnotation: + googleSignInResolvers.emailMatchingUserEntityAnnotation(), + }), }); diff --git a/yarn.lock b/yarn.lock index 48b1c3999a..9f9ef97744 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4592,7 +4592,7 @@ __metadata: languageName: unknown linkType: soft -"@backstage/plugin-auth-backend-module-google-provider@workspace:plugins/auth-backend-module-google-provider": +"@backstage/plugin-auth-backend-module-google-provider@workspace:^, @backstage/plugin-auth-backend-module-google-provider@workspace:plugins/auth-backend-module-google-provider": version: 0.0.0-use.local resolution: "@backstage/plugin-auth-backend-module-google-provider@workspace:plugins/auth-backend-module-google-provider" dependencies: @@ -4620,6 +4620,7 @@ __metadata: "@backstage/cli": "workspace:^" "@backstage/config": "workspace:^" "@backstage/errors": "workspace:^" + "@backstage/plugin-auth-backend-module-google-provider": "workspace:^" "@backstage/plugin-auth-node": "workspace:^" "@backstage/types": "workspace:^" "@davidzemon/passport-okta-oauth": ^0.0.5 From 9aeb35adce9d8b30a0335f0bcac03899a09d9c37 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Tue, 8 Aug 2023 11:14:14 +0200 Subject: [PATCH 147/372] auth-backend: migrate gcp-iap provider to use new system Signed-off-by: Patrik Oldsberg --- .../src/index.ts | 1 + plugins/auth-backend/package.json | 1 + .../src/providers/gcp-iap/provider.ts | 88 ++----------------- .../src/providers/gcp-iap/types.ts | 50 ++--------- yarn.lock | 3 +- 5 files changed, 21 insertions(+), 122 deletions(-) diff --git a/plugins/auth-backend-module-gcp-iap-provider/src/index.ts b/plugins/auth-backend-module-gcp-iap-provider/src/index.ts index 50ea1cb2af..be6626a815 100644 --- a/plugins/auth-backend-module-gcp-iap-provider/src/index.ts +++ b/plugins/auth-backend-module-gcp-iap-provider/src/index.ts @@ -17,3 +17,4 @@ export { gcpIapAuthenticator } from './authenticator'; export { authModuleGcpIapProvider } from './module'; export { gcpIapSignInResolvers } from './resolvers'; +export { type GcpIapResult, type GcpIapTokenInfo } from './types'; diff --git a/plugins/auth-backend/package.json b/plugins/auth-backend/package.json index 7d24f9d64d..2cacfb67f1 100644 --- a/plugins/auth-backend/package.json +++ b/plugins/auth-backend/package.json @@ -38,6 +38,7 @@ "@backstage/catalog-model": "workspace:^", "@backstage/config": "workspace:^", "@backstage/errors": "workspace:^", + "@backstage/plugin-auth-backend-module-gcp-iap-provider": "workspace:^", "@backstage/plugin-auth-backend-module-google-provider": "workspace:^", "@backstage/plugin-auth-node": "workspace:^", "@backstage/types": "workspace:^", diff --git a/plugins/auth-backend/src/providers/gcp-iap/provider.ts b/plugins/auth-backend/src/providers/gcp-iap/provider.ts index 7e77853737..db4d9195b2 100644 --- a/plugins/auth-backend/src/providers/gcp-iap/provider.ts +++ b/plugins/auth-backend/src/providers/gcp-iap/provider.ts @@ -14,70 +14,11 @@ * limitations under the License. */ -import express from 'express'; -import { TokenPayload } from 'google-auth-library'; +import { gcpIapAuthenticator } from '@backstage/plugin-auth-backend-module-gcp-iap-provider'; +import { createProxyAuthProviderFactory } from '@backstage/plugin-auth-node'; import { createAuthProviderIntegration } from '../createAuthProviderIntegration'; -import { prepareBackstageIdentityResponse } from '../prepareBackstageIdentityResponse'; -import { - AuthHandler, - AuthProviderRouteHandlers, - AuthResolverContext, - SignInResolver, -} from '../types'; -import { - createTokenValidator, - defaultAuthHandler, - parseRequestToken, -} from './helpers'; -import { GcpIapResponse, GcpIapResult, DEFAULT_IAP_JWT_HEADER } from './types'; - -export class GcpIapProvider implements AuthProviderRouteHandlers { - private readonly authHandler: AuthHandler; - private readonly signInResolver: SignInResolver; - private readonly tokenValidator: (token: string) => Promise; - private readonly resolverContext: AuthResolverContext; - private readonly jwtHeader: string; - - constructor(options: { - authHandler: AuthHandler; - signInResolver: SignInResolver; - tokenValidator: (token: string) => Promise; - resolverContext: AuthResolverContext; - jwtHeader?: string; - }) { - this.authHandler = options.authHandler; - this.signInResolver = options.signInResolver; - this.tokenValidator = options.tokenValidator; - this.resolverContext = options.resolverContext; - this.jwtHeader = options?.jwtHeader || DEFAULT_IAP_JWT_HEADER; - } - - async start() {} - - async frameHandler() {} - - async refresh(req: express.Request, res: express.Response): Promise { - const result = await parseRequestToken( - req.header(this.jwtHeader), - this.tokenValidator, - ); - - const { profile } = await this.authHandler(result, this.resolverContext); - - const backstageIdentity = await this.signInResolver( - { profile, result }, - this.resolverContext, - ); - - const response: GcpIapResponse = { - providerInfo: { iapToken: result.iapToken }, - profile, - backstageIdentity: prepareBackstageIdentityResponse(backstageIdentity), - }; - - res.json(response); - } -} +import { AuthHandler, SignInResolver } from '../types'; +import { GcpIapResult } from './types'; /** * Auth provider integration for Google Identity-Aware Proxy auth @@ -104,21 +45,10 @@ export const gcpIap = createAuthProviderIntegration({ resolver: SignInResolver; }; }) { - return ({ config, resolverContext }) => { - const audience = config.getString('audience'); - const jwtHeader = config.getOptionalString('jwtHeader'); - - const authHandler = options.authHandler ?? defaultAuthHandler; - const signInResolver = options.signIn.resolver; - const tokenValidator = createTokenValidator(audience); - - return new GcpIapProvider({ - authHandler, - signInResolver, - tokenValidator, - resolverContext, - jwtHeader, - }); - }; + return createProxyAuthProviderFactory({ + authenticator: gcpIapAuthenticator, + profileTransform: options?.authHandler, + signInResolver: options?.signIn?.resolver, + }); }, }); diff --git a/plugins/auth-backend/src/providers/gcp-iap/types.ts b/plugins/auth-backend/src/providers/gcp-iap/types.ts index 6519de64ac..0a88979323 100644 --- a/plugins/auth-backend/src/providers/gcp-iap/types.ts +++ b/plugins/auth-backend/src/providers/gcp-iap/types.ts @@ -14,58 +14,24 @@ * limitations under the License. */ -import { JsonValue } from '@backstage/types'; -import { AuthResponse } from '../types'; - -/** - * The header name used by the IAP. - */ -export const DEFAULT_IAP_JWT_HEADER = 'x-goog-iap-jwt-assertion'; +import { + GcpIapTokenInfo as _GcpIapTokenInfo, + GcpIapResult as _GcpIapResult, +} from '@backstage/plugin-auth-backend-module-gcp-iap-provider'; /** * The data extracted from an IAP token. * * @public + * @deprecated import from `@backstage/plugin-auth-backend-module-gcp-iap-provider` instead */ -export type GcpIapTokenInfo = { - /** - * The unique, stable identifier for the user. - */ - sub: string; - /** - * User email address. - */ - email: string; - /** - * Other fields. - */ - [key: string]: JsonValue; -}; +export type GcpIapTokenInfo = _GcpIapTokenInfo; /** * The result of the initial auth challenge. This is the input to the auth * callbacks. * * @public + * @deprecated */ -export type GcpIapResult = { - /** - * The data extracted from the IAP token header. - */ - iapToken: GcpIapTokenInfo; -}; - -/** - * The provider info to return to the frontend. - */ -export type GcpIapProviderInfo = { - /** - * The data extracted from the IAP token header. - */ - iapToken: GcpIapTokenInfo; -}; - -/** - * The shape of the response to return to callers. - */ -export type GcpIapResponse = AuthResponse; +export type GcpIapResult = _GcpIapResult; diff --git a/yarn.lock b/yarn.lock index 9f9ef97744..986fcb0c09 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4576,7 +4576,7 @@ __metadata: languageName: unknown linkType: soft -"@backstage/plugin-auth-backend-module-gcp-iap-provider@workspace:plugins/auth-backend-module-gcp-iap-provider": +"@backstage/plugin-auth-backend-module-gcp-iap-provider@workspace:^, @backstage/plugin-auth-backend-module-gcp-iap-provider@workspace:plugins/auth-backend-module-gcp-iap-provider": version: 0.0.0-use.local resolution: "@backstage/plugin-auth-backend-module-gcp-iap-provider@workspace:plugins/auth-backend-module-gcp-iap-provider" dependencies: @@ -4620,6 +4620,7 @@ __metadata: "@backstage/cli": "workspace:^" "@backstage/config": "workspace:^" "@backstage/errors": "workspace:^" + "@backstage/plugin-auth-backend-module-gcp-iap-provider": "workspace:^" "@backstage/plugin-auth-backend-module-google-provider": "workspace:^" "@backstage/plugin-auth-node": "workspace:^" "@backstage/types": "workspace:^" From 0d078740e85dbdd2f8891a7076dbb5814ffe3982 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Tue, 8 Aug 2023 11:30:49 +0200 Subject: [PATCH 148/372] auth-backend: move gcp-iap provider test Signed-off-by: Patrik Oldsberg --- .../package.json | 1 + .../src/authenticator.test.ts | 91 +++++++++++++++++++ .../src/providers/gcp-iap/provider.test.ts | 75 --------------- yarn.lock | 3 +- 4 files changed, 94 insertions(+), 76 deletions(-) create mode 100644 plugins/auth-backend-module-gcp-iap-provider/src/authenticator.test.ts delete mode 100644 plugins/auth-backend/src/providers/gcp-iap/provider.test.ts diff --git a/plugins/auth-backend-module-gcp-iap-provider/package.json b/plugins/auth-backend-module-gcp-iap-provider/package.json index 93c47f2706..9c073a6cb8 100644 --- a/plugins/auth-backend-module-gcp-iap-provider/package.json +++ b/plugins/auth-backend-module-gcp-iap-provider/package.json @@ -41,6 +41,7 @@ "devDependencies": { "@backstage/backend-test-utils": "workspace:^", "@backstage/cli": "workspace:^", + "express": "^4.18.2", "msw": "^1.0.0", "supertest": "^6.1.3" }, diff --git a/plugins/auth-backend-module-gcp-iap-provider/src/authenticator.test.ts b/plugins/auth-backend-module-gcp-iap-provider/src/authenticator.test.ts new file mode 100644 index 0000000000..51efbe1a04 --- /dev/null +++ b/plugins/auth-backend-module-gcp-iap-provider/src/authenticator.test.ts @@ -0,0 +1,91 @@ +/* + * Copyright 2020 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { mockServices } from '@backstage/backend-test-utils'; +import { Request } from 'express'; +import { gcpIapAuthenticator } from './authenticator'; + +beforeEach(() => { + jest.clearAllMocks(); +}); +jest.mock('./helpers', () => ({ + createTokenValidator() { + return async () => ({ sub: 's', email: 'e' }); + }, +})); + +describe('GcpIapProvider', () => { + it('should find default JWT header', async () => { + const ctx = await gcpIapAuthenticator.initialize({ + config: mockServices.rootConfig({ data: { audience: 'my-audience' } }), + }); + await expect( + gcpIapAuthenticator.authenticate( + { + req: { + header(name: string) { + return name === 'x-goog-iap-jwt-assertion' + ? 'my-token' + : undefined; + }, + } as Request, + }, + ctx, + ), + ).resolves.toEqual({ result: { iapToken: { sub: 's', email: 'e' } } }); + }); + + it('should find custom JWT header', async () => { + const jwtHeader = 'x-custom-header'; + const ctx = await gcpIapAuthenticator.initialize({ + config: mockServices.rootConfig({ + data: { audience: 'my-audience', jwtHeader }, + }), + }); + await expect( + gcpIapAuthenticator.authenticate( + { + req: { + header(name: string) { + return name === jwtHeader ? 'my-token' : undefined; + }, + } as Request, + }, + ctx, + ), + ).resolves.toEqual({ result: { iapToken: { sub: 's', email: 'e' } } }); + }); + + it('should throw if header is missing', async () => { + const ctx = await gcpIapAuthenticator.initialize({ + config: mockServices.rootConfig({ + data: { audience: 'my-audience' }, + }), + }); + await expect( + gcpIapAuthenticator.authenticate( + { + req: { + header(_name: string) { + return undefined; + }, + } as Request, + }, + ctx, + ), + ).rejects.toThrow('Missing Google IAP header'); + }); +}); diff --git a/plugins/auth-backend/src/providers/gcp-iap/provider.test.ts b/plugins/auth-backend/src/providers/gcp-iap/provider.test.ts deleted file mode 100644 index c01db3a853..0000000000 --- a/plugins/auth-backend/src/providers/gcp-iap/provider.test.ts +++ /dev/null @@ -1,75 +0,0 @@ -/* - * Copyright 2020 The Backstage Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import express from 'express'; -import request from 'supertest'; -import { AuthResolverContext } from '../types'; -import { GcpIapProvider } from './provider'; -import { DEFAULT_IAP_JWT_HEADER } from './types'; - -beforeEach(() => { - jest.clearAllMocks(); -}); - -describe('GcpIapProvider', () => { - const authHandler = jest.fn(); - const signInResolver = jest.fn(); - const tokenValidator = jest.fn(); - - it.each([undefined, 'x-custom-header'])( - 'runs the happy path', - async jwtHeader => { - const provider = new GcpIapProvider({ - authHandler, - signInResolver, - tokenValidator, - resolverContext: {} as AuthResolverContext, - jwtHeader: jwtHeader, - }); - - // { "sub": "user:default/me", "ent": ["group:default/home"] } - const backstageToken = - 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJ1c2VyOmRlZmF1bHQvbWUiLCJlbnQiOlsiZ3JvdXA6ZGVmYXVsdC9ob21lIl19.CbmAKzFErGmtsnpRxyPc7dHv7WEjb5lY6206YCzR_Rc'; - const iapToken = { sub: 's', email: 'e@mail.com' }; - - authHandler.mockResolvedValueOnce({ email: 'e@mail.com' }); - signInResolver.mockResolvedValueOnce({ token: backstageToken }); - tokenValidator.mockResolvedValueOnce(iapToken); - - const app = express(); - app.use('/refresh', provider.refresh.bind(provider)); - - const header = jwtHeader || DEFAULT_IAP_JWT_HEADER; - const response = await request(app).get('/refresh').set(header, 'token'); - - expect(response.status).toBe(200); - expect(response.get('content-type')).toBe( - 'application/json; charset=utf-8', - ); - expect(response.body).toEqual({ - backstageIdentity: { - token: backstageToken, - identity: { - type: 'user', - userEntityRef: 'user:default/me', - ownershipEntityRefs: ['group:default/home'], - }, - }, - providerInfo: { iapToken }, - }); - }, - ); -}); diff --git a/yarn.lock b/yarn.lock index 986fcb0c09..2a561a603f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4586,6 +4586,7 @@ __metadata: "@backstage/errors": "workspace:^" "@backstage/plugin-auth-node": "workspace:^" "@backstage/types": "workspace:^" + express: ^4.18.2 google-auth-library: ^8.0.0 msw: ^1.0.0 supertest: ^6.1.3 @@ -25460,7 +25461,7 @@ __metadata: languageName: node linkType: hard -"express@npm:^4.17.1, express@npm:^4.17.3, express@npm:^4.18.1": +"express@npm:^4.17.1, express@npm:^4.17.3, express@npm:^4.18.1, express@npm:^4.18.2": version: 4.18.2 resolution: "express@npm:4.18.2" dependencies: From 7ab7ad5c79b9ca4d6a32ff32cb57f42f17e691c7 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Tue, 8 Aug 2023 12:48:29 +0200 Subject: [PATCH 149/372] auth-backend: refactor google provider tests Signed-off-by: Patrik Oldsberg --- .../src/providers/google/provider.test.ts | 109 ++++++++---------- 1 file changed, 46 insertions(+), 63 deletions(-) diff --git a/plugins/auth-backend/src/providers/google/provider.test.ts b/plugins/auth-backend/src/providers/google/provider.test.ts index 3c0b367be2..abde2b66d1 100644 --- a/plugins/auth-backend/src/providers/google/provider.test.ts +++ b/plugins/auth-backend/src/providers/google/provider.test.ts @@ -14,74 +14,57 @@ * limitations under the License. */ -import { GoogleAuthProvider } from './provider'; -import * as helpers from '../../lib/passport/PassportStrategyHelper'; -import { OAuthResult } from '../../lib/oauth'; -import { AuthResolverContext } from '../types'; +import { googleAuthenticator } from '@backstage/plugin-auth-backend-module-google-provider'; +import { createOAuthProviderFactory } from '@backstage/plugin-auth-node'; +import { google } from './provider'; -jest.mock('../../lib/passport/PassportStrategyHelper', () => { - return { - executeFrameHandlerStrategy: jest.fn(), - executeRefreshTokenStrategy: jest.fn(), - executeFetchUserProfileStrategy: jest.fn(), - }; -}); - -const mockFrameHandler = jest.spyOn( - helpers, - 'executeFrameHandlerStrategy', -) as unknown as jest.MockedFunction< - () => Promise<{ result: OAuthResult; privateInfo: any }> ->; +jest.mock('@backstage/plugin-auth-node', () => ({ + ...jest.requireActual('@backstage/plugin-auth-node'), + createOAuthProviderFactory: jest.fn(() => 'provider-factory'), +})); describe('createGoogleProvider', () => { - it('should auth', async () => { - const provider = new GoogleAuthProvider({ - resolverContext: {} as AuthResolverContext, - authHandler: async ({ fullProfile }) => ({ - profile: { - email: fullProfile.emails![0]!.value, - displayName: fullProfile.displayName, - picture: 'http://google.com/lols', - }, - }), - clientId: 'mock', - clientSecret: 'mock', - callbackUrl: 'mock', - }); + afterEach(() => jest.clearAllMocks()); - mockFrameHandler.mockResolvedValueOnce({ - result: { - fullProfile: { - emails: [{ value: 'conrad@example.com' }], - displayName: 'Conrad', - id: 'conrad', - provider: 'google', - }, - params: { - id_token: 'idToken', - scope: 'scope', - expires_in: 123, - }, - accessToken: 'accessToken', - }, - privateInfo: { - refreshToken: 'wacka', - }, + it('should be created', async () => { + expect(google.create()).toBe('provider-factory'); + + expect(createOAuthProviderFactory).toHaveBeenCalledWith({ + authenticator: googleAuthenticator, }); - const { response } = await provider.handler({} as any); - expect(response).toEqual({ - providerInfo: { - accessToken: 'accessToken', - expiresInSeconds: 123, - idToken: 'idToken', - scope: 'scope', - }, - profile: { - email: 'conrad@example.com', - displayName: 'Conrad', - picture: 'http://google.com/lols', - }, + }); + + it('should be created with sign-in resolver', async () => { + expect(google.create({ signIn: { resolver: jest.fn() } })).toBe( + 'provider-factory', + ); + + expect(createOAuthProviderFactory).toHaveBeenCalledWith({ + authenticator: googleAuthenticator, + signInResolver: expect.any(Function), + }); + }); + + it('should be created with sign-in resolver and auth handler', async () => { + expect( + google.create({ + signIn: { resolver: jest.fn() }, + authHandler: jest.fn(), + }), + ).toBe('provider-factory'); + + expect(createOAuthProviderFactory).toHaveBeenCalledWith({ + authenticator: googleAuthenticator, + signInResolver: expect.any(Function), + profileTransform: expect.any(Function), + }); + }); + + it('should have resolvers', () => { + expect(google.resolvers).toEqual({ + emailLocalPartMatchingUserEntityName: expect.any(Function), + emailMatchingUserEntityAnnotation: expect.any(Function), + emailMatchingUserEntityProfileEmail: expect.any(Function), }); }); }); From 83941bb6179f91bb115b8923d385f5dcf95d4429 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Tue, 8 Aug 2023 13:53:49 +0200 Subject: [PATCH 150/372] auth-node: add initial OAuth route handlers test Signed-off-by: Patrik Oldsberg --- plugins/auth-node/package.json | 3 + .../oauth/createOAuthRouteHandlers.test.ts | 156 ++++++++++++++++++ yarn.lock | 5 +- 3 files changed, 163 insertions(+), 1 deletion(-) create mode 100644 plugins/auth-node/src/oauth/createOAuthRouteHandlers.test.ts diff --git a/plugins/auth-node/package.json b/plugins/auth-node/package.json index b0c503c144..5e3ddd5a20 100644 --- a/plugins/auth-node/package.json +++ b/plugins/auth-node/package.json @@ -48,8 +48,11 @@ "devDependencies": { "@backstage/backend-test-utils": "workspace:^", "@backstage/cli": "workspace:^", + "cookie-parser": "^1.4.6", + "express-promise-router": "^4.1.1", "lodash": "^4.17.21", "msw": "^1.0.0", + "supertest": "^6.1.3", "uuid": "^8.0.0" }, "files": [ diff --git a/plugins/auth-node/src/oauth/createOAuthRouteHandlers.test.ts b/plugins/auth-node/src/oauth/createOAuthRouteHandlers.test.ts new file mode 100644 index 0000000000..46b6fe4b07 --- /dev/null +++ b/plugins/auth-node/src/oauth/createOAuthRouteHandlers.test.ts @@ -0,0 +1,156 @@ +/* + * 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 { ConfigReader } from '@backstage/config'; +import express from 'express'; +import request, { SuperAgentTest } from 'supertest'; +import cookieParser from 'cookie-parser'; +import PromiseRouter from 'express-promise-router'; +import { AuthProviderRouteHandlers, AuthResolverContext } from '../types'; +import { createOAuthRouteHandlers } from './createOAuthRouteHandlers'; +import { OAuthAuthenticator } from './types'; +import { errorHandler } from '@backstage/backend-common'; + +const mockAuthenticator: OAuthAuthenticator = { + initialize: jest.fn(), + start: jest.fn(), + authenticate: jest.fn(), + refresh: jest.fn(), + logout: jest.fn(), + defaultProfileTransform: jest.fn(async () => ({ profile: {} })), +}; + +const baseConfig = { + authenticator: mockAuthenticator, + appUrl: 'http://localhost:3000', + baseUrl: 'http://localhost:7007', + isOriginAllowed: () => true, + providerId: 'my-provider', + config: new ConfigReader({}), + resolverContext: { ctx: 'ctx' } as unknown as AuthResolverContext, +}; + +function wrapInApp(handlers: AuthProviderRouteHandlers) { + const app = express(); + + const router = PromiseRouter(); + + router.use(cookieParser()); + app.use(router); + app.use(errorHandler()); + + router.get('/start', handlers.start.bind(handlers)); + router.get('/handler/frame', handlers.frameHandler.bind(handlers)); + router.post('/handler/frame', handlers.frameHandler.bind(handlers)); + if (handlers.logout) { + router.post('/logout', handlers.logout.bind(handlers)); + } + if (handlers.refresh) { + router.get('/refresh', handlers.refresh.bind(handlers)); + router.post('/refresh', handlers.refresh.bind(handlers)); + } + + return app; +} + +function getCookie(test: SuperAgentTest, name: string) { + return test.jar.getCookie(`my-provider-${name}`, { + domain: 'localhost', + path: '/my-provider', + script: false, + secure: false, + }); +} + +describe('createOAuthRouteHandlers', () => { + it('should be created', () => { + const handlers = createOAuthRouteHandlers(baseConfig); + expect(handlers).toEqual({ + start: expect.any(Function), + frameHandler: expect.any(Function), + refresh: expect.any(Function), + logout: expect.any(Function), + }); + }); + + describe('start', () => { + it('should require an env query', async () => { + const app = wrapInApp(createOAuthRouteHandlers(baseConfig)); + const res = await request(app).get('/start'); + + expect(res.status).toBe(400); + expect(res.body).toMatchObject({ + error: { + name: 'InputError', + message: 'No env provided in request query parameters', + }, + }); + }); + }); + + describe('logout', () => { + it('should log out', async () => { + const agent = request.agent( + wrapInApp(createOAuthRouteHandlers(baseConfig)), + ); + + agent.jar.setCookie( + 'my-provider-refresh-token=my-refresh-token', + 'localhost', + '/my-provider', + ); + + expect(getCookie(agent, 'refresh-token').value).toBe('my-refresh-token'); + + const res = await agent + .post('/logout') + .set('X-Requested-With', 'XMLHttpRequest'); + + expect(res.status).toBe(200); + expect(res.body).toEqual({}); + + expect(getCookie(agent, 'refresh-token')).toBeUndefined(); + }); + + it('should reject requests without CSRF header', async () => { + const app = wrapInApp(createOAuthRouteHandlers(baseConfig)); + + const res = await request(app).post('/logout'); + expect(res.status).toBe(401); + expect(res.body).toMatchObject({ + error: { + name: 'AuthenticationError', + message: 'Invalid X-Requested-With header', + }, + }); + }); + + it('should reject requests with invalid CSRF header', async () => { + const app = wrapInApp(createOAuthRouteHandlers(baseConfig)); + + const res = await request(app) + .post('/logout') + .set('X-Requested-With', 'wrong-value'); + expect(res.status).toBe(401); + expect(res.body).toMatchObject({ + error: { + name: 'AuthenticationError', + message: 'Invalid X-Requested-With header', + }, + }); + }); + }); +}); diff --git a/yarn.lock b/yarn.lock index 2a561a603f..2dd5f941c2 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4691,12 +4691,15 @@ __metadata: "@backstage/errors": "workspace:^" "@backstage/types": "workspace:^" "@types/express": "*" + cookie-parser: ^1.4.6 express: ^4.17.1 + express-promise-router: ^4.1.1 jose: ^4.6.0 lodash: ^4.17.21 msw: ^1.0.0 node-fetch: ^2.6.7 passport: ^0.6.0 + supertest: ^6.1.3 uuid: ^8.0.0 winston: ^3.2.1 zod: ^3.21.4 @@ -22029,7 +22032,7 @@ __metadata: languageName: node linkType: hard -"cookie-parser@npm:^1.4.5": +"cookie-parser@npm:^1.4.5, cookie-parser@npm:^1.4.6": version: 1.4.6 resolution: "cookie-parser@npm:1.4.6" dependencies: From 8d5aa7a3a3eec670757995185db07019533706d6 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Tue, 8 Aug 2023 14:30:39 +0200 Subject: [PATCH 151/372] auth-node: start tests for oauth handler Signed-off-by: Patrik Oldsberg --- .../oauth/createOAuthRouteHandlers.test.ts | 118 ++++++++++++++++-- 1 file changed, 110 insertions(+), 8 deletions(-) diff --git a/plugins/auth-node/src/oauth/createOAuthRouteHandlers.test.ts b/plugins/auth-node/src/oauth/createOAuthRouteHandlers.test.ts index 46b6fe4b07..73da115af8 100644 --- a/plugins/auth-node/src/oauth/createOAuthRouteHandlers.test.ts +++ b/plugins/auth-node/src/oauth/createOAuthRouteHandlers.test.ts @@ -23,14 +23,15 @@ import { AuthProviderRouteHandlers, AuthResolverContext } from '../types'; import { createOAuthRouteHandlers } from './createOAuthRouteHandlers'; import { OAuthAuthenticator } from './types'; import { errorHandler } from '@backstage/backend-common'; +import { encodeOAuthState } from './state'; -const mockAuthenticator: OAuthAuthenticator = { - initialize: jest.fn(), +const mockAuthenticator: jest.Mocked> = { + initialize: jest.fn(_r => ({ ctx: 'authenticator' })), start: jest.fn(), authenticate: jest.fn(), refresh: jest.fn(), logout: jest.fn(), - defaultProfileTransform: jest.fn(async () => ({ profile: {} })), + defaultProfileTransform: jest.fn(async (_r, _c) => ({ profile: {} })), }; const baseConfig = { @@ -40,7 +41,7 @@ const baseConfig = { isOriginAllowed: () => true, providerId: 'my-provider', config: new ConfigReader({}), - resolverContext: { ctx: 'ctx' } as unknown as AuthResolverContext, + resolverContext: { ctx: 'resolver' } as unknown as AuthResolverContext, }; function wrapInApp(handlers: AuthProviderRouteHandlers) { @@ -66,8 +67,26 @@ function wrapInApp(handlers: AuthProviderRouteHandlers) { return app; } -function getCookie(test: SuperAgentTest, name: string) { - return test.jar.getCookie(`my-provider-${name}`, { +function getNonceCookie(test: SuperAgentTest) { + return test.jar.getCookie(`my-provider-nonce`, { + domain: 'localhost', + path: '/my-provider/handler', + script: false, + secure: false, + }); +} + +function getRefreshTokenCookie(test: SuperAgentTest) { + return test.jar.getCookie(`my-provider-refresh-token`, { + domain: 'localhost', + path: '/my-provider', + script: false, + secure: false, + }); +} + +function getGrantedScopesCookie(test: SuperAgentTest) { + return test.jar.getCookie(`my-provider-granted-scope`, { domain: 'localhost', path: '/my-provider', script: false, @@ -76,6 +95,8 @@ function getCookie(test: SuperAgentTest, name: string) { } describe('createOAuthRouteHandlers', () => { + afterEach(() => jest.clearAllMocks()); + it('should be created', () => { const handlers = createOAuthRouteHandlers(baseConfig); expect(handlers).toEqual({ @@ -99,6 +120,87 @@ describe('createOAuthRouteHandlers', () => { }, }); }); + + it('should start', async () => { + const agent = request.agent( + wrapInApp(createOAuthRouteHandlers(baseConfig)), + ); + + mockAuthenticator.start.mockResolvedValue({ + url: 'https://example.com/redirect', + }); + + const res = await agent.get('/start?env=development&scope=my-scope'); + + const { value: nonce } = getNonceCookie(agent); + + expect(res.text).toBe(''); + expect(res.status).toBe(302); + expect(res.get('Location')).toBe('https://example.com/redirect'); + expect(res.get('Content-Length')).toBe('0'); + + expect(mockAuthenticator.start).toHaveBeenCalledWith( + { + req: expect.anything(), + scope: 'my-scope', + state: encodeOAuthState({ + nonce: decodeURIComponent(nonce), + env: 'development', + }), + }, + { ctx: 'authenticator' }, + ); + }); + + it('should start with additional parameters, transform state, and persist scopes', async () => { + const agent = request.agent( + wrapInApp( + createOAuthRouteHandlers({ + ...baseConfig, + authenticator: { + ...mockAuthenticator, + shouldPersistScopes: true, + }, + stateTransform: async state => ({ + state: { ...state, nonce: '123' }, + }), + }), + ), + ); + + mockAuthenticator.start.mockResolvedValue({ + url: 'https://example.com/redirect', + }); + + const res = await agent.get('/start').query({ + env: 'development', + scope: 'my-scope', + origin: 'https://remotehost', + redirectUrl: 'https://remotehost/redirect', + flow: 'redirect', + }); + + expect(res.text).toBe(''); + expect(res.status).toBe(302); + expect(res.get('Location')).toBe('https://example.com/redirect'); + expect(res.get('Content-Length')).toBe('0'); + + expect(mockAuthenticator.start).toHaveBeenCalledWith( + { + req: expect.anything(), + scope: 'my-scope', + state: encodeOAuthState({ + nonce: '123', + env: 'development', + origin: 'https://remotehost', + redirectUrl: 'https://remotehost/redirect', + flow: 'redirect', + scope: 'my-scope', + }), + }, + { ctx: 'authenticator' }, + ); + }); }); describe('logout', () => { @@ -113,7 +215,7 @@ describe('createOAuthRouteHandlers', () => { '/my-provider', ); - expect(getCookie(agent, 'refresh-token').value).toBe('my-refresh-token'); + expect(getRefreshTokenCookie(agent).value).toBe('my-refresh-token'); const res = await agent .post('/logout') @@ -122,7 +224,7 @@ describe('createOAuthRouteHandlers', () => { expect(res.status).toBe(200); expect(res.body).toEqual({}); - expect(getCookie(agent, 'refresh-token')).toBeUndefined(); + expect(getRefreshTokenCookie(agent)).toBeUndefined(); }); it('should reject requests without CSRF header', async () => { From 2f8c1e75d41bef7f6f9bd0f0663ddec84c369b18 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Tue, 8 Aug 2023 15:15:02 +0200 Subject: [PATCH 152/372] auth-node: OAuth handlers frame handler test + fixes Signed-off-by: Patrik Oldsberg --- .../oauth/createOAuthRouteHandlers.test.ts | 346 +++++++++++++++++- .../src/oauth/createOAuthRouteHandlers.ts | 7 +- plugins/auth-node/src/oauth/state.ts | 13 +- 3 files changed, 337 insertions(+), 29 deletions(-) diff --git a/plugins/auth-node/src/oauth/createOAuthRouteHandlers.test.ts b/plugins/auth-node/src/oauth/createOAuthRouteHandlers.test.ts index 73da115af8..c0d9cfcb40 100644 --- a/plugins/auth-node/src/oauth/createOAuthRouteHandlers.test.ts +++ b/plugins/auth-node/src/oauth/createOAuthRouteHandlers.test.ts @@ -23,7 +23,9 @@ import { AuthProviderRouteHandlers, AuthResolverContext } from '../types'; import { createOAuthRouteHandlers } from './createOAuthRouteHandlers'; import { OAuthAuthenticator } from './types'; import { errorHandler } from '@backstage/backend-common'; -import { encodeOAuthState } from './state'; +import { encodeOAuthState, OAuthState } from './state'; +import { WebMessageResponse } from '../flow'; +import { PassportProfile } from '../passport'; const mockAuthenticator: jest.Mocked> = { initialize: jest.fn(_r => ({ ctx: 'authenticator' })), @@ -34,10 +36,23 @@ const mockAuthenticator: jest.Mocked> = { defaultProfileTransform: jest.fn(async (_r, _c) => ({ profile: {} })), }; +const mockBackstageToken = `a.${btoa( + JSON.stringify({ sub: 'user:default/mock', ent: [] }), +)}.c`; + +const mockSession = { + accessToken: 'access-token', + expiresInSeconds: 3, + scope: 'my-scope', + tokenType: 'bear', + idToken: 'id-token', + refreshToken: 'refresh-token', +}; + const baseConfig = { authenticator: mockAuthenticator, - appUrl: 'http://localhost:3000', - baseUrl: 'http://localhost:7007', + appUrl: 'http://127.0.0.1', + baseUrl: 'http://127.0.0.1:7007', isOriginAllowed: () => true, providerId: 'my-provider', config: new ConfigReader({}), @@ -50,7 +65,7 @@ function wrapInApp(handlers: AuthProviderRouteHandlers) { const router = PromiseRouter(); router.use(cookieParser()); - app.use(router); + app.use('/my-provider', router); app.use(errorHandler()); router.get('/start', handlers.start.bind(handlers)); @@ -68,8 +83,8 @@ function wrapInApp(handlers: AuthProviderRouteHandlers) { } function getNonceCookie(test: SuperAgentTest) { - return test.jar.getCookie(`my-provider-nonce`, { - domain: 'localhost', + return test.jar.getCookie('my-provider-nonce', { + domain: '127.0.0.1', path: '/my-provider/handler', script: false, secure: false, @@ -77,8 +92,8 @@ function getNonceCookie(test: SuperAgentTest) { } function getRefreshTokenCookie(test: SuperAgentTest) { - return test.jar.getCookie(`my-provider-refresh-token`, { - domain: 'localhost', + return test.jar.getCookie('my-provider-refresh-token', { + domain: '127.0.0.1', path: '/my-provider', script: false, secure: false, @@ -86,14 +101,25 @@ function getRefreshTokenCookie(test: SuperAgentTest) { } function getGrantedScopesCookie(test: SuperAgentTest) { - return test.jar.getCookie(`my-provider-granted-scope`, { - domain: 'localhost', + return test.jar.getCookie('my-provider-granted-scope', { + domain: '127.0.0.1', path: '/my-provider', script: false, secure: false, }); } +function parseWebMessageResponse(text: string): { + response: WebMessageResponse; + origin: string; +} { + const [response, origin] = text.matchAll(/decodeURIComponent\('(.+?)'\)/g); + return { + response: JSON.parse(decodeURIComponent(response[1])), + origin: decodeURIComponent(origin[1]), + }; +} + describe('createOAuthRouteHandlers', () => { afterEach(() => jest.clearAllMocks()); @@ -110,7 +136,7 @@ describe('createOAuthRouteHandlers', () => { describe('start', () => { it('should require an env query', async () => { const app = wrapInApp(createOAuthRouteHandlers(baseConfig)); - const res = await request(app).get('/start'); + const res = await request(app).get('/my-provider/start'); expect(res.status).toBe(400); expect(res.body).toMatchObject({ @@ -130,7 +156,9 @@ describe('createOAuthRouteHandlers', () => { url: 'https://example.com/redirect', }); - const res = await agent.get('/start?env=development&scope=my-scope'); + const res = await agent.get( + '/my-provider/start?env=development&scope=my-scope', + ); const { value: nonce } = getNonceCookie(agent); @@ -172,7 +200,7 @@ describe('createOAuthRouteHandlers', () => { url: 'https://example.com/redirect', }); - const res = await agent.get('/start').query({ + const res = await agent.get('/my-provider/start').query({ env: 'development', scope: 'my-scope', origin: 'https://remotehost', @@ -203,6 +231,290 @@ describe('createOAuthRouteHandlers', () => { }); }); + describe('frameHandler', () => { + it('should authenticate', async () => { + const agent = request.agent( + wrapInApp(createOAuthRouteHandlers(baseConfig)), + ); + + agent.jar.setCookie( + 'my-provider-nonce=123', + '127.0.0.1', + '/my-provider/handler', + ); + + mockAuthenticator.authenticate.mockResolvedValue({ + fullProfile: { id: 'id' } as PassportProfile, + session: mockSession, + }); + + const res = await agent.get('/my-provider/handler/frame').query({ + state: encodeOAuthState({ + env: 'development', + nonce: '123', + } as OAuthState), + }); + + expect(res.status).toBe(200); + expect(parseWebMessageResponse(res.text).response).toEqual({ + type: 'authorization_response', + response: { + profile: {}, + providerInfo: { + accessToken: 'access-token', + expiresInSeconds: 3, + idToken: 'id-token', + scope: 'my-scope', + }, + }, + }); + + expect(getRefreshTokenCookie(agent).value).toBe('refresh-token'); + expect(getGrantedScopesCookie(agent)).toBeUndefined(); + }); + + it('should authenticate with sign-in, profile transform, and persisted scopes', async () => { + const agent = request.agent( + wrapInApp( + createOAuthRouteHandlers({ + ...baseConfig, + authenticator: { + ...mockAuthenticator, + shouldPersistScopes: true, + }, + profileTransform: async () => ({ profile: { email: 'em@i.l' } }), + signInResolver: async () => ({ token: mockBackstageToken }), + }), + ), + ); + + agent.jar.setCookie( + 'my-provider-nonce=123', + '127.0.0.1', + '/my-provider/handler', + ); + + mockAuthenticator.authenticate.mockResolvedValue({ + fullProfile: { id: 'id' } as PassportProfile, + session: mockSession, + }); + + const res = await agent.get('/my-provider/handler/frame').query({ + state: encodeOAuthState({ + env: 'development', + nonce: '123', + scope: 'my-scope', + } as OAuthState), + }); + + expect(res.status).toBe(200); + expect(parseWebMessageResponse(res.text).response).toEqual({ + type: 'authorization_response', + response: { + profile: { email: 'em@i.l' }, + providerInfo: { + accessToken: 'access-token', + expiresInSeconds: 3, + idToken: 'id-token', + scope: 'my-scope', + }, + backstageIdentity: { + identity: { + type: 'user', + ownershipEntityRefs: [], + userEntityRef: 'user:default/mock', + }, + token: mockBackstageToken, + }, + }, + }); + + expect(getRefreshTokenCookie(agent).value).toBe('refresh-token'); + expect(getGrantedScopesCookie(agent).value).toBe('my-scope'); + }); + + it('should redirect with persisted scope', async () => { + const agent = request.agent( + wrapInApp( + createOAuthRouteHandlers({ + ...baseConfig, + authenticator: { + ...mockAuthenticator, + shouldPersistScopes: true, + }, + profileTransform: async () => ({ profile: { email: 'em@i.l' } }), + signInResolver: async () => ({ token: mockBackstageToken }), + }), + ), + ); + + agent.jar.setCookie( + 'my-provider-nonce=123', + '127.0.0.1', + '/my-provider/handler', + ); + + mockAuthenticator.authenticate.mockResolvedValue({ + fullProfile: { id: 'id' } as PassportProfile, + session: mockSession, + }); + + const res = await agent.get('/my-provider/handler/frame').query({ + state: encodeOAuthState({ + env: 'development', + nonce: '123', + scope: 'my-scope', + flow: 'redirect', + redirectUrl: 'https://127.0.0.1:3000/redirect', + } as OAuthState), + }); + + expect(res.status).toBe(302); + expect(res.get('Location')).toBe('https://127.0.0.1:3000/redirect'); + + expect(getRefreshTokenCookie(agent).value).toBe('refresh-token'); + expect(getGrantedScopesCookie(agent).value).toBe('my-scope'); + }); + + it('should require a valid origin', async () => { + const app = wrapInApp(createOAuthRouteHandlers(baseConfig)); + const res = await request(app) + .get('/my-provider/handler/frame') + .query({ + state: encodeOAuthState({ + env: 'development', + nonce: '123', + origin: 'invalid-origin', + }), + }); + + expect(res.status).toBe(200); + expect(parseWebMessageResponse(res.text).response).toEqual({ + type: 'authorization_response', + error: { + name: 'NotAllowedError', + message: 'App origin is invalid, failed to parse', + }, + }); + }); + + it('should reject origins that are not allowed', async () => { + const app = wrapInApp( + createOAuthRouteHandlers({ + ...baseConfig, + isOriginAllowed: () => false, + }), + ); + const res = await request(app) + .get('/my-provider/handler/frame') + .query({ + state: encodeOAuthState({ + env: 'development', + nonce: '123', + origin: 'http://localhost:3000', + }), + }); + + expect(res.status).toBe(200); + expect(parseWebMessageResponse(res.text).response).toEqual({ + type: 'authorization_response', + error: { + name: 'NotAllowedError', + message: "Origin 'http://localhost:3000' is not allowed", + }, + }); + }); + + it('should reject missing state env', async () => { + const app = wrapInApp(createOAuthRouteHandlers(baseConfig)); + const res = await request(app) + .get('/my-provider/handler/frame') + .query({ + state: encodeOAuthState({ + nonce: '123', + } as OAuthState), + }); + + expect(res.status).toBe(200); + expect(parseWebMessageResponse(res.text).response).toEqual({ + type: 'authorization_response', + error: { + name: 'NotAllowedError', + message: 'OAuth state is invalid, missing env', + }, + }); + }); + + it('should reject missing cookie nonce', async () => { + const app = wrapInApp(createOAuthRouteHandlers(baseConfig)); + const res = await request(app) + .get('/my-provider/handler/frame') + .query({ + state: encodeOAuthState({ + env: 'development', + nonce: '123', + }), + }); + + expect(res.status).toBe(200); + expect(parseWebMessageResponse(res.text).response).toEqual({ + type: 'authorization_response', + error: { + name: 'NotAllowedError', + message: 'Auth response is missing cookie nonce', + }, + }); + }); + + it('should reject missing state nonce', async () => { + const app = wrapInApp(createOAuthRouteHandlers(baseConfig)); + const res = await request(app) + .get('/my-provider/handler/frame') + .query({ + state: encodeOAuthState({ + env: 'development', + } as OAuthState), + }); + + expect(res.status).toBe(200); + expect(parseWebMessageResponse(res.text).response).toEqual({ + type: 'authorization_response', + error: { + name: 'NotAllowedError', + message: 'OAuth state is invalid, missing nonce', + }, + }); + }); + + it('should reject mismatched nonce', async () => { + const agent = request.agent( + wrapInApp(createOAuthRouteHandlers(baseConfig)), + ); + + agent.jar.setCookie( + 'my-provider-nonce=456', + '127.0.0.1', + '/my-provider/handler', + ); + + const res = await agent.get('/my-provider/handler/frame').query({ + state: encodeOAuthState({ + env: 'development', + nonce: '123', + } as OAuthState), + }); + + expect(res.status).toBe(200); + expect(parseWebMessageResponse(res.text).response).toEqual({ + type: 'authorization_response', + error: { + name: 'NotAllowedError', + message: 'Invalid nonce', + }, + }); + }); + }); + describe('logout', () => { it('should log out', async () => { const agent = request.agent( @@ -211,14 +523,14 @@ describe('createOAuthRouteHandlers', () => { agent.jar.setCookie( 'my-provider-refresh-token=my-refresh-token', - 'localhost', + '127.0.0.1', '/my-provider', ); expect(getRefreshTokenCookie(agent).value).toBe('my-refresh-token'); const res = await agent - .post('/logout') + .post('/my-provider/logout') .set('X-Requested-With', 'XMLHttpRequest'); expect(res.status).toBe(200); @@ -230,7 +542,7 @@ describe('createOAuthRouteHandlers', () => { it('should reject requests without CSRF header', async () => { const app = wrapInApp(createOAuthRouteHandlers(baseConfig)); - const res = await request(app).post('/logout'); + const res = await request(app).post('/my-provider/logout'); expect(res.status).toBe(401); expect(res.body).toMatchObject({ error: { @@ -244,7 +556,7 @@ describe('createOAuthRouteHandlers', () => { const app = wrapInApp(createOAuthRouteHandlers(baseConfig)); const res = await request(app) - .post('/logout') + .post('/my-provider/logout') .set('X-Requested-With', 'wrong-value'); expect(res.status).toBe(401); expect(res.body).toMatchObject({ diff --git a/plugins/auth-node/src/oauth/createOAuthRouteHandlers.ts b/plugins/auth-node/src/oauth/createOAuthRouteHandlers.ts index 6c4819a320..011b3fc0f0 100644 --- a/plugins/auth-node/src/oauth/createOAuthRouteHandlers.ts +++ b/plugins/auth-node/src/oauth/createOAuthRouteHandlers.ts @@ -179,13 +179,10 @@ export function createOAuthRouteHandlers( const cookieNonce = cookieManager.getNonce(req); const stateNonce = state.nonce; if (!cookieNonce) { - throw new Error('Auth response is missing cookie nonce'); - } - if (stateNonce.length === 0) { - throw new Error('Auth response is missing state nonce'); + throw new NotAllowedError('Auth response is missing cookie nonce'); } if (cookieNonce !== stateNonce) { - throw new Error('Invalid nonce'); + throw new NotAllowedError('Invalid nonce'); } const result = await authenticator.authenticate( diff --git a/plugins/auth-node/src/oauth/state.ts b/plugins/auth-node/src/oauth/state.ts index 71c5a2afb8..c5b96414fa 100644 --- a/plugins/auth-node/src/oauth/state.ts +++ b/plugins/auth-node/src/oauth/state.ts @@ -16,6 +16,7 @@ import pickBy from 'lodash/pickBy'; import { Request } from 'express'; +import { NotAllowedError } from '@backstage/errors'; /** @public */ export type OAuthState = { @@ -49,13 +50,11 @@ export function decodeOAuthState(encodedState: string): OAuthState { const state = Object.fromEntries( new URLSearchParams(Buffer.from(encodedState, 'hex').toString('utf-8')), ); - if ( - !state.nonce || - !state.env || - state.nonce?.length === 0 || - state.env?.length === 0 - ) { - throw Error(`Invalid state passed via request`); + if (!state.env || state.env?.length === 0) { + throw new NotAllowedError('OAuth state is invalid, missing env'); + } + if (!state.nonce || state.nonce?.length === 0) { + throw new NotAllowedError('OAuth state is invalid, missing nonce'); } return state as OAuthState; From 0678d122a8ee6e2178fff7392d0f4de4253a1a82 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Tue, 8 Aug 2023 15:28:41 +0200 Subject: [PATCH 153/372] auth-node: tests for OAuth handler refresh Signed-off-by: Patrik Oldsberg --- .../oauth/createOAuthRouteHandlers.test.ts | 183 ++++++++++++++++++ 1 file changed, 183 insertions(+) diff --git a/plugins/auth-node/src/oauth/createOAuthRouteHandlers.test.ts b/plugins/auth-node/src/oauth/createOAuthRouteHandlers.test.ts index c0d9cfcb40..926d08fa77 100644 --- a/plugins/auth-node/src/oauth/createOAuthRouteHandlers.test.ts +++ b/plugins/auth-node/src/oauth/createOAuthRouteHandlers.test.ts @@ -255,6 +255,11 @@ describe('createOAuthRouteHandlers', () => { } as OAuthState), }); + expect(mockAuthenticator.authenticate).toHaveBeenCalledWith( + { req: expect.anything() }, + { ctx: 'authenticator' }, + ); + expect(res.status).toBe(200); expect(parseWebMessageResponse(res.text).response).toEqual({ type: 'authorization_response', @@ -515,6 +520,184 @@ describe('createOAuthRouteHandlers', () => { }); }); + describe('refresh', () => { + it('should refresh', async () => { + const agent = request.agent( + wrapInApp(createOAuthRouteHandlers(baseConfig)), + ); + + agent.jar.setCookie( + 'my-provider-refresh-token=refresh-token', + '127.0.0.1', + '/my-provider', + ); + + mockAuthenticator.refresh.mockImplementation(async ({ scope }) => ({ + fullProfile: { id: 'id' } as PassportProfile, + session: { ...mockSession, scope }, + })); + + const res = await agent + .post('/my-provider/refresh') + .set('X-Requested-With', 'XMLHttpRequest') + .query({ scope: 'my-scope' }); + + expect(mockAuthenticator.refresh).toHaveBeenCalledWith( + { + req: expect.anything(), + refreshToken: 'refresh-token', + scope: 'my-scope', + }, + { ctx: 'authenticator' }, + ); + + expect(res.status).toBe(200); + expect(res.body).toEqual({ + profile: {}, + providerInfo: { + accessToken: 'access-token', + expiresInSeconds: 3, + idToken: 'id-token', + scope: 'my-scope', + }, + }); + }); + + it('should refresh with sign-in, profile transform, and persisted scopes', async () => { + const agent = request.agent( + wrapInApp( + createOAuthRouteHandlers({ + ...baseConfig, + authenticator: { + ...mockAuthenticator, + shouldPersistScopes: true, + }, + profileTransform: async () => ({ profile: { email: 'em@i.l' } }), + signInResolver: async () => ({ token: mockBackstageToken }), + }), + ), + ); + + agent.jar.setCookie( + 'my-provider-refresh-token=refresh-token', + '127.0.0.1', + '/my-provider', + ); + agent.jar.setCookie( + 'my-provider-granted-scope=persisted-scope', + '127.0.0.1', + '/my-provider', + ); + + mockAuthenticator.refresh.mockImplementation(async ({ scope }) => ({ + fullProfile: { id: 'id' } as PassportProfile, + session: { ...mockSession, scope, refreshToken: 'new-refresh-token' }, + })); + + const res = await agent + .post('/my-provider/refresh') + .set('X-Requested-With', 'XMLHttpRequest'); + + expect(mockAuthenticator.refresh).toHaveBeenCalledWith( + { + req: expect.anything(), + refreshToken: 'refresh-token', + scope: 'persisted-scope', + }, + { ctx: 'authenticator' }, + ); + + expect(res.status).toBe(200); + expect(res.body).toEqual({ + profile: { email: 'em@i.l' }, + providerInfo: { + accessToken: 'access-token', + expiresInSeconds: 3, + idToken: 'id-token', + scope: 'persisted-scope', + }, + backstageIdentity: { + identity: { + type: 'user', + ownershipEntityRefs: [], + userEntityRef: 'user:default/mock', + }, + token: mockBackstageToken, + }, + }); + expect(getRefreshTokenCookie(agent).value).toBe('new-refresh-token'); + }); + + it('should forward errors', async () => { + const agent = request.agent( + wrapInApp(createOAuthRouteHandlers(baseConfig)), + ); + + agent.jar.setCookie( + 'my-provider-refresh-token=refresh-token', + '127.0.0.1', + '/my-provider', + ); + + mockAuthenticator.refresh.mockRejectedValue(new Error('NOPE')); + + const res = await agent + .post('/my-provider/refresh') + .set('X-Requested-With', 'XMLHttpRequest'); + + expect(res.status).toBe(401); + expect(res.body).toMatchObject({ + error: { + name: 'AuthenticationError', + message: 'Refresh failed; caused by Error: NOPE', + }, + }); + }); + + it('should require refresh cookie', async () => { + const res = await request(wrapInApp(createOAuthRouteHandlers(baseConfig))) + .post('/my-provider/refresh') + .set('X-Requested-With', 'XMLHttpRequest'); + + expect(res.status).toBe(401); + expect(res.body).toMatchObject({ + error: { + name: 'AuthenticationError', + message: + 'Refresh failed; caused by InputError: Missing session cookie', + }, + }); + }); + + it('should reject requests without CSRF header', async () => { + const res = await request( + wrapInApp(createOAuthRouteHandlers(baseConfig)), + ).post('/my-provider/refresh'); + + expect(res.status).toBe(401); + expect(res.body).toMatchObject({ + error: { + name: 'AuthenticationError', + message: 'Invalid X-Requested-With header', + }, + }); + }); + + it('should reject requests with invalid CSRF header', async () => { + const res = await request(wrapInApp(createOAuthRouteHandlers(baseConfig))) + .post('/my-provider/refresh') + .set('X-Requested-With', 'invalid'); + + expect(res.status).toBe(401); + expect(res.body).toMatchObject({ + error: { + name: 'AuthenticationError', + message: 'Invalid X-Requested-With header', + }, + }); + }); + }); + describe('logout', () => { it('should log out', async () => { const agent = request.agent( From 3db911fc9835c30b4c17d79675fbbf1afd02770e Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Tue, 8 Aug 2023 15:32:46 +0200 Subject: [PATCH 154/372] auth-backend: pass through global config values at top-level Signed-off-by: Patrik Oldsberg --- plugins/auth-backend/src/service/router.ts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/plugins/auth-backend/src/service/router.ts b/plugins/auth-backend/src/service/router.ts index b28d2aeca1..026a6263b7 100644 --- a/plugins/auth-backend/src/service/router.ts +++ b/plugins/auth-backend/src/service/router.ts @@ -130,6 +130,9 @@ export async function createRouter( try { const provider = providerFactory({ providerId, + appUrl, + baseUrl: authUrl, + isOriginAllowed, globalConfig: { baseUrl: authUrl, appUrl, From 258b410cad9825e3e87da1fe8f1c9574b82a2f98 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Tue, 8 Aug 2023 15:36:18 +0200 Subject: [PATCH 155/372] auth refactor type fixes Signed-off-by: Patrik Oldsberg --- .../auth-backend-module-gcp-iap-provider/src/module.ts | 1 + plugins/auth-backend-module-google-provider/src/module.ts | 1 + plugins/auth-backend/src/index.ts | 3 --- .../src/lib/legacy/adaptLegacyOAuthHandler.ts | 2 +- .../src/lib/legacy/adaptLegacyOAuthSignInResolver.ts | 2 +- .../src/lib/legacy/adaptOAuthSignInResolverToLegacy.ts | 1 + plugins/auth-backend/src/lib/oauth/OAuthAdapter.ts | 2 +- .../auth-backend/src/lib/oauth/OAuthEnvironmentHandler.ts | 2 +- plugins/auth-backend/src/lib/oauth/types.ts | 2 +- plugins/auth-backend/src/providers/gcp-iap/types.ts | 2 +- .../auth-backend/src/providers/microsoft/provider.test.ts | 3 +++ plugins/auth-node/src/identity/index.ts | 2 +- plugins/auth-node/src/oauth/index.ts | 1 - plugins/auth-node/src/oauth/types.ts | 8 ++++++++ .../auth-node/src/proxy/createProxyAuthProviderFactory.ts | 1 + plugins/auth-node/src/proxy/types.ts | 2 ++ .../auth-node/src/sign-in/createSignInResolverFactory.ts | 3 +++ 17 files changed, 27 insertions(+), 11 deletions(-) diff --git a/plugins/auth-backend-module-gcp-iap-provider/src/module.ts b/plugins/auth-backend-module-gcp-iap-provider/src/module.ts index 38742e4236..90771eecb9 100644 --- a/plugins/auth-backend-module-gcp-iap-provider/src/module.ts +++ b/plugins/auth-backend-module-gcp-iap-provider/src/module.ts @@ -23,6 +23,7 @@ import { import { gcpIapAuthenticator } from './authenticator'; import { gcpIapSignInResolvers } from './resolvers'; +/** @public */ export const authModuleGcpIapProvider = createBackendModule({ pluginId: 'auth', moduleId: 'gcpIapProvider', diff --git a/plugins/auth-backend-module-google-provider/src/module.ts b/plugins/auth-backend-module-google-provider/src/module.ts index fe067c223a..0354f99880 100644 --- a/plugins/auth-backend-module-google-provider/src/module.ts +++ b/plugins/auth-backend-module-google-provider/src/module.ts @@ -23,6 +23,7 @@ import { import { googleAuthenticator } from './authenticator'; import { googleSignInResolvers } from './resolvers'; +/** @public */ export const authModuleGoogleProvider = createBackendModule({ pluginId: 'auth', moduleId: 'googleProvider', diff --git a/plugins/auth-backend/src/index.ts b/plugins/auth-backend/src/index.ts index cc6d460f3c..f8a8580359 100644 --- a/plugins/auth-backend/src/index.ts +++ b/plugins/auth-backend/src/index.ts @@ -31,9 +31,6 @@ export * from './lib/flow'; // OAuth wrapper over a passport or a custom `strategy`. export * from './lib/oauth'; -// Helpers to convert new API in @backstage/plugin-auth-node to old API -export * from './lib/legacy'; - export * from './lib/catalog'; export { getDefaultOwnershipEntityRefs } from './lib/resolvers'; diff --git a/plugins/auth-backend/src/lib/legacy/adaptLegacyOAuthHandler.ts b/plugins/auth-backend/src/lib/legacy/adaptLegacyOAuthHandler.ts index 3114306424..37f10ff184 100644 --- a/plugins/auth-backend/src/lib/legacy/adaptLegacyOAuthHandler.ts +++ b/plugins/auth-backend/src/lib/legacy/adaptLegacyOAuthHandler.ts @@ -22,7 +22,7 @@ import { AuthHandler } from '../../providers'; import { OAuthResult } from '../oauth'; import { PassportProfile } from '../passport/types'; -/** @public */ +/** @internal */ export function adaptLegacyOAuthHandler( authHandler?: AuthHandler, ): ProfileTransform> | undefined { diff --git a/plugins/auth-backend/src/lib/legacy/adaptLegacyOAuthSignInResolver.ts b/plugins/auth-backend/src/lib/legacy/adaptLegacyOAuthSignInResolver.ts index 02056c0517..e0318464ed 100644 --- a/plugins/auth-backend/src/lib/legacy/adaptLegacyOAuthSignInResolver.ts +++ b/plugins/auth-backend/src/lib/legacy/adaptLegacyOAuthSignInResolver.ts @@ -21,7 +21,7 @@ import { } from '@backstage/plugin-auth-node'; import { OAuthResult } from '../oauth'; -/** @public */ +/** @internal */ export function adaptLegacyOAuthSignInResolver( signInResolver?: SignInResolver, ): SignInResolver> | undefined { diff --git a/plugins/auth-backend/src/lib/legacy/adaptOAuthSignInResolverToLegacy.ts b/plugins/auth-backend/src/lib/legacy/adaptOAuthSignInResolverToLegacy.ts index 43b8fa2e9a..8be6049348 100644 --- a/plugins/auth-backend/src/lib/legacy/adaptOAuthSignInResolverToLegacy.ts +++ b/plugins/auth-backend/src/lib/legacy/adaptOAuthSignInResolverToLegacy.ts @@ -21,6 +21,7 @@ import { } from '@backstage/plugin-auth-node'; import { OAuthResult } from '../oauth'; +/** @internal */ export function adaptOAuthSignInResolverToLegacy< TKeys extends string, >(resolvers: { diff --git a/plugins/auth-backend/src/lib/oauth/OAuthAdapter.ts b/plugins/auth-backend/src/lib/oauth/OAuthAdapter.ts index 0e0fb2b90f..9b4afb4b2b 100644 --- a/plugins/auth-backend/src/lib/oauth/OAuthAdapter.ts +++ b/plugins/auth-backend/src/lib/oauth/OAuthAdapter.ts @@ -52,7 +52,7 @@ export const TEN_MINUTES_MS = 600 * 1000; /** * @public - * @deprecated + * @deprecated Use `createOAuthRouteHandlers` from `@backstage/plugin-auth-node` instead */ export type OAuthAdapterOptions = { providerId: string; diff --git a/plugins/auth-backend/src/lib/oauth/OAuthEnvironmentHandler.ts b/plugins/auth-backend/src/lib/oauth/OAuthEnvironmentHandler.ts index eef85f4e34..c9244eb29e 100644 --- a/plugins/auth-backend/src/lib/oauth/OAuthEnvironmentHandler.ts +++ b/plugins/auth-backend/src/lib/oauth/OAuthEnvironmentHandler.ts @@ -20,4 +20,4 @@ import { OAuthEnvironmentHandler as _OAuthEnvironmentHandler } from '@backstage/ * @public * @deprecated import from `@backstage/plugin-auth-node` instead */ -export type OAuthEnvironmentHandler = _OAuthEnvironmentHandler; +export const OAuthEnvironmentHandler = _OAuthEnvironmentHandler; diff --git a/plugins/auth-backend/src/lib/oauth/types.ts b/plugins/auth-backend/src/lib/oauth/types.ts index e91f3819c4..d133341ef4 100644 --- a/plugins/auth-backend/src/lib/oauth/types.ts +++ b/plugins/auth-backend/src/lib/oauth/types.ts @@ -26,7 +26,7 @@ import { OAuthStartResponse, ProfileInfo } from '../../providers/types'; * Common options for passport.js-based OAuth providers * * @public - * @deprecated + * @deprecated No longer in use */ export type OAuthProviderOptions = { /** diff --git a/plugins/auth-backend/src/providers/gcp-iap/types.ts b/plugins/auth-backend/src/providers/gcp-iap/types.ts index 0a88979323..b1f69318fc 100644 --- a/plugins/auth-backend/src/providers/gcp-iap/types.ts +++ b/plugins/auth-backend/src/providers/gcp-iap/types.ts @@ -32,6 +32,6 @@ export type GcpIapTokenInfo = _GcpIapTokenInfo; * callbacks. * * @public - * @deprecated + * @deprecated import from `@backstage/plugin-auth-backend-module-gcp-iap-provider` instead */ export type GcpIapResult = _GcpIapResult; diff --git a/plugins/auth-backend/src/providers/microsoft/provider.test.ts b/plugins/auth-backend/src/providers/microsoft/provider.test.ts index 6f8df2d4df..a1128ee6b9 100644 --- a/plugins/auth-backend/src/providers/microsoft/provider.test.ts +++ b/plugins/auth-backend/src/providers/microsoft/provider.test.ts @@ -45,6 +45,9 @@ describe('MicrosoftAuthProvider', () => { }, })({ providerId: 'microsoft', + baseUrl: 'http://backstage.test/api/auth', + appUrl: 'http://backstage.test', + isOriginAllowed: _ => true, globalConfig: { baseUrl: 'http://backstage.test/api/auth', appUrl: 'http://backstage.test', diff --git a/plugins/auth-node/src/identity/index.ts b/plugins/auth-node/src/identity/index.ts index 1a39c7aba3..24e2dcb691 100644 --- a/plugins/auth-node/src/identity/index.ts +++ b/plugins/auth-node/src/identity/index.ts @@ -21,4 +21,4 @@ export { type IdentityClientOptions, } from './DefaultIdentityClient'; export { IdentityClient } from './IdentityClient'; -export type { IdentityApi } from './IdentityApi'; +export type { IdentityApi, IdentityApiGetIdentityRequest } from './IdentityApi'; diff --git a/plugins/auth-node/src/oauth/index.ts b/plugins/auth-node/src/oauth/index.ts index ff07a1e6a8..25213dd2f0 100644 --- a/plugins/auth-node/src/oauth/index.ts +++ b/plugins/auth-node/src/oauth/index.ts @@ -40,6 +40,5 @@ export { type OAuthAuthenticatorRefreshInput, type OAuthAuthenticatorResult, type OAuthAuthenticatorStartInput, - type OAuthProfileTransform, type OAuthSession, } from './types'; diff --git a/plugins/auth-node/src/oauth/types.ts b/plugins/auth-node/src/oauth/types.ts index e6ddf370b6..c552de394e 100644 --- a/plugins/auth-node/src/oauth/types.ts +++ b/plugins/auth-node/src/oauth/types.ts @@ -18,6 +18,7 @@ import { Config } from '@backstage/config'; import { Request } from 'express'; import { ProfileTransform } from '../types'; +/** @public */ export interface OAuthSession { accessToken: string; tokenType: string; @@ -27,33 +28,39 @@ export interface OAuthSession { refreshToken?: string; } +/** @public */ export interface OAuthAuthenticatorStartInput { scope: string; state: string; req: Request; } +/** @public */ export interface OAuthAuthenticatorAuthenticateInput { req: Request; } +/** @public */ export interface OAuthAuthenticatorRefreshInput { scope: string; refreshToken: string; req: Request; } +/** @public */ export interface OAuthAuthenticatorLogoutInput { accessToken?: string; refreshToken?: string; req: Request; } +/** @public */ export interface OAuthAuthenticatorResult { fullProfile: TProfile; session: OAuthSession; } +/** @public */ export interface OAuthAuthenticator { defaultProfileTransform: ProfileTransform>; shouldPersistScopes?: boolean; @@ -73,6 +80,7 @@ export interface OAuthAuthenticator { logout?(input: OAuthAuthenticatorLogoutInput, ctx: TContext): Promise; } +/** @public */ export function createOAuthAuthenticator( authenticator: OAuthAuthenticator, ): OAuthAuthenticator { diff --git a/plugins/auth-node/src/proxy/createProxyAuthProviderFactory.ts b/plugins/auth-node/src/proxy/createProxyAuthProviderFactory.ts index a50225e911..8626c40b33 100644 --- a/plugins/auth-node/src/proxy/createProxyAuthProviderFactory.ts +++ b/plugins/auth-node/src/proxy/createProxyAuthProviderFactory.ts @@ -26,6 +26,7 @@ import { import { createProxyAuthRouteHandlers } from './createProxyRouteHandlers'; import { ProxyAuthenticator } from './types'; +/** @public */ export function createProxyAuthProviderFactory(options: { authenticator: ProxyAuthenticator; profileTransform?: ProfileTransform; diff --git a/plugins/auth-node/src/proxy/types.ts b/plugins/auth-node/src/proxy/types.ts index a7e0da2d4c..969b022abb 100644 --- a/plugins/auth-node/src/proxy/types.ts +++ b/plugins/auth-node/src/proxy/types.ts @@ -18,6 +18,7 @@ import { Config } from '@backstage/config'; import { Request } from 'express'; import { ProfileTransform } from '../types'; +/** @public */ export interface ProxyAuthenticator { defaultProfileTransform: ProfileTransform; initialize(ctx: { config: Config }): Promise; @@ -27,6 +28,7 @@ export interface ProxyAuthenticator { ): Promise<{ result: TResult }>; } +/** @public */ export function createProxyAuthenticator( authenticator: ProxyAuthenticator, ): ProxyAuthenticator { diff --git a/plugins/auth-node/src/sign-in/createSignInResolverFactory.ts b/plugins/auth-node/src/sign-in/createSignInResolverFactory.ts index 25e65754fe..6379eafd25 100644 --- a/plugins/auth-node/src/sign-in/createSignInResolverFactory.ts +++ b/plugins/auth-node/src/sign-in/createSignInResolverFactory.ts @@ -19,6 +19,7 @@ import { SignInResolver } from '../types'; import zodToJsonSchema from 'zod-to-json-schema'; import { JsonObject } from '@backstage/types'; +/** @public */ export interface SignInResolverFactory { ( ...options: undefined extends TOptions @@ -28,6 +29,7 @@ export interface SignInResolverFactory { optionsJsonSchema?: JsonObject; } +/** @public */ export interface SignInResolverFactoryOptions< TAuthResult, TOptionsOutput, @@ -37,6 +39,7 @@ export interface SignInResolverFactoryOptions< create(options: TOptionsOutput): SignInResolver; } +/** @public */ export function createSignInResolverFactory< TAuthResult, TOptionsOutput, From 9ae287521a800cacb9a2fb042ca963cd8ae6dbf6 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Tue, 8 Aug 2023 17:13:03 +0200 Subject: [PATCH 156/372] auth-backend: fix legacy adaopter test Signed-off-by: Patrik Oldsberg --- .../src/lib/legacy/adaptOAuthSignInResolverToLegacy.test.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/plugins/auth-backend/src/lib/legacy/adaptOAuthSignInResolverToLegacy.test.ts b/plugins/auth-backend/src/lib/legacy/adaptOAuthSignInResolverToLegacy.test.ts index 37853d4840..521dcf6395 100644 --- a/plugins/auth-backend/src/lib/legacy/adaptOAuthSignInResolverToLegacy.test.ts +++ b/plugins/auth-backend/src/lib/legacy/adaptOAuthSignInResolverToLegacy.test.ts @@ -76,7 +76,10 @@ describe('adaptOAuthSignInResolverToLegacy', () => { ); expect(resolverB).not.toHaveBeenCalled(); - legacyResolvers.resolverB()({} as any, {} as any); + legacyResolvers.resolverB()( + { profile: {}, result: { params: {} } } as any, + {} as any, + ); expect(resolverB).toHaveBeenCalled(); }); }); From e0cc11461125250e0022984c183145129e57baa8 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Tue, 8 Aug 2023 17:13:22 +0200 Subject: [PATCH 157/372] auth-*: update API reports Signed-off-by: Patrik Oldsberg --- .../api-report.md | 46 ++ .../api-report.md | 31 + plugins/auth-backend/api-report.md | 283 +++------ plugins/auth-node/api-report.md | 575 ++++++++++++++++++ 4 files changed, 748 insertions(+), 187 deletions(-) create mode 100644 plugins/auth-backend-module-gcp-iap-provider/api-report.md create mode 100644 plugins/auth-backend-module-google-provider/api-report.md diff --git a/plugins/auth-backend-module-gcp-iap-provider/api-report.md b/plugins/auth-backend-module-gcp-iap-provider/api-report.md new file mode 100644 index 0000000000..02b77cea36 --- /dev/null +++ b/plugins/auth-backend-module-gcp-iap-provider/api-report.md @@ -0,0 +1,46 @@ +## API Report File for "@backstage/plugin-auth-backend-module-gcp-iap-provider" + +> 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 { JsonPrimitive } from '@backstage/types'; +import { ProxyAuthenticator } from '@backstage/plugin-auth-node'; +import { SignInResolverFactory } from '@backstage/plugin-auth-node'; + +// @public (undocumented) +export const authModuleGcpIapProvider: () => BackendFeature; + +// @public (undocumented) +export const gcpIapAuthenticator: ProxyAuthenticator< + { + jwtHeader: string; + tokenValidator: (token: string) => Promise; + }, + { + iapToken: GcpIapTokenInfo; + } +>; + +// @public +export type GcpIapResult = { + iapToken: GcpIapTokenInfo; +}; + +// @public +export namespace gcpIapSignInResolvers { + const emailMatchingUserEntityAnnotation: SignInResolverFactory< + GcpIapResult, + unknown + >; +} + +// @public +export type GcpIapTokenInfo = { + sub: string; + email: string; + [key: string]: JsonPrimitive; +}; + +// (No @packageDocumentation comment for this package) +``` diff --git a/plugins/auth-backend-module-google-provider/api-report.md b/plugins/auth-backend-module-google-provider/api-report.md new file mode 100644 index 0000000000..8040c44832 --- /dev/null +++ b/plugins/auth-backend-module-google-provider/api-report.md @@ -0,0 +1,31 @@ +## API Report File for "@backstage/plugin-auth-backend-module-google-provider" + +> 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 { OAuthAuthenticator } from '@backstage/plugin-auth-node'; +import { OAuthAuthenticatorResult } from '@backstage/plugin-auth-node'; +import { PassportOAuthAuthenticatorHelper } from '@backstage/plugin-auth-node'; +import { PassportProfile } from '@backstage/plugin-auth-node'; +import { SignInResolverFactory } from '@backstage/plugin-auth-node'; + +// @public (undocumented) +export const authModuleGoogleProvider: () => BackendFeature; + +// @public (undocumented) +export const googleAuthenticator: OAuthAuthenticator< + PassportOAuthAuthenticatorHelper, + PassportProfile +>; + +// @public +export namespace googleSignInResolvers { + const emailMatchingUserEntityAnnotation: SignInResolverFactory< + OAuthAuthenticatorResult, + unknown + >; +} + +// (No @packageDocumentation comment for this package) +``` diff --git a/plugins/auth-backend/api-report.md b/plugins/auth-backend/api-report.md index 80db2e0b71..188cca75e0 100644 --- a/plugins/auth-backend/api-report.md +++ b/plugins/auth-backend/api-report.md @@ -5,24 +5,40 @@ ```ts /// -import { BackstageIdentityResponse } from '@backstage/plugin-auth-node'; +import { AuthProviderConfig as AuthProviderConfig_2 } from '@backstage/plugin-auth-node'; +import { AuthProviderFactory as AuthProviderFactory_2 } from '@backstage/plugin-auth-node'; +import { AuthProviderRouteHandlers as AuthProviderRouteHandlers_2 } from '@backstage/plugin-auth-node'; +import { AuthResolverCatalogUserQuery as AuthResolverCatalogUserQuery_2 } from '@backstage/plugin-auth-node'; +import { AuthResolverContext as AuthResolverContext_2 } from '@backstage/plugin-auth-node'; import { BackstageSignInResult } from '@backstage/plugin-auth-node'; import { CacheService } from '@backstage/backend-plugin-api'; import { CatalogApi } from '@backstage/catalog-client'; +import { ClientAuthResponse } from '@backstage/plugin-auth-node'; import { Config } from '@backstage/config'; +import { CookieConfigurer as CookieConfigurer_2 } from '@backstage/plugin-auth-node'; +import { decodeOAuthState } from '@backstage/plugin-auth-node'; +import { encodeOAuthState } from '@backstage/plugin-auth-node'; import { Entity } from '@backstage/catalog-model'; import express from 'express'; -import { GetEntitiesRequest } from '@backstage/catalog-client'; +import { GcpIapResult as GcpIapResult_2 } from '@backstage/plugin-auth-backend-module-gcp-iap-provider'; +import { GcpIapTokenInfo as GcpIapTokenInfo_2 } from '@backstage/plugin-auth-backend-module-gcp-iap-provider'; import { IncomingHttpHeaders } from 'http'; -import { JsonValue } from '@backstage/types'; -import { Logger } from 'winston'; +import { LoggerService } from '@backstage/backend-plugin-api'; +import { OAuthEnvironmentHandler as OAuthEnvironmentHandler_2 } from '@backstage/plugin-auth-node'; +import { OAuthState as OAuthState_2 } from '@backstage/plugin-auth-node'; import { PluginDatabaseManager } from '@backstage/backend-common'; import { PluginEndpointDiscovery } from '@backstage/backend-common'; +import { prepareBackstageIdentityResponse as prepareBackstageIdentityResponse_2 } from '@backstage/plugin-auth-node'; import { Profile } from 'passport'; +import { ProfileInfo as ProfileInfo_2 } from '@backstage/plugin-auth-node'; +import { SignInInfo as SignInInfo_2 } from '@backstage/plugin-auth-node'; +import { SignInResolver as SignInResolver_2 } from '@backstage/plugin-auth-node'; import { TokenManager } from '@backstage/backend-common'; +import { TokenParams as TokenParams_2 } from '@backstage/plugin-auth-node'; import { TokenSet } from 'openid-client'; import { UserEntity } from '@backstage/catalog-model'; import { UserinfoResponse } from 'openid-client'; +import { WebMessageResponse as WebMessageResponse_2 } from '@backstage/plugin-auth-node'; // @public export type AuthHandler = ( @@ -35,68 +51,23 @@ export type AuthHandlerResult = { profile: ProfileInfo; }; -// @public (undocumented) -export type AuthProviderConfig = { - baseUrl: string; - appUrl: string; - isOriginAllowed: (origin: string) => boolean; - cookieConfigurer?: CookieConfigurer; -}; +// @public @deprecated (undocumented) +export type AuthProviderConfig = AuthProviderConfig_2; -// @public (undocumented) -export type AuthProviderFactory = (options: { - providerId: string; - globalConfig: AuthProviderConfig; - config: Config; - logger: Logger; - resolverContext: AuthResolverContext; -}) => AuthProviderRouteHandlers; +// @public @deprecated (undocumented) +export type AuthProviderFactory = AuthProviderFactory_2; -// @public -export interface AuthProviderRouteHandlers { - frameHandler(req: express.Request, res: express.Response): Promise; - logout?(req: express.Request, res: express.Response): Promise; - refresh?(req: express.Request, res: express.Response): Promise; - start(req: express.Request, res: express.Response): Promise; -} +// @public @deprecated (undocumented) +export type AuthProviderRouteHandlers = AuthProviderRouteHandlers_2; -// @public -export type AuthResolverCatalogUserQuery = - | { - entityRef: - | string - | { - kind?: string; - namespace?: string; - name: string; - }; - } - | { - annotations: Record; - } - | { - filter: Exclude; - }; +// @public @deprecated (undocumented) +export type AuthResolverCatalogUserQuery = AuthResolverCatalogUserQuery_2; -// @public -export type AuthResolverContext = { - issueToken(params: TokenParams): Promise<{ - token: string; - }>; - findCatalogUser(query: AuthResolverCatalogUserQuery): Promise<{ - entity: Entity; - }>; - signInWithCatalogUser( - query: AuthResolverCatalogUserQuery, - ): Promise; -}; +// @public @deprecated (undocumented) +export type AuthResolverContext = AuthResolverContext_2; -// @public (undocumented) -export type AuthResponse = { - providerInfo: ProviderInfo; - profile: ProfileInfo; - backstageIdentity?: BackstageIdentityResponse; -}; +// @public @deprecated (undocumented) +export type AuthResponse = ClientAuthResponse; // @public (undocumented) export type AwsAlbResult = { @@ -151,7 +122,7 @@ export class CatalogIdentityClient { findUser(query: { annotations: Record }): Promise; resolveCatalogMembership(query: { entityRefs: string[]; - logger?: Logger; + logger?: LoggerService; }): Promise; } @@ -191,18 +162,8 @@ export type CloudflareAccessResult = { token: string; }; -// @public -export type CookieConfigurer = (ctx: { - providerId: string; - baseUrl: string; - callbackUrl: string; - appOrigin: string; -}) => { - domain: string; - path: string; - secure: boolean; - sameSite?: 'none' | 'lax' | 'strict'; -}; +// @public @deprecated (undocumented) +export type CookieConfigurer = CookieConfigurer_2; // @public export function createAuthProviderIntegration< @@ -235,23 +196,17 @@ export type EasyAuthResult = { accessToken?: string; }; -// @public (undocumented) -export const encodeState: (state: OAuthState) => string; +// @public @deprecated (undocumented) +export const encodeState: typeof encodeOAuthState; -// @public (undocumented) +// @public @deprecated (undocumented) export const ensuresXRequestedWith: (req: express.Request) => boolean; -// @public -export type GcpIapResult = { - iapToken: GcpIapTokenInfo; -}; +// @public @deprecated +export type GcpIapResult = GcpIapResult_2; -// @public -export type GcpIapTokenInfo = { - sub: string; - email: string; - [key: string]: JsonValue; -}; +// @public @deprecated +export type GcpIapTokenInfo = GcpIapTokenInfo_2; // @public export function getDefaultOwnershipEntityRefs(entity: Entity): string[]; @@ -276,7 +231,7 @@ export type OAuth2ProxyResult = { getHeader(name: string): string | undefined; }; -// @public (undocumented) +// @public @deprecated (undocumented) export class OAuthAdapter implements AuthProviderRouteHandlers { constructor(handlers: OAuthHandlers, options: OAuthAdapterOptions); // (undocumented) @@ -298,7 +253,7 @@ export class OAuthAdapter implements AuthProviderRouteHandlers { start(req: express.Request, res: express.Response): Promise; } -// @public (undocumented) +// @public @deprecated (undocumented) export type OAuthAdapterOptions = { providerId: string; persistScopes?: boolean; @@ -309,25 +264,10 @@ export type OAuthAdapterOptions = { callbackUrl: string; }; -// @public (undocumented) -export class OAuthEnvironmentHandler implements AuthProviderRouteHandlers { - constructor(handlers: Map); - // (undocumented) - frameHandler(req: express.Request, res: express.Response): Promise; - // (undocumented) - logout(req: express.Request, res: express.Response): Promise; - // (undocumented) - static mapConfig( - config: Config, - factoryFunc: (envConfig: Config) => AuthProviderRouteHandlers, - ): OAuthEnvironmentHandler; - // (undocumented) - refresh(req: express.Request, res: express.Response): Promise; - // (undocumented) - start(req: express.Request, res: express.Response): Promise; -} +// @public @deprecated (undocumented) +export const OAuthEnvironmentHandler: typeof OAuthEnvironmentHandler_2; -// @public +// @public @deprecated (undocumented) export interface OAuthHandlers { handler(req: express.Request): Promise<{ response: OAuthResponse; @@ -341,7 +281,7 @@ export interface OAuthHandlers { start(req: OAuthStartRequest): Promise; } -// @public (undocumented) +// @public @deprecated (undocumented) export type OAuthLogoutRequest = express.Request<{}> & { refreshToken: string; }; @@ -354,39 +294,40 @@ export type OAuthProviderInfo = { scope: string; }; -// @public +// @public @deprecated export type OAuthProviderOptions = { clientId: string; clientSecret: string; callbackUrl: string; }; -// @public (undocumented) +// @public @deprecated (undocumented) export type OAuthRefreshRequest = express.Request<{}> & { scope: string; refreshToken: string; }; -// @public +// @public @deprecated (undocumented) export type OAuthResponse = { profile: ProfileInfo; providerInfo: OAuthProviderInfo; backstageIdentity?: BackstageSignInResult; }; -// @public (undocumented) +// @public @deprecated (undocumented) export type OAuthResult = { fullProfile: Profile; params: { id_token?: string; scope: string; + token_type?: string; expires_in: number; }; accessToken: string; refreshToken?: string; }; -// @public (undocumented) +// @public @deprecated (undocumented) export type OAuthStartRequest = express.Request<{}> & { scope: string; state: OAuthState; @@ -398,15 +339,8 @@ export type OAuthStartResponse = { status?: number; }; -// @public (undocumented) -export type OAuthState = { - nonce: string; - env: string; - origin?: string; - scope?: string; - redirectUrl?: string; - flow?: string; -}; +// @public @deprecated (undocumented) +export type OAuthState = OAuthState_2; // @public export type OidcAuthResult = { @@ -414,24 +348,18 @@ export type OidcAuthResult = { userinfo: UserinfoResponse; }; -// @public (undocumented) +// @public @deprecated (undocumented) export const postMessageResponse: ( res: express.Response, appOrigin: string, response: WebMessageResponse, ) => void; -// @public -export function prepareBackstageIdentityResponse( - result: BackstageSignInResult, -): BackstageIdentityResponse; +// @public @deprecated (undocumented) +export const prepareBackstageIdentityResponse: typeof prepareBackstageIdentityResponse_2; -// @public -export type ProfileInfo = { - email?: string; - displayName?: string; - picture?: string; -}; +// @public @deprecated (undocumented) +export type ProfileInfo = ProfileInfo_2; // @public (undocumented) export type ProviderFactories = { @@ -452,7 +380,7 @@ export const providers: Readonly<{ | undefined; } | undefined, - ) => AuthProviderFactory; + ) => AuthProviderFactory_2; resolvers: never; }>; auth0: Readonly<{ @@ -467,7 +395,7 @@ export const providers: Readonly<{ | undefined; } | undefined, - ) => AuthProviderFactory; + ) => AuthProviderFactory_2; resolvers: never; }>; awsAlb: Readonly<{ @@ -480,7 +408,7 @@ export const providers: Readonly<{ }; } | undefined, - ) => AuthProviderFactory; + ) => AuthProviderFactory_2; resolvers: never; }>; bitbucket: Readonly<{ @@ -495,7 +423,7 @@ export const providers: Readonly<{ | undefined; } | undefined, - ) => AuthProviderFactory; + ) => AuthProviderFactory_2; resolvers: Readonly<{ usernameMatchingUserEntityAnnotation(): SignInResolver; userIdMatchingUserEntityAnnotation(): SignInResolver; @@ -513,7 +441,7 @@ export const providers: Readonly<{ | undefined; } | undefined, - ) => AuthProviderFactory; + ) => AuthProviderFactory_2; resolvers: Readonly<{ emailMatchingUserEntityProfileEmail: () => SignInResolver; }>; @@ -525,18 +453,18 @@ export const providers: Readonly<{ resolver: SignInResolver; }; cache?: CacheService | undefined; - }) => AuthProviderFactory; + }) => AuthProviderFactory_2; resolvers: Readonly<{ emailMatchingUserEntityProfileEmail: () => SignInResolver; }>; }>; gcpIap: Readonly<{ create: (options: { - authHandler?: AuthHandler | undefined; + authHandler?: AuthHandler | undefined; signIn: { - resolver: SignInResolver; + resolver: SignInResolver; }; - }) => AuthProviderFactory; + }) => AuthProviderFactory_2; resolvers: never; }>; github: Readonly<{ @@ -552,7 +480,7 @@ export const providers: Readonly<{ stateEncoder?: StateEncoder | undefined; } | undefined, - ) => AuthProviderFactory; + ) => AuthProviderFactory_2; resolvers: Readonly<{ usernameMatchingUserEntityName: () => SignInResolver; }>; @@ -569,7 +497,7 @@ export const providers: Readonly<{ | undefined; } | undefined, - ) => AuthProviderFactory; + ) => AuthProviderFactory_2; resolvers: never; }>; google: Readonly<{ @@ -584,11 +512,11 @@ export const providers: Readonly<{ | undefined; } | undefined, - ) => AuthProviderFactory; + ) => AuthProviderFactory_2; resolvers: Readonly<{ - emailLocalPartMatchingUserEntityName: () => SignInResolver; - emailMatchingUserEntityProfileEmail: () => SignInResolver; - emailMatchingUserEntityAnnotation(): SignInResolver; + emailMatchingUserEntityProfileEmail: () => SignInResolver_2; + emailLocalPartMatchingUserEntityName: () => SignInResolver_2; + emailMatchingUserEntityAnnotation: () => SignInResolver_2; }>; }>; microsoft: Readonly<{ @@ -603,7 +531,7 @@ export const providers: Readonly<{ | undefined; } | undefined, - ) => AuthProviderFactory; + ) => AuthProviderFactory_2; resolvers: Readonly<{ emailLocalPartMatchingUserEntityName: () => SignInResolver; emailMatchingUserEntityProfileEmail: () => SignInResolver; @@ -622,7 +550,7 @@ export const providers: Readonly<{ | undefined; } | undefined, - ) => AuthProviderFactory; + ) => AuthProviderFactory_2; resolvers: never; }>; oauth2Proxy: Readonly<{ @@ -631,7 +559,7 @@ export const providers: Readonly<{ signIn: { resolver: SignInResolver>; }; - }) => AuthProviderFactory; + }) => AuthProviderFactory_2; resolvers: never; }>; oidc: Readonly<{ @@ -646,7 +574,7 @@ export const providers: Readonly<{ | undefined; } | undefined, - ) => AuthProviderFactory; + ) => AuthProviderFactory_2; resolvers: Readonly<{ emailLocalPartMatchingUserEntityName: () => SignInResolver; emailMatchingUserEntityProfileEmail: () => SignInResolver; @@ -664,7 +592,7 @@ export const providers: Readonly<{ | undefined; } | undefined, - ) => AuthProviderFactory; + ) => AuthProviderFactory_2; resolvers: Readonly<{ emailLocalPartMatchingUserEntityName: () => SignInResolver; emailMatchingUserEntityProfileEmail: () => SignInResolver; @@ -683,7 +611,7 @@ export const providers: Readonly<{ | undefined; } | undefined, - ) => AuthProviderFactory; + ) => AuthProviderFactory_2; resolvers: never; }>; saml: Readonly<{ @@ -698,7 +626,7 @@ export const providers: Readonly<{ | undefined; } | undefined, - ) => AuthProviderFactory; + ) => AuthProviderFactory_2; resolvers: Readonly<{ nameIdMatchingUserEntityName(): SignInResolver; }>; @@ -713,13 +641,13 @@ export const providers: Readonly<{ }; } | undefined, - ) => AuthProviderFactory; + ) => AuthProviderFactory_2; resolvers: never; }>; }>; -// @public (undocumented) -export const readState: (stateString: string) => OAuthState; +// @public @deprecated (undocumented) +export const readState: typeof decodeOAuthState; // @public (undocumented) export interface RouterOptions { @@ -732,7 +660,7 @@ export interface RouterOptions { // (undocumented) discovery: PluginEndpointDiscovery; // (undocumented) - logger: Logger; + logger: LoggerService; // (undocumented) providerFactories?: ProviderFactories; // (undocumented) @@ -746,42 +674,23 @@ export type SamlAuthResult = { fullProfile: any; }; -// @public -export type SignInInfo = { - profile: ProfileInfo; - result: TAuthResult; -}; +// @public @deprecated (undocumented) +export type SignInInfo = SignInInfo_2; -// @public -export type SignInResolver = ( - info: SignInInfo, - context: AuthResolverContext, -) => Promise; +// @public @deprecated (undocumented) +export type SignInResolver = SignInResolver_2; // @public (undocumented) export type StateEncoder = (req: OAuthStartRequest) => Promise<{ encodedState: string; }>; -// @public -export type TokenParams = { - claims: { - sub: string; - ent?: string[]; - } & Record; -}; +// @public @deprecated (undocumented) +export type TokenParams = TokenParams_2; -// @public (undocumented) +// @public @deprecated (undocumented) export const verifyNonce: (req: express.Request, providerId: string) => void; -// @public -export type WebMessageResponse = - | { - type: 'authorization_response'; - response: AuthResponse; - } - | { - type: 'authorization_response'; - error: Error; - }; +// @public @deprecated (undocumented) +export type WebMessageResponse = WebMessageResponse_2; ``` diff --git a/plugins/auth-node/api-report.md b/plugins/auth-node/api-report.md index bc9e392929..4a384834d6 100644 --- a/plugins/auth-node/api-report.md +++ b/plugins/auth-node/api-report.md @@ -3,8 +3,100 @@ > Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). ```ts +import { BackstageIdentityResponse as BackstageIdentityResponse_2 } from '@backstage/plugin-auth-node'; +import { BackstageSignInResult as BackstageSignInResult_2 } from '@backstage/plugin-auth-node'; +import { Config } from '@backstage/config'; +import { Entity } from '@backstage/catalog-model'; +import { EntityFilterQuery } from '@backstage/catalog-client'; +import express from 'express'; +import { ExtensionPoint } from '@backstage/backend-plugin-api'; +import { JsonObject } from '@backstage/types'; +import { JsonValue } from '@backstage/types'; +import { LoggerService } from '@backstage/backend-plugin-api'; import { PluginEndpointDiscovery } from '@backstage/backend-common'; +import { Profile } from 'passport'; import { Request as Request_2 } from 'express'; +import { Response as Response_2 } from 'express'; +import { Strategy } from 'passport'; +import { ZodSchema } from 'zod'; +import { ZodTypeDef } from 'zod'; + +// @public @deprecated (undocumented) +export type AuthProviderConfig = { + baseUrl: string; + appUrl: string; + isOriginAllowed: (origin: string) => boolean; + cookieConfigurer?: CookieConfigurer; +}; + +// @public (undocumented) +export type AuthProviderFactory = (options: { + providerId: string; + globalConfig: AuthProviderConfig; + config: Config; + logger: LoggerService; + resolverContext: AuthResolverContext; + baseUrl: string; + appUrl: string; + isOriginAllowed: (origin: string) => boolean; + cookieConfigurer?: CookieConfigurer; +}) => AuthProviderRouteHandlers; + +// @public (undocumented) +export interface AuthProviderRegistrationOptions { + // (undocumented) + factory: AuthProviderFactory; + // (undocumented) + providerId: string; +} + +// @public +export interface AuthProviderRouteHandlers { + frameHandler(req: Request_2, res: Response_2): Promise; + logout?(req: Request_2, res: Response_2): Promise; + refresh?(req: Request_2, res: Response_2): Promise; + start(req: Request_2, res: Response_2): Promise; +} + +// @public (undocumented) +export interface AuthProvidersExtensionPoint { + // (undocumented) + registerProvider(options: AuthProviderRegistrationOptions): void; +} + +// @public (undocumented) +export const authProvidersExtensionPoint: ExtensionPoint; + +// @public +export type AuthResolverCatalogUserQuery = + | { + entityRef: + | string + | { + kind?: string; + namespace?: string; + name: string; + }; + } + | { + annotations: Record; + } + | { + filter: EntityFilterQuery; + }; + +// @public +export type AuthResolverContext = { + issueToken(params: TokenParams): Promise<{ + token: string; + }>; + findCatalogUser(query: AuthResolverCatalogUserQuery): Promise<{ + entity: Entity; + }>; + signInWithCatalogUser( + query: AuthResolverCatalogUserQuery, + ): Promise; +}; // @public export interface BackstageIdentityResponse extends BackstageSignInResult { @@ -23,6 +115,99 @@ export type BackstageUserIdentity = { ownershipEntityRefs: string[]; }; +// @public (undocumented) +export type ClientAuthResponse = { + providerInfo: TProviderInfo; + profile: ProfileInfo; + backstageIdentity?: BackstageIdentityResponse; +}; + +// @public +export namespace commonSignInResolvers { + const emailMatchingUserEntityProfileEmail: SignInResolverFactory< + unknown, + unknown + >; + const emailLocalPartMatchingUserEntityName: SignInResolverFactory< + unknown, + unknown + >; +} + +// @public +export type CookieConfigurer = (ctx: { + providerId: string; + baseUrl: string; + callbackUrl: string; + appOrigin: string; +}) => { + domain: string; + path: string; + secure: boolean; + sameSite?: 'none' | 'lax' | 'strict'; +}; + +// @public (undocumented) +export function createOAuthAuthenticator( + authenticator: OAuthAuthenticator, +): OAuthAuthenticator; + +// @public (undocumented) +export function createOAuthProviderFactory(options: { + authenticator: OAuthAuthenticator; + stateTransform?: OAuthStateTransform; + profileTransform?: ProfileTransform>; + signInResolver?: SignInResolver>; + signInResolverFactories?: { + [name in string]: SignInResolverFactory< + OAuthAuthenticatorResult, + unknown + >; + }; +}): AuthProviderFactory; + +// @public (undocumented) +export function createOAuthRouteHandlers( + options: OAuthRouteHandlersOptions, +): AuthProviderRouteHandlers; + +// @public (undocumented) +export function createProxyAuthenticator( + authenticator: ProxyAuthenticator, +): ProxyAuthenticator; + +// @public (undocumented) +export function createProxyAuthProviderFactory(options: { + authenticator: ProxyAuthenticator; + profileTransform?: ProfileTransform; + signInResolver?: SignInResolver; + signInResolverFactories?: Record< + string, + SignInResolverFactory + >; +}): AuthProviderFactory; + +// @public (undocumented) +export function createProxyAuthRouteHandlers( + options: ProxyAuthRouteHandlersOptions, +): AuthProviderRouteHandlers; + +// @public (undocumented) +export function createSignInResolverFactory< + TAuthResult, + TOptionsOutput, + TOptionsInput, +>( + options: SignInResolverFactoryOptions< + TAuthResult, + TOptionsOutput, + TOptionsInput + >, +): SignInResolverFactory; + +// @public (undocumented) +export function decodeOAuthState(encodedState: string): OAuthState; + // @public export class DefaultIdentityClient implements IdentityApi { // @deprecated @@ -34,6 +219,9 @@ export class DefaultIdentityClient implements IdentityApi { ): Promise; } +// @public (undocumented) +export function encodeOAuthState(state: OAuthState): string; + // @public export function getBearerTokenFromAuthorizationHeader( authorizationHeader: unknown, @@ -65,4 +253,391 @@ export type IdentityClientOptions = { issuer?: string; algorithms?: string[]; }; + +// @public (undocumented) +export interface OAuthAuthenticator { + // (undocumented) + authenticate( + input: OAuthAuthenticatorAuthenticateInput, + ctx: TContext, + ): Promise>; + // (undocumented) + defaultProfileTransform: ProfileTransform>; + // (undocumented) + initialize(ctx: { callbackUrl: string; config: Config }): TContext; + // (undocumented) + logout?(input: OAuthAuthenticatorLogoutInput, ctx: TContext): Promise; + // (undocumented) + refresh( + input: OAuthAuthenticatorRefreshInput, + ctx: TContext, + ): Promise>; + // (undocumented) + shouldPersistScopes?: boolean; + // (undocumented) + start( + input: OAuthAuthenticatorStartInput, + ctx: TContext, + ): Promise<{ + url: string; + status?: number; + }>; +} + +// @public (undocumented) +export interface OAuthAuthenticatorAuthenticateInput { + // (undocumented) + req: Request_2; +} + +// @public (undocumented) +export interface OAuthAuthenticatorLogoutInput { + // (undocumented) + accessToken?: string; + // (undocumented) + refreshToken?: string; + // (undocumented) + req: Request_2; +} + +// @public (undocumented) +export interface OAuthAuthenticatorRefreshInput { + // (undocumented) + refreshToken: string; + // (undocumented) + req: Request_2; + // (undocumented) + scope: string; +} + +// @public (undocumented) +export interface OAuthAuthenticatorResult { + // (undocumented) + fullProfile: TProfile; + // (undocumented) + session: OAuthSession; +} + +// @public (undocumented) +export interface OAuthAuthenticatorStartInput { + // (undocumented) + req: Request_2; + // (undocumented) + scope: string; + // (undocumented) + state: string; +} + +// @public (undocumented) +export class OAuthEnvironmentHandler implements AuthProviderRouteHandlers { + constructor(handlers: Map); + // (undocumented) + frameHandler(req: express.Request, res: express.Response): Promise; + // (undocumented) + logout(req: express.Request, res: express.Response): Promise; + // (undocumented) + static mapConfig( + config: Config, + factoryFunc: (envConfig: Config) => AuthProviderRouteHandlers, + ): OAuthEnvironmentHandler; + // (undocumented) + refresh(req: express.Request, res: express.Response): Promise; + // (undocumented) + start(req: express.Request, res: express.Response): Promise; +} + +// @public (undocumented) +export interface OAuthRouteHandlersOptions { + // (undocumented) + appUrl: string; + // (undocumented) + authenticator: OAuthAuthenticator; + // (undocumented) + baseUrl: string; + // (undocumented) + config: Config; + // (undocumented) + cookieConfigurer?: CookieConfigurer; + // (undocumented) + isOriginAllowed: (origin: string) => boolean; + // (undocumented) + profileTransform?: ProfileTransform>; + // (undocumented) + providerId: string; + // (undocumented) + resolverContext: AuthResolverContext; + // (undocumented) + signInResolver?: SignInResolver>; + // (undocumented) + stateTransform?: OAuthStateTransform; +} + +// @public (undocumented) +export interface OAuthSession { + // (undocumented) + accessToken: string; + // (undocumented) + expiresInSeconds: number; + // (undocumented) + idToken?: string; + // (undocumented) + refreshToken?: string; + // (undocumented) + scope: string; + // (undocumented) + tokenType: string; +} + +// @public (undocumented) +export type OAuthState = { + nonce: string; + env: string; + origin?: string; + scope?: string; + redirectUrl?: string; + flow?: string; +}; + +// @public (undocumented) +export type OAuthStateTransform = ( + state: OAuthState, + context: { + req: Request_2; + }, +) => Promise<{ + state: OAuthState; +}>; + +// @public (undocumented) +export type PassportDoneCallback = ( + err?: Error, + result?: TResult, + privateInfo?: TPrivateInfo, +) => void; + +// @public (undocumented) +export class PassportHelpers { + // (undocumented) + static executeFetchUserProfileStrategy( + providerStrategy: Strategy, + accessToken: string, + ): Promise; + // (undocumented) + static executeFrameHandlerStrategy( + req: Request_2, + providerStrategy: Strategy, + options?: Record, + ): Promise<{ + result: TResult; + privateInfo: TPrivateInfo; + }>; + // (undocumented) + static executeRedirectStrategy( + req: Request_2, + providerStrategy: Strategy, + options: Record, + ): Promise<{ + url: string; + status?: number; + }>; + // (undocumented) + static executeRefreshTokenStrategy( + providerStrategy: Strategy, + refreshToken: string, + scope: string, + ): Promise<{ + accessToken: string; + refreshToken?: string; + params: any; + }>; + // (undocumented) + static transformProfile: ( + profile: PassportProfile, + idToken?: string, + ) => ProfileInfo; +} + +// @public (undocumented) +export class PassportOAuthAuthenticatorHelper { + // (undocumented) + authenticate( + input: OAuthAuthenticatorAuthenticateInput, + ): Promise>; + // (undocumented) + static defaultProfileTransform: ProfileTransform< + OAuthAuthenticatorResult + >; + // (undocumented) + fetchProfile(accessToken: string): Promise; + // (undocumented) + static from(strategy: Strategy): PassportOAuthAuthenticatorHelper; + // (undocumented) + refresh( + input: OAuthAuthenticatorRefreshInput, + ): Promise>; + // (undocumented) + start( + input: OAuthAuthenticatorStartInput, + options: Record, + ): Promise<{ + url: string; + status?: number; + }>; +} + +// @public (undocumented) +export type PassportOAuthDoneCallback = PassportDoneCallback< + PassportOAuthResult, + PassportOAuthPrivateInfo +>; + +// @public (undocumented) +export type PassportOAuthPrivateInfo = { + refreshToken?: string; +}; + +// @public (undocumented) +export type PassportOAuthResult = { + fullProfile: PassportProfile; + params: { + id_token?: string; + scope: string; + token_type?: string; + expires_in: number; + }; + accessToken: string; +}; + +// @public (undocumented) +export type PassportProfile = Profile & { + avatarUrl?: string; +}; + +// @public +export function prepareBackstageIdentityResponse( + result: BackstageSignInResult_2, +): BackstageIdentityResponse_2; + +// @public +export type ProfileInfo = { + email?: string; + displayName?: string; + picture?: string; +}; + +// @public +export type ProfileTransform = ( + result: TResult, + context: AuthResolverContext, +) => Promise<{ + profile: ProfileInfo; +}>; + +// @public (undocumented) +export interface ProxyAuthenticator { + // (undocumented) + authenticate( + options: { + req: Request_2; + }, + ctx: TContext, + ): Promise<{ + result: TResult; + }>; + // (undocumented) + defaultProfileTransform: ProfileTransform; + // (undocumented) + initialize(ctx: { config: Config }): Promise; +} + +// @public (undocumented) +export interface ProxyAuthRouteHandlersOptions { + // (undocumented) + authenticator: ProxyAuthenticator; + // (undocumented) + config: Config; + // (undocumented) + profileTransform?: ProfileTransform; + // (undocumented) + resolverContext: AuthResolverContext; + // (undocumented) + signInResolver: SignInResolver; +} + +// @public (undocumented) +export function readDeclarativeSignInResolver( + options: ReadDeclarativeSignInResolverOptions, +): SignInResolver | undefined; + +// @public (undocumented) +export interface ReadDeclarativeSignInResolverOptions { + // (undocumented) + config: Config; + // (undocumented) + signInResolverFactories: { + [name in string]: SignInResolverFactory; + }; +} + +// @public (undocumented) +export function sendWebMessageResponse( + res: Response_2, + appOrigin: string, + response: WebMessageResponse, +): void; + +// @public +export type SignInInfo = { + profile: ProfileInfo; + result: TAuthResult; +}; + +// @public +export type SignInResolver = ( + info: SignInInfo, + context: AuthResolverContext, +) => Promise; + +// @public (undocumented) +export interface SignInResolverFactory { + // (undocumented) + ( + ...options: undefined extends TOptions + ? [options?: TOptions] + : [options: TOptions] + ): SignInResolver; + // (undocumented) + optionsJsonSchema?: JsonObject; +} + +// @public (undocumented) +export interface SignInResolverFactoryOptions< + TAuthResult, + TOptionsOutput, + TOptionsInput, +> { + // (undocumented) + create(options: TOptionsOutput): SignInResolver; + // (undocumented) + optionsSchema?: ZodSchema; +} + +// @public +export type TokenParams = { + claims: { + sub: string; + ent?: string[]; + } & Record; +}; + +// @public +export type WebMessageResponse = + | { + type: 'authorization_response'; + response: ClientAuthResponse; + } + | { + type: 'authorization_response'; + error: Error; + }; ``` From 961179c5333e969c38237ed99ae73a27e7e12cf1 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Tue, 8 Aug 2023 17:32:52 +0200 Subject: [PATCH 158/372] auth-backend: deprecate more types that have been indirectly moved to auth-node Signed-off-by: Patrik Oldsberg --- plugins/auth-backend/api-report.md | 14 +++++++------- plugins/auth-backend/src/lib/oauth/types.ts | 5 ++++- plugins/auth-backend/src/providers/types.ts | 12 ++++++++++-- 3 files changed, 21 insertions(+), 10 deletions(-) diff --git a/plugins/auth-backend/api-report.md b/plugins/auth-backend/api-report.md index 188cca75e0..afd7f95c97 100644 --- a/plugins/auth-backend/api-report.md +++ b/plugins/auth-backend/api-report.md @@ -11,7 +11,7 @@ import { AuthProviderRouteHandlers as AuthProviderRouteHandlers_2 } from '@backs import { AuthResolverCatalogUserQuery as AuthResolverCatalogUserQuery_2 } from '@backstage/plugin-auth-node'; import { AuthResolverContext as AuthResolverContext_2 } from '@backstage/plugin-auth-node'; import { BackstageSignInResult } from '@backstage/plugin-auth-node'; -import { CacheService } from '@backstage/backend-plugin-api'; +import { CacheClient } from '@backstage/backend-common'; import { CatalogApi } from '@backstage/catalog-client'; import { ClientAuthResponse } from '@backstage/plugin-auth-node'; import { Config } from '@backstage/config'; @@ -40,13 +40,13 @@ import { UserEntity } from '@backstage/catalog-model'; import { UserinfoResponse } from 'openid-client'; import { WebMessageResponse as WebMessageResponse_2 } from '@backstage/plugin-auth-node'; -// @public +// @public @deprecated export type AuthHandler = ( input: TAuthResult, context: AuthResolverContext, ) => Promise; -// @public +// @public @deprecated export type AuthHandlerResult = { profile: ProfileInfo; }; @@ -286,7 +286,7 @@ export type OAuthLogoutRequest = express.Request<{}> & { refreshToken: string; }; -// @public (undocumented) +// @public @deprecated (undocumented) export type OAuthProviderInfo = { accessToken: string; idToken?: string; @@ -333,7 +333,7 @@ export type OAuthStartRequest = express.Request<{}> & { state: OAuthState; }; -// @public (undocumented) +// @public @deprecated (undocumented) export type OAuthStartResponse = { url: string; status?: number; @@ -452,7 +452,7 @@ export const providers: Readonly<{ signIn: { resolver: SignInResolver; }; - cache?: CacheService | undefined; + cache?: CacheClient | undefined; }) => AuthProviderFactory_2; resolvers: Readonly<{ emailMatchingUserEntityProfileEmail: () => SignInResolver; @@ -680,7 +680,7 @@ export type SignInInfo = SignInInfo_2; // @public @deprecated (undocumented) export type SignInResolver = SignInResolver_2; -// @public (undocumented) +// @public @deprecated (undocumented) export type StateEncoder = (req: OAuthStartRequest) => Promise<{ encodedState: string; }>; diff --git a/plugins/auth-backend/src/lib/oauth/types.ts b/plugins/auth-backend/src/lib/oauth/types.ts index d133341ef4..b7205c9b85 100644 --- a/plugins/auth-backend/src/lib/oauth/types.ts +++ b/plugins/auth-backend/src/lib/oauth/types.ts @@ -69,7 +69,10 @@ export type OAuthResponse = { backstageIdentity?: BackstageSignInResult; }; -/** @public */ +/** + * @public + * @deprecated Use `createOAuthRouteHandlers` from `@backstage/plugin-auth-node` instead + */ export type OAuthProviderInfo = { /** * An access token issued for the signed in user. diff --git a/plugins/auth-backend/src/providers/types.ts b/plugins/auth-backend/src/providers/types.ts index 45d5be7c66..354387153c 100644 --- a/plugins/auth-backend/src/providers/types.ts +++ b/plugins/auth-backend/src/providers/types.ts @@ -46,7 +46,10 @@ export type AuthResolverContext = _AuthResolverContext; */ export type CookieConfigurer = _CookieConfigurer; -/** @public */ +/** + * @public + * @deprecated Use `createOAuthAuthenticator` from `@backstage/plugin-auth-node` instead + */ export type OAuthStartResponse = { /** * URL to redirect to @@ -105,6 +108,7 @@ export type SignInResolver = _SignInResolver; * information. * * @public + * @deprecated Use `createOAuthRouteHandlers` from `@backstage/plugin-auth-node` instead */ export type AuthHandlerResult = { profile: ProfileInfo }; @@ -120,13 +124,17 @@ export type AuthHandlerResult = { profile: ProfileInfo }; * group of users. * * @public + * @deprecated Use `createOAuthRouteHandlers` from `@backstage/plugin-auth-node` instead */ export type AuthHandler = ( input: TAuthResult, context: AuthResolverContext, ) => Promise; -/** @public */ +/** + * @public + * @deprecated Use `createOAuthRouteHandlers` from `@backstage/plugin-auth-node` instead + */ export type StateEncoder = ( req: OAuthStartRequest, ) => Promise<{ encodedState: string }>; From 8513cd7d00e3995344cdbb20acc97c5f2b036dcb Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Tue, 8 Aug 2023 17:52:39 +0200 Subject: [PATCH 159/372] changesets: added changesets for auth-backend refactor Signed-off-by: Patrik Oldsberg --- .changeset/dry-wasps-occur.md | 5 +++++ .changeset/healthy-tools-count.md | 5 +++++ .changeset/pink-cups-rescue.md | 28 ++++++++++++++++++++++++++++ .changeset/sweet-hairs-complain.md | 5 +++++ 4 files changed, 43 insertions(+) create mode 100644 .changeset/dry-wasps-occur.md create mode 100644 .changeset/healthy-tools-count.md create mode 100644 .changeset/pink-cups-rescue.md create mode 100644 .changeset/sweet-hairs-complain.md diff --git a/.changeset/dry-wasps-occur.md b/.changeset/dry-wasps-occur.md new file mode 100644 index 0000000000..0c7d231708 --- /dev/null +++ b/.changeset/dry-wasps-occur.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-auth-backend-module-gcp-iap-provider': minor +--- + +New module for `@backstage/plugin-auth-backend` that adds a GCP IAP auth provider. diff --git a/.changeset/healthy-tools-count.md b/.changeset/healthy-tools-count.md new file mode 100644 index 0000000000..5d3f04159f --- /dev/null +++ b/.changeset/healthy-tools-count.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-auth-backend': patch +--- + +Deprecated several exports that are now available from `@backstage/plugin-auth-node` instead. diff --git a/.changeset/pink-cups-rescue.md b/.changeset/pink-cups-rescue.md new file mode 100644 index 0000000000..abb69e88b7 --- /dev/null +++ b/.changeset/pink-cups-rescue.md @@ -0,0 +1,28 @@ +--- +'@backstage/plugin-auth-node': minor +--- + +Introduced a new system for building auth providers for `@backstage/plugin-auth-backend`, which both increases the amount of code re-use across providers, and also works better with the new backend system. + +Many existing types have been moved from `@backstage/plugin-auth-backend` in order to avoid a direct dependency on the plugin from modules. + +Auth provider integrations are now primarily implemented through a pattern of creating "authenticators", which are in turn specific to each kind of integrations. Initially there are two types: `createOAuthAuthenticator` and `createProxyAuthenticator`. These come paired with functions that let you create the corresponding route handlers, `createOAuthRouteHandlers` and `createProxyAuthRouteHandlers`, as well as provider factories, `createOAuthProviderFactory` and `createProxyAuthProviderFactory`. This new authenticator pattern allows the sign-in logic to be separated from the auth integration logic, allowing it to be completely re-used across all providers of the same kind. + +The new provider factories also implement a new declarative way to configure sign-in resolvers, rather than configuration through code. Sign-in resolvers can now be configured through the `resolvers` configuration key, where the first resolver that provides an identity will be used, for example: + +```yaml +auth: + providers: + google: + development: + clientId: ... + clientSecret: ... + signIn: + resolvers: + - resolver: emailMatchingUserEntityAnnotation + - resolver: emailLocalPartMatchingUserEntityName +``` + +These configurable resolvers are created with a new `createSignInResolverFactory` function, which creates a sign-in resolver factory, optionally with an options schema that will be used both when configuring the sign-in resolver through configuration and code. + +The internal helpers from `@backstage/plugin-auth-backend` that were used to implement auth providers using passport strategies have now also been made available as public API, through `PassportHelpers` and `PassportOAuthAuthenticatorHelper`. diff --git a/.changeset/sweet-hairs-complain.md b/.changeset/sweet-hairs-complain.md new file mode 100644 index 0000000000..56dede5617 --- /dev/null +++ b/.changeset/sweet-hairs-complain.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-auth-backend-module-google-provider': minor +--- + +New module for `@backstage/plugin-auth-backend` that adds a Google auth provider. From 0f0e2a378b361bd88f5a3e4e1e7ccbb6baaf65ec Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Wed, 9 Aug 2023 00:25:17 +0200 Subject: [PATCH 160/372] auth-backend: fix oauth state test Signed-off-by: Patrik Oldsberg --- plugins/auth-backend/src/lib/oauth/helpers.test.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/auth-backend/src/lib/oauth/helpers.test.ts b/plugins/auth-backend/src/lib/oauth/helpers.test.ts index 58a3dcab05..c8db34e2cc 100644 --- a/plugins/auth-backend/src/lib/oauth/helpers.test.ts +++ b/plugins/auth-backend/src/lib/oauth/helpers.test.ts @@ -76,7 +76,7 @@ describe('OAuthProvider Utils', () => { } as unknown as express.Request; expect(() => { verifyNonce(mockRequest, 'providera'); - }).toThrow('Invalid state passed via request'); + }).toThrow('OAuth state is invalid, missing env'); }); it('should throw error if nonce mismatch', () => { From f60d50a59f85f9b34818740d408c68d3746fd1a1 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Wed, 9 Aug 2023 10:41:53 +0200 Subject: [PATCH 161/372] auth-backend: sync API report Signed-off-by: Patrik Oldsberg --- plugins/auth-backend/api-report.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/auth-backend/api-report.md b/plugins/auth-backend/api-report.md index afd7f95c97..5eb038c436 100644 --- a/plugins/auth-backend/api-report.md +++ b/plugins/auth-backend/api-report.md @@ -11,7 +11,7 @@ import { AuthProviderRouteHandlers as AuthProviderRouteHandlers_2 } from '@backs import { AuthResolverCatalogUserQuery as AuthResolverCatalogUserQuery_2 } from '@backstage/plugin-auth-node'; import { AuthResolverContext as AuthResolverContext_2 } from '@backstage/plugin-auth-node'; import { BackstageSignInResult } from '@backstage/plugin-auth-node'; -import { CacheClient } from '@backstage/backend-common'; +import { CacheService } from '@backstage/backend-plugin-api'; import { CatalogApi } from '@backstage/catalog-client'; import { ClientAuthResponse } from '@backstage/plugin-auth-node'; import { Config } from '@backstage/config'; @@ -452,7 +452,7 @@ export const providers: Readonly<{ signIn: { resolver: SignInResolver; }; - cache?: CacheClient | undefined; + cache?: CacheService | undefined; }) => AuthProviderFactory_2; resolvers: Readonly<{ emailMatchingUserEntityProfileEmail: () => SignInResolver; From d71d02dd3ee05642f602f59db3f35626e83bf50e Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 9 Aug 2023 12:08:36 +0000 Subject: [PATCH 162/372] chore(deps): update dependency eslint-plugin-cypress to v2.14.0 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 0bf4d0ba0b..f0a5872bf4 100644 --- a/yarn.lock +++ b/yarn.lock @@ -24566,13 +24566,13 @@ __metadata: linkType: hard "eslint-plugin-cypress@npm:^2.10.3": - version: 2.13.3 - resolution: "eslint-plugin-cypress@npm:2.13.3" + version: 2.14.0 + resolution: "eslint-plugin-cypress@npm:2.14.0" dependencies: - globals: ^11.12.0 + globals: ^13.20.0 peerDependencies: eslint: ">= 3.2.1" - checksum: 9affbcee29e030a4251c4794f7533e8e8c0e3b98ab3470a2c730ed059f733c5857a04c7ac214cc0ca7aeef1b11242e72595de7fc1f6b8b4d4578d9eca10af203 + checksum: 3fa118a757aebb1aa6b419b2944744796aa4fa3cc1e2e19fa97777fd6792fba12b5ae117bf19bf7e7d9a1abdd48398cfba9ca6f2c62fd690a2108a9a02f3f2ae languageName: node linkType: hard @@ -26751,19 +26751,19 @@ __metadata: languageName: node linkType: hard -"globals@npm:^11.1.0, globals@npm:^11.12.0": +"globals@npm:^11.1.0": version: 11.12.0 resolution: "globals@npm:11.12.0" checksum: 67051a45eca3db904aee189dfc7cd53c20c7d881679c93f6146ddd4c9f4ab2268e68a919df740d39c71f4445d2b38ee360fc234428baea1dbdfe68bbcb46979e languageName: node linkType: hard -"globals@npm:^13.19.0": - version: 13.19.0 - resolution: "globals@npm:13.19.0" +"globals@npm:^13.19.0, globals@npm:^13.20.0": + version: 13.20.0 + resolution: "globals@npm:13.20.0" dependencies: type-fest: ^0.20.2 - checksum: a000dbd00bcf28f0941d8a29c3522b1c3b8e4bfe4e60e262c477a550c3cbbe8dbe2925a6905f037acd40f9a93c039242e1f7079c76b0fd184bc41dcc3b5c8e2e + checksum: ad1ecf914bd051325faad281d02ea2c0b1df5d01bd94d368dcc5513340eac41d14b3c61af325768e3c7f8d44576e72780ec0b6f2d366121f8eec6e03c3a3b97a languageName: node linkType: hard From 562e34d2693f2bc08a88295b025ef14c35b14e3f Mon Sep 17 00:00:00 2001 From: Anatoly Kudriashov Date: Wed, 9 Aug 2023 14:14:27 +0200 Subject: [PATCH 163/372] Fix container memory limits Signed-off-by: Anatoly Kudriashov --- .changeset/sweet-donkeys-fix.md | 5 +++++ .../src/components/Pods/PodDrawer/ContainerCard.tsx | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) create mode 100644 .changeset/sweet-donkeys-fix.md diff --git a/.changeset/sweet-donkeys-fix.md b/.changeset/sweet-donkeys-fix.md new file mode 100644 index 0000000000..30737b1b7a --- /dev/null +++ b/.changeset/sweet-donkeys-fix.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-kubernetes': patch +--- + +Fix container memory limits diff --git a/plugins/kubernetes/src/components/Pods/PodDrawer/ContainerCard.tsx b/plugins/kubernetes/src/components/Pods/PodDrawer/ContainerCard.tsx index 9c4272248b..07389b67ed 100644 --- a/plugins/kubernetes/src/components/Pods/PodDrawer/ContainerCard.tsx +++ b/plugins/kubernetes/src/components/Pods/PodDrawer/ContainerCard.tsx @@ -214,7 +214,7 @@ export const ContainerCard: React.FC = ({ usage={containerMetrics.memoryUsage.currentUsage} total={containerMetrics.memoryUsage.limitTotal} totalFormated={bytesToMiB( - containerMetrics.memoryUsage.requestTotal, + containerMetrics.memoryUsage.limitTotal, )} /> From 756fe43a515323e3da938dfeecea32b782ae64cd Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 9 Aug 2023 12:56:15 +0000 Subject: [PATCH 164/372] fix(deps): update dependency @tanstack/react-query to v4.32.6 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 f0a5872bf4..e9cfbddb3d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -16184,18 +16184,18 @@ __metadata: languageName: node linkType: hard -"@tanstack/query-core@npm:4.29.19": - version: 4.29.19 - resolution: "@tanstack/query-core@npm:4.29.19" - checksum: 91a79dbebebc139d118542a5fe83fb54a6f6448bbe1563db1a0bed0c6d44e1d023613efde3c4ac747c72d067110013ac56f90611bf8affc390eda1ac3f99066e +"@tanstack/query-core@npm:4.32.6": + version: 4.32.6 + resolution: "@tanstack/query-core@npm:4.32.6" + checksum: c06f4b8d7edfc237d34da14c4ff2c71f4e6de662f123914419e9c2fbb9dccb7c1d3f46afd66ca5fea40687c5a99e514750a32a05e809d0db76343a90a45c76a8 languageName: node linkType: hard "@tanstack/react-query@npm:^4.1.3": - version: 4.29.19 - resolution: "@tanstack/react-query@npm:4.29.19" + version: 4.32.6 + resolution: "@tanstack/react-query@npm:4.32.6" dependencies: - "@tanstack/query-core": 4.29.19 + "@tanstack/query-core": 4.32.6 use-sync-external-store: ^1.2.0 peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 @@ -16206,7 +16206,7 @@ __metadata: optional: true react-native: optional: true - checksum: 2780ac35b4d1dabcd3e708b95891376e7e609109270d40442b33f4747c508c23e46bcadc692f997f81d38f62b5ab31f8e42bc9a785dfa4afe0c390adb6f37e52 + checksum: 5ce7939515329d64aee35703de8f030bba383717e68eefb17a32492cca44d8421175b7045e0fd6314faff11cee8a570f42208685947a97bc50d0023d5ae1029e languageName: node linkType: hard From bbd32328d47bcd1375b4b9d8b901e02d56af480b Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 9 Aug 2023 13:11:17 +0000 Subject: [PATCH 165/372] fix(deps): update dependency core-js to v3.32.0 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 f0a5872bf4..77706a2ba0 100644 --- a/yarn.lock +++ b/yarn.lock @@ -22072,9 +22072,9 @@ __metadata: linkType: hard "core-js@npm:^3.26.0, core-js@npm:^3.6.5": - version: 3.31.0 - resolution: "core-js@npm:3.31.0" - checksum: f7cf9b3010f7ca99c026d95b61743baca1a85512742ed2b67e8f65a72ac4f4fe0b90b00057783e886bdd39d3a295f42f845d33e7cba3973ed263df978343ab79 + version: 3.32.0 + resolution: "core-js@npm:3.32.0" + checksum: 52921395028550e4c9d21d47b9836439bb5b6b9eefc34d45a3948a68d81fdd093acc0fadf69f9cf632b82f01f95f22f484408a93dd9e940b19119ac204cd2925 languageName: node linkType: hard From 1207828cbd56418c7eeae58f8b216d6af95a40b4 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 9 Aug 2023 13:50:42 +0000 Subject: [PATCH 166/372] fix(deps): update dependency cron to v2.4.0 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 e9cfbddb3d..84efddb12c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -22217,11 +22217,11 @@ __metadata: linkType: hard "cron@npm:^2.0.0": - version: 2.3.1 - resolution: "cron@npm:2.3.1" + version: 2.4.0 + resolution: "cron@npm:2.4.0" dependencies: luxon: ^3.2.1 - checksum: ac27c257cb8dba4b51978b4767119fc79bfc0dfa35ef0be2533bc4142ae006130515236e2102d04ee3ce44bffc2a4e37a3bee18a2152bbb303bf5ff944e25204 + checksum: e1dfc2d2a8cfdee0c17daac791074d904b8d7ecdcd3cf9ca969f8efb00371113d1eb69d60fdebb9e94ac5b3bb3e904a7e687a2fcd276ffdb1f0381e8b6df26bd languageName: node linkType: hard From 16da13b62aa8454994194bdc2a7f9726cca07f46 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 9 Aug 2023 14:11:05 +0000 Subject: [PATCH 167/372] fix(deps): update dependency cronstrue to v2.28.0 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 6890a2a32b..f43b1c7945 100644 --- a/yarn.lock +++ b/yarn.lock @@ -22226,11 +22226,11 @@ __metadata: linkType: hard "cronstrue@npm:^2.2.0": - version: 2.27.0 - resolution: "cronstrue@npm:2.27.0" + version: 2.28.0 + resolution: "cronstrue@npm:2.28.0" bin: cronstrue: bin/cli.js - checksum: 310d933c4448896519c203a434dc1ede7029967df941e810f02bafb62146045c16df4987edde344d757bafb6d45f63c9ecb7385df19b985ca91486f4efa6ff7b + checksum: cdf2664808578cbce2e58e8df2983a7792cb2d7dfc2157bce0166a36c7ad525a02b688aa7460281f1ada40d56bd24af78464af8ec69df1416e3eb85e8aac31dd languageName: node linkType: hard From 7a8654012f882829259795b1fd3c4ce4e09cb991 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 9 Aug 2023 14:54:39 +0000 Subject: [PATCH 168/372] fix(deps): update dependency eslint-config-prettier to v8.10.0 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 f43b1c7945..e7ae2ce6c2 100644 --- a/yarn.lock +++ b/yarn.lock @@ -24519,13 +24519,13 @@ __metadata: linkType: hard "eslint-config-prettier@npm:^8.3.0": - version: 8.8.0 - resolution: "eslint-config-prettier@npm:8.8.0" + version: 8.10.0 + resolution: "eslint-config-prettier@npm:8.10.0" peerDependencies: eslint: ">=7.0.0" bin: eslint-config-prettier: bin/cli.js - checksum: 1e94c3882c4d5e41e1dcfa2c368dbccbfe3134f6ac7d40101644d3bfbe3eb2f2ffac757f3145910b5eacf20c0e85e02b91293d3126d770cbf3dc390b3564681c + checksum: 153266badd477e49b0759816246b2132f1dbdb6c7f313ca60a9af5822fd1071c2bc5684a3720d78b725452bbac04bb130878b2513aea5e72b1b792de5a69fec8 languageName: node linkType: hard From 4805af837068f42457afa5aa0986d9c4eddd7a01 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 9 Aug 2023 15:43:18 +0000 Subject: [PATCH 169/372] fix(deps): update dependency cronstrue to v2.29.0 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 e7ae2ce6c2..b1232b6892 100644 --- a/yarn.lock +++ b/yarn.lock @@ -22226,11 +22226,11 @@ __metadata: linkType: hard "cronstrue@npm:^2.2.0": - version: 2.28.0 - resolution: "cronstrue@npm:2.28.0" + version: 2.29.0 + resolution: "cronstrue@npm:2.29.0" bin: cronstrue: bin/cli.js - checksum: cdf2664808578cbce2e58e8df2983a7792cb2d7dfc2157bce0166a36c7ad525a02b688aa7460281f1ada40d56bd24af78464af8ec69df1416e3eb85e8aac31dd + checksum: 92b06f98e4ef9b1b7c671f8752d9ddc1f1da8097ed0f976a6085e4e56acaed490a69f5095853eca0a59987a28edb85a9fc2f0831dfa96db1ab481e0277405dd5 languageName: node linkType: hard From 58398c759988a9a2ab55fd6b214b810b1c8f2967 Mon Sep 17 00:00:00 2001 From: Robert Bunning Date: Wed, 9 Aug 2023 11:56:01 -0400 Subject: [PATCH 170/372] fix linter errors Signed-off-by: Robert Bunning --- plugins/newrelic/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/newrelic/package.json b/plugins/newrelic/package.json index b510e9cbbe..c70a06dee8 100644 --- a/plugins/newrelic/package.json +++ b/plugins/newrelic/package.json @@ -39,7 +39,6 @@ "@material-ui/core": "^4.12.2", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "4.0.0-alpha.61", - "@types/parse-link-header": "^2.0.1", "parse-link-header": "^2.0.0", "react-use": "^17.2.4" }, @@ -59,6 +58,7 @@ "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^14.0.0", "@types/node": "^16.11.26", + "@types/parse-link-header": "^2.0.1", "@types/react": "^16.13.1 || ^17.0.0", "cross-fetch": "^3.1.5", "msw": "^1.2.3" From 41d47bc165bc536f9277962fad9ad0a37ec59104 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 9 Aug 2023 16:03:49 +0000 Subject: [PATCH 171/372] fix(deps): update dependency eslint-plugin-deprecation to v1.5.0 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 7cf4326cb8..89c41e7759 100644 --- a/yarn.lock +++ b/yarn.lock @@ -24577,8 +24577,8 @@ __metadata: linkType: hard "eslint-plugin-deprecation@npm:^1.3.2": - version: 1.4.1 - resolution: "eslint-plugin-deprecation@npm:1.4.1" + version: 1.5.0 + resolution: "eslint-plugin-deprecation@npm:1.5.0" dependencies: "@typescript-eslint/utils": ^5.57.0 tslib: ^2.3.1 @@ -24586,7 +24586,7 @@ __metadata: peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 typescript: ^3.7.5 || ^4.0.0 || ^5.0.0 - checksum: 75c7535d820d1749664705724cc979d706da126a2277f2937467f70156a2c220b10c66670f18226801c9555e4cd02312d353936f14d5752c2d2c648455fe5769 + checksum: ec0ff3df1dbbbb85d14c8f6656bb126377280db58789c2ba3c4500250b291559c651a0fb2ac29aa977408fef3a919ad41e706100b55672ceb6c1ad09550e7396 languageName: node linkType: hard From 65481437e2b0695fda359c27ea82cf39be89f8c1 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 9 Aug 2023 16:34:36 +0000 Subject: [PATCH 172/372] fix(deps): update dependency eslint-plugin-import to v2.28.0 Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- yarn.lock | 337 +++++++++++++++++++++++++++++++++++++++--------------- 1 file changed, 244 insertions(+), 93 deletions(-) diff --git a/yarn.lock b/yarn.lock index 27169edd35..6b6f997ba6 100644 --- a/yarn.lock +++ b/yarn.lock @@ -19415,6 +19415,16 @@ __metadata: languageName: node linkType: hard +"array-buffer-byte-length@npm:^1.0.0": + version: 1.0.0 + resolution: "array-buffer-byte-length@npm:1.0.0" + dependencies: + call-bind: ^1.0.2 + is-array-buffer: ^3.0.1 + checksum: 044e101ce150f4804ad19c51d6c4d4cfa505c5b2577bd179256e4aa3f3f6a0a5e9874c78cd428ee566ac574c8a04d7ce21af9fe52e844abfdccb82b33035a7c3 + languageName: node + linkType: hard + "array-differ@npm:^3.0.0": version: 3.0.0 resolution: "array-differ@npm:3.0.0" @@ -19463,6 +19473,19 @@ __metadata: languageName: node linkType: hard +"array.prototype.findlastindex@npm:^1.2.2": + version: 1.2.2 + resolution: "array.prototype.findlastindex@npm:1.2.2" + dependencies: + call-bind: ^1.0.2 + define-properties: ^1.1.4 + es-abstract: ^1.20.4 + es-shim-unscopables: ^1.0.0 + get-intrinsic: ^1.1.3 + checksum: 8a166359f69a2a751c843f26b9c8cd03d0dc396a92cdcb85f4126b5f1cecdae5b2c0c616a71ea8aff026bde68165b44950b3664404bb73db0673e288495ba264 + languageName: node + linkType: hard + "array.prototype.flat@npm:^1.2.3, array.prototype.flat@npm:^1.3.1": version: 1.3.1 resolution: "array.prototype.flat@npm:1.3.1" @@ -19500,6 +19523,20 @@ __metadata: languageName: node linkType: hard +"arraybuffer.prototype.slice@npm:^1.0.1": + version: 1.0.1 + resolution: "arraybuffer.prototype.slice@npm:1.0.1" + dependencies: + array-buffer-byte-length: ^1.0.0 + call-bind: ^1.0.2 + define-properties: ^1.2.0 + get-intrinsic: ^1.2.1 + is-array-buffer: ^3.0.2 + is-shared-array-buffer: ^1.0.2 + checksum: e3e9b2a3e988ebfeddce4c7e8f69df730c9e48cb04b0d40ff0874ce3d86b3d1339dd520ffde5e39c02610bc172ecfbd4bc93324b1cabd9554c44a56b131ce0ce + languageName: node + linkType: hard + "arrify@npm:^1.0.1": version: 1.0.1 resolution: "arrify@npm:1.0.1" @@ -23141,13 +23178,13 @@ __metadata: languageName: node linkType: hard -"define-properties@npm:^1.1.3, define-properties@npm:^1.1.4": - version: 1.1.4 - resolution: "define-properties@npm:1.1.4" +"define-properties@npm:^1.1.3, define-properties@npm:^1.1.4, define-properties@npm:^1.2.0": + version: 1.2.0 + resolution: "define-properties@npm:1.2.0" dependencies: has-property-descriptors: ^1.0.0 object-keys: ^1.1.1 - checksum: ce0aef3f9eb193562b5cfb79b2d2c86b6a109dfc9fdcb5f45d680631a1a908c06824ddcdb72b7573b54e26ace07f0a23420aaba0d5c627b34d2c1de8ef527e2b + checksum: e60aee6a19b102df4e2b1f301816804e81ab48bb91f00d0d935f269bf4b3f79c88b39e4f89eaa132890d23267335fd1140dfcd8d5ccd61031a0a2c41a54e33a6 languageName: node linkType: hard @@ -23940,35 +23977,50 @@ __metadata: languageName: node linkType: hard -"es-abstract@npm:^1.19.0, es-abstract@npm:^1.19.5, es-abstract@npm:^1.20.4": - version: 1.20.4 - resolution: "es-abstract@npm:1.20.4" +"es-abstract@npm:^1.19.0, es-abstract@npm:^1.20.4, es-abstract@npm:^1.21.2": + version: 1.22.1 + resolution: "es-abstract@npm:1.22.1" dependencies: + array-buffer-byte-length: ^1.0.0 + arraybuffer.prototype.slice: ^1.0.1 + available-typed-arrays: ^1.0.5 call-bind: ^1.0.2 + es-set-tostringtag: ^2.0.1 es-to-primitive: ^1.2.1 - function-bind: ^1.1.1 function.prototype.name: ^1.1.5 - get-intrinsic: ^1.1.3 + get-intrinsic: ^1.2.1 get-symbol-description: ^1.0.0 + globalthis: ^1.0.3 + gopd: ^1.0.1 has: ^1.0.3 has-property-descriptors: ^1.0.0 + has-proto: ^1.0.1 has-symbols: ^1.0.3 - internal-slot: ^1.0.3 + internal-slot: ^1.0.5 + is-array-buffer: ^3.0.2 is-callable: ^1.2.7 is-negative-zero: ^2.0.2 is-regex: ^1.1.4 is-shared-array-buffer: ^1.0.2 is-string: ^1.0.7 + is-typed-array: ^1.1.10 is-weakref: ^1.0.2 - object-inspect: ^1.12.2 + object-inspect: ^1.12.3 object-keys: ^1.1.1 object.assign: ^4.1.4 - regexp.prototype.flags: ^1.4.3 + regexp.prototype.flags: ^1.5.0 + safe-array-concat: ^1.0.0 safe-regex-test: ^1.0.0 - string.prototype.trimend: ^1.0.5 - string.prototype.trimstart: ^1.0.5 + string.prototype.trim: ^1.2.7 + string.prototype.trimend: ^1.0.6 + string.prototype.trimstart: ^1.0.6 + typed-array-buffer: ^1.0.0 + typed-array-byte-length: ^1.0.0 + typed-array-byte-offset: ^1.0.0 + typed-array-length: ^1.0.4 unbox-primitive: ^1.0.2 - checksum: 89297cc785c31aedf961a603d5a07ed16471e435d3a1b6d070b54f157cf48454b95cda2ac55e4b86ff4fe3276e835fcffd2771578e6fa634337da49b26826141 + which-typed-array: ^1.1.10 + checksum: 614e2c1c3717cb8d30b6128ef12ea110e06fd7d75ad77091ca1c5dbfb00da130e62e4bbbbbdda190eada098a22b27fe0f99ae5a1171dac2c8663b1e8be8a3a9b languageName: node linkType: hard @@ -24017,6 +24069,17 @@ __metadata: languageName: node linkType: hard +"es-set-tostringtag@npm:^2.0.1": + version: 2.0.1 + resolution: "es-set-tostringtag@npm:2.0.1" + dependencies: + get-intrinsic: ^1.1.3 + has: ^1.0.3 + has-tostringtag: ^1.0.0 + checksum: ec416a12948cefb4b2a5932e62093a7cf36ddc3efd58d6c58ca7ae7064475ace556434b869b0bbeb0c365f1032a8ccd577211101234b69837ad83ad204fff884 + languageName: node + linkType: hard + "es-shim-unscopables@npm:^1.0.0": version: 1.0.0 resolution: "es-shim-unscopables@npm:1.0.0" @@ -24553,15 +24616,15 @@ __metadata: languageName: node linkType: hard -"eslint-module-utils@npm:^2.7.4": - version: 2.7.4 - resolution: "eslint-module-utils@npm:2.7.4" +"eslint-module-utils@npm:^2.8.0": + version: 2.8.0 + resolution: "eslint-module-utils@npm:2.8.0" dependencies: debug: ^3.2.7 peerDependenciesMeta: eslint: optional: true - checksum: 5da13645daff145a5c922896b258f8bba560722c3767254e458d894ff5fbb505d6dfd945bffa932a5b0ae06714da2379bd41011c4c20d2d59cc83e23895360f7 + checksum: 74c6dfea7641ebcfe174be61168541a11a14aa8d72e515f5f09af55cd0d0862686104b0524aa4b8e0ce66418a44aa38a94d2588743db5fd07a6b49ffd16921d2 languageName: node linkType: hard @@ -24591,27 +24654,30 @@ __metadata: linkType: hard "eslint-plugin-import@npm:^2.25.4": - version: 2.27.5 - resolution: "eslint-plugin-import@npm:2.27.5" + version: 2.28.0 + resolution: "eslint-plugin-import@npm:2.28.0" dependencies: array-includes: ^3.1.6 + array.prototype.findlastindex: ^1.2.2 array.prototype.flat: ^1.3.1 array.prototype.flatmap: ^1.3.1 debug: ^3.2.7 doctrine: ^2.1.0 eslint-import-resolver-node: ^0.3.7 - eslint-module-utils: ^2.7.4 + eslint-module-utils: ^2.8.0 has: ^1.0.3 - is-core-module: ^2.11.0 + is-core-module: ^2.12.1 is-glob: ^4.0.3 minimatch: ^3.1.2 + object.fromentries: ^2.0.6 + object.groupby: ^1.0.0 object.values: ^1.1.6 - resolve: ^1.22.1 - semver: ^6.3.0 - tsconfig-paths: ^3.14.1 + resolve: ^1.22.3 + semver: ^6.3.1 + tsconfig-paths: ^3.14.2 peerDependencies: eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 - checksum: f500571a380167e25d72a4d925ef9a7aae8899eada57653e5f3051ec3d3c16d08271fcefe41a30a9a2f4fefc232f066253673ee4ea77b30dba65ae173dade85d + checksum: f9eba311b93ca1bb89311856b1f7285bd79e0181d7eb70fe115053ff77e2235fea749b30f538b78927dc65769340b5be61f4c9581d1c82bcdcccb2061f440ad1 languageName: node linkType: hard @@ -26511,14 +26577,15 @@ __metadata: languageName: node linkType: hard -"get-intrinsic@npm:^1.0.2, get-intrinsic@npm:^1.1.0, get-intrinsic@npm:^1.1.1, get-intrinsic@npm:^1.1.3": - version: 1.1.3 - resolution: "get-intrinsic@npm:1.1.3" +"get-intrinsic@npm:^1.0.2, get-intrinsic@npm:^1.1.0, get-intrinsic@npm:^1.1.1, get-intrinsic@npm:^1.1.3, get-intrinsic@npm:^1.2.0, get-intrinsic@npm:^1.2.1": + version: 1.2.1 + resolution: "get-intrinsic@npm:1.2.1" dependencies: function-bind: ^1.1.1 has: ^1.0.3 + has-proto: ^1.0.1 has-symbols: ^1.0.3 - checksum: 152d79e87251d536cf880ba75cfc3d6c6c50e12b3a64e1ea960e73a3752b47c69f46034456eae1b0894359ce3bc64c55c186f2811f8a788b75b638b06fab228a + checksum: 5b61d88552c24b0cf6fa2d1b3bc5459d7306f699de060d76442cce49a4721f52b8c560a33ab392cf5575b7810277d54ded9d4d39a1ea61855619ebc005aa7e5f languageName: node linkType: hard @@ -27218,6 +27285,13 @@ __metadata: languageName: node linkType: hard +"has-proto@npm:^1.0.1": + version: 1.0.1 + resolution: "has-proto@npm:1.0.1" + checksum: febc5b5b531de8022806ad7407935e2135f1cc9e64636c3916c6842bd7995994ca3b29871ecd7954bd35f9e2986c17b3b227880484d22259e2f8e6ce63fd383e + languageName: node + linkType: hard + "has-symbols@npm:^1.0.1, has-symbols@npm:^1.0.2, has-symbols@npm:^1.0.3": version: 1.0.3 resolution: "has-symbols@npm:1.0.3" @@ -28038,14 +28112,14 @@ __metadata: languageName: node linkType: hard -"internal-slot@npm:^1.0.3": - version: 1.0.3 - resolution: "internal-slot@npm:1.0.3" +"internal-slot@npm:^1.0.3, internal-slot@npm:^1.0.5": + version: 1.0.5 + resolution: "internal-slot@npm:1.0.5" dependencies: - get-intrinsic: ^1.1.0 + get-intrinsic: ^1.2.0 has: ^1.0.3 side-channel: ^1.0.4 - checksum: 1944f92e981e47aebc98a88ff0db579fd90543d937806104d0b96557b10c1f170c51fb777b97740a8b6ddeec585fca8c39ae99fd08a8e058dfc8ab70937238bf + checksum: 97e84046bf9e7574d0956bd98d7162313ce7057883b6db6c5c7b5e5f05688864b0978ba07610c726d15d66544ffe4b1050107d93f8a39ebc59b15d8b429b497a languageName: node linkType: hard @@ -28202,14 +28276,14 @@ __metadata: languageName: node linkType: hard -"is-array-buffer@npm:^3.0.1": - version: 3.0.1 - resolution: "is-array-buffer@npm:3.0.1" +"is-array-buffer@npm:^3.0.1, is-array-buffer@npm:^3.0.2": + version: 3.0.2 + resolution: "is-array-buffer@npm:3.0.2" dependencies: call-bind: ^1.0.2 - get-intrinsic: ^1.1.3 + get-intrinsic: ^1.2.0 is-typed-array: ^1.1.10 - checksum: f26ab87448e698285daf707e52a533920449f7abf63714140ffab9d5571aa5a71ac2fa2677e8b793ad0d5d3e40078d4d2c8a0ab39c957e3cfc6513bb6c9dfdc9 + checksum: dcac9dda66ff17df9cabdc58214172bf41082f956eab30bb0d86bc0fab1e44b690fc8e1f855cf2481245caf4e8a5a006a982a71ddccec84032ed41f9d8da8c14 languageName: node linkType: hard @@ -28300,12 +28374,12 @@ __metadata: languageName: node linkType: hard -"is-core-module@npm:^2.1.0, is-core-module@npm:^2.11.0, is-core-module@npm:^2.9.0": - version: 2.11.0 - resolution: "is-core-module@npm:2.11.0" +"is-core-module@npm:^2.1.0, is-core-module@npm:^2.11.0, is-core-module@npm:^2.12.1, is-core-module@npm:^2.13.0, is-core-module@npm:^2.9.0": + version: 2.13.0 + resolution: "is-core-module@npm:2.13.0" dependencies: has: ^1.0.3 - checksum: f96fd490c6b48eb4f6d10ba815c6ef13f410b0ba6f7eb8577af51697de523e5f2cd9de1c441b51d27251bf0e4aebc936545e33a5d26d5d51f28d25698d4a8bab + checksum: 053ab101fb390bfeb2333360fd131387bed54e476b26860dc7f5a700bbf34a0ec4454f7c8c4d43e8a0030957e4b3db6e16d35e1890ea6fb654c833095e040355 languageName: node linkType: hard @@ -28733,16 +28807,12 @@ __metadata: languageName: node linkType: hard -"is-typed-array@npm:^1.1.10, is-typed-array@npm:^1.1.3": - version: 1.1.10 - resolution: "is-typed-array@npm:1.1.10" +"is-typed-array@npm:^1.1.10, is-typed-array@npm:^1.1.3, is-typed-array@npm:^1.1.9": + version: 1.1.12 + resolution: "is-typed-array@npm:1.1.12" dependencies: - available-typed-arrays: ^1.0.5 - call-bind: ^1.0.2 - for-each: ^0.3.3 - gopd: ^1.0.1 - has-tostringtag: ^1.0.0 - checksum: aac6ecb59d4c56a1cdeb69b1f129154ef462bbffe434cb8a8235ca89b42f258b7ae94073c41b3cb7bce37f6a1733ad4499f07882d5d5093a7ba84dfc4ebb8017 + which-typed-array: ^1.1.11 + checksum: 4c89c4a3be07186caddadf92197b17fda663a9d259ea0d44a85f171558270d36059d1c386d34a12cba22dfade5aba497ce22778e866adc9406098c8fc4771796 languageName: node linkType: hard @@ -30137,7 +30207,7 @@ __metadata: languageName: node linkType: hard -"json5@npm:^1.0.1": +"json5@npm:^1.0.1, json5@npm:^1.0.2": version: 1.0.2 resolution: "json5@npm:1.0.2" dependencies: @@ -33690,7 +33760,7 @@ __metadata: languageName: node linkType: hard -"object-inspect@npm:^1.12.2, object-inspect@npm:^1.12.3, object-inspect@npm:^1.9.0": +"object-inspect@npm:^1.12.3, object-inspect@npm:^1.9.0": version: 1.12.3 resolution: "object-inspect@npm:1.12.3" checksum: dabfd824d97a5f407e6d5d24810d888859f6be394d8b733a77442b277e0808860555176719c5905e765e3743a7cada6b8b0a3b85e5331c530fd418cc8ae991db @@ -33748,6 +33818,18 @@ __metadata: languageName: node linkType: hard +"object.groupby@npm:^1.0.0": + version: 1.0.0 + resolution: "object.groupby@npm:1.0.0" + dependencies: + call-bind: ^1.0.2 + define-properties: ^1.2.0 + es-abstract: ^1.21.2 + get-intrinsic: ^1.2.1 + checksum: 64b00b287d57580111c958e7ff375c9b61811fa356f2cf0d35372d43cab61965701f00fac66c19fd8f49c4dfa28744bee6822379c69a73648ad03e09fcdeae70 + languageName: node + linkType: hard + "object.hasown@npm:^1.1.2": version: 1.1.2 resolution: "object.hasown@npm:1.1.2" @@ -37419,14 +37501,14 @@ __metadata: languageName: node linkType: hard -"regexp.prototype.flags@npm:^1.4.3": - version: 1.4.3 - resolution: "regexp.prototype.flags@npm:1.4.3" +"regexp.prototype.flags@npm:^1.4.3, regexp.prototype.flags@npm:^1.5.0": + version: 1.5.0 + resolution: "regexp.prototype.flags@npm:1.5.0" dependencies: call-bind: ^1.0.2 - define-properties: ^1.1.3 - functions-have-names: ^1.2.2 - checksum: 51228bae732592adb3ededd5e15426be25f289e9c4ef15212f4da73f4ec3919b6140806374b8894036a86020d054a8d2657d3fee6bb9b4d35d8939c20030b7a6 + define-properties: ^1.2.0 + functions-have-names: ^1.2.3 + checksum: c541687cdbdfff1b9a07f6e44879f82c66bbf07665f9a7544c5fd16acdb3ec8d1436caab01662d2fbcad403f3499d49ab0b77fbc7ef29ef961d98cc4bc9755b4 languageName: node linkType: hard @@ -37734,16 +37816,16 @@ __metadata: languageName: node linkType: hard -"resolve@npm:^1.1.6, resolve@npm:^1.10.0, resolve@npm:^1.14.2, resolve@npm:^1.19.0, resolve@npm:^1.20.0, resolve@npm:^1.22.1, resolve@npm:~1.22.1": - version: 1.22.1 - resolution: "resolve@npm:1.22.1" +"resolve@npm:^1.1.6, resolve@npm:^1.10.0, resolve@npm:^1.14.2, resolve@npm:^1.19.0, resolve@npm:^1.20.0, resolve@npm:^1.22.1, resolve@npm:^1.22.3, resolve@npm:~1.22.1": + version: 1.22.4 + resolution: "resolve@npm:1.22.4" dependencies: - is-core-module: ^2.9.0 + is-core-module: ^2.13.0 path-parse: ^1.0.7 supports-preserve-symlinks-flag: ^1.0.0 bin: resolve: bin/resolve - checksum: 07af5fc1e81aa1d866cbc9e9460fbb67318a10fa3c4deadc35c3ad8a898ee9a71a86a65e4755ac3195e0ea0cfbe201eb323ebe655ce90526fd61917313a34e4e + checksum: 23f25174c2736ce24c6d918910e0d1f89b6b38fefa07a995dff864acd7863d59a7f049e691f93b4b2ee29696303390d921552b6d1b841ed4a8101f517e1d0124 languageName: node linkType: hard @@ -37779,16 +37861,16 @@ __metadata: languageName: node linkType: hard -"resolve@patch:resolve@^1.1.6#~builtin, resolve@patch:resolve@^1.10.0#~builtin, resolve@patch:resolve@^1.14.2#~builtin, resolve@patch:resolve@^1.19.0#~builtin, resolve@patch:resolve@^1.20.0#~builtin, resolve@patch:resolve@^1.22.1#~builtin, resolve@patch:resolve@~1.22.1#~builtin": - version: 1.22.1 - resolution: "resolve@patch:resolve@npm%3A1.22.1#~builtin::version=1.22.1&hash=07638b" +"resolve@patch:resolve@^1.1.6#~builtin, resolve@patch:resolve@^1.10.0#~builtin, resolve@patch:resolve@^1.14.2#~builtin, resolve@patch:resolve@^1.19.0#~builtin, resolve@patch:resolve@^1.20.0#~builtin, resolve@patch:resolve@^1.22.1#~builtin, resolve@patch:resolve@^1.22.3#~builtin, resolve@patch:resolve@~1.22.1#~builtin": + version: 1.22.4 + resolution: "resolve@patch:resolve@npm%3A1.22.4#~builtin::version=1.22.4&hash=07638b" dependencies: - is-core-module: ^2.9.0 + is-core-module: ^2.13.0 path-parse: ^1.0.7 supports-preserve-symlinks-flag: ^1.0.0 bin: resolve: bin/resolve - checksum: 5656f4d0bedcf8eb52685c1abdf8fbe73a1603bb1160a24d716e27a57f6cecbe2432ff9c89c2bd57542c3a7b9d14b1882b73bfe2e9d7849c9a4c0b8b39f02b8b + checksum: c45f2545fdc4d21883861b032789e20aa67a2f2692f68da320cc84d5724cd02f2923766c5354b3210897e88f1a7b3d6d2c7c22faeead8eed7078e4c783a444bc languageName: node linkType: hard @@ -38223,6 +38305,18 @@ __metadata: languageName: node linkType: hard +"safe-array-concat@npm:^1.0.0": + version: 1.0.0 + resolution: "safe-array-concat@npm:1.0.0" + dependencies: + call-bind: ^1.0.2 + get-intrinsic: ^1.2.0 + has-symbols: ^1.0.3 + isarray: ^2.0.5 + checksum: f43cb98fe3b566327d0c09284de2b15fb85ae964a89495c1b1a5d50c7c8ed484190f4e5e71aacc167e16231940079b326f2c0807aea633d47cc7322f40a6b57f + languageName: node + linkType: hard + "safe-buffer@npm:5.1.2, safe-buffer@npm:~5.1.0, safe-buffer@npm:~5.1.1": version: 5.1.2 resolution: "safe-buffer@npm:5.1.2" @@ -38456,7 +38550,7 @@ __metadata: languageName: node linkType: hard -"semver@npm:^6.0.0, semver@npm:^6.1.1, semver@npm:^6.1.2, semver@npm:^6.3.0": +"semver@npm:^6.0.0, semver@npm:^6.1.1, semver@npm:^6.1.2, semver@npm:^6.3.0, semver@npm:^6.3.1": version: 6.3.1 resolution: "semver@npm:6.3.1" bin: @@ -39644,25 +39738,36 @@ __metadata: languageName: node linkType: hard -"string.prototype.trimend@npm:^1.0.5": - version: 1.0.5 - resolution: "string.prototype.trimend@npm:1.0.5" +"string.prototype.trim@npm:^1.2.7": + version: 1.2.7 + resolution: "string.prototype.trim@npm:1.2.7" dependencies: call-bind: ^1.0.2 define-properties: ^1.1.4 - es-abstract: ^1.19.5 - checksum: d44f543833112f57224e79182debadc9f4f3bf9d48a0414d6f0cbd2a86f2b3e8c0ca1f95c3f8e5b32ae83e91554d79d932fc746b411895f03f93d89ed3dfb6bc + es-abstract: ^1.20.4 + checksum: 05b7b2d6af63648e70e44c4a8d10d8cc457536df78b55b9d6230918bde75c5987f6b8604438c4c8652eb55e4fc9725d2912789eb4ec457d6995f3495af190c09 languageName: node linkType: hard -"string.prototype.trimstart@npm:^1.0.5": - version: 1.0.5 - resolution: "string.prototype.trimstart@npm:1.0.5" +"string.prototype.trimend@npm:^1.0.6": + version: 1.0.6 + resolution: "string.prototype.trimend@npm:1.0.6" dependencies: call-bind: ^1.0.2 define-properties: ^1.1.4 - es-abstract: ^1.19.5 - checksum: a4857c5399ad709d159a77371eeaa8f9cc284469a0b5e1bfe405de16f1fd4166a8ea6f4180e55032f348d1b679b1599fd4301fbc7a8b72bdb3e795e43f7b1048 + es-abstract: ^1.20.4 + checksum: 0fdc34645a639bd35179b5a08227a353b88dc089adf438f46be8a7c197fc3f22f8514c1c9be4629b3cd29c281582730a8cbbad6466c60f76b5f99cf2addb132e + languageName: node + linkType: hard + +"string.prototype.trimstart@npm:^1.0.6": + version: 1.0.6 + resolution: "string.prototype.trimstart@npm:1.0.6" + dependencies: + call-bind: ^1.0.2 + define-properties: ^1.1.4 + es-abstract: ^1.20.4 + checksum: 89080feef416621e6ef1279588994305477a7a91648d9436490d56010a1f7adc39167cddac7ce0b9884b8cdbef086987c4dcb2960209f2af8bac0d23ceff4f41 languageName: node linkType: hard @@ -40843,15 +40948,15 @@ __metadata: languageName: node linkType: hard -"tsconfig-paths@npm:^3.14.1": - version: 3.14.1 - resolution: "tsconfig-paths@npm:3.14.1" +"tsconfig-paths@npm:^3.14.2": + version: 3.14.2 + resolution: "tsconfig-paths@npm:3.14.2" dependencies: "@types/json5": ^0.0.29 - json5: ^1.0.1 + json5: ^1.0.2 minimist: ^1.2.6 strip-bom: ^3.0.0 - checksum: 8afa01c673ebb4782ba53d3a12df97fa837ce524f8ad38ee4e2b2fd57f5ac79abc21c574e9e9eb014d93efe7fe8214001b96233b5c6ea75bd1ea82afe17a4c6d + checksum: a6162eaa1aed680537f93621b82399c7856afd10ec299867b13a0675e981acac4e0ec00896860480efc59fc10fd0b16fdc928c0b885865b52be62cadac692447 languageName: node linkType: hard @@ -41018,6 +41123,53 @@ __metadata: languageName: node linkType: hard +"typed-array-buffer@npm:^1.0.0": + version: 1.0.0 + resolution: "typed-array-buffer@npm:1.0.0" + dependencies: + call-bind: ^1.0.2 + get-intrinsic: ^1.2.1 + is-typed-array: ^1.1.10 + checksum: 3e0281c79b2a40cd97fe715db803884301993f4e8c18e8d79d75fd18f796e8cd203310fec8c7fdb5e6c09bedf0af4f6ab8b75eb3d3a85da69328f28a80456bd3 + languageName: node + linkType: hard + +"typed-array-byte-length@npm:^1.0.0": + version: 1.0.0 + resolution: "typed-array-byte-length@npm:1.0.0" + dependencies: + call-bind: ^1.0.2 + for-each: ^0.3.3 + has-proto: ^1.0.1 + is-typed-array: ^1.1.10 + checksum: b03db16458322b263d87a702ff25388293f1356326c8a678d7515767ef563ef80e1e67ce648b821ec13178dd628eb2afdc19f97001ceae7a31acf674c849af94 + languageName: node + linkType: hard + +"typed-array-byte-offset@npm:^1.0.0": + version: 1.0.0 + resolution: "typed-array-byte-offset@npm:1.0.0" + dependencies: + available-typed-arrays: ^1.0.5 + call-bind: ^1.0.2 + for-each: ^0.3.3 + has-proto: ^1.0.1 + is-typed-array: ^1.1.10 + checksum: 04f6f02d0e9a948a95fbfe0d5a70b002191fae0b8fe0fe3130a9b2336f043daf7a3dda56a31333c35a067a97e13f539949ab261ca0f3692c41603a46a94e960b + languageName: node + linkType: hard + +"typed-array-length@npm:^1.0.4": + version: 1.0.4 + resolution: "typed-array-length@npm:1.0.4" + dependencies: + call-bind: ^1.0.2 + for-each: ^0.3.3 + is-typed-array: ^1.1.9 + checksum: 2228febc93c7feff142b8c96a58d4a0d7623ecde6c7a24b2b98eb3170e99f7c7eff8c114f9b283085cd59dcd2bd43aadf20e25bba4b034a53c5bb292f71f8956 + languageName: node + linkType: hard + "typed-rest-client@npm:^1.8.4": version: 1.8.4 resolution: "typed-rest-client@npm:1.8.4" @@ -42389,17 +42541,16 @@ __metadata: languageName: node linkType: hard -"which-typed-array@npm:^1.1.2, which-typed-array@npm:^1.1.9": - version: 1.1.9 - resolution: "which-typed-array@npm:1.1.9" +"which-typed-array@npm:^1.1.10, which-typed-array@npm:^1.1.11, which-typed-array@npm:^1.1.2, which-typed-array@npm:^1.1.9": + version: 1.1.11 + resolution: "which-typed-array@npm:1.1.11" dependencies: available-typed-arrays: ^1.0.5 call-bind: ^1.0.2 for-each: ^0.3.3 gopd: ^1.0.1 has-tostringtag: ^1.0.0 - is-typed-array: ^1.1.10 - checksum: fe0178ca44c57699ca2c0e657b64eaa8d2db2372a4e2851184f568f98c478ae3dc3fdb5f7e46c384487046b0cf9e23241423242b277e03e8ba3dabc7c84c98ef + checksum: 711ffc8ef891ca6597b19539075ec3e08bb9b4c2ca1f78887e3c07a977ab91ac1421940505a197758fb5939aa9524976d0a5bbcac34d07ed6faa75cedbb17206 languageName: node linkType: hard From acc6fc8f7f58d09d48213065bd2ad6e4a5199627 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 9 Aug 2023 18:00:43 +0000 Subject: [PATCH 173/372] fix(deps): update dependency eslint-plugin-react to v7.33.1 Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- yarn.lock | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/yarn.lock b/yarn.lock index e8e1bbf0a5..87f68c720d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -24682,8 +24682,8 @@ __metadata: linkType: hard "eslint-plugin-react@npm:^7.28.0": - version: 7.32.2 - resolution: "eslint-plugin-react@npm:7.32.2" + version: 7.33.1 + resolution: "eslint-plugin-react@npm:7.33.1" dependencies: array-includes: ^3.1.6 array.prototype.flatmap: ^1.3.1 @@ -24698,11 +24698,11 @@ __metadata: object.values: ^1.1.6 prop-types: ^15.8.1 resolve: ^2.0.0-next.4 - semver: ^6.3.0 + semver: ^6.3.1 string.prototype.matchall: ^4.0.8 peerDependencies: eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 - checksum: 2232b3b8945aa50b7773919c15cd96892acf35d2f82503667a79e2f55def90f728ed4f0e496f0f157acbe1bd4397c5615b676ae7428fe84488a544ca53feb944 + checksum: 0427bd24acb87422b7298686203167123ba289ba563384983f3d99fad7817eae7f63157fd2e9b868bdcf0760719c319ab1e22a44764a98302034b0c844763e57 languageName: node linkType: hard @@ -38456,7 +38456,7 @@ __metadata: languageName: node linkType: hard -"semver@npm:^6.0.0, semver@npm:^6.1.1, semver@npm:^6.1.2, semver@npm:^6.3.0": +"semver@npm:^6.0.0, semver@npm:^6.1.1, semver@npm:^6.1.2, semver@npm:^6.3.0, semver@npm:^6.3.1": version: 6.3.1 resolution: "semver@npm:6.3.1" bin: From e90c18254893e7049ee9b527a1080ce08df70383 Mon Sep 17 00:00:00 2001 From: steff-petro <85114094+steff-petro@users.noreply.github.com> Date: Wed, 9 Aug 2023 20:32:52 +0200 Subject: [PATCH 174/372] replaced static catalog link with dynamic catalog index Signed-off-by: steff-petro <85114094+steff-petro@users.noreply.github.com> --- .../components/Cards/Group/MembersList/MembersListCard.tsx | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/plugins/org/src/components/Cards/Group/MembersList/MembersListCard.tsx b/plugins/org/src/components/Cards/Group/MembersList/MembersListCard.tsx index 0a5386ea20..202f32daa8 100644 --- a/plugins/org/src/components/Cards/Group/MembersList/MembersListCard.tsx +++ b/plugins/org/src/components/Cards/Group/MembersList/MembersListCard.tsx @@ -47,11 +47,12 @@ import { Link, OverflowTooltip, } from '@backstage/core-components'; -import { useApi } from '@backstage/core-plugin-api'; +import { useApi, useRouteRef } from '@backstage/core-plugin-api'; import { getAllDesendantMembersForGroupEntity, removeDuplicateEntitiesFrom, } from '../../../../helpers/helpers'; +import { catalogIndexRouteRef } from '../../../../routes'; const useStyles = makeStyles((theme: Theme) => createStyles({ @@ -70,6 +71,7 @@ const useStyles = makeStyles((theme: Theme) => const MemberComponent = (props: { member: UserEntity }) => { const classes = useStyles(); + const catalogLink = useRouteRef(catalogIndexRouteRef); const { metadata: { name: metaName, description }, spec: { profile }, @@ -105,7 +107,7 @@ const MemberComponent = (props: { member: UserEntity }) => { From 018be7d8a63246fae6e83b1bc6d2b6e8c454cd65 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 9 Aug 2023 18:51:49 +0000 Subject: [PATCH 175/372] fix(deps): update dependency graphql-modules to v2.2.0 Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- yarn.lock | 151 ++++++++++++++++++++++++++++-------------------------- 1 file changed, 78 insertions(+), 73 deletions(-) diff --git a/yarn.lock b/yarn.lock index 87f68c720d..56f0238159 100644 --- a/yarn.lock +++ b/yarn.lock @@ -11150,17 +11150,17 @@ __metadata: languageName: node linkType: hard -"@graphql-tools/batch-execute@npm:^8.5.18": - version: 8.5.18 - resolution: "@graphql-tools/batch-execute@npm:8.5.18" +"@graphql-tools/batch-execute@npm:^9.0.1": + version: 9.0.1 + resolution: "@graphql-tools/batch-execute@npm:9.0.1" dependencies: - "@graphql-tools/utils": 9.2.1 - dataloader: 2.2.2 + "@graphql-tools/utils": ^10.0.5 + dataloader: ^2.2.2 tslib: ^2.4.0 - value-or-promise: 1.0.12 + value-or-promise: ^1.0.12 peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - checksum: 4a5b5dec502a91bd657a4ddad74965d050d3994c89f036225fac58657b5a275bb374224b20484e3ba773525e75a5552c4a5af7b6d52859ce3a3b32aec2412b6e + checksum: c2bcf9dbcd3d08b2e04708fddad7f587677b62e189b0357b8a5495693e17b257b3022f5983d503966baaf32cbdc92a0a00dc95be7f5b6039357a31ffdde29a19 languageName: node linkType: hard @@ -11196,20 +11196,19 @@ __metadata: languageName: node linkType: hard -"@graphql-tools/delegate@npm:9.0.28": - version: 9.0.28 - resolution: "@graphql-tools/delegate@npm:9.0.28" +"@graphql-tools/delegate@npm:^10.0.0": + version: 10.0.2 + resolution: "@graphql-tools/delegate@npm:10.0.2" dependencies: - "@graphql-tools/batch-execute": ^8.5.18 - "@graphql-tools/executor": ^0.0.15 - "@graphql-tools/schema": ^9.0.16 - "@graphql-tools/utils": ^9.2.1 + "@graphql-tools/batch-execute": ^9.0.1 + "@graphql-tools/executor": ^1.0.0 + "@graphql-tools/schema": ^10.0.0 + "@graphql-tools/utils": ^10.0.5 dataloader: ^2.2.2 tslib: ^2.5.0 - value-or-promise: ^1.0.12 peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - checksum: e24c757ea15a2b654268194bbf76188fca6692486d1b019b0ad7d48c264f92b7b681a43c8a8355ace48a29f9dd566c20e8707b6cef281331a813f23ee1c94375 + checksum: 3641dd03b241234cc0bc15221e1bd7e82f003f0bdb59a04cfaba23b5dc43d3aed1f068cc79d526dd731f6e4acfd90c9e20287feb565b9c881ed441c5008e32db languageName: node linkType: hard @@ -11278,18 +11277,18 @@ __metadata: languageName: node linkType: hard -"@graphql-tools/executor@npm:^0.0.15": - version: 0.0.15 - resolution: "@graphql-tools/executor@npm:0.0.15" +"@graphql-tools/executor@npm:^1.0.0": + version: 1.2.0 + resolution: "@graphql-tools/executor@npm:1.2.0" dependencies: - "@graphql-tools/utils": 9.2.1 - "@graphql-typed-document-node/core": 3.1.2 - "@repeaterjs/repeater": 3.0.4 + "@graphql-tools/utils": ^10.0.0 + "@graphql-typed-document-node/core": 3.2.0 + "@repeaterjs/repeater": ^3.0.4 tslib: ^2.4.0 - value-or-promise: 1.0.12 + value-or-promise: ^1.0.12 peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - checksum: 7a963d6fcd00bd9c2a42f35a33bc9178576a1eeac755ce69981aa1e2c61238953b7ab9c11ffcfc86e49fdcf4fc057698c6f7169d6be580298e286076276b1295 + checksum: a6fe10636e433155a8fb76f1be76f4f55e7e54c7473a14c546a7b558819e92b3658f33f1cb646b9523a22d692b95f2cbd5a8e628f4f263fa48f229ddf98a6850 languageName: node linkType: hard @@ -11436,18 +11435,6 @@ __metadata: languageName: node linkType: hard -"@graphql-tools/merge@npm:8.4.0": - version: 8.4.0 - resolution: "@graphql-tools/merge@npm:8.4.0" - dependencies: - "@graphql-tools/utils": 9.2.1 - tslib: ^2.4.0 - peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - checksum: 32265749833615ac2cb3d958318f5c46b7bd5ec858acfbad7136d379594ec3c98ba67ba5f04f4061187e5dfd52bb277155cd98fdeb2b4c5535c16bdb4f117ae0 - languageName: node - linkType: hard - "@graphql-tools/merge@npm:^8.2.6, @graphql-tools/merge@npm:^8.4.1": version: 8.4.1 resolution: "@graphql-tools/merge@npm:8.4.1" @@ -11460,6 +11447,18 @@ __metadata: languageName: node linkType: hard +"@graphql-tools/merge@npm:^9.0.0": + version: 9.0.0 + resolution: "@graphql-tools/merge@npm:9.0.0" + dependencies: + "@graphql-tools/utils": ^10.0.0 + tslib: ^2.4.0 + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + checksum: e93794260faa477979bdc22f05da26c0eff02bd82c11565a1197152b70b5ab1c73dc6f8a05caf06737bcb18cb244bd19ee99d62bfc41af3bffb3c17eddb70edf + languageName: node + linkType: hard + "@graphql-tools/optimize@npm:^1.3.0": version: 1.3.0 resolution: "@graphql-tools/optimize@npm:1.3.0" @@ -11541,21 +11540,21 @@ __metadata: languageName: node linkType: hard -"@graphql-tools/schema@npm:9.0.17": - version: 9.0.17 - resolution: "@graphql-tools/schema@npm:9.0.17" +"@graphql-tools/schema@npm:^10.0.0": + version: 10.0.0 + resolution: "@graphql-tools/schema@npm:10.0.0" dependencies: - "@graphql-tools/merge": 8.4.0 - "@graphql-tools/utils": 9.2.1 + "@graphql-tools/merge": ^9.0.0 + "@graphql-tools/utils": ^10.0.0 tslib: ^2.4.0 - value-or-promise: 1.0.12 + value-or-promise: ^1.0.12 peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - checksum: 1c6513dd88b47d07702d01a48941ee164c4090c69b2475b1dde48a3d8866ed48fd39a33d15510682f6d8c18d19ceb72b77104eb4edbb194f96a129cc03909e89 + checksum: 550e9a4528584a4d108892f1553fb5b2590e63e88b9a9d3c1ad80b01c974ca9947adb9d1448a6969230d90c15dc96e8e84d62f32ef0fde804c389b43ac5bd739 languageName: node linkType: hard -"@graphql-tools/schema@npm:^9.0.0, @graphql-tools/schema@npm:^9.0.16": +"@graphql-tools/schema@npm:^9.0.0": version: 9.0.19 resolution: "@graphql-tools/schema@npm:9.0.19" dependencies: @@ -11659,6 +11658,19 @@ __metadata: languageName: node linkType: hard +"@graphql-tools/utils@npm:^10.0.0, @graphql-tools/utils@npm:^10.0.5": + version: 10.0.5 + resolution: "@graphql-tools/utils@npm:10.0.5" + dependencies: + "@graphql-typed-document-node/core": ^3.1.1 + dset: ^3.1.2 + tslib: ^2.4.0 + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + checksum: 600eb668b0a80264a56d1bfc2b431073a620de8ffea959362a1d13c4e0dd5738b627cc508ead8ecdbd7c1a2da05d5664e43443e15d3b221a809fa1a0e2740193 + languageName: node + linkType: hard + "@graphql-tools/wrap@npm:9.2.23": version: 9.2.23 resolution: "@graphql-tools/wrap@npm:9.2.23" @@ -11674,18 +11686,18 @@ __metadata: languageName: node linkType: hard -"@graphql-tools/wrap@npm:^9.0.0": - version: 9.3.8 - resolution: "@graphql-tools/wrap@npm:9.3.8" +"@graphql-tools/wrap@npm:^10.0.0": + version: 10.0.0 + resolution: "@graphql-tools/wrap@npm:10.0.0" dependencies: - "@graphql-tools/delegate": 9.0.28 - "@graphql-tools/schema": 9.0.17 - "@graphql-tools/utils": 9.2.1 + "@graphql-tools/delegate": ^10.0.0 + "@graphql-tools/schema": ^10.0.0 + "@graphql-tools/utils": ^10.0.0 tslib: ^2.4.0 - value-or-promise: 1.0.12 + value-or-promise: ^1.0.12 peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - checksum: 1f280b939f1c8c33be8fbd92c0584e9125e30c59ce6f75f20657235d24e5a2c01eb3214eda9ae74d431d9da072cdfa6cedeafdc5b352dd33de439ba42402efcb + checksum: f7ce366cdd479c3f73c3c98f66fa13c528c63e2f791083e78ca14e010ebcd359b5c9bd78e2e8bd437a705418b87584eb6512f1eeb1971b81560c79c6fb3a4a6e languageName: node linkType: hard @@ -11698,12 +11710,12 @@ __metadata: languageName: node linkType: hard -"@graphql-typed-document-node/core@npm:3.1.2, @graphql-typed-document-node/core@npm:^3.1.0, @graphql-typed-document-node/core@npm:^3.1.1": - version: 3.1.2 - resolution: "@graphql-typed-document-node/core@npm:3.1.2" +"@graphql-typed-document-node/core@npm:3.2.0, @graphql-typed-document-node/core@npm:^3.1.0, @graphql-typed-document-node/core@npm:^3.1.1": + version: 3.2.0 + resolution: "@graphql-typed-document-node/core@npm:3.2.0" peerDependencies: graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - checksum: a61afa025acdabd7833e4f654a5802fc1a526171f81e0c435c8e651050a5a0682499a2c7a51304ceb61fde36cd69fc7975ce5e1b16b9ba7ea474c649f33eea8b + checksum: fa44443accd28c8cf4cb96aaaf39d144a22e8b091b13366843f4e97d19c7bfeaf609ce3c7603a4aeffe385081eaf8ea245d078633a7324c11c5ec4b2011bb76d languageName: node linkType: hard @@ -14162,7 +14174,7 @@ __metadata: languageName: node linkType: hard -"@repeaterjs/repeater@npm:3.0.4": +"@repeaterjs/repeater@npm:3.0.4, @repeaterjs/repeater@npm:^3.0.4": version: 3.0.4 resolution: "@repeaterjs/repeater@npm:3.0.4" checksum: cca0db3e802bc26fcce0b4a574074d9956da53bf43094de03c0e4732d05e13441279a92f0b96e2a7a39da50933684947a138c1213406eaafe39cfd4683d6c0df @@ -22905,7 +22917,7 @@ __metadata: languageName: node linkType: hard -"dataloader@npm:2.2.2, dataloader@npm:^2.0.0, dataloader@npm:^2.2.2": +"dataloader@npm:^2.0.0, dataloader@npm:^2.2.2": version: 2.2.2 resolution: "dataloader@npm:2.2.2" checksum: 4dabd247089c29f194e94d5434d504f99156c5c214a03463c20f3f17f40398d7e179edee69a27c16e315519ac8739042a810090087ae26449a0e685156a02c65 @@ -23625,7 +23637,7 @@ __metadata: languageName: node linkType: hard -"dset@npm:3.1.2": +"dset@npm:3.1.2, dset@npm:^3.1.2": version: 3.1.2 resolution: "dset@npm:3.1.2" checksum: 4f8066f517aa0a70af688c66e9a0a5590f0aada76f6edc7ba9ddb309e27d3a6d65c0a2e31ab2a84005d4c791e5327773cdde59b8ab169050330a0dc283663e87 @@ -26988,16 +27000,16 @@ __metadata: linkType: hard "graphql-modules@npm:^2.0.0": - version: 2.1.2 - resolution: "graphql-modules@npm:2.1.2" + version: 2.2.0 + resolution: "graphql-modules@npm:2.2.0" dependencies: - "@graphql-tools/schema": ^9.0.0 - "@graphql-tools/wrap": ^9.0.0 + "@graphql-tools/schema": ^10.0.0 + "@graphql-tools/wrap": ^10.0.0 "@graphql-typed-document-node/core": ^3.1.0 - ramda: ^0.28.0 + ramda: ^0.29.0 peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 - checksum: 3a4732c54acb707350b7249d96952b5bb1e5a2c054090181d4e4f8adcd66d4d0675208d06f873bca75b924833df9a2c5bc7ce90aeb04b2d9e256605313a6080a + checksum: 81e36df3869f54274b1ab2d178d96ae649f6261724235566361caa770a6011b02633e211cdd2e57b4720b8fa61c2469618a1dc7e2ed213855bf48a2fbf30a76d languageName: node linkType: hard @@ -36237,14 +36249,7 @@ __metadata: languageName: node linkType: hard -"ramda@npm:^0.28.0": - version: 0.28.0 - resolution: "ramda@npm:0.28.0" - checksum: 44ea6e5010bba70151b6a92d8114a91915e8b5a16105cce65fae58c9d7386b812c429645e35f21141d7087568550ce383bc10ee1a65cdec951f4b69ea457e6a4 - languageName: node - linkType: hard - -"ramda@npm:~0.29.0": +"ramda@npm:^0.29.0, ramda@npm:~0.29.0": version: 0.29.0 resolution: "ramda@npm:0.29.0" checksum: 9ab26c06eb7545cbb7eebcf75526d6ee2fcaae19e338f165b2bf32772121e7b28192d6664d1ba222ff76188ba26ab307342d66e805dbb02c860560adc4d5dd57 From 9806e3c8020142da8073d7f93ea985c403ddcf8f Mon Sep 17 00:00:00 2001 From: steff-petro <85114094+steff-petro@users.noreply.github.com> Date: Wed, 9 Aug 2023 21:04:28 +0200 Subject: [PATCH 176/372] corrected test functions Signed-off-by: steff-petro <85114094+steff-petro@users.noreply.github.com> --- .../MembersList/MembersListCard.test.tsx | 36 +++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/plugins/org/src/components/Cards/Group/MembersList/MembersListCard.test.tsx b/plugins/org/src/components/Cards/Group/MembersList/MembersListCard.test.tsx index 47e954eb17..ee31481fd0 100644 --- a/plugins/org/src/components/Cards/Group/MembersList/MembersListCard.test.tsx +++ b/plugins/org/src/components/Cards/Group/MembersList/MembersListCard.test.tsx @@ -39,6 +39,7 @@ import { EntityLayout } from '@backstage/plugin-catalog'; import { screen } from '@testing-library/react'; import userEvent from '@testing-library/user-event'; import { Observable } from '@backstage/types'; +import { catalogIndexRouteRef } from '../../../../routes'; // Mock needed because jsdom doesn't correctly implement box-sizing // https://github.com/ShinyChang/React-Text-Truncate/issues/70 @@ -124,6 +125,11 @@ describe('MemberTab Test', () => { ,
, + { + mountedRoutes: { + '/catalog': catalogIndexRouteRef, + }, + }, ), ); @@ -152,6 +158,11 @@ describe('MemberTab Test', () => {
, + { + mountedRoutes: { + '/catalog': catalogIndexRouteRef, + }, + }, ), ); @@ -176,6 +187,11 @@ describe('MemberTab Test', () => {
, + { + mountedRoutes: { + '/catalog': catalogIndexRouteRef, + }, + }, ); const toggleSwitch = screen.queryByRole('checkbox'); @@ -199,6 +215,11 @@ describe('MemberTab Test', () => {
, + { + mountedRoutes: { + '/catalog': catalogIndexRouteRef, + }, + }, ); expect(screen.queryByRole('checkbox')).toBeInTheDocument(); @@ -221,6 +242,11 @@ describe('MemberTab Test', () => {
, + { + mountedRoutes: { + '/catalog': catalogIndexRouteRef, + }, + }, ); const displayedMemberNames = screen.queryAllByTestId('user-link'); @@ -252,6 +278,11 @@ describe('MemberTab Test', () => {
, + { + mountedRoutes: { + '/catalog': catalogIndexRouteRef, + }, + }, ); const displayedMemberNames = screen.queryAllByTestId('user-link'); @@ -283,6 +314,11 @@ describe('MemberTab Test', () => { , + { + mountedRoutes: { + '/catalog': catalogIndexRouteRef, + }, + }, ); // Click the toggle switch From 50331203e2a28940aeda2e1303d9243d8587881f Mon Sep 17 00:00:00 2001 From: steff-petro <85114094+steff-petro@users.noreply.github.com> Date: Wed, 9 Aug 2023 21:14:19 +0200 Subject: [PATCH 177/372] added changeset Signed-off-by: steff-petro <85114094+steff-petro@users.noreply.github.com> --- .changeset/healthy-tigers-brake.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/healthy-tigers-brake.md diff --git a/.changeset/healthy-tigers-brake.md b/.changeset/healthy-tigers-brake.md new file mode 100644 index 0000000000..c224d50583 --- /dev/null +++ b/.changeset/healthy-tigers-brake.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-org': patch +--- + +Fixed bug in MembersListCard component where the url for the members was static which was breaking the component when catalog route was changed From 7ca5b30cd7bf72a0a1f09f6178352a33ec129792 Mon Sep 17 00:00:00 2001 From: 3nilorac Date: Wed, 9 Aug 2023 17:02:41 -0300 Subject: [PATCH 178/372] updates creditas' contact Signed-off-by: 3nilorac --- ADOPTERS.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ADOPTERS.md b/ADOPTERS.md index 8afd8eb4ab..6668d471bb 100644 --- a/ADOPTERS.md +++ b/ADOPTERS.md @@ -43,7 +43,7 @@ _You can do this by using the [Adopter form](https://info.backstage.spotify.com/ | [MavTek](https://www.mavtek.com/) | [@fgascon](https://github.com/fgascon) | Developer portal focused on standardizing practices, centralizing documentation and streamlining developer practices. | | [QuintoAndar](https://www.quintoandar.com.br/) | [@quintoandar](https://github.com/quintoandar) | Developer portal, services catalog and centralization of service metrics. | | [empathy.co](https://empathy.co/) | [@guillermotti](https://github.com/guillermotti) | Developer portal for tech docs, service catalog, plugin discovery and much more. | -| [creditas.com](https://creditas.com/) | [@aureliosaraiva](https://github.com/aureliosaraiva) [@Creditas](https://github.com/creditas) | Centralization of all services, standards, documentation, etc. We started the deployment process. | +| [creditas.com](https://creditas.com/) | [@rebender](https://github.com/rebender) [@Creditas](https://github.com/creditas) | Centralization of all services, standards, documentation, etc. We started the deployment process. | | [Prisjakt](https://www.prisjakt.nu) / [PriceSpy](https://pricespy.co.uk) | [@kennylindahl](https://github.com/kennylindahl) | Internal developer portal - Documentation, scaffolding, software catalog, TechRadar, Gitlab org data integration | | [Powerspike](https://powerspike.tv/) | [@trelore](https://github.com/trelore) | Developer portal for documentation of core libraries and repositories. | | [2U](https://2u.com) | [@danielleEriksen](https://github.com/danielleEriksen), [@sbhatia](https://github.com/sbhatia) | Development team home-base, promoting service discoverability, resource dependencies, and tech radar | From 743c172375c02032d238102b706183ffa4af84f8 Mon Sep 17 00:00:00 2001 From: steff-petro <85114094+steff-petro@users.noreply.github.com> Date: Wed, 9 Aug 2023 22:19:53 +0200 Subject: [PATCH 179/372] MembersListCard correction, test functions: wip Signed-off-by: steff-petro <85114094+steff-petro@users.noreply.github.com> --- .../MembersList/MembersListCard.test.tsx | 16 +++++++------- .../Group/MembersList/MembersListCard.tsx | 22 ++++--------------- 2 files changed, 12 insertions(+), 26 deletions(-) diff --git a/plugins/org/src/components/Cards/Group/MembersList/MembersListCard.test.tsx b/plugins/org/src/components/Cards/Group/MembersList/MembersListCard.test.tsx index ee31481fd0..a8887baa0a 100644 --- a/plugins/org/src/components/Cards/Group/MembersList/MembersListCard.test.tsx +++ b/plugins/org/src/components/Cards/Group/MembersList/MembersListCard.test.tsx @@ -19,6 +19,7 @@ import { CatalogApi, catalogApiRef, EntityProvider, + entityRouteRef, StarredEntitiesApi, starredEntitiesApiRef, } from '@backstage/plugin-catalog-react'; @@ -39,7 +40,6 @@ import { EntityLayout } from '@backstage/plugin-catalog'; import { screen } from '@testing-library/react'; import userEvent from '@testing-library/user-event'; import { Observable } from '@backstage/types'; -import { catalogIndexRouteRef } from '../../../../routes'; // Mock needed because jsdom doesn't correctly implement box-sizing // https://github.com/ShinyChang/React-Text-Truncate/issues/70 @@ -127,7 +127,7 @@ describe('MemberTab Test', () => { , { mountedRoutes: { - '/catalog': catalogIndexRouteRef, + '/catalog/:namespace/:kind/:name': entityRouteRef, }, }, ), @@ -160,7 +160,7 @@ describe('MemberTab Test', () => { , { mountedRoutes: { - '/catalog': catalogIndexRouteRef, + '/catalog/:namespace/:kind/:name': entityRouteRef, }, }, ), @@ -189,7 +189,7 @@ describe('MemberTab Test', () => { , { mountedRoutes: { - '/catalog': catalogIndexRouteRef, + '/catalog/:namespace/:kind/:name': entityRouteRef, }, }, ); @@ -217,7 +217,7 @@ describe('MemberTab Test', () => { , { mountedRoutes: { - '/catalog': catalogIndexRouteRef, + '/catalog/:namespace/:kind/:name': entityRouteRef, }, }, ); @@ -244,7 +244,7 @@ describe('MemberTab Test', () => { , { mountedRoutes: { - '/catalog': catalogIndexRouteRef, + '/catalog/:namespace/:kind/:name': entityRouteRef, }, }, ); @@ -280,7 +280,7 @@ describe('MemberTab Test', () => { , { mountedRoutes: { - '/catalog': catalogIndexRouteRef, + '/catalog/:namespace/:kind/:name': entityRouteRef, }, }, ); @@ -316,7 +316,7 @@ describe('MemberTab Test', () => { , { mountedRoutes: { - '/catalog': catalogIndexRouteRef, + '/catalog/:namespace/:kind/:name': entityRouteRef, }, }, ); diff --git a/plugins/org/src/components/Cards/Group/MembersList/MembersListCard.tsx b/plugins/org/src/components/Cards/Group/MembersList/MembersListCard.tsx index 202f32daa8..0eaa079a4e 100644 --- a/plugins/org/src/components/Cards/Group/MembersList/MembersListCard.tsx +++ b/plugins/org/src/components/Cards/Group/MembersList/MembersListCard.tsx @@ -20,11 +20,7 @@ import { UserEntity, stringifyEntityRef, } from '@backstage/catalog-model'; -import { - catalogApiRef, - entityRouteParams, - useEntity, -} from '@backstage/plugin-catalog-react'; +import { catalogApiRef, useEntity } from '@backstage/plugin-catalog-react'; import { Box, createStyles, @@ -36,7 +32,6 @@ import { } from '@material-ui/core'; import Pagination from '@material-ui/lab/Pagination'; import React, { useState } from 'react'; -import { generatePath } from 'react-router-dom'; import useAsync from 'react-use/lib/useAsync'; import { @@ -47,12 +42,12 @@ import { Link, OverflowTooltip, } from '@backstage/core-components'; -import { useApi, useRouteRef } from '@backstage/core-plugin-api'; +import { useApi } from '@backstage/core-plugin-api'; import { getAllDesendantMembersForGroupEntity, removeDuplicateEntitiesFrom, } from '../../../../helpers/helpers'; -import { catalogIndexRouteRef } from '../../../../routes'; +import { EntityRefLink } from '@backstage/plugin-catalog-react'; const useStyles = makeStyles((theme: Theme) => createStyles({ @@ -71,7 +66,6 @@ const useStyles = makeStyles((theme: Theme) => const MemberComponent = (props: { member: UserEntity }) => { const classes = useStyles(); - const catalogLink = useRouteRef(catalogIndexRouteRef); const { metadata: { name: metaName, description }, spec: { profile }, @@ -104,15 +98,7 @@ const MemberComponent = (props: { member: UserEntity }) => { textAlign="center" > - - - + {profile?.email && ( From b8d6b22acd57e307846b3486fa110655896ae040 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Thu, 10 Aug 2023 11:25:53 +0200 Subject: [PATCH 180/372] catalog-backend: inline synthetic load test module Signed-off-by: Patrik Oldsberg --- .changeset/fast-peas-live.md | 5 +++ .../lib/catalogModuleSyntheticLoadEntities.ts | 40 +++++-------------- .../performance/stitchingPerformance.test.ts | 28 ++++++++++--- 3 files changed, 38 insertions(+), 35 deletions(-) create mode 100644 .changeset/fast-peas-live.md diff --git a/.changeset/fast-peas-live.md b/.changeset/fast-peas-live.md new file mode 100644 index 0000000000..5cf91079b9 --- /dev/null +++ b/.changeset/fast-peas-live.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-catalog-backend': patch +--- + +Internal refactor for load test diff --git a/plugins/catalog-backend/src/tests/performance/lib/catalogModuleSyntheticLoadEntities.ts b/plugins/catalog-backend/src/tests/performance/lib/catalogModuleSyntheticLoadEntities.ts index 4d38b28bcf..7925b0b552 100644 --- a/plugins/catalog-backend/src/tests/performance/lib/catalogModuleSyntheticLoadEntities.ts +++ b/plugins/catalog-backend/src/tests/performance/lib/catalogModuleSyntheticLoadEntities.ts @@ -14,7 +14,6 @@ * limitations under the License. */ -import { createBackendModule } from '@backstage/backend-plugin-api'; import { Entity } from '@backstage/catalog-model'; import { LocationSpec } from '@backstage/plugin-catalog-common'; import { @@ -26,7 +25,6 @@ import { EntityProviderConnection, processingResult, } from '@backstage/plugin-catalog-node'; -import { catalogProcessingExtensionPoint } from '@backstage/plugin-catalog-node/alpha'; /** * Options for a fixed initial load of entities. @@ -143,12 +141,15 @@ export const common = { /** * The entity provider that drives the initial base entity injection + * @internal */ -class SyntheticLoadEntitiesProvider implements EntityProvider { +export class SyntheticLoadEntitiesProvider implements EntityProvider { constructor( private readonly load: SyntheticLoadOptions, private readonly events: SyntheticLoadEvents, - ) {} + ) { + validateSyntheticLoadOptions(load); + } getProviderName(): string { return 'SyntheticLoadEntitiesProvider'; @@ -180,9 +181,12 @@ class SyntheticLoadEntitiesProvider implements EntityProvider { /** * Supporting processor for emitting children and relations + * @internal */ -class SyntheticLoadEntitiesProcessor implements CatalogProcessor { - constructor(private readonly load: SyntheticLoadOptions) {} +export class SyntheticLoadEntitiesProcessor implements CatalogProcessor { + constructor(private readonly load: SyntheticLoadOptions) { + validateSyntheticLoadOptions(load); + } getProcessorName(): string { return 'SyntheticLoadEntitiesProcessor'; @@ -231,27 +235,3 @@ class SyntheticLoadEntitiesProcessor implements CatalogProcessor { return entity; } } - -export const catalogModuleSyntheticLoadEntities = createBackendModule( - (options: { load: SyntheticLoadOptions; events?: SyntheticLoadEvents }) => ({ - moduleId: 'syntheticLoadEntities', - pluginId: 'catalog', - register(reg) { - reg.registerInit({ - deps: { - catalog: catalogProcessingExtensionPoint, - }, - async init({ catalog }) { - const { load, events = {} } = options; - - validateSyntheticLoadOptions(load); - const provider = new SyntheticLoadEntitiesProvider(load, events); - const processor = new SyntheticLoadEntitiesProcessor(load); - - catalog.addEntityProvider(provider); - catalog.addProcessor(processor); - }, - }); - }, - }), -); diff --git a/plugins/catalog-backend/src/tests/performance/stitchingPerformance.test.ts b/plugins/catalog-backend/src/tests/performance/stitchingPerformance.test.ts index 2f32fcd907..9cb20d557d 100644 --- a/plugins/catalog-backend/src/tests/performance/stitchingPerformance.test.ts +++ b/plugins/catalog-backend/src/tests/performance/stitchingPerformance.test.ts @@ -16,16 +16,19 @@ import { coreServices, + createBackendModule, createServiceFactory, } from '@backstage/backend-plugin-api'; import { TestDatabases, startTestBackend } from '@backstage/backend-test-utils'; import { catalogPlugin } from '@backstage/plugin-catalog-backend/alpha'; +import { catalogProcessingExtensionPoint } from '@backstage/plugin-catalog-node/alpha'; import { Knex } from 'knex'; import { applyDatabaseMigrations } from '../../database/migrations'; import { SyntheticLoadEvents, SyntheticLoadOptions, - catalogModuleSyntheticLoadEntities, + SyntheticLoadEntitiesProvider, + SyntheticLoadEntitiesProcessor, } from './lib/catalogModuleSyntheticLoadEntities'; import { describePerformanceTest, performanceTraceEnabled } from './lib/env'; @@ -180,10 +183,25 @@ describePerformanceTest('stitchingPerformance', () => { services: [staticDatabase(knex)], features: [ catalogPlugin(), - catalogModuleSyntheticLoadEntities({ - load, - events: tracker.events(), - }), + createBackendModule({ + moduleId: 'syntheticLoadEntities', + pluginId: 'catalog', + register(reg) { + reg.registerInit({ + deps: { + catalog: catalogProcessingExtensionPoint, + }, + async init({ catalog }) { + catalog.addEntityProvider( + new SyntheticLoadEntitiesProvider(load, tracker.events()), + ); + catalog.addProcessor( + new SyntheticLoadEntitiesProcessor(load), + ); + }, + }); + }, + })(), ], }); From e358e38294e2ad164b14ee92dd44f3678d2d1cdc Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 10 Aug 2023 09:49:14 +0000 Subject: [PATCH 181/372] chore(deps): update dependency @types/lodash to v4.14.197 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 2c7e8d6012..004c4f28ec 100644 --- a/yarn.lock +++ b/yarn.lock @@ -17358,9 +17358,9 @@ __metadata: linkType: hard "@types/lodash@npm:^4.14.151, @types/lodash@npm:^4.14.173, @types/lodash@npm:^4.14.175": - version: 4.14.196 - resolution: "@types/lodash@npm:4.14.196" - checksum: 201d17c3e62ae02a93c99ec78e024b2be9bd75564dd8fd8c26f6ac51a985ab280d28ce2688c3bcdfe785b0991cd9814edff19ee000234c7b45d9a697f09feb6a + version: 4.14.197 + resolution: "@types/lodash@npm:4.14.197" + checksum: 53d7567d1704de76cf33266c78062e0fd722d4b846e5b1417d0b6ef0ee41c0d9c451b92bc34f73d5f1fcc45c7d36511e92f6f47a9279b48157ba60a92ddaa078 languageName: node linkType: hard From 6c8d47b0f4bb76a3e33366e984162944c9b9bac7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fredrik=20Adel=C3=B6w?= Date: Thu, 10 Aug 2023 13:08:15 +0200 Subject: [PATCH 182/372] run prettier MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Fredrik Adelöw --- docs/overview/glossary.md | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/docs/overview/glossary.md b/docs/overview/glossary.md index d409fcf915..ab7d224f4d 100644 --- a/docs/overview/glossary.md +++ b/docs/overview/glossary.md @@ -9,7 +9,7 @@ The Backstage Glossary lists terms, abbreviations, and phrases used in Backstage, together with their explanations. We encourage you to use the terminology below for clarity and consistency when discussing Backstage. -See also [Authentication Glossary] (../auth/glossary.md), a separate glossary of terms and phrases +See also [Authentication Glossary](../auth/glossary.md), a separate glossary of terms and phrases specifically related to the authentication and identity section of Backstage. ### Backstage User Profiles @@ -17,11 +17,10 @@ specifically related to the authentication and identity section of Backstage. There are three main user profiles for Backstage: the integrator, the contributor, and the end user (typically a software engineer). -| Term | Explanation | -| ----------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Integrator | The **integrator** hosts the Backstage app and configures which plugins are available to use in the app. | -| Contributor | The **contributor** adds functionality to the app by writing plugins. | -| End user | The **end user** uses the app's functionality and interacts with its plugins. This profile covers the various roles that help deliver software. The typical end user is a **software engineer**, but users might also consider themselves *designers*, *data scientists*, *product owners*, *engineering managers*, *technical writers*, and so on. | -| Software engineer | The **software engineer** is an **end user** who uses the app's functionality and interacts with its plugins in the course of writing and documenting code. This user is more likely to embed documentation in the code files they produce, and create rough drafts of conceptual pages in collaboration with a **technical writer** or *technical editor*. | -| Technical writer | The **technical writer** is an **end user** who uses the app's functionality and interacts with its plugins in the course of writing and editing documentation. This user is more likely to produce and customize templates and produce conceptual pages to supplement documentation embedded in code files. | - +| Term | Explanation | +| ----------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Integrator | The **integrator** hosts the Backstage app and configures which plugins are available to use in the app. | +| Contributor | The **contributor** adds functionality to the app by writing plugins. | +| End user | The **end user** uses the app's functionality and interacts with its plugins. This profile covers the various roles that help deliver software. The typical end user is a **software engineer**, but users might also consider themselves _designers_, _data scientists_, _product owners_, _engineering managers_, _technical writers_, and so on. | +| Software engineer | The **software engineer** is an **end user** who uses the app's functionality and interacts with its plugins in the course of writing and documenting code. This user is more likely to embed documentation in the code files they produce, and create rough drafts of conceptual pages in collaboration with a **technical writer** or _technical editor_. | +| Technical writer | The **technical writer** is an **end user** who uses the app's functionality and interacts with its plugins in the course of writing and editing documentation. This user is more likely to produce and customize templates and produce conceptual pages to supplement documentation embedded in code files. | From beb5b2f4f15652056e1e6181f0f1a7b3331b0ef0 Mon Sep 17 00:00:00 2001 From: Stefan Petrovic Date: Thu, 10 Aug 2023 14:21:49 +0200 Subject: [PATCH 183/372] adjusted tests and added testid prop Signed-off-by: Stefan Petrovic --- .../Group/MembersList/MembersListCard.test.tsx | 15 --------------- .../Cards/Group/MembersList/MembersListCard.tsx | 6 +++++- 2 files changed, 5 insertions(+), 16 deletions(-) diff --git a/plugins/org/src/components/Cards/Group/MembersList/MembersListCard.test.tsx b/plugins/org/src/components/Cards/Group/MembersList/MembersListCard.test.tsx index a8887baa0a..f5a2d50cb5 100644 --- a/plugins/org/src/components/Cards/Group/MembersList/MembersListCard.test.tsx +++ b/plugins/org/src/components/Cards/Group/MembersList/MembersListCard.test.tsx @@ -193,11 +193,9 @@ describe('MemberTab Test', () => { }, }, ); - const toggleSwitch = screen.queryByRole('checkbox'); expect(toggleSwitch).toBeNull(); }); - it('Shows the aggregate members toggle if the showAggregateMembersToggle prop is true', async () => { await renderInTestApp( { }, }, ); - expect(screen.queryByRole('checkbox')).toBeInTheDocument(); }); - it('Shows only direct members if the showAggregateMembersToggle prop is undefined', async () => { await renderInTestApp( { }, }, ); - const displayedMemberNames = screen.queryAllByTestId('user-link'); const duplicatedUserText = screen.getByText('Duplicated User'); const groupAUserOneText = screen.getByText('Group A User One'); - expect(displayedMemberNames).toHaveLength(2); expect(duplicatedUserText).toBeInTheDocument(); expect(groupAUserOneText).toBeInTheDocument(); @@ -260,7 +254,6 @@ describe('MemberTab Test', () => { duplicatedUserText.compareDocumentPosition(groupAUserOneText), ).toBe(Node.DOCUMENT_POSITION_FOLLOWING); }); - it('Shows only direct members if the aggregate members switch is turned off', async () => { await renderInTestApp( { }, }, ); - const displayedMemberNames = screen.queryAllByTestId('user-link'); const duplicatedUserText = screen.getByText('Duplicated User'); const groupAUserOneText = screen.getByText('Group A User One'); - expect(displayedMemberNames).toHaveLength(2); expect(duplicatedUserText).toBeInTheDocument(); expect(groupAUserOneText).toBeInTheDocument(); @@ -296,7 +287,6 @@ describe('MemberTab Test', () => { duplicatedUserText.compareDocumentPosition(groupAUserOneText), ).toBe(Node.DOCUMENT_POSITION_FOLLOWING); }); - it('Shows all descendant members of the group when the aggregate users switch is turned on, showing duplicated members only once', async () => { await renderInTestApp( { }, }, ); - // Click the toggle switch await userEvent.click(screen.getByRole('checkbox')); - const displayedMemberNames = screen.queryAllByTestId('user-link'); const duplicatedUserText = screen.getByText('Duplicated User'); const groupAUserOneText = screen.getByText('Group A User One'); const groupBUserOneText = screen.getByText('Group B User One'); const groupDUserOneText = screen.getByText('Group D User One'); const groupEUserOneText = screen.getByText('Group E User One'); - expect(displayedMemberNames).toHaveLength(5); - expect(duplicatedUserText).toBeInTheDocument(); expect(groupAUserOneText).toBeInTheDocument(); expect(groupBUserOneText).toBeInTheDocument(); expect(groupDUserOneText).toBeInTheDocument(); expect(groupEUserOneText).toBeInTheDocument(); - expect( duplicatedUserText.compareDocumentPosition(groupAUserOneText), ).toBe(Node.DOCUMENT_POSITION_FOLLOWING); diff --git a/plugins/org/src/components/Cards/Group/MembersList/MembersListCard.tsx b/plugins/org/src/components/Cards/Group/MembersList/MembersListCard.tsx index 0eaa079a4e..3716af5522 100644 --- a/plugins/org/src/components/Cards/Group/MembersList/MembersListCard.tsx +++ b/plugins/org/src/components/Cards/Group/MembersList/MembersListCard.tsx @@ -98,7 +98,11 @@ const MemberComponent = (props: { member: UserEntity }) => { textAlign="center" > - + {profile?.email && ( From ffb0a021dc3e7605d7f3f098b123a214ffe87d27 Mon Sep 17 00:00:00 2001 From: Adam Harvey Date: Thu, 10 Aug 2023 10:27:16 -0400 Subject: [PATCH 184/372] chore(deps): Patch PGtools dep to pickup Yargs security patch Signed-off-by: Adam Harvey --- packages/e2e-test/package.json | 2 +- yarn.lock | 257 +++------------------------------ 2 files changed, 20 insertions(+), 239 deletions(-) diff --git a/packages/e2e-test/package.json b/packages/e2e-test/package.json index 64ee370d8a..557e0d9fb4 100644 --- a/packages/e2e-test/package.json +++ b/packages/e2e-test/package.json @@ -35,7 +35,7 @@ "cross-fetch": "^3.1.5", "fs-extra": "10.1.0", "handlebars": "^4.7.3", - "pgtools": "^0.3.0", + "pgtools": "^1.0.0", "puppeteer": "^17.0.0", "tree-kill": "^1.2.2" }, diff --git a/yarn.lock b/yarn.lock index 6a0c6279fc..92c6dca8ab 100644 --- a/yarn.lock +++ b/yarn.lock @@ -20284,7 +20284,7 @@ __metadata: languageName: node linkType: hard -"bluebird@npm:3.7.2, bluebird@npm:^3.3.5, bluebird@npm:^3.5.5, bluebird@npm:^3.7.2": +"bluebird@npm:3.7.2, bluebird@npm:^3.5.5, bluebird@npm:^3.7.2": version: 3.7.2 resolution: "bluebird@npm:3.7.2" checksum: 869417503c722e7dc54ca46715f70e15f4d9c602a423a02c825570862d12935be59ed9c7ba34a9b31f186c017c23cac6b54e35446f8353059c101da73eac22ef @@ -20824,13 +20824,6 @@ __metadata: languageName: node linkType: hard -"camelcase@npm:^3.0.0": - version: 3.0.0 - resolution: "camelcase@npm:3.0.0" - checksum: ae4fe1c17c8442a3a345a6b7d2393f028ab7a7601af0c352ad15d1ab97ca75112e19e29c942b2a214898e160194829b68923bce30e018d62149c6d84187f1673 - languageName: node - linkType: hard - "camelcase@npm:^5.0.0, camelcase@npm:^5.3.1": version: 5.3.1 resolution: "camelcase@npm:5.3.1" @@ -21297,17 +21290,6 @@ __metadata: languageName: node linkType: hard -"cliui@npm:^3.2.0": - version: 3.2.0 - resolution: "cliui@npm:3.2.0" - dependencies: - string-width: ^1.0.1 - strip-ansi: ^3.0.1 - wrap-ansi: ^2.0.0 - checksum: c68d1dbc3e347bfe79ed19cc7f48007d5edd6cd8438342e32073e0b4e311e3c44e1f4f19221462bc6590de56c2df520e427533a9dde95dee25710bec322746ad - languageName: node - linkType: hard - "cliui@npm:^6.0.0": version: 6.0.0 resolution: "cliui@npm:6.0.0" @@ -23029,7 +23011,7 @@ __metadata: languageName: node linkType: hard -"decamelize@npm:^1.1.0, decamelize@npm:^1.1.1, decamelize@npm:^1.2.0": +"decamelize@npm:^1.1.0, decamelize@npm:^1.2.0": version: 1.2.0 resolution: "decamelize@npm:1.2.0" checksum: ad8c51a7e7e0720c70ec2eeb1163b66da03e7616d7b98c9ef43cce2416395e84c1e9548dd94f5f6ffecfee9f8b94251fc57121a8b021f2ff2469b2bae247b8aa @@ -23703,7 +23685,7 @@ __metadata: fs-extra: 10.1.0 handlebars: ^4.7.3 nodemon: ^2.0.2 - pgtools: ^0.3.0 + pgtools: ^1.0.0 puppeteer: ^17.0.0 tree-kill: ^1.2.2 ts-node: ^10.0.0 @@ -23950,7 +23932,7 @@ __metadata: languageName: node linkType: hard -"error-ex@npm:^1.2.0, error-ex@npm:^1.3.1": +"error-ex@npm:^1.3.1": version: 1.3.2 resolution: "error-ex@npm:1.3.2" dependencies: @@ -25944,16 +25926,6 @@ __metadata: languageName: node linkType: hard -"find-up@npm:^1.0.0": - version: 1.1.2 - resolution: "find-up@npm:1.1.2" - dependencies: - path-exists: ^2.0.0 - pinkie-promise: ^2.0.0 - checksum: a2cb9f4c9f06ee3a1e92ed71d5aed41ac8ae30aefa568132f6c556fac7678a5035126153b59eaec68da78ac409eef02503b2b059706bdbf232668d7245e3240a - languageName: node - linkType: hard - "find-up@npm:^3.0.0": version: 3.0.0 resolution: "find-up@npm:3.0.0" @@ -26532,13 +26504,6 @@ __metadata: languageName: node linkType: hard -"get-caller-file@npm:^1.0.1": - version: 1.0.3 - resolution: "get-caller-file@npm:1.0.3" - checksum: 2b90a7f848896abcebcdc0acc627a435bcf05b9cd280599bc980ebfcdc222416c3df12c24c4845f69adc4346728e8966f70b758f9369f3534182791dfbc25c05 - languageName: node - linkType: hard - "get-caller-file@npm:^2.0.1, get-caller-file@npm:^2.0.5": version: 2.0.5 resolution: "get-caller-file@npm:2.0.5" @@ -28124,13 +28089,6 @@ __metadata: languageName: node linkType: hard -"invert-kv@npm:^1.0.0": - version: 1.0.0 - resolution: "invert-kv@npm:1.0.0" - checksum: aebeee31dda3b3d25ffd242e9a050926e7fe5df642d60953ab183aca1a7d1ffb39922eb2618affb0e850cf2923116f0da1345367759d88d097df5da1f1e1590e - languageName: node - linkType: hard - "ioredis@npm:^5.3.2": version: 5.3.2 resolution: "ioredis@npm:5.3.2" @@ -30734,15 +30692,6 @@ __metadata: languageName: node linkType: hard -"lcid@npm:^1.0.0": - version: 1.0.0 - resolution: "lcid@npm:1.0.0" - dependencies: - invert-kv: ^1.0.0 - checksum: e8c7a4db07663068c5c44b650938a2bc41aa992037eebb69376214320f202c1250e70b50c32f939e28345fd30c2d35b8e8cd9a19d5932c398246a864ce54843d - languageName: node - linkType: hard - "ldap-filter@npm:^0.3.3": version: 0.3.3 resolution: "ldap-filter@npm:0.3.3" @@ -30992,19 +30941,6 @@ __metadata: languageName: node linkType: hard -"load-json-file@npm:^1.0.0": - version: 1.1.0 - resolution: "load-json-file@npm:1.1.0" - dependencies: - graceful-fs: ^4.1.2 - parse-json: ^2.2.0 - pify: ^2.0.0 - pinkie-promise: ^2.0.0 - strip-bom: ^2.0.0 - checksum: 0e4e4f380d897e13aa236246a917527ea5a14e4fc34d49e01ce4e7e2a1e08e2740ee463a03fb021c04f594f29a178f4adb994087549d7c1c5315fcd29bf9934b - languageName: node - linkType: hard - "load-yaml-file@npm:^0.2.0": version: 0.2.0 resolution: "load-yaml-file@npm:0.2.0" @@ -31088,13 +31024,6 @@ __metadata: languageName: node linkType: hard -"lodash.assign@npm:^4.1.0, lodash.assign@npm:^4.2.0": - version: 4.2.0 - resolution: "lodash.assign@npm:4.2.0" - checksum: 75bbc6733c9f577c448031b4051f990f068802708891f94be9d4c2faffd6a9ec67a2c49671dafc908a068d35687765464853282842b4560b662e6c903d11cc90 - languageName: node - linkType: hard - "lodash.camelcase@npm:^4.3.0": version: 4.3.0 resolution: "lodash.camelcase@npm:4.3.0" @@ -33440,7 +33369,7 @@ __metadata: languageName: node linkType: hard -"normalize-package-data@npm:^2.3.2, normalize-package-data@npm:^2.5.0": +"normalize-package-data@npm:^2.5.0": version: 2.5.0 resolution: "normalize-package-data@npm:2.5.0" dependencies: @@ -34036,15 +33965,6 @@ __metadata: languageName: node linkType: hard -"os-locale@npm:^1.4.0": - version: 1.4.0 - resolution: "os-locale@npm:1.4.0" - dependencies: - lcid: ^1.0.0 - checksum: 0161a1b6b5a8492f99f4b47fe465df9fc521c55ba5414fce6444c45e2500487b8ed5b40a47a98a2363fe83ff04ab033785300ed8df717255ec4c3b625e55b1fb - languageName: node - linkType: hard - "os-tmpdir@npm:~1.0.2": version: 1.0.2 resolution: "os-tmpdir@npm:1.0.2" @@ -34361,15 +34281,6 @@ __metadata: languageName: node linkType: hard -"parse-json@npm:^2.2.0": - version: 2.2.0 - resolution: "parse-json@npm:2.2.0" - dependencies: - error-ex: ^1.2.0 - checksum: dda78a63e57a47b713a038630868538f718a7ca0cd172a36887b0392ccf544ed0374902eb28f8bf3409e8b71d62b79d17062f8543afccf2745f9b0b2d2bb80ca - languageName: node - linkType: hard - "parse-json@npm:^5.0.0, parse-json@npm:^5.2.0": version: 5.2.0 resolution: "parse-json@npm:5.2.0" @@ -34646,15 +34557,6 @@ __metadata: languageName: node linkType: hard -"path-exists@npm:^2.0.0": - version: 2.1.0 - resolution: "path-exists@npm:2.1.0" - dependencies: - pinkie-promise: ^2.0.0 - checksum: fdb734f1d00f225f7a0033ce6d73bff6a7f76ea08936abf0e5196fa6e54a645103538cd8aedcb90d6d8c3fa3705ded0c58a4da5948ae92aa8834892c1ab44a84 - languageName: node - linkType: hard - "path-exists@npm:^3.0.0": version: 3.0.0 resolution: "path-exists@npm:3.0.0" @@ -34774,17 +34676,6 @@ __metadata: languageName: node linkType: hard -"path-type@npm:^1.0.0": - version: 1.1.0 - resolution: "path-type@npm:1.1.0" - dependencies: - graceful-fs: ^4.1.2 - pify: ^2.0.0 - pinkie-promise: ^2.0.0 - checksum: 59a4b2c0e566baf4db3021a1ed4ec09a8b36fca960a490b54a6bcefdb9987dafe772852982b6011cd09579478a96e57960a01f75fa78a794192853c9d468fc79 - languageName: node - linkType: hard - "path-type@npm:^4.0.0": version: 4.0.0 resolution: "path-type@npm:4.0.0" @@ -34856,7 +34747,7 @@ __metadata: languageName: node linkType: hard -"pg-connection-string@npm:^2.3.0, pg-connection-string@npm:^2.4.0, pg-connection-string@npm:^2.6.2": +"pg-connection-string@npm:^2.3.0, pg-connection-string@npm:^2.5.0, pg-connection-string@npm:^2.6.2": version: 2.6.2 resolution: "pg-connection-string@npm:2.6.2" checksum: 22265882c3b6f2320785378d0760b051294a684989163d5a1cde4009e64e84448d7bf67d9a7b9e7f69440c3ee9e2212f9aa10dd17ad6773f6143c6020cebbcb5 @@ -34921,7 +34812,7 @@ __metadata: languageName: node linkType: hard -"pg@npm:^8.3.0, pg@npm:^8.4.0": +"pg@npm:^8.3.0, pg@npm:^8.9.0": version: 8.11.2 resolution: "pg@npm:8.11.2" dependencies: @@ -34954,18 +34845,17 @@ __metadata: languageName: node linkType: hard -"pgtools@npm:^0.3.0": - version: 0.3.2 - resolution: "pgtools@npm:0.3.2" +"pgtools@npm:^1.0.0": + version: 1.0.1 + resolution: "pgtools@npm:1.0.1" dependencies: - bluebird: ^3.3.5 - pg: ^8.4.0 - pg-connection-string: ^2.4.0 - yargs: ^5.0.0 + pg: ^8.9.0 + pg-connection-string: ^2.5.0 + yargs: ^17.7.1 bin: - createdbjs: createdb.js - dropdbjs: dropdb.js - checksum: 764644cde13431070e4e3558ed08b67fe73cb92d5573d0c0017f76b76cd85b25aecdf3fa948e6d50ceabf315f50ed2cfe52275d04321c274f1a00c26fe8485b4 + createdbjs: src/bin/createdb.js + dropdbjs: src/bin/dropdb.js + checksum: d047230e529a37f66cb0253adf505d61bc8f27aa9eb1ab88fe3ce75e3e2118b6771c408e2dbea1be8256b8ab5cc035f44298d47128085626fad6df6c33d026dc languageName: node linkType: hard @@ -34999,7 +34889,7 @@ __metadata: languageName: node linkType: hard -"pify@npm:^2.0.0, pify@npm:^2.2.0, pify@npm:^2.3.0": +"pify@npm:^2.2.0, pify@npm:^2.3.0": version: 2.3.0 resolution: "pify@npm:2.3.0" checksum: 9503aaeaf4577acc58642ad1d25c45c6d90288596238fb68f82811c08104c800e5a7870398e9f015d82b44ecbcbef3dc3d4251a1cbb582f6e5959fe09884b2ba @@ -35027,22 +34917,6 @@ __metadata: languageName: node linkType: hard -"pinkie-promise@npm:^2.0.0": - version: 2.0.1 - resolution: "pinkie-promise@npm:2.0.1" - dependencies: - pinkie: ^2.0.0 - checksum: b53a4a2e73bf56b6f421eef711e7bdcb693d6abb474d57c5c413b809f654ba5ee750c6a96dd7225052d4b96c4d053cdcb34b708a86fceed4663303abee52fcca - languageName: node - linkType: hard - -"pinkie@npm:^2.0.0": - version: 2.0.4 - resolution: "pinkie@npm:2.0.4" - checksum: b12b10afea1177595aab036fc220785488f67b4b0fc49e7a27979472592e971614fa1c728e63ad3e7eb748b4ec3c3dbd780819331dad6f7d635c77c10537b9db - languageName: node - linkType: hard - "pino-pretty@npm:^2.6.0": version: 2.6.1 resolution: "pino-pretty@npm:2.6.1" @@ -37119,16 +36993,6 @@ __metadata: languageName: node linkType: hard -"read-pkg-up@npm:^1.0.1": - version: 1.0.1 - resolution: "read-pkg-up@npm:1.0.1" - dependencies: - find-up: ^1.0.0 - read-pkg: ^1.0.0 - checksum: d18399a0f46e2da32beb2f041edd0cda49d2f2cc30195a05c759ef3ed9b5e6e19ba1ad1bae2362bdec8c6a9f2c3d18f4d5e8c369e808b03d498d5781cb9122c7 - languageName: node - linkType: hard - "read-pkg-up@npm:^7.0.1": version: 7.0.1 resolution: "read-pkg-up@npm:7.0.1" @@ -37140,17 +37004,6 @@ __metadata: languageName: node linkType: hard -"read-pkg@npm:^1.0.0": - version: 1.1.0 - resolution: "read-pkg@npm:1.1.0" - dependencies: - load-json-file: ^1.0.0 - normalize-package-data: ^2.3.2 - path-type: ^1.0.0 - checksum: a0f5d5e32227ec8e6a028dd5c5134eab229768dcb7a5d9a41a284ed28ad4b9284fecc47383dc1593b5694f4de603a7ffaee84b738956b9b77e0999567485a366 - languageName: node - linkType: hard - "read-pkg@npm:^5.2.0": version: 5.2.0 resolution: "read-pkg@npm:5.2.0" @@ -37690,13 +37543,6 @@ __metadata: languageName: node linkType: hard -"require-main-filename@npm:^1.0.1": - version: 1.0.1 - resolution: "require-main-filename@npm:1.0.1" - checksum: 1fef30754da961f4e13c450c3eb60c7ae898a529c6ad6fa708a70bd2eed01564ceb299187b2899f5562804d797a059f39a5789884d0ac7b7ae1defc68fba4abf - languageName: node - linkType: hard - "require-main-filename@npm:^2.0.0": version: 2.0.0 resolution: "require-main-filename@npm:2.0.0" @@ -39645,7 +39491,7 @@ __metadata: languageName: node linkType: hard -"string-width@npm:^1.0.1, string-width@npm:^1.0.2": +"string-width@npm:^1.0.1": version: 1.0.2 resolution: "string-width@npm:1.0.2" dependencies: @@ -42411,13 +42257,6 @@ __metadata: languageName: node linkType: hard -"which-module@npm:^1.0.0": - version: 1.0.0 - resolution: "which-module@npm:1.0.0" - checksum: 98434f7deb36350cb543c1f15612188541737e1f12d39b23b1c371dff5cf4aa4746210f2bdec202d5fe9da8682adaf8e3f7c44c520687d30948cfc59d5534edb - languageName: node - linkType: hard - "which-module@npm:^2.0.0": version: 2.0.0 resolution: "which-module@npm:2.0.0" @@ -42480,15 +42319,6 @@ __metadata: languageName: node linkType: hard -"window-size@npm:^0.2.0": - version: 0.2.0 - resolution: "window-size@npm:0.2.0" - bin: - window-size: cli.js - checksum: a85e2acf156cfa194301294809867bdadd8a48ee5d972d9fa8e3e1b3420a1d0201b13ac8eb0348a0d14bbf2c3316565b6a749749c2384c5d286caf8a064c4f90 - languageName: node - linkType: hard - "winston-transport@npm:^4.5.0": version: 4.5.0 resolution: "winston-transport@npm:4.5.0" @@ -42544,16 +42374,6 @@ __metadata: languageName: node linkType: hard -"wrap-ansi@npm:^2.0.0": - version: 2.1.0 - resolution: "wrap-ansi@npm:2.1.0" - dependencies: - string-width: ^1.0.1 - strip-ansi: ^3.0.1 - checksum: 2dacd4b3636f7a53ee13d4d0fe7fa2ed9ad81e9967e17231924ea88a286ec4619a78288de8d41881ee483f4449ab2c0287cde8154ba1bd0126c10271101b2ee3 - languageName: node - linkType: hard - "wrap-ansi@npm:^6.0.1, wrap-ansi@npm:^6.2.0": version: 6.2.0 resolution: "wrap-ansi@npm:6.2.0" @@ -42784,13 +42604,6 @@ __metadata: languageName: node linkType: hard -"y18n@npm:^3.2.1": - version: 3.2.2 - resolution: "y18n@npm:3.2.2" - checksum: 6154fd7544f8bbf5b18cdf77692ed88d389be49c87238ecb4e0d6a5276446cd2a5c29cc4bdbdddfc7e4e498b08df9d7e38df4a1453cf75eecfead392246ea74a - languageName: node - linkType: hard - "y18n@npm:^4.0.0": version: 4.0.3 resolution: "y18n@npm:4.0.3" @@ -42871,16 +42684,6 @@ __metadata: languageName: node linkType: hard -"yargs-parser@npm:^3.2.0": - version: 3.2.0 - resolution: "yargs-parser@npm:3.2.0" - dependencies: - camelcase: ^3.0.0 - lodash.assign: ^4.1.0 - checksum: d86fd69816a28a617f4cad21f7bfe7f7c931b16d063c73449cd914db409b8d5981a0f29f9e2a05014a7229164aa47336adf5a8856fa9870ab892346d29138e9a - languageName: node - linkType: hard - "yargs@npm:^15.1.0, yargs@npm:^15.3.1": version: 15.4.1 resolution: "yargs@npm:15.4.1" @@ -42915,7 +42718,7 @@ __metadata: languageName: node linkType: hard -"yargs@npm:^17.0.0, yargs@npm:^17.1.1, yargs@npm:^17.2.1, yargs@npm:^17.3.1, yargs@npm:^17.7.2": +"yargs@npm:^17.0.0, yargs@npm:^17.1.1, yargs@npm:^17.2.1, yargs@npm:^17.3.1, yargs@npm:^17.7.1, yargs@npm:^17.7.2": version: 17.7.2 resolution: "yargs@npm:17.7.2" dependencies: @@ -42930,28 +42733,6 @@ __metadata: languageName: node linkType: hard -"yargs@npm:^5.0.0": - version: 5.0.0 - resolution: "yargs@npm:5.0.0" - dependencies: - cliui: ^3.2.0 - decamelize: ^1.1.1 - get-caller-file: ^1.0.1 - lodash.assign: ^4.2.0 - os-locale: ^1.4.0 - read-pkg-up: ^1.0.1 - require-directory: ^2.1.1 - require-main-filename: ^1.0.1 - set-blocking: ^2.0.0 - string-width: ^1.0.2 - which-module: ^1.0.0 - window-size: ^0.2.0 - y18n: ^3.2.1 - yargs-parser: ^3.2.0 - checksum: 478e9c8562c5cf5b9c2efc7c917e0b00c489cc50153d5d911ab68767c2cfddaf0b5bd4e04d6fefc00cb1d8f6263eab1d73df79a24d650ba95f5d45c819a1585a - languageName: node - linkType: hard - "yauzl@npm:^2.10.0": version: 2.10.0 resolution: "yauzl@npm:2.10.0" From ad3fb540172964c20c086ab8d317c496d28cdba1 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Thu, 10 Aug 2023 16:40:26 +0200 Subject: [PATCH 185/372] todo: fix filter encoding Signed-off-by: Patrik Oldsberg --- .changeset/pretty-ways-knock.md | 5 +++++ plugins/todo/src/api/TodoClient.ts | 18 +++++++++++------- 2 files changed, 16 insertions(+), 7 deletions(-) create mode 100644 .changeset/pretty-ways-knock.md diff --git a/.changeset/pretty-ways-knock.md b/.changeset/pretty-ways-knock.md new file mode 100644 index 0000000000..d06a107fe3 --- /dev/null +++ b/.changeset/pretty-ways-knock.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-todo': patch +--- + +Fixed URL encoding of filters where the filter was always rejected by the backend validation. diff --git a/plugins/todo/src/api/TodoClient.ts b/plugins/todo/src/api/TodoClient.ts index 4bfd5b77e5..e86e444c30 100644 --- a/plugins/todo/src/api/TodoClient.ts +++ b/plugins/todo/src/api/TodoClient.ts @@ -67,13 +67,17 @@ export class TodoClient implements TodoApi { } } - const res = await fetch(`${baseUrl}/v1/todos?${query}`, { - headers: token - ? { - Authorization: `Bearer ${token}`, - } - : undefined, - }); + const res = await fetch( + // TODO(Rugvip): Figure out a better solution to '*' not being URL encoded but that being required by OpenAPI + `${baseUrl}/v1/todos?${String(query).replace(/\*/g, '%2A')}`, + { + headers: token + ? { + Authorization: `Bearer ${token}`, + } + : undefined, + }, + ); if (!res.ok) { throw await ResponseError.fromResponse(res); From 1f3337ebc70739154ee21da56fe00a1503be2bfb Mon Sep 17 00:00:00 2001 From: Eric Peterson Date: Tue, 20 Jun 2023 18:38:36 +0200 Subject: [PATCH 186/372] Initial implementation of a backstage-repo-tools create-fix-package-info-yamls command Signed-off-by: Eric Peterson --- .changeset/repo-tools-yo-dawg.md | 5 + packages/repo-tools/cli-report.md | 11 + packages/repo-tools/package.json | 5 +- .../generate-catalog-info/codeowners.ts | 69 ++++++ .../generate-catalog-info.ts | 200 ++++++++++++++++++ .../commands/generate-catalog-info/utils.ts | 42 ++++ packages/repo-tools/src/commands/index.ts | 15 ++ yarn.lock | 37 +++- 8 files changed, 378 insertions(+), 6 deletions(-) create mode 100644 .changeset/repo-tools-yo-dawg.md create mode 100644 packages/repo-tools/src/commands/generate-catalog-info/codeowners.ts create mode 100644 packages/repo-tools/src/commands/generate-catalog-info/generate-catalog-info.ts create mode 100644 packages/repo-tools/src/commands/generate-catalog-info/utils.ts diff --git a/.changeset/repo-tools-yo-dawg.md b/.changeset/repo-tools-yo-dawg.md new file mode 100644 index 0000000000..85757fb172 --- /dev/null +++ b/.changeset/repo-tools-yo-dawg.md @@ -0,0 +1,5 @@ +--- +'@backstage/repo-tools': patch +--- + +Introducing a new, experimental command `backstage-repo-tools generate-catalog-info`, which can be used to create standardized `catalog-info.yaml` files for each Backstage package in a Backstage monorepo. It can also be used to automatically fix existing `catalog-info.yaml` files with the correct metadata (including `metadata.name`, `metadata.title`, and `metadata.description` introspected from the package's `package.json`, as well as `spec.owner` introspected from `CODEOWNERS`), e.g. in a post-commit hook. diff --git a/packages/repo-tools/cli-report.md b/packages/repo-tools/cli-report.md index a0df5e721c..9c87bd8dff 100644 --- a/packages/repo-tools/cli-report.md +++ b/packages/repo-tools/cli-report.md @@ -14,6 +14,7 @@ Options: Commands: api-reports [options] [paths...] type-deps + generate-catalog-info [options] schema [command] help [command] ``` @@ -36,6 +37,16 @@ Options: -h, --help ``` +### `backstage-repo-tools generate-catalog-info` + +``` +Usage: backstage-repo-tools generate-catalog-info [options] + +Options: + --dry-run + -h, --help +``` + ### `backstage-repo-tools schema` ``` diff --git a/packages/repo-tools/package.json b/packages/repo-tools/package.json index c5d9e266c9..891ddd3b64 100644 --- a/packages/repo-tools/package.json +++ b/packages/repo-tools/package.json @@ -32,6 +32,7 @@ "dependencies": { "@apidevtools/swagger-parser": "^10.1.0", "@apisyouwonthate/style-guide": "^1.4.0", + "@backstage/catalog-model": "workspace:^", "@backstage/cli-common": "workspace:^", "@backstage/cli-node": "workspace:^", "@backstage/errors": "workspace:^", @@ -46,6 +47,7 @@ "@stoplight/spectral-runtime": "^1.1.2", "@stoplight/types": "^13.14.0", "chalk": "^4.0.0", + "codeowners-utils": "^1.0.2", "commander": "^9.1.0", "fs-extra": "10.1.0", "glob": "^8.0.3", @@ -54,7 +56,8 @@ "lodash": "^4.17.21", "minimatch": "^5.1.1", "p-limit": "^3.0.2", - "ts-node": "^10.0.0" + "ts-node": "^10.0.0", + "yaml-diff-patch": "^2.0.0" }, "devDependencies": { "@backstage/cli": "workspace:^", diff --git a/packages/repo-tools/src/commands/generate-catalog-info/codeowners.ts b/packages/repo-tools/src/commands/generate-catalog-info/codeowners.ts new file mode 100644 index 0000000000..f485e872e9 --- /dev/null +++ b/packages/repo-tools/src/commands/generate-catalog-info/codeowners.ts @@ -0,0 +1,69 @@ +/* + * 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 { + CodeOwnersEntry, + CODEOWNERS_PATHS, + matchFile as matchCodeowner, + parse as parseCodeowners, +} from 'codeowners-utils'; +import { relative as relativePath, resolve as resolvePath } from 'path'; +import { readFile } from './utils'; + +export async function loadCodeowners(): Promise { + const maybeFiles = await Promise.allSettled( + CODEOWNERS_PATHS.map(async path => + readFile(resolvePath('.', path), { encoding: 'utf-8' }), + ), + ); + const file = maybeFiles.find( + maybeFile => maybeFile.status === 'fulfilled', + ) as PromiseFulfilledResult | undefined; + + if (!file) { + throw new Error( + 'This utility expects a CODEOWNERS file, but no such file was found.', + ); + } + + return parseCodeowners(file.value); +} + +export function getPossibleCodeowners( + codeowners: CodeOwnersEntry[], + relPath: string, +): string[] { + const codeownerMaybe = matchCodeowner(relPath, codeowners); + return codeownerMaybe + ? codeownerMaybe.owners.map( + owner => (owner.match(/(?:\@[^\/]+\/)?([^\@\/]*)$/) || [])[1], + ) + : []; +} + +export function getOwnerFromCodeowners( + codeowners: CodeOwnersEntry[], + absPath: string, +): string { + const relPath = relativePath('.', absPath); + const possibleOwners = getPossibleCodeowners(codeowners, relPath); + const owner = possibleOwners.slice(-1)[0]; + + if (!owner) { + throw new Error(`${relPath} isn't owned by anyone in CODEOWNERS`); + } + + return owner; +} diff --git a/packages/repo-tools/src/commands/generate-catalog-info/generate-catalog-info.ts b/packages/repo-tools/src/commands/generate-catalog-info/generate-catalog-info.ts new file mode 100644 index 0000000000..0ad3ab690a --- /dev/null +++ b/packages/repo-tools/src/commands/generate-catalog-info/generate-catalog-info.ts @@ -0,0 +1,200 @@ +/* + * Copyright 2022 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import YAML from 'js-yaml'; +import pLimit from 'p-limit'; +import { relative as relativePath, resolve as resolvePath } from 'path'; +import { yamlOverwrite } from 'yaml-diff-patch'; +import chalk from 'chalk'; +import { PackageGraph, PackageRole } from '@backstage/cli-node'; +import { Entity } from '@backstage/catalog-model'; +import { + getOwnerFromCodeowners, + getPossibleCodeowners, + loadCodeowners, +} from './codeowners'; +import { + BackstagePackageJson, + isBackstagePackage, + readFile, + writeFile, +} from './utils'; +import { CodeOwnersEntry } from 'codeowners-utils'; + +type CreateFixPackageInfoYamlsOptions = { + dryRun?: boolean; +}; + +export default async (opts: CreateFixPackageInfoYamlsOptions) => { + const { dryRun = false } = opts; + const packages = await PackageGraph.listTargetPackages(); + const codeowners = await loadCodeowners(); + const limit = pLimit(10); + + const results = await Promise.allSettled( + packages.map(({ packageJson, dir }) => + limit(async () => { + if (!isBackstagePackage(packageJson)) { + return; + } + + // Check if there is already a corresponding catalog-info.yaml + const infoYamlPath = resolvePath(dir, 'catalog-info.yaml'); + let yamlString = ''; + + try { + yamlString = await readFile(infoYamlPath, { encoding: 'utf-8' }); + } catch (e) { + if (e.code === 'ENOENT') { + await createCatalogInfoYaml({ + yamlPath: infoYamlPath, + packageJson, + codeowners, + dryRun, + }); + return; + } + + throw e; + } + + fixCatalogInfoYaml({ + yamlPath: infoYamlPath, + packageJson, + codeowners, + yamlString, + dryRun, + }); + }), + ), + ); + + const rejects = results.filter( + r => r.status === 'rejected', + ) as PromiseRejectedResult[]; + if (rejects.length > 0) { + // Problems encountered. Print details here. + console.error( + chalk.red('Unable to create or fix catalog-info.yaml files\n'), + ); + rejects.forEach(reject => console.error(` ${reject.reason}`)); + console.error(); + process.exit(1); + } +}; + +type CreateOptions = { + yamlPath: string; + packageJson: BackstagePackageJson; + codeowners: CodeOwnersEntry[]; + dryRun: boolean; +}; + +type FixOptions = CreateOptions & { + yamlString: string; +}; + +type BackstagePackageEntity = Entity & { + spec: { + type: 'backstage-package'; + backstageRole: PackageRole; + lifecycle: string; + owner: string; + [key: string]: any; + }; +}; + +function createCatalogInfoYaml(options: CreateOptions) { + const { codeowners, dryRun, packageJson, yamlPath } = options; + const owner = getOwnerFromCodeowners(codeowners, yamlPath); + const entity = createOrMergeEntity(packageJson, owner); + + return dryRun + ? Promise.resolve(console.error(`Create ${relativePath('.', yamlPath)}`)) + : writeFile(yamlPath, YAML.dump(entity)); +} + +function fixCatalogInfoYaml(options: FixOptions) { + const { codeowners, dryRun, packageJson, yamlPath, yamlString } = options; + const possibleOwners = getPossibleCodeowners( + codeowners, + relativePath('.', yamlPath), + ); + const safeName = packageJson.name + .replace(/[^a-z0-9_\-\.]+/g, '-') + .replace(/^[^a-z0-9]|[^a-z0-9]$/g, ''); + let yamlJson: BackstagePackageEntity; + + try { + yamlJson = YAML.load(yamlString) as BackstagePackageEntity; + } catch (e) { + throw new Error(`Unable to parse ${relativePath('.', yamlPath)}: ${e}`); + } + + const badOwner = !possibleOwners.includes(yamlJson.spec?.owner); + const badTitle = yamlJson.metadata.title !== packageJson.name; + const badName = yamlJson.metadata.name !== safeName; + const badType = + yamlJson.spec?.type !== `backstage-${packageJson.backstage.role}`; + const badDesc = yamlJson.metadata.description !== packageJson.description; + + if (badOwner || badTitle || badName || badType || badDesc) { + const owner = badOwner + ? getOwnerFromCodeowners(codeowners, yamlPath) + : yamlJson.spec?.owner; + const newJson = createOrMergeEntity(packageJson, owner, yamlJson); + return dryRun + ? Promise.resolve(console.error(`Update ${relativePath('.', yamlPath)}`)) + : writeFile(yamlPath, yamlOverwrite(yamlString, newJson)); + } + + return Promise.resolve(); +} + +/** + * Canonical representation on how to create (or update) a backstage-package + * component. + */ +function createOrMergeEntity( + packageJson: BackstagePackageJson, + owner: string, + existingEntity: BackstagePackageEntity | Record = {}, +): BackstagePackageEntity { + const safeEntityName = packageJson.name + .replace(/[^a-z0-9_\-\.]+/g, '-') + .replace(/^[^a-z0-9]|[^a-z0-9]$/g, ''); + + return { + ...existingEntity, + apiVersion: 'backstage.io/v1alpha1', + kind: 'Component', + metadata: { + ...existingEntity.metadata, + // Provide default name/title/description values. + name: safeEntityName, + title: packageJson.name, + ...(packageJson.description + ? { description: packageJson.description } + : undefined), + }, + spec: { + lifecycle: 'experimental', + ...existingEntity.spec, + type: `backstage-${packageJson.backstage.role}`, + owner, + }, + }; +} diff --git a/packages/repo-tools/src/commands/generate-catalog-info/utils.ts b/packages/repo-tools/src/commands/generate-catalog-info/utils.ts new file mode 100644 index 0000000000..f446f4e867 --- /dev/null +++ b/packages/repo-tools/src/commands/generate-catalog-info/utils.ts @@ -0,0 +1,42 @@ +/* + * 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 fs from 'fs'; +import { Package } from '@manypkg/get-packages'; +import { + BackstagePackageJson as BackstagePackageJsonActual, + PackageRole, +} from '@backstage/cli-node'; +import { promisify } from 'util'; + +export const readFile = promisify(fs.readFile); +export const writeFile = promisify(fs.writeFile); + +export type BackstagePackageJson = BackstagePackageJsonActual & { + description?: string; + backstage: { + role: PackageRole; + }; +}; + +export function isBackstagePackage( + packageJson: Package['packageJson'], +): packageJson is BackstagePackageJson { + return ( + packageJson && + packageJson.hasOwnProperty('backstage') && + (packageJson as any)?.backstage?.role !== 'undefined' + ); +} diff --git a/packages/repo-tools/src/commands/index.ts b/packages/repo-tools/src/commands/index.ts index e19ffde4b8..7aa574d291 100644 --- a/packages/repo-tools/src/commands/index.ts +++ b/packages/repo-tools/src/commands/index.ts @@ -96,6 +96,21 @@ export function registerCommands(program: Command) { .description('Find inconsistencies in types of all packages and plugins') .action(lazy(() => import('./type-deps/type-deps').then(m => m.default))); + program + .command('generate-catalog-info') + .option( + '--dry-run', + 'Shows what would happen without actually writing any yaml.', + ) + .description('Create or fix info yaml files for all backstage packages') + .action( + lazy(() => + import('./generate-catalog-info/generate-catalog-info').then( + m => m.default, + ), + ), + ); + registerSchemaCommand(program); } diff --git a/yarn.lock b/yarn.lock index 6a0c6279fc..79235d2b0f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9537,6 +9537,7 @@ __metadata: dependencies: "@apidevtools/swagger-parser": ^10.1.0 "@apisyouwonthate/style-guide": ^1.4.0 + "@backstage/catalog-model": "workspace:^" "@backstage/cli": "workspace:^" "@backstage/cli-common": "workspace:^" "@backstage/cli-node": "workspace:^" @@ -9556,6 +9557,7 @@ __metadata: "@types/mock-fs": ^4.13.0 "@types/node": ^16.11.26 chalk: ^4.0.0 + codeowners-utils: ^1.0.2 commander: ^9.1.0 fs-extra: 10.1.0 glob: ^8.0.3 @@ -9566,6 +9568,7 @@ __metadata: mock-fs: ^5.1.0 p-limit: ^3.0.2 ts-node: ^10.0.0 + yaml-diff-patch: ^2.0.0 peerDependencies: "@microsoft/api-extractor-model": "*" "@microsoft/tsdoc": "*" @@ -25603,7 +25606,7 @@ __metadata: languageName: node linkType: hard -"fast-json-patch@npm:^3.0.0-1": +"fast-json-patch@npm:^3.0.0-1, fast-json-patch@npm:^3.1.0": version: 3.1.1 resolution: "fast-json-patch@npm:3.1.1" checksum: c4525b61b2471df60d4b025b4118b036d99778a93431aa44d1084218182841d82ce93056f0f3bbd731a24e6a8e69820128adf1873eb2199a26c62ef58d137833 @@ -33973,6 +33976,15 @@ __metadata: languageName: node linkType: hard +"oppa@npm:^0.4.0": + version: 0.4.0 + resolution: "oppa@npm:0.4.0" + dependencies: + chalk: ^4.1.1 + checksum: ecc43e63ede05c3ccb10e0f2c3f3020a6d72e1a3b318f3e37b8cc8a1a279e300991c043e5385d560c1eebb54a56c7f9b69bf0db0d1933acf350bcd2980c96055 + languageName: node + linkType: hard + "optimism@npm:^0.17.5": version: 0.17.5 resolution: "optimism@npm:0.17.5" @@ -42833,6 +42845,21 @@ __metadata: languageName: node linkType: hard +"yaml-diff-patch@npm:^2.0.0": + version: 2.0.0 + resolution: "yaml-diff-patch@npm:2.0.0" + dependencies: + fast-json-patch: ^3.1.0 + oppa: ^0.4.0 + yaml: ^2.0.0-10 + bin: + yaml-diff-patch: dist/bin/yaml-patch.js + yaml-overwrite: dist/bin/yaml-patch.js + yaml-patch: dist/bin/yaml-patch.js + checksum: 5207d8523584eb6088fe32a0c6010599260ecfa5f959d120a1bad02f19143d1ddeafe10c37ccf125ac04d079072a5ead92b55c6787fd64d12f5acbb0d172e7ec + languageName: node + linkType: hard + "yaml@npm:^1.10.0, yaml@npm:^1.10.2, yaml@npm:^1.7.2": version: 1.10.2 resolution: "yaml@npm:1.10.2" @@ -42840,10 +42867,10 @@ __metadata: languageName: node linkType: hard -"yaml@npm:^2.0.0, yaml@npm:^2.1.1, yaml@npm:^2.2.1, yaml@npm:^2.2.2": - version: 2.2.2 - resolution: "yaml@npm:2.2.2" - checksum: d90c235e099e30094dcff61ba3350437aef53325db4a6bcd04ca96e1bfe7e348b191f6a7a52b5211e2dbc4eeedb22a00b291527da030de7c189728ef3f2b4eb3 +"yaml@npm:^2.0.0, yaml@npm:^2.0.0-10, yaml@npm:^2.1.1, yaml@npm:^2.2.1, yaml@npm:^2.2.2": + version: 2.3.1 + resolution: "yaml@npm:2.3.1" + checksum: 2c7bc9a7cd4c9f40d3b0b0a98e370781b68b8b7c4515720869aced2b00d92f5da1762b4ffa947f9e795d6cd6b19f410bd4d15fdd38aca7bd96df59bd9486fb54 languageName: node linkType: hard From 42bcaab8ab15e0af0a8c6da2d76e843a9a5bdf0a Mon Sep 17 00:00:00 2001 From: Adam Harvey Date: Thu, 10 Aug 2023 19:54:46 -0400 Subject: [PATCH 187/372] chore(docs): Improve suggestion Signed-off-by: Adam Harvey --- docs/accessibility/index.md | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/docs/accessibility/index.md b/docs/accessibility/index.md index 24685b95ce..b4d63fd4e4 100644 --- a/docs/accessibility/index.md +++ b/docs/accessibility/index.md @@ -15,35 +15,35 @@ There are multiple ways to contribute to making Backstage more accessible, you'l If your plugin lives in the [Backstage main repository](https://github.com/backstage/backstage/) you can modify the [urls in the Lighthouse config](https://github.com/backstage/backstage/blob/39ba2284d73885b7ca8290cb38e2b1e4d983c8d6/lighthouserc.js#L19-L34) to run the Lighthouse checks on urls where your plugin exists as well. E.g. ```diff - ci: { - collect: { - url: [ + ci: { + collect: { + url: [ + /** Software Catalog */ + 'http://localhost:3000/catalog', + 'http://localhost:3000/catalog-import', + 'http://localhost:3000/catalog/default/component/backstage', + ... + /** Your plugin paths */ + 'http://localhost:3000/your-plugin-path, - /** Software Catalog */ - 'http://localhost:3000/catalog', - 'http://localhost:3000/catalog-import', - 'http://localhost:3000/catalog/default/component/backstage', + ], + settings: { ... - ], - settings: { - ... - }, - ... - }, - assert: { + }, ... - }, - }, + }, + assert: { + ... + }, + }, ``` -To make sure the [Accessibility Github workflow](https://github.com/backstage/backstage/blob/master/.github/workflows/verify_accessibility.yml) is running when changes are made to your plugin folders, modify the [list of paths](https://github.com/backstage/backstage/blob/10759b6ad2561bd86183ad940256f9a309c7a6b0/.github/workflows/verify_accessibility.yml#L7-L16). +To make sure the [Accessibility GitHub workflow](https://github.com/backstage/backstage/blob/master/.github/workflows/verify_accessibility.yml) is running when changes are made to your plugin folders, modify the [list of paths](https://github.com/backstage/backstage/blob/10759b6ad2561bd86183ad940256f9a309c7a6b0/.github/workflows/verify_accessibility.yml#L7-L16). ### Run the Lighthouse CLI locally when developing new features If you want to use the Lighthouse CLI and run the checks based on the config you can use the following command: -``` +```shell yarn dlx @lhci/cli@0.11.x autorun ``` From 225b481e2842084d13427ef05f15eeb24f825f7a Mon Sep 17 00:00:00 2001 From: Adam Harvey Date: Thu, 10 Aug 2023 19:55:40 -0400 Subject: [PATCH 188/372] chore(a11y): Add more plugin testing Signed-off-by: Adam Harvey --- lighthouserc.js | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/lighthouserc.js b/lighthouserc.js index 90a15abbd3..70136ee158 100644 --- a/lighthouserc.js +++ b/lighthouserc.js @@ -32,6 +32,17 @@ module.exports = { 'http://localhost:3000/create/templates/default/react-ssr-template', /** Search */ 'http://localhost:3000/search', + /** Miscellaneous */ + 'http://localhost:3000/settings', + /** plugin-devtools */ + 'http://localhost:3000/devtools', + 'http://localhost:3000/devtools/config', + /** plugin-explore */ + 'http://localhost:3000/explore', + 'http://localhost:3000/explore/groups', + 'http://localhost:3000/explore/tools', + /** plugin-tech-radar */ + 'http://localhost:3000/tech-radar', ], settings: { onlyCategories: ['accessibility'], From 64ca853e6f765b25bfa59871f7627a2be09b6f2a Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 11 Aug 2023 01:53:38 +0000 Subject: [PATCH 189/372] fix(deps): update dependency @apollo/client to v3.8.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 0cc67d33ca..e655514e5f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -102,8 +102,8 @@ __metadata: linkType: hard "@apollo/client@npm:^3.0.0": - version: 3.8.0 - resolution: "@apollo/client@npm:3.8.0" + version: 3.8.1 + resolution: "@apollo/client@npm:3.8.1" dependencies: "@graphql-typed-document-node/core": ^3.1.1 "@wry/context": ^0.7.3 @@ -133,7 +133,7 @@ __metadata: optional: true subscriptions-transport-ws: optional: true - checksum: bf1fb4fa82ece6c7c274c0d6b196854fb19c0634b48692deed40fea491b25b385883101521860365b6af609bd0e84e32b1d82955a43e50ae920e971c7707d556 + checksum: 3a1748359a7c0f339764e7764dc6c7426be1d522eda963416d3a693733edbce8408cb8f78f9c98b036d34621af663e3dd3446703dfd29037c78a77eacd3c70bb languageName: node linkType: hard From 3393f986a23eae44eb1f29cd402f99b2e288529e Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 11 Aug 2023 02:44:32 +0000 Subject: [PATCH 190/372] fix(deps): update dependency json-schema-to-ts to v2.9.2 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 e655514e5f..1341cca2f9 100644 --- a/yarn.lock +++ b/yarn.lock @@ -30084,13 +30084,13 @@ __metadata: linkType: hard "json-schema-to-ts@npm:^2.6.2": - version: 2.9.1 - resolution: "json-schema-to-ts@npm:2.9.1" + version: 2.9.2 + resolution: "json-schema-to-ts@npm:2.9.2" dependencies: "@babel/runtime": ^7.18.3 "@types/json-schema": ^7.0.9 ts-algebra: ^1.2.0 - checksum: c2471993484f69452eb4f1c732a3b4d73842430f8c9a1486d72fda9fc9ca6ae4761164817edddd8463204caec2d3169a95d5e9e4d9d39f1e94f7377bdafb740b + checksum: 64bf7226511a3719075d28e715fbd203576088b6ebcf494d6c5ee2bcf5b24d6081fa0cfce22ce254ad8798b7044603db4e4d19779c6f5765285fb9ddaa0756ef languageName: node linkType: hard From 686395e75c2b11b46d8f03fb5cc964dc63b9b492 Mon Sep 17 00:00:00 2001 From: npiyush97 Date: Fri, 11 Aug 2023 09:50:42 +0530 Subject: [PATCH 191/372] fixed issue related to satisfiesVisibilityFilter case-sensitive Signed-off-by: npiyush97 --- plugins/catalog-backend-module-github/src/lib/util.ts | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/plugins/catalog-backend-module-github/src/lib/util.ts b/plugins/catalog-backend-module-github/src/lib/util.ts index bb91e9dd2a..58ae8d6551 100644 --- a/plugins/catalog-backend-module-github/src/lib/util.ts +++ b/plugins/catalog-backend-module-github/src/lib/util.ts @@ -107,5 +107,10 @@ export function satisfiesVisibilityFilter( if (!visibilities.length) { return true; } - return visibilities.includes(visibility); + const lowerCaseVisibilities = visibilities.map(v => + v.toLocaleLowerCase('en-US'), + ); + const lowerCaseVisibility = visibility.toLocaleLowerCase('en-US'); + + return lowerCaseVisibilities.includes(lowerCaseVisibility); } From 81c231c9c9eebe7dc91664a6d5e984967857c659 Mon Sep 17 00:00:00 2001 From: npiyush97 Date: Fri, 11 Aug 2023 09:56:53 +0530 Subject: [PATCH 192/372] added changeset Signed-off-by: npiyush97 --- .changeset/ninety-panthers-guess.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/ninety-panthers-guess.md diff --git a/.changeset/ninety-panthers-guess.md b/.changeset/ninety-panthers-guess.md new file mode 100644 index 0000000000..cc6d531aac --- /dev/null +++ b/.changeset/ninety-panthers-guess.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-catalog-backend-module-github': patch +--- + +changed visibilityfilter and visibility to lowercase to prevent case-sensitive error. From 443afcf7f567facd1d7d48e53b49b1a9f98f8760 Mon Sep 17 00:00:00 2001 From: Thomas Cardonne Date: Mon, 24 Apr 2023 14:42:22 +0200 Subject: [PATCH 193/372] feat(gerrit-integration): use gitiles archive for readTree if configured If Gitiles is configured, leverage it to fetch an archive instead of cloning the repository. Co-Authored-By: Andy Ladjadj Signed-off-by: Thomas Cardonne --- .changeset/heavy-suns-hope.md | 9 ++ .changeset/mean-socks-exist.md | 6 + packages/backend-common/api-report.md | 1 + .../src/reading/GerritUrlReader.test.ts | 117 +++++++++++++++++- .../src/reading/GerritUrlReader.ts | 92 +++++++++++--- .../gerrit/gerrit-master-docs.tar.gz | Bin 0 -> 141 bytes .../__fixtures__/gerrit/gerrit-master.tar.gz | Bin 0 -> 207 bytes .../reading/tree/ReadTreeResponseFactory.ts | 1 + .../src/reading/tree/TarArchiveResponse.ts | 14 ++- packages/backend-common/src/reading/types.ts | 2 + packages/integration/api-report.md | 8 ++ packages/integration/src/gerrit/core.test.ts | 55 ++++++++ packages/integration/src/gerrit/core.ts | 56 ++++++++- packages/integration/src/gerrit/index.ts | 1 + 14 files changed, 339 insertions(+), 23 deletions(-) create mode 100644 .changeset/heavy-suns-hope.md create mode 100644 .changeset/mean-socks-exist.md create mode 100644 packages/backend-common/src/reading/__fixtures__/gerrit/gerrit-master-docs.tar.gz create mode 100644 packages/backend-common/src/reading/__fixtures__/gerrit/gerrit-master.tar.gz diff --git a/.changeset/heavy-suns-hope.md b/.changeset/heavy-suns-hope.md new file mode 100644 index 0000000000..9918a797ec --- /dev/null +++ b/.changeset/heavy-suns-hope.md @@ -0,0 +1,9 @@ +--- +'@backstage/backend-common': patch +--- + +To improve performance, `GerritUrlReader.readTree()` now uses Gitiles to fetch an archive instead of cloning the repository. +If `gitilesBaseUrl` is not configured, `readTree` still uses Git to clone the repository. + +Added `tarStripFirstDirectory` to `ReadTreeResponseFactoryOptions`, allowing to disable stripping first directory +for `tar` archives. diff --git a/.changeset/mean-socks-exist.md b/.changeset/mean-socks-exist.md new file mode 100644 index 0000000000..79664b6600 --- /dev/null +++ b/.changeset/mean-socks-exist.md @@ -0,0 +1,6 @@ +--- +'@backstage/integration': minor +--- + +Added `buildGerritGitilesArchiveUrl()` to construct a Gitiles URL to download an archive. +Gitiles URL that uses an authenticated prefix (`/a/`) can now be parsed by the integration. diff --git a/packages/backend-common/api-report.md b/packages/backend-common/api-report.md index fae3e2117d..034d800aee 100644 --- a/packages/backend-common/api-report.md +++ b/packages/backend-common/api-report.md @@ -629,6 +629,7 @@ export type ReadTreeResponseFactoryOptions = { size: number; }, ) => boolean; + tarStripFirstDirectory?: boolean; }; export { ReadTreeResponseFile }; diff --git a/packages/backend-common/src/reading/GerritUrlReader.test.ts b/packages/backend-common/src/reading/GerritUrlReader.test.ts index 4e0b97fc58..f8cd3bfcab 100644 --- a/packages/backend-common/src/reading/GerritUrlReader.test.ts +++ b/packages/backend-common/src/reading/GerritUrlReader.test.ts @@ -37,14 +37,16 @@ const treeResponseFactory = DefaultReadTreeResponseFactory.create({ config: new ConfigReader({}), }); +const cloneMock = jest.fn(() => Promise.resolve()); jest.mock('../scm', () => ({ Git: { fromAuth: () => ({ - clone: jest.fn(() => Promise.resolve({})), + clone: cloneMock, }), }, })); +// Gerrit processor without a gitilesBaseUrl configured const gerritProcessor = new GerritUrlReader( new GerritIntegration( readGerritIntegrationConfig( @@ -57,6 +59,21 @@ const gerritProcessor = new GerritUrlReader( '/tmp', ); +// Gerrit processor with a gitilesBaseUrl configured. +// Use to test readTree with Gitiles archive download. +const gerritProcessorWithGitiles = new GerritUrlReader( + new GerritIntegration( + readGerritIntegrationConfig( + new ConfigReader({ + host: 'gerrit.com', + gitilesBaseUrl: 'https://gerrit.com/gitiles', + }), + ), + ), + { treeResponseFactory }, + '/tmp', +); + const createReader = (config: JsonObject): UrlReaderPredicateTuple[] => { return GerritUrlReader.factory({ config: new ConfigReader(config), @@ -217,9 +234,17 @@ describe('GerritUrlReader', () => { path.resolve(__dirname, '__fixtures__/gerrit/branch-info-response.txt'), ); const treeUrl = 'https://gerrit.com/app/web/+/refs/heads/master/'; + const treeUrlGitiles = + 'https://gerrit.com/gitiles/app/web/+/refs/heads/master/'; const etag = '52432507a70b677b5674b019c9a46b2e9f29d0a1'; - const mkdocsContent = 'great content'; + const mkdocsContent = 'a repo fetched using git clone'; const mdContent = 'doc'; + const repoArchiveBuffer = fs.readFileSync( + path.resolve(__dirname, '__fixtures__/gerrit/gerrit-master.tar.gz'), + ); + const repoArchiveDocsBuffer = fs.readFileSync( + path.resolve(__dirname, '__fixtures__/gerrit/gerrit-master-docs.tar.gz'), + ); beforeEach(() => { mockFs({ @@ -229,6 +254,39 @@ describe('GerritUrlReader', () => { }); const spy = jest.spyOn(fs, 'mkdtemp'); spy.mockImplementation(() => '/tmp/gerrit-clone-123abc'); + + worker.use( + rest.get( + new RegExp( + 'https://gerrit.com/gitiles/app/web/\\+archive/refs/heads/master.tar.gz', + ), + (_, res, ctx) => + res( + ctx.status(200), + ctx.set('Content-Type', 'application/x-gzip'), + ctx.set( + 'content-disposition', + 'attachment; filename=web-refs/heads/master.tar.gz', + ), + ctx.body(repoArchiveBuffer), + ), + ), + rest.get( + new RegExp( + 'https://gerrit.com/gitiles/app/web/\\+archive/refs/heads/master/docs.tar.gz', + ), + (_, res, ctx) => + res( + ctx.status(200), + ctx.set('Content-Type', 'application/x-gzip'), + ctx.set( + 'content-disposition', + 'attachment; filename=web-refs/heads/master-docs.tar.gz', + ), + ctx.body(repoArchiveDocsBuffer), + ), + ), + ); }); afterEach(() => { @@ -236,7 +294,32 @@ describe('GerritUrlReader', () => { jest.clearAllMocks(); }); - it('reads the wanted files correctly.', async () => { + it('reads the wanted files correctly using gitiles.', async () => { + worker.use( + rest.get(branchAPIUrl, (_, res, ctx) => { + return res(ctx.status(200), ctx.body(branchAPIresponse)); + }), + ); + + const response = await gerritProcessorWithGitiles.readTree( + treeUrlGitiles, + ); + + expect(response.etag).toBe(etag); + + const files = await response.files(); + expect(files.length).toBe(2); + + const docsYaml = await files[0].content(); + expect(docsYaml.toString()).toBe('# Test\n'); + + const mdFile = await files[1].content(); + expect(mdFile.toString()).toBe('site_name: Test\n'); + + expect(cloneMock).not.toHaveBeenCalled(); + }); + + it('reads the wanted files correctly using git clone.', async () => { worker.use( rest.get(branchAPIUrl, (_, res, ctx) => { return res(ctx.status(200), ctx.body(branchAPIresponse)); @@ -255,6 +338,8 @@ describe('GerritUrlReader', () => { const mdFile = await files[1].content(); expect(mdFile.toString()).toBe(mdContent); + + expect(cloneMock).toHaveBeenCalled(); }); it('throws NotModifiedError for matching etags.', async () => { @@ -291,7 +376,29 @@ describe('GerritUrlReader', () => { await expect(gerritProcessor.readTree(treeUrl)).rejects.toThrow(Error); }); - it('should returns wanted files with a subpath', async () => { + it('should returns wanted files with a subpath using gitiles', async () => { + worker.use( + rest.get(branchAPIUrl, (_, res, ctx) => { + return res(ctx.status(200), ctx.body(branchAPIresponse)); + }), + ); + + const response = await gerritProcessorWithGitiles.readTree( + `${treeUrlGitiles}/docs`, + ); + + expect(response.etag).toBe(etag); + + const files = await response.files(); + expect(files.length).toBe(1); + + const mdFile = await files[0].content(); + expect(mdFile.toString()).toBe('# Test\n'); + + expect(cloneMock).not.toHaveBeenCalled(); + }); + + it('should returns wanted files with a subpath using git clone', async () => { worker.use( rest.get(branchAPIUrl, (_, res, ctx) => { return res(ctx.status(200), ctx.body(branchAPIresponse)); @@ -307,6 +414,8 @@ describe('GerritUrlReader', () => { const mdFile = await files[0].content(); expect(mdFile.toString()).toBe(mdContent); + + expect(cloneMock).toHaveBeenCalled(); }); }); }); diff --git a/packages/backend-common/src/reading/GerritUrlReader.ts b/packages/backend-common/src/reading/GerritUrlReader.ts index 8ac5452a4c..f16edb1bb2 100644 --- a/packages/backend-common/src/reading/GerritUrlReader.ts +++ b/packages/backend-common/src/reading/GerritUrlReader.ts @@ -14,16 +14,17 @@ * limitations under the License. */ -import { Git } from '../scm'; import { NotFoundError, NotModifiedError } from '@backstage/errors'; import { GerritIntegration, - getGerritCloneRepoUrl, + ScmIntegrations, + buildGerritGitilesArchiveUrl, getGerritBranchApiUrl, + getGerritCloneRepoUrl, getGerritFileContentsApiUrl, getGerritRequestOptions, - parseGerritJsonResponse, parseGerritGitilesUrl, + parseGerritJsonResponse, } from '@backstage/integration'; import { Base64Decode } from 'base64-stream'; import concatStream from 'concat-stream'; @@ -31,20 +32,20 @@ import fs from 'fs-extra'; import fetch, { Response } from 'node-fetch'; import os from 'os'; import { join as joinPath } from 'path'; +import { Readable, pipeline as pipelineCb } from 'stream'; import tar from 'tar'; -import { pipeline as pipelineCb, Readable } from 'stream'; import { promisify } from 'util'; +import { Git } from '../scm'; import { - ReaderFactory, ReadTreeOptions, ReadTreeResponse, ReadTreeResponseFactory, ReadUrlOptions, ReadUrlResponse, + ReaderFactory, SearchResponse, UrlReader, } from './types'; -import { ScmIntegrations } from '@backstage/integration'; const pipeline = promisify(pipelineCb); @@ -59,6 +60,8 @@ const createTemporaryDirectory = async (workDir: string): Promise => * way we are depending on that there is a Gitiles installation somewhere * that we can link to. It is perfectly possible to integrate Gerrit with * Backstage without Gitiles since all API calls goes directly to Gerrit. + * However if Gitiles is configured, readTree will use it to fetch + * an archive instead of cloning the repository. * * The "host" variable in the config is the Gerrit host. The address where * Gitiles is installed may be on the same host but it could be on a @@ -125,6 +128,7 @@ export class GerritUrlReader implements UrlReader { } catch (e) { throw new Error(`Unable to read gerrit file ${url}, ${e}`); } + if (response.ok) { let responseBody: string; return { @@ -152,7 +156,6 @@ export class GerritUrlReader implements UrlReader { url: string, options?: ReadTreeOptions, ): Promise { - const { filePath } = parseGerritGitilesUrl(this.integration.config, url); const apiUrl = getGerritBranchApiUrl(this.integration.config, url); let response: Response; try { @@ -180,6 +183,30 @@ export class GerritUrlReader implements UrlReader { throw new NotModifiedError(); } + if ( + this.integration.config.gitilesBaseUrl !== this.integration.config.baseUrl + ) { + return this.readTreeFromGitiles(url, branchInfo.revision, options); + } + return this.readTreeFromGitClone(url, branchInfo.revision, options); + } + + async search(): Promise { + throw new Error('GerritReader does not implement search'); + } + + toString() { + const { host, password } = this.integration.config; + return `gerrit{host=${host},authed=${Boolean(password)}}`; + } + + private async readTreeFromGitClone( + url: string, + revision: string, + options?: ReadTreeOptions, + ) { + const { filePath } = parseGerritGitilesUrl(this.integration.config, url); + const git = Git.fromAuth({ username: this.integration.config.username, password: this.integration.config.password, @@ -192,7 +219,7 @@ export class GerritUrlReader implements UrlReader { await git.clone({ url: cloneUrl, dir: joinPath(tempDir, 'repo'), - ref: branchInfo.revision, + ref: revision, depth: 1, }); @@ -206,7 +233,7 @@ export class GerritUrlReader implements UrlReader { return await this.deps.treeResponseFactory.fromTarArchive({ stream: tarArchive, subpath: filePath === '/' ? undefined : filePath, - etag: branchInfo.revision, + etag: revision, filter: options?.filter, }); } catch (error) { @@ -216,12 +243,47 @@ export class GerritUrlReader implements UrlReader { } } - async search(): Promise { - throw new Error('GerritReader does not implement search'); - } + private async readTreeFromGitiles( + url: string, + revision: string, + options?: ReadTreeOptions, + ) { + const { branch, filePath, project } = parseGerritGitilesUrl( + this.integration.config, + url, + ); + const archiveUrl = buildGerritGitilesArchiveUrl( + this.integration.config, + project, + branch, + filePath, + ); + const archiveResponse = await fetch(archiveUrl, { + ...getGerritRequestOptions(this.integration.config), + // TODO(freben): The signal cast is there because pre-3.x versions of + // node-fetch have a very slightly deviating AbortSignal type signature. + // The difference does not affect us in practice however. The cast can + // be removed after we support ESM for CLI dependencies and migrate to + // version 3 of node-fetch. + // https://github.com/backstage/backstage/issues/8242 + signal: options?.signal as any, + }); - toString() { - const { host, password } = this.integration.config; - return `gerrit{host=${host},authed=${Boolean(password)}}`; + if (archiveResponse.status === 404) { + throw new NotFoundError(`Not found: ${archiveUrl}`); + } + + if (!archiveResponse.ok) { + throw new Error( + `${url} could not be read as ${archiveUrl}, ${archiveResponse.status} ${archiveResponse.statusText}`, + ); + } + + return await this.deps.treeResponseFactory.fromTarArchive({ + stream: archiveResponse.body as unknown as Readable, + etag: revision, + filter: options?.filter, + tarStripFirstDirectory: false, + }); } } diff --git a/packages/backend-common/src/reading/__fixtures__/gerrit/gerrit-master-docs.tar.gz b/packages/backend-common/src/reading/__fixtures__/gerrit/gerrit-master-docs.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..425cf0876bc0aef8db182d0b849d695d6361b2e0 GIT binary patch literal 141 zcmb2|=3oE==C|hzxtI(^S{`1Rr@u6rB|7pj!0J}&z&Hw-a literal 0 HcmV?d00001 diff --git a/packages/backend-common/src/reading/__fixtures__/gerrit/gerrit-master.tar.gz b/packages/backend-common/src/reading/__fixtures__/gerrit/gerrit-master.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..8a27502734b2b355dee5cfd94859178f034f0048 GIT binary patch literal 207 zcmb2|=3oE==C@bQb1^9j94|a?+j^n)a!mLO%U#DOIR(CR$_vPkXLGDy;3szRd-2TX zLp*k|3uOyum`p_#OA$Dn%`EYzEmQtHYa#% zPWis~yFPq*fA@F)C(Hk(&krx`+859-QxJSz|5G{tPxECPomM%0zVq|*pW{VxmkfS= zllU=d$4T)8R>yL8%H@BruPXk(_2lpMQxgB%E3R$d@Zy$4nhX=f)nKyjDyJXY^u-Js G3=9B}jb#}C literal 0 HcmV?d00001 diff --git a/packages/backend-common/src/reading/tree/ReadTreeResponseFactory.ts b/packages/backend-common/src/reading/tree/ReadTreeResponseFactory.ts index 11a5ef168a..9e1fb98707 100644 --- a/packages/backend-common/src/reading/tree/ReadTreeResponseFactory.ts +++ b/packages/backend-common/src/reading/tree/ReadTreeResponseFactory.ts @@ -45,6 +45,7 @@ export class DefaultReadTreeResponseFactory implements ReadTreeResponseFactory { this.workDir, options.etag, options.filter, + options.tarStripFirstDirectory ?? true, ); } diff --git a/packages/backend-common/src/reading/tree/TarArchiveResponse.ts b/packages/backend-common/src/reading/tree/TarArchiveResponse.ts index e1529c196a..294ec22609 100644 --- a/packages/backend-common/src/reading/tree/TarArchiveResponse.ts +++ b/packages/backend-common/src/reading/tree/TarArchiveResponse.ts @@ -44,6 +44,7 @@ export class TarArchiveResponse implements ReadTreeResponse { private readonly workDir: string, public readonly etag: string, private readonly filter?: (path: string, info: { size: number }) => boolean, + private readonly stripFirstDirectory: boolean = true, ) { if (subPath) { if (!subPath.endsWith('/')) { @@ -81,7 +82,9 @@ export class TarArchiveResponse implements ReadTreeResponse { // File path relative to the root extracted directory. Will remove the // top level dir name from the path since its name is hard to predetermine. - const relativePath = stripFirstDirectoryFromPath(entry.path); + const relativePath = this.stripFirstDirectory + ? stripFirstDirectoryFromPath(entry.path) + : entry.path; if (this.subPath) { if (!relativePath.startsWith(this.subPath)) { @@ -148,7 +151,10 @@ export class TarArchiveResponse implements ReadTreeResponse { // Equivalent of tar --strip-components=N // When no subPath is given, remove just 1 top level directory - const strip = this.subPath ? this.subPath.split('/').length : 1; + let strip = this.subPath ? this.subPath.split('/').length : 1; + if (!this.stripFirstDirectory) { + strip--; + } let filterError: Error | undefined = undefined; await pipeline( @@ -164,7 +170,9 @@ export class TarArchiveResponse implements ReadTreeResponse { // File path relative to the root extracted directory. Will remove the // top level dir name from the path since its name is hard to predetermine. - const relativePath = stripFirstDirectoryFromPath(path); + const relativePath = this.stripFirstDirectory + ? stripFirstDirectoryFromPath(path) + : path; if (this.subPath && !relativePath.startsWith(this.subPath)) { return false; } diff --git a/packages/backend-common/src/reading/types.ts b/packages/backend-common/src/reading/types.ts index 7f4d407fd0..fe39961e0e 100644 --- a/packages/backend-common/src/reading/types.ts +++ b/packages/backend-common/src/reading/types.ts @@ -83,6 +83,8 @@ export type ReadTreeResponseFactoryOptions = { etag: string; // Filter passed on from the ReadTreeOptions filter?: (path: string, info?: { size: number }) => boolean; + // First directory of a tar archive is stripped when set to true + tarStripFirstDirectory?: boolean; }; /** diff --git a/packages/integration/api-report.md b/packages/integration/api-report.md index c2501b4ac2..7266950ac4 100644 --- a/packages/integration/api-report.md +++ b/packages/integration/api-report.md @@ -172,6 +172,14 @@ export type BitbucketServerIntegrationConfig = { password?: string; }; +// @public +export function buildGerritGitilesArchiveUrl( + config: GerritIntegrationConfig, + project: string, + branch: string, + filePath: string, +): string; + // @public export class DefaultGithubCredentialsProvider implements GithubCredentialsProvider diff --git a/packages/integration/src/gerrit/core.test.ts b/packages/integration/src/gerrit/core.test.ts index 5a829e88f9..c00bae384f 100644 --- a/packages/integration/src/gerrit/core.test.ts +++ b/packages/integration/src/gerrit/core.test.ts @@ -20,6 +20,7 @@ import fetch from 'cross-fetch'; import { setupRequestMockHandlers } from '../helpers'; import { GerritIntegrationConfig } from './config'; import { + buildGerritGitilesArchiveUrl, buildGerritGitilesUrl, getGerritBranchApiUrl, getGerritCloneRepoUrl, @@ -33,6 +34,41 @@ describe('gerrit core', () => { const worker = setupServer(); setupRequestMockHandlers(worker); + describe('buildGerritGitilesArchiveUrl', () => { + const config: GerritIntegrationConfig = { + host: 'gerrit.com', + gitilesBaseUrl: 'https://gerrit.com/gitiles', + }; + it('can create an archive url for a branch', () => { + expect(buildGerritGitilesArchiveUrl(config, 'repo', 'dev', '')).toEqual( + 'https://gerrit.com/gitiles/repo/+archive/refs/heads/dev.tar.gz', + ); + + expect(buildGerritGitilesArchiveUrl(config, 'repo', 'dev', '/')).toEqual( + 'https://gerrit.com/gitiles/repo/+archive/refs/heads/dev.tar.gz', + ); + }); + it('can create an archive url for a specific directory', () => { + expect( + buildGerritGitilesArchiveUrl(config, 'repo', 'dev', 'docs'), + ).toEqual( + 'https://gerrit.com/gitiles/repo/+archive/refs/heads/dev/docs.tar.gz', + ); + }); + it('can create an authenticated url when auth is enabled', () => { + const authConfig = { + ...config, + username: 'username', + password: 'password', + }; + expect( + buildGerritGitilesArchiveUrl(authConfig, 'repo', 'dev', 'docs'), + ).toEqual( + 'https://gerrit.com/a/gitiles/repo/+archive/refs/heads/dev/docs.tar.gz', + ); + }); + }); + describe('buildGerritGitilesUrl', () => { it('can create an url from arguments', () => { const config: GerritIntegrationConfig = { @@ -86,6 +122,25 @@ describe('gerrit core', () => { ); expect(rootPath).toEqual('/'); }); + it('can parse a valid authenticated gitiles url.', () => { + const config: GerritIntegrationConfig = { + host: 'gerrit.com', + gitilesBaseUrl: 'https://gerrit.com/gitiles', + }; + const { branch, filePath, project } = parseGerritGitilesUrl( + config, + 'https://gerrit.com/a/gitiles/web/project/+/refs/heads/master/README.md', + ); + expect(project).toEqual('web/project'); + expect(branch).toEqual('master'); + expect(filePath).toEqual('README.md'); + + const { filePath: rootPath } = parseGerritGitilesUrl( + config, + 'https://gerrit.com/gitiles/web/project/+/refs/heads/master', + ); + expect(rootPath).toEqual('/'); + }); it('throws on incorrect gitiles urls.', () => { const config: GerritIntegrationConfig = { host: 'gerrit.com', diff --git a/packages/integration/src/gerrit/core.ts b/packages/integration/src/gerrit/core.ts index 0403d8fc75..9312e55a7c 100644 --- a/packages/integration/src/gerrit/core.ts +++ b/packages/integration/src/gerrit/core.ts @@ -37,6 +37,7 @@ const GERRIT_BODY_PREFIX = ")]}'"; * * Gitiles url: * https://g.com/optional_path/\{project\}/+/refs/heads/\{branch\}/\{filePath\} + * https://g.com/a/optional_path/\{project\}/+/refs/heads/\{branch\}/\{filePath\} * * * @param url - An URL pointing to a file stored in git. @@ -47,7 +48,17 @@ export function parseGerritGitilesUrl( config: GerritIntegrationConfig, url: string, ): { branch: string; filePath: string; project: string } { - const urlPath = url.replace(config.gitilesBaseUrl!, ''); + const baseUrlParse = new URL(config.gitilesBaseUrl!); + const urlParse = new URL(url); + + // Remove the gerrit authentication prefix '/a/' from the url + // In case of the gitilesBaseUrl is https://review.gerrit.com/plugins/gitiles + // and the url provided is https://review.gerrit.com/a/plugins/gitiles/... + // remove the prefix only if the pathname start with '/a/' + const urlPath = urlParse.pathname + .substring(urlParse.pathname.startsWith('/a/') ? 2 : 0) + .replace(baseUrlParse.pathname, ''); + const parts = urlPath.split('/').filter(p => !!p); const projectEndIndex = parts.indexOf('+'); @@ -91,6 +102,28 @@ export function buildGerritGitilesUrl( }/${project}/+/refs/heads/${branch}/${trimStart(filePath, '/')}`; } +/** + * Build a Gerrit Gitiles archive url that targets a specific branch and path + * + * @param config - A Gerrit provider config. + * @param project - The name of the git project + * @param branch - The branch we will target. + * @param filePath - The absolute file path. + * @public + */ +export function buildGerritGitilesArchiveUrl( + config: GerritIntegrationConfig, + project: string, + branch: string, + filePath: string, +): string { + const archiveName = + filePath === '/' || filePath === '' ? '.tar.gz' : `/${filePath}.tar.gz`; + return `${getGitilesAuthenticationUrl( + config, + )}/${project}/+archive/refs/heads/${branch}${archiveName}`; +} + /** * Return the authentication prefix. * @@ -109,6 +142,27 @@ export function getAuthenticationPrefix( return config.password ? '/a/' : '/'; } +/** + * Return the authentication gitiles url. + * + * @remarks + * + * To authenticate with a password the API url must be prefixed with "/a/". + * If no password is set anonymous access (without the prefix) will + * be used. + * + * @param config - A Gerrit provider config. + * @public + */ +export function getGitilesAuthenticationUrl( + config: GerritIntegrationConfig, +): string { + const parsedUrl = new URL(config.gitilesBaseUrl!); + return `${parsedUrl.protocol}//${parsedUrl.host}${getAuthenticationPrefix( + config, + )}${parsedUrl.pathname.substring(1)}`; +} + /** * Return the url to get branch info from the Gerrit API. * diff --git a/packages/integration/src/gerrit/index.ts b/packages/integration/src/gerrit/index.ts index 127c949c4e..6c6295f7a3 100644 --- a/packages/integration/src/gerrit/index.ts +++ b/packages/integration/src/gerrit/index.ts @@ -19,6 +19,7 @@ export { readGerritIntegrationConfigs, } from './config'; export { + buildGerritGitilesArchiveUrl, getGerritBranchApiUrl, getGerritCloneRepoUrl, getGerritFileContentsApiUrl, From fa259dcff0703eb196a9e481f554778d1e872cce Mon Sep 17 00:00:00 2001 From: Thomas Cardonne Date: Fri, 11 Aug 2023 09:02:14 +0200 Subject: [PATCH 194/372] simplify ReadTreeResponseFactory options and small fixes Signed-off-by: Thomas Cardonne --- .changeset/heavy-suns-hope.md | 2 +- packages/backend-common/api-report.md | 5 +++-- .../backend-common/src/reading/GerritUrlReader.test.ts | 8 ++------ packages/backend-common/src/reading/GerritUrlReader.ts | 2 +- .../src/reading/tree/ReadTreeResponseFactory.ts | 6 ++++-- packages/backend-common/src/reading/types.ts | 10 +++++++--- packages/integration/src/gerrit/core.ts | 1 - 7 files changed, 18 insertions(+), 16 deletions(-) diff --git a/.changeset/heavy-suns-hope.md b/.changeset/heavy-suns-hope.md index 9918a797ec..334aa55dd3 100644 --- a/.changeset/heavy-suns-hope.md +++ b/.changeset/heavy-suns-hope.md @@ -5,5 +5,5 @@ To improve performance, `GerritUrlReader.readTree()` now uses Gitiles to fetch an archive instead of cloning the repository. If `gitilesBaseUrl` is not configured, `readTree` still uses Git to clone the repository. -Added `tarStripFirstDirectory` to `ReadTreeResponseFactoryOptions`, allowing to disable stripping first directory +Added `stripFirstDirectory` option to `ReadTreeResponseFactory.fromTarArchive()`, allowing to disable stripping first directory for `tar` archives. diff --git a/packages/backend-common/api-report.md b/packages/backend-common/api-report.md index 034d800aee..f8e535c8a7 100644 --- a/packages/backend-common/api-report.md +++ b/packages/backend-common/api-report.md @@ -610,7 +610,9 @@ export interface ReadTreeResponseFactory { ): Promise; // (undocumented) fromTarArchive( - options: ReadTreeResponseFactoryOptions, + options: ReadTreeResponseFactoryOptions & { + stripFirstDirectory?: boolean; + }, ): Promise; // (undocumented) fromZipArchive( @@ -629,7 +631,6 @@ export type ReadTreeResponseFactoryOptions = { size: number; }, ) => boolean; - tarStripFirstDirectory?: boolean; }; export { ReadTreeResponseFile }; diff --git a/packages/backend-common/src/reading/GerritUrlReader.test.ts b/packages/backend-common/src/reading/GerritUrlReader.test.ts index f8cd3bfcab..9de9aac33d 100644 --- a/packages/backend-common/src/reading/GerritUrlReader.test.ts +++ b/packages/backend-common/src/reading/GerritUrlReader.test.ts @@ -257,9 +257,7 @@ describe('GerritUrlReader', () => { worker.use( rest.get( - new RegExp( - 'https://gerrit.com/gitiles/app/web/\\+archive/refs/heads/master.tar.gz', - ), + 'https://gerrit.com/gitiles/app/web/\\+archive/refs/heads/master.tar.gz', (_, res, ctx) => res( ctx.status(200), @@ -272,9 +270,7 @@ describe('GerritUrlReader', () => { ), ), rest.get( - new RegExp( - 'https://gerrit.com/gitiles/app/web/\\+archive/refs/heads/master/docs.tar.gz', - ), + 'https://gerrit.com/gitiles/app/web/\\+archive/refs/heads/master/docs.tar.gz', (_, res, ctx) => res( ctx.status(200), diff --git a/packages/backend-common/src/reading/GerritUrlReader.ts b/packages/backend-common/src/reading/GerritUrlReader.ts index f16edb1bb2..f4a5fdb9f5 100644 --- a/packages/backend-common/src/reading/GerritUrlReader.ts +++ b/packages/backend-common/src/reading/GerritUrlReader.ts @@ -283,7 +283,7 @@ export class GerritUrlReader implements UrlReader { stream: archiveResponse.body as unknown as Readable, etag: revision, filter: options?.filter, - tarStripFirstDirectory: false, + stripFirstDirectory: false, }); } } diff --git a/packages/backend-common/src/reading/tree/ReadTreeResponseFactory.ts b/packages/backend-common/src/reading/tree/ReadTreeResponseFactory.ts index 9e1fb98707..90c58c0efa 100644 --- a/packages/backend-common/src/reading/tree/ReadTreeResponseFactory.ts +++ b/packages/backend-common/src/reading/tree/ReadTreeResponseFactory.ts @@ -37,7 +37,9 @@ export class DefaultReadTreeResponseFactory implements ReadTreeResponseFactory { constructor(private readonly workDir: string) {} async fromTarArchive( - options: ReadTreeResponseFactoryOptions, + options: ReadTreeResponseFactoryOptions & { + stripFirstDirectory?: boolean; + }, ): Promise { return new TarArchiveResponse( options.stream, @@ -45,7 +47,7 @@ export class DefaultReadTreeResponseFactory implements ReadTreeResponseFactory { this.workDir, options.etag, options.filter, - options.tarStripFirstDirectory ?? true, + options.stripFirstDirectory ?? true, ); } diff --git a/packages/backend-common/src/reading/types.ts b/packages/backend-common/src/reading/types.ts index fe39961e0e..90a3c6287e 100644 --- a/packages/backend-common/src/reading/types.ts +++ b/packages/backend-common/src/reading/types.ts @@ -83,8 +83,6 @@ export type ReadTreeResponseFactoryOptions = { etag: string; // Filter passed on from the ReadTreeOptions filter?: (path: string, info?: { size: number }) => boolean; - // First directory of a tar archive is stripped when set to true - tarStripFirstDirectory?: boolean; }; /** @@ -118,7 +116,13 @@ export type FromReadableArrayOptions = Array<{ */ export interface ReadTreeResponseFactory { fromTarArchive( - options: ReadTreeResponseFactoryOptions, + options: ReadTreeResponseFactoryOptions & { + /** + * Strip the first parent directory of a tar archive. + * Defaults to true. + */ + stripFirstDirectory?: boolean; + }, ): Promise; fromZipArchive( options: ReadTreeResponseFactoryOptions, diff --git a/packages/integration/src/gerrit/core.ts b/packages/integration/src/gerrit/core.ts index 9312e55a7c..107d5a4469 100644 --- a/packages/integration/src/gerrit/core.ts +++ b/packages/integration/src/gerrit/core.ts @@ -152,7 +152,6 @@ export function getAuthenticationPrefix( * be used. * * @param config - A Gerrit provider config. - * @public */ export function getGitilesAuthenticationUrl( config: GerritIntegrationConfig, From 3e8122de33001b562de08ac4b87ba162bd9a741a Mon Sep 17 00:00:00 2001 From: Gaurav Pandey <36168816+grvpandey11@users.noreply.github.com> Date: Fri, 11 Aug 2023 09:32:11 +0200 Subject: [PATCH 195/372] Added Microsoft Teams Backend Module Signed-off-by: Gaurav Pandey <36168816+grvpandey11@users.noreply.github.com> --- docs/features/software-templates/writing-custom-actions.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/features/software-templates/writing-custom-actions.md b/docs/features/software-templates/writing-custom-actions.md index 5ed79083ee..b8ec0269fd 100644 --- a/docs/features/software-templates/writing-custom-actions.md +++ b/docs/features/software-templates/writing-custom-actions.md @@ -210,5 +210,6 @@ scaffolder backend: | JSON Merge Actions | [plugin-scaffolder-json-merge-actions](https://www.npmjs.com/package/@mdude2314/backstage-plugin-scaffolder-json-merge-actions) | [Drew Hill](https://github.com/arhill05) | | NPM Actions | [plugin-scaffolder-npm-actions](https://www.npmjs.com/package/@mdude2314/backstage-plugin-scaffolder-npm-actions) | [Drew Hill](https://github.com/arhill05) | | Slack Actions | [plugin-scaffolder-backend-module-slack](https://www.npmjs.com/package/@mdude2314/backstage-plugin-scaffolder-backend-module-slack) | [Drew Hill](https://github.com/arhill05) | +| Microsoft Teams Actions | [plugin-scaffolder-backend-module-ms-teams](https://www.npmjs.com/package/@grvpandey11/backstage-plugin-scaffolder-backend-module-ms-teams) | [Gaurav Pandey](https://github.com/grvpandey11) | Have fun! 🚀 From 72f58694559c22998d938a5c2bb6883505dea113 Mon Sep 17 00:00:00 2001 From: Gaurav Pandey <36168816+grvpandey11@users.noreply.github.com> Date: Fri, 11 Aug 2023 09:36:18 +0200 Subject: [PATCH 196/372] Create scaffolder-backend-ms-teams.yaml Signed-off-by: Gaurav Pandey <36168816+grvpandey11@users.noreply.github.com> --- .../data/plugins/scaffolder-backend-ms-teams.yaml | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 microsite/data/plugins/scaffolder-backend-ms-teams.yaml diff --git a/microsite/data/plugins/scaffolder-backend-ms-teams.yaml b/microsite/data/plugins/scaffolder-backend-ms-teams.yaml new file mode 100644 index 0000000000..705017aa63 --- /dev/null +++ b/microsite/data/plugins/scaffolder-backend-ms-teams.yaml @@ -0,0 +1,10 @@ +--- +title: Microsoft Teams Scaffolder Actions +author: Gaurav Pandey +authorUrl: https://github.com/grvpandey11 +category: Scaffolder +description: Interact with Microsoft Teams from scaffolder templates +documentation: https://github.com/grvpandey11/backstage-plugin-scaffolder-backend-module-ms-teams/tree/main#readme +iconUrl: img/Ms-Teams.png +npmPackageName: '@grvpandey11/backstage-plugin-scaffolder-backend-module-ms-teams' +addedDate: '2023-08-11' From f1235a1542e2fd9e3a9603b58e05ad08124e4f22 Mon Sep 17 00:00:00 2001 From: Gaurav Pandey <36168816+grvpandey11@users.noreply.github.com> Date: Fri, 11 Aug 2023 13:07:35 +0530 Subject: [PATCH 197/372] Add files via upload Signed-off-by: Gaurav Pandey <36168816+grvpandey11@users.noreply.github.com> --- microsite/static/img/Ms-Teams.png | Bin 0 -> 10197 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 microsite/static/img/Ms-Teams.png diff --git a/microsite/static/img/Ms-Teams.png b/microsite/static/img/Ms-Teams.png new file mode 100644 index 0000000000000000000000000000000000000000..a212e5977ea5e318c15e8db3dd265ce53705e973 GIT binary patch literal 10197 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 H*028;p;fQZ literal 0 HcmV?d00001 From 4d5e0b6332a684bc5488de6e780eec66a516de8a Mon Sep 17 00:00:00 2001 From: Gaurav Pandey <36168816+grvpandey11@users.noreply.github.com> Date: Fri, 11 Aug 2023 09:55:37 +0200 Subject: [PATCH 198/372] Run Prettier Signed-off-by: Gaurav Pandey <36168816+grvpandey11@users.noreply.github.com> --- microsite/data/plugins/scaffolder-backend-ms-teams.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/microsite/data/plugins/scaffolder-backend-ms-teams.yaml b/microsite/data/plugins/scaffolder-backend-ms-teams.yaml index 705017aa63..188ea4fe05 100644 --- a/microsite/data/plugins/scaffolder-backend-ms-teams.yaml +++ b/microsite/data/plugins/scaffolder-backend-ms-teams.yaml @@ -1,4 +1,5 @@ --- + title: Microsoft Teams Scaffolder Actions author: Gaurav Pandey authorUrl: https://github.com/grvpandey11 From 9155ebcee09941efeace278146d57529e772c784 Mon Sep 17 00:00:00 2001 From: Gaurav Pandey <36168816+grvpandey11@users.noreply.github.com> Date: Fri, 11 Aug 2023 10:03:49 +0200 Subject: [PATCH 199/372] Update writing-custom-actions.md Signed-off-by: Gaurav Pandey <36168816+grvpandey11@users.noreply.github.com> --- docs/features/software-templates/writing-custom-actions.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/features/software-templates/writing-custom-actions.md b/docs/features/software-templates/writing-custom-actions.md index b8ec0269fd..929ba150d2 100644 --- a/docs/features/software-templates/writing-custom-actions.md +++ b/docs/features/software-templates/writing-custom-actions.md @@ -210,6 +210,6 @@ scaffolder backend: | JSON Merge Actions | [plugin-scaffolder-json-merge-actions](https://www.npmjs.com/package/@mdude2314/backstage-plugin-scaffolder-json-merge-actions) | [Drew Hill](https://github.com/arhill05) | | NPM Actions | [plugin-scaffolder-npm-actions](https://www.npmjs.com/package/@mdude2314/backstage-plugin-scaffolder-npm-actions) | [Drew Hill](https://github.com/arhill05) | | Slack Actions | [plugin-scaffolder-backend-module-slack](https://www.npmjs.com/package/@mdude2314/backstage-plugin-scaffolder-backend-module-slack) | [Drew Hill](https://github.com/arhill05) | -| Microsoft Teams Actions | [plugin-scaffolder-backend-module-ms-teams](https://www.npmjs.com/package/@grvpandey11/backstage-plugin-scaffolder-backend-module-ms-teams) | [Gaurav Pandey](https://github.com/grvpandey11) | +| Microsoft Teams Actions | [plugin-scaffolder-backend-module-ms-teams](https://www.npmjs.com/package/@grvpandey11/backstage-plugin-scaffolder-backend-module-ms-teams) | [Gaurav Pandey](https://github.com/grvpandey11) | Have fun! 🚀 From 852a4635d7d0b1b3dcb24060959f6c98b93b3e61 Mon Sep 17 00:00:00 2001 From: Gaurav Pandey <36168816+grvpandey11@users.noreply.github.com> Date: Fri, 11 Aug 2023 10:18:23 +0200 Subject: [PATCH 200/372] Ran Prettier Signed-off-by: Gaurav Pandey <36168816+grvpandey11@users.noreply.github.com> --- microsite/data/plugins/scaffolder-backend-ms-teams.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/microsite/data/plugins/scaffolder-backend-ms-teams.yaml b/microsite/data/plugins/scaffolder-backend-ms-teams.yaml index 188ea4fe05..d39db86801 100644 --- a/microsite/data/plugins/scaffolder-backend-ms-teams.yaml +++ b/microsite/data/plugins/scaffolder-backend-ms-teams.yaml @@ -4,7 +4,7 @@ title: Microsoft Teams Scaffolder Actions author: Gaurav Pandey authorUrl: https://github.com/grvpandey11 category: Scaffolder -description: Interact with Microsoft Teams from scaffolder templates +description: Interact with Microsoft Teams from Scaffolder templates documentation: https://github.com/grvpandey11/backstage-plugin-scaffolder-backend-module-ms-teams/tree/main#readme iconUrl: img/Ms-Teams.png npmPackageName: '@grvpandey11/backstage-plugin-scaffolder-backend-module-ms-teams' From ea3ab3fc3a5e5390c43fd79a0c2b612e05a6f69e Mon Sep 17 00:00:00 2001 From: Gaurav Pandey <36168816+grvpandey11@users.noreply.github.com> Date: Fri, 11 Aug 2023 10:43:02 +0200 Subject: [PATCH 201/372] Update scaffolder-backend-ms-teams.yaml Signed-off-by: Gaurav Pandey <36168816+grvpandey11@users.noreply.github.com> --- microsite/data/plugins/scaffolder-backend-ms-teams.yaml | 1 - 1 file changed, 1 deletion(-) diff --git a/microsite/data/plugins/scaffolder-backend-ms-teams.yaml b/microsite/data/plugins/scaffolder-backend-ms-teams.yaml index d39db86801..99233b10ee 100644 --- a/microsite/data/plugins/scaffolder-backend-ms-teams.yaml +++ b/microsite/data/plugins/scaffolder-backend-ms-teams.yaml @@ -1,5 +1,4 @@ --- - title: Microsoft Teams Scaffolder Actions author: Gaurav Pandey authorUrl: https://github.com/grvpandey11 From 027cad759b12d20b1a580ba85af2325885444647 Mon Sep 17 00:00:00 2001 From: blam Date: Fri, 11 Aug 2023 12:16:48 +0200 Subject: [PATCH 202/372] chore: fixing docs Signed-off-by: blam --- docs/features/software-templates/writing-templates.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/features/software-templates/writing-templates.md b/docs/features/software-templates/writing-templates.md index 57e261f19f..135d508513 100644 --- a/docs/features/software-templates/writing-templates.md +++ b/docs/features/software-templates/writing-templates.md @@ -519,7 +519,7 @@ Examples: each: ['apples', 'oranges'] input: values: - fruit: ${{ each}} + fruit: ${{ each.value }} ``` ```yaml From c6b29f3dbedda70a36b6fd92194912a2a9dd37f0 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Fri, 11 Aug 2023 15:04:40 +0200 Subject: [PATCH 203/372] todo: move filter encoding fix to backend Signed-off-by: Patrik Oldsberg --- .changeset/pretty-ways-knock.md | 4 ++-- .../src/schema/openapi.generated.ts | 1 + plugins/todo-backend/src/schema/openapi.yaml | 1 + .../todo-backend/src/service/router.test.ts | 17 +++++++++++++++++ plugins/todo/src/api/TodoClient.ts | 18 +++++++----------- 5 files changed, 28 insertions(+), 13 deletions(-) diff --git a/.changeset/pretty-ways-knock.md b/.changeset/pretty-ways-knock.md index d06a107fe3..1b8d56c178 100644 --- a/.changeset/pretty-ways-knock.md +++ b/.changeset/pretty-ways-knock.md @@ -1,5 +1,5 @@ --- -'@backstage/plugin-todo': patch +'@backstage/plugin-todo-backend': patch --- -Fixed URL encoding of filters where the filter was always rejected by the backend validation. +Fixed a bug where filter queries from the frontend would always fail validation. diff --git a/plugins/todo-backend/src/schema/openapi.generated.ts b/plugins/todo-backend/src/schema/openapi.generated.ts index a58a96ddb8..effe851790 100644 --- a/plugins/todo-backend/src/schema/openapi.generated.ts +++ b/plugins/todo-backend/src/schema/openapi.generated.ts @@ -173,6 +173,7 @@ export const spec = { name: 'filter', in: 'query', required: false, + allowReserved: true, schema: { type: 'array', description: diff --git a/plugins/todo-backend/src/schema/openapi.yaml b/plugins/todo-backend/src/schema/openapi.yaml index 0e6203e002..8023144f48 100644 --- a/plugins/todo-backend/src/schema/openapi.yaml +++ b/plugins/todo-backend/src/schema/openapi.yaml @@ -111,6 +111,7 @@ paths: - name: filter in: query required: false + allowReserved: true schema: type: array description: A list of filters used to narrow down the listed TODO items diff --git a/plugins/todo-backend/src/service/router.test.ts b/plugins/todo-backend/src/service/router.test.ts index 0bf591316c..64f894a147 100644 --- a/plugins/todo-backend/src/service/router.test.ts +++ b/plugins/todo-backend/src/service/router.test.ts @@ -131,6 +131,23 @@ describe('createRouter', () => { ); }); + it('forwards filter query', async () => { + mockService.listTodos.mockResolvedValueOnce(mockListBody); + + const response = await request(app).get('/v1/todos?filter=text=*borked*'); + expect(response.status).toEqual(200); + expect(response.body).toEqual(mockListBody); + expect(mockService.listTodos).toHaveBeenCalledWith( + { + entity: undefined, + offset: undefined, + limit: undefined, + filters: [{ field: 'text', value: '*borked*' }], + }, + { token: undefined }, + ); + }); + it('rejects invalid queries', async () => { request(app) .get('/v1/todos?entity=k:n&entity=k:n') diff --git a/plugins/todo/src/api/TodoClient.ts b/plugins/todo/src/api/TodoClient.ts index e86e444c30..4bfd5b77e5 100644 --- a/plugins/todo/src/api/TodoClient.ts +++ b/plugins/todo/src/api/TodoClient.ts @@ -67,17 +67,13 @@ export class TodoClient implements TodoApi { } } - const res = await fetch( - // TODO(Rugvip): Figure out a better solution to '*' not being URL encoded but that being required by OpenAPI - `${baseUrl}/v1/todos?${String(query).replace(/\*/g, '%2A')}`, - { - headers: token - ? { - Authorization: `Bearer ${token}`, - } - : undefined, - }, - ); + const res = await fetch(`${baseUrl}/v1/todos?${query}`, { + headers: token + ? { + Authorization: `Bearer ${token}`, + } + : undefined, + }); if (!res.ok) { throw await ResponseError.fromResponse(res); From c7aa4ff1793cd529d9da954f251eac6df38307ca Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Thu, 10 Aug 2023 18:01:45 +0200 Subject: [PATCH 204/372] backend-plugin-api: allow modules to register extension points Signed-off-by: Patrik Oldsberg --- .changeset/gorgeous-dragons-peel.md | 6 ++++++ .../src/wiring/BackendInitializer.ts | 2 +- packages/backend-plugin-api/api-report.md | 5 +++++ .../src/wiring/factories.test.ts | 1 + .../backend-plugin-api/src/wiring/factories.ts | 16 ++++++++++++++-- packages/backend-plugin-api/src/wiring/types.ts | 5 +++++ 6 files changed, 32 insertions(+), 3 deletions(-) create mode 100644 .changeset/gorgeous-dragons-peel.md diff --git a/.changeset/gorgeous-dragons-peel.md b/.changeset/gorgeous-dragons-peel.md new file mode 100644 index 0000000000..d067ca0ae7 --- /dev/null +++ b/.changeset/gorgeous-dragons-peel.md @@ -0,0 +1,6 @@ +--- +'@backstage/backend-plugin-api': patch +'@backstage/backend-app-api': patch +--- + +Allow modules to register extension points. diff --git a/packages/backend-app-api/src/wiring/BackendInitializer.ts b/packages/backend-app-api/src/wiring/BackendInitializer.ts index 6bc4e995e2..3f1c73928b 100644 --- a/packages/backend-app-api/src/wiring/BackendInitializer.ts +++ b/packages/backend-app-api/src/wiring/BackendInitializer.ts @@ -161,7 +161,7 @@ export class BackendInitializer { for (const r of feature.getRegistrations()) { const provides = new Set>(); - if (r.type === 'plugin') { + if (r.type === 'plugin' || r.type === 'module') { for (const [extRef, extImpl] of r.extensionPoints) { if (this.#extensionPoints.has(extRef)) { throw new Error( diff --git a/packages/backend-plugin-api/api-report.md b/packages/backend-plugin-api/api-report.md index a1ae6284c6..ed2eb819d7 100644 --- a/packages/backend-plugin-api/api-report.md +++ b/packages/backend-plugin-api/api-report.md @@ -31,6 +31,11 @@ export interface BackendModuleConfig { // @public export interface BackendModuleRegistrationPoints { + // (undocumented) + registerExtensionPoint( + ref: ExtensionPoint, + impl: TExtensionPoint, + ): void; // (undocumented) registerInit< Deps extends { diff --git a/packages/backend-plugin-api/src/wiring/factories.test.ts b/packages/backend-plugin-api/src/wiring/factories.test.ts index ae199d84e4..17b0eed55f 100644 --- a/packages/backend-plugin-api/src/wiring/factories.test.ts +++ b/packages/backend-plugin-api/src/wiring/factories.test.ts @@ -149,6 +149,7 @@ describe('createBackendModule', () => { type: 'module', pluginId: 'x', moduleId: 'y', + extensionPoints: [], init: { deps: expect.any(Object), func: expect.any(Function), diff --git a/packages/backend-plugin-api/src/wiring/factories.ts b/packages/backend-plugin-api/src/wiring/factories.ts index ecaccdc6de..c2ff1f84b9 100644 --- a/packages/backend-plugin-api/src/wiring/factories.ts +++ b/packages/backend-plugin-api/src/wiring/factories.ts @@ -159,13 +159,14 @@ export function createBackendPlugin( */ export interface BackendModuleConfig { /** - * The ID of this plugin. + * Should exactly match the `id` of the plugin that the module extends. * * @see {@link https://backstage.io/docs/backend-system/architecture/naming-patterns | Recommended naming patterns} */ pluginId: string; + /** - * Should exactly match the `id` of the plugin that the module extends. + * The ID of this module, used to identify the module and ensure that it is not installed twice. */ moduleId: string; register(reg: BackendModuleRegistrationPoints): void; @@ -194,10 +195,20 @@ export function createBackendModule( if (registrations) { return registrations; } + const extensionPoints: InternalBackendPluginRegistration['extensionPoints'] = + []; let init: InternalBackendModuleRegistration['init'] | undefined = undefined; c.register({ + registerExtensionPoint(ext, impl) { + if (init) { + throw new Error( + 'registerExtensionPoint called after registerInit', + ); + } + extensionPoints.push([ext, impl]); + }, registerInit(regInit) { if (init) { throw new Error('registerInit must only be called once'); @@ -220,6 +231,7 @@ export function createBackendModule( type: 'module', pluginId: c.pluginId, moduleId: c.moduleId, + extensionPoints, init, }, ]; diff --git a/packages/backend-plugin-api/src/wiring/types.ts b/packages/backend-plugin-api/src/wiring/types.ts index 028c2b87da..e2ed6ce387 100644 --- a/packages/backend-plugin-api/src/wiring/types.ts +++ b/packages/backend-plugin-api/src/wiring/types.ts @@ -59,6 +59,10 @@ export interface BackendPluginRegistrationPoints { * @public */ export interface BackendModuleRegistrationPoints { + registerExtensionPoint( + ref: ExtensionPoint, + impl: TExtensionPoint, + ): void; registerInit(options: { deps: { [name in keyof Deps]: ServiceRef | ExtensionPoint; @@ -105,6 +109,7 @@ export interface InternalBackendModuleRegistration { pluginId: string; moduleId: string; type: 'module'; + extensionPoints: Array, unknown]>; init: { deps: Record | ExtensionPoint>; func(deps: Record): Promise; From 8b85f546f7560c1f37bc03013bef16a03635ca0f Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Thu, 10 Aug 2023 19:10:13 +0200 Subject: [PATCH 205/372] backend-app-api: make sure modules are initialized in the correct order Signed-off-by: Patrik Oldsberg --- .../src/wiring/BackendInitializer.test.ts | 48 ++++++++++- .../src/wiring/BackendInitializer.ts | 82 +++++++++++++++---- 2 files changed, 115 insertions(+), 15 deletions(-) diff --git a/packages/backend-app-api/src/wiring/BackendInitializer.test.ts b/packages/backend-app-api/src/wiring/BackendInitializer.test.ts index b05194f594..555ce63f15 100644 --- a/packages/backend-app-api/src/wiring/BackendInitializer.test.ts +++ b/packages/backend-app-api/src/wiring/BackendInitializer.test.ts @@ -21,7 +21,7 @@ import { createBackendPlugin, createBackendModule, } from '@backstage/backend-plugin-api'; -import { BackendInitializer } from './BackendInitializer'; +import { BackendInitializer, resolveInitChunks } from './BackendInitializer'; import { ServiceRegistry } from './ServiceRegistry'; import { rootLifecycleServiceFactory } from '../services/implementations'; @@ -176,3 +176,49 @@ describe('BackendInitializer', () => { ); }); }); + +describe('resolveInitChunks', () => { + it('should resolve flat chunks', () => { + const resolved = resolveInitChunks( + new Map( + Object.entries({ + a: { consumes: new Set(), provides: new Set(['a']) } as any, + b: { consumes: new Set(), provides: new Set(['b']) } as any, + c: { consumes: new Set(), provides: new Set(['c']) } as any, + d: { consumes: new Set(), provides: new Set(['d']) } as any, + }), + ), + ).map(chunk => Array.from(chunk.keys())); + expect(resolved).toEqual([['a', 'b', 'c', 'd']]); + }); + + it('should resolve nested chunks', () => { + const resolved = resolveInitChunks( + new Map( + Object.entries({ + a: { consumes: new Set(), provides: new Set(['a']) } as any, + b: { consumes: new Set(['a']), provides: new Set(['b', 'c']) } as any, + c: { consumes: new Set(['b']), provides: new Set() } as any, + d: { consumes: new Set(['c']), provides: new Set() } as any, + }), + ), + ).map(chunk => Array.from(chunk.keys())); + expect(resolved).toEqual([['a'], ['b'], ['c', 'd']]); + }); + + it('should detect circular dependencies', () => { + expect(() => + resolveInitChunks( + new Map( + Object.entries({ + a: { consumes: new Set(), provides: new Set(['a']) } as any, + b: { consumes: new Set(['a', 'b']), provides: new Set() } as any, + c: { consumes: new Set(['a', 'c']), provides: new Set() } as any, + }), + ), + ), + ).toThrow( + "Failed to resolve module initialization order, the following modules have circular dependencies, 'b', 'c'", + ); + }); +}); diff --git a/packages/backend-app-api/src/wiring/BackendInitializer.ts b/packages/backend-app-api/src/wiring/BackendInitializer.ts index 3f1c73928b..19b933d96a 100644 --- a/packages/backend-app-api/src/wiring/BackendInitializer.ts +++ b/packages/backend-app-api/src/wiring/BackendInitializer.ts @@ -38,6 +38,58 @@ export interface BackendRegisterInit { }; } +/** @internal */ +export function resolveInitChunks( + registerInits: Map, +): Map[] { + let registerInitsToOrder = Array.from(registerInits); + const orderedRegisterInits = new Array>(); + + // Keep track of all deps that have been provided so far + const provided = new Set(); + + // Loop until we have ordered all registerInits + while (registerInitsToOrder.length > 0) { + const chunk = new Map(); + + // Find all registerInits that have all their deps provided + for (const [id, registerInit] of registerInitsToOrder) { + if ( + Array.from(registerInit.consumes).every(consumed => + provided.has(consumed), + ) + ) { + chunk.set(id, registerInit); + } + } + + // Add to the result set + orderedRegisterInits.push(chunk); + + // Register all the deps in the current chunk as provided + chunk.forEach(r => r.provides.forEach(p => provided.add(p))); + + // Remove the current chunk from the registerInits to order + const newRegisterInitsToOrder = registerInitsToOrder.filter( + ([id]) => !chunk.has(id), + ); + // Check that we have not hit a circular dependency + if ( + registerInitsToOrder.length !== 0 && + registerInitsToOrder.length === newRegisterInitsToOrder.length + ) { + throw new Error( + `Failed to resolve module initialization order, the following modules have circular dependencies, '${registerInitsToOrder + .map(r => r[0]) + .join("', '")}'`, + ); + } + registerInitsToOrder = newRegisterInitsToOrder; + } + + return orderedRegisterInits; +} + export class BackendInitializer { #startPromise?: Promise; #features = new Array(); @@ -210,21 +262,23 @@ export class BackendInitializer { await Promise.all( allPluginIds.map(async pluginId => { // Modules are initialized before plugins, so that they can provide extension to the plugin - const modules = moduleInits.get(pluginId) ?? []; - await Promise.all( - Array.from(modules).map(async ([moduleId, moduleInit]) => { - const moduleDeps = await this.#getInitDeps( - moduleInit.init.deps, - pluginId, - ); - await moduleInit.init.func(moduleDeps).catch(error => { - throw new ForwardedError( - `Module '${moduleId}' for plugin '${pluginId}' startup failed`, - error, + const modules = moduleInits.get(pluginId) ?? new Map(); + for (const chunk of resolveInitChunks(modules)) { + await Promise.all( + Array.from(chunk).map(async ([moduleId, moduleInit]) => { + const moduleDeps = await this.#getInitDeps( + moduleInit.init.deps, + pluginId, ); - }); - }), - ); + await moduleInit.init.func(moduleDeps).catch(error => { + throw new ForwardedError( + `Module '${moduleId}' for plugin '${pluginId}' startup failed`, + error, + ); + }); + }), + ); + } // Once all modules have been initialized, we can initialize the plugin itself const pluginInit = pluginInits.get(pluginId); From e2b6396a127488342d9b63743e40e29352e94d92 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Thu, 10 Aug 2023 19:11:39 +0200 Subject: [PATCH 206/372] catalog-backend-module-incremental-ingestion: move providers to extension point instead of options Signed-off-by: Patrik Oldsberg --- .changeset/perfect-trainers-invite.md | 5 + .../alpha-api-report.md | 17 ++- ...IncrementalIngestionEntityProvider.test.ts | 40 ++++-- ...oduleIncrementalIngestionEntityProvider.ts | 135 ++++++++++++------ .../src/module/index.ts | 6 +- .../src/run.ts | 36 +++-- 6 files changed, 168 insertions(+), 71 deletions(-) create mode 100644 .changeset/perfect-trainers-invite.md diff --git a/.changeset/perfect-trainers-invite.md b/.changeset/perfect-trainers-invite.md new file mode 100644 index 0000000000..6b543005cd --- /dev/null +++ b/.changeset/perfect-trainers-invite.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-catalog-backend-module-incremental-ingestion': patch +--- + +Export new alpha `incrementalIngestionProvidersExtensionPoint` for registering incremental providers, rather than the providers being passed as options to the backend module. diff --git a/plugins/catalog-backend-module-incremental-ingestion/alpha-api-report.md b/plugins/catalog-backend-module-incremental-ingestion/alpha-api-report.md index b11ec43cf5..995c6e4893 100644 --- a/plugins/catalog-backend-module-incremental-ingestion/alpha-api-report.md +++ b/plugins/catalog-backend-module-incremental-ingestion/alpha-api-report.md @@ -4,16 +4,23 @@ ```ts import { BackendFeature } from '@backstage/backend-plugin-api'; +import { ExtensionPoint } from '@backstage/backend-plugin-api'; import { IncrementalEntityProvider } from '@backstage/plugin-catalog-backend-module-incremental-ingestion'; import { IncrementalEntityProviderOptions } from '@backstage/plugin-catalog-backend-module-incremental-ingestion'; // @alpha -export const catalogModuleIncrementalIngestionEntityProvider: (options: { - providers: { - provider: IncrementalEntityProvider; +export const catalogModuleIncrementalIngestionEntityProvider: () => BackendFeature; + +// @alpha +export interface IncrementalIngestionProviderExtensionPoint { + addProvider(config: { options: IncrementalEntityProviderOptions; - }[]; -}) => BackendFeature; + provider: IncrementalEntityProvider; + }): void; +} + +// @alpha +export const incrementalIngestionProvidersExtensionPoint: ExtensionPoint; // (No @packageDocumentation comment for this package) ``` diff --git a/plugins/catalog-backend-module-incremental-ingestion/src/module/catalogModuleIncrementalIngestionEntityProvider.test.ts b/plugins/catalog-backend-module-incremental-ingestion/src/module/catalogModuleIncrementalIngestionEntityProvider.test.ts index ae480048d1..7c3dfdf226 100644 --- a/plugins/catalog-backend-module-incremental-ingestion/src/module/catalogModuleIncrementalIngestionEntityProvider.test.ts +++ b/plugins/catalog-backend-module-incremental-ingestion/src/module/catalogModuleIncrementalIngestionEntityProvider.test.ts @@ -15,12 +15,18 @@ */ import { getVoidLogger } from '@backstage/backend-common'; -import { coreServices } from '@backstage/backend-plugin-api'; +import { + coreServices, + createBackendModule, +} from '@backstage/backend-plugin-api'; import { startTestBackend } from '@backstage/backend-test-utils'; import { ConfigReader } from '@backstage/config'; import { catalogProcessingExtensionPoint } from '@backstage/plugin-catalog-node/alpha'; import { IncrementalEntityProvider } from '../types'; -import { catalogModuleIncrementalIngestionEntityProvider } from './catalogModuleIncrementalIngestionEntityProvider'; +import { + catalogModuleIncrementalIngestionEntityProvider, + incrementalIngestionProvidersExtensionPoint, +} from './catalogModuleIncrementalIngestionEntityProvider'; describe('catalogModuleIncrementalIngestionEntityProvider', () => { it('should register provider at the catalog extension point', async () => { @@ -57,18 +63,26 @@ describe('catalogModuleIncrementalIngestionEntityProvider', () => { [coreServices.scheduler, scheduler], ], features: [ - catalogModuleIncrementalIngestionEntityProvider({ - providers: [ - { - provider: provider1, - options: { - burstInterval: { seconds: 1 }, - burstLength: { seconds: 1 }, - restLength: { seconds: 1 }, + catalogModuleIncrementalIngestionEntityProvider(), + createBackendModule({ + pluginId: 'catalog', + moduleId: 'incrementalTest', + register(env) { + env.registerInit({ + deps: { extension: incrementalIngestionProvidersExtensionPoint }, + async init({ extension }) { + extension.addProvider({ + provider: provider1, + options: { + burstInterval: { seconds: 1 }, + burstLength: { seconds: 1 }, + restLength: { seconds: 1 }, + }, + }); }, - }, - ], - }), + }); + }, + })(), ], }); diff --git a/plugins/catalog-backend-module-incremental-ingestion/src/module/catalogModuleIncrementalIngestionEntityProvider.ts b/plugins/catalog-backend-module-incremental-ingestion/src/module/catalogModuleIncrementalIngestionEntityProvider.ts index 78d28d7b07..81419d66ec 100644 --- a/plugins/catalog-backend-module-incremental-ingestion/src/module/catalogModuleIncrementalIngestionEntityProvider.ts +++ b/plugins/catalog-backend-module-incremental-ingestion/src/module/catalogModuleIncrementalIngestionEntityProvider.ts @@ -17,6 +17,7 @@ import { coreServices, createBackendModule, + createExtensionPoint, } from '@backstage/backend-plugin-api'; import { catalogProcessingExtensionPoint } from '@backstage/plugin-catalog-node/alpha'; import { @@ -25,56 +26,110 @@ import { } from '@backstage/plugin-catalog-backend-module-incremental-ingestion'; import { WrapperProviders } from './WrapperProviders'; +/** + * @alpha + * Interface for {@link incrementalIngestionProvidersExtensionPoint}. + */ +export interface IncrementalIngestionProviderExtensionPoint { + /** Adds a new incremental entity provider */ + addProvider(config: { + options: IncrementalEntityProviderOptions; + provider: IncrementalEntityProvider; + }): void; +} + +/** + * @alpha + * + * Extension point for registering incremental ingestion providers. + * The `catalogModuleIncrementalIngestionEntityProvider` must be installed for these providers to work. + * + * @example + * + * ```ts + * backend.add(createBackendModule({ + * pluginId: 'catalog', + * register(env) { + * env.registerInit({ + * deps: { + * extension: incrementalIngestionProvidersExtensionPoint, + * }, + * async init({ extension }) { + * extension.addProvider({ + * burstInterval: ..., + * burstLength: ..., + * restLength: ..., + * }, { + * next(context, cursor) { + * ... + * }, + * ... + * }) + * }) + * }) + * } + * })) + * ``` + */ +export const incrementalIngestionProvidersExtensionPoint = + createExtensionPoint({ + id: 'catalog.incrementalIngestionProvider.providers', + }); + /** * Registers the incremental entity provider with the catalog processing extension point. * * @alpha */ export const catalogModuleIncrementalIngestionEntityProvider = - createBackendModule( - (options: { - providers: Array<{ + createBackendModule({ + pluginId: 'catalog', + moduleId: 'incrementalIngestionEntityProvider', + register(env) { + const addedProviders = new Array<{ provider: IncrementalEntityProvider; options: IncrementalEntityProviderOptions; - }>; - }) => ({ - pluginId: 'catalog', - moduleId: 'incrementalIngestionEntityProvider', - register(env) { - env.registerInit({ - deps: { - catalog: catalogProcessingExtensionPoint, - config: coreServices.rootConfig, - database: coreServices.database, - httpRouter: coreServices.httpRouter, - logger: coreServices.logger, - scheduler: coreServices.scheduler, - }, - async init({ - catalog, + }>(); + + env.registerExtensionPoint(incrementalIngestionProvidersExtensionPoint, { + addProvider({ options, provider }) { + addedProviders.push({ options, provider }); + }, + }); + + env.registerInit({ + deps: { + catalog: catalogProcessingExtensionPoint, + config: coreServices.rootConfig, + database: coreServices.database, + httpRouter: coreServices.httpRouter, + logger: coreServices.logger, + scheduler: coreServices.scheduler, + }, + async init({ + catalog, + config, + database, + httpRouter, + logger, + scheduler, + }) { + const client = await database.getClient(); + + const providers = new WrapperProviders({ config, - database, - httpRouter, logger, + client, scheduler, - }) { - const client = await database.getClient(); + }); - const providers = new WrapperProviders({ - config, - logger, - client, - scheduler, - }); + for (const entry of addedProviders) { + const wrapped = providers.wrap(entry.provider, entry.options); + catalog.addEntityProvider(wrapped); + } - for (const entry of options.providers) { - const wrapped = providers.wrap(entry.provider, entry.options); - catalog.addEntityProvider(wrapped); - } - - httpRouter.use(await providers.adminRouter()); - }, - }); - }, - }), - ); + httpRouter.use(await providers.adminRouter()); + }, + }); + }, + }); diff --git a/plugins/catalog-backend-module-incremental-ingestion/src/module/index.ts b/plugins/catalog-backend-module-incremental-ingestion/src/module/index.ts index 9fcee99e01..37ecf60f7c 100644 --- a/plugins/catalog-backend-module-incremental-ingestion/src/module/index.ts +++ b/plugins/catalog-backend-module-incremental-ingestion/src/module/index.ts @@ -14,4 +14,8 @@ * limitations under the License. */ -export { catalogModuleIncrementalIngestionEntityProvider } from './catalogModuleIncrementalIngestionEntityProvider'; +export { + catalogModuleIncrementalIngestionEntityProvider, + incrementalIngestionProvidersExtensionPoint, + type IncrementalIngestionProviderExtensionPoint, +} from './catalogModuleIncrementalIngestionEntityProvider'; diff --git a/plugins/catalog-backend-module-incremental-ingestion/src/run.ts b/plugins/catalog-backend-module-incremental-ingestion/src/run.ts index e7e7a900b9..be1a6dcfc0 100644 --- a/plugins/catalog-backend-module-incremental-ingestion/src/run.ts +++ b/plugins/catalog-backend-module-incremental-ingestion/src/run.ts @@ -20,12 +20,16 @@ import { createBackend } from '@backstage/backend-defaults'; import { coreServices, + createBackendModule, createServiceFactory, } from '@backstage/backend-plugin-api'; import { ConfigReader } from '@backstage/config'; import { catalogPlugin } from '@backstage/plugin-catalog-backend/alpha'; import { IncrementalEntityProvider } from '.'; -import { catalogModuleIncrementalIngestionEntityProvider } from './alpha'; +import { + catalogModuleIncrementalIngestionEntityProvider, + incrementalIngestionProvidersExtensionPoint, +} from './alpha'; const provider: IncrementalEntityProvider = { getProviderName: () => 'test-provider', @@ -62,19 +66,27 @@ async function main() { }); backend.add(catalogPlugin()); + backend.add(catalogModuleIncrementalIngestionEntityProvider()); backend.add( - catalogModuleIncrementalIngestionEntityProvider({ - providers: [ - { - provider: provider, - options: { - burstInterval: { seconds: 1 }, - burstLength: { seconds: 10 }, - restLength: { seconds: 10 }, + createBackendModule({ + pluginId: 'catalog', + moduleId: 'incrementalTestProvider', + register(reg) { + reg.registerInit({ + deps: { extension: incrementalIngestionProvidersExtensionPoint }, + async init({ extension }) { + extension.addProvider({ + provider: provider, + options: { + burstInterval: { seconds: 1 }, + burstLength: { seconds: 10 }, + restLength: { seconds: 10 }, + }, + }); }, - }, - ], - }), + }); + }, + })(), ); await backend.start(); From 983a2388e715a9805c2a912945ccd33b52a9faf2 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Fri, 11 Aug 2023 09:56:22 +0200 Subject: [PATCH 207/372] backend-app-api: initial dependency tree helper Signed-off-by: Patrik Oldsberg --- .../src/lib/DependencyTree.test.ts | 124 ++++++++++++++++ .../backend-app-api/src/lib/DependencyTree.ts | 139 ++++++++++++++++++ 2 files changed, 263 insertions(+) create mode 100644 packages/backend-app-api/src/lib/DependencyTree.test.ts create mode 100644 packages/backend-app-api/src/lib/DependencyTree.ts diff --git a/packages/backend-app-api/src/lib/DependencyTree.test.ts b/packages/backend-app-api/src/lib/DependencyTree.test.ts new file mode 100644 index 0000000000..5364dd4257 --- /dev/null +++ b/packages/backend-app-api/src/lib/DependencyTree.test.ts @@ -0,0 +1,124 @@ +/* + * 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 { DependencyTree } from './DependencyTree'; + +describe('DependencyTree', () => { + it('should be empty', () => { + const empty = DependencyTree.fromMap({}); + expect(Array.from(empty.nodes)).toEqual([]); + expect(empty.findUnsatisfiedDeps()).toEqual([]); + expect(empty.detectCircularDependency()).toBeUndefined(); + }); + + it('should reject multiple producers', () => { + expect(() => + DependencyTree.fromMap({ + 1: { produces: ['a'] }, + 2: { produces: ['a'] }, + }), + ).toThrow( + "Dependency conflict detected, 'a' may not be produced by both '1' and '2'", + ); + }); + + it('should detect circular dependencies', () => { + expect( + DependencyTree.fromMap({ + 1: {}, + 2: {}, + 3: {}, + 4: {}, + }).detectCircularDependency(), + ).toBeUndefined(); + + expect( + DependencyTree.fromMap({ + 1: { produces: ['a'] }, + 2: { consumes: ['a'], produces: ['b', 'c'] }, + 3: { consumes: ['b'] }, + 4: { consumes: ['c'] }, + }).detectCircularDependency(), + ).toBeUndefined(); + + expect( + DependencyTree.fromMap({ + 1: { produces: ['a'], consumes: ['a'] }, + }).detectCircularDependency(), + ).toEqual(['1', '1']); + + expect( + DependencyTree.fromMap({ + 1: { produces: ['a'], consumes: ['b'] }, + 2: { produces: ['b'], consumes: ['a'] }, + }).detectCircularDependency(), + ).toEqual(['1', '2', '1']); + + expect( + DependencyTree.fromMap({ + 1: { produces: ['a'] }, + 2: { produces: ['b'], consumes: ['a', 'e'] }, + 3: { produces: ['c'], consumes: ['b'] }, + 4: { produces: ['d', 'e'], consumes: ['c', 'a'] }, + }).detectCircularDependency(), + ).toEqual(['2', '3', '4', '2']); + }); + + it('should find unsatisfied dependencies', () => { + expect( + DependencyTree.fromMap({ + 1: {}, + 2: {}, + 3: {}, + 4: {}, + }).findUnsatisfiedDeps(), + ).toEqual([]); + + expect( + DependencyTree.fromMap({ + 1: { produces: ['a'] }, + 2: { consumes: ['a'], produces: ['b', 'c'] }, + 3: { consumes: ['b'] }, + 4: { consumes: ['c'] }, + }).findUnsatisfiedDeps(), + ).toEqual([]); + + expect( + DependencyTree.fromMap({ + 1: { consumes: ['a'] }, + }).findUnsatisfiedDeps(), + ).toEqual([{ id: '1', unsatisfied: ['a'] }]); + + expect( + DependencyTree.fromMap({ + 1: { produces: ['a'], consumes: ['b'] }, + 2: { produces: ['b'], consumes: ['a', 'd', 'e'] }, + }).findUnsatisfiedDeps(), + ).toEqual([{ id: '2', unsatisfied: ['d', 'e'] }]); + + expect( + DependencyTree.fromMap({ + 1: { produces: ['a'] }, + 2: { produces: ['b'], consumes: ['a', 'd', 'e'] }, + 3: { produces: [], consumes: ['b'] }, + 4: { produces: [], consumes: ['c', 'a'] }, + }).findUnsatisfiedDeps(), + ).toEqual([ + { id: '2', unsatisfied: ['d', 'e'] }, + { id: '4', unsatisfied: ['c'] }, + ]); + }); +}); diff --git a/packages/backend-app-api/src/lib/DependencyTree.ts b/packages/backend-app-api/src/lib/DependencyTree.ts new file mode 100644 index 0000000000..80cf10ecb2 --- /dev/null +++ b/packages/backend-app-api/src/lib/DependencyTree.ts @@ -0,0 +1,139 @@ +/* + * 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 { ConflictError, InputError } from '@backstage/errors'; + +interface NodeInput { + id: string; + consumes?: Iterable; + produces?: Iterable; +} + +/** @internal */ +class Node { + static from(input: NodeInput) { + return new Node( + input.id, + input.consumes ? new Set(input.consumes) : new Set(), + input.produces ? new Set(input.produces) : new Set(), + ); + } + + private constructor( + readonly id: string, + readonly consumes: Set, + readonly produces: Set, + ) {} +} + +/** @internal */ +export class DependencyTree { + static fromMap(nodes: Record>) { + return this.fromIterable( + Object.entries(nodes).map(([id, node]) => ({ id, ...node })), + ); + } + + static fromIterable(nodeInputs: Iterable) { + const nodes = new Map(); + for (const nodeInput of nodeInputs) { + const node = Node.from(nodeInput); + if (nodes.has(node.id)) { + throw new InputError(`Duplicate node with id ${node.id}`); + } + nodes.set(node.id, node); + } + + return new DependencyTree(nodes); + } + + #allProduced: Set; + #allConsumed: Set; + #producedBy: Map; + #consumedBy: Map>; + + private constructor(readonly nodes: Map) { + this.#allProduced = new Set(); + this.#allConsumed = new Set(); + this.#producedBy = new Map(); + this.#consumedBy = new Map(); + + for (const node of this.nodes.values()) { + for (const produced of node.produces) { + this.#allProduced.add(produced); + if (this.#producedBy.has(produced)) { + throw new ConflictError( + `Dependency conflict detected, '${produced}' may not be produced by both '${this.#producedBy.get( + produced, + )}' and '${node.id}'`, + ); + } + this.#producedBy.set(produced, node.id); + } + for (const consumed of node.consumes) { + this.#allConsumed.add(consumed); + if (!this.#consumedBy.get(consumed)?.add(node.id)) { + this.#consumedBy.set(consumed, new Set([node.id])); + } + } + } + } + + findUnsatisfiedDeps(): Array<{ id: string; unsatisfied: string[] }> { + const unsatisfiedDependencies = []; + for (const node of this.nodes.values()) { + const unsatisfied = Array.from(node.consumes).filter( + id => !this.#allProduced.has(id), + ); + if (unsatisfied.length > 0) { + unsatisfiedDependencies.push({ id: node.id, unsatisfied }); + } + } + return unsatisfiedDependencies; + } + + detectCircularDependency(): string[] | undefined { + for (const nodeId of this.nodes.keys()) { + const visited = new Set(); + const stack = new Array<[id: string, path: string[]]>([nodeId, [nodeId]]); + + while (stack.length > 0) { + const [id, path] = stack.pop()!; + if (visited.has(id)) { + continue; + } + visited.add(id); + const node = this.nodes.get(id); + if (node) { + for (const produced of node.produces) { + const consumers = this.#consumedBy.get(produced); + if (consumers) { + for (const consumer of consumers) { + if (consumer === nodeId) { + return [...path, nodeId]; + } + if (!visited.has(consumer)) { + stack.push([consumer, [...path, consumer]]); + } + } + } + } + } + } + } + return undefined; + } +} From b2fe28e483bdd4a114882304a43cc204341561de Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Fri, 11 Aug 2023 13:07:41 +0200 Subject: [PATCH 208/372] backend-app-api: implement topological traversal for dependency tree Signed-off-by: Patrik Oldsberg --- .../src/lib/DependencyTree.test.ts | 75 +++++++++++++++++++ .../backend-app-api/src/lib/DependencyTree.ts | 62 ++++++++++++++- 2 files changed, 136 insertions(+), 1 deletion(-) diff --git a/packages/backend-app-api/src/lib/DependencyTree.test.ts b/packages/backend-app-api/src/lib/DependencyTree.test.ts index 5364dd4257..d4cf8a863e 100644 --- a/packages/backend-app-api/src/lib/DependencyTree.test.ts +++ b/packages/backend-app-api/src/lib/DependencyTree.test.ts @@ -121,4 +121,79 @@ describe('DependencyTree', () => { { id: '4', unsatisfied: ['c'] }, ]); }); + + it('should traverse dependencies in topological order', async () => { + await expect( + DependencyTree.fromMap({ + 1: {}, + 2: {}, + 3: {}, + 4: {}, + }).parallelTopologicalTraversal(async id => id), + ).resolves.toEqual(['1', '2', '3', '4']); + + await expect( + DependencyTree.fromMap({ + 1: { produces: ['a'] }, + 2: { consumes: ['a'], produces: ['b', 'c'] }, + 3: { consumes: ['b'] }, + 4: { consumes: ['c'] }, + }).parallelTopologicalTraversal(async id => id), + ).resolves.toEqual(['1', '2', '3', '4']); + + await expect( + DependencyTree.fromMap({ + 1: { consumes: ['c'] }, + 2: { produces: ['c'], consumes: ['b'] }, + 3: { produces: ['b'], consumes: ['a'] }, + 4: { produces: ['a'] }, + }).parallelTopologicalTraversal(async id => id), + ).resolves.toEqual(['4', '3', '2', '1']); + + await expect( + DependencyTree.fromMap({ + 1: { produces: ['a'] }, + 2: { produces: ['b'], consumes: ['a'] }, + 3: { produces: ['c'], consumes: ['a'] }, + 4: { consumes: ['b'] }, + 5: { consumes: ['c'] }, + }).parallelTopologicalTraversal(async id => id), + ).resolves.toEqual(['1', '2', '3', '4', '5']); + + // Same as above, but with 2 being delayed + await expect( + DependencyTree.fromMap({ + 1: { produces: ['a'] }, + 2: { produces: ['b'], consumes: ['a'] }, + 3: { produces: ['c'], consumes: ['a'] }, + 4: { consumes: ['b'] }, + 5: { consumes: ['c'] }, + }).parallelTopologicalTraversal(async id => { + // When delaying 2 we expect 3 and 5 to complete before 2 and 4 + if (id === '2') { + await new Promise(resolve => setTimeout(resolve, 100)); + } + return id; + }), + ).resolves.toEqual(['1', '3', '5', '2', '4']); + + await expect( + DependencyTree.fromMap({ + 1: { produces: ['a'], consumes: ['a'] }, + }).parallelTopologicalTraversal(async id => id), + ).rejects.toThrow('Circular dependency detected'); + await expect( + DependencyTree.fromMap({ + 1: { produces: ['a'], consumes: ['b'] }, + 2: { produces: ['b'], consumes: ['a'] }, + }).parallelTopologicalTraversal(async id => id), + ).rejects.toThrow('Circular dependency detected'); + await expect( + DependencyTree.fromMap({ + 1: { produces: ['a'] }, + 2: { produces: ['c'], consumes: ['a', 'b'] }, + 3: { produces: ['b'], consumes: ['a', 'c'] }, + }).parallelTopologicalTraversal(async id => id), + ).rejects.toThrow('Circular dependency detected'); + }); }); diff --git a/packages/backend-app-api/src/lib/DependencyTree.ts b/packages/backend-app-api/src/lib/DependencyTree.ts index 80cf10ecb2..fe915cfa9d 100644 --- a/packages/backend-app-api/src/lib/DependencyTree.ts +++ b/packages/backend-app-api/src/lib/DependencyTree.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import { ConflictError, InputError } from '@backstage/errors'; +import { ConflictError, ForwardedError, InputError } from '@backstage/errors'; interface NodeInput { id: string; @@ -136,4 +136,64 @@ export class DependencyTree { } return undefined; } + + async parallelTopologicalTraversal( + fn: (nodeId: string) => Promise, + ): Promise { + const allProduced = this.#allProduced; + const producedSoFar = new Set(); + const waiting = new Set(this.nodes.values()); + const visited = new Set(); + const results = new Array(); + let inFlight = 0; + + async function processMoreNodes() { + if (waiting.size === 0) { + return; + } + const nodesToProcess = []; + for (const node of waiting) { + let ready = true; + for (const consumed of node.consumes) { + if (allProduced.has(consumed) && !producedSoFar.has(consumed)) { + ready = false; + continue; + } + } + if (ready) { + nodesToProcess.push(node); + } + } + + for (const node of nodesToProcess) { + waiting.delete(node); + } + + if (nodesToProcess.length === 0 && inFlight === 0) { + // We expect the caller to check for circular dependencies before + // traversal, so this error should never happen + throw new Error('Circular dependency detected'); + } + + await Promise.all(nodesToProcess.map(processNode)); + } + + async function processNode(node: Node) { + visited.add(node.id); + inFlight += 1; + try { + const result = await fn(node.id); + results.push(result); + } catch (error) { + throw new ForwardedError(`Failed at ${node.id}`, error); + } + node.produces.forEach(produced => producedSoFar.add(produced)); + inFlight -= 1; + await processMoreNodes(); + } + + await processMoreNodes(); + + return results; + } } From 0474a4bb1609a2eff805184db1bc959597eb1004 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Fri, 11 Aug 2023 13:19:37 +0200 Subject: [PATCH 209/372] backend-app-api: use dependency tree to implement module initialization Signed-off-by: Patrik Oldsberg --- .../src/wiring/BackendInitializer.test.ts | 48 +-------- .../src/wiring/BackendInitializer.ts | 99 ++++++------------- 2 files changed, 32 insertions(+), 115 deletions(-) diff --git a/packages/backend-app-api/src/wiring/BackendInitializer.test.ts b/packages/backend-app-api/src/wiring/BackendInitializer.test.ts index 555ce63f15..b05194f594 100644 --- a/packages/backend-app-api/src/wiring/BackendInitializer.test.ts +++ b/packages/backend-app-api/src/wiring/BackendInitializer.test.ts @@ -21,7 +21,7 @@ import { createBackendPlugin, createBackendModule, } from '@backstage/backend-plugin-api'; -import { BackendInitializer, resolveInitChunks } from './BackendInitializer'; +import { BackendInitializer } from './BackendInitializer'; import { ServiceRegistry } from './ServiceRegistry'; import { rootLifecycleServiceFactory } from '../services/implementations'; @@ -176,49 +176,3 @@ describe('BackendInitializer', () => { ); }); }); - -describe('resolveInitChunks', () => { - it('should resolve flat chunks', () => { - const resolved = resolveInitChunks( - new Map( - Object.entries({ - a: { consumes: new Set(), provides: new Set(['a']) } as any, - b: { consumes: new Set(), provides: new Set(['b']) } as any, - c: { consumes: new Set(), provides: new Set(['c']) } as any, - d: { consumes: new Set(), provides: new Set(['d']) } as any, - }), - ), - ).map(chunk => Array.from(chunk.keys())); - expect(resolved).toEqual([['a', 'b', 'c', 'd']]); - }); - - it('should resolve nested chunks', () => { - const resolved = resolveInitChunks( - new Map( - Object.entries({ - a: { consumes: new Set(), provides: new Set(['a']) } as any, - b: { consumes: new Set(['a']), provides: new Set(['b', 'c']) } as any, - c: { consumes: new Set(['b']), provides: new Set() } as any, - d: { consumes: new Set(['c']), provides: new Set() } as any, - }), - ), - ).map(chunk => Array.from(chunk.keys())); - expect(resolved).toEqual([['a'], ['b'], ['c', 'd']]); - }); - - it('should detect circular dependencies', () => { - expect(() => - resolveInitChunks( - new Map( - Object.entries({ - a: { consumes: new Set(), provides: new Set(['a']) } as any, - b: { consumes: new Set(['a', 'b']), provides: new Set() } as any, - c: { consumes: new Set(['a', 'c']), provides: new Set() } as any, - }), - ), - ), - ).toThrow( - "Failed to resolve module initialization order, the following modules have circular dependencies, 'b', 'c'", - ); - }); -}); diff --git a/packages/backend-app-api/src/wiring/BackendInitializer.ts b/packages/backend-app-api/src/wiring/BackendInitializer.ts index 19b933d96a..e5aebb52fa 100644 --- a/packages/backend-app-api/src/wiring/BackendInitializer.ts +++ b/packages/backend-app-api/src/wiring/BackendInitializer.ts @@ -26,8 +26,9 @@ import { EnumerableServiceHolder, ServiceOrExtensionPoint } from './types'; // Direct internal import to avoid duplication // eslint-disable-next-line @backstage/no-forbidden-package-imports import { InternalBackendFeature } from '@backstage/backend-plugin-api/src/wiring/types'; -import { ForwardedError } from '@backstage/errors'; +import { ForwardedError, InputError } from '@backstage/errors'; import { featureDiscoveryServiceRef } from '@backstage/backend-plugin-api/alpha'; +import { DependencyTree } from '../lib/DependencyTree'; export interface BackendRegisterInit { consumes: Set; @@ -38,58 +39,6 @@ export interface BackendRegisterInit { }; } -/** @internal */ -export function resolveInitChunks( - registerInits: Map, -): Map[] { - let registerInitsToOrder = Array.from(registerInits); - const orderedRegisterInits = new Array>(); - - // Keep track of all deps that have been provided so far - const provided = new Set(); - - // Loop until we have ordered all registerInits - while (registerInitsToOrder.length > 0) { - const chunk = new Map(); - - // Find all registerInits that have all their deps provided - for (const [id, registerInit] of registerInitsToOrder) { - if ( - Array.from(registerInit.consumes).every(consumed => - provided.has(consumed), - ) - ) { - chunk.set(id, registerInit); - } - } - - // Add to the result set - orderedRegisterInits.push(chunk); - - // Register all the deps in the current chunk as provided - chunk.forEach(r => r.provides.forEach(p => provided.add(p))); - - // Remove the current chunk from the registerInits to order - const newRegisterInitsToOrder = registerInitsToOrder.filter( - ([id]) => !chunk.has(id), - ); - // Check that we have not hit a circular dependency - if ( - registerInitsToOrder.length !== 0 && - registerInitsToOrder.length === newRegisterInitsToOrder.length - ) { - throw new Error( - `Failed to resolve module initialization order, the following modules have circular dependencies, '${registerInitsToOrder - .map(r => r[0]) - .join("', '")}'`, - ); - } - registerInitsToOrder = newRegisterInitsToOrder; - } - - return orderedRegisterInits; -} - export class BackendInitializer { #startPromise?: Promise; #features = new Array(); @@ -262,22 +211,36 @@ export class BackendInitializer { await Promise.all( allPluginIds.map(async pluginId => { // Modules are initialized before plugins, so that they can provide extension to the plugin - const modules = moduleInits.get(pluginId) ?? new Map(); - for (const chunk of resolveInitChunks(modules)) { - await Promise.all( - Array.from(chunk).map(async ([moduleId, moduleInit]) => { - const moduleDeps = await this.#getInitDeps( - moduleInit.init.deps, - pluginId, - ); - await moduleInit.init.func(moduleDeps).catch(error => { - throw new ForwardedError( - `Module '${moduleId}' for plugin '${pluginId}' startup failed`, - error, - ); - }); - }), + const modules = moduleInits.get(pluginId); + if (modules) { + const tree = DependencyTree.fromIterable( + Array.from(modules).map(([id, { provides, consumes }]) => ({ + id, + provides: Array.from(provides).map(p => p.id), + consumes: Array.from(consumes).map(c => c.id), + })), ); + const circular = tree.detectCircularDependency(); + if (circular) { + throw new InputError( + `Circular dependency detected for modules of plugin '${pluginId}', '${circular.join( + "' -> '", + )}'`, + ); + } + await tree.parallelTopologicalTraversal(async moduleId => { + const moduleInit = modules.get(moduleId)!; + const moduleDeps = await this.#getInitDeps( + moduleInit.init.deps, + pluginId, + ); + await moduleInit.init.func(moduleDeps).catch(error => { + throw new ForwardedError( + `Module '${moduleId}' for plugin '${pluginId}' startup failed`, + error, + ); + }); + }); } // Once all modules have been initialized, we can initialize the plugin itself From ed90ce7f2c50eff52b17760d5f9a2be42f971b97 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Fri, 11 Aug 2023 14:00:00 +0200 Subject: [PATCH 210/372] backend-app-api: remove unique producer constraint from dependency tree Signed-off-by: Patrik Oldsberg --- .../backend-app-api/src/lib/DependencyTree.test.ts | 11 ----------- packages/backend-app-api/src/lib/DependencyTree.ts | 12 +----------- 2 files changed, 1 insertion(+), 22 deletions(-) diff --git a/packages/backend-app-api/src/lib/DependencyTree.test.ts b/packages/backend-app-api/src/lib/DependencyTree.test.ts index d4cf8a863e..88593754bc 100644 --- a/packages/backend-app-api/src/lib/DependencyTree.test.ts +++ b/packages/backend-app-api/src/lib/DependencyTree.test.ts @@ -24,17 +24,6 @@ describe('DependencyTree', () => { expect(empty.detectCircularDependency()).toBeUndefined(); }); - it('should reject multiple producers', () => { - expect(() => - DependencyTree.fromMap({ - 1: { produces: ['a'] }, - 2: { produces: ['a'] }, - }), - ).toThrow( - "Dependency conflict detected, 'a' may not be produced by both '1' and '2'", - ); - }); - it('should detect circular dependencies', () => { expect( DependencyTree.fromMap({ diff --git a/packages/backend-app-api/src/lib/DependencyTree.ts b/packages/backend-app-api/src/lib/DependencyTree.ts index fe915cfa9d..a11ce3cbaf 100644 --- a/packages/backend-app-api/src/lib/DependencyTree.ts +++ b/packages/backend-app-api/src/lib/DependencyTree.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import { ConflictError, ForwardedError, InputError } from '@backstage/errors'; +import { ForwardedError, InputError } from '@backstage/errors'; interface NodeInput { id: string; @@ -62,26 +62,16 @@ export class DependencyTree { #allProduced: Set; #allConsumed: Set; - #producedBy: Map; #consumedBy: Map>; private constructor(readonly nodes: Map) { this.#allProduced = new Set(); this.#allConsumed = new Set(); - this.#producedBy = new Map(); this.#consumedBy = new Map(); for (const node of this.nodes.values()) { for (const produced of node.produces) { this.#allProduced.add(produced); - if (this.#producedBy.has(produced)) { - throw new ConflictError( - `Dependency conflict detected, '${produced}' may not be produced by both '${this.#producedBy.get( - produced, - )}' and '${node.id}'`, - ); - } - this.#producedBy.set(produced, node.id); } for (const consumed of node.consumes) { this.#allConsumed.add(consumed); From 8ade35b7806b782befa811b2ceffb68604adb2df Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Fri, 11 Aug 2023 14:00:31 +0200 Subject: [PATCH 211/372] backend-app-api: add module initialization test + fix Signed-off-by: Patrik Oldsberg --- .../src/wiring/BackendInitializer.test.ts | 77 ++++++++++++++++++- .../src/wiring/BackendInitializer.ts | 7 +- 2 files changed, 81 insertions(+), 3 deletions(-) diff --git a/packages/backend-app-api/src/wiring/BackendInitializer.test.ts b/packages/backend-app-api/src/wiring/BackendInitializer.test.ts index b05194f594..b625db31c9 100644 --- a/packages/backend-app-api/src/wiring/BackendInitializer.test.ts +++ b/packages/backend-app-api/src/wiring/BackendInitializer.test.ts @@ -20,10 +20,15 @@ import { coreServices, createBackendPlugin, createBackendModule, + createExtensionPoint, } from '@backstage/backend-plugin-api'; import { BackendInitializer } from './BackendInitializer'; import { ServiceRegistry } from './ServiceRegistry'; -import { rootLifecycleServiceFactory } from '../services/implementations'; +import { + lifecycleServiceFactory, + loggerServiceFactory, + rootLifecycleServiceFactory, +} from '../services/implementations'; const rootRef = createServiceRef<{ x: number }>({ id: '1', @@ -44,6 +49,17 @@ class MockLogger { } } +const baseFactories = [ + lifecycleServiceFactory(), + rootLifecycleServiceFactory(), + createServiceFactory({ + service: coreServices.rootLogger, + deps: {}, + factory: () => new MockLogger(), + })(), + loggerServiceFactory(), +]; + describe('BackendInitializer', () => { it('should initialize root scoped services', async () => { const rootFactory = jest.fn(); @@ -75,6 +91,65 @@ describe('BackendInitializer', () => { expect(pluginFactory).not.toHaveBeenCalled(); }); + it('should initialize modules with extension points', async () => { + expect.assertions(3); + + const extensionPoint = createExtensionPoint<{ values: string[] }>({ + id: 'a', + }); + const init = new BackendInitializer(new ServiceRegistry(baseFactories)); + + init.add( + createBackendModule({ + pluginId: 'test', + moduleId: 'modA', + register(reg) { + reg.registerInit({ + deps: { extension: extensionPoint }, + async init({ extension }) { + expect(extension.values).toEqual(['b']); + extension.values.push('a'); + }, + }); + }, + })(), + ); + + init.add( + createBackendModule({ + pluginId: 'test', + moduleId: 'modB', + register(reg) { + const values = ['b']; + reg.registerExtensionPoint(extensionPoint, { values }); + reg.registerInit({ + deps: {}, + async init() { + expect(values).toEqual(['b', 'a', 'c']); + }, + }); + }, + })(), + ); + + init.add( + createBackendModule({ + pluginId: 'test', + moduleId: 'modC', + register(reg) { + reg.registerInit({ + deps: { extension: extensionPoint }, + async init({ extension }) { + expect(extension.values).toEqual(['b', 'a']); + extension.values.push('c'); + }, + }); + }, + })(), + ); + await init.start(); + }); + it('should forward errors when plugins fail to start', async () => { const init = new BackendInitializer(new ServiceRegistry([])); init.add( diff --git a/packages/backend-app-api/src/wiring/BackendInitializer.ts b/packages/backend-app-api/src/wiring/BackendInitializer.ts index e5aebb52fa..ce84c2be0f 100644 --- a/packages/backend-app-api/src/wiring/BackendInitializer.ts +++ b/packages/backend-app-api/src/wiring/BackendInitializer.ts @@ -216,8 +216,11 @@ export class BackendInitializer { const tree = DependencyTree.fromIterable( Array.from(modules).map(([id, { provides, consumes }]) => ({ id, - provides: Array.from(provides).map(p => p.id), - consumes: Array.from(consumes).map(c => c.id), + // Relationships are reversed at this point since we're only interested in the extension points. + // If a modules provides extension point A we want it to be initialized AFTER all modules + // that depend on extension point A, so that they can provide their extensions. + consumes: Array.from(provides).map(p => p.id), + produces: Array.from(consumes).map(c => c.id), })), ); const circular = tree.detectCircularDependency(); From dd89ede423a3df636f243468fdcabae812e0a2c7 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Fri, 11 Aug 2023 14:01:36 +0200 Subject: [PATCH 212/372] backend-app-api: add test for circular module dependency check Signed-off-by: Patrik Oldsberg --- .../src/wiring/BackendInitializer.test.ts | 44 +++++++++++++++++++ .../src/wiring/BackendInitializer.ts | 4 +- 2 files changed, 46 insertions(+), 2 deletions(-) diff --git a/packages/backend-app-api/src/wiring/BackendInitializer.test.ts b/packages/backend-app-api/src/wiring/BackendInitializer.test.ts index b625db31c9..ba637b7b5b 100644 --- a/packages/backend-app-api/src/wiring/BackendInitializer.test.ts +++ b/packages/backend-app-api/src/wiring/BackendInitializer.test.ts @@ -250,4 +250,48 @@ describe('BackendInitializer', () => { "Module 'mod' for plugin 'test' is already registered", ); }); + + it('should reject modules with circular dependencies', async () => { + const extA = createExtensionPoint({ id: 'a' }); + const extB = createExtensionPoint({ id: 'b' }); + const init = new BackendInitializer( + new ServiceRegistry([ + rootLifecycleServiceFactory(), + createServiceFactory({ + service: coreServices.rootLogger, + deps: {}, + factory: () => new MockLogger(), + })(), + ]), + ); + init.add( + createBackendModule({ + pluginId: 'test', + moduleId: 'modA', + register(reg) { + reg.registerExtensionPoint(extA, 'a'); + reg.registerInit({ + deps: { ext: extB }, + async init() {}, + }); + }, + })(), + ); + init.add( + createBackendModule({ + pluginId: 'test', + moduleId: 'modB', + register(reg) { + reg.registerExtensionPoint(extB, 'b'); + reg.registerInit({ + deps: { ext: extA }, + async init() {}, + }); + }, + })(), + ); + await expect(init.start()).rejects.toThrow( + "Circular dependency detected for modules of plugin 'test', 'modA' -> 'modB' -> 'modA'", + ); + }); }); diff --git a/packages/backend-app-api/src/wiring/BackendInitializer.ts b/packages/backend-app-api/src/wiring/BackendInitializer.ts index ce84c2be0f..fe3120713e 100644 --- a/packages/backend-app-api/src/wiring/BackendInitializer.ts +++ b/packages/backend-app-api/src/wiring/BackendInitializer.ts @@ -26,7 +26,7 @@ import { EnumerableServiceHolder, ServiceOrExtensionPoint } from './types'; // Direct internal import to avoid duplication // eslint-disable-next-line @backstage/no-forbidden-package-imports import { InternalBackendFeature } from '@backstage/backend-plugin-api/src/wiring/types'; -import { ForwardedError, InputError } from '@backstage/errors'; +import { ForwardedError, ConflictError } from '@backstage/errors'; import { featureDiscoveryServiceRef } from '@backstage/backend-plugin-api/alpha'; import { DependencyTree } from '../lib/DependencyTree'; @@ -225,7 +225,7 @@ export class BackendInitializer { ); const circular = tree.detectCircularDependency(); if (circular) { - throw new InputError( + throw new ConflictError( `Circular dependency detected for modules of plugin '${pluginId}', '${circular.join( "' -> '", )}'`, From 6ed4759db18fd87a2249326dd35e47596105c624 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Fri, 11 Aug 2023 14:20:59 +0200 Subject: [PATCH 213/372] backend-app-api: refactor dependency tree to use values instead of IDs Signed-off-by: Patrik Oldsberg --- .../src/lib/DependencyTree.test.ts | 14 +- .../backend-app-api/src/lib/DependencyTree.ts | 122 +++++++++--------- .../src/wiring/BackendInitializer.ts | 39 +++--- 3 files changed, 87 insertions(+), 88 deletions(-) diff --git a/packages/backend-app-api/src/lib/DependencyTree.test.ts b/packages/backend-app-api/src/lib/DependencyTree.test.ts index 88593754bc..c76c23c36a 100644 --- a/packages/backend-app-api/src/lib/DependencyTree.test.ts +++ b/packages/backend-app-api/src/lib/DependencyTree.test.ts @@ -17,11 +17,13 @@ import { DependencyTree } from './DependencyTree'; describe('DependencyTree', () => { - it('should be empty', () => { + it('should be empty', async () => { const empty = DependencyTree.fromMap({}); - expect(Array.from(empty.nodes)).toEqual([]); expect(empty.findUnsatisfiedDeps()).toEqual([]); expect(empty.detectCircularDependency()).toBeUndefined(); + await expect( + empty.parallelTopologicalTraversal(async id => id), + ).resolves.toEqual([]); }); it('should detect circular dependencies', () => { @@ -89,14 +91,14 @@ describe('DependencyTree', () => { DependencyTree.fromMap({ 1: { consumes: ['a'] }, }).findUnsatisfiedDeps(), - ).toEqual([{ id: '1', unsatisfied: ['a'] }]); + ).toEqual([{ value: '1', unsatisfied: ['a'] }]); expect( DependencyTree.fromMap({ 1: { produces: ['a'], consumes: ['b'] }, 2: { produces: ['b'], consumes: ['a', 'd', 'e'] }, }).findUnsatisfiedDeps(), - ).toEqual([{ id: '2', unsatisfied: ['d', 'e'] }]); + ).toEqual([{ value: '2', unsatisfied: ['d', 'e'] }]); expect( DependencyTree.fromMap({ @@ -106,8 +108,8 @@ describe('DependencyTree', () => { 4: { produces: [], consumes: ['c', 'a'] }, }).findUnsatisfiedDeps(), ).toEqual([ - { id: '2', unsatisfied: ['d', 'e'] }, - { id: '4', unsatisfied: ['c'] }, + { value: '2', unsatisfied: ['d', 'e'] }, + { value: '4', unsatisfied: ['c'] }, ]); }); diff --git a/packages/backend-app-api/src/lib/DependencyTree.ts b/packages/backend-app-api/src/lib/DependencyTree.ts index a11ce3cbaf..addaa873a5 100644 --- a/packages/backend-app-api/src/lib/DependencyTree.ts +++ b/packages/backend-app-api/src/lib/DependencyTree.ts @@ -14,111 +14,109 @@ * limitations under the License. */ -import { ForwardedError, InputError } from '@backstage/errors'; - -interface NodeInput { - id: string; +interface NodeInput { + value: T; consumes?: Iterable; produces?: Iterable; } /** @internal */ -class Node { - static from(input: NodeInput) { - return new Node( - input.id, +class Node { + static from(input: NodeInput) { + return new Node( + input.value, input.consumes ? new Set(input.consumes) : new Set(), input.produces ? new Set(input.produces) : new Set(), ); } private constructor( - readonly id: string, + readonly value: T, readonly consumes: Set, readonly produces: Set, ) {} } /** @internal */ -export class DependencyTree { - static fromMap(nodes: Record>) { +export class DependencyTree { + static fromMap( + nodes: Record, 'value'>>, + ): DependencyTree { return this.fromIterable( - Object.entries(nodes).map(([id, node]) => ({ id, ...node })), + Object.entries(nodes).map(([key, node]) => ({ + value: String(key), + ...node, + })), ); } - static fromIterable(nodeInputs: Iterable) { - const nodes = new Map(); + static fromIterable( + nodeInputs: Iterable>, + ): DependencyTree { + const nodes = new Array>(); for (const nodeInput of nodeInputs) { - const node = Node.from(nodeInput); - if (nodes.has(node.id)) { - throw new InputError(`Duplicate node with id ${node.id}`); - } - nodes.set(node.id, node); + nodes.push(Node.from(nodeInput)); } return new DependencyTree(nodes); } + #nodes: Array>; #allProduced: Set; #allConsumed: Set; - #consumedBy: Map>; - private constructor(readonly nodes: Map) { + private constructor(nodes: Array>) { + this.#nodes = nodes; this.#allProduced = new Set(); this.#allConsumed = new Set(); - this.#consumedBy = new Map(); - for (const node of this.nodes.values()) { + for (const node of this.#nodes.values()) { for (const produced of node.produces) { this.#allProduced.add(produced); } for (const consumed of node.consumes) { this.#allConsumed.add(consumed); - if (!this.#consumedBy.get(consumed)?.add(node.id)) { - this.#consumedBy.set(consumed, new Set([node.id])); - } } } } - findUnsatisfiedDeps(): Array<{ id: string; unsatisfied: string[] }> { + findUnsatisfiedDeps(): Array<{ value: T; unsatisfied: string[] }> { const unsatisfiedDependencies = []; - for (const node of this.nodes.values()) { + for (const node of this.#nodes.values()) { const unsatisfied = Array.from(node.consumes).filter( id => !this.#allProduced.has(id), ); if (unsatisfied.length > 0) { - unsatisfiedDependencies.push({ id: node.id, unsatisfied }); + unsatisfiedDependencies.push({ value: node.value, unsatisfied }); } } return unsatisfiedDependencies; } - detectCircularDependency(): string[] | undefined { - for (const nodeId of this.nodes.keys()) { - const visited = new Set(); - const stack = new Array<[id: string, path: string[]]>([nodeId, [nodeId]]); + detectCircularDependency(): T[] | undefined { + for (const startNode of this.#nodes) { + const visited = new Set>(); + const stack = new Array<[node: Node, path: T[]]>([ + startNode, + [startNode.value], + ]); while (stack.length > 0) { - const [id, path] = stack.pop()!; - if (visited.has(id)) { + const [node, path] = stack.pop()!; + if (visited.has(node)) { continue; } - visited.add(id); - const node = this.nodes.get(id); - if (node) { - for (const produced of node.produces) { - const consumers = this.#consumedBy.get(produced); - if (consumers) { - for (const consumer of consumers) { - if (consumer === nodeId) { - return [...path, nodeId]; - } - if (!visited.has(consumer)) { - stack.push([consumer, [...path, consumer]]); - } - } + visited.add(node); + for (const produced of node.produces) { + const consumerNodes = this.#nodes.filter(other => + other.consumes.has(produced), + ); + for (const consumer of consumerNodes) { + if (consumer === startNode) { + return [...path, startNode.value]; + } + if (!visited.has(consumer)) { + stack.push([consumer, [...path, consumer.value]]); } } } @@ -127,14 +125,14 @@ export class DependencyTree { return undefined; } - async parallelTopologicalTraversal( - fn: (nodeId: string) => Promise, - ): Promise { + async parallelTopologicalTraversal( + fn: (value: T) => Promise, + ): Promise { const allProduced = this.#allProduced; const producedSoFar = new Set(); - const waiting = new Set(this.nodes.values()); - const visited = new Set(); - const results = new Array(); + const waiting = new Set(this.#nodes.values()); + const visited = new Set>(); + const results = new Array(); let inFlight = 0; async function processMoreNodes() { @@ -168,15 +166,13 @@ export class DependencyTree { await Promise.all(nodesToProcess.map(processNode)); } - async function processNode(node: Node) { - visited.add(node.id); + async function processNode(node: Node) { + visited.add(node); inFlight += 1; - try { - const result = await fn(node.id); - results.push(result); - } catch (error) { - throw new ForwardedError(`Failed at ${node.id}`, error); - } + + const result = await fn(node.value); + results.push(result); + node.produces.forEach(produced => producedSoFar.add(produced)); inFlight -= 1; await processMoreNodes(); diff --git a/packages/backend-app-api/src/wiring/BackendInitializer.ts b/packages/backend-app-api/src/wiring/BackendInitializer.ts index fe3120713e..1061ad8944 100644 --- a/packages/backend-app-api/src/wiring/BackendInitializer.ts +++ b/packages/backend-app-api/src/wiring/BackendInitializer.ts @@ -214,36 +214,37 @@ export class BackendInitializer { const modules = moduleInits.get(pluginId); if (modules) { const tree = DependencyTree.fromIterable( - Array.from(modules).map(([id, { provides, consumes }]) => ({ - id, + Array.from(modules).map(([moduleId, moduleInit]) => ({ + value: { moduleId, moduleInit }, // Relationships are reversed at this point since we're only interested in the extension points. // If a modules provides extension point A we want it to be initialized AFTER all modules // that depend on extension point A, so that they can provide their extensions. - consumes: Array.from(provides).map(p => p.id), - produces: Array.from(consumes).map(c => c.id), + consumes: Array.from(moduleInit.provides).map(p => p.id), + produces: Array.from(moduleInit.consumes).map(c => c.id), })), ); const circular = tree.detectCircularDependency(); if (circular) { throw new ConflictError( - `Circular dependency detected for modules of plugin '${pluginId}', '${circular.join( - "' -> '", - )}'`, + `Circular dependency detected for modules of plugin '${pluginId}', ${circular + .map(({ moduleId }) => `'${moduleId}'`) + .join(' -> ')}`, ); } - await tree.parallelTopologicalTraversal(async moduleId => { - const moduleInit = modules.get(moduleId)!; - const moduleDeps = await this.#getInitDeps( - moduleInit.init.deps, - pluginId, - ); - await moduleInit.init.func(moduleDeps).catch(error => { - throw new ForwardedError( - `Module '${moduleId}' for plugin '${pluginId}' startup failed`, - error, + await tree.parallelTopologicalTraversal( + async ({ moduleId, moduleInit }) => { + const moduleDeps = await this.#getInitDeps( + moduleInit.init.deps, + pluginId, ); - }); - }); + await moduleInit.init.func(moduleDeps).catch(error => { + throw new ForwardedError( + `Module '${moduleId}' for plugin '${pluginId}' startup failed`, + error, + ); + }); + }, + ); } // Once all modules have been initialized, we can initialize the plugin itself From a292c9d6d9e4bba777bba129bbc8c7fc71b7bc13 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Fri, 11 Aug 2023 14:34:17 +0200 Subject: [PATCH 214/372] backend-app-api: rename dependency tree produces -> provides Signed-off-by: Patrik Oldsberg --- .../src/lib/DependencyTree.test.ts | 68 +++++++++---------- .../backend-app-api/src/lib/DependencyTree.ts | 29 ++++---- .../src/wiring/BackendInitializer.ts | 2 +- 3 files changed, 47 insertions(+), 52 deletions(-) diff --git a/packages/backend-app-api/src/lib/DependencyTree.test.ts b/packages/backend-app-api/src/lib/DependencyTree.test.ts index c76c23c36a..70591aa295 100644 --- a/packages/backend-app-api/src/lib/DependencyTree.test.ts +++ b/packages/backend-app-api/src/lib/DependencyTree.test.ts @@ -38,8 +38,8 @@ describe('DependencyTree', () => { expect( DependencyTree.fromMap({ - 1: { produces: ['a'] }, - 2: { consumes: ['a'], produces: ['b', 'c'] }, + 1: { provides: ['a'] }, + 2: { consumes: ['a'], provides: ['b', 'c'] }, 3: { consumes: ['b'] }, 4: { consumes: ['c'] }, }).detectCircularDependency(), @@ -47,23 +47,23 @@ describe('DependencyTree', () => { expect( DependencyTree.fromMap({ - 1: { produces: ['a'], consumes: ['a'] }, + 1: { provides: ['a'], consumes: ['a'] }, }).detectCircularDependency(), ).toEqual(['1', '1']); expect( DependencyTree.fromMap({ - 1: { produces: ['a'], consumes: ['b'] }, - 2: { produces: ['b'], consumes: ['a'] }, + 1: { provides: ['a'], consumes: ['b'] }, + 2: { provides: ['b'], consumes: ['a'] }, }).detectCircularDependency(), ).toEqual(['1', '2', '1']); expect( DependencyTree.fromMap({ - 1: { produces: ['a'] }, - 2: { produces: ['b'], consumes: ['a', 'e'] }, - 3: { produces: ['c'], consumes: ['b'] }, - 4: { produces: ['d', 'e'], consumes: ['c', 'a'] }, + 1: { provides: ['a'] }, + 2: { provides: ['b'], consumes: ['a', 'e'] }, + 3: { provides: ['c'], consumes: ['b'] }, + 4: { provides: ['d', 'e'], consumes: ['c', 'a'] }, }).detectCircularDependency(), ).toEqual(['2', '3', '4', '2']); }); @@ -80,8 +80,8 @@ describe('DependencyTree', () => { expect( DependencyTree.fromMap({ - 1: { produces: ['a'] }, - 2: { consumes: ['a'], produces: ['b', 'c'] }, + 1: { provides: ['a'] }, + 2: { consumes: ['a'], provides: ['b', 'c'] }, 3: { consumes: ['b'] }, 4: { consumes: ['c'] }, }).findUnsatisfiedDeps(), @@ -95,17 +95,17 @@ describe('DependencyTree', () => { expect( DependencyTree.fromMap({ - 1: { produces: ['a'], consumes: ['b'] }, - 2: { produces: ['b'], consumes: ['a', 'd', 'e'] }, + 1: { provides: ['a'], consumes: ['b'] }, + 2: { provides: ['b'], consumes: ['a', 'd', 'e'] }, }).findUnsatisfiedDeps(), ).toEqual([{ value: '2', unsatisfied: ['d', 'e'] }]); expect( DependencyTree.fromMap({ - 1: { produces: ['a'] }, - 2: { produces: ['b'], consumes: ['a', 'd', 'e'] }, - 3: { produces: [], consumes: ['b'] }, - 4: { produces: [], consumes: ['c', 'a'] }, + 1: { provides: ['a'] }, + 2: { provides: ['b'], consumes: ['a', 'd', 'e'] }, + 3: { provides: [], consumes: ['b'] }, + 4: { provides: [], consumes: ['c', 'a'] }, }).findUnsatisfiedDeps(), ).toEqual([ { value: '2', unsatisfied: ['d', 'e'] }, @@ -125,8 +125,8 @@ describe('DependencyTree', () => { await expect( DependencyTree.fromMap({ - 1: { produces: ['a'] }, - 2: { consumes: ['a'], produces: ['b', 'c'] }, + 1: { provides: ['a'] }, + 2: { consumes: ['a'], provides: ['b', 'c'] }, 3: { consumes: ['b'] }, 4: { consumes: ['c'] }, }).parallelTopologicalTraversal(async id => id), @@ -135,17 +135,17 @@ describe('DependencyTree', () => { await expect( DependencyTree.fromMap({ 1: { consumes: ['c'] }, - 2: { produces: ['c'], consumes: ['b'] }, - 3: { produces: ['b'], consumes: ['a'] }, - 4: { produces: ['a'] }, + 2: { provides: ['c'], consumes: ['b'] }, + 3: { provides: ['b'], consumes: ['a'] }, + 4: { provides: ['a'] }, }).parallelTopologicalTraversal(async id => id), ).resolves.toEqual(['4', '3', '2', '1']); await expect( DependencyTree.fromMap({ - 1: { produces: ['a'] }, - 2: { produces: ['b'], consumes: ['a'] }, - 3: { produces: ['c'], consumes: ['a'] }, + 1: { provides: ['a'] }, + 2: { provides: ['b'], consumes: ['a'] }, + 3: { provides: ['c'], consumes: ['a'] }, 4: { consumes: ['b'] }, 5: { consumes: ['c'] }, }).parallelTopologicalTraversal(async id => id), @@ -154,9 +154,9 @@ describe('DependencyTree', () => { // Same as above, but with 2 being delayed await expect( DependencyTree.fromMap({ - 1: { produces: ['a'] }, - 2: { produces: ['b'], consumes: ['a'] }, - 3: { produces: ['c'], consumes: ['a'] }, + 1: { provides: ['a'] }, + 2: { provides: ['b'], consumes: ['a'] }, + 3: { provides: ['c'], consumes: ['a'] }, 4: { consumes: ['b'] }, 5: { consumes: ['c'] }, }).parallelTopologicalTraversal(async id => { @@ -170,20 +170,20 @@ describe('DependencyTree', () => { await expect( DependencyTree.fromMap({ - 1: { produces: ['a'], consumes: ['a'] }, + 1: { provides: ['a'], consumes: ['a'] }, }).parallelTopologicalTraversal(async id => id), ).rejects.toThrow('Circular dependency detected'); await expect( DependencyTree.fromMap({ - 1: { produces: ['a'], consumes: ['b'] }, - 2: { produces: ['b'], consumes: ['a'] }, + 1: { provides: ['a'], consumes: ['b'] }, + 2: { provides: ['b'], consumes: ['a'] }, }).parallelTopologicalTraversal(async id => id), ).rejects.toThrow('Circular dependency detected'); await expect( DependencyTree.fromMap({ - 1: { produces: ['a'] }, - 2: { produces: ['c'], consumes: ['a', 'b'] }, - 3: { produces: ['b'], consumes: ['a', 'c'] }, + 1: { provides: ['a'] }, + 2: { provides: ['c'], consumes: ['a', 'b'] }, + 3: { provides: ['b'], consumes: ['a', 'c'] }, }).parallelTopologicalTraversal(async id => id), ).rejects.toThrow('Circular dependency detected'); }); diff --git a/packages/backend-app-api/src/lib/DependencyTree.ts b/packages/backend-app-api/src/lib/DependencyTree.ts index addaa873a5..51567524d8 100644 --- a/packages/backend-app-api/src/lib/DependencyTree.ts +++ b/packages/backend-app-api/src/lib/DependencyTree.ts @@ -17,7 +17,7 @@ interface NodeInput { value: T; consumes?: Iterable; - produces?: Iterable; + provides?: Iterable; } /** @internal */ @@ -26,14 +26,14 @@ class Node { return new Node( input.value, input.consumes ? new Set(input.consumes) : new Set(), - input.produces ? new Set(input.produces) : new Set(), + input.provides ? new Set(input.provides) : new Set(), ); } private constructor( readonly value: T, readonly consumes: Set, - readonly produces: Set, + readonly provides: Set, ) {} } @@ -62,20 +62,15 @@ export class DependencyTree { } #nodes: Array>; - #allProduced: Set; - #allConsumed: Set; + #allProvided: Set; private constructor(nodes: Array>) { this.#nodes = nodes; - this.#allProduced = new Set(); - this.#allConsumed = new Set(); + this.#allProvided = new Set(); for (const node of this.#nodes.values()) { - for (const produced of node.produces) { - this.#allProduced.add(produced); - } - for (const consumed of node.consumes) { - this.#allConsumed.add(consumed); + for (const produced of node.provides) { + this.#allProvided.add(produced); } } } @@ -84,7 +79,7 @@ export class DependencyTree { const unsatisfiedDependencies = []; for (const node of this.#nodes.values()) { const unsatisfied = Array.from(node.consumes).filter( - id => !this.#allProduced.has(id), + id => !this.#allProvided.has(id), ); if (unsatisfied.length > 0) { unsatisfiedDependencies.push({ value: node.value, unsatisfied }); @@ -107,7 +102,7 @@ export class DependencyTree { continue; } visited.add(node); - for (const produced of node.produces) { + for (const produced of node.provides) { const consumerNodes = this.#nodes.filter(other => other.consumes.has(produced), ); @@ -128,7 +123,7 @@ export class DependencyTree { async parallelTopologicalTraversal( fn: (value: T) => Promise, ): Promise { - const allProduced = this.#allProduced; + const allProvided = this.#allProvided; const producedSoFar = new Set(); const waiting = new Set(this.#nodes.values()); const visited = new Set>(); @@ -143,7 +138,7 @@ export class DependencyTree { for (const node of waiting) { let ready = true; for (const consumed of node.consumes) { - if (allProduced.has(consumed) && !producedSoFar.has(consumed)) { + if (allProvided.has(consumed) && !producedSoFar.has(consumed)) { ready = false; continue; } @@ -173,7 +168,7 @@ export class DependencyTree { const result = await fn(node.value); results.push(result); - node.produces.forEach(produced => producedSoFar.add(produced)); + node.provides.forEach(produced => producedSoFar.add(produced)); inFlight -= 1; await processMoreNodes(); } diff --git a/packages/backend-app-api/src/wiring/BackendInitializer.ts b/packages/backend-app-api/src/wiring/BackendInitializer.ts index 1061ad8944..fd5ced9158 100644 --- a/packages/backend-app-api/src/wiring/BackendInitializer.ts +++ b/packages/backend-app-api/src/wiring/BackendInitializer.ts @@ -220,7 +220,7 @@ export class BackendInitializer { // If a modules provides extension point A we want it to be initialized AFTER all modules // that depend on extension point A, so that they can provide their extensions. consumes: Array.from(moduleInit.provides).map(p => p.id), - produces: Array.from(moduleInit.consumes).map(c => c.id), + provides: Array.from(moduleInit.consumes).map(c => c.id), })), ); const circular = tree.detectCircularDependency(); From afe320acecb3196cc97196fa93527dd41910597d Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Fri, 11 Aug 2023 14:35:16 +0200 Subject: [PATCH 215/372] backend-app-api: rename DependencyTree -> DependencyGraph Signed-off-by: Patrik Oldsberg --- ...cyTree.test.ts => DependencyGraph.test.ts} | 42 +++++++++---------- .../{DependencyTree.ts => DependencyGraph.ts} | 8 ++-- .../src/wiring/BackendInitializer.ts | 4 +- 3 files changed, 27 insertions(+), 27 deletions(-) rename packages/backend-app-api/src/lib/{DependencyTree.test.ts => DependencyGraph.test.ts} (88%) rename packages/backend-app-api/src/lib/{DependencyTree.ts => DependencyGraph.ts} (97%) diff --git a/packages/backend-app-api/src/lib/DependencyTree.test.ts b/packages/backend-app-api/src/lib/DependencyGraph.test.ts similarity index 88% rename from packages/backend-app-api/src/lib/DependencyTree.test.ts rename to packages/backend-app-api/src/lib/DependencyGraph.test.ts index 70591aa295..6720adb5e6 100644 --- a/packages/backend-app-api/src/lib/DependencyTree.test.ts +++ b/packages/backend-app-api/src/lib/DependencyGraph.test.ts @@ -14,11 +14,11 @@ * limitations under the License. */ -import { DependencyTree } from './DependencyTree'; +import { DependencyGraph } from './DependencyGraph'; -describe('DependencyTree', () => { +describe('DependencyGraph', () => { it('should be empty', async () => { - const empty = DependencyTree.fromMap({}); + const empty = DependencyGraph.fromMap({}); expect(empty.findUnsatisfiedDeps()).toEqual([]); expect(empty.detectCircularDependency()).toBeUndefined(); await expect( @@ -28,7 +28,7 @@ describe('DependencyTree', () => { it('should detect circular dependencies', () => { expect( - DependencyTree.fromMap({ + DependencyGraph.fromMap({ 1: {}, 2: {}, 3: {}, @@ -37,7 +37,7 @@ describe('DependencyTree', () => { ).toBeUndefined(); expect( - DependencyTree.fromMap({ + DependencyGraph.fromMap({ 1: { provides: ['a'] }, 2: { consumes: ['a'], provides: ['b', 'c'] }, 3: { consumes: ['b'] }, @@ -46,20 +46,20 @@ describe('DependencyTree', () => { ).toBeUndefined(); expect( - DependencyTree.fromMap({ + DependencyGraph.fromMap({ 1: { provides: ['a'], consumes: ['a'] }, }).detectCircularDependency(), ).toEqual(['1', '1']); expect( - DependencyTree.fromMap({ + DependencyGraph.fromMap({ 1: { provides: ['a'], consumes: ['b'] }, 2: { provides: ['b'], consumes: ['a'] }, }).detectCircularDependency(), ).toEqual(['1', '2', '1']); expect( - DependencyTree.fromMap({ + DependencyGraph.fromMap({ 1: { provides: ['a'] }, 2: { provides: ['b'], consumes: ['a', 'e'] }, 3: { provides: ['c'], consumes: ['b'] }, @@ -70,7 +70,7 @@ describe('DependencyTree', () => { it('should find unsatisfied dependencies', () => { expect( - DependencyTree.fromMap({ + DependencyGraph.fromMap({ 1: {}, 2: {}, 3: {}, @@ -79,7 +79,7 @@ describe('DependencyTree', () => { ).toEqual([]); expect( - DependencyTree.fromMap({ + DependencyGraph.fromMap({ 1: { provides: ['a'] }, 2: { consumes: ['a'], provides: ['b', 'c'] }, 3: { consumes: ['b'] }, @@ -88,20 +88,20 @@ describe('DependencyTree', () => { ).toEqual([]); expect( - DependencyTree.fromMap({ + DependencyGraph.fromMap({ 1: { consumes: ['a'] }, }).findUnsatisfiedDeps(), ).toEqual([{ value: '1', unsatisfied: ['a'] }]); expect( - DependencyTree.fromMap({ + DependencyGraph.fromMap({ 1: { provides: ['a'], consumes: ['b'] }, 2: { provides: ['b'], consumes: ['a', 'd', 'e'] }, }).findUnsatisfiedDeps(), ).toEqual([{ value: '2', unsatisfied: ['d', 'e'] }]); expect( - DependencyTree.fromMap({ + DependencyGraph.fromMap({ 1: { provides: ['a'] }, 2: { provides: ['b'], consumes: ['a', 'd', 'e'] }, 3: { provides: [], consumes: ['b'] }, @@ -115,7 +115,7 @@ describe('DependencyTree', () => { it('should traverse dependencies in topological order', async () => { await expect( - DependencyTree.fromMap({ + DependencyGraph.fromMap({ 1: {}, 2: {}, 3: {}, @@ -124,7 +124,7 @@ describe('DependencyTree', () => { ).resolves.toEqual(['1', '2', '3', '4']); await expect( - DependencyTree.fromMap({ + DependencyGraph.fromMap({ 1: { provides: ['a'] }, 2: { consumes: ['a'], provides: ['b', 'c'] }, 3: { consumes: ['b'] }, @@ -133,7 +133,7 @@ describe('DependencyTree', () => { ).resolves.toEqual(['1', '2', '3', '4']); await expect( - DependencyTree.fromMap({ + DependencyGraph.fromMap({ 1: { consumes: ['c'] }, 2: { provides: ['c'], consumes: ['b'] }, 3: { provides: ['b'], consumes: ['a'] }, @@ -142,7 +142,7 @@ describe('DependencyTree', () => { ).resolves.toEqual(['4', '3', '2', '1']); await expect( - DependencyTree.fromMap({ + DependencyGraph.fromMap({ 1: { provides: ['a'] }, 2: { provides: ['b'], consumes: ['a'] }, 3: { provides: ['c'], consumes: ['a'] }, @@ -153,7 +153,7 @@ describe('DependencyTree', () => { // Same as above, but with 2 being delayed await expect( - DependencyTree.fromMap({ + DependencyGraph.fromMap({ 1: { provides: ['a'] }, 2: { provides: ['b'], consumes: ['a'] }, 3: { provides: ['c'], consumes: ['a'] }, @@ -169,18 +169,18 @@ describe('DependencyTree', () => { ).resolves.toEqual(['1', '3', '5', '2', '4']); await expect( - DependencyTree.fromMap({ + DependencyGraph.fromMap({ 1: { provides: ['a'], consumes: ['a'] }, }).parallelTopologicalTraversal(async id => id), ).rejects.toThrow('Circular dependency detected'); await expect( - DependencyTree.fromMap({ + DependencyGraph.fromMap({ 1: { provides: ['a'], consumes: ['b'] }, 2: { provides: ['b'], consumes: ['a'] }, }).parallelTopologicalTraversal(async id => id), ).rejects.toThrow('Circular dependency detected'); await expect( - DependencyTree.fromMap({ + DependencyGraph.fromMap({ 1: { provides: ['a'] }, 2: { provides: ['c'], consumes: ['a', 'b'] }, 3: { provides: ['b'], consumes: ['a', 'c'] }, diff --git a/packages/backend-app-api/src/lib/DependencyTree.ts b/packages/backend-app-api/src/lib/DependencyGraph.ts similarity index 97% rename from packages/backend-app-api/src/lib/DependencyTree.ts rename to packages/backend-app-api/src/lib/DependencyGraph.ts index 51567524d8..cafdbccc00 100644 --- a/packages/backend-app-api/src/lib/DependencyTree.ts +++ b/packages/backend-app-api/src/lib/DependencyGraph.ts @@ -38,10 +38,10 @@ class Node { } /** @internal */ -export class DependencyTree { +export class DependencyGraph { static fromMap( nodes: Record, 'value'>>, - ): DependencyTree { + ): DependencyGraph { return this.fromIterable( Object.entries(nodes).map(([key, node]) => ({ value: String(key), @@ -52,13 +52,13 @@ export class DependencyTree { static fromIterable( nodeInputs: Iterable>, - ): DependencyTree { + ): DependencyGraph { const nodes = new Array>(); for (const nodeInput of nodeInputs) { nodes.push(Node.from(nodeInput)); } - return new DependencyTree(nodes); + return new DependencyGraph(nodes); } #nodes: Array>; diff --git a/packages/backend-app-api/src/wiring/BackendInitializer.ts b/packages/backend-app-api/src/wiring/BackendInitializer.ts index fd5ced9158..06201dfb2b 100644 --- a/packages/backend-app-api/src/wiring/BackendInitializer.ts +++ b/packages/backend-app-api/src/wiring/BackendInitializer.ts @@ -28,7 +28,7 @@ import { EnumerableServiceHolder, ServiceOrExtensionPoint } from './types'; import { InternalBackendFeature } from '@backstage/backend-plugin-api/src/wiring/types'; import { ForwardedError, ConflictError } from '@backstage/errors'; import { featureDiscoveryServiceRef } from '@backstage/backend-plugin-api/alpha'; -import { DependencyTree } from '../lib/DependencyTree'; +import { DependencyGraph } from '../lib/DependencyGraph'; export interface BackendRegisterInit { consumes: Set; @@ -213,7 +213,7 @@ export class BackendInitializer { // Modules are initialized before plugins, so that they can provide extension to the plugin const modules = moduleInits.get(pluginId); if (modules) { - const tree = DependencyTree.fromIterable( + const tree = DependencyGraph.fromIterable( Array.from(modules).map(([moduleId, moduleInit]) => ({ value: { moduleId, moduleInit }, // Relationships are reversed at this point since we're only interested in the extension points. From b7e0362496e7b335ea57773d3f9aefdb90ee851a Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Fri, 11 Aug 2023 14:46:34 +0200 Subject: [PATCH 216/372] backend-app-api: some docs for DependencyGraph Signed-off-by: Patrik Oldsberg --- .../src/lib/DependencyGraph.ts | 21 +++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/packages/backend-app-api/src/lib/DependencyGraph.ts b/packages/backend-app-api/src/lib/DependencyGraph.ts index cafdbccc00..8fd679f555 100644 --- a/packages/backend-app-api/src/lib/DependencyGraph.ts +++ b/packages/backend-app-api/src/lib/DependencyGraph.ts @@ -37,7 +37,10 @@ class Node { ) {} } -/** @internal */ +/** + * Internal helper to help validate and traverse a dependency graph. + * @internal + */ export class DependencyGraph { static fromMap( nodes: Record, 'value'>>, @@ -75,6 +78,7 @@ export class DependencyGraph { } } + // Find all nodes that consume dependencies that are not provided by any other node findUnsatisfiedDeps(): Array<{ value: T; unsatisfied: string[] }> { const unsatisfiedDependencies = []; for (const node of this.#nodes.values()) { @@ -88,6 +92,8 @@ export class DependencyGraph { return unsatisfiedDependencies; } + // Detect circular dependencies within the graph, returning the path of nodes that + // form a cycle, with the same node as the first and last element of the array. detectCircularDependency(): T[] | undefined { for (const startNode of this.#nodes) { const visited = new Set>(); @@ -120,6 +126,15 @@ export class DependencyGraph { return undefined; } + /** + * Traverses the dependency graph in topological order, calling the provided + * function for each node and waiting for it to resolve. + * + * The nodes are traversed in parallel, but in such a way that no node is + * visited before all of its dependencies. + * + * Dependencies of nodes that are not produced by any other nodes will be ignored. + */ async parallelTopologicalTraversal( fn: (value: T) => Promise, ): Promise { @@ -128,8 +143,9 @@ export class DependencyGraph { const waiting = new Set(this.#nodes.values()); const visited = new Set>(); const results = new Array(); - let inFlight = 0; + let inFlight = 0; // Keep track of how many callbacks are in flight, so that we know if we got stuck + // Find all nodes that have no dependencies that have not already been produced by visited nodes async function processMoreNodes() { if (waiting.size === 0) { return; @@ -161,6 +177,7 @@ export class DependencyGraph { await Promise.all(nodesToProcess.map(processNode)); } + // Process an individual node, and then add its produced dependencies to the set of available products async function processNode(node: Node) { visited.add(node); inFlight += 1; From e7a5d546ff3e80c538a55fcaeaf9674c60240d5e Mon Sep 17 00:00:00 2001 From: Gaurav Pandey <36168816+grvpandey11@users.noreply.github.com> Date: Fri, 11 Aug 2023 16:09:03 +0200 Subject: [PATCH 217/372] Update accept.txt Signed-off-by: Gaurav Pandey <36168816+grvpandey11@users.noreply.github.com> --- .github/vale/Vocab/Backstage/accept.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/vale/Vocab/Backstage/accept.txt b/.github/vale/Vocab/Backstage/accept.txt index 7501010382..402444f63f 100644 --- a/.github/vale/Vocab/Backstage/accept.txt +++ b/.github/vale/Vocab/Backstage/accept.txt @@ -127,6 +127,7 @@ Flightcontrol flightcontrol Francesco Frontside +Gaurav gerrit Gerrit gitbeaker @@ -259,6 +260,7 @@ padding paddings pagerduty pageview +Pandey parallelization parseable Patrik From ac8d9dc29680caac0de2098a91f83886f632ee92 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Fri, 11 Aug 2023 16:02:06 +0200 Subject: [PATCH 218/372] auth-node: add missing @types/passport dep Signed-off-by: Patrik Oldsberg --- plugins/auth-node/package.json | 1 + yarn.lock | 1 + 2 files changed, 2 insertions(+) diff --git a/plugins/auth-node/package.json b/plugins/auth-node/package.json index 5e3ddd5a20..07573955cb 100644 --- a/plugins/auth-node/package.json +++ b/plugins/auth-node/package.json @@ -36,6 +36,7 @@ "@backstage/errors": "workspace:^", "@backstage/types": "workspace:^", "@types/express": "*", + "@types/passport": "^1.0.3", "express": "^4.17.1", "jose": "^4.6.0", "lodash": "^4.17.21", diff --git a/yarn.lock b/yarn.lock index 2dd5f941c2..ea50e46bc1 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4691,6 +4691,7 @@ __metadata: "@backstage/errors": "workspace:^" "@backstage/types": "workspace:^" "@types/express": "*" + "@types/passport": ^1.0.3 cookie-parser: ^1.4.6 express: ^4.17.1 express-promise-router: ^4.1.1 From 296c818ddf1206b0f1565d97159bf146b42e3a73 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Fri, 11 Aug 2023 16:19:13 +0200 Subject: [PATCH 219/372] auth-node: move parseWebPessageResponse to test util + fix error value handling Signed-off-by: Patrik Oldsberg --- .../__testUtils__/parseWebMessageResponse.ts | 28 ++++++++++++++++ .../src/flow/sendWebMessageResponse.test.ts | 33 ++++++++++++++----- .../src/flow/sendWebMessageResponse.ts | 8 ++++- .../oauth/createOAuthRouteHandlers.test.ts | 13 +------- 4 files changed, 60 insertions(+), 22 deletions(-) create mode 100644 plugins/auth-node/src/flow/__testUtils__/parseWebMessageResponse.ts diff --git a/plugins/auth-node/src/flow/__testUtils__/parseWebMessageResponse.ts b/plugins/auth-node/src/flow/__testUtils__/parseWebMessageResponse.ts new file mode 100644 index 0000000000..eda8469ac6 --- /dev/null +++ b/plugins/auth-node/src/flow/__testUtils__/parseWebMessageResponse.ts @@ -0,0 +1,28 @@ +/* + * 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 { WebMessageResponse } from '../sendWebMessageResponse'; + +export function parseWebMessageResponse(text: string): { + response: WebMessageResponse; + origin: string; +} { + const [response, origin] = text.matchAll(/decodeURIComponent\('(.+?)'\)/g); + return { + response: JSON.parse(decodeURIComponent(response[1])), + origin: decodeURIComponent(origin[1]), + }; +} diff --git a/plugins/auth-node/src/flow/sendWebMessageResponse.test.ts b/plugins/auth-node/src/flow/sendWebMessageResponse.test.ts index fd706159ba..cc192638f2 100644 --- a/plugins/auth-node/src/flow/sendWebMessageResponse.test.ts +++ b/plugins/auth-node/src/flow/sendWebMessageResponse.test.ts @@ -20,6 +20,7 @@ import { sendWebMessageResponse, type WebMessageResponse, } from './sendWebMessageResponse'; +import { parseWebMessageResponse } from './__testUtils__/parseWebMessageResponse'; describe('oauth helpers', () => { describe('safelyEncodeURIComponent', () => { @@ -78,7 +79,12 @@ describe('oauth helpers', () => { type: 'authorization_response', error: new Error('Unknown error occurred'), }; - const encoded = safelyEncodeURIComponent(JSON.stringify(data)); + const encoded = safelyEncodeURIComponent( + JSON.stringify({ + type: 'authorization_response', + error: { name: 'Error', message: 'Unknown error occurred' }, + }), + ); sendWebMessageResponse(mockResponse, appOrigin, data); expect(mockResponse.setHeader).toHaveBeenCalledTimes(3); @@ -122,20 +128,29 @@ describe('oauth helpers', () => { }, }; sendWebMessageResponse(mockResponse, appOrigin, data); - expect(responseBody.match(/.postMessage\(/g)).toHaveLength(2); - expect( - responseBody.match(/.postMessage\([a-zA-z.()]*, \'\*\'\)/g), - ).toHaveLength(1); + expect(parseWebMessageResponse(responseBody).response).toEqual({ + type: 'authorization_response', + response: { + providerInfo: expect.any(Object), + profile: { + email: 'foo@bar.com', + }, + backstageIdentity: expect.any(Object), + }, + }); const errData: WebMessageResponse = { type: 'authorization_response', error: new Error('Unknown error occurred'), }; sendWebMessageResponse(mockResponse, appOrigin, errData); - expect(responseBody.match(/.postMessage\(/g)).toHaveLength(2); - expect( - responseBody.match(/.postMessage\([a-zA-z.()]*, \'\*\'\)/g), - ).toHaveLength(1); + expect(parseWebMessageResponse(responseBody).response).toEqual({ + type: 'authorization_response', + error: { + name: 'Error', + message: 'Unknown error occurred', + }, + }); }); it('handles single quotes and unicode chars safely', () => { diff --git a/plugins/auth-node/src/flow/sendWebMessageResponse.ts b/plugins/auth-node/src/flow/sendWebMessageResponse.ts index 7bb658bd11..4c7a85854d 100644 --- a/plugins/auth-node/src/flow/sendWebMessageResponse.ts +++ b/plugins/auth-node/src/flow/sendWebMessageResponse.ts @@ -17,6 +17,7 @@ import { Response } from 'express'; import crypto from 'crypto'; import { ClientAuthResponse } from '../types'; +import { serializeError } from '@backstage/errors'; /** * Payload sent as a post message after the auth request is complete. @@ -47,7 +48,12 @@ export function sendWebMessageResponse( appOrigin: string, response: WebMessageResponse, ): void { - const jsonData = JSON.stringify(response); + const jsonData = JSON.stringify(response, (_, value) => { + if (value instanceof Error) { + return serializeError(value); + } + return value; + }); const base64Data = safelyEncodeURIComponent(jsonData); const base64Origin = safelyEncodeURIComponent(appOrigin); diff --git a/plugins/auth-node/src/oauth/createOAuthRouteHandlers.test.ts b/plugins/auth-node/src/oauth/createOAuthRouteHandlers.test.ts index 926d08fa77..2573d95ea1 100644 --- a/plugins/auth-node/src/oauth/createOAuthRouteHandlers.test.ts +++ b/plugins/auth-node/src/oauth/createOAuthRouteHandlers.test.ts @@ -24,8 +24,8 @@ import { createOAuthRouteHandlers } from './createOAuthRouteHandlers'; import { OAuthAuthenticator } from './types'; import { errorHandler } from '@backstage/backend-common'; import { encodeOAuthState, OAuthState } from './state'; -import { WebMessageResponse } from '../flow'; import { PassportProfile } from '../passport'; +import { parseWebMessageResponse } from '../flow/__testUtils__/parseWebMessageResponse'; const mockAuthenticator: jest.Mocked> = { initialize: jest.fn(_r => ({ ctx: 'authenticator' })), @@ -109,17 +109,6 @@ function getGrantedScopesCookie(test: SuperAgentTest) { }); } -function parseWebMessageResponse(text: string): { - response: WebMessageResponse; - origin: string; -} { - const [response, origin] = text.matchAll(/decodeURIComponent\('(.+?)'\)/g); - return { - response: JSON.parse(decodeURIComponent(response[1])), - origin: decodeURIComponent(origin[1]), - }; -} - describe('createOAuthRouteHandlers', () => { afterEach(() => jest.clearAllMocks()); From b8515ae3b6e4bba87d8ee2cac399d53a2d764bab Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Fri, 11 Aug 2023 16:22:37 +0200 Subject: [PATCH 220/372] auth-node: fix OAuthState doc Signed-off-by: Patrik Oldsberg --- plugins/auth-node/api-report.md | 2 +- plugins/auth-node/src/oauth/state.ts | 7 ++++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/plugins/auth-node/api-report.md b/plugins/auth-node/api-report.md index 4a384834d6..a7fc9b1612 100644 --- a/plugins/auth-node/api-report.md +++ b/plugins/auth-node/api-report.md @@ -388,7 +388,7 @@ export interface OAuthSession { tokenType: string; } -// @public (undocumented) +// @public export type OAuthState = { nonce: string; env: string; diff --git a/plugins/auth-node/src/oauth/state.ts b/plugins/auth-node/src/oauth/state.ts index c5b96414fa..fc747d08a5 100644 --- a/plugins/auth-node/src/oauth/state.ts +++ b/plugins/auth-node/src/oauth/state.ts @@ -18,10 +18,11 @@ import pickBy from 'lodash/pickBy'; import { Request } from 'express'; import { NotAllowedError } from '@backstage/errors'; -/** @public */ +/** + * A type for the serialized value in the `state` parameter of the OAuth authorization flow + * @public + */ export type OAuthState = { - /* A type for the serialized value in the `state` parameter of the OAuth authorization flow - */ nonce: string; env: string; origin?: string; From 02ea2388d67f7b3dee08d6a5b72fa4ca7bea3886 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Fri, 11 Aug 2023 16:26:25 +0200 Subject: [PATCH 221/372] auth-node: avoid atob Signed-off-by: Patrik Oldsberg --- plugins/auth-node/src/passport/PassportHelpers.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/plugins/auth-node/src/passport/PassportHelpers.ts b/plugins/auth-node/src/passport/PassportHelpers.ts index d24163bf34..6c13523811 100644 --- a/plugins/auth-node/src/passport/PassportHelpers.ts +++ b/plugins/auth-node/src/passport/PassportHelpers.ts @@ -37,7 +37,10 @@ function decodeJwtPayload(token: string): Record { let payload: unknown; try { payload = JSON.parse( - atob(payloadStr.replace(/-/g, '+').replace(/_/g, '/')), + Buffer.from( + payloadStr.replace(/-/g, '+').replace(/_/g, '/'), + 'base64', + ).toString('utf8'), ); } catch (e) { throw new Error('Invalid JWT token'); From f5eff800fd8eebf5156e8a6137562866ed2e7e38 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Fri, 11 Aug 2023 16:27:24 +0200 Subject: [PATCH 222/372] auth-node: tweaked some error types Signed-off-by: Patrik Oldsberg --- plugins/auth-node/src/proxy/createProxyRouteHandlers.ts | 5 +++-- plugins/auth-node/src/sign-in/createSignInResolverFactory.ts | 3 ++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/plugins/auth-node/src/proxy/createProxyRouteHandlers.ts b/plugins/auth-node/src/proxy/createProxyRouteHandlers.ts index 10ad62d2bf..521fe39288 100644 --- a/plugins/auth-node/src/proxy/createProxyRouteHandlers.ts +++ b/plugins/auth-node/src/proxy/createProxyRouteHandlers.ts @@ -25,6 +25,7 @@ import { } from '../types'; import { ProxyAuthenticator } from './types'; import { prepareBackstageIdentityResponse } from '../identity'; +import { NotImplementedError } from '@backstage/errors'; /** @public */ export interface ProxyAuthRouteHandlersOptions { @@ -47,11 +48,11 @@ export function createProxyAuthRouteHandlers( return { async start(): Promise { - throw new Error('Not implemented'); + throw new NotImplementedError('Not implemented'); }, async frameHandler(): Promise { - throw new Error('Not implemented'); + throw new NotImplementedError('Not implemented'); }, async refresh(this: never, req: Request, res: Response): Promise { diff --git a/plugins/auth-node/src/sign-in/createSignInResolverFactory.ts b/plugins/auth-node/src/sign-in/createSignInResolverFactory.ts index 6379eafd25..0632b704c3 100644 --- a/plugins/auth-node/src/sign-in/createSignInResolverFactory.ts +++ b/plugins/auth-node/src/sign-in/createSignInResolverFactory.ts @@ -18,6 +18,7 @@ import { ZodSchema, ZodTypeDef } from 'zod'; import { SignInResolver } from '../types'; import zodToJsonSchema from 'zod-to-json-schema'; import { JsonObject } from '@backstage/types'; +import { InputError } from '@backstage/errors'; /** @public */ export interface SignInResolverFactory { @@ -55,7 +56,7 @@ export function createSignInResolverFactory< if (!optionsSchema) { return (resolverOptions?: TOptionsInput) => { if (resolverOptions) { - throw new Error('sign-in resolver does not accept options'); + throw new InputError('sign-in resolver does not accept options'); } return options.create(undefined as TOptionsOutput); }; From ee28fa94daef3bf47ee89a63f9501b8a08c76c16 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Fri, 11 Aug 2023 16:54:37 +0200 Subject: [PATCH 223/372] auth-node: minor review fixes Signed-off-by: Patrik Oldsberg --- .../auth-backend-module-gcp-iap-provider/config.d.ts | 10 ++++++++++ .../src/sign-in/readDeclarativeSignInResolver.ts | 6 ++++-- plugins/auth-node/src/types.ts | 6 +++++- 3 files changed, 19 insertions(+), 3 deletions(-) diff --git a/plugins/auth-backend-module-gcp-iap-provider/config.d.ts b/plugins/auth-backend-module-gcp-iap-provider/config.d.ts index c8460470af..945378ada6 100644 --- a/plugins/auth-backend-module-gcp-iap-provider/config.d.ts +++ b/plugins/auth-backend-module-gcp-iap-provider/config.d.ts @@ -17,10 +17,20 @@ export interface Config { auth?: { providers?: { + /** + * Configuration for the Google Cloud Platform Identity-Aware Proxy (IAP) auth provider. + */ gcpIap?: { [authEnv: string]: { + /** + * The audience to use when validating incoming JWT tokens. + * See https://backstage.io/docs/auth/google/gcp-iap-auth + */ audience: string; + /** + * The name of the header to read the JWT token from, defaults to `'x-goog-iap-jwt-assertion'`. + */ jwtHeader?: string; }; }; diff --git a/plugins/auth-node/src/sign-in/readDeclarativeSignInResolver.ts b/plugins/auth-node/src/sign-in/readDeclarativeSignInResolver.ts index 31c4dd92a9..82b4918326 100644 --- a/plugins/auth-node/src/sign-in/readDeclarativeSignInResolver.ts +++ b/plugins/auth-node/src/sign-in/readDeclarativeSignInResolver.ts @@ -45,7 +45,9 @@ export function readDeclarativeSignInResolver( const { resolver: _ignored, ...resolverOptions } = resolverConfig.get(); - return resolver(resolverOptions); + return resolver( + Object.keys(resolverOptions).length > 0 ? resolverOptions : undefined, + ); }) ?? []; if (resolvers.length === 0) { @@ -53,7 +55,7 @@ export function readDeclarativeSignInResolver( } return async (profile, context) => { - for (const resolver of resolvers ?? []) { + for (const resolver of resolvers) { try { return await resolver(profile, context); } catch (error) { diff --git a/plugins/auth-node/src/types.ts b/plugins/auth-node/src/types.ts index ccdfb0c39b..d52abf00fb 100644 --- a/plugins/auth-node/src/types.ts +++ b/plugins/auth-node/src/types.ts @@ -106,7 +106,7 @@ export type AuthResolverCatalogUserQuery = }; /** - * Parameters used to issue new ID Tokens + * Parameters used to issue new Backstage Tokens * * @public */ @@ -199,6 +199,10 @@ export interface AuthProviderRouteHandlers { * (Optional) If the auth provider supports refresh tokens then this method handles * requests to get a new access token. * + * Other types of providers may also use this method to implement its own logic to create new sessions + * upon request. For example, this can be used to create a new session for a provider that handles requests + * from an authenticating proxy. + * * Request * - to contain a refresh token cookie and scope (Optional) query parameter. * Response From 1fdc5ffd7b0253d97a6cd51bae76881c3ed73c65 Mon Sep 17 00:00:00 2001 From: Gaurav Pandey <36168816+grvpandey11@users.noreply.github.com> Date: Fri, 11 Aug 2023 17:14:30 +0200 Subject: [PATCH 224/372] Delete Ms-Teams.png Signed-off-by: Gaurav Pandey <36168816+grvpandey11@users.noreply.github.com> --- microsite/static/img/Ms-Teams.png | Bin 10197 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 microsite/static/img/Ms-Teams.png diff --git a/microsite/static/img/Ms-Teams.png b/microsite/static/img/Ms-Teams.png deleted file mode 100644 index a212e5977ea5e318c15e8db3dd265ce53705e973..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10197 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 H*028;p;fQZ From 6fa0ef1a82439be1de258fe1f7265fa2bdfe6116 Mon Sep 17 00:00:00 2001 From: Gaurav Pandey <36168816+grvpandey11@users.noreply.github.com> Date: Fri, 11 Aug 2023 17:17:40 +0200 Subject: [PATCH 225/372] Removed Image path Signed-off-by: Gaurav Pandey <36168816+grvpandey11@users.noreply.github.com> --- microsite/data/plugins/scaffolder-backend-ms-teams.yaml | 1 - 1 file changed, 1 deletion(-) diff --git a/microsite/data/plugins/scaffolder-backend-ms-teams.yaml b/microsite/data/plugins/scaffolder-backend-ms-teams.yaml index 99233b10ee..6d16b1300b 100644 --- a/microsite/data/plugins/scaffolder-backend-ms-teams.yaml +++ b/microsite/data/plugins/scaffolder-backend-ms-teams.yaml @@ -5,6 +5,5 @@ authorUrl: https://github.com/grvpandey11 category: Scaffolder description: Interact with Microsoft Teams from Scaffolder templates documentation: https://github.com/grvpandey11/backstage-plugin-scaffolder-backend-module-ms-teams/tree/main#readme -iconUrl: img/Ms-Teams.png npmPackageName: '@grvpandey11/backstage-plugin-scaffolder-backend-module-ms-teams' addedDate: '2023-08-11' From c49785f00cab0d607fe58ac1a73c2349313d2f5e Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Fri, 11 Aug 2023 17:22:16 +0200 Subject: [PATCH 226/372] backend-app-api: disallow required service factory options Signed-off-by: Patrik Oldsberg --- .changeset/eighty-swans-sip.md | 5 + .../src/wiring/ServiceRegistry.ts | 4 +- packages/backend-plugin-api/api-report.md | 29 ------ .../src/services/system/types.test.ts | 99 ++----------------- .../src/services/system/types.ts | 33 ------- 5 files changed, 16 insertions(+), 154 deletions(-) create mode 100644 .changeset/eighty-swans-sip.md diff --git a/.changeset/eighty-swans-sip.md b/.changeset/eighty-swans-sip.md new file mode 100644 index 0000000000..240e68c69c --- /dev/null +++ b/.changeset/eighty-swans-sip.md @@ -0,0 +1,5 @@ +--- +'@backstage/backend-plugin-api': minor +--- + +**BREAKING**: It is no longer possible to declare options as being required with `createServiceFactory`. diff --git a/packages/backend-app-api/src/wiring/ServiceRegistry.ts b/packages/backend-app-api/src/wiring/ServiceRegistry.ts index b5b55f67cf..61f95ff4a4 100644 --- a/packages/backend-app-api/src/wiring/ServiceRegistry.ts +++ b/packages/backend-app-api/src/wiring/ServiceRegistry.ts @@ -49,10 +49,10 @@ function toInternalServiceFactory( } const pluginMetadataServiceFactory = createServiceFactory( - (options: { pluginId: string }) => ({ + (options?: { pluginId: string }) => ({ service: coreServices.pluginMetadata, deps: {}, - factory: async () => ({ getId: () => options.pluginId }), + factory: async () => ({ getId: () => options?.pluginId! }), }), ); diff --git a/packages/backend-plugin-api/api-report.md b/packages/backend-plugin-api/api-report.md index a1ae6284c6..6dbbee1936 100644 --- a/packages/backend-plugin-api/api-report.md +++ b/packages/backend-plugin-api/api-report.md @@ -152,18 +152,6 @@ export function createServiceFactory< config: (options?: TOpts) => RootServiceFactoryConfig, ): (options?: TOpts) => ServiceFactory; -// @public -export function createServiceFactory< - TService, - TImpl extends TService, - TDeps extends { - [name in string]: ServiceRef; - }, - TOpts extends object | undefined = undefined, ->( - config: (options: TOpts) => RootServiceFactoryConfig, -): (options: TOpts) => ServiceFactory; - // @public export function createServiceFactory< TService, @@ -192,23 +180,6 @@ export function createServiceFactory< ) => PluginServiceFactoryConfig, ): (options?: TOpts) => ServiceFactory; -// @public -export function createServiceFactory< - TService, - TImpl extends TService, - TDeps extends { - [name in string]: ServiceRef; - }, - TContext = undefined, - TOpts extends object | undefined = undefined, ->( - config: - | PluginServiceFactoryConfig - | (( - options: TOpts, - ) => PluginServiceFactoryConfig), -): (options: TOpts) => ServiceFactory; - // @public export function createServiceRef( config: ServiceRefConfig, diff --git a/packages/backend-plugin-api/src/services/system/types.test.ts b/packages/backend-plugin-api/src/services/system/types.test.ts index d3e9b9dd4e..4d0432505e 100644 --- a/packages/backend-plugin-api/src/services/system/types.test.ts +++ b/packages/backend-plugin-api/src/services/system/types.test.ts @@ -26,7 +26,7 @@ interface TestOptions { function unused(..._any: any[]) {} describe('createServiceFactory', () => { - it('should create a sync factory with no options', () => { + it('should create a sync factory', () => { const metaFactory = createServiceFactory({ service: ref, deps: {}, @@ -51,7 +51,7 @@ describe('createServiceFactory', () => { metaFactory(); }); - it('should create a sync root factory with no options', () => { + it('should create a sync root factory', () => { const metaFactory = createServiceFactory({ service: rootDep, deps: {}, @@ -75,7 +75,7 @@ describe('createServiceFactory', () => { metaFactory(); }); - it('should create a factory with no options', () => { + it('should create a factory', () => { const metaFactory = createServiceFactory({ service: ref, deps: {}, @@ -100,7 +100,7 @@ describe('createServiceFactory', () => { metaFactory(); }); - it('should create a factory with optional options', () => { + it('should create a factory with options', () => { const metaFactory = createServiceFactory((_opts?: { x: number }) => ({ service: ref, deps: {}, @@ -124,7 +124,8 @@ describe('createServiceFactory', () => { metaFactory(); }); - it('should create a factory with required options', () => { + it('should not be allowed to require options', () => { + // @ts-expect-error const metaFactory = createServiceFactory((_opts: { x: number }) => ({ service: ref, deps: {}, @@ -134,23 +135,9 @@ describe('createServiceFactory', () => { }, })); expect(metaFactory).toEqual(expect.any(Function)); - - // @ts-expect-error - metaFactory('string'); - // @ts-expect-error - metaFactory({}); - metaFactory({ x: 1 }); - // @ts-expect-error - metaFactory({ x: 1, y: 2 }); - // @ts-expect-error - metaFactory(null); - // @ts-expect-error - metaFactory(undefined); - // @ts-expect-error - metaFactory(); }); - it('should create a factory with optional options as interface', () => { + it('should create a factory with options as interface', () => { const metaFactory = createServiceFactory((_opts?: TestOptions) => ({ service: ref, deps: {}, @@ -174,32 +161,6 @@ describe('createServiceFactory', () => { metaFactory(); }); - it('should create a factory with required options as interface', () => { - const metaFactory = createServiceFactory((_opts: TestOptions) => ({ - service: ref, - deps: {}, - async createRootContext() {}, - async factory() { - return 'x'; - }, - })); - expect(metaFactory).toEqual(expect.any(Function)); - - // @ts-expect-error - metaFactory('string'); - // @ts-expect-error - metaFactory({}); - metaFactory({ x: 1 }); - // @ts-expect-error - metaFactory({ x: 1, y: 2 }); - // @ts-expect-error - metaFactory(null); - // @ts-expect-error - metaFactory(undefined); - // @ts-expect-error - metaFactory(); - }); - it('should create root scoped factory with dependencies', () => { const metaFactory = createServiceFactory({ service: createServiceRef({ id: 'foo', scope: 'root' }), @@ -226,7 +187,7 @@ describe('createServiceFactory', () => { metaFactory(); }); - it('should create root scoped factory with dependencies and optional options', () => { + it('should create root scoped factory with dependencies and options', () => { const metaFactory = createServiceFactory((_options?: TestOptions) => ({ service: createServiceRef({ id: 'foo', scope: 'root' }), deps: { @@ -325,49 +286,7 @@ describe('createServiceFactory', () => { metaFactory(); }); - it('should create factory with required options and dependencies', () => { - const metaFactory = createServiceFactory((_opts: TestOptions) => ({ - service: ref, - deps: { - root: rootDep, - plugin: pluginDep, - }, - async createRootContext({ root }) { - const root1: number = root; - // @ts-expect-error - const root2: string = root; - unused(root1, root2); - return { root }; - }, - async factory({ plugin }, { root }) { - const root1: number = root; - // @ts-expect-error - const root2: string = root; - const plugin3: boolean = plugin; - // @ts-expect-error - const plugin4: number = plugin; - unused(root1, root2, plugin3, plugin4); - return 'x'; - }, - })); - expect(metaFactory).toEqual(expect.any(Function)); - - // @ts-expect-error - metaFactory('string'); - // @ts-expect-error - metaFactory({}); - metaFactory({ x: 1 }); - // @ts-expect-error - metaFactory({ x: 1, y: 2 }); - // @ts-expect-error - metaFactory(null); - // @ts-expect-error - metaFactory(undefined); - // @ts-expect-error - metaFactory(); - }); - - it('should create factory with optional options and dependencies', () => { + it('should create factory with options and dependencies', () => { const metaFactory = createServiceFactory((_opts?: TestOptions) => ({ service: ref, deps: { diff --git a/packages/backend-plugin-api/src/services/system/types.ts b/packages/backend-plugin-api/src/services/system/types.ts index 190ef7c13e..9465d4a9cb 100644 --- a/packages/backend-plugin-api/src/services/system/types.ts +++ b/packages/backend-plugin-api/src/services/system/types.ts @@ -191,20 +191,6 @@ export function createServiceFactory< >( config: (options?: TOpts) => RootServiceFactoryConfig, ): (options?: TOpts) => ServiceFactory; -/** - * Creates a root scoped service factory with required options. - * - * @public - * @param config - The service factory configuration. - */ -export function createServiceFactory< - TService, - TImpl extends TService, - TDeps extends { [name in string]: ServiceRef }, - TOpts extends object | undefined = undefined, ->( - config: (options: TOpts) => RootServiceFactoryConfig, -): (options: TOpts) => ServiceFactory; /** * Creates a plugin scoped service factory without options. * @@ -237,25 +223,6 @@ export function createServiceFactory< options?: TOpts, ) => PluginServiceFactoryConfig, ): (options?: TOpts) => ServiceFactory; -/** - * Creates a plugin scoped service factory with required options. - * - * @public - * @param config - The service factory configuration. - */ -export function createServiceFactory< - TService, - TImpl extends TService, - TDeps extends { [name in string]: ServiceRef }, - TContext = undefined, - TOpts extends object | undefined = undefined, ->( - config: - | PluginServiceFactoryConfig - | (( - options: TOpts, - ) => PluginServiceFactoryConfig), -): (options: TOpts) => ServiceFactory; export function createServiceFactory< TService, TImpl extends TService, From ebb46dc1899560c37809b75d074854b190f7a1c4 Mon Sep 17 00:00:00 2001 From: Andre Wanlin <67169551+awanlin@users.noreply.github.com> Date: Fri, 11 Aug 2023 13:51:16 -0500 Subject: [PATCH 227/372] Updated CustomTechDocsHome code example Signed-off-by: Andre Wanlin <67169551+awanlin@users.noreply.github.com> --- docs/features/techdocs/how-to-guides.md | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/docs/features/techdocs/how-to-guides.md b/docs/features/techdocs/how-to-guides.md index ab554db3bd..b78a1a55af 100644 --- a/docs/features/techdocs/how-to-guides.md +++ b/docs/features/techdocs/how-to-guides.md @@ -188,15 +188,12 @@ import { } from '@backstage/plugin-techdocs'; import { Entity } from '@backstage/catalog-model'; -import { - EntityListDocsGrid, - DocsGroupConfig, -} from '@backstage/plugin-techdocs'; +import { EntityListDocsGrid } from '@backstage/plugin-techdocs'; export type CustomTechDocsHomeProps = { groups?: Array<{ title: React.ReactNode; - filterPredicate: (entity: Entity) => boolean; + filterPredicate: ((entity: Entity) => boolean) | string; }>; }; From 254ad469f053a16ae8cb1a11d7f89a5bff1cb4bd Mon Sep 17 00:00:00 2001 From: Andre Wanlin <67169551+awanlin@users.noreply.github.com> Date: Fri, 11 Aug 2023 14:09:00 -0500 Subject: [PATCH 228/372] Removed deprecated items in DevAppBuilder Signed-off-by: Andre Wanlin <67169551+awanlin@users.noreply.github.com> --- .changeset/gold-hotels-pump.md | 5 +++ packages/dev-utils/src/devApp/render.tsx | 53 +++++++++++------------- 2 files changed, 29 insertions(+), 29 deletions(-) create mode 100644 .changeset/gold-hotels-pump.md diff --git a/.changeset/gold-hotels-pump.md b/.changeset/gold-hotels-pump.md new file mode 100644 index 0000000000..ab94eac676 --- /dev/null +++ b/.changeset/gold-hotels-pump.md @@ -0,0 +1,5 @@ +--- +'@backstage/dev-utils': patch +--- + +Removed deprecated calls to `app.getProvider()` and `app.getRouter()` in `DevAppBuilder` diff --git a/packages/dev-utils/src/devApp/render.tsx b/packages/dev-utils/src/devApp/render.tsx index 36e87855ed..5f2b21b8d2 100644 --- a/packages/dev-utils/src/devApp/render.tsx +++ b/packages/dev-utils/src/devApp/render.tsx @@ -15,7 +15,7 @@ */ import { createApp } from '@backstage/app-defaults'; -import { FlatRoutes } from '@backstage/core-app-api'; +import { AppRouter, FlatRoutes } from '@backstage/core-app-api'; import { AlertDisplay, OAuthRequestDialog, @@ -195,35 +195,30 @@ export class DevAppBuilder { }, }); - const AppProvider = app.getProvider(); - const AppRouter = app.getRouter(); + const DevApp = ( + <> + + + {this.rootChildren} + + + + + {this.sidebarItems} + + + + + + {this.routes} + } /> + + + + + ); - const DevApp = () => { - return ( - - - - {this.rootChildren} - - - - - {this.sidebarItems} - - - - - - {this.routes} - } /> - - - - - ); - }; - - return DevApp; + return app.createRoot(DevApp); } /** From ad9cf7833f6a1587569f76f3d8368b5f332b8631 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 11 Aug 2023 20:32:58 +0000 Subject: [PATCH 229/372] chore(deps): update dependency esbuild to v0.19.1 Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- yarn.lock | 182 +++++++++++++++++++++++++++--------------------------- 1 file changed, 91 insertions(+), 91 deletions(-) diff --git a/yarn.lock b/yarn.lock index 1341cca2f9..1c0e08a998 100644 --- a/yarn.lock +++ b/yarn.lock @@ -10364,9 +10364,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/android-arm64@npm:0.19.0": - version: 0.19.0 - resolution: "@esbuild/android-arm64@npm:0.19.0" +"@esbuild/android-arm64@npm:0.19.1": + version: 0.19.1 + resolution: "@esbuild/android-arm64@npm:0.19.1" conditions: os=android & cpu=arm64 languageName: node linkType: hard @@ -10385,9 +10385,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/android-arm@npm:0.19.0": - version: 0.19.0 - resolution: "@esbuild/android-arm@npm:0.19.0" +"@esbuild/android-arm@npm:0.19.1": + version: 0.19.1 + resolution: "@esbuild/android-arm@npm:0.19.1" conditions: os=android & cpu=arm languageName: node linkType: hard @@ -10399,9 +10399,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/android-x64@npm:0.19.0": - version: 0.19.0 - resolution: "@esbuild/android-x64@npm:0.19.0" +"@esbuild/android-x64@npm:0.19.1": + version: 0.19.1 + resolution: "@esbuild/android-x64@npm:0.19.1" conditions: os=android & cpu=x64 languageName: node linkType: hard @@ -10413,9 +10413,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/darwin-arm64@npm:0.19.0": - version: 0.19.0 - resolution: "@esbuild/darwin-arm64@npm:0.19.0" +"@esbuild/darwin-arm64@npm:0.19.1": + version: 0.19.1 + resolution: "@esbuild/darwin-arm64@npm:0.19.1" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard @@ -10427,9 +10427,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/darwin-x64@npm:0.19.0": - version: 0.19.0 - resolution: "@esbuild/darwin-x64@npm:0.19.0" +"@esbuild/darwin-x64@npm:0.19.1": + version: 0.19.1 + resolution: "@esbuild/darwin-x64@npm:0.19.1" conditions: os=darwin & cpu=x64 languageName: node linkType: hard @@ -10441,9 +10441,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/freebsd-arm64@npm:0.19.0": - version: 0.19.0 - resolution: "@esbuild/freebsd-arm64@npm:0.19.0" +"@esbuild/freebsd-arm64@npm:0.19.1": + version: 0.19.1 + resolution: "@esbuild/freebsd-arm64@npm:0.19.1" conditions: os=freebsd & cpu=arm64 languageName: node linkType: hard @@ -10455,9 +10455,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/freebsd-x64@npm:0.19.0": - version: 0.19.0 - resolution: "@esbuild/freebsd-x64@npm:0.19.0" +"@esbuild/freebsd-x64@npm:0.19.1": + version: 0.19.1 + resolution: "@esbuild/freebsd-x64@npm:0.19.1" conditions: os=freebsd & cpu=x64 languageName: node linkType: hard @@ -10469,9 +10469,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-arm64@npm:0.19.0": - version: 0.19.0 - resolution: "@esbuild/linux-arm64@npm:0.19.0" +"@esbuild/linux-arm64@npm:0.19.1": + version: 0.19.1 + resolution: "@esbuild/linux-arm64@npm:0.19.1" conditions: os=linux & cpu=arm64 languageName: node linkType: hard @@ -10483,9 +10483,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-arm@npm:0.19.0": - version: 0.19.0 - resolution: "@esbuild/linux-arm@npm:0.19.0" +"@esbuild/linux-arm@npm:0.19.1": + version: 0.19.1 + resolution: "@esbuild/linux-arm@npm:0.19.1" conditions: os=linux & cpu=arm languageName: node linkType: hard @@ -10497,9 +10497,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-ia32@npm:0.19.0": - version: 0.19.0 - resolution: "@esbuild/linux-ia32@npm:0.19.0" +"@esbuild/linux-ia32@npm:0.19.1": + version: 0.19.1 + resolution: "@esbuild/linux-ia32@npm:0.19.1" conditions: os=linux & cpu=ia32 languageName: node linkType: hard @@ -10518,9 +10518,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-loong64@npm:0.19.0": - version: 0.19.0 - resolution: "@esbuild/linux-loong64@npm:0.19.0" +"@esbuild/linux-loong64@npm:0.19.1": + version: 0.19.1 + resolution: "@esbuild/linux-loong64@npm:0.19.1" conditions: os=linux & cpu=loong64 languageName: node linkType: hard @@ -10532,9 +10532,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-mips64el@npm:0.19.0": - version: 0.19.0 - resolution: "@esbuild/linux-mips64el@npm:0.19.0" +"@esbuild/linux-mips64el@npm:0.19.1": + version: 0.19.1 + resolution: "@esbuild/linux-mips64el@npm:0.19.1" conditions: os=linux & cpu=mips64el languageName: node linkType: hard @@ -10546,9 +10546,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-ppc64@npm:0.19.0": - version: 0.19.0 - resolution: "@esbuild/linux-ppc64@npm:0.19.0" +"@esbuild/linux-ppc64@npm:0.19.1": + version: 0.19.1 + resolution: "@esbuild/linux-ppc64@npm:0.19.1" conditions: os=linux & cpu=ppc64 languageName: node linkType: hard @@ -10560,9 +10560,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-riscv64@npm:0.19.0": - version: 0.19.0 - resolution: "@esbuild/linux-riscv64@npm:0.19.0" +"@esbuild/linux-riscv64@npm:0.19.1": + version: 0.19.1 + resolution: "@esbuild/linux-riscv64@npm:0.19.1" conditions: os=linux & cpu=riscv64 languageName: node linkType: hard @@ -10574,9 +10574,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-s390x@npm:0.19.0": - version: 0.19.0 - resolution: "@esbuild/linux-s390x@npm:0.19.0" +"@esbuild/linux-s390x@npm:0.19.1": + version: 0.19.1 + resolution: "@esbuild/linux-s390x@npm:0.19.1" conditions: os=linux & cpu=s390x languageName: node linkType: hard @@ -10588,9 +10588,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-x64@npm:0.19.0": - version: 0.19.0 - resolution: "@esbuild/linux-x64@npm:0.19.0" +"@esbuild/linux-x64@npm:0.19.1": + version: 0.19.1 + resolution: "@esbuild/linux-x64@npm:0.19.1" conditions: os=linux & cpu=x64 languageName: node linkType: hard @@ -10602,9 +10602,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/netbsd-x64@npm:0.19.0": - version: 0.19.0 - resolution: "@esbuild/netbsd-x64@npm:0.19.0" +"@esbuild/netbsd-x64@npm:0.19.1": + version: 0.19.1 + resolution: "@esbuild/netbsd-x64@npm:0.19.1" conditions: os=netbsd & cpu=x64 languageName: node linkType: hard @@ -10616,9 +10616,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/openbsd-x64@npm:0.19.0": - version: 0.19.0 - resolution: "@esbuild/openbsd-x64@npm:0.19.0" +"@esbuild/openbsd-x64@npm:0.19.1": + version: 0.19.1 + resolution: "@esbuild/openbsd-x64@npm:0.19.1" conditions: os=openbsd & cpu=x64 languageName: node linkType: hard @@ -10630,9 +10630,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/sunos-x64@npm:0.19.0": - version: 0.19.0 - resolution: "@esbuild/sunos-x64@npm:0.19.0" +"@esbuild/sunos-x64@npm:0.19.1": + version: 0.19.1 + resolution: "@esbuild/sunos-x64@npm:0.19.1" conditions: os=sunos & cpu=x64 languageName: node linkType: hard @@ -10644,9 +10644,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/win32-arm64@npm:0.19.0": - version: 0.19.0 - resolution: "@esbuild/win32-arm64@npm:0.19.0" +"@esbuild/win32-arm64@npm:0.19.1": + version: 0.19.1 + resolution: "@esbuild/win32-arm64@npm:0.19.1" conditions: os=win32 & cpu=arm64 languageName: node linkType: hard @@ -10658,9 +10658,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/win32-ia32@npm:0.19.0": - version: 0.19.0 - resolution: "@esbuild/win32-ia32@npm:0.19.0" +"@esbuild/win32-ia32@npm:0.19.1": + version: 0.19.1 + resolution: "@esbuild/win32-ia32@npm:0.19.1" conditions: os=win32 & cpu=ia32 languageName: node linkType: hard @@ -10672,9 +10672,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/win32-x64@npm:0.19.0": - version: 0.19.0 - resolution: "@esbuild/win32-x64@npm:0.19.0" +"@esbuild/win32-x64@npm:0.19.1": + version: 0.19.1 + resolution: "@esbuild/win32-x64@npm:0.19.1" conditions: os=win32 & cpu=x64 languageName: node linkType: hard @@ -24320,31 +24320,31 @@ __metadata: linkType: hard "esbuild@npm:^0.19.0": - version: 0.19.0 - resolution: "esbuild@npm:0.19.0" + version: 0.19.1 + resolution: "esbuild@npm:0.19.1" dependencies: - "@esbuild/android-arm": 0.19.0 - "@esbuild/android-arm64": 0.19.0 - "@esbuild/android-x64": 0.19.0 - "@esbuild/darwin-arm64": 0.19.0 - "@esbuild/darwin-x64": 0.19.0 - "@esbuild/freebsd-arm64": 0.19.0 - "@esbuild/freebsd-x64": 0.19.0 - "@esbuild/linux-arm": 0.19.0 - "@esbuild/linux-arm64": 0.19.0 - "@esbuild/linux-ia32": 0.19.0 - "@esbuild/linux-loong64": 0.19.0 - "@esbuild/linux-mips64el": 0.19.0 - "@esbuild/linux-ppc64": 0.19.0 - "@esbuild/linux-riscv64": 0.19.0 - "@esbuild/linux-s390x": 0.19.0 - "@esbuild/linux-x64": 0.19.0 - "@esbuild/netbsd-x64": 0.19.0 - "@esbuild/openbsd-x64": 0.19.0 - "@esbuild/sunos-x64": 0.19.0 - "@esbuild/win32-arm64": 0.19.0 - "@esbuild/win32-ia32": 0.19.0 - "@esbuild/win32-x64": 0.19.0 + "@esbuild/android-arm": 0.19.1 + "@esbuild/android-arm64": 0.19.1 + "@esbuild/android-x64": 0.19.1 + "@esbuild/darwin-arm64": 0.19.1 + "@esbuild/darwin-x64": 0.19.1 + "@esbuild/freebsd-arm64": 0.19.1 + "@esbuild/freebsd-x64": 0.19.1 + "@esbuild/linux-arm": 0.19.1 + "@esbuild/linux-arm64": 0.19.1 + "@esbuild/linux-ia32": 0.19.1 + "@esbuild/linux-loong64": 0.19.1 + "@esbuild/linux-mips64el": 0.19.1 + "@esbuild/linux-ppc64": 0.19.1 + "@esbuild/linux-riscv64": 0.19.1 + "@esbuild/linux-s390x": 0.19.1 + "@esbuild/linux-x64": 0.19.1 + "@esbuild/netbsd-x64": 0.19.1 + "@esbuild/openbsd-x64": 0.19.1 + "@esbuild/sunos-x64": 0.19.1 + "@esbuild/win32-arm64": 0.19.1 + "@esbuild/win32-ia32": 0.19.1 + "@esbuild/win32-x64": 0.19.1 dependenciesMeta: "@esbuild/android-arm": optional: true @@ -24392,7 +24392,7 @@ __metadata: optional: true bin: esbuild: bin/esbuild - checksum: 77ef2e57a94d1b88657fb6cd79c3ad6e3161823fd1b615f2ce4b71f163755b85e98cb5b565ed6c38db1f788c52c092b5534caa6800178de99a25de0671f92186 + checksum: e7c1b123ab181a5b7e6a38f604237e4d5264d1bad80db225d9a26ab07c696a2a945824a11b7ecc4196d30b616e357e30f3cd3d10f4dfda6610df915aed4ae087 languageName: node linkType: hard From b67f4138823d497ae44a8f98a2bbb2c0cbee4b03 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Wed, 9 Aug 2023 11:29:39 +0200 Subject: [PATCH 230/372] search-backend-module-elasticsearch: add support for reading index templates from options Signed-off-by: Patrik Oldsberg --- .../config.d.ts | 29 ++++++++++++++++++- .../src/engines/ElasticSearchSearchEngine.ts | 28 +++++++++++++++++- 2 files changed, 55 insertions(+), 2 deletions(-) diff --git a/plugins/search-backend-module-elasticsearch/config.d.ts b/plugins/search-backend-module-elasticsearch/config.d.ts index 16190e7ed0..d7fdd0cd1b 100644 --- a/plugins/search-backend-module-elasticsearch/config.d.ts +++ b/plugins/search-backend-module-elasticsearch/config.d.ts @@ -43,6 +43,33 @@ export interface Config { */ fragmentDelimiter?: string; }; + + /** Elasticsearch specific index template bodies */ + indexTemplates?: Array<{ + name: string; + body: { + /** + * Array of wildcard (*) expressions used to match the names of data streams and indices during creation. + */ + index_patterns: string[]; + + /** + * An ordered list of component template names. + * Component templates are merged in the order specified, + * meaning that the last component template specified has the highest precedence. + */ + composed_of?: string[]; + + /** + * See available properties of template + * https://www.elastic.co/guide/en/elasticsearch/reference/7.15/indices-put-template.html#put-index-template-api-request-body + */ + template?: { + [key: string]: unknown; + }; + }; + }>; + /** Miscellaneous options for the client */ clientOptions?: { ssl?: { @@ -128,7 +155,7 @@ export interface Config { }; /* TODO(kuangp): unsupported until @elastic/elasticsearch@7.14 is released | { - + /** * Bearer authentication token to connect to the cluster. * See: https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-create-service-token.html diff --git a/plugins/search-backend-module-elasticsearch/src/engines/ElasticSearchSearchEngine.ts b/plugins/search-backend-module-elasticsearch/src/engines/ElasticSearchSearchEngine.ts index 90f6f407d9..51492699a8 100644 --- a/plugins/search-backend-module-elasticsearch/src/engines/ElasticSearchSearchEngine.ts +++ b/plugins/search-backend-module-elasticsearch/src/engines/ElasticSearchSearchEngine.ts @@ -165,7 +165,7 @@ export class ElasticSearchSearchEngine implements SearchEngine { logger.info('Initializing ElasticSearch search engine.'); } - return new ElasticSearchSearchEngine( + const engine = new ElasticSearchSearchEngine( clientOptions, aliasPostfix, indexPrefix, @@ -176,6 +176,14 @@ export class ElasticSearchSearchEngine implements SearchEngine { 'search.elasticsearch.highlightOptions', ), ); + + for (const indexTemplate of this.readIndexTemplateConfig( + config.getConfig('search.elasticsearch'), + )) { + await engine.setIndexTemplate(indexTemplate); + } + + return engine; } /** @@ -518,6 +526,24 @@ export class ElasticSearchSearchEngine implements SearchEngine { : {}), }; } + + private static readIndexTemplateConfig( + config: Config, + ): ElasticSearchCustomIndexTemplate[] { + return ( + config.getOptionalConfigArray('indexTemplates')?.map(templateConfig => { + const bodyConfig = templateConfig.getConfig('body'); + return { + name: templateConfig.getString('name'), + body: { + index_patterns: bodyConfig.getStringArray('index_patterns'), + composed_of: bodyConfig.getOptionalStringArray('composed_of'), + template: bodyConfig.getOptionalConfig('template')?.get(), + }, + }; + }) ?? [] + ); + } } /** From 7ccf1f90901307d6ccb6e0920f948bf4a9be659b Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Wed, 9 Aug 2023 11:34:15 +0200 Subject: [PATCH 231/372] search-backend-module-elasticsearch: allow LoggerService to be used instead of Logger Signed-off-by: Patrik Oldsberg --- .../src/engines/ElasticSearchSearchEngine.ts | 10 +++++----- .../src/engines/ElasticSearchSearchEngineIndexer.ts | 9 ++++++--- 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/plugins/search-backend-module-elasticsearch/src/engines/ElasticSearchSearchEngine.ts b/plugins/search-backend-module-elasticsearch/src/engines/ElasticSearchSearchEngine.ts index 51492699a8..6eb94fbd5b 100644 --- a/plugins/search-backend-module-elasticsearch/src/engines/ElasticSearchSearchEngine.ts +++ b/plugins/search-backend-module-elasticsearch/src/engines/ElasticSearchSearchEngine.ts @@ -38,6 +38,7 @@ import { AwsCredentialProvider, DefaultAwsCredentialsManager, } from '@backstage/integration-aws-node'; +import { LoggerService } from '@backstage/backend-plugin-api'; export type { ElasticSearchClientOptions }; @@ -73,7 +74,7 @@ export type ElasticSearchQueryTranslator = ( * @public */ export type ElasticSearchOptions = { - logger: Logger; + logger: Logger | LoggerService; config: Config; aliasPostfix?: string; indexPrefix?: string; @@ -126,7 +127,7 @@ export class ElasticSearchSearchEngine implements SearchEngine { private readonly elasticSearchClientOptions: ElasticSearchClientOptions, private readonly aliasPostfix: string, private readonly indexPrefix: string, - private readonly logger: Logger, + private readonly logger: Logger | LoggerService, private readonly batchSize: number, highlightOptions?: ElasticSearchHighlightOptions, ) { @@ -229,11 +230,10 @@ export class ElasticSearchSearchEngine implements SearchEngine { .boolQuery() .should(value.map(it => esb.matchQuery(key, it.toString()))); } - this.logger.error( - 'Failed to query, unrecognized filter type', + this.logger.error('Failed to query, unrecognized filter type', { key, value, - ); + }); throw new Error( 'Failed to add filters to query. Unrecognized filter type', ); diff --git a/plugins/search-backend-module-elasticsearch/src/engines/ElasticSearchSearchEngineIndexer.ts b/plugins/search-backend-module-elasticsearch/src/engines/ElasticSearchSearchEngineIndexer.ts index a9d15c421e..b742216d52 100644 --- a/plugins/search-backend-module-elasticsearch/src/engines/ElasticSearchSearchEngineIndexer.ts +++ b/plugins/search-backend-module-elasticsearch/src/engines/ElasticSearchSearchEngineIndexer.ts @@ -19,6 +19,7 @@ import { ElasticSearchClientWrapper } from './ElasticSearchClientWrapper'; import { IndexableDocument } from '@backstage/plugin-search-common'; import { Logger } from 'winston'; import { Readable } from 'stream'; +import { LoggerService } from '@backstage/backend-plugin-api'; /** * Options for instantiate ElasticSearchSearchEngineIndexer @@ -29,7 +30,7 @@ export type ElasticSearchSearchEngineIndexerOptions = { indexPrefix: string; indexSeparator: string; alias: string; - logger: Logger; + logger: Logger | LoggerService; elasticSearchClientWrapper: ElasticSearchClientWrapper; batchSize: number; }; @@ -55,7 +56,7 @@ export class ElasticSearchSearchEngineIndexer extends BatchSearchEngineIndexer { private readonly indexSeparator: string; private readonly alias: string; private readonly removableAlias: string; - private readonly logger: Logger; + private readonly logger: Logger | LoggerService; private readonly sourceStream: Readable; private readonly elasticSearchClientWrapper: ElasticSearchClientWrapper; private configuredBatchSize: number; @@ -186,7 +187,9 @@ export class ElasticSearchSearchEngineIndexer extends BatchSearchEngineIndexer { // If any indices are removable, remove them. Do not bubble up this error, // as doing so would delete the now aliased index. Log instead. if (this.removableIndices.length) { - this.logger.info('Removing stale search indices', this.removableIndices); + this.logger.info('Removing stale search indices', { + removableIndices: this.removableIndices, + }); try { await this.elasticSearchClientWrapper.deleteIndex({ index: this.removableIndices, From ac09a60a40316393eb043a874e0fb1ad124522ef Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Wed, 9 Aug 2023 11:42:06 +0200 Subject: [PATCH 232/372] search-backend-module-elasticsearch: allow translator to be configured through options Signed-off-by: Patrik Oldsberg --- .../src/engines/ElasticSearchSearchEngine.ts | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/plugins/search-backend-module-elasticsearch/src/engines/ElasticSearchSearchEngine.ts b/plugins/search-backend-module-elasticsearch/src/engines/ElasticSearchSearchEngine.ts index 6eb94fbd5b..9b085b52b0 100644 --- a/plugins/search-backend-module-elasticsearch/src/engines/ElasticSearchSearchEngine.ts +++ b/plugins/search-backend-module-elasticsearch/src/engines/ElasticSearchSearchEngine.ts @@ -78,6 +78,7 @@ export type ElasticSearchOptions = { config: Config; aliasPostfix?: string; indexPrefix?: string; + translator?: ElasticSearchQueryTranslator; }; /** @@ -150,6 +151,7 @@ export class ElasticSearchSearchEngine implements SearchEngine { config, aliasPostfix = `search`, indexPrefix = ``, + translator, } = options; const credentialProvider = DefaultAwsCredentialsManager.fromConfig(config); const clientOptions = await this.createElasticSearchClientOptions( @@ -184,6 +186,10 @@ export class ElasticSearchSearchEngine implements SearchEngine { await engine.setIndexTemplate(indexTemplate); } + if (translator) { + await engine.setTranslator(translator); + } + return engine; } From 783d4c1939f1c80b371be64f171334c867caa01b Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Wed, 9 Aug 2023 11:46:37 +0200 Subject: [PATCH 233/372] search-backend-module-elasticsearch: remove options from alpha module Signed-off-by: Patrik Oldsberg --- .../src/alpha.ts | 107 ++++++++++-------- 1 file changed, 57 insertions(+), 50 deletions(-) diff --git a/plugins/search-backend-module-elasticsearch/src/alpha.ts b/plugins/search-backend-module-elasticsearch/src/alpha.ts index 7e1b95279a..54f5f07777 100644 --- a/plugins/search-backend-module-elasticsearch/src/alpha.ts +++ b/plugins/search-backend-module-elasticsearch/src/alpha.ts @@ -17,58 +17,65 @@ import { coreServices, createBackendModule, } from '@backstage/backend-plugin-api'; -import { loggerToWinstonLogger } from '@backstage/backend-common'; import { searchEngineRegistryExtensionPoint } from '@backstage/plugin-search-backend-node/alpha'; - -import { - ElasticSearchCustomIndexTemplate, - ElasticSearchQueryTranslator, - ElasticSearchSearchEngine, -} from '@backstage/plugin-search-backend-module-elasticsearch'; +import { ElasticSearchSearchEngine } from '@backstage/plugin-search-backend-module-elasticsearch'; /** - * @alpha - * Options for {@link searchModuleElasticsearchEngine}. - */ -export type SearchModuleElasticsearchEngineOptions = { - translator?: ElasticSearchQueryTranslator; - indexTemplate?: ElasticSearchCustomIndexTemplate; -}; - -/** - * @alpha * Search backend module for the Elasticsearch engine. + * + * @alpha + * @remarks + * + * If you need to customize the search engine beyond what is supported by the + * static configuration, you can create a custom module using the `ElasticSearchSearchEngine`. + * + * For example, this lets you configure your own query translator: + * + * ```ts + * export const searchModuleElasticsearchEngine = createBackendModule({ + * moduleId: 'elasticsearchEngine', + * pluginId: 'search', + * register(env) { + * env.registerInit({ + * deps: { + * searchEngineRegistry: searchEngineRegistryExtensionPoint, + * logger: coreServices.logger, + * config: coreServices.rootConfig, + * }, + * async init({ searchEngineRegistry, logger, config }) { + * searchEngineRegistry.setSearchEngine( + * await ElasticSearchSearchEngine.fromConfig({ + * logger, + * config, + * translator(query) { + * return ... // translated query + * } + * }), + * ); + * }, + * }); + * }, + * }); + * ``` */ -export const searchModuleElasticsearchEngine = createBackendModule( - (options?: SearchModuleElasticsearchEngineOptions) => ({ - moduleId: 'elasticsearchEngine', - pluginId: 'search', - register(env) { - env.registerInit({ - deps: { - searchEngineRegistry: searchEngineRegistryExtensionPoint, - logger: coreServices.logger, - config: coreServices.rootConfig, - }, - async init({ searchEngineRegistry, logger, config }) { - const searchEngine = await ElasticSearchSearchEngine.fromConfig({ - logger: loggerToWinstonLogger(logger), - config: config, - }); - - // set custom translator if available - if (options?.translator) { - searchEngine.setTranslator(options.translator); - } - - // set custom index template if available - if (options?.indexTemplate) { - searchEngine.setIndexTemplate(options.indexTemplate); - } - - searchEngineRegistry.setSearchEngine(searchEngine); - }, - }); - }, - }), -); +export const searchModuleElasticsearchEngine = createBackendModule({ + moduleId: 'elasticsearchEngine', + pluginId: 'search', + register(env) { + env.registerInit({ + deps: { + searchEngineRegistry: searchEngineRegistryExtensionPoint, + logger: coreServices.logger, + config: coreServices.rootConfig, + }, + async init({ searchEngineRegistry, logger, config }) { + searchEngineRegistry.setSearchEngine( + await ElasticSearchSearchEngine.fromConfig({ + logger, + config, + }), + ); + }, + }); + }, +}); From b0ca08a269728c363740d096131e45399be6d4ce Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Wed, 9 Aug 2023 11:49:44 +0200 Subject: [PATCH 234/372] search-backend-module-elasticsearch: update API reports Signed-off-by: Patrik Oldsberg --- .../alpha-api-report.md | 12 +----------- .../api-report.md | 8 +++++--- 2 files changed, 6 insertions(+), 14 deletions(-) diff --git a/plugins/search-backend-module-elasticsearch/alpha-api-report.md b/plugins/search-backend-module-elasticsearch/alpha-api-report.md index 91007c20de..ecbe3f2700 100644 --- a/plugins/search-backend-module-elasticsearch/alpha-api-report.md +++ b/plugins/search-backend-module-elasticsearch/alpha-api-report.md @@ -4,19 +4,9 @@ ```ts import { BackendFeature } from '@backstage/backend-plugin-api'; -import { ElasticSearchCustomIndexTemplate } from '@backstage/plugin-search-backend-module-elasticsearch'; -import { ElasticSearchQueryTranslator } from '@backstage/plugin-search-backend-module-elasticsearch'; // @alpha -export const searchModuleElasticsearchEngine: ( - options?: SearchModuleElasticsearchEngineOptions | undefined, -) => BackendFeature; - -// @alpha -export type SearchModuleElasticsearchEngineOptions = { - translator?: ElasticSearchQueryTranslator; - indexTemplate?: ElasticSearchCustomIndexTemplate; -}; +export const searchModuleElasticsearchEngine: () => BackendFeature; // (No @packageDocumentation comment for this package) ``` diff --git a/plugins/search-backend-module-elasticsearch/api-report.md b/plugins/search-backend-module-elasticsearch/api-report.md index b567414b22..408ec288d0 100644 --- a/plugins/search-backend-module-elasticsearch/api-report.md +++ b/plugins/search-backend-module-elasticsearch/api-report.md @@ -15,6 +15,7 @@ import type { ConnectionOptions } from 'tls'; import { IndexableDocument } from '@backstage/plugin-search-common'; import { IndexableResultSet } from '@backstage/plugin-search-common'; import { Logger } from 'winston'; +import { LoggerService } from '@backstage/backend-plugin-api'; import { Readable } from 'stream'; import { SearchEngine } from '@backstage/plugin-search-common'; import { SearchQuery } from '@backstage/plugin-search-common'; @@ -299,10 +300,11 @@ export interface ElasticSearchNodeOptions { // @public export type ElasticSearchOptions = { - logger: Logger; + logger: Logger | LoggerService; config: Config; aliasPostfix?: string; indexPrefix?: string; + translator?: ElasticSearchQueryTranslator; }; // @public @@ -322,7 +324,7 @@ export class ElasticSearchSearchEngine implements SearchEngine { elasticSearchClientOptions: ElasticSearchClientOptions, aliasPostfix: string, indexPrefix: string, - logger: Logger, + logger: Logger | LoggerService, batchSize: number, highlightOptions?: ElasticSearchHighlightOptions, ); @@ -365,7 +367,7 @@ export type ElasticSearchSearchEngineIndexerOptions = { indexPrefix: string; indexSeparator: string; alias: string; - logger: Logger; + logger: Logger | LoggerService; elasticSearchClientWrapper: ElasticSearchClientWrapper; batchSize: number; }; From 631eb3816b4817f1f696e62291329c40f47030e6 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Wed, 9 Aug 2023 12:02:41 +0200 Subject: [PATCH 235/372] search-backend-module-elasticsearch: add changeset Signed-off-by: Patrik Oldsberg --- .changeset/popular-beds-invent.md | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 .changeset/popular-beds-invent.md diff --git a/.changeset/popular-beds-invent.md b/.changeset/popular-beds-invent.md new file mode 100644 index 0000000000..73c28d629e --- /dev/null +++ b/.changeset/popular-beds-invent.md @@ -0,0 +1,7 @@ +--- +'@backstage/plugin-search-backend-module-elasticsearch': patch +--- + +Index templates can now be configured through configuration under the `search.elasticsearch.indexTemplates`. In addition, the `ElasticSearchSearchEngine.fromConfig` now also accepts a `LoggerService` as the `logger` option as well as a new `translator` option. + +The alpha `searchModuleElasticsearchEngine` export no longer accepts options. From 05447283d142ebdeb95cb63a00d9845a6e6a8b6a Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Sat, 12 Aug 2023 12:01:45 +0200 Subject: [PATCH 236/372] search-backend-module-elasticsearch: switch translator customization to extension point Signed-off-by: Patrik Oldsberg --- .changeset/popular-beds-invent.md | 2 +- .../alpha-api-report.md | 11 +++ .../src/alpha.ts | 68 +++++++++---------- 3 files changed, 46 insertions(+), 35 deletions(-) diff --git a/.changeset/popular-beds-invent.md b/.changeset/popular-beds-invent.md index 73c28d629e..61d0cf0545 100644 --- a/.changeset/popular-beds-invent.md +++ b/.changeset/popular-beds-invent.md @@ -4,4 +4,4 @@ Index templates can now be configured through configuration under the `search.elasticsearch.indexTemplates`. In addition, the `ElasticSearchSearchEngine.fromConfig` now also accepts a `LoggerService` as the `logger` option as well as a new `translator` option. -The alpha `searchModuleElasticsearchEngine` export no longer accepts options. +The alpha `searchModuleElasticsearchEngine` export no longer accepts options and a new alpha `elasticsearchTranslatorExtensionPoint` export has been added which lets you customize the query translator. diff --git a/plugins/search-backend-module-elasticsearch/alpha-api-report.md b/plugins/search-backend-module-elasticsearch/alpha-api-report.md index ecbe3f2700..9e5e7c2136 100644 --- a/plugins/search-backend-module-elasticsearch/alpha-api-report.md +++ b/plugins/search-backend-module-elasticsearch/alpha-api-report.md @@ -4,6 +4,17 @@ ```ts import { BackendFeature } from '@backstage/backend-plugin-api'; +import { ElasticSearchQueryTranslator } from '@backstage/plugin-search-backend-module-elasticsearch'; +import { ExtensionPoint } from '@backstage/backend-plugin-api'; + +// @alpha (undocumented) +export interface ElasticSearchQueryTranslatorExtensionPoint { + // (undocumented) + setTranslator(translator: ElasticSearchQueryTranslator): void; +} + +// @alpha +export const elasticsearchTranslatorExtensionPoint: ExtensionPoint; // @alpha export const searchModuleElasticsearchEngine: () => BackendFeature; diff --git a/plugins/search-backend-module-elasticsearch/src/alpha.ts b/plugins/search-backend-module-elasticsearch/src/alpha.ts index 54f5f07777..9801cf4643 100644 --- a/plugins/search-backend-module-elasticsearch/src/alpha.ts +++ b/plugins/search-backend-module-elasticsearch/src/alpha.ts @@ -16,52 +16,51 @@ import { coreServices, createBackendModule, + createExtensionPoint, } from '@backstage/backend-plugin-api'; import { searchEngineRegistryExtensionPoint } from '@backstage/plugin-search-backend-node/alpha'; -import { ElasticSearchSearchEngine } from '@backstage/plugin-search-backend-module-elasticsearch'; +import { + ElasticSearchQueryTranslator, + ElasticSearchSearchEngine, +} from '@backstage/plugin-search-backend-module-elasticsearch'; + +/** @alpha */ +export interface ElasticSearchQueryTranslatorExtensionPoint { + setTranslator(translator: ElasticSearchQueryTranslator): void; +} + +/** + * Extension point used to customize the ElasticSearch query translator. + * + * @alpha + */ +export const elasticsearchTranslatorExtensionPoint = + createExtensionPoint({ + id: 'search.elasticsearchEngine.translator', + }); /** * Search backend module for the Elasticsearch engine. * * @alpha - * @remarks - * - * If you need to customize the search engine beyond what is supported by the - * static configuration, you can create a custom module using the `ElasticSearchSearchEngine`. - * - * For example, this lets you configure your own query translator: - * - * ```ts - * export const searchModuleElasticsearchEngine = createBackendModule({ - * moduleId: 'elasticsearchEngine', - * pluginId: 'search', - * register(env) { - * env.registerInit({ - * deps: { - * searchEngineRegistry: searchEngineRegistryExtensionPoint, - * logger: coreServices.logger, - * config: coreServices.rootConfig, - * }, - * async init({ searchEngineRegistry, logger, config }) { - * searchEngineRegistry.setSearchEngine( - * await ElasticSearchSearchEngine.fromConfig({ - * logger, - * config, - * translator(query) { - * return ... // translated query - * } - * }), - * ); - * }, - * }); - * }, - * }); - * ``` */ export const searchModuleElasticsearchEngine = createBackendModule({ moduleId: 'elasticsearchEngine', pluginId: 'search', register(env) { + let translator: ElasticSearchQueryTranslator | undefined; + + env.registerExtensionPoint(elasticsearchTranslatorExtensionPoint, { + setTranslator(newTranslator) { + if (translator) { + throw new Error( + 'ElasticSearch query translator may only be set once', + ); + } + translator = newTranslator; + }, + }); + env.registerInit({ deps: { searchEngineRegistry: searchEngineRegistryExtensionPoint, @@ -73,6 +72,7 @@ export const searchModuleElasticsearchEngine = createBackendModule({ await ElasticSearchSearchEngine.fromConfig({ logger, config, + translator, }), ); }, From fb93323201bf7f9f626ca44cedce2177bb1bcd38 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Sat, 12 Aug 2023 12:40:30 +0200 Subject: [PATCH 237/372] catalog-backend-module-msgraph: move alpha options to extension point Signed-off-by: Patrik Oldsberg --- .changeset/loud-wasps-smoke.md | 5 ++ .../alpha-api-report.md | 22 +++-- ...ogModuleMicrosoftGraphOrgEntityProvider.ts | 87 +++++++++++++++---- .../src/module/index.ts | 7 +- 4 files changed, 96 insertions(+), 25 deletions(-) create mode 100644 .changeset/loud-wasps-smoke.md diff --git a/.changeset/loud-wasps-smoke.md b/.changeset/loud-wasps-smoke.md new file mode 100644 index 0000000000..ca33bf27ac --- /dev/null +++ b/.changeset/loud-wasps-smoke.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-catalog-backend-module-msgraph': patch +--- + +The alpha `catalogModuleMicrosoftGraphOrgEntityProvider` export no longer accepts options. Transformers are now instead configured via the `microsoftGraphOrgEntityProviderTransformExtensionPoint`. diff --git a/plugins/catalog-backend-module-msgraph/alpha-api-report.md b/plugins/catalog-backend-module-msgraph/alpha-api-report.md index 0fa093a1bc..6d877ba713 100644 --- a/plugins/catalog-backend-module-msgraph/alpha-api-report.md +++ b/plugins/catalog-backend-module-msgraph/alpha-api-report.md @@ -4,6 +4,7 @@ ```ts import { BackendFeature } from '@backstage/backend-plugin-api'; +import { ExtensionPoint } from '@backstage/backend-plugin-api'; import { GroupTransformer } from '@backstage/plugin-catalog-backend-module-msgraph'; import { OrganizationTransformer } from '@backstage/plugin-catalog-backend-module-msgraph'; import { UserTransformer } from '@backstage/plugin-catalog-backend-module-msgraph'; @@ -12,12 +13,21 @@ import { UserTransformer } from '@backstage/plugin-catalog-backend-module-msgrap export const catalogModuleMicrosoftGraphOrgEntityProvider: () => BackendFeature; // @alpha -export interface CatalogModuleMicrosoftGraphOrgEntityProviderOptions { - groupTransformer?: GroupTransformer | Record; - organizationTransformer?: - | OrganizationTransformer - | Record; - userTransformer?: UserTransformer | Record; +export const microsoftGraphOrgEntityProviderTransformExtensionPoint: ExtensionPoint; + +// @alpha +export interface MicrosoftGraphOrgEntityProviderTransformsExtensionPoint { + setGroupTransformer( + transformer: GroupTransformer | Record, + ): void; + setOrganizationTransformer( + transformer: + | OrganizationTransformer + | Record, + ): void; + setUserTransformer( + transformer: UserTransformer | Record, + ): void; } // (No @packageDocumentation comment for this package) diff --git a/plugins/catalog-backend-module-msgraph/src/module/catalogModuleMicrosoftGraphOrgEntityProvider.ts b/plugins/catalog-backend-module-msgraph/src/module/catalogModuleMicrosoftGraphOrgEntityProvider.ts index 2d3e1dd4d4..b0d22ab0f4 100644 --- a/plugins/catalog-backend-module-msgraph/src/module/catalogModuleMicrosoftGraphOrgEntityProvider.ts +++ b/plugins/catalog-backend-module-msgraph/src/module/catalogModuleMicrosoftGraphOrgEntityProvider.ts @@ -17,6 +17,7 @@ import { coreServices, createBackendModule, + createExtensionPoint, } from '@backstage/backend-plugin-api'; import { loggerToWinstonLogger } from '@backstage/backend-common'; import { catalogProcessingExtensionPoint } from '@backstage/plugin-catalog-node/alpha'; @@ -28,32 +29,50 @@ import { import { MicrosoftGraphOrgEntityProvider } from '../processors'; /** - * Options for {@link catalogModuleMicrosoftGraphOrgEntityProvider}. + * Interface for {@link microsoftGraphOrgEntityProviderTransformExtensionPoint}. * * @alpha */ -export interface CatalogModuleMicrosoftGraphOrgEntityProviderOptions { +export interface MicrosoftGraphOrgEntityProviderTransformsExtensionPoint { /** - * The function that transforms a user entry in msgraph to an entity. + * Set the function that transforms a user entry in msgraph to an entity. * Optionally, you can pass separate transformers per provider ID. */ - userTransformer?: UserTransformer | Record; + setUserTransformer( + transformer: UserTransformer | Record, + ): void; /** - * The function that transforms a group entry in msgraph to an entity. + * Set the function that transforms a group entry in msgraph to an entity. * Optionally, you can pass separate transformers per provider ID. */ - groupTransformer?: GroupTransformer | Record; + setGroupTransformer( + transformer: GroupTransformer | Record, + ): void; /** - * The function that transforms an organization entry in msgraph to an entity. + * Set the function that transforms an organization entry in msgraph to an entity. * Optionally, you can pass separate transformers per provider ID. */ - organizationTransformer?: - | OrganizationTransformer - | Record; + setOrganizationTransformer( + transformer: + | OrganizationTransformer + | Record, + ): void; } +/** + * Extension point used to customize the transforms used by the {@link catalogModuleMicrosoftGraphOrgEntityProvider}. + * + * @alpha + */ +export const microsoftGraphOrgEntityProviderTransformExtensionPoint = + createExtensionPoint( + { + id: 'catalog.microsoftGraphOrgEntityProvider.transforms', + }, + ); + /** * Registers the MicrosoftGraphOrgEntityProvider with the catalog processing extension point. * @@ -63,10 +82,44 @@ export const catalogModuleMicrosoftGraphOrgEntityProvider = createBackendModule( { pluginId: 'catalog', moduleId: 'microsoftGraphOrgEntityProvider', - register( - env, - options?: CatalogModuleMicrosoftGraphOrgEntityProviderOptions, - ) { + register(env) { + let userTransformer: + | UserTransformer + | Record + | undefined; + let groupTransformer: + | GroupTransformer + | Record + | undefined; + let organizationTransformer: + | OrganizationTransformer + | Record + | undefined; + + env.registerExtensionPoint( + microsoftGraphOrgEntityProviderTransformExtensionPoint, + { + setUserTransformer(transformer) { + if (userTransformer) { + throw new Error('User transformer may only be set once'); + } + userTransformer = transformer; + }, + setGroupTransformer(transformer) { + if (groupTransformer) { + throw new Error('Group transformer may only be set once'); + } + groupTransformer = transformer; + }, + setOrganizationTransformer(transformer) { + if (organizationTransformer) { + throw new Error('Organization transformer may only be set once'); + } + organizationTransformer = transformer; + }, + }, + ); + env.registerInit({ deps: { catalog: catalogProcessingExtensionPoint, @@ -77,11 +130,11 @@ export const catalogModuleMicrosoftGraphOrgEntityProvider = createBackendModule( async init({ catalog, config, logger, scheduler }) { catalog.addEntityProvider( MicrosoftGraphOrgEntityProvider.fromConfig(config, { - groupTransformer: options?.groupTransformer, logger: loggerToWinstonLogger(logger), - organizationTransformer: options?.organizationTransformer, scheduler, - userTransformer: options?.userTransformer, + userTransformer: userTransformer, + groupTransformer: groupTransformer, + organizationTransformer: organizationTransformer, }), ); }, diff --git a/plugins/catalog-backend-module-msgraph/src/module/index.ts b/plugins/catalog-backend-module-msgraph/src/module/index.ts index f53f41141c..ef45c6a135 100644 --- a/plugins/catalog-backend-module-msgraph/src/module/index.ts +++ b/plugins/catalog-backend-module-msgraph/src/module/index.ts @@ -14,5 +14,8 @@ * limitations under the License. */ -export { catalogModuleMicrosoftGraphOrgEntityProvider } from './catalogModuleMicrosoftGraphOrgEntityProvider'; -export type { CatalogModuleMicrosoftGraphOrgEntityProviderOptions } from './catalogModuleMicrosoftGraphOrgEntityProvider'; +export { + catalogModuleMicrosoftGraphOrgEntityProvider, + microsoftGraphOrgEntityProviderTransformExtensionPoint, + type MicrosoftGraphOrgEntityProviderTransformsExtensionPoint, +} from './catalogModuleMicrosoftGraphOrgEntityProvider'; From 57a10c6c69cc0bfb6033626f8c8513eb58347ca5 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Sat, 12 Aug 2023 13:58:08 +0200 Subject: [PATCH 238/372] backend-app-api: validate extension point deps Signed-off-by: Patrik Oldsberg --- .changeset/quick-cups-float.md | 5 +++ .../src/wiring/BackendInitializer.test.ts | 32 +++++++++++++++++++ .../src/wiring/BackendInitializer.ts | 23 +++++++++---- 3 files changed, 53 insertions(+), 7 deletions(-) create mode 100644 .changeset/quick-cups-float.md diff --git a/.changeset/quick-cups-float.md b/.changeset/quick-cups-float.md new file mode 100644 index 0000000000..21a2f856ec --- /dev/null +++ b/.changeset/quick-cups-float.md @@ -0,0 +1,5 @@ +--- +'@backstage/backend-app-api': patch +--- + +Add validation to make sure that extension points do not cross plugin boundaries. diff --git a/packages/backend-app-api/src/wiring/BackendInitializer.test.ts b/packages/backend-app-api/src/wiring/BackendInitializer.test.ts index ba637b7b5b..b90bcf6691 100644 --- a/packages/backend-app-api/src/wiring/BackendInitializer.test.ts +++ b/packages/backend-app-api/src/wiring/BackendInitializer.test.ts @@ -294,4 +294,36 @@ describe('BackendInitializer', () => { "Circular dependency detected for modules of plugin 'test', 'modA' -> 'modB' -> 'modA'", ); }); + + it('should reject modules that depend on extension points other plugins', async () => { + const init = new BackendInitializer(new ServiceRegistry(baseFactories)); + const extA = createExtensionPoint({ id: 'a' }); + init.add( + createBackendPlugin({ + pluginId: 'testA', + register(reg) { + reg.registerExtensionPoint(extA, 'a'); + reg.registerInit({ + deps: {}, + async init() {}, + }); + }, + })(), + ); + init.add( + createBackendModule({ + pluginId: 'testB', + moduleId: 'mod', + register(reg) { + reg.registerInit({ + deps: { ext: extA }, + async init() {}, + }); + }, + })(), + ); + await expect(init.start()).rejects.toThrow( + "Extension point registered for plugin 'testA' may not be used by module for plugin 'testB'", + ); + }); }); diff --git a/packages/backend-app-api/src/wiring/BackendInitializer.ts b/packages/backend-app-api/src/wiring/BackendInitializer.ts index 06201dfb2b..f71256d04e 100644 --- a/packages/backend-app-api/src/wiring/BackendInitializer.ts +++ b/packages/backend-app-api/src/wiring/BackendInitializer.ts @@ -42,7 +42,10 @@ export interface BackendRegisterInit { export class BackendInitializer { #startPromise?: Promise; #features = new Array(); - #extensionPoints = new Map, unknown>(); + #extensionPoints = new Map< + ExtensionPoint, + { impl: unknown; pluginId: string } + >(); #serviceHolder: EnumerableServiceHolder; constructor(serviceHolder: EnumerableServiceHolder) { @@ -57,11 +60,14 @@ export class BackendInitializer { const missingRefs = new Set(); for (const [name, ref] of Object.entries(deps)) { - const extensionPoint = this.#extensionPoints.get( - ref as ExtensionPoint, - ); - if (extensionPoint) { - result.set(name, extensionPoint); + const ep = this.#extensionPoints.get(ref as ExtensionPoint); + if (ep) { + if (ep.pluginId !== pluginId) { + throw new Error( + `Extension point registered for plugin '${ep.pluginId}' may not be used by module for plugin '${pluginId}'`, + ); + } + result.set(name, ep.impl); } else { const impl = await this.#serviceHolder.get( ref as ServiceRef, @@ -169,7 +175,10 @@ export class BackendInitializer { `ExtensionPoint with ID '${extRef.id}' is already registered`, ); } - this.#extensionPoints.set(extRef, extImpl); + this.#extensionPoints.set(extRef, { + impl: extImpl, + pluginId: r.pluginId, + }); provides.add(extRef); } } From 6711f7739ae92c8ec3e244150fcfc4db12cf0b81 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Sat, 12 Aug 2023 14:54:30 +0200 Subject: [PATCH 239/372] Update .changeset/warm-peas-hang.md Signed-off-by: Patrik Oldsberg --- .changeset/warm-peas-hang.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.changeset/warm-peas-hang.md b/.changeset/warm-peas-hang.md index a8a40c1ccd..5359e2c547 100644 --- a/.changeset/warm-peas-hang.md +++ b/.changeset/warm-peas-hang.md @@ -1,5 +1,5 @@ --- -'@backstage/plugin-sonarqube-backend': minor +'@backstage/plugin-sonarqube-backend': patch --- Added optional `externalBaseUrl` config for setting a different frontend URL From 64afdacfd4e23d455b7330c2089f2a8665178b08 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Sat, 12 Aug 2023 14:56:53 +0200 Subject: [PATCH 240/372] Update .changeset/clever-adults-add.md Signed-off-by: Patrik Oldsberg --- .changeset/clever-adults-add.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.changeset/clever-adults-add.md b/.changeset/clever-adults-add.md index c5ca2de902..7da5dda4d0 100644 --- a/.changeset/clever-adults-add.md +++ b/.changeset/clever-adults-add.md @@ -1,5 +1,5 @@ --- -'@backstage/plugin-pagerduty': minor +'@backstage/plugin-pagerduty': patch --- -Add new 'disableChangeEvents' attribute to PagerDuty Card to hide the Change Events tab and disable fetching of change events for the PagerDuty service. +Add new `disableChangeEvents` prop to `EntityPagerDutyCard` to hide the Change Events tab and disable fetching of change events for the PagerDuty service. From fe742d0c8559effd3d6af95702865f999b1d17bc Mon Sep 17 00:00:00 2001 From: Jamie Klassen Date: Sat, 12 Aug 2023 10:19:20 -0400 Subject: [PATCH 241/372] microsite: remove CFP banner Since the CFP itself has been closed since 2023-08-06 Signed-off-by: Jamie Klassen --- microsite/src/pages/home/_home.tsx | 21 --------------------- 1 file changed, 21 deletions(-) diff --git a/microsite/src/pages/home/_home.tsx b/microsite/src/pages/home/_home.tsx index 07e05068c6..ddcfed7d03 100644 --- a/microsite/src/pages/home/_home.tsx +++ b/microsite/src/pages/home/_home.tsx @@ -32,27 +32,6 @@ const HomePage = () => { - {!hiddenNewsletterBanner && (
Date: Sat, 12 Aug 2023 20:03:48 +0530 Subject: [PATCH 242/372] Adding alert popup whenever user deletes the entities from playlist entity table (#19219) * Limit the use of the same shortcut name when adding a shortcut Signed-off-by: AmbrishRamachandiran * Limit the use of the same shortcut name when adding a shortcut Signed-off-by: AmbrishRamachandiran * Limit the use of the same shortcut name when adding a shortcut Signed-off-by: AmbrishRamachandiran * Limit the use of the same shortcut name when adding a shortcut Signed-off-by: AmbrishRamachandiran * Limit the use of the same shortcut name when adding a shortcut Signed-off-by: AmbrishRamachandiran * Limit the use of the same shortcut name when adding a shortcut Signed-off-by: AmbrishRamachandiran * Limit the use of the same shortcut name when adding a shortcut Signed-off-by: AmbrishRamachandiran * Limit the use of the same shortcut name when adding a shortcut Signed-off-by: AmbrishRamachandiran * Limit the use of the same shortcut name when adding a shortcut- added test cases Signed-off-by: AmbrishRamachandiran * Limit the use of the same shortcut name when adding a shortcut- error message changed Signed-off-by: AmbrishRamachandiran * Limit the use of the same shortcut name when adding a shortcut- error message changed Signed-off-by: AmbrishRamachandiran * Limit the use of the same shortcut name when adding a shortcut- test file changes Signed-off-by: AmbrishRamachandiran * Limit the use of the same shortcut name when adding a shortcut- test file changes added Signed-off-by: AmbrishRamachandiran * Limit the use of the same shortcut name when adding a shortcut- test file changes removed Signed-off-by: AmbrishRamachandiran * Limit the use of the same shortcut name and url when adding a shortcut with test cases Signed-off-by: AmbrishRamachandiran * Limit the use of the same shortcut name and url when adding a shortcut with test cases Signed-off-by: AmbrishRamachandiran * Limit the use of the same shortcut name and url when adding a shortcut with test cases Signed-off-by: AmbrishRamachandiran * Limit the use of the same shortcut name and url when adding a shortcut with test cases Signed-off-by: AmbrishRamachandiran * Limit the use of the same shortcut name and url when adding a shortcut with test case error message added Signed-off-by: AmbrishRamachandiran * Limit the use of the same shortcut name and url when adding a shortcut with test case error message removed Signed-off-by: AmbrishRamachandiran * Limit the use of the same shortcut name and url when adding a shortcut fixed review changes Signed-off-by: AmbrishRamachandiran * Limit the use of the same shortcut name and url when adding a shortcut fixed review changes Signed-off-by: AmbrishRamachandiran * Added play list alert when deleting playlist from table Signed-off-by: AmbrishRamachandiran * Added play list alert when deleting playlist from table Signed-off-by: AmbrishRamachandiran * Added play list alert when deleting playlist from table Signed-off-by: AmbrishRamachandiran * Added play list alert when deleting playlist from table Signed-off-by: AmbrishRamachandiran * Added play list alert when deleting playlist from table Signed-off-by: AmbrishRamachandiran * Added play list alert when deleting playlist from table changes added as per review Signed-off-by: AmbrishRamachandiran * Playlist entity remove review changes added Signed-off-by: AmbrishRamachandiran * Playlist entity remove review changes added Signed-off-by: AmbrishRamachandiran * Playlist entity remove review changes added Signed-off-by: AmbrishRamachandiran * Playlist entity remove review changes added Signed-off-by: AmbrishRamachandiran --------- Signed-off-by: AmbrishRamachandiran --- .changeset/large-singers-chew.md | 5 +++++ .../PlaylistPage/PlaylistEntitiesTable.tsx | 19 +++++++++++++++++-- 2 files changed, 22 insertions(+), 2 deletions(-) create mode 100644 .changeset/large-singers-chew.md diff --git a/.changeset/large-singers-chew.md b/.changeset/large-singers-chew.md new file mode 100644 index 0000000000..67ff4ffd0d --- /dev/null +++ b/.changeset/large-singers-chew.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-playlist': patch +--- + +Adding alert popup whenever user delete the entities from playlist entity table diff --git a/plugins/playlist/src/components/PlaylistPage/PlaylistEntitiesTable.tsx b/plugins/playlist/src/components/PlaylistPage/PlaylistEntitiesTable.tsx index 3d8efe3bc5..3d6ffc5f8c 100644 --- a/plugins/playlist/src/components/PlaylistPage/PlaylistEntitiesTable.tsx +++ b/plugins/playlist/src/components/PlaylistPage/PlaylistEntitiesTable.tsx @@ -21,7 +21,7 @@ import { Table, TableFilter, } from '@backstage/core-components'; -import { errorApiRef, useApi } from '@backstage/core-plugin-api'; +import { errorApiRef, useApi, alertApiRef } from '@backstage/core-plugin-api'; import { EntityRefLink } from '@backstage/plugin-catalog-react'; import { usePermission } from '@backstage/plugin-permission-react'; import { permissions } from '@backstage/plugin-playlist-common'; @@ -42,6 +42,7 @@ export const PlaylistEntitiesTable = ({ }) => { const errorApi = useApi(errorApiRef); const playlistApi = useApi(playlistApiRef); + const alertApi = useApi(alertApiRef); const [openAddEntitiesDrawer, setOpenAddEntitiesDrawer] = useState(false); const { allowed: editAllowed } = usePermission({ @@ -73,16 +74,30 @@ export const PlaylistEntitiesTable = ({ const removeEntity = useCallback( async (_, entity: Entity | Entity[]) => { try { + const entityArray = [entity].flat(); + const entityNames = entityArray.map( + item => item.metadata.title ?? item.metadata.name, + ); await playlistApi.removePlaylistEntities( playlistId, [entity].flat().map(stringifyEntityRef), ); loadEntities(); + const message = + entityNames.length === 1 + ? `Removed entity '${entityNames[0]}'` + : `Removed entities: '${entityNames.join("', '")}'`; + + alertApi.post({ + message, + severity: 'success', + display: 'transient', + }); } catch (e) { errorApi.post(e); } }, - [errorApi, loadEntities, playlistApi, playlistId], + [errorApi, loadEntities, playlistApi, playlistId, alertApi], ); const singularTitleLowerCase = useTitle({ From 11615c0ab6515c88f0b2cf9d49cb73cbffbd431e Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Sat, 12 Aug 2023 16:49:58 +0200 Subject: [PATCH 243/372] Update verify_e2e-kubernetes.yml Signed-off-by: Patrik Oldsberg --- .github/workflows/verify_e2e-kubernetes.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/verify_e2e-kubernetes.yml b/.github/workflows/verify_e2e-kubernetes.yml index 49fc8f0aa1..4c25c259c5 100644 --- a/.github/workflows/verify_e2e-kubernetes.yml +++ b/.github/workflows/verify_e2e-kubernetes.yml @@ -4,7 +4,7 @@ on: pull_request: paths: - 'yarn.lock' - - '.github/workflows/verify_kubernetes.yml' + - '.github/workflows/verify_e2e-kubernetes.yml' - 'packages/backend-common/src/**' jobs: From e49318ef9e68e99859f10d2e04a5ed7f31a123f9 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Sat, 12 Aug 2023 16:50:19 +0200 Subject: [PATCH 244/372] Update verify_e2e-kubernetes-noop.yml Signed-off-by: Patrik Oldsberg --- .github/workflows/verify_e2e-kubernetes-noop.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/verify_e2e-kubernetes-noop.yml b/.github/workflows/verify_e2e-kubernetes-noop.yml index ee9dbc69e2..ac49fbc469 100644 --- a/.github/workflows/verify_e2e-kubernetes-noop.yml +++ b/.github/workflows/verify_e2e-kubernetes-noop.yml @@ -6,7 +6,7 @@ on: pull_request: paths-ignore: - 'yarn.lock' - - '.github/workflows/verify_kubernetes.yml' + - '.github/workflows/verify_e2e-kubernetes.yml' - 'packages/backend-common/src/**' jobs: From f09b2004267ea079559cd0ca8a38c3886850bd48 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Sat, 12 Aug 2023 17:36:46 +0200 Subject: [PATCH 245/372] Update .changeset/orange-pandas-worry.md Signed-off-by: Patrik Oldsberg --- .changeset/orange-pandas-worry.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.changeset/orange-pandas-worry.md b/.changeset/orange-pandas-worry.md index 78bd1fad79..8fd0553c29 100644 --- a/.changeset/orange-pandas-worry.md +++ b/.changeset/orange-pandas-worry.md @@ -2,4 +2,4 @@ '@backstage/plugin-scaffolder-backend': patch --- -docs: add examples for github:repo:create and github:repo:push scaffolder actions +Add examples for `github:repo:create` and `github:repo:push` scaffolder actions. From 039c3fac5c475a514073267ffbd037ffa81a818d Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Sun, 13 Aug 2023 11:42:08 +0200 Subject: [PATCH 246/372] Update .changeset/ninety-panthers-guess.md Signed-off-by: Patrik Oldsberg --- .changeset/ninety-panthers-guess.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.changeset/ninety-panthers-guess.md b/.changeset/ninety-panthers-guess.md index cc6d531aac..0438157bf5 100644 --- a/.changeset/ninety-panthers-guess.md +++ b/.changeset/ninety-panthers-guess.md @@ -2,4 +2,4 @@ '@backstage/plugin-catalog-backend-module-github': patch --- -changed visibilityfilter and visibility to lowercase to prevent case-sensitive error. +Fixed a bug where the visibility filter was case sensitive and casting was inconsistent. From 868afdff1f83aa218d173e8ad3ec22a8654e3836 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 13 Aug 2023 10:16:45 +0000 Subject: [PATCH 247/372] Update dependency @azure/identity to v3.2.4 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 a9e318fe9e..294e9c55dd 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1657,8 +1657,8 @@ __metadata: linkType: hard "@azure/identity@npm:^3.2.1": - version: 3.2.3 - resolution: "@azure/identity@npm:3.2.3" + version: 3.2.4 + resolution: "@azure/identity@npm:3.2.4" dependencies: "@azure/abort-controller": ^1.0.0 "@azure/core-auth": ^1.3.0 @@ -1676,7 +1676,7 @@ __metadata: stoppable: ^1.1.0 tslib: ^2.2.0 uuid: ^8.3.0 - checksum: 8f74831a358f41490056fb1978d9214542f5e7a788cc607ded3c475e1e61784da2cb6409434cb736c66291c24b755dbab42ec7b93b218ca535dce3363183c64b + checksum: 71e33542742113c0c77f948fac3c1554cc8418cf0063f3d209bc357c021b49a42a5e0fef1e8b946fbf250feefa705727275b936ac7d8efad24f79c01abddb740 languageName: node linkType: hard From a54cd411639edd44174750def85aab1476d9099f Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 13 Aug 2023 10:56:54 +0000 Subject: [PATCH 248/372] Update dependency @types/pluralize to ^0.0.30 Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .changeset/renovate-76185f9.md | 5 +++++ plugins/cost-insights/package.json | 2 +- yarn.lock | 10 +++++----- 3 files changed, 11 insertions(+), 6 deletions(-) create mode 100644 .changeset/renovate-76185f9.md diff --git a/.changeset/renovate-76185f9.md b/.changeset/renovate-76185f9.md new file mode 100644 index 0000000000..5e23f3cfda --- /dev/null +++ b/.changeset/renovate-76185f9.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-cost-insights': patch +--- + +Updated dependency `@types/pluralize` to `^0.0.30`. diff --git a/plugins/cost-insights/package.json b/plugins/cost-insights/package.json index e626e8e173..b1ce040c4a 100644 --- a/plugins/cost-insights/package.json +++ b/plugins/cost-insights/package.json @@ -70,7 +70,7 @@ "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^14.0.0", "@types/node": "^16.11.26", - "@types/pluralize": "^0.0.29", + "@types/pluralize": "^0.0.30", "@types/recharts": "^1.8.14", "@types/regression": "^2.0.0", "@types/yup": "^0.29.13", diff --git a/yarn.lock b/yarn.lock index 294e9c55dd..1b20a16f1b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5988,7 +5988,7 @@ __metadata: "@testing-library/react": ^12.1.3 "@testing-library/user-event": ^14.0.0 "@types/node": ^16.11.26 - "@types/pluralize": ^0.0.29 + "@types/pluralize": ^0.0.30 "@types/react": ^16.13.1 || ^17.0.0 "@types/recharts": ^1.8.14 "@types/regression": ^2.0.0 @@ -17711,10 +17711,10 @@ __metadata: languageName: node linkType: hard -"@types/pluralize@npm:^0.0.29": - version: 0.0.29 - resolution: "@types/pluralize@npm:0.0.29" - checksum: db7732b733ba1dc59f080f87364c9f985c1ae9f1e5ec5fcefb83c1327149e01ecac42766352eb7b19b117cf39defa99cf514629f3666968a3bdeb00e74f2a97e +"@types/pluralize@npm:^0.0.30": + version: 0.0.30 + resolution: "@types/pluralize@npm:0.0.30" + checksum: 7a9a4a24aac1f74bd63e592a824ebec114486e0635a94496e92aa37fa388fac585be108d3ccfc7b2c490963679ec4900fbf394d22fa6cbf419f22cc499ab5a29 languageName: node linkType: hard From 4b6d41737aad8997c5e9b13971c208b76269338f Mon Sep 17 00:00:00 2001 From: Adam Harvey Date: Sun, 13 Aug 2023 08:28:41 -0400 Subject: [PATCH 249/372] fix(kubernetes): Typos in exported attributes (#19276) * chore: Fix minor test description typo Signed-off-by: Adam Harvey * fix(kubernetes): Typo attributes Signed-off-by: Adam Harvey * fix(kubernetes): Fix typo in error detection attribute Signed-off-by: Adam Harvey * fix(kubernetes): Update report with fixed attribute typos Signed-off-by: Adam Harvey * chore(kubernetes): Add changeset Signed-off-by: Adam Harvey --------- Signed-off-by: Adam Harvey --- .changeset/modern-impalas-wave.md | 8 ++++++++ plugins/kubernetes/api-report.md | 4 ++-- .../components/Pods/ErrorList/ErrorList.test.tsx | 2 +- .../components/Pods/FixDialog/FixDialog.test.tsx | 6 +++--- .../components/Pods/PodDrawer/ContainerCard.tsx | 10 +++++----- .../components/Pods/PodDrawer/PodDrawer.test.tsx | 2 +- .../src/components/Pods/PodDrawer/PodDrawer.tsx | 10 +++++----- .../src/components/Pods/PodsTable.test.tsx | 2 +- .../ResourceUtilization.test.tsx | 4 ++-- .../ResourceUtilization/ResourceUtilization.tsx | 6 +++--- .../src/error-detection/deployments.ts | 2 +- .../src/error-detection/error-detection.test.ts | 16 ++++++++-------- plugins/kubernetes/src/error-detection/hpas.ts | 2 +- plugins/kubernetes/src/error-detection/pods.ts | 6 +++--- plugins/kubernetes/src/error-detection/types.ts | 2 +- .../src/hooks/useMatchingErrors.test.tsx | 2 +- plugins/kubernetes/src/utils/pod.tsx | 6 +++--- plugins/kubernetes/src/utils/resources.ts | 2 +- 18 files changed, 50 insertions(+), 42 deletions(-) create mode 100644 .changeset/modern-impalas-wave.md diff --git a/.changeset/modern-impalas-wave.md b/.changeset/modern-impalas-wave.md new file mode 100644 index 0000000000..b898838a4c --- /dev/null +++ b/.changeset/modern-impalas-wave.md @@ -0,0 +1,8 @@ +--- +'@backstage/plugin-kubernetes': minor +--- + +**BREAKING**: Fixed typos in exported module attributes. Many users may see no changes, but if you have customized the plugin output, you may have to rename the following: + +- Component attribute: `` to `` +- Interface attribute: `DetectedError.occuranceCount` to `DetectedError.occurrenceCount`. diff --git a/plugins/kubernetes/api-report.md b/plugins/kubernetes/api-report.md index 7cef17af7b..9d67ecba83 100644 --- a/plugins/kubernetes/api-report.md +++ b/plugins/kubernetes/api-report.md @@ -137,7 +137,7 @@ export interface DetectedError { // (undocumented) message: string; // (undocumented) - occuranceCount: number; + occurrenceCount: number; // Warning: (ae-forgotten-export) The symbol "ProposedFix" needs to be exported by the entry point index.d.ts // // (undocumented) @@ -714,7 +714,7 @@ export const ResourceUtilization: ({ title, usage, total, - totalFormated, + totalFormatted, }: ResourceUtilizationProps) => JSX.Element; // Warning: (ae-missing-release-tag) "Router" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal) diff --git a/plugins/kubernetes/src/components/Pods/ErrorList/ErrorList.test.tsx b/plugins/kubernetes/src/components/Pods/ErrorList/ErrorList.test.tsx index 3ee755becb..b05b4d2d9e 100644 --- a/plugins/kubernetes/src/components/Pods/ErrorList/ErrorList.test.tsx +++ b/plugins/kubernetes/src/components/Pods/ErrorList/ErrorList.test.tsx @@ -38,7 +38,7 @@ describe('ErrorList', () => { type: 'some-error', severity: 10, message: 'some error message', - occuranceCount: 1, + occurrenceCount: 1, sourceRef: { name: 'some-pod', namespace: 'some-namespace', diff --git a/plugins/kubernetes/src/components/Pods/FixDialog/FixDialog.test.tsx b/plugins/kubernetes/src/components/Pods/FixDialog/FixDialog.test.tsx index e779ab5f0d..68bfce9c96 100644 --- a/plugins/kubernetes/src/components/Pods/FixDialog/FixDialog.test.tsx +++ b/plugins/kubernetes/src/components/Pods/FixDialog/FixDialog.test.tsx @@ -50,7 +50,7 @@ describe('FixDialog', () => { type: 'some error type', severity: 10, message: 'some error message', - occuranceCount: 1, + occurrenceCount: 1, sourceRef: { name: 'some-pod', namespace: 'some-namespace', @@ -91,7 +91,7 @@ describe('FixDialog', () => { type: 'some error type', severity: 10, message: 'some error message', - occuranceCount: 1, + occurrenceCount: 1, sourceRef: { name: 'some-pod', namespace: 'some-namespace', @@ -132,7 +132,7 @@ describe('FixDialog', () => { type: 'some error type', severity: 10, message: 'some error message', - occuranceCount: 1, + occurrenceCount: 1, sourceRef: { name: 'some-pod', namespace: 'some-namespace', diff --git a/plugins/kubernetes/src/components/Pods/PodDrawer/ContainerCard.tsx b/plugins/kubernetes/src/components/Pods/PodDrawer/ContainerCard.tsx index 07389b67ed..44a9c57ae5 100644 --- a/plugins/kubernetes/src/components/Pods/PodDrawer/ContainerCard.tsx +++ b/plugins/kubernetes/src/components/Pods/PodDrawer/ContainerCard.tsx @@ -31,7 +31,7 @@ import { PodScope, PodLogsDialog } from '../PodLogs'; import { StructuredMetadataTable } from '@backstage/core-components'; import { ClientContainerStatus } from '@backstage/plugin-kubernetes-common'; import { ResourceUtilization } from '../../ResourceUtilization'; -import { bytesToMiB, formatMilicores } from '../../../utils/resources'; +import { bytesToMiB, formatMillicores } from '../../../utils/resources'; const getContainerHealthChecks = ( containerSpec: IContainer, @@ -186,7 +186,7 @@ export const ContainerCard: React.FC = ({ title="CPU requests" usage={containerMetrics.cpuUsage.currentUsage} total={containerMetrics.cpuUsage.requestTotal} - totalFormated={formatMilicores( + totalFormatted={formatMillicores( containerMetrics.cpuUsage.requestTotal, )} /> @@ -195,7 +195,7 @@ export const ContainerCard: React.FC = ({ title="CPU limits" usage={containerMetrics.cpuUsage.currentUsage} total={containerMetrics.cpuUsage.limitTotal} - totalFormated={formatMilicores( + totalFormatted={formatMillicores( containerMetrics.cpuUsage.limitTotal, )} /> @@ -204,7 +204,7 @@ export const ContainerCard: React.FC = ({ title="Memory requests" usage={containerMetrics.memoryUsage.currentUsage} total={containerMetrics.memoryUsage.requestTotal} - totalFormated={bytesToMiB( + totalFormatted={bytesToMiB( containerMetrics.memoryUsage.requestTotal, )} /> @@ -213,7 +213,7 @@ export const ContainerCard: React.FC = ({ title="Memory limits" usage={containerMetrics.memoryUsage.currentUsage} total={containerMetrics.memoryUsage.limitTotal} - totalFormated={bytesToMiB( + totalFormatted={bytesToMiB( containerMetrics.memoryUsage.limitTotal, )} /> diff --git a/plugins/kubernetes/src/components/Pods/PodDrawer/PodDrawer.test.tsx b/plugins/kubernetes/src/components/Pods/PodDrawer/PodDrawer.test.tsx index 2b71976d8a..9dcb77018b 100644 --- a/plugins/kubernetes/src/components/Pods/PodDrawer/PodDrawer.test.tsx +++ b/plugins/kubernetes/src/components/Pods/PodDrawer/PodDrawer.test.tsx @@ -56,7 +56,7 @@ describe('PodDrawer', () => { type: 'some-error', severity: 10, message: 'some error message', - occuranceCount: 1, + occurrenceCount: 1, sourceRef: { name: 'some-pod', namespace: 'some-namespace', diff --git a/plugins/kubernetes/src/components/Pods/PodDrawer/PodDrawer.tsx b/plugins/kubernetes/src/components/Pods/PodDrawer/PodDrawer.tsx index 82739be0fb..30588cd347 100644 --- a/plugins/kubernetes/src/components/Pods/PodDrawer/PodDrawer.tsx +++ b/plugins/kubernetes/src/components/Pods/PodDrawer/PodDrawer.tsx @@ -35,7 +35,7 @@ import { PendingPodContent } from './PendingPodContent'; import { ErrorList } from '../ErrorList'; import { usePodMetrics } from '../../../hooks/usePodMetrics'; import { ResourceUtilization } from '../../ResourceUtilization'; -import { bytesToMiB, formatMilicores } from '../../../utils/resources'; +import { bytesToMiB, formatMillicores } from '../../../utils/resources'; const useDrawerContentStyles = makeStyles((_theme: Theme) => createStyles({ @@ -109,13 +109,13 @@ export const PodDrawer = ({ podAndErrors, open }: PodDrawerProps) => { title="CPU requests" usage={podMetrics.cpu.currentUsage} total={podMetrics.cpu.requestTotal} - totalFormated={formatMilicores(podMetrics.cpu.requestTotal)} + totalFormatted={formatMillicores(podMetrics.cpu.requestTotal)} /> @@ -123,13 +123,13 @@ export const PodDrawer = ({ podAndErrors, open }: PodDrawerProps) => { title="Memory requests" usage={podMetrics.memory.currentUsage} total={podMetrics.memory.requestTotal} - totalFormated={bytesToMiB(podMetrics.memory.requestTotal)} + totalFormatted={bytesToMiB(podMetrics.memory.requestTotal)} /> diff --git a/plugins/kubernetes/src/components/Pods/PodsTable.test.tsx b/plugins/kubernetes/src/components/Pods/PodsTable.test.tsx index 4478d8c031..35402527f8 100644 --- a/plugins/kubernetes/src/components/Pods/PodsTable.test.tsx +++ b/plugins/kubernetes/src/components/Pods/PodsTable.test.tsx @@ -124,7 +124,7 @@ describe('PodsTable', () => { expect(getByText('requests: 1% of 64MiB')).toBeInTheDocument(); expect(getByText('limits: 0% of 128MiB')).toBeInTheDocument(); }); - it('should render placehoplder when empty metrics context', async () => { + it('should render placeholder when empty metrics context', async () => { const podNameToClientPodStatus = new Map(); const wrapper = kubernetesProviders( diff --git a/plugins/kubernetes/src/components/ResourceUtilization/ResourceUtilization.test.tsx b/plugins/kubernetes/src/components/ResourceUtilization/ResourceUtilization.test.tsx index 56ba0b7ef0..60087022a5 100644 --- a/plugins/kubernetes/src/components/ResourceUtilization/ResourceUtilization.test.tsx +++ b/plugins/kubernetes/src/components/ResourceUtilization/ResourceUtilization.test.tsx @@ -27,7 +27,7 @@ describe('ResourceUtilization', () => { title="some-title" usage="1000" total="10000" - totalFormated="15%" + totalFormatted="15%" />, ), ); @@ -43,7 +43,7 @@ describe('ResourceUtilization', () => { title="some-title" usage="1000" total="10000" - totalFormated="15%" + totalFormatted="15%" />, ), ); diff --git a/plugins/kubernetes/src/components/ResourceUtilization/ResourceUtilization.tsx b/plugins/kubernetes/src/components/ResourceUtilization/ResourceUtilization.tsx index 492ec0469b..75927958e6 100644 --- a/plugins/kubernetes/src/components/ResourceUtilization/ResourceUtilization.tsx +++ b/plugins/kubernetes/src/components/ResourceUtilization/ResourceUtilization.tsx @@ -29,7 +29,7 @@ export interface ResourceUtilizationProps { title: string; usage: number | string; total: number | string; - totalFormated: string; + totalFormatted: string; } // Visible for testing @@ -64,7 +64,7 @@ export const ResourceUtilization = ({ title, usage, total, - totalFormated, + totalFormatted, }: ResourceUtilizationProps) => { const utilization = currentToDeclaredResourceToPerc(usage, total); return ( @@ -72,7 +72,7 @@ export const ResourceUtilization = ({ {`${title}: ${totalFormated}`} + >{`${title}: ${totalFormatted}`} [] = [ kind: 'Deployment', apiGroup: 'apps/v1', }, - occuranceCount: 1, + occurrenceCount: 1, })); }, }, diff --git a/plugins/kubernetes/src/error-detection/error-detection.test.ts b/plugins/kubernetes/src/error-detection/error-detection.test.ts index c3dc060b9b..ae4605c3c5 100644 --- a/plugins/kubernetes/src/error-detection/error-detection.test.ts +++ b/plugins/kubernetes/src/error-detection/error-detection.test.ts @@ -164,7 +164,7 @@ describe('detectErrors', () => { 'The container other-side-car has crashed many times, it will be exponentially restarted until it stops crashing', type: 'logs', }, - occuranceCount: 1, + occurrenceCount: 1, type: 'container-waiting', }); @@ -186,7 +186,7 @@ describe('detectErrors', () => { message: 'back-off 5m0s restarting failed container=side-car pod=dice-roller-canary-7d64cd756c-55rfq_default(65ad28e3-5d51-4b4b-9bf8-4cb069803034)', severity: 4, - occuranceCount: 1, + occurrenceCount: 1, type: 'container-waiting', }); @@ -199,7 +199,7 @@ describe('detectErrors', () => { }, message: 'container=other-side-car restarted 123 times', severity: 4, - occuranceCount: 123, + occurrenceCount: 123, proposedFix: { container: 'other-side-car', errorType: 'Error', @@ -228,7 +228,7 @@ describe('detectErrors', () => { }, message: 'container=side-car restarted 38 times', severity: 4, - occuranceCount: 38, + occurrenceCount: 38, type: 'containers-restarting', }); }); @@ -246,7 +246,7 @@ describe('detectErrors', () => { expect(err1).toStrictEqual({ message: 'configmap "some-cm" not found', - occuranceCount: 1, + occurrenceCount: 1, proposedFix: { docsLink: 'https://kubernetes.io/docs/tasks/configure-pod-container/configure-pod-configmap/', @@ -300,7 +300,7 @@ describe('detectErrors', () => { }, message: 'Deployment does not have minimum availability.', severity: 6, - occuranceCount: 1, + occurrenceCount: 1, type: 'condition-message-present', }); }); @@ -336,7 +336,7 @@ describe('detectErrors', () => { message: 'Current number of replicas (10) is equal to the configured max number of replicas (10)', severity: 8, - occuranceCount: 1, + occurrenceCount: 1, type: 'hpa-max-current-replicas', }); }); @@ -469,7 +469,7 @@ describe('detectErrors', () => { expect(err1).toStrictEqual({ message: 'The container some-container failed to start properly, but is not crashing', - occuranceCount: 1, + occurrenceCount: 1, proposedFix: { errorType: 'ReadinessProbeFailed', podName: '', diff --git a/plugins/kubernetes/src/error-detection/hpas.ts b/plugins/kubernetes/src/error-detection/hpas.ts index 671e379a5a..6f15c119b6 100644 --- a/plugins/kubernetes/src/error-detection/hpas.ts +++ b/plugins/kubernetes/src/error-detection/hpas.ts @@ -37,7 +37,7 @@ const hpaErrorMappers: ErrorMapper[] = [ kind: 'HorizontalPodAutoscaler', apiGroup: 'autoscaling/v1', }, - occuranceCount: 1, + occurrenceCount: 1, }, ]; } diff --git a/plugins/kubernetes/src/error-detection/pods.ts b/plugins/kubernetes/src/error-detection/pods.ts index 638d1da56c..7c0a85db30 100644 --- a/plugins/kubernetes/src/error-detection/pods.ts +++ b/plugins/kubernetes/src/error-detection/pods.ts @@ -209,7 +209,7 @@ const podErrorMappers: ErrorMapper[] = [ kind: 'Pod', apiGroup: 'v1', }, - occuranceCount: 1, + occurrenceCount: 1, })); }, }, @@ -228,7 +228,7 @@ const podErrorMappers: ErrorMapper[] = [ kind: 'Pod', apiGroup: 'v1', }, - occuranceCount: 1, + occurrenceCount: 1, })); }, }, @@ -247,7 +247,7 @@ const podErrorMappers: ErrorMapper[] = [ kind: 'Pod', apiGroup: 'v1', }, - occuranceCount: cs.restartCount, + occurrenceCount: cs.restartCount, })); }, }, diff --git a/plugins/kubernetes/src/error-detection/types.ts b/plugins/kubernetes/src/error-detection/types.ts index 27dcbdd55b..4148056171 100644 --- a/plugins/kubernetes/src/error-detection/types.ts +++ b/plugins/kubernetes/src/error-detection/types.ts @@ -51,7 +51,7 @@ export interface DetectedError { message: string; proposedFix?: ProposedFix; sourceRef: ResourceRef; - occuranceCount: number; + occurrenceCount: number; } export type ProposedFix = LogSolution | DocsSolution | EventsSolution; diff --git a/plugins/kubernetes/src/hooks/useMatchingErrors.test.tsx b/plugins/kubernetes/src/hooks/useMatchingErrors.test.tsx index b823492fff..4ed4dbd73c 100644 --- a/plugins/kubernetes/src/hooks/useMatchingErrors.test.tsx +++ b/plugins/kubernetes/src/hooks/useMatchingErrors.test.tsx @@ -24,7 +24,7 @@ const genericErrorWithRef = (resourceRef: ResourceRef): DetectedError => { type: 'some-error', severity: 10, message: 'some error message', - occuranceCount: 1, + occurrenceCount: 1, sourceRef: resourceRef, proposedFix: { type: 'logs', diff --git a/plugins/kubernetes/src/utils/pod.tsx b/plugins/kubernetes/src/utils/pod.tsx index f0517f4ec0..9c0ce898a3 100644 --- a/plugins/kubernetes/src/utils/pod.tsx +++ b/plugins/kubernetes/src/utils/pod.tsx @@ -29,7 +29,7 @@ import { } from '@backstage/core-components'; import { ClientPodStatus } from '@backstage/plugin-kubernetes-common'; import { Pod } from 'kubernetes-models/v1/Pod'; -import { bytesToMiB, formatMilicores } from './resources'; +import { bytesToMiB, formatMillicores } from './resources'; export const imageChips = (pod: V1Pod): ReactNode => { const containerStatuses = pod.status?.containerStatuses ?? []; @@ -148,11 +148,11 @@ export const podStatusToCpuUtil = (podStatus: ClientPodStatus): ReactNode => { value={`requests: ${currentToDeclaredResourceToPerc( currentUsage, cpuUtil.requestTotal, - )} of ${formatMilicores(cpuUtil.requestTotal)}`} + )} of ${formatMillicores(cpuUtil.requestTotal)}`} subvalue={`limits: ${currentToDeclaredResourceToPerc( currentUsage, cpuUtil.limitTotal, - )} of ${formatMilicores(cpuUtil.limitTotal)}`} + )} of ${formatMillicores(cpuUtil.limitTotal)}`} /> ); }; diff --git a/plugins/kubernetes/src/utils/resources.ts b/plugins/kubernetes/src/utils/resources.ts index b1d8dfdc2e..916aa3463c 100644 --- a/plugins/kubernetes/src/utils/resources.ts +++ b/plugins/kubernetes/src/utils/resources.ts @@ -33,6 +33,6 @@ export const bytesToMiB = (value: string | number): string => { return `${(parseFloat(value.toString()) / 1024 / 1024).toFixed(0)}MiB`; }; -export const formatMilicores = (value: string | number): string => { +export const formatMillicores = (value: string | number): string => { return `${(parseFloat(value.toString()) * 1000).toFixed(0)}m`; }; From 1bed05bbab1105384d2af5da5899c5085fc47d9a Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Sun, 13 Aug 2023 15:20:46 +0200 Subject: [PATCH 250/372] Update .changeset/ninety-panthers-guess.md Signed-off-by: Patrik Oldsberg --- .changeset/ninety-panthers-guess.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.changeset/ninety-panthers-guess.md b/.changeset/ninety-panthers-guess.md index 0438157bf5..a4b58718e5 100644 --- a/.changeset/ninety-panthers-guess.md +++ b/.changeset/ninety-panthers-guess.md @@ -2,4 +2,5 @@ '@backstage/plugin-catalog-backend-module-github': patch --- -Fixed a bug where the visibility filter was case sensitive and casting was inconsistent. +Fixed a bug where the visibility filter was case sensitive and casting was inconsistent. + From 00822169a52f22c6a9029d2b6133a991b02a3d6f Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 14 Aug 2023 04:31:37 +0000 Subject: [PATCH 251/372] chore(deps): update dependency webpack to v5.88.2 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 294e9c55dd..91aab820e6 100644 --- a/yarn.lock +++ b/yarn.lock @@ -42108,8 +42108,8 @@ __metadata: linkType: hard "webpack@npm:^5, webpack@npm:^5.70.0": - version: 5.88.1 - resolution: "webpack@npm:5.88.1" + version: 5.88.2 + resolution: "webpack@npm:5.88.2" dependencies: "@types/eslint-scope": ^3.7.3 "@types/estree": ^1.0.0 @@ -42140,7 +42140,7 @@ __metadata: optional: true bin: webpack: bin/webpack.js - checksum: 726e7e05ab2e7c142609a673dd6aa1a711ed97f349418a2a393d650c5ddad172d191257f60e1e37f6b2a77261571c202aabd5ce9240791a686774f0801cf5ec2 + checksum: 79476a782da31a21f6dd38fbbd06b68da93baf6a62f0d08ca99222367f3b8668f5a1f2086b7bb78e23172e31fa6df6fa7ab09b25e827866c4fc4dc2b30443ce2 languageName: node linkType: hard From b8ff69c541d11526e169150e97744f5bb5b66272 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Mon, 14 Aug 2023 09:26:30 +0200 Subject: [PATCH 252/372] format changeset Signed-off-by: Patrik Oldsberg --- .changeset/ninety-panthers-guess.md | 1 - 1 file changed, 1 deletion(-) diff --git a/.changeset/ninety-panthers-guess.md b/.changeset/ninety-panthers-guess.md index a4b58718e5..a821731a22 100644 --- a/.changeset/ninety-panthers-guess.md +++ b/.changeset/ninety-panthers-guess.md @@ -3,4 +3,3 @@ --- Fixed a bug where the visibility filter was case sensitive and casting was inconsistent. - From 47a2fbf8bfb902372f1e28510ef56ea294179a53 Mon Sep 17 00:00:00 2001 From: Vity Date: Mon, 14 Aug 2023 09:46:05 +0200 Subject: [PATCH 253/372] Create jfrog-artifactory-libs.yaml Link to the new plugin Signed-off-by: Vity --- microsite/data/plugins/jfrog-artifactory-libs.yaml | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 microsite/data/plugins/jfrog-artifactory-libs.yaml diff --git a/microsite/data/plugins/jfrog-artifactory-libs.yaml b/microsite/data/plugins/jfrog-artifactory-libs.yaml new file mode 100644 index 0000000000..4b525018ba --- /dev/null +++ b/microsite/data/plugins/jfrog-artifactory-libs.yaml @@ -0,0 +1,10 @@ +--- +title: JFrog Artifactory Libs plugin +author: Vity +authorUrl: https://github.com/Vity01 +category: Discovery +description: frontend plugin provides a simple way to display generated artifact (library) details like - group, artifact, repository, what is the latest version, and it simply allows to copy library definition for the package managers. +documentation: https://github.com/Vity01/backstage-jfrog-artifactory-libs +iconUrl: 'https://raw.githubusercontent.com/Vity01/backstage-jfrog-artifactory-libs/docs/artifactory.svg' +npmPackageName: 'backstage-plugin-jfrog-artifactory-libs' +addedDate: '2023-08-14' From 4836ea1eace1814b05f4e2024bf3179709c83892 Mon Sep 17 00:00:00 2001 From: Vity Date: Mon, 14 Aug 2023 09:56:02 +0200 Subject: [PATCH 254/372] Update jfrog-artifactory-libs.yaml fixed link to image Signed-off-by: Vity --- microsite/data/plugins/jfrog-artifactory-libs.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/microsite/data/plugins/jfrog-artifactory-libs.yaml b/microsite/data/plugins/jfrog-artifactory-libs.yaml index 4b525018ba..9b59f4ea1b 100644 --- a/microsite/data/plugins/jfrog-artifactory-libs.yaml +++ b/microsite/data/plugins/jfrog-artifactory-libs.yaml @@ -5,6 +5,6 @@ authorUrl: https://github.com/Vity01 category: Discovery description: frontend plugin provides a simple way to display generated artifact (library) details like - group, artifact, repository, what is the latest version, and it simply allows to copy library definition for the package managers. documentation: https://github.com/Vity01/backstage-jfrog-artifactory-libs -iconUrl: 'https://raw.githubusercontent.com/Vity01/backstage-jfrog-artifactory-libs/docs/artifactory.svg' +iconUrl: https://raw.githubusercontent.com/Vity01/backstage-jfrog-artifactory-libs/main/doc/artifactory.svg npmPackageName: 'backstage-plugin-jfrog-artifactory-libs' addedDate: '2023-08-14' From 1788b4253d9657b7e0311a88fb5f149c5173039a Mon Sep 17 00:00:00 2001 From: Vity Date: Mon, 14 Aug 2023 10:22:45 +0200 Subject: [PATCH 255/372] Update jfrog-artifactory-libs.yaml reformat Signed-off-by: Vity --- microsite/data/plugins/jfrog-artifactory-libs.yaml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/microsite/data/plugins/jfrog-artifactory-libs.yaml b/microsite/data/plugins/jfrog-artifactory-libs.yaml index 9b59f4ea1b..a63d8d8868 100644 --- a/microsite/data/plugins/jfrog-artifactory-libs.yaml +++ b/microsite/data/plugins/jfrog-artifactory-libs.yaml @@ -3,7 +3,9 @@ title: JFrog Artifactory Libs plugin author: Vity authorUrl: https://github.com/Vity01 category: Discovery -description: frontend plugin provides a simple way to display generated artifact (library) details like - group, artifact, repository, what is the latest version, and it simply allows to copy library definition for the package managers. +description: frontend plugin provides a simple way to display generated artifact (library) details like + - group, artifact, repository, what is the latest version, and it simply + allows to copy library definition for the package managers. documentation: https://github.com/Vity01/backstage-jfrog-artifactory-libs iconUrl: https://raw.githubusercontent.com/Vity01/backstage-jfrog-artifactory-libs/main/doc/artifactory.svg npmPackageName: 'backstage-plugin-jfrog-artifactory-libs' From aac1e86198d5967b9fd5ed30e3bf7002c6b94833 Mon Sep 17 00:00:00 2001 From: Vity Date: Mon, 14 Aug 2023 10:39:13 +0200 Subject: [PATCH 256/372] Update jfrog-artifactory-libs.yaml prettier #2 Signed-off-by: Vity --- microsite/data/plugins/jfrog-artifactory-libs.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/microsite/data/plugins/jfrog-artifactory-libs.yaml b/microsite/data/plugins/jfrog-artifactory-libs.yaml index a63d8d8868..22583cbfbd 100644 --- a/microsite/data/plugins/jfrog-artifactory-libs.yaml +++ b/microsite/data/plugins/jfrog-artifactory-libs.yaml @@ -3,7 +3,8 @@ title: JFrog Artifactory Libs plugin author: Vity authorUrl: https://github.com/Vity01 category: Discovery -description: frontend plugin provides a simple way to display generated artifact (library) details like +description: + frontend plugin provides a simple way to display generated artifact (library) details like - group, artifact, repository, what is the latest version, and it simply allows to copy library definition for the package managers. documentation: https://github.com/Vity01/backstage-jfrog-artifactory-libs From 3a351ccb41ad40a3970c6232125756d6d6add282 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Mon, 14 Aug 2023 11:45:38 +0200 Subject: [PATCH 257/372] exit prerelease Signed-off-by: Patrik Oldsberg --- .changeset/pre.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.changeset/pre.json b/.changeset/pre.json index 64c8890ee2..b1c2ad6b55 100644 --- a/.changeset/pre.json +++ b/.changeset/pre.json @@ -1,5 +1,5 @@ { - "mode": "pre", + "mode": "exit", "tag": "next", "initialVersions": { "example-app": "0.2.85", From 4b0894972f7b963c74f2d1e3b9ed8c10e7150563 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Mon, 14 Aug 2023 12:58:05 +0200 Subject: [PATCH 258/372] backend-test-utils: automatically determine the plugin ID of tested extension points Signed-off-by: Patrik Oldsberg --- .../src/next/wiring/TestBackend.test.ts | 85 ++++++++++++++ .../src/next/wiring/TestBackend.ts | 109 +++++++++++++++--- 2 files changed, 180 insertions(+), 14 deletions(-) diff --git a/packages/backend-test-utils/src/next/wiring/TestBackend.test.ts b/packages/backend-test-utils/src/next/wiring/TestBackend.test.ts index cc916d4309..13b57f54ba 100644 --- a/packages/backend-test-utils/src/next/wiring/TestBackend.test.ts +++ b/packages/backend-test-utils/src/next/wiring/TestBackend.test.ts @@ -220,4 +220,89 @@ describe('TestBackend', () => { expect(res.status).toEqual(200); expect(res.body).toEqual({ message: 'pong' }); }); + + it('should provide extension point implementations', async () => { + expect.assertions(3); + + const extensionPointA = createExtensionPoint({ id: 'a' }); + const extensionPointB = createExtensionPoint({ id: 'b' }); + await expect( + startTestBackend({ + extensionPoints: [ + [extensionPointA, 'a'], + [extensionPointB, 'b'], + ], + features: [ + createBackendModule({ + pluginId: 'testA', + moduleId: 'test', + register(reg) { + reg.registerInit({ + deps: { ext: extensionPointA }, + async init({ ext }) { + expect(ext).toBe('a'); + }, + }); + }, + })(), + createBackendModule({ + pluginId: 'testB', + moduleId: 'test', + register(reg) { + reg.registerInit({ + deps: { ext: extensionPointB }, + async init({ ext }) { + expect(ext).toBe('b'); + }, + }); + }, + })(), + ], + }), + ).resolves.not.toBeUndefined(); + }); + + it('should reject extension point used by multiple plugins', async () => { + const extensionPointA = createExtensionPoint({ id: 'a' }); + await expect( + startTestBackend({ + extensionPoints: [[extensionPointA, 'a']], + features: [ + createBackendModule({ + pluginId: 'testA', + moduleId: 'test', + register(reg) { + reg.registerInit({ + deps: { ext: extensionPointA }, + async init() {}, + }); + }, + })(), + createBackendModule({ + pluginId: 'testB', + moduleId: 'test', + register(reg) { + reg.registerInit({ + deps: { ext: extensionPointA }, + async init() {}, + }); + }, + })(), + ], + }), + ).rejects.toThrow( + "Extension point registered for plugin 'testA' may not be used by module for plugin 'testB'", + ); + }); + + it('should reject extension point not used by any plugin', async () => { + const extensionPointA = createExtensionPoint({ id: 'a' }); + await expect( + startTestBackend({ + extensionPoints: [[extensionPointA, 'a']], + }), + ).rejects.toThrow( + "Unable to determine the plugin ID of extension point(s) 'a'. Tested extension points must be depended on by one or more tested modules.", + ); + }); }); diff --git a/packages/backend-test-utils/src/next/wiring/TestBackend.ts b/packages/backend-test-utils/src/next/wiring/TestBackend.ts index 8a4e1d8471..06e27e5c07 100644 --- a/packages/backend-test-utils/src/next/wiring/TestBackend.ts +++ b/packages/backend-test-utils/src/next/wiring/TestBackend.ts @@ -30,11 +30,14 @@ import { BackendFeature, ExtensionPoint, coreServices, - createBackendPlugin, + createBackendModule, } from '@backstage/backend-plugin-api'; import { mockServices } from '../services'; import { ConfigReader } from '@backstage/config'; import express from 'express'; +// Direct internal import to avoid duplication +// eslint-disable-next-line @backstage/no-forbidden-package-imports +import { InternalBackendFeature } from '@backstage/backend-plugin-api/src/wiring/types'; /** @public */ export interface TestBackendOptions< @@ -87,6 +90,93 @@ const defaultServiceFactories = [ mockServices.urlReader.factory(), ]; +/** + * Given a set of extension points and plugins, find + * @returns + */ +function createExtensionPointTestModules( + features: BackendFeature[], + extensionPointTuples?: readonly [ + ref: ExtensionPoint, + impl: unknown, + ][], +): BackendFeature[] { + if (!extensionPointTuples) { + return []; + } + + const registrations = features.flatMap(feature => { + if (feature.$$type !== '@backstage/BackendFeature') { + throw new Error( + `Failed to add feature, invalid type '${feature.$$type}'`, + ); + } + const internalFeature = feature as InternalBackendFeature; + if (internalFeature.version !== 'v1') { + throw new Error( + `Failed to add feature, invalid version '${internalFeature.version}'`, + ); + } + return internalFeature.getRegistrations(); + }); + + const extensionPointMap = new Map( + extensionPointTuples.map(ep => [ep[0].id, ep]), + ); + const extensionPointsToSort = new Set(extensionPointMap.keys()); + const extensionPointsByPlugin = new Map(); + + for (const registration of registrations) { + if (registration.type === 'module') { + const testDep = Object.values(registration.init.deps).filter(dep => + extensionPointsToSort.has(dep.id), + ); + if (testDep.length > 0) { + let points = extensionPointsByPlugin.get(registration.pluginId); + if (!points) { + points = []; + extensionPointsByPlugin.set(registration.pluginId, points); + } + for (const { id } of testDep) { + points.push(id); + extensionPointsToSort.delete(id); + } + } + } + } + + if (extensionPointsToSort.size > 0) { + const list = Array.from(extensionPointsToSort) + .map(id => `'${id}'`) + .join(', '); + throw new Error( + `Unable to determine the plugin ID of extension point(s) ${list}. ` + + 'Tested extension points must be depended on by one or more tested modules.', + ); + } + + const modules = []; + + for (const [pluginId, pluginExtensionPointIds] of extensionPointsByPlugin) { + modules.push( + createBackendModule({ + pluginId, + moduleId: 'testExtensionPointRegistration', + register(reg) { + for (const id of pluginExtensionPointIds) { + const tuple = extensionPointMap.get(id)!; + reg.registerExtensionPoint(...tuple); + } + + reg.registerInit({ deps: {}, async init() {} }); + }, + })(), + ); + } + + return modules; +} + const backendInstancesToCleanUp = new Array(); /** @public */ @@ -98,7 +188,7 @@ export async function startTestBackend< ): Promise { const { services = [], - extensionPoints = [], + extensionPoints, features = [], ...otherOptions } = options; @@ -194,18 +284,9 @@ export async function startTestBackend< backendInstancesToCleanUp.push(backend); - backend.add( - createBackendPlugin({ - pluginId: `---test-extension-point-registrar`, - register(reg) { - for (const [ref, impl] of extensionPoints) { - reg.registerExtensionPoint(ref, impl); - } - - reg.registerInit({ deps: {}, async init() {} }); - }, - })(), - ); + for (const m of createExtensionPointTestModules(features, extensionPoints)) { + backend.add(m); + } for (const feature of features) { backend.add(feature); From 3a1e7dc3c5f573493ff199a750bbaa04630c2adc Mon Sep 17 00:00:00 2001 From: AmbrishRamachandiran Date: Mon, 14 Aug 2023 16:36:39 +0530 Subject: [PATCH 259/372] Added test cases for duplicate url and title Signed-off-by: AmbrishRamachandiran --- plugins/shortcuts/src/ShortcutForm.test.tsx | 37 +++++++++++++++++---- 1 file changed, 31 insertions(+), 6 deletions(-) diff --git a/plugins/shortcuts/src/ShortcutForm.test.tsx b/plugins/shortcuts/src/ShortcutForm.test.tsx index 56309b4a64..388c072725 100644 --- a/plugins/shortcuts/src/ShortcutForm.test.tsx +++ b/plugins/shortcuts/src/ShortcutForm.test.tsx @@ -53,15 +53,40 @@ describe('ShortcutForm', () => { expect( screen.getByText('Must be at least 2 characters'), ).toBeInTheDocument(); - expect( - screen.queryByText('A shortcut with this title already exists'), - ).not.toBeInTheDocument(); - expect( - screen.queryByText('A shortcut with this url already exists'), - ).not.toBeInTheDocument(); }); }); + it('displays duplicate validation messages for title and URL', async () => { + const mockShortcutApi = new DefaultShortcutsApi(MockStorageApi.create()); + mockShortcutApi.add({ title: 'Existing Title', url: '/existing-url' }); + + await renderInTestApp( + + + , + ); + + const urlInput = screen.getByPlaceholderText('Enter a URL'); + const titleInput = screen.getByPlaceholderText('Enter a display name'); + + fireEvent.change(urlInput, { target: { value: '/existing-url' } }); + fireEvent.change(titleInput, { target: { value: 'Existing Title' } }); + + fireEvent.click(screen.getByText('Save')); + + await waitFor(() => { + expect( + screen.getByText('A shortcut with this title already exists'), + ).toBeInTheDocument(); + expect( + screen.getByText('A shortcut with this url already exists'), + ).toBeInTheDocument(); + }); + + expect(props.onSave).not.toHaveBeenCalled(); + expect(props.onClose).not.toHaveBeenCalled(); + }); + it('allows external links', async () => { await renderInTestApp( Date: Mon, 14 Aug 2023 13:16:21 +0200 Subject: [PATCH 260/372] yarn.lock: bump swagger-ui-react Signed-off-by: Patrik Oldsberg --- yarn.lock | 556 ++++++++++++++++++++++++------------------------------ 1 file changed, 244 insertions(+), 312 deletions(-) diff --git a/yarn.lock b/yarn.lock index 294e9c55dd..f5db1bf2b5 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3157,13 +3157,13 @@ __metadata: languageName: node linkType: hard -"@babel/runtime-corejs3@npm:^7.20.13, @babel/runtime-corejs3@npm:^7.20.7, @babel/runtime-corejs3@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/runtime-corejs3@npm:7.22.5" +"@babel/runtime-corejs3@npm:^7.20.13, @babel/runtime-corejs3@npm:^7.20.7, @babel/runtime-corejs3@npm:^7.22.6": + version: 7.22.10 + resolution: "@babel/runtime-corejs3@npm:7.22.10" dependencies: core-js-pure: ^3.30.2 - regenerator-runtime: ^0.13.11 - checksum: cdeabaa6858cedb0ec47c1245195a09a8fd2de06f4545614acb574d150a81d0e27eb9c08d69787b2c1ad4a1fc57919a3f0599f60d14914227c200563cd595503 + regenerator-runtime: ^0.14.0 + checksum: 00c50bf21fa7d0db1af7944f4fd56569da0dddedd68dbbc18587eedbd0e04aa4efea7010ff4a44ba590ea7ff3c91f0edf87136020c930de14dc4cdec511b6d22 languageName: node linkType: hard @@ -15690,332 +15690,334 @@ __metadata: languageName: node linkType: hard -"@swagger-api/apidom-ast@npm:^0.70.0": - version: 0.70.0 - resolution: "@swagger-api/apidom-ast@npm:0.70.0" +"@swagger-api/apidom-ast@npm:^0.74.1": + version: 0.74.1 + resolution: "@swagger-api/apidom-ast@npm:0.74.1" dependencies: "@babel/runtime-corejs3": ^7.20.7 - "@types/ramda": ~0.29.1 + "@types/ramda": ~0.29.3 ramda: ~0.29.0 ramda-adjunct: ^4.0.0 stampit: ^4.3.2 - unraw: ^2.0.1 - checksum: f1dfd5eae236ee42880dd474943d4a6deb04c7c1bd72f7bc7c30b8d348455b8cbd1c56a07d4417714b5221d3473469a1edcfcab869838987cc91332157561fd3 + unraw: ^3.0.0 + checksum: 453880bafb11c9c53768629bf0c9c3cfdab76625dbd4eb34ec146c23eb782dace3c279ca4cff665ac20f3fae229ba96bff2bdbacba383630107f23522183f130 languageName: node linkType: hard -"@swagger-api/apidom-core@npm:>=0.70.0 <1.0.0, @swagger-api/apidom-core@npm:^0.70.0": - version: 0.70.0 - resolution: "@swagger-api/apidom-core@npm:0.70.0" +"@swagger-api/apidom-core@npm:>=0.74.1 <1.0.0, @swagger-api/apidom-core@npm:^0.74.1": + version: 0.74.1 + resolution: "@swagger-api/apidom-core@npm:0.74.1" dependencies: "@babel/runtime-corejs3": ^7.20.7 - "@swagger-api/apidom-ast": ^0.70.0 - "@types/ramda": ~0.29.1 + "@swagger-api/apidom-ast": ^0.74.1 + "@types/ramda": ~0.29.3 minim: ~0.23.8 ramda: ~0.29.0 ramda-adjunct: ^4.0.0 short-unique-id: ^4.4.4 stampit: ^4.3.2 - checksum: 1db75c4e62ecaef9e788919c808dbd6f1c38781e4529639e4b10a2a8325677c335f4f1f650b9e581a6736dbccb6c0035c664145d6f6a39e954f8eb699d51553a + checksum: 8369c45198a2d955dd84a55564f89411394df388c2cf277208fbfcaf3014ae596f4de9916b55d918683b13fc18f0c54a0e190bf34206cf4c16c10a1a7e50ab07 languageName: node linkType: hard -"@swagger-api/apidom-json-pointer@npm:>=0.70.0 <1.0.0, @swagger-api/apidom-json-pointer@npm:^0.70.0": - version: 0.70.0 - resolution: "@swagger-api/apidom-json-pointer@npm:0.70.0" +"@swagger-api/apidom-json-pointer@npm:>=0.74.1 <1.0.0, @swagger-api/apidom-json-pointer@npm:^0.74.1": + version: 0.74.1 + resolution: "@swagger-api/apidom-json-pointer@npm:0.74.1" dependencies: "@babel/runtime-corejs3": ^7.20.7 - "@swagger-api/apidom-core": ^0.70.0 - "@types/ramda": ~0.29.1 + "@swagger-api/apidom-core": ^0.74.1 + "@types/ramda": ~0.29.3 ramda: ~0.29.0 ramda-adjunct: ^4.0.0 - checksum: dfa3b49e454d78d7ec5281c59537bfc2e99ba9b5fa1875cd5d600c2499298742c6a9e41e415937c2de99661f6cd27b7dc5b9900b75dc042e96e506266f409860 + checksum: 2adbbb735cd559b975fa58d11b7d99844eb5eb48282842cb6048e61742229198519cfbcf90f48c38cfbbad089b9d71a258c9aeb92c3fbec8abe392756e4816f0 languageName: node linkType: hard -"@swagger-api/apidom-ns-api-design-systems@npm:^0.70.0": - version: 0.70.0 - resolution: "@swagger-api/apidom-ns-api-design-systems@npm:0.70.0" +"@swagger-api/apidom-ns-api-design-systems@npm:^0.74.1": + version: 0.74.1 + resolution: "@swagger-api/apidom-ns-api-design-systems@npm:0.74.1" dependencies: "@babel/runtime-corejs3": ^7.20.7 - "@swagger-api/apidom-core": ^0.70.0 - "@swagger-api/apidom-ns-openapi-3-1": ^0.70.0 - "@types/ramda": ~0.29.1 + "@swagger-api/apidom-core": ^0.74.1 + "@swagger-api/apidom-ns-openapi-3-1": ^0.74.1 + "@types/ramda": ~0.29.3 ramda: ~0.29.0 ramda-adjunct: ^4.0.0 stampit: ^4.3.2 - checksum: 8b08d5d99a0ff6497a5e3e093daaa9e47d79c2c216ce5397992348438b8ab4a53b789b31caf11a71855496bdb379c5d159cbc3c05e269ba97a086f3fddaa390c + checksum: 83bb664015243a9fb342d81f1700f7dde12015a3c34c45ac0575fc79388eeec99dd97f6139207437b883b0e3c261916ebb931571c1c0e0240f84ea7fd57d8c93 languageName: node linkType: hard -"@swagger-api/apidom-ns-asyncapi-2@npm:^0.70.0": - version: 0.70.0 - resolution: "@swagger-api/apidom-ns-asyncapi-2@npm:0.70.0" +"@swagger-api/apidom-ns-asyncapi-2@npm:^0.74.1": + version: 0.74.1 + resolution: "@swagger-api/apidom-ns-asyncapi-2@npm:0.74.1" dependencies: "@babel/runtime-corejs3": ^7.20.7 - "@swagger-api/apidom-core": ^0.70.0 - "@swagger-api/apidom-ns-json-schema-draft-7": ^0.70.0 - "@types/ramda": ~0.29.1 + "@swagger-api/apidom-core": ^0.74.1 + "@swagger-api/apidom-ns-json-schema-draft-7": ^0.74.1 + "@types/ramda": ~0.29.3 ramda: ~0.29.0 ramda-adjunct: ^4.0.0 stampit: ^4.3.2 - checksum: d2d38354132b7894427222b5dbc924c9a36966795710cede1010496b2a3649362c110b57730e8ebea93a662d442fe29c2adc174e27b91f9056189604c2953e8b + checksum: 8577a17410f4bcc9d1a921f6e567c611b71316a6aba4bc3e06a11316b915d053a589693d44350ded7de67f8f6c58b4b0075cabee88a2603ce9790e54be2a1946 languageName: node linkType: hard -"@swagger-api/apidom-ns-json-schema-draft-4@npm:^0.70.0": - version: 0.70.0 - resolution: "@swagger-api/apidom-ns-json-schema-draft-4@npm:0.70.0" +"@swagger-api/apidom-ns-json-schema-draft-4@npm:^0.74.1": + version: 0.74.1 + resolution: "@swagger-api/apidom-ns-json-schema-draft-4@npm:0.74.1" dependencies: "@babel/runtime-corejs3": ^7.20.7 - "@swagger-api/apidom-core": ^0.70.0 - "@types/ramda": ~0.29.1 + "@swagger-api/apidom-ast": ^0.74.1 + "@swagger-api/apidom-core": ^0.74.1 + "@types/ramda": ~0.29.3 ramda: ~0.29.0 ramda-adjunct: ^4.0.0 stampit: ^4.3.2 - checksum: b7289bba4712ea601f6874d052172218b853a14868b603414018860a203bdcd7b12944920e790db04720d7b6117d0a8859d583e6f0ec66bf525475b91ac5691c + checksum: 1d07a05dee36b1fdb238f57a22b620814fcaae21bbf46b83296048a1806a4be66901bc5aefbc42e4928d058a5df9203f9ad3fdf3f57476b6b61bb985f82bd99b languageName: node linkType: hard -"@swagger-api/apidom-ns-json-schema-draft-6@npm:^0.70.0": - version: 0.70.0 - resolution: "@swagger-api/apidom-ns-json-schema-draft-6@npm:0.70.0" +"@swagger-api/apidom-ns-json-schema-draft-6@npm:^0.74.1": + version: 0.74.1 + resolution: "@swagger-api/apidom-ns-json-schema-draft-6@npm:0.74.1" dependencies: "@babel/runtime-corejs3": ^7.20.7 - "@swagger-api/apidom-core": ^0.70.0 - "@swagger-api/apidom-ns-json-schema-draft-4": ^0.70.0 - "@types/ramda": ~0.29.1 + "@swagger-api/apidom-core": ^0.74.1 + "@swagger-api/apidom-ns-json-schema-draft-4": ^0.74.1 + "@types/ramda": ~0.29.3 ramda: ~0.29.0 ramda-adjunct: ^4.0.0 stampit: ^4.3.2 - checksum: 1368fe2906aca8766265f95f8847b7f49b17ecd973ef8126ad7f24636f76cec8a2961cdac846548dbccef8202a94354b8ce5358e3b76dedc625bb23b63169fd0 + checksum: d2460a3afaebfbb304aa610e4dd5dc5fdab4325dd9ce14d393b13bb7399e3b37f4bde837266ba9876c973b6dfc5eb179c27346c2941ad2fe77923b743b3a4ebc languageName: node linkType: hard -"@swagger-api/apidom-ns-json-schema-draft-7@npm:^0.70.0": - version: 0.70.0 - resolution: "@swagger-api/apidom-ns-json-schema-draft-7@npm:0.70.0" +"@swagger-api/apidom-ns-json-schema-draft-7@npm:^0.74.1": + version: 0.74.1 + resolution: "@swagger-api/apidom-ns-json-schema-draft-7@npm:0.74.1" dependencies: "@babel/runtime-corejs3": ^7.20.7 - "@swagger-api/apidom-core": ^0.70.0 - "@swagger-api/apidom-ns-json-schema-draft-6": ^0.70.0 - "@types/ramda": ~0.29.1 + "@swagger-api/apidom-core": ^0.74.1 + "@swagger-api/apidom-ns-json-schema-draft-6": ^0.74.1 + "@types/ramda": ~0.29.3 ramda: ~0.29.0 ramda-adjunct: ^4.0.0 stampit: ^4.3.2 - checksum: 0c54517aad52db2661dc083fc9593f15f57bc99f36ed601c5a1162b71010397c8d6065650959a7fb72ec4b5a06f052140c642d126e01a2061dd0d08972c68af4 + checksum: cefc04786f2ce5640397e84141ab02e921d578ae5ebd9b3d06d8ad405f1ebc8589f2069f4c57cbdf5e8b911cb6a39fd248bfb7567a66968fe62542f6f64e52eb languageName: node linkType: hard -"@swagger-api/apidom-ns-openapi-3-0@npm:^0.70.0": - version: 0.70.0 - resolution: "@swagger-api/apidom-ns-openapi-3-0@npm:0.70.0" +"@swagger-api/apidom-ns-openapi-3-0@npm:^0.74.1": + version: 0.74.1 + resolution: "@swagger-api/apidom-ns-openapi-3-0@npm:0.74.1" dependencies: "@babel/runtime-corejs3": ^7.20.7 - "@swagger-api/apidom-core": ^0.70.0 - "@swagger-api/apidom-ns-json-schema-draft-4": ^0.70.0 - "@types/ramda": ~0.29.1 + "@swagger-api/apidom-core": ^0.74.1 + "@swagger-api/apidom-ns-json-schema-draft-4": ^0.74.1 + "@types/ramda": ~0.29.3 ramda: ~0.29.0 ramda-adjunct: ^4.0.0 stampit: ^4.3.2 - checksum: 89140a077fc90612f0bd89106d9828e65ac9637d303d142388ac566e7d5b1496be0480257a268bdc3005ab603eb7af40a3368cd6c6bbb824fba112c665b1f58c + checksum: 4c482714ce82287493d54cd454633bb044ca02659f3080084f34fc93f2f6f162cc5809499ced20a4db33092d30396d22fc80c63db080320306216a84077e26f5 languageName: node linkType: hard -"@swagger-api/apidom-ns-openapi-3-1@npm:>=0.70.0 <1.0.0, @swagger-api/apidom-ns-openapi-3-1@npm:^0.70.0": - version: 0.70.0 - resolution: "@swagger-api/apidom-ns-openapi-3-1@npm:0.70.0" +"@swagger-api/apidom-ns-openapi-3-1@npm:>=0.74.1 <1.0.0, @swagger-api/apidom-ns-openapi-3-1@npm:^0.74.1": + version: 0.74.1 + resolution: "@swagger-api/apidom-ns-openapi-3-1@npm:0.74.1" dependencies: "@babel/runtime-corejs3": ^7.20.7 - "@swagger-api/apidom-core": ^0.70.0 - "@swagger-api/apidom-ns-openapi-3-0": ^0.70.0 - "@types/ramda": ~0.29.1 + "@swagger-api/apidom-ast": ^0.74.1 + "@swagger-api/apidom-core": ^0.74.1 + "@swagger-api/apidom-ns-openapi-3-0": ^0.74.1 + "@types/ramda": ~0.29.3 ramda: ~0.29.0 ramda-adjunct: ^4.0.0 stampit: ^4.3.2 - checksum: e4fd4a24fc92f753e435ef179899d27732f10065cb5c2a89b66149778bd3fa6132c2456da04a14d5441bcf4b1bb41ed86233ac981a6ae5e9f79094ca19f1598c + checksum: 1de6568ad876481ab83cec6755854314511d45bfd67f5b65f2fc44238e4bd7269f688d1931b31d939fdddfa2b29ba3442e3fe778736a777462fc517a54b8c0d9 languageName: node linkType: hard -"@swagger-api/apidom-parser-adapter-api-design-systems-json@npm:^0.70.0": - version: 0.70.0 - resolution: "@swagger-api/apidom-parser-adapter-api-design-systems-json@npm:0.70.0" +"@swagger-api/apidom-parser-adapter-api-design-systems-json@npm:^0.74.1": + version: 0.74.1 + resolution: "@swagger-api/apidom-parser-adapter-api-design-systems-json@npm:0.74.1" dependencies: "@babel/runtime-corejs3": ^7.20.7 - "@swagger-api/apidom-core": ^0.70.0 - "@swagger-api/apidom-ns-api-design-systems": ^0.70.0 - "@swagger-api/apidom-parser-adapter-json": ^0.70.0 - "@types/ramda": ~0.29.1 + "@swagger-api/apidom-core": ^0.74.1 + "@swagger-api/apidom-ns-api-design-systems": ^0.74.1 + "@swagger-api/apidom-parser-adapter-json": ^0.74.1 + "@types/ramda": ~0.29.3 ramda: ~0.29.0 ramda-adjunct: ^4.0.0 - checksum: 3bcaefa2f890f5f0783ccaff3c88da0c9eeff549182a34d74dcc4e91a14c0a36f11eafd7950141d9525295856ea68f44dded7b7d758114a9a9fa66e3f6d86984 + checksum: 223720aac5979da9ccd931cebddfa6be944c5ba269ddddde4c5a9bec24627f0cc3655d83ea54b60bc093603c2d5fb169a451d356e5dafe49be66b150c6542a8b languageName: node linkType: hard -"@swagger-api/apidom-parser-adapter-api-design-systems-yaml@npm:^0.70.0": - version: 0.70.0 - resolution: "@swagger-api/apidom-parser-adapter-api-design-systems-yaml@npm:0.70.0" +"@swagger-api/apidom-parser-adapter-api-design-systems-yaml@npm:^0.74.1": + version: 0.74.1 + resolution: "@swagger-api/apidom-parser-adapter-api-design-systems-yaml@npm:0.74.1" dependencies: "@babel/runtime-corejs3": ^7.20.7 - "@swagger-api/apidom-core": ^0.70.0 - "@swagger-api/apidom-ns-api-design-systems": ^0.70.0 - "@swagger-api/apidom-parser-adapter-yaml-1-2": ^0.70.0 - "@types/ramda": ~0.29.1 + "@swagger-api/apidom-core": ^0.74.1 + "@swagger-api/apidom-ns-api-design-systems": ^0.74.1 + "@swagger-api/apidom-parser-adapter-yaml-1-2": ^0.74.1 + "@types/ramda": ~0.29.3 ramda: ~0.29.0 ramda-adjunct: ^4.0.0 - checksum: c4b06f70be760f7e840d20032a582abe55a9d06ba810ab2b5d0f71bdfd39c46fe1ac2691155731821fbc7ffd1c2fa135331151c5bfdaa73850ab2fe352c00f13 + checksum: 0072ec50f650c8e8758e87deafffd86805bb858edcb83301739301a4e8f24e6a563311b65e261573c1858f1e7772cd3a6f9a78102ade9da225f9079ebbe5fdb5 languageName: node linkType: hard -"@swagger-api/apidom-parser-adapter-asyncapi-json-2@npm:^0.70.0": - version: 0.70.0 - resolution: "@swagger-api/apidom-parser-adapter-asyncapi-json-2@npm:0.70.0" +"@swagger-api/apidom-parser-adapter-asyncapi-json-2@npm:^0.74.1": + version: 0.74.1 + resolution: "@swagger-api/apidom-parser-adapter-asyncapi-json-2@npm:0.74.1" dependencies: "@babel/runtime-corejs3": ^7.20.7 - "@swagger-api/apidom-core": ^0.70.0 - "@swagger-api/apidom-ns-asyncapi-2": ^0.70.0 - "@swagger-api/apidom-parser-adapter-json": ^0.70.0 - "@types/ramda": ~0.29.1 + "@swagger-api/apidom-core": ^0.74.1 + "@swagger-api/apidom-ns-asyncapi-2": ^0.74.1 + "@swagger-api/apidom-parser-adapter-json": ^0.74.1 + "@types/ramda": ~0.29.3 ramda: ~0.29.0 ramda-adjunct: ^4.0.0 - checksum: 06c1c3bc9d29644476b082652021e1d81b448a516a826e867c13b55b229b503d618ad2cc63bfb9a544656e1b098197e1cda89025a6c0f63c3617ffc04bc51c40 + checksum: 0ba020d883cd305fd11dde0d25714bf2b59ba7772a67b743ae15b5efd204b48be8654c2f3fd10879cb84550aa53bba0ab0186ddd3de6c590f7da5a620f416c1a languageName: node linkType: hard -"@swagger-api/apidom-parser-adapter-asyncapi-yaml-2@npm:^0.70.0": - version: 0.70.0 - resolution: "@swagger-api/apidom-parser-adapter-asyncapi-yaml-2@npm:0.70.0" +"@swagger-api/apidom-parser-adapter-asyncapi-yaml-2@npm:^0.74.1": + version: 0.74.1 + resolution: "@swagger-api/apidom-parser-adapter-asyncapi-yaml-2@npm:0.74.1" dependencies: "@babel/runtime-corejs3": ^7.20.7 - "@swagger-api/apidom-core": ^0.70.0 - "@swagger-api/apidom-ns-asyncapi-2": ^0.70.0 - "@swagger-api/apidom-parser-adapter-yaml-1-2": ^0.70.0 - "@types/ramda": ~0.29.1 + "@swagger-api/apidom-core": ^0.74.1 + "@swagger-api/apidom-ns-asyncapi-2": ^0.74.1 + "@swagger-api/apidom-parser-adapter-yaml-1-2": ^0.74.1 + "@types/ramda": ~0.29.3 ramda: ~0.29.0 ramda-adjunct: ^4.0.0 - checksum: ec71cdbc0701d62b6a15c6ab9278dfc1bf1e40ef4cbf22acc0a9fb9c3b624a8b80fe0670f61e6729989c4a2e5ca5a65c03cb9cee318494eb0f1eaa6b84ce3fbe + checksum: b446ffa2ce7189df644259dbbc9bcfef39e8327fb2c47febff0abea58889069f45a47143dfc5b846c90ca9258e64d277f436b1166bdfe67c22c935170301e22c languageName: node linkType: hard -"@swagger-api/apidom-parser-adapter-json@npm:^0.70.0": - version: 0.70.0 - resolution: "@swagger-api/apidom-parser-adapter-json@npm:0.70.0" +"@swagger-api/apidom-parser-adapter-json@npm:^0.74.1": + version: 0.74.1 + resolution: "@swagger-api/apidom-parser-adapter-json@npm:0.74.1" dependencies: "@babel/runtime-corejs3": ^7.20.7 - "@swagger-api/apidom-ast": ^0.70.0 - "@swagger-api/apidom-core": ^0.70.0 - "@types/ramda": ~0.29.1 + "@swagger-api/apidom-ast": ^0.74.1 + "@swagger-api/apidom-core": ^0.74.1 + "@types/ramda": ~0.29.3 node-gyp: latest ramda: ~0.29.0 ramda-adjunct: ^4.0.0 stampit: ^4.3.2 - tree-sitter: =0.20.1 + tree-sitter: =0.20.4 tree-sitter-json: =0.20.0 - web-tree-sitter: =0.20.7 - checksum: ca256e274eeded6c64985d8b3c12ebeb94849440b58513b4e0fb20a66a1b51961b76b343f3e71b2e0e9f91fedf1c62542f52a3fa9674b62b86fdd5584f18f254 + web-tree-sitter: =0.20.3 + checksum: d80a2f9880a73b6cf6dec91bdb119eb52d57d4bce5431e4b344c734878ebec91e3350f9220b7f7eca2987ae955f236c92884f617b50631ddf97477d4bef4ab5b languageName: node linkType: hard -"@swagger-api/apidom-parser-adapter-openapi-json-3-0@npm:^0.70.0": - version: 0.70.0 - resolution: "@swagger-api/apidom-parser-adapter-openapi-json-3-0@npm:0.70.0" +"@swagger-api/apidom-parser-adapter-openapi-json-3-0@npm:^0.74.1": + version: 0.74.1 + resolution: "@swagger-api/apidom-parser-adapter-openapi-json-3-0@npm:0.74.1" dependencies: "@babel/runtime-corejs3": ^7.20.7 - "@swagger-api/apidom-core": ^0.70.0 - "@swagger-api/apidom-ns-openapi-3-0": ^0.70.0 - "@swagger-api/apidom-parser-adapter-json": ^0.70.0 - "@types/ramda": ~0.29.1 + "@swagger-api/apidom-core": ^0.74.1 + "@swagger-api/apidom-ns-openapi-3-0": ^0.74.1 + "@swagger-api/apidom-parser-adapter-json": ^0.74.1 + "@types/ramda": ~0.29.3 ramda: ~0.29.0 ramda-adjunct: ^4.0.0 - checksum: 6c97390eda94565545cee33d6f39b2131c3ffd7331a37b5a5164bd6417bc2bcf5e52345d335c025ea3cbcb8d76b6c5f95cb49520291f9c54fd6c3e4b979307ec + checksum: 223e6f8589b792b47a7c21006cdfe08f4472c3e085fdc66a99528a479a46fedef536e6f27e89b75bd8f3cd983749eabaabcba60700599dad8c041ba1417600a8 languageName: node linkType: hard -"@swagger-api/apidom-parser-adapter-openapi-json-3-1@npm:^0.70.0": - version: 0.70.0 - resolution: "@swagger-api/apidom-parser-adapter-openapi-json-3-1@npm:0.70.0" +"@swagger-api/apidom-parser-adapter-openapi-json-3-1@npm:^0.74.1": + version: 0.74.1 + resolution: "@swagger-api/apidom-parser-adapter-openapi-json-3-1@npm:0.74.1" dependencies: "@babel/runtime-corejs3": ^7.20.7 - "@swagger-api/apidom-core": ^0.70.0 - "@swagger-api/apidom-ns-openapi-3-1": ^0.70.0 - "@swagger-api/apidom-parser-adapter-json": ^0.70.0 - "@types/ramda": ~0.29.1 + "@swagger-api/apidom-core": ^0.74.1 + "@swagger-api/apidom-ns-openapi-3-1": ^0.74.1 + "@swagger-api/apidom-parser-adapter-json": ^0.74.1 + "@types/ramda": ~0.29.3 ramda: ~0.29.0 ramda-adjunct: ^4.0.0 - checksum: b3051e10683fa89c34f4cb415f01b16c0dbc9fb1d855bcb5d0737b2a46f7b3b4f9799597c69a4fec8b547bfb2802348f38675c658d35fee4b3016ea6e73c2b95 + checksum: defdbd6e641317bd0d6508b4f92dca0216e041a6672fc48c998aef53c08aeb89591954d6a348ead1be728b9cefcc9e9e786bcba3aa7bc2659cce7e47e08b31a0 languageName: node linkType: hard -"@swagger-api/apidom-parser-adapter-openapi-yaml-3-0@npm:^0.70.0": - version: 0.70.0 - resolution: "@swagger-api/apidom-parser-adapter-openapi-yaml-3-0@npm:0.70.0" +"@swagger-api/apidom-parser-adapter-openapi-yaml-3-0@npm:^0.74.1": + version: 0.74.1 + resolution: "@swagger-api/apidom-parser-adapter-openapi-yaml-3-0@npm:0.74.1" dependencies: "@babel/runtime-corejs3": ^7.20.7 - "@swagger-api/apidom-core": ^0.70.0 - "@swagger-api/apidom-ns-openapi-3-0": ^0.70.0 - "@swagger-api/apidom-parser-adapter-yaml-1-2": ^0.70.0 - "@types/ramda": ~0.29.1 + "@swagger-api/apidom-core": ^0.74.1 + "@swagger-api/apidom-ns-openapi-3-0": ^0.74.1 + "@swagger-api/apidom-parser-adapter-yaml-1-2": ^0.74.1 + "@types/ramda": ~0.29.3 ramda: ~0.29.0 ramda-adjunct: ^4.0.0 - checksum: 1cd68a65e21eb1df397093d56ff39344cb6d1812b9c498f7142719efb5f2e7446e3288ea7f255b3c33cddec4b4ad75f04b1b9333e9816f492af5e9d96b771561 + checksum: c63fcb9501f28a1a9c6815fc71a1a5200f49822fe101665bb5ffbe4fcb52f67e68c072f268a334d5495bac4cea261206add12d0deb08594cb934d897cd1cf604 languageName: node linkType: hard -"@swagger-api/apidom-parser-adapter-openapi-yaml-3-1@npm:^0.70.0": - version: 0.70.0 - resolution: "@swagger-api/apidom-parser-adapter-openapi-yaml-3-1@npm:0.70.0" +"@swagger-api/apidom-parser-adapter-openapi-yaml-3-1@npm:^0.74.1": + version: 0.74.1 + resolution: "@swagger-api/apidom-parser-adapter-openapi-yaml-3-1@npm:0.74.1" dependencies: "@babel/runtime-corejs3": ^7.20.7 - "@swagger-api/apidom-core": ^0.70.0 - "@swagger-api/apidom-ns-openapi-3-1": ^0.70.0 - "@swagger-api/apidom-parser-adapter-yaml-1-2": ^0.70.0 - "@types/ramda": ~0.29.1 + "@swagger-api/apidom-core": ^0.74.1 + "@swagger-api/apidom-ns-openapi-3-1": ^0.74.1 + "@swagger-api/apidom-parser-adapter-yaml-1-2": ^0.74.1 + "@types/ramda": ~0.29.3 ramda: ~0.29.0 ramda-adjunct: ^4.0.0 - checksum: 15ff89007ada9b38d88321aa4fddd5741d88095888e37bacb1feb31ecd1a112878e73027f3d158b9ba2a77279751dcf1a64dc8f8d56fb45c0f6c58196ef9c64a + checksum: 11893a6477013377bc60785f4e2769c5c7ddd403358c3ad2def037b75227d661cc26ec85d5a5dad9cae906696fe9091cdaab9a1d822c80c627f5cd99af1ed295 languageName: node linkType: hard -"@swagger-api/apidom-parser-adapter-yaml-1-2@npm:^0.70.0": - version: 0.70.0 - resolution: "@swagger-api/apidom-parser-adapter-yaml-1-2@npm:0.70.0" +"@swagger-api/apidom-parser-adapter-yaml-1-2@npm:^0.74.1": + version: 0.74.1 + resolution: "@swagger-api/apidom-parser-adapter-yaml-1-2@npm:0.74.1" dependencies: "@babel/runtime-corejs3": ^7.20.7 - "@swagger-api/apidom-ast": ^0.70.0 - "@swagger-api/apidom-core": ^0.70.0 - "@types/ramda": ~0.29.1 + "@swagger-api/apidom-ast": ^0.74.1 + "@swagger-api/apidom-core": ^0.74.1 + "@types/ramda": ~0.29.3 node-gyp: latest ramda: ~0.29.0 ramda-adjunct: ^4.0.0 stampit: ^4.3.2 - tree-sitter: =0.20.1 + tree-sitter: =0.20.4 tree-sitter-yaml: =0.5.0 - web-tree-sitter: =0.20.7 - checksum: 9f63b3053d1853fb742847171bd1eb69163f665bcd080018c283bbd8355058eb96f5ed0b2216d3c9c934e14c9dcd5202f921d033d6d240d37edaade13c1008cd + web-tree-sitter: =0.20.3 + checksum: 145a1f248f9de7a7f31593f7a9ad593c653948414e3fe70349d54b2301a7bb501765ccd595db318d00fcb5d9eafaa394e514fc68c4f69741096b750ad4f3affe languageName: node linkType: hard -"@swagger-api/apidom-reference@npm:>=0.70.0 <1.0.0": - version: 0.70.0 - resolution: "@swagger-api/apidom-reference@npm:0.70.0" +"@swagger-api/apidom-reference@npm:>=0.74.1 <1.0.0": + version: 0.74.1 + resolution: "@swagger-api/apidom-reference@npm:0.74.1" dependencies: "@babel/runtime-corejs3": ^7.20.7 - "@swagger-api/apidom-core": ^0.70.0 - "@swagger-api/apidom-json-pointer": ^0.70.0 - "@swagger-api/apidom-ns-asyncapi-2": ^0.70.0 - "@swagger-api/apidom-ns-openapi-3-0": ^0.70.0 - "@swagger-api/apidom-ns-openapi-3-1": ^0.70.0 - "@swagger-api/apidom-parser-adapter-api-design-systems-json": ^0.70.0 - "@swagger-api/apidom-parser-adapter-api-design-systems-yaml": ^0.70.0 - "@swagger-api/apidom-parser-adapter-asyncapi-json-2": ^0.70.0 - "@swagger-api/apidom-parser-adapter-asyncapi-yaml-2": ^0.70.0 - "@swagger-api/apidom-parser-adapter-json": ^0.70.0 - "@swagger-api/apidom-parser-adapter-openapi-json-3-0": ^0.70.0 - "@swagger-api/apidom-parser-adapter-openapi-json-3-1": ^0.70.0 - "@swagger-api/apidom-parser-adapter-openapi-yaml-3-0": ^0.70.0 - "@swagger-api/apidom-parser-adapter-openapi-yaml-3-1": ^0.70.0 - "@swagger-api/apidom-parser-adapter-yaml-1-2": ^0.70.0 - "@types/ramda": ~0.29.1 + "@swagger-api/apidom-core": ^0.74.1 + "@swagger-api/apidom-json-pointer": ^0.74.1 + "@swagger-api/apidom-ns-asyncapi-2": ^0.74.1 + "@swagger-api/apidom-ns-openapi-3-0": ^0.74.1 + "@swagger-api/apidom-ns-openapi-3-1": ^0.74.1 + "@swagger-api/apidom-parser-adapter-api-design-systems-json": ^0.74.1 + "@swagger-api/apidom-parser-adapter-api-design-systems-yaml": ^0.74.1 + "@swagger-api/apidom-parser-adapter-asyncapi-json-2": ^0.74.1 + "@swagger-api/apidom-parser-adapter-asyncapi-yaml-2": ^0.74.1 + "@swagger-api/apidom-parser-adapter-json": ^0.74.1 + "@swagger-api/apidom-parser-adapter-openapi-json-3-0": ^0.74.1 + "@swagger-api/apidom-parser-adapter-openapi-json-3-1": ^0.74.1 + "@swagger-api/apidom-parser-adapter-openapi-yaml-3-0": ^0.74.1 + "@swagger-api/apidom-parser-adapter-openapi-yaml-3-1": ^0.74.1 + "@swagger-api/apidom-parser-adapter-yaml-1-2": ^0.74.1 + "@types/ramda": ~0.29.3 axios: ^1.4.0 minimatch: ^7.4.3 process: ^0.11.10 @@ -16051,7 +16053,7 @@ __metadata: optional: true "@swagger-api/apidom-parser-adapter-yaml-1-2": optional: true - checksum: ea8de1fa634f4f6092da5a19c015e64a7ffe45097e580dedfe1941b931a7352b3cb07410b5c83396ab10ff22fef4ad6a631a42517677e68824dc883270218ed7 + checksum: dda3f3da4fcea911bd19136635293c07e62d3ba6d4248fe3fee22eb659250631809f045a439cad03b6afc5a5472bd4ee3168bfe5be1bf53bfbd3dceed7ef60f4 languageName: node linkType: hard @@ -17748,12 +17750,12 @@ __metadata: languageName: node linkType: hard -"@types/ramda@npm:~0.29.1": - version: 0.29.2 - resolution: "@types/ramda@npm:0.29.2" +"@types/ramda@npm:~0.29.3": + version: 0.29.3 + resolution: "@types/ramda@npm:0.29.3" dependencies: - types-ramda: ^0.29.3 - checksum: 152151848a02aca8b7eb7e95e247a10c8e0f12e07d096a25c4c230cc3bd704009670c735737d3f843373a4598869c2b2d6f81e425fa17c762e4b57808400d968 + types-ramda: ^0.29.4 + checksum: 172b18d62473d4bffb1e4e92fa293e56fa4f85fcf91b1b2c9178955f775e34065cc408e93f1171436b52e240599ecb1be51955dab07ca389bf2da98f85f820a9 languageName: node linkType: hard @@ -21124,17 +21126,10 @@ __metadata: languageName: node linkType: hard -"ci-info@npm:^2.0.0": - version: 2.0.0 - resolution: "ci-info@npm:2.0.0" - checksum: 3b374666a85ea3ca43fa49aa3a048d21c9b475c96eb13c133505d2324e7ae5efd6a454f41efe46a152269e9b6a00c9edbe63ec7fa1921957165aae16625acd67 - languageName: node - linkType: hard - -"ci-info@npm:^3.1.0, ci-info@npm:^3.2.0": - version: 3.3.2 - resolution: "ci-info@npm:3.3.2" - checksum: fd81f1edd2d3b0f6cb077b2e84365136d87b9db8c055928c1ad69da8a76c2c2f19cba8ea51b90238302157ca927f91f92b653e933f2398dde4867500f08d6e62 +"ci-info@npm:^3.1.0, ci-info@npm:^3.2.0, ci-info@npm:^3.7.0": + version: 3.8.0 + resolution: "ci-info@npm:3.8.0" + checksum: d0a4d3160497cae54294974a7246202244fff031b0a6ea20dd57b10ec510aa17399c41a1b0982142c105f3255aff2173e5c0dd7302ee1b2f28ba3debda375098 languageName: node linkType: hard @@ -22290,19 +22285,6 @@ __metadata: languageName: node linkType: hard -"cross-spawn@npm:^6.0.5": - version: 6.0.5 - resolution: "cross-spawn@npm:6.0.5" - dependencies: - nice-try: ^1.0.4 - path-key: ^2.0.1 - semver: ^5.5.0 - shebang-command: ^1.2.0 - which: ^1.2.9 - checksum: f893bb0d96cd3d5751d04e67145bdddf25f99449531a72e82dcbbd42796bbc8268c1076c6b3ea51d4d455839902804b94bc45dfb37ecbb32ea8e54a6741c3ab9 - languageName: node - linkType: hard - "cross-spawn@npm:^7.0.0, cross-spawn@npm:^7.0.1, cross-spawn@npm:^7.0.2, cross-spawn@npm:^7.0.3": version: 7.0.3 resolution: "cross-spawn@npm:7.0.3" @@ -23573,10 +23555,10 @@ __metadata: languageName: node linkType: hard -"dompurify@npm:=3.0.2": - version: 3.0.2 - resolution: "dompurify@npm:3.0.2" - checksum: 768c3bb2f139ce1e1a53faf81aae6abe03e24d0b043e2fda0b70e91ef15bb1df854a35e82d8c519adfe5b81c24bfdad3e0b1085534bfbf427137cb742406c47f +"dompurify@npm:=3.0.5": + version: 3.0.5 + resolution: "dompurify@npm:3.0.5" + checksum: 2d9421570c833ce26ce7022955241749b646d41e8bf453f42ede9f22d0e98af482cedb7dfbf8129419eb48b351c1d677a08fc9f1cd91836ce7f6c1807a0676b2 languageName: node linkType: hard @@ -28271,17 +28253,6 @@ __metadata: languageName: node linkType: hard -"is-ci@npm:^2.0.0": - version: 2.0.0 - resolution: "is-ci@npm:2.0.0" - dependencies: - ci-info: ^2.0.0 - bin: - is-ci: bin.js - checksum: 77b869057510f3efa439bbb36e9be429d53b3f51abd4776eeea79ab3b221337fe1753d1e50058a9e2c650d38246108beffb15ccfd443929d77748d8c0cc90144 - languageName: node - linkType: hard - "is-ci@npm:^3.0.0, is-ci@npm:^3.0.1": version: 3.0.1 resolution: "is-ci@npm:3.0.1" @@ -33038,13 +33009,6 @@ __metadata: languageName: node linkType: hard -"nice-try@npm:^1.0.4": - version: 1.0.5 - resolution: "nice-try@npm:1.0.5" - checksum: 0b4af3b5bb5d86c289f7a026303d192a7eb4417231fe47245c460baeabae7277bcd8fd9c728fb6bd62c30b3e15cd6620373e2cf33353b095d8b403d3e8a15aff - languageName: node - linkType: hard - "nimma@npm:0.2.2": version: 0.2.2 resolution: "nimma@npm:0.2.2" @@ -33087,15 +33051,6 @@ __metadata: languageName: node linkType: hard -"node-abi@npm:^2.21.0": - version: 2.30.1 - resolution: "node-abi@npm:2.30.1" - dependencies: - semver: ^5.4.1 - checksum: 3f4b0c912ce4befcd7ceab4493ba90b51d60dfcc90f567c93f731d897ef8691add601cb64c181683b800f21d479d68f9a6e15d8ab8acd16a5706333b9e30a881 - languageName: node - linkType: hard - "node-abi@npm:^3.3.0": version: 3.8.0 resolution: "node-abi@npm:3.8.0" @@ -33535,7 +33490,7 @@ __metadata: languageName: node linkType: hard -"npmlog@npm:^4.0.1, npmlog@npm:^4.1.2": +"npmlog@npm:^4.1.2": version: 4.1.2 resolution: "npmlog@npm:4.1.2" dependencies: @@ -34502,27 +34457,27 @@ __metadata: languageName: node linkType: hard -"patch-package@npm:^6.5.1": - version: 6.5.1 - resolution: "patch-package@npm:6.5.1" +"patch-package@npm:^7.0.2": + version: 7.0.2 + resolution: "patch-package@npm:7.0.2" dependencies: "@yarnpkg/lockfile": ^1.1.0 chalk: ^4.1.2 - cross-spawn: ^6.0.5 + ci-info: ^3.7.0 + cross-spawn: ^7.0.3 find-yarn-workspace-root: ^2.0.0 fs-extra: ^9.0.0 - is-ci: ^2.0.0 klaw-sync: ^6.0.0 minimist: ^1.2.6 open: ^7.4.2 rimraf: ^2.6.3 - semver: ^5.6.0 + semver: ^7.5.3 slash: ^2.0.0 tmp: ^0.0.33 - yaml: ^1.10.2 + yaml: ^2.2.2 bin: patch-package: index.js - checksum: 8530ffa30f11136b527c6eddf6da48fa12856ee510a47edb1f9cdf8a025636adb82968f5fae778b5e04ce8c87915ebdf5911422b54add59a5a42e372a8f30eb2 + checksum: de2cf60effc8b59ee15d4930f84eea63c217525f0133c926850ee3a2437651d8aabbd0fec4ddee1b8b8da4fd380bcea90ef3c4acd69026057fa80cdc823b59a4 languageName: node linkType: hard @@ -34585,13 +34540,6 @@ __metadata: languageName: node linkType: hard -"path-key@npm:^2.0.1": - version: 2.0.1 - resolution: "path-key@npm:2.0.1" - checksum: f7ab0ad42fe3fb8c7f11d0c4f849871e28fbd8e1add65c370e422512fc5887097b9cf34d09c1747d45c942a8c1e26468d6356e2df3f740bf177ab8ca7301ebfd - languageName: node - linkType: hard - "path-key@npm:^3.0.0, path-key@npm:^3.1.0": version: 3.1.1 resolution: "path-key@npm:3.1.1" @@ -35546,29 +35494,6 @@ __metadata: languageName: node linkType: hard -"prebuild-install@npm:^6.0.1": - version: 6.1.4 - resolution: "prebuild-install@npm:6.1.4" - dependencies: - detect-libc: ^1.0.3 - expand-template: ^2.0.3 - github-from-package: 0.0.0 - minimist: ^1.2.3 - mkdirp-classic: ^0.5.3 - napi-build-utils: ^1.0.1 - node-abi: ^2.21.0 - npmlog: ^4.0.1 - pump: ^3.0.0 - rc: ^1.2.7 - simple-get: ^3.0.3 - tar-fs: ^2.0.0 - tunnel-agent: ^0.6.0 - bin: - prebuild-install: bin.js - checksum: de4313eda821305912af922700a2db04bb8e77fe8aa9c2788550f1000c026cbefc82da468ec0c0a37764c5417bd8169dbd540928535fb38d00bb9bbd673dd217 - languageName: node - linkType: hard - "prebuild-install@npm:^7.1.0, prebuild-install@npm:^7.1.1": version: 7.1.1 resolution: "prebuild-install@npm:7.1.1" @@ -36652,9 +36577,9 @@ __metadata: languageName: node linkType: hard -"react-redux@npm:^8.0.5": - version: 8.0.5 - resolution: "react-redux@npm:8.0.5" +"react-redux@npm:^8.1.2": + version: 8.1.2 + resolution: "react-redux@npm:8.1.2" dependencies: "@babel/runtime": ^7.12.1 "@types/hoist-non-react-statics": ^3.3.1 @@ -36668,7 +36593,7 @@ __metadata: react: ^16.8 || ^17.0 || ^18.0 react-dom: ^16.8 || ^17.0 || ^18.0 react-native: ">=0.59" - redux: ^4 + redux: ^4 || ^5.0.0-beta.0 peerDependenciesMeta: "@types/react": optional: true @@ -36680,7 +36605,7 @@ __metadata: optional: true redux: optional: true - checksum: a108f4f7ead6ac005e656d46051474a2bbdb31ede481bbbb3d8d779c1a35e1940b8655577cc5021313411864d305f67fc719aa48d6e5ed8288cf9cbe8b7042e4 + checksum: 4d5976b0f721e4148475871fcabce2fee875cc7f70f9a292f3370d63b38aa1dd474eb303c073c5555f3e69fc732f3bac05303def60304775deb28361e3f4b7cc languageName: node linkType: hard @@ -37300,6 +37225,13 @@ __metadata: languageName: node linkType: hard +"regenerator-runtime@npm:^0.14.0": + version: 0.14.0 + resolution: "regenerator-runtime@npm:0.14.0" + checksum: 1c977ad82a82a4412e4f639d65d22be376d3ebdd30da2c003eeafdaaacd03fc00c2320f18120007ee700900979284fc78a9f00da7fb593f6e6eeebc673fba9a3 + languageName: node + linkType: hard + "regenerator-transform@npm:^0.15.0": version: 0.15.0 resolution: "regenerator-transform@npm:0.15.0" @@ -38330,7 +38262,7 @@ __metadata: languageName: node linkType: hard -"semver@npm:2 || 3 || 4 || 5, semver@npm:^5.4.1, semver@npm:^5.5.0, semver@npm:^5.6.0, semver@npm:^5.7.1": +"semver@npm:2 || 3 || 4 || 5, semver@npm:^5.6.0, semver@npm:^5.7.1": version: 5.7.2 resolution: "semver@npm:5.7.2" bin: @@ -39913,15 +39845,15 @@ __metadata: languageName: node linkType: hard -"swagger-client@npm:^3.19.8": - version: 3.19.8 - resolution: "swagger-client@npm:3.19.8" +"swagger-client@npm:^3.20.0": + version: 3.20.0 + resolution: "swagger-client@npm:3.20.0" dependencies: "@babel/runtime-corejs3": ^7.20.13 - "@swagger-api/apidom-core": ">=0.70.0 <1.0.0" - "@swagger-api/apidom-json-pointer": ">=0.70.0 <1.0.0" - "@swagger-api/apidom-ns-openapi-3-1": ">=0.70.0 <1.0.0" - "@swagger-api/apidom-reference": ">=0.70.0 <1.0.0" + "@swagger-api/apidom-core": ">=0.74.1 <1.0.0" + "@swagger-api/apidom-json-pointer": ">=0.74.1 <1.0.0" + "@swagger-api/apidom-ns-openapi-3-1": ">=0.74.1 <1.0.0" + "@swagger-api/apidom-reference": ">=0.74.1 <1.0.0" cookie: ~0.5.0 cross-fetch: ^3.1.5 deepmerge: ~4.3.0 @@ -39934,27 +39866,27 @@ __metadata: qs: ^6.10.2 traverse: ~0.6.6 url: ~0.11.0 - checksum: 6acb65fe70a24a5c9aace54193b085a594198b1edd3a4533ef86b2ee733a0fcaad8abd7ab0d77d5f14468bccaec88b4b39793a6bc9fa07ff7a925101a106bed4 + checksum: c61452d0c810e05ec319dfc9bf8b876a87d1d5ed74156764ccc627e79e8a6c0d84f4660754dd1e2f7570adfa17a89c2d16cc337421b7da3bec0b428224a70436 languageName: node linkType: hard "swagger-ui-react@npm:^5.0.0": - version: 5.0.0 - resolution: "swagger-ui-react@npm:5.0.0" + version: 5.3.1 + resolution: "swagger-ui-react@npm:5.3.1" dependencies: - "@babel/runtime-corejs3": ^7.22.5 + "@babel/runtime-corejs3": ^7.22.6 "@braintree/sanitize-url": =6.0.2 base64-js: ^1.5.1 classnames: ^2.3.1 css.escape: 1.5.1 deep-extend: 0.6.0 - dompurify: =3.0.2 + dompurify: =3.0.5 ieee754: ^1.2.1 immutable: ^3.x.x js-file-download: ^0.4.12 js-yaml: =4.1.0 lodash: ^4.17.21 - patch-package: ^6.5.1 + patch-package: ^7.0.2 prop-types: ^15.8.1 randexp: ^0.5.3 randombytes: ^2.1.0 @@ -39963,7 +39895,7 @@ __metadata: react-immutable-proptypes: 2.2.0 react-immutable-pure-component: ^2.2.0 react-inspector: ^6.0.1 - react-redux: ^8.0.5 + react-redux: ^8.1.2 react-syntax-highlighter: ^15.5.0 redux: ^4.1.2 redux-immutable: ^4.0.0 @@ -39971,7 +39903,7 @@ __metadata: reselect: ^4.1.8 serialize-error: ^8.1.0 sha.js: ^2.4.11 - swagger-client: ^3.19.8 + swagger-client: ^3.20.0 url-parse: ^1.5.10 xml: =1.0.1 xml-but-prettier: ^1.0.1 @@ -39979,7 +39911,7 @@ __metadata: peerDependencies: react: ">=17.0.0" react-dom: ">=17.0.0" - checksum: 88c6232027ee0ec515bd21d183567b672821410df29281a7996e98f82392c41e9eb8955f463d8e835f93ba21201651fa46cd465cb1639c90501475a9757247f4 + checksum: 6f27e72bbd537a0c9d9d091d4632b4a09d95077c59815330186c495d67e17fd4dd1af649d5e8d93a61c896163d81d3faa2ae402418c3e7f43853b7d840712f7c languageName: node linkType: hard @@ -40597,14 +40529,14 @@ __metadata: languageName: node linkType: hard -"tree-sitter@npm:=0.20.1": - version: 0.20.1 - resolution: "tree-sitter@npm:0.20.1" +"tree-sitter@npm:=0.20.4": + version: 0.20.4 + resolution: "tree-sitter@npm:0.20.4" dependencies: - nan: ^2.14.0 + nan: ^2.17.0 node-gyp: latest - prebuild-install: ^6.0.1 - checksum: a33bf01f9dc558aa0075c9634d06743ed9b7fbf273d2acfbe96daf83f48aec46be7dc42d80d2423c36593d36d3bf189d3fa023d6ce389e20ff9527fae118b215 + prebuild-install: ^7.1.1 + checksum: 724f9773759a6ece317fff08deef2d2c63a6ea3b4f6723d5d6d56a7a886d27f799641d189d616c121a580e8492992bc2ede8d2e5c4241f30ff4ee9036dc6bb92 languageName: node linkType: hard @@ -40928,12 +40860,12 @@ __metadata: languageName: node linkType: hard -"types-ramda@npm:^0.29.3": - version: 0.29.3 - resolution: "types-ramda@npm:0.29.3" +"types-ramda@npm:^0.29.4": + version: 0.29.4 + resolution: "types-ramda@npm:0.29.4" dependencies: ts-toolbelt: ^9.6.0 - checksum: 2efb5182a02b9b11b0fd960c501c8a3c595f7fe82922526872020868a6a98c788b544c6beccb48360f1af9401d0c7f5e0be9b2ca484987f0339a71f48cec6199 + checksum: 08a872e71555fe6a3f1fd9381989a573d493f2156d9689f3bb72278db73c848122d67a9efff1867ce97b3dfbb2fdadaa3864daaee014ab19cf9bbfe2c171ed52 languageName: node linkType: hard @@ -41312,10 +41244,10 @@ __metadata: languageName: node linkType: hard -"unraw@npm:^2.0.1": - version: 2.0.1 - resolution: "unraw@npm:2.0.1" - checksum: af9a9d2f6e420cb4f52fe2f1f5982e6b0be95da640d6ae8d6d9ff631d864771793cb9fe7e2a16ef1ce631b94065f4438e7bd7f1701076fc69296edc4e704d42f +"unraw@npm:^3.0.0": + version: 3.0.0 + resolution: "unraw@npm:3.0.0" + checksum: 19eee0bc500ce197d262b79723a2c8c81c1d716baaa2a62c48a4d0d6b9e1fd9d350c5df86262e51343d591ab9c8a47ed150317d0b867b2b65795cdc17ef69873 languageName: node linkType: hard @@ -41966,10 +41898,10 @@ __metadata: languageName: node linkType: hard -"web-tree-sitter@npm:=0.20.7": - version: 0.20.7 - resolution: "web-tree-sitter@npm:0.20.7" - checksum: f2949a679bbca5ecb225ab26a67ff99e6e3907fa905c6bd62bfe6d2cfa216347f8cc481efcd32f181cb6b964bc03c42f9611e16da0825bff43de389b17ff9f7f +"web-tree-sitter@npm:=0.20.3": + version: 0.20.3 + resolution: "web-tree-sitter@npm:0.20.3" + checksum: 1187b48d69d6f6319c74ca8f413e8d7c1703869a351070053351ef169c045aad16e5c6b2a73779beaade2f0b6bb3433166363355c9d02e9b2dcf60a195dbffdb languageName: node linkType: hard From 75702e85862a83b85e3b3b24f7cf6926c372dee8 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Mon, 14 Aug 2023 13:50:17 +0200 Subject: [PATCH 261/372] repo-tools: bump API extractor deps Signed-off-by: Patrik Oldsberg --- .changeset/pink-seas-occur.md | 5 ++ packages/repo-tools/package.json | 4 +- yarn.lock | 148 ++++++++++++++----------------- 3 files changed, 75 insertions(+), 82 deletions(-) create mode 100644 .changeset/pink-seas-occur.md diff --git a/.changeset/pink-seas-occur.md b/.changeset/pink-seas-occur.md new file mode 100644 index 0000000000..220dc9a522 --- /dev/null +++ b/.changeset/pink-seas-occur.md @@ -0,0 +1,5 @@ +--- +'@backstage/repo-tools': patch +--- + +Bumped `@microsoft/api-extractor` dependency to `^7.36.4`, and `@microsoft/api-documenter` to `^7.22.33`. diff --git a/packages/repo-tools/package.json b/packages/repo-tools/package.json index c5d9e266c9..8a043217bb 100644 --- a/packages/repo-tools/package.json +++ b/packages/repo-tools/package.json @@ -36,8 +36,8 @@ "@backstage/cli-node": "workspace:^", "@backstage/errors": "workspace:^", "@manypkg/get-packages": "^1.1.3", - "@microsoft/api-documenter": "^7.19.27", - "@microsoft/api-extractor": "^7.33.7", + "@microsoft/api-documenter": "^7.22.33", + "@microsoft/api-extractor": "^7.36.4", "@stoplight/spectral-core": "^1.18.0", "@stoplight/spectral-formatters": "^1.1.0", "@stoplight/spectral-functions": "^1.7.2", diff --git a/yarn.lock b/yarn.lock index 294e9c55dd..71029c0ee9 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9543,8 +9543,8 @@ __metadata: "@backstage/errors": "workspace:^" "@backstage/types": "workspace:^" "@manypkg/get-packages": ^1.1.3 - "@microsoft/api-documenter": ^7.19.27 - "@microsoft/api-extractor": ^7.33.7 + "@microsoft/api-documenter": ^7.22.33 + "@microsoft/api-extractor": ^7.36.4 "@stoplight/spectral-core": ^1.18.0 "@stoplight/spectral-formatters": ^1.1.0 "@stoplight/spectral-functions": ^1.7.2 @@ -12821,53 +12821,53 @@ __metadata: languageName: node linkType: hard -"@microsoft/api-documenter@npm:^7.19.27": - version: 7.19.27 - resolution: "@microsoft/api-documenter@npm:7.19.27" +"@microsoft/api-documenter@npm:^7.22.33": + version: 7.22.33 + resolution: "@microsoft/api-documenter@npm:7.22.33" dependencies: - "@microsoft/api-extractor-model": 7.25.3 + "@microsoft/api-extractor-model": 7.27.6 "@microsoft/tsdoc": 0.14.2 - "@rushstack/node-core-library": 3.53.3 - "@rushstack/ts-command-line": 4.13.1 + "@rushstack/node-core-library": 3.59.7 + "@rushstack/ts-command-line": 4.15.2 colors: ~1.2.1 js-yaml: ~3.13.1 resolve: ~1.22.1 bin: api-documenter: bin/api-documenter - checksum: f243f473e1fe58e1cd6e32aad223724b6b621f569276415380abc4845859bf5c23fbe0e370be2a218f362a6c85b01b44b5427336f55800f2ea8bf3f398b0ee41 + checksum: b2aa75823c3a5bf65ce87b56bd85dfa276ff155eb2244187e163e4eb8f4a2daf15e39e9b5d1dea13f854309d9562ab845ff6c7c8b4973e409593852c3bc058f0 languageName: node linkType: hard -"@microsoft/api-extractor-model@npm:7.25.3": - version: 7.25.3 - resolution: "@microsoft/api-extractor-model@npm:7.25.3" +"@microsoft/api-extractor-model@npm:7.27.6": + version: 7.27.6 + resolution: "@microsoft/api-extractor-model@npm:7.27.6" dependencies: "@microsoft/tsdoc": 0.14.2 "@microsoft/tsdoc-config": ~0.16.1 - "@rushstack/node-core-library": 3.53.3 - checksum: 532ca30606b5649e90035ef70ff46868f6ccc63181e10b783bc5092e580bcb133112b300799b8f71a19da2b79f685a55f7ddbe84c8fe7ad93d71359c1763c521 + "@rushstack/node-core-library": 3.59.7 + checksum: 7867feaf3a0e5accfcce3a77681248a319952a266cffc644e4f8f7df1c9e1d55adb5124df901e8cca594bb3e12d361d1fcb2bffbdbb4b20fe3113928f6535975 languageName: node linkType: hard -"@microsoft/api-extractor@npm:^7.33.7": - version: 7.33.7 - resolution: "@microsoft/api-extractor@npm:7.33.7" +"@microsoft/api-extractor@npm:^7.36.4": + version: 7.36.4 + resolution: "@microsoft/api-extractor@npm:7.36.4" dependencies: - "@microsoft/api-extractor-model": 7.25.3 + "@microsoft/api-extractor-model": 7.27.6 "@microsoft/tsdoc": 0.14.2 "@microsoft/tsdoc-config": ~0.16.1 - "@rushstack/node-core-library": 3.53.3 - "@rushstack/rig-package": 0.3.17 - "@rushstack/ts-command-line": 4.13.1 + "@rushstack/node-core-library": 3.59.7 + "@rushstack/rig-package": 0.4.1 + "@rushstack/ts-command-line": 4.15.2 colors: ~1.2.1 lodash: ~4.17.15 - resolve: ~1.17.0 - semver: ~7.3.0 + resolve: ~1.22.1 + semver: ~7.5.4 source-map: ~0.6.1 - typescript: ~4.8.4 + typescript: ~5.0.4 bin: api-extractor: bin/api-extractor - checksum: 3f9034ca8e7bc7a6622cb8ac1f53f7f265ebca529e17f4abb2bef0ca297011cfa0927c0703a819607d974ca79b8f5307371491cfb192788e723cfd316250f9a6 + checksum: 92559325cf2407fa27cb9675772956511fa35005f295cdb4dc47abd7ef9c77ba61b0f684c2e952301a76dd2cfa9e398840c8f3d9117d621300e12b0ecfbf8147 languageName: node linkType: hard @@ -14493,41 +14493,45 @@ __metadata: languageName: node linkType: hard -"@rushstack/node-core-library@npm:3.53.3": - version: 3.53.3 - resolution: "@rushstack/node-core-library@npm:3.53.3" +"@rushstack/node-core-library@npm:3.59.7": + version: 3.59.7 + resolution: "@rushstack/node-core-library@npm:3.59.7" dependencies: - "@types/node": 12.20.24 colors: ~1.2.1 fs-extra: ~7.0.1 import-lazy: ~4.0.0 jju: ~1.4.0 - resolve: ~1.17.0 - semver: ~7.3.0 + resolve: ~1.22.1 + semver: ~7.5.4 z-schema: ~5.0.2 - checksum: 265d18e176079b8e90cd507e5d4d45f3afb1f811efdf491ea26f25f0397b77c0e9d42065166bf79a04503426c844ea92034cd3f8d5961b2a116de82e45cf6d6a + peerDependencies: + "@types/node": "*" + peerDependenciesMeta: + "@types/node": + optional: true + checksum: 57819d62fd662a6cf3306bf7d39c11204e094a2d5c2210639c2ac5baee58c183c02023203963cd0484a5623fd9f5dea7a223df843fb52b46a18508e6118cdc19 languageName: node linkType: hard -"@rushstack/rig-package@npm:0.3.17": - version: 0.3.17 - resolution: "@rushstack/rig-package@npm:0.3.17" +"@rushstack/rig-package@npm:0.4.1": + version: 0.4.1 + resolution: "@rushstack/rig-package@npm:0.4.1" dependencies: - resolve: ~1.17.0 + resolve: ~1.22.1 strip-json-comments: ~3.1.1 - checksum: 54eeea471c85b547575d7efc84fad3c9588f10106e2bfd8cd022bccb02c2fb0bf8ff597fab9114450b3c262abab0f0a4e52dd074bfd120e850b95037cd7b3102 + checksum: 68c5ec6c446c35939fca0444fa48e5beda736e3a5816e8b44d83df6ba8b9a2caf0ceddbdc866cd8ad3b523e42877cf6ecd467bc7839e3d618a9bb1c4b3e0b5a5 languageName: node linkType: hard -"@rushstack/ts-command-line@npm:4.13.1": - version: 4.13.1 - resolution: "@rushstack/ts-command-line@npm:4.13.1" +"@rushstack/ts-command-line@npm:4.15.2": + version: 4.15.2 + resolution: "@rushstack/ts-command-line@npm:4.15.2" dependencies: "@types/argparse": 1.0.38 argparse: ~1.0.9 colors: ~1.2.1 string-argv: ~0.3.1 - checksum: fea24b2549ecb7d3409b6b485d7c58bf8af8f8d1dd19c43a6b3532c45579ffc546bc4533b5db29c91ae1716581fdee4cb725f6a81ecb300e902ef06600e59f1d + checksum: c80dcfc99630ee51c6654c58ff41f69a3bd89c38e41d9871692bc73ee3c938ced79f8b75e182e492cafb2f6ddeb0628606856af494a0259ff6fac5b248996bed languageName: node linkType: hard @@ -17526,13 +17530,6 @@ __metadata: languageName: node linkType: hard -"@types/node@npm:12.20.24": - version: 12.20.24 - resolution: "@types/node@npm:12.20.24" - checksum: e7a13460e2f5b0b5a32c0f3af7daf1a05201552a66d542d3cc3b1ea8b52d4730250f9eb1961d755e31cfe5d03c78340911a6242657a0a9a17d6f7e341fc9f366 - languageName: node - linkType: hard - "@types/node@npm:^12.7.1": version: 12.20.55 resolution: "@types/node@npm:12.20.55" @@ -37643,15 +37640,6 @@ __metadata: languageName: node linkType: hard -"resolve@npm:~1.17.0": - version: 1.17.0 - resolution: "resolve@npm:1.17.0" - dependencies: - path-parse: ^1.0.6 - checksum: 9ceaf83b3429f2d7ff5d0281b8d8f18a1f05b6ca86efea7633e76b8f76547f33800799dfdd24434942dec4fbd9e651ed3aef577d9a6b5ec87ad89c1060e24759 - languageName: node - linkType: hard - "resolve@npm:~1.19.0": version: 1.19.0 resolution: "resolve@npm:1.19.0" @@ -37688,15 +37676,6 @@ __metadata: languageName: node linkType: hard -"resolve@patch:resolve@~1.17.0#~builtin": - version: 1.17.0 - resolution: "resolve@patch:resolve@npm%3A1.17.0#~builtin::version=1.17.0&hash=07638b" - dependencies: - path-parse: ^1.0.6 - checksum: 6fd799f282ddf078c4bc20ce863e3af01fa8cb218f0658d9162c57161a2dbafe092b13015b9a4c58d0e1e801cf7aa7a4f13115fea9db98c3f9a0c43e429bad6f - languageName: node - linkType: hard - "resolve@patch:resolve@~1.19.0#~builtin": version: 1.19.0 resolution: "resolve@patch:resolve@npm%3A1.19.0#~builtin::version=1.19.0&hash=07638b" @@ -38357,7 +38336,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.5.3": +"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, semver@npm:~7.5.4": version: 7.5.4 resolution: "semver@npm:7.5.4" dependencies: @@ -38368,17 +38347,6 @@ __metadata: languageName: node linkType: hard -"semver@npm:~7.3.0": - version: 7.3.8 - resolution: "semver@npm:7.3.8" - dependencies: - lru-cache: ^6.0.0 - bin: - semver: bin/semver.js - checksum: ba9c7cbbf2b7884696523450a61fee1a09930d888b7a8d7579025ad93d459b2d1949ee5bbfeb188b2be5f4ac163544c5e98491ad6152df34154feebc2cc337c1 - languageName: node - linkType: hard - "send@npm:0.18.0": version: 0.18.0 resolution: "send@npm:0.18.0" @@ -40955,7 +40923,7 @@ __metadata: languageName: node linkType: hard -"typescript@npm:~4.8.2, typescript@npm:~4.8.4": +"typescript@npm:~4.8.2": version: 4.8.4 resolution: "typescript@npm:4.8.4" bin: @@ -40975,7 +40943,17 @@ __metadata: languageName: node linkType: hard -"typescript@patch:typescript@~4.8.2#~builtin, typescript@patch:typescript@~4.8.4#~builtin": +"typescript@npm:~5.0.4": + version: 5.0.4 + resolution: "typescript@npm:5.0.4" + bin: + tsc: bin/tsc + tsserver: bin/tsserver + checksum: 82b94da3f4604a8946da585f7d6c3025fff8410779e5bde2855ab130d05e4fd08938b9e593b6ebed165bda6ad9292b230984f10952cf82f0a0ca07bbeaa08172 + languageName: node + linkType: hard + +"typescript@patch:typescript@~4.8.2#~builtin": version: 4.8.4 resolution: "typescript@patch:typescript@npm%3A4.8.4#~builtin::version=4.8.4&hash=a1c5e5" bin: @@ -40995,6 +40973,16 @@ __metadata: languageName: node linkType: hard +"typescript@patch:typescript@~5.0.4#~builtin": + version: 5.0.4 + resolution: "typescript@patch:typescript@npm%3A5.0.4#~builtin::version=5.0.4&hash=a1c5e5" + bin: + tsc: bin/tsc + tsserver: bin/tsserver + checksum: 6a1fe9a77bb9c5176ead919cc4a1499ee63e46b4e05bf667079f11bf3a8f7887f135aa72460a4c3b016e6e6bb65a822cb8689a6d86cbfe92d22cc9f501f09213 + languageName: node + linkType: hard + "ua-parser-js@npm:^0.7.30": version: 0.7.33 resolution: "ua-parser-js@npm:0.7.33" From ec1032129e4717e341169d8aa605d076cb6226d4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fredrik=20Adel=C3=B6w?= Date: Wed, 2 Aug 2023 15:44:12 +0200 Subject: [PATCH 262/372] make searchModuleCatalogCollator configurable from app-config MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Fredrik Adelöw --- .changeset/metal-kings-argue.md | 5 ++ .../alpha-api-report.md | 9 +- .../api-report.md | 4 +- .../search-backend-module-catalog/config.d.ts | 55 +++++++++++++ .../package.json | 7 +- .../src/alpha.test.ts | 43 ++++++++-- .../src/alpha.ts | 26 ++---- .../DefaultCatalogCollatorFactory.test.ts | 1 + .../DefaultCatalogCollatorFactory.ts | 56 ++++++++++--- .../src/collators/config.test.ts | 82 +++++++++++++++++++ .../src/collators/config.ts | 81 ++++++++++++++++++ yarn.lock | 1 + 12 files changed, 324 insertions(+), 46 deletions(-) create mode 100644 .changeset/metal-kings-argue.md create mode 100644 plugins/search-backend-module-catalog/config.d.ts create mode 100644 plugins/search-backend-module-catalog/src/collators/config.test.ts create mode 100644 plugins/search-backend-module-catalog/src/collators/config.ts diff --git a/.changeset/metal-kings-argue.md b/.changeset/metal-kings-argue.md new file mode 100644 index 0000000000..a0adeb6f04 --- /dev/null +++ b/.changeset/metal-kings-argue.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-search-backend-module-catalog': patch +--- + +Move collator settings from module options into app-config. You are now expected to set up the catalog collator under the `search.collators.catalog` configuration key. diff --git a/plugins/search-backend-module-catalog/alpha-api-report.md b/plugins/search-backend-module-catalog/alpha-api-report.md index 7c6e91b6a1..1f4395e116 100644 --- a/plugins/search-backend-module-catalog/alpha-api-report.md +++ b/plugins/search-backend-module-catalog/alpha-api-report.md @@ -5,7 +5,6 @@ ```ts import { BackendFeature } from '@backstage/backend-plugin-api'; import { DefaultCatalogCollatorFactoryOptions } from '@backstage/plugin-search-backend-module-catalog'; -import { TaskScheduleDefinition } from '@backstage/backend-tasks'; // @alpha export const searchModuleCatalogCollator: ( @@ -13,12 +12,10 @@ export const searchModuleCatalogCollator: ( ) => BackendFeature; // @alpha -export type SearchModuleCatalogCollatorOptions = Omit< +export type SearchModuleCatalogCollatorOptions = Pick< DefaultCatalogCollatorFactoryOptions, - 'discovery' | 'tokenManager' | 'catalogClient' -> & { - schedule?: TaskScheduleDefinition; -}; + 'entityTransformer' +>; // (No @packageDocumentation comment for this package) ``` diff --git a/plugins/search-backend-module-catalog/api-report.md b/plugins/search-backend-module-catalog/api-report.md index b773860fe8..6f5813ca9e 100644 --- a/plugins/search-backend-module-catalog/api-report.md +++ b/plugins/search-backend-module-catalog/api-report.md @@ -24,11 +24,11 @@ export type CatalogCollatorEntityTransformer = ( // @public (undocumented) export const defaultCatalogCollatorEntityTransformer: CatalogCollatorEntityTransformer; -// @public (undocumented) +// @public export class DefaultCatalogCollatorFactory implements DocumentCollatorFactory { // (undocumented) static fromConfig( - _config: Config, + configRoot: Config, options: DefaultCatalogCollatorFactoryOptions, ): DefaultCatalogCollatorFactory; // (undocumented) diff --git a/plugins/search-backend-module-catalog/config.d.ts b/plugins/search-backend-module-catalog/config.d.ts new file mode 100644 index 0000000000..0105764afb --- /dev/null +++ b/plugins/search-backend-module-catalog/config.d.ts @@ -0,0 +1,55 @@ +/* + * 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 { TaskScheduleDefinitionConfig } from '@backstage/backend-tasks'; + +export interface Config { + search?: { + collators?: { + /** + * Configuration options for `@backstage/plugin-search-backend-module-catalog` + */ + catalog?: { + /** + * A templating string with placeholders, to form the final location of + * the entity. + * + * Defaults to '/catalog/:namespace/:kind/:name' + */ + locationTemplate?: string; + /** + * A filter expression passed to the catalog client, to select what + * entities to collate. + * + * Defaults to no filter, ie indexing all entities. + */ + filter?: object; + /** + * The number of entities to process at a time. Keep this at a + * reasonable number to avoid overloading either the catalog or the + * search backend. + * + * Defaults to 500 + */ + batchSize?: number; + /** + * The schedule for how often to run the collation job. + */ + schedule?: TaskScheduleDefinitionConfig; + }; + }; + }; +} diff --git a/plugins/search-backend-module-catalog/package.json b/plugins/search-backend-module-catalog/package.json index f279ec399d..1d9ee95bae 100644 --- a/plugins/search-backend-module-catalog/package.json +++ b/plugins/search-backend-module-catalog/package.json @@ -48,6 +48,7 @@ "@backstage/catalog-client": "workspace:^", "@backstage/catalog-model": "workspace:^", "@backstage/config": "workspace:^", + "@backstage/errors": "workspace:^", "@backstage/plugin-catalog-common": "workspace:^", "@backstage/plugin-catalog-node": "workspace:^", "@backstage/plugin-permission-common": "workspace:^", @@ -61,6 +62,8 @@ "msw": "^1.0.0" }, "files": [ - "dist" - ] + "dist", + "config.d.ts" + ], + "configSchema": "config.d.ts" } diff --git a/plugins/search-backend-module-catalog/src/alpha.test.ts b/plugins/search-backend-module-catalog/src/alpha.test.ts index 8a3082c6aa..edd922b7fb 100644 --- a/plugins/search-backend-module-catalog/src/alpha.test.ts +++ b/plugins/search-backend-module-catalog/src/alpha.test.ts @@ -14,17 +14,11 @@ * limitations under the License. */ -import { startTestBackend } from '@backstage/backend-test-utils'; +import { mockServices, startTestBackend } from '@backstage/backend-test-utils'; import { searchIndexRegistryExtensionPoint } from '@backstage/plugin-search-backend-node/alpha'; import { searchModuleCatalogCollator } from './alpha'; describe('searchModuleCatalogCollator', () => { - const schedule = { - frequency: { minutes: 10 }, - timeout: { minutes: 15 }, - initialDelay: { seconds: 3 }, - }; - it('should register the catalog collator to the search index registry extension point with factory and schedule', async () => { const extensionPointMock = { addCollator: jest.fn(), @@ -34,7 +28,7 @@ describe('searchModuleCatalogCollator', () => { extensionPoints: [ [searchIndexRegistryExtensionPoint, extensionPointMock], ], - features: [searchModuleCatalogCollator({ schedule })], + features: [searchModuleCatalogCollator()], }); expect(extensionPointMock.addCollator).toHaveBeenCalledTimes(1); @@ -43,4 +37,37 @@ describe('searchModuleCatalogCollator', () => { schedule: expect.objectContaining({ run: expect.any(Function) }), }); }); + + it('refuses to start up with a broken schedule', async () => { + await expect( + startTestBackend({ + extensionPoints: [ + [ + searchIndexRegistryExtensionPoint, + { + addCollator: jest.fn(), + }, + ], + ], + features: [searchModuleCatalogCollator()], + services: [ + mockServices.rootConfig.factory({ + data: { + search: { + collators: { + catalog: { + schedule: { + frequency: { minutes: 10 }, + timeout: { minutes: 'boo' }, + initialDelay: { seconds: 3 }, + }, + }, + }, + }, + }, + }), + ], + }), + ).rejects.toThrow(/Invalid schedule/); + }); }); diff --git a/plugins/search-backend-module-catalog/src/alpha.ts b/plugins/search-backend-module-catalog/src/alpha.ts index cfd8c13539..330e11b42a 100644 --- a/plugins/search-backend-module-catalog/src/alpha.ts +++ b/plugins/search-backend-module-catalog/src/alpha.ts @@ -23,25 +23,23 @@ import { coreServices, createBackendModule, } from '@backstage/backend-plugin-api'; -import { TaskScheduleDefinition } from '@backstage/backend-tasks'; -import { searchIndexRegistryExtensionPoint } from '@backstage/plugin-search-backend-node/alpha'; - +import { catalogServiceRef } from '@backstage/plugin-catalog-node/alpha'; import { DefaultCatalogCollatorFactory, DefaultCatalogCollatorFactoryOptions, } from '@backstage/plugin-search-backend-module-catalog'; -import { catalogServiceRef } from '@backstage/plugin-catalog-node/alpha'; +import { searchIndexRegistryExtensionPoint } from '@backstage/plugin-search-backend-node/alpha'; +import { readScheduleConfigOptions } from './collators/config'; /** - * @alpha * Options for {@link searchModuleCatalogCollator}. + * + * @alpha */ -export type SearchModuleCatalogCollatorOptions = Omit< +export type SearchModuleCatalogCollatorOptions = Pick< DefaultCatalogCollatorFactoryOptions, - 'discovery' | 'tokenManager' | 'catalogClient' -> & { - schedule?: TaskScheduleDefinition; -}; + 'entityTransformer' +>; /** * Search backend module for the Catalog index. @@ -70,15 +68,9 @@ export const searchModuleCatalogCollator = createBackendModule( indexRegistry, catalog, }) { - const defaultSchedule = { - frequency: { minutes: 10 }, - timeout: { minutes: 15 }, - initialDelay: { seconds: 3 }, - }; - indexRegistry.addCollator({ schedule: scheduler.createScheduledTaskRunner( - options?.schedule ?? defaultSchedule, + readScheduleConfigOptions(config), ), factory: DefaultCatalogCollatorFactory.fromConfig(config, { ...options, diff --git a/plugins/search-backend-module-catalog/src/collators/DefaultCatalogCollatorFactory.test.ts b/plugins/search-backend-module-catalog/src/collators/DefaultCatalogCollatorFactory.test.ts index 462e777dff..7af3a8e9a2 100644 --- a/plugins/search-backend-module-catalog/src/collators/DefaultCatalogCollatorFactory.test.ts +++ b/plugins/search-backend-module-catalog/src/collators/DefaultCatalogCollatorFactory.test.ts @@ -13,6 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + import { PluginEndpointDiscovery, TokenManager, diff --git a/plugins/search-backend-module-catalog/src/collators/DefaultCatalogCollatorFactory.ts b/plugins/search-backend-module-catalog/src/collators/DefaultCatalogCollatorFactory.ts index ed81d39bbb..586346c385 100644 --- a/plugins/search-backend-module-catalog/src/collators/DefaultCatalogCollatorFactory.ts +++ b/plugins/search-backend-module-catalog/src/collators/DefaultCatalogCollatorFactory.ts @@ -14,7 +14,6 @@ * limitations under the License. */ -import { Config } from '@backstage/config'; import { PluginEndpointDiscovery, TokenManager, @@ -24,27 +23,45 @@ import { CatalogClient, GetEntitiesRequest, } from '@backstage/catalog-client'; -import { DocumentCollatorFactory } from '@backstage/plugin-search-common'; -import { catalogEntityReadPermission } from '@backstage/plugin-catalog-common/alpha'; +import { stringifyEntityRef } from '@backstage/catalog-model'; +import { Config } from '@backstage/config'; import { CatalogEntityDocument } from '@backstage/plugin-catalog-common'; +import { catalogEntityReadPermission } from '@backstage/plugin-catalog-common/alpha'; import { Permission } from '@backstage/plugin-permission-common'; +import { DocumentCollatorFactory } from '@backstage/plugin-search-common'; import { Readable } from 'stream'; import { CatalogCollatorEntityTransformer } from './CatalogCollatorEntityTransformer'; +import { readCollatorConfigOptions } from './config'; import { defaultCatalogCollatorEntityTransformer } from './defaultCatalogCollatorEntityTransformer'; -import { stringifyEntityRef } from '@backstage/catalog-model'; /** @public */ export type DefaultCatalogCollatorFactoryOptions = { discovery: PluginEndpointDiscovery; tokenManager: TokenManager; + /** + * @deprecated Use the config key `search.collators.catalog.locationTemplate` instead. + */ locationTemplate?: string; + /** + * @deprecated Use the config key `search.collators.catalog.filter` instead. + */ filter?: GetEntitiesRequest['filter']; + /** + * @deprecated Use the config key `search.collators.catalog.batchSize` instead. + */ batchSize?: number; catalogClient?: CatalogApi; + /** + * Allows you to customize how entities are shaped into documents. + */ entityTransformer?: CatalogCollatorEntityTransformer; }; -/** @public */ +/** + * Collates entities from the Catalog into documents for the search backend. + * + * @public + */ export class DefaultCatalogCollatorFactory implements DocumentCollatorFactory { public readonly type = 'software-catalog'; public readonly visibilityPermission: Permission = @@ -58,13 +75,31 @@ export class DefaultCatalogCollatorFactory implements DocumentCollatorFactory { private entityTransformer: CatalogCollatorEntityTransformer; static fromConfig( - _config: Config, + configRoot: Config, options: DefaultCatalogCollatorFactoryOptions, ) { - return new DefaultCatalogCollatorFactory(options); + const configOptions = readCollatorConfigOptions(configRoot); + return new DefaultCatalogCollatorFactory({ + locationTemplate: + options.locationTemplate ?? configOptions.locationTemplate, + filter: options.filter ?? configOptions.filter, + batchSize: options.batchSize ?? configOptions.batchSize, + entityTransformer: options.entityTransformer, + discovery: options.discovery, + tokenManager: options.tokenManager, + catalogClient: options.catalogClient, + }); } - private constructor(options: DefaultCatalogCollatorFactoryOptions) { + private constructor(options: { + locationTemplate: string; + filter: GetEntitiesRequest['filter']; + batchSize: number; + entityTransformer?: CatalogCollatorEntityTransformer; + discovery: PluginEndpointDiscovery; + tokenManager: TokenManager; + catalogClient?: CatalogApi; + }) { const { batchSize, discovery, @@ -75,10 +110,9 @@ export class DefaultCatalogCollatorFactory implements DocumentCollatorFactory { entityTransformer, } = options; - this.locationTemplate = - locationTemplate || '/catalog/:namespace/:kind/:name'; + this.locationTemplate = locationTemplate; this.filter = filter; - this.batchSize = batchSize || 500; + this.batchSize = batchSize; this.catalogClient = catalogClient || new CatalogClient({ discoveryApi: discovery }); this.tokenManager = tokenManager; diff --git a/plugins/search-backend-module-catalog/src/collators/config.test.ts b/plugins/search-backend-module-catalog/src/collators/config.test.ts new file mode 100644 index 0000000000..dc330f6df2 --- /dev/null +++ b/plugins/search-backend-module-catalog/src/collators/config.test.ts @@ -0,0 +1,82 @@ +/* + * 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 { ConfigReader } from '@backstage/config'; +import { + defaults, + readCollatorConfigOptions, + readScheduleConfigOptions, +} from './config'; + +describe('config', () => { + describe('readScheduleConfigOptions', () => { + it('reads config', () => { + const result = readScheduleConfigOptions( + new ConfigReader({ + search: { + collators: { + catalog: { + schedule: { + frequency: { minutes: 1 }, + timeout: { seconds: 2 }, + initialDelay: { hours: 3 }, + }, + }, + }, + }, + }), + ); + expect(result).toEqual({ + frequency: { minutes: 1 }, + timeout: { seconds: 2 }, + initialDelay: { hours: 3 }, + }); + }); + + it('returns defaults', () => { + const result = readScheduleConfigOptions(new ConfigReader({})); + expect(result).toEqual(defaults.schedule); + }); + }); + + describe('readCollatorConfigOptions', () => { + it('reads config', () => { + const result = readCollatorConfigOptions( + new ConfigReader({ + search: { + collators: { + catalog: { + batchSize: 1, + locationTemplate: '/mock/:namespace/:kind/:name', + filter: { a: 1 }, + }, + }, + }, + }), + ); + expect(result).toEqual({ + batchSize: 1, + locationTemplate: '/mock/:namespace/:kind/:name', + filter: { a: 1 }, + }); + }); + + it('returns defaults', () => { + const result = readCollatorConfigOptions(new ConfigReader({})); + expect(result).toEqual(defaults.collatorOptions); + }); + }); +}); diff --git a/plugins/search-backend-module-catalog/src/collators/config.ts b/plugins/search-backend-module-catalog/src/collators/config.ts new file mode 100644 index 0000000000..d4ae9b5934 --- /dev/null +++ b/plugins/search-backend-module-catalog/src/collators/config.ts @@ -0,0 +1,81 @@ +/* + * 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 { + readTaskScheduleDefinitionFromConfig, + TaskScheduleDefinition, +} from '@backstage/backend-tasks'; +import { EntityFilterQuery } from '@backstage/catalog-client'; +import { Config } from '@backstage/config'; +import { InputError } from '@backstage/errors'; + +const configKey = 'search.collators.catalog'; + +export const defaults = { + schedule: { + frequency: { minutes: 10 }, + timeout: { minutes: 15 }, + initialDelay: { seconds: 3 }, + }, + collatorOptions: { + locationTemplate: '/catalog/:namespace/:kind/:name', + filter: undefined, + batchSize: 500, + }, +}; + +export function readScheduleConfigOptions( + configRoot: Config, +): TaskScheduleDefinition { + let schedule: TaskScheduleDefinition | undefined = undefined; + + const config = configRoot.getOptionalConfig(configKey); + if (config) { + const scheduleConfig = config.getOptionalConfig('schedule'); + if (scheduleConfig) { + try { + schedule = readTaskScheduleDefinitionFromConfig(scheduleConfig); + } catch (error) { + throw new InputError(`Invalid schedule at ${configKey}, ${error}`); + } + } + } + + return schedule ?? defaults.schedule; +} + +export function readCollatorConfigOptions(configRoot: Config): { + locationTemplate: string; + filter: EntityFilterQuery | undefined; + batchSize: number; +} { + const config = configRoot.getOptionalConfig(configKey); + if (!config) { + return defaults.collatorOptions; + } + + return { + locationTemplate: + config.getOptionalString('locationTemplate') ?? + defaults.collatorOptions.locationTemplate, + filter: + config.getOptionalConfig('filter')?.get() ?? + defaults.collatorOptions.filter, + batchSize: + config.getOptionalNumber('batchSize') ?? + defaults.collatorOptions.batchSize, + }; +} diff --git a/yarn.lock b/yarn.lock index 56f0238159..327ef8635d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -8441,6 +8441,7 @@ __metadata: "@backstage/catalog-model": "workspace:^" "@backstage/cli": "workspace:^" "@backstage/config": "workspace:^" + "@backstage/errors": "workspace:^" "@backstage/plugin-catalog-common": "workspace:^" "@backstage/plugin-catalog-node": "workspace:^" "@backstage/plugin-permission-common": "workspace:^" From 8fe998a86812cbe213047d32794703279197633e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fredrik=20Adel=C3=B6w?= Date: Tue, 8 Aug 2023 22:31:36 +0200 Subject: [PATCH 263/372] bump to minor and breaking MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Fredrik Adelöw --- .changeset/metal-kings-argue.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.changeset/metal-kings-argue.md b/.changeset/metal-kings-argue.md index a0adeb6f04..3b00a54748 100644 --- a/.changeset/metal-kings-argue.md +++ b/.changeset/metal-kings-argue.md @@ -1,5 +1,5 @@ --- -'@backstage/plugin-search-backend-module-catalog': patch +'@backstage/plugin-search-backend-module-catalog': minor --- -Move collator settings from module options into app-config. You are now expected to set up the catalog collator under the `search.collators.catalog` configuration key. +**BREAKING**: Moved collator settings from module options into app-config. You are now expected to set up the catalog collator under the `search.collators.catalog` configuration key. From b98f508543164d2e327f910011e2f57645ec4751 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fredrik=20Adel=C3=B6w?= Date: Wed, 9 Aug 2023 10:58:29 +0200 Subject: [PATCH 264/372] simplify the module argument MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Fredrik Adelöw --- .../alpha-api-report.md | 9 ++++----- plugins/search-backend-module-catalog/src/alpha.ts | 14 ++++++++------ 2 files changed, 12 insertions(+), 11 deletions(-) diff --git a/plugins/search-backend-module-catalog/alpha-api-report.md b/plugins/search-backend-module-catalog/alpha-api-report.md index 1f4395e116..3db9fe97a6 100644 --- a/plugins/search-backend-module-catalog/alpha-api-report.md +++ b/plugins/search-backend-module-catalog/alpha-api-report.md @@ -4,7 +4,7 @@ ```ts import { BackendFeature } from '@backstage/backend-plugin-api'; -import { DefaultCatalogCollatorFactoryOptions } from '@backstage/plugin-search-backend-module-catalog'; +import { CatalogCollatorEntityTransformer } from '@backstage/plugin-search-backend-module-catalog'; // @alpha export const searchModuleCatalogCollator: ( @@ -12,10 +12,9 @@ export const searchModuleCatalogCollator: ( ) => BackendFeature; // @alpha -export type SearchModuleCatalogCollatorOptions = Pick< - DefaultCatalogCollatorFactoryOptions, - 'entityTransformer' ->; +export type SearchModuleCatalogCollatorOptions = { + entityTransformer?: CatalogCollatorEntityTransformer; +}; // (No @packageDocumentation comment for this package) ``` diff --git a/plugins/search-backend-module-catalog/src/alpha.ts b/plugins/search-backend-module-catalog/src/alpha.ts index 330e11b42a..8d2a7f4ff1 100644 --- a/plugins/search-backend-module-catalog/src/alpha.ts +++ b/plugins/search-backend-module-catalog/src/alpha.ts @@ -25,8 +25,8 @@ import { } from '@backstage/backend-plugin-api'; import { catalogServiceRef } from '@backstage/plugin-catalog-node/alpha'; import { + CatalogCollatorEntityTransformer, DefaultCatalogCollatorFactory, - DefaultCatalogCollatorFactoryOptions, } from '@backstage/plugin-search-backend-module-catalog'; import { searchIndexRegistryExtensionPoint } from '@backstage/plugin-search-backend-node/alpha'; import { readScheduleConfigOptions } from './collators/config'; @@ -36,10 +36,12 @@ import { readScheduleConfigOptions } from './collators/config'; * * @alpha */ -export type SearchModuleCatalogCollatorOptions = Pick< - DefaultCatalogCollatorFactoryOptions, - 'entityTransformer' ->; +export type SearchModuleCatalogCollatorOptions = { + /** + * Allows you to customize how entities are shaped into documents. + */ + entityTransformer?: CatalogCollatorEntityTransformer; +}; /** * Search backend module for the Catalog index. @@ -73,7 +75,7 @@ export const searchModuleCatalogCollator = createBackendModule( readScheduleConfigOptions(config), ), factory: DefaultCatalogCollatorFactory.fromConfig(config, { - ...options, + entityTransformer: options?.entityTransformer, discovery, tokenManager, catalogClient: catalog, From 80c471ac428ae635d8e590d2ca95e034a40e0a3d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fredrik=20Adel=C3=B6w?= Date: Thu, 10 Aug 2023 11:41:43 +0200 Subject: [PATCH 265/372] nerf the changeset again MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Fredrik Adelöw --- .changeset/metal-kings-argue.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.changeset/metal-kings-argue.md b/.changeset/metal-kings-argue.md index 3b00a54748..d3edf502f0 100644 --- a/.changeset/metal-kings-argue.md +++ b/.changeset/metal-kings-argue.md @@ -1,5 +1,5 @@ --- -'@backstage/plugin-search-backend-module-catalog': minor +'@backstage/plugin-search-backend-module-catalog': patch --- -**BREAKING**: Moved collator settings from module options into app-config. You are now expected to set up the catalog collator under the `search.collators.catalog` configuration key. +Breaking change in the alpha export `searchModuleCatalogCollator`: Moved collator settings from module options into app-config. You are now expected to set up the catalog collator under the `search.collators.catalog` configuration key. From d197f13172e08b1055368122edcde84fd590b272 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Mon, 14 Aug 2023 14:01:00 +0200 Subject: [PATCH 266/372] backend-app-api: restructure DependencyGraph tests Signed-off-by: Patrik Oldsberg --- .../src/lib/DependencyGraph.test.ts | 318 ++++++++++-------- 1 file changed, 175 insertions(+), 143 deletions(-) diff --git a/packages/backend-app-api/src/lib/DependencyGraph.test.ts b/packages/backend-app-api/src/lib/DependencyGraph.test.ts index 6720adb5e6..9fd6219ab3 100644 --- a/packages/backend-app-api/src/lib/DependencyGraph.test.ts +++ b/packages/backend-app-api/src/lib/DependencyGraph.test.ts @@ -26,165 +26,197 @@ describe('DependencyGraph', () => { ).resolves.toEqual([]); }); - it('should detect circular dependencies', () => { - expect( - DependencyGraph.fromMap({ - 1: {}, - 2: {}, - 3: {}, - 4: {}, - }).detectCircularDependency(), - ).toBeUndefined(); + describe('detectCircularDependency', () => { + it('should return undefined with not deps', () => { + expect( + DependencyGraph.fromMap({ + 1: {}, + 2: {}, + 3: {}, + 4: {}, + }).detectCircularDependency(), + ).toBeUndefined(); + }); - expect( - DependencyGraph.fromMap({ - 1: { provides: ['a'] }, - 2: { consumes: ['a'], provides: ['b', 'c'] }, - 3: { consumes: ['b'] }, - 4: { consumes: ['c'] }, - }).detectCircularDependency(), - ).toBeUndefined(); + it('should return undefined with no circular deps', async () => { + expect( + DependencyGraph.fromMap({ + 1: { provides: ['a'] }, + 2: { consumes: ['a'], provides: ['b', 'c'] }, + 3: { consumes: ['b'] }, + 4: { consumes: ['c'] }, + }).detectCircularDependency(), + ).toBeUndefined(); + }); - expect( - DependencyGraph.fromMap({ - 1: { provides: ['a'], consumes: ['a'] }, - }).detectCircularDependency(), - ).toEqual(['1', '1']); + it('should detect an immediate circular dep', async () => { + expect( + DependencyGraph.fromMap({ + 1: { provides: ['a'], consumes: ['a'] }, + }).detectCircularDependency(), + ).toEqual(['1', '1']); + }); - expect( - DependencyGraph.fromMap({ - 1: { provides: ['a'], consumes: ['b'] }, - 2: { provides: ['b'], consumes: ['a'] }, - }).detectCircularDependency(), - ).toEqual(['1', '2', '1']); + it('should detect a small circular dep', async () => { + expect( + DependencyGraph.fromMap({ + 1: { provides: ['a'], consumes: ['b'] }, + 2: { provides: ['b'], consumes: ['a'] }, + }).detectCircularDependency(), + ).toEqual(['1', '2', '1']); + }); - expect( - DependencyGraph.fromMap({ - 1: { provides: ['a'] }, - 2: { provides: ['b'], consumes: ['a', 'e'] }, - 3: { provides: ['c'], consumes: ['b'] }, - 4: { provides: ['d', 'e'], consumes: ['c', 'a'] }, - }).detectCircularDependency(), - ).toEqual(['2', '3', '4', '2']); + it('should detect a larger distant circular dep', async () => { + expect( + DependencyGraph.fromMap({ + 1: { provides: ['a'] }, + 2: { provides: ['b'], consumes: ['a', 'e'] }, + 3: { provides: ['c'], consumes: ['b'] }, + 4: { provides: ['d', 'e'], consumes: ['c', 'a'] }, + }).detectCircularDependency(), + ).toEqual(['2', '3', '4', '2']); + }); }); - it('should find unsatisfied dependencies', () => { - expect( - DependencyGraph.fromMap({ - 1: {}, - 2: {}, - 3: {}, - 4: {}, - }).findUnsatisfiedDeps(), - ).toEqual([]); + describe('findUnsatisfiedDeps', () => { + it('should return nothing with no deps', () => { + expect( + DependencyGraph.fromMap({ + 1: {}, + 2: {}, + 3: {}, + 4: {}, + }).findUnsatisfiedDeps(), + ).toEqual([]); + }); - expect( - DependencyGraph.fromMap({ - 1: { provides: ['a'] }, - 2: { consumes: ['a'], provides: ['b', 'c'] }, - 3: { consumes: ['b'] }, - 4: { consumes: ['c'] }, - }).findUnsatisfiedDeps(), - ).toEqual([]); + it('should return nothing when all deps are satisfied', async () => { + expect( + DependencyGraph.fromMap({ + 1: { provides: ['a'] }, + 2: { consumes: ['a'], provides: ['b', 'c'] }, + 3: { consumes: ['b'] }, + 4: { consumes: ['c'] }, + }).findUnsatisfiedDeps(), + ).toEqual([]); + }); - expect( - DependencyGraph.fromMap({ - 1: { consumes: ['a'] }, - }).findUnsatisfiedDeps(), - ).toEqual([{ value: '1', unsatisfied: ['a'] }]); + it('should find a single unsatisfied dep', async () => { + expect( + DependencyGraph.fromMap({ + 1: { consumes: ['a'] }, + }).findUnsatisfiedDeps(), + ).toEqual([{ value: '1', unsatisfied: ['a'] }]); + }); - expect( - DependencyGraph.fromMap({ - 1: { provides: ['a'], consumes: ['b'] }, - 2: { provides: ['b'], consumes: ['a', 'd', 'e'] }, - }).findUnsatisfiedDeps(), - ).toEqual([{ value: '2', unsatisfied: ['d', 'e'] }]); + it('should find multiple unsatisfied deps for one node', async () => { + expect( + DependencyGraph.fromMap({ + 1: { provides: ['a'], consumes: ['b'] }, + 2: { provides: ['b'], consumes: ['a', 'd', 'e'] }, + }).findUnsatisfiedDeps(), + ).toEqual([{ value: '2', unsatisfied: ['d', 'e'] }]); + }); - expect( - DependencyGraph.fromMap({ - 1: { provides: ['a'] }, - 2: { provides: ['b'], consumes: ['a', 'd', 'e'] }, - 3: { provides: [], consumes: ['b'] }, - 4: { provides: [], consumes: ['c', 'a'] }, - }).findUnsatisfiedDeps(), - ).toEqual([ - { value: '2', unsatisfied: ['d', 'e'] }, - { value: '4', unsatisfied: ['c'] }, - ]); + it('should find multiple unsatisfied deps for multiple nodes', async () => { + expect( + DependencyGraph.fromMap({ + 1: { provides: ['a'] }, + 2: { provides: ['b'], consumes: ['a', 'd', 'e'] }, + 3: { provides: [], consumes: ['b'] }, + 4: { provides: [], consumes: ['c', 'a'] }, + }).findUnsatisfiedDeps(), + ).toEqual([ + { value: '2', unsatisfied: ['d', 'e'] }, + { value: '4', unsatisfied: ['c'] }, + ]); + }); }); - it('should traverse dependencies in topological order', async () => { - await expect( - DependencyGraph.fromMap({ - 1: {}, - 2: {}, - 3: {}, - 4: {}, - }).parallelTopologicalTraversal(async id => id), - ).resolves.toEqual(['1', '2', '3', '4']); + describe('parallelTopologicalTraversal', () => { + it('should traverse with no deps', async () => { + await expect( + DependencyGraph.fromMap({ + 1: {}, + 2: {}, + 3: {}, + 4: {}, + }).parallelTopologicalTraversal(async id => id), + ).resolves.toEqual(['1', '2', '3', '4']); + }); - await expect( - DependencyGraph.fromMap({ - 1: { provides: ['a'] }, - 2: { consumes: ['a'], provides: ['b', 'c'] }, - 3: { consumes: ['b'] }, - 4: { consumes: ['c'] }, - }).parallelTopologicalTraversal(async id => id), - ).resolves.toEqual(['1', '2', '3', '4']); + it('should traverse with a few deps', async () => { + await expect( + DependencyGraph.fromMap({ + 1: { provides: ['a'] }, + 2: { consumes: ['a'], provides: ['b', 'c'] }, + 3: { consumes: ['b'] }, + 4: { consumes: ['c'] }, + }).parallelTopologicalTraversal(async id => id), + ).resolves.toEqual(['1', '2', '3', '4']); + }); - await expect( - DependencyGraph.fromMap({ - 1: { consumes: ['c'] }, - 2: { provides: ['c'], consumes: ['b'] }, - 3: { provides: ['b'], consumes: ['a'] }, - 4: { provides: ['a'] }, - }).parallelTopologicalTraversal(async id => id), - ).resolves.toEqual(['4', '3', '2', '1']); + it('should traverse in reverse', async () => { + await expect( + DependencyGraph.fromMap({ + 1: { consumes: ['c'] }, + 2: { provides: ['c'], consumes: ['b'] }, + 3: { provides: ['b'], consumes: ['a'] }, + 4: { provides: ['a'] }, + }).parallelTopologicalTraversal(async id => id), + ).resolves.toEqual(['4', '3', '2', '1']); + }); - await expect( - DependencyGraph.fromMap({ - 1: { provides: ['a'] }, - 2: { provides: ['b'], consumes: ['a'] }, - 3: { provides: ['c'], consumes: ['a'] }, - 4: { consumes: ['b'] }, - 5: { consumes: ['c'] }, - }).parallelTopologicalTraversal(async id => id), - ).resolves.toEqual(['1', '2', '3', '4', '5']); + it('should execute in parallel', async () => { + await expect( + DependencyGraph.fromMap({ + 1: { provides: ['a'] }, + 2: { provides: ['b'], consumes: ['a'] }, + 3: { provides: ['c'], consumes: ['a'] }, + 4: { consumes: ['b'] }, + 5: { consumes: ['c'] }, + }).parallelTopologicalTraversal(async id => id), + ).resolves.toEqual(['1', '2', '3', '4', '5']); - // Same as above, but with 2 being delayed - await expect( - DependencyGraph.fromMap({ - 1: { provides: ['a'] }, - 2: { provides: ['b'], consumes: ['a'] }, - 3: { provides: ['c'], consumes: ['a'] }, - 4: { consumes: ['b'] }, - 5: { consumes: ['c'] }, - }).parallelTopologicalTraversal(async id => { - // When delaying 2 we expect 3 and 5 to complete before 2 and 4 - if (id === '2') { - await new Promise(resolve => setTimeout(resolve, 100)); - } - return id; - }), - ).resolves.toEqual(['1', '3', '5', '2', '4']); + // Same as above, but with 2 being delayed + await expect( + DependencyGraph.fromMap({ + 1: { provides: ['a'] }, + 2: { provides: ['b'], consumes: ['a'] }, + 3: { provides: ['c'], consumes: ['a'] }, + 4: { consumes: ['b'] }, + 5: { consumes: ['c'] }, + }).parallelTopologicalTraversal(async id => { + // When delaying 2 we expect 3 and 5 to complete before 2 and 4 + if (id === '2') { + await new Promise(resolve => setTimeout(resolve, 100)); + } + return id; + }), + ).resolves.toEqual(['1', '3', '5', '2', '4']); + }); - await expect( - DependencyGraph.fromMap({ - 1: { provides: ['a'], consumes: ['a'] }, - }).parallelTopologicalTraversal(async id => id), - ).rejects.toThrow('Circular dependency detected'); - await expect( - DependencyGraph.fromMap({ - 1: { provides: ['a'], consumes: ['b'] }, - 2: { provides: ['b'], consumes: ['a'] }, - }).parallelTopologicalTraversal(async id => id), - ).rejects.toThrow('Circular dependency detected'); - await expect( - DependencyGraph.fromMap({ - 1: { provides: ['a'] }, - 2: { provides: ['c'], consumes: ['a', 'b'] }, - 3: { provides: ['b'], consumes: ['a', 'c'] }, - }).parallelTopologicalTraversal(async id => id), - ).rejects.toThrow('Circular dependency detected'); + it('should detect circular dependencies', async () => { + await expect( + DependencyGraph.fromMap({ + 1: { provides: ['a'], consumes: ['a'] }, + }).parallelTopologicalTraversal(async id => id), + ).rejects.toThrow('Circular dependency detected'); + + await expect( + DependencyGraph.fromMap({ + 1: { provides: ['a'], consumes: ['b'] }, + 2: { provides: ['b'], consumes: ['a'] }, + }).parallelTopologicalTraversal(async id => id), + ).rejects.toThrow('Circular dependency detected'); + + await expect( + DependencyGraph.fromMap({ + 1: { provides: ['a'] }, + 2: { provides: ['c'], consumes: ['a', 'b'] }, + 3: { provides: ['b'], consumes: ['a', 'c'] }, + }).parallelTopologicalTraversal(async id => id), + ).rejects.toThrow('Circular dependency detected'); + }); }); }); From de295fe8a8d7326ae7208a24802c2756e1c6d27d Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Mon, 14 Aug 2023 14:01:22 +0200 Subject: [PATCH 267/372] catalog-backend-module-msgraph: fix extension point example Signed-off-by: Patrik Oldsberg --- .../module/catalogModuleIncrementalIngestionEntityProvider.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/plugins/catalog-backend-module-incremental-ingestion/src/module/catalogModuleIncrementalIngestionEntityProvider.ts b/plugins/catalog-backend-module-incremental-ingestion/src/module/catalogModuleIncrementalIngestionEntityProvider.ts index 81419d66ec..4e94088ef6 100644 --- a/plugins/catalog-backend-module-incremental-ingestion/src/module/catalogModuleIncrementalIngestionEntityProvider.ts +++ b/plugins/catalog-backend-module-incremental-ingestion/src/module/catalogModuleIncrementalIngestionEntityProvider.ts @@ -49,6 +49,7 @@ export interface IncrementalIngestionProviderExtensionPoint { * ```ts * backend.add(createBackendModule({ * pluginId: 'catalog', + * moduleId: 'myIncrementalProvider', * register(env) { * env.registerInit({ * deps: { From 1fb03402eab70fd02e33aa8a70399f0c01faa7b8 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Mon, 14 Aug 2023 14:03:24 +0200 Subject: [PATCH 268/372] backend-app-api: make sure DependencyGraph.findUnsatisfiedDeps doesn't break on circular deps Signed-off-by: Patrik Oldsberg --- .../src/lib/DependencyGraph.test.ts | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/packages/backend-app-api/src/lib/DependencyGraph.test.ts b/packages/backend-app-api/src/lib/DependencyGraph.test.ts index 9fd6219ab3..65efac0252 100644 --- a/packages/backend-app-api/src/lib/DependencyGraph.test.ts +++ b/packages/backend-app-api/src/lib/DependencyGraph.test.ts @@ -109,6 +109,29 @@ describe('DependencyGraph', () => { ).toEqual([{ value: '1', unsatisfied: ['a'] }]); }); + it('should handle circular dependencies', async () => { + expect( + DependencyGraph.fromMap({ + 1: { consumes: ['a'], provides: ['a'] }, + }).findUnsatisfiedDeps(), + ).toEqual([]); + + expect( + DependencyGraph.fromMap({ + 1: { consumes: ['a'], provides: ['b'] }, + 2: { consumes: ['b'], provides: ['a'] }, + }).findUnsatisfiedDeps(), + ).toEqual([]); + + expect( + DependencyGraph.fromMap({ + 1: { consumes: ['a'] }, + 2: { consumes: ['b'], provides: ['c'] }, + 3: { consumes: ['c'], provides: ['a', 'b'] }, + }).findUnsatisfiedDeps(), + ).toEqual([]); + }); + it('should find multiple unsatisfied deps for one node', async () => { expect( DependencyGraph.fromMap({ From 971bdd6a473225a5e3a4c439961e0243f9c071c0 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Mon, 14 Aug 2023 13:34:35 +0200 Subject: [PATCH 269/372] bump nodemon to 3.0 Signed-off-by: Patrik Oldsberg --- .changeset/tender-avocados-kick.md | 7 ++++++ packages/cli/package.json | 2 +- packages/create-app/package.json | 2 +- packages/e2e-test/package.json | 2 +- packages/techdocs-cli/package.json | 2 +- yarn.lock | 34 +++++++++++++++--------------- 6 files changed, 28 insertions(+), 21 deletions(-) create mode 100644 .changeset/tender-avocados-kick.md diff --git a/.changeset/tender-avocados-kick.md b/.changeset/tender-avocados-kick.md new file mode 100644 index 0000000000..269412b1a6 --- /dev/null +++ b/.changeset/tender-avocados-kick.md @@ -0,0 +1,7 @@ +--- +'@techdocs/cli': patch +'@backstage/create-app': patch +'@backstage/cli': patch +--- + +Bumped internal `nodemon` dependency. diff --git a/packages/cli/package.json b/packages/cli/package.json index 37f3d3a093..cf00c6f301 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -167,7 +167,7 @@ "del": "^7.0.0", "mock-fs": "^5.1.0", "msw": "^1.0.0", - "nodemon": "^2.0.2", + "nodemon": "^3.0.1", "ts-node": "^10.0.0", "type-fest": "^2.19.0" }, diff --git a/packages/create-app/package.json b/packages/create-app/package.json index 62d455b7db..479ee2e689 100644 --- a/packages/create-app/package.json +++ b/packages/create-app/package.json @@ -49,7 +49,7 @@ "@types/node": "^16.11.26", "@types/recursive-readdir": "^2.2.0", "mock-fs": "^5.1.1", - "nodemon": "^2.0.2", + "nodemon": "^3.0.1", "ts-node": "^10.0.0" }, "nodemonConfig": { diff --git a/packages/e2e-test/package.json b/packages/e2e-test/package.json index 557e0d9fb4..9d6bab1fda 100644 --- a/packages/e2e-test/package.json +++ b/packages/e2e-test/package.json @@ -44,7 +44,7 @@ "@types/fs-extra": "^9.0.1", "@types/node": "^16.11.26", "@types/puppeteer": "^5.4.4", - "nodemon": "^2.0.2", + "nodemon": "^3.0.1", "ts-node": "^10.0.0" }, "nodemonConfig": { diff --git a/packages/techdocs-cli/package.json b/packages/techdocs-cli/package.json index 5968deddfb..0e9215f23b 100644 --- a/packages/techdocs-cli/package.json +++ b/packages/techdocs-cli/package.json @@ -46,7 +46,7 @@ "@types/webpack-env": "^1.15.3", "cypress": "^10.0.0", "find-process": "^1.4.5", - "nodemon": "^2.0.2", + "nodemon": "^3.0.1", "techdocs-cli-embedded-app": "link:../techdocs-cli-embedded-app", "ts-node": "^10.0.0" }, diff --git a/yarn.lock b/yarn.lock index f5db1bf2b5..fca741430a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3653,7 +3653,7 @@ __metadata: msw: ^1.0.0 node-fetch: ^2.6.7 node-libs-browser: ^2.2.1 - nodemon: ^2.0.2 + nodemon: ^3.0.1 npm-packlist: ^5.0.0 ora: ^5.3.0 postcss: ^8.1.0 @@ -4017,7 +4017,7 @@ __metadata: handlebars: ^4.7.3 inquirer: ^8.2.0 mock-fs: ^5.1.1 - nodemon: ^2.0.2 + nodemon: ^3.0.1 ora: ^5.3.0 recursive-readdir: ^2.2.2 ts-node: ^10.0.0 @@ -16252,7 +16252,7 @@ __metadata: fs-extra: ^10.0.1 global-agent: ^3.0.0 http-proxy: ^1.18.1 - nodemon: ^2.0.2 + nodemon: ^3.0.1 react-dev-utils: ^12.0.0-next.60 serve-handler: ^6.1.3 techdocs-cli-embedded-app: "link:../techdocs-cli-embedded-app" @@ -23666,7 +23666,7 @@ __metadata: cross-fetch: ^3.1.5 fs-extra: 10.1.0 handlebars: ^4.7.3 - nodemon: ^2.0.2 + nodemon: ^3.0.1 pgtools: ^1.0.0 puppeteer: ^17.0.0 tree-kill: ^1.2.2 @@ -33271,23 +33271,23 @@ __metadata: languageName: node linkType: hard -"nodemon@npm:^2.0.2": - version: 2.0.22 - resolution: "nodemon@npm:2.0.22" +"nodemon@npm:^3.0.1": + version: 3.0.1 + resolution: "nodemon@npm:3.0.1" dependencies: chokidar: ^3.5.2 debug: ^3.2.7 ignore-by-default: ^1.0.1 minimatch: ^3.1.2 pstree.remy: ^1.1.8 - semver: ^5.7.1 - simple-update-notifier: ^1.0.7 + semver: ^7.5.3 + simple-update-notifier: ^2.0.0 supports-color: ^5.5.0 touch: ^3.1.0 undefsafe: ^2.0.5 bin: nodemon: bin/nodemon.js - checksum: 9c987e139748f5b5c480c6c9080bdc97304ee7d29172b7b3da1a7db590b1323ad57b96346304e9b522b0e445c336dc393ccd3f9f45c73b20d476d2347890dcd0 + checksum: 6a5d81855760d6617049eccce10ccf02bddb482dab13ceea5280ae595ec7004eee13e7b934368e3f46c37fe4d970342a8c38c99cae7e93e4d7a3ed1c1ecb6acf languageName: node linkType: hard @@ -38262,7 +38262,7 @@ __metadata: languageName: node linkType: hard -"semver@npm:2 || 3 || 4 || 5, semver@npm:^5.6.0, semver@npm:^5.7.1": +"semver@npm:2 || 3 || 4 || 5, semver@npm:^5.6.0": version: 5.7.2 resolution: "semver@npm:5.7.2" bin: @@ -38271,7 +38271,7 @@ __metadata: languageName: node linkType: hard -"semver@npm:7.0.0, semver@npm:~7.0.0": +"semver@npm:7.0.0": version: 7.0.0 resolution: "semver@npm:7.0.0" bin: @@ -38670,12 +38670,12 @@ __metadata: languageName: node linkType: hard -"simple-update-notifier@npm:^1.0.7": - version: 1.0.7 - resolution: "simple-update-notifier@npm:1.0.7" +"simple-update-notifier@npm:^2.0.0": + version: 2.0.0 + resolution: "simple-update-notifier@npm:2.0.0" dependencies: - semver: ~7.0.0 - checksum: aaadc1f158ad5101b363d1c7aed1f30fc1cac59a760aa31702633e0e6fe423348f07d0e78185aef0aad29130a7b7f0f188c21c7bc7353f897a0ea3682e051a70 + semver: ^7.5.3 + checksum: 9ba00d38ce6a29682f64a46213834e4eb01634c2f52c813a9a7b8873ca49cdbb703696f3290f3b27dc067de6d9418b0b84bef22c3eb074acf352529b2d6c27fd languageName: node linkType: hard From 5ae202c23c0a1ea6a695fc655c650c1c8cb49bfd Mon Sep 17 00:00:00 2001 From: Philipp Hugenroth Date: Tue, 8 Aug 2023 17:22:29 +0200 Subject: [PATCH 270/372] Remove options for Explore & TechDocs module - Quick fix for permission-backend Signed-off-by: Philipp Hugenroth --- plugins/permission-backend/src/plugin.ts | 4 +- .../search-backend-module-explore/config.d.ts | 25 ++++ .../src/alpha.ts | 97 +++++++------- .../config.d.ts | 30 +++++ .../src/alpha.ts | 123 +++++++++--------- 5 files changed, 161 insertions(+), 118 deletions(-) create mode 100644 plugins/search-backend-module-explore/config.d.ts create mode 100644 plugins/search-backend-module-techdocs/config.d.ts diff --git a/plugins/permission-backend/src/plugin.ts b/plugins/permission-backend/src/plugin.ts index a6b731b120..a131b6e4b4 100644 --- a/plugins/permission-backend/src/plugin.ts +++ b/plugins/permission-backend/src/plugin.ts @@ -80,7 +80,7 @@ export const permissionModuleAllowAllPolicy = createBackendModule({ * * @alpha */ -export const permissionPlugin = createBackendPlugin(() => ({ +export const permissionPlugin = createBackendPlugin({ pluginId: 'permission', register(env) { const policies = new PolicyExtensionPointImpl(); @@ -115,4 +115,4 @@ export const permissionPlugin = createBackendPlugin(() => ({ }, }); }, -})); +}); diff --git a/plugins/search-backend-module-explore/config.d.ts b/plugins/search-backend-module-explore/config.d.ts new file mode 100644 index 0000000000..a9f60632ae --- /dev/null +++ b/plugins/search-backend-module-explore/config.d.ts @@ -0,0 +1,25 @@ +/* + * 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 { TaskScheduleDefinitionConfig } from '@backstage/backend-tasks'; + +export interface Config { + search?: { + explore?: { + schedule?: TaskScheduleDefinitionConfig; + }; + }; +} diff --git a/plugins/search-backend-module-explore/src/alpha.ts b/plugins/search-backend-module-explore/src/alpha.ts index fadbcda3a5..b60bed66ae 100644 --- a/plugins/search-backend-module-explore/src/alpha.ts +++ b/plugins/search-backend-module-explore/src/alpha.ts @@ -23,66 +23,59 @@ import { coreServices, createBackendModule, } from '@backstage/backend-plugin-api'; -import { TaskScheduleDefinition } from '@backstage/backend-tasks'; import { loggerToWinstonLogger } from '@backstage/backend-common'; import { searchIndexRegistryExtensionPoint } from '@backstage/plugin-search-backend-node/alpha'; import { ToolDocumentCollatorFactory } from '@backstage/plugin-search-backend-module-explore'; - -/** - * Options for {@link searchModuleExploreCollator}. - * - * @alpha - */ -export type SearchModuleExploreCollatorOptions = { - schedule?: TaskScheduleDefinition; -}; +import { readTaskScheduleDefinitionFromConfig } from '@backstage/backend-tasks'; /** * Search backend module for the Explore index. * * @alpha */ -export const searchModuleExploreCollator = createBackendModule( - (options?: SearchModuleExploreCollatorOptions) => ({ - moduleId: 'exploreCollator', - pluginId: 'search', - register(env) { - env.registerInit({ - deps: { - config: coreServices.rootConfig, - logger: coreServices.logger, - discovery: coreServices.discovery, - scheduler: coreServices.scheduler, - tokenManager: coreServices.tokenManager, - indexRegistry: searchIndexRegistryExtensionPoint, - }, - async init({ - config, - logger, - discovery, - scheduler, - indexRegistry, - tokenManager, - }) { - const defaultSchedule = { - frequency: { minutes: 10 }, - timeout: { minutes: 15 }, - initialDelay: { seconds: 3 }, - }; +export const searchModuleExploreCollator = createBackendModule({ + moduleId: 'exploreCollator', + pluginId: 'search', + register(env) { + env.registerInit({ + deps: { + config: coreServices.rootConfig, + logger: coreServices.logger, + discovery: coreServices.discovery, + scheduler: coreServices.scheduler, + tokenManager: coreServices.tokenManager, + indexRegistry: searchIndexRegistryExtensionPoint, + }, + async init({ + config, + logger, + discovery, + scheduler, + indexRegistry, + tokenManager, + }) { + const defaultSchedule = { + frequency: { minutes: 10 }, + timeout: { minutes: 15 }, + initialDelay: { seconds: 3 }, + }; - indexRegistry.addCollator({ - schedule: scheduler.createScheduledTaskRunner( - options?.schedule ?? defaultSchedule, - ), - factory: ToolDocumentCollatorFactory.fromConfig(config, { - discovery, - logger: loggerToWinstonLogger(logger), - tokenManager, - }), - }); - }, - }); - }, - }), -); + const schedule = config.has('search.explore.schedule') + ? readTaskScheduleDefinitionFromConfig( + config.getConfig('search.explore.schedule'), + ) + : defaultSchedule; + + indexRegistry.addCollator({ + schedule: scheduler.createScheduledTaskRunner(schedule), + factory: ToolDocumentCollatorFactory.fromConfig(config, { + discovery, + logger: loggerToWinstonLogger(logger), + tokenManager, + }), + }); + }, + }); + }, +}); diff --git a/plugins/search-backend-module-techdocs/config.d.ts b/plugins/search-backend-module-techdocs/config.d.ts new file mode 100644 index 0000000000..645895243b --- /dev/null +++ b/plugins/search-backend-module-techdocs/config.d.ts @@ -0,0 +1,30 @@ +/* + * 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 { TaskScheduleDefinitionConfig } from '@backstage/backend-tasks'; + +export interface Config { + search?: { + techdocs?: { + schedule?: TaskScheduleDefinitionConfig; + collatorsFactory?: { + locationTemplate?: string; + parallelismLimit?: number; + legacyPathCasing?: boolean; + }; + }; + }; +} diff --git a/plugins/search-backend-module-techdocs/src/alpha.ts b/plugins/search-backend-module-techdocs/src/alpha.ts index 5d82b6804f..e4c75425ca 100644 --- a/plugins/search-backend-module-techdocs/src/alpha.ts +++ b/plugins/search-backend-module-techdocs/src/alpha.ts @@ -19,79 +19,74 @@ * A module for the search backend that exports TechDocs modules. */ +import { loggerToWinstonLogger } from '@backstage/backend-common'; import { coreServices, createBackendModule, } from '@backstage/backend-plugin-api'; -import { TaskScheduleDefinition } from '@backstage/backend-tasks'; -import { loggerToWinstonLogger } from '@backstage/backend-common'; -import { searchIndexRegistryExtensionPoint } from '@backstage/plugin-search-backend-node/alpha'; +import { readTaskScheduleDefinitionFromConfig } from '@backstage/backend-tasks'; import { catalogServiceRef } from '@backstage/plugin-catalog-node/alpha'; - -import { - DefaultTechDocsCollatorFactory, - TechDocsCollatorFactoryOptions, -} from '@backstage/plugin-search-backend-module-techdocs'; - -/** - * @alpha - * Options for {@link searchModuleTechDocsCollator}. - */ -export type SearchModuleTechDocsCollatorOptions = Omit< - TechDocsCollatorFactoryOptions, - 'logger' | 'discovery' | 'tokenManager' | 'catalogClient' -> & { - schedule?: TaskScheduleDefinition; -}; +import { DefaultTechDocsCollatorFactory } from '@backstage/plugin-search-backend-module-techdocs'; +import { searchIndexRegistryExtensionPoint } from '@backstage/plugin-search-backend-node/alpha'; /** * @alpha * Search backend module for the TechDocs index. */ -export const searchModuleTechDocsCollator = createBackendModule( - (options?: SearchModuleTechDocsCollatorOptions) => ({ - moduleId: 'techDocsCollator', - pluginId: 'search', - register(env) { - env.registerInit({ - deps: { - config: coreServices.rootConfig, - logger: coreServices.logger, - discovery: coreServices.discovery, - tokenManager: coreServices.tokenManager, - scheduler: coreServices.scheduler, - catalog: catalogServiceRef, - indexRegistry: searchIndexRegistryExtensionPoint, - }, - async init({ - config, - logger, - discovery, - tokenManager, - scheduler, - catalog, - indexRegistry, - }) { - const defaultSchedule = { - frequency: { minutes: 10 }, - timeout: { minutes: 15 }, - initialDelay: { seconds: 3 }, - }; +export const searchModuleTechDocsCollator = createBackendModule({ + moduleId: 'techDocsCollator', + pluginId: 'search', + register(env) { + env.registerInit({ + deps: { + config: coreServices.rootConfig, + logger: coreServices.logger, + discovery: coreServices.discovery, + tokenManager: coreServices.tokenManager, + scheduler: coreServices.scheduler, + catalog: catalogServiceRef, + indexRegistry: searchIndexRegistryExtensionPoint, + }, + async init({ + config, + logger, + discovery, + tokenManager, + scheduler, + catalog, + indexRegistry, + }) { + const defaultSchedule = { + frequency: { minutes: 10 }, + timeout: { minutes: 15 }, + initialDelay: { seconds: 3 }, + }; - indexRegistry.addCollator({ - schedule: scheduler.createScheduledTaskRunner( - options?.schedule ?? defaultSchedule, + const schedule = config.has('search.explore.schedule') + ? readTaskScheduleDefinitionFromConfig( + config.getConfig('search.explore.schedule'), + ) + : defaultSchedule; + + indexRegistry.addCollator({ + schedule: scheduler.createScheduledTaskRunner(schedule), + factory: DefaultTechDocsCollatorFactory.fromConfig(config, { + locationTemplate: config.getOptionalString( + 'search.techdocs.collatorsFactory.locationTemplate', ), - factory: DefaultTechDocsCollatorFactory.fromConfig(config, { - ...options, - discovery, - tokenManager, - logger: loggerToWinstonLogger(logger), - catalogClient: catalog, - }), - }); - }, - }); - }, - }), -); + parallelismLimit: config.getOptionalNumber( + 'search.techdocs.collatorsFactory.parallelismLimit', + ), + legacyPathCasing: config.getOptionalBoolean( + 'search.techdocs.collatorsFactory.legacyPathCasing', + ), + discovery, + tokenManager, + logger: loggerToWinstonLogger(logger), + catalogClient: catalog, + }), + }); + }, + }); + }, +}); From be9238c8fb381b615ed946240705d34de71d5b76 Mon Sep 17 00:00:00 2001 From: Philipp Hugenroth Date: Wed, 9 Aug 2023 16:34:38 +0200 Subject: [PATCH 271/372] Use config over options & fix tests Signed-off-by: Philipp Hugenroth --- .../alpha-api-report.md | 10 +------- .../package.json | 6 +++-- .../src/alpha.test.ts | 15 +++++++++-- .../alpha-api-report.md | 14 +---------- .../config.d.ts | 2 +- .../package.json | 6 +++-- .../src/alpha.test.ts | 15 +++++++++-- .../src/alpha.ts | 9 ------- .../DefaultTechDocsCollatorFactory.test.ts | 25 +++++++++++++++---- .../DefaultTechDocsCollatorFactory.ts | 13 +++++++++- 10 files changed, 69 insertions(+), 46 deletions(-) diff --git a/plugins/search-backend-module-explore/alpha-api-report.md b/plugins/search-backend-module-explore/alpha-api-report.md index 7b0f2658d6..a01bc999fb 100644 --- a/plugins/search-backend-module-explore/alpha-api-report.md +++ b/plugins/search-backend-module-explore/alpha-api-report.md @@ -4,17 +4,9 @@ ```ts import { BackendFeature } from '@backstage/backend-plugin-api'; -import { TaskScheduleDefinition } from '@backstage/backend-tasks'; // @alpha -export const searchModuleExploreCollator: ( - options?: SearchModuleExploreCollatorOptions | undefined, -) => BackendFeature; - -// @alpha -export type SearchModuleExploreCollatorOptions = { - schedule?: TaskScheduleDefinition; -}; +export const searchModuleExploreCollator: () => BackendFeature; // (No @packageDocumentation comment for this package) ``` diff --git a/plugins/search-backend-module-explore/package.json b/plugins/search-backend-module-explore/package.json index e8f3835b39..b8ee2f04e0 100644 --- a/plugins/search-backend-module-explore/package.json +++ b/plugins/search-backend-module-explore/package.json @@ -58,6 +58,8 @@ "msw": "^1.2.1" }, "files": [ - "dist" - ] + "dist", + "config.d.ts" + ], + "configSchema": "config.d.ts" } diff --git a/plugins/search-backend-module-explore/src/alpha.test.ts b/plugins/search-backend-module-explore/src/alpha.test.ts index 9b133f0fd5..b7a44e4898 100644 --- a/plugins/search-backend-module-explore/src/alpha.test.ts +++ b/plugins/search-backend-module-explore/src/alpha.test.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import { startTestBackend } from '@backstage/backend-test-utils'; +import { mockServices, startTestBackend } from '@backstage/backend-test-utils'; import { searchIndexRegistryExtensionPoint } from '@backstage/plugin-search-backend-node/alpha'; import { searchModuleExploreCollator } from './alpha'; @@ -34,7 +34,18 @@ describe('searchModuleExploreCollator', () => { extensionPoints: [ [searchIndexRegistryExtensionPoint, extensionPointMock], ], - features: [searchModuleExploreCollator({ schedule })], + features: [searchModuleExploreCollator()], + services: [ + mockServices.rootConfig.factory({ + data: { + search: { + explore: { + schedule, + }, + }, + }, + }), + ], }); expect(extensionPointMock.addCollator).toHaveBeenCalledTimes(1); diff --git a/plugins/search-backend-module-techdocs/alpha-api-report.md b/plugins/search-backend-module-techdocs/alpha-api-report.md index 0eac010b4c..6e36a0020a 100644 --- a/plugins/search-backend-module-techdocs/alpha-api-report.md +++ b/plugins/search-backend-module-techdocs/alpha-api-report.md @@ -4,21 +4,9 @@ ```ts import { BackendFeature } from '@backstage/backend-plugin-api'; -import { TaskScheduleDefinition } from '@backstage/backend-tasks'; -import { TechDocsCollatorFactoryOptions } from '@backstage/plugin-search-backend-module-techdocs'; // @alpha -export const searchModuleTechDocsCollator: ( - options?: SearchModuleTechDocsCollatorOptions | undefined, -) => BackendFeature; - -// @alpha -export type SearchModuleTechDocsCollatorOptions = Omit< - TechDocsCollatorFactoryOptions, - 'logger' | 'discovery' | 'tokenManager' | 'catalogClient' -> & { - schedule?: TaskScheduleDefinition; -}; +export const searchModuleTechDocsCollator: () => BackendFeature; // (No @packageDocumentation comment for this package) ``` diff --git a/plugins/search-backend-module-techdocs/config.d.ts b/plugins/search-backend-module-techdocs/config.d.ts index 645895243b..03431a5de5 100644 --- a/plugins/search-backend-module-techdocs/config.d.ts +++ b/plugins/search-backend-module-techdocs/config.d.ts @@ -20,7 +20,7 @@ export interface Config { search?: { techdocs?: { schedule?: TaskScheduleDefinitionConfig; - collatorsFactory?: { + collators?: { locationTemplate?: string; parallelismLimit?: number; legacyPathCasing?: boolean; diff --git a/plugins/search-backend-module-techdocs/package.json b/plugins/search-backend-module-techdocs/package.json index 1ee329075d..9baa673a4a 100644 --- a/plugins/search-backend-module-techdocs/package.json +++ b/plugins/search-backend-module-techdocs/package.json @@ -65,6 +65,8 @@ "msw": "^1.0.0" }, "files": [ - "dist" - ] + "dist", + "config.d.ts" + ], + "configSchema": "config.d.ts" } diff --git a/plugins/search-backend-module-techdocs/src/alpha.test.ts b/plugins/search-backend-module-techdocs/src/alpha.test.ts index 011b00b12c..1e7ef494bb 100644 --- a/plugins/search-backend-module-techdocs/src/alpha.test.ts +++ b/plugins/search-backend-module-techdocs/src/alpha.test.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import { startTestBackend } from '@backstage/backend-test-utils'; +import { mockServices, startTestBackend } from '@backstage/backend-test-utils'; import { searchIndexRegistryExtensionPoint } from '@backstage/plugin-search-backend-node/alpha'; import { searchModuleTechDocsCollator } from './alpha'; @@ -34,7 +34,18 @@ describe('searchModuleTechDocsCollator', () => { extensionPoints: [ [searchIndexRegistryExtensionPoint, extensionPointMock], ], - features: [searchModuleTechDocsCollator({ schedule })], + features: [searchModuleTechDocsCollator()], + services: [ + mockServices.rootConfig.factory({ + data: { + search: { + techdocs: { + schedule, + }, + }, + }, + }), + ], }); expect(extensionPointMock.addCollator).toHaveBeenCalledTimes(1); diff --git a/plugins/search-backend-module-techdocs/src/alpha.ts b/plugins/search-backend-module-techdocs/src/alpha.ts index e4c75425ca..de2800bf81 100644 --- a/plugins/search-backend-module-techdocs/src/alpha.ts +++ b/plugins/search-backend-module-techdocs/src/alpha.ts @@ -71,15 +71,6 @@ export const searchModuleTechDocsCollator = createBackendModule({ indexRegistry.addCollator({ schedule: scheduler.createScheduledTaskRunner(schedule), factory: DefaultTechDocsCollatorFactory.fromConfig(config, { - locationTemplate: config.getOptionalString( - 'search.techdocs.collatorsFactory.locationTemplate', - ), - parallelismLimit: config.getOptionalNumber( - 'search.techdocs.collatorsFactory.parallelismLimit', - ), - legacyPathCasing: config.getOptionalBoolean( - 'search.techdocs.collatorsFactory.legacyPathCasing', - ), discovery, tokenManager, logger: loggerToWinstonLogger(logger), diff --git a/plugins/search-backend-module-techdocs/src/collators/DefaultTechDocsCollatorFactory.test.ts b/plugins/search-backend-module-techdocs/src/collators/DefaultTechDocsCollatorFactory.test.ts index d9329151c6..ac03178925 100644 --- a/plugins/search-backend-module-techdocs/src/collators/DefaultTechDocsCollatorFactory.test.ts +++ b/plugins/search-backend-module-techdocs/src/collators/DefaultTechDocsCollatorFactory.test.ts @@ -174,10 +174,15 @@ describe('DefaultTechDocsCollatorFactory', () => { it('maps a returned entity with a custom locationTemplate', async () => { // Provide an alternate location template. - factory = DefaultTechDocsCollatorFactory.fromConfig(config, { + const _config = new ConfigReader({ + ...config.get(), + search: { + techdocs: { collators: { locationTemplate: '/software/:name' } }, + }, + }); + factory = DefaultTechDocsCollatorFactory.fromConfig(_config, { discovery: mockDiscoveryApi, tokenManager: mockTokenManager, - locationTemplate: '/software/:name', logger, }); collator = await factory.getCollator(); @@ -194,10 +199,17 @@ describe('DefaultTechDocsCollatorFactory', () => { // A parallelismLimit of 1 is a catalog limit of 50 per request. Code // above in the /entities handler ensures valid entities are only // returned on the second page. - factory = DefaultTechDocsCollatorFactory.fromConfig(config, { - ...options, - parallelismLimit: 1, + const _config = new ConfigReader({ + ...config.get(), + search: { + techdocs: { + collators: { + parallelismLimit: 1, + }, + }, + }, }); + factory = DefaultTechDocsCollatorFactory.fromConfig(_config, options); collator = await factory.getCollator(); const pipeline = TestPipeline.fromCollator(collator); @@ -205,6 +217,9 @@ describe('DefaultTechDocsCollatorFactory', () => { // Only 1 entity with TechDocs configured multiplied by 3 pages. expect(documents).toHaveLength(3); + expect(_config.get('search.techdocs.collators.parallelismLimit')).toEqual( + 1, + ); }); describe('with legacyPathCasing configuration', () => { diff --git a/plugins/search-backend-module-techdocs/src/collators/DefaultTechDocsCollatorFactory.ts b/plugins/search-backend-module-techdocs/src/collators/DefaultTechDocsCollatorFactory.ts index e2c6f5913c..0925b93300 100644 --- a/plugins/search-backend-module-techdocs/src/collators/DefaultTechDocsCollatorFactory.ts +++ b/plugins/search-backend-module-techdocs/src/collators/DefaultTechDocsCollatorFactory.ts @@ -104,7 +104,18 @@ export class DefaultTechDocsCollatorFactory implements DocumentCollatorFactory { config.getOptionalBoolean( 'techdocs.legacyUseCaseSensitiveTripletPaths', ) || false; - return new DefaultTechDocsCollatorFactory({ ...options, legacyPathCasing }); + const locationTemplate = config.getOptionalString( + 'search.techdocs.collators.locationTemplate', + ); + const parallelismLimit = config.getOptionalNumber( + 'search.techdocs.collators.parallelismLimit', + ); + return new DefaultTechDocsCollatorFactory({ + ...options, + locationTemplate, + parallelismLimit, + legacyPathCasing, + }); } async getCollator(): Promise { From 6694e79ab396af9e3cd38a2e8f774f191421f91c Mon Sep 17 00:00:00 2001 From: Philipp Hugenroth Date: Wed, 9 Aug 2023 17:13:44 +0200 Subject: [PATCH 272/372] Add changesets Signed-off-by: Philipp Hugenroth --- .changeset/tiny-squids-accept.md | 5 +++++ .changeset/tiny-squids-deny.md | 5 +++++ 2 files changed, 10 insertions(+) create mode 100644 .changeset/tiny-squids-accept.md create mode 100644 .changeset/tiny-squids-deny.md diff --git a/.changeset/tiny-squids-accept.md b/.changeset/tiny-squids-accept.md new file mode 100644 index 0000000000..bbf0498f44 --- /dev/null +++ b/.changeset/tiny-squids-accept.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-search-backend-module-techdocs': minor +--- + +**BREAKING:** Moved `schedule` & `collators` settings from module options into app-config for the new backend system. You can now pass in a `TaskScheduleDefinitionConfig` through the `search.techdocs.schedule` configuration key & configure the `TechDocsCollatorFactory` with the key `search.techdocs.collators`. diff --git a/.changeset/tiny-squids-deny.md b/.changeset/tiny-squids-deny.md new file mode 100644 index 0000000000..09da08cc42 --- /dev/null +++ b/.changeset/tiny-squids-deny.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-search-backend-module-explore': minor +--- + +**BREAKING:** Moved `schedule` from module options into app-config for the new backend system. You can now pass in a `TaskScheduleDefinitionConfig` through the `search.explore.schedule` configuration key. From 0d6ddc62d8dad576877ff807bd299813b3db6e71 Mon Sep 17 00:00:00 2001 From: Philipp Hugenroth Date: Mon, 14 Aug 2023 14:21:48 +0200 Subject: [PATCH 273/372] Adjust to review Signed-off-by: Philipp Hugenroth --- .changeset/tiny-squids-accept.md | 4 ++-- .changeset/tiny-squids-deny.md | 4 ++-- .changeset/tiny-squids-undecide.md | 5 +++++ plugins/search-backend-module-explore/config.d.ts | 6 ++++-- plugins/search-backend-module-explore/src/alpha.ts | 4 ++-- plugins/search-backend-module-techdocs/config.d.ts | 6 +++--- plugins/search-backend-module-techdocs/src/alpha.ts | 4 ++-- .../src/collators/DefaultTechDocsCollatorFactory.test.ts | 2 +- .../src/collators/DefaultTechDocsCollatorFactory.ts | 4 ++-- 9 files changed, 23 insertions(+), 16 deletions(-) create mode 100644 .changeset/tiny-squids-undecide.md diff --git a/.changeset/tiny-squids-accept.md b/.changeset/tiny-squids-accept.md index bbf0498f44..e488c35197 100644 --- a/.changeset/tiny-squids-accept.md +++ b/.changeset/tiny-squids-accept.md @@ -1,5 +1,5 @@ --- -'@backstage/plugin-search-backend-module-techdocs': minor +'@backstage/plugin-search-backend-module-techdocs': patch --- -**BREAKING:** Moved `schedule` & `collators` settings from module options into app-config for the new backend system. You can now pass in a `TaskScheduleDefinitionConfig` through the `search.techdocs.schedule` configuration key & configure the `TechDocsCollatorFactory` with the key `search.techdocs.collators`. +**BREAKING:** Moved `schedule` & `collators` settings from module options into app-config for the new backend system. You can now pass in a `TaskScheduleDefinitionConfig` through the `search.collators.techdocs.schedule` configuration key & configure the `TechDocsCollatorFactory` with the key `search.collators.techdocs`. diff --git a/.changeset/tiny-squids-deny.md b/.changeset/tiny-squids-deny.md index 09da08cc42..28de9903e9 100644 --- a/.changeset/tiny-squids-deny.md +++ b/.changeset/tiny-squids-deny.md @@ -1,5 +1,5 @@ --- -'@backstage/plugin-search-backend-module-explore': minor +'@backstage/plugin-search-backend-module-explore': patch --- -**BREAKING:** Moved `schedule` from module options into app-config for the new backend system. You can now pass in a `TaskScheduleDefinitionConfig` through the `search.explore.schedule` configuration key. +Breaking change for the alpha export moved `schedule` from module options into app-config for the new backend system. You can now pass in a `TaskScheduleDefinitionConfig` through the `search.collators.explore.schedule` configuration key. diff --git a/.changeset/tiny-squids-undecide.md b/.changeset/tiny-squids-undecide.md new file mode 100644 index 0000000000..91a047f966 --- /dev/null +++ b/.changeset/tiny-squids-undecide.md @@ -0,0 +1,5 @@ +--- +'@backstage/permission-backend': patch +--- + +Refactor backend plugin creation parameter from callback to object. diff --git a/plugins/search-backend-module-explore/config.d.ts b/plugins/search-backend-module-explore/config.d.ts index a9f60632ae..4401f7a8bf 100644 --- a/plugins/search-backend-module-explore/config.d.ts +++ b/plugins/search-backend-module-explore/config.d.ts @@ -18,8 +18,10 @@ import { TaskScheduleDefinitionConfig } from '@backstage/backend-tasks'; export interface Config { search?: { - explore?: { - schedule?: TaskScheduleDefinitionConfig; + collators?: { + explore?: { + schedule?: TaskScheduleDefinitionConfig; + }; }; }; } diff --git a/plugins/search-backend-module-explore/src/alpha.ts b/plugins/search-backend-module-explore/src/alpha.ts index b60bed66ae..403699e2cb 100644 --- a/plugins/search-backend-module-explore/src/alpha.ts +++ b/plugins/search-backend-module-explore/src/alpha.ts @@ -61,9 +61,9 @@ export const searchModuleExploreCollator = createBackendModule({ initialDelay: { seconds: 3 }, }; - const schedule = config.has('search.explore.schedule') + const schedule = config.has('search.collators.explore.schedule') ? readTaskScheduleDefinitionFromConfig( - config.getConfig('search.explore.schedule'), + config.getConfig('search.collators.explore.schedule'), ) : defaultSchedule; diff --git a/plugins/search-backend-module-techdocs/config.d.ts b/plugins/search-backend-module-techdocs/config.d.ts index 03431a5de5..80e47e3254 100644 --- a/plugins/search-backend-module-techdocs/config.d.ts +++ b/plugins/search-backend-module-techdocs/config.d.ts @@ -18,9 +18,9 @@ import { TaskScheduleDefinitionConfig } from '@backstage/backend-tasks'; export interface Config { search?: { - techdocs?: { - schedule?: TaskScheduleDefinitionConfig; - collators?: { + collators?: { + techdocs?: { + schedule?: TaskScheduleDefinitionConfig; locationTemplate?: string; parallelismLimit?: number; legacyPathCasing?: boolean; diff --git a/plugins/search-backend-module-techdocs/src/alpha.ts b/plugins/search-backend-module-techdocs/src/alpha.ts index de2800bf81..bb084ddfd9 100644 --- a/plugins/search-backend-module-techdocs/src/alpha.ts +++ b/plugins/search-backend-module-techdocs/src/alpha.ts @@ -62,9 +62,9 @@ export const searchModuleTechDocsCollator = createBackendModule({ initialDelay: { seconds: 3 }, }; - const schedule = config.has('search.explore.schedule') + const schedule = config.has('search.collators.techdocs.schedule') ? readTaskScheduleDefinitionFromConfig( - config.getConfig('search.explore.schedule'), + config.getConfig('search.collators.techdocs.schedule'), ) : defaultSchedule; diff --git a/plugins/search-backend-module-techdocs/src/collators/DefaultTechDocsCollatorFactory.test.ts b/plugins/search-backend-module-techdocs/src/collators/DefaultTechDocsCollatorFactory.test.ts index ac03178925..2e85a64f4e 100644 --- a/plugins/search-backend-module-techdocs/src/collators/DefaultTechDocsCollatorFactory.test.ts +++ b/plugins/search-backend-module-techdocs/src/collators/DefaultTechDocsCollatorFactory.test.ts @@ -217,7 +217,7 @@ describe('DefaultTechDocsCollatorFactory', () => { // Only 1 entity with TechDocs configured multiplied by 3 pages. expect(documents).toHaveLength(3); - expect(_config.get('search.techdocs.collators.parallelismLimit')).toEqual( + expect(_config.get('search.collators.techdocs.parallelismLimit')).toEqual( 1, ); }); diff --git a/plugins/search-backend-module-techdocs/src/collators/DefaultTechDocsCollatorFactory.ts b/plugins/search-backend-module-techdocs/src/collators/DefaultTechDocsCollatorFactory.ts index 0925b93300..051dc93189 100644 --- a/plugins/search-backend-module-techdocs/src/collators/DefaultTechDocsCollatorFactory.ts +++ b/plugins/search-backend-module-techdocs/src/collators/DefaultTechDocsCollatorFactory.ts @@ -105,10 +105,10 @@ export class DefaultTechDocsCollatorFactory implements DocumentCollatorFactory { 'techdocs.legacyUseCaseSensitiveTripletPaths', ) || false; const locationTemplate = config.getOptionalString( - 'search.techdocs.collators.locationTemplate', + 'search.collators.techdocs.locationTemplate', ); const parallelismLimit = config.getOptionalNumber( - 'search.techdocs.collators.parallelismLimit', + 'search.collators.techdocs.parallelismLimit', ); return new DefaultTechDocsCollatorFactory({ ...options, From 3c74b89896a737846e35f4fc4a8482183e816919 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fredrik=20Adel=C3=B6w?= Date: Mon, 14 Aug 2023 14:41:04 +0200 Subject: [PATCH 274/372] implement extension point MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Fredrik Adelöw --- .changeset/metal-kings-argue.md | 2 +- .../alpha-api-report.md | 16 +-- .../src/alpha.ts | 104 +++++++++++------- 3 files changed, 73 insertions(+), 49 deletions(-) diff --git a/.changeset/metal-kings-argue.md b/.changeset/metal-kings-argue.md index d3edf502f0..0019139362 100644 --- a/.changeset/metal-kings-argue.md +++ b/.changeset/metal-kings-argue.md @@ -2,4 +2,4 @@ '@backstage/plugin-search-backend-module-catalog': patch --- -Breaking change in the alpha export `searchModuleCatalogCollator`: Moved collator settings from module options into app-config. You are now expected to set up the catalog collator under the `search.collators.catalog` configuration key. +Breaking change in the alpha export `searchModuleCatalogCollator`: Moved collator settings from module options into app-config. You are now expected to set up the catalog collator under the `search.collators.catalog` configuration key. There is also a new `catalogCollatorExtensionPoint` extension point for the module, wherein you can set custom transformers. diff --git a/plugins/search-backend-module-catalog/alpha-api-report.md b/plugins/search-backend-module-catalog/alpha-api-report.md index 3db9fe97a6..658c1aec15 100644 --- a/plugins/search-backend-module-catalog/alpha-api-report.md +++ b/plugins/search-backend-module-catalog/alpha-api-report.md @@ -5,16 +5,18 @@ ```ts import { BackendFeature } from '@backstage/backend-plugin-api'; import { CatalogCollatorEntityTransformer } from '@backstage/plugin-search-backend-module-catalog'; +import { ExtensionPoint } from '@backstage/backend-plugin-api'; // @alpha -export const searchModuleCatalogCollator: ( - options?: SearchModuleCatalogCollatorOptions | undefined, -) => BackendFeature; - -// @alpha -export type SearchModuleCatalogCollatorOptions = { - entityTransformer?: CatalogCollatorEntityTransformer; +export type CatalogCollatorExtensionPoint = { + setEntityTransformer(transformer: CatalogCollatorEntityTransformer): void; }; +// @alpha +export const catalogCollatorExtensionPoint: ExtensionPoint; + +// @alpha +export const searchModuleCatalogCollator: () => BackendFeature; + // (No @packageDocumentation comment for this package) ``` diff --git a/plugins/search-backend-module-catalog/src/alpha.ts b/plugins/search-backend-module-catalog/src/alpha.ts index 8d2a7f4ff1..0edf90fc7f 100644 --- a/plugins/search-backend-module-catalog/src/alpha.ts +++ b/plugins/search-backend-module-catalog/src/alpha.ts @@ -22,6 +22,7 @@ import { coreServices, createBackendModule, + createExtensionPoint, } from '@backstage/backend-plugin-api'; import { catalogServiceRef } from '@backstage/plugin-catalog-node/alpha'; import { @@ -32,57 +33,78 @@ import { searchIndexRegistryExtensionPoint } from '@backstage/plugin-search-back import { readScheduleConfigOptions } from './collators/config'; /** - * Options for {@link searchModuleCatalogCollator}. + * Options for {@link catalogCollatorExtensionPoint}. * * @alpha */ -export type SearchModuleCatalogCollatorOptions = { +export type CatalogCollatorExtensionPoint = { /** * Allows you to customize how entities are shaped into documents. */ - entityTransformer?: CatalogCollatorEntityTransformer; + setEntityTransformer(transformer: CatalogCollatorEntityTransformer): void; }; +/** + * Extension point for customizing how catalog entities are shaped into + * documents for the search backend, when using + * {@link searchModuleCatalogCollator}. + * + * @alpha + */ +export const catalogCollatorExtensionPoint = + createExtensionPoint({ + id: 'search.catalogCollator.extension', + }); + /** * Search backend module for the Catalog index. * * @alpha */ -export const searchModuleCatalogCollator = createBackendModule( - (options?: SearchModuleCatalogCollatorOptions) => ({ - moduleId: 'catalogCollator', - pluginId: 'search', - register(env) { - env.registerInit({ - deps: { - config: coreServices.rootConfig, - discovery: coreServices.discovery, - tokenManager: coreServices.tokenManager, - scheduler: coreServices.scheduler, - indexRegistry: searchIndexRegistryExtensionPoint, - catalog: catalogServiceRef, - }, - async init({ - config, - discovery, - tokenManager, - scheduler, - indexRegistry, - catalog, - }) { - indexRegistry.addCollator({ - schedule: scheduler.createScheduledTaskRunner( - readScheduleConfigOptions(config), - ), - factory: DefaultCatalogCollatorFactory.fromConfig(config, { - entityTransformer: options?.entityTransformer, - discovery, - tokenManager, - catalogClient: catalog, - }), - }); - }, - }); - }, - }), -); +export const searchModuleCatalogCollator = createBackendModule({ + moduleId: 'catalogCollator', + pluginId: 'search', + register(env) { + let entityTransformer: CatalogCollatorEntityTransformer | undefined; + + env.registerExtensionPoint(catalogCollatorExtensionPoint, { + setEntityTransformer(transformer) { + if (entityTransformer) { + throw new Error('setEntityTransformer can only be called once'); + } + entityTransformer = transformer; + }, + }); + + env.registerInit({ + deps: { + config: coreServices.rootConfig, + discovery: coreServices.discovery, + tokenManager: coreServices.tokenManager, + scheduler: coreServices.scheduler, + indexRegistry: searchIndexRegistryExtensionPoint, + catalog: catalogServiceRef, + }, + async init({ + config, + discovery, + tokenManager, + scheduler, + indexRegistry, + catalog, + }) { + indexRegistry.addCollator({ + schedule: scheduler.createScheduledTaskRunner( + readScheduleConfigOptions(config), + ), + factory: DefaultCatalogCollatorFactory.fromConfig(config, { + entityTransformer, + discovery, + tokenManager, + catalogClient: catalog, + }), + }); + }, + }); + }, +}); From 0a9b3b14e904a0a1df746c36b3bb1a4499960c47 Mon Sep 17 00:00:00 2001 From: Andre Wanlin <67169551+awanlin@users.noreply.github.com> Date: Fri, 28 Jul 2023 15:35:25 -0500 Subject: [PATCH 275/372] Added example for confluece to markdown action Signed-off-by: Andre Wanlin <67169551+awanlin@users.noreply.github.com> --- .changeset/chilly-chicken-fix.md | 5 +++ .../confluenceToMarkdown.examples.ts | 43 +++++++++++++++++++ .../confluence/confluenceToMarkdown.ts | 3 ++ 3 files changed, 51 insertions(+) create mode 100644 .changeset/chilly-chicken-fix.md create mode 100644 plugins/scaffolder-backend-module-confluence-to-markdown/src/actions/confluence/confluenceToMarkdown.examples.ts diff --git a/.changeset/chilly-chicken-fix.md b/.changeset/chilly-chicken-fix.md new file mode 100644 index 0000000000..451789a56f --- /dev/null +++ b/.changeset/chilly-chicken-fix.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-scaffolder-backend-module-confluence-to-markdown': patch +--- + +Added example for the `confluence:transform:markdown` that will show in the installed actions list diff --git a/plugins/scaffolder-backend-module-confluence-to-markdown/src/actions/confluence/confluenceToMarkdown.examples.ts b/plugins/scaffolder-backend-module-confluence-to-markdown/src/actions/confluence/confluenceToMarkdown.examples.ts new file mode 100644 index 0000000000..29249d2dc3 --- /dev/null +++ b/plugins/scaffolder-backend-module-confluence-to-markdown/src/actions/confluence/confluenceToMarkdown.examples.ts @@ -0,0 +1,43 @@ +/* + * 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 { TemplateExample } from '@backstage/plugin-scaffolder-node'; +import yaml from 'yaml'; + +export const examples: TemplateExample[] = [ + { + description: + 'Downloads content from provided Confluence URLs and converts it to Markdown.', + example: yaml.stringify({ + steps: [ + { + action: 'confluence:transform:markdown', + id: 'confluence-transform-markdown', + name: 'Transform Confluence content to Markdown', + input: { + confluenceUrls: [ + 'https://confluence.example.com/display/SPACEKEY/Page+Title', + 'https://confluence.example.com/prefix/display/PREFIXSPACEKEY/Prefix+Page+Title', + 'https://example.atlassian.net/wiki/spaces/CLOUDSPACEKEY/pages/1234567/Cloud+Page+Title', + ], + repoUrl: + 'https://github.com/organization-name/repo-name/blob/main/mkdocs.yml', + }, + }, + ], + }), + }, +]; diff --git a/plugins/scaffolder-backend-module-confluence-to-markdown/src/actions/confluence/confluenceToMarkdown.ts b/plugins/scaffolder-backend-module-confluence-to-markdown/src/actions/confluence/confluenceToMarkdown.ts index 71a3af11ae..e88f42e39c 100644 --- a/plugins/scaffolder-backend-module-confluence-to-markdown/src/actions/confluence/confluenceToMarkdown.ts +++ b/plugins/scaffolder-backend-module-confluence-to-markdown/src/actions/confluence/confluenceToMarkdown.ts @@ -33,6 +33,7 @@ import { createConfluenceVariables, getConfluenceConfig, } from './helpers'; +import { examples } from './confluenceToMarkdown.examples'; /** * @public @@ -53,6 +54,8 @@ export const createConfluenceToMarkdownAction = (options: { repoUrl: string; }>({ id: 'confluence:transform:markdown', + description: 'Transforms Confluence content to Markdown', + examples, schema: { input: { properties: { From 5cfde96dd7ee46cb64d1748dae62e849a0261db2 Mon Sep 17 00:00:00 2001 From: Andre Wanlin <67169551+awanlin@users.noreply.github.com> Date: Fri, 4 Aug 2023 14:58:26 -0500 Subject: [PATCH 276/372] Added test for example Signed-off-by: Andre Wanlin <67169551+awanlin@users.noreply.github.com> --- .../confluenceToMarkdown.examples.test.ts | 176 ++++++++++++++++++ 1 file changed, 176 insertions(+) create mode 100644 plugins/scaffolder-backend-module-confluence-to-markdown/src/actions/confluence/confluenceToMarkdown.examples.test.ts diff --git a/plugins/scaffolder-backend-module-confluence-to-markdown/src/actions/confluence/confluenceToMarkdown.examples.test.ts b/plugins/scaffolder-backend-module-confluence-to-markdown/src/actions/confluence/confluenceToMarkdown.examples.test.ts new file mode 100644 index 0000000000..1a3e249fb0 --- /dev/null +++ b/plugins/scaffolder-backend-module-confluence-to-markdown/src/actions/confluence/confluenceToMarkdown.examples.test.ts @@ -0,0 +1,176 @@ +/* + * Copyright 2021 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/* + * 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 { PassThrough } from 'stream'; +import { createConfluenceToMarkdownAction } from './confluenceToMarkdown'; +import { getVoidLogger } from '@backstage/backend-common'; +import { UrlReader } from '@backstage/backend-common'; +import { ConfigReader } from '@backstage/config'; +import { ScmIntegrations } from '@backstage/integration'; +import { setupRequestMockHandlers } from '@backstage/backend-test-utils'; +import mockFs from 'mock-fs'; +import os from 'os'; +import { readFile, writeFile, createWriteStream } from 'fs-extra'; +import { rest } from 'msw'; +import { setupServer } from 'msw/node'; +import { examples } from './confluenceToMarkdown.examples'; +import yaml from 'yaml'; + +jest.mock('fs-extra', () => ({ + mkdirSync: jest.fn(), + readFile: jest.fn().mockResolvedValue('File contents'), + writeFile: jest.fn().mockImplementation(() => { + return Promise.resolve(); + }), + outputFile: jest.fn(), + openSync: jest.fn(), + createWriteStream: jest.fn().mockReturnValue(new PassThrough()), + ensureDir: jest.fn(), +})); + +describe('confluence:transform:markdown examples', () => { + const baseUrl = `https://nodomain.confluence.com`; + const worker = setupServer(); + setupRequestMockHandlers(worker); + + const config = new ConfigReader({ + confluence: { + baseUrl: baseUrl, + auth: { + token: 'fake_token', + }, + }, + }); + + const integrations = ScmIntegrations.fromConfig( + new ConfigReader({ + integrations: { + github: [{ host: 'github.com', token: 'token' }], + }, + }), + ); + + const logger = getVoidLogger(); + jest.spyOn(logger, 'info'); + + const mockTmpDir = os.tmpdir(); + + const mockContext = { + workspacePath: '/tmp', + logger, + logStream: new PassThrough(), + output: jest.fn(), + createTemporaryDirectory: jest.fn().mockResolvedValue(mockTmpDir), + }; + + const reader: UrlReader = { + readUrl: jest.fn(), + readTree: jest.fn().mockResolvedValue({ + dir: jest.fn(), + }), + search: jest.fn(), + }; + mockFs({ [`${mockTmpDir}/src/docs`]: {} }); + + beforeEach(() => { + jest.resetAllMocks(); + }); + afterEach(() => { + jest.clearAllMocks(); + mockFs.restore(); + }); + + it('should call confluence to markdown action successfully with results array', async () => { + const options = { + reader, + integrations, + config, + }; + const responseBody = { + results: [ + { + id: '4444444', + type: 'page', + title: 'Testing', + body: { + export_view: { + value: '

hello world

', + }, + }, + }, + ], + }; + const responseBodyTwo = { + results: [ + { + id: '4444444', + type: 'attachment', + title: 'testing.pdf', + metadata: { + mediaType: 'application/pdf', + }, + _links: { + download: '/download/attachments/4444444/testing.pdf', + }, + }, + ], + }; + + worker.use( + rest.get(`${baseUrl}/rest/api/content`, (_, res, ctx) => + res(ctx.status(200, 'OK'), ctx.json(responseBody)), + ), + rest.get( + `${baseUrl}/rest/api/content/4444444/child/attachment`, + (_, res, ctx) => res(ctx.status(200, 'OK'), ctx.json(responseBodyTwo)), + ), + rest.get( + `${baseUrl}/download/attachments/4444444/testing.pdf`, + (_, res, ctx) => res(ctx.status(200, 'OK'), ctx.body('hello')), + ), + ); + + const action = createConfluenceToMarkdownAction(options); + + await action.handler({ + ...mockContext, + input: yaml.parse(examples[0].example).steps[0].input, + }); + + expect(logger.info).toHaveBeenCalledWith( + `Fetching the mkdocs.yml catalog from https://notreal.github.com/space/backstage/mkdocs.yml`, + ); + expect(logger.info).toHaveBeenCalledTimes(5); + expect(createWriteStream).toHaveBeenCalledTimes(1); + expect(readFile).toHaveBeenCalledTimes(1); + expect(writeFile).toHaveBeenCalledTimes(1); + }); +}); From b141003f3d195168194d723186362c2fc986daee Mon Sep 17 00:00:00 2001 From: Philipp Hugenroth Date: Tue, 8 Aug 2023 12:59:37 +0200 Subject: [PATCH 277/372] Remove options & use config instead Signed-off-by: Philipp Hugenroth --- packages/backend-next/src/index.ts | 16 +-- packages/backend/src/plugins/linguist.ts | 18 +--- plugins/linguist-backend/config.d.ts | 2 + plugins/linguist-backend/src/index.ts | 1 - plugins/linguist-backend/src/plugin.ts | 98 ++++++++----------- .../src/service/router.test.ts | 27 ++--- .../linguist-backend/src/service/router.ts | 68 ++++++++----- .../src/service/standaloneServer.ts | 25 ++--- 8 files changed, 107 insertions(+), 148 deletions(-) diff --git a/packages/backend-next/src/index.ts b/packages/backend-next/src/index.ts index bbb7290c73..f3b1ea06f8 100644 --- a/packages/backend-next/src/index.ts +++ b/packages/backend-next/src/index.ts @@ -36,7 +36,6 @@ import { badgesPlugin } from '@backstage/plugin-badges-backend'; 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'; import { adrPlugin } from '@backstage/plugin-adr-backend'; import { lighthousePlugin } from '@backstage/plugin-lighthouse-backend'; import { proxyPlugin } from '@backstage/plugin-proxy-backend'; @@ -58,20 +57,7 @@ backend.add(devtoolsPlugin()); 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, - }), -); +backend.add(linguistPlugin()); // Todo backend.add(todoPlugin()); diff --git a/packages/backend/src/plugins/linguist.ts b/packages/backend/src/plugins/linguist.ts index 2c8713a7e3..25cb66b270 100644 --- a/packages/backend/src/plugins/linguist.ts +++ b/packages/backend/src/plugins/linguist.ts @@ -14,27 +14,13 @@ * limitations under the License. */ -import { TaskScheduleDefinition } from '@backstage/backend-tasks'; import { createRouter } from '@backstage/plugin-linguist-backend'; import { Router } from 'express'; + import type { PluginEnvironment } from '../types'; export default async function createPlugin( env: PluginEnvironment, ): Promise { - const schedule: TaskScheduleDefinition = { - frequency: { minutes: 2 }, - timeout: { minutes: 15 }, - initialDelay: { seconds: 15 }, - }; - - return createRouter( - { - schedule: schedule, - age: { days: 30 }, - batchSize: 2, - useSourceLocation: false, - }, - { ...env }, - ); + return createRouter({ ...env }); } diff --git a/plugins/linguist-backend/config.d.ts b/plugins/linguist-backend/config.d.ts index e7ad487d12..e927bbc930 100644 --- a/plugins/linguist-backend/config.d.ts +++ b/plugins/linguist-backend/config.d.ts @@ -19,6 +19,8 @@ import { HumanDuration } from '@backstage/types'; export interface Config { /** Configuration options for the linguist plugin */ linguist?: { + // TODO + /** Options for the tags processor */ tagsProcessor?: { /** diff --git a/plugins/linguist-backend/src/index.ts b/plugins/linguist-backend/src/index.ts index 107877551e..64016d0d07 100644 --- a/plugins/linguist-backend/src/index.ts +++ b/plugins/linguist-backend/src/index.ts @@ -24,4 +24,3 @@ export * from './processor'; 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 f655d6a1f4..3d33d85e72 100644 --- a/plugins/linguist-backend/src/plugin.ts +++ b/plugins/linguist-backend/src/plugin.ts @@ -20,68 +20,48 @@ import { 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 - * - * @public - */ -export interface LinguistPluginOptions { - schedule?: TaskScheduleDefinition; - age?: HumanDuration; - batchSize?: number; - useSourceLocation?: boolean; - linguistJsOptions?: Record; - kind?: string[]; -} /** * Linguist backend plugin * * @public */ -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, - }, - ), - ); - }, - }); - }, - }), -); +export const linguistPlugin = createBackendPlugin(() => ({ + pluginId: 'linguist', + register(env) { + env.registerInit({ + deps: { + logger: coreServices.logger, + config: coreServices.rootConfig, + reader: coreServices.urlReader, + database: coreServices.database, + discovery: coreServices.discovery, + scheduler: coreServices.scheduler, + tokenManager: coreServices.tokenManager, + httpRouter: coreServices.httpRouter, + }, + async init({ + logger, + config, + reader, + database, + discovery, + scheduler, + tokenManager, + httpRouter, + }) { + httpRouter.use( + await createRouter({ + logger: loggerToWinstonLogger(logger), + config, + reader, + database, + discovery, + scheduler, + tokenManager, + }), + ); + }, + }); + }, +})); diff --git a/plugins/linguist-backend/src/service/router.test.ts b/plugins/linguist-backend/src/service/router.test.ts index 7ab8f1c238..e43325bdaf 100644 --- a/plugins/linguist-backend/src/service/router.test.ts +++ b/plugins/linguist-backend/src/service/router.test.ts @@ -27,7 +27,6 @@ import request from 'supertest'; import { ConfigReader } from '@backstage/config'; import { createRouter } from './router'; import { LinguistBackendApi } from '../api'; -import { TaskScheduleDefinition } from '@backstage/backend-tasks'; function createDatabase(): PluginDatabaseManager { return DatabaseManager.fromConfig( @@ -59,28 +58,20 @@ const mockUrlReader = UrlReaders.default({ config: new ConfigReader({}), }); -const schedule: TaskScheduleDefinition = { - frequency: { minutes: 2 }, - timeout: { minutes: 15 }, - initialDelay: { seconds: 15 }, -}; - describe('createRouter', () => { let linguistBackendApi: jest.Mocked; let app: express.Express; beforeAll(async () => { - const router = await createRouter( - { schedule: schedule, age: { days: 30 }, useSourceLocation: false }, - { - linguistBackendApi: linguistBackendApi, - discovery: testDiscovery, - database: createDatabase(), - reader: mockUrlReader, - logger: getVoidLogger(), - tokenManager: mockedTokenManager, - }, - ); + const router = await createRouter({ + linguistBackendApi: linguistBackendApi, + discovery: testDiscovery, + database: createDatabase(), + config: new ConfigReader({}), + reader: mockUrlReader, + logger: getVoidLogger(), + tokenManager: mockedTokenManager, + }); app = express().use(router); }); diff --git a/plugins/linguist-backend/src/service/router.ts b/plugins/linguist-backend/src/service/router.ts index 9e45438ec8..8fbd19eb1c 100644 --- a/plugins/linguist-backend/src/service/router.ts +++ b/plugins/linguist-backend/src/service/router.ts @@ -21,53 +21,77 @@ import { TokenManager, UrlReader, } from '@backstage/backend-common'; +import { + PluginTaskScheduler, + readTaskScheduleDefinitionFromConfig, + TaskScheduleDefinition, +} from '@backstage/backend-tasks'; +import { CatalogClient } from '@backstage/catalog-client'; +import { Config } from '@backstage/config'; +import { HumanDuration } from '@backstage/types'; import express from 'express'; import Router from 'express-promise-router'; import { Logger } from 'winston'; -import { LinguistBackendApi } from '../api'; -import { LinguistBackendDatabase } from '../db'; -import { - PluginTaskScheduler, - TaskScheduleDefinition, -} from '@backstage/backend-tasks'; -import { HumanDuration } from '@backstage/types'; -import { CatalogClient } from '@backstage/catalog-client'; -import { LinguistBackendClient } from '../api/LinguistBackendClient'; -/** @public */ -export interface PluginOptions { - schedule?: TaskScheduleDefinition; - age?: HumanDuration; - batchSize?: number; - useSourceLocation?: boolean; - linguistJsOptions?: Record; - kind?: string[]; -} +import { LinguistBackendApi } from '../api'; +import { LinguistBackendClient } from '../api/LinguistBackendClient'; +import { LinguistBackendDatabase } from '../db'; /** @public */ export interface RouterOptions { linguistBackendApi?: LinguistBackendApi; logger: Logger; reader: UrlReader; + config: Config; tokenManager: TokenManager; database: PluginDatabaseManager; discovery: PluginEndpointDiscovery; scheduler?: PluginTaskScheduler; } +const DEFAULT_SCHEDULE: TaskScheduleDefinition = { + frequency: { minutes: 2 }, + timeout: { minutes: 15 }, + initialDelay: { seconds: 15 }, +}; +// const DEFAULT_AGE = { days: 30 }; +const DEFAULT_BATCH_SIZE = 20; +const DEFAULT_USE_SOURCE_LOCATION = false; + /** @public */ export async function createRouter( - pluginOptions: PluginOptions, routerOptions: RouterOptions, ): Promise { - const { - schedule, + const { config } = routerOptions; + + const schedule = config.has('linguist.schedule') + ? readTaskScheduleDefinitionFromConfig( + config.getConfig('linguist.schedule'), + ) + : DEFAULT_SCHEDULE; + const batchSize = config.has('linguist.batchSize') + ? config.getNumber('linguist.batchSize') + : DEFAULT_BATCH_SIZE; + const useSourceLocation = config.has('linguist.useSourceLocation') + ? config.getBoolean('linguist.useSourceLocation') + : DEFAULT_USE_SOURCE_LOCATION; + + const age = config.getOptionalConfig('linguist.age') as + | HumanDuration + | undefined; + const kind = config.getOptionalStringArray('linguist.kind'); + const linguistJsOptions = config.getOptionalConfig( + 'linguist.linguistJsOptions', + ); + + console.log( age, batchSize, useSourceLocation, kind, linguistJsOptions, - } = pluginOptions; + schedule, + ); const { logger, reader, database, discovery, scheduler, tokenManager } = routerOptions; diff --git a/plugins/linguist-backend/src/service/standaloneServer.ts b/plugins/linguist-backend/src/service/standaloneServer.ts index 11604cddfb..f391570fb3 100644 --- a/plugins/linguist-backend/src/service/standaloneServer.ts +++ b/plugins/linguist-backend/src/service/standaloneServer.ts @@ -26,7 +26,6 @@ import { Server } from 'http'; import { Logger } from 'winston'; import { createRouter } from './router'; import knexFactory from 'knex'; -import { TaskScheduleDefinition } from '@backstage/backend-tasks'; export interface ServerOptions { port: number; @@ -53,23 +52,15 @@ export async function startStandaloneServer( return knex; }); - const schedule: TaskScheduleDefinition = { - frequency: { minutes: 2 }, - timeout: { minutes: 15 }, - initialDelay: { seconds: 15 }, - }; - logger.debug('Starting application server...'); - const router = await createRouter( - { schedule: schedule, age: { days: 30 }, useSourceLocation: false }, - { - database: { getClient: async () => db }, - discovery: SingleHostDiscovery.fromConfig(config), - reader: UrlReaders.default({ logger, config }), - logger, - tokenManager: ServerTokenManager.noop(), - }, - ); + const router = await createRouter({ + database: { getClient: async () => db }, + discovery: SingleHostDiscovery.fromConfig(config), + reader: UrlReaders.default({ logger, config }), + config, + logger, + tokenManager: ServerTokenManager.noop(), + }); let service = createServiceBuilder(module) .setPort(options.port) From 0af1db0b9eccb07aedf9645e3ea4291921d8e333 Mon Sep 17 00:00:00 2001 From: Philipp Hugenroth Date: Tue, 8 Aug 2023 15:29:17 +0200 Subject: [PATCH 278/372] Avoid bigger change to plugin Signed-off-by: Philipp Hugenroth --- packages/backend/src/plugins/linguist.ts | 18 ++++- plugins/linguist-backend/config.d.ts | 23 ++++++- plugins/linguist-backend/src/plugin.ts | 56 +++++++++++++--- .../src/service/router.test.ts | 27 +++++--- .../linguist-backend/src/service/router.ts | 66 ++++++------------- .../src/service/standaloneServer.ts | 25 ++++--- 6 files changed, 141 insertions(+), 74 deletions(-) diff --git a/packages/backend/src/plugins/linguist.ts b/packages/backend/src/plugins/linguist.ts index 25cb66b270..2c8713a7e3 100644 --- a/packages/backend/src/plugins/linguist.ts +++ b/packages/backend/src/plugins/linguist.ts @@ -14,13 +14,27 @@ * limitations under the License. */ +import { TaskScheduleDefinition } from '@backstage/backend-tasks'; import { createRouter } from '@backstage/plugin-linguist-backend'; import { Router } from 'express'; - import type { PluginEnvironment } from '../types'; export default async function createPlugin( env: PluginEnvironment, ): Promise { - return createRouter({ ...env }); + const schedule: TaskScheduleDefinition = { + frequency: { minutes: 2 }, + timeout: { minutes: 15 }, + initialDelay: { seconds: 15 }, + }; + + return createRouter( + { + schedule: schedule, + age: { days: 30 }, + batchSize: 2, + useSourceLocation: false, + }, + { ...env }, + ); } diff --git a/plugins/linguist-backend/config.d.ts b/plugins/linguist-backend/config.d.ts index e927bbc930..b864f01df7 100644 --- a/plugins/linguist-backend/config.d.ts +++ b/plugins/linguist-backend/config.d.ts @@ -14,12 +14,33 @@ * limitations under the License. */ +import { TaskScheduleDefinition } from '@backstage/backend-tasks'; import { HumanDuration } from '@backstage/types'; export interface Config { /** Configuration options for the linguist plugin */ linguist?: { - // TODO + schedule?: TaskScheduleDefinition; + /** + * @default 20 + */ + batchSize?: number; + /** + * @default false + */ + useSourceLocation?: boolean; + /** + * Refresh generated language breakdown + */ + age?: HumanDuration; + /** + * @default ['API', 'Component', 'Template'] + */ + kind?: string[]; + /** + * [linguist-js](https://www.npmjs.com/package/linguist-js) options + */ + linguistJsOptions: Record; /** Options for the tags processor */ tagsProcessor?: { diff --git a/plugins/linguist-backend/src/plugin.ts b/plugins/linguist-backend/src/plugin.ts index 3d33d85e72..cf4a00af43 100644 --- a/plugins/linguist-backend/src/plugin.ts +++ b/plugins/linguist-backend/src/plugin.ts @@ -19,8 +19,20 @@ import { coreServices, createBackendPlugin, } from '@backstage/backend-plugin-api'; +import { + TaskScheduleDefinition, + readTaskScheduleDefinitionFromConfig, +} from '@backstage/backend-tasks'; +import { HumanDuration } from '@backstage/types'; + import { createRouter } from './service/router'; +const DEFAULT_SCHEDULE: TaskScheduleDefinition = { + frequency: { minutes: 2 }, + timeout: { minutes: 15 }, + initialDelay: { seconds: 15 }, +}; + /** * Linguist backend plugin * @@ -50,16 +62,42 @@ export const linguistPlugin = createBackendPlugin(() => ({ tokenManager, httpRouter, }) { + const schedule = config.has('linguist.schedule') + ? readTaskScheduleDefinitionFromConfig( + config.getConfig('linguist.schedule'), + ) + : DEFAULT_SCHEDULE; + const batchSize = config.getOptionalNumber('linguist.batchSize'); + const useSourceLocation = config.getBoolean( + 'linguist.useSourceLocation', + ); + const age = config.getOptionalConfig('linguist.age') as + | HumanDuration + | undefined; + const kind = config.getOptionalStringArray('linguist.kind'); + const linguistJsOptions = config.getOptionalConfig( + 'linguist.linguistJsOptions', + ); + httpRouter.use( - await createRouter({ - logger: loggerToWinstonLogger(logger), - config, - reader, - database, - discovery, - scheduler, - tokenManager, - }), + await createRouter( + { + schedule, + batchSize, + useSourceLocation, + age, + kind, + linguistJsOptions, + }, + { + logger: loggerToWinstonLogger(logger), + reader, + database, + discovery, + scheduler, + tokenManager, + }, + ), ); }, }); diff --git a/plugins/linguist-backend/src/service/router.test.ts b/plugins/linguist-backend/src/service/router.test.ts index e43325bdaf..7ab8f1c238 100644 --- a/plugins/linguist-backend/src/service/router.test.ts +++ b/plugins/linguist-backend/src/service/router.test.ts @@ -27,6 +27,7 @@ import request from 'supertest'; import { ConfigReader } from '@backstage/config'; import { createRouter } from './router'; import { LinguistBackendApi } from '../api'; +import { TaskScheduleDefinition } from '@backstage/backend-tasks'; function createDatabase(): PluginDatabaseManager { return DatabaseManager.fromConfig( @@ -58,20 +59,28 @@ const mockUrlReader = UrlReaders.default({ config: new ConfigReader({}), }); +const schedule: TaskScheduleDefinition = { + frequency: { minutes: 2 }, + timeout: { minutes: 15 }, + initialDelay: { seconds: 15 }, +}; + describe('createRouter', () => { let linguistBackendApi: jest.Mocked; let app: express.Express; beforeAll(async () => { - const router = await createRouter({ - linguistBackendApi: linguistBackendApi, - discovery: testDiscovery, - database: createDatabase(), - config: new ConfigReader({}), - reader: mockUrlReader, - logger: getVoidLogger(), - tokenManager: mockedTokenManager, - }); + const router = await createRouter( + { schedule: schedule, age: { days: 30 }, useSourceLocation: false }, + { + linguistBackendApi: linguistBackendApi, + discovery: testDiscovery, + database: createDatabase(), + reader: mockUrlReader, + logger: getVoidLogger(), + tokenManager: mockedTokenManager, + }, + ); app = express().use(router); }); diff --git a/plugins/linguist-backend/src/service/router.ts b/plugins/linguist-backend/src/service/router.ts index 8fbd19eb1c..9e45438ec8 100644 --- a/plugins/linguist-backend/src/service/router.ts +++ b/plugins/linguist-backend/src/service/router.ts @@ -21,77 +21,53 @@ import { TokenManager, UrlReader, } from '@backstage/backend-common'; -import { - PluginTaskScheduler, - readTaskScheduleDefinitionFromConfig, - TaskScheduleDefinition, -} from '@backstage/backend-tasks'; -import { CatalogClient } from '@backstage/catalog-client'; -import { Config } from '@backstage/config'; -import { HumanDuration } from '@backstage/types'; import express from 'express'; import Router from 'express-promise-router'; import { Logger } from 'winston'; - import { LinguistBackendApi } from '../api'; -import { LinguistBackendClient } from '../api/LinguistBackendClient'; import { LinguistBackendDatabase } from '../db'; +import { + PluginTaskScheduler, + TaskScheduleDefinition, +} from '@backstage/backend-tasks'; +import { HumanDuration } from '@backstage/types'; +import { CatalogClient } from '@backstage/catalog-client'; +import { LinguistBackendClient } from '../api/LinguistBackendClient'; + +/** @public */ +export interface PluginOptions { + schedule?: TaskScheduleDefinition; + age?: HumanDuration; + batchSize?: number; + useSourceLocation?: boolean; + linguistJsOptions?: Record; + kind?: string[]; +} /** @public */ export interface RouterOptions { linguistBackendApi?: LinguistBackendApi; logger: Logger; reader: UrlReader; - config: Config; tokenManager: TokenManager; database: PluginDatabaseManager; discovery: PluginEndpointDiscovery; scheduler?: PluginTaskScheduler; } -const DEFAULT_SCHEDULE: TaskScheduleDefinition = { - frequency: { minutes: 2 }, - timeout: { minutes: 15 }, - initialDelay: { seconds: 15 }, -}; -// const DEFAULT_AGE = { days: 30 }; -const DEFAULT_BATCH_SIZE = 20; -const DEFAULT_USE_SOURCE_LOCATION = false; - /** @public */ export async function createRouter( + pluginOptions: PluginOptions, routerOptions: RouterOptions, ): Promise { - const { config } = routerOptions; - - const schedule = config.has('linguist.schedule') - ? readTaskScheduleDefinitionFromConfig( - config.getConfig('linguist.schedule'), - ) - : DEFAULT_SCHEDULE; - const batchSize = config.has('linguist.batchSize') - ? config.getNumber('linguist.batchSize') - : DEFAULT_BATCH_SIZE; - const useSourceLocation = config.has('linguist.useSourceLocation') - ? config.getBoolean('linguist.useSourceLocation') - : DEFAULT_USE_SOURCE_LOCATION; - - const age = config.getOptionalConfig('linguist.age') as - | HumanDuration - | undefined; - const kind = config.getOptionalStringArray('linguist.kind'); - const linguistJsOptions = config.getOptionalConfig( - 'linguist.linguistJsOptions', - ); - - console.log( + const { + schedule, age, batchSize, useSourceLocation, kind, linguistJsOptions, - schedule, - ); + } = pluginOptions; const { logger, reader, database, discovery, scheduler, tokenManager } = routerOptions; diff --git a/plugins/linguist-backend/src/service/standaloneServer.ts b/plugins/linguist-backend/src/service/standaloneServer.ts index f391570fb3..11604cddfb 100644 --- a/plugins/linguist-backend/src/service/standaloneServer.ts +++ b/plugins/linguist-backend/src/service/standaloneServer.ts @@ -26,6 +26,7 @@ import { Server } from 'http'; import { Logger } from 'winston'; import { createRouter } from './router'; import knexFactory from 'knex'; +import { TaskScheduleDefinition } from '@backstage/backend-tasks'; export interface ServerOptions { port: number; @@ -52,15 +53,23 @@ export async function startStandaloneServer( return knex; }); + const schedule: TaskScheduleDefinition = { + frequency: { minutes: 2 }, + timeout: { minutes: 15 }, + initialDelay: { seconds: 15 }, + }; + logger.debug('Starting application server...'); - const router = await createRouter({ - database: { getClient: async () => db }, - discovery: SingleHostDiscovery.fromConfig(config), - reader: UrlReaders.default({ logger, config }), - config, - logger, - tokenManager: ServerTokenManager.noop(), - }); + const router = await createRouter( + { schedule: schedule, age: { days: 30 }, useSourceLocation: false }, + { + database: { getClient: async () => db }, + discovery: SingleHostDiscovery.fromConfig(config), + reader: UrlReaders.default({ logger, config }), + logger, + tokenManager: ServerTokenManager.noop(), + }, + ); let service = createServiceBuilder(module) .setPort(options.port) From 0896d85d5ab5527b1525406a28c1f04c3ebfc583 Mon Sep 17 00:00:00 2001 From: Philipp Hugenroth Date: Tue, 8 Aug 2023 15:57:40 +0200 Subject: [PATCH 279/372] Add changeset & update api-reports Signed-off-by: Philipp Hugenroth --- .changeset/sweet-feet-study.md | 5 +++++ plugins/linguist-backend/api-report.md | 18 +----------------- plugins/linguist-backend/config.d.ts | 2 +- 3 files changed, 7 insertions(+), 18 deletions(-) create mode 100644 .changeset/sweet-feet-study.md diff --git a/.changeset/sweet-feet-study.md b/.changeset/sweet-feet-study.md new file mode 100644 index 0000000000..ccec79678b --- /dev/null +++ b/.changeset/sweet-feet-study.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-linguist-backend': minor +--- + +**BREAKING**: Removing options from exported `linguistPlugin()` in favour of static config diff --git a/plugins/linguist-backend/api-report.md b/plugins/linguist-backend/api-report.md index aac978e426..5cee322a5b 100644 --- a/plugins/linguist-backend/api-report.md +++ b/plugins/linguist-backend/api-report.md @@ -36,23 +36,7 @@ export interface LinguistBackendApi { } // @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; -} +export const linguistPlugin: () => BackendFeature; // @public export class LinguistTagsProcessor implements CatalogProcessor { diff --git a/plugins/linguist-backend/config.d.ts b/plugins/linguist-backend/config.d.ts index b864f01df7..34d09b28e1 100644 --- a/plugins/linguist-backend/config.d.ts +++ b/plugins/linguist-backend/config.d.ts @@ -40,7 +40,7 @@ export interface Config { /** * [linguist-js](https://www.npmjs.com/package/linguist-js) options */ - linguistJsOptions: Record; + linguistJsOptions: object; /** Options for the tags processor */ tagsProcessor?: { From cc622ab8c4f8835a1f5f0126d3b74e2ed0fc9f29 Mon Sep 17 00:00:00 2001 From: Philipp Hugenroth Date: Tue, 8 Aug 2023 16:08:59 +0200 Subject: [PATCH 280/372] and small clean up.. Signed-off-by: Philipp Hugenroth --- plugins/linguist-backend/src/plugin.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/linguist-backend/src/plugin.ts b/plugins/linguist-backend/src/plugin.ts index cf4a00af43..a8c90b4ae9 100644 --- a/plugins/linguist-backend/src/plugin.ts +++ b/plugins/linguist-backend/src/plugin.ts @@ -38,7 +38,7 @@ const DEFAULT_SCHEDULE: TaskScheduleDefinition = { * * @public */ -export const linguistPlugin = createBackendPlugin(() => ({ +export const linguistPlugin = createBackendPlugin({ pluginId: 'linguist', register(env) { env.registerInit({ @@ -102,4 +102,4 @@ export const linguistPlugin = createBackendPlugin(() => ({ }, }); }, -})); +}); From 5c56236eeb735e608db592aebe2fda3b3590e53b Mon Sep 17 00:00:00 2001 From: Philipp Hugenroth Date: Wed, 9 Aug 2023 11:33:14 +0200 Subject: [PATCH 281/372] Update plugins/linguist-backend/config.d.ts MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Fredrik Adelöw Signed-off-by: Philipp Hugenroth --- plugins/linguist-backend/config.d.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/linguist-backend/config.d.ts b/plugins/linguist-backend/config.d.ts index 34d09b28e1..c05bc59fe5 100644 --- a/plugins/linguist-backend/config.d.ts +++ b/plugins/linguist-backend/config.d.ts @@ -40,7 +40,7 @@ export interface Config { /** * [linguist-js](https://www.npmjs.com/package/linguist-js) options */ - linguistJsOptions: object; + linguistJsOptions?: object; /** Options for the tags processor */ tagsProcessor?: { From 1bceb3049b0990b3e753ee24020f1f93962dcfb3 Mon Sep 17 00:00:00 2001 From: Philipp Hugenroth Date: Wed, 9 Aug 2023 11:45:44 +0200 Subject: [PATCH 282/372] Adjust to review by making schedule optional Signed-off-by: Philipp Hugenroth --- plugins/linguist-backend/config.d.ts | 4 ++-- plugins/linguist-backend/src/plugin.ts | 22 +++++++--------------- 2 files changed, 9 insertions(+), 17 deletions(-) diff --git a/plugins/linguist-backend/config.d.ts b/plugins/linguist-backend/config.d.ts index c05bc59fe5..5f5a3e2656 100644 --- a/plugins/linguist-backend/config.d.ts +++ b/plugins/linguist-backend/config.d.ts @@ -15,7 +15,7 @@ */ import { TaskScheduleDefinition } from '@backstage/backend-tasks'; -import { HumanDuration } from '@backstage/types'; +import { HumanDuration, JsonObject } from '@backstage/types'; export interface Config { /** Configuration options for the linguist plugin */ @@ -40,7 +40,7 @@ export interface Config { /** * [linguist-js](https://www.npmjs.com/package/linguist-js) options */ - linguistJsOptions?: object; + linguistJsOptions?: JsonObject; /** Options for the tags processor */ tagsProcessor?: { diff --git a/plugins/linguist-backend/src/plugin.ts b/plugins/linguist-backend/src/plugin.ts index a8c90b4ae9..0605ee3027 100644 --- a/plugins/linguist-backend/src/plugin.ts +++ b/plugins/linguist-backend/src/plugin.ts @@ -19,20 +19,11 @@ import { coreServices, createBackendPlugin, } from '@backstage/backend-plugin-api'; -import { - TaskScheduleDefinition, - readTaskScheduleDefinitionFromConfig, -} from '@backstage/backend-tasks'; +import { readTaskScheduleDefinitionFromConfig } from '@backstage/backend-tasks'; import { HumanDuration } from '@backstage/types'; import { createRouter } from './service/router'; -const DEFAULT_SCHEDULE: TaskScheduleDefinition = { - frequency: { minutes: 2 }, - timeout: { minutes: 15 }, - initialDelay: { seconds: 15 }, -}; - /** * Linguist backend plugin * @@ -62,11 +53,12 @@ export const linguistPlugin = createBackendPlugin({ tokenManager, httpRouter, }) { - const schedule = config.has('linguist.schedule') - ? readTaskScheduleDefinitionFromConfig( - config.getConfig('linguist.schedule'), - ) - : DEFAULT_SCHEDULE; + let schedule; + if (config.has('linguist.schedule')) { + schedule = readTaskScheduleDefinitionFromConfig( + config.getConfig('linguist.schedule'), + ); + } const batchSize = config.getOptionalNumber('linguist.batchSize'); const useSourceLocation = config.getBoolean( 'linguist.useSourceLocation', From c9d370653d70e7a699f2dbaed3f32cbac20a8a0c Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 14 Aug 2023 13:09:18 +0000 Subject: [PATCH 283/372] chore(deps): update dependency @types/node to v20.5.0 Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- yarn.lock | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/yarn.lock b/yarn.lock index 874da91a9a..f3f258c926 100644 --- a/yarn.lock +++ b/yarn.lock @@ -17526,9 +17526,9 @@ __metadata: linkType: hard "@types/node@npm:*, @types/node@npm:>=12.12.47, @types/node@npm:>=13.7.0": - version: 20.4.9 - resolution: "@types/node@npm:20.4.9" - checksum: 504e3da96274f3865c1251830f4750bb0a8f6ef6f8648902cd3bba33370c5f219235471bfbf55cce726b25c8eacfcc8e2aad0ec3b13e27ea6708b00d4a9a46c8 + version: 20.5.0 + resolution: "@types/node@npm:20.5.0" + checksum: 659bc5fc93b5c02bd88ca4bfae4f6b9dc307d45884d1dd9d69df85819a9943cdc00cd3c87eec3048866df6a67f52297f74d170e47a44f61edb3e8f770d94e85e languageName: node linkType: hard @@ -17561,9 +17561,9 @@ __metadata: linkType: hard "@types/node@npm:^18.11.17": - version: 18.17.4 - resolution: "@types/node@npm:18.17.4" - checksum: d4c458202d82c999f38d85ca9ae8a2d3e521645c7f1b908cd6a0303d0e13c7d5eb3f888c41f584ba029ecf802d0a0005b7816c149400371a3c035abc4bd9a4c5 + version: 18.17.5 + resolution: "@types/node@npm:18.17.5" + checksum: b8c658a99234b99425243c324b641ed7b9ceb6bee6b06421fdc9bb7c58f9a5552e353225cc549e6982462ac384abe1985022ed76e2e4728797f59b21f659ca2b languageName: node linkType: hard From 53c52953e4935586bb65503ad97e0183a14d9e5a Mon Sep 17 00:00:00 2001 From: Philipp Hugenroth Date: Mon, 14 Aug 2023 16:41:16 +0200 Subject: [PATCH 284/372] Adjust to review Signed-off-by: Philipp Hugenroth --- .changeset/sweet-feet-study.md | 4 +- plugins/linguist-backend/api-report.md | 7 +++ plugins/linguist-backend/config.d.ts | 5 +- plugins/linguist-backend/src/plugin.ts | 49 +++------------ .../src/service/router.test.ts | 63 ++++++++++++++----- .../linguist-backend/src/service/router.ts | 34 +++++++++- 6 files changed, 100 insertions(+), 62 deletions(-) diff --git a/.changeset/sweet-feet-study.md b/.changeset/sweet-feet-study.md index ccec79678b..d27b05e848 100644 --- a/.changeset/sweet-feet-study.md +++ b/.changeset/sweet-feet-study.md @@ -1,5 +1,5 @@ --- -'@backstage/plugin-linguist-backend': minor +'@backstage/plugin-linguist-backend': patch --- -**BREAKING**: Removing options from exported `linguistPlugin()` in favour of static config +Breaking change for the alpha export plugin options from exported `linguistPlugin()` in favour of static config. diff --git a/plugins/linguist-backend/api-report.md b/plugins/linguist-backend/api-report.md index 5cee322a5b..4edd939058 100644 --- a/plugins/linguist-backend/api-report.md +++ b/plugins/linguist-backend/api-report.md @@ -27,6 +27,11 @@ export function createRouter( routerOptions: RouterOptions, ): Promise; +// @public (undocumented) +export function createRouterFromConfig( + routerOptions: RouterOptions, +): Promise; + // @public (undocumented) export interface LinguistBackendApi { // (undocumented) @@ -88,6 +93,8 @@ export interface PluginOptions { // @public (undocumented) export interface RouterOptions { + // (undocumented) + config?: Config; // (undocumented) database: PluginDatabaseManager; // (undocumented) diff --git a/plugins/linguist-backend/config.d.ts b/plugins/linguist-backend/config.d.ts index 5f5a3e2656..758210feb7 100644 --- a/plugins/linguist-backend/config.d.ts +++ b/plugins/linguist-backend/config.d.ts @@ -15,7 +15,8 @@ */ import { TaskScheduleDefinition } from '@backstage/backend-tasks'; -import { HumanDuration, JsonObject } from '@backstage/types'; +import { HumanDuration } from '@backstage/types'; +import { Options as LinguistJsOptions } from 'linguist-js/dist/types'; export interface Config { /** Configuration options for the linguist plugin */ @@ -40,7 +41,7 @@ export interface Config { /** * [linguist-js](https://www.npmjs.com/package/linguist-js) options */ - linguistJsOptions?: JsonObject; + linguistJsOptions?: LinguistJsOptions; /** Options for the tags processor */ tagsProcessor?: { diff --git a/plugins/linguist-backend/src/plugin.ts b/plugins/linguist-backend/src/plugin.ts index 0605ee3027..cbf18d9ebe 100644 --- a/plugins/linguist-backend/src/plugin.ts +++ b/plugins/linguist-backend/src/plugin.ts @@ -19,10 +19,8 @@ import { coreServices, createBackendPlugin, } from '@backstage/backend-plugin-api'; -import { readTaskScheduleDefinitionFromConfig } from '@backstage/backend-tasks'; -import { HumanDuration } from '@backstage/types'; -import { createRouter } from './service/router'; +import { createRouterFromConfig } from './service/router'; /** * Linguist backend plugin @@ -53,43 +51,16 @@ export const linguistPlugin = createBackendPlugin({ tokenManager, httpRouter, }) { - let schedule; - if (config.has('linguist.schedule')) { - schedule = readTaskScheduleDefinitionFromConfig( - config.getConfig('linguist.schedule'), - ); - } - const batchSize = config.getOptionalNumber('linguist.batchSize'); - const useSourceLocation = config.getBoolean( - 'linguist.useSourceLocation', - ); - const age = config.getOptionalConfig('linguist.age') as - | HumanDuration - | undefined; - const kind = config.getOptionalStringArray('linguist.kind'); - const linguistJsOptions = config.getOptionalConfig( - 'linguist.linguistJsOptions', - ); - httpRouter.use( - await createRouter( - { - schedule, - batchSize, - useSourceLocation, - age, - kind, - linguistJsOptions, - }, - { - logger: loggerToWinstonLogger(logger), - reader, - database, - discovery, - scheduler, - tokenManager, - }, - ), + await createRouterFromConfig({ + logger: loggerToWinstonLogger(logger), + config, + reader, + database, + discovery, + scheduler, + tokenManager, + }), ); }, }); diff --git a/plugins/linguist-backend/src/service/router.test.ts b/plugins/linguist-backend/src/service/router.test.ts index 7ab8f1c238..4048e1213b 100644 --- a/plugins/linguist-backend/src/service/router.test.ts +++ b/plugins/linguist-backend/src/service/router.test.ts @@ -25,7 +25,7 @@ import { import express from 'express'; import request from 'supertest'; import { ConfigReader } from '@backstage/config'; -import { createRouter } from './router'; +import { createRouter, createRouterFromConfig } from './router'; import { LinguistBackendApi } from '../api'; import { TaskScheduleDefinition } from '@backstage/backend-tasks'; @@ -69,26 +69,57 @@ describe('createRouter', () => { let linguistBackendApi: jest.Mocked; let app: express.Express; - beforeAll(async () => { - const router = await createRouter( - { schedule: schedule, age: { days: 30 }, useSourceLocation: false }, - { - linguistBackendApi: linguistBackendApi, - discovery: testDiscovery, - database: createDatabase(), - reader: mockUrlReader, - logger: getVoidLogger(), - tokenManager: mockedTokenManager, - }, - ); - app = express().use(router); - }); - beforeEach(() => { jest.resetAllMocks(); }); describe('GET /health', () => { + beforeAll(async () => { + const router = await createRouter( + { schedule: schedule, age: { days: 30 }, useSourceLocation: false }, + { + linguistBackendApi: linguistBackendApi, + discovery: testDiscovery, + database: createDatabase(), + reader: mockUrlReader, + logger: getVoidLogger(), + tokenManager: mockedTokenManager, + }, + ); + app = express().use(router); + }); + it('returns ok', async () => { + const response = await request(app).get('/health'); + + expect(response.status).toEqual(200); + expect(response.body).toEqual({ status: 'ok' }); + }); + }); + + describe('GET /health from config', () => { + beforeAll(async () => { + const config = new ConfigReader({ + linguist: { + schedule: { + frequency: { minutes: 2 }, + timeout: { minutes: 15 }, + initialDelay: { seconds: 15 }, + }, + age: { days: 30 }, + useSourceLocation: false, + }, + }); + const router = await createRouterFromConfig({ + linguistBackendApi: linguistBackendApi, + discovery: testDiscovery, + database: createDatabase(), + reader: mockUrlReader, + logger: getVoidLogger(), + config, + tokenManager: mockedTokenManager, + }); + app = express().use(router); + }); it('returns ok', async () => { const response = await request(app).get('/health'); diff --git a/plugins/linguist-backend/src/service/router.ts b/plugins/linguist-backend/src/service/router.ts index 9e45438ec8..02ff05f398 100644 --- a/plugins/linguist-backend/src/service/router.ts +++ b/plugins/linguist-backend/src/service/router.ts @@ -28,11 +28,13 @@ import { LinguistBackendApi } from '../api'; import { LinguistBackendDatabase } from '../db'; import { PluginTaskScheduler, + readTaskScheduleDefinitionFromConfig, TaskScheduleDefinition, } from '@backstage/backend-tasks'; import { HumanDuration } from '@backstage/types'; import { CatalogClient } from '@backstage/catalog-client'; import { LinguistBackendClient } from '../api/LinguistBackendClient'; +import { Config } from '@backstage/config'; /** @public */ export interface PluginOptions { @@ -53,6 +55,7 @@ export interface RouterOptions { database: PluginDatabaseManager; discovery: PluginEndpointDiscovery; scheduler?: PluginTaskScheduler; + config?: Config; } /** @public */ @@ -60,6 +63,9 @@ export async function createRouter( pluginOptions: PluginOptions, routerOptions: RouterOptions, ): Promise { + const { logger, reader, database, discovery, scheduler, tokenManager } = + routerOptions; + const { schedule, age, @@ -69,9 +75,6 @@ export async function createRouter( linguistJsOptions, } = pluginOptions; - const { logger, reader, database, discovery, scheduler, tokenManager } = - routerOptions; - const linguistBackendStore = await LinguistBackendDatabase.create( await database.getClient(), ); @@ -135,3 +138,28 @@ export async function createRouter( router.use(errorHandler()); return router; } + +/** @public */ +export async function createRouterFromConfig(routerOptions: RouterOptions) { + const { config } = routerOptions; + const pluginOptions: PluginOptions = {}; + if (config) { + if (config.has('linguist.schedule')) { + pluginOptions.schedule = readTaskScheduleDefinitionFromConfig( + config.getConfig('linguist.schedule'), + ); + } + pluginOptions.batchSize = config.getOptionalNumber('linguist.batchSize'); + pluginOptions.useSourceLocation = config.getBoolean( + 'linguist.useSourceLocation', + ); + pluginOptions.age = config.getOptionalConfig('linguist.age') as + | HumanDuration + | undefined; + pluginOptions.kind = config.getOptionalStringArray('linguist.kind'); + pluginOptions.linguistJsOptions = config.getOptionalConfig( + 'linguist.linguistJsOptions', + ); + } + return createRouter(pluginOptions, routerOptions); +} From e4527b7c1d15b1c4c9cb96ee13373f6fdc90205b Mon Sep 17 00:00:00 2001 From: Philipp Hugenroth Date: Mon, 14 Aug 2023 16:50:46 +0200 Subject: [PATCH 285/372] Adjust text to changed config scheme Signed-off-by: Philipp Hugenroth --- .../src/collators/DefaultTechDocsCollatorFactory.test.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/plugins/search-backend-module-techdocs/src/collators/DefaultTechDocsCollatorFactory.test.ts b/plugins/search-backend-module-techdocs/src/collators/DefaultTechDocsCollatorFactory.test.ts index 2e85a64f4e..319b8fb446 100644 --- a/plugins/search-backend-module-techdocs/src/collators/DefaultTechDocsCollatorFactory.test.ts +++ b/plugins/search-backend-module-techdocs/src/collators/DefaultTechDocsCollatorFactory.test.ts @@ -177,7 +177,7 @@ describe('DefaultTechDocsCollatorFactory', () => { const _config = new ConfigReader({ ...config.get(), search: { - techdocs: { collators: { locationTemplate: '/software/:name' } }, + collators: { techdocs: { locationTemplate: '/software/:name' } }, }, }); factory = DefaultTechDocsCollatorFactory.fromConfig(_config, { @@ -202,8 +202,8 @@ describe('DefaultTechDocsCollatorFactory', () => { const _config = new ConfigReader({ ...config.get(), search: { - techdocs: { - collators: { + collators: { + techdocs: { parallelismLimit: 1, }, }, From c823d2b02d01d23a774719f4dfeec58ad0bd070e Mon Sep 17 00:00:00 2001 From: Philipp Hugenroth Date: Mon, 14 Aug 2023 17:31:46 +0200 Subject: [PATCH 286/372] Update README Signed-off-by: Philipp Hugenroth --- plugins/linguist-backend/README.md | 36 ++++++++++++++++++------------ 1 file changed, 22 insertions(+), 14 deletions(-) diff --git a/plugins/linguist-backend/README.md b/plugins/linguist-backend/README.md index 7bca98191b..d2ed7f5f03 100644 --- a/plugins/linguist-backend/README.md +++ b/plugins/linguist-backend/README.md @@ -70,24 +70,32 @@ In your `packages/backend/src/index.ts` make the following changes: // ... other feature additions -+ 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.add(linguistPlugin()); backend.start(); ``` +The plugin options can be set through the `app-config.yaml`: + +```yaml +// ... + +linguist: + schedule: + frequency: + minutes: 2 + timeout: + minutes: 2 + initialDelay: + seconds: 15 + age: + days: 30 + batchSize: 2 + useSourceLocation: false + +// ... +``` + ## 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 From a391c31d79c29067581c3273ff00f691fa9c4e8b Mon Sep 17 00:00:00 2001 From: Philipp Hugenroth Date: Mon, 14 Aug 2023 17:32:23 +0200 Subject: [PATCH 287/372] Update .changeset/sweet-feet-study.md Co-authored-by: Andre Wanlin <67169551+awanlin@users.noreply.github.com> Signed-off-by: Philipp Hugenroth --- .changeset/sweet-feet-study.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.changeset/sweet-feet-study.md b/.changeset/sweet-feet-study.md index d27b05e848..9fd954cbbb 100644 --- a/.changeset/sweet-feet-study.md +++ b/.changeset/sweet-feet-study.md @@ -2,4 +2,4 @@ '@backstage/plugin-linguist-backend': patch --- -Breaking change for the alpha export plugin options from exported `linguistPlugin()` in favour of static config. +**BREAKING**: Removed the alpha export plugin options from exported `linguistPlugin()` (used by the new backend system) in favour of static config. From 5226acf00ba7bb020b993fafa28b930179ac472c Mon Sep 17 00:00:00 2001 From: Philipp Hugenroth Date: Mon, 14 Aug 2023 17:40:42 +0200 Subject: [PATCH 288/372] Update sweet-feet-study.md Signed-off-by: Philipp Hugenroth --- .changeset/sweet-feet-study.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.changeset/sweet-feet-study.md b/.changeset/sweet-feet-study.md index 9fd954cbbb..4afdb467f6 100644 --- a/.changeset/sweet-feet-study.md +++ b/.changeset/sweet-feet-study.md @@ -1,5 +1,5 @@ --- -'@backstage/plugin-linguist-backend': patch +'@backstage/plugin-linguist-backend': minor --- **BREAKING**: Removed the alpha export plugin options from exported `linguistPlugin()` (used by the new backend system) in favour of static config. From 27e7db7709b5df68635152e57c8ea7bfbe8aafe0 Mon Sep 17 00:00:00 2001 From: Andre Wanlin <67169551+awanlin@users.noreply.github.com> Date: Mon, 14 Aug 2023 10:51:25 -0500 Subject: [PATCH 289/372] Fixed failing test Signed-off-by: Andre Wanlin <67169551+awanlin@users.noreply.github.com> --- .../confluenceToMarkdown.examples.test.ts | 66 ++++++++----------- .../confluenceToMarkdown.examples.ts | 2 - 2 files changed, 26 insertions(+), 42 deletions(-) diff --git a/plugins/scaffolder-backend-module-confluence-to-markdown/src/actions/confluence/confluenceToMarkdown.examples.test.ts b/plugins/scaffolder-backend-module-confluence-to-markdown/src/actions/confluence/confluenceToMarkdown.examples.test.ts index 1a3e249fb0..e5aeadbf00 100644 --- a/plugins/scaffolder-backend-module-confluence-to-markdown/src/actions/confluence/confluenceToMarkdown.examples.test.ts +++ b/plugins/scaffolder-backend-module-confluence-to-markdown/src/actions/confluence/confluenceToMarkdown.examples.test.ts @@ -1,19 +1,3 @@ -/* - * Copyright 2021 The Backstage Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - /* * Copyright 2023 The Backstage Authors * @@ -43,6 +27,7 @@ import { rest } from 'msw'; import { setupServer } from 'msw/node'; import { examples } from './confluenceToMarkdown.examples'; import yaml from 'yaml'; +import { ActionContext } from '@backstage/plugin-scaffolder-node'; jest.mock('fs-extra', () => ({ mkdirSync: jest.fn(), @@ -57,7 +42,7 @@ jest.mock('fs-extra', () => ({ })); describe('confluence:transform:markdown examples', () => { - const baseUrl = `https://nodomain.confluence.com`; + const baseUrl = `https://confluence.example.com`; const worker = setupServer(); setupRequestMockHandlers(worker); @@ -78,30 +63,34 @@ describe('confluence:transform:markdown examples', () => { }), ); + let reader: UrlReader; + let mockContext: ActionContext<{ + confluenceUrls: string[]; + repoUrl: string; + }>; + const logger = getVoidLogger(); jest.spyOn(logger, 'info'); const mockTmpDir = os.tmpdir(); - const mockContext = { - workspacePath: '/tmp', - logger, - logStream: new PassThrough(), - output: jest.fn(), - createTemporaryDirectory: jest.fn().mockResolvedValue(mockTmpDir), - }; - - const reader: UrlReader = { - readUrl: jest.fn(), - readTree: jest.fn().mockResolvedValue({ - dir: jest.fn(), - }), - search: jest.fn(), - }; - mockFs({ [`${mockTmpDir}/src/docs`]: {} }); - beforeEach(() => { - jest.resetAllMocks(); + reader = { + readUrl: jest.fn(), + readTree: jest.fn().mockResolvedValue({ + dir: jest.fn(), + }), + search: jest.fn(), + }; + mockContext = { + input: yaml.parse(examples[0].example).steps[0].input, + workspacePath: '/tmp', + logger, + logStream: new PassThrough(), + output: jest.fn(), + createTemporaryDirectory: jest.fn().mockResolvedValue(mockTmpDir), + }; + mockFs({ [`${mockTmpDir}/src/docs`]: {} }); }); afterEach(() => { jest.clearAllMocks(); @@ -160,13 +149,10 @@ describe('confluence:transform:markdown examples', () => { const action = createConfluenceToMarkdownAction(options); - await action.handler({ - ...mockContext, - input: yaml.parse(examples[0].example).steps[0].input, - }); + await action.handler(mockContext); expect(logger.info).toHaveBeenCalledWith( - `Fetching the mkdocs.yml catalog from https://notreal.github.com/space/backstage/mkdocs.yml`, + `Fetching the mkdocs.yml catalog from https://github.com/organization-name/repo-name/blob/main/mkdocs.yml`, ); expect(logger.info).toHaveBeenCalledTimes(5); expect(createWriteStream).toHaveBeenCalledTimes(1); diff --git a/plugins/scaffolder-backend-module-confluence-to-markdown/src/actions/confluence/confluenceToMarkdown.examples.ts b/plugins/scaffolder-backend-module-confluence-to-markdown/src/actions/confluence/confluenceToMarkdown.examples.ts index 29249d2dc3..e5d10644a6 100644 --- a/plugins/scaffolder-backend-module-confluence-to-markdown/src/actions/confluence/confluenceToMarkdown.examples.ts +++ b/plugins/scaffolder-backend-module-confluence-to-markdown/src/actions/confluence/confluenceToMarkdown.examples.ts @@ -30,8 +30,6 @@ export const examples: TemplateExample[] = [ input: { confluenceUrls: [ 'https://confluence.example.com/display/SPACEKEY/Page+Title', - 'https://confluence.example.com/prefix/display/PREFIXSPACEKEY/Prefix+Page+Title', - 'https://example.atlassian.net/wiki/spaces/CLOUDSPACEKEY/pages/1234567/Cloud+Page+Title', ], repoUrl: 'https://github.com/organization-name/repo-name/blob/main/mkdocs.yml', From 41a26248c91c883bfd8f581dddc8abca9f2a3981 Mon Sep 17 00:00:00 2001 From: Tim Hansen Date: Mon, 14 Aug 2023 11:36:35 -0600 Subject: [PATCH 290/372] Add support for material-ui overrides in explore Signed-off-by: Tim Hansen --- .changeset/few-ducks-bake.md | 5 + .../GroupsExplorerContent/GroupsDiagram.tsx | 103 +++++++++--------- .../GroupsExplorerContent.tsx | 15 ++- .../src/components/ToolCard/ToolCard.tsx | 45 ++++---- .../ToolSearchResultListItem.tsx | 21 ++-- 5 files changed, 105 insertions(+), 84 deletions(-) create mode 100644 .changeset/few-ducks-bake.md diff --git a/.changeset/few-ducks-bake.md b/.changeset/few-ducks-bake.md new file mode 100644 index 0000000000..b9ce6941c3 --- /dev/null +++ b/.changeset/few-ducks-bake.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-explore': patch +--- + +Support `material-ui` overrides in plugin-explore components diff --git a/plugins/explore/src/components/GroupsExplorerContent/GroupsDiagram.tsx b/plugins/explore/src/components/GroupsExplorerContent/GroupsDiagram.tsx index 127bd193bf..2c8f6f6a6e 100644 --- a/plugins/explore/src/components/GroupsExplorerContent/GroupsDiagram.tsx +++ b/plugins/explore/src/components/GroupsExplorerContent/GroupsDiagram.tsx @@ -41,57 +41,62 @@ import classNames from 'classnames'; import React from 'react'; import useAsync from 'react-use/lib/useAsync'; -const useStyles = makeStyles((theme: BackstageTheme) => ({ - graph: { - minHeight: '100%', - flex: 1, - }, - graphWrapper: { - display: 'flex', - height: '100%', - }, - organizationNode: { - fill: theme.palette.secondary.light, - stroke: theme.palette.secondary.light, - }, - groupNode: { - fill: theme.palette.primary.light, - stroke: theme.palette.primary.light, - }, - centeredContent: { - padding: theme.spacing(1), - height: '100%', - display: 'flex', - alignItems: 'center', - justifyContent: 'center', - color: theme.palette.common.black, - }, - legend: { - position: 'absolute', - bottom: 0, - right: 0, - padding: theme.spacing(1), - '& .icon': { - verticalAlign: 'bottom', +const useStyles = makeStyles( + (theme: BackstageTheme) => ({ + graph: { + minHeight: '100%', + flex: 1, }, + graphWrapper: { + display: 'flex', + height: '100%', + }, + organizationNode: { + fill: theme.palette.secondary.light, + stroke: theme.palette.secondary.light, + }, + groupNode: { + fill: theme.palette.primary.light, + stroke: theme.palette.primary.light, + }, + centeredContent: { + padding: theme.spacing(1), + height: '100%', + display: 'flex', + alignItems: 'center', + justifyContent: 'center', + color: theme.palette.common.black, + }, + legend: { + position: 'absolute', + bottom: 0, + right: 0, + padding: theme.spacing(1), + '& .icon': { + verticalAlign: 'bottom', + }, + }, + textOrganization: { + color: theme.palette.secondary.contrastText, + }, + textGroup: { + color: theme.palette.primary.contrastText, + }, + textWrapper: { + display: '-webkit-box', + WebkitBoxOrient: 'vertical', + WebkitLineClamp: 2, + overflow: 'hidden', + textOverflow: 'ellipsis', + textAlign: 'center', + fontWeight: 'bold', + fontSize: '20px', + }, + }), + { + name: 'ExploreGroupsDiagram', }, - textOrganization: { - color: theme.palette.secondary.contrastText, - }, - textGroup: { - color: theme.palette.primary.contrastText, - }, - textWrapper: { - display: '-webkit-box', - WebkitBoxOrient: 'vertical', - WebkitLineClamp: 2, - overflow: 'hidden', - textOverflow: 'ellipsis', - textAlign: 'center', - fontWeight: 'bold', - fontSize: '20px', - }, -})); +); function RenderNode(props: DependencyGraphTypes.RenderNodeProps) { const nodeWidth = 180; diff --git a/plugins/explore/src/components/GroupsExplorerContent/GroupsExplorerContent.tsx b/plugins/explore/src/components/GroupsExplorerContent/GroupsExplorerContent.tsx index 62c4b093c0..61757a35b6 100644 --- a/plugins/explore/src/components/GroupsExplorerContent/GroupsExplorerContent.tsx +++ b/plugins/explore/src/components/GroupsExplorerContent/GroupsExplorerContent.tsx @@ -23,13 +23,16 @@ import { } from '@backstage/core-components'; import { makeStyles } from '@material-ui/core/styles'; -const useStyles = makeStyles({ - root: { - height: '100%', - maxHeight: '100%', - minHeight: 0, +const useStyles = makeStyles( + { + root: { + height: '100%', + maxHeight: '100%', + minHeight: 0, + }, }, -}); + { name: 'ExploreGroupsContent' }, +); export const GroupsExplorerContent = (props: { title?: string }) => { const classes = useStyles(); diff --git a/plugins/explore/src/components/ToolCard/ToolCard.tsx b/plugins/explore/src/components/ToolCard/ToolCard.tsx index a39806dceb..c2d9079f8f 100644 --- a/plugins/explore/src/components/ToolCard/ToolCard.tsx +++ b/plugins/explore/src/components/ToolCard/ToolCard.tsx @@ -32,27 +32,32 @@ import React from 'react'; // TODO: Align styling between Domain and ToolCard -const useStyles = makeStyles(theme => ({ - media: { - height: 128, +const useStyles = makeStyles( + theme => ({ + media: { + height: 128, + }, + mediaContain: { + backgroundSize: 'contain', + }, + lifecycle: { + lineHeight: '0.8em', + color: theme.palette.common.white, + }, + ga: { + backgroundColor: theme.palette.status.ok, + }, + alpha: { + backgroundColor: theme.palette.status.error, + }, + beta: { + backgroundColor: theme.palette.status.warning, + }, + }), + { + name: 'ExploreToolCard', }, - mediaContain: { - backgroundSize: 'contain', - }, - lifecycle: { - lineHeight: '0.8em', - color: theme.palette.common.white, - }, - ga: { - backgroundColor: theme.palette.status.ok, - }, - alpha: { - backgroundColor: theme.palette.status.error, - }, - beta: { - backgroundColor: theme.palette.status.warning, - }, -})); +); type Props = { card: ExploreTool; diff --git a/plugins/explore/src/components/ToolSearchResultListItem/ToolSearchResultListItem.tsx b/plugins/explore/src/components/ToolSearchResultListItem/ToolSearchResultListItem.tsx index 1aad122ee6..cb99f1c125 100644 --- a/plugins/explore/src/components/ToolSearchResultListItem/ToolSearchResultListItem.tsx +++ b/plugins/explore/src/components/ToolSearchResultListItem/ToolSearchResultListItem.tsx @@ -29,16 +29,19 @@ import { } from '@backstage/plugin-search-common'; import { HighlightedSearchResultText } from '@backstage/plugin-search-react'; -const useStyles = makeStyles({ - flexContainer: { - flexWrap: 'wrap', +const useStyles = makeStyles( + { + flexContainer: { + flexWrap: 'wrap', + }, + itemText: { + width: '100%', + wordBreak: 'break-all', + marginBottom: '1rem', + }, }, - itemText: { - width: '100%', - wordBreak: 'break-all', - marginBottom: '1rem', - }, -}); + { name: 'ExploreToolSearchResultListItem' }, +); /** * Props for {@link ToolSearchResultListItem}. From 9fb4c0d65de8c08f60d349398805122991921f0b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fredrik=20Adel=C3=B6w?= Date: Mon, 14 Aug 2023 15:49:10 +0200 Subject: [PATCH 291/372] add more info to the readme of the catalog collator MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Fredrik Adelöw --- .../search-backend-module-catalog/README.md | 57 +++++++++++++++---- 1 file changed, 46 insertions(+), 11 deletions(-) diff --git a/plugins/search-backend-module-catalog/README.md b/plugins/search-backend-module-catalog/README.md index b5960e2789..9deeccb910 100644 --- a/plugins/search-backend-module-catalog/README.md +++ b/plugins/search-backend-module-catalog/README.md @@ -2,11 +2,18 @@ > DISCLAIMER: The new backend system is in alpha, and so are the search backend module support for the new backend system. We don't recommend you to migrate your backend installations to the new system yet. But if you want to experiment, you can find getting started guides below. -This package exports catalog backend modules responsible for extending search. +This package exports a module that extends the search backend to also indexing the entities of your catalog. -## Example +## Installation -### Use default schedule +Add the module package as a dependency: + +```bash +# From your Backstage root directory +yarn add --cwd packages/backend @backstage/plugin-search-backend-module-catalog +``` + +Add the collator to your backend instance, along with the search plugin itself: ```tsx // packages/backend-next/src/index.ts @@ -20,22 +27,50 @@ backend.add(searchModuleCatalogCollator()); backend.start(); ``` -### Use custom schedule +You may also want to add configuration parameters to your app-config, for example for controlling the scheduled indexing interval. These parameters should be placed under the `search.collators.catalog` key. See [the config definition file](https://github.com/backstage/backstage/blob/master/plugins/search-backend-module-catalog/config.d.ts) for more details. + +## Advanced Customizations + +This module also has an extension point, which lets you inject advanced customizations. Here's an example of how to leverage that extension point to tweak the transformer used for building the search indexer documents: ```tsx // packages/backend-next/src/index.ts import { createBackend } from '@backstage/backend-defaults'; +import { createBackendModule } from '@backstage/backend-plugin-api'; import { searchPlugin } from '@backstage/plugin-search-backend/alpha'; -import { searchModuleCatalogCollator } from '@backstage/plugin-search-backend-module-catalog/alpha'; +import { CatalogCollatorEntityTransformer } from '@backstage/plugin-search-backend-module-catalog'; +import { + searchModuleCatalogCollator, + catalogCollatorExtensionPoint, +} from '@backstage/plugin-search-backend-module-catalog/alpha'; -const schedule = { - frequency: { minutes: 10 }, - timeout: { minutes: 15 }, - initialDelay: { seconds: 3 }, -}; +const customTransformer: CatalogCollatorEntityTransformer = entity => ({ + title: entity.metadata.title || entity.metadata.name, + text: entity.metadata.description || '', + componentType: entity.spec?.type?.toString() || 'other', + type: entity.spec?.type?.toString() || 'other', + namespace: entity.metadata.namespace || 'default', + kind: entity.kind, + lifecycle: (entity.spec?.lifecycle as string) || '', + owner: (entity.spec?.owner as string) || '', +}); const backend = createBackend(); backend.add(searchPlugin()); -backend.add(searchModuleCatalogCollator({ schedule })); +backend.add(searchModuleCatalogCollator()); +backend.add( + createBackendModule({ + pluginId: 'search', + moduleId: 'myCatalogCollatorOptions', + register(reg) { + reg.registerInit({ + deps: { collator: catalogCollatorExtensionPoint }, + init({ collator }) { + collator.setEntityTransformer(customTransformer); + }, + }); + }, + })(), +); backend.start(); ``` From 76b885222238317b9e086c6c38fa96be7e042441 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Tue, 15 Aug 2023 11:16:55 +0200 Subject: [PATCH 292/372] Update packages/repo-tools/src/commands/generate-catalog-info/generate-catalog-info.ts Signed-off-by: Patrik Oldsberg --- .../src/commands/generate-catalog-info/generate-catalog-info.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/repo-tools/src/commands/generate-catalog-info/generate-catalog-info.ts b/packages/repo-tools/src/commands/generate-catalog-info/generate-catalog-info.ts index 0ad3ab690a..08f73898c8 100644 --- a/packages/repo-tools/src/commands/generate-catalog-info/generate-catalog-info.ts +++ b/packages/repo-tools/src/commands/generate-catalog-info/generate-catalog-info.ts @@ -71,7 +71,7 @@ export default async (opts: CreateFixPackageInfoYamlsOptions) => { throw e; } - fixCatalogInfoYaml({ + await fixCatalogInfoYaml({ yamlPath: infoYamlPath, packageJson, codeowners, From 46c9a798e41d9472824137e415d7c3a453d432e5 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Tue, 15 Aug 2023 13:31:52 +0200 Subject: [PATCH 293/372] update app-configs to use proxy.endpoints Signed-off-by: Patrik Oldsberg --- .changeset/hip-experts-listen.md | 5 + .../uffizzi.production.app-config.yaml | 111 +++++++++--------- .../templates/default-app/app-config.yaml.hbs | 7 +- 3 files changed, 65 insertions(+), 58 deletions(-) create mode 100644 .changeset/hip-experts-listen.md diff --git a/.changeset/hip-experts-listen.md b/.changeset/hip-experts-listen.md new file mode 100644 index 0000000000..9abf791c21 --- /dev/null +++ b/.changeset/hip-experts-listen.md @@ -0,0 +1,5 @@ +--- +'@backstage/create-app': patch +--- + +Updated the `app-config.yaml` template to use `proxy.endpoints`. diff --git a/.github/uffizzi/uffizzi.production.app-config.yaml b/.github/uffizzi/uffizzi.production.app-config.yaml index 77b093e024..4f64e5ffcb 100644 --- a/.github/uffizzi/uffizzi.production.app-config.yaml +++ b/.github/uffizzi/uffizzi.production.app-config.yaml @@ -56,72 +56,73 @@ catalog: - allow: [Template] proxy: - '/circleci/api': - target: https://circleci.com/api/v1.1 - headers: - Circle-Token: ${CIRCLECI_AUTH_TOKEN} + endpoints: + '/circleci/api': + target: https://circleci.com/api/v1.1 + headers: + Circle-Token: ${CIRCLECI_AUTH_TOKEN} - '/jenkins/api': - target: http://localhost:8080 - headers: - Authorization: ${JENKINS_BASIC_AUTH_HEADER} + '/jenkins/api': + target: http://localhost:8080 + headers: + Authorization: ${JENKINS_BASIC_AUTH_HEADER} - '/travisci/api': - target: https://api.travis-ci.com - changeOrigin: true - headers: - Authorization: ${TRAVISCI_AUTH_TOKEN} - travis-api-version: '3' + '/travisci/api': + target: https://api.travis-ci.com + changeOrigin: true + headers: + Authorization: ${TRAVISCI_AUTH_TOKEN} + travis-api-version: '3' - '/newrelic/apm/api': - target: https://api.newrelic.com/v2 - headers: - X-Api-Key: ${NEW_RELIC_REST_API_KEY} + '/newrelic/apm/api': + target: https://api.newrelic.com/v2 + headers: + X-Api-Key: ${NEW_RELIC_REST_API_KEY} - '/newrelic/api': - target: https://api.newrelic.com - headers: - X-Api-Key: ${NEW_RELIC_USER_KEY} + '/newrelic/api': + target: https://api.newrelic.com + headers: + X-Api-Key: ${NEW_RELIC_USER_KEY} - '/pagerduty': - target: https://api.pagerduty.com - headers: - Authorization: Token token=${PAGERDUTY_TOKEN} + '/pagerduty': + target: https://api.pagerduty.com + headers: + Authorization: Token token=${PAGERDUTY_TOKEN} - '/buildkite/api': - target: https://api.buildkite.com/v2/ - headers: - Authorization: ${BUILDKITE_TOKEN} + '/buildkite/api': + target: https://api.buildkite.com/v2/ + headers: + Authorization: ${BUILDKITE_TOKEN} - '/sentry/api': - target: https://sentry.io/api/ - allowedMethods: ['GET'] - headers: - Authorization: ${SENTRY_TOKEN} + '/sentry/api': + target: https://sentry.io/api/ + allowedMethods: ['GET'] + headers: + Authorization: ${SENTRY_TOKEN} - '/ilert': - target: https://api.ilert.com - allowedMethods: ['GET', 'POST', 'PUT'] - allowedHeaders: ['Authorization'] - headers: - Authorization: ${ILERT_AUTH_HEADER} + '/ilert': + target: https://api.ilert.com + allowedMethods: ['GET', 'POST', 'PUT'] + allowedHeaders: ['Authorization'] + headers: + Authorization: ${ILERT_AUTH_HEADER} - '/airflow': - target: https://your.airflow.instance.com/api/v1 - headers: - Authorization: ${AIRFLOW_BASIC_AUTH_HEADER} + '/airflow': + target: https://your.airflow.instance.com/api/v1 + headers: + Authorization: ${AIRFLOW_BASIC_AUTH_HEADER} - '/gocd': - target: https://your.gocd.instance.com/go/api - allowedMethods: ['GET'] - allowedHeaders: ['Authorization'] - headers: - Authorization: Basic ${GOCD_AUTH_CREDENTIALS} + '/gocd': + target: https://your.gocd.instance.com/go/api + allowedMethods: ['GET'] + allowedHeaders: ['Authorization'] + headers: + Authorization: Basic ${GOCD_AUTH_CREDENTIALS} - '/dynatrace': - target: https://your.dynatrace.instance.com/api/v2 - headers: - Authorization: 'Api-Token ${DYNATRACE_ACCESS_TOKEN}' + '/dynatrace': + target: https://your.dynatrace.instance.com/api/v2 + headers: + Authorization: 'Api-Token ${DYNATRACE_ACCESS_TOKEN}' techdocs: builder: 'local' # Alternatives - 'external' diff --git a/packages/create-app/templates/default-app/app-config.yaml.hbs b/packages/create-app/templates/default-app/app-config.yaml.hbs index 194549f079..08d2abff59 100644 --- a/packages/create-app/templates/default-app/app-config.yaml.hbs +++ b/packages/create-app/templates/default-app/app-config.yaml.hbs @@ -46,9 +46,10 @@ integrations: proxy: ### Example for how to add a proxy endpoint for the frontend. ### A typical reason to do this is to handle HTTPS and CORS for internal services. - # '/test': - # target: 'https://example.com' - # changeOrigin: true + # endpoints: + # '/test': + # target: 'https://example.com' + # changeOrigin: true # Reference documentation http://backstage.io/docs/features/techdocs/configuration # Note: After experimenting with basic setup, use CI/CD to generate docs From 4dd208cdbe91167537dec2716e0583a8cdf9bb25 Mon Sep 17 00:00:00 2001 From: Ben Lambert Date: Tue, 15 Aug 2023 13:58:28 +0200 Subject: [PATCH 294/372] Remove holiday message Signed-off-by: Ben Lambert --- README.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/README.md b/README.md index 9c8fbec79b..ff72c41c87 100644 --- a/README.md +++ b/README.md @@ -13,8 +13,6 @@ [![OpenSSF Best Practices](https://bestpractices.coreinfrastructure.org/projects/7678/badge)](https://bestpractices.coreinfrastructure.org/projects/7678) [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/backstage/backstage/badge)](https://securityscorecards.dev/viewer/?uri=github.com/backstage/backstage) -> 🏖️ The week beginning the 26th of June, some of the maintainers will be taking a well earned Summer Holiday break. We will be slower to respond to issues and PRs during this time. Releases will continue to be shipped weekly. Normal service will resume on the 24th of July. 🏝️ - ## What is Backstage? [Backstage](https://backstage.io/) is an open platform for building developer portals. Powered by a centralized software catalog, Backstage restores order to your microservices and infrastructure and enables your product teams to ship high-quality code quickly without compromising autonomy. From 7bcde2fff4d15fd6b03a6307d6b7d295b231c108 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fredrik=20Adel=C3=B6w?= Date: Tue, 15 Aug 2023 11:12:04 +0200 Subject: [PATCH 295/372] more docs updates for the search modules MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Fredrik Adelöw --- .../search-backend-module-explore/README.md | 39 +++++++------------ .../search-backend-module-explore/config.d.ts | 6 +++ .../search-backend-module-techdocs/README.md | 35 ++++++----------- .../config.d.ts | 23 +++++++++++ 4 files changed, 55 insertions(+), 48 deletions(-) diff --git a/plugins/search-backend-module-explore/README.md b/plugins/search-backend-module-explore/README.md index e775cf42b6..cf2a01b9f0 100644 --- a/plugins/search-backend-module-explore/README.md +++ b/plugins/search-backend-module-explore/README.md @@ -2,14 +2,21 @@ > DISCLAIMER: The new backend system is in alpha, and so are the search backend module support for the new backend system. We don't recommend you to migrate your backend installations to the new system yet. But if you want to experiment, you can find getting started guides below. -This package exports explore backend modules responsible for extending search. +This package exports a module that extends the search backend to also indexing the tools exposed by the [`explore` service](https://github.com/backstage/backstage/tree/master/plugins/explore-backend). -## Example +## Installation -### Use default schedule +Add the module package as a dependency: + +```bash +# From your Backstage root directory +yarn add --cwd packages/backend @backstage/plugin-search-backend-module-explore +``` + +Add the collator to your backend instance, along with the search plugin itself: ```tsx -// packages/backend-next/src/index.ts +// packages/backend/src/index.ts import { createBackend } from '@backstage/backend-defaults'; import { searchPlugin } from '@backstage/plugin-search-backend/alpha'; import { searchModuleExploreCollator } from '@backstage/plugin-search-backend-module-explore/alpha'; @@ -20,29 +27,11 @@ backend.add(searchModuleExploreCollator()); backend.start(); ``` -### Use custom schedule +You may also want to add configuration parameters to your app-config, for example for controlling the scheduled indexing interval. These parameters should be placed under the `search.collators.explore` key. See [the config definition file](https://github.com/backstage/backstage/blob/master/plugins/search-backend-module-explore/config.d.ts) for more details. -```tsx -// packages/backend-next/src/index.ts -import { createBackend } from '@backstage/backend-defaults'; -import { searchPlugin } from '@backstage/plugin-search-backend/alpha'; -import { searchModuleExploreCollator } from '@backstage/plugin-search-backend-module-explore/alpha'; +## Using Auth Middleware -const schedule = { - frequency: { minutes: 10 }, - timeout: { minutes: 15 }, - initialDelay: { seconds: 3 }, -}; - -const backend = createBackend(); -backend.add(searchPlugin()); -backend.add(searchModuleExploreCollator({ schedule })); -backend.start(); -``` - -### Using Auth Middleware - -If your Backstage instance uses service-to-service authentication you can pass an optional `tokenManager` to the collator factory. This will ensure that the collator makes authenticated requests to the explore backend. +If your Backstage instance uses service-to-service authentication, the collator will need to have access to a `tokenManager`. This is automatically injected by the collator module when using the new backend system. But if you are using the old backend system, you will want to add it manually to ensure that the collator makes authenticated requests to the explore backend. ```tsx indexBuilder.addCollator({ diff --git a/plugins/search-backend-module-explore/config.d.ts b/plugins/search-backend-module-explore/config.d.ts index 4401f7a8bf..73ff015f20 100644 --- a/plugins/search-backend-module-explore/config.d.ts +++ b/plugins/search-backend-module-explore/config.d.ts @@ -19,7 +19,13 @@ import { TaskScheduleDefinitionConfig } from '@backstage/backend-tasks'; export interface Config { search?: { collators?: { + /** + * Configuration options for `@backstage/plugin-search-backend-module-explore` + */ explore?: { + /** + * The schedule for how often to run the collation job. + */ schedule?: TaskScheduleDefinitionConfig; }; }; diff --git a/plugins/search-backend-module-techdocs/README.md b/plugins/search-backend-module-techdocs/README.md index 5de310466b..9ffdcb7f55 100644 --- a/plugins/search-backend-module-techdocs/README.md +++ b/plugins/search-backend-module-techdocs/README.md @@ -2,14 +2,21 @@ > DISCLAIMER: The new backend system is in alpha, and so are the search backend module support for the new backend system. We don't recommend you to migrate your backend installations to the new system yet. But if you want to experiment, you can find getting started guides below. -This package exports techdocs backend modules responsible for extending search. +This package exports a module that extends the search backend to also index techdocs. -## Example +## Installation -### Use default schedule +Add the module package as a dependency: + +```bash +# From your Backstage root directory +yarn add --cwd packages/backend @backstage/plugin-search-backend-module-techdocs +``` + +Add the collator to your backend instance, along with the search plugin itself: ```tsx -// packages/backend-next/src/index.ts +// packages/backend/src/index.ts import { createBackend } from '@backstage/backend-defaults'; import { searchPlugin } from '@backstage/plugin-search-backend/alpha'; import { searchModuleTechDocsCollator } from '@backstage/plugin-search-backend-module-techdocs/alpha'; @@ -20,22 +27,4 @@ backend.add(searchModuleTechDocsCollator()); backend.start(); ``` -### Use custom schedule - -```tsx -// packages/backend-next/src/index.ts -import { createBackend } from '@backstage/backend-defaults'; -import { searchPlugin } from '@backstage/plugin-search-backend/alpha'; -import { searchModuleTechDocsCollator } from '@backstage/plugin-search-backend-module-techdocs/alpha'; - -const schedule = { - frequency: { minutes: 10 }, - timeout: { minutes: 15 }, - initialDelay: { seconds: 3 }, -}; - -const backend = createBackend(); -backend.add(searchPlugin()); -backend.add(searchModuleTechDocsCollator({ schedule })); -backend.start(); -``` +You may also want to add configuration parameters to your app-config, for example for controlling the scheduled indexing interval. These parameters should be placed under the `search.collators.techdocs` key. See [the config definition file](https://github.com/backstage/backstage/blob/master/plugins/search-backend-module-techdocs/config.d.ts) for more details. diff --git a/plugins/search-backend-module-techdocs/config.d.ts b/plugins/search-backend-module-techdocs/config.d.ts index 80e47e3254..05e4d5d6b8 100644 --- a/plugins/search-backend-module-techdocs/config.d.ts +++ b/plugins/search-backend-module-techdocs/config.d.ts @@ -19,10 +19,33 @@ import { TaskScheduleDefinitionConfig } from '@backstage/backend-tasks'; export interface Config { search?: { collators?: { + /** + * Configuration options for `@backstage/plugin-search-backend-module-techdocs` + */ techdocs?: { + /** + * The schedule for how often to run the collation job. + */ schedule?: TaskScheduleDefinitionConfig; + /** + * A templating string with placeholders, to form the final location of + * the entity. + * + * @defaultValue '/docs/:namespace/:kind/:name/:path' + */ locationTemplate?: string; + /** + * An abstract value that controls the concurrency level of the + * collation process. Increasing this value will both increase the + * number of entities fetched at a time from the catalog, as well as how + * many things are being processed concurrently. + * + * @defaultValue 10 + */ parallelismLimit?: number; + /** + * @defaultValue false + */ legacyPathCasing?: boolean; }; }; From 51987dbdaf876cd90222311f89c15ca527ab6be7 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Tue, 15 Aug 2023 10:40:11 +0200 Subject: [PATCH 296/372] backend-plugin-api: remove plugin and module options Signed-off-by: Patrik Oldsberg --- .changeset/red-ghosts-train.md | 5 + packages/backend-plugin-api/api-report.md | 12 +- .../src/wiring/factories.test.ts | 151 ++---------------- .../src/wiring/factories.ts | 37 ++--- .../backend-plugin-api/src/wiring/types.ts | 6 +- 5 files changed, 37 insertions(+), 174 deletions(-) create mode 100644 .changeset/red-ghosts-train.md diff --git a/.changeset/red-ghosts-train.md b/.changeset/red-ghosts-train.md new file mode 100644 index 0000000000..daa6692820 --- /dev/null +++ b/.changeset/red-ghosts-train.md @@ -0,0 +1,5 @@ +--- +'@backstage/backend-plugin-api': minor +--- + +**BREAKING**: Removed the ability to define options for plugins and modules. Existing options should be migrated to instead use either static configuration or extension points. diff --git a/packages/backend-plugin-api/api-report.md b/packages/backend-plugin-api/api-report.md index 9fa2149e43..0789168926 100644 --- a/packages/backend-plugin-api/api-report.md +++ b/packages/backend-plugin-api/api-report.md @@ -119,14 +119,14 @@ export namespace coreServices { } // @public -export function createBackendModule( - config: BackendModuleConfig | ((...params: TOptions) => BackendModuleConfig), -): (...params: TOptions) => BackendFeature; +export function createBackendModule( + config: BackendModuleConfig, +): () => BackendFeature; // @public -export function createBackendPlugin( - config: BackendPluginConfig | ((...params: TOptions) => BackendPluginConfig), -): (...params: TOptions) => BackendFeature; +export function createBackendPlugin( + config: BackendPluginConfig, +): () => BackendFeature; // @public export function createExtensionPoint( diff --git a/packages/backend-plugin-api/src/wiring/factories.test.ts b/packages/backend-plugin-api/src/wiring/factories.test.ts index 17b0eed55f..1fd05a1605 100644 --- a/packages/backend-plugin-api/src/wiring/factories.test.ts +++ b/packages/backend-plugin-api/src/wiring/factories.test.ts @@ -33,22 +33,19 @@ describe('createExtensionPoint', () => { describe('createBackendPlugin', () => { it('should create a BackendPlugin', () => { - const plugin = createBackendPlugin((_options: { a: string }) => ({ + const plugin = createBackendPlugin({ pluginId: 'x', register(r) { r.registerInit({ deps: {}, async init() {} }); }, - })); + }); expect(plugin).toBeDefined(); - expect(plugin({ a: 'a' })).toBeDefined(); - expect(plugin({ a: 'a' })).toEqual({ + expect(plugin()).toEqual({ $$type: '@backstage/BackendFeature', version: 'v1', getRegistrations: expect.any(Function), }); - expect( - (plugin({ a: 'a' }) as InternalBackendFeature).getRegistrations(), - ).toEqual([ + expect((plugin() as InternalBackendFeature).getRegistrations()).toEqual([ { type: 'plugin', pluginId: 'x', @@ -60,91 +57,27 @@ describe('createBackendPlugin', () => { }, ]); // @ts-expect-error - expect(plugin()).toBeDefined(); - // @ts-expect-error - expect(plugin({ b: 'b' })).toBeDefined(); - }); - - it('should create plugins with optional options', () => { - const plugin = createBackendPlugin((_options?: { a: string }) => ({ - pluginId: 'x', - register() {}, - })); - expect(plugin).toBeDefined(); expect(plugin({ a: 'a' })).toBeDefined(); - expect(plugin()).toBeDefined(); - // @ts-expect-error - expect(plugin({ b: 'b' })).toBeDefined(); - }); - - it('should create plugins without options', () => { - const plugin = createBackendPlugin({ - pluginId: 'x', - register() {}, - }); - expect(plugin).toBeDefined(); - // @ts-expect-error - expect(plugin({ a: 'a' })).toBeDefined(); - // @ts-expect-error - expect(plugin({})).toBeDefined(); - }); - - it('should create a BackendPlugin with options as interface', () => { - interface TestOptions { - a: string; - } - const plugin = createBackendPlugin((_options: TestOptions) => ({ - pluginId: 'x', - register() {}, - })); - expect(plugin).toBeDefined(); - expect(plugin({ a: 'a' })).toBeDefined(); - expect(plugin({ a: 'a' })).toEqual({ - $$type: '@backstage/BackendFeature', - version: 'v1', - getRegistrations: expect.any(Function), - }); - // @ts-expect-error - expect(plugin()).toBeDefined(); - // @ts-expect-error - expect(plugin({ b: 'b' })).toBeDefined(); - }); - - it('should create plugins with optional options as interface', () => { - interface TestOptions { - a: string; - } - const plugin = createBackendPlugin((_options?: TestOptions) => ({ - pluginId: 'x', - register() {}, - })); - expect(plugin).toBeDefined(); - expect(plugin({ a: 'a' })).toBeDefined(); - expect(plugin()).toBeDefined(); - // @ts-expect-error - expect(plugin({ b: 'b' })).toBeDefined(); }); }); describe('createBackendModule', () => { it('should create a BackendModule', () => { - const mod = createBackendModule((_options: { a: string }) => ({ + const mod = createBackendModule({ pluginId: 'x', moduleId: 'y', register(r) { r.registerInit({ deps: {}, async init() {} }); }, - })); + }); expect(mod).toBeDefined(); - expect(mod({ a: 'a' })).toBeDefined(); - expect(mod({ a: 'a' })).toEqual({ + expect(mod()).toBeDefined(); + expect(mod()).toEqual({ $$type: '@backstage/BackendFeature', version: 'v1', getRegistrations: expect.any(Function), }); - expect( - (mod({ a: 'a' }) as InternalBackendFeature).getRegistrations(), - ).toEqual([ + expect((mod() as InternalBackendFeature).getRegistrations()).toEqual([ { type: 'module', pluginId: 'x', @@ -157,72 +90,6 @@ describe('createBackendModule', () => { }, ]); // @ts-expect-error - expect(mod()).toBeDefined(); - // @ts-expect-error - expect(mod({ b: 'b' })).toBeDefined(); - }); - - it('should create modules with optional options', () => { - const mod = createBackendModule((_options?: { a: string }) => ({ - pluginId: 'x', - moduleId: 'y', - register() {}, - })); - expect(mod).toBeDefined(); expect(mod({ a: 'a' })).toBeDefined(); - expect(mod()).toBeDefined(); - // @ts-expect-error - expect(mod({ b: 'b' })).toBeDefined(); - }); - - it('should create modules without options', () => { - const mod = createBackendModule({ - pluginId: 'x', - moduleId: 'y', - register() {}, - }); - expect(mod).toBeDefined(); - // @ts-expect-error - expect(mod({ a: 'a' })).toBeDefined(); - // @ts-expect-error - expect(mod({})).toBeDefined(); - }); - - it('should create a BackendModule as interface', () => { - interface TestOptions { - a: string; - } - const mod = createBackendModule((_options: TestOptions) => ({ - pluginId: 'x', - moduleId: 'y', - register() {}, - })); - expect(mod).toBeDefined(); - expect(mod({ a: 'a' })).toBeDefined(); - expect(mod({ a: 'a' })).toEqual({ - $$type: '@backstage/BackendFeature', - version: 'v1', - getRegistrations: expect.any(Function), - }); - // @ts-expect-error - expect(mod()).toBeDefined(); - // @ts-expect-error - expect(mod({ b: 'b' })).toBeDefined(); - }); - - it('should create modules with optional options as interface', () => { - interface TestOptions { - a: string; - } - const mod = createBackendModule((_options?: TestOptions) => ({ - pluginId: 'x', - moduleId: 'y', - register() {}, - })); - expect(mod).toBeDefined(); - expect(mod({ a: 'a' })).toBeDefined(); - expect(mod()).toBeDefined(); - // @ts-expect-error - expect(mod({ b: 'b' })).toBeDefined(); }); }); diff --git a/packages/backend-plugin-api/src/wiring/factories.ts b/packages/backend-plugin-api/src/wiring/factories.ts index c2ff1f84b9..af40256411 100644 --- a/packages/backend-plugin-api/src/wiring/factories.ts +++ b/packages/backend-plugin-api/src/wiring/factories.ts @@ -85,14 +85,10 @@ export interface BackendPluginConfig { * @see {@link https://backstage.io/docs/backend-system/architecture/plugins | The architecture of plugins} * @see {@link https://backstage.io/docs/backend-system/architecture/naming-patterns | Recommended naming patterns} */ -export function createBackendPlugin( - config: BackendPluginConfig | ((...params: TOptions) => BackendPluginConfig), -): (...params: TOptions) => BackendFeature { - const configCallback = typeof config === 'function' ? config : () => config; - - const factory: BackendFeatureFactory = (...options) => { - const c = configCallback(...options); - +export function createBackendPlugin( + config: BackendPluginConfig, +): () => BackendFeature { + const factory: BackendFeatureFactory = () => { let registrations: InternalBackendPluginRegistration[]; return { @@ -107,7 +103,7 @@ export function createBackendPlugin( let init: InternalBackendPluginRegistration['init'] | undefined = undefined; - c.register({ + config.register({ registerExtensionPoint(ext, impl) { if (init) { throw new Error( @@ -129,14 +125,14 @@ export function createBackendPlugin( if (!init) { throw new Error( - `registerInit was not called by register in ${c.pluginId}`, + `registerInit was not called by register in ${config.pluginId}`, ); } registrations = [ { type: 'plugin', - pluginId: c.pluginId, + pluginId: config.pluginId, extensionPoints, init, }, @@ -179,13 +175,10 @@ export interface BackendModuleConfig { * @see {@link https://backstage.io/docs/backend-system/architecture/modules | The architecture of modules} * @see {@link https://backstage.io/docs/backend-system/architecture/naming-patterns | Recommended naming patterns} */ -export function createBackendModule( - config: BackendModuleConfig | ((...params: TOptions) => BackendModuleConfig), -): (...params: TOptions) => BackendFeature { - const configCallback = typeof config === 'function' ? config : () => config; - const factory: BackendFeatureFactory = (...options: TOptions) => { - const c = configCallback(...options); - +export function createBackendModule( + config: BackendModuleConfig, +): () => BackendFeature { + const factory: BackendFeatureFactory = () => { let registrations: InternalBackendModuleRegistration[]; return { @@ -200,7 +193,7 @@ export function createBackendModule( let init: InternalBackendModuleRegistration['init'] | undefined = undefined; - c.register({ + config.register({ registerExtensionPoint(ext, impl) { if (init) { throw new Error( @@ -222,15 +215,15 @@ export function createBackendModule( if (!init) { throw new Error( - `registerInit was not called by register in ${c.moduleId} module for ${c.pluginId}`, + `registerInit was not called by register in ${config.moduleId} module for ${config.pluginId}`, ); } registrations = [ { type: 'module', - pluginId: c.pluginId, - moduleId: c.moduleId, + pluginId: config.pluginId, + moduleId: config.moduleId, extensionPoints, init, }, diff --git a/packages/backend-plugin-api/src/wiring/types.ts b/packages/backend-plugin-api/src/wiring/types.ts index e2ed6ce387..d416ce7f9a 100644 --- a/packages/backend-plugin-api/src/wiring/types.ts +++ b/packages/backend-plugin-api/src/wiring/types.ts @@ -72,10 +72,8 @@ export interface BackendModuleRegistrationPoints { } /** @internal */ -export interface BackendFeatureFactory< - TOptions extends [options?: object] = [], -> { - (...options: TOptions): BackendFeature; +export interface BackendFeatureFactory { + (): BackendFeature; $$type: '@backstage/BackendFeatureFactory'; } From a6d816c9cce171bb480993ddcdf79579e9eee9ed Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Tue, 15 Aug 2023 10:48:28 +0200 Subject: [PATCH 297/372] permission-backend: fix backend plugin declaration Signed-off-by: Patrik Oldsberg --- .changeset/weak-apes-flow.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/weak-apes-flow.md diff --git a/.changeset/weak-apes-flow.md b/.changeset/weak-apes-flow.md new file mode 100644 index 0000000000..c5673d381a --- /dev/null +++ b/.changeset/weak-apes-flow.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-permission-backend': patch +--- + +Minor internal fix. From a4989552d828d229e420193ff3aab399e5aaa0cd Mon Sep 17 00:00:00 2001 From: tperehinets Date: Tue, 15 Aug 2023 16:51:56 +0300 Subject: [PATCH 298/372] Added description for scaffolder actions. Signed-off-by: tperehinets --- .changeset/empty-rings-type.md | 5 + .../builtin/publish/github.examples.test.ts | 156 ++++++++++++++++++ .../builtin/publish/github.examples.ts | 70 ++++++++ .../actions/builtin/publish/github.ts | 2 + .../builtin/publish/gitlab.examples.test.ts | 115 +++++++++++++ .../builtin/publish/gitlab.examples.ts | 71 ++++++++ .../actions/builtin/publish/gitlab.ts | 2 + 7 files changed, 421 insertions(+) create mode 100644 .changeset/empty-rings-type.md create mode 100644 plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/github.examples.test.ts create mode 100644 plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/github.examples.ts create mode 100644 plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/gitlab.examples.test.ts create mode 100644 plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/gitlab.examples.ts diff --git a/.changeset/empty-rings-type.md b/.changeset/empty-rings-type.md new file mode 100644 index 0000000000..2aa41054f9 --- /dev/null +++ b/.changeset/empty-rings-type.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-scaffolder-backend': patch +--- + +Add examples for `publish:github` and `publish:gitlab` scaffolder actions. diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/github.examples.test.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/github.examples.test.ts new file mode 100644 index 0000000000..72af71683b --- /dev/null +++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/github.examples.test.ts @@ -0,0 +1,156 @@ +/* + * Copyright 2021 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +jest.mock('../helpers'); + +import { TemplateAction } from '@backstage/plugin-scaffolder-node'; +import { getVoidLogger } from '@backstage/backend-common'; +import { ConfigReader } from '@backstage/config'; +import { + DefaultGithubCredentialsProvider, + GithubCredentialsProvider, + ScmIntegrations, +} from '@backstage/integration'; +import { when } from 'jest-when'; +import { PassThrough } from 'stream'; +import { + enableBranchProtectionOnDefaultRepoBranch, + entityRefToName, + initRepoAndPush, +} from '../helpers'; +import { createPublishGithubAction } from './github'; +import { examples } from './github.examples'; +import yaml from 'yaml'; + +const publicKey = '2Sg8iYjAxxmI2LvUXpJjkYrMxURPc8r+dB7TJyvvcCU='; + +const initRepoAndPushMocked = initRepoAndPush as jest.Mock< + Promise<{ commitHash: string }> +>; + +const mockOctokit = { + rest: { + users: { + getByUsername: jest.fn(), + }, + repos: { + addCollaborator: jest.fn(), + createInOrg: jest.fn(), + createForAuthenticatedUser: jest.fn(), + replaceAllTopics: jest.fn(), + }, + teams: { + getByName: jest.fn(), + addOrUpdateRepoPermissionsInOrg: jest.fn(), + }, + actions: { + createRepoVariable: jest.fn(), + createOrUpdateRepoSecret: jest.fn(), + getRepoPublicKey: jest.fn(), + }, + }, +}; +jest.mock('octokit', () => ({ + Octokit: class { + constructor() { + return mockOctokit; + } + }, +})); + +describe('publish:github', () => { + const config = new ConfigReader({ + integrations: { + github: [ + { host: 'github.com', token: 'tokenlols' }, + { host: 'ghe.github.com' }, + ], + }, + }); + + const { entityRefToName: realFamiliarizeEntityName } = + jest.requireActual('../helpers'); + const integrations = ScmIntegrations.fromConfig(config); + let githubCredentialsProvider: GithubCredentialsProvider; + let action: TemplateAction; + + const mockContext = { + input: { + repoUrl: 'github.com?repo=repo&owner=owner', + description: 'description', + repoVisibility: 'private' as const, + access: 'owner/blam', + }, + workspacePath: 'lol', + logger: getVoidLogger(), + logStream: new PassThrough(), + output: jest.fn(), + createTemporaryDirectory: jest.fn(), + }; + + beforeEach(() => { + initRepoAndPushMocked.mockResolvedValue({ + commitHash: '220f19cc36b551763d157f1b5e4a4b446165dbd6', + }); + githubCredentialsProvider = + DefaultGithubCredentialsProvider.fromIntegrations(integrations); + action = createPublishGithubAction({ + integrations, + config, + githubCredentialsProvider, + }); + + // restore real implmentation + (entityRefToName as jest.Mock).mockImplementation( + realFamiliarizeEntityName, + ); + mockOctokit.rest.actions.getRepoPublicKey.mockResolvedValue({ + data: { + key: publicKey, + key_id: 'keyid', + }, + }); + }); + + afterEach(jest.resetAllMocks); + + it('should call initRepoAndPush with the correct values', async () => { + mockOctokit.rest.users.getByUsername.mockResolvedValue({ + data: { type: 'User' }, + }); + + mockOctokit.rest.repos.createForAuthenticatedUser.mockResolvedValue({ + data: { + clone_url: 'https://github.com/clone/url.git', + html_url: 'https://github.com/html/url', + }, + }); + + await action.handler({ + ...mockContext, + input: yaml.parse(examples[0].example).steps[0].input, + }); + + expect(initRepoAndPush).toHaveBeenCalledWith({ + dir: mockContext.workspacePath, + remoteUrl: 'https://github.com/clone/url.git', + defaultBranch: 'master', + auth: { username: 'x-access-token', password: 'tokenlols' }, + logger: mockContext.logger, + commitMessage: 'initial commit', + gitAuthorInfo: {}, + }); + }); +}); diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/github.examples.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/github.examples.ts new file mode 100644 index 0000000000..65f2ccdaa3 --- /dev/null +++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/github.examples.ts @@ -0,0 +1,70 @@ +/* + * 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 { TemplateExample } from '@backstage/plugin-scaffolder-node'; +import yaml from 'yaml'; + +export const examples: TemplateExample[] = [ + { + description: + 'Initializes a git repository of contents in workspace and publish it to GitHub with default configuration.', + example: yaml.stringify({ + steps: [ + { + id: 'publish', + action: 'publish:github', + name: 'Publish to GitHub', + input: { + repoUrl: 'github.com?repo=repo&owner=owner', + }, + }, + ], + }), + }, + { + description: 'Add a description.', + example: yaml.stringify({ + steps: [ + { + id: 'publish', + action: 'publish:github', + name: 'Publish to GitHub', + input: { + repoUrl: 'github.com?repo=repo&owner=owner', + description: 'Initialize a git repository', + }, + }, + ], + }), + }, + { + description: 'Change visibility of the repository.', + example: yaml.stringify({ + steps: [ + { + id: 'publish', + action: 'publish:github', + name: 'Publish to GitHub', + input: { + repoUrl: 'github.com?repo=repo&owner=owner', + description: 'Initialize a git repository', + repoVisibility: 'public', + }, + }, + ], + }), + }, +]; diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/github.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/github.ts index 9336c38b63..e5b6071863 100644 --- a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/github.ts +++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/github.ts @@ -30,6 +30,7 @@ import { import * as inputProps from '../github/inputProperties'; import * as outputProps from '../github/outputProperties'; import { parseRepoUrl } from './util'; +import { examples } from './github.examples'; /** * Creates a new action that initializes a git repository of the content in the workspace @@ -111,6 +112,7 @@ export function createPublishGithubAction(options: { id: 'publish:github', description: 'Initializes a git repository of contents in workspace and publishes it to GitHub.', + examples, schema: { input: { type: 'object', diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/gitlab.examples.test.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/gitlab.examples.test.ts new file mode 100644 index 0000000000..5d58431c61 --- /dev/null +++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/gitlab.examples.test.ts @@ -0,0 +1,115 @@ +/* + * Copyright 2021 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import yaml from 'yaml'; + +jest.mock('../helpers', () => { + return { + initRepoAndPush: jest.fn().mockResolvedValue({ + commitHash: '220f19cc36b551763d157f1b5e4a4b446165dbd6', + }), + commitAndPushRepo: jest.fn().mockResolvedValue({ + commitHash: '220f19cc36b551763d157f1b5e4a4b446165dbd6', + }), + }; +}); + +import { createPublishGitlabAction } from './gitlab'; +import { ScmIntegrations } from '@backstage/integration'; +import { ConfigReader } from '@backstage/config'; +import { getVoidLogger } from '@backstage/backend-common'; +import { PassThrough } from 'stream'; +import { initRepoAndPush } from '../helpers'; +import { examples } from './gitlab.examples'; + +const mockGitlabClient = { + Namespaces: { + show: jest.fn(), + }, + Projects: { + create: jest.fn(), + }, + Users: { + current: jest.fn(), + }, + ProjectMembers: { + add: jest.fn(), + }, +}; +jest.mock('@gitbeaker/node', () => ({ + Gitlab: class { + constructor() { + return mockGitlabClient; + } + }, +})); + +describe('publish:gitlab', () => { + const config = new ConfigReader({ + integrations: { + gitlab: [ + { + host: 'gitlab.com', + token: 'tokenlols', + apiBaseUrl: 'https://api.gitlab.com', + }, + { + host: 'hosted.gitlab.com', + apiBaseUrl: 'https://api.hosted.gitlab.com', + }, + ], + }, + }); + + const integrations = ScmIntegrations.fromConfig(config); + const action = createPublishGitlabAction({ integrations, config }); + const mockContext = { + input: { + repoUrl: 'gitlab.com?repo=repo&owner=owner', + }, + workspacePath: 'lol', + logger: getVoidLogger(), + logStream: new PassThrough(), + output: jest.fn(), + createTemporaryDirectory: jest.fn(), + }; + + beforeEach(() => { + jest.resetAllMocks(); + }); + + it('should call initRepoAndPush with the correct values', async () => { + mockGitlabClient.Users.current.mockResolvedValue({ id: 12345 }); + mockGitlabClient.Namespaces.show.mockResolvedValue({ id: 1234 }); + mockGitlabClient.Projects.create.mockResolvedValue({ + http_url_to_repo: 'http://mockurl.git', + }); + + await action.handler({ + ...mockContext, + input: yaml.parse(examples[0].example).steps[0].input, + }); + + expect(initRepoAndPush).toHaveBeenCalledWith({ + dir: mockContext.workspacePath, + defaultBranch: 'master', + remoteUrl: 'http://mockurl.git', + auth: { username: 'oauth2', password: 'tokenlols' }, + logger: mockContext.logger, + commitMessage: 'initial commit', + gitAuthorInfo: {}, + }); + }); +}); diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/gitlab.examples.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/gitlab.examples.ts new file mode 100644 index 0000000000..ac259866e3 --- /dev/null +++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/gitlab.examples.ts @@ -0,0 +1,71 @@ +/* + * 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 { TemplateExample } from '@backstage/plugin-scaffolder-node'; +import yaml from 'yaml'; + +export const examples: TemplateExample[] = [ + { + description: + 'Initializes a git repository of the content in the workspace, and publishes it to GitLab.', + example: yaml.stringify({ + steps: [ + { + id: 'publish', + action: 'publish:gitlab', + name: 'Publish to GitLab', + input: { + repoUrl: 'gitlab.com?repo=project_name&owner=group_name', + }, + }, + ], + }), + }, + { + description: 'Add a description.', + example: yaml.stringify({ + steps: [ + { + id: 'publish', + action: 'publish:gitlab', + name: 'Publish to GitLab', + input: { + repoUrl: 'gitlab.com?repo=project_name&owner=group_name', + description: 'Initialize a git repository', + }, + }, + ], + }), + }, + { + description: + 'Sets the commit message on the repository. The default value is `initial commit`.', + example: yaml.stringify({ + steps: [ + { + id: 'publish', + action: 'publish:gitlab', + name: 'Publish to GitLab', + input: { + repoUrl: 'gitlab.com?repo=project_name&owner=group_name', + description: 'Initialize a git repository', + gitCommitMessage: 'Started a project.', + }, + }, + ], + }), + }, +]; diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/gitlab.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/gitlab.ts index 4045fd6958..dbab7b11b8 100644 --- a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/gitlab.ts +++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/gitlab.ts @@ -21,6 +21,7 @@ import { Gitlab } from '@gitbeaker/node'; import { initRepoAndPush } from '../helpers'; import { getRepoSourceDirectory, parseRepoUrl } from './util'; import { Config } from '@backstage/config'; +import { examples } from './gitlab.examples'; /** * Creates a new action that initializes a git repository of the content in the workspace @@ -49,6 +50,7 @@ export function createPublishGitlabAction(options: { id: 'publish:gitlab', description: 'Initializes a git repository of the content in the workspace, and publishes it to GitLab.', + examples, schema: { input: { type: 'object', From 3e4ccbb0a54d8ceb9b7155e26250b9414cca1d7b Mon Sep 17 00:00:00 2001 From: tperehinets Date: Tue, 15 Aug 2023 17:09:54 +0300 Subject: [PATCH 299/372] Deleted never used values Signed-off-by: tperehinets --- .../actions/builtin/publish/github.examples.test.ts | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/github.examples.test.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/github.examples.test.ts index 72af71683b..4d87ec97c4 100644 --- a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/github.examples.test.ts +++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/publish/github.examples.test.ts @@ -23,13 +23,8 @@ import { GithubCredentialsProvider, ScmIntegrations, } from '@backstage/integration'; -import { when } from 'jest-when'; import { PassThrough } from 'stream'; -import { - enableBranchProtectionOnDefaultRepoBranch, - entityRefToName, - initRepoAndPush, -} from '../helpers'; +import { entityRefToName, initRepoAndPush } from '../helpers'; import { createPublishGithubAction } from './github'; import { examples } from './github.examples'; import yaml from 'yaml'; From e07a4914f62186afbbb8a87bae6c0ad5eaf2a4d0 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Tue, 15 Aug 2023 16:05:13 +0200 Subject: [PATCH 300/372] scaffolder-backend: move more types to -node Signed-off-by: Patrik Oldsberg --- .changeset/honest-fireants-applaud.md | 17 +++ .changeset/little-peas-decide.md | 5 + .../src/lib/templating/SecureTemplater.ts | 20 ++- .../src/scaffolder/tasks/types.ts | 99 +++++--------- plugins/scaffolder-node/src/index.ts | 1 + plugins/scaffolder-node/src/tasks/index.ts | 13 +- plugins/scaffolder-node/src/tasks/types.ts | 124 ++++++++++++++++++ plugins/scaffolder-node/src/types.ts | 25 ++++ 8 files changed, 229 insertions(+), 75 deletions(-) create mode 100644 .changeset/honest-fireants-applaud.md create mode 100644 .changeset/little-peas-decide.md create mode 100644 plugins/scaffolder-node/src/types.ts diff --git a/.changeset/honest-fireants-applaud.md b/.changeset/honest-fireants-applaud.md new file mode 100644 index 0000000000..2fd29e493a --- /dev/null +++ b/.changeset/honest-fireants-applaud.md @@ -0,0 +1,17 @@ +--- +'@backstage/plugin-scaffolder-backend': patch +--- + +Deprecated the following type exports, which have been moved to `@backstage/plugin-scaffolder-node` instead: + +- `TemplateFilter` +- `TemplateGlobal` +- `TaskStatus` +- `TaskCompletionState` +- `SerializedTask` +- `TaskEventType` +- `SerializedTaskEvent` +- `TaskBrokerDispatchResult` +- `TaskBrokerDispatchOptions` +- `TaskContext` +- `TaskBroker` diff --git a/.changeset/little-peas-decide.md b/.changeset/little-peas-decide.md new file mode 100644 index 0000000000..3eb3d0cf9d --- /dev/null +++ b/.changeset/little-peas-decide.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-scaffolder-node': patch +--- + +Added several new types that were moved from `@backstage/plugin-scaffolder-backend`. diff --git a/plugins/scaffolder-backend/src/lib/templating/SecureTemplater.ts b/plugins/scaffolder-backend/src/lib/templating/SecureTemplater.ts index 488604e981..701863c7f6 100644 --- a/plugins/scaffolder-backend/src/lib/templating/SecureTemplater.ts +++ b/plugins/scaffolder-backend/src/lib/templating/SecureTemplater.ts @@ -16,6 +16,10 @@ import { Isolate } from 'isolated-vm'; import { resolvePackagePath } from '@backstage/backend-common'; +import { + TemplateFilter as _TemplateFilter, + TemplateGlobal as _TemplateGlobal, +} from '@backstage/plugin-scaffolder-node'; import fs from 'fs-extra'; import { JsonValue } from '@backstage/types'; @@ -86,13 +90,17 @@ const { render, renderCompat } = (() => { })(); `; -/** @public */ -export type TemplateFilter = (...args: JsonValue[]) => JsonValue | undefined; +/** + * @public + * @deprecated Import from `@backstage/plugin-scaffolder-node` instead. + */ +export type TemplateFilter = _TemplateFilter; -/** @public */ -export type TemplateGlobal = - | ((...args: JsonValue[]) => JsonValue | undefined) - | JsonValue; +/** + * @public + * @deprecated Import from `@backstage/plugin-scaffolder-node` instead. + */ +export type TemplateGlobal = _TemplateGlobal; export interface SecureTemplaterOptions { /* Enables jinja compatibility and the "jsonify" filter */ diff --git a/plugins/scaffolder-backend/src/scaffolder/tasks/types.ts b/plugins/scaffolder-backend/src/scaffolder/tasks/types.ts index 112276b9dd..1d925e5610 100644 --- a/plugins/scaffolder-backend/src/scaffolder/tasks/types.ts +++ b/plugins/scaffolder-backend/src/scaffolder/tasks/types.ts @@ -14,131 +14,94 @@ * limitations under the License. */ -import { JsonValue, JsonObject, Observable } from '@backstage/types'; +import { JsonValue, JsonObject } from '@backstage/types'; import { TaskSpec, TaskStep } from '@backstage/plugin-scaffolder-common'; import { TaskSecrets } from '@backstage/plugin-scaffolder-node'; -import { TemplateAction } from '@backstage/plugin-scaffolder-node'; +import { + TemplateAction, + TaskStatus as _TaskStatus, + TaskCompletionState as _TaskCompletionState, + SerializedTask as _SerializedTask, + TaskEventType as _TaskEventType, + SerializedTaskEvent as _SerializedTaskEvent, + TaskBrokerDispatchResult as _TaskBrokerDispatchResult, + TaskBrokerDispatchOptions as _TaskBrokerDispatchOptions, + TaskContext as _TaskContext, + TaskBroker as _TaskBroker, +} from '@backstage/plugin-scaffolder-node'; /** * The status of each step of the Task * * @public + * @deprecated Import from `@backstage/plugin-scaffolder-node` instead. */ -export type TaskStatus = - | 'cancelled' - | 'completed' - | 'failed' - | 'open' - | 'processing'; +export type TaskStatus = _TaskStatus; /** * The state of a completed task. * * @public + * @deprecated Import from `@backstage/plugin-scaffolder-node` instead. */ -export type TaskCompletionState = 'failed' | 'completed'; +export type TaskCompletionState = _TaskCompletionState; /** * SerializedTask * * @public + * @deprecated Import from `@backstage/plugin-scaffolder-node` instead. */ -export type SerializedTask = { - id: string; - spec: TaskSpec; - status: TaskStatus; - createdAt: string; - lastHeartbeatAt?: string; - createdBy?: string; - secrets?: TaskSecrets; -}; +export type SerializedTask = _SerializedTask; /** * TaskEventType * * @public + * @deprecated Import from `@backstage/plugin-scaffolder-node` instead. */ -export type TaskEventType = 'completion' | 'log' | 'cancelled'; +export type TaskEventType = _TaskEventType; /** * SerializedTaskEvent * * @public + * @deprecated Import from `@backstage/plugin-scaffolder-node` instead. */ -export type SerializedTaskEvent = { - id: number; - taskId: string; - body: JsonObject; - type: TaskEventType; - createdAt: string; -}; +export type SerializedTaskEvent = _SerializedTaskEvent; /** * The result of {@link TaskBroker.dispatch} * * @public + * @deprecated Import from `@backstage/plugin-scaffolder-node` instead. */ -export type TaskBrokerDispatchResult = { - taskId: string; -}; +export type TaskBrokerDispatchResult = _TaskBrokerDispatchResult; /** * The options passed to {@link TaskBroker.dispatch} * Currently a spec and optional secrets * * @public + * @deprecated Import from `@backstage/plugin-scaffolder-node` instead. */ -export type TaskBrokerDispatchOptions = { - spec: TaskSpec; - secrets?: TaskSecrets; - createdBy?: string; -}; +export type TaskBrokerDispatchOptions = _TaskBrokerDispatchOptions; /** * Task * * @public + * @deprecated Import from `@backstage/plugin-scaffolder-node` instead. */ -export interface TaskContext { - cancelSignal: AbortSignal; - spec: TaskSpec; - secrets?: TaskSecrets; - createdBy?: string; - done: boolean; - isDryRun?: boolean; - - complete(result: TaskCompletionState, metadata?: JsonObject): Promise; - - emitLog(message: string, logMetadata?: JsonObject): Promise; - - getWorkspaceName(): Promise; -} +export type TaskContext = _TaskContext; /** * TaskBroker * * @public + * @deprecated Import from `@backstage/plugin-scaffolder-node` instead. */ -export interface TaskBroker { - cancel?(taskId: string): Promise; - - claim(): Promise; - - dispatch( - options: TaskBrokerDispatchOptions, - ): Promise; - - vacuumTasks(options: { timeoutS: number }): Promise; - - event$(options: { - taskId: string; - after: number | undefined; - }): Observable<{ events: SerializedTaskEvent[] }>; - - get(taskId: string): Promise; - - list?(options?: { createdBy?: string }): Promise<{ tasks: SerializedTask[] }>; -} +export type TaskBroker = _TaskBroker; /** * TaskStoreEmitOptions diff --git a/plugins/scaffolder-node/src/index.ts b/plugins/scaffolder-node/src/index.ts index 2a7c06234e..5bf556232e 100644 --- a/plugins/scaffolder-node/src/index.ts +++ b/plugins/scaffolder-node/src/index.ts @@ -22,6 +22,7 @@ export * from './actions'; export * from './tasks'; +export type { TemplateFilter, TemplateGlobal } from './types'; export { scaffolderActionsExtensionPoint, type ScaffolderActionsExtensionPoint, diff --git a/plugins/scaffolder-node/src/tasks/index.ts b/plugins/scaffolder-node/src/tasks/index.ts index 0c1d0d813e..930de95237 100644 --- a/plugins/scaffolder-node/src/tasks/index.ts +++ b/plugins/scaffolder-node/src/tasks/index.ts @@ -14,4 +14,15 @@ * limitations under the License. */ -export { type TaskSecrets } from './types'; +export type { + TaskSecrets, + SerializedTask, + SerializedTaskEvent, + TaskBroker, + TaskBrokerDispatchOptions, + TaskBrokerDispatchResult, + TaskCompletionState, + TaskContext, + TaskEventType, + TaskStatus, +} from './types'; diff --git a/plugins/scaffolder-node/src/tasks/types.ts b/plugins/scaffolder-node/src/tasks/types.ts index c17b3cbde3..8c9cc29e31 100644 --- a/plugins/scaffolder-node/src/tasks/types.ts +++ b/plugins/scaffolder-node/src/tasks/types.ts @@ -14,6 +14,9 @@ * limitations under the License. */ +import { TaskSpec } from '@backstage/plugin-scaffolder-common'; +import { JsonObject, Observable } from '@backstage/types'; + /** * TaskSecrets * @@ -22,3 +25,124 @@ export type TaskSecrets = Record & { backstageToken?: string; }; + +/** + * The status of each step of the Task + * + * @public + */ +export type TaskStatus = + | 'cancelled' + | 'completed' + | 'failed' + | 'open' + | 'processing'; + +/** + * The state of a completed task. + * + * @public + */ +export type TaskCompletionState = 'failed' | 'completed'; + +/** + * SerializedTask + * + * @public + */ +export type SerializedTask = { + id: string; + spec: TaskSpec; + status: TaskStatus; + createdAt: string; + lastHeartbeatAt?: string; + createdBy?: string; + secrets?: TaskSecrets; +}; + +/** + * TaskEventType + * + * @public + */ +export type TaskEventType = 'completion' | 'log' | 'cancelled'; + +/** + * SerializedTaskEvent + * + * @public + */ +export type SerializedTaskEvent = { + id: number; + taskId: string; + body: JsonObject; + type: TaskEventType; + createdAt: string; +}; + +/** + * The result of {@link TaskBroker.dispatch} + * + * @public + */ +export type TaskBrokerDispatchResult = { + taskId: string; +}; + +/** + * The options passed to {@link TaskBroker.dispatch} + * Currently a spec and optional secrets + * + * @public + */ +export type TaskBrokerDispatchOptions = { + spec: TaskSpec; + secrets?: TaskSecrets; + createdBy?: string; +}; + +/** + * Task + * + * @public + */ +export interface TaskContext { + cancelSignal: AbortSignal; + spec: TaskSpec; + secrets?: TaskSecrets; + createdBy?: string; + done: boolean; + isDryRun?: boolean; + + complete(result: TaskCompletionState, metadata?: JsonObject): Promise; + + emitLog(message: string, logMetadata?: JsonObject): Promise; + + getWorkspaceName(): Promise; +} + +/** + * TaskBroker + * + * @public + */ +export interface TaskBroker { + cancel?(taskId: string): Promise; + + claim(): Promise; + + dispatch( + options: TaskBrokerDispatchOptions, + ): Promise; + + vacuumTasks(options: { timeoutS: number }): Promise; + + event$(options: { + taskId: string; + after: number | undefined; + }): Observable<{ events: SerializedTaskEvent[] }>; + + get(taskId: string): Promise; + + list?(options?: { createdBy?: string }): Promise<{ tasks: SerializedTask[] }>; +} diff --git a/plugins/scaffolder-node/src/types.ts b/plugins/scaffolder-node/src/types.ts new file mode 100644 index 0000000000..bae106c84e --- /dev/null +++ b/plugins/scaffolder-node/src/types.ts @@ -0,0 +1,25 @@ +/* + * 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 { JsonValue } from '@backstage/types'; + +/** @public */ +export type TemplateFilter = (...args: JsonValue[]) => JsonValue | undefined; + +/** @public */ +export type TemplateGlobal = + | ((...args: JsonValue[]) => JsonValue | undefined) + | JsonValue; From 88bc6e27a213fd8ecb24d91ad809864ac6dfb29e Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Tue, 15 Aug 2023 16:11:05 +0200 Subject: [PATCH 301/372] scaffolder-backend: make concurrentTasksLimit configurable via static config Signed-off-by: Patrik Oldsberg --- .changeset/metal-eagles-invite.md | 5 +++ plugins/scaffolder-backend/config.d.ts | 9 ++++++ .../scaffolder-backend/src/service/router.ts | 32 +++++++++++-------- 3 files changed, 32 insertions(+), 14 deletions(-) create mode 100644 .changeset/metal-eagles-invite.md diff --git a/.changeset/metal-eagles-invite.md b/.changeset/metal-eagles-invite.md new file mode 100644 index 0000000000..6c41c6017d --- /dev/null +++ b/.changeset/metal-eagles-invite.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-scaffolder-backend': patch +--- + +The `concurrentTasksLimit` option can now be configured via static configuration as well. Setting it to 0 will now also disable the task worker. diff --git a/plugins/scaffolder-backend/config.d.ts b/plugins/scaffolder-backend/config.d.ts index 7883284165..60ccd52257 100644 --- a/plugins/scaffolder-backend/config.d.ts +++ b/plugins/scaffolder-backend/config.d.ts @@ -28,5 +28,14 @@ export interface Config { * The commit message used when new components are created. */ defaultCommitMessage?: string; + + /** + * Sets the number of concurrent tasks that can be run at any given time on the TaskWorker. + * + * Defaults to 10. + * + * Set to 0 to disable task workers altogether. + */ + concurrentTasksLimit?: number; }; } diff --git a/plugins/scaffolder-backend/src/service/router.ts b/plugins/scaffolder-backend/src/service/router.ts index 1771067367..15f7c11eba 100644 --- a/plugins/scaffolder-backend/src/service/router.ts +++ b/plugins/scaffolder-backend/src/service/router.ts @@ -231,13 +231,15 @@ export async function createRouter( catalogClient, actions, taskWorkers, - concurrentTasksLimit, scheduler, additionalTemplateFilters, additionalTemplateGlobals, permissions, permissionRules, } = options; + const concurrentTasksLimit = + options.concurrentTasksLimit ?? + options.config.getOptionalNumber('scaffolder.concurrentTasksLimit'); const logger = parentLogger.child({ plugin: 'scaffolder' }); @@ -275,19 +277,21 @@ export async function createRouter( const actionRegistry = new TemplateActionRegistry(); const workers = []; - for (let i = 0; i < (taskWorkers || 1); i++) { - const worker = await TaskWorker.create({ - taskBroker, - actionRegistry, - integrations, - logger, - workingDirectory, - additionalTemplateFilters, - additionalTemplateGlobals, - concurrentTasksLimit, - permissions, - }); - workers.push(worker); + if (concurrentTasksLimit !== 0) { + for (let i = 0; i < (taskWorkers || 1); i++) { + const worker = await TaskWorker.create({ + taskBroker, + actionRegistry, + integrations, + logger, + workingDirectory, + additionalTemplateFilters, + additionalTemplateGlobals, + concurrentTasksLimit, + permissions, + }); + workers.push(worker); + } } const actionsToRegister = Array.isArray(actions) From 349611126ae2efe5ea6b4be05ae9b8bf3a7a41c3 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Tue, 15 Aug 2023 16:14:20 +0200 Subject: [PATCH 302/372] scaffolder-backend: removed alpha options Signed-off-by: Patrik Oldsberg --- .changeset/cold-carpets-invent.md | 5 + .changeset/mean-shoes-return.md | 5 + .../src/ScaffolderPlugin.ts | 182 ++++++++---------- plugins/scaffolder-backend/src/alpha.ts | 1 - plugins/scaffolder-node/src/extensions.ts | 46 ++++- plugins/scaffolder-node/src/index.ts | 4 + 6 files changed, 142 insertions(+), 101 deletions(-) create mode 100644 .changeset/cold-carpets-invent.md create mode 100644 .changeset/mean-shoes-return.md diff --git a/.changeset/cold-carpets-invent.md b/.changeset/cold-carpets-invent.md new file mode 100644 index 0000000000..f30c60131d --- /dev/null +++ b/.changeset/cold-carpets-invent.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-scaffolder-backend': patch +--- + +Removed the options from the alpha `scaffolderPlugin` export. To extend the scaffolder plugin you instead now use the available extension points, `scaffolderActionsExtensionPoint`, `scaffolderTaskBrokerExtensionPoint`, and `scaffolderTemplatingExtensionPoint`. diff --git a/.changeset/mean-shoes-return.md b/.changeset/mean-shoes-return.md new file mode 100644 index 0000000000..29973a6cbd --- /dev/null +++ b/.changeset/mean-shoes-return.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-scaffolder-node': patch +--- + +Added two new alpha extension points, `scaffolderTaskBrokerExtensionPoint` and `scaffolderTemplatingExtensionPoint`. diff --git a/plugins/scaffolder-backend/src/ScaffolderPlugin.ts b/plugins/scaffolder-backend/src/ScaffolderPlugin.ts index f361bfcdf9..98bd4a1d66 100644 --- a/plugins/scaffolder-backend/src/ScaffolderPlugin.ts +++ b/plugins/scaffolder-backend/src/ScaffolderPlugin.ts @@ -23,120 +23,104 @@ import { ScmIntegrations } from '@backstage/integration'; import { catalogServiceRef } from '@backstage/plugin-catalog-node/alpha'; import { scaffolderActionsExtensionPoint, - ScaffolderActionsExtensionPoint, + scaffolderTaskBrokerExtensionPoint, + scaffolderTemplatingExtensionPoint, + TaskBroker, TemplateAction, -} from '@backstage/plugin-scaffolder-node'; -import { TemplateFilter, TemplateGlobal, - TaskBroker, -} from '@backstage/plugin-scaffolder-backend'; +} from '@backstage/plugin-scaffolder-node'; import { createBuiltinActions } from './scaffolder'; import { createRouter } from './service/router'; /** - * Catalog plugin options + * Scaffolder plugin * * @alpha */ -export type ScaffolderPluginOptions = { - actions?: TemplateAction[]; - taskWorkers?: number; - taskBroker?: TaskBroker; - additionalTemplateFilters?: Record; - additionalTemplateGlobals?: Record; -}; +export const scaffolderPlugin = createBackendPlugin({ + pluginId: 'scaffolder', + register(env) { + const addedActions = new Array>(); + env.registerExtensionPoint(scaffolderActionsExtensionPoint, { + addActions(...newActions: TemplateAction[]) { + addedActions.push(...newActions); + }, + }); -class ScaffolderActionsExtensionPointImpl - implements ScaffolderActionsExtensionPoint -{ - #actions = new Array>(); + let taskBroker: TaskBroker | undefined; + env.registerExtensionPoint(scaffolderTaskBrokerExtensionPoint, { + setTaskBroker(newTaskBroker) { + if (taskBroker) { + throw new Error('Task broker may only be set once'); + } + taskBroker = newTaskBroker; + }, + }); - addActions(...actions: TemplateAction[]): void { - this.#actions.push(...actions); - } + const additionalTemplateFilters: Record = {}; + const additionalTemplateGlobals: Record = {}; + env.registerExtensionPoint(scaffolderTemplatingExtensionPoint, { + addTemplateFilters(newFilters) { + Object.assign(additionalTemplateFilters, newFilters); + }, + addTemplateGlobals(newGlobals) { + Object.assign(additionalTemplateGlobals, newGlobals); + }, + }); - get actions() { - return this.#actions; - } -} + env.registerInit({ + deps: { + logger: coreServices.logger, + config: coreServices.rootConfig, + reader: coreServices.urlReader, + permissions: coreServices.permissions, + database: coreServices.database, + httpRouter: coreServices.httpRouter, + catalogClient: catalogServiceRef, + }, + async init({ + logger, + config, + reader, + database, + httpRouter, + catalogClient, + permissions, + }) { + const log = loggerToWinstonLogger(logger); -/** - * Catalog plugin - * - * @alpha - */ -export const scaffolderPlugin = createBackendPlugin( - (options?: ScaffolderPluginOptions) => ({ - pluginId: 'scaffolder', - register(env) { - const actionsExtensions = new ScaffolderActionsExtensionPointImpl(); - - env.registerExtensionPoint( - scaffolderActionsExtensionPoint, - actionsExtensions, - ); - - env.registerInit({ - deps: { - logger: coreServices.logger, - config: coreServices.rootConfig, - reader: coreServices.urlReader, - permissions: coreServices.permissions, - database: coreServices.database, - httpRouter: coreServices.httpRouter, - catalogClient: catalogServiceRef, - }, - async init({ - logger, - config, - reader, - database, - httpRouter, - catalogClient, - permissions, - }) { - const { - additionalTemplateFilters, - taskBroker, - taskWorkers, - additionalTemplateGlobals, - } = options ?? {}; - const log = loggerToWinstonLogger(logger); - - const actions = options?.actions || [ - ...actionsExtensions.actions, - ...createBuiltinActions({ - integrations: ScmIntegrations.fromConfig(config), - catalogClient, - reader, - config, - additionalTemplateFilters, - additionalTemplateGlobals, - }), - ]; - - const actionIds = actions.map(action => action.id).join(', '); - log.info( - `Starting scaffolder with the following actions enabled ${actionIds}`, - ); - - const router = await createRouter({ - logger: log, - config, - database, + const actions = [ + ...addedActions, + ...createBuiltinActions({ + integrations: ScmIntegrations.fromConfig(config), catalogClient, reader, - actions, - taskBroker, - taskWorkers, + config, additionalTemplateFilters, additionalTemplateGlobals, - permissions, - }); - httpRouter.use(router); - }, - }); - }, - }), -); + }), + ]; + + const actionIds = actions.map(action => action.id).join(', '); + log.info( + `Starting scaffolder with the following actions enabled ${actionIds}`, + ); + + const router = await createRouter({ + logger: log, + config, + database, + catalogClient, + reader, + actions, + taskBroker, + additionalTemplateFilters, + additionalTemplateGlobals, + permissions, + }); + httpRouter.use(router); + }, + }); + }, +}); diff --git a/plugins/scaffolder-backend/src/alpha.ts b/plugins/scaffolder-backend/src/alpha.ts index 713f2569aa..e1b4bc1067 100644 --- a/plugins/scaffolder-backend/src/alpha.ts +++ b/plugins/scaffolder-backend/src/alpha.ts @@ -17,4 +17,3 @@ export * from './modules'; export * from './service'; export { scaffolderPlugin } from './ScaffolderPlugin'; -export type { ScaffolderPluginOptions } from './ScaffolderPlugin'; diff --git a/plugins/scaffolder-node/src/extensions.ts b/plugins/scaffolder-node/src/extensions.ts index 1ae51ce2e6..b85da5b590 100644 --- a/plugins/scaffolder-node/src/extensions.ts +++ b/plugins/scaffolder-node/src/extensions.ts @@ -15,7 +15,12 @@ */ import { createExtensionPoint } from '@backstage/backend-plugin-api'; -import { TemplateAction } from './actions'; +import { + TemplateAction, + TemplateFilter, + TemplateGlobal, + TaskBroker, +} from '@backstage/plugin-scaffolder-node'; /** * Extension point for managing scaffolder actions. @@ -35,3 +40,42 @@ export const scaffolderActionsExtensionPoint = createExtensionPoint({ id: 'scaffolder.actions', }); + +/** + * Extension point for replacing the scaffolder task broker. + * + * @alpha + */ +export interface ScaffolderTaskBrokerExtensionPoint { + setTaskBroker(taskBroker: TaskBroker): void; +} + +/** + * Extension point for replacing the scaffolder task broker. + * + * @alpha + */ +export const scaffolderTaskBrokerExtensionPoint = + createExtensionPoint({ + id: 'scaffolder.taskBroker', + }); + +/** + * Extension point for adding template filters and globals. + * + * @alpha + */ +export interface ScaffolderTemplatingExtensionPoint { + addTemplateFilters(filters: Record): void; + addTemplateGlobals(filters: Record): void; +} + +/** + * Extension point for adding template filters and globals. + * + * @alpha + */ +export const scaffolderTemplatingExtensionPoint = + createExtensionPoint({ + id: 'scaffolder.templating', + }); diff --git a/plugins/scaffolder-node/src/index.ts b/plugins/scaffolder-node/src/index.ts index 5bf556232e..dcce065108 100644 --- a/plugins/scaffolder-node/src/index.ts +++ b/plugins/scaffolder-node/src/index.ts @@ -26,4 +26,8 @@ export type { TemplateFilter, TemplateGlobal } from './types'; export { scaffolderActionsExtensionPoint, type ScaffolderActionsExtensionPoint, + scaffolderTaskBrokerExtensionPoint, + type ScaffolderTaskBrokerExtensionPoint, + scaffolderTemplatingExtensionPoint, + type ScaffolderTemplatingExtensionPoint, } from './extensions'; From 6565eeb2d4904093fefc2ada0672d1b99a1ee9c9 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Tue, 15 Aug 2023 16:39:13 +0200 Subject: [PATCH 303/372] scaffolder-{backend,node}: update API reports + fixes Signed-off-by: Patrik Oldsberg --- .../scaffolder-backend/alpha-api-report.md | 17 +-- plugins/scaffolder-backend/api-report.md | 124 +++++------------ .../src/scaffolder/tasks/types.ts | 4 +- plugins/scaffolder-node/api-report.md | 129 +++++++++++++++++- 4 files changed, 164 insertions(+), 110 deletions(-) diff --git a/plugins/scaffolder-backend/alpha-api-report.md b/plugins/scaffolder-backend/alpha-api-report.md index 363fcafd17..c1758f9b17 100644 --- a/plugins/scaffolder-backend/alpha-api-report.md +++ b/plugins/scaffolder-backend/alpha-api-report.md @@ -12,11 +12,7 @@ import { PermissionCriteria } from '@backstage/plugin-permission-common'; import { PermissionRule } from '@backstage/plugin-permission-node'; import { PermissionRuleParams } from '@backstage/plugin-permission-common'; import { ResourcePermission } from '@backstage/plugin-permission-common'; -import { TaskBroker } from '@backstage/plugin-scaffolder-backend'; -import { TemplateAction } from '@backstage/plugin-scaffolder-node'; import { TemplateEntityStepV1beta3 } from '@backstage/plugin-scaffolder-common'; -import { TemplateFilter } from '@backstage/plugin-scaffolder-backend'; -import { TemplateGlobal } from '@backstage/plugin-scaffolder-backend'; import { TemplateParametersV1beta3 } from '@backstage/plugin-scaffolder-common'; // @alpha @@ -90,18 +86,7 @@ export const scaffolderActionConditions: Conditions<{ }>; // @alpha -export const scaffolderPlugin: ( - options?: ScaffolderPluginOptions | undefined, -) => BackendFeature; - -// @alpha -export type ScaffolderPluginOptions = { - actions?: TemplateAction[]; - taskWorkers?: number; - taskBroker?: TaskBroker; - additionalTemplateFilters?: Record; - additionalTemplateGlobals?: Record; -}; +export const scaffolderPlugin: () => BackendFeature; // @alpha export const scaffolderTemplateConditions: Conditions<{ diff --git a/plugins/scaffolder-backend/api-report.md b/plugins/scaffolder-backend/api-report.md index 4fe961056f..7fe4964827 100644 --- a/plugins/scaffolder-backend/api-report.md +++ b/plugins/scaffolder-backend/api-report.md @@ -19,11 +19,9 @@ import { GithubCredentialsProvider } from '@backstage/integration'; import { HumanDuration } from '@backstage/types'; import { IdentityApi } from '@backstage/plugin-auth-node'; import { JsonObject } from '@backstage/types'; -import { JsonValue } from '@backstage/types'; import { Knex } from 'knex'; import { LocationSpec } from '@backstage/plugin-catalog-common'; import { Logger } from 'winston'; -import { Observable } from '@backstage/types'; import { Octokit } from 'octokit'; import { PermissionEvaluator } from '@backstage/plugin-permission-common'; import { PermissionRule } from '@backstage/plugin-permission-node'; @@ -35,12 +33,23 @@ import { RESOURCE_TYPE_SCAFFOLDER_TEMPLATE } from '@backstage/plugin-scaffolder- import { Schema } from 'jsonschema'; import { ScmIntegrationRegistry } from '@backstage/integration'; import { ScmIntegrations } from '@backstage/integration'; +import { SerializedTask as SerializedTask_2 } from '@backstage/plugin-scaffolder-node'; +import { SerializedTaskEvent as SerializedTaskEvent_2 } from '@backstage/plugin-scaffolder-node'; +import { TaskBroker as TaskBroker_2 } from '@backstage/plugin-scaffolder-node'; +import { TaskBrokerDispatchOptions as TaskBrokerDispatchOptions_2 } from '@backstage/plugin-scaffolder-node'; +import { TaskBrokerDispatchResult as TaskBrokerDispatchResult_2 } from '@backstage/plugin-scaffolder-node'; +import { TaskCompletionState as TaskCompletionState_2 } from '@backstage/plugin-scaffolder-node'; +import { TaskContext as TaskContext_2 } from '@backstage/plugin-scaffolder-node'; +import { TaskEventType as TaskEventType_2 } from '@backstage/plugin-scaffolder-node'; import { TaskSecrets as TaskSecrets_2 } from '@backstage/plugin-scaffolder-node'; import { TaskSpec } from '@backstage/plugin-scaffolder-common'; import { TaskSpecV1beta3 } from '@backstage/plugin-scaffolder-common'; +import { TaskStatus as TaskStatus_2 } from '@backstage/plugin-scaffolder-node'; import { TemplateAction as TemplateAction_2 } from '@backstage/plugin-scaffolder-node'; import { TemplateActionOptions } from '@backstage/plugin-scaffolder-node'; import { TemplateEntityStepV1beta3 } from '@backstage/plugin-scaffolder-common'; +import { TemplateFilter as TemplateFilter_2 } from '@backstage/plugin-scaffolder-node'; +import { TemplateGlobal as TemplateGlobal_2 } from '@backstage/plugin-scaffolder-node'; import { TemplateParametersV1beta3 } from '@backstage/plugin-scaffolder-common'; import { UrlReader } from '@backstage/backend-common'; import { ZodType } from 'zod'; @@ -886,89 +895,29 @@ export class ScaffolderEntitiesProcessor implements CatalogProcessor { validateEntityKind(entity: Entity): Promise; } -// @public -export type SerializedTask = { - id: string; - spec: TaskSpec; - status: TaskStatus; - createdAt: string; - lastHeartbeatAt?: string; - createdBy?: string; - secrets?: TaskSecrets_2; -}; +// @public @deprecated +export type SerializedTask = SerializedTask_2; -// @public -export type SerializedTaskEvent = { - id: number; - taskId: string; - body: JsonObject; - type: TaskEventType; - createdAt: string; -}; +// @public @deprecated +export type SerializedTaskEvent = SerializedTaskEvent_2; -// @public -export interface TaskBroker { - // (undocumented) - cancel?(taskId: string): Promise; - // (undocumented) - claim(): Promise; - // (undocumented) - dispatch( - options: TaskBrokerDispatchOptions, - ): Promise; - // (undocumented) - event$(options: { taskId: string; after: number | undefined }): Observable<{ - events: SerializedTaskEvent[]; - }>; - // (undocumented) - get(taskId: string): Promise; - // (undocumented) - list?(options?: { createdBy?: string }): Promise<{ - tasks: SerializedTask[]; - }>; - // (undocumented) - vacuumTasks(options: { timeoutS: number }): Promise; -} +// @public @deprecated +export type TaskBroker = TaskBroker_2; -// @public -export type TaskBrokerDispatchOptions = { - spec: TaskSpec; - secrets?: TaskSecrets_2; - createdBy?: string; -}; +// @public @deprecated +export type TaskBrokerDispatchOptions = TaskBrokerDispatchOptions_2; -// @public -export type TaskBrokerDispatchResult = { - taskId: string; -}; +// @public @deprecated +export type TaskBrokerDispatchResult = TaskBrokerDispatchResult_2; -// @public -export type TaskCompletionState = 'failed' | 'completed'; +// @public @deprecated +export type TaskCompletionState = TaskCompletionState_2; -// @public -export interface TaskContext { - // (undocumented) - cancelSignal: AbortSignal; - // (undocumented) - complete(result: TaskCompletionState, metadata?: JsonObject): Promise; - // (undocumented) - createdBy?: string; - // (undocumented) - done: boolean; - // (undocumented) - emitLog(message: string, logMetadata?: JsonObject): Promise; - // (undocumented) - getWorkspaceName(): Promise; - // (undocumented) - isDryRun?: boolean; - // (undocumented) - secrets?: TaskSecrets_2; - // (undocumented) - spec: TaskSpec; -} +// @public @deprecated +export type TaskContext = TaskContext_2; -// @public -export type TaskEventType = 'completion' | 'log' | 'cancelled'; +// @public @deprecated +export type TaskEventType = TaskEventType_2; // @public export class TaskManager implements TaskContext { @@ -1000,13 +949,8 @@ export class TaskManager implements TaskContext { // @public @deprecated (undocumented) export type TaskSecrets = TaskSecrets_2; -// @public -export type TaskStatus = - | 'cancelled' - | 'completed' - | 'failed' - | 'open' - | 'processing'; +// @public @deprecated +export type TaskStatus = TaskStatus_2; // @public export interface TaskStore { @@ -1103,13 +1047,11 @@ export class TemplateActionRegistry { register(action: TemplateAction_2): void; } -// @public (undocumented) -export type TemplateFilter = (...args: JsonValue[]) => JsonValue | undefined; +// @public @deprecated (undocumented) +export type TemplateFilter = TemplateFilter_2; -// @public (undocumented) -export type TemplateGlobal = - | ((...args: JsonValue[]) => JsonValue | undefined) - | JsonValue; +// @public @deprecated (undocumented) +export type TemplateGlobal = TemplateGlobal_2; // @public (undocumented) export type TemplatePermissionRuleInput< diff --git a/plugins/scaffolder-backend/src/scaffolder/tasks/types.ts b/plugins/scaffolder-backend/src/scaffolder/tasks/types.ts index 1d925e5610..4560f27c0b 100644 --- a/plugins/scaffolder-backend/src/scaffolder/tasks/types.ts +++ b/plugins/scaffolder-backend/src/scaffolder/tasks/types.ts @@ -71,7 +71,7 @@ export type TaskEventType = _TaskEventType; export type SerializedTaskEvent = _SerializedTaskEvent; /** - * The result of {@link TaskBroker.dispatch} + * The result of `TaskBroker.dispatch`. * * @public * @deprecated Import from `@backstage/plugin-scaffolder-node` instead. @@ -79,7 +79,7 @@ export type SerializedTaskEvent = _SerializedTaskEvent; export type TaskBrokerDispatchResult = _TaskBrokerDispatchResult; /** - * The options passed to {@link TaskBroker.dispatch} + * The options passed to `TaskBroker.dispatch`. * Currently a spec and optional secrets * * @public diff --git a/plugins/scaffolder-node/api-report.md b/plugins/scaffolder-node/api-report.md index ec1b2df2fa..52ce3c8d13 100644 --- a/plugins/scaffolder-node/api-report.md +++ b/plugins/scaffolder-node/api-report.md @@ -7,10 +7,17 @@ import { ExtensionPoint } from '@backstage/backend-plugin-api'; import { JsonObject } from '@backstage/types'; +import { JsonValue } from '@backstage/types'; import { Logger } from 'winston'; +import { Observable } from '@backstage/types'; import { Schema } from 'jsonschema'; import { ScmIntegrations } from '@backstage/integration'; import { SpawnOptionsWithoutStdio } from 'child_process'; +import { TaskBroker as TaskBroker_2 } from '@backstage/plugin-scaffolder-node'; +import { TaskSpec } from '@backstage/plugin-scaffolder-common'; +import { TemplateAction as TemplateAction_2 } from '@backstage/plugin-scaffolder-node'; +import { TemplateFilter as TemplateFilter_2 } from '@backstage/plugin-scaffolder-node'; +import { TemplateGlobal as TemplateGlobal_2 } from '@backstage/plugin-scaffolder-node'; import { TemplateInfo } from '@backstage/plugin-scaffolder-common'; import { UrlReader } from '@backstage/backend-common'; import { UserEntity } from '@backstage/catalog-model'; @@ -105,17 +112,129 @@ export function fetchFile(options: { // @alpha export interface ScaffolderActionsExtensionPoint { // (undocumented) - addActions(...actions: TemplateAction[]): void; + addActions(...actions: TemplateAction_2[]): void; } // @alpha export const scaffolderActionsExtensionPoint: ExtensionPoint; +// @alpha +export interface ScaffolderTaskBrokerExtensionPoint { + // (undocumented) + setTaskBroker(taskBroker: TaskBroker_2): void; +} + +// @alpha +export const scaffolderTaskBrokerExtensionPoint: ExtensionPoint; + +// @alpha +export interface ScaffolderTemplatingExtensionPoint { + // (undocumented) + addTemplateFilters(filters: Record): void; + // (undocumented) + addTemplateGlobals(filters: Record): void; +} + +// @alpha +export const scaffolderTemplatingExtensionPoint: ExtensionPoint; + +// @public +export type SerializedTask = { + id: string; + spec: TaskSpec; + status: TaskStatus; + createdAt: string; + lastHeartbeatAt?: string; + createdBy?: string; + secrets?: TaskSecrets; +}; + +// @public +export type SerializedTaskEvent = { + id: number; + taskId: string; + body: JsonObject; + type: TaskEventType; + createdAt: string; +}; + +// @public +export interface TaskBroker { + // (undocumented) + cancel?(taskId: string): Promise; + // (undocumented) + claim(): Promise; + // (undocumented) + dispatch( + options: TaskBrokerDispatchOptions, + ): Promise; + // (undocumented) + event$(options: { taskId: string; after: number | undefined }): Observable<{ + events: SerializedTaskEvent[]; + }>; + // (undocumented) + get(taskId: string): Promise; + // (undocumented) + list?(options?: { createdBy?: string }): Promise<{ + tasks: SerializedTask[]; + }>; + // (undocumented) + vacuumTasks(options: { timeoutS: number }): Promise; +} + +// @public +export type TaskBrokerDispatchOptions = { + spec: TaskSpec; + secrets?: TaskSecrets; + createdBy?: string; +}; + +// @public +export type TaskBrokerDispatchResult = { + taskId: string; +}; + +// @public +export type TaskCompletionState = 'failed' | 'completed'; + +// @public +export interface TaskContext { + // (undocumented) + cancelSignal: AbortSignal; + // (undocumented) + complete(result: TaskCompletionState, metadata?: JsonObject): Promise; + // (undocumented) + createdBy?: string; + // (undocumented) + done: boolean; + // (undocumented) + emitLog(message: string, logMetadata?: JsonObject): Promise; + // (undocumented) + getWorkspaceName(): Promise; + // (undocumented) + isDryRun?: boolean; + // (undocumented) + secrets?: TaskSecrets; + // (undocumented) + spec: TaskSpec; +} + +// @public +export type TaskEventType = 'completion' | 'log' | 'cancelled'; + // @public export type TaskSecrets = Record & { backstageToken?: string; }; +// @public +export type TaskStatus = + | 'cancelled' + | 'completed' + | 'failed' + | 'open' + | 'processing'; + // @public (undocumented) export type TemplateAction< TActionInput extends JsonObject = JsonObject, @@ -158,4 +277,12 @@ export type TemplateExample = { description: string; example: string; }; + +// @public (undocumented) +export type TemplateFilter = (...args: JsonValue[]) => JsonValue | undefined; + +// @public (undocumented) +export type TemplateGlobal = + | ((...args: JsonValue[]) => JsonValue | undefined) + | JsonValue; ``` From 2931c399f69ddafb62c48807c622fb6f21107eb3 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Tue, 15 Aug 2023 16:42:14 +0200 Subject: [PATCH 304/372] Update plugins/search-backend-module-techdocs/config.d.ts Signed-off-by: Patrik Oldsberg --- plugins/search-backend-module-techdocs/config.d.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/plugins/search-backend-module-techdocs/config.d.ts b/plugins/search-backend-module-techdocs/config.d.ts index 05e4d5d6b8..630bfc3692 100644 --- a/plugins/search-backend-module-techdocs/config.d.ts +++ b/plugins/search-backend-module-techdocs/config.d.ts @@ -31,7 +31,7 @@ export interface Config { * A templating string with placeholders, to form the final location of * the entity. * - * @defaultValue '/docs/:namespace/:kind/:name/:path' + * Defaults to `'/docs/:namespace/:kind/:name/:path'`. */ locationTemplate?: string; /** @@ -40,11 +40,11 @@ export interface Config { * number of entities fetched at a time from the catalog, as well as how * many things are being processed concurrently. * - * @defaultValue 10 + * Defaults to `10`. */ parallelismLimit?: number; /** - * @defaultValue false + * Defaults to `false`. */ legacyPathCasing?: boolean; }; From 239fff427f6ecb830f100de69321c14be5704f7d Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Tue, 15 Aug 2023 17:10:10 +0200 Subject: [PATCH 305/372] removed unnecessary changeset Signed-off-by: Patrik Oldsberg --- .changeset/weak-apes-flow.md | 5 ----- 1 file changed, 5 deletions(-) delete mode 100644 .changeset/weak-apes-flow.md diff --git a/.changeset/weak-apes-flow.md b/.changeset/weak-apes-flow.md deleted file mode 100644 index c5673d381a..0000000000 --- a/.changeset/weak-apes-flow.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-permission-backend': patch ---- - -Minor internal fix. From d175692fd7a0e80d7e8e5582216ca51d14672dd7 Mon Sep 17 00:00:00 2001 From: Vincenzo Scamporlino Date: Thu, 10 Aug 2023 23:36:43 +0200 Subject: [PATCH 306/372] backend-plugin-api: make ServiceFactory backend feature Signed-off-by: Vincenzo Scamporlino --- .../src/services/system/index.ts | 1 + .../src/services/system/types.ts | 22 ++++++++++++++----- .../src/wiring/factories.ts | 6 +++-- .../backend-plugin-api/src/wiring/index.ts | 1 - .../backend-plugin-api/src/wiring/types.ts | 14 +----------- 5 files changed, 23 insertions(+), 21 deletions(-) diff --git a/packages/backend-plugin-api/src/services/system/index.ts b/packages/backend-plugin-api/src/services/system/index.ts index 2b91758cbc..7ffa5859c8 100644 --- a/packages/backend-plugin-api/src/services/system/index.ts +++ b/packages/backend-plugin-api/src/services/system/index.ts @@ -15,6 +15,7 @@ */ export type { + BackendFeature, ServiceRef, ServiceRefConfig, ServiceFactory, diff --git a/packages/backend-plugin-api/src/services/system/types.ts b/packages/backend-plugin-api/src/services/system/types.ts index 9465d4a9cb..ad8f28b565 100644 --- a/packages/backend-plugin-api/src/services/system/types.ts +++ b/packages/backend-plugin-api/src/services/system/types.ts @@ -51,9 +51,7 @@ export type ServiceRef< export interface ServiceFactory< TService = unknown, TScope extends 'plugin' | 'root' = 'plugin' | 'root', -> { - $$type: '@backstage/ServiceFactory'; - +> extends BackendFeature { service: ServiceRef; } @@ -87,6 +85,20 @@ export interface ServiceRefConfig { ) => Promise; } +/** @internal */ +export interface BackendFeatureFactory< + TOptions extends [options?: object] = [], +> { + (...options: TOptions): BackendFeature; + $$type: '@backstage/BackendFeatureFactory'; +} + +/** @public */ +export interface BackendFeature { + // NOTE: This type is opaque in order to simplify future API evolution. + $$type: '@backstage/BackendFeature'; +} + /** * Creates a new service definition. This overload is used to create plugin scoped services. * @@ -248,7 +260,7 @@ export function createServiceFactory< if (anyConf.service.scope === 'root') { const c = anyConf as RootServiceFactoryConfig; return { - $$type: '@backstage/ServiceFactory', + $$type: '@backstage/BackendFeature', version: 'v1', service: c.service, deps: c.deps, @@ -262,7 +274,7 @@ export function createServiceFactory< TDeps >; return { - $$type: '@backstage/ServiceFactory', + $$type: '@backstage/BackendFeature', version: 'v1', service: c.service, ...('createRootContext' in c diff --git a/packages/backend-plugin-api/src/wiring/factories.ts b/packages/backend-plugin-api/src/wiring/factories.ts index af40256411..646398e56c 100644 --- a/packages/backend-plugin-api/src/wiring/factories.ts +++ b/packages/backend-plugin-api/src/wiring/factories.ts @@ -14,14 +14,16 @@ * limitations under the License. */ +import { + BackendFeature, + BackendFeatureFactory, +} from '../services/system/types'; import { BackendModuleRegistrationPoints, BackendPluginRegistrationPoints, ExtensionPoint, InternalBackendModuleRegistration, InternalBackendPluginRegistration, - BackendFeatureFactory, - BackendFeature, } from './types'; /** diff --git a/packages/backend-plugin-api/src/wiring/index.ts b/packages/backend-plugin-api/src/wiring/index.ts index 9cb767b8ac..49f15c0b55 100644 --- a/packages/backend-plugin-api/src/wiring/index.ts +++ b/packages/backend-plugin-api/src/wiring/index.ts @@ -27,6 +27,5 @@ export { export type { BackendModuleRegistrationPoints, BackendPluginRegistrationPoints, - BackendFeature, ExtensionPoint, } from './types'; diff --git a/packages/backend-plugin-api/src/wiring/types.ts b/packages/backend-plugin-api/src/wiring/types.ts index d416ce7f9a..8b831b3a37 100644 --- a/packages/backend-plugin-api/src/wiring/types.ts +++ b/packages/backend-plugin-api/src/wiring/types.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import { ServiceRef } from '../services/system/types'; +import { BackendFeature, ServiceRef } from '../services/system/types'; /** * TODO @@ -71,18 +71,6 @@ export interface BackendModuleRegistrationPoints { }): void; } -/** @internal */ -export interface BackendFeatureFactory { - (): BackendFeature; - $$type: '@backstage/BackendFeatureFactory'; -} - -/** @public */ -export interface BackendFeature { - // NOTE: This type is opaque in order to simplify future API evolution. - $$type: '@backstage/BackendFeature'; -} - /** @internal */ export interface InternalBackendFeature extends BackendFeature { version: 'v1'; From 966e3760568a78244cde48d8f6511ec1f4e5bf5c Mon Sep 17 00:00:00 2001 From: Vincenzo Scamporlino Date: Thu, 10 Aug 2023 23:41:24 +0200 Subject: [PATCH 307/372] backend-app-api: rename services option to defaultServiceFactories Signed-off-by: Vincenzo Scamporlino --- .../src/wiring/createSpecializedBackend.test.ts | 8 +++++--- .../src/wiring/createSpecializedBackend.ts | 2 +- packages/backend-app-api/src/wiring/types.ts | 2 +- .../backend-test-utils/src/next/wiring/TestBackend.ts | 6 +++++- 4 files changed, 12 insertions(+), 6 deletions(-) diff --git a/packages/backend-app-api/src/wiring/createSpecializedBackend.test.ts b/packages/backend-app-api/src/wiring/createSpecializedBackend.test.ts index dc9a0cc085..1fd7fcbbec 100644 --- a/packages/backend-app-api/src/wiring/createSpecializedBackend.test.ts +++ b/packages/backend-app-api/src/wiring/createSpecializedBackend.test.ts @@ -22,13 +22,15 @@ import { createSpecializedBackend } from './createSpecializedBackend'; describe('createSpecializedBackend', () => { it('should create a backend without services', () => { - expect(() => createSpecializedBackend({ services: [] })).not.toThrow(); + expect(() => + createSpecializedBackend({ defaultServiceFactories: [] }), + ).not.toThrow(); }); it('should throw on duplicate service implementations', () => { expect(() => createSpecializedBackend({ - services: [ + defaultServiceFactories: [ createServiceFactory({ service: coreServices.rootLifecycle, deps: {}, @@ -55,7 +57,7 @@ describe('createSpecializedBackend', () => { it('should throw when providing a plugin metadata service implementation', () => { expect(() => createSpecializedBackend({ - services: [ + defaultServiceFactories: [ createServiceFactory({ service: coreServices.pluginMetadata, deps: {}, diff --git a/packages/backend-app-api/src/wiring/createSpecializedBackend.ts b/packages/backend-app-api/src/wiring/createSpecializedBackend.ts index 15e51f7c4c..f5c4d8b152 100644 --- a/packages/backend-app-api/src/wiring/createSpecializedBackend.ts +++ b/packages/backend-app-api/src/wiring/createSpecializedBackend.ts @@ -24,7 +24,7 @@ import { Backend, CreateSpecializedBackendOptions } from './types'; export function createSpecializedBackend( options: CreateSpecializedBackendOptions, ): Backend { - const services = options.services.map(sf => + const services = options.defaultServiceFactories.map(sf => typeof sf === 'function' ? sf() : sf, ); diff --git a/packages/backend-app-api/src/wiring/types.ts b/packages/backend-app-api/src/wiring/types.ts index ffedb40324..36e2dede30 100644 --- a/packages/backend-app-api/src/wiring/types.ts +++ b/packages/backend-app-api/src/wiring/types.ts @@ -34,7 +34,7 @@ export interface Backend { * @public */ export interface CreateSpecializedBackendOptions { - services: ServiceFactoryOrFunction[]; + defaultServiceFactories: ServiceFactoryOrFunction[]; } export interface ServiceHolder { diff --git a/packages/backend-test-utils/src/next/wiring/TestBackend.ts b/packages/backend-test-utils/src/next/wiring/TestBackend.ts index 06e27e5c07..0bade8bfbb 100644 --- a/packages/backend-test-utils/src/next/wiring/TestBackend.ts +++ b/packages/backend-test-utils/src/next/wiring/TestBackend.ts @@ -279,7 +279,11 @@ export async function startTestBackend< const backend = createSpecializedBackend({ ...otherOptions, - services: [...factories, rootHttpRouterFactory, discoveryFactory], + defaultServiceFactories: [ + ...factories, + rootHttpRouterFactory, + discoveryFactory, + ], }); backendInstancesToCleanUp.push(backend); From 108728f5fea1e33bf1a2380ddaa7a6353d4ee9ef Mon Sep 17 00:00:00 2001 From: Vincenzo Scamporlino Date: Thu, 10 Aug 2023 23:57:32 +0200 Subject: [PATCH 308/372] backend-app-api: add add method to ServiceRegistry Signed-off-by: Vincenzo Scamporlino --- packages/backend-app-api/src/wiring/ServiceRegistry.ts | 9 ++++++++- packages/backend-app-api/src/wiring/types.ts | 2 ++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/packages/backend-app-api/src/wiring/ServiceRegistry.ts b/packages/backend-app-api/src/wiring/ServiceRegistry.ts index 61f95ff4a4..25d777549c 100644 --- a/packages/backend-app-api/src/wiring/ServiceRegistry.ts +++ b/packages/backend-app-api/src/wiring/ServiceRegistry.ts @@ -39,7 +39,7 @@ function toInternalServiceFactory( factory: ServiceFactory, ): InternalServiceFactory { const f = factory as InternalServiceFactory; - if (f.$$type !== '@backstage/ServiceFactory') { + if (f.$$type !== '@backstage/BackendFeature') { throw new Error(`Invalid service factory, bad type '${f.$$type}'`); } if (f.version !== 'v1') { @@ -82,6 +82,13 @@ export class ServiceRegistry implements EnumerableServiceHolder { this.#implementations = new Map(); } + add(serviceFactory: ServiceFactory) { + this.#providedFactories.set( + serviceFactory.service.id, + toInternalServiceFactory(serviceFactory), + ); + } + #resolveFactory( ref: ServiceRef, pluginId: string, diff --git a/packages/backend-app-api/src/wiring/types.ts b/packages/backend-app-api/src/wiring/types.ts index 36e2dede30..e2cc299541 100644 --- a/packages/backend-app-api/src/wiring/types.ts +++ b/packages/backend-app-api/src/wiring/types.ts @@ -19,6 +19,7 @@ import { ExtensionPoint, ServiceRef, ServiceFactoryOrFunction, + ServiceFactory, } from '@backstage/backend-plugin-api'; /** @@ -39,6 +40,7 @@ export interface CreateSpecializedBackendOptions { export interface ServiceHolder { get(api: ServiceRef, pluginId: string): Promise | undefined; + add(serviceFactory: ServiceFactory): void; } /** From 90fdcfb403342871f8a448274af7088dc41f40e7 Mon Sep 17 00:00:00 2001 From: Vincenzo Scamporlino Date: Thu, 10 Aug 2023 23:58:44 +0200 Subject: [PATCH 309/372] backend-app-api: add methods accepts a backend feature factory Signed-off-by: Vincenzo Scamporlino --- packages/backend-app-api/src/wiring/BackstageBackend.ts | 4 ++-- packages/backend-app-api/src/wiring/types.ts | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/backend-app-api/src/wiring/BackstageBackend.ts b/packages/backend-app-api/src/wiring/BackstageBackend.ts index c53f47b685..beeefc1b1b 100644 --- a/packages/backend-app-api/src/wiring/BackstageBackend.ts +++ b/packages/backend-app-api/src/wiring/BackstageBackend.ts @@ -28,8 +28,8 @@ export class BackstageBackend implements Backend { this.#initializer = new BackendInitializer(this.#services); } - add(feature: BackendFeature): void { - this.#initializer.add(feature); + add(feature: BackendFeature | (() => BackendFeature)): void { + this.#initializer.add(typeof feature === 'function' ? feature() : feature); } async start(): Promise { diff --git a/packages/backend-app-api/src/wiring/types.ts b/packages/backend-app-api/src/wiring/types.ts index e2cc299541..0a43caae59 100644 --- a/packages/backend-app-api/src/wiring/types.ts +++ b/packages/backend-app-api/src/wiring/types.ts @@ -26,7 +26,7 @@ import { * @public */ export interface Backend { - add(feature: BackendFeature): void; + add(feature: BackendFeature | (() => BackendFeature)): void; start(): Promise; stop(): Promise; } From 7af5f7320f87475a6cc0581105657c295e2516bf Mon Sep 17 00:00:00 2001 From: Vincenzo Scamporlino Date: Fri, 11 Aug 2023 00:00:06 +0200 Subject: [PATCH 310/372] backend-defaults: remove options from createBackend Signed-off-by: Vincenzo Scamporlino --- .../src/CreateBackend.test.ts | 89 ++++++++++--------- .../backend-defaults/src/CreateBackend.ts | 29 +----- packages/backend-defaults/src/index.ts | 1 - 3 files changed, 48 insertions(+), 71 deletions(-) diff --git a/packages/backend-defaults/src/CreateBackend.test.ts b/packages/backend-defaults/src/CreateBackend.test.ts index de04d4e350..0b36b57069 100644 --- a/packages/backend-defaults/src/CreateBackend.test.ts +++ b/packages/backend-defaults/src/CreateBackend.test.ts @@ -22,60 +22,63 @@ import { createBackend } from './CreateBackend'; describe('createBackend', () => { it('should not throw when overriding a default service implementation', () => { - expect(() => - createBackend({ - services: [ - createServiceFactory({ - service: coreServices.rootLifecycle, - deps: {}, - factory: async () => ({ - addStartupHook: () => {}, - addShutdownHook: () => {}, - }), + const backend = createBackend(); + + expect(() => { + backend.add( + createServiceFactory({ + service: coreServices.rootLifecycle, + deps: {}, + factory: async () => ({ + addStartupHook: () => {}, + addShutdownHook: () => {}, }), - ], - }), - ).not.toThrow(); + }), + ); + }).not.toThrow(); }); it('should throw on duplicate service implementations', () => { - expect(() => - createBackend({ - services: [ - createServiceFactory({ - service: coreServices.rootLifecycle, - deps: {}, - factory: async () => ({ - addStartupHook: () => {}, - addShutdownHook: () => {}, - }), - }), - createServiceFactory({ - service: coreServices.rootLifecycle, - deps: {}, - factory: async () => ({ - addStartupHook: () => {}, - addShutdownHook: () => {}, - }), - }), - ], + const backend = createBackend(); + + backend.add( + createServiceFactory({ + service: coreServices.rootLifecycle, + deps: {}, + factory: async () => ({ + addStartupHook: () => {}, + addShutdownHook: () => {}, + }), }), - ).toThrow( + ); + + expect(() => { + backend.add( + createServiceFactory({ + service: coreServices.rootLifecycle, + deps: {}, + factory: async () => ({ + addStartupHook: () => {}, + addShutdownHook: () => {}, + }), + }), + ); + }).toThrow( 'Duplicate service implementations provided for core.rootLifecycle', ); }); it('should throw when providing a plugin metadata service implementation', () => { + const backend = createBackend(); + expect(() => - createBackend({ - services: [ - createServiceFactory({ - service: coreServices.pluginMetadata, - deps: {}, - factory: async () => ({ getId: () => 'test' }), - }), - ], - }), + backend.add( + createServiceFactory({ + service: coreServices.pluginMetadata, + deps: {}, + factory: async () => ({ getId: () => 'test' }), + }), + ), ).toThrow('The core.pluginMetadata service cannot be overridden'); }); }); diff --git a/packages/backend-defaults/src/CreateBackend.ts b/packages/backend-defaults/src/CreateBackend.ts index 3db013a290..c07d1cc38a 100644 --- a/packages/backend-defaults/src/CreateBackend.ts +++ b/packages/backend-defaults/src/CreateBackend.ts @@ -33,10 +33,6 @@ import { urlReaderServiceFactory, identityServiceFactory, } from '@backstage/backend-app-api'; -import { - ServiceFactory, - ServiceFactoryOrFunction, -} from '@backstage/backend-plugin-api'; export const defaultServiceFactories = [ cacheServiceFactory(), @@ -59,27 +55,6 @@ export const defaultServiceFactories = [ /** * @public */ -export interface CreateBackendOptions { - services?: ServiceFactoryOrFunction[]; -} - -/** - * @public - */ -export function createBackend(options?: CreateBackendOptions): Backend { - const services = new Array(); - - // Highest priority: Services passed directly to createBackend - const providedServices = (options?.services ?? []).map(sf => - typeof sf === 'function' ? sf() : sf, - ); - services.push(...providedServices); - - // Lowest priority: Default services that are not already provided by environment or directly to createBackend - const defaultServices = defaultServiceFactories.filter( - sf => !services.some(({ service }) => service.id === sf.service.id), - ); - services.push(...defaultServices); - - return createSpecializedBackend({ services }); +export function createBackend(): Backend { + return createSpecializedBackend({ defaultServiceFactories }); } diff --git a/packages/backend-defaults/src/index.ts b/packages/backend-defaults/src/index.ts index 833878744e..d3e36cf0fb 100644 --- a/packages/backend-defaults/src/index.ts +++ b/packages/backend-defaults/src/index.ts @@ -25,5 +25,4 @@ // TODO(Rugvip): Remove this once backend-common is no longer used by backend-app-api import '@backstage/backend-common'; -export type { CreateBackendOptions } from './CreateBackend'; export { createBackend } from './CreateBackend'; From b10bf736d0609bca5022cebc0865ae4ecfce02f4 Mon Sep 17 00:00:00 2001 From: Vincenzo Scamporlino Date: Fri, 11 Aug 2023 00:07:33 +0200 Subject: [PATCH 311/372] backend-app-api: accepts service factory as feature Signed-off-by: Vincenzo Scamporlino --- .../src/wiring/BackendInitializer.ts | 29 ++++++++++++++++--- 1 file changed, 25 insertions(+), 4 deletions(-) diff --git a/packages/backend-app-api/src/wiring/BackendInitializer.ts b/packages/backend-app-api/src/wiring/BackendInitializer.ts index f71256d04e..ab4a059aac 100644 --- a/packages/backend-app-api/src/wiring/BackendInitializer.ts +++ b/packages/backend-app-api/src/wiring/BackendInitializer.ts @@ -19,6 +19,7 @@ import { ExtensionPoint, coreServices, ServiceRef, + ServiceFactory, } from '@backstage/backend-plugin-api'; import { BackendLifecycleImpl } from '../services/implementations/rootLifecycle/rootLifecycleServiceFactory'; import { BackendPluginLifecycleImpl } from '../services/implementations/lifecycle/lifecycleServiceFactory'; @@ -104,13 +105,21 @@ export class BackendInitializer { `Failed to add feature, invalid type '${feature.$$type}'`, ); } - const internalFeature = feature as InternalBackendFeature; - if (internalFeature.version !== 'v1') { + + if (isServiceFactory(feature)) { + this.#serviceHolder.add(feature); + } else if (isInternalBackendFeature(feature)) { + if (feature.version !== 'v1') { + throw new Error( + `Failed to add feature, invalid version '${feature.version}'`, + ); + } + this.#features.push(feature); + } else { throw new Error( - `Failed to add feature, invalid version '${internalFeature.version}'`, + `Failed to add feature, invalid feature ${JSON.stringify(feature)}`, ); } - this.#features.push(internalFeature); } async start(): Promise { @@ -342,3 +351,15 @@ export class BackendInitializer { throw new Error('Unexpected plugin lifecycle service implementation'); } } + +function isServiceFactory(feature: BackendFeature): feature is ServiceFactory { + return !!(feature as ServiceFactory).service; +} + +function isInternalBackendFeature( + feature: BackendFeature, +): feature is InternalBackendFeature { + return ( + typeof (feature as InternalBackendFeature).getRegistrations === 'function' + ); +} From d1546d5c5bf9c0e267342aa73479b1b95fc8f59c Mon Sep 17 00:00:00 2001 From: Vincenzo Scamporlino Date: Fri, 11 Aug 2023 00:08:54 +0200 Subject: [PATCH 312/372] catalog-backend-module-incremental-ingestion: adapt to new createBackend api Signed-off-by: Vincenzo Scamporlino --- .../src/run.ts | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/plugins/catalog-backend-module-incremental-ingestion/src/run.ts b/plugins/catalog-backend-module-incremental-ingestion/src/run.ts index be1a6dcfc0..e99ec7e41a 100644 --- a/plugins/catalog-backend-module-incremental-ingestion/src/run.ts +++ b/plugins/catalog-backend-module-incremental-ingestion/src/run.ts @@ -55,16 +55,15 @@ async function main() { }, }; - const backend = createBackend({ - services: [ - createServiceFactory({ - service: coreServices.rootConfig, - deps: {}, - factory: () => new ConfigReader(config), - }), - ], - }); + const backend = createBackend(); + backend.add( + createServiceFactory({ + service: coreServices.rootConfig, + deps: {}, + factory: () => new ConfigReader(config), + }), + ); backend.add(catalogPlugin()); backend.add(catalogModuleIncrementalIngestionEntityProvider()); backend.add( From a6d7983f349c37ce0ae16e4f45c5a6eb4be42dd3 Mon Sep 17 00:00:00 2001 From: Vincenzo Scamporlino Date: Fri, 11 Aug 2023 00:18:53 +0200 Subject: [PATCH 313/372] createBackend changeset Signed-off-by: Vincenzo Scamporlino --- .changeset/young-lies-attack.md | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 .changeset/young-lies-attack.md diff --git a/.changeset/young-lies-attack.md b/.changeset/young-lies-attack.md new file mode 100644 index 0000000000..0e9fc21e22 --- /dev/null +++ b/.changeset/young-lies-attack.md @@ -0,0 +1,21 @@ +--- +'@backstage/backend-plugin-api': patch +'@backstage/backend-test-utils': patch +'@backstage/backend-defaults': patch +'@backstage/backend-app-api': patch +--- + +Removed options from `createBackend`. + +The `createBackend` method doesn't accept any options anymore as in the following: + +```ts +const backend = createBackend({ services: [myCustomServiceFactory] }); +``` + +In order to pass custom service factories use the `add` method: + +```ts +const backend = createBackend(); +backend.add(customRootLoggerServiceFactory); +``` From 95799fba222d8665c9df62ea4c1d2060c8d6c9c0 Mon Sep 17 00:00:00 2001 From: Vincenzo Scamporlino Date: Fri, 11 Aug 2023 00:22:35 +0200 Subject: [PATCH 314/372] catalog-backend-module-incremental-ingestion backend feature changeset Signed-off-by: Vincenzo Scamporlino --- .changeset/selfish-pumas-draw.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/selfish-pumas-draw.md diff --git a/.changeset/selfish-pumas-draw.md b/.changeset/selfish-pumas-draw.md new file mode 100644 index 0000000000..9893b896ba --- /dev/null +++ b/.changeset/selfish-pumas-draw.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-catalog-backend-module-incremental-ingestion': patch +--- + +Use new backend feature api to customize `rootConfig`. From 0c1f57b6b6d047363e38449f49a8b53c455058cd Mon Sep 17 00:00:00 2001 From: Vincenzo Scamporlino Date: Fri, 11 Aug 2023 08:47:09 +0200 Subject: [PATCH 315/372] backend-app-api: add missing check for pluginMetadata service Signed-off-by: Vincenzo Scamporlino --- packages/backend-app-api/src/wiring/BackendInitializer.ts | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/packages/backend-app-api/src/wiring/BackendInitializer.ts b/packages/backend-app-api/src/wiring/BackendInitializer.ts index ab4a059aac..2e90e6eb2c 100644 --- a/packages/backend-app-api/src/wiring/BackendInitializer.ts +++ b/packages/backend-app-api/src/wiring/BackendInitializer.ts @@ -107,6 +107,11 @@ export class BackendInitializer { } if (isServiceFactory(feature)) { + if (feature.service.id === coreServices.pluginMetadata.id) { + throw new Error( + `The ${coreServices.pluginMetadata.id} service cannot be overridden`, + ); + } this.#serviceHolder.add(feature); } else if (isInternalBackendFeature(feature)) { if (feature.version !== 'v1') { From 263f6be4f6221f0c834e8c0a176c017319d5f502 Mon Sep 17 00:00:00 2001 From: Vincenzo Scamporlino Date: Tue, 15 Aug 2023 00:08:19 +0200 Subject: [PATCH 316/372] backend-app-api: keep ServiceRegistry immutable Signed-off-by: Vincenzo Scamporlino --- packages/backend-app-api/src/wiring/ServiceRegistry.ts | 7 ------- packages/backend-app-api/src/wiring/types.ts | 2 -- 2 files changed, 9 deletions(-) diff --git a/packages/backend-app-api/src/wiring/ServiceRegistry.ts b/packages/backend-app-api/src/wiring/ServiceRegistry.ts index 25d777549c..b6de05b361 100644 --- a/packages/backend-app-api/src/wiring/ServiceRegistry.ts +++ b/packages/backend-app-api/src/wiring/ServiceRegistry.ts @@ -82,13 +82,6 @@ export class ServiceRegistry implements EnumerableServiceHolder { this.#implementations = new Map(); } - add(serviceFactory: ServiceFactory) { - this.#providedFactories.set( - serviceFactory.service.id, - toInternalServiceFactory(serviceFactory), - ); - } - #resolveFactory( ref: ServiceRef, pluginId: string, diff --git a/packages/backend-app-api/src/wiring/types.ts b/packages/backend-app-api/src/wiring/types.ts index 0a43caae59..552a69a792 100644 --- a/packages/backend-app-api/src/wiring/types.ts +++ b/packages/backend-app-api/src/wiring/types.ts @@ -19,7 +19,6 @@ import { ExtensionPoint, ServiceRef, ServiceFactoryOrFunction, - ServiceFactory, } from '@backstage/backend-plugin-api'; /** @@ -40,7 +39,6 @@ export interface CreateSpecializedBackendOptions { export interface ServiceHolder { get(api: ServiceRef, pluginId: string): Promise | undefined; - add(serviceFactory: ServiceFactory): void; } /** From 6e7a1b07f3986cb9a68267077c170ecd36e428c3 Mon Sep 17 00:00:00 2001 From: Vincenzo Scamporlino Date: Tue, 15 Aug 2023 00:10:21 +0200 Subject: [PATCH 317/372] backend-app-api: keep track of the provided services Signed-off-by: Vincenzo Scamporlino --- .../src/wiring/BackendInitializer.test.ts | 38 +++++++++---------- .../src/wiring/BackendInitializer.ts | 28 ++++++++++---- .../src/wiring/BackstageBackend.ts | 9 ++--- 3 files changed, 42 insertions(+), 33 deletions(-) diff --git a/packages/backend-app-api/src/wiring/BackendInitializer.test.ts b/packages/backend-app-api/src/wiring/BackendInitializer.test.ts index b90bcf6691..791b9b1c3a 100644 --- a/packages/backend-app-api/src/wiring/BackendInitializer.test.ts +++ b/packages/backend-app-api/src/wiring/BackendInitializer.test.ts @@ -23,7 +23,7 @@ import { createExtensionPoint, } from '@backstage/backend-plugin-api'; import { BackendInitializer } from './BackendInitializer'; -import { ServiceRegistry } from './ServiceRegistry'; + import { lifecycleServiceFactory, loggerServiceFactory, @@ -65,7 +65,7 @@ describe('BackendInitializer', () => { const rootFactory = jest.fn(); const pluginFactory = jest.fn(); - const registry = new ServiceRegistry([ + const services = [ createServiceFactory({ service: rootRef, deps: {}, @@ -82,9 +82,9 @@ describe('BackendInitializer', () => { deps: {}, factory: () => new MockLogger(), })(), - ]); + ]; - const init = new BackendInitializer(registry); + const init = new BackendInitializer(services); await init.start(); expect(rootFactory).toHaveBeenCalled(); @@ -97,7 +97,7 @@ describe('BackendInitializer', () => { const extensionPoint = createExtensionPoint<{ values: string[] }>({ id: 'a', }); - const init = new BackendInitializer(new ServiceRegistry(baseFactories)); + const init = new BackendInitializer(baseFactories); init.add( createBackendModule({ @@ -151,7 +151,7 @@ describe('BackendInitializer', () => { }); it('should forward errors when plugins fail to start', async () => { - const init = new BackendInitializer(new ServiceRegistry([])); + const init = new BackendInitializer([]); init.add( createBackendPlugin({ pluginId: 'test', @@ -171,7 +171,7 @@ describe('BackendInitializer', () => { }); it('should forward errors when modules fail to start', async () => { - const init = new BackendInitializer(new ServiceRegistry([])); + const init = new BackendInitializer([]); init.add( createBackendModule({ pluginId: 'test', @@ -192,7 +192,7 @@ describe('BackendInitializer', () => { }); it('should reject duplicate plugins', async () => { - const init = new BackendInitializer(new ServiceRegistry([])); + const init = new BackendInitializer([]); init.add( createBackendPlugin({ pluginId: 'test', @@ -221,7 +221,7 @@ describe('BackendInitializer', () => { }); it('should reject duplicate modules', async () => { - const init = new BackendInitializer(new ServiceRegistry([])); + const init = new BackendInitializer([]); init.add( createBackendModule({ pluginId: 'test', @@ -254,16 +254,14 @@ describe('BackendInitializer', () => { it('should reject modules with circular dependencies', async () => { const extA = createExtensionPoint({ id: 'a' }); const extB = createExtensionPoint({ id: 'b' }); - const init = new BackendInitializer( - new ServiceRegistry([ - rootLifecycleServiceFactory(), - createServiceFactory({ - service: coreServices.rootLogger, - deps: {}, - factory: () => new MockLogger(), - })(), - ]), - ); + const init = new BackendInitializer([ + rootLifecycleServiceFactory(), + createServiceFactory({ + service: coreServices.rootLogger, + deps: {}, + factory: () => new MockLogger(), + })(), + ]); init.add( createBackendModule({ pluginId: 'test', @@ -296,7 +294,7 @@ describe('BackendInitializer', () => { }); it('should reject modules that depend on extension points other plugins', async () => { - const init = new BackendInitializer(new ServiceRegistry(baseFactories)); + const init = new BackendInitializer(baseFactories); const extA = createExtensionPoint({ id: 'a' }); init.add( createBackendPlugin({ diff --git a/packages/backend-app-api/src/wiring/BackendInitializer.ts b/packages/backend-app-api/src/wiring/BackendInitializer.ts index 2e90e6eb2c..b6f79e19da 100644 --- a/packages/backend-app-api/src/wiring/BackendInitializer.ts +++ b/packages/backend-app-api/src/wiring/BackendInitializer.ts @@ -30,6 +30,7 @@ import { InternalBackendFeature } from '@backstage/backend-plugin-api/src/wiring import { ForwardedError, ConflictError } from '@backstage/errors'; import { featureDiscoveryServiceRef } from '@backstage/backend-plugin-api/alpha'; import { DependencyGraph } from '../lib/DependencyGraph'; +import { ServiceRegistry } from './ServiceRegistry'; export interface BackendRegisterInit { consumes: Set; @@ -47,10 +48,12 @@ export class BackendInitializer { ExtensionPoint, { impl: unknown; pluginId: string } >(); - #serviceHolder: EnumerableServiceHolder; + #serviceHolder: EnumerableServiceHolder | undefined; + #providedServiceFactories = new Array(); + #defaultApiFactories: ServiceFactory[]; - constructor(serviceHolder: EnumerableServiceHolder) { - this.#serviceHolder = serviceHolder; + constructor(defaultApiFactories: ServiceFactory[]) { + this.#defaultApiFactories = defaultApiFactories; } async #getInitDeps( @@ -70,7 +73,7 @@ export class BackendInitializer { } result.set(name, ep.impl); } else { - const impl = await this.#serviceHolder.get( + const impl = await this.#serviceHolder!.get( ref as ServiceRef, pluginId, ); @@ -112,7 +115,16 @@ export class BackendInitializer { `The ${coreServices.pluginMetadata.id} service cannot be overridden`, ); } - this.#serviceHolder.add(feature); + if ( + this.#providedServiceFactories.find( + sf => sf.service.id === feature.service.id, + ) + ) { + throw new Error( + `Duplicate service implementations provided for ${feature.service.id}`, + ); + } + this.#providedServiceFactories.push(feature); } else if (isInternalBackendFeature(feature)) { if (feature.version !== 'v1') { throw new Error( @@ -155,6 +167,8 @@ export class BackendInitializer { } async #doStart(): Promise { + this.#serviceHolder = new ServiceRegistry(this.#defaultApiFactories); + const featureDiscovery = await this.#serviceHolder.get( featureDiscoveryServiceRef, 'root', @@ -333,7 +347,7 @@ export class BackendInitializer { // Bit of a hacky way to grab the lifecycle services, potentially find a nicer way to do this async #getRootLifecycleImpl(): Promise { - const lifecycleService = await this.#serviceHolder.get( + const lifecycleService = await this.#serviceHolder!.get( coreServices.rootLifecycle, 'root', ); @@ -346,7 +360,7 @@ export class BackendInitializer { async #getPluginLifecycleImpl( pluginId: string, ): Promise { - const lifecycleService = await this.#serviceHolder.get( + const lifecycleService = await this.#serviceHolder!.get( coreServices.lifecycle, pluginId, ); diff --git a/packages/backend-app-api/src/wiring/BackstageBackend.ts b/packages/backend-app-api/src/wiring/BackstageBackend.ts index beeefc1b1b..0ea55bc1c7 100644 --- a/packages/backend-app-api/src/wiring/BackstageBackend.ts +++ b/packages/backend-app-api/src/wiring/BackstageBackend.ts @@ -14,18 +14,15 @@ * limitations under the License. */ -import { ServiceFactory, BackendFeature } from '@backstage/backend-plugin-api'; +import { BackendFeature, ServiceFactory } from '@backstage/backend-plugin-api'; import { BackendInitializer } from './BackendInitializer'; -import { ServiceRegistry } from './ServiceRegistry'; import { Backend } from './types'; export class BackstageBackend implements Backend { - #services: ServiceRegistry; #initializer: BackendInitializer; - constructor(apiFactories: ServiceFactory[]) { - this.#services = new ServiceRegistry(apiFactories); - this.#initializer = new BackendInitializer(this.#services); + constructor(defaultServiceFactories: ServiceFactory[]) { + this.#initializer = new BackendInitializer(defaultServiceFactories); } add(feature: BackendFeature | (() => BackendFeature)): void { From f5f81edb6b3099ae787a51c03171be75532cfbbe Mon Sep 17 00:00:00 2001 From: Vincenzo Scamporlino Date: Tue, 15 Aug 2023 00:35:32 +0200 Subject: [PATCH 318/372] Update .changeset/young-lies-attack.md Co-authored-by: Patrik Oldsberg Signed-off-by: Vincenzo Scamporlino --- .changeset/young-lies-attack.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/.changeset/young-lies-attack.md b/.changeset/young-lies-attack.md index 0e9fc21e22..24c74a6503 100644 --- a/.changeset/young-lies-attack.md +++ b/.changeset/young-lies-attack.md @@ -5,9 +5,7 @@ '@backstage/backend-app-api': patch --- -Removed options from `createBackend`. - -The `createBackend` method doesn't accept any options anymore as in the following: +**BREAKING**: Removed options from `createBackend`. Service factories are now `BackendFeature`s and should be installed with `backend.add(...)` instead. The following should be migrated: ```ts const backend = createBackend({ services: [myCustomServiceFactory] }); From fa9028b68070ee7a79c4e741f765a99f569a0ed8 Mon Sep 17 00:00:00 2001 From: Vincenzo Scamporlino Date: Tue, 15 Aug 2023 00:36:24 +0200 Subject: [PATCH 319/372] Apply suggestions from code review Co-authored-by: Patrik Oldsberg Signed-off-by: Vincenzo Scamporlino --- .changeset/young-lies-attack.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.changeset/young-lies-attack.md b/.changeset/young-lies-attack.md index 24c74a6503..ebf6401d17 100644 --- a/.changeset/young-lies-attack.md +++ b/.changeset/young-lies-attack.md @@ -11,7 +11,7 @@ const backend = createBackend({ services: [myCustomServiceFactory] }); ``` -In order to pass custom service factories use the `add` method: +To instead pass the service factory via `backend.add(...)`: ```ts const backend = createBackend(); From c37c19cc3768d5c2531f514618431339b2af3bfe Mon Sep 17 00:00:00 2001 From: Vincenzo Scamporlino Date: Tue, 15 Aug 2023 00:57:22 +0200 Subject: [PATCH 320/372] backend-plugin-api: move BackendFactory to common types Signed-off-by: Vincenzo Scamporlino --- packages/backend-plugin-api/src/index.ts | 1 + .../src/services/system/index.ts | 1 - .../src/services/system/types.ts | 16 ++-------- packages/backend-plugin-api/src/types.ts | 29 +++++++++++++++++++ .../src/wiring/factories.ts | 5 +--- .../backend-plugin-api/src/wiring/types.ts | 3 +- 6 files changed, 35 insertions(+), 20 deletions(-) create mode 100644 packages/backend-plugin-api/src/types.ts diff --git a/packages/backend-plugin-api/src/index.ts b/packages/backend-plugin-api/src/index.ts index 452fa046f9..8e0b23d20b 100644 --- a/packages/backend-plugin-api/src/index.ts +++ b/packages/backend-plugin-api/src/index.ts @@ -21,4 +21,5 @@ */ export * from './services'; +export type { BackendFeature } from './types'; export * from './wiring'; diff --git a/packages/backend-plugin-api/src/services/system/index.ts b/packages/backend-plugin-api/src/services/system/index.ts index 7ffa5859c8..2b91758cbc 100644 --- a/packages/backend-plugin-api/src/services/system/index.ts +++ b/packages/backend-plugin-api/src/services/system/index.ts @@ -15,7 +15,6 @@ */ export type { - BackendFeature, ServiceRef, ServiceRefConfig, ServiceFactory, diff --git a/packages/backend-plugin-api/src/services/system/types.ts b/packages/backend-plugin-api/src/services/system/types.ts index ad8f28b565..bea53dc1ed 100644 --- a/packages/backend-plugin-api/src/services/system/types.ts +++ b/packages/backend-plugin-api/src/services/system/types.ts @@ -14,6 +14,8 @@ * limitations under the License. */ +import { BackendFeature } from '../../types'; + /** * TODO * @@ -85,20 +87,6 @@ export interface ServiceRefConfig { ) => Promise; } -/** @internal */ -export interface BackendFeatureFactory< - TOptions extends [options?: object] = [], -> { - (...options: TOptions): BackendFeature; - $$type: '@backstage/BackendFeatureFactory'; -} - -/** @public */ -export interface BackendFeature { - // NOTE: This type is opaque in order to simplify future API evolution. - $$type: '@backstage/BackendFeature'; -} - /** * Creates a new service definition. This overload is used to create plugin scoped services. * diff --git a/packages/backend-plugin-api/src/types.ts b/packages/backend-plugin-api/src/types.ts new file mode 100644 index 0000000000..59f1106fab --- /dev/null +++ b/packages/backend-plugin-api/src/types.ts @@ -0,0 +1,29 @@ +/* + * 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. + */ + +/** @internal */ +export interface BackendFeatureFactory< + TOptions extends [options?: object] = [], +> { + (...options: TOptions): BackendFeature; + $$type: '@backstage/BackendFeatureFactory'; +} + +/** @public */ +export interface BackendFeature { + // NOTE: This type is opaque in order to simplify future API evolution. + $$type: '@backstage/BackendFeature'; +} diff --git a/packages/backend-plugin-api/src/wiring/factories.ts b/packages/backend-plugin-api/src/wiring/factories.ts index 646398e56c..9fa0f87bab 100644 --- a/packages/backend-plugin-api/src/wiring/factories.ts +++ b/packages/backend-plugin-api/src/wiring/factories.ts @@ -14,10 +14,7 @@ * limitations under the License. */ -import { - BackendFeature, - BackendFeatureFactory, -} from '../services/system/types'; +import { BackendFeature, BackendFeatureFactory } from '../types'; import { BackendModuleRegistrationPoints, BackendPluginRegistrationPoints, diff --git a/packages/backend-plugin-api/src/wiring/types.ts b/packages/backend-plugin-api/src/wiring/types.ts index 8b831b3a37..55d43ccb7c 100644 --- a/packages/backend-plugin-api/src/wiring/types.ts +++ b/packages/backend-plugin-api/src/wiring/types.ts @@ -14,7 +14,8 @@ * limitations under the License. */ -import { BackendFeature, ServiceRef } from '../services/system/types'; +import { ServiceRef } from '../services/system/types'; +import { BackendFeature } from '../types'; /** * TODO From 175e4c3516d7dc1b4738652216059e9af5e40fd3 Mon Sep 17 00:00:00 2001 From: Vincenzo Scamporlino Date: Tue, 15 Aug 2023 01:08:17 +0200 Subject: [PATCH 321/372] api-reports Signed-off-by: Vincenzo Scamporlino --- packages/backend-app-api/api-report.md | 4 ++-- packages/backend-defaults/api-report.md | 9 +-------- packages/backend-plugin-api/api-report.md | 4 +--- 3 files changed, 4 insertions(+), 13 deletions(-) diff --git a/packages/backend-app-api/api-report.md b/packages/backend-app-api/api-report.md index 675a7755fc..0fa1ff376e 100644 --- a/packages/backend-app-api/api-report.md +++ b/packages/backend-app-api/api-report.md @@ -43,7 +43,7 @@ import { UrlReader } from '@backstage/backend-common'; // @public (undocumented) export interface Backend { // (undocumented) - add(feature: BackendFeature): void; + add(feature: BackendFeature | (() => BackendFeature)): void; // (undocumented) start(): Promise; // (undocumented) @@ -81,7 +81,7 @@ export function createSpecializedBackend( // @public (undocumented) export interface CreateSpecializedBackendOptions { // (undocumented) - services: ServiceFactoryOrFunction[]; + defaultServiceFactories: ServiceFactoryOrFunction[]; } // @public (undocumented) diff --git a/packages/backend-defaults/api-report.md b/packages/backend-defaults/api-report.md index 6cc58de663..ab9cc5775c 100644 --- a/packages/backend-defaults/api-report.md +++ b/packages/backend-defaults/api-report.md @@ -4,14 +4,7 @@ ```ts import { Backend } from '@backstage/backend-app-api'; -import { ServiceFactoryOrFunction } from '@backstage/backend-plugin-api'; // @public (undocumented) -export function createBackend(options?: CreateBackendOptions): Backend; - -// @public (undocumented) -export interface CreateBackendOptions { - // (undocumented) - services?: ServiceFactoryOrFunction[]; -} +export function createBackend(): Backend; ``` diff --git a/packages/backend-plugin-api/api-report.md b/packages/backend-plugin-api/api-report.md index 0789168926..17cc521499 100644 --- a/packages/backend-plugin-api/api-report.md +++ b/packages/backend-plugin-api/api-report.md @@ -409,9 +409,7 @@ export type SearchResponseFile = { export interface ServiceFactory< TService = unknown, TScope extends 'plugin' | 'root' = 'plugin' | 'root', -> { - // (undocumented) - $$type: '@backstage/ServiceFactory'; +> extends BackendFeature { // (undocumented) service: ServiceRef; } From f66d4903326ce3f4440cad82c1779a2ae152a5f5 Mon Sep 17 00:00:00 2001 From: Vincenzo Scamporlino Date: Tue, 15 Aug 2023 14:34:15 +0200 Subject: [PATCH 322/372] backend-test-utils: remove services from startTestBackend Signed-off-by: Vincenzo Scamporlino --- .../featureDiscoveryServiceFactory.test.ts | 2 +- .../scheduler/schedulerServiceFactory.test.ts | 3 +- .../src/wiring/ServiceRegistry.test.ts | 22 +++--- packages/backend-test-utils/api-report.md | 24 +----- .../src/next/wiring/TestBackend.test.ts | 54 ++++++++----- .../src/next/wiring/TestBackend.ts | 76 ++++--------------- .../app-backend/src/service/appPlugin.test.ts | 4 +- .../catalogModuleAwsS3EntityProvider.test.ts | 30 +++++--- ...logModuleAzureDevOpsEntityProvider.test.ts | 27 ++++--- ...ModuleBitbucketCloudEntityProvider.test.ts | 15 +++- ...oduleBitbucketServerEntityProvider.test.ts | 27 ++++--- .../catalogModuleGerritEntityProvider.test.ts | 27 ++++--- .../catalogModuleGithubEntityProvider.test.ts | 26 ++++--- ...oduleGitlabDiscoveryEntityProvider.test.ts | 27 ++++--- ...IncrementalIngestionEntityProvider.test.ts | 31 ++------ .../src/run.ts | 2 +- ...uleMicrosoftGraphOrgEntityProvider.test.ts | 26 ++++--- ...atalogModulePuppetDbEntityProvider.test.ts | 26 ++++--- .../performance/stitchingPerformance.test.ts | 4 +- ...oduleAwsSqsConsumingEventPublisher.test.ts | 75 +++++++++--------- ...eventsModuleAzureDevOpsEventRouter.test.ts | 1 - ...ntsModuleBitbucketCloudEventRouter.test.ts | 1 - .../eventsModuleGerritEventRouter.test.ts | 1 - .../eventsModuleGithubEventRouter.test.ts | 1 - .../service/eventsModuleGithubWebhook.test.ts | 30 ++++---- .../eventsModuleGitlabEventRouter.test.ts | 1 - .../service/eventsModuleGitlabWebhook.test.ts | 30 ++++---- .../src/service/EventsPlugin.test.ts | 37 +++++---- .../src/alpha.test.ts | 4 +- .../src/alpha.test.ts | 4 +- .../src/alpha.test.ts | 4 +- 31 files changed, 317 insertions(+), 325 deletions(-) diff --git a/packages/backend-app-api/src/alpha/featureDiscoveryServiceFactory.test.ts b/packages/backend-app-api/src/alpha/featureDiscoveryServiceFactory.test.ts index 5a5917dd3b..5d4b1fc551 100644 --- a/packages/backend-app-api/src/alpha/featureDiscoveryServiceFactory.test.ts +++ b/packages/backend-app-api/src/alpha/featureDiscoveryServiceFactory.test.ts @@ -95,7 +95,7 @@ describe('featureDiscoveryServiceFactory', () => { const fn = jest.fn().mockResolvedValue({}); await startTestBackend({ - services: [ + features: [ createServiceFactory({ service: coreServices.identity, deps: {}, diff --git a/packages/backend-app-api/src/services/implementations/scheduler/schedulerServiceFactory.test.ts b/packages/backend-app-api/src/services/implementations/scheduler/schedulerServiceFactory.test.ts index 7af9de44da..d771c5dd11 100644 --- a/packages/backend-app-api/src/services/implementations/scheduler/schedulerServiceFactory.test.ts +++ b/packages/backend-app-api/src/services/implementations/scheduler/schedulerServiceFactory.test.ts @@ -61,8 +61,7 @@ describe('schedulerFactory', () => { }); await startTestBackend({ - features: [plugin()], - services: [subject], + features: [plugin(), subject], }); }); }); diff --git a/packages/backend-app-api/src/wiring/ServiceRegistry.test.ts b/packages/backend-app-api/src/wiring/ServiceRegistry.test.ts index e698ade348..b60a24c8d8 100644 --- a/packages/backend-app-api/src/wiring/ServiceRegistry.test.ts +++ b/packages/backend-app-api/src/wiring/ServiceRegistry.test.ts @@ -31,7 +31,7 @@ const sf1 = createServiceFactory({ async factory() { return { x: 1 }; }, -})(); +}); const ref2 = createServiceRef<{ x: number }>({ scope: 'root', @@ -43,14 +43,14 @@ const sf2 = createServiceFactory({ async factory() { return { x: 2 }; }, -})(); +}); const sf2b = createServiceFactory({ service: ref2, deps: {}, async factory() { return { x: 22 }; }, -})(); +}); const refDefault1 = createServiceRef<{ x: number }>({ id: '1', @@ -61,7 +61,7 @@ const refDefault1 = createServiceRef<{ x: number }>({ async factory() { return { x: 10 }; }, - })(), + }), }); const refDefault2a = createServiceRef<{ x: number }>({ @@ -95,7 +95,7 @@ describe('ServiceRegistry', () => { }); it('should return an implementation for a registered ref', async () => { - const registry = new ServiceRegistry([sf1]); + const registry = new ServiceRegistry([sf1()]); await expect(registry.get(ref1, 'catalog')).resolves.toEqual({ x: 1 }); await expect(registry.get(ref1, 'scaffolder')).resolves.toEqual({ x: 1 }); expect(await registry.get(ref1, 'catalog')).toBe( @@ -110,7 +110,7 @@ describe('ServiceRegistry', () => { }); it('should handle multiple factories with different serviceRefs', async () => { - const registry = new ServiceRegistry([sf1, sf2]); + const registry = new ServiceRegistry([sf1(), sf2()]); await expect(registry.get(ref1, 'catalog')).resolves.toEqual({ x: 1, @@ -131,7 +131,7 @@ describe('ServiceRegistry', () => { return { x: 2 }; }, }); - const registry = new ServiceRegistry([factory(), sf1]); + const registry = new ServiceRegistry([factory(), sf1()]); await expect(registry.get(ref2, 'catalog')).rejects.toThrow( "Failed to instantiate 'root' scoped service '2' because it depends on 'plugin' scoped service '1'.", ); @@ -145,7 +145,7 @@ describe('ServiceRegistry', () => { return { x: rootDep.x }; }, }); - const registry = new ServiceRegistry([factory(), sf2]); + const registry = new ServiceRegistry([factory(), sf2()]); await expect(registry.get(ref1, 'catalog')).resolves.toEqual({ x: 2, }); @@ -160,7 +160,7 @@ describe('ServiceRegistry', () => { return { x: rootDep.x }; }, }); - const registry = new ServiceRegistry([factory(), sf2]); + const registry = new ServiceRegistry([factory(), sf2()]); await expect(registry.get(ref, 'catalog')).resolves.toEqual({ x: 2, }); @@ -182,7 +182,7 @@ describe('ServiceRegistry', () => { }); it('should use the last factory for each ref', async () => { - const registry = new ServiceRegistry([sf2, sf2b]); + const registry = new ServiceRegistry([sf2(), sf2b()]); await expect(registry.get(ref2, 'catalog')).resolves.toEqual({ x: 22, }); @@ -196,7 +196,7 @@ describe('ServiceRegistry', () => { }); it('should not use the defaultFactory from the ref if provided to the registry', async () => { - const registry = new ServiceRegistry([sf1]); + const registry = new ServiceRegistry([sf1()]); await expect(registry.get(refDefault1, 'catalog')).resolves.toEqual({ x: 1, }); diff --git a/packages/backend-test-utils/api-report.md b/packages/backend-test-utils/api-report.md index 1cb7a83a0e..d086b1d2ae 100644 --- a/packages/backend-test-utils/api-report.md +++ b/packages/backend-test-utils/api-report.md @@ -21,7 +21,6 @@ import { RootConfigService } from '@backstage/backend-plugin-api'; import { RootLifecycleService } from '@backstage/backend-plugin-api'; import { SchedulerService } from '@backstage/backend-plugin-api'; import { ServiceFactory } from '@backstage/backend-plugin-api'; -import { ServiceRef } from '@backstage/backend-plugin-api'; import { TokenManagerService } from '@backstage/backend-plugin-api'; import { UrlReaderService } from '@backstage/backend-plugin-api'; @@ -127,11 +126,8 @@ export function setupRequestMockHandlers(worker: { }): void; // @public (undocumented) -export function startTestBackend< - TServices extends any[], - TExtensionPoints extends any[], ->( - options: TestBackendOptions, +export function startTestBackend( + options: TestBackendOptions, ): Promise; // @public (undocumented) @@ -140,10 +136,7 @@ export interface TestBackend extends Backend { } // @public (undocumented) -export interface TestBackendOptions< - TServices extends any[], - TExtensionPoints extends any[], -> { +export interface TestBackendOptions { // (undocumented) extensionPoints?: readonly [ ...{ @@ -154,16 +147,7 @@ export interface TestBackendOptions< }, ]; // (undocumented) - features?: BackendFeature[]; - // (undocumented) - services?: readonly [ - ...{ - [index in keyof TServices]: - | ServiceFactory - | (() => ServiceFactory) - | [ServiceRef, Partial]; - }, - ]; + features?: Array BackendFeature)>; } // @public diff --git a/packages/backend-test-utils/src/next/wiring/TestBackend.test.ts b/packages/backend-test-utils/src/next/wiring/TestBackend.test.ts index 13b57f54ba..b127712927 100644 --- a/packages/backend-test-utils/src/next/wiring/TestBackend.test.ts +++ b/packages/backend-test-utils/src/next/wiring/TestBackend.test.ts @@ -31,7 +31,6 @@ import { startTestBackend } from './TestBackend'; let globalTestBackendHasBeenStopped = false; beforeAll(async () => { await startTestBackend({ - services: [], features: [ createBackendModule({ moduleId: 'test.module', @@ -46,7 +45,7 @@ beforeAll(async () => { }, }); }, - })(), + }), ], }); }); @@ -68,17 +67,37 @@ describe('TestBackend', () => { const extensionPoint5 = createExtensionPoint({ id: 'b5' }); await expect( startTestBackend({ - services: [ + features: [ // @ts-expect-error [extensionPoint1, { a: 'a' }], - [serviceRef, { a: 'a' }], - [serviceRef, { a: 'a', b: 'b' }], - // @ts-expect-error - [serviceRef, { c: 'c' }], - // @ts-expect-error - [serviceRef, { a: 'a', c: 'c' }], - // @ts-expect-error - [serviceRef, { a: 'a', b: 'b', c: 'c' }], + createServiceFactory(() => ({ + service: serviceRef, + deps: {}, + // @ts-expect-error + factory: async () => ({ a: 'a' }), + })), + createServiceFactory(() => ({ + service: serviceRef, + deps: {}, + factory: async () => ({ a: 'a', b: 'b' }), + })), + createServiceFactory(() => ({ + service: serviceRef, + deps: {}, + // @ts-expect-error + factory: async () => ({ c: 'c' }), + })), + createServiceFactory(() => ({ + service: serviceRef, + deps: {}, + // @ts-expect-error + factory: async () => ({ a: 'a', c: 'c' }), + })), + createServiceFactory(() => ({ + service: serviceRef, + deps: {}, + factory: async () => ({ a: 'a', b: 'b', c: 'c' }), + })), ], extensionPoints: [ // @ts-expect-error @@ -124,8 +143,7 @@ describe('TestBackend', () => { }); await startTestBackend({ - services: [sf], - features: [testModule()], + features: [testModule(), sf()], }); expect(testFn).toHaveBeenCalledWith('winning'); @@ -150,7 +168,6 @@ describe('TestBackend', () => { }); const backend = await startTestBackend({ - services: [], features: [testModule()], }); @@ -192,7 +209,6 @@ describe('TestBackend', () => { }); await startTestBackend({ - services: [], features: [testPlugin()], }); }); @@ -244,7 +260,7 @@ describe('TestBackend', () => { }, }); }, - })(), + }), createBackendModule({ pluginId: 'testB', moduleId: 'test', @@ -256,7 +272,7 @@ describe('TestBackend', () => { }, }); }, - })(), + }), ], }), ).resolves.not.toBeUndefined(); @@ -277,7 +293,7 @@ describe('TestBackend', () => { async init() {}, }); }, - })(), + }), createBackendModule({ pluginId: 'testB', moduleId: 'test', @@ -287,7 +303,7 @@ describe('TestBackend', () => { async init() {}, }); }, - })(), + }), ], }), ).rejects.toThrow( diff --git a/packages/backend-test-utils/src/next/wiring/TestBackend.ts b/packages/backend-test-utils/src/next/wiring/TestBackend.ts index 0bade8bfbb..13c05eb61c 100644 --- a/packages/backend-test-utils/src/next/wiring/TestBackend.ts +++ b/packages/backend-test-utils/src/next/wiring/TestBackend.ts @@ -24,8 +24,6 @@ import { } from '@backstage/backend-app-api'; import { HostDiscovery } from '@backstage/backend-common'; import { - ServiceFactory, - ServiceRef, createServiceFactory, BackendFeature, ExtensionPoint, @@ -40,18 +38,7 @@ import express from 'express'; import { InternalBackendFeature } from '@backstage/backend-plugin-api/src/wiring/types'; /** @public */ -export interface TestBackendOptions< - TServices extends any[], - TExtensionPoints extends any[], -> { - services?: readonly [ - ...{ - [index in keyof TServices]: - | ServiceFactory - | (() => ServiceFactory) - | [ServiceRef, Partial]; - }, - ]; +export interface TestBackendOptions { extensionPoints?: readonly [ ...{ [index in keyof TExtensionPoints]: [ @@ -60,7 +47,7 @@ export interface TestBackendOptions< ]; }, ]; - features?: BackendFeature[]; + features?: Array BackendFeature)>; } /** @public */ @@ -95,17 +82,22 @@ const defaultServiceFactories = [ * @returns */ function createExtensionPointTestModules( - features: BackendFeature[], + features: Array BackendFeature)>, extensionPointTuples?: readonly [ ref: ExtensionPoint, impl: unknown, ][], -): BackendFeature[] { +): Array<() => BackendFeature> { if (!extensionPointTuples) { return []; } - const registrations = features.flatMap(feature => { + const registrations = features.flatMap(featureOrFunction => { + const feature = + typeof featureOrFunction === 'function' + ? featureOrFunction() + : featureOrFunction; + if (feature.$$type !== '@backstage/BackendFeature') { throw new Error( `Failed to add feature, invalid type '${feature.$$type}'`, @@ -170,7 +162,7 @@ function createExtensionPointTestModules( reg.registerInit({ deps: {}, async init() {} }); }, - })(), + }), ); } @@ -180,18 +172,10 @@ function createExtensionPointTestModules( const backendInstancesToCleanUp = new Array(); /** @public */ -export async function startTestBackend< - TServices extends any[], - TExtensionPoints extends any[], ->( - options: TestBackendOptions, +export async function startTestBackend( + options: TestBackendOptions, ): Promise { - const { - services = [], - extensionPoints, - features = [], - ...otherOptions - } = options; + const { extensionPoints, features = [], ...otherOptions } = options; let server: ExtendedHttpServer; @@ -247,40 +231,10 @@ export async function startTestBackend< }, }); - const factories = services.map(serviceDef => { - if (Array.isArray(serviceDef)) { - // if type is ExtensionPoint? - // do something differently? - const [ref, impl] = serviceDef; - if (ref.scope === 'plugin') { - return createServiceFactory({ - service: ref as ServiceRef, - deps: {}, - factory: async () => impl, - })(); - } - return createServiceFactory({ - service: ref as ServiceRef, - deps: {}, - factory: async () => impl, - })(); - } - if (typeof serviceDef === 'function') { - return serviceDef(); - } - return serviceDef as ServiceFactory; - }); - - for (const factory of defaultServiceFactories) { - if (!factories.some(f => f.service.id === factory.service.id)) { - factories.push(factory); - } - } - const backend = createSpecializedBackend({ ...otherOptions, defaultServiceFactories: [ - ...factories, + ...defaultServiceFactories, rootHttpRouterFactory, discoveryFactory, ], diff --git a/plugins/app-backend/src/service/appPlugin.test.ts b/plugins/app-backend/src/service/appPlugin.test.ts index 37d38663ef..b6a972b4c7 100644 --- a/plugins/app-backend/src/service/appPlugin.test.ts +++ b/plugins/app-backend/src/service/appPlugin.test.ts @@ -39,8 +39,8 @@ describe('appPlugin', () => { it('boots', async () => { const { server } = await startTestBackend({ - features: [appPlugin()], - services: [ + features: [ + appPlugin(), mockServices.rootConfig.factory({ data: { app: { diff --git a/plugins/catalog-backend-module-aws/src/module/catalogModuleAwsS3EntityProvider.test.ts b/plugins/catalog-backend-module-aws/src/module/catalogModuleAwsS3EntityProvider.test.ts index 7599f8446f..c9fea8aa28 100644 --- a/plugins/catalog-backend-module-aws/src/module/catalogModuleAwsS3EntityProvider.test.ts +++ b/plugins/catalog-backend-module-aws/src/module/catalogModuleAwsS3EntityProvider.test.ts @@ -15,13 +15,15 @@ */ import { getVoidLogger } from '@backstage/backend-common'; -import { coreServices } from '@backstage/backend-plugin-api'; +import { + coreServices, + createServiceFactory, +} from '@backstage/backend-plugin-api'; import { PluginTaskScheduler, TaskScheduleDefinition, } from '@backstage/backend-tasks'; -import { startTestBackend } from '@backstage/backend-test-utils'; -import { ConfigReader } from '@backstage/config'; +import { mockServices, startTestBackend } from '@backstage/backend-test-utils'; import { catalogProcessingExtensionPoint } from '@backstage/plugin-catalog-node/alpha'; import { Duration } from 'luxon'; import { catalogModuleAwsS3EntityProvider } from './catalogModuleAwsS3EntityProvider'; @@ -45,7 +47,7 @@ describe('catalogModuleAwsS3EntityProvider', () => { }, } as unknown as PluginTaskScheduler; - const config = new ConfigReader({ + const config = { catalog: { providers: { awsS3: { @@ -57,16 +59,24 @@ describe('catalogModuleAwsS3EntityProvider', () => { }, }, }, - }); + }; await startTestBackend({ extensionPoints: [[catalogProcessingExtensionPoint, extensionPoint]], - services: [ - [coreServices.rootConfig, config], - [coreServices.logger, getVoidLogger()], - [coreServices.scheduler, scheduler], + features: [ + catalogModuleAwsS3EntityProvider(), + mockServices.rootConfig.factory({ data: config }), + createServiceFactory(() => ({ + service: coreServices.logger, + deps: {}, + factory: getVoidLogger, + }))(), + createServiceFactory(() => ({ + service: coreServices.scheduler, + deps: {}, + factory: () => scheduler, + }))(), ], - features: [catalogModuleAwsS3EntityProvider()], }); expect(usedSchedule?.frequency).toEqual(Duration.fromISO('P1M')); diff --git a/plugins/catalog-backend-module-azure/src/module/catalogModuleAzureDevOpsEntityProvider.test.ts b/plugins/catalog-backend-module-azure/src/module/catalogModuleAzureDevOpsEntityProvider.test.ts index e3140f4583..3147a0871b 100644 --- a/plugins/catalog-backend-module-azure/src/module/catalogModuleAzureDevOpsEntityProvider.test.ts +++ b/plugins/catalog-backend-module-azure/src/module/catalogModuleAzureDevOpsEntityProvider.test.ts @@ -14,14 +14,15 @@ * limitations under the License. */ -import { getVoidLogger } from '@backstage/backend-common'; -import { coreServices } from '@backstage/backend-plugin-api'; +import { + coreServices, + createServiceFactory, +} from '@backstage/backend-plugin-api'; import { PluginTaskScheduler, TaskScheduleDefinition, } from '@backstage/backend-tasks'; -import { startTestBackend } from '@backstage/backend-test-utils'; -import { ConfigReader } from '@backstage/config'; +import { mockServices, startTestBackend } from '@backstage/backend-test-utils'; import { catalogProcessingExtensionPoint } from '@backstage/plugin-catalog-node/alpha'; import { Duration } from 'luxon'; import { catalogModuleAzureDevOpsEntityProvider } from './catalogModuleAzureDevOpsEntityProvider'; @@ -45,7 +46,7 @@ describe('catalogModuleAzureDevOpsEntityProvider', () => { }, } as unknown as PluginTaskScheduler; - const config = new ConfigReader({ + const config = { catalog: { providers: { azureDevOps: { @@ -60,16 +61,20 @@ describe('catalogModuleAzureDevOpsEntityProvider', () => { }, }, }, - }); + }; await startTestBackend({ extensionPoints: [[catalogProcessingExtensionPoint, extensionPoint]], - services: [ - [coreServices.rootConfig, config], - [coreServices.logger, getVoidLogger()], - [coreServices.scheduler, scheduler], + features: [ + catalogModuleAzureDevOpsEntityProvider(), + mockServices.rootConfig.factory({ data: config }), + mockServices.logger.factory(), + createServiceFactory(() => ({ + deps: {}, + service: coreServices.scheduler, + factory: async () => scheduler, + })), ], - features: [catalogModuleAzureDevOpsEntityProvider()], }); expect(usedSchedule?.frequency).toEqual(Duration.fromISO('P1M')); diff --git a/plugins/catalog-backend-module-bitbucket-cloud/src/module/catalogModuleBitbucketCloudEntityProvider.test.ts b/plugins/catalog-backend-module-bitbucket-cloud/src/module/catalogModuleBitbucketCloudEntityProvider.test.ts index b46304d4e3..83769fc3f5 100644 --- a/plugins/catalog-backend-module-bitbucket-cloud/src/module/catalogModuleBitbucketCloudEntityProvider.test.ts +++ b/plugins/catalog-backend-module-bitbucket-cloud/src/module/catalogModuleBitbucketCloudEntityProvider.test.ts @@ -14,7 +14,10 @@ * limitations under the License. */ -import { coreServices } from '@backstage/backend-plugin-api'; +import { + coreServices, + createServiceFactory, +} from '@backstage/backend-plugin-api'; import { PluginTaskScheduler, TaskScheduleDefinition, @@ -55,7 +58,8 @@ describe('catalogModuleBitbucketCloudEntityProvider', () => { [catalogProcessingExtensionPoint, catalogExtensionPointImpl], [eventsExtensionPoint, eventsExtensionPointImpl], ], - services: [ + features: [ + catalogModuleBitbucketCloudEntityProvider(), mockServices.rootConfig.factory({ data: { catalog: { @@ -71,9 +75,12 @@ describe('catalogModuleBitbucketCloudEntityProvider', () => { }, }, }), - [coreServices.scheduler, scheduler], + createServiceFactory({ + service: coreServices.scheduler, + deps: {}, + factory: async () => scheduler, + }), ], - features: [catalogModuleBitbucketCloudEntityProvider()], }); expect(usedSchedule?.frequency).toEqual(Duration.fromISO('P1M')); diff --git a/plugins/catalog-backend-module-bitbucket-server/src/module/catalogModuleBitbucketServerEntityProvider.test.ts b/plugins/catalog-backend-module-bitbucket-server/src/module/catalogModuleBitbucketServerEntityProvider.test.ts index f072823052..ae4a636008 100644 --- a/plugins/catalog-backend-module-bitbucket-server/src/module/catalogModuleBitbucketServerEntityProvider.test.ts +++ b/plugins/catalog-backend-module-bitbucket-server/src/module/catalogModuleBitbucketServerEntityProvider.test.ts @@ -14,14 +14,15 @@ * limitations under the License. */ -import { ConfigReader } from '@backstage/config'; -import { getVoidLogger } from '@backstage/backend-common'; -import { coreServices } from '@backstage/backend-plugin-api'; +import { + coreServices, + createServiceFactory, +} from '@backstage/backend-plugin-api'; import { PluginTaskScheduler, TaskScheduleDefinition, } from '@backstage/backend-tasks'; -import { startTestBackend } from '@backstage/backend-test-utils'; +import { mockServices, startTestBackend } from '@backstage/backend-test-utils'; import { catalogProcessingExtensionPoint } from '@backstage/plugin-catalog-node/alpha'; import { catalogModuleBitbucketServerEntityProvider } from './catalogModuleBitbucketServerEntityProvider'; import { Duration } from 'luxon'; @@ -45,7 +46,7 @@ describe('catalogModuleBitbucketServerEntityProvider', () => { }, } as unknown as PluginTaskScheduler; - const config = new ConfigReader({ + const config = { catalog: { providers: { bitbucketServer: { @@ -64,16 +65,20 @@ describe('catalogModuleBitbucketServerEntityProvider', () => { }, ], }, - }); + }; await startTestBackend({ extensionPoints: [[catalogProcessingExtensionPoint, extensionPoint]], - services: [ - [coreServices.rootConfig, config], - [coreServices.logger, getVoidLogger()], - [coreServices.scheduler, scheduler], + features: [ + catalogModuleBitbucketServerEntityProvider(), + mockServices.rootConfig.factory({ data: config }), + mockServices.logger.factory(), + createServiceFactory({ + service: coreServices.scheduler, + deps: {}, + factory: async () => scheduler, + }), ], - features: [catalogModuleBitbucketServerEntityProvider()], }); expect(usedSchedule?.frequency).toEqual(Duration.fromISO('P1M')); diff --git a/plugins/catalog-backend-module-gerrit/src/module/catalogModuleGerritEntityProvider.test.ts b/plugins/catalog-backend-module-gerrit/src/module/catalogModuleGerritEntityProvider.test.ts index 464837124f..9807814f61 100644 --- a/plugins/catalog-backend-module-gerrit/src/module/catalogModuleGerritEntityProvider.test.ts +++ b/plugins/catalog-backend-module-gerrit/src/module/catalogModuleGerritEntityProvider.test.ts @@ -14,14 +14,15 @@ * limitations under the License. */ -import { getVoidLogger } from '@backstage/backend-common'; -import { coreServices } from '@backstage/backend-plugin-api'; +import { + coreServices, + createServiceFactory, +} from '@backstage/backend-plugin-api'; import { PluginTaskScheduler, TaskScheduleDefinition, } from '@backstage/backend-tasks'; -import { startTestBackend } from '@backstage/backend-test-utils'; -import { ConfigReader } from '@backstage/config'; +import { mockServices, startTestBackend } from '@backstage/backend-test-utils'; import { catalogProcessingExtensionPoint } from '@backstage/plugin-catalog-node/alpha'; import { Duration } from 'luxon'; import { catalogModuleGerritEntityProvider } from './catalogModuleGerritEntityProvider'; @@ -45,7 +46,7 @@ describe('catalogModuleGerritEntityProvider', () => { }, } as unknown as PluginTaskScheduler; - const config = new ConfigReader({ + const config = { catalog: { providers: { gerrit: { @@ -70,16 +71,20 @@ describe('catalogModuleGerritEntityProvider', () => { }, ], }, - }); + }; await startTestBackend({ extensionPoints: [[catalogProcessingExtensionPoint, extensionPoint]], - services: [ - [coreServices.rootConfig, config], - [coreServices.logger, getVoidLogger()], - [coreServices.scheduler, scheduler], + features: [ + catalogModuleGerritEntityProvider(), + mockServices.rootConfig.factory({ data: config }), + mockServices.logger.factory(), + createServiceFactory({ + service: coreServices.scheduler, + deps: {}, + factory: async () => scheduler, + }), ], - features: [catalogModuleGerritEntityProvider()], }); expect(usedSchedule?.frequency).toEqual(Duration.fromISO('P1M')); diff --git a/plugins/catalog-backend-module-github/src/module/catalogModuleGithubEntityProvider.test.ts b/plugins/catalog-backend-module-github/src/module/catalogModuleGithubEntityProvider.test.ts index ca82e58e26..9e36966eec 100644 --- a/plugins/catalog-backend-module-github/src/module/catalogModuleGithubEntityProvider.test.ts +++ b/plugins/catalog-backend-module-github/src/module/catalogModuleGithubEntityProvider.test.ts @@ -14,18 +14,19 @@ * limitations under the License. */ -import { getVoidLogger } from '@backstage/backend-common'; -import { coreServices } from '@backstage/backend-plugin-api'; import { PluginTaskScheduler, TaskScheduleDefinition, } from '@backstage/backend-tasks'; -import { startTestBackend } from '@backstage/backend-test-utils'; -import { ConfigReader } from '@backstage/config'; +import { mockServices, startTestBackend } from '@backstage/backend-test-utils'; import { catalogProcessingExtensionPoint } from '@backstage/plugin-catalog-node/alpha'; import { Duration } from 'luxon'; import { catalogModuleGithubEntityProvider } from './catalogModuleGithubEntityProvider'; import { GithubEntityProvider } from '../providers/GithubEntityProvider'; +import { + coreServices, + createServiceFactory, +} from '@backstage/backend-plugin-api'; describe('catalogModuleGithubEntityProvider', () => { it('should register provider at the catalog extension point', async () => { @@ -45,7 +46,7 @@ describe('catalogModuleGithubEntityProvider', () => { }, } as unknown as PluginTaskScheduler; - const config = new ConfigReader({ + const config = { catalog: { providers: { github: { @@ -57,16 +58,19 @@ describe('catalogModuleGithubEntityProvider', () => { }, }, }, - }); + }; await startTestBackend({ extensionPoints: [[catalogProcessingExtensionPoint, extensionPoint]], - services: [ - [coreServices.rootConfig, config], - [coreServices.logger, getVoidLogger()], - [coreServices.scheduler, scheduler], + features: [ + catalogModuleGithubEntityProvider(), + mockServices.rootConfig.factory({ data: config }), + createServiceFactory({ + service: coreServices.scheduler, + deps: {}, + factory: async () => scheduler, + }), ], - features: [catalogModuleGithubEntityProvider()], }); expect(usedSchedule?.frequency).toEqual(Duration.fromISO('P1M')); diff --git a/plugins/catalog-backend-module-gitlab/src/module/catalogModuleGitlabDiscoveryEntityProvider.test.ts b/plugins/catalog-backend-module-gitlab/src/module/catalogModuleGitlabDiscoveryEntityProvider.test.ts index da11601f09..22759cafa0 100644 --- a/plugins/catalog-backend-module-gitlab/src/module/catalogModuleGitlabDiscoveryEntityProvider.test.ts +++ b/plugins/catalog-backend-module-gitlab/src/module/catalogModuleGitlabDiscoveryEntityProvider.test.ts @@ -14,14 +14,15 @@ * limitations under the License. */ -import { getVoidLogger } from '@backstage/backend-common'; -import { coreServices } from '@backstage/backend-plugin-api'; +import { + coreServices, + createServiceFactory, +} from '@backstage/backend-plugin-api'; import { PluginTaskScheduler, TaskScheduleDefinition, } from '@backstage/backend-tasks'; -import { startTestBackend } from '@backstage/backend-test-utils'; -import { ConfigReader } from '@backstage/config'; +import { mockServices, startTestBackend } from '@backstage/backend-test-utils'; import { catalogProcessingExtensionPoint } from '@backstage/plugin-catalog-node/alpha'; import { Duration } from 'luxon'; import { catalogModuleGitlabDiscoveryEntityProvider } from './catalogModuleGitlabDiscoveryEntityProvider'; @@ -45,7 +46,7 @@ describe('catalogModuleGitlabDiscoveryEntityProvider', () => { }, } as unknown as PluginTaskScheduler; - const config = new ConfigReader({ + const config = { integrations: { gitlab: [ { @@ -69,16 +70,20 @@ describe('catalogModuleGitlabDiscoveryEntityProvider', () => { }, }, }, - }); + }; await startTestBackend({ extensionPoints: [[catalogProcessingExtensionPoint, extensionPoint]], - services: [ - [coreServices.rootConfig, config], - [coreServices.logger, getVoidLogger()], - [coreServices.scheduler, scheduler], + features: [ + catalogModuleGitlabDiscoveryEntityProvider(), + mockServices.rootConfig.factory({ data: config }), + mockServices.logger.factory(), + createServiceFactory({ + deps: {}, + service: coreServices.scheduler, + factory: async () => scheduler, + }), ], - features: [catalogModuleGitlabDiscoveryEntityProvider()], }); expect(usedSchedule?.frequency).toEqual(Duration.fromISO('P1M')); diff --git a/plugins/catalog-backend-module-incremental-ingestion/src/module/catalogModuleIncrementalIngestionEntityProvider.test.ts b/plugins/catalog-backend-module-incremental-ingestion/src/module/catalogModuleIncrementalIngestionEntityProvider.test.ts index 7c3dfdf226..ffb70a3060 100644 --- a/plugins/catalog-backend-module-incremental-ingestion/src/module/catalogModuleIncrementalIngestionEntityProvider.test.ts +++ b/plugins/catalog-backend-module-incremental-ingestion/src/module/catalogModuleIncrementalIngestionEntityProvider.test.ts @@ -14,13 +14,8 @@ * limitations under the License. */ -import { getVoidLogger } from '@backstage/backend-common'; -import { - coreServices, - createBackendModule, -} from '@backstage/backend-plugin-api'; -import { startTestBackend } from '@backstage/backend-test-utils'; -import { ConfigReader } from '@backstage/config'; +import { createBackendModule } from '@backstage/backend-plugin-api'; +import { mockServices, startTestBackend } from '@backstage/backend-test-utils'; import { catalogProcessingExtensionPoint } from '@backstage/plugin-catalog-node/alpha'; import { IncrementalEntityProvider } from '../types'; import { @@ -43,26 +38,16 @@ describe('catalogModuleIncrementalIngestionEntityProvider', () => { const addEntityProvider = jest.fn(); const httpRouterUse = jest.fn(); - const scheduler = {}; - const database = { - getClient: jest.fn(), - }; - const httpRouter = { - use: httpRouterUse, - }; - await startTestBackend({ extensionPoints: [ [catalogProcessingExtensionPoint, { addEntityProvider }], ], - services: [ - [coreServices.rootConfig, new ConfigReader({})], - [coreServices.database, database], - [coreServices.httpRouter, httpRouter], - [coreServices.logger, getVoidLogger()], - [coreServices.scheduler, scheduler], - ], features: [ + mockServices.rootConfig.factory(), + mockServices.database.factory(), + mockServices.httpRouter.factory(), + mockServices.logger.factory(), + mockServices.scheduler.factory(), catalogModuleIncrementalIngestionEntityProvider(), createBackendModule({ pluginId: 'catalog', @@ -82,7 +67,7 @@ describe('catalogModuleIncrementalIngestionEntityProvider', () => { }, }); }, - })(), + }), ], }); diff --git a/plugins/catalog-backend-module-incremental-ingestion/src/run.ts b/plugins/catalog-backend-module-incremental-ingestion/src/run.ts index e99ec7e41a..cfb4c20def 100644 --- a/plugins/catalog-backend-module-incremental-ingestion/src/run.ts +++ b/plugins/catalog-backend-module-incremental-ingestion/src/run.ts @@ -85,7 +85,7 @@ async function main() { }, }); }, - })(), + }), ); await backend.start(); diff --git a/plugins/catalog-backend-module-msgraph/src/module/catalogModuleMicrosoftGraphOrgEntityProvider.test.ts b/plugins/catalog-backend-module-msgraph/src/module/catalogModuleMicrosoftGraphOrgEntityProvider.test.ts index 9f1a4ead8b..96fec41cbe 100644 --- a/plugins/catalog-backend-module-msgraph/src/module/catalogModuleMicrosoftGraphOrgEntityProvider.test.ts +++ b/plugins/catalog-backend-module-msgraph/src/module/catalogModuleMicrosoftGraphOrgEntityProvider.test.ts @@ -14,14 +14,15 @@ * limitations under the License. */ -import { getVoidLogger } from '@backstage/backend-common'; -import { coreServices } from '@backstage/backend-plugin-api'; +import { + coreServices, + createServiceFactory, +} from '@backstage/backend-plugin-api'; import { PluginTaskScheduler, TaskScheduleDefinition, } from '@backstage/backend-tasks'; -import { startTestBackend } from '@backstage/backend-test-utils'; -import { ConfigReader } from '@backstage/config'; +import { mockServices, startTestBackend } from '@backstage/backend-test-utils'; import { catalogProcessingExtensionPoint } from '@backstage/plugin-catalog-node/alpha'; import { Duration } from 'luxon'; import { catalogModuleMicrosoftGraphOrgEntityProvider } from './catalogModuleMicrosoftGraphOrgEntityProvider'; @@ -45,7 +46,7 @@ describe('catalogModuleMicrosoftGraphOrgEntityProvider', () => { }, } as unknown as PluginTaskScheduler; - const config = new ConfigReader({ + const config = { catalog: { providers: { microsoftGraphOrg: { @@ -62,16 +63,19 @@ describe('catalogModuleMicrosoftGraphOrgEntityProvider', () => { }, }, }, - }); + }; await startTestBackend({ extensionPoints: [[catalogProcessingExtensionPoint, extensionPoint]], - services: [ - [coreServices.rootConfig, config], - [coreServices.logger, getVoidLogger()], - [coreServices.scheduler, scheduler], + features: [ + catalogModuleMicrosoftGraphOrgEntityProvider(), + mockServices.rootConfig.factory({ data: config }), + createServiceFactory(() => ({ + deps: {}, + service: coreServices.scheduler, + factory: async () => scheduler, + })), ], - features: [catalogModuleMicrosoftGraphOrgEntityProvider()], }); expect(usedSchedule?.frequency).toEqual(Duration.fromISO('PT30M')); diff --git a/plugins/catalog-backend-module-puppetdb/src/module/catalogModulePuppetDbEntityProvider.test.ts b/plugins/catalog-backend-module-puppetdb/src/module/catalogModulePuppetDbEntityProvider.test.ts index c167035917..3ea54d8c8f 100644 --- a/plugins/catalog-backend-module-puppetdb/src/module/catalogModulePuppetDbEntityProvider.test.ts +++ b/plugins/catalog-backend-module-puppetdb/src/module/catalogModulePuppetDbEntityProvider.test.ts @@ -14,14 +14,15 @@ * limitations under the License. */ -import { getVoidLogger } from '@backstage/backend-common'; -import { coreServices } from '@backstage/backend-plugin-api'; +import { + coreServices, + createServiceFactory, +} from '@backstage/backend-plugin-api'; import { PluginTaskScheduler, TaskScheduleDefinition, } from '@backstage/backend-tasks'; -import { startTestBackend } from '@backstage/backend-test-utils'; -import { ConfigReader } from '@backstage/config'; +import { mockServices, startTestBackend } from '@backstage/backend-test-utils'; import { catalogProcessingExtensionPoint } from '@backstage/plugin-catalog-node/alpha'; import { catalogModulePuppetDbEntityProvider } from './catalogModulePuppetDbEntityProvider'; import { PuppetDbEntityProvider } from '../providers/PuppetDbEntityProvider'; @@ -44,7 +45,7 @@ describe('catalogModulePuppetDbEntityProvider', () => { }, } as unknown as PluginTaskScheduler; - const config = new ConfigReader({ + const config = { catalog: { providers: { puppetdb: { @@ -56,16 +57,19 @@ describe('catalogModulePuppetDbEntityProvider', () => { }, }, }, - }); + }; await startTestBackend({ extensionPoints: [[catalogProcessingExtensionPoint, extensionPoint]], - services: [ - [coreServices.rootConfig, config], - [coreServices.logger, getVoidLogger()], - [coreServices.scheduler, scheduler], + features: [ + catalogModulePuppetDbEntityProvider(), + mockServices.rootConfig.factory({ data: config }), + createServiceFactory(() => ({ + deps: {}, + service: coreServices.scheduler, + factory: async () => scheduler, + })), ], - features: [catalogModulePuppetDbEntityProvider()], }); expect(usedSchedule?.frequency).toEqual({ minutes: 10 }); diff --git a/plugins/catalog-backend/src/tests/performance/stitchingPerformance.test.ts b/plugins/catalog-backend/src/tests/performance/stitchingPerformance.test.ts index 9cb20d557d..fb2bd06b96 100644 --- a/plugins/catalog-backend/src/tests/performance/stitchingPerformance.test.ts +++ b/plugins/catalog-backend/src/tests/performance/stitchingPerformance.test.ts @@ -180,7 +180,6 @@ describePerformanceTest('stitchingPerformance', () => { const tracker = new Tracker(knex, load); const backend = await startTestBackend({ - services: [staticDatabase(knex)], features: [ catalogPlugin(), createBackendModule({ @@ -201,7 +200,8 @@ describePerformanceTest('stitchingPerformance', () => { }, }); }, - })(), + }), + staticDatabase(knex), ], }); diff --git a/plugins/events-backend-module-aws-sqs/src/service/eventsModuleAwsSqsConsumingEventPublisher.test.ts b/plugins/events-backend-module-aws-sqs/src/service/eventsModuleAwsSqsConsumingEventPublisher.test.ts index 849ad733de..a76817c3c0 100644 --- a/plugins/events-backend-module-aws-sqs/src/service/eventsModuleAwsSqsConsumingEventPublisher.test.ts +++ b/plugins/events-backend-module-aws-sqs/src/service/eventsModuleAwsSqsConsumingEventPublisher.test.ts @@ -14,10 +14,12 @@ * limitations under the License. */ -import { getVoidLogger } from '@backstage/backend-common'; -import { coreServices } from '@backstage/backend-plugin-api'; -import { startTestBackend } from '@backstage/backend-test-utils'; -import { ConfigReader } from '@backstage/config'; +import { + coreServices, + createServiceFactory, + SchedulerService, +} from '@backstage/backend-plugin-api'; +import { mockServices, startTestBackend } from '@backstage/backend-test-utils'; import { eventsExtensionPoint } from '@backstage/plugin-events-node/alpha'; import { TestEventBroker } from '@backstage/plugin-events-backend-test-utils'; import { eventsModuleAwsSqsConsumingEventPublisher } from './eventsModuleAwsSqsConsumingEventPublisher'; @@ -25,31 +27,6 @@ import { AwsSqsConsumingEventPublisher } from '../publisher/AwsSqsConsumingEvent describe('eventsModuleAwsSqsConsumingEventPublisher', () => { it('should be correctly wired and set up', async () => { - const config = new ConfigReader({ - events: { - modules: { - awsSqs: { - awsSqsConsumingEventPublisher: { - topics: { - fake1: { - queue: { - region: 'eu-west-1', - url: 'https://fake1.queue.url', - }, - }, - fake2: { - queue: { - region: 'us-east-1', - url: 'https://fake2.queue.url', - }, - }, - }, - }, - }, - }, - }, - }); - let addedPublishers: AwsSqsConsumingEventPublisher[] | undefined; const extensionPoint = { addPublishers: (publishers: any) => { @@ -59,16 +36,44 @@ describe('eventsModuleAwsSqsConsumingEventPublisher', () => { const scheduler = { scheduleTask: jest.fn(), - }; + } as unknown as SchedulerService; await startTestBackend({ extensionPoints: [[eventsExtensionPoint, extensionPoint]], - services: [ - [coreServices.rootConfig, config], - [coreServices.logger, getVoidLogger()], - [coreServices.scheduler, scheduler], + features: [ + eventsModuleAwsSqsConsumingEventPublisher(), + mockServices.rootConfig.factory({ + data: { + events: { + modules: { + awsSqs: { + awsSqsConsumingEventPublisher: { + topics: { + fake1: { + queue: { + region: 'eu-west-1', + url: 'https://fake1.queue.url', + }, + }, + fake2: { + queue: { + region: 'us-east-1', + url: 'https://fake2.queue.url', + }, + }, + }, + }, + }, + }, + }, + }, + }), + createServiceFactory({ + service: coreServices.scheduler, + deps: {}, + factory: () => scheduler, + }), ], - features: [eventsModuleAwsSqsConsumingEventPublisher()], }); expect(addedPublishers).not.toBeUndefined(); diff --git a/plugins/events-backend-module-azure/src/service/eventsModuleAzureDevOpsEventRouter.test.ts b/plugins/events-backend-module-azure/src/service/eventsModuleAzureDevOpsEventRouter.test.ts index 1ff756a2d2..d67b5eb071 100644 --- a/plugins/events-backend-module-azure/src/service/eventsModuleAzureDevOpsEventRouter.test.ts +++ b/plugins/events-backend-module-azure/src/service/eventsModuleAzureDevOpsEventRouter.test.ts @@ -34,7 +34,6 @@ describe('eventsModuleAzureDevOpsEventRouter', () => { await startTestBackend({ extensionPoints: [[eventsExtensionPoint, extensionPoint]], - services: [], features: [eventsModuleAzureDevOpsEventRouter()], }); diff --git a/plugins/events-backend-module-bitbucket-cloud/src/service/eventsModuleBitbucketCloudEventRouter.test.ts b/plugins/events-backend-module-bitbucket-cloud/src/service/eventsModuleBitbucketCloudEventRouter.test.ts index 17d2252c7b..025d994b4b 100644 --- a/plugins/events-backend-module-bitbucket-cloud/src/service/eventsModuleBitbucketCloudEventRouter.test.ts +++ b/plugins/events-backend-module-bitbucket-cloud/src/service/eventsModuleBitbucketCloudEventRouter.test.ts @@ -34,7 +34,6 @@ describe('eventsModuleBitbucketCloudEventRouter', () => { await startTestBackend({ extensionPoints: [[eventsExtensionPoint, extensionPoint]], - services: [], features: [eventsModuleBitbucketCloudEventRouter()], }); diff --git a/plugins/events-backend-module-gerrit/src/service/eventsModuleGerritEventRouter.test.ts b/plugins/events-backend-module-gerrit/src/service/eventsModuleGerritEventRouter.test.ts index 88ef995966..c11f4c42db 100644 --- a/plugins/events-backend-module-gerrit/src/service/eventsModuleGerritEventRouter.test.ts +++ b/plugins/events-backend-module-gerrit/src/service/eventsModuleGerritEventRouter.test.ts @@ -34,7 +34,6 @@ describe('eventsModuleGerritEventRouter', () => { await startTestBackend({ extensionPoints: [[eventsExtensionPoint, extensionPoint]], - services: [], features: [eventsModuleGerritEventRouter()], }); diff --git a/plugins/events-backend-module-github/src/service/eventsModuleGithubEventRouter.test.ts b/plugins/events-backend-module-github/src/service/eventsModuleGithubEventRouter.test.ts index bfa186c7bc..02151d0dcf 100644 --- a/plugins/events-backend-module-github/src/service/eventsModuleGithubEventRouter.test.ts +++ b/plugins/events-backend-module-github/src/service/eventsModuleGithubEventRouter.test.ts @@ -34,7 +34,6 @@ describe('eventsModuleGithubEventRouter', () => { await startTestBackend({ extensionPoints: [[eventsExtensionPoint, extensionPoint]], - services: [], features: [eventsModuleGithubEventRouter()], }); diff --git a/plugins/events-backend-module-github/src/service/eventsModuleGithubWebhook.test.ts b/plugins/events-backend-module-github/src/service/eventsModuleGithubWebhook.test.ts index f5bb07f0d6..4effa62dd0 100644 --- a/plugins/events-backend-module-github/src/service/eventsModuleGithubWebhook.test.ts +++ b/plugins/events-backend-module-github/src/service/eventsModuleGithubWebhook.test.ts @@ -14,9 +14,7 @@ * limitations under the License. */ -import { coreServices } from '@backstage/backend-plugin-api'; -import { startTestBackend } from '@backstage/backend-test-utils'; -import { ConfigReader } from '@backstage/config'; +import { mockServices, startTestBackend } from '@backstage/backend-test-utils'; import { eventsExtensionPoint } from '@backstage/plugin-events-node/alpha'; import { HttpPostIngressOptions, @@ -47,20 +45,22 @@ describe('eventsModuleGithubWebhook', () => { }, }; - const config = new ConfigReader({ - events: { - modules: { - github: { - webhookSecret: secret, - }, - }, - }, - }); - await startTestBackend({ extensionPoints: [[eventsExtensionPoint, extensionPoint]], - services: [[coreServices.rootConfig, config]], - features: [eventsModuleGithubWebhook()], + features: [ + eventsModuleGithubWebhook(), + mockServices.rootConfig.factory({ + data: { + events: { + modules: { + github: { + webhookSecret: secret, + }, + }, + }, + }, + }), + ], }); expect(addedIngress).not.toBeUndefined(); diff --git a/plugins/events-backend-module-gitlab/src/service/eventsModuleGitlabEventRouter.test.ts b/plugins/events-backend-module-gitlab/src/service/eventsModuleGitlabEventRouter.test.ts index 86a0df6e68..34a68ccbe4 100644 --- a/plugins/events-backend-module-gitlab/src/service/eventsModuleGitlabEventRouter.test.ts +++ b/plugins/events-backend-module-gitlab/src/service/eventsModuleGitlabEventRouter.test.ts @@ -34,7 +34,6 @@ describe('eventsModuleGitlabEventRouter', () => { await startTestBackend({ extensionPoints: [[eventsExtensionPoint, extensionPoint]], - services: [], features: [eventsModuleGitlabEventRouter()], }); diff --git a/plugins/events-backend-module-gitlab/src/service/eventsModuleGitlabWebhook.test.ts b/plugins/events-backend-module-gitlab/src/service/eventsModuleGitlabWebhook.test.ts index 92e803c439..1ab116ee3d 100644 --- a/plugins/events-backend-module-gitlab/src/service/eventsModuleGitlabWebhook.test.ts +++ b/plugins/events-backend-module-gitlab/src/service/eventsModuleGitlabWebhook.test.ts @@ -14,9 +14,7 @@ * limitations under the License. */ -import { coreServices } from '@backstage/backend-plugin-api'; -import { startTestBackend } from '@backstage/backend-test-utils'; -import { ConfigReader } from '@backstage/config'; +import { mockServices, startTestBackend } from '@backstage/backend-test-utils'; import { eventsExtensionPoint } from '@backstage/plugin-events-node/alpha'; import { HttpPostIngressOptions, @@ -42,20 +40,22 @@ describe('gitlabWebhookEventsModule', () => { }, }; - const config = new ConfigReader({ - events: { - modules: { - gitlab: { - webhookSecret: 'test-secret', - }, - }, - }, - }); - await startTestBackend({ extensionPoints: [[eventsExtensionPoint, extensionPoint]], - services: [[coreServices.rootConfig, config]], - features: [eventsModuleGitlabWebhook()], + features: [ + eventsModuleGitlabWebhook(), + mockServices.rootConfig.factory({ + data: { + events: { + modules: { + gitlab: { + webhookSecret: 'test-secret', + }, + }, + }, + }, + }), + ], }); expect(addedIngress).not.toBeUndefined(); diff --git a/plugins/events-backend/src/service/EventsPlugin.test.ts b/plugins/events-backend/src/service/EventsPlugin.test.ts index bce45c9ef3..e65147ebbb 100644 --- a/plugins/events-backend/src/service/EventsPlugin.test.ts +++ b/plugins/events-backend/src/service/EventsPlugin.test.ts @@ -14,13 +14,13 @@ * limitations under the License. */ -import { errorHandler, getVoidLogger } from '@backstage/backend-common'; -import { ConfigReader } from '@backstage/config'; +import { errorHandler } from '@backstage/backend-common'; import { coreServices, createBackendModule, + createServiceFactory, } from '@backstage/backend-plugin-api'; -import { startTestBackend } from '@backstage/backend-test-utils'; +import { mockServices, startTestBackend } from '@backstage/backend-test-utils'; import { eventsExtensionPoint } from '@backstage/plugin-events-node/alpha'; import { TestEventBroker, @@ -38,14 +38,6 @@ describe('eventPlugin', () => { const publisher = new TestEventPublisher(); const subscriber = new TestEventSubscriber('sub', ['fake']); - const config = new ConfigReader({ - events: { - http: { - topics: ['fake'], - }, - }, - }); - const httpRouter = Router(); httpRouter.use(express.json()); httpRouter.use(errorHandler()); @@ -70,12 +62,25 @@ describe('eventPlugin', () => { await startTestBackend({ extensionPoints: [], - services: [ - [coreServices.rootConfig, config], - [coreServices.httpRouter, httpRouter], - [coreServices.logger, getVoidLogger()], + features: [ + eventsPlugin(), + testModule(), + mockServices.logger.factory(), + mockServices.rootConfig.factory({ + data: { + events: { + http: { + topics: ['fake'], + }, + }, + }, + }), + createServiceFactory({ + service: coreServices.httpRouter, + deps: {}, + factory: async () => httpRouter, + }), ], - features: [eventsPlugin(), testModule()], }); expect(publisher.eventBroker).toBe(eventBroker); diff --git a/plugins/search-backend-module-catalog/src/alpha.test.ts b/plugins/search-backend-module-catalog/src/alpha.test.ts index edd922b7fb..33ac978d41 100644 --- a/plugins/search-backend-module-catalog/src/alpha.test.ts +++ b/plugins/search-backend-module-catalog/src/alpha.test.ts @@ -49,8 +49,8 @@ describe('searchModuleCatalogCollator', () => { }, ], ], - features: [searchModuleCatalogCollator()], - services: [ + features: [ + searchModuleCatalogCollator(), mockServices.rootConfig.factory({ data: { search: { diff --git a/plugins/search-backend-module-explore/src/alpha.test.ts b/plugins/search-backend-module-explore/src/alpha.test.ts index b7a44e4898..4505f86c5e 100644 --- a/plugins/search-backend-module-explore/src/alpha.test.ts +++ b/plugins/search-backend-module-explore/src/alpha.test.ts @@ -34,8 +34,8 @@ describe('searchModuleExploreCollator', () => { extensionPoints: [ [searchIndexRegistryExtensionPoint, extensionPointMock], ], - features: [searchModuleExploreCollator()], - services: [ + features: [ + searchModuleExploreCollator(), mockServices.rootConfig.factory({ data: { search: { diff --git a/plugins/search-backend-module-techdocs/src/alpha.test.ts b/plugins/search-backend-module-techdocs/src/alpha.test.ts index 1e7ef494bb..d65a77a765 100644 --- a/plugins/search-backend-module-techdocs/src/alpha.test.ts +++ b/plugins/search-backend-module-techdocs/src/alpha.test.ts @@ -34,8 +34,8 @@ describe('searchModuleTechDocsCollator', () => { extensionPoints: [ [searchIndexRegistryExtensionPoint, extensionPointMock], ], - features: [searchModuleTechDocsCollator()], - services: [ + features: [ + searchModuleTechDocsCollator(), mockServices.rootConfig.factory({ data: { search: { From 09fea35cd1f738f23f15cb54ef3e3c7457de5fb4 Mon Sep 17 00:00:00 2001 From: Vincenzo Scamporlino Date: Tue, 15 Aug 2023 15:01:58 +0200 Subject: [PATCH 323/372] backend-app-api: use provided service factories Signed-off-by: Vincenzo Scamporlino --- packages/backend-app-api/src/wiring/BackendInitializer.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/backend-app-api/src/wiring/BackendInitializer.ts b/packages/backend-app-api/src/wiring/BackendInitializer.ts index b6f79e19da..93d2f6942a 100644 --- a/packages/backend-app-api/src/wiring/BackendInitializer.ts +++ b/packages/backend-app-api/src/wiring/BackendInitializer.ts @@ -167,7 +167,10 @@ export class BackendInitializer { } async #doStart(): Promise { - this.#serviceHolder = new ServiceRegistry(this.#defaultApiFactories); + this.#serviceHolder = new ServiceRegistry([ + ...this.#defaultApiFactories, + ...this.#providedServiceFactories, + ]); const featureDiscovery = await this.#serviceHolder.get( featureDiscoveryServiceRef, From 32c01a9a430f5099f7f6f9537351b5719f9d410b Mon Sep 17 00:00:00 2001 From: Vincenzo Scamporlino Date: Tue, 15 Aug 2023 15:10:53 +0200 Subject: [PATCH 324/372] remove changeset Signed-off-by: Vincenzo Scamporlino --- .changeset/selfish-pumas-draw.md | 5 ----- 1 file changed, 5 deletions(-) delete mode 100644 .changeset/selfish-pumas-draw.md diff --git a/.changeset/selfish-pumas-draw.md b/.changeset/selfish-pumas-draw.md deleted file mode 100644 index 9893b896ba..0000000000 --- a/.changeset/selfish-pumas-draw.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-catalog-backend-module-incremental-ingestion': patch ---- - -Use new backend feature api to customize `rootConfig`. From 29a4738cd90d324006b260360db735c907b745bd Mon Sep 17 00:00:00 2001 From: Vincenzo Scamporlino Date: Tue, 15 Aug 2023 16:28:10 +0200 Subject: [PATCH 325/372] backend-test-utils: detect internal features Signed-off-by: Vincenzo Scamporlino --- .../src/next/wiring/TestBackend.ts | 23 ++++++++++++++----- 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/packages/backend-test-utils/src/next/wiring/TestBackend.ts b/packages/backend-test-utils/src/next/wiring/TestBackend.ts index 13c05eb61c..97da3543ae 100644 --- a/packages/backend-test-utils/src/next/wiring/TestBackend.ts +++ b/packages/backend-test-utils/src/next/wiring/TestBackend.ts @@ -103,13 +103,16 @@ function createExtensionPointTestModules( `Failed to add feature, invalid type '${feature.$$type}'`, ); } - const internalFeature = feature as InternalBackendFeature; - if (internalFeature.version !== 'v1') { - throw new Error( - `Failed to add feature, invalid version '${internalFeature.version}'`, - ); + + if (isInternalBackendFeature(feature)) { + if (feature.version !== 'v1') { + throw new Error( + `Failed to add feature, invalid version '${feature.version}'`, + ); + } + return feature.getRegistrations(); } - return internalFeature.getRegistrations(); + return []; }); const extensionPointMap = new Map( @@ -287,3 +290,11 @@ function registerTestHooks() { } registerTestHooks(); + +function isInternalBackendFeature( + feature: BackendFeature, +): feature is InternalBackendFeature { + return ( + typeof (feature as InternalBackendFeature).getRegistrations === 'function' + ); +} From d8c8dbf4ef61a65452af2fd00640a94698cff5af Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Tue, 15 Aug 2023 17:01:38 +0200 Subject: [PATCH 326/372] Apply suggestions from code review Signed-off-by: Patrik Oldsberg --- .changeset/young-lies-attack.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.changeset/young-lies-attack.md b/.changeset/young-lies-attack.md index ebf6401d17..02a23e38e5 100644 --- a/.changeset/young-lies-attack.md +++ b/.changeset/young-lies-attack.md @@ -1,11 +1,11 @@ --- '@backstage/backend-plugin-api': patch -'@backstage/backend-test-utils': patch -'@backstage/backend-defaults': patch -'@backstage/backend-app-api': patch +'@backstage/backend-test-utils': minor +'@backstage/backend-defaults': minor +'@backstage/backend-app-api': minor --- -**BREAKING**: Removed options from `createBackend`. Service factories are now `BackendFeature`s and should be installed with `backend.add(...)` instead. The following should be migrated: +**BREAKING**: Removed the `services` option from `createBackend`. Service factories are now `BackendFeature`s and should be installed with `backend.add(...)` instead. The following should be migrated: ```ts const backend = createBackend({ services: [myCustomServiceFactory] }); From 738e4df65d893f45d2a491d82228c80d578756b4 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Tue, 15 Aug 2023 17:34:56 +0200 Subject: [PATCH 327/372] catalog-backend-module-incremental-ingestion: fix module test Signed-off-by: Patrik Oldsberg --- ...eIncrementalIngestionEntityProvider.test.ts | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/plugins/catalog-backend-module-incremental-ingestion/src/module/catalogModuleIncrementalIngestionEntityProvider.test.ts b/plugins/catalog-backend-module-incremental-ingestion/src/module/catalogModuleIncrementalIngestionEntityProvider.test.ts index ffb70a3060..ed0c776fa8 100644 --- a/plugins/catalog-backend-module-incremental-ingestion/src/module/catalogModuleIncrementalIngestionEntityProvider.test.ts +++ b/plugins/catalog-backend-module-incremental-ingestion/src/module/catalogModuleIncrementalIngestionEntityProvider.test.ts @@ -14,8 +14,12 @@ * limitations under the License. */ -import { createBackendModule } from '@backstage/backend-plugin-api'; -import { mockServices, startTestBackend } from '@backstage/backend-test-utils'; +import { + coreServices, + createBackendModule, + createServiceFactory, +} from '@backstage/backend-plugin-api'; +import { startTestBackend } from '@backstage/backend-test-utils'; import { catalogProcessingExtensionPoint } from '@backstage/plugin-catalog-node/alpha'; import { IncrementalEntityProvider } from '../types'; import { @@ -43,11 +47,11 @@ describe('catalogModuleIncrementalIngestionEntityProvider', () => { [catalogProcessingExtensionPoint, { addEntityProvider }], ], features: [ - mockServices.rootConfig.factory(), - mockServices.database.factory(), - mockServices.httpRouter.factory(), - mockServices.logger.factory(), - mockServices.scheduler.factory(), + createServiceFactory({ + service: coreServices.httpRouter, + deps: {}, + factory: () => ({ use: httpRouterUse }), + }), catalogModuleIncrementalIngestionEntityProvider(), createBackendModule({ pluginId: 'catalog', From 749d3c8c367c458df2c4d23d8de5205d9ffb549a Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Tue, 15 Aug 2023 18:59:04 +0200 Subject: [PATCH 328/372] changesets: fix invalid package name Signed-off-by: Patrik Oldsberg --- .changeset/tiny-squids-undecide.md | 2 +- plugins/permission-common/CHANGELOG.md | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.changeset/tiny-squids-undecide.md b/.changeset/tiny-squids-undecide.md index 91a047f966..f2c91eb664 100644 --- a/.changeset/tiny-squids-undecide.md +++ b/.changeset/tiny-squids-undecide.md @@ -1,5 +1,5 @@ --- -'@backstage/permission-backend': patch +'@backstage/plugin-permission-backend': patch --- Refactor backend plugin creation parameter from callback to object. diff --git a/plugins/permission-common/CHANGELOG.md b/plugins/permission-common/CHANGELOG.md index b0a2cb2b42..eaab7851bd 100644 --- a/plugins/permission-common/CHANGELOG.md +++ b/plugins/permission-common/CHANGELOG.md @@ -433,7 +433,7 @@ - b768259244: **BREAKING**: Authorize API request and response types have been updated. The existing `AuthorizeRequest` and `AuthorizeResponse` types now match the entire request and response objects for the /authorize endpoint, and new types `AuthorizeQuery` and `AuthorizeDecision` have been introduced for individual items in the request and response batches respectively. - **BREAKING**: PermissionClient has been updated to use the new request and response format in the latest version of @backstage/permission-backend. + **BREAKING**: PermissionClient has been updated to use the new request and response format in the latest version of @backstage/plugin-permission-backend. ### Patch Changes @@ -446,7 +446,7 @@ - b768259244: **BREAKING**: Authorize API request and response types have been updated. The existing `AuthorizeRequest` and `AuthorizeResponse` types now match the entire request and response objects for the /authorize endpoint, and new types `AuthorizeQuery` and `AuthorizeDecision` have been introduced for individual items in the request and response batches respectively. - **BREAKING**: PermissionClient has been updated to use the new request and response format in the latest version of @backstage/permission-backend. + **BREAKING**: PermissionClient has been updated to use the new request and response format in the latest version of @backstage/plugin-permission-backend. ### Patch Changes From aaf5cb2ca122c0c754ff25e415627b4c54e4e102 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Tue, 15 Aug 2023 17:12:48 +0000 Subject: [PATCH 329/372] Version Packages --- .changeset/analytics-millenial-whoop.md | 5 - .changeset/angry-beers-relate.md | 43 - .changeset/beige-files-reflect.md | 7 - .changeset/brown-taxis-develop.md | 5 - .changeset/chatty-foxes-buy.md | 5 - .changeset/chatty-seahorses-juggle.md | 5 - .changeset/chilly-chicken-fix.md | 5 - .changeset/chilly-keys-count.md | 5 - .changeset/clever-adults-add.md | 5 - .changeset/cold-carpets-invent.md | 5 - .changeset/cold-numbers-sleep.md | 5 - .changeset/create-app-1690284535.md | 5 - .changeset/create-app-1690892926.md | 5 - .changeset/create-app-1691503547.md | 5 - .changeset/cuddly-colts-repeat.md | 5 - .changeset/dirty-chefs-listen.md | 7 - .changeset/eighty-cycles-ring.md | 5 - .changeset/eighty-swans-sip.md | 5 - .changeset/fast-peas-live.md | 5 - .changeset/few-ducks-bake.md | 5 - .changeset/fluffy-pens-prove.md | 5 - .changeset/funny-dancers-deliver.md | 5 - .changeset/gold-hotels-pump.md | 5 - .changeset/gold-steaks-thank.md | 5 - .changeset/gorgeous-dragons-peel.md | 6 - .changeset/gorgeous-months-doubt.md | 5 - .changeset/healthy-tigers-brake.md | 5 - .changeset/heavy-suns-hope.md | 9 - .changeset/hip-experts-listen.md | 5 - .changeset/honest-fireants-applaud.md | 17 - .changeset/hot-cats-rush.md | 5 - .changeset/hungry-shrimps-care.md | 91 - .changeset/khaki-camels-rush.md | 5 - .changeset/khaki-flies-draw.md | 5 - .changeset/kind-cougars-allow.md | 14 - .changeset/large-badgers-switch.md | 5 - .changeset/large-experts-poke.md | 5 - .changeset/large-singers-chew.md | 5 - .changeset/large-vans-cross.md | 5 - .changeset/lazy-pugs-wash.md | 5 - .changeset/little-peas-decide.md | 5 - .changeset/little-penguins-build.md | 5 - .changeset/loud-garlics-press.md | 5 - .changeset/loud-wasps-smoke.md | 5 - .changeset/mean-shoes-return.md | 5 - .changeset/mean-socks-exist.md | 6 - .changeset/mean-squids-relax.md | 5 - .changeset/metal-buttons-search.md | 5 - .changeset/metal-eagles-invite.md | 5 - .changeset/metal-kings-argue.md | 5 - .changeset/mighty-lions-search-2.md | 5 - .changeset/mighty-lions-search-3.md | 5 - .changeset/mighty-lions-search.md | 5 - .changeset/modern-impalas-wave.md | 8 - .changeset/neat-coins-raise.md | 17 - .changeset/neat-lamps-press.md | 8 - .changeset/nervous-suits-give.md | 5 - .changeset/ninety-panthers-guess.md | 5 - .changeset/odd-avocados-buy.md | 5 - .changeset/orange-pandas-worry.md | 5 - .changeset/perfect-trainers-invite.md | 5 - .changeset/pink-seas-occur.md | 5 - .changeset/pink-squids-nail.md | 5 - .changeset/popular-beds-invent.md | 7 - .changeset/popular-fans-camp.md | 5 - .changeset/pre.json | 304 -- .changeset/pretty-ways-knock.md | 5 - .changeset/quick-cups-float.md | 5 - .changeset/quiet-starfishes-kick.md | 5 - .changeset/rare-pens-exist.md | 5 - .changeset/red-ghosts-train.md | 5 - .changeset/renovate-9a0aa29.md | 6 - .changeset/repo-tools-yo-dawg.md | 5 - .changeset/rich-zoos-occur.md | 6 - .changeset/rotten-dolls-sing.md | 5 - .changeset/rotten-rabbits-move.md | 5 - .changeset/rude-feet-sparkle.md | 5 - .changeset/search-donuts-wash.md | 5 - .changeset/selfish-coats-shout.md | 55 - .changeset/serious-bats-repair.md | 5 - .changeset/serious-papayas-shout.md | 5 - .changeset/serious-singers-vanish.md | 5 - .changeset/seven-cougars-smash.md | 5 - .changeset/sharp-months-think.md | 5 - .changeset/slimy-kids-jam.md | 5 - .changeset/smart-pandas-applaud.md | 7 - .changeset/sour-hats-kick.md | 5 - .changeset/stale-wombats-talk.md | 5 - .changeset/strange-shrimps-mix.md | 5 - .changeset/strong-bobcats-unite.md | 5 - .changeset/stupid-berries-run.md | 5 - .changeset/sweet-donkeys-fix.md | 5 - .changeset/sweet-feet-study.md | 5 - .changeset/tasty-lamps-shop.md | 7 - .changeset/ten-lies-cheat.md | 5 - .changeset/ten-otters-appear.md | 5 - .changeset/tender-avocados-kick.md | 7 - .changeset/tender-fireants-cheer.md | 5 - .changeset/thin-yaks-hang.md | 5 - .changeset/tidy-cobras-scream.md | 7 - .changeset/tiny-squids-accept.md | 5 - .changeset/tiny-squids-deny.md | 5 - .changeset/tiny-squids-undecide.md | 5 - .changeset/tough-dolphins-care.md | 5 - .changeset/tough-lies-float.md | 6 - .changeset/twelve-ducks-swim.md | 5 - .changeset/twelve-pigs-cough.md | 5 - .changeset/unlucky-bags-pump.md | 5 - .changeset/violet-dogs-breathe.md | 5 - .changeset/warm-peas-hang.md | 5 - .changeset/wild-timers-sparkle.md | 5 - .changeset/young-lies-attack.md | 19 - docs/releases/v1.17.0-changelog.md | 2999 +++++++++++++++++ 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 | 37 + packages/backend-app-api/package.json | 2 +- packages/backend-common/CHANGELOG.md | 24 + packages/backend-common/package.json | 2 +- packages/backend-defaults/CHANGELOG.md | 26 + packages/backend-defaults/package.json | 2 +- packages/backend-next/CHANGELOG.md | 33 + packages/backend-next/package.json | 2 +- packages/backend-openapi-utils/CHANGELOG.md | 9 + packages/backend-openapi-utils/package.json | 2 +- packages/backend-plugin-api/CHANGELOG.md | 33 + packages/backend-plugin-api/package.json | 2 +- packages/backend-tasks/CHANGELOG.md | 11 + packages/backend-tasks/package.json | 2 +- packages/backend-test-utils/CHANGELOG.md | 29 + packages/backend-test-utils/package.json | 2 +- packages/backend/CHANGELOG.md | 55 + packages/backend/package.json | 2 +- packages/cli-node/CHANGELOG.md | 10 + packages/cli-node/package.json | 2 +- packages/cli/CHANGELOG.md | 20 + packages/cli/package.json | 2 +- packages/config-loader/CHANGELOG.md | 68 + packages/config-loader/package.json | 2 +- packages/core-app-api/CHANGELOG.md | 11 + packages/core-app-api/package.json | 2 +- packages/core-components/CHANGELOG.md | 12 + packages/core-components/package.json | 2 +- packages/create-app/CHANGELOG.md | 13 + packages/create-app/package.json | 2 +- packages/dev-utils/CHANGELOG.md | 16 + packages/dev-utils/package.json | 2 +- packages/e2e-test/CHANGELOG.md | 9 + packages/e2e-test/package.json | 2 +- packages/integration-react/CHANGELOG.md | 12 + packages/integration-react/package.json | 2 +- packages/integration/CHANGELOG.md | 13 + packages/integration/package.json | 2 +- packages/repo-tools/CHANGELOG.md | 13 + 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 | 12 + packages/techdocs-cli/package.json | 2 +- packages/test-utils/CHANGELOG.md | 13 + packages/test-utils/package.json | 2 +- plugins/adr-backend/CHANGELOG.md | 15 + plugins/adr-backend/package.json | 2 +- plugins/adr-common/CHANGELOG.md | 9 + plugins/adr-common/package.json | 2 +- plugins/adr/CHANGELOG.md | 16 + plugins/adr/package.json | 2 +- plugins/airbrake-backend/CHANGELOG.md | 11 + plugins/airbrake-backend/package.json | 2 +- plugins/airbrake/CHANGELOG.md | 14 + plugins/airbrake/package.json | 2 +- plugins/allure/CHANGELOG.md | 12 + plugins/allure/package.json | 2 +- plugins/analytics-module-ga/CHANGELOG.md | 11 + plugins/analytics-module-ga/package.json | 2 +- plugins/analytics-module-ga4/CHANGELOG.md | 11 + plugins/analytics-module-ga4/package.json | 2 +- .../CHANGELOG.md | 10 + .../package.json | 2 +- plugins/apache-airflow/CHANGELOG.md | 9 + plugins/apache-airflow/package.json | 2 +- plugins/api-docs/CHANGELOG.md | 12 + plugins/api-docs/package.json | 2 +- plugins/apollo-explorer/CHANGELOG.md | 10 + plugins/apollo-explorer/package.json | 2 +- plugins/app-backend/CHANGELOG.md | 14 + plugins/app-backend/package.json | 2 +- plugins/app-node/CHANGELOG.md | 11 + plugins/app-node/package.json | 2 +- plugins/auth-backend/CHANGELOG.md | 16 + plugins/auth-backend/package.json | 2 +- plugins/auth-node/CHANGELOG.md | 10 + plugins/auth-node/package.json | 2 +- plugins/azure-devops-backend/CHANGELOG.md | 12 + 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 | 14 + plugins/badges-backend/package.json | 2 +- plugins/badges/CHANGELOG.md | 12 + plugins/badges/package.json | 2 +- plugins/bazaar-backend/CHANGELOG.md | 13 + plugins/bazaar-backend/package.json | 2 +- plugins/bazaar/CHANGELOG.md | 16 + plugins/bazaar/package.json | 2 +- plugins/bitbucket-cloud-common/CHANGELOG.md | 8 + plugins/bitbucket-cloud-common/package.json | 2 +- plugins/bitrise/CHANGELOG.md | 12 + plugins/bitrise/package.json | 2 +- .../catalog-backend-module-aws/CHANGELOG.md | 21 + .../catalog-backend-module-aws/package.json | 2 +- .../catalog-backend-module-azure/CHANGELOG.md | 18 + .../catalog-backend-module-azure/package.json | 2 +- .../CHANGELOG.md | 19 + .../package.json | 2 +- .../CHANGELOG.md | 16 + .../package.json | 2 +- .../CHANGELOG.md | 14 + .../package.json | 2 +- .../catalog-backend-module-gcp/CHANGELOG.md | 17 + .../catalog-backend-module-gcp/package.json | 2 +- .../CHANGELOG.md | 16 + .../package.json | 2 +- .../CHANGELOG.md | 22 + .../package.json | 2 +- .../CHANGELOG.md | 19 + .../package.json | 2 +- .../CHANGELOG.md | 18 + .../package.json | 2 +- .../catalog-backend-module-ldap/CHANGELOG.md | 13 + .../catalog-backend-module-ldap/package.json | 2 +- .../CHANGELOG.md | 16 + .../package.json | 2 +- .../CHANGELOG.md | 14 + .../package.json | 2 +- .../CHANGELOG.md | 16 + .../package.json | 2 +- .../CHANGELOG.md | 14 + .../package.json | 2 +- plugins/catalog-backend/CHANGELOG.md | 33 + plugins/catalog-backend/package.json | 2 +- plugins/catalog-customized/CHANGELOG.md | 8 + plugins/catalog-customized/package.json | 2 +- plugins/catalog-graph/CHANGELOG.md | 16 + plugins/catalog-graph/package.json | 2 +- plugins/catalog-import/CHANGELOG.md | 16 + plugins/catalog-import/package.json | 2 +- plugins/catalog-node/CHANGELOG.md | 13 + plugins/catalog-node/package.json | 2 +- plugins/catalog-react/CHANGELOG.md | 19 + plugins/catalog-react/package.json | 2 +- .../catalog-unprocessed-entities/CHANGELOG.md | 11 + .../catalog-unprocessed-entities/package.json | 2 +- plugins/catalog/CHANGELOG.md | 21 + plugins/catalog/package.json | 2 +- .../CHANGELOG.md | 10 + .../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 | 12 + plugins/code-climate/package.json | 2 +- plugins/code-coverage-backend/CHANGELOG.md | 13 + plugins/code-coverage-backend/package.json | 2 +- plugins/code-coverage/CHANGELOG.md | 14 + plugins/code-coverage/package.json | 2 +- plugins/codescene/CHANGELOG.md | 12 + plugins/codescene/package.json | 2 +- plugins/config-schema/CHANGELOG.md | 13 + plugins/config-schema/package.json | 2 +- plugins/cost-insights/CHANGELOG.md | 13 + plugins/cost-insights/package.json | 2 +- plugins/devtools-backend/CHANGELOG.md | 30 + plugins/devtools-backend/package.json | 2 +- plugins/devtools-common/CHANGELOG.md | 9 + plugins/devtools-common/package.json | 2 +- plugins/devtools/CHANGELOG.md | 14 + 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-common/CHANGELOG.md | 6 + plugins/entity-feedback-common/package.json | 2 +- plugins/entity-feedback/CHANGELOG.md | 14 + plugins/entity-feedback/package.json | 2 +- plugins/entity-validation/CHANGELOG.md | 15 + plugins/entity-validation/package.json | 2 +- .../CHANGELOG.md | 15 + .../package.json | 2 +- .../events-backend-module-azure/CHANGELOG.md | 9 + .../events-backend-module-azure/package.json | 2 +- .../CHANGELOG.md | 9 + .../package.json | 2 +- .../events-backend-module-gerrit/CHANGELOG.md | 9 + .../events-backend-module-gerrit/package.json | 2 +- .../events-backend-module-github/CHANGELOG.md | 11 + .../events-backend-module-github/package.json | 2 +- .../events-backend-module-gitlab/CHANGELOG.md | 11 + .../events-backend-module-gitlab/package.json | 2 +- .../events-backend-test-utils/CHANGELOG.md | 8 + .../events-backend-test-utils/package.json | 2 +- plugins/events-backend/CHANGELOG.md | 12 + plugins/events-backend/package.json | 2 +- plugins/events-node/CHANGELOG.md | 8 + plugins/events-node/package.json | 2 +- .../example-todo-list-backend/CHANGELOG.md | 11 + .../example-todo-list-backend/package.json | 2 +- plugins/example-todo-list/CHANGELOG.md | 9 + plugins/example-todo-list/package.json | 2 +- plugins/explore-backend/CHANGELOG.md | 14 + plugins/explore-backend/package.json | 2 +- plugins/explore/CHANGELOG.md | 18 + plugins/explore/package.json | 2 +- plugins/firehydrant/CHANGELOG.md | 12 + plugins/firehydrant/package.json | 2 +- plugins/fossa/CHANGELOG.md | 12 + plugins/fossa/package.json | 2 +- plugins/gcalendar/CHANGELOG.md | 11 + plugins/gcalendar/package.json | 2 +- plugins/gcp-projects/CHANGELOG.md | 9 + plugins/gcp-projects/package.json | 2 +- plugins/git-release-manager/CHANGELOG.md | 11 + plugins/git-release-manager/package.json | 2 +- plugins/github-actions/CHANGELOG.md | 13 + plugins/github-actions/package.json | 2 +- plugins/github-deployments/CHANGELOG.md | 15 + plugins/github-deployments/package.json | 2 +- plugins/github-issues/CHANGELOG.md | 14 + 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 | 11 + plugins/graphql-voyager/package.json | 2 +- plugins/home-react/CHANGELOG.md | 9 + plugins/home-react/package.json | 2 +- plugins/home/CHANGELOG.md | 15 + plugins/home/package.json | 2 +- plugins/ilert/CHANGELOG.md | 13 + plugins/ilert/package.json | 2 +- plugins/jenkins-backend/CHANGELOG.md | 17 + plugins/jenkins-backend/package.json | 2 +- plugins/jenkins-common/CHANGELOG.md | 9 + plugins/jenkins-common/package.json | 2 +- plugins/jenkins/CHANGELOG.md | 13 + plugins/jenkins/package.json | 2 +- plugins/kafka-backend/CHANGELOG.md | 12 + plugins/kafka-backend/package.json | 2 +- plugins/kafka/CHANGELOG.md | 13 + plugins/kafka/package.json | 2 +- plugins/kubernetes-backend/CHANGELOG.md | 20 + plugins/kubernetes-backend/package.json | 2 +- plugins/kubernetes/CHANGELOG.md | 22 + plugins/kubernetes/package.json | 2 +- plugins/lighthouse-backend/CHANGELOG.md | 16 + plugins/lighthouse-backend/package.json | 2 +- plugins/lighthouse/CHANGELOG.md | 13 + plugins/lighthouse/package.json | 2 +- plugins/linguist-backend/CHANGELOG.md | 24 + plugins/linguist-backend/package.json | 2 +- plugins/linguist-common/CHANGELOG.md | 7 + plugins/linguist-common/package.json | 2 +- plugins/linguist/CHANGELOG.md | 13 + plugins/linguist/package.json | 2 +- plugins/microsoft-calendar/CHANGELOG.md | 12 + plugins/microsoft-calendar/package.json | 2 +- plugins/newrelic-dashboard/CHANGELOG.md | 12 + plugins/newrelic-dashboard/package.json | 2 +- plugins/newrelic/CHANGELOG.md | 10 + plugins/newrelic/package.json | 2 +- plugins/nomad-backend/CHANGELOG.md | 10 + plugins/nomad-backend/package.json | 2 +- plugins/nomad/CHANGELOG.md | 13 + plugins/nomad/package.json | 2 +- plugins/octopus-deploy/CHANGELOG.md | 12 + plugins/octopus-deploy/package.json | 2 +- plugins/org-react/CHANGELOG.md | 13 + plugins/org-react/package.json | 2 +- plugins/org/CHANGELOG.md | 13 + plugins/org/package.json | 2 +- plugins/pagerduty/CHANGELOG.md | 14 + plugins/pagerduty/package.json | 2 +- plugins/periskop-backend/CHANGELOG.md | 11 + plugins/periskop-backend/package.json | 2 +- plugins/periskop/CHANGELOG.md | 13 + plugins/periskop/package.json | 2 +- plugins/permission-backend/CHANGELOG.md | 16 + plugins/permission-backend/package.json | 2 +- plugins/permission-node/CHANGELOG.md | 12 + plugins/permission-node/package.json | 2 +- plugins/playlist-backend/CHANGELOG.md | 16 + plugins/playlist-backend/package.json | 2 +- plugins/playlist-common/CHANGELOG.md | 8 + plugins/playlist-common/package.json | 2 +- plugins/playlist/CHANGELOG.md | 20 + plugins/playlist/package.json | 2 +- plugins/proxy-backend/CHANGELOG.md | 15 + 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 | 16 + .../package.json | 2 +- .../CHANGELOG.md | 14 + .../package.json | 2 +- .../CHANGELOG.md | 10 + .../package.json | 2 +- .../CHANGELOG.md | 14 + .../package.json | 2 +- .../CHANGELOG.md | 10 + .../package.json | 2 +- .../CHANGELOG.md | 10 + .../package.json | 2 +- plugins/scaffolder-backend/CHANGELOG.md | 49 + plugins/scaffolder-backend/package.json | 2 +- plugins/scaffolder-common/CHANGELOG.md | 13 + plugins/scaffolder-common/package.json | 2 +- plugins/scaffolder-node/CHANGELOG.md | 22 + plugins/scaffolder-node/package.json | 2 +- plugins/scaffolder-react/CHANGELOG.md | 17 + plugins/scaffolder-react/package.json | 2 +- plugins/scaffolder/CHANGELOG.md | 22 + plugins/scaffolder/package.json | 2 +- .../CHANGELOG.md | 23 + .../package.json | 2 +- .../CHANGELOG.md | 18 + .../package.json | 2 +- .../CHANGELOG.md | 17 + .../package.json | 2 +- plugins/search-backend-module-pg/CHANGELOG.md | 13 + plugins/search-backend-module-pg/package.json | 2 +- .../CHANGELOG.md | 22 + .../package.json | 2 +- plugins/search-backend-node/CHANGELOG.md | 15 + plugins/search-backend-node/package.json | 2 +- plugins/search-backend/CHANGELOG.md | 24 + plugins/search-backend/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 | 12 + plugins/shortcuts/package.json | 2 +- plugins/sonarqube-backend/CHANGELOG.md | 11 + plugins/sonarqube-backend/package.json | 2 +- plugins/sonarqube/CHANGELOG.md | 13 + plugins/sonarqube/package.json | 2 +- plugins/splunk-on-call/CHANGELOG.md | 12 + 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 | 14 + plugins/stack-overflow/package.json | 2 +- plugins/stackstorm/CHANGELOG.md | 10 + 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 | 15 + 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 | 19 + 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 | 21 + plugins/todo-backend/package.json | 2 +- plugins/todo/CHANGELOG.md | 12 + plugins/todo/package.json | 2 +- plugins/user-settings-backend/CHANGELOG.md | 13 + 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 | 12 + plugins/xcmetrics/package.json | 2 +- yarn.lock | 286 +- 515 files changed, 6245 insertions(+), 1533 deletions(-) delete mode 100644 .changeset/analytics-millenial-whoop.md delete mode 100644 .changeset/angry-beers-relate.md delete mode 100644 .changeset/beige-files-reflect.md delete mode 100644 .changeset/brown-taxis-develop.md delete mode 100644 .changeset/chatty-foxes-buy.md delete mode 100644 .changeset/chatty-seahorses-juggle.md delete mode 100644 .changeset/chilly-chicken-fix.md delete mode 100644 .changeset/chilly-keys-count.md delete mode 100644 .changeset/clever-adults-add.md delete mode 100644 .changeset/cold-carpets-invent.md delete mode 100644 .changeset/cold-numbers-sleep.md delete mode 100644 .changeset/create-app-1690284535.md delete mode 100644 .changeset/create-app-1690892926.md delete mode 100644 .changeset/create-app-1691503547.md delete mode 100644 .changeset/cuddly-colts-repeat.md delete mode 100644 .changeset/dirty-chefs-listen.md delete mode 100644 .changeset/eighty-cycles-ring.md delete mode 100644 .changeset/eighty-swans-sip.md delete mode 100644 .changeset/fast-peas-live.md delete mode 100644 .changeset/few-ducks-bake.md delete mode 100644 .changeset/fluffy-pens-prove.md delete mode 100644 .changeset/funny-dancers-deliver.md delete mode 100644 .changeset/gold-hotels-pump.md delete mode 100644 .changeset/gold-steaks-thank.md delete mode 100644 .changeset/gorgeous-dragons-peel.md delete mode 100644 .changeset/gorgeous-months-doubt.md delete mode 100644 .changeset/healthy-tigers-brake.md delete mode 100644 .changeset/heavy-suns-hope.md delete mode 100644 .changeset/hip-experts-listen.md delete mode 100644 .changeset/honest-fireants-applaud.md delete mode 100644 .changeset/hot-cats-rush.md delete mode 100644 .changeset/hungry-shrimps-care.md delete mode 100644 .changeset/khaki-camels-rush.md delete mode 100644 .changeset/khaki-flies-draw.md delete mode 100644 .changeset/kind-cougars-allow.md delete mode 100644 .changeset/large-badgers-switch.md delete mode 100644 .changeset/large-experts-poke.md delete mode 100644 .changeset/large-singers-chew.md delete mode 100644 .changeset/large-vans-cross.md delete mode 100644 .changeset/lazy-pugs-wash.md delete mode 100644 .changeset/little-peas-decide.md delete mode 100644 .changeset/little-penguins-build.md delete mode 100644 .changeset/loud-garlics-press.md delete mode 100644 .changeset/loud-wasps-smoke.md delete mode 100644 .changeset/mean-shoes-return.md delete mode 100644 .changeset/mean-socks-exist.md delete mode 100644 .changeset/mean-squids-relax.md delete mode 100644 .changeset/metal-buttons-search.md delete mode 100644 .changeset/metal-eagles-invite.md delete mode 100644 .changeset/metal-kings-argue.md delete mode 100644 .changeset/mighty-lions-search-2.md delete mode 100644 .changeset/mighty-lions-search-3.md delete mode 100644 .changeset/mighty-lions-search.md delete mode 100644 .changeset/modern-impalas-wave.md delete mode 100644 .changeset/neat-coins-raise.md delete mode 100644 .changeset/neat-lamps-press.md delete mode 100644 .changeset/nervous-suits-give.md delete mode 100644 .changeset/ninety-panthers-guess.md delete mode 100644 .changeset/odd-avocados-buy.md delete mode 100644 .changeset/orange-pandas-worry.md delete mode 100644 .changeset/perfect-trainers-invite.md delete mode 100644 .changeset/pink-seas-occur.md delete mode 100644 .changeset/pink-squids-nail.md delete mode 100644 .changeset/popular-beds-invent.md delete mode 100644 .changeset/popular-fans-camp.md delete mode 100644 .changeset/pre.json delete mode 100644 .changeset/pretty-ways-knock.md delete mode 100644 .changeset/quick-cups-float.md delete mode 100644 .changeset/quiet-starfishes-kick.md delete mode 100644 .changeset/rare-pens-exist.md delete mode 100644 .changeset/red-ghosts-train.md delete mode 100644 .changeset/renovate-9a0aa29.md delete mode 100644 .changeset/repo-tools-yo-dawg.md delete mode 100644 .changeset/rich-zoos-occur.md delete mode 100644 .changeset/rotten-dolls-sing.md delete mode 100644 .changeset/rotten-rabbits-move.md delete mode 100644 .changeset/rude-feet-sparkle.md delete mode 100644 .changeset/search-donuts-wash.md delete mode 100644 .changeset/selfish-coats-shout.md delete mode 100644 .changeset/serious-bats-repair.md delete mode 100644 .changeset/serious-papayas-shout.md delete mode 100644 .changeset/serious-singers-vanish.md delete mode 100644 .changeset/seven-cougars-smash.md delete mode 100644 .changeset/sharp-months-think.md delete mode 100644 .changeset/slimy-kids-jam.md delete mode 100644 .changeset/smart-pandas-applaud.md delete mode 100644 .changeset/sour-hats-kick.md delete mode 100644 .changeset/stale-wombats-talk.md delete mode 100644 .changeset/strange-shrimps-mix.md delete mode 100644 .changeset/strong-bobcats-unite.md delete mode 100644 .changeset/stupid-berries-run.md delete mode 100644 .changeset/sweet-donkeys-fix.md delete mode 100644 .changeset/sweet-feet-study.md delete mode 100644 .changeset/tasty-lamps-shop.md delete mode 100644 .changeset/ten-lies-cheat.md delete mode 100644 .changeset/ten-otters-appear.md delete mode 100644 .changeset/tender-avocados-kick.md delete mode 100644 .changeset/tender-fireants-cheer.md delete mode 100644 .changeset/thin-yaks-hang.md delete mode 100644 .changeset/tidy-cobras-scream.md delete mode 100644 .changeset/tiny-squids-accept.md delete mode 100644 .changeset/tiny-squids-deny.md delete mode 100644 .changeset/tiny-squids-undecide.md delete mode 100644 .changeset/tough-dolphins-care.md delete mode 100644 .changeset/tough-lies-float.md delete mode 100644 .changeset/twelve-ducks-swim.md delete mode 100644 .changeset/twelve-pigs-cough.md delete mode 100644 .changeset/unlucky-bags-pump.md delete mode 100644 .changeset/violet-dogs-breathe.md delete mode 100644 .changeset/warm-peas-hang.md delete mode 100644 .changeset/wild-timers-sparkle.md delete mode 100644 .changeset/young-lies-attack.md create mode 100644 docs/releases/v1.17.0-changelog.md diff --git a/.changeset/analytics-millenial-whoop.md b/.changeset/analytics-millenial-whoop.md deleted file mode 100644 index 265e0072ce..0000000000 --- a/.changeset/analytics-millenial-whoop.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/core-app-api': patch ---- - -Fixed a bug that could cause `navigate` analytics events to be misattributed to the plugin mounted on the root route (e.g. the `home` plugin at `/`) when the route that was navigated to wasn't associated with a routable extension. diff --git a/.changeset/angry-beers-relate.md b/.changeset/angry-beers-relate.md deleted file mode 100644 index 4e51de99e4..0000000000 --- a/.changeset/angry-beers-relate.md +++ /dev/null @@ -1,43 +0,0 @@ ---- -'@backstage/plugin-catalog-backend-module-incremental-ingestion': patch -'@backstage/plugin-catalog-backend-module-bitbucket-server': patch -'@backstage/plugin-catalog-backend-module-bitbucket-cloud': patch -'@backstage/plugin-search-backend-module-elasticsearch': patch -'@backstage/plugin-catalog-backend-module-puppetdb': patch -'@backstage/plugin-catalog-backend-module-msgraph': patch -'@backstage/plugin-search-backend-module-techdocs': patch -'@backstage/plugin-catalog-backend-module-gerrit': patch -'@backstage/plugin-catalog-backend-module-github': patch -'@backstage/plugin-catalog-backend-module-gitlab': patch -'@backstage/plugin-events-backend-module-aws-sqs': patch -'@backstage/plugin-search-backend-module-catalog': patch -'@backstage/plugin-search-backend-module-explore': patch -'@backstage/plugin-catalog-backend-module-azure': patch -'@backstage/plugin-events-backend-module-github': patch -'@backstage/plugin-events-backend-module-gitlab': patch -'@backstage/plugin-catalog-backend-module-aws': patch -'@backstage/plugin-catalog-backend-module-gcp': patch -'@backstage/plugin-search-backend-module-pg': patch -'@backstage/plugin-azure-devops-backend': patch -'@backstage/plugin-kubernetes-backend': patch -'@backstage/plugin-lighthouse-backend': patch -'@backstage/plugin-permission-backend': patch -'@backstage/plugin-scaffolder-backend': patch -'@backstage/backend-defaults': patch -'@backstage/plugin-airbrake-backend': patch -'@backstage/plugin-devtools-backend': patch -'@backstage/plugin-periskop-backend': patch -'@backstage/plugin-techdocs-backend': patch -'@backstage/backend-common': patch -'@backstage/plugin-catalog-backend': patch -'@backstage/plugin-badges-backend': patch -'@backstage/plugin-bazaar-backend': patch -'@backstage/plugin-events-backend': patch -'@backstage/plugin-search-backend': patch -'@backstage/plugin-kafka-backend': patch -'@backstage/plugin-proxy-backend': patch -'@backstage/plugin-todo-backend': patch -'@backstage/plugin-app-backend': patch ---- - -Use `coreServices.rootConfig` instead of `coreService.config` diff --git a/.changeset/beige-files-reflect.md b/.changeset/beige-files-reflect.md deleted file mode 100644 index e888d5e0f8..0000000000 --- a/.changeset/beige-files-reflect.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -'@backstage/plugin-search-backend-module-techdocs': patch -'@backstage/plugin-search-backend-module-catalog': patch -'@backstage/plugin-search-backend-module-explore': patch ---- - -Ensure that all services are dependency injected into the module instead of taken from options diff --git a/.changeset/brown-taxis-develop.md b/.changeset/brown-taxis-develop.md deleted file mode 100644 index 19ebfdef1a..0000000000 --- a/.changeset/brown-taxis-develop.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/backend-app-api': patch ---- - -Do not throw in backend.stop, if start failed diff --git a/.changeset/chatty-foxes-buy.md b/.changeset/chatty-foxes-buy.md deleted file mode 100644 index 609ddc5269..0000000000 --- a/.changeset/chatty-foxes-buy.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-catalog-graph': patch ---- - -Propagate entity spec to EntityNode so that spec info such as type can be used for graph node customization diff --git a/.changeset/chatty-seahorses-juggle.md b/.changeset/chatty-seahorses-juggle.md deleted file mode 100644 index 8d699699a7..0000000000 --- a/.changeset/chatty-seahorses-juggle.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-kubernetes-backend': patch ---- - -Fixed a bug where the proxy was not rewriting WebSocket request paths properly. diff --git a/.changeset/chilly-chicken-fix.md b/.changeset/chilly-chicken-fix.md deleted file mode 100644 index 451789a56f..0000000000 --- a/.changeset/chilly-chicken-fix.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-scaffolder-backend-module-confluence-to-markdown': patch ---- - -Added example for the `confluence:transform:markdown` that will show in the installed actions list diff --git a/.changeset/chilly-keys-count.md b/.changeset/chilly-keys-count.md deleted file mode 100644 index 3bbc4e40dc..0000000000 --- a/.changeset/chilly-keys-count.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-playlist': patch ---- - -Displaying an alert popup each time the Playlist is created or deleted diff --git a/.changeset/clever-adults-add.md b/.changeset/clever-adults-add.md deleted file mode 100644 index 7da5dda4d0..0000000000 --- a/.changeset/clever-adults-add.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-pagerduty': patch ---- - -Add new `disableChangeEvents` prop to `EntityPagerDutyCard` to hide the Change Events tab and disable fetching of change events for the PagerDuty service. diff --git a/.changeset/cold-carpets-invent.md b/.changeset/cold-carpets-invent.md deleted file mode 100644 index f30c60131d..0000000000 --- a/.changeset/cold-carpets-invent.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-scaffolder-backend': patch ---- - -Removed the options from the alpha `scaffolderPlugin` export. To extend the scaffolder plugin you instead now use the available extension points, `scaffolderActionsExtensionPoint`, `scaffolderTaskBrokerExtensionPoint`, and `scaffolderTemplatingExtensionPoint`. diff --git a/.changeset/cold-numbers-sleep.md b/.changeset/cold-numbers-sleep.md deleted file mode 100644 index ac53307b07..0000000000 --- a/.changeset/cold-numbers-sleep.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-scaffolder': patch ---- - -Fix the get entities query in the `MyGroupsPicker` to query the `kind=Group` entities. diff --git a/.changeset/create-app-1690284535.md b/.changeset/create-app-1690284535.md deleted file mode 100644 index b50d431d4b..0000000000 --- a/.changeset/create-app-1690284535.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/create-app': patch ---- - -Bumped create-app version. diff --git a/.changeset/create-app-1690892926.md b/.changeset/create-app-1690892926.md deleted file mode 100644 index b50d431d4b..0000000000 --- a/.changeset/create-app-1690892926.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/create-app': patch ---- - -Bumped create-app version. diff --git a/.changeset/create-app-1691503547.md b/.changeset/create-app-1691503547.md deleted file mode 100644 index b50d431d4b..0000000000 --- a/.changeset/create-app-1691503547.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/create-app': patch ---- - -Bumped create-app version. diff --git a/.changeset/cuddly-colts-repeat.md b/.changeset/cuddly-colts-repeat.md deleted file mode 100644 index 8266eb7ff0..0000000000 --- a/.changeset/cuddly-colts-repeat.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-catalog-graph': patch ---- - -Added maximum depth parameter to the catalogGraphParams in CatalogGraphCard. diff --git a/.changeset/dirty-chefs-listen.md b/.changeset/dirty-chefs-listen.md deleted file mode 100644 index 84b684b977..0000000000 --- a/.changeset/dirty-chefs-listen.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -'@backstage/config-loader': minor ---- - -Loading invalid TypeScript configuration schemas will now throw an error rather than silently being ignored. - -In particular this includes defining any additional types other than `Config` in the schema file, or use of unsupported types such as `Record` or `Partial`. diff --git a/.changeset/eighty-cycles-ring.md b/.changeset/eighty-cycles-ring.md deleted file mode 100644 index dae404a3ff..0000000000 --- a/.changeset/eighty-cycles-ring.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/create-app': patch ---- - -Bump to a newer version of the `concurrently` library diff --git a/.changeset/eighty-swans-sip.md b/.changeset/eighty-swans-sip.md deleted file mode 100644 index 240e68c69c..0000000000 --- a/.changeset/eighty-swans-sip.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/backend-plugin-api': minor ---- - -**BREAKING**: It is no longer possible to declare options as being required with `createServiceFactory`. diff --git a/.changeset/fast-peas-live.md b/.changeset/fast-peas-live.md deleted file mode 100644 index 5cf91079b9..0000000000 --- a/.changeset/fast-peas-live.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-catalog-backend': patch ---- - -Internal refactor for load test diff --git a/.changeset/few-ducks-bake.md b/.changeset/few-ducks-bake.md deleted file mode 100644 index b9ce6941c3..0000000000 --- a/.changeset/few-ducks-bake.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-explore': patch ---- - -Support `material-ui` overrides in plugin-explore components diff --git a/.changeset/fluffy-pens-prove.md b/.changeset/fluffy-pens-prove.md deleted file mode 100644 index 0bd7d9baf3..0000000000 --- a/.changeset/fluffy-pens-prove.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-auth-backend': patch ---- - -Updated `frameHandler` to return `undefined` when using the redirect flow instead of returning `postMessageReponse` which was causing errors diff --git a/.changeset/funny-dancers-deliver.md b/.changeset/funny-dancers-deliver.md deleted file mode 100644 index 0518fe0a01..0000000000 --- a/.changeset/funny-dancers-deliver.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-scaffolder-backend': patch ---- - -Added examples for the `fs:delete` and `fs:rename` actions diff --git a/.changeset/gold-hotels-pump.md b/.changeset/gold-hotels-pump.md deleted file mode 100644 index ab94eac676..0000000000 --- a/.changeset/gold-hotels-pump.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/dev-utils': patch ---- - -Removed deprecated calls to `app.getProvider()` and `app.getRouter()` in `DevAppBuilder` diff --git a/.changeset/gold-steaks-thank.md b/.changeset/gold-steaks-thank.md deleted file mode 100644 index 03ed14653c..0000000000 --- a/.changeset/gold-steaks-thank.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-graphql-voyager': patch ---- - -Fix typo in install instructions. diff --git a/.changeset/gorgeous-dragons-peel.md b/.changeset/gorgeous-dragons-peel.md deleted file mode 100644 index d067ca0ae7..0000000000 --- a/.changeset/gorgeous-dragons-peel.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -'@backstage/backend-plugin-api': patch -'@backstage/backend-app-api': patch ---- - -Allow modules to register extension points. diff --git a/.changeset/gorgeous-months-doubt.md b/.changeset/gorgeous-months-doubt.md deleted file mode 100644 index d440e28b72..0000000000 --- a/.changeset/gorgeous-months-doubt.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/backend-openapi-utils': patch ---- - -Add a new `createRouter` method for generating an `express` router that validates against your spec. Also fixes a bug with the query parameters type resolution. diff --git a/.changeset/healthy-tigers-brake.md b/.changeset/healthy-tigers-brake.md deleted file mode 100644 index c224d50583..0000000000 --- a/.changeset/healthy-tigers-brake.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-org': patch ---- - -Fixed bug in MembersListCard component where the url for the members was static which was breaking the component when catalog route was changed diff --git a/.changeset/heavy-suns-hope.md b/.changeset/heavy-suns-hope.md deleted file mode 100644 index 334aa55dd3..0000000000 --- a/.changeset/heavy-suns-hope.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -'@backstage/backend-common': patch ---- - -To improve performance, `GerritUrlReader.readTree()` now uses Gitiles to fetch an archive instead of cloning the repository. -If `gitilesBaseUrl` is not configured, `readTree` still uses Git to clone the repository. - -Added `stripFirstDirectory` option to `ReadTreeResponseFactory.fromTarArchive()`, allowing to disable stripping first directory -for `tar` archives. diff --git a/.changeset/hip-experts-listen.md b/.changeset/hip-experts-listen.md deleted file mode 100644 index 9abf791c21..0000000000 --- a/.changeset/hip-experts-listen.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/create-app': patch ---- - -Updated the `app-config.yaml` template to use `proxy.endpoints`. diff --git a/.changeset/honest-fireants-applaud.md b/.changeset/honest-fireants-applaud.md deleted file mode 100644 index 2fd29e493a..0000000000 --- a/.changeset/honest-fireants-applaud.md +++ /dev/null @@ -1,17 +0,0 @@ ---- -'@backstage/plugin-scaffolder-backend': patch ---- - -Deprecated the following type exports, which have been moved to `@backstage/plugin-scaffolder-node` instead: - -- `TemplateFilter` -- `TemplateGlobal` -- `TaskStatus` -- `TaskCompletionState` -- `SerializedTask` -- `TaskEventType` -- `SerializedTaskEvent` -- `TaskBrokerDispatchResult` -- `TaskBrokerDispatchOptions` -- `TaskContext` -- `TaskBroker` diff --git a/.changeset/hot-cats-rush.md b/.changeset/hot-cats-rush.md deleted file mode 100644 index 2963804ff2..0000000000 --- a/.changeset/hot-cats-rush.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-explore-backend': patch ---- - -Moved the config example from the "Tools as Code" section to the "Tools as Config" section of the README diff --git a/.changeset/hungry-shrimps-care.md b/.changeset/hungry-shrimps-care.md deleted file mode 100644 index 665a7bfc82..0000000000 --- a/.changeset/hungry-shrimps-care.md +++ /dev/null @@ -1,91 +0,0 @@ ---- -'@backstage/plugin-scaffolder-backend-module-confluence-to-markdown': patch -'@backstage/plugin-scaffolder-backend-module-cookiecutter': patch -'@backstage/plugin-events-backend-module-bitbucket-cloud': patch -'@backstage/plugin-search-backend-module-elasticsearch': patch -'@backstage/plugin-catalog-backend-module-unprocessed': patch -'@backstage/plugin-scaffolder-backend-module-sentry': patch -'@backstage/plugin-scaffolder-backend-module-yeoman': patch -'@backstage/plugin-scaffolder-backend-module-rails': patch -'@backstage/plugin-search-backend-module-techdocs': patch -'@backstage/plugin-cicd-statistics-module-gitlab': patch -'@backstage/plugin-events-backend-module-aws-sqs': patch -'@backstage/plugin-search-backend-module-catalog': patch -'@backstage/plugin-search-backend-module-explore': patch -'@backstage/plugin-events-backend-module-gerrit': patch -'@backstage/plugin-events-backend-module-github': patch -'@backstage/plugin-events-backend-module-gitlab': patch -'@backstage/plugin-events-backend-module-azure': patch -'@backstage/plugin-events-backend-test-utils': patch -'@backstage/plugin-search-backend-module-pg': patch -'@backstage/plugin-entity-feedback-backend': patch -'@backstage/backend-openapi-utils': patch -'@backstage/plugin-bitbucket-cloud-common': patch -'@backstage/plugin-entity-feedback-common': patch -'@backstage/plugin-code-coverage-backend': patch -'@backstage/plugin-user-settings-backend': patch -'@backstage/plugin-analytics-module-ga4': patch -'@backstage/plugin-azure-devops-backend': patch -'@backstage/plugin-analytics-module-ga': patch -'@backstage/plugin-git-release-manager': patch -'@backstage/plugin-search-backend-node': patch -'@backstage/integration-react': patch -'@backstage/plugin-github-deployments': patch -'@backstage/plugin-microsoft-calendar': patch -'@backstage/plugin-newrelic-dashboard': patch -'@backstage/plugin-permission-backend': patch -'@backstage/plugin-entity-validation': patch -'@backstage/plugin-sonarqube-backend': patch -'@backstage/plugin-airbrake-backend': patch -'@backstage/plugin-devtools-backend': patch -'@backstage/plugin-linguist-backend': patch -'@backstage/plugin-periskop-backend': patch -'@backstage/plugin-playlist-backend': patch -'@backstage/plugin-apollo-explorer': patch -'@backstage/plugin-devtools-common': patch -'@backstage/plugin-entity-feedback': patch -'@backstage/plugin-explore-backend': patch -'@backstage/plugin-graphql-voyager': patch -'@backstage/plugin-jenkins-backend': patch -'@backstage/plugin-linguist-common': patch -'@backstage/plugin-playlist-common': patch -'@backstage/plugin-scaffolder-node': patch -'@backstage/plugin-apache-airflow': patch -'@backstage/plugin-bazaar-backend': patch -'@backstage/plugin-events-backend': patch -'@backstage/plugin-jenkins-common': patch -'@backstage/plugin-octopus-deploy': patch -'@backstage/plugin-search-backend': patch -'@backstage/plugin-stack-overflow': patch -'@backstage/plugin-catalog-graph': patch -'@backstage/plugin-code-coverage': patch -'@backstage/plugin-config-schema': patch -'@backstage/plugin-github-issues': patch -'@backstage/plugin-nomad-backend': patch -'@backstage/plugin-tech-insights': patch -'@backstage/plugin-catalog-node': patch -'@backstage/plugin-code-climate': patch -'@backstage/plugin-events-node': patch -'@backstage/plugin-firehydrant': patch -'@backstage/cli-node': patch -'@backstage/plugin-auth-node': patch -'@backstage/plugin-codescene': patch -'@backstage/plugin-dynatrace': patch -'@backstage/plugin-gcalendar': patch -'@backstage/plugin-org-react': patch -'@backstage/plugin-shortcuts': patch -'@backstage/plugin-xcmetrics': patch -'@backstage/plugin-airbrake': patch -'@backstage/plugin-periskop': patch -'@backstage/plugin-playlist': patch -'@backstage/plugin-bitrise': patch -'@backstage/plugin-allure': patch -'@backstage/plugin-bazaar': patch -'@backstage/plugin-ilert': patch -'@backstage/plugin-kafka': patch -'@backstage/plugin-nomad': patch -'@backstage/plugin-adr': patch -'@backstage/plugin-org': patch ---- - -Add package repository and homepage metadata diff --git a/.changeset/khaki-camels-rush.md b/.changeset/khaki-camels-rush.md deleted file mode 100644 index a38600abf3..0000000000 --- a/.changeset/khaki-camels-rush.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-newrelic': patch ---- - -The newrelic plugin now supports pagination when retrieving results from newrelic. It will no longer truncate results. To see all applications, the link header will need to be allowed through the proxy (see the newrelic plugin readme). diff --git a/.changeset/khaki-flies-draw.md b/.changeset/khaki-flies-draw.md deleted file mode 100644 index ada45dea06..0000000000 --- a/.changeset/khaki-flies-draw.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-catalog-backend-module-gitlab': patch ---- - -Added option to skip forked repos in GitlabDiscoveryEntityProvider diff --git a/.changeset/kind-cougars-allow.md b/.changeset/kind-cougars-allow.md deleted file mode 100644 index d37c4c5cf2..0000000000 --- a/.changeset/kind-cougars-allow.md +++ /dev/null @@ -1,14 +0,0 @@ ---- -'@backstage/plugin-devtools-backend': patch ---- - -Add DevTools configuration to enable dependency listing to be filtered with custom prefixes. For instance, in your `app-config.yaml`: - -```yaml -devTools: - info: - packagePrefixes: - - @backstage/ - - @roadiehq/backstage- - - @spotify/backstage- -``` diff --git a/.changeset/large-badgers-switch.md b/.changeset/large-badgers-switch.md deleted file mode 100644 index 47c06a4afe..0000000000 --- a/.changeset/large-badgers-switch.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-linguist-common': patch ---- - -Exported new LanguageType type alias diff --git a/.changeset/large-experts-poke.md b/.changeset/large-experts-poke.md deleted file mode 100644 index 9f6ca640b6..0000000000 --- a/.changeset/large-experts-poke.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-linguist-backend': patch ---- - -Fixed bug in LinguistBackendClient.ts file where if the linguistJsOptions is specified and sent over to the linguist-js package it would get changed (another attribute would be added) causing future entities of the batch to fail with an error diff --git a/.changeset/large-singers-chew.md b/.changeset/large-singers-chew.md deleted file mode 100644 index 67ff4ffd0d..0000000000 --- a/.changeset/large-singers-chew.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-playlist': patch ---- - -Adding alert popup whenever user delete the entities from playlist entity table diff --git a/.changeset/large-vans-cross.md b/.changeset/large-vans-cross.md deleted file mode 100644 index f50b432742..0000000000 --- a/.changeset/large-vans-cross.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-sonarqube': patch ---- - -Remove sonarQube card disable class diff --git a/.changeset/lazy-pugs-wash.md b/.changeset/lazy-pugs-wash.md deleted file mode 100644 index 923ef5b116..0000000000 --- a/.changeset/lazy-pugs-wash.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-app-node': minor ---- - -Added the `app` plugin node library, initially providing an extension point that can be used to configure a static fallback handler. diff --git a/.changeset/little-peas-decide.md b/.changeset/little-peas-decide.md deleted file mode 100644 index 3eb3d0cf9d..0000000000 --- a/.changeset/little-peas-decide.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-scaffolder-node': patch ---- - -Added several new types that were moved from `@backstage/plugin-scaffolder-backend`. diff --git a/.changeset/little-penguins-build.md b/.changeset/little-penguins-build.md deleted file mode 100644 index 9e54a566e2..0000000000 --- a/.changeset/little-penguins-build.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-catalog-backend': minor ---- - -Support configuring applicable kinds for `AnnotateScmSlugEntityProcessor` diff --git a/.changeset/loud-garlics-press.md b/.changeset/loud-garlics-press.md deleted file mode 100644 index 28aee20619..0000000000 --- a/.changeset/loud-garlics-press.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/cli': patch ---- - -Reload the frontend when app config changes diff --git a/.changeset/loud-wasps-smoke.md b/.changeset/loud-wasps-smoke.md deleted file mode 100644 index ca33bf27ac..0000000000 --- a/.changeset/loud-wasps-smoke.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-catalog-backend-module-msgraph': patch ---- - -The alpha `catalogModuleMicrosoftGraphOrgEntityProvider` export no longer accepts options. Transformers are now instead configured via the `microsoftGraphOrgEntityProviderTransformExtensionPoint`. diff --git a/.changeset/mean-shoes-return.md b/.changeset/mean-shoes-return.md deleted file mode 100644 index 29973a6cbd..0000000000 --- a/.changeset/mean-shoes-return.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-scaffolder-node': patch ---- - -Added two new alpha extension points, `scaffolderTaskBrokerExtensionPoint` and `scaffolderTemplatingExtensionPoint`. diff --git a/.changeset/mean-socks-exist.md b/.changeset/mean-socks-exist.md deleted file mode 100644 index 79664b6600..0000000000 --- a/.changeset/mean-socks-exist.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -'@backstage/integration': minor ---- - -Added `buildGerritGitilesArchiveUrl()` to construct a Gitiles URL to download an archive. -Gitiles URL that uses an authenticated prefix (`/a/`) can now be parsed by the integration. diff --git a/.changeset/mean-squids-relax.md b/.changeset/mean-squids-relax.md deleted file mode 100644 index 558b42fcfc..0000000000 --- a/.changeset/mean-squids-relax.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-home-react': patch ---- - -Make `title` optional when defining the `createCardExtension` diff --git a/.changeset/metal-buttons-search.md b/.changeset/metal-buttons-search.md deleted file mode 100644 index 9578d8d2d4..0000000000 --- a/.changeset/metal-buttons-search.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-scaffolder-backend': patch ---- - -Adds examples to a few scaffolder actions. diff --git a/.changeset/metal-eagles-invite.md b/.changeset/metal-eagles-invite.md deleted file mode 100644 index 6c41c6017d..0000000000 --- a/.changeset/metal-eagles-invite.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-scaffolder-backend': patch ---- - -The `concurrentTasksLimit` option can now be configured via static configuration as well. Setting it to 0 will now also disable the task worker. diff --git a/.changeset/metal-kings-argue.md b/.changeset/metal-kings-argue.md deleted file mode 100644 index 0019139362..0000000000 --- a/.changeset/metal-kings-argue.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-search-backend-module-catalog': patch ---- - -Breaking change in the alpha export `searchModuleCatalogCollator`: Moved collator settings from module options into app-config. You are now expected to set up the catalog collator under the `search.collators.catalog` configuration key. There is also a new `catalogCollatorExtensionPoint` extension point for the module, wherein you can set custom transformers. diff --git a/.changeset/mighty-lions-search-2.md b/.changeset/mighty-lions-search-2.md deleted file mode 100644 index a7fb1a4a7d..0000000000 --- a/.changeset/mighty-lions-search-2.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/backend-test-utils': minor ---- - -**BREAKING**: Renamed `mockServices.config` to `mockServices.rootConfig`. diff --git a/.changeset/mighty-lions-search-3.md b/.changeset/mighty-lions-search-3.md deleted file mode 100644 index 6b381ce2b2..0000000000 --- a/.changeset/mighty-lions-search-3.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/backend-app-api': minor ---- - -**BREAKING**: Renamed `configServiceFactory` to `rootConfigServiceFactory`. diff --git a/.changeset/mighty-lions-search.md b/.changeset/mighty-lions-search.md deleted file mode 100644 index 6d2ffd02c0..0000000000 --- a/.changeset/mighty-lions-search.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/backend-plugin-api': minor ---- - -**BREAKING**: Renamed `coreServices.config` to `coreServices.rootConfig`. diff --git a/.changeset/modern-impalas-wave.md b/.changeset/modern-impalas-wave.md deleted file mode 100644 index b898838a4c..0000000000 --- a/.changeset/modern-impalas-wave.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -'@backstage/plugin-kubernetes': minor ---- - -**BREAKING**: Fixed typos in exported module attributes. Many users may see no changes, but if you have customized the plugin output, you may have to rename the following: - -- Component attribute: `` to `` -- Interface attribute: `DetectedError.occuranceCount` to `DetectedError.occurrenceCount`. diff --git a/.changeset/neat-coins-raise.md b/.changeset/neat-coins-raise.md deleted file mode 100644 index c3045634bf..0000000000 --- a/.changeset/neat-coins-raise.md +++ /dev/null @@ -1,17 +0,0 @@ ---- -'@backstage/plugin-catalog-backend-module-bitbucket-server': patch -'@backstage/plugin-catalog-backend-module-bitbucket-cloud': patch -'@backstage/plugin-catalog-backend-module-puppetdb': patch -'@backstage/plugin-catalog-backend-module-msgraph': patch -'@backstage/plugin-catalog-backend-module-gerrit': patch -'@backstage/plugin-catalog-backend-module-github': patch -'@backstage/plugin-catalog-backend-module-gitlab': patch -'@backstage/plugin-events-backend-module-aws-sqs': patch -'@backstage/plugin-catalog-backend-module-azure': patch -'@backstage/plugin-catalog-backend-module-aws': patch -'@backstage/backend-common': patch -'@backstage/plugin-jenkins-backend': patch -'@backstage/plugin-proxy-backend': patch ---- - -Fixed invalid configuration schema. The configuration schema may be more strict as a result. diff --git a/.changeset/neat-lamps-press.md b/.changeset/neat-lamps-press.md deleted file mode 100644 index 23c0b15fb7..0000000000 --- a/.changeset/neat-lamps-press.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -'@backstage/core-components': patch -'@backstage/plugin-splunk-on-call': patch -'@backstage/plugin-xcmetrics': patch -'@backstage/plugin-catalog': patch ---- - -Prefer simple `theme.spacing` without string interpolation diff --git a/.changeset/nervous-suits-give.md b/.changeset/nervous-suits-give.md deleted file mode 100644 index e08d8d89a2..0000000000 --- a/.changeset/nervous-suits-give.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-shortcuts': patch ---- - -Limit the use of the duplicate shortcut name when adding a shortcut diff --git a/.changeset/ninety-panthers-guess.md b/.changeset/ninety-panthers-guess.md deleted file mode 100644 index a821731a22..0000000000 --- a/.changeset/ninety-panthers-guess.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-catalog-backend-module-github': patch ---- - -Fixed a bug where the visibility filter was case sensitive and casting was inconsistent. diff --git a/.changeset/odd-avocados-buy.md b/.changeset/odd-avocados-buy.md deleted file mode 100644 index 9e71c19fc0..0000000000 --- a/.changeset/odd-avocados-buy.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-scaffolder-backend-module-confluence-to-markdown': patch ---- - -Use `fetchContents` directly instead of a `fetchPlainAction` diff --git a/.changeset/orange-pandas-worry.md b/.changeset/orange-pandas-worry.md deleted file mode 100644 index 8fd0553c29..0000000000 --- a/.changeset/orange-pandas-worry.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-scaffolder-backend': patch ---- - -Add examples for `github:repo:create` and `github:repo:push` scaffolder actions. diff --git a/.changeset/perfect-trainers-invite.md b/.changeset/perfect-trainers-invite.md deleted file mode 100644 index 6b543005cd..0000000000 --- a/.changeset/perfect-trainers-invite.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-catalog-backend-module-incremental-ingestion': patch ---- - -Export new alpha `incrementalIngestionProvidersExtensionPoint` for registering incremental providers, rather than the providers being passed as options to the backend module. diff --git a/.changeset/pink-seas-occur.md b/.changeset/pink-seas-occur.md deleted file mode 100644 index 220dc9a522..0000000000 --- a/.changeset/pink-seas-occur.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/repo-tools': patch ---- - -Bumped `@microsoft/api-extractor` dependency to `^7.36.4`, and `@microsoft/api-documenter` to `^7.22.33`. diff --git a/.changeset/pink-squids-nail.md b/.changeset/pink-squids-nail.md deleted file mode 100644 index 989b5034d5..0000000000 --- a/.changeset/pink-squids-nail.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-catalog-backend-module-unprocessed': minor ---- - -**BREAKING**: Fixing typo in exported module. You will have to rename the import to the correct spelling. `UnprocessedEntites` -> `UnprocessedEntities` diff --git a/.changeset/popular-beds-invent.md b/.changeset/popular-beds-invent.md deleted file mode 100644 index 61d0cf0545..0000000000 --- a/.changeset/popular-beds-invent.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -'@backstage/plugin-search-backend-module-elasticsearch': patch ---- - -Index templates can now be configured through configuration under the `search.elasticsearch.indexTemplates`. In addition, the `ElasticSearchSearchEngine.fromConfig` now also accepts a `LoggerService` as the `logger` option as well as a new `translator` option. - -The alpha `searchModuleElasticsearchEngine` export no longer accepts options and a new alpha `elasticsearchTranslatorExtensionPoint` export has been added which lets you customize the query translator. diff --git a/.changeset/popular-fans-camp.md b/.changeset/popular-fans-camp.md deleted file mode 100644 index 47fc095ef8..0000000000 --- a/.changeset/popular-fans-camp.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-auth-backend': patch ---- - -Updated config schema to match what was being used in code diff --git a/.changeset/pre.json b/.changeset/pre.json deleted file mode 100644 index b1c2ad6b55..0000000000 --- a/.changeset/pre.json +++ /dev/null @@ -1,304 +0,0 @@ -{ - "mode": "exit", - "tag": "next", - "initialVersions": { - "example-app": "0.2.85", - "@backstage/app-defaults": "1.4.1", - "example-backend": "0.2.85", - "@backstage/backend-app-api": "0.4.5", - "@backstage/backend-common": "0.19.1", - "@backstage/backend-defaults": "0.1.12", - "@backstage/backend-dev-utils": "0.1.1", - "example-backend-next": "0.0.13", - "@backstage/backend-openapi-utils": "0.0.2", - "@backstage/backend-plugin-api": "0.5.4", - "@backstage/backend-tasks": "0.5.4", - "@backstage/backend-test-utils": "0.1.39", - "@backstage/catalog-client": "1.4.3", - "@backstage/catalog-model": "1.4.1", - "@backstage/cli": "0.22.9", - "@backstage/cli-common": "0.1.12", - "@backstage/cli-node": "0.1.2", - "@backstage/codemods": "0.1.45", - "@backstage/config": "1.0.8", - "@backstage/config-loader": "1.3.2", - "@backstage/core-app-api": "1.9.0", - "@backstage/core-components": "0.13.3", - "@backstage/core-plugin-api": "1.5.3", - "@backstage/create-app": "0.5.3", - "@backstage/dev-utils": "1.0.17", - "e2e-test": "0.2.5", - "@backstage/errors": "1.2.1", - "@backstage/eslint-plugin": "0.1.3", - "@backstage/integration": "1.5.1", - "@backstage/integration-aws-node": "0.1.5", - "@backstage/integration-react": "1.1.15", - "@backstage/release-manifests": "0.0.9", - "@backstage/repo-tools": "0.3.2", - "@techdocs/cli": "1.4.4", - "techdocs-cli-embedded-app": "0.2.84", - "@backstage/test-utils": "1.4.1", - "@backstage/theme": "0.4.1", - "@backstage/types": "1.1.0", - "@backstage/version-bridge": "1.0.4", - "@backstage/plugin-adr": "0.6.3", - "@backstage/plugin-adr-backend": "0.3.5", - "@backstage/plugin-adr-common": "0.2.11", - "@backstage/plugin-airbrake": "0.3.20", - "@backstage/plugin-airbrake-backend": "0.2.20", - "@backstage/plugin-allure": "0.1.36", - "@backstage/plugin-analytics-module-ga": "0.1.31", - "@backstage/plugin-analytics-module-ga4": "0.1.2", - "@backstage/plugin-apache-airflow": "0.2.13", - "@backstage/plugin-api-docs": "0.9.6", - "@backstage/plugin-api-docs-module-protoc-gen-doc": "0.1.2", - "@backstage/plugin-apollo-explorer": "0.1.13", - "@backstage/plugin-app-backend": "0.3.47", - "@backstage/plugin-auth-backend": "0.18.5", - "@backstage/plugin-auth-node": "0.2.16", - "@backstage/plugin-azure-devops": "0.3.2", - "@backstage/plugin-azure-devops-backend": "0.3.26", - "@backstage/plugin-azure-devops-common": "0.3.0", - "@backstage/plugin-azure-sites": "0.1.9", - "@backstage/plugin-azure-sites-backend": "0.1.9", - "@backstage/plugin-azure-sites-common": "0.1.0", - "@backstage/plugin-badges": "0.2.44", - "@backstage/plugin-badges-backend": "0.2.2", - "@backstage/plugin-bazaar": "0.2.11", - "@backstage/plugin-bazaar-backend": "0.2.10", - "@backstage/plugin-bitbucket-cloud-common": "0.2.8", - "@backstage/plugin-bitrise": "0.1.47", - "@backstage/plugin-catalog": "1.12.0", - "@backstage/plugin-catalog-backend": "1.11.0", - "@backstage/plugin-catalog-backend-module-aws": "0.2.2", - "@backstage/plugin-catalog-backend-module-azure": "0.1.18", - "@backstage/plugin-catalog-backend-module-bitbucket": "0.2.14", - "@backstage/plugin-catalog-backend-module-bitbucket-cloud": "0.1.14", - "@backstage/plugin-catalog-backend-module-bitbucket-server": "0.1.12", - "@backstage/plugin-catalog-backend-module-gerrit": "0.1.15", - "@backstage/plugin-catalog-backend-module-github": "0.3.2", - "@backstage/plugin-catalog-backend-module-gitlab": "0.2.3", - "@backstage/plugin-catalog-backend-module-incremental-ingestion": "0.4.0", - "@backstage/plugin-catalog-backend-module-ldap": "0.5.14", - "@backstage/plugin-catalog-backend-module-msgraph": "0.5.6", - "@backstage/plugin-catalog-backend-module-openapi": "0.1.13", - "@backstage/plugin-catalog-backend-module-puppetdb": "0.1.4", - "@backstage/plugin-catalog-backend-module-unprocessed": "0.1.1", - "@backstage/plugin-catalog-common": "1.0.15", - "@internal/plugin-catalog-customized": "0.0.12", - "@backstage/plugin-catalog-graph": "0.2.32", - "@backstage/plugin-catalog-graphql": "0.3.22", - "@backstage/plugin-catalog-import": "0.9.10", - "@backstage/plugin-catalog-node": "1.4.0", - "@backstage/plugin-catalog-react": "1.8.0", - "@backstage/plugin-catalog-unprocessed-entities": "0.1.1", - "@backstage/plugin-cicd-statistics": "0.1.22", - "@backstage/plugin-cicd-statistics-module-gitlab": "0.1.16", - "@backstage/plugin-circleci": "0.3.20", - "@backstage/plugin-cloudbuild": "0.3.20", - "@backstage/plugin-code-climate": "0.1.20", - "@backstage/plugin-code-coverage": "0.2.13", - "@backstage/plugin-code-coverage-backend": "0.2.13", - "@backstage/plugin-codescene": "0.1.15", - "@backstage/plugin-config-schema": "0.1.43", - "@backstage/plugin-cost-insights": "0.12.9", - "@backstage/plugin-cost-insights-common": "0.1.1", - "@backstage/plugin-devtools": "0.1.2", - "@backstage/plugin-devtools-backend": "0.1.2", - "@backstage/plugin-devtools-common": "0.1.2", - "@backstage/plugin-dynatrace": "7.0.0", - "@backstage/plugin-entity-feedback": "0.2.3", - "@backstage/plugin-entity-feedback-backend": "0.1.5", - "@backstage/plugin-entity-feedback-common": "0.1.1", - "@backstage/plugin-entity-validation": "0.1.5", - "@backstage/plugin-events-backend": "0.2.8", - "@backstage/plugin-events-backend-module-aws-sqs": "0.2.2", - "@backstage/plugin-events-backend-module-azure": "0.1.9", - "@backstage/plugin-events-backend-module-bitbucket-cloud": "0.1.9", - "@backstage/plugin-events-backend-module-gerrit": "0.1.9", - "@backstage/plugin-events-backend-module-github": "0.1.9", - "@backstage/plugin-events-backend-module-gitlab": "0.1.9", - "@backstage/plugin-events-backend-test-utils": "0.1.9", - "@backstage/plugin-events-node": "0.2.8", - "@internal/plugin-todo-list": "1.0.15", - "@internal/plugin-todo-list-backend": "1.0.15", - "@internal/plugin-todo-list-common": "1.0.12", - "@backstage/plugin-explore": "0.4.6", - "@backstage/plugin-explore-backend": "0.0.9", - "@backstage/plugin-explore-common": "0.0.1", - "@backstage/plugin-explore-react": "0.0.30", - "@backstage/plugin-firehydrant": "0.2.4", - "@backstage/plugin-fossa": "0.2.52", - "@backstage/plugin-gcalendar": "0.3.16", - "@backstage/plugin-gcp-projects": "0.3.39", - "@backstage/plugin-git-release-manager": "0.3.33", - "@backstage/plugin-github-actions": "0.6.1", - "@backstage/plugin-github-deployments": "0.1.51", - "@backstage/plugin-github-issues": "0.2.9", - "@backstage/plugin-github-pull-requests-board": "0.1.14", - "@backstage/plugin-gitops-profiles": "0.3.38", - "@backstage/plugin-gocd": "0.1.26", - "@backstage/plugin-graphiql": "0.2.52", - "@backstage/plugin-graphql-backend": "0.1.37", - "@backstage/plugin-graphql-voyager": "0.1.5", - "@backstage/plugin-home": "0.5.4", - "@backstage/plugin-home-react": "0.1.1", - "@backstage/plugin-ilert": "0.2.9", - "@backstage/plugin-jenkins": "0.8.2", - "@backstage/plugin-jenkins-backend": "0.2.2", - "@backstage/plugin-jenkins-common": "0.1.17", - "@backstage/plugin-kafka": "0.3.20", - "@backstage/plugin-kafka-backend": "0.2.40", - "@backstage/plugin-kubernetes": "0.9.3", - "@backstage/plugin-kubernetes-backend": "0.11.2", - "@backstage/plugin-kubernetes-common": "0.6.5", - "@backstage/plugin-lighthouse": "0.4.5", - "@backstage/plugin-lighthouse-backend": "0.2.3", - "@backstage/plugin-lighthouse-common": "0.1.2", - "@backstage/plugin-linguist": "0.1.5", - "@backstage/plugin-linguist-backend": "0.3.1", - "@backstage/plugin-linguist-common": "0.1.0", - "@backstage/plugin-microsoft-calendar": "0.1.5", - "@backstage/plugin-newrelic": "0.3.38", - "@backstage/plugin-newrelic-dashboard": "0.2.13", - "@backstage/plugin-nomad": "0.1.1", - "@backstage/plugin-nomad-backend": "0.1.1", - "@backstage/plugin-octopus-deploy": "0.2.2", - "@backstage/plugin-org": "0.6.10", - "@backstage/plugin-org-react": "0.1.9", - "@backstage/plugin-pagerduty": "0.6.1", - "@backstage/plugin-periskop": "0.1.18", - "@backstage/plugin-periskop-backend": "0.1.18", - "@backstage/plugin-permission-backend": "0.5.22", - "@backstage/plugin-permission-common": "0.7.7", - "@backstage/plugin-permission-node": "0.7.10", - "@backstage/plugin-permission-react": "0.4.14", - "@backstage/plugin-playlist": "0.1.12", - "@backstage/plugin-playlist-backend": "0.3.3", - "@backstage/plugin-playlist-common": "0.1.8", - "@backstage/plugin-proxy-backend": "0.2.41", - "@backstage/plugin-puppetdb": "0.1.3", - "@backstage/plugin-rollbar": "0.4.20", - "@backstage/plugin-rollbar-backend": "0.1.44", - "@backstage/plugin-scaffolder": "1.14.1", - "@backstage/plugin-scaffolder-backend": "1.15.1", - "@backstage/plugin-scaffolder-backend-module-confluence-to-markdown": "0.2.0", - "@backstage/plugin-scaffolder-backend-module-cookiecutter": "0.2.23", - "@backstage/plugin-scaffolder-backend-module-gitlab": "0.2.2", - "@backstage/plugin-scaffolder-backend-module-rails": "0.4.16", - "@backstage/plugin-scaffolder-backend-module-sentry": "0.1.7", - "@backstage/plugin-scaffolder-backend-module-yeoman": "0.2.20", - "@backstage/plugin-scaffolder-common": "1.3.2", - "@backstage/plugin-scaffolder-node": "0.1.5", - "@backstage/plugin-scaffolder-react": "1.5.1", - "@backstage/plugin-search": "1.3.3", - "@backstage/plugin-search-backend": "1.3.3", - "@backstage/plugin-search-backend-module-catalog": "0.1.3", - "@backstage/plugin-search-backend-module-elasticsearch": "1.3.2", - "@backstage/plugin-search-backend-module-explore": "0.1.3", - "@backstage/plugin-search-backend-module-pg": "0.5.8", - "@backstage/plugin-search-backend-module-techdocs": "0.1.3", - "@backstage/plugin-search-backend-node": "1.2.3", - "@backstage/plugin-search-common": "1.2.5", - "@backstage/plugin-search-react": "1.6.3", - "@backstage/plugin-sentry": "0.5.5", - "@backstage/plugin-shortcuts": "0.3.12", - "@backstage/plugin-sonarqube": "0.7.1", - "@backstage/plugin-sonarqube-backend": "0.2.1", - "@backstage/plugin-sonarqube-react": "0.1.7", - "@backstage/plugin-splunk-on-call": "0.4.9", - "@backstage/plugin-stack-overflow": "0.1.18", - "@backstage/plugin-stack-overflow-backend": "0.2.3", - "@backstage/plugin-stackstorm": "0.1.4", - "@backstage/plugin-tech-insights": "0.3.12", - "@backstage/plugin-tech-insights-backend": "0.5.13", - "@backstage/plugin-tech-insights-backend-module-jsonfc": "0.1.31", - "@backstage/plugin-tech-insights-common": "0.2.11", - "@backstage/plugin-tech-insights-node": "0.4.5", - "@backstage/plugin-tech-radar": "0.6.6", - "@backstage/plugin-techdocs": "1.6.5", - "@backstage/plugin-techdocs-addons-test-utils": "1.0.16", - "@backstage/plugin-techdocs-backend": "1.6.4", - "@backstage/plugin-techdocs-module-addons-contrib": "1.0.15", - "@backstage/plugin-techdocs-node": "1.7.3", - "@backstage/plugin-techdocs-react": "1.1.8", - "@backstage/plugin-todo": "0.2.22", - "@backstage/plugin-todo-backend": "0.1.44", - "@backstage/plugin-user-settings": "0.7.5", - "@backstage/plugin-user-settings-backend": "0.1.11", - "@backstage/plugin-vault": "0.1.14", - "@backstage/plugin-vault-backend": "0.3.3", - "@backstage/plugin-xcmetrics": "0.2.40", - "@backstage/plugin-analytics-module-newrelic-browser": "0.0.0", - "@backstage/plugin-catalog-backend-module-gcp": "0.0.0", - "@backstage/plugin-app-node": "0.0.0" - }, - "changesets": [ - "analytics-millenial-whoop", - "angry-beers-relate", - "beige-files-reflect", - "brown-taxis-develop", - "chatty-foxes-buy", - "chatty-seahorses-juggle", - "chilly-keys-count", - "cold-numbers-sleep", - "create-app-1690284535", - "create-app-1690892926", - "create-app-1691503547", - "cuddly-colts-repeat", - "dirty-chefs-listen", - "fluffy-pens-prove", - "funny-dancers-deliver", - "gold-steaks-thank", - "gorgeous-months-doubt", - "hot-cats-rush", - "hungry-shrimps-care", - "khaki-flies-draw", - "kind-cougars-allow", - "large-badgers-switch", - "large-experts-poke", - "large-vans-cross", - "lazy-pugs-wash", - "little-penguins-build", - "loud-garlics-press", - "mean-squids-relax", - "metal-buttons-search", - "mighty-lions-search-2", - "mighty-lions-search-3", - "mighty-lions-search", - "neat-coins-raise", - "neat-lamps-press", - "odd-avocados-buy", - "pink-squids-nail", - "popular-fans-camp", - "quiet-starfishes-kick", - "rare-pens-exist", - "rich-zoos-occur", - "rotten-dolls-sing", - "rotten-rabbits-move", - "rude-feet-sparkle", - "search-donuts-wash", - "selfish-coats-shout", - "serious-bats-repair", - "serious-papayas-shout", - "serious-singers-vanish", - "seven-cougars-smash", - "sharp-months-think", - "slimy-kids-jam", - "smart-pandas-applaud", - "sour-hats-kick", - "stale-wombats-talk", - "strange-shrimps-mix", - "strong-bobcats-unite", - "stupid-berries-run", - "ten-lies-cheat", - "ten-otters-appear", - "tender-fireants-cheer", - "thin-yaks-hang", - "tidy-cobras-scream", - "tough-dolphins-care", - "tough-lies-float", - "unlucky-bags-pump", - "wild-timers-sparkle" - ] -} diff --git a/.changeset/pretty-ways-knock.md b/.changeset/pretty-ways-knock.md deleted file mode 100644 index 1b8d56c178..0000000000 --- a/.changeset/pretty-ways-knock.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-todo-backend': patch ---- - -Fixed a bug where filter queries from the frontend would always fail validation. diff --git a/.changeset/quick-cups-float.md b/.changeset/quick-cups-float.md deleted file mode 100644 index 21a2f856ec..0000000000 --- a/.changeset/quick-cups-float.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/backend-app-api': patch ---- - -Add validation to make sure that extension points do not cross plugin boundaries. diff --git a/.changeset/quiet-starfishes-kick.md b/.changeset/quiet-starfishes-kick.md deleted file mode 100644 index 2fc8ed632e..0000000000 --- a/.changeset/quiet-starfishes-kick.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-home': patch ---- - -Now, user can provide a language (optional) as input to receive a greeting in that specific language. Example: `` diff --git a/.changeset/rare-pens-exist.md b/.changeset/rare-pens-exist.md deleted file mode 100644 index 7363f5033a..0000000000 --- a/.changeset/rare-pens-exist.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/cli': patch ---- - -Enable to print the config schema not merged with the `--no-merge` flag diff --git a/.changeset/red-ghosts-train.md b/.changeset/red-ghosts-train.md deleted file mode 100644 index daa6692820..0000000000 --- a/.changeset/red-ghosts-train.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/backend-plugin-api': minor ---- - -**BREAKING**: Removed the ability to define options for plugins and modules. Existing options should be migrated to instead use either static configuration or extension points. diff --git a/.changeset/renovate-9a0aa29.md b/.changeset/renovate-9a0aa29.md deleted file mode 100644 index 8885bf30cd..0000000000 --- a/.changeset/renovate-9a0aa29.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -'@backstage/cli': patch -'@backstage/plugin-scaffolder-backend': patch ---- - -Updated dependency `esbuild` to `^0.19.0`. diff --git a/.changeset/repo-tools-yo-dawg.md b/.changeset/repo-tools-yo-dawg.md deleted file mode 100644 index 85757fb172..0000000000 --- a/.changeset/repo-tools-yo-dawg.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/repo-tools': patch ---- - -Introducing a new, experimental command `backstage-repo-tools generate-catalog-info`, which can be used to create standardized `catalog-info.yaml` files for each Backstage package in a Backstage monorepo. It can also be used to automatically fix existing `catalog-info.yaml` files with the correct metadata (including `metadata.name`, `metadata.title`, and `metadata.description` introspected from the package's `package.json`, as well as `spec.owner` introspected from `CODEOWNERS`), e.g. in a post-commit hook. diff --git a/.changeset/rich-zoos-occur.md b/.changeset/rich-zoos-occur.md deleted file mode 100644 index 979acb93c6..0000000000 --- a/.changeset/rich-zoos-occur.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -'@backstage/backend-plugin-api': minor -'@backstage/backend-defaults': minor ---- - -**BREAKING**: Removing shared environments concept from the new experimental backend system. diff --git a/.changeset/rotten-dolls-sing.md b/.changeset/rotten-dolls-sing.md deleted file mode 100644 index 039b287a77..0000000000 --- a/.changeset/rotten-dolls-sing.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/backend-plugin-api': patch ---- - -Added new experimental `featureDiscoveryServiceRef`, available as an `/alpha` export. diff --git a/.changeset/rotten-rabbits-move.md b/.changeset/rotten-rabbits-move.md deleted file mode 100644 index f2e1ffda08..0000000000 --- a/.changeset/rotten-rabbits-move.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-proxy-backend': minor ---- - -Defining proxy endpoints directly under the root `proxy` configuration key is deprecated. Endpoints should now be declared under `proxy.endpoints` instead. The `skipInvalidProxies` and `reviveConsumedRequestBodies` can now also be configured through static configuration. diff --git a/.changeset/rude-feet-sparkle.md b/.changeset/rude-feet-sparkle.md deleted file mode 100644 index fabc83bb0b..0000000000 --- a/.changeset/rude-feet-sparkle.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-analytics-module-newrelic-browser': patch ---- - -Introduced the New Relic Browser analytics module. Check out the plugins [README.md](https://github.com/backstage/backstage/tree/master/plugins/analytics-module-newrelic-browser) for more details! diff --git a/.changeset/search-donuts-wash.md b/.changeset/search-donuts-wash.md deleted file mode 100644 index 2fa3325761..0000000000 --- a/.changeset/search-donuts-wash.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-search-backend-node': patch ---- - -Fix Lunr search engine highlight by ignoring invalid metadata positions. diff --git a/.changeset/selfish-coats-shout.md b/.changeset/selfish-coats-shout.md deleted file mode 100644 index 071c47e371..0000000000 --- a/.changeset/selfish-coats-shout.md +++ /dev/null @@ -1,55 +0,0 @@ ---- -'@backstage/config-loader': minor ---- - -Adds a new `deepVisibility` schema keyword that sets child visibility recursively to the defined value, respecting preexisting values or child `deepVisibility`. - -Example usage: - -```ts -export interface Config { - /** - * Enforces a default of `secret` instead of `backend` for this object. - * @deepVisibility secret - */ - mySecretProperty: { - type: 'object'; - properties: { - secretValue: { - type: 'string'; - }; - - verySecretProperty: { - type: 'string'; - }; - }; - }; -} -``` - -Example of a schema that would not be allowed: - -```ts -export interface Config { - /** - * Set the top level property to secret, enforcing a default of `secret` instead of `backend` for this object. - * @deepVisibility secret - */ - mySecretProperty: { - type: 'object'; - properties: { - frontendUrl: { - /** - * We can NOT override the visibility to reveal a property to the front end. - * @visibility frontend - */ - type: 'string'; - }; - - verySecretProperty: { - type: 'string'; - }; - }; - }; -} -``` diff --git a/.changeset/serious-bats-repair.md b/.changeset/serious-bats-repair.md deleted file mode 100644 index d93b49bda0..0000000000 --- a/.changeset/serious-bats-repair.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/repo-tools': patch ---- - -Update `schema openapi generate` command to now create a default router that can be imported and used directly. diff --git a/.changeset/serious-papayas-shout.md b/.changeset/serious-papayas-shout.md deleted file mode 100644 index f426dd02c7..0000000000 --- a/.changeset/serious-papayas-shout.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-catalog-backend-module-gitlab': patch ---- - -Filter Gitlab archived projects through APIs diff --git a/.changeset/serious-singers-vanish.md b/.changeset/serious-singers-vanish.md deleted file mode 100644 index e1f4a754a7..0000000000 --- a/.changeset/serious-singers-vanish.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/backend-app-api': patch ---- - -Added new experimental `featureDiscoveryServiceFactory`, available as an `/alpha` export. diff --git a/.changeset/seven-cougars-smash.md b/.changeset/seven-cougars-smash.md deleted file mode 100644 index 5493a724d7..0000000000 --- a/.changeset/seven-cougars-smash.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/backend-tasks': patch ---- - -Make `readTaskScheduleDefinitionFromConfig` properly handle bad inputs diff --git a/.changeset/sharp-months-think.md b/.changeset/sharp-months-think.md deleted file mode 100644 index 04ffbb8d1b..0000000000 --- a/.changeset/sharp-months-think.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-app-backend': patch ---- - -Migrated the alpha `appBackend` export to use static configuration and extension points rather than accepting options. diff --git a/.changeset/slimy-kids-jam.md b/.changeset/slimy-kids-jam.md deleted file mode 100644 index c02daf325e..0000000000 --- a/.changeset/slimy-kids-jam.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-catalog-backend': minor ---- - -Added OpenTelemetry spans for catalog processing diff --git a/.changeset/smart-pandas-applaud.md b/.changeset/smart-pandas-applaud.md deleted file mode 100644 index 5f2c297df5..0000000000 --- a/.changeset/smart-pandas-applaud.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -'@backstage/plugin-todo-backend': minor -'@backstage/plugin-catalog-backend': minor -'@backstage/plugin-search-backend': minor ---- - -Now performs request validation based on OpenAPI schema through `@backstage/backend-openapi-utils`. Error responses for invalid input, like `"a"` instead of a number, may have changed. diff --git a/.changeset/sour-hats-kick.md b/.changeset/sour-hats-kick.md deleted file mode 100644 index 023cfff0f4..0000000000 --- a/.changeset/sour-hats-kick.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-catalog-react': patch ---- - -Allow specifying screen size when catalog filters are hidden in drawer diff --git a/.changeset/stale-wombats-talk.md b/.changeset/stale-wombats-talk.md deleted file mode 100644 index f4e0b852f8..0000000000 --- a/.changeset/stale-wombats-talk.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-catalog-backend-module-aws': patch ---- - -Added option to configure AWS `accountId` in `AwsS3EntityProvider` diff --git a/.changeset/strange-shrimps-mix.md b/.changeset/strange-shrimps-mix.md deleted file mode 100644 index fbb08eeeb6..0000000000 --- a/.changeset/strange-shrimps-mix.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-linguist-backend': minor ---- - -Adds a processor to the linguist backend which can automatically add language tags to entities diff --git a/.changeset/strong-bobcats-unite.md b/.changeset/strong-bobcats-unite.md deleted file mode 100644 index ef86023d58..0000000000 --- a/.changeset/strong-bobcats-unite.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/backend-test-utils': patch ---- - -Add needed constants and constructs to support PostgreSQL version 14 as test database diff --git a/.changeset/stupid-berries-run.md b/.changeset/stupid-berries-run.md deleted file mode 100644 index f506ce2475..0000000000 --- a/.changeset/stupid-berries-run.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-home': patch ---- - -Make sure the widget name is never empty in the `AddWidgetDialog`. If the title was set to "", the entry would contain an empty string. Use the name as a fallback diff --git a/.changeset/sweet-donkeys-fix.md b/.changeset/sweet-donkeys-fix.md deleted file mode 100644 index 30737b1b7a..0000000000 --- a/.changeset/sweet-donkeys-fix.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-kubernetes': patch ---- - -Fix container memory limits diff --git a/.changeset/sweet-feet-study.md b/.changeset/sweet-feet-study.md deleted file mode 100644 index 4afdb467f6..0000000000 --- a/.changeset/sweet-feet-study.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-linguist-backend': minor ---- - -**BREAKING**: Removed the alpha export plugin options from exported `linguistPlugin()` (used by the new backend system) in favour of static config. diff --git a/.changeset/tasty-lamps-shop.md b/.changeset/tasty-lamps-shop.md deleted file mode 100644 index 5036932816..0000000000 --- a/.changeset/tasty-lamps-shop.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -'@backstage/plugin-scaffolder-backend': minor -'@backstage/plugin-scaffolder-common': minor -'@backstage/plugin-scaffolder-node': minor ---- - -Introduce `each` property on action steps, allowing them to be ran repeatedly. diff --git a/.changeset/ten-lies-cheat.md b/.changeset/ten-lies-cheat.md deleted file mode 100644 index 1c965a574c..0000000000 --- a/.changeset/ten-lies-cheat.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-scaffolder-node': patch ---- - -Export `TemplateExample` from the `createTemplateAction` type. diff --git a/.changeset/ten-otters-appear.md b/.changeset/ten-otters-appear.md deleted file mode 100644 index 4cb3d301ae..0000000000 --- a/.changeset/ten-otters-appear.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-scaffolder-react': patch ---- - -Fixed bug in Workflow component by passing a prop `templateName` down to Stepper component. diff --git a/.changeset/tender-avocados-kick.md b/.changeset/tender-avocados-kick.md deleted file mode 100644 index 269412b1a6..0000000000 --- a/.changeset/tender-avocados-kick.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -'@techdocs/cli': patch -'@backstage/create-app': patch -'@backstage/cli': patch ---- - -Bumped internal `nodemon` dependency. diff --git a/.changeset/tender-fireants-cheer.md b/.changeset/tender-fireants-cheer.md deleted file mode 100644 index 1d829f673b..0000000000 --- a/.changeset/tender-fireants-cheer.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-devtools': patch ---- - -Fix readme typo diff --git a/.changeset/thin-yaks-hang.md b/.changeset/thin-yaks-hang.md deleted file mode 100644 index 1a1bdb4ab7..0000000000 --- a/.changeset/thin-yaks-hang.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-search-backend': patch ---- - -Add missing `configSchema` to package.json diff --git a/.changeset/tidy-cobras-scream.md b/.changeset/tidy-cobras-scream.md deleted file mode 100644 index 2917f11dfc..0000000000 --- a/.changeset/tidy-cobras-scream.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -'@backstage/plugin-scaffolder-backend-module-confluence-to-markdown': patch -'@backstage/plugin-scaffolder-backend-module-cookiecutter': patch -'@backstage/plugin-scaffolder-backend-module-rails': patch ---- - -Import helpers from the node package instead of the backend package diff --git a/.changeset/tiny-squids-accept.md b/.changeset/tiny-squids-accept.md deleted file mode 100644 index e488c35197..0000000000 --- a/.changeset/tiny-squids-accept.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-search-backend-module-techdocs': patch ---- - -**BREAKING:** Moved `schedule` & `collators` settings from module options into app-config for the new backend system. You can now pass in a `TaskScheduleDefinitionConfig` through the `search.collators.techdocs.schedule` configuration key & configure the `TechDocsCollatorFactory` with the key `search.collators.techdocs`. diff --git a/.changeset/tiny-squids-deny.md b/.changeset/tiny-squids-deny.md deleted file mode 100644 index 28de9903e9..0000000000 --- a/.changeset/tiny-squids-deny.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-search-backend-module-explore': patch ---- - -Breaking change for the alpha export moved `schedule` from module options into app-config for the new backend system. You can now pass in a `TaskScheduleDefinitionConfig` through the `search.collators.explore.schedule` configuration key. diff --git a/.changeset/tiny-squids-undecide.md b/.changeset/tiny-squids-undecide.md deleted file mode 100644 index f2c91eb664..0000000000 --- a/.changeset/tiny-squids-undecide.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-permission-backend': patch ---- - -Refactor backend plugin creation parameter from callback to object. diff --git a/.changeset/tough-dolphins-care.md b/.changeset/tough-dolphins-care.md deleted file mode 100644 index 7d9739ec10..0000000000 --- a/.changeset/tough-dolphins-care.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-catalog-backend-module-gcp': minor ---- - -Added GCP catalog plugin with GKE provider diff --git a/.changeset/tough-lies-float.md b/.changeset/tough-lies-float.md deleted file mode 100644 index 2ad3b8623f..0000000000 --- a/.changeset/tough-lies-float.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -'@backstage/plugin-scaffolder-backend': patch -'@backstage/plugin-scaffolder-node': patch ---- - -Deprecated `executeShellCommand`, `RunCommandOptions`, and `fetchContents` from `@backstage/plugin-scaffolder-backend`, since they are useful for Scaffolder modules (who should not be importing from the plugin package itself). You should now import these from `@backstage/plugin-scaffolder-backend-node` instead. `RunCommandOptions` was renamed in the Node package as `ExecuteShellCommandOptions`, for consistency. diff --git a/.changeset/twelve-ducks-swim.md b/.changeset/twelve-ducks-swim.md deleted file mode 100644 index 1e44f09be1..0000000000 --- a/.changeset/twelve-ducks-swim.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-catalog': patch ---- - -Fixed an issue causing `EntitySwitch` to unmount its children once entity refresh was invoked diff --git a/.changeset/twelve-pigs-cough.md b/.changeset/twelve-pigs-cough.md deleted file mode 100644 index e2eef61915..0000000000 --- a/.changeset/twelve-pigs-cough.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-search-backend-module-catalog': patch ---- - -Add User Entity email to the search index so that users can be found by their email. diff --git a/.changeset/unlucky-bags-pump.md b/.changeset/unlucky-bags-pump.md deleted file mode 100644 index a275887410..0000000000 --- a/.changeset/unlucky-bags-pump.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-auth-backend': patch ---- - -Add frontend visibility to provider objects in `auth` config. diff --git a/.changeset/violet-dogs-breathe.md b/.changeset/violet-dogs-breathe.md deleted file mode 100644 index 938c8df678..0000000000 --- a/.changeset/violet-dogs-breathe.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-explore': patch ---- - -Don't put "?" in URL if no query parameters. diff --git a/.changeset/warm-peas-hang.md b/.changeset/warm-peas-hang.md deleted file mode 100644 index 5359e2c547..0000000000 --- a/.changeset/warm-peas-hang.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-sonarqube-backend': patch ---- - -Added optional `externalBaseUrl` config for setting a different frontend URL diff --git a/.changeset/wild-timers-sparkle.md b/.changeset/wild-timers-sparkle.md deleted file mode 100644 index 3df14f3a69..0000000000 --- a/.changeset/wild-timers-sparkle.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@backstage/plugin-microsoft-calendar': patch ---- - -README update - example of apiRef definition and fixed component name diff --git a/.changeset/young-lies-attack.md b/.changeset/young-lies-attack.md deleted file mode 100644 index 02a23e38e5..0000000000 --- a/.changeset/young-lies-attack.md +++ /dev/null @@ -1,19 +0,0 @@ ---- -'@backstage/backend-plugin-api': patch -'@backstage/backend-test-utils': minor -'@backstage/backend-defaults': minor -'@backstage/backend-app-api': minor ---- - -**BREAKING**: Removed the `services` option from `createBackend`. Service factories are now `BackendFeature`s and should be installed with `backend.add(...)` instead. The following should be migrated: - -```ts -const backend = createBackend({ services: [myCustomServiceFactory] }); -``` - -To instead pass the service factory via `backend.add(...)`: - -```ts -const backend = createBackend(); -backend.add(customRootLoggerServiceFactory); -``` diff --git a/docs/releases/v1.17.0-changelog.md b/docs/releases/v1.17.0-changelog.md new file mode 100644 index 0000000000..a67226ca9e --- /dev/null +++ b/docs/releases/v1.17.0-changelog.md @@ -0,0 +1,2999 @@ +# Release v1.17.0 + +## @backstage/backend-app-api@0.5.0 + +### Minor Changes + +- b9c57a4f857e: **BREAKING**: Renamed `configServiceFactory` to `rootConfigServiceFactory`. +- a6d7983f349c: **BREAKING**: Removed the `services` option from `createBackend`. Service factories are now `BackendFeature`s and should be installed with `backend.add(...)` instead. The following should be migrated: + + ```ts + const backend = createBackend({ services: [myCustomServiceFactory] }); + ``` + + To instead pass the service factory via `backend.add(...)`: + + ```ts + const backend = createBackend(); + backend.add(customRootLoggerServiceFactory); + ``` + +### Patch Changes + +- e65c4896f755: Do not throw in backend.stop, if start failed +- c7aa4ff1793c: Allow modules to register extension points. +- 57a10c6c69cc: Add validation to make sure that extension points do not cross plugin boundaries. +- cc9256a33bcc: Added new experimental `featureDiscoveryServiceFactory`, available as an `/alpha` export. +- Updated dependencies + - @backstage/backend-common@0.19.2 + - @backstage/config-loader@1.4.0 + - @backstage/backend-plugin-api@0.6.0 + - @backstage/cli-node@0.1.3 + - @backstage/plugin-auth-node@0.2.17 + - @backstage/backend-tasks@0.5.5 + - @backstage/plugin-permission-node@0.7.11 + - @backstage/cli-common@0.1.12 + - @backstage/config@1.0.8 + - @backstage/errors@1.2.1 + - @backstage/types@1.1.0 + +## @backstage/backend-defaults@0.2.0 + +### Minor Changes + +- d008aefef808: **BREAKING**: Removing shared environments concept from the new experimental backend system. +- a6d7983f349c: **BREAKING**: Removed the `services` option from `createBackend`. Service factories are now `BackendFeature`s and should be installed with `backend.add(...)` instead. The following should be migrated: + + ```ts + const backend = createBackend({ services: [myCustomServiceFactory] }); + ``` + + To instead pass the service factory via `backend.add(...)`: + + ```ts + const backend = createBackend(); + backend.add(customRootLoggerServiceFactory); + ``` + +### Patch Changes + +- 629cbd194a87: Use `coreServices.rootConfig` instead of `coreService.config` +- Updated dependencies + - @backstage/backend-common@0.19.2 + - @backstage/backend-app-api@0.5.0 + - @backstage/backend-plugin-api@0.6.0 + +## @backstage/backend-plugin-api@0.6.0 + +### Minor Changes + +- c49785f00cab: **BREAKING**: It is no longer possible to declare options as being required with `createServiceFactory`. +- 629cbd194a87: **BREAKING**: Renamed `coreServices.config` to `coreServices.rootConfig`. +- 51987dbdaf87: **BREAKING**: Removed the ability to define options for plugins and modules. Existing options should be migrated to instead use either static configuration or extension points. +- d008aefef808: **BREAKING**: Removing shared environments concept from the new experimental backend system. + +### Patch Changes + +- c7aa4ff1793c: Allow modules to register extension points. + +- cc9256a33bcc: Added new experimental `featureDiscoveryServiceRef`, available as an `/alpha` export. + +- a6d7983f349c: **BREAKING**: Removed the `services` option from `createBackend`. Service factories are now `BackendFeature`s and should be installed with `backend.add(...)` instead. The following should be migrated: + + ```ts + const backend = createBackend({ services: [myCustomServiceFactory] }); + ``` + + To instead pass the service factory via `backend.add(...)`: + + ```ts + const backend = createBackend(); + backend.add(customRootLoggerServiceFactory); + ``` + +- Updated dependencies + - @backstage/plugin-auth-node@0.2.17 + - @backstage/backend-tasks@0.5.5 + - @backstage/config@1.0.8 + - @backstage/types@1.1.0 + - @backstage/plugin-permission-common@0.7.7 + +## @backstage/backend-test-utils@0.2.0 + +### Minor Changes + +- b9c57a4f857e: **BREAKING**: Renamed `mockServices.config` to `mockServices.rootConfig`. +- a6d7983f349c: **BREAKING**: Removed the `services` option from `createBackend`. Service factories are now `BackendFeature`s and should be installed with `backend.add(...)` instead. The following should be migrated: + + ```ts + const backend = createBackend({ services: [myCustomServiceFactory] }); + ``` + + To instead pass the service factory via `backend.add(...)`: + + ```ts + const backend = createBackend(); + backend.add(customRootLoggerServiceFactory); + ``` + +### Patch Changes + +- ae9304818136: Add needed constants and constructs to support PostgreSQL version 14 as test database +- Updated dependencies + - @backstage/backend-common@0.19.2 + - @backstage/backend-app-api@0.5.0 + - @backstage/backend-plugin-api@0.6.0 + - @backstage/plugin-auth-node@0.2.17 + - @backstage/config@1.0.8 + - @backstage/types@1.1.0 + +## @backstage/config-loader@1.4.0 + +### Minor Changes + +- 2f1859585998: Loading invalid TypeScript configuration schemas will now throw an error rather than silently being ignored. + + In particular this includes defining any additional types other than `Config` in the schema file, or use of unsupported types such as `Record` or `Partial`. + +- cd514545d1d0: Adds a new `deepVisibility` schema keyword that sets child visibility recursively to the defined value, respecting preexisting values or child `deepVisibility`. + + Example usage: + + ```ts + export interface Config { + /** + * Enforces a default of `secret` instead of `backend` for this object. + * @deepVisibility secret + */ + mySecretProperty: { + type: 'object'; + properties: { + secretValue: { + type: 'string'; + }; + + verySecretProperty: { + type: 'string'; + }; + }; + }; + } + ``` + + Example of a schema that would not be allowed: + + ```ts + export interface Config { + /** + * Set the top level property to secret, enforcing a default of `secret` instead of `backend` for this object. + * @deepVisibility secret + */ + mySecretProperty: { + type: 'object'; + properties: { + frontendUrl: { + /** + * We can NOT override the visibility to reveal a property to the front end. + * @visibility frontend + */ + type: 'string'; + }; + + verySecretProperty: { + type: 'string'; + }; + }; + }; + } + ``` + +### Patch Changes + +- Updated dependencies + - @backstage/cli-common@0.1.12 + - @backstage/config@1.0.8 + - @backstage/errors@1.2.1 + - @backstage/types@1.1.0 + +## @backstage/integration@1.6.0 + +### Minor Changes + +- 443afcf7f567: Added `buildGerritGitilesArchiveUrl()` to construct a Gitiles URL to download an archive. + Gitiles URL that uses an authenticated prefix (`/a/`) can now be parsed by the integration. + +### Patch Changes + +- Updated dependencies + - @backstage/config@1.0.8 + - @backstage/errors@1.2.1 + +## @backstage/plugin-app-node@0.1.0 + +### Minor Changes + +- 9fbe95ef6503: Added the `app` plugin node library, initially providing an extension point that can be used to configure a static fallback handler. + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.0 + +## @backstage/plugin-catalog-backend@1.12.0 + +### Minor Changes + +- b8cccd8ee858: Support configuring applicable kinds for `AnnotateScmSlugEntityProcessor` +- f32252cdf631: Added OpenTelemetry spans for catalog processing +- ebeb77586975: Now performs request validation based on OpenAPI schema through `@backstage/backend-openapi-utils`. Error responses for invalid input, like `"a"` instead of a number, may have changed. + +### Patch Changes + +- 629cbd194a87: Use `coreServices.rootConfig` instead of `coreService.config` +- b8d6b22acd57: Internal refactor for load test +- Updated dependencies + - @backstage/plugin-search-backend-module-catalog@0.1.4 + - @backstage/backend-common@0.19.2 + - @backstage/backend-plugin-api@0.6.0 + - @backstage/backend-openapi-utils@0.0.3 + - @backstage/plugin-catalog-node@1.4.1 + - @backstage/plugin-events-node@0.2.9 + - @backstage/plugin-auth-node@0.2.17 + - @backstage/integration@1.6.0 + - @backstage/backend-tasks@0.5.5 + - @backstage/plugin-scaffolder-common@1.4.0 + - @backstage/plugin-permission-node@0.7.11 + - @backstage/catalog-client@1.4.3 + - @backstage/catalog-model@1.4.1 + - @backstage/config@1.0.8 + - @backstage/errors@1.2.1 + - @backstage/types@1.1.0 + - @backstage/plugin-catalog-common@1.0.15 + - @backstage/plugin-permission-common@0.7.7 + - @backstage/plugin-search-common@1.2.5 + +## @backstage/plugin-catalog-backend-module-gcp@0.1.0 + +### Minor Changes + +- 290eff6692aa: Added GCP catalog plugin with GKE provider + +### Patch Changes + +- 629cbd194a87: Use `coreServices.rootConfig` instead of `coreService.config` +- Updated dependencies + - @backstage/backend-common@0.19.2 + - @backstage/backend-plugin-api@0.6.0 + - @backstage/plugin-catalog-node@1.4.1 + - @backstage/backend-tasks@0.5.5 + - @backstage/config@1.0.8 + - @backstage/plugin-kubernetes-common@0.6.5 + +## @backstage/plugin-catalog-backend-module-unprocessed@0.2.0 + +### Minor Changes + +- 5156a94c2e2a: **BREAKING**: Fixing typo in exported module. You will have to rename the import to the correct spelling. `UnprocessedEntites` -> `UnprocessedEntities` + +### Patch Changes + +- 12a8c94eda8d: Add package repository and homepage metadata +- Updated dependencies + - @backstage/backend-plugin-api@0.6.0 + - @backstage/plugin-auth-node@0.2.17 + - @backstage/catalog-model@1.4.1 + +## @backstage/plugin-kubernetes@0.10.0 + +### Minor Changes + +- 4b6d41737aad: **BREAKING**: Fixed typos in exported module attributes. Many users may see no changes, but if you have customized the plugin output, you may have to rename the following: + + - Component attribute: `` to `` + - Interface attribute: `DetectedError.occuranceCount` to `DetectedError.occurrenceCount`. + +### Patch Changes + +- 562e34d2693f: Fix container memory limits +- Updated dependencies + - @backstage/core-components@0.13.4 + - @backstage/plugin-catalog-react@1.8.1 + - @backstage/core-plugin-api@1.5.3 + - @backstage/catalog-model@1.4.1 + - @backstage/config@1.0.8 + - @backstage/errors@1.2.1 + - @backstage/theme@0.4.1 + - @backstage/plugin-kubernetes-common@0.6.5 + +## @backstage/plugin-linguist-backend@0.4.0 + +### Minor Changes + +- d440f1dd0e72: Adds a processor to the linguist backend which can automatically add language tags to entities +- 0896d85d5ab5: **BREAKING**: Removed the alpha export plugin options from exported `linguistPlugin()` (used by the new backend system) in favour of static config. + +### Patch Changes + +- 12a8c94eda8d: Add package repository and homepage metadata +- ca5e591cb86a: Fixed bug in LinguistBackendClient.ts file where if the linguistJsOptions is specified and sent over to the linguist-js package it would get changed (another attribute would be added) causing future entities of the batch to fail with an error +- Updated dependencies + - @backstage/backend-common@0.19.2 + - @backstage/backend-plugin-api@0.6.0 + - @backstage/plugin-linguist-common@0.1.1 + - @backstage/plugin-catalog-node@1.4.1 + - @backstage/plugin-auth-node@0.2.17 + - @backstage/backend-tasks@0.5.5 + - @backstage/catalog-client@1.4.3 + - @backstage/catalog-model@1.4.1 + - @backstage/config@1.0.8 + - @backstage/errors@1.2.1 + - @backstage/types@1.1.0 + +## @backstage/plugin-proxy-backend@0.3.0 + +### Minor Changes + +- 7daf65bfcfa1: Defining proxy endpoints directly under the root `proxy` configuration key is deprecated. Endpoints should now be declared under `proxy.endpoints` instead. The `skipInvalidProxies` and `reviveConsumedRequestBodies` can now also be configured through static configuration. + +### Patch Changes + +- 629cbd194a87: Use `coreServices.rootConfig` instead of `coreService.config` +- 4b82382ed8c2: Fixed invalid configuration schema. The configuration schema may be more strict as a result. +- Updated dependencies + - @backstage/backend-common@0.19.2 + - @backstage/backend-plugin-api@0.6.0 + - @backstage/config@1.0.8 + +## @backstage/plugin-scaffolder-backend@1.16.0 + +### Minor Changes + +- e514aac3eac0: Introduce `each` property on action steps, allowing them to be ran repeatedly. + +### Patch Changes + +- 629cbd194a87: Use `coreServices.rootConfig` instead of `coreService.config` + +- 349611126ae2: Removed the options from the alpha `scaffolderPlugin` export. To extend the scaffolder plugin you instead now use the available extension points, `scaffolderActionsExtensionPoint`, `scaffolderTaskBrokerExtensionPoint`, and `scaffolderTemplatingExtensionPoint`. + +- 33c76caef72a: Added examples for the `fs:delete` and `fs:rename` actions + +- e07a4914f621: Deprecated the following type exports, which have been moved to `@backstage/plugin-scaffolder-node` instead: + + - `TemplateFilter` + - `TemplateGlobal` + - `TaskStatus` + - `TaskCompletionState` + - `SerializedTask` + - `TaskEventType` + - `SerializedTaskEvent` + - `TaskBrokerDispatchResult` + - `TaskBrokerDispatchOptions` + - `TaskContext` + - `TaskBroker` + +- 0b1d775be05b: Adds examples to a few scaffolder actions. + +- 88bc6e27a213: The `concurrentTasksLimit` option can now be configured via static configuration as well. Setting it to 0 will now also disable the task worker. + +- 0f873325068d: Add examples for `github:repo:create` and `github:repo:push` scaffolder actions. + +- 5c28ebc79fd6: Updated dependency `esbuild` to `^0.19.0`. + +- d3b31a791eb1: Deprecated `executeShellCommand`, `RunCommandOptions`, and `fetchContents` from `@backstage/plugin-scaffolder-backend`, since they are useful for Scaffolder modules (who should not be importing from the plugin package itself). You should now import these from `@backstage/plugin-scaffolder-backend-node` instead. `RunCommandOptions` was renamed in the Node package as `ExecuteShellCommandOptions`, for consistency. + +- Updated dependencies + - @backstage/backend-common@0.19.2 + - @backstage/plugin-catalog-backend@1.12.0 + - @backstage/backend-plugin-api@0.6.0 + - @backstage/plugin-scaffolder-node@0.2.0 + - @backstage/plugin-catalog-node@1.4.1 + - @backstage/plugin-auth-node@0.2.17 + - @backstage/integration@1.6.0 + - @backstage/backend-tasks@0.5.5 + - @backstage/plugin-scaffolder-common@1.4.0 + - @backstage/plugin-permission-node@0.7.11 + - @backstage/catalog-client@1.4.3 + - @backstage/catalog-model@1.4.1 + - @backstage/config@1.0.8 + - @backstage/errors@1.2.1 + - @backstage/types@1.1.0 + - @backstage/plugin-catalog-common@1.0.15 + - @backstage/plugin-permission-common@0.7.7 + +## @backstage/plugin-scaffolder-common@1.4.0 + +### Minor Changes + +- e514aac3eac0: Introduce `each` property on action steps, allowing them to be ran repeatedly. + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.4.1 + - @backstage/types@1.1.0 + - @backstage/plugin-permission-common@0.7.7 + +## @backstage/plugin-scaffolder-node@0.2.0 + +### Minor Changes + +- e514aac3eac0: Introduce `each` property on action steps, allowing them to be ran repeatedly. + +### Patch Changes + +- 12a8c94eda8d: Add package repository and homepage metadata +- e07a4914f621: Added several new types that were moved from `@backstage/plugin-scaffolder-backend`. +- 349611126ae2: Added two new alpha extension points, `scaffolderTaskBrokerExtensionPoint` and `scaffolderTemplatingExtensionPoint`. +- 0b1d775be05b: Export `TemplateExample` from the `createTemplateAction` type. +- d3b31a791eb1: Deprecated `executeShellCommand`, `RunCommandOptions`, and `fetchContents` from `@backstage/plugin-scaffolder-backend`, since they are useful for Scaffolder modules (who should not be importing from the plugin package itself). You should now import these from `@backstage/plugin-scaffolder-backend-node` instead. `RunCommandOptions` was renamed in the Node package as `ExecuteShellCommandOptions`, for consistency. +- Updated dependencies + - @backstage/backend-common@0.19.2 + - @backstage/backend-plugin-api@0.6.0 + - @backstage/integration@1.6.0 + - @backstage/plugin-scaffolder-common@1.4.0 + - @backstage/catalog-model@1.4.1 + - @backstage/errors@1.2.1 + - @backstage/types@1.1.0 + +## @backstage/plugin-search-backend@1.4.0 + +### Minor Changes + +- ebeb77586975: Now performs request validation based on OpenAPI schema through `@backstage/backend-openapi-utils`. Error responses for invalid input, like `"a"` instead of a number, may have changed. + +### Patch Changes + +- 629cbd194a87: Use `coreServices.rootConfig` instead of `coreService.config` +- 12a8c94eda8d: Add package repository and homepage metadata +- 951ab6c9db58: Add missing `configSchema` to package.json +- Updated dependencies + - @backstage/backend-common@0.19.2 + - @backstage/backend-plugin-api@0.6.0 + - @backstage/backend-openapi-utils@0.0.3 + - @backstage/plugin-search-backend-node@1.2.4 + - @backstage/plugin-auth-node@0.2.17 + - @backstage/plugin-permission-node@0.7.11 + - @backstage/config@1.0.8 + - @backstage/errors@1.2.1 + - @backstage/types@1.1.0 + - @backstage/plugin-permission-common@0.7.7 + - @backstage/plugin-search-common@1.2.5 + +## @backstage/plugin-todo-backend@0.2.0 + +### Minor Changes + +- ebeb77586975: Now performs request validation based on OpenAPI schema through `@backstage/backend-openapi-utils`. Error responses for invalid input, like `"a"` instead of a number, may have changed. + +### Patch Changes + +- 629cbd194a87: Use `coreServices.rootConfig` instead of `coreService.config` +- ad3fb5401729: Fixed a bug where filter queries from the frontend would always fail validation. +- Updated dependencies + - @backstage/backend-common@0.19.2 + - @backstage/backend-plugin-api@0.6.0 + - @backstage/backend-openapi-utils@0.0.3 + - @backstage/plugin-catalog-node@1.4.1 + - @backstage/integration@1.6.0 + - @backstage/catalog-client@1.4.3 + - @backstage/catalog-model@1.4.1 + - @backstage/config@1.0.8 + - @backstage/errors@1.2.1 + +## @backstage/app-defaults@1.4.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-app-api@1.9.1 + - @backstage/core-components@0.13.4 + - @backstage/core-plugin-api@1.5.3 + - @backstage/theme@0.4.1 + - @backstage/plugin-permission-react@0.4.14 + +## @backstage/backend-common@0.19.2 + +### Patch Changes + +- 629cbd194a87: Use `coreServices.rootConfig` instead of `coreService.config` + +- 443afcf7f567: To improve performance, `GerritUrlReader.readTree()` now uses Gitiles to fetch an archive instead of cloning the repository. + If `gitilesBaseUrl` is not configured, `readTree` still uses Git to clone the repository. + + Added `stripFirstDirectory` option to `ReadTreeResponseFactory.fromTarArchive()`, allowing to disable stripping first directory + for `tar` archives. + +- 4b82382ed8c2: Fixed invalid configuration schema. The configuration schema may be more strict as a result. + +- Updated dependencies + - @backstage/backend-app-api@0.5.0 + - @backstage/config-loader@1.4.0 + - @backstage/backend-plugin-api@0.6.0 + - @backstage/integration@1.6.0 + - @backstage/integration-aws-node@0.1.5 + - @backstage/backend-dev-utils@0.1.1 + - @backstage/cli-common@0.1.12 + - @backstage/config@1.0.8 + - @backstage/errors@1.2.1 + - @backstage/types@1.1.0 + +## @backstage/backend-openapi-utils@0.0.3 + +### Patch Changes + +- ebeb77586975: Add a new `createRouter` method for generating an `express` router that validates against your spec. Also fixes a bug with the query parameters type resolution. +- 12a8c94eda8d: Add package repository and homepage metadata +- Updated dependencies + - @backstage/errors@1.2.1 + +## @backstage/backend-tasks@0.5.5 + +### Patch Changes + +- dfd1b6b2fc33: Make `readTaskScheduleDefinitionFromConfig` properly handle bad inputs +- Updated dependencies + - @backstage/backend-common@0.19.2 + - @backstage/config@1.0.8 + - @backstage/errors@1.2.1 + - @backstage/types@1.1.0 + +## @backstage/cli@0.22.10 + +### Patch Changes + +- 3f67cefb4780: Reload the frontend when app config changes +- cebbf8a27f3c: Enable to print the config schema not merged with the `--no-merge` flag +- 5c28ebc79fd6: Updated dependency `esbuild` to `^0.19.0`. +- 971bdd6a4732: Bumped internal `nodemon` dependency. +- Updated dependencies + - @backstage/config-loader@1.4.0 + - @backstage/cli-node@0.1.3 + - @backstage/integration@1.6.0 + - @backstage/catalog-model@1.4.1 + - @backstage/cli-common@0.1.12 + - @backstage/config@1.0.8 + - @backstage/errors@1.2.1 + - @backstage/eslint-plugin@0.1.3 + - @backstage/release-manifests@0.0.9 + - @backstage/types@1.1.0 + +## @backstage/cli-node@0.1.3 + +### Patch Changes + +- 12a8c94eda8d: Add package repository and homepage metadata +- Updated dependencies + - @backstage/cli-common@0.1.12 + - @backstage/errors@1.2.1 + - @backstage/types@1.1.0 + +## @backstage/core-app-api@1.9.1 + +### Patch Changes + +- 9ae4e7e63836: Fixed a bug that could cause `navigate` analytics events to be misattributed to the plugin mounted on the root route (e.g. the `home` plugin at `/`) when the route that was navigated to wasn't associated with a routable extension. +- Updated dependencies + - @backstage/core-plugin-api@1.5.3 + - @backstage/config@1.0.8 + - @backstage/types@1.1.0 + - @backstage/version-bridge@1.0.4 + +## @backstage/core-components@0.13.4 + +### Patch Changes + +- 3d86be999fdf: Prefer simple `theme.spacing` without string interpolation +- Updated dependencies + - @backstage/core-plugin-api@1.5.3 + - @backstage/config@1.0.8 + - @backstage/errors@1.2.1 + - @backstage/theme@0.4.1 + - @backstage/version-bridge@1.0.4 + +## @backstage/create-app@0.5.4 + +### Patch Changes + +- b441642fbe0d: Bumped create-app version. +- 572abc7edf55: Bumped create-app version. +- 74f77f151a96: Bumped create-app version. +- 5cc0ac5ef3d1: Bump to a newer version of the `concurrently` library +- 46c9a798e41d: Updated the `app-config.yaml` template to use `proxy.endpoints`. +- 971bdd6a4732: Bumped internal `nodemon` dependency. +- Updated dependencies + - @backstage/cli-common@0.1.12 + +## @backstage/dev-utils@1.0.18 + +### Patch Changes + +- 254ad469f053: Removed deprecated calls to `app.getProvider()` and `app.getRouter()` in `DevAppBuilder` +- Updated dependencies + - @backstage/core-app-api@1.9.1 + - @backstage/integration-react@1.1.16 + - @backstage/core-components@0.13.4 + - @backstage/plugin-catalog-react@1.8.1 + - @backstage/app-defaults@1.4.2 + - @backstage/core-plugin-api@1.5.3 + - @backstage/test-utils@1.4.2 + - @backstage/catalog-model@1.4.1 + - @backstage/theme@0.4.1 + +## @backstage/integration-react@1.1.16 + +### Patch Changes + +- 12a8c94eda8d: Add package repository and homepage metadata +- Updated dependencies + - @backstage/integration@1.6.0 + - @backstage/core-components@0.13.4 + - @backstage/core-plugin-api@1.5.3 + - @backstage/config@1.0.8 + - @backstage/theme@0.4.1 + +## @backstage/repo-tools@0.3.3 + +### Patch Changes + +- 75702e85862a: Bumped `@microsoft/api-extractor` dependency to `^7.36.4`, and `@microsoft/api-documenter` to `^7.22.33`. +- 1f3337ebc707: Introducing a new, experimental command `backstage-repo-tools generate-catalog-info`, which can be used to create standardized `catalog-info.yaml` files for each Backstage package in a Backstage monorepo. It can also be used to automatically fix existing `catalog-info.yaml` files with the correct metadata (including `metadata.name`, `metadata.title`, and `metadata.description` introspected from the package's `package.json`, as well as `spec.owner` introspected from `CODEOWNERS`), e.g. in a post-commit hook. +- ebeb77586975: Update `schema openapi generate` command to now create a default router that can be imported and used directly. +- Updated dependencies + - @backstage/cli-node@0.1.3 + - @backstage/catalog-model@1.4.1 + - @backstage/cli-common@0.1.12 + - @backstage/errors@1.2.1 + +## @techdocs/cli@1.4.5 + +### Patch Changes + +- 971bdd6a4732: Bumped internal `nodemon` dependency. +- Updated dependencies + - @backstage/backend-common@0.19.2 + - @backstage/plugin-techdocs-node@1.7.4 + - @backstage/catalog-model@1.4.1 + - @backstage/cli-common@0.1.12 + - @backstage/config@1.0.8 + +## @backstage/test-utils@1.4.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-app-api@1.9.1 + - @backstage/core-plugin-api@1.5.3 + - @backstage/config@1.0.8 + - @backstage/theme@0.4.1 + - @backstage/types@1.1.0 + - @backstage/plugin-permission-common@0.7.7 + - @backstage/plugin-permission-react@0.4.14 + +## @backstage/plugin-adr@0.6.4 + +### Patch Changes + +- 12a8c94eda8d: Add package repository and homepage metadata +- Updated dependencies + - @backstage/integration-react@1.1.16 + - @backstage/core-components@0.13.4 + - @backstage/plugin-catalog-react@1.8.1 + - @backstage/core-plugin-api@1.5.3 + - @backstage/plugin-search-react@1.6.4 + - @backstage/catalog-model@1.4.1 + - @backstage/theme@0.4.1 + - @backstage/plugin-adr-common@0.2.12 + - @backstage/plugin-search-common@1.2.5 + +## @backstage/plugin-adr-backend@0.3.6 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.2 + - @backstage/backend-plugin-api@0.6.0 + - @backstage/integration@1.6.0 + - @backstage/catalog-client@1.4.3 + - @backstage/catalog-model@1.4.1 + - @backstage/config@1.0.8 + - @backstage/errors@1.2.1 + - @backstage/plugin-adr-common@0.2.12 + - @backstage/plugin-search-common@1.2.5 + +## @backstage/plugin-adr-common@0.2.12 + +### Patch Changes + +- Updated dependencies + - @backstage/integration@1.6.0 + - @backstage/catalog-model@1.4.1 + - @backstage/plugin-search-common@1.2.5 + +## @backstage/plugin-airbrake@0.3.21 + +### Patch Changes + +- 12a8c94eda8d: Add package repository and homepage metadata +- Updated dependencies + - @backstage/dev-utils@1.0.18 + - @backstage/core-components@0.13.4 + - @backstage/plugin-catalog-react@1.8.1 + - @backstage/core-plugin-api@1.5.3 + - @backstage/test-utils@1.4.2 + - @backstage/catalog-model@1.4.1 + - @backstage/theme@0.4.1 + +## @backstage/plugin-airbrake-backend@0.2.21 + +### Patch Changes + +- 629cbd194a87: Use `coreServices.rootConfig` instead of `coreService.config` +- 12a8c94eda8d: Add package repository and homepage metadata +- Updated dependencies + - @backstage/backend-common@0.19.2 + - @backstage/backend-plugin-api@0.6.0 + - @backstage/config@1.0.8 + +## @backstage/plugin-allure@0.1.37 + +### Patch Changes + +- 12a8c94eda8d: Add package repository and homepage metadata +- Updated dependencies + - @backstage/core-components@0.13.4 + - @backstage/plugin-catalog-react@1.8.1 + - @backstage/core-plugin-api@1.5.3 + - @backstage/catalog-model@1.4.1 + - @backstage/theme@0.4.1 + +## @backstage/plugin-analytics-module-ga@0.1.32 + +### Patch Changes + +- 12a8c94eda8d: Add package repository and homepage metadata +- Updated dependencies + - @backstage/core-components@0.13.4 + - @backstage/core-plugin-api@1.5.3 + - @backstage/config@1.0.8 + - @backstage/theme@0.4.1 + +## @backstage/plugin-analytics-module-ga4@0.1.3 + +### Patch Changes + +- 12a8c94eda8d: Add package repository and homepage metadata +- Updated dependencies + - @backstage/core-components@0.13.4 + - @backstage/core-plugin-api@1.5.3 + - @backstage/config@1.0.8 + - @backstage/theme@0.4.1 + +## @backstage/plugin-analytics-module-newrelic-browser@0.0.1 + +### Patch Changes + +- ec7357258853: Introduced the New Relic Browser analytics module. Check out the plugins [README.md](https://github.com/backstage/backstage/tree/master/plugins/analytics-module-newrelic-browser) for more details! +- Updated dependencies + - @backstage/core-components@0.13.4 + - @backstage/core-plugin-api@1.5.3 + - @backstage/config@1.0.8 + +## @backstage/plugin-apache-airflow@0.2.14 + +### Patch Changes + +- 12a8c94eda8d: Add package repository and homepage metadata +- Updated dependencies + - @backstage/core-components@0.13.4 + - @backstage/core-plugin-api@1.5.3 + +## @backstage/plugin-api-docs@0.9.7 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.4 + - @backstage/plugin-catalog@1.12.1 + - @backstage/plugin-catalog-react@1.8.1 + - @backstage/core-plugin-api@1.5.3 + - @backstage/catalog-model@1.4.1 + - @backstage/theme@0.4.1 + +## @backstage/plugin-apollo-explorer@0.1.14 + +### Patch Changes + +- 12a8c94eda8d: Add package repository and homepage metadata +- Updated dependencies + - @backstage/core-components@0.13.4 + - @backstage/core-plugin-api@1.5.3 + - @backstage/theme@0.4.1 + +## @backstage/plugin-app-backend@0.3.48 + +### Patch Changes + +- 629cbd194a87: Use `coreServices.rootConfig` instead of `coreService.config` +- d564ad142b17: Migrated the alpha `appBackend` export to use static configuration and extension points rather than accepting options. +- Updated dependencies + - @backstage/backend-common@0.19.2 + - @backstage/config-loader@1.4.0 + - @backstage/backend-plugin-api@0.6.0 + - @backstage/plugin-app-node@0.1.0 + - @backstage/config@1.0.8 + - @backstage/types@1.1.0 + +## @backstage/plugin-auth-backend@0.18.6 + +### Patch Changes + +- 16452cd007ae: Updated `frameHandler` to return `undefined` when using the redirect flow instead of returning `postMessageReponse` which was causing errors +- 9dad4b0e61bd: Updated config schema to match what was being used in code +- bb70a9c3886a: Add frontend visibility to provider objects in `auth` config. +- Updated dependencies + - @backstage/backend-common@0.19.2 + - @backstage/plugin-auth-node@0.2.17 + - @backstage/catalog-client@1.4.3 + - @backstage/catalog-model@1.4.1 + - @backstage/config@1.0.8 + - @backstage/errors@1.2.1 + - @backstage/types@1.1.0 + +## @backstage/plugin-auth-node@0.2.17 + +### Patch Changes + +- 12a8c94eda8d: Add package repository and homepage metadata +- Updated dependencies + - @backstage/backend-common@0.19.2 + - @backstage/config@1.0.8 + - @backstage/errors@1.2.1 + +## @backstage/plugin-azure-devops@0.3.3 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.4 + - @backstage/plugin-catalog-react@1.8.1 + - @backstage/core-plugin-api@1.5.3 + - @backstage/catalog-model@1.4.1 + - @backstage/errors@1.2.1 + - @backstage/theme@0.4.1 + - @backstage/plugin-azure-devops-common@0.3.0 + +## @backstage/plugin-azure-devops-backend@0.3.27 + +### Patch Changes + +- 629cbd194a87: Use `coreServices.rootConfig` instead of `coreService.config` +- 12a8c94eda8d: Add package repository and homepage metadata +- Updated dependencies + - @backstage/backend-common@0.19.2 + - @backstage/backend-plugin-api@0.6.0 + - @backstage/config@1.0.8 + - @backstage/plugin-azure-devops-common@0.3.0 + +## @backstage/plugin-azure-sites@0.1.10 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.4 + - @backstage/plugin-catalog-react@1.8.1 + - @backstage/core-plugin-api@1.5.3 + - @backstage/catalog-model@1.4.1 + - @backstage/theme@0.4.1 + - @backstage/plugin-azure-sites-common@0.1.0 + +## @backstage/plugin-azure-sites-backend@0.1.10 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.2 + - @backstage/config@1.0.8 + - @backstage/plugin-azure-sites-common@0.1.0 + +## @backstage/plugin-badges@0.2.45 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.4 + - @backstage/plugin-catalog-react@1.8.1 + - @backstage/core-plugin-api@1.5.3 + - @backstage/catalog-model@1.4.1 + - @backstage/errors@1.2.1 + - @backstage/theme@0.4.1 + +## @backstage/plugin-badges-backend@0.2.3 + +### Patch Changes + +- 629cbd194a87: Use `coreServices.rootConfig` instead of `coreService.config` +- Updated dependencies + - @backstage/backend-common@0.19.2 + - @backstage/backend-plugin-api@0.6.0 + - @backstage/plugin-auth-node@0.2.17 + - @backstage/catalog-client@1.4.3 + - @backstage/catalog-model@1.4.1 + - @backstage/config@1.0.8 + - @backstage/errors@1.2.1 + +## @backstage/plugin-bazaar@0.2.12 + +### Patch Changes + +- 12a8c94eda8d: Add package repository and homepage metadata +- Updated dependencies + - @backstage/cli@0.22.10 + - @backstage/core-components@0.13.4 + - @backstage/plugin-catalog@1.12.1 + - @backstage/plugin-catalog-react@1.8.1 + - @backstage/core-plugin-api@1.5.3 + - @backstage/catalog-client@1.4.3 + - @backstage/catalog-model@1.4.1 + - @backstage/errors@1.2.1 + - @backstage/theme@0.4.1 + +## @backstage/plugin-bazaar-backend@0.2.11 + +### Patch Changes + +- 629cbd194a87: Use `coreServices.rootConfig` instead of `coreService.config` +- 12a8c94eda8d: Add package repository and homepage metadata +- Updated dependencies + - @backstage/backend-common@0.19.2 + - @backstage/backend-plugin-api@0.6.0 + - @backstage/plugin-auth-node@0.2.17 + - @backstage/config@1.0.8 + - @backstage/errors@1.2.1 + +## @backstage/plugin-bitbucket-cloud-common@0.2.9 + +### Patch Changes + +- 12a8c94eda8d: Add package repository and homepage metadata +- Updated dependencies + - @backstage/integration@1.6.0 + +## @backstage/plugin-bitrise@0.1.48 + +### Patch Changes + +- 12a8c94eda8d: Add package repository and homepage metadata +- Updated dependencies + - @backstage/core-components@0.13.4 + - @backstage/plugin-catalog-react@1.8.1 + - @backstage/core-plugin-api@1.5.3 + - @backstage/catalog-model@1.4.1 + - @backstage/theme@0.4.1 + +## @backstage/plugin-catalog@1.12.1 + +### Patch Changes + +- 3d86be999fdf: Prefer simple `theme.spacing` without string interpolation +- 136cea792bd4: Fixed an issue causing `EntitySwitch` to unmount its children once entity refresh was invoked +- Updated dependencies + - @backstage/integration-react@1.1.16 + - @backstage/core-components@0.13.4 + - @backstage/plugin-catalog-react@1.8.1 + - @backstage/plugin-scaffolder-common@1.4.0 + - @backstage/core-plugin-api@1.5.3 + - @backstage/plugin-search-react@1.6.4 + - @backstage/catalog-client@1.4.3 + - @backstage/catalog-model@1.4.1 + - @backstage/errors@1.2.1 + - @backstage/theme@0.4.1 + - @backstage/types@1.1.0 + - @backstage/plugin-catalog-common@1.0.15 + - @backstage/plugin-search-common@1.2.5 + +## @backstage/plugin-catalog-backend-module-aws@0.2.3 + +### Patch Changes + +- 629cbd194a87: Use `coreServices.rootConfig` instead of `coreService.config` +- 4b82382ed8c2: Fixed invalid configuration schema. The configuration schema may be more strict as a result. +- b4222908b0c3: Added option to configure AWS `accountId` in `AwsS3EntityProvider` +- Updated dependencies + - @backstage/backend-common@0.19.2 + - @backstage/backend-plugin-api@0.6.0 + - @backstage/plugin-catalog-node@1.4.1 + - @backstage/integration@1.6.0 + - @backstage/backend-tasks@0.5.5 + - @backstage/integration-aws-node@0.1.5 + - @backstage/catalog-model@1.4.1 + - @backstage/config@1.0.8 + - @backstage/errors@1.2.1 + - @backstage/types@1.1.0 + - @backstage/plugin-catalog-common@1.0.15 + - @backstage/plugin-kubernetes-common@0.6.5 + +## @backstage/plugin-catalog-backend-module-azure@0.1.19 + +### Patch Changes + +- 629cbd194a87: Use `coreServices.rootConfig` instead of `coreService.config` +- 4b82382ed8c2: Fixed invalid configuration schema. The configuration schema may be more strict as a result. +- Updated dependencies + - @backstage/backend-common@0.19.2 + - @backstage/backend-plugin-api@0.6.0 + - @backstage/plugin-catalog-node@1.4.1 + - @backstage/integration@1.6.0 + - @backstage/backend-tasks@0.5.5 + - @backstage/catalog-model@1.4.1 + - @backstage/config@1.0.8 + - @backstage/errors@1.2.1 + - @backstage/types@1.1.0 + - @backstage/plugin-catalog-common@1.0.15 + +## @backstage/plugin-catalog-backend-module-bitbucket@0.2.15 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.2 + - @backstage/plugin-bitbucket-cloud-common@0.2.9 + - @backstage/plugin-catalog-node@1.4.1 + - @backstage/integration@1.6.0 + - @backstage/catalog-model@1.4.1 + - @backstage/config@1.0.8 + - @backstage/errors@1.2.1 + - @backstage/types@1.1.0 + +## @backstage/plugin-catalog-backend-module-bitbucket-cloud@0.1.15 + +### Patch Changes + +- 629cbd194a87: Use `coreServices.rootConfig` instead of `coreService.config` +- 4b82382ed8c2: Fixed invalid configuration schema. The configuration schema may be more strict as a result. +- Updated dependencies + - @backstage/backend-common@0.19.2 + - @backstage/backend-plugin-api@0.6.0 + - @backstage/plugin-bitbucket-cloud-common@0.2.9 + - @backstage/plugin-catalog-node@1.4.1 + - @backstage/plugin-events-node@0.2.9 + - @backstage/integration@1.6.0 + - @backstage/backend-tasks@0.5.5 + - @backstage/catalog-client@1.4.3 + - @backstage/catalog-model@1.4.1 + - @backstage/config@1.0.8 + - @backstage/plugin-catalog-common@1.0.15 + +## @backstage/plugin-catalog-backend-module-bitbucket-server@0.1.13 + +### Patch Changes + +- 629cbd194a87: Use `coreServices.rootConfig` instead of `coreService.config` +- 4b82382ed8c2: Fixed invalid configuration schema. The configuration schema may be more strict as a result. +- Updated dependencies + - @backstage/backend-common@0.19.2 + - @backstage/backend-plugin-api@0.6.0 + - @backstage/plugin-catalog-node@1.4.1 + - @backstage/integration@1.6.0 + - @backstage/backend-tasks@0.5.5 + - @backstage/catalog-model@1.4.1 + - @backstage/config@1.0.8 + - @backstage/errors@1.2.1 + +## @backstage/plugin-catalog-backend-module-gerrit@0.1.16 + +### Patch Changes + +- 629cbd194a87: Use `coreServices.rootConfig` instead of `coreService.config` +- 4b82382ed8c2: Fixed invalid configuration schema. The configuration schema may be more strict as a result. +- Updated dependencies + - @backstage/backend-common@0.19.2 + - @backstage/backend-plugin-api@0.6.0 + - @backstage/plugin-catalog-node@1.4.1 + - @backstage/integration@1.6.0 + - @backstage/backend-tasks@0.5.5 + - @backstage/catalog-model@1.4.1 + - @backstage/config@1.0.8 + - @backstage/errors@1.2.1 + +## @backstage/plugin-catalog-backend-module-github@0.3.3 + +### Patch Changes + +- 629cbd194a87: Use `coreServices.rootConfig` instead of `coreService.config` +- 4b82382ed8c2: Fixed invalid configuration schema. The configuration schema may be more strict as a result. +- 81c231c9c9ee: Fixed a bug where the visibility filter was case sensitive and casting was inconsistent. +- Updated dependencies + - @backstage/backend-common@0.19.2 + - @backstage/plugin-catalog-backend@1.12.0 + - @backstage/backend-plugin-api@0.6.0 + - @backstage/plugin-catalog-node@1.4.1 + - @backstage/plugin-events-node@0.2.9 + - @backstage/integration@1.6.0 + - @backstage/backend-tasks@0.5.5 + - @backstage/catalog-client@1.4.3 + - @backstage/catalog-model@1.4.1 + - @backstage/config@1.0.8 + - @backstage/errors@1.2.1 + - @backstage/types@1.1.0 + - @backstage/plugin-catalog-common@1.0.15 + +## @backstage/plugin-catalog-backend-module-gitlab@0.2.4 + +### Patch Changes + +- 629cbd194a87: Use `coreServices.rootConfig` instead of `coreService.config` +- e6c721439f37: Added option to skip forked repos in GitlabDiscoveryEntityProvider +- 4b82382ed8c2: Fixed invalid configuration schema. The configuration schema may be more strict as a result. +- 2fe1f5973ff7: Filter Gitlab archived projects through APIs +- Updated dependencies + - @backstage/backend-common@0.19.2 + - @backstage/backend-plugin-api@0.6.0 + - @backstage/plugin-catalog-node@1.4.1 + - @backstage/integration@1.6.0 + - @backstage/backend-tasks@0.5.5 + - @backstage/catalog-model@1.4.1 + - @backstage/config@1.0.8 + - @backstage/errors@1.2.1 + - @backstage/types@1.1.0 + +## @backstage/plugin-catalog-backend-module-incremental-ingestion@0.4.1 + +### Patch Changes + +- 629cbd194a87: Use `coreServices.rootConfig` instead of `coreService.config` +- e2b6396a1274: Export new alpha `incrementalIngestionProvidersExtensionPoint` for registering incremental providers, rather than the providers being passed as options to the backend module. +- Updated dependencies + - @backstage/backend-common@0.19.2 + - @backstage/plugin-catalog-backend@1.12.0 + - @backstage/backend-plugin-api@0.6.0 + - @backstage/plugin-catalog-node@1.4.1 + - @backstage/plugin-events-node@0.2.9 + - @backstage/backend-tasks@0.5.5 + - @backstage/catalog-model@1.4.1 + - @backstage/config@1.0.8 + - @backstage/errors@1.2.1 + - @backstage/plugin-permission-common@0.7.7 + +## @backstage/plugin-catalog-backend-module-ldap@0.5.15 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-node@1.4.1 + - @backstage/backend-tasks@0.5.5 + - @backstage/catalog-model@1.4.1 + - @backstage/config@1.0.8 + - @backstage/errors@1.2.1 + - @backstage/types@1.1.0 + - @backstage/plugin-catalog-common@1.0.15 + +## @backstage/plugin-catalog-backend-module-msgraph@0.5.7 + +### Patch Changes + +- 629cbd194a87: Use `coreServices.rootConfig` instead of `coreService.config` +- fb93323201bf: The alpha `catalogModuleMicrosoftGraphOrgEntityProvider` export no longer accepts options. Transformers are now instead configured via the `microsoftGraphOrgEntityProviderTransformExtensionPoint`. +- 4b82382ed8c2: Fixed invalid configuration schema. The configuration schema may be more strict as a result. +- Updated dependencies + - @backstage/backend-common@0.19.2 + - @backstage/backend-plugin-api@0.6.0 + - @backstage/plugin-catalog-node@1.4.1 + - @backstage/backend-tasks@0.5.5 + - @backstage/catalog-model@1.4.1 + - @backstage/config@1.0.8 + - @backstage/plugin-catalog-common@1.0.15 + +## @backstage/plugin-catalog-backend-module-openapi@0.1.14 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.2 + - @backstage/plugin-catalog-backend@1.12.0 + - @backstage/plugin-catalog-node@1.4.1 + - @backstage/integration@1.6.0 + - @backstage/catalog-model@1.4.1 + - @backstage/config@1.0.8 + - @backstage/types@1.1.0 + - @backstage/plugin-catalog-common@1.0.15 + +## @backstage/plugin-catalog-backend-module-puppetdb@0.1.5 + +### Patch Changes + +- 629cbd194a87: Use `coreServices.rootConfig` instead of `coreService.config` +- 4b82382ed8c2: Fixed invalid configuration schema. The configuration schema may be more strict as a result. +- Updated dependencies + - @backstage/backend-common@0.19.2 + - @backstage/backend-plugin-api@0.6.0 + - @backstage/plugin-catalog-node@1.4.1 + - @backstage/backend-tasks@0.5.5 + - @backstage/catalog-model@1.4.1 + - @backstage/config@1.0.8 + - @backstage/errors@1.2.1 + - @backstage/types@1.1.0 + +## @backstage/plugin-catalog-graph@0.2.33 + +### Patch Changes + +- 64ee2c0c7ca5: Propagate entity spec to EntityNode so that spec info such as type can be used for graph node customization +- 62dc7a2b1ad1: Added maximum depth parameter to the catalogGraphParams in CatalogGraphCard. +- 12a8c94eda8d: Add package repository and homepage metadata +- Updated dependencies + - @backstage/core-components@0.13.4 + - @backstage/plugin-catalog-react@1.8.1 + - @backstage/core-plugin-api@1.5.3 + - @backstage/catalog-client@1.4.3 + - @backstage/catalog-model@1.4.1 + - @backstage/theme@0.4.1 + - @backstage/types@1.1.0 + +## @backstage/plugin-catalog-import@0.9.11 + +### Patch Changes + +- Updated dependencies + - @backstage/integration-react@1.1.16 + - @backstage/integration@1.6.0 + - @backstage/core-components@0.13.4 + - @backstage/plugin-catalog-react@1.8.1 + - @backstage/core-plugin-api@1.5.3 + - @backstage/catalog-client@1.4.3 + - @backstage/catalog-model@1.4.1 + - @backstage/config@1.0.8 + - @backstage/errors@1.2.1 + - @backstage/plugin-catalog-common@1.0.15 + +## @backstage/plugin-catalog-node@1.4.1 + +### Patch Changes + +- 12a8c94eda8d: Add package repository and homepage metadata +- Updated dependencies + - @backstage/backend-plugin-api@0.6.0 + - @backstage/catalog-client@1.4.3 + - @backstage/catalog-model@1.4.1 + - @backstage/errors@1.2.1 + - @backstage/types@1.1.0 + - @backstage/plugin-catalog-common@1.0.15 + +## @backstage/plugin-catalog-react@1.8.1 + +### Patch Changes + +- aa3feedce10a: Allow specifying screen size when catalog filters are hidden in drawer +- Updated dependencies + - @backstage/integration@1.6.0 + - @backstage/core-components@0.13.4 + - @backstage/core-plugin-api@1.5.3 + - @backstage/catalog-client@1.4.3 + - @backstage/catalog-model@1.4.1 + - @backstage/errors@1.2.1 + - @backstage/theme@0.4.1 + - @backstage/types@1.1.0 + - @backstage/version-bridge@1.0.4 + - @backstage/plugin-catalog-common@1.0.15 + - @backstage/plugin-permission-common@0.7.7 + - @backstage/plugin-permission-react@0.4.14 + +## @backstage/plugin-catalog-unprocessed-entities@0.1.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.4 + - @backstage/core-plugin-api@1.5.3 + - @backstage/catalog-model@1.4.1 + - @backstage/errors@1.2.1 + - @backstage/theme@0.4.1 + +## @backstage/plugin-cicd-statistics@0.1.23 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.8.1 + - @backstage/core-plugin-api@1.5.3 + - @backstage/catalog-model@1.4.1 + +## @backstage/plugin-cicd-statistics-module-gitlab@0.1.17 + +### Patch Changes + +- 12a8c94eda8d: Add package repository and homepage metadata +- Updated dependencies + - @backstage/core-plugin-api@1.5.3 + - @backstage/catalog-model@1.4.1 + - @backstage/plugin-cicd-statistics@0.1.23 + +## @backstage/plugin-circleci@0.3.21 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.4 + - @backstage/plugin-catalog-react@1.8.1 + - @backstage/core-plugin-api@1.5.3 + - @backstage/catalog-model@1.4.1 + - @backstage/theme@0.4.1 + +## @backstage/plugin-cloudbuild@0.3.21 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.4 + - @backstage/plugin-catalog-react@1.8.1 + - @backstage/core-plugin-api@1.5.3 + - @backstage/catalog-model@1.4.1 + - @backstage/theme@0.4.1 + +## @backstage/plugin-code-climate@0.1.21 + +### Patch Changes + +- 12a8c94eda8d: Add package repository and homepage metadata +- Updated dependencies + - @backstage/core-components@0.13.4 + - @backstage/plugin-catalog-react@1.8.1 + - @backstage/core-plugin-api@1.5.3 + - @backstage/catalog-model@1.4.1 + - @backstage/theme@0.4.1 + +## @backstage/plugin-code-coverage@0.2.14 + +### Patch Changes + +- 12a8c94eda8d: Add package repository and homepage metadata +- Updated dependencies + - @backstage/core-components@0.13.4 + - @backstage/plugin-catalog-react@1.8.1 + - @backstage/core-plugin-api@1.5.3 + - @backstage/catalog-model@1.4.1 + - @backstage/config@1.0.8 + - @backstage/errors@1.2.1 + - @backstage/theme@0.4.1 + +## @backstage/plugin-code-coverage-backend@0.2.14 + +### Patch Changes + +- 12a8c94eda8d: Add package repository and homepage metadata +- Updated dependencies + - @backstage/backend-common@0.19.2 + - @backstage/integration@1.6.0 + - @backstage/catalog-client@1.4.3 + - @backstage/catalog-model@1.4.1 + - @backstage/config@1.0.8 + - @backstage/errors@1.2.1 + +## @backstage/plugin-codescene@0.1.16 + +### Patch Changes + +- 12a8c94eda8d: Add package repository and homepage metadata +- Updated dependencies + - @backstage/core-components@0.13.4 + - @backstage/core-plugin-api@1.5.3 + - @backstage/config@1.0.8 + - @backstage/errors@1.2.1 + - @backstage/theme@0.4.1 + +## @backstage/plugin-config-schema@0.1.44 + +### Patch Changes + +- 12a8c94eda8d: Add package repository and homepage metadata +- Updated dependencies + - @backstage/core-components@0.13.4 + - @backstage/core-plugin-api@1.5.3 + - @backstage/config@1.0.8 + - @backstage/errors@1.2.1 + - @backstage/theme@0.4.1 + - @backstage/types@1.1.0 + +## @backstage/plugin-cost-insights@0.12.10 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.4 + - @backstage/plugin-catalog-react@1.8.1 + - @backstage/core-plugin-api@1.5.3 + - @backstage/catalog-model@1.4.1 + - @backstage/config@1.0.8 + - @backstage/theme@0.4.1 + - @backstage/plugin-cost-insights-common@0.1.1 + +## @backstage/plugin-devtools@0.1.3 + +### Patch Changes + +- 48b6a04ad045: Fix readme typo +- Updated dependencies + - @backstage/plugin-devtools-common@0.1.3 + - @backstage/core-components@0.13.4 + - @backstage/core-plugin-api@1.5.3 + - @backstage/errors@1.2.1 + - @backstage/theme@0.4.1 + - @backstage/types@1.1.0 + - @backstage/plugin-permission-react@0.4.14 + +## @backstage/plugin-devtools-backend@0.1.3 + +### Patch Changes + +- 629cbd194a87: Use `coreServices.rootConfig` instead of `coreService.config` + +- 12a8c94eda8d: Add package repository and homepage metadata + +- 2b4f77a4e900: Add DevTools configuration to enable dependency listing to be filtered with custom prefixes. For instance, in your `app-config.yaml`: + + ```yaml + devTools: + info: + packagePrefixes: + - @backstage/ + - @roadiehq/backstage- + - @spotify/backstage- + ``` + +- Updated dependencies + - @backstage/backend-common@0.19.2 + - @backstage/config-loader@1.4.0 + - @backstage/backend-plugin-api@0.6.0 + - @backstage/plugin-devtools-common@0.1.3 + - @backstage/plugin-auth-node@0.2.17 + - @backstage/plugin-permission-node@0.7.11 + - @backstage/cli-common@0.1.12 + - @backstage/config@1.0.8 + - @backstage/errors@1.2.1 + - @backstage/types@1.1.0 + - @backstage/plugin-permission-common@0.7.7 + +## @backstage/plugin-devtools-common@0.1.3 + +### Patch Changes + +- 12a8c94eda8d: Add package repository and homepage metadata +- Updated dependencies + - @backstage/types@1.1.0 + - @backstage/plugin-permission-common@0.7.7 + +## @backstage/plugin-dynatrace@7.0.1 + +### Patch Changes + +- 12a8c94eda8d: Add package repository and homepage metadata +- Updated dependencies + - @backstage/core-components@0.13.4 + - @backstage/plugin-catalog-react@1.8.1 + - @backstage/core-plugin-api@1.5.3 + - @backstage/catalog-model@1.4.1 + - @backstage/theme@0.4.1 + +## @backstage/plugin-entity-feedback@0.2.4 + +### Patch Changes + +- 12a8c94eda8d: Add package repository and homepage metadata +- Updated dependencies + - @backstage/plugin-entity-feedback-common@0.1.2 + - @backstage/core-components@0.13.4 + - @backstage/plugin-catalog-react@1.8.1 + - @backstage/core-plugin-api@1.5.3 + - @backstage/catalog-model@1.4.1 + - @backstage/errors@1.2.1 + - @backstage/theme@0.4.1 + +## @backstage/plugin-entity-feedback-backend@0.1.6 + +### Patch Changes + +- 12a8c94eda8d: Add package repository and homepage metadata +- Updated dependencies + - @backstage/backend-common@0.19.2 + - @backstage/backend-plugin-api@0.6.0 + - @backstage/plugin-entity-feedback-common@0.1.2 + - @backstage/plugin-auth-node@0.2.17 + - @backstage/catalog-client@1.4.3 + - @backstage/catalog-model@1.4.1 + - @backstage/config@1.0.8 + +## @backstage/plugin-entity-feedback-common@0.1.2 + +### Patch Changes + +- 12a8c94eda8d: Add package repository and homepage metadata + +## @backstage/plugin-entity-validation@0.1.6 + +### Patch Changes + +- 12a8c94eda8d: Add package repository and homepage metadata +- Updated dependencies + - @backstage/core-components@0.13.4 + - @backstage/plugin-catalog-react@1.8.1 + - @backstage/core-plugin-api@1.5.3 + - @backstage/catalog-client@1.4.3 + - @backstage/catalog-model@1.4.1 + - @backstage/errors@1.2.1 + - @backstage/theme@0.4.1 + - @backstage/plugin-catalog-common@1.0.15 + +## @backstage/plugin-events-backend@0.2.9 + +### Patch Changes + +- 629cbd194a87: Use `coreServices.rootConfig` instead of `coreService.config` +- 12a8c94eda8d: Add package repository and homepage metadata +- Updated dependencies + - @backstage/backend-common@0.19.2 + - @backstage/backend-plugin-api@0.6.0 + - @backstage/plugin-events-node@0.2.9 + - @backstage/config@1.0.8 + +## @backstage/plugin-events-backend-module-aws-sqs@0.2.3 + +### Patch Changes + +- 629cbd194a87: Use `coreServices.rootConfig` instead of `coreService.config` +- 12a8c94eda8d: Add package repository and homepage metadata +- 4b82382ed8c2: Fixed invalid configuration schema. The configuration schema may be more strict as a result. +- Updated dependencies + - @backstage/backend-common@0.19.2 + - @backstage/backend-plugin-api@0.6.0 + - @backstage/plugin-events-node@0.2.9 + - @backstage/backend-tasks@0.5.5 + - @backstage/config@1.0.8 + - @backstage/types@1.1.0 + +## @backstage/plugin-events-backend-module-azure@0.1.10 + +### Patch Changes + +- 12a8c94eda8d: Add package repository and homepage metadata +- Updated dependencies + - @backstage/backend-plugin-api@0.6.0 + - @backstage/plugin-events-node@0.2.9 + +## @backstage/plugin-events-backend-module-bitbucket-cloud@0.1.10 + +### Patch Changes + +- 12a8c94eda8d: Add package repository and homepage metadata +- Updated dependencies + - @backstage/backend-plugin-api@0.6.0 + - @backstage/plugin-events-node@0.2.9 + +## @backstage/plugin-events-backend-module-gerrit@0.1.10 + +### Patch Changes + +- 12a8c94eda8d: Add package repository and homepage metadata +- Updated dependencies + - @backstage/backend-plugin-api@0.6.0 + - @backstage/plugin-events-node@0.2.9 + +## @backstage/plugin-events-backend-module-github@0.1.10 + +### Patch Changes + +- 629cbd194a87: Use `coreServices.rootConfig` instead of `coreService.config` +- 12a8c94eda8d: Add package repository and homepage metadata +- Updated dependencies + - @backstage/backend-plugin-api@0.6.0 + - @backstage/plugin-events-node@0.2.9 + - @backstage/config@1.0.8 + +## @backstage/plugin-events-backend-module-gitlab@0.1.10 + +### Patch Changes + +- 629cbd194a87: Use `coreServices.rootConfig` instead of `coreService.config` +- 12a8c94eda8d: Add package repository and homepage metadata +- Updated dependencies + - @backstage/backend-plugin-api@0.6.0 + - @backstage/plugin-events-node@0.2.9 + - @backstage/config@1.0.8 + +## @backstage/plugin-events-backend-test-utils@0.1.10 + +### Patch Changes + +- 12a8c94eda8d: Add package repository and homepage metadata +- Updated dependencies + - @backstage/plugin-events-node@0.2.9 + +## @backstage/plugin-events-node@0.2.9 + +### Patch Changes + +- 12a8c94eda8d: Add package repository and homepage metadata +- Updated dependencies + - @backstage/backend-plugin-api@0.6.0 + +## @backstage/plugin-explore@0.4.7 + +### Patch Changes + +- 41a26248c91c: Support `material-ui` overrides in plugin-explore components +- 83467b0534ee: Don't put "?" in URL if no query parameters. +- Updated dependencies + - @backstage/core-components@0.13.4 + - @backstage/plugin-catalog-react@1.8.1 + - @backstage/core-plugin-api@1.5.3 + - @backstage/plugin-search-react@1.6.4 + - @backstage/plugin-explore-react@0.0.30 + - @backstage/catalog-model@1.4.1 + - @backstage/errors@1.2.1 + - @backstage/theme@0.4.1 + - @backstage/plugin-explore-common@0.0.1 + - @backstage/plugin-search-common@1.2.5 + +## @backstage/plugin-explore-backend@0.0.10 + +### Patch Changes + +- eda2a699f40d: Moved the config example from the "Tools as Code" section to the "Tools as Config" section of the README +- 12a8c94eda8d: Add package repository and homepage metadata +- Updated dependencies + - @backstage/plugin-search-backend-module-explore@0.1.4 + - @backstage/backend-common@0.19.2 + - @backstage/config@1.0.8 + - @backstage/types@1.1.0 + - @backstage/plugin-explore-common@0.0.1 + - @backstage/plugin-search-common@1.2.5 + +## @backstage/plugin-firehydrant@0.2.5 + +### Patch Changes + +- 12a8c94eda8d: Add package repository and homepage metadata +- Updated dependencies + - @backstage/core-components@0.13.4 + - @backstage/plugin-catalog-react@1.8.1 + - @backstage/core-plugin-api@1.5.3 + - @backstage/catalog-model@1.4.1 + - @backstage/theme@0.4.1 + +## @backstage/plugin-fossa@0.2.53 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.4 + - @backstage/plugin-catalog-react@1.8.1 + - @backstage/core-plugin-api@1.5.3 + - @backstage/catalog-model@1.4.1 + - @backstage/errors@1.2.1 + - @backstage/theme@0.4.1 + +## @backstage/plugin-gcalendar@0.3.17 + +### Patch Changes + +- 12a8c94eda8d: Add package repository and homepage metadata +- Updated dependencies + - @backstage/core-components@0.13.4 + - @backstage/core-plugin-api@1.5.3 + - @backstage/errors@1.2.1 + - @backstage/theme@0.4.1 + +## @backstage/plugin-gcp-projects@0.3.40 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.4 + - @backstage/core-plugin-api@1.5.3 + - @backstage/theme@0.4.1 + +## @backstage/plugin-git-release-manager@0.3.34 + +### Patch Changes + +- 12a8c94eda8d: Add package repository and homepage metadata +- Updated dependencies + - @backstage/integration@1.6.0 + - @backstage/core-components@0.13.4 + - @backstage/core-plugin-api@1.5.3 + - @backstage/theme@0.4.1 + +## @backstage/plugin-github-actions@0.6.2 + +### Patch Changes + +- Updated dependencies + - @backstage/integration-react@1.1.16 + - @backstage/integration@1.6.0 + - @backstage/core-components@0.13.4 + - @backstage/plugin-catalog-react@1.8.1 + - @backstage/core-plugin-api@1.5.3 + - @backstage/catalog-model@1.4.1 + - @backstage/theme@0.4.1 + +## @backstage/plugin-github-deployments@0.1.52 + +### Patch Changes + +- 12a8c94eda8d: Add package repository and homepage metadata +- Updated dependencies + - @backstage/integration-react@1.1.16 + - @backstage/integration@1.6.0 + - @backstage/core-components@0.13.4 + - @backstage/plugin-catalog-react@1.8.1 + - @backstage/core-plugin-api@1.5.3 + - @backstage/catalog-model@1.4.1 + - @backstage/errors@1.2.1 + - @backstage/theme@0.4.1 + +## @backstage/plugin-github-issues@0.2.10 + +### Patch Changes + +- 12a8c94eda8d: Add package repository and homepage metadata +- Updated dependencies + - @backstage/integration@1.6.0 + - @backstage/core-components@0.13.4 + - @backstage/plugin-catalog-react@1.8.1 + - @backstage/core-plugin-api@1.5.3 + - @backstage/catalog-model@1.4.1 + - @backstage/errors@1.2.1 + - @backstage/theme@0.4.1 + +## @backstage/plugin-github-pull-requests-board@0.1.15 + +### Patch Changes + +- Updated dependencies + - @backstage/integration@1.6.0 + - @backstage/core-components@0.13.4 + - @backstage/plugin-catalog-react@1.8.1 + - @backstage/core-plugin-api@1.5.3 + - @backstage/catalog-model@1.4.1 + - @backstage/theme@0.4.1 + +## @backstage/plugin-gitops-profiles@0.3.39 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.4 + - @backstage/core-plugin-api@1.5.3 + - @backstage/config@1.0.8 + - @backstage/theme@0.4.1 + +## @backstage/plugin-gocd@0.1.27 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.4 + - @backstage/plugin-catalog-react@1.8.1 + - @backstage/core-plugin-api@1.5.3 + - @backstage/catalog-model@1.4.1 + - @backstage/errors@1.2.1 + - @backstage/theme@0.4.1 + +## @backstage/plugin-graphiql@0.2.53 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.4 + - @backstage/core-plugin-api@1.5.3 + - @backstage/theme@0.4.1 + +## @backstage/plugin-graphql-backend@0.1.38 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.2 + - @backstage/config@1.0.8 + - @backstage/plugin-catalog-graphql@0.3.22 + +## @backstage/plugin-graphql-voyager@0.1.6 + +### Patch Changes + +- bb1e1c2b26cc: Fix typo in install instructions. +- 12a8c94eda8d: Add package repository and homepage metadata +- Updated dependencies + - @backstage/core-components@0.13.4 + - @backstage/core-plugin-api@1.5.3 + - @backstage/theme@0.4.1 + +## @backstage/plugin-home@0.5.5 + +### Patch Changes + +- a559ff68de7e: Now, user can provide a language (optional) as input to receive a greeting in that specific language. Example: `` +- 6743d3917a52: Make sure the widget name is never empty in the `AddWidgetDialog`. If the title was set to "", the entry would contain an empty string. Use the name as a fallback +- Updated dependencies + - @backstage/plugin-home-react@0.1.2 + - @backstage/core-components@0.13.4 + - @backstage/plugin-catalog-react@1.8.1 + - @backstage/core-plugin-api@1.5.3 + - @backstage/catalog-model@1.4.1 + - @backstage/config@1.0.8 + - @backstage/theme@0.4.1 + +## @backstage/plugin-home-react@0.1.2 + +### Patch Changes + +- bf67dce73174: Make `title` optional when defining the `createCardExtension` +- Updated dependencies + - @backstage/core-components@0.13.4 + - @backstage/core-plugin-api@1.5.3 + +## @backstage/plugin-ilert@0.2.10 + +### Patch Changes + +- 12a8c94eda8d: Add package repository and homepage metadata +- Updated dependencies + - @backstage/core-components@0.13.4 + - @backstage/plugin-catalog-react@1.8.1 + - @backstage/core-plugin-api@1.5.3 + - @backstage/catalog-model@1.4.1 + - @backstage/errors@1.2.1 + - @backstage/theme@0.4.1 + +## @backstage/plugin-jenkins@0.8.3 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-jenkins-common@0.1.18 + - @backstage/core-components@0.13.4 + - @backstage/plugin-catalog-react@1.8.1 + - @backstage/core-plugin-api@1.5.3 + - @backstage/catalog-model@1.4.1 + - @backstage/errors@1.2.1 + - @backstage/theme@0.4.1 + +## @backstage/plugin-jenkins-backend@0.2.3 + +### Patch Changes + +- 12a8c94eda8d: Add package repository and homepage metadata +- 4b82382ed8c2: Fixed invalid configuration schema. The configuration schema may be more strict as a result. +- Updated dependencies + - @backstage/backend-common@0.19.2 + - @backstage/plugin-jenkins-common@0.1.18 + - @backstage/plugin-auth-node@0.2.17 + - @backstage/plugin-permission-node@0.7.11 + - @backstage/catalog-client@1.4.3 + - @backstage/catalog-model@1.4.1 + - @backstage/config@1.0.8 + - @backstage/errors@1.2.1 + - @backstage/plugin-permission-common@0.7.7 + +## @backstage/plugin-jenkins-common@0.1.18 + +### Patch Changes + +- 12a8c94eda8d: Add package repository and homepage metadata +- Updated dependencies + - @backstage/plugin-catalog-common@1.0.15 + - @backstage/plugin-permission-common@0.7.7 + +## @backstage/plugin-kafka@0.3.21 + +### Patch Changes + +- 12a8c94eda8d: Add package repository and homepage metadata +- Updated dependencies + - @backstage/core-components@0.13.4 + - @backstage/plugin-catalog-react@1.8.1 + - @backstage/core-plugin-api@1.5.3 + - @backstage/catalog-model@1.4.1 + - @backstage/config@1.0.8 + - @backstage/theme@0.4.1 + +## @backstage/plugin-kafka-backend@0.2.41 + +### Patch Changes + +- 629cbd194a87: Use `coreServices.rootConfig` instead of `coreService.config` +- Updated dependencies + - @backstage/backend-common@0.19.2 + - @backstage/backend-plugin-api@0.6.0 + - @backstage/catalog-model@1.4.1 + - @backstage/config@1.0.8 + - @backstage/errors@1.2.1 + +## @backstage/plugin-kubernetes-backend@0.11.3 + +### Patch Changes + +- 629cbd194a87: Use `coreServices.rootConfig` instead of `coreService.config` +- bbf4e9c894b5: Fixed a bug where the proxy was not rewriting WebSocket request paths properly. +- Updated dependencies + - @backstage/backend-common@0.19.2 + - @backstage/backend-plugin-api@0.6.0 + - @backstage/plugin-catalog-node@1.4.1 + - @backstage/plugin-auth-node@0.2.17 + - @backstage/plugin-permission-node@0.7.11 + - @backstage/integration-aws-node@0.1.5 + - @backstage/catalog-client@1.4.3 + - @backstage/catalog-model@1.4.1 + - @backstage/config@1.0.8 + - @backstage/errors@1.2.1 + - @backstage/plugin-kubernetes-common@0.6.5 + - @backstage/plugin-permission-common@0.7.7 + +## @backstage/plugin-lighthouse@0.4.6 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.4 + - @backstage/plugin-catalog-react@1.8.1 + - @backstage/core-plugin-api@1.5.3 + - @backstage/catalog-model@1.4.1 + - @backstage/config@1.0.8 + - @backstage/theme@0.4.1 + - @backstage/plugin-lighthouse-common@0.1.2 + +## @backstage/plugin-lighthouse-backend@0.2.4 + +### Patch Changes + +- 629cbd194a87: Use `coreServices.rootConfig` instead of `coreService.config` +- Updated dependencies + - @backstage/backend-common@0.19.2 + - @backstage/backend-plugin-api@0.6.0 + - @backstage/plugin-catalog-node@1.4.1 + - @backstage/backend-tasks@0.5.5 + - @backstage/catalog-client@1.4.3 + - @backstage/catalog-model@1.4.1 + - @backstage/config@1.0.8 + - @backstage/types@1.1.0 + - @backstage/plugin-lighthouse-common@0.1.2 + +## @backstage/plugin-linguist@0.1.6 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-linguist-common@0.1.1 + - @backstage/core-components@0.13.4 + - @backstage/plugin-catalog-react@1.8.1 + - @backstage/core-plugin-api@1.5.3 + - @backstage/catalog-model@1.4.1 + - @backstage/errors@1.2.1 + - @backstage/theme@0.4.1 + +## @backstage/plugin-linguist-common@0.1.1 + +### Patch Changes + +- 12a8c94eda8d: Add package repository and homepage metadata +- d440f1dd0e72: Exported new LanguageType type alias + +## @backstage/plugin-microsoft-calendar@0.1.6 + +### Patch Changes + +- 12a8c94eda8d: Add package repository and homepage metadata +- eea2922e749a: README update - example of apiRef definition and fixed component name +- Updated dependencies + - @backstage/core-components@0.13.4 + - @backstage/core-plugin-api@1.5.3 + - @backstage/errors@1.2.1 + - @backstage/theme@0.4.1 + +## @backstage/plugin-newrelic@0.3.39 + +### Patch Changes + +- 2167b7eab09b: The newrelic plugin now supports pagination when retrieving results from newrelic. It will no longer truncate results. To see all applications, the link header will need to be allowed through the proxy (see the newrelic plugin readme). +- Updated dependencies + - @backstage/core-components@0.13.4 + - @backstage/core-plugin-api@1.5.3 + - @backstage/theme@0.4.1 + +## @backstage/plugin-newrelic-dashboard@0.2.14 + +### Patch Changes + +- 12a8c94eda8d: Add package repository and homepage metadata +- Updated dependencies + - @backstage/core-components@0.13.4 + - @backstage/plugin-catalog-react@1.8.1 + - @backstage/core-plugin-api@1.5.3 + - @backstage/catalog-model@1.4.1 + - @backstage/errors@1.2.1 + +## @backstage/plugin-nomad@0.1.2 + +### Patch Changes + +- 12a8c94eda8d: Add package repository and homepage metadata +- Updated dependencies + - @backstage/core-components@0.13.4 + - @backstage/plugin-catalog-react@1.8.1 + - @backstage/core-plugin-api@1.5.3 + - @backstage/catalog-model@1.4.1 + - @backstage/config@1.0.8 + - @backstage/theme@0.4.1 + +## @backstage/plugin-nomad-backend@0.1.2 + +### Patch Changes + +- 12a8c94eda8d: Add package repository and homepage metadata +- Updated dependencies + - @backstage/backend-common@0.19.2 + - @backstage/config@1.0.8 + - @backstage/errors@1.2.1 + +## @backstage/plugin-octopus-deploy@0.2.3 + +### Patch Changes + +- 12a8c94eda8d: Add package repository and homepage metadata +- Updated dependencies + - @backstage/core-components@0.13.4 + - @backstage/plugin-catalog-react@1.8.1 + - @backstage/core-plugin-api@1.5.3 + - @backstage/catalog-model@1.4.1 + - @backstage/theme@0.4.1 + +## @backstage/plugin-org@0.6.11 + +### Patch Changes + +- 50331203e2a2: Fixed bug in MembersListCard component where the url for the members was static which was breaking the component when catalog route was changed +- 12a8c94eda8d: Add package repository and homepage metadata +- Updated dependencies + - @backstage/core-components@0.13.4 + - @backstage/plugin-catalog-react@1.8.1 + - @backstage/core-plugin-api@1.5.3 + - @backstage/catalog-model@1.4.1 + - @backstage/theme@0.4.1 + +## @backstage/plugin-org-react@0.1.10 + +### Patch Changes + +- 12a8c94eda8d: Add package repository and homepage metadata +- Updated dependencies + - @backstage/core-components@0.13.4 + - @backstage/plugin-catalog-react@1.8.1 + - @backstage/core-plugin-api@1.5.3 + - @backstage/catalog-client@1.4.3 + - @backstage/catalog-model@1.4.1 + - @backstage/theme@0.4.1 + +## @backstage/plugin-pagerduty@0.6.2 + +### Patch Changes + +- 5003fc966741: Add new `disableChangeEvents` prop to `EntityPagerDutyCard` to hide the Change Events tab and disable fetching of change events for the PagerDuty service. +- Updated dependencies + - @backstage/plugin-home-react@0.1.2 + - @backstage/core-components@0.13.4 + - @backstage/plugin-catalog-react@1.8.1 + - @backstage/core-plugin-api@1.5.3 + - @backstage/catalog-model@1.4.1 + - @backstage/errors@1.2.1 + - @backstage/theme@0.4.1 + +## @backstage/plugin-periskop@0.1.19 + +### Patch Changes + +- 12a8c94eda8d: Add package repository and homepage metadata +- Updated dependencies + - @backstage/core-components@0.13.4 + - @backstage/plugin-catalog-react@1.8.1 + - @backstage/core-plugin-api@1.5.3 + - @backstage/catalog-model@1.4.1 + - @backstage/errors@1.2.1 + - @backstage/theme@0.4.1 + +## @backstage/plugin-periskop-backend@0.1.19 + +### Patch Changes + +- 629cbd194a87: Use `coreServices.rootConfig` instead of `coreService.config` +- 12a8c94eda8d: Add package repository and homepage metadata +- Updated dependencies + - @backstage/backend-common@0.19.2 + - @backstage/backend-plugin-api@0.6.0 + - @backstage/config@1.0.8 + +## @backstage/plugin-permission-backend@0.5.23 + +### Patch Changes + +- 629cbd194a87: Use `coreServices.rootConfig` instead of `coreService.config` +- 12a8c94eda8d: Add package repository and homepage metadata +- 0d6ddc62d8da: Refactor backend plugin creation parameter from callback to object. +- Updated dependencies + - @backstage/backend-common@0.19.2 + - @backstage/backend-plugin-api@0.6.0 + - @backstage/plugin-auth-node@0.2.17 + - @backstage/plugin-permission-node@0.7.11 + - @backstage/config@1.0.8 + - @backstage/errors@1.2.1 + - @backstage/plugin-permission-common@0.7.7 + +## @backstage/plugin-permission-node@0.7.11 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.2 + - @backstage/backend-plugin-api@0.6.0 + - @backstage/plugin-auth-node@0.2.17 + - @backstage/config@1.0.8 + - @backstage/errors@1.2.1 + - @backstage/plugin-permission-common@0.7.7 + +## @backstage/plugin-playlist@0.1.13 + +### Patch Changes + +- d1e0588324d1: Displaying an alert popup each time the Playlist is created or deleted +- 12a8c94eda8d: Add package repository and homepage metadata +- 8a997547f02a: Adding alert popup whenever user delete the entities from playlist entity table +- Updated dependencies + - @backstage/plugin-playlist-common@0.1.9 + - @backstage/core-components@0.13.4 + - @backstage/plugin-catalog-react@1.8.1 + - @backstage/core-plugin-api@1.5.3 + - @backstage/plugin-search-react@1.6.4 + - @backstage/catalog-model@1.4.1 + - @backstage/errors@1.2.1 + - @backstage/theme@0.4.1 + - @backstage/plugin-catalog-common@1.0.15 + - @backstage/plugin-permission-common@0.7.7 + - @backstage/plugin-permission-react@0.4.14 + +## @backstage/plugin-playlist-backend@0.3.4 + +### Patch Changes + +- 12a8c94eda8d: Add package repository and homepage metadata +- Updated dependencies + - @backstage/backend-common@0.19.2 + - @backstage/plugin-playlist-common@0.1.9 + - @backstage/plugin-auth-node@0.2.17 + - @backstage/plugin-permission-node@0.7.11 + - @backstage/catalog-client@1.4.3 + - @backstage/catalog-model@1.4.1 + - @backstage/config@1.0.8 + - @backstage/errors@1.2.1 + - @backstage/plugin-permission-common@0.7.7 + +## @backstage/plugin-playlist-common@0.1.9 + +### Patch Changes + +- 12a8c94eda8d: Add package repository and homepage metadata +- Updated dependencies + - @backstage/plugin-permission-common@0.7.7 + +## @backstage/plugin-puppetdb@0.1.4 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.4 + - @backstage/plugin-catalog-react@1.8.1 + - @backstage/core-plugin-api@1.5.3 + - @backstage/catalog-model@1.4.1 + - @backstage/errors@1.2.1 + - @backstage/theme@0.4.1 + +## @backstage/plugin-rollbar@0.4.21 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.4 + - @backstage/plugin-catalog-react@1.8.1 + - @backstage/core-plugin-api@1.5.3 + - @backstage/catalog-model@1.4.1 + - @backstage/theme@0.4.1 + +## @backstage/plugin-rollbar-backend@0.1.45 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.2 + - @backstage/config@1.0.8 + +## @backstage/plugin-scaffolder@1.14.2 + +### Patch Changes + +- 8a0490fb669e: Fix the get entities query in the `MyGroupsPicker` to query the `kind=Group` entities. +- Updated dependencies + - @backstage/integration-react@1.1.16 + - @backstage/integration@1.6.0 + - @backstage/core-components@0.13.4 + - @backstage/plugin-catalog-react@1.8.1 + - @backstage/plugin-scaffolder-common@1.4.0 + - @backstage/plugin-scaffolder-react@1.5.2 + - @backstage/core-plugin-api@1.5.3 + - @backstage/catalog-client@1.4.3 + - @backstage/catalog-model@1.4.1 + - @backstage/config@1.0.8 + - @backstage/errors@1.2.1 + - @backstage/theme@0.4.1 + - @backstage/types@1.1.0 + - @backstage/plugin-catalog-common@1.0.15 + - @backstage/plugin-permission-react@0.4.14 + +## @backstage/plugin-scaffolder-backend-module-confluence-to-markdown@0.2.1 + +### Patch Changes + +- 0a9b3b14e904: Added example for the `confluence:transform:markdown` that will show in the installed actions list +- 12a8c94eda8d: Add package repository and homepage metadata +- 0d347efc8f18: Use `fetchContents` directly instead of a `fetchPlainAction` +- c186c631b429: Import helpers from the node package instead of the backend package +- Updated dependencies + - @backstage/backend-common@0.19.2 + - @backstage/plugin-scaffolder-node@0.2.0 + - @backstage/integration@1.6.0 + - @backstage/config@1.0.8 + - @backstage/errors@1.2.1 + - @backstage/types@1.1.0 + +## @backstage/plugin-scaffolder-backend-module-cookiecutter@0.2.24 + +### Patch Changes + +- 12a8c94eda8d: Add package repository and homepage metadata +- c186c631b429: Import helpers from the node package instead of the backend package +- Updated dependencies + - @backstage/backend-common@0.19.2 + - @backstage/plugin-scaffolder-node@0.2.0 + - @backstage/integration@1.6.0 + - @backstage/config@1.0.8 + - @backstage/errors@1.2.1 + - @backstage/types@1.1.0 + +## @backstage/plugin-scaffolder-backend-module-gitlab@0.2.3 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-scaffolder-node@0.2.0 + - @backstage/integration@1.6.0 + - @backstage/config@1.0.8 + - @backstage/errors@1.2.1 + +## @backstage/plugin-scaffolder-backend-module-rails@0.4.17 + +### Patch Changes + +- 12a8c94eda8d: Add package repository and homepage metadata +- c186c631b429: Import helpers from the node package instead of the backend package +- Updated dependencies + - @backstage/backend-common@0.19.2 + - @backstage/plugin-scaffolder-node@0.2.0 + - @backstage/integration@1.6.0 + - @backstage/config@1.0.8 + - @backstage/errors@1.2.1 + - @backstage/types@1.1.0 + +## @backstage/plugin-scaffolder-backend-module-sentry@0.1.8 + +### Patch Changes + +- 12a8c94eda8d: Add package repository and homepage metadata +- Updated dependencies + - @backstage/plugin-scaffolder-node@0.2.0 + - @backstage/config@1.0.8 + - @backstage/errors@1.2.1 + +## @backstage/plugin-scaffolder-backend-module-yeoman@0.2.21 + +### Patch Changes + +- 12a8c94eda8d: Add package repository and homepage metadata +- Updated dependencies + - @backstage/plugin-scaffolder-node@0.2.0 + - @backstage/config@1.0.8 + - @backstage/types@1.1.0 + +## @backstage/plugin-scaffolder-react@1.5.2 + +### Patch Changes + +- ba9ee98a37bd: Fixed bug in Workflow component by passing a prop `templateName` down to Stepper component. +- Updated dependencies + - @backstage/core-components@0.13.4 + - @backstage/plugin-catalog-react@1.8.1 + - @backstage/plugin-scaffolder-common@1.4.0 + - @backstage/core-plugin-api@1.5.3 + - @backstage/catalog-client@1.4.3 + - @backstage/catalog-model@1.4.1 + - @backstage/errors@1.2.1 + - @backstage/theme@0.4.1 + - @backstage/types@1.1.0 + - @backstage/version-bridge@1.0.4 + +## @backstage/plugin-search@1.3.4 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.4 + - @backstage/plugin-catalog-react@1.8.1 + - @backstage/core-plugin-api@1.5.3 + - @backstage/plugin-search-react@1.6.4 + - @backstage/catalog-model@1.4.1 + - @backstage/config@1.0.8 + - @backstage/errors@1.2.1 + - @backstage/theme@0.4.1 + - @backstage/types@1.1.0 + - @backstage/version-bridge@1.0.4 + - @backstage/plugin-search-common@1.2.5 + +## @backstage/plugin-search-backend-module-catalog@0.1.4 + +### Patch Changes + +- 629cbd194a87: Use `coreServices.rootConfig` instead of `coreService.config` +- 29f77f923c71: Ensure that all services are dependency injected into the module instead of taken from options +- 12a8c94eda8d: Add package repository and homepage metadata +- ec1032129e47: Breaking change in the alpha export `searchModuleCatalogCollator`: Moved collator settings from module options into app-config. You are now expected to set up the catalog collator under the `search.collators.catalog` configuration key. There is also a new `catalogCollatorExtensionPoint` extension point for the module, wherein you can set custom transformers. +- d4f19a16bd52: Add User Entity email to the search index so that users can be found by their email. +- Updated dependencies + - @backstage/backend-common@0.19.2 + - @backstage/backend-plugin-api@0.6.0 + - @backstage/plugin-search-backend-node@1.2.4 + - @backstage/plugin-catalog-node@1.4.1 + - @backstage/backend-tasks@0.5.5 + - @backstage/catalog-client@1.4.3 + - @backstage/catalog-model@1.4.1 + - @backstage/config@1.0.8 + - @backstage/errors@1.2.1 + - @backstage/plugin-catalog-common@1.0.15 + - @backstage/plugin-permission-common@0.7.7 + - @backstage/plugin-search-common@1.2.5 + +## @backstage/plugin-search-backend-module-elasticsearch@1.3.3 + +### Patch Changes + +- 629cbd194a87: Use `coreServices.rootConfig` instead of `coreService.config` + +- 12a8c94eda8d: Add package repository and homepage metadata + +- 631eb3816b48: Index templates can now be configured through configuration under the `search.elasticsearch.indexTemplates`. In addition, the `ElasticSearchSearchEngine.fromConfig` now also accepts a `LoggerService` as the `logger` option as well as a new `translator` option. + + The alpha `searchModuleElasticsearchEngine` export no longer accepts options and a new alpha `elasticsearchTranslatorExtensionPoint` export has been added which lets you customize the query translator. + +- Updated dependencies + - @backstage/backend-common@0.19.2 + - @backstage/backend-plugin-api@0.6.0 + - @backstage/plugin-search-backend-node@1.2.4 + - @backstage/integration-aws-node@0.1.5 + - @backstage/config@1.0.8 + - @backstage/plugin-search-common@1.2.5 + +## @backstage/plugin-search-backend-module-explore@0.1.4 + +### Patch Changes + +- 629cbd194a87: Use `coreServices.rootConfig` instead of `coreService.config` +- 29f77f923c71: Ensure that all services are dependency injected into the module instead of taken from options +- 12a8c94eda8d: Add package repository and homepage metadata +- 6694e79ab396: Breaking change for the alpha export moved `schedule` from module options into app-config for the new backend system. You can now pass in a `TaskScheduleDefinitionConfig` through the `search.collators.explore.schedule` configuration key. +- Updated dependencies + - @backstage/backend-common@0.19.2 + - @backstage/backend-plugin-api@0.6.0 + - @backstage/plugin-search-backend-node@1.2.4 + - @backstage/backend-tasks@0.5.5 + - @backstage/config@1.0.8 + - @backstage/plugin-explore-common@0.0.1 + - @backstage/plugin-search-common@1.2.5 + +## @backstage/plugin-search-backend-module-pg@0.5.9 + +### Patch Changes + +- 629cbd194a87: Use `coreServices.rootConfig` instead of `coreService.config` +- 12a8c94eda8d: Add package repository and homepage metadata +- Updated dependencies + - @backstage/backend-common@0.19.2 + - @backstage/backend-plugin-api@0.6.0 + - @backstage/plugin-search-backend-node@1.2.4 + - @backstage/config@1.0.8 + - @backstage/plugin-search-common@1.2.5 + +## @backstage/plugin-search-backend-module-techdocs@0.1.4 + +### Patch Changes + +- 629cbd194a87: Use `coreServices.rootConfig` instead of `coreService.config` +- 29f77f923c71: Ensure that all services are dependency injected into the module instead of taken from options +- 12a8c94eda8d: Add package repository and homepage metadata +- 6694e79ab396: **BREAKING:** Moved `schedule` & `collators` settings from module options into app-config for the new backend system. You can now pass in a `TaskScheduleDefinitionConfig` through the `search.collators.techdocs.schedule` configuration key & configure the `TechDocsCollatorFactory` with the key `search.collators.techdocs`. +- Updated dependencies + - @backstage/backend-common@0.19.2 + - @backstage/backend-plugin-api@0.6.0 + - @backstage/plugin-search-backend-node@1.2.4 + - @backstage/plugin-catalog-node@1.4.1 + - @backstage/backend-tasks@0.5.5 + - @backstage/plugin-techdocs-node@1.7.4 + - @backstage/catalog-client@1.4.3 + - @backstage/catalog-model@1.4.1 + - @backstage/config@1.0.8 + - @backstage/plugin-catalog-common@1.0.15 + - @backstage/plugin-permission-common@0.7.7 + - @backstage/plugin-search-common@1.2.5 + +## @backstage/plugin-search-backend-node@1.2.4 + +### Patch Changes + +- 12a8c94eda8d: Add package repository and homepage metadata +- e3e9bc10298b: Fix Lunr search engine highlight by ignoring invalid metadata positions. +- Updated dependencies + - @backstage/backend-common@0.19.2 + - @backstage/backend-plugin-api@0.6.0 + - @backstage/backend-tasks@0.5.5 + - @backstage/config@1.0.8 + - @backstage/errors@1.2.1 + - @backstage/plugin-permission-common@0.7.7 + - @backstage/plugin-search-common@1.2.5 + +## @backstage/plugin-search-react@1.6.4 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.4 + - @backstage/core-plugin-api@1.5.3 + - @backstage/theme@0.4.1 + - @backstage/types@1.1.0 + - @backstage/version-bridge@1.0.4 + - @backstage/plugin-search-common@1.2.5 + +## @backstage/plugin-sentry@0.5.6 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.4 + - @backstage/plugin-catalog-react@1.8.1 + - @backstage/core-plugin-api@1.5.3 + - @backstage/catalog-model@1.4.1 + - @backstage/theme@0.4.1 + +## @backstage/plugin-shortcuts@0.3.13 + +### Patch Changes + +- 12a8c94eda8d: Add package repository and homepage metadata +- ee52a48b63d5: Limit the use of the duplicate shortcut name when adding a shortcut +- Updated dependencies + - @backstage/core-components@0.13.4 + - @backstage/core-plugin-api@1.5.3 + - @backstage/theme@0.4.1 + - @backstage/types@1.1.0 + +## @backstage/plugin-sonarqube@0.7.2 + +### Patch Changes + +- b2ccddefbdc6: Remove sonarQube card disable class +- Updated dependencies + - @backstage/core-components@0.13.4 + - @backstage/plugin-catalog-react@1.8.1 + - @backstage/core-plugin-api@1.5.3 + - @backstage/catalog-model@1.4.1 + - @backstage/theme@0.4.1 + - @backstage/plugin-sonarqube-react@0.1.7 + +## @backstage/plugin-sonarqube-backend@0.2.2 + +### Patch Changes + +- 12a8c94eda8d: Add package repository and homepage metadata +- a24d9df8757c: Added optional `externalBaseUrl` config for setting a different frontend URL +- Updated dependencies + - @backstage/backend-common@0.19.2 + - @backstage/config@1.0.8 + - @backstage/errors@1.2.1 + +## @backstage/plugin-splunk-on-call@0.4.10 + +### Patch Changes + +- 3d86be999fdf: Prefer simple `theme.spacing` without string interpolation +- Updated dependencies + - @backstage/core-components@0.13.4 + - @backstage/plugin-catalog-react@1.8.1 + - @backstage/core-plugin-api@1.5.3 + - @backstage/catalog-model@1.4.1 + - @backstage/theme@0.4.1 + +## @backstage/plugin-stack-overflow@0.1.19 + +### Patch Changes + +- 12a8c94eda8d: Add package repository and homepage metadata +- Updated dependencies + - @backstage/plugin-home-react@0.1.2 + - @backstage/core-components@0.13.4 + - @backstage/core-plugin-api@1.5.3 + - @backstage/plugin-search-react@1.6.4 + - @backstage/config@1.0.8 + - @backstage/theme@0.4.1 + - @backstage/plugin-search-common@1.2.5 + +## @backstage/plugin-stack-overflow-backend@0.2.4 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.2 + - @backstage/config@1.0.8 + - @backstage/plugin-search-common@1.2.5 + +## @backstage/plugin-stackstorm@0.1.5 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.4 + - @backstage/core-plugin-api@1.5.3 + - @backstage/errors@1.2.1 + - @backstage/theme@0.4.1 + +## @backstage/plugin-tech-insights@0.3.13 + +### Patch Changes + +- 12a8c94eda8d: Add package repository and homepage metadata +- Updated dependencies + - @backstage/core-components@0.13.4 + - @backstage/plugin-catalog-react@1.8.1 + - @backstage/core-plugin-api@1.5.3 + - @backstage/catalog-model@1.4.1 + - @backstage/errors@1.2.1 + - @backstage/theme@0.4.1 + - @backstage/types@1.1.0 + - @backstage/plugin-tech-insights-common@0.2.11 + +## @backstage/plugin-tech-insights-backend@0.5.14 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.2 + - @backstage/backend-tasks@0.5.5 + - @backstage/plugin-tech-insights-node@0.4.6 + - @backstage/catalog-client@1.4.3 + - @backstage/catalog-model@1.4.1 + - @backstage/config@1.0.8 + - @backstage/errors@1.2.1 + - @backstage/types@1.1.0 + - @backstage/plugin-tech-insights-common@0.2.11 + +## @backstage/plugin-tech-insights-backend-module-jsonfc@0.1.32 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.2 + - @backstage/plugin-tech-insights-node@0.4.6 + - @backstage/config@1.0.8 + - @backstage/errors@1.2.1 + - @backstage/plugin-tech-insights-common@0.2.11 + +## @backstage/plugin-tech-insights-node@0.4.6 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.2 + - @backstage/backend-tasks@0.5.5 + - @backstage/config@1.0.8 + - @backstage/types@1.1.0 + - @backstage/plugin-tech-insights-common@0.2.11 + +## @backstage/plugin-tech-radar@0.6.7 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.4 + - @backstage/core-plugin-api@1.5.3 + - @backstage/theme@0.4.1 + +## @backstage/plugin-techdocs@1.6.6 + +### Patch Changes + +- Updated dependencies + - @backstage/integration-react@1.1.16 + - @backstage/integration@1.6.0 + - @backstage/core-components@0.13.4 + - @backstage/plugin-catalog-react@1.8.1 + - @backstage/core-plugin-api@1.5.3 + - @backstage/plugin-search-react@1.6.4 + - @backstage/catalog-model@1.4.1 + - @backstage/config@1.0.8 + - @backstage/errors@1.2.1 + - @backstage/theme@0.4.1 + - @backstage/plugin-search-common@1.2.5 + - @backstage/plugin-techdocs-react@1.1.9 + +## @backstage/plugin-techdocs-addons-test-utils@1.0.17 + +### Patch Changes + +- Updated dependencies + - @backstage/core-app-api@1.9.1 + - @backstage/integration-react@1.1.16 + - @backstage/core-components@0.13.4 + - @backstage/plugin-catalog@1.12.1 + - @backstage/core-plugin-api@1.5.3 + - @backstage/test-utils@1.4.2 + - @backstage/plugin-search-react@1.6.4 + - @backstage/plugin-techdocs@1.6.6 + - @backstage/theme@0.4.1 + - @backstage/plugin-techdocs-react@1.1.9 + +## @backstage/plugin-techdocs-backend@1.6.5 + +### Patch Changes + +- 629cbd194a87: Use `coreServices.rootConfig` instead of `coreService.config` +- Updated dependencies + - @backstage/plugin-search-backend-module-techdocs@0.1.4 + - @backstage/backend-common@0.19.2 + - @backstage/backend-plugin-api@0.6.0 + - @backstage/integration@1.6.0 + - @backstage/plugin-techdocs-node@1.7.4 + - @backstage/catalog-client@1.4.3 + - @backstage/catalog-model@1.4.1 + - @backstage/config@1.0.8 + - @backstage/errors@1.2.1 + - @backstage/plugin-catalog-common@1.0.15 + - @backstage/plugin-permission-common@0.7.7 + - @backstage/plugin-search-common@1.2.5 + +## @backstage/plugin-techdocs-module-addons-contrib@1.0.16 + +### Patch Changes + +- Updated dependencies + - @backstage/integration-react@1.1.16 + - @backstage/integration@1.6.0 + - @backstage/core-components@0.13.4 + - @backstage/core-plugin-api@1.5.3 + - @backstage/theme@0.4.1 + - @backstage/plugin-techdocs-react@1.1.9 + +## @backstage/plugin-techdocs-node@1.7.4 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.2 + - @backstage/integration@1.6.0 + - @backstage/integration-aws-node@0.1.5 + - @backstage/catalog-model@1.4.1 + - @backstage/config@1.0.8 + - @backstage/errors@1.2.1 + - @backstage/plugin-search-common@1.2.5 + +## @backstage/plugin-techdocs-react@1.1.9 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.4 + - @backstage/core-plugin-api@1.5.3 + - @backstage/catalog-model@1.4.1 + - @backstage/config@1.0.8 + - @backstage/version-bridge@1.0.4 + +## @backstage/plugin-todo@0.2.23 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.4 + - @backstage/plugin-catalog-react@1.8.1 + - @backstage/core-plugin-api@1.5.3 + - @backstage/catalog-model@1.4.1 + - @backstage/errors@1.2.1 + - @backstage/theme@0.4.1 + +## @backstage/plugin-user-settings@0.7.6 + +### Patch Changes + +- Updated dependencies + - @backstage/core-app-api@1.9.1 + - @backstage/core-components@0.13.4 + - @backstage/plugin-catalog-react@1.8.1 + - @backstage/core-plugin-api@1.5.3 + - @backstage/errors@1.2.1 + - @backstage/theme@0.4.1 + - @backstage/types@1.1.0 + +## @backstage/plugin-user-settings-backend@0.1.12 + +### Patch Changes + +- 12a8c94eda8d: Add package repository and homepage metadata +- Updated dependencies + - @backstage/backend-common@0.19.2 + - @backstage/backend-plugin-api@0.6.0 + - @backstage/plugin-auth-node@0.2.17 + - @backstage/catalog-model@1.4.1 + - @backstage/errors@1.2.1 + - @backstage/types@1.1.0 + +## @backstage/plugin-vault@0.1.15 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.4 + - @backstage/plugin-catalog-react@1.8.1 + - @backstage/core-plugin-api@1.5.3 + - @backstage/catalog-model@1.4.1 + - @backstage/errors@1.2.1 + - @backstage/theme@0.4.1 + +## @backstage/plugin-vault-backend@0.3.4 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.2 + - @backstage/backend-tasks@0.5.5 + - @backstage/config@1.0.8 + - @backstage/errors@1.2.1 + +## @backstage/plugin-xcmetrics@0.2.41 + +### Patch Changes + +- 12a8c94eda8d: Add package repository and homepage metadata +- 3d86be999fdf: Prefer simple `theme.spacing` without string interpolation +- Updated dependencies + - @backstage/core-components@0.13.4 + - @backstage/core-plugin-api@1.5.3 + - @backstage/errors@1.2.1 + - @backstage/theme@0.4.1 + +## example-app@0.2.86 + +### Patch Changes + +- Updated dependencies + - @backstage/core-app-api@1.9.1 + - @backstage/plugin-catalog-graph@0.2.33 + - @backstage/plugin-playlist@0.1.13 + - @backstage/plugin-pagerduty@0.6.2 + - @backstage/plugin-scaffolder@1.14.2 + - @backstage/plugin-explore@0.4.7 + - @backstage/plugin-org@0.6.11 + - @backstage/integration-react@1.1.16 + - @backstage/plugin-microsoft-calendar@0.1.6 + - @backstage/plugin-newrelic-dashboard@0.2.14 + - @backstage/plugin-entity-feedback@0.2.4 + - @backstage/plugin-linguist-common@0.1.1 + - @backstage/plugin-apache-airflow@0.2.14 + - @backstage/plugin-octopus-deploy@0.2.3 + - @backstage/plugin-stack-overflow@0.1.19 + - @backstage/plugin-code-coverage@0.2.14 + - @backstage/plugin-tech-insights@0.3.13 + - @backstage/plugin-dynatrace@7.0.1 + - @backstage/plugin-gcalendar@0.3.17 + - @backstage/plugin-shortcuts@0.3.13 + - @backstage/plugin-airbrake@0.3.21 + - @backstage/plugin-kafka@0.3.21 + - @backstage/plugin-nomad@0.1.2 + - @backstage/plugin-adr@0.6.4 + - @backstage/plugin-newrelic@0.3.39 + - @backstage/cli@0.22.10 + - @backstage/plugin-kubernetes@0.10.0 + - @backstage/core-components@0.13.4 + - @backstage/plugin-home@0.5.5 + - @backstage/plugin-catalog-react@1.8.1 + - @backstage/plugin-scaffolder-react@1.5.2 + - @backstage/plugin-devtools@0.1.3 + - @backstage/app-defaults@1.4.2 + - @backstage/core-plugin-api@1.5.3 + - @backstage/plugin-api-docs@0.9.7 + - @backstage/plugin-azure-devops@0.3.3 + - @backstage/plugin-azure-sites@0.1.10 + - @backstage/plugin-badges@0.2.45 + - @backstage/plugin-catalog-import@0.9.11 + - @backstage/plugin-catalog-unprocessed-entities@0.1.2 + - @backstage/plugin-circleci@0.3.21 + - @backstage/plugin-cloudbuild@0.3.21 + - @backstage/plugin-cost-insights@0.12.10 + - @backstage/plugin-gcp-projects@0.3.40 + - @backstage/plugin-github-actions@0.6.2 + - @backstage/plugin-gocd@0.1.27 + - @backstage/plugin-graphiql@0.2.53 + - @backstage/plugin-jenkins@0.8.3 + - @backstage/plugin-lighthouse@0.4.6 + - @backstage/plugin-linguist@0.1.6 + - @backstage/plugin-puppetdb@0.1.4 + - @backstage/plugin-rollbar@0.4.21 + - @backstage/plugin-search@1.3.4 + - @backstage/plugin-search-react@1.6.4 + - @backstage/plugin-sentry@0.5.6 + - @backstage/plugin-stackstorm@0.1.5 + - @backstage/plugin-tech-radar@0.6.7 + - @backstage/plugin-techdocs@1.6.6 + - @backstage/plugin-techdocs-module-addons-contrib@1.0.16 + - @backstage/plugin-todo@0.2.23 + - @backstage/plugin-user-settings@0.7.6 + - @backstage/catalog-model@1.4.1 + - @backstage/config@1.0.8 + - @backstage/theme@0.4.1 + - @backstage/plugin-catalog-common@1.0.15 + - @backstage/plugin-permission-react@0.4.14 + - @backstage/plugin-search-common@1.2.5 + - @backstage/plugin-techdocs-react@1.1.9 + - @internal/plugin-catalog-customized@0.0.13 + +## example-backend@0.2.86 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-search-backend-module-elasticsearch@1.3.3 + - @backstage/plugin-search-backend-module-pg@0.5.9 + - @backstage/plugin-azure-devops-backend@0.3.27 + - @backstage/plugin-kubernetes-backend@0.11.3 + - @backstage/plugin-lighthouse-backend@0.2.4 + - @backstage/plugin-permission-backend@0.5.23 + - @backstage/plugin-scaffolder-backend@1.16.0 + - @backstage/plugin-devtools-backend@0.1.3 + - @backstage/plugin-techdocs-backend@1.6.5 + - @backstage/backend-common@0.19.2 + - @backstage/plugin-catalog-backend@1.12.0 + - @backstage/plugin-badges-backend@0.2.3 + - @backstage/plugin-events-backend@0.2.9 + - @backstage/plugin-search-backend@1.4.0 + - @backstage/plugin-kafka-backend@0.2.41 + - @backstage/plugin-proxy-backend@0.3.0 + - @backstage/plugin-todo-backend@0.2.0 + - @backstage/plugin-app-backend@0.3.48 + - @backstage/plugin-scaffolder-backend-module-confluence-to-markdown@0.2.1 + - @backstage/plugin-auth-backend@0.18.6 + - @backstage/plugin-explore-backend@0.0.10 + - @backstage/plugin-catalog-backend-module-unprocessed@0.2.0 + - @backstage/plugin-scaffolder-backend-module-rails@0.4.17 + - @backstage/plugin-entity-feedback-backend@0.1.6 + - @backstage/plugin-code-coverage-backend@0.2.14 + - @backstage/plugin-search-backend-node@1.2.4 + - @backstage/plugin-linguist-backend@0.4.0 + - @backstage/plugin-playlist-backend@0.3.4 + - @backstage/plugin-jenkins-backend@0.2.3 + - @backstage/plugin-nomad-backend@0.1.2 + - @backstage/plugin-catalog-node@1.4.1 + - @backstage/plugin-events-node@0.2.9 + - @backstage/plugin-auth-node@0.2.17 + - @backstage/integration@1.6.0 + - @backstage/backend-tasks@0.5.5 + - example-app@0.2.86 + - @backstage/plugin-adr-backend@0.3.6 + - @backstage/plugin-azure-sites-backend@0.1.10 + - @backstage/plugin-graphql-backend@0.1.38 + - @backstage/plugin-permission-node@0.7.11 + - @backstage/plugin-rollbar-backend@0.1.45 + - @backstage/plugin-tech-insights-backend@0.5.14 + - @backstage/plugin-tech-insights-backend-module-jsonfc@0.1.32 + - @backstage/plugin-tech-insights-node@0.4.6 + - @backstage/catalog-client@1.4.3 + - @backstage/catalog-model@1.4.1 + - @backstage/config@1.0.8 + - @backstage/plugin-permission-common@0.7.7 + - @backstage/plugin-search-common@1.2.5 + +## example-backend-next@0.0.14 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-search-backend-module-techdocs@0.1.4 + - @backstage/plugin-search-backend-module-catalog@0.1.4 + - @backstage/plugin-search-backend-module-explore@0.1.4 + - @backstage/plugin-azure-devops-backend@0.3.27 + - @backstage/plugin-kubernetes-backend@0.11.3 + - @backstage/plugin-lighthouse-backend@0.2.4 + - @backstage/plugin-permission-backend@0.5.23 + - @backstage/plugin-scaffolder-backend@1.16.0 + - @backstage/backend-defaults@0.2.0 + - @backstage/plugin-devtools-backend@0.1.3 + - @backstage/plugin-techdocs-backend@1.6.5 + - @backstage/plugin-catalog-backend@1.12.0 + - @backstage/plugin-badges-backend@0.2.3 + - @backstage/plugin-search-backend@1.4.0 + - @backstage/plugin-proxy-backend@0.3.0 + - @backstage/plugin-todo-backend@0.2.0 + - @backstage/plugin-app-backend@0.3.48 + - @backstage/backend-plugin-api@0.6.0 + - @backstage/plugin-catalog-backend-module-unprocessed@0.2.0 + - @backstage/plugin-entity-feedback-backend@0.1.6 + - @backstage/plugin-search-backend-node@1.2.4 + - @backstage/plugin-linguist-backend@0.4.0 + - @backstage/plugin-auth-node@0.2.17 + - @backstage/backend-tasks@0.5.5 + - @backstage/plugin-adr-backend@0.3.6 + - @backstage/plugin-permission-node@0.7.11 + - @backstage/plugin-permission-common@0.7.7 + +## e2e-test@0.2.6 + +### Patch Changes + +- Updated dependencies + - @backstage/create-app@0.5.4 + - @backstage/cli-common@0.1.12 + - @backstage/errors@1.2.1 + +## techdocs-cli-embedded-app@0.2.85 + +### Patch Changes + +- Updated dependencies + - @backstage/core-app-api@1.9.1 + - @backstage/integration-react@1.1.16 + - @backstage/cli@0.22.10 + - @backstage/core-components@0.13.4 + - @backstage/plugin-catalog@1.12.1 + - @backstage/app-defaults@1.4.2 + - @backstage/core-plugin-api@1.5.3 + - @backstage/test-utils@1.4.2 + - @backstage/plugin-techdocs@1.6.6 + - @backstage/catalog-model@1.4.1 + - @backstage/config@1.0.8 + - @backstage/theme@0.4.1 + - @backstage/plugin-techdocs-react@1.1.9 + +## @internal/plugin-catalog-customized@0.0.13 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog@1.12.1 + - @backstage/plugin-catalog-react@1.8.1 + +## @internal/plugin-todo-list@1.0.16 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.4 + - @backstage/core-plugin-api@1.5.3 + - @backstage/theme@0.4.1 + +## @internal/plugin-todo-list-backend@1.0.16 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.2 + - @backstage/backend-plugin-api@0.6.0 + - @backstage/plugin-auth-node@0.2.17 + - @backstage/config@1.0.8 + - @backstage/errors@1.2.1 diff --git a/package.json b/package.json index 56a2bd93a7..72442168d6 100644 --- a/package.json +++ b/package.json @@ -47,7 +47,7 @@ "@types/react": "^17", "@types/react-dom": "^17" }, - "version": "1.17.0-next.2", + "version": "1.17.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 342ee7dde3..8d3a232e43 100644 --- a/packages/app-defaults/CHANGELOG.md +++ b/packages/app-defaults/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/app-defaults +## 1.4.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-app-api@1.9.1 + - @backstage/core-components@0.13.4 + - @backstage/core-plugin-api@1.5.3 + - @backstage/theme@0.4.1 + - @backstage/plugin-permission-react@0.4.14 + ## 1.4.2-next.0 ### Patch Changes diff --git a/packages/app-defaults/package.json b/packages/app-defaults/package.json index a5e31372af..4edca8c3f3 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.2-next.0", + "version": "1.4.2", "publishConfig": { "access": "public", "main": "dist/index.esm.js", diff --git a/packages/app/CHANGELOG.md b/packages/app/CHANGELOG.md index 12e3dada41..7ec7df3ecf 100644 --- a/packages/app/CHANGELOG.md +++ b/packages/app/CHANGELOG.md @@ -1,5 +1,80 @@ # example-app +## 0.2.86 + +### Patch Changes + +- Updated dependencies + - @backstage/core-app-api@1.9.1 + - @backstage/plugin-catalog-graph@0.2.33 + - @backstage/plugin-playlist@0.1.13 + - @backstage/plugin-pagerduty@0.6.2 + - @backstage/plugin-scaffolder@1.14.2 + - @backstage/plugin-explore@0.4.7 + - @backstage/plugin-org@0.6.11 + - @backstage/integration-react@1.1.16 + - @backstage/plugin-microsoft-calendar@0.1.6 + - @backstage/plugin-newrelic-dashboard@0.2.14 + - @backstage/plugin-entity-feedback@0.2.4 + - @backstage/plugin-linguist-common@0.1.1 + - @backstage/plugin-apache-airflow@0.2.14 + - @backstage/plugin-octopus-deploy@0.2.3 + - @backstage/plugin-stack-overflow@0.1.19 + - @backstage/plugin-code-coverage@0.2.14 + - @backstage/plugin-tech-insights@0.3.13 + - @backstage/plugin-dynatrace@7.0.1 + - @backstage/plugin-gcalendar@0.3.17 + - @backstage/plugin-shortcuts@0.3.13 + - @backstage/plugin-airbrake@0.3.21 + - @backstage/plugin-kafka@0.3.21 + - @backstage/plugin-nomad@0.1.2 + - @backstage/plugin-adr@0.6.4 + - @backstage/plugin-newrelic@0.3.39 + - @backstage/cli@0.22.10 + - @backstage/plugin-kubernetes@0.10.0 + - @backstage/core-components@0.13.4 + - @backstage/plugin-home@0.5.5 + - @backstage/plugin-catalog-react@1.8.1 + - @backstage/plugin-scaffolder-react@1.5.2 + - @backstage/plugin-devtools@0.1.3 + - @backstage/app-defaults@1.4.2 + - @backstage/core-plugin-api@1.5.3 + - @backstage/plugin-api-docs@0.9.7 + - @backstage/plugin-azure-devops@0.3.3 + - @backstage/plugin-azure-sites@0.1.10 + - @backstage/plugin-badges@0.2.45 + - @backstage/plugin-catalog-import@0.9.11 + - @backstage/plugin-catalog-unprocessed-entities@0.1.2 + - @backstage/plugin-circleci@0.3.21 + - @backstage/plugin-cloudbuild@0.3.21 + - @backstage/plugin-cost-insights@0.12.10 + - @backstage/plugin-gcp-projects@0.3.40 + - @backstage/plugin-github-actions@0.6.2 + - @backstage/plugin-gocd@0.1.27 + - @backstage/plugin-graphiql@0.2.53 + - @backstage/plugin-jenkins@0.8.3 + - @backstage/plugin-lighthouse@0.4.6 + - @backstage/plugin-linguist@0.1.6 + - @backstage/plugin-puppetdb@0.1.4 + - @backstage/plugin-rollbar@0.4.21 + - @backstage/plugin-search@1.3.4 + - @backstage/plugin-search-react@1.6.4 + - @backstage/plugin-sentry@0.5.6 + - @backstage/plugin-stackstorm@0.1.5 + - @backstage/plugin-tech-radar@0.6.7 + - @backstage/plugin-techdocs@1.6.6 + - @backstage/plugin-techdocs-module-addons-contrib@1.0.16 + - @backstage/plugin-todo@0.2.23 + - @backstage/plugin-user-settings@0.7.6 + - @backstage/catalog-model@1.4.1 + - @backstage/config@1.0.8 + - @backstage/theme@0.4.1 + - @backstage/plugin-catalog-common@1.0.15 + - @backstage/plugin-permission-react@0.4.14 + - @backstage/plugin-search-common@1.2.5 + - @backstage/plugin-techdocs-react@1.1.9 + - @internal/plugin-catalog-customized@0.0.13 + ## 0.2.86-next.2 ### Patch Changes diff --git a/packages/app/package.json b/packages/app/package.json index 0528f33c68..514f95c252 100644 --- a/packages/app/package.json +++ b/packages/app/package.json @@ -1,6 +1,6 @@ { "name": "example-app", - "version": "0.2.86-next.2", + "version": "0.2.86", "private": true, "backstage": { "role": "frontend" diff --git a/packages/backend-app-api/CHANGELOG.md b/packages/backend-app-api/CHANGELOG.md index dd474ba143..1f1480b705 100644 --- a/packages/backend-app-api/CHANGELOG.md +++ b/packages/backend-app-api/CHANGELOG.md @@ -1,5 +1,42 @@ # @backstage/backend-app-api +## 0.5.0 + +### Minor Changes + +- b9c57a4f857e: **BREAKING**: Renamed `configServiceFactory` to `rootConfigServiceFactory`. +- a6d7983f349c: **BREAKING**: Removed the `services` option from `createBackend`. Service factories are now `BackendFeature`s and should be installed with `backend.add(...)` instead. The following should be migrated: + + ```ts + const backend = createBackend({ services: [myCustomServiceFactory] }); + ``` + + To instead pass the service factory via `backend.add(...)`: + + ```ts + const backend = createBackend(); + backend.add(customRootLoggerServiceFactory); + ``` + +### Patch Changes + +- e65c4896f755: Do not throw in backend.stop, if start failed +- c7aa4ff1793c: Allow modules to register extension points. +- 57a10c6c69cc: Add validation to make sure that extension points do not cross plugin boundaries. +- cc9256a33bcc: Added new experimental `featureDiscoveryServiceFactory`, available as an `/alpha` export. +- Updated dependencies + - @backstage/backend-common@0.19.2 + - @backstage/config-loader@1.4.0 + - @backstage/backend-plugin-api@0.6.0 + - @backstage/cli-node@0.1.3 + - @backstage/plugin-auth-node@0.2.17 + - @backstage/backend-tasks@0.5.5 + - @backstage/plugin-permission-node@0.7.11 + - @backstage/cli-common@0.1.12 + - @backstage/config@1.0.8 + - @backstage/errors@1.2.1 + - @backstage/types@1.1.0 + ## 0.5.0-next.2 ### Patch Changes diff --git a/packages/backend-app-api/package.json b/packages/backend-app-api/package.json index c1f9d30f92..82e32311aa 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.5.0-next.2", + "version": "0.5.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 c11acc0966..030223606f 100644 --- a/packages/backend-common/CHANGELOG.md +++ b/packages/backend-common/CHANGELOG.md @@ -1,5 +1,29 @@ # @backstage/backend-common +## 0.19.2 + +### Patch Changes + +- 629cbd194a87: Use `coreServices.rootConfig` instead of `coreService.config` +- 443afcf7f567: To improve performance, `GerritUrlReader.readTree()` now uses Gitiles to fetch an archive instead of cloning the repository. + If `gitilesBaseUrl` is not configured, `readTree` still uses Git to clone the repository. + + Added `stripFirstDirectory` option to `ReadTreeResponseFactory.fromTarArchive()`, allowing to disable stripping first directory + for `tar` archives. + +- 4b82382ed8c2: Fixed invalid configuration schema. The configuration schema may be more strict as a result. +- Updated dependencies + - @backstage/backend-app-api@0.5.0 + - @backstage/config-loader@1.4.0 + - @backstage/backend-plugin-api@0.6.0 + - @backstage/integration@1.6.0 + - @backstage/integration-aws-node@0.1.5 + - @backstage/backend-dev-utils@0.1.1 + - @backstage/cli-common@0.1.12 + - @backstage/config@1.0.8 + - @backstage/errors@1.2.1 + - @backstage/types@1.1.0 + ## 0.19.2-next.2 ### Patch Changes diff --git a/packages/backend-common/package.json b/packages/backend-common/package.json index c8cb426eb3..fd9b9cb0df 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.2-next.2", + "version": "0.19.2", "main": "src/index.ts", "types": "src/index.ts", "publishConfig": { diff --git a/packages/backend-defaults/CHANGELOG.md b/packages/backend-defaults/CHANGELOG.md index ceb931df2a..af86313d11 100644 --- a/packages/backend-defaults/CHANGELOG.md +++ b/packages/backend-defaults/CHANGELOG.md @@ -1,5 +1,31 @@ # @backstage/backend-defaults +## 0.2.0 + +### Minor Changes + +- d008aefef808: **BREAKING**: Removing shared environments concept from the new experimental backend system. +- a6d7983f349c: **BREAKING**: Removed the `services` option from `createBackend`. Service factories are now `BackendFeature`s and should be installed with `backend.add(...)` instead. The following should be migrated: + + ```ts + const backend = createBackend({ services: [myCustomServiceFactory] }); + ``` + + To instead pass the service factory via `backend.add(...)`: + + ```ts + const backend = createBackend(); + backend.add(customRootLoggerServiceFactory); + ``` + +### Patch Changes + +- 629cbd194a87: Use `coreServices.rootConfig` instead of `coreService.config` +- Updated dependencies + - @backstage/backend-common@0.19.2 + - @backstage/backend-app-api@0.5.0 + - @backstage/backend-plugin-api@0.6.0 + ## 0.2.0-next.2 ### Patch Changes diff --git a/packages/backend-defaults/package.json b/packages/backend-defaults/package.json index 84e1d5c665..48464ac81e 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.2.0-next.2", + "version": "0.2.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 df26f26f50..2c0fefb9f3 100644 --- a/packages/backend-next/CHANGELOG.md +++ b/packages/backend-next/CHANGELOG.md @@ -1,5 +1,38 @@ # example-backend-next +## 0.0.14 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-search-backend-module-techdocs@0.1.4 + - @backstage/plugin-search-backend-module-catalog@0.1.4 + - @backstage/plugin-search-backend-module-explore@0.1.4 + - @backstage/plugin-azure-devops-backend@0.3.27 + - @backstage/plugin-kubernetes-backend@0.11.3 + - @backstage/plugin-lighthouse-backend@0.2.4 + - @backstage/plugin-permission-backend@0.5.23 + - @backstage/plugin-scaffolder-backend@1.16.0 + - @backstage/backend-defaults@0.2.0 + - @backstage/plugin-devtools-backend@0.1.3 + - @backstage/plugin-techdocs-backend@1.6.5 + - @backstage/plugin-catalog-backend@1.12.0 + - @backstage/plugin-badges-backend@0.2.3 + - @backstage/plugin-search-backend@1.4.0 + - @backstage/plugin-proxy-backend@0.3.0 + - @backstage/plugin-todo-backend@0.2.0 + - @backstage/plugin-app-backend@0.3.48 + - @backstage/backend-plugin-api@0.6.0 + - @backstage/plugin-catalog-backend-module-unprocessed@0.2.0 + - @backstage/plugin-entity-feedback-backend@0.1.6 + - @backstage/plugin-search-backend-node@1.2.4 + - @backstage/plugin-linguist-backend@0.4.0 + - @backstage/plugin-auth-node@0.2.17 + - @backstage/backend-tasks@0.5.5 + - @backstage/plugin-adr-backend@0.3.6 + - @backstage/plugin-permission-node@0.7.11 + - @backstage/plugin-permission-common@0.7.7 + ## 0.0.14-next.2 ### Patch Changes diff --git a/packages/backend-next/package.json b/packages/backend-next/package.json index 8548294398..c2b923ed26 100644 --- a/packages/backend-next/package.json +++ b/packages/backend-next/package.json @@ -1,6 +1,6 @@ { "name": "example-backend-next", - "version": "0.0.14-next.2", + "version": "0.0.14", "main": "dist/index.cjs.js", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/packages/backend-openapi-utils/CHANGELOG.md b/packages/backend-openapi-utils/CHANGELOG.md index 3eb95afe95..fc3e52fa92 100644 --- a/packages/backend-openapi-utils/CHANGELOG.md +++ b/packages/backend-openapi-utils/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/backend-openapi-utils +## 0.0.3 + +### Patch Changes + +- ebeb77586975: Add a new `createRouter` method for generating an `express` router that validates against your spec. Also fixes a bug with the query parameters type resolution. +- 12a8c94eda8d: Add package repository and homepage metadata +- Updated dependencies + - @backstage/errors@1.2.1 + ## 0.0.3-next.1 ### Patch Changes diff --git a/packages/backend-openapi-utils/package.json b/packages/backend-openapi-utils/package.json index 9123d6dd77..102d8c36d6 100644 --- a/packages/backend-openapi-utils/package.json +++ b/packages/backend-openapi-utils/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/backend-openapi-utils", "description": "OpenAPI typescript support.", - "version": "0.0.3-next.1", + "version": "0.0.3", "main": "src/index.ts", "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 4e64cca8ee..9ea8b95c03 100644 --- a/packages/backend-plugin-api/CHANGELOG.md +++ b/packages/backend-plugin-api/CHANGELOG.md @@ -1,5 +1,38 @@ # @backstage/backend-plugin-api +## 0.6.0 + +### Minor Changes + +- c49785f00cab: **BREAKING**: It is no longer possible to declare options as being required with `createServiceFactory`. +- 629cbd194a87: **BREAKING**: Renamed `coreServices.config` to `coreServices.rootConfig`. +- 51987dbdaf87: **BREAKING**: Removed the ability to define options for plugins and modules. Existing options should be migrated to instead use either static configuration or extension points. +- d008aefef808: **BREAKING**: Removing shared environments concept from the new experimental backend system. + +### Patch Changes + +- c7aa4ff1793c: Allow modules to register extension points. +- cc9256a33bcc: Added new experimental `featureDiscoveryServiceRef`, available as an `/alpha` export. +- a6d7983f349c: **BREAKING**: Removed the `services` option from `createBackend`. Service factories are now `BackendFeature`s and should be installed with `backend.add(...)` instead. The following should be migrated: + + ```ts + const backend = createBackend({ services: [myCustomServiceFactory] }); + ``` + + To instead pass the service factory via `backend.add(...)`: + + ```ts + const backend = createBackend(); + backend.add(customRootLoggerServiceFactory); + ``` + +- Updated dependencies + - @backstage/plugin-auth-node@0.2.17 + - @backstage/backend-tasks@0.5.5 + - @backstage/config@1.0.8 + - @backstage/types@1.1.0 + - @backstage/plugin-permission-common@0.7.7 + ## 0.6.0-next.2 ### Patch Changes diff --git a/packages/backend-plugin-api/package.json b/packages/backend-plugin-api/package.json index 86eb1135f4..44a9d5c69c 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.6.0-next.2", + "version": "0.6.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 f2f558f084..11a039e053 100644 --- a/packages/backend-tasks/CHANGELOG.md +++ b/packages/backend-tasks/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/backend-tasks +## 0.5.5 + +### Patch Changes + +- dfd1b6b2fc33: Make `readTaskScheduleDefinitionFromConfig` properly handle bad inputs +- Updated dependencies + - @backstage/backend-common@0.19.2 + - @backstage/config@1.0.8 + - @backstage/errors@1.2.1 + - @backstage/types@1.1.0 + ## 0.5.5-next.2 ### Patch Changes diff --git a/packages/backend-tasks/package.json b/packages/backend-tasks/package.json index aaba56f48e..ca9129078e 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.5-next.2", + "version": "0.5.5", "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 7cff4e8f6b..d6eec9f7ed 100644 --- a/packages/backend-test-utils/CHANGELOG.md +++ b/packages/backend-test-utils/CHANGELOG.md @@ -1,5 +1,34 @@ # @backstage/backend-test-utils +## 0.2.0 + +### Minor Changes + +- b9c57a4f857e: **BREAKING**: Renamed `mockServices.config` to `mockServices.rootConfig`. +- a6d7983f349c: **BREAKING**: Removed the `services` option from `createBackend`. Service factories are now `BackendFeature`s and should be installed with `backend.add(...)` instead. The following should be migrated: + + ```ts + const backend = createBackend({ services: [myCustomServiceFactory] }); + ``` + + To instead pass the service factory via `backend.add(...)`: + + ```ts + const backend = createBackend(); + backend.add(customRootLoggerServiceFactory); + ``` + +### Patch Changes + +- ae9304818136: Add needed constants and constructs to support PostgreSQL version 14 as test database +- Updated dependencies + - @backstage/backend-common@0.19.2 + - @backstage/backend-app-api@0.5.0 + - @backstage/backend-plugin-api@0.6.0 + - @backstage/plugin-auth-node@0.2.17 + - @backstage/config@1.0.8 + - @backstage/types@1.1.0 + ## 0.2.0-next.2 ### Patch Changes diff --git a/packages/backend-test-utils/package.json b/packages/backend-test-utils/package.json index 9f59962a8a..02cb1d5cf9 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.2.0-next.2", + "version": "0.2.0", "main": "src/index.ts", "types": "src/index.ts", "publishConfig": { diff --git a/packages/backend/CHANGELOG.md b/packages/backend/CHANGELOG.md index 14ad991533..76ac221f69 100644 --- a/packages/backend/CHANGELOG.md +++ b/packages/backend/CHANGELOG.md @@ -1,5 +1,60 @@ # example-backend +## 0.2.86 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-search-backend-module-elasticsearch@1.3.3 + - @backstage/plugin-search-backend-module-pg@0.5.9 + - @backstage/plugin-azure-devops-backend@0.3.27 + - @backstage/plugin-kubernetes-backend@0.11.3 + - @backstage/plugin-lighthouse-backend@0.2.4 + - @backstage/plugin-permission-backend@0.5.23 + - @backstage/plugin-scaffolder-backend@1.16.0 + - @backstage/plugin-devtools-backend@0.1.3 + - @backstage/plugin-techdocs-backend@1.6.5 + - @backstage/backend-common@0.19.2 + - @backstage/plugin-catalog-backend@1.12.0 + - @backstage/plugin-badges-backend@0.2.3 + - @backstage/plugin-events-backend@0.2.9 + - @backstage/plugin-search-backend@1.4.0 + - @backstage/plugin-kafka-backend@0.2.41 + - @backstage/plugin-proxy-backend@0.3.0 + - @backstage/plugin-todo-backend@0.2.0 + - @backstage/plugin-app-backend@0.3.48 + - @backstage/plugin-scaffolder-backend-module-confluence-to-markdown@0.2.1 + - @backstage/plugin-auth-backend@0.18.6 + - @backstage/plugin-explore-backend@0.0.10 + - @backstage/plugin-catalog-backend-module-unprocessed@0.2.0 + - @backstage/plugin-scaffolder-backend-module-rails@0.4.17 + - @backstage/plugin-entity-feedback-backend@0.1.6 + - @backstage/plugin-code-coverage-backend@0.2.14 + - @backstage/plugin-search-backend-node@1.2.4 + - @backstage/plugin-linguist-backend@0.4.0 + - @backstage/plugin-playlist-backend@0.3.4 + - @backstage/plugin-jenkins-backend@0.2.3 + - @backstage/plugin-nomad-backend@0.1.2 + - @backstage/plugin-catalog-node@1.4.1 + - @backstage/plugin-events-node@0.2.9 + - @backstage/plugin-auth-node@0.2.17 + - @backstage/integration@1.6.0 + - @backstage/backend-tasks@0.5.5 + - example-app@0.2.86 + - @backstage/plugin-adr-backend@0.3.6 + - @backstage/plugin-azure-sites-backend@0.1.10 + - @backstage/plugin-graphql-backend@0.1.38 + - @backstage/plugin-permission-node@0.7.11 + - @backstage/plugin-rollbar-backend@0.1.45 + - @backstage/plugin-tech-insights-backend@0.5.14 + - @backstage/plugin-tech-insights-backend-module-jsonfc@0.1.32 + - @backstage/plugin-tech-insights-node@0.4.6 + - @backstage/catalog-client@1.4.3 + - @backstage/catalog-model@1.4.1 + - @backstage/config@1.0.8 + - @backstage/plugin-permission-common@0.7.7 + - @backstage/plugin-search-common@1.2.5 + ## 0.2.86-next.2 ### Patch Changes diff --git a/packages/backend/package.json b/packages/backend/package.json index 965da35ee3..9e0896233d 100644 --- a/packages/backend/package.json +++ b/packages/backend/package.json @@ -1,6 +1,6 @@ { "name": "example-backend", - "version": "0.2.86-next.2", + "version": "0.2.86", "main": "dist/index.cjs.js", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/packages/cli-node/CHANGELOG.md b/packages/cli-node/CHANGELOG.md index 2615c2ddd7..8a7af72d8d 100644 --- a/packages/cli-node/CHANGELOG.md +++ b/packages/cli-node/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/cli-node +## 0.1.3 + +### Patch Changes + +- 12a8c94eda8d: Add package repository and homepage metadata +- Updated dependencies + - @backstage/cli-common@0.1.12 + - @backstage/errors@1.2.1 + - @backstage/types@1.1.0 + ## 0.1.3-next.0 ### Patch Changes diff --git a/packages/cli-node/package.json b/packages/cli-node/package.json index f87f70b135..589139a141 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.3-next.0", + "version": "0.1.3", "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 54660d1773..9294e55efd 100644 --- a/packages/cli/CHANGELOG.md +++ b/packages/cli/CHANGELOG.md @@ -1,5 +1,25 @@ # @backstage/cli +## 0.22.10 + +### Patch Changes + +- 3f67cefb4780: Reload the frontend when app config changes +- cebbf8a27f3c: Enable to print the config schema not merged with the `--no-merge` flag +- 5c28ebc79fd6: Updated dependency `esbuild` to `^0.19.0`. +- 971bdd6a4732: Bumped internal `nodemon` dependency. +- Updated dependencies + - @backstage/config-loader@1.4.0 + - @backstage/cli-node@0.1.3 + - @backstage/integration@1.6.0 + - @backstage/catalog-model@1.4.1 + - @backstage/cli-common@0.1.12 + - @backstage/config@1.0.8 + - @backstage/errors@1.2.1 + - @backstage/eslint-plugin@0.1.3 + - @backstage/release-manifests@0.0.9 + - @backstage/types@1.1.0 + ## 0.22.10-next.1 ### Patch Changes diff --git a/packages/cli/package.json b/packages/cli/package.json index cf00c6f301..95095fe78c 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.10-next.1", + "version": "0.22.10", "publishConfig": { "access": "public" }, diff --git a/packages/config-loader/CHANGELOG.md b/packages/config-loader/CHANGELOG.md index b02d08495a..909bb71b37 100644 --- a/packages/config-loader/CHANGELOG.md +++ b/packages/config-loader/CHANGELOG.md @@ -1,5 +1,73 @@ # @backstage/config-loader +## 1.4.0 + +### Minor Changes + +- 2f1859585998: Loading invalid TypeScript configuration schemas will now throw an error rather than silently being ignored. + + In particular this includes defining any additional types other than `Config` in the schema file, or use of unsupported types such as `Record` or `Partial`. + +- cd514545d1d0: Adds a new `deepVisibility` schema keyword that sets child visibility recursively to the defined value, respecting preexisting values or child `deepVisibility`. + + Example usage: + + ```ts + export interface Config { + /** + * Enforces a default of `secret` instead of `backend` for this object. + * @deepVisibility secret + */ + mySecretProperty: { + type: 'object'; + properties: { + secretValue: { + type: 'string'; + }; + + verySecretProperty: { + type: 'string'; + }; + }; + }; + } + ``` + + Example of a schema that would not be allowed: + + ```ts + export interface Config { + /** + * Set the top level property to secret, enforcing a default of `secret` instead of `backend` for this object. + * @deepVisibility secret + */ + mySecretProperty: { + type: 'object'; + properties: { + frontendUrl: { + /** + * We can NOT override the visibility to reveal a property to the front end. + * @visibility frontend + */ + type: 'string'; + }; + + verySecretProperty: { + type: 'string'; + }; + }; + }; + } + ``` + +### Patch Changes + +- Updated dependencies + - @backstage/cli-common@0.1.12 + - @backstage/config@1.0.8 + - @backstage/errors@1.2.1 + - @backstage/types@1.1.0 + ## 1.4.0-next.1 ### Minor Changes diff --git a/packages/config-loader/package.json b/packages/config-loader/package.json index 5e82c0bb76..7fba2d8acb 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.4.0-next.1", + "version": "1.4.0", "publishConfig": { "access": "public", "main": "dist/index.cjs.js", diff --git a/packages/core-app-api/CHANGELOG.md b/packages/core-app-api/CHANGELOG.md index 1de645fb9e..b09076f773 100644 --- a/packages/core-app-api/CHANGELOG.md +++ b/packages/core-app-api/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/core-app-api +## 1.9.1 + +### Patch Changes + +- 9ae4e7e63836: Fixed a bug that could cause `navigate` analytics events to be misattributed to the plugin mounted on the root route (e.g. the `home` plugin at `/`) when the route that was navigated to wasn't associated with a routable extension. +- Updated dependencies + - @backstage/core-plugin-api@1.5.3 + - @backstage/config@1.0.8 + - @backstage/types@1.1.0 + - @backstage/version-bridge@1.0.4 + ## 1.9.1-next.0 ### Patch Changes diff --git a/packages/core-app-api/package.json b/packages/core-app-api/package.json index 15dca326e0..ff43d81329 100644 --- a/packages/core-app-api/package.json +++ b/packages/core-app-api/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/core-app-api", "description": "Core app API used by Backstage apps", - "version": "1.9.1-next.0", + "version": "1.9.1", "publishConfig": { "access": "public", "main": "dist/index.esm.js", diff --git a/packages/core-components/CHANGELOG.md b/packages/core-components/CHANGELOG.md index 4ebd92ceb6..af5e2b8d6a 100644 --- a/packages/core-components/CHANGELOG.md +++ b/packages/core-components/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/core-components +## 0.13.4 + +### Patch Changes + +- 3d86be999fdf: Prefer simple `theme.spacing` without string interpolation +- Updated dependencies + - @backstage/core-plugin-api@1.5.3 + - @backstage/config@1.0.8 + - @backstage/errors@1.2.1 + - @backstage/theme@0.4.1 + - @backstage/version-bridge@1.0.4 + ## 0.13.4-next.0 ### Patch Changes diff --git a/packages/core-components/package.json b/packages/core-components/package.json index c9b1584b85..641a4e7270 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.4-next.0", + "version": "0.13.4", "publishConfig": { "access": "public", "main": "dist/index.esm.js", diff --git a/packages/create-app/CHANGELOG.md b/packages/create-app/CHANGELOG.md index 978911ed3e..9ddd48393b 100644 --- a/packages/create-app/CHANGELOG.md +++ b/packages/create-app/CHANGELOG.md @@ -1,5 +1,18 @@ # @backstage/create-app +## 0.5.4 + +### Patch Changes + +- b441642fbe0d: Bumped create-app version. +- 572abc7edf55: Bumped create-app version. +- 74f77f151a96: Bumped create-app version. +- 5cc0ac5ef3d1: Bump to a newer version of the `concurrently` library +- 46c9a798e41d: Updated the `app-config.yaml` template to use `proxy.endpoints`. +- 971bdd6a4732: Bumped internal `nodemon` dependency. +- Updated dependencies + - @backstage/cli-common@0.1.12 + ## 0.5.4-next.2 ### Patch Changes diff --git a/packages/create-app/package.json b/packages/create-app/package.json index 479ee2e689..4f629d951e 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.4-next.2", + "version": "0.5.4", "publishConfig": { "access": "public" }, diff --git a/packages/dev-utils/CHANGELOG.md b/packages/dev-utils/CHANGELOG.md index cc1b274d98..99fb4f1372 100644 --- a/packages/dev-utils/CHANGELOG.md +++ b/packages/dev-utils/CHANGELOG.md @@ -1,5 +1,21 @@ # @backstage/dev-utils +## 1.0.18 + +### Patch Changes + +- 254ad469f053: Removed deprecated calls to `app.getProvider()` and `app.getRouter()` in `DevAppBuilder` +- Updated dependencies + - @backstage/core-app-api@1.9.1 + - @backstage/integration-react@1.1.16 + - @backstage/core-components@0.13.4 + - @backstage/plugin-catalog-react@1.8.1 + - @backstage/app-defaults@1.4.2 + - @backstage/core-plugin-api@1.5.3 + - @backstage/test-utils@1.4.2 + - @backstage/catalog-model@1.4.1 + - @backstage/theme@0.4.1 + ## 1.0.18-next.2 ### Patch Changes diff --git a/packages/dev-utils/package.json b/packages/dev-utils/package.json index b5cc72bfcd..44b16b4a62 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.18-next.2", + "version": "1.0.18", "publishConfig": { "access": "public", "main": "dist/index.esm.js", diff --git a/packages/e2e-test/CHANGELOG.md b/packages/e2e-test/CHANGELOG.md index 5b3930f0af..6bf5527c4b 100644 --- a/packages/e2e-test/CHANGELOG.md +++ b/packages/e2e-test/CHANGELOG.md @@ -1,5 +1,14 @@ # e2e-test +## 0.2.6 + +### Patch Changes + +- Updated dependencies + - @backstage/create-app@0.5.4 + - @backstage/cli-common@0.1.12 + - @backstage/errors@1.2.1 + ## 0.2.6-next.2 ### Patch Changes diff --git a/packages/e2e-test/package.json b/packages/e2e-test/package.json index 9d6bab1fda..48d4643394 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.6-next.2", + "version": "0.2.6", "private": true, "backstage": { "role": "cli" diff --git a/packages/integration-react/CHANGELOG.md b/packages/integration-react/CHANGELOG.md index dd43ed34a0..9d08c09bd9 100644 --- a/packages/integration-react/CHANGELOG.md +++ b/packages/integration-react/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/integration-react +## 1.1.16 + +### Patch Changes + +- 12a8c94eda8d: Add package repository and homepage metadata +- Updated dependencies + - @backstage/integration@1.6.0 + - @backstage/core-components@0.13.4 + - @backstage/core-plugin-api@1.5.3 + - @backstage/config@1.0.8 + - @backstage/theme@0.4.1 + ## 1.1.16-next.1 ### Patch Changes diff --git a/packages/integration-react/package.json b/packages/integration-react/package.json index 71f7597635..ec68a20f36 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.16-next.1", + "version": "1.1.16", "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 d1f3f46306..b4b97f579e 100644 --- a/packages/integration/CHANGELOG.md +++ b/packages/integration/CHANGELOG.md @@ -1,5 +1,18 @@ # @backstage/integration +## 1.6.0 + +### Minor Changes + +- 443afcf7f567: Added `buildGerritGitilesArchiveUrl()` to construct a Gitiles URL to download an archive. + Gitiles URL that uses an authenticated prefix (`/a/`) can now be parsed by the integration. + +### Patch Changes + +- Updated dependencies + - @backstage/config@1.0.8 + - @backstage/errors@1.2.1 + ## 1.5.1 ### Patch Changes diff --git a/packages/integration/package.json b/packages/integration/package.json index e02e070266..b0da382abd 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.1", + "version": "1.6.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 763c9f1cc1..ddebca0746 100644 --- a/packages/repo-tools/CHANGELOG.md +++ b/packages/repo-tools/CHANGELOG.md @@ -1,5 +1,18 @@ # @backstage/repo-tools +## 0.3.3 + +### Patch Changes + +- 75702e85862a: Bumped `@microsoft/api-extractor` dependency to `^7.36.4`, and `@microsoft/api-documenter` to `^7.22.33`. +- 1f3337ebc707: Introducing a new, experimental command `backstage-repo-tools generate-catalog-info`, which can be used to create standardized `catalog-info.yaml` files for each Backstage package in a Backstage monorepo. It can also be used to automatically fix existing `catalog-info.yaml` files with the correct metadata (including `metadata.name`, `metadata.title`, and `metadata.description` introspected from the package's `package.json`, as well as `spec.owner` introspected from `CODEOWNERS`), e.g. in a post-commit hook. +- ebeb77586975: Update `schema openapi generate` command to now create a default router that can be imported and used directly. +- Updated dependencies + - @backstage/cli-node@0.1.3 + - @backstage/catalog-model@1.4.1 + - @backstage/cli-common@0.1.12 + - @backstage/errors@1.2.1 + ## 0.3.3-next.1 ### Patch Changes diff --git a/packages/repo-tools/package.json b/packages/repo-tools/package.json index 41ea703109..82099ea621 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.3-next.1", + "version": "0.3.3", "publishConfig": { "access": "public" }, diff --git a/packages/techdocs-cli-embedded-app/CHANGELOG.md b/packages/techdocs-cli-embedded-app/CHANGELOG.md index 8e1d2bcaa8..6728d9de41 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.85 + +### Patch Changes + +- Updated dependencies + - @backstage/core-app-api@1.9.1 + - @backstage/integration-react@1.1.16 + - @backstage/cli@0.22.10 + - @backstage/core-components@0.13.4 + - @backstage/plugin-catalog@1.12.1 + - @backstage/app-defaults@1.4.2 + - @backstage/core-plugin-api@1.5.3 + - @backstage/test-utils@1.4.2 + - @backstage/plugin-techdocs@1.6.6 + - @backstage/catalog-model@1.4.1 + - @backstage/config@1.0.8 + - @backstage/theme@0.4.1 + - @backstage/plugin-techdocs-react@1.1.9 + ## 0.2.85-next.2 ### Patch Changes diff --git a/packages/techdocs-cli-embedded-app/package.json b/packages/techdocs-cli-embedded-app/package.json index 8a8675f3e8..c8097fca3b 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.85-next.2", + "version": "0.2.85", "private": true, "backstage": { "role": "frontend" diff --git a/packages/techdocs-cli/CHANGELOG.md b/packages/techdocs-cli/CHANGELOG.md index e41e16b4d3..8334aa54b6 100644 --- a/packages/techdocs-cli/CHANGELOG.md +++ b/packages/techdocs-cli/CHANGELOG.md @@ -1,5 +1,17 @@ # @techdocs/cli +## 1.4.5 + +### Patch Changes + +- 971bdd6a4732: Bumped internal `nodemon` dependency. +- Updated dependencies + - @backstage/backend-common@0.19.2 + - @backstage/plugin-techdocs-node@1.7.4 + - @backstage/catalog-model@1.4.1 + - @backstage/cli-common@0.1.12 + - @backstage/config@1.0.8 + ## 1.4.5-next.2 ### Patch Changes diff --git a/packages/techdocs-cli/package.json b/packages/techdocs-cli/package.json index 0e9215f23b..3dc8eda540 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.5-next.2", + "version": "1.4.5", "publishConfig": { "access": "public" }, diff --git a/packages/test-utils/CHANGELOG.md b/packages/test-utils/CHANGELOG.md index a3fb8ba382..d3e28b30d2 100644 --- a/packages/test-utils/CHANGELOG.md +++ b/packages/test-utils/CHANGELOG.md @@ -1,5 +1,18 @@ # @backstage/test-utils +## 1.4.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-app-api@1.9.1 + - @backstage/core-plugin-api@1.5.3 + - @backstage/config@1.0.8 + - @backstage/theme@0.4.1 + - @backstage/types@1.1.0 + - @backstage/plugin-permission-common@0.7.7 + - @backstage/plugin-permission-react@0.4.14 + ## 1.4.2-next.0 ### Patch Changes diff --git a/packages/test-utils/package.json b/packages/test-utils/package.json index ef074d13b2..73ef2c5268 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.2-next.0", + "version": "1.4.2", "publishConfig": { "access": "public" }, diff --git a/plugins/adr-backend/CHANGELOG.md b/plugins/adr-backend/CHANGELOG.md index 574d649a67..e038706836 100644 --- a/plugins/adr-backend/CHANGELOG.md +++ b/plugins/adr-backend/CHANGELOG.md @@ -1,5 +1,20 @@ # @backstage/plugin-adr-backend +## 0.3.6 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.2 + - @backstage/backend-plugin-api@0.6.0 + - @backstage/integration@1.6.0 + - @backstage/catalog-client@1.4.3 + - @backstage/catalog-model@1.4.1 + - @backstage/config@1.0.8 + - @backstage/errors@1.2.1 + - @backstage/plugin-adr-common@0.2.12 + - @backstage/plugin-search-common@1.2.5 + ## 0.3.6-next.2 ### Patch Changes diff --git a/plugins/adr-backend/package.json b/plugins/adr-backend/package.json index 9af7a1e617..c15eafd6cf 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.6-next.2", + "version": "0.3.6", "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 9b8d5dbf74..dfe54806fe 100644 --- a/plugins/adr-common/CHANGELOG.md +++ b/plugins/adr-common/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-adr-common +## 0.2.12 + +### Patch Changes + +- Updated dependencies + - @backstage/integration@1.6.0 + - @backstage/catalog-model@1.4.1 + - @backstage/plugin-search-common@1.2.5 + ## 0.2.11 ### Patch Changes diff --git a/plugins/adr-common/package.json b/plugins/adr-common/package.json index 2def65cf55..25e02845ef 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.11", + "version": "0.2.12", "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 976b9ef238..e25c80d4d2 100644 --- a/plugins/adr/CHANGELOG.md +++ b/plugins/adr/CHANGELOG.md @@ -1,5 +1,21 @@ # @backstage/plugin-adr +## 0.6.4 + +### Patch Changes + +- 12a8c94eda8d: Add package repository and homepage metadata +- Updated dependencies + - @backstage/integration-react@1.1.16 + - @backstage/core-components@0.13.4 + - @backstage/plugin-catalog-react@1.8.1 + - @backstage/core-plugin-api@1.5.3 + - @backstage/plugin-search-react@1.6.4 + - @backstage/catalog-model@1.4.1 + - @backstage/theme@0.4.1 + - @backstage/plugin-adr-common@0.2.12 + - @backstage/plugin-search-common@1.2.5 + ## 0.6.4-next.2 ### Patch Changes diff --git a/plugins/adr/package.json b/plugins/adr/package.json index c280e87bc9..37bf13619a 100644 --- a/plugins/adr/package.json +++ b/plugins/adr/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-adr", - "version": "0.6.4-next.2", + "version": "0.6.4", "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 c283d99987..7eea9d8287 100644 --- a/plugins/airbrake-backend/CHANGELOG.md +++ b/plugins/airbrake-backend/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-airbrake-backend +## 0.2.21 + +### Patch Changes + +- 629cbd194a87: Use `coreServices.rootConfig` instead of `coreService.config` +- 12a8c94eda8d: Add package repository and homepage metadata +- Updated dependencies + - @backstage/backend-common@0.19.2 + - @backstage/backend-plugin-api@0.6.0 + - @backstage/config@1.0.8 + ## 0.2.21-next.2 ### Patch Changes diff --git a/plugins/airbrake-backend/package.json b/plugins/airbrake-backend/package.json index 17ddf81297..530de9a77a 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.21-next.2", + "version": "0.2.21", "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 ca3c39d275..b4d5afccdc 100644 --- a/plugins/airbrake/CHANGELOG.md +++ b/plugins/airbrake/CHANGELOG.md @@ -1,5 +1,19 @@ # @backstage/plugin-airbrake +## 0.3.21 + +### Patch Changes + +- 12a8c94eda8d: Add package repository and homepage metadata +- Updated dependencies + - @backstage/dev-utils@1.0.18 + - @backstage/core-components@0.13.4 + - @backstage/plugin-catalog-react@1.8.1 + - @backstage/core-plugin-api@1.5.3 + - @backstage/test-utils@1.4.2 + - @backstage/catalog-model@1.4.1 + - @backstage/theme@0.4.1 + ## 0.3.21-next.2 ### Patch Changes diff --git a/plugins/airbrake/package.json b/plugins/airbrake/package.json index 1cbefe43b7..5ccd8bd076 100644 --- a/plugins/airbrake/package.json +++ b/plugins/airbrake/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-airbrake", - "version": "0.3.21-next.2", + "version": "0.3.21", "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 b53cd64d52..cd7c7973b5 100644 --- a/plugins/allure/CHANGELOG.md +++ b/plugins/allure/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-allure +## 0.1.37 + +### Patch Changes + +- 12a8c94eda8d: Add package repository and homepage metadata +- Updated dependencies + - @backstage/core-components@0.13.4 + - @backstage/plugin-catalog-react@1.8.1 + - @backstage/core-plugin-api@1.5.3 + - @backstage/catalog-model@1.4.1 + - @backstage/theme@0.4.1 + ## 0.1.37-next.2 ### Patch Changes diff --git a/plugins/allure/package.json b/plugins/allure/package.json index 71458aa0f1..881d4d0c9d 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.37-next.2", + "version": "0.1.37", "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 d40cb001e2..b6ceb1c28d 100644 --- a/plugins/analytics-module-ga/CHANGELOG.md +++ b/plugins/analytics-module-ga/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-analytics-module-ga +## 0.1.32 + +### Patch Changes + +- 12a8c94eda8d: Add package repository and homepage metadata +- Updated dependencies + - @backstage/core-components@0.13.4 + - @backstage/core-plugin-api@1.5.3 + - @backstage/config@1.0.8 + - @backstage/theme@0.4.1 + ## 0.1.32-next.1 ### Patch Changes diff --git a/plugins/analytics-module-ga/package.json b/plugins/analytics-module-ga/package.json index ef77925719..434f231545 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.32-next.1", + "version": "0.1.32", "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 fd589fec4b..bc08d64809 100644 --- a/plugins/analytics-module-ga4/CHANGELOG.md +++ b/plugins/analytics-module-ga4/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-analytics-module-ga4 +## 0.1.3 + +### Patch Changes + +- 12a8c94eda8d: Add package repository and homepage metadata +- Updated dependencies + - @backstage/core-components@0.13.4 + - @backstage/core-plugin-api@1.5.3 + - @backstage/config@1.0.8 + - @backstage/theme@0.4.1 + ## 0.1.3-next.1 ### Patch Changes diff --git a/plugins/analytics-module-ga4/package.json b/plugins/analytics-module-ga4/package.json index ef55377f0c..63f03e440b 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.3-next.1", + "version": "0.1.3", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/analytics-module-newrelic-browser/CHANGELOG.md b/plugins/analytics-module-newrelic-browser/CHANGELOG.md index beea288700..3090cd3fc2 100644 --- a/plugins/analytics-module-newrelic-browser/CHANGELOG.md +++ b/plugins/analytics-module-newrelic-browser/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-analytics-module-newrelic-browser +## 0.0.1 + +### Patch Changes + +- ec7357258853: Introduced the New Relic Browser analytics module. Check out the plugins [README.md](https://github.com/backstage/backstage/tree/master/plugins/analytics-module-newrelic-browser) for more details! +- Updated dependencies + - @backstage/core-components@0.13.4 + - @backstage/core-plugin-api@1.5.3 + - @backstage/config@1.0.8 + ## 0.0.1-next.0 ### Patch Changes diff --git a/plugins/analytics-module-newrelic-browser/package.json b/plugins/analytics-module-newrelic-browser/package.json index 677d3b8e16..ba72a1628b 100644 --- a/plugins/analytics-module-newrelic-browser/package.json +++ b/plugins/analytics-module-newrelic-browser/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-analytics-module-newrelic-browser", - "version": "0.0.1-next.0", + "version": "0.0.1", "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 42756b19df..e23c4a7c0c 100644 --- a/plugins/apache-airflow/CHANGELOG.md +++ b/plugins/apache-airflow/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-apache-airflow +## 0.2.14 + +### Patch Changes + +- 12a8c94eda8d: Add package repository and homepage metadata +- Updated dependencies + - @backstage/core-components@0.13.4 + - @backstage/core-plugin-api@1.5.3 + ## 0.2.14-next.1 ### Patch Changes diff --git a/plugins/apache-airflow/package.json b/plugins/apache-airflow/package.json index a1e84dc6fb..281d49c781 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.14-next.1", + "version": "0.2.14", "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 d7d002739a..f84d57542b 100644 --- a/plugins/api-docs/CHANGELOG.md +++ b/plugins/api-docs/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-api-docs +## 0.9.7 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.4 + - @backstage/plugin-catalog@1.12.1 + - @backstage/plugin-catalog-react@1.8.1 + - @backstage/core-plugin-api@1.5.3 + - @backstage/catalog-model@1.4.1 + - @backstage/theme@0.4.1 + ## 0.9.7-next.2 ### Patch Changes diff --git a/plugins/api-docs/package.json b/plugins/api-docs/package.json index 43af4da872..1fe4133515 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.7-next.2", + "version": "0.9.7", "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 b733c807ba..0833267e83 100644 --- a/plugins/apollo-explorer/CHANGELOG.md +++ b/plugins/apollo-explorer/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-apollo-explorer +## 0.1.14 + +### Patch Changes + +- 12a8c94eda8d: Add package repository and homepage metadata +- Updated dependencies + - @backstage/core-components@0.13.4 + - @backstage/core-plugin-api@1.5.3 + - @backstage/theme@0.4.1 + ## 0.1.14-next.1 ### Patch Changes diff --git a/plugins/apollo-explorer/package.json b/plugins/apollo-explorer/package.json index f989ba29ad..aae09fe19a 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.14-next.1", + "version": "0.1.14", "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 eb570e4153..2ac0068ccc 100644 --- a/plugins/app-backend/CHANGELOG.md +++ b/plugins/app-backend/CHANGELOG.md @@ -1,5 +1,19 @@ # @backstage/plugin-app-backend +## 0.3.48 + +### Patch Changes + +- 629cbd194a87: Use `coreServices.rootConfig` instead of `coreService.config` +- d564ad142b17: Migrated the alpha `appBackend` export to use static configuration and extension points rather than accepting options. +- Updated dependencies + - @backstage/backend-common@0.19.2 + - @backstage/config-loader@1.4.0 + - @backstage/backend-plugin-api@0.6.0 + - @backstage/plugin-app-node@0.1.0 + - @backstage/config@1.0.8 + - @backstage/types@1.1.0 + ## 0.3.48-next.2 ### Patch Changes diff --git a/plugins/app-backend/package.json b/plugins/app-backend/package.json index 0000cfdcb1..05db6bb37d 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.48-next.2", + "version": "0.3.48", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/app-node/CHANGELOG.md b/plugins/app-node/CHANGELOG.md index cd67ddf91d..1a2fd84689 100644 --- a/plugins/app-node/CHANGELOG.md +++ b/plugins/app-node/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-app-node +## 0.1.0 + +### Minor Changes + +- 9fbe95ef6503: Added the `app` plugin node library, initially providing an extension point that can be used to configure a static fallback handler. + +### Patch Changes + +- Updated dependencies + - @backstage/backend-plugin-api@0.6.0 + ## 0.1.0-next.0 ### Minor Changes diff --git a/plugins/app-node/package.json b/plugins/app-node/package.json index 106b3bdb01..842086ecee 100644 --- a/plugins/app-node/package.json +++ b/plugins/app-node/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-app-node", "description": "Node.js library for the app plugin", - "version": "0.1.0-next.0", + "version": "0.1.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 c8900b6df6..5504f162e6 100644 --- a/plugins/auth-backend/CHANGELOG.md +++ b/plugins/auth-backend/CHANGELOG.md @@ -1,5 +1,21 @@ # @backstage/plugin-auth-backend +## 0.18.6 + +### Patch Changes + +- 16452cd007ae: Updated `frameHandler` to return `undefined` when using the redirect flow instead of returning `postMessageReponse` which was causing errors +- 9dad4b0e61bd: Updated config schema to match what was being used in code +- bb70a9c3886a: Add frontend visibility to provider objects in `auth` config. +- Updated dependencies + - @backstage/backend-common@0.19.2 + - @backstage/plugin-auth-node@0.2.17 + - @backstage/catalog-client@1.4.3 + - @backstage/catalog-model@1.4.1 + - @backstage/config@1.0.8 + - @backstage/errors@1.2.1 + - @backstage/types@1.1.0 + ## 0.18.6-next.2 ### Patch Changes diff --git a/plugins/auth-backend/package.json b/plugins/auth-backend/package.json index 1ad8d6c0c0..be2017e4db 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.6-next.2", + "version": "0.18.6", "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 9cfd5c28d9..30c133338b 100644 --- a/plugins/auth-node/CHANGELOG.md +++ b/plugins/auth-node/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-auth-node +## 0.2.17 + +### Patch Changes + +- 12a8c94eda8d: Add package repository and homepage metadata +- Updated dependencies + - @backstage/backend-common@0.19.2 + - @backstage/config@1.0.8 + - @backstage/errors@1.2.1 + ## 0.2.17-next.2 ### Patch Changes diff --git a/plugins/auth-node/package.json b/plugins/auth-node/package.json index f57ff4e2fb..b5c402367b 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.17-next.2", + "version": "0.2.17", "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 0cd3b2eed5..fd9f614d75 100644 --- a/plugins/azure-devops-backend/CHANGELOG.md +++ b/plugins/azure-devops-backend/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-azure-devops-backend +## 0.3.27 + +### Patch Changes + +- 629cbd194a87: Use `coreServices.rootConfig` instead of `coreService.config` +- 12a8c94eda8d: Add package repository and homepage metadata +- Updated dependencies + - @backstage/backend-common@0.19.2 + - @backstage/backend-plugin-api@0.6.0 + - @backstage/config@1.0.8 + - @backstage/plugin-azure-devops-common@0.3.0 + ## 0.3.27-next.2 ### Patch Changes diff --git a/plugins/azure-devops-backend/package.json b/plugins/azure-devops-backend/package.json index 2702d38539..6868de34fd 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.27-next.2", + "version": "0.3.27", "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 46583f66b2..abf3c3e146 100644 --- a/plugins/azure-devops/CHANGELOG.md +++ b/plugins/azure-devops/CHANGELOG.md @@ -1,5 +1,18 @@ # @backstage/plugin-azure-devops +## 0.3.3 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.4 + - @backstage/plugin-catalog-react@1.8.1 + - @backstage/core-plugin-api@1.5.3 + - @backstage/catalog-model@1.4.1 + - @backstage/errors@1.2.1 + - @backstage/theme@0.4.1 + - @backstage/plugin-azure-devops-common@0.3.0 + ## 0.3.3-next.1 ### Patch Changes diff --git a/plugins/azure-devops/package.json b/plugins/azure-devops/package.json index abc08d6c65..96674d2cf2 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.3-next.1", + "version": "0.3.3", "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 4ce541ce02..6e6a662283 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.10 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.2 + - @backstage/config@1.0.8 + - @backstage/plugin-azure-sites-common@0.1.0 + ## 0.1.10-next.2 ### Patch Changes diff --git a/plugins/azure-sites-backend/package.json b/plugins/azure-sites-backend/package.json index 178a207071..5b6f7ea83f 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.10-next.2", + "version": "0.1.10", "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 4faef98d4f..6f043950c6 100644 --- a/plugins/azure-sites/CHANGELOG.md +++ b/plugins/azure-sites/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-azure-sites +## 0.1.10 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.4 + - @backstage/plugin-catalog-react@1.8.1 + - @backstage/core-plugin-api@1.5.3 + - @backstage/catalog-model@1.4.1 + - @backstage/theme@0.4.1 + - @backstage/plugin-azure-sites-common@0.1.0 + ## 0.1.10-next.1 ### Patch Changes diff --git a/plugins/azure-sites/package.json b/plugins/azure-sites/package.json index 35b1bf365d..a4e50cccea 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.10-next.1", + "version": "0.1.10", "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 531cf25310..2557b7469a 100644 --- a/plugins/badges-backend/CHANGELOG.md +++ b/plugins/badges-backend/CHANGELOG.md @@ -1,5 +1,19 @@ # @backstage/plugin-badges-backend +## 0.2.3 + +### Patch Changes + +- 629cbd194a87: Use `coreServices.rootConfig` instead of `coreService.config` +- Updated dependencies + - @backstage/backend-common@0.19.2 + - @backstage/backend-plugin-api@0.6.0 + - @backstage/plugin-auth-node@0.2.17 + - @backstage/catalog-client@1.4.3 + - @backstage/catalog-model@1.4.1 + - @backstage/config@1.0.8 + - @backstage/errors@1.2.1 + ## 0.2.3-next.2 ### Patch Changes diff --git a/plugins/badges-backend/package.json b/plugins/badges-backend/package.json index a3f822ef95..f7acb9308f 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.3-next.2", + "version": "0.2.3", "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 970344653a..60e1ecc1be 100644 --- a/plugins/badges/CHANGELOG.md +++ b/plugins/badges/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-badges +## 0.2.45 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.4 + - @backstage/plugin-catalog-react@1.8.1 + - @backstage/core-plugin-api@1.5.3 + - @backstage/catalog-model@1.4.1 + - @backstage/errors@1.2.1 + - @backstage/theme@0.4.1 + ## 0.2.45-next.1 ### Patch Changes diff --git a/plugins/badges/package.json b/plugins/badges/package.json index dc288eb4d0..9146f64de5 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.45-next.1", + "version": "0.2.45", "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 70b9ea1a21..2cd3f586c2 100644 --- a/plugins/bazaar-backend/CHANGELOG.md +++ b/plugins/bazaar-backend/CHANGELOG.md @@ -1,5 +1,18 @@ # @backstage/plugin-bazaar-backend +## 0.2.11 + +### Patch Changes + +- 629cbd194a87: Use `coreServices.rootConfig` instead of `coreService.config` +- 12a8c94eda8d: Add package repository and homepage metadata +- Updated dependencies + - @backstage/backend-common@0.19.2 + - @backstage/backend-plugin-api@0.6.0 + - @backstage/plugin-auth-node@0.2.17 + - @backstage/config@1.0.8 + - @backstage/errors@1.2.1 + ## 0.2.11-next.2 ### Patch Changes diff --git a/plugins/bazaar-backend/package.json b/plugins/bazaar-backend/package.json index 5dacefc140..d97267faf8 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.11-next.2", + "version": "0.2.11", "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 519b5aa753..b6bae0f5ed 100644 --- a/plugins/bazaar/CHANGELOG.md +++ b/plugins/bazaar/CHANGELOG.md @@ -1,5 +1,21 @@ # @backstage/plugin-bazaar +## 0.2.12 + +### Patch Changes + +- 12a8c94eda8d: Add package repository and homepage metadata +- Updated dependencies + - @backstage/cli@0.22.10 + - @backstage/core-components@0.13.4 + - @backstage/plugin-catalog@1.12.1 + - @backstage/plugin-catalog-react@1.8.1 + - @backstage/core-plugin-api@1.5.3 + - @backstage/catalog-client@1.4.3 + - @backstage/catalog-model@1.4.1 + - @backstage/errors@1.2.1 + - @backstage/theme@0.4.1 + ## 0.2.12-next.2 ### Patch Changes diff --git a/plugins/bazaar/package.json b/plugins/bazaar/package.json index 252c1c037f..34d7490554 100644 --- a/plugins/bazaar/package.json +++ b/plugins/bazaar/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-bazaar", - "version": "0.2.12-next.2", + "version": "0.2.12", "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 1afd2eb74e..f1a842f892 100644 --- a/plugins/bitbucket-cloud-common/CHANGELOG.md +++ b/plugins/bitbucket-cloud-common/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-bitbucket-cloud-common +## 0.2.9 + +### Patch Changes + +- 12a8c94eda8d: Add package repository and homepage metadata +- Updated dependencies + - @backstage/integration@1.6.0 + ## 0.2.9-next.0 ### Patch Changes diff --git a/plugins/bitbucket-cloud-common/package.json b/plugins/bitbucket-cloud-common/package.json index 7d1ef19b6b..2bc9fc3297 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.9-next.0", + "version": "0.2.9", "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 bb1cf3b072..c44557a51c 100644 --- a/plugins/bitrise/CHANGELOG.md +++ b/plugins/bitrise/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-bitrise +## 0.1.48 + +### Patch Changes + +- 12a8c94eda8d: Add package repository and homepage metadata +- Updated dependencies + - @backstage/core-components@0.13.4 + - @backstage/plugin-catalog-react@1.8.1 + - @backstage/core-plugin-api@1.5.3 + - @backstage/catalog-model@1.4.1 + - @backstage/theme@0.4.1 + ## 0.1.48-next.2 ### Patch Changes diff --git a/plugins/bitrise/package.json b/plugins/bitrise/package.json index f499ec6dd5..6d63cb6384 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.48-next.2", + "version": "0.1.48", "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 49df1ca628..b2399d568f 100644 --- a/plugins/catalog-backend-module-aws/CHANGELOG.md +++ b/plugins/catalog-backend-module-aws/CHANGELOG.md @@ -1,5 +1,26 @@ # @backstage/plugin-catalog-backend-module-aws +## 0.2.3 + +### Patch Changes + +- 629cbd194a87: Use `coreServices.rootConfig` instead of `coreService.config` +- 4b82382ed8c2: Fixed invalid configuration schema. The configuration schema may be more strict as a result. +- b4222908b0c3: Added option to configure AWS `accountId` in `AwsS3EntityProvider` +- Updated dependencies + - @backstage/backend-common@0.19.2 + - @backstage/backend-plugin-api@0.6.0 + - @backstage/plugin-catalog-node@1.4.1 + - @backstage/integration@1.6.0 + - @backstage/backend-tasks@0.5.5 + - @backstage/integration-aws-node@0.1.5 + - @backstage/catalog-model@1.4.1 + - @backstage/config@1.0.8 + - @backstage/errors@1.2.1 + - @backstage/types@1.1.0 + - @backstage/plugin-catalog-common@1.0.15 + - @backstage/plugin-kubernetes-common@0.6.5 + ## 0.2.3-next.2 ### Patch Changes diff --git a/plugins/catalog-backend-module-aws/package.json b/plugins/catalog-backend-module-aws/package.json index c470b30e70..e593fcf90a 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.3-next.2", + "version": "0.2.3", "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 48bd1452d5..73b5489600 100644 --- a/plugins/catalog-backend-module-azure/CHANGELOG.md +++ b/plugins/catalog-backend-module-azure/CHANGELOG.md @@ -1,5 +1,23 @@ # @backstage/plugin-catalog-backend-module-azure +## 0.1.19 + +### Patch Changes + +- 629cbd194a87: Use `coreServices.rootConfig` instead of `coreService.config` +- 4b82382ed8c2: Fixed invalid configuration schema. The configuration schema may be more strict as a result. +- Updated dependencies + - @backstage/backend-common@0.19.2 + - @backstage/backend-plugin-api@0.6.0 + - @backstage/plugin-catalog-node@1.4.1 + - @backstage/integration@1.6.0 + - @backstage/backend-tasks@0.5.5 + - @backstage/catalog-model@1.4.1 + - @backstage/config@1.0.8 + - @backstage/errors@1.2.1 + - @backstage/types@1.1.0 + - @backstage/plugin-catalog-common@1.0.15 + ## 0.1.19-next.2 ### Patch Changes diff --git a/plugins/catalog-backend-module-azure/package.json b/plugins/catalog-backend-module-azure/package.json index 9c91403165..eb6a3eadf5 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.19-next.2", + "version": "0.1.19", "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 2aceb188be..7503ee898e 100644 --- a/plugins/catalog-backend-module-bitbucket-cloud/CHANGELOG.md +++ b/plugins/catalog-backend-module-bitbucket-cloud/CHANGELOG.md @@ -1,5 +1,24 @@ # @backstage/plugin-catalog-backend-module-bitbucket-cloud +## 0.1.15 + +### Patch Changes + +- 629cbd194a87: Use `coreServices.rootConfig` instead of `coreService.config` +- 4b82382ed8c2: Fixed invalid configuration schema. The configuration schema may be more strict as a result. +- Updated dependencies + - @backstage/backend-common@0.19.2 + - @backstage/backend-plugin-api@0.6.0 + - @backstage/plugin-bitbucket-cloud-common@0.2.9 + - @backstage/plugin-catalog-node@1.4.1 + - @backstage/plugin-events-node@0.2.9 + - @backstage/integration@1.6.0 + - @backstage/backend-tasks@0.5.5 + - @backstage/catalog-client@1.4.3 + - @backstage/catalog-model@1.4.1 + - @backstage/config@1.0.8 + - @backstage/plugin-catalog-common@1.0.15 + ## 0.1.15-next.2 ### Patch Changes diff --git a/plugins/catalog-backend-module-bitbucket-cloud/package.json b/plugins/catalog-backend-module-bitbucket-cloud/package.json index 6806ce1184..42df54688b 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.15-next.2", + "version": "0.1.15", "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 feb0a2f984..1b5a65f254 100644 --- a/plugins/catalog-backend-module-bitbucket-server/CHANGELOG.md +++ b/plugins/catalog-backend-module-bitbucket-server/CHANGELOG.md @@ -1,5 +1,21 @@ # @backstage/plugin-catalog-backend-module-bitbucket-server +## 0.1.13 + +### Patch Changes + +- 629cbd194a87: Use `coreServices.rootConfig` instead of `coreService.config` +- 4b82382ed8c2: Fixed invalid configuration schema. The configuration schema may be more strict as a result. +- Updated dependencies + - @backstage/backend-common@0.19.2 + - @backstage/backend-plugin-api@0.6.0 + - @backstage/plugin-catalog-node@1.4.1 + - @backstage/integration@1.6.0 + - @backstage/backend-tasks@0.5.5 + - @backstage/catalog-model@1.4.1 + - @backstage/config@1.0.8 + - @backstage/errors@1.2.1 + ## 0.1.13-next.2 ### Patch Changes diff --git a/plugins/catalog-backend-module-bitbucket-server/package.json b/plugins/catalog-backend-module-bitbucket-server/package.json index cd1d19cd90..7e488e31ff 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.13-next.2", + "version": "0.1.13", "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 d7b456e3ee..ef448f6b20 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.15 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.2 + - @backstage/plugin-bitbucket-cloud-common@0.2.9 + - @backstage/plugin-catalog-node@1.4.1 + - @backstage/integration@1.6.0 + - @backstage/catalog-model@1.4.1 + - @backstage/config@1.0.8 + - @backstage/errors@1.2.1 + - @backstage/types@1.1.0 + ## 0.2.15-next.2 ### Patch Changes diff --git a/plugins/catalog-backend-module-bitbucket/package.json b/plugins/catalog-backend-module-bitbucket/package.json index fb641a5af9..45ca64dc71 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.15-next.2", + "version": "0.2.15", "deprecated": true, "main": "src/index.ts", "types": "src/index.ts", diff --git a/plugins/catalog-backend-module-gcp/CHANGELOG.md b/plugins/catalog-backend-module-gcp/CHANGELOG.md index 3885e371a2..c30f91fa61 100644 --- a/plugins/catalog-backend-module-gcp/CHANGELOG.md +++ b/plugins/catalog-backend-module-gcp/CHANGELOG.md @@ -1,5 +1,22 @@ # @backstage/plugin-catalog-backend-module-gcp +## 0.1.0 + +### Minor Changes + +- 290eff6692aa: Added GCP catalog plugin with GKE provider + +### Patch Changes + +- 629cbd194a87: Use `coreServices.rootConfig` instead of `coreService.config` +- Updated dependencies + - @backstage/backend-common@0.19.2 + - @backstage/backend-plugin-api@0.6.0 + - @backstage/plugin-catalog-node@1.4.1 + - @backstage/backend-tasks@0.5.5 + - @backstage/config@1.0.8 + - @backstage/plugin-kubernetes-common@0.6.5 + ## 0.1.0-next.1 ### Patch Changes diff --git a/plugins/catalog-backend-module-gcp/package.json b/plugins/catalog-backend-module-gcp/package.json index 24f7dd0a25..dcff6662dd 100644 --- a/plugins/catalog-backend-module-gcp/package.json +++ b/plugins/catalog-backend-module-gcp/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-catalog-backend-module-gcp", "description": "A Backstage catalog backend module that helps integrate towards GCP", - "version": "0.1.0-next.1", + "version": "0.1.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/catalog-backend-module-gerrit/CHANGELOG.md b/plugins/catalog-backend-module-gerrit/CHANGELOG.md index 54ed3b5a02..3bb53b864b 100644 --- a/plugins/catalog-backend-module-gerrit/CHANGELOG.md +++ b/plugins/catalog-backend-module-gerrit/CHANGELOG.md @@ -1,5 +1,21 @@ # @backstage/plugin-catalog-backend-module-gerrit +## 0.1.16 + +### Patch Changes + +- 629cbd194a87: Use `coreServices.rootConfig` instead of `coreService.config` +- 4b82382ed8c2: Fixed invalid configuration schema. The configuration schema may be more strict as a result. +- Updated dependencies + - @backstage/backend-common@0.19.2 + - @backstage/backend-plugin-api@0.6.0 + - @backstage/plugin-catalog-node@1.4.1 + - @backstage/integration@1.6.0 + - @backstage/backend-tasks@0.5.5 + - @backstage/catalog-model@1.4.1 + - @backstage/config@1.0.8 + - @backstage/errors@1.2.1 + ## 0.1.16-next.2 ### Patch Changes diff --git a/plugins/catalog-backend-module-gerrit/package.json b/plugins/catalog-backend-module-gerrit/package.json index f0cafe2c9e..99e9ed5e12 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.16-next.2", + "version": "0.1.16", "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 fbee4b92d6..4d14c2ce5a 100644 --- a/plugins/catalog-backend-module-github/CHANGELOG.md +++ b/plugins/catalog-backend-module-github/CHANGELOG.md @@ -1,5 +1,27 @@ # @backstage/plugin-catalog-backend-module-github +## 0.3.3 + +### Patch Changes + +- 629cbd194a87: Use `coreServices.rootConfig` instead of `coreService.config` +- 4b82382ed8c2: Fixed invalid configuration schema. The configuration schema may be more strict as a result. +- 81c231c9c9ee: Fixed a bug where the visibility filter was case sensitive and casting was inconsistent. +- Updated dependencies + - @backstage/backend-common@0.19.2 + - @backstage/plugin-catalog-backend@1.12.0 + - @backstage/backend-plugin-api@0.6.0 + - @backstage/plugin-catalog-node@1.4.1 + - @backstage/plugin-events-node@0.2.9 + - @backstage/integration@1.6.0 + - @backstage/backend-tasks@0.5.5 + - @backstage/catalog-client@1.4.3 + - @backstage/catalog-model@1.4.1 + - @backstage/config@1.0.8 + - @backstage/errors@1.2.1 + - @backstage/types@1.1.0 + - @backstage/plugin-catalog-common@1.0.15 + ## 0.3.3-next.2 ### Patch Changes diff --git a/plugins/catalog-backend-module-github/package.json b/plugins/catalog-backend-module-github/package.json index 08214b0342..101c0f54f0 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.3-next.2", + "version": "0.3.3", "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 a1f7d0265e..0f860bb050 100644 --- a/plugins/catalog-backend-module-gitlab/CHANGELOG.md +++ b/plugins/catalog-backend-module-gitlab/CHANGELOG.md @@ -1,5 +1,24 @@ # @backstage/plugin-catalog-backend-module-gitlab +## 0.2.4 + +### Patch Changes + +- 629cbd194a87: Use `coreServices.rootConfig` instead of `coreService.config` +- e6c721439f37: Added option to skip forked repos in GitlabDiscoveryEntityProvider +- 4b82382ed8c2: Fixed invalid configuration schema. The configuration schema may be more strict as a result. +- 2fe1f5973ff7: Filter Gitlab archived projects through APIs +- Updated dependencies + - @backstage/backend-common@0.19.2 + - @backstage/backend-plugin-api@0.6.0 + - @backstage/plugin-catalog-node@1.4.1 + - @backstage/integration@1.6.0 + - @backstage/backend-tasks@0.5.5 + - @backstage/catalog-model@1.4.1 + - @backstage/config@1.0.8 + - @backstage/errors@1.2.1 + - @backstage/types@1.1.0 + ## 0.2.4-next.2 ### Patch Changes diff --git a/plugins/catalog-backend-module-gitlab/package.json b/plugins/catalog-backend-module-gitlab/package.json index 08f4d8b897..3f31ffdf1d 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.4-next.2", + "version": "0.2.4", "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 3e33f19f54..7fa5ac3c11 100644 --- a/plugins/catalog-backend-module-incremental-ingestion/CHANGELOG.md +++ b/plugins/catalog-backend-module-incremental-ingestion/CHANGELOG.md @@ -1,5 +1,23 @@ # @backstage/plugin-catalog-backend-module-incremental-ingestion +## 0.4.1 + +### Patch Changes + +- 629cbd194a87: Use `coreServices.rootConfig` instead of `coreService.config` +- e2b6396a1274: Export new alpha `incrementalIngestionProvidersExtensionPoint` for registering incremental providers, rather than the providers being passed as options to the backend module. +- Updated dependencies + - @backstage/backend-common@0.19.2 + - @backstage/plugin-catalog-backend@1.12.0 + - @backstage/backend-plugin-api@0.6.0 + - @backstage/plugin-catalog-node@1.4.1 + - @backstage/plugin-events-node@0.2.9 + - @backstage/backend-tasks@0.5.5 + - @backstage/catalog-model@1.4.1 + - @backstage/config@1.0.8 + - @backstage/errors@1.2.1 + - @backstage/plugin-permission-common@0.7.7 + ## 0.4.1-next.2 ### Patch Changes diff --git a/plugins/catalog-backend-module-incremental-ingestion/package.json b/plugins/catalog-backend-module-incremental-ingestion/package.json index aa664151d8..30a64c20b2 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.4.1-next.2", + "version": "0.4.1", "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 bb411cc81d..9db8a14c9f 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.15 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-node@1.4.1 + - @backstage/backend-tasks@0.5.5 + - @backstage/catalog-model@1.4.1 + - @backstage/config@1.0.8 + - @backstage/errors@1.2.1 + - @backstage/types@1.1.0 + - @backstage/plugin-catalog-common@1.0.15 + ## 0.5.15-next.2 ### Patch Changes diff --git a/plugins/catalog-backend-module-ldap/package.json b/plugins/catalog-backend-module-ldap/package.json index a9cf8c6079..8d3a6277c3 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.15-next.2", + "version": "0.5.15", "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 c37c228dc4..383ceffe0e 100644 --- a/plugins/catalog-backend-module-msgraph/CHANGELOG.md +++ b/plugins/catalog-backend-module-msgraph/CHANGELOG.md @@ -1,5 +1,21 @@ # @backstage/plugin-catalog-backend-module-msgraph +## 0.5.7 + +### Patch Changes + +- 629cbd194a87: Use `coreServices.rootConfig` instead of `coreService.config` +- fb93323201bf: The alpha `catalogModuleMicrosoftGraphOrgEntityProvider` export no longer accepts options. Transformers are now instead configured via the `microsoftGraphOrgEntityProviderTransformExtensionPoint`. +- 4b82382ed8c2: Fixed invalid configuration schema. The configuration schema may be more strict as a result. +- Updated dependencies + - @backstage/backend-common@0.19.2 + - @backstage/backend-plugin-api@0.6.0 + - @backstage/plugin-catalog-node@1.4.1 + - @backstage/backend-tasks@0.5.5 + - @backstage/catalog-model@1.4.1 + - @backstage/config@1.0.8 + - @backstage/plugin-catalog-common@1.0.15 + ## 0.5.7-next.2 ### Patch Changes diff --git a/plugins/catalog-backend-module-msgraph/package.json b/plugins/catalog-backend-module-msgraph/package.json index e5a61ae54d..5d2afe69bf 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.7-next.2", + "version": "0.5.7", "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 c9cbc11199..7a7bf51087 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.14 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.2 + - @backstage/plugin-catalog-backend@1.12.0 + - @backstage/plugin-catalog-node@1.4.1 + - @backstage/integration@1.6.0 + - @backstage/catalog-model@1.4.1 + - @backstage/config@1.0.8 + - @backstage/types@1.1.0 + - @backstage/plugin-catalog-common@1.0.15 + ## 0.1.14-next.2 ### Patch Changes diff --git a/plugins/catalog-backend-module-openapi/package.json b/plugins/catalog-backend-module-openapi/package.json index 8fbe3840c5..f9c5fe88a1 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.14-next.2", + "version": "0.1.14", "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 6fab80842e..31fbe07360 100644 --- a/plugins/catalog-backend-module-puppetdb/CHANGELOG.md +++ b/plugins/catalog-backend-module-puppetdb/CHANGELOG.md @@ -1,5 +1,21 @@ # @backstage/plugin-catalog-backend-module-puppetdb +## 0.1.5 + +### Patch Changes + +- 629cbd194a87: Use `coreServices.rootConfig` instead of `coreService.config` +- 4b82382ed8c2: Fixed invalid configuration schema. The configuration schema may be more strict as a result. +- Updated dependencies + - @backstage/backend-common@0.19.2 + - @backstage/backend-plugin-api@0.6.0 + - @backstage/plugin-catalog-node@1.4.1 + - @backstage/backend-tasks@0.5.5 + - @backstage/catalog-model@1.4.1 + - @backstage/config@1.0.8 + - @backstage/errors@1.2.1 + - @backstage/types@1.1.0 + ## 0.1.5-next.2 ### Patch Changes diff --git a/plugins/catalog-backend-module-puppetdb/package.json b/plugins/catalog-backend-module-puppetdb/package.json index 938ea30f24..9cd16fd3c3 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.5-next.2", + "version": "0.1.5", "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 c54fd24a21..96228acefd 100644 --- a/plugins/catalog-backend-module-unprocessed/CHANGELOG.md +++ b/plugins/catalog-backend-module-unprocessed/CHANGELOG.md @@ -1,5 +1,19 @@ # @backstage/plugin-catalog-backend-module-unprocessed +## 0.2.0 + +### Minor Changes + +- 5156a94c2e2a: **BREAKING**: Fixing typo in exported module. You will have to rename the import to the correct spelling. `UnprocessedEntites` -> `UnprocessedEntities` + +### Patch Changes + +- 12a8c94eda8d: Add package repository and homepage metadata +- Updated dependencies + - @backstage/backend-plugin-api@0.6.0 + - @backstage/plugin-auth-node@0.2.17 + - @backstage/catalog-model@1.4.1 + ## 0.2.0-next.2 ### Patch Changes diff --git a/plugins/catalog-backend-module-unprocessed/package.json b/plugins/catalog-backend-module-unprocessed/package.json index 429f778677..8f303b9667 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.2.0-next.2", + "version": "0.2.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 83a15e0d83..e1fd4e43ab 100644 --- a/plugins/catalog-backend/CHANGELOG.md +++ b/plugins/catalog-backend/CHANGELOG.md @@ -1,5 +1,38 @@ # @backstage/plugin-catalog-backend +## 1.12.0 + +### Minor Changes + +- b8cccd8ee858: Support configuring applicable kinds for `AnnotateScmSlugEntityProcessor` +- f32252cdf631: Added OpenTelemetry spans for catalog processing +- ebeb77586975: Now performs request validation based on OpenAPI schema through `@backstage/backend-openapi-utils`. Error responses for invalid input, like `"a"` instead of a number, may have changed. + +### Patch Changes + +- 629cbd194a87: Use `coreServices.rootConfig` instead of `coreService.config` +- b8d6b22acd57: Internal refactor for load test +- Updated dependencies + - @backstage/plugin-search-backend-module-catalog@0.1.4 + - @backstage/backend-common@0.19.2 + - @backstage/backend-plugin-api@0.6.0 + - @backstage/backend-openapi-utils@0.0.3 + - @backstage/plugin-catalog-node@1.4.1 + - @backstage/plugin-events-node@0.2.9 + - @backstage/plugin-auth-node@0.2.17 + - @backstage/integration@1.6.0 + - @backstage/backend-tasks@0.5.5 + - @backstage/plugin-scaffolder-common@1.4.0 + - @backstage/plugin-permission-node@0.7.11 + - @backstage/catalog-client@1.4.3 + - @backstage/catalog-model@1.4.1 + - @backstage/config@1.0.8 + - @backstage/errors@1.2.1 + - @backstage/types@1.1.0 + - @backstage/plugin-catalog-common@1.0.15 + - @backstage/plugin-permission-common@0.7.7 + - @backstage/plugin-search-common@1.2.5 + ## 1.12.0-next.2 ### Minor Changes diff --git a/plugins/catalog-backend/package.json b/plugins/catalog-backend/package.json index 9585d79bb1..0082898ffc 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.12.0-next.2", + "version": "1.12.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 f74079973b..2c98b37be3 100644 --- a/plugins/catalog-customized/CHANGELOG.md +++ b/plugins/catalog-customized/CHANGELOG.md @@ -1,5 +1,13 @@ # @internal/plugin-catalog-customized +## 0.0.13 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog@1.12.1 + - @backstage/plugin-catalog-react@1.8.1 + ## 0.0.13-next.2 ### Patch Changes diff --git a/plugins/catalog-customized/package.json b/plugins/catalog-customized/package.json index 695f964d1f..bb298bf0ae 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.13-next.2", + "version": "0.0.13", "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 ec1ceb76d5..f36eadb464 100644 --- a/plugins/catalog-graph/CHANGELOG.md +++ b/plugins/catalog-graph/CHANGELOG.md @@ -1,5 +1,21 @@ # @backstage/plugin-catalog-graph +## 0.2.33 + +### Patch Changes + +- 64ee2c0c7ca5: Propagate entity spec to EntityNode so that spec info such as type can be used for graph node customization +- 62dc7a2b1ad1: Added maximum depth parameter to the catalogGraphParams in CatalogGraphCard. +- 12a8c94eda8d: Add package repository and homepage metadata +- Updated dependencies + - @backstage/core-components@0.13.4 + - @backstage/plugin-catalog-react@1.8.1 + - @backstage/core-plugin-api@1.5.3 + - @backstage/catalog-client@1.4.3 + - @backstage/catalog-model@1.4.1 + - @backstage/theme@0.4.1 + - @backstage/types@1.1.0 + ## 0.2.33-next.2 ### Patch Changes diff --git a/plugins/catalog-graph/package.json b/plugins/catalog-graph/package.json index 4f815fce82..b1a1abe6ba 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.33-next.2", + "version": "0.2.33", "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 90cd7012d9..8a44026997 100644 --- a/plugins/catalog-import/CHANGELOG.md +++ b/plugins/catalog-import/CHANGELOG.md @@ -1,5 +1,21 @@ # @backstage/plugin-catalog-import +## 0.9.11 + +### Patch Changes + +- Updated dependencies + - @backstage/integration-react@1.1.16 + - @backstage/integration@1.6.0 + - @backstage/core-components@0.13.4 + - @backstage/plugin-catalog-react@1.8.1 + - @backstage/core-plugin-api@1.5.3 + - @backstage/catalog-client@1.4.3 + - @backstage/catalog-model@1.4.1 + - @backstage/config@1.0.8 + - @backstage/errors@1.2.1 + - @backstage/plugin-catalog-common@1.0.15 + ## 0.9.11-next.2 ### Patch Changes diff --git a/plugins/catalog-import/package.json b/plugins/catalog-import/package.json index dc31a37e17..fe9ef62251 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.11-next.2", + "version": "0.9.11", "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 852650f62b..4e7b43ae7c 100644 --- a/plugins/catalog-node/CHANGELOG.md +++ b/plugins/catalog-node/CHANGELOG.md @@ -1,5 +1,18 @@ # @backstage/plugin-catalog-node +## 1.4.1 + +### Patch Changes + +- 12a8c94eda8d: Add package repository and homepage metadata +- Updated dependencies + - @backstage/backend-plugin-api@0.6.0 + - @backstage/catalog-client@1.4.3 + - @backstage/catalog-model@1.4.1 + - @backstage/errors@1.2.1 + - @backstage/types@1.1.0 + - @backstage/plugin-catalog-common@1.0.15 + ## 1.4.1-next.2 ### Patch Changes diff --git a/plugins/catalog-node/package.json b/plugins/catalog-node/package.json index 9575fb05a2..7c6e21d62c 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.4.1-next.2", + "version": "1.4.1", "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 9699a4a62d..953438ae7d 100644 --- a/plugins/catalog-react/CHANGELOG.md +++ b/plugins/catalog-react/CHANGELOG.md @@ -1,5 +1,24 @@ # @backstage/plugin-catalog-react +## 1.8.1 + +### Patch Changes + +- aa3feedce10a: Allow specifying screen size when catalog filters are hidden in drawer +- Updated dependencies + - @backstage/integration@1.6.0 + - @backstage/core-components@0.13.4 + - @backstage/core-plugin-api@1.5.3 + - @backstage/catalog-client@1.4.3 + - @backstage/catalog-model@1.4.1 + - @backstage/errors@1.2.1 + - @backstage/theme@0.4.1 + - @backstage/types@1.1.0 + - @backstage/version-bridge@1.0.4 + - @backstage/plugin-catalog-common@1.0.15 + - @backstage/plugin-permission-common@0.7.7 + - @backstage/plugin-permission-react@0.4.14 + ## 1.8.1-next.1 ### Patch Changes diff --git a/plugins/catalog-react/package.json b/plugins/catalog-react/package.json index e9bc8d249e..9853935353 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.8.1-next.1", + "version": "1.8.1", "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 03f4ecc8fa..3efc8ad3d4 100644 --- a/plugins/catalog-unprocessed-entities/CHANGELOG.md +++ b/plugins/catalog-unprocessed-entities/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-catalog-unprocessed-entities +## 0.1.2 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.4 + - @backstage/core-plugin-api@1.5.3 + - @backstage/catalog-model@1.4.1 + - @backstage/errors@1.2.1 + - @backstage/theme@0.4.1 + ## 0.1.2-next.0 ### Patch Changes diff --git a/plugins/catalog-unprocessed-entities/package.json b/plugins/catalog-unprocessed-entities/package.json index ff09e9e7f5..2a0d191b62 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.2-next.0", + "version": "0.1.2", "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 64215a213c..055f2971a2 100644 --- a/plugins/catalog/CHANGELOG.md +++ b/plugins/catalog/CHANGELOG.md @@ -1,5 +1,26 @@ # @backstage/plugin-catalog +## 1.12.1 + +### Patch Changes + +- 3d86be999fdf: Prefer simple `theme.spacing` without string interpolation +- 136cea792bd4: Fixed an issue causing `EntitySwitch` to unmount its children once entity refresh was invoked +- Updated dependencies + - @backstage/integration-react@1.1.16 + - @backstage/core-components@0.13.4 + - @backstage/plugin-catalog-react@1.8.1 + - @backstage/plugin-scaffolder-common@1.4.0 + - @backstage/core-plugin-api@1.5.3 + - @backstage/plugin-search-react@1.6.4 + - @backstage/catalog-client@1.4.3 + - @backstage/catalog-model@1.4.1 + - @backstage/errors@1.2.1 + - @backstage/theme@0.4.1 + - @backstage/types@1.1.0 + - @backstage/plugin-catalog-common@1.0.15 + - @backstage/plugin-search-common@1.2.5 + ## 1.12.1-next.2 ### Patch Changes diff --git a/plugins/catalog/package.json b/plugins/catalog/package.json index 985616be8d..639951fba2 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.12.1-next.2", + "version": "1.12.1", "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 25744f9bdf..12869769b7 100644 --- a/plugins/cicd-statistics-module-gitlab/CHANGELOG.md +++ b/plugins/cicd-statistics-module-gitlab/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-cicd-statistics-module-gitlab +## 0.1.17 + +### Patch Changes + +- 12a8c94eda8d: Add package repository and homepage metadata +- Updated dependencies + - @backstage/core-plugin-api@1.5.3 + - @backstage/catalog-model@1.4.1 + - @backstage/plugin-cicd-statistics@0.1.23 + ## 0.1.17-next.2 ### Patch Changes diff --git a/plugins/cicd-statistics-module-gitlab/package.json b/plugins/cicd-statistics-module-gitlab/package.json index 39d9aadc22..116181a7dd 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.17-next.2", + "version": "0.1.17", "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 aac48e8190..c9fae61d7b 100644 --- a/plugins/cicd-statistics/CHANGELOG.md +++ b/plugins/cicd-statistics/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-cicd-statistics +## 0.1.23 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-catalog-react@1.8.1 + - @backstage/core-plugin-api@1.5.3 + - @backstage/catalog-model@1.4.1 + ## 0.1.23-next.1 ### Patch Changes diff --git a/plugins/cicd-statistics/package.json b/plugins/cicd-statistics/package.json index d98b6d9dac..5ad6d85cc0 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.23-next.1", + "version": "0.1.23", "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 f4dce44764..5e5676fd78 100644 --- a/plugins/circleci/CHANGELOG.md +++ b/plugins/circleci/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-circleci +## 0.3.21 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.4 + - @backstage/plugin-catalog-react@1.8.1 + - @backstage/core-plugin-api@1.5.3 + - @backstage/catalog-model@1.4.1 + - @backstage/theme@0.4.1 + ## 0.3.21-next.1 ### Patch Changes diff --git a/plugins/circleci/package.json b/plugins/circleci/package.json index 50c6dd71fa..5576faf2ce 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.21-next.1", + "version": "0.3.21", "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 e59626fbe0..99a9a0101f 100644 --- a/plugins/cloudbuild/CHANGELOG.md +++ b/plugins/cloudbuild/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-cloudbuild +## 0.3.21 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.4 + - @backstage/plugin-catalog-react@1.8.1 + - @backstage/core-plugin-api@1.5.3 + - @backstage/catalog-model@1.4.1 + - @backstage/theme@0.4.1 + ## 0.3.21-next.1 ### Patch Changes diff --git a/plugins/cloudbuild/package.json b/plugins/cloudbuild/package.json index bdb4541e9b..cad764c8b9 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.21-next.1", + "version": "0.3.21", "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 33470a2191..d1c6181c11 100644 --- a/plugins/code-climate/CHANGELOG.md +++ b/plugins/code-climate/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-code-climate +## 0.1.21 + +### Patch Changes + +- 12a8c94eda8d: Add package repository and homepage metadata +- Updated dependencies + - @backstage/core-components@0.13.4 + - @backstage/plugin-catalog-react@1.8.1 + - @backstage/core-plugin-api@1.5.3 + - @backstage/catalog-model@1.4.1 + - @backstage/theme@0.4.1 + ## 0.1.21-next.2 ### Patch Changes diff --git a/plugins/code-climate/package.json b/plugins/code-climate/package.json index ca1800b897..1bb57e7f09 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.21-next.2", + "version": "0.1.21", "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 52eddd9afe..920cc10980 100644 --- a/plugins/code-coverage-backend/CHANGELOG.md +++ b/plugins/code-coverage-backend/CHANGELOG.md @@ -1,5 +1,18 @@ # @backstage/plugin-code-coverage-backend +## 0.2.14 + +### Patch Changes + +- 12a8c94eda8d: Add package repository and homepage metadata +- Updated dependencies + - @backstage/backend-common@0.19.2 + - @backstage/integration@1.6.0 + - @backstage/catalog-client@1.4.3 + - @backstage/catalog-model@1.4.1 + - @backstage/config@1.0.8 + - @backstage/errors@1.2.1 + ## 0.2.14-next.2 ### Patch Changes diff --git a/plugins/code-coverage-backend/package.json b/plugins/code-coverage-backend/package.json index 67b1fc1d2f..fe92b964cd 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.14-next.2", + "version": "0.2.14", "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 fce7d9a4b2..3a3ea6f016 100644 --- a/plugins/code-coverage/CHANGELOG.md +++ b/plugins/code-coverage/CHANGELOG.md @@ -1,5 +1,19 @@ # @backstage/plugin-code-coverage +## 0.2.14 + +### Patch Changes + +- 12a8c94eda8d: Add package repository and homepage metadata +- Updated dependencies + - @backstage/core-components@0.13.4 + - @backstage/plugin-catalog-react@1.8.1 + - @backstage/core-plugin-api@1.5.3 + - @backstage/catalog-model@1.4.1 + - @backstage/config@1.0.8 + - @backstage/errors@1.2.1 + - @backstage/theme@0.4.1 + ## 0.2.14-next.2 ### Patch Changes diff --git a/plugins/code-coverage/package.json b/plugins/code-coverage/package.json index ea14a18b87..3bb5f987a1 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.14-next.2", + "version": "0.2.14", "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 3a10b0984f..b81de8f1c6 100644 --- a/plugins/codescene/CHANGELOG.md +++ b/plugins/codescene/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-codescene +## 0.1.16 + +### Patch Changes + +- 12a8c94eda8d: Add package repository and homepage metadata +- Updated dependencies + - @backstage/core-components@0.13.4 + - @backstage/core-plugin-api@1.5.3 + - @backstage/config@1.0.8 + - @backstage/errors@1.2.1 + - @backstage/theme@0.4.1 + ## 0.1.16-next.1 ### Patch Changes diff --git a/plugins/codescene/package.json b/plugins/codescene/package.json index 4ec2a9ec4b..4c5be3949d 100644 --- a/plugins/codescene/package.json +++ b/plugins/codescene/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-codescene", - "version": "0.1.16-next.1", + "version": "0.1.16", "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 b607255110..6333a686f5 100644 --- a/plugins/config-schema/CHANGELOG.md +++ b/plugins/config-schema/CHANGELOG.md @@ -1,5 +1,18 @@ # @backstage/plugin-config-schema +## 0.1.44 + +### Patch Changes + +- 12a8c94eda8d: Add package repository and homepage metadata +- Updated dependencies + - @backstage/core-components@0.13.4 + - @backstage/core-plugin-api@1.5.3 + - @backstage/config@1.0.8 + - @backstage/errors@1.2.1 + - @backstage/theme@0.4.1 + - @backstage/types@1.1.0 + ## 0.1.44-next.1 ### Patch Changes diff --git a/plugins/config-schema/package.json b/plugins/config-schema/package.json index 2f8d233407..c3ffc236e6 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.44-next.1", + "version": "0.1.44", "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 687528e3fd..027d357687 100644 --- a/plugins/cost-insights/CHANGELOG.md +++ b/plugins/cost-insights/CHANGELOG.md @@ -1,5 +1,18 @@ # @backstage/plugin-cost-insights +## 0.12.10 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.4 + - @backstage/plugin-catalog-react@1.8.1 + - @backstage/core-plugin-api@1.5.3 + - @backstage/catalog-model@1.4.1 + - @backstage/config@1.0.8 + - @backstage/theme@0.4.1 + - @backstage/plugin-cost-insights-common@0.1.1 + ## 0.12.10-next.1 ### Patch Changes diff --git a/plugins/cost-insights/package.json b/plugins/cost-insights/package.json index e626e8e173..0c490bf645 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.10-next.1", + "version": "0.12.10", "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 d5488d6dbc..2cf41125db 100644 --- a/plugins/devtools-backend/CHANGELOG.md +++ b/plugins/devtools-backend/CHANGELOG.md @@ -1,5 +1,35 @@ # @backstage/plugin-devtools-backend +## 0.1.3 + +### Patch Changes + +- 629cbd194a87: Use `coreServices.rootConfig` instead of `coreService.config` +- 12a8c94eda8d: Add package repository and homepage metadata +- 2b4f77a4e900: Add DevTools configuration to enable dependency listing to be filtered with custom prefixes. For instance, in your `app-config.yaml`: + + ```yaml + devTools: + info: + packagePrefixes: + - @backstage/ + - @roadiehq/backstage- + - @spotify/backstage- + ``` + +- Updated dependencies + - @backstage/backend-common@0.19.2 + - @backstage/config-loader@1.4.0 + - @backstage/backend-plugin-api@0.6.0 + - @backstage/plugin-devtools-common@0.1.3 + - @backstage/plugin-auth-node@0.2.17 + - @backstage/plugin-permission-node@0.7.11 + - @backstage/cli-common@0.1.12 + - @backstage/config@1.0.8 + - @backstage/errors@1.2.1 + - @backstage/types@1.1.0 + - @backstage/plugin-permission-common@0.7.7 + ## 0.1.3-next.2 ### Patch Changes diff --git a/plugins/devtools-backend/package.json b/plugins/devtools-backend/package.json index 3b17a8ac7f..ceae4ff428 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.3-next.2", + "version": "0.1.3", "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 adf0300433..03453e28f8 100644 --- a/plugins/devtools-common/CHANGELOG.md +++ b/plugins/devtools-common/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-devtools-common +## 0.1.3 + +### Patch Changes + +- 12a8c94eda8d: Add package repository and homepage metadata +- Updated dependencies + - @backstage/types@1.1.0 + - @backstage/plugin-permission-common@0.7.7 + ## 0.1.3-next.0 ### Patch Changes diff --git a/plugins/devtools-common/package.json b/plugins/devtools-common/package.json index d098df0e23..26bc69dcaa 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.3-next.0", + "version": "0.1.3", "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 d87d21a886..ec0d9b862b 100644 --- a/plugins/devtools/CHANGELOG.md +++ b/plugins/devtools/CHANGELOG.md @@ -1,5 +1,19 @@ # @backstage/plugin-devtools +## 0.1.3 + +### Patch Changes + +- 48b6a04ad045: Fix readme typo +- Updated dependencies + - @backstage/plugin-devtools-common@0.1.3 + - @backstage/core-components@0.13.4 + - @backstage/core-plugin-api@1.5.3 + - @backstage/errors@1.2.1 + - @backstage/theme@0.4.1 + - @backstage/types@1.1.0 + - @backstage/plugin-permission-react@0.4.14 + ## 0.1.3-next.1 ### Patch Changes diff --git a/plugins/devtools/package.json b/plugins/devtools/package.json index a791233f17..fbac4d44b6 100644 --- a/plugins/devtools/package.json +++ b/plugins/devtools/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-devtools", - "version": "0.1.3-next.1", + "version": "0.1.3", "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 10f7e55f9f..00e20a1d33 100644 --- a/plugins/dynatrace/CHANGELOG.md +++ b/plugins/dynatrace/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-dynatrace +## 7.0.1 + +### Patch Changes + +- 12a8c94eda8d: Add package repository and homepage metadata +- Updated dependencies + - @backstage/core-components@0.13.4 + - @backstage/plugin-catalog-react@1.8.1 + - @backstage/core-plugin-api@1.5.3 + - @backstage/catalog-model@1.4.1 + - @backstage/theme@0.4.1 + ## 7.0.1-next.2 ### Patch Changes diff --git a/plugins/dynatrace/package.json b/plugins/dynatrace/package.json index 94b3716645..69ef692ee2 100644 --- a/plugins/dynatrace/package.json +++ b/plugins/dynatrace/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-dynatrace", - "version": "7.0.1-next.2", + "version": "7.0.1", "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 fd1db9e1d8..ce5d04ae38 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.6 + +### Patch Changes + +- 12a8c94eda8d: Add package repository and homepage metadata +- Updated dependencies + - @backstage/backend-common@0.19.2 + - @backstage/backend-plugin-api@0.6.0 + - @backstage/plugin-entity-feedback-common@0.1.2 + - @backstage/plugin-auth-node@0.2.17 + - @backstage/catalog-client@1.4.3 + - @backstage/catalog-model@1.4.1 + - @backstage/config@1.0.8 + ## 0.1.6-next.2 ### Patch Changes diff --git a/plugins/entity-feedback-backend/package.json b/plugins/entity-feedback-backend/package.json index 28cb9110a4..5cfcebc210 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.6-next.2", + "version": "0.1.6", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/entity-feedback-common/CHANGELOG.md b/plugins/entity-feedback-common/CHANGELOG.md index dd93a7ee36..1b1bee0c2a 100644 --- a/plugins/entity-feedback-common/CHANGELOG.md +++ b/plugins/entity-feedback-common/CHANGELOG.md @@ -1,5 +1,11 @@ # @backstage/plugin-entity-feedback-common +## 0.1.2 + +### Patch Changes + +- 12a8c94eda8d: Add package repository and homepage metadata + ## 0.1.2-next.0 ### Patch Changes diff --git a/plugins/entity-feedback-common/package.json b/plugins/entity-feedback-common/package.json index 776e33e198..865444bfaa 100644 --- a/plugins/entity-feedback-common/package.json +++ b/plugins/entity-feedback-common/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-entity-feedback-common", "description": "Common functionalities for the entity-feedback plugin", - "version": "0.1.2-next.0", + "version": "0.1.2", "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 8582353e5b..44d5d86e70 100644 --- a/plugins/entity-feedback/CHANGELOG.md +++ b/plugins/entity-feedback/CHANGELOG.md @@ -1,5 +1,19 @@ # @backstage/plugin-entity-feedback +## 0.2.4 + +### Patch Changes + +- 12a8c94eda8d: Add package repository and homepage metadata +- Updated dependencies + - @backstage/plugin-entity-feedback-common@0.1.2 + - @backstage/core-components@0.13.4 + - @backstage/plugin-catalog-react@1.8.1 + - @backstage/core-plugin-api@1.5.3 + - @backstage/catalog-model@1.4.1 + - @backstage/errors@1.2.1 + - @backstage/theme@0.4.1 + ## 0.2.4-next.2 ### Patch Changes diff --git a/plugins/entity-feedback/package.json b/plugins/entity-feedback/package.json index 4cbdc26a85..2353b4ebed 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.4-next.2", + "version": "0.2.4", "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 a2607bf96f..b961397236 100644 --- a/plugins/entity-validation/CHANGELOG.md +++ b/plugins/entity-validation/CHANGELOG.md @@ -1,5 +1,20 @@ # @backstage/plugin-entity-validation +## 0.1.6 + +### Patch Changes + +- 12a8c94eda8d: Add package repository and homepage metadata +- Updated dependencies + - @backstage/core-components@0.13.4 + - @backstage/plugin-catalog-react@1.8.1 + - @backstage/core-plugin-api@1.5.3 + - @backstage/catalog-client@1.4.3 + - @backstage/catalog-model@1.4.1 + - @backstage/errors@1.2.1 + - @backstage/theme@0.4.1 + - @backstage/plugin-catalog-common@1.0.15 + ## 0.1.6-next.2 ### Patch Changes diff --git a/plugins/entity-validation/package.json b/plugins/entity-validation/package.json index 75c82a0a9b..7501c99613 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.6-next.2", + "version": "0.1.6", "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 f961ceaa5c..096469ab72 100644 --- a/plugins/events-backend-module-aws-sqs/CHANGELOG.md +++ b/plugins/events-backend-module-aws-sqs/CHANGELOG.md @@ -1,5 +1,20 @@ # @backstage/plugin-events-backend-module-aws-sqs +## 0.2.3 + +### Patch Changes + +- 629cbd194a87: Use `coreServices.rootConfig` instead of `coreService.config` +- 12a8c94eda8d: Add package repository and homepage metadata +- 4b82382ed8c2: Fixed invalid configuration schema. The configuration schema may be more strict as a result. +- Updated dependencies + - @backstage/backend-common@0.19.2 + - @backstage/backend-plugin-api@0.6.0 + - @backstage/plugin-events-node@0.2.9 + - @backstage/backend-tasks@0.5.5 + - @backstage/config@1.0.8 + - @backstage/types@1.1.0 + ## 0.2.3-next.2 ### Patch Changes diff --git a/plugins/events-backend-module-aws-sqs/package.json b/plugins/events-backend-module-aws-sqs/package.json index 5017afbcf0..93b9b5c9f6 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.3-next.2", + "version": "0.2.3", "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 84cffef924..51ffe984b5 100644 --- a/plugins/events-backend-module-azure/CHANGELOG.md +++ b/plugins/events-backend-module-azure/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-events-backend-module-azure +## 0.1.10 + +### Patch Changes + +- 12a8c94eda8d: Add package repository and homepage metadata +- Updated dependencies + - @backstage/backend-plugin-api@0.6.0 + - @backstage/plugin-events-node@0.2.9 + ## 0.1.10-next.2 ### Patch Changes diff --git a/plugins/events-backend-module-azure/package.json b/plugins/events-backend-module-azure/package.json index ec6ef05036..7cd26276cf 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.10-next.2", + "version": "0.1.10", "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 79ab2a2e13..6dc7261819 100644 --- a/plugins/events-backend-module-bitbucket-cloud/CHANGELOG.md +++ b/plugins/events-backend-module-bitbucket-cloud/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-events-backend-module-bitbucket-cloud +## 0.1.10 + +### Patch Changes + +- 12a8c94eda8d: Add package repository and homepage metadata +- Updated dependencies + - @backstage/backend-plugin-api@0.6.0 + - @backstage/plugin-events-node@0.2.9 + ## 0.1.10-next.2 ### Patch Changes diff --git a/plugins/events-backend-module-bitbucket-cloud/package.json b/plugins/events-backend-module-bitbucket-cloud/package.json index 1dfac9149f..1fafc2d65c 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.10-next.2", + "version": "0.1.10", "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 a6ea0c9f8b..26f838d840 100644 --- a/plugins/events-backend-module-gerrit/CHANGELOG.md +++ b/plugins/events-backend-module-gerrit/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-events-backend-module-gerrit +## 0.1.10 + +### Patch Changes + +- 12a8c94eda8d: Add package repository and homepage metadata +- Updated dependencies + - @backstage/backend-plugin-api@0.6.0 + - @backstage/plugin-events-node@0.2.9 + ## 0.1.10-next.2 ### Patch Changes diff --git a/plugins/events-backend-module-gerrit/package.json b/plugins/events-backend-module-gerrit/package.json index d0d7baf10e..4a68964c6e 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.10-next.2", + "version": "0.1.10", "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 29894dd946..1b1674daf5 100644 --- a/plugins/events-backend-module-github/CHANGELOG.md +++ b/plugins/events-backend-module-github/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-events-backend-module-github +## 0.1.10 + +### Patch Changes + +- 629cbd194a87: Use `coreServices.rootConfig` instead of `coreService.config` +- 12a8c94eda8d: Add package repository and homepage metadata +- Updated dependencies + - @backstage/backend-plugin-api@0.6.0 + - @backstage/plugin-events-node@0.2.9 + - @backstage/config@1.0.8 + ## 0.1.10-next.2 ### Patch Changes diff --git a/plugins/events-backend-module-github/package.json b/plugins/events-backend-module-github/package.json index d76a72fbb3..bbfdbd452a 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.10-next.2", + "version": "0.1.10", "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 d3aac0d322..eeef12cf74 100644 --- a/plugins/events-backend-module-gitlab/CHANGELOG.md +++ b/plugins/events-backend-module-gitlab/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-events-backend-module-gitlab +## 0.1.10 + +### Patch Changes + +- 629cbd194a87: Use `coreServices.rootConfig` instead of `coreService.config` +- 12a8c94eda8d: Add package repository and homepage metadata +- Updated dependencies + - @backstage/backend-plugin-api@0.6.0 + - @backstage/plugin-events-node@0.2.9 + - @backstage/config@1.0.8 + ## 0.1.10-next.2 ### Patch Changes diff --git a/plugins/events-backend-module-gitlab/package.json b/plugins/events-backend-module-gitlab/package.json index f4fa7ed905..6b93ea8310 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.10-next.2", + "version": "0.1.10", "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 ba70f001a2..a1f9a6bda2 100644 --- a/plugins/events-backend-test-utils/CHANGELOG.md +++ b/plugins/events-backend-test-utils/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-events-backend-test-utils +## 0.1.10 + +### Patch Changes + +- 12a8c94eda8d: Add package repository and homepage metadata +- Updated dependencies + - @backstage/plugin-events-node@0.2.9 + ## 0.1.10-next.2 ### Patch Changes diff --git a/plugins/events-backend-test-utils/package.json b/plugins/events-backend-test-utils/package.json index 6597998504..b424129ec8 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.10-next.2", + "version": "0.1.10", "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 e022fe0acd..4456c0bf99 100644 --- a/plugins/events-backend/CHANGELOG.md +++ b/plugins/events-backend/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-events-backend +## 0.2.9 + +### Patch Changes + +- 629cbd194a87: Use `coreServices.rootConfig` instead of `coreService.config` +- 12a8c94eda8d: Add package repository and homepage metadata +- Updated dependencies + - @backstage/backend-common@0.19.2 + - @backstage/backend-plugin-api@0.6.0 + - @backstage/plugin-events-node@0.2.9 + - @backstage/config@1.0.8 + ## 0.2.9-next.2 ### Patch Changes diff --git a/plugins/events-backend/package.json b/plugins/events-backend/package.json index c1fe0e64fb..f214c729ee 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.9-next.2", + "version": "0.2.9", "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 b155a1bb4a..b875712724 100644 --- a/plugins/events-node/CHANGELOG.md +++ b/plugins/events-node/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-events-node +## 0.2.9 + +### Patch Changes + +- 12a8c94eda8d: Add package repository and homepage metadata +- Updated dependencies + - @backstage/backend-plugin-api@0.6.0 + ## 0.2.9-next.2 ### Patch Changes diff --git a/plugins/events-node/package.json b/plugins/events-node/package.json index 2fa55fabac..55646356fe 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.9-next.2", + "version": "0.2.9", "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 8057837b57..cfefe9b997 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.16 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.2 + - @backstage/backend-plugin-api@0.6.0 + - @backstage/plugin-auth-node@0.2.17 + - @backstage/config@1.0.8 + - @backstage/errors@1.2.1 + ## 1.0.16-next.2 ### Patch Changes diff --git a/plugins/example-todo-list-backend/package.json b/plugins/example-todo-list-backend/package.json index 4dddbfcbea..bb0f8af231 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.16-next.2", + "version": "1.0.16", "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 3c7372410c..f62fcaf029 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.16 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.4 + - @backstage/core-plugin-api@1.5.3 + - @backstage/theme@0.4.1 + ## 1.0.16-next.0 ### Patch Changes diff --git a/plugins/example-todo-list/package.json b/plugins/example-todo-list/package.json index da11b3cf24..a219d13df8 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.16-next.0", + "version": "1.0.16", "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 68092aca47..2ac5ef55f1 100644 --- a/plugins/explore-backend/CHANGELOG.md +++ b/plugins/explore-backend/CHANGELOG.md @@ -1,5 +1,19 @@ # @backstage/plugin-explore-backend +## 0.0.10 + +### Patch Changes + +- eda2a699f40d: Moved the config example from the "Tools as Code" section to the "Tools as Config" section of the README +- 12a8c94eda8d: Add package repository and homepage metadata +- Updated dependencies + - @backstage/plugin-search-backend-module-explore@0.1.4 + - @backstage/backend-common@0.19.2 + - @backstage/config@1.0.8 + - @backstage/types@1.1.0 + - @backstage/plugin-explore-common@0.0.1 + - @backstage/plugin-search-common@1.2.5 + ## 0.0.10-next.2 ### Patch Changes diff --git a/plugins/explore-backend/package.json b/plugins/explore-backend/package.json index f7b912f91c..a022a13a77 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.10-next.2", + "version": "0.0.10", "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 c757d877a2..65eedaedde 100644 --- a/plugins/explore/CHANGELOG.md +++ b/plugins/explore/CHANGELOG.md @@ -1,5 +1,23 @@ # @backstage/plugin-explore +## 0.4.7 + +### Patch Changes + +- 41a26248c91c: Support `material-ui` overrides in plugin-explore components +- 83467b0534ee: Don't put "?" in URL if no query parameters. +- Updated dependencies + - @backstage/core-components@0.13.4 + - @backstage/plugin-catalog-react@1.8.1 + - @backstage/core-plugin-api@1.5.3 + - @backstage/plugin-search-react@1.6.4 + - @backstage/plugin-explore-react@0.0.30 + - @backstage/catalog-model@1.4.1 + - @backstage/errors@1.2.1 + - @backstage/theme@0.4.1 + - @backstage/plugin-explore-common@0.0.1 + - @backstage/plugin-search-common@1.2.5 + ## 0.4.7-next.1 ### Patch Changes diff --git a/plugins/explore/package.json b/plugins/explore/package.json index c54e084802..fa06d3d1f7 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.7-next.1", + "version": "0.4.7", "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 c027052ff1..fdbdfc845c 100644 --- a/plugins/firehydrant/CHANGELOG.md +++ b/plugins/firehydrant/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-firehydrant +## 0.2.5 + +### Patch Changes + +- 12a8c94eda8d: Add package repository and homepage metadata +- Updated dependencies + - @backstage/core-components@0.13.4 + - @backstage/plugin-catalog-react@1.8.1 + - @backstage/core-plugin-api@1.5.3 + - @backstage/catalog-model@1.4.1 + - @backstage/theme@0.4.1 + ## 0.2.5-next.2 ### Patch Changes diff --git a/plugins/firehydrant/package.json b/plugins/firehydrant/package.json index 966bb3eebf..287d40238a 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.5-next.2", + "version": "0.2.5", "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 0e7d8e4211..dbf1f4ff76 100644 --- a/plugins/fossa/CHANGELOG.md +++ b/plugins/fossa/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-fossa +## 0.2.53 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.4 + - @backstage/plugin-catalog-react@1.8.1 + - @backstage/core-plugin-api@1.5.3 + - @backstage/catalog-model@1.4.1 + - @backstage/errors@1.2.1 + - @backstage/theme@0.4.1 + ## 0.2.53-next.1 ### Patch Changes diff --git a/plugins/fossa/package.json b/plugins/fossa/package.json index c69d8717c4..719658d33f 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.53-next.1", + "version": "0.2.53", "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 28e754125f..305c72a5ed 100644 --- a/plugins/gcalendar/CHANGELOG.md +++ b/plugins/gcalendar/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-gcalendar +## 0.3.17 + +### Patch Changes + +- 12a8c94eda8d: Add package repository and homepage metadata +- Updated dependencies + - @backstage/core-components@0.13.4 + - @backstage/core-plugin-api@1.5.3 + - @backstage/errors@1.2.1 + - @backstage/theme@0.4.1 + ## 0.3.17-next.1 ### Patch Changes diff --git a/plugins/gcalendar/package.json b/plugins/gcalendar/package.json index 9cbd9e6a36..9c9a8e6bbe 100644 --- a/plugins/gcalendar/package.json +++ b/plugins/gcalendar/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-gcalendar", - "version": "0.3.17-next.1", + "version": "0.3.17", "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 f6d7773c0f..e80b29da71 100644 --- a/plugins/gcp-projects/CHANGELOG.md +++ b/plugins/gcp-projects/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-gcp-projects +## 0.3.40 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.4 + - @backstage/core-plugin-api@1.5.3 + - @backstage/theme@0.4.1 + ## 0.3.40-next.0 ### Patch Changes diff --git a/plugins/gcp-projects/package.json b/plugins/gcp-projects/package.json index 6cc12dabed..7915db1dd0 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.40-next.0", + "version": "0.3.40", "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 50a949c70a..e88d1c1dfc 100644 --- a/plugins/git-release-manager/CHANGELOG.md +++ b/plugins/git-release-manager/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-git-release-manager +## 0.3.34 + +### Patch Changes + +- 12a8c94eda8d: Add package repository and homepage metadata +- Updated dependencies + - @backstage/integration@1.6.0 + - @backstage/core-components@0.13.4 + - @backstage/core-plugin-api@1.5.3 + - @backstage/theme@0.4.1 + ## 0.3.34-next.1 ### Patch Changes diff --git a/plugins/git-release-manager/package.json b/plugins/git-release-manager/package.json index 80d8adc301..1b2adfbe2f 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.34-next.1", + "version": "0.3.34", "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 a984f8fba0..3cc8915555 100644 --- a/plugins/github-actions/CHANGELOG.md +++ b/plugins/github-actions/CHANGELOG.md @@ -1,5 +1,18 @@ # @backstage/plugin-github-actions +## 0.6.2 + +### Patch Changes + +- Updated dependencies + - @backstage/integration-react@1.1.16 + - @backstage/integration@1.6.0 + - @backstage/core-components@0.13.4 + - @backstage/plugin-catalog-react@1.8.1 + - @backstage/core-plugin-api@1.5.3 + - @backstage/catalog-model@1.4.1 + - @backstage/theme@0.4.1 + ## 0.6.2-next.2 ### Patch Changes diff --git a/plugins/github-actions/package.json b/plugins/github-actions/package.json index 5f7e5fbeef..f951503e9e 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.2-next.2", + "version": "0.6.2", "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 b9e1ae1348..883cfadc16 100644 --- a/plugins/github-deployments/CHANGELOG.md +++ b/plugins/github-deployments/CHANGELOG.md @@ -1,5 +1,20 @@ # @backstage/plugin-github-deployments +## 0.1.52 + +### Patch Changes + +- 12a8c94eda8d: Add package repository and homepage metadata +- Updated dependencies + - @backstage/integration-react@1.1.16 + - @backstage/integration@1.6.0 + - @backstage/core-components@0.13.4 + - @backstage/plugin-catalog-react@1.8.1 + - @backstage/core-plugin-api@1.5.3 + - @backstage/catalog-model@1.4.1 + - @backstage/errors@1.2.1 + - @backstage/theme@0.4.1 + ## 0.1.52-next.2 ### Patch Changes diff --git a/plugins/github-deployments/package.json b/plugins/github-deployments/package.json index 341ce50000..05b85aaa60 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.52-next.2", + "version": "0.1.52", "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 6bb63aa17e..5ba0696629 100644 --- a/plugins/github-issues/CHANGELOG.md +++ b/plugins/github-issues/CHANGELOG.md @@ -1,5 +1,19 @@ # @backstage/plugin-github-issues +## 0.2.10 + +### Patch Changes + +- 12a8c94eda8d: Add package repository and homepage metadata +- Updated dependencies + - @backstage/integration@1.6.0 + - @backstage/core-components@0.13.4 + - @backstage/plugin-catalog-react@1.8.1 + - @backstage/core-plugin-api@1.5.3 + - @backstage/catalog-model@1.4.1 + - @backstage/errors@1.2.1 + - @backstage/theme@0.4.1 + ## 0.2.10-next.2 ### Patch Changes diff --git a/plugins/github-issues/package.json b/plugins/github-issues/package.json index 9e8bf5beaf..7cedc25632 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.10-next.2", + "version": "0.2.10", "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 b5ba25ef4a..1f630bd0fe 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.15 + +### Patch Changes + +- Updated dependencies + - @backstage/integration@1.6.0 + - @backstage/core-components@0.13.4 + - @backstage/plugin-catalog-react@1.8.1 + - @backstage/core-plugin-api@1.5.3 + - @backstage/catalog-model@1.4.1 + - @backstage/theme@0.4.1 + ## 0.1.15-next.1 ### Patch Changes diff --git a/plugins/github-pull-requests-board/package.json b/plugins/github-pull-requests-board/package.json index e0c17811a5..ae27d11e50 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.15-next.1", + "version": "0.1.15", "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 e816fa3553..63c6186b72 100644 --- a/plugins/gitops-profiles/CHANGELOG.md +++ b/plugins/gitops-profiles/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-gitops-profiles +## 0.3.39 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.4 + - @backstage/core-plugin-api@1.5.3 + - @backstage/config@1.0.8 + - @backstage/theme@0.4.1 + ## 0.3.39-next.0 ### Patch Changes diff --git a/plugins/gitops-profiles/package.json b/plugins/gitops-profiles/package.json index 6e265197d8..7fed1cf06a 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.39-next.0", + "version": "0.3.39", "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 92a790fc33..a38481a3b5 100644 --- a/plugins/gocd/CHANGELOG.md +++ b/plugins/gocd/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-gocd +## 0.1.27 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.4 + - @backstage/plugin-catalog-react@1.8.1 + - @backstage/core-plugin-api@1.5.3 + - @backstage/catalog-model@1.4.1 + - @backstage/errors@1.2.1 + - @backstage/theme@0.4.1 + ## 0.1.27-next.1 ### Patch Changes diff --git a/plugins/gocd/package.json b/plugins/gocd/package.json index 672f19ba9f..32e6ce1252 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.27-next.1", + "version": "0.1.27", "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 cf61708984..3c386084c9 100644 --- a/plugins/graphiql/CHANGELOG.md +++ b/plugins/graphiql/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-graphiql +## 0.2.53 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.4 + - @backstage/core-plugin-api@1.5.3 + - @backstage/theme@0.4.1 + ## 0.2.53-next.0 ### Patch Changes diff --git a/plugins/graphiql/package.json b/plugins/graphiql/package.json index c96a43576a..aacdb84d76 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.53-next.0", + "version": "0.2.53", "publishConfig": { "access": "public", "main": "dist/index.esm.js", diff --git a/plugins/graphql-backend/CHANGELOG.md b/plugins/graphql-backend/CHANGELOG.md index 63b5f4639a..493aaa81d5 100644 --- a/plugins/graphql-backend/CHANGELOG.md +++ b/plugins/graphql-backend/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-graphql-backend +## 0.1.38 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.2 + - @backstage/config@1.0.8 + - @backstage/plugin-catalog-graphql@0.3.22 + ## 0.1.38-next.2 ### Patch Changes diff --git a/plugins/graphql-backend/package.json b/plugins/graphql-backend/package.json index 675a6cc293..a51638c26c 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.38-next.2", + "version": "0.1.38", "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 ecb16e0aa0..1dc4545aaa 100644 --- a/plugins/graphql-voyager/CHANGELOG.md +++ b/plugins/graphql-voyager/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-graphql-voyager +## 0.1.6 + +### Patch Changes + +- bb1e1c2b26cc: Fix typo in install instructions. +- 12a8c94eda8d: Add package repository and homepage metadata +- Updated dependencies + - @backstage/core-components@0.13.4 + - @backstage/core-plugin-api@1.5.3 + - @backstage/theme@0.4.1 + ## 0.1.6-next.2 ### Patch Changes diff --git a/plugins/graphql-voyager/package.json b/plugins/graphql-voyager/package.json index bddebf7a3f..814ff95e33 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.6-next.2", + "version": "0.1.6", "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 6d328ceb6a..08aa6f29d9 100644 --- a/plugins/home-react/CHANGELOG.md +++ b/plugins/home-react/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-home-react +## 0.1.2 + +### Patch Changes + +- bf67dce73174: Make `title` optional when defining the `createCardExtension` +- Updated dependencies + - @backstage/core-components@0.13.4 + - @backstage/core-plugin-api@1.5.3 + ## 0.1.2-next.0 ### Patch Changes diff --git a/plugins/home-react/package.json b/plugins/home-react/package.json index c9bcc3ca61..182c5d77f8 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.2-next.0", + "version": "0.1.2", "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 4746842db6..52edbdfde0 100644 --- a/plugins/home/CHANGELOG.md +++ b/plugins/home/CHANGELOG.md @@ -1,5 +1,20 @@ # @backstage/plugin-home +## 0.5.5 + +### Patch Changes + +- a559ff68de7e: Now, user can provide a language (optional) as input to receive a greeting in that specific language. Example: `` +- 6743d3917a52: Make sure the widget name is never empty in the `AddWidgetDialog`. If the title was set to "", the entry would contain an empty string. Use the name as a fallback +- Updated dependencies + - @backstage/plugin-home-react@0.1.2 + - @backstage/core-components@0.13.4 + - @backstage/plugin-catalog-react@1.8.1 + - @backstage/core-plugin-api@1.5.3 + - @backstage/catalog-model@1.4.1 + - @backstage/config@1.0.8 + - @backstage/theme@0.4.1 + ## 0.5.5-next.1 ### Patch Changes diff --git a/plugins/home/package.json b/plugins/home/package.json index e717bd2c00..74a692011e 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.5-next.1", + "version": "0.5.5", "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 7369bddf34..3d436ea912 100644 --- a/plugins/ilert/CHANGELOG.md +++ b/plugins/ilert/CHANGELOG.md @@ -1,5 +1,18 @@ # @backstage/plugin-ilert +## 0.2.10 + +### Patch Changes + +- 12a8c94eda8d: Add package repository and homepage metadata +- Updated dependencies + - @backstage/core-components@0.13.4 + - @backstage/plugin-catalog-react@1.8.1 + - @backstage/core-plugin-api@1.5.3 + - @backstage/catalog-model@1.4.1 + - @backstage/errors@1.2.1 + - @backstage/theme@0.4.1 + ## 0.2.10-next.2 ### Patch Changes diff --git a/plugins/ilert/package.json b/plugins/ilert/package.json index da707874cb..c9a5320941 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.10-next.2", + "version": "0.2.10", "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 5dd8cf70cb..3e63cdd4a0 100644 --- a/plugins/jenkins-backend/CHANGELOG.md +++ b/plugins/jenkins-backend/CHANGELOG.md @@ -1,5 +1,22 @@ # @backstage/plugin-jenkins-backend +## 0.2.3 + +### Patch Changes + +- 12a8c94eda8d: Add package repository and homepage metadata +- 4b82382ed8c2: Fixed invalid configuration schema. The configuration schema may be more strict as a result. +- Updated dependencies + - @backstage/backend-common@0.19.2 + - @backstage/plugin-jenkins-common@0.1.18 + - @backstage/plugin-auth-node@0.2.17 + - @backstage/plugin-permission-node@0.7.11 + - @backstage/catalog-client@1.4.3 + - @backstage/catalog-model@1.4.1 + - @backstage/config@1.0.8 + - @backstage/errors@1.2.1 + - @backstage/plugin-permission-common@0.7.7 + ## 0.2.3-next.2 ### Patch Changes diff --git a/plugins/jenkins-backend/package.json b/plugins/jenkins-backend/package.json index f22f47b38c..796190fc5e 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.3-next.2", + "version": "0.2.3", "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 b7c7da027b..0f212abc14 100644 --- a/plugins/jenkins-common/CHANGELOG.md +++ b/plugins/jenkins-common/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-jenkins-common +## 0.1.18 + +### Patch Changes + +- 12a8c94eda8d: Add package repository and homepage metadata +- Updated dependencies + - @backstage/plugin-catalog-common@1.0.15 + - @backstage/plugin-permission-common@0.7.7 + ## 0.1.18-next.0 ### Patch Changes diff --git a/plugins/jenkins-common/package.json b/plugins/jenkins-common/package.json index 6d99a808bf..91b0fe3540 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.18-next.0", + "version": "0.1.18", "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 c108eaeb0b..92718880b5 100644 --- a/plugins/jenkins/CHANGELOG.md +++ b/plugins/jenkins/CHANGELOG.md @@ -1,5 +1,18 @@ # @backstage/plugin-jenkins +## 0.8.3 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-jenkins-common@0.1.18 + - @backstage/core-components@0.13.4 + - @backstage/plugin-catalog-react@1.8.1 + - @backstage/core-plugin-api@1.5.3 + - @backstage/catalog-model@1.4.1 + - @backstage/errors@1.2.1 + - @backstage/theme@0.4.1 + ## 0.8.3-next.2 ### Patch Changes diff --git a/plugins/jenkins/package.json b/plugins/jenkins/package.json index 8f0ec1aea2..ddc100d03e 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.3-next.2", + "version": "0.8.3", "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 5970704e19..dc3c754fba 100644 --- a/plugins/kafka-backend/CHANGELOG.md +++ b/plugins/kafka-backend/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-kafka-backend +## 0.2.41 + +### Patch Changes + +- 629cbd194a87: Use `coreServices.rootConfig` instead of `coreService.config` +- Updated dependencies + - @backstage/backend-common@0.19.2 + - @backstage/backend-plugin-api@0.6.0 + - @backstage/catalog-model@1.4.1 + - @backstage/config@1.0.8 + - @backstage/errors@1.2.1 + ## 0.2.41-next.2 ### Patch Changes diff --git a/plugins/kafka-backend/package.json b/plugins/kafka-backend/package.json index 0eab682023..fd2ad7659f 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.41-next.2", + "version": "0.2.41", "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 d04153c02b..b728968a93 100644 --- a/plugins/kafka/CHANGELOG.md +++ b/plugins/kafka/CHANGELOG.md @@ -1,5 +1,18 @@ # @backstage/plugin-kafka +## 0.3.21 + +### Patch Changes + +- 12a8c94eda8d: Add package repository and homepage metadata +- Updated dependencies + - @backstage/core-components@0.13.4 + - @backstage/plugin-catalog-react@1.8.1 + - @backstage/core-plugin-api@1.5.3 + - @backstage/catalog-model@1.4.1 + - @backstage/config@1.0.8 + - @backstage/theme@0.4.1 + ## 0.3.21-next.2 ### Patch Changes diff --git a/plugins/kafka/package.json b/plugins/kafka/package.json index 4c04878450..b2f8b6fe64 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.21-next.2", + "version": "0.3.21", "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 1c10e43c92..67a2e800aa 100644 --- a/plugins/kubernetes-backend/CHANGELOG.md +++ b/plugins/kubernetes-backend/CHANGELOG.md @@ -1,5 +1,25 @@ # @backstage/plugin-kubernetes-backend +## 0.11.3 + +### Patch Changes + +- 629cbd194a87: Use `coreServices.rootConfig` instead of `coreService.config` +- bbf4e9c894b5: Fixed a bug where the proxy was not rewriting WebSocket request paths properly. +- Updated dependencies + - @backstage/backend-common@0.19.2 + - @backstage/backend-plugin-api@0.6.0 + - @backstage/plugin-catalog-node@1.4.1 + - @backstage/plugin-auth-node@0.2.17 + - @backstage/plugin-permission-node@0.7.11 + - @backstage/integration-aws-node@0.1.5 + - @backstage/catalog-client@1.4.3 + - @backstage/catalog-model@1.4.1 + - @backstage/config@1.0.8 + - @backstage/errors@1.2.1 + - @backstage/plugin-kubernetes-common@0.6.5 + - @backstage/plugin-permission-common@0.7.7 + ## 0.11.3-next.2 ### Patch Changes diff --git a/plugins/kubernetes-backend/package.json b/plugins/kubernetes-backend/package.json index ab24437243..33b2b4fe28 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.3-next.2", + "version": "0.11.3", "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 55d917ea1c..fc1a60d305 100644 --- a/plugins/kubernetes/CHANGELOG.md +++ b/plugins/kubernetes/CHANGELOG.md @@ -1,5 +1,27 @@ # @backstage/plugin-kubernetes +## 0.10.0 + +### Minor Changes + +- 4b6d41737aad: **BREAKING**: Fixed typos in exported module attributes. Many users may see no changes, but if you have customized the plugin output, you may have to rename the following: + + - Component attribute: `` to `` + - Interface attribute: `DetectedError.occuranceCount` to `DetectedError.occurrenceCount`. + +### Patch Changes + +- 562e34d2693f: Fix container memory limits +- Updated dependencies + - @backstage/core-components@0.13.4 + - @backstage/plugin-catalog-react@1.8.1 + - @backstage/core-plugin-api@1.5.3 + - @backstage/catalog-model@1.4.1 + - @backstage/config@1.0.8 + - @backstage/errors@1.2.1 + - @backstage/theme@0.4.1 + - @backstage/plugin-kubernetes-common@0.6.5 + ## 0.9.4-next.1 ### Patch Changes diff --git a/plugins/kubernetes/package.json b/plugins/kubernetes/package.json index ed063900ba..76d6452e0c 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.4-next.1", + "version": "0.10.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 9892e72566..75bb0168a8 100644 --- a/plugins/lighthouse-backend/CHANGELOG.md +++ b/plugins/lighthouse-backend/CHANGELOG.md @@ -1,5 +1,21 @@ # @backstage/plugin-lighthouse-backend +## 0.2.4 + +### Patch Changes + +- 629cbd194a87: Use `coreServices.rootConfig` instead of `coreService.config` +- Updated dependencies + - @backstage/backend-common@0.19.2 + - @backstage/backend-plugin-api@0.6.0 + - @backstage/plugin-catalog-node@1.4.1 + - @backstage/backend-tasks@0.5.5 + - @backstage/catalog-client@1.4.3 + - @backstage/catalog-model@1.4.1 + - @backstage/config@1.0.8 + - @backstage/types@1.1.0 + - @backstage/plugin-lighthouse-common@0.1.2 + ## 0.2.4-next.2 ### Patch Changes diff --git a/plugins/lighthouse-backend/package.json b/plugins/lighthouse-backend/package.json index 8811164592..603b3dbac0 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.4-next.2", + "version": "0.2.4", "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 ae5103502a..3c638bc89f 100644 --- a/plugins/lighthouse/CHANGELOG.md +++ b/plugins/lighthouse/CHANGELOG.md @@ -1,5 +1,18 @@ # @backstage/plugin-lighthouse +## 0.4.6 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.4 + - @backstage/plugin-catalog-react@1.8.1 + - @backstage/core-plugin-api@1.5.3 + - @backstage/catalog-model@1.4.1 + - @backstage/config@1.0.8 + - @backstage/theme@0.4.1 + - @backstage/plugin-lighthouse-common@0.1.2 + ## 0.4.6-next.1 ### Patch Changes diff --git a/plugins/lighthouse/package.json b/plugins/lighthouse/package.json index 1cdb8f84da..990e789613 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.6-next.1", + "version": "0.4.6", "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 ff16c53da5..9af630bf64 100644 --- a/plugins/linguist-backend/CHANGELOG.md +++ b/plugins/linguist-backend/CHANGELOG.md @@ -1,5 +1,29 @@ # @backstage/plugin-linguist-backend +## 0.4.0 + +### Minor Changes + +- d440f1dd0e72: Adds a processor to the linguist backend which can automatically add language tags to entities +- 0896d85d5ab5: **BREAKING**: Removed the alpha export plugin options from exported `linguistPlugin()` (used by the new backend system) in favour of static config. + +### Patch Changes + +- 12a8c94eda8d: Add package repository and homepage metadata +- ca5e591cb86a: Fixed bug in LinguistBackendClient.ts file where if the linguistJsOptions is specified and sent over to the linguist-js package it would get changed (another attribute would be added) causing future entities of the batch to fail with an error +- Updated dependencies + - @backstage/backend-common@0.19.2 + - @backstage/backend-plugin-api@0.6.0 + - @backstage/plugin-linguist-common@0.1.1 + - @backstage/plugin-catalog-node@1.4.1 + - @backstage/plugin-auth-node@0.2.17 + - @backstage/backend-tasks@0.5.5 + - @backstage/catalog-client@1.4.3 + - @backstage/catalog-model@1.4.1 + - @backstage/config@1.0.8 + - @backstage/errors@1.2.1 + - @backstage/types@1.1.0 + ## 0.4.0-next.2 ### Minor Changes diff --git a/plugins/linguist-backend/package.json b/plugins/linguist-backend/package.json index 0cdd8b12c5..618e548195 100644 --- a/plugins/linguist-backend/package.json +++ b/plugins/linguist-backend/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-linguist-backend", - "version": "0.4.0-next.2", + "version": "0.4.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/linguist-common/CHANGELOG.md b/plugins/linguist-common/CHANGELOG.md index 920c5c533b..a4775c1b98 100644 --- a/plugins/linguist-common/CHANGELOG.md +++ b/plugins/linguist-common/CHANGELOG.md @@ -1,5 +1,12 @@ # @backstage/plugin-linguist-common +## 0.1.1 + +### Patch Changes + +- 12a8c94eda8d: Add package repository and homepage metadata +- d440f1dd0e72: Exported new LanguageType type alias + ## 0.1.1-next.1 ### Patch Changes diff --git a/plugins/linguist-common/package.json b/plugins/linguist-common/package.json index 601146457e..c197f104ea 100644 --- a/plugins/linguist-common/package.json +++ b/plugins/linguist-common/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-linguist-common", "description": "Common functionalities for the linguist plugin", - "version": "0.1.1-next.1", + "version": "0.1.1", "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 3b515a2dda..55c9cdcedb 100644 --- a/plugins/linguist/CHANGELOG.md +++ b/plugins/linguist/CHANGELOG.md @@ -1,5 +1,18 @@ # @backstage/plugin-linguist +## 0.1.6 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-linguist-common@0.1.1 + - @backstage/core-components@0.13.4 + - @backstage/plugin-catalog-react@1.8.1 + - @backstage/core-plugin-api@1.5.3 + - @backstage/catalog-model@1.4.1 + - @backstage/errors@1.2.1 + - @backstage/theme@0.4.1 + ## 0.1.6-next.2 ### Patch Changes diff --git a/plugins/linguist/package.json b/plugins/linguist/package.json index eadbfd7c43..45a24fcd24 100644 --- a/plugins/linguist/package.json +++ b/plugins/linguist/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-linguist", - "version": "0.1.6-next.2", + "version": "0.1.6", "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 0cb4271d67..ae8ec5ea3d 100644 --- a/plugins/microsoft-calendar/CHANGELOG.md +++ b/plugins/microsoft-calendar/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-microsoft-calendar +## 0.1.6 + +### Patch Changes + +- 12a8c94eda8d: Add package repository and homepage metadata +- eea2922e749a: README update - example of apiRef definition and fixed component name +- Updated dependencies + - @backstage/core-components@0.13.4 + - @backstage/core-plugin-api@1.5.3 + - @backstage/errors@1.2.1 + - @backstage/theme@0.4.1 + ## 0.1.6-next.1 ### Patch Changes diff --git a/plugins/microsoft-calendar/package.json b/plugins/microsoft-calendar/package.json index 84e307ac2b..5003f887c1 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.6-next.1", + "version": "0.1.6", "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 6a43d80cc2..cc21a7d6b7 100644 --- a/plugins/newrelic-dashboard/CHANGELOG.md +++ b/plugins/newrelic-dashboard/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-newrelic-dashboard +## 0.2.14 + +### Patch Changes + +- 12a8c94eda8d: Add package repository and homepage metadata +- Updated dependencies + - @backstage/core-components@0.13.4 + - @backstage/plugin-catalog-react@1.8.1 + - @backstage/core-plugin-api@1.5.3 + - @backstage/catalog-model@1.4.1 + - @backstage/errors@1.2.1 + ## 0.2.14-next.2 ### Patch Changes diff --git a/plugins/newrelic-dashboard/package.json b/plugins/newrelic-dashboard/package.json index e5c9f53b10..ba12a51f71 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.14-next.2", + "version": "0.2.14", "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 db1fad33e4..4810cb41fb 100644 --- a/plugins/newrelic/CHANGELOG.md +++ b/plugins/newrelic/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-newrelic +## 0.3.39 + +### Patch Changes + +- 2167b7eab09b: The newrelic plugin now supports pagination when retrieving results from newrelic. It will no longer truncate results. To see all applications, the link header will need to be allowed through the proxy (see the newrelic plugin readme). +- Updated dependencies + - @backstage/core-components@0.13.4 + - @backstage/core-plugin-api@1.5.3 + - @backstage/theme@0.4.1 + ## 0.3.39-next.0 ### Patch Changes diff --git a/plugins/newrelic/package.json b/plugins/newrelic/package.json index c70a06dee8..7e49f1220b 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.39-next.0", + "version": "0.3.39", "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 399d250a1f..235721a587 100644 --- a/plugins/nomad-backend/CHANGELOG.md +++ b/plugins/nomad-backend/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-nomad-backend +## 0.1.2 + +### Patch Changes + +- 12a8c94eda8d: Add package repository and homepage metadata +- Updated dependencies + - @backstage/backend-common@0.19.2 + - @backstage/config@1.0.8 + - @backstage/errors@1.2.1 + ## 0.1.2-next.2 ### Patch Changes diff --git a/plugins/nomad-backend/package.json b/plugins/nomad-backend/package.json index cd987e3df8..d1f3d4953e 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.2-next.2", + "version": "0.1.2", "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 f22e3fe1a5..951dc10174 100644 --- a/plugins/nomad/CHANGELOG.md +++ b/plugins/nomad/CHANGELOG.md @@ -1,5 +1,18 @@ # @backstage/plugin-nomad +## 0.1.2 + +### Patch Changes + +- 12a8c94eda8d: Add package repository and homepage metadata +- Updated dependencies + - @backstage/core-components@0.13.4 + - @backstage/plugin-catalog-react@1.8.1 + - @backstage/core-plugin-api@1.5.3 + - @backstage/catalog-model@1.4.1 + - @backstage/config@1.0.8 + - @backstage/theme@0.4.1 + ## 0.1.2-next.2 ### Patch Changes diff --git a/plugins/nomad/package.json b/plugins/nomad/package.json index 6b8c6211ae..68bad74c0e 100644 --- a/plugins/nomad/package.json +++ b/plugins/nomad/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-nomad", - "version": "0.1.2-next.2", + "version": "0.1.2", "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 1921f102c8..eba4b64eda 100644 --- a/plugins/octopus-deploy/CHANGELOG.md +++ b/plugins/octopus-deploy/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-octopus-deploy +## 0.2.3 + +### Patch Changes + +- 12a8c94eda8d: Add package repository and homepage metadata +- Updated dependencies + - @backstage/core-components@0.13.4 + - @backstage/plugin-catalog-react@1.8.1 + - @backstage/core-plugin-api@1.5.3 + - @backstage/catalog-model@1.4.1 + - @backstage/theme@0.4.1 + ## 0.2.3-next.2 ### Patch Changes diff --git a/plugins/octopus-deploy/package.json b/plugins/octopus-deploy/package.json index ff54b6b8b0..a715570fd0 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.3-next.2", + "version": "0.2.3", "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 0daf3bcd0d..fc89f7aa33 100644 --- a/plugins/org-react/CHANGELOG.md +++ b/plugins/org-react/CHANGELOG.md @@ -1,5 +1,18 @@ # @backstage/plugin-org-react +## 0.1.10 + +### Patch Changes + +- 12a8c94eda8d: Add package repository and homepage metadata +- Updated dependencies + - @backstage/core-components@0.13.4 + - @backstage/plugin-catalog-react@1.8.1 + - @backstage/core-plugin-api@1.5.3 + - @backstage/catalog-client@1.4.3 + - @backstage/catalog-model@1.4.1 + - @backstage/theme@0.4.1 + ## 0.1.10-next.2 ### Patch Changes diff --git a/plugins/org-react/package.json b/plugins/org-react/package.json index ab48b5b7e6..ce49dd71d0 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.10-next.2", + "version": "0.1.10", "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 fdaf76aebd..79dfedbd3d 100644 --- a/plugins/org/CHANGELOG.md +++ b/plugins/org/CHANGELOG.md @@ -1,5 +1,18 @@ # @backstage/plugin-org +## 0.6.11 + +### Patch Changes + +- 50331203e2a2: Fixed bug in MembersListCard component where the url for the members was static which was breaking the component when catalog route was changed +- 12a8c94eda8d: Add package repository and homepage metadata +- Updated dependencies + - @backstage/core-components@0.13.4 + - @backstage/plugin-catalog-react@1.8.1 + - @backstage/core-plugin-api@1.5.3 + - @backstage/catalog-model@1.4.1 + - @backstage/theme@0.4.1 + ## 0.6.11-next.2 ### Patch Changes diff --git a/plugins/org/package.json b/plugins/org/package.json index f8d976a3a0..48d53ca521 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.11-next.2", + "version": "0.6.11", "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 09add705bb..adc01d7b32 100644 --- a/plugins/pagerduty/CHANGELOG.md +++ b/plugins/pagerduty/CHANGELOG.md @@ -1,5 +1,19 @@ # @backstage/plugin-pagerduty +## 0.6.2 + +### Patch Changes + +- 5003fc966741: Add new `disableChangeEvents` prop to `EntityPagerDutyCard` to hide the Change Events tab and disable fetching of change events for the PagerDuty service. +- Updated dependencies + - @backstage/plugin-home-react@0.1.2 + - @backstage/core-components@0.13.4 + - @backstage/plugin-catalog-react@1.8.1 + - @backstage/core-plugin-api@1.5.3 + - @backstage/catalog-model@1.4.1 + - @backstage/errors@1.2.1 + - @backstage/theme@0.4.1 + ## 0.6.2-next.1 ### Patch Changes diff --git a/plugins/pagerduty/package.json b/plugins/pagerduty/package.json index 1ced106c06..e89f8715f4 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.2-next.1", + "version": "0.6.2", "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 1cfe50033f..5f80406474 100644 --- a/plugins/periskop-backend/CHANGELOG.md +++ b/plugins/periskop-backend/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-periskop-backend +## 0.1.19 + +### Patch Changes + +- 629cbd194a87: Use `coreServices.rootConfig` instead of `coreService.config` +- 12a8c94eda8d: Add package repository and homepage metadata +- Updated dependencies + - @backstage/backend-common@0.19.2 + - @backstage/backend-plugin-api@0.6.0 + - @backstage/config@1.0.8 + ## 0.1.19-next.2 ### Patch Changes diff --git a/plugins/periskop-backend/package.json b/plugins/periskop-backend/package.json index 70e64188dd..bd828ed9b8 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.19-next.2", + "version": "0.1.19", "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 fe031696ed..6bf38267f7 100644 --- a/plugins/periskop/CHANGELOG.md +++ b/plugins/periskop/CHANGELOG.md @@ -1,5 +1,18 @@ # @backstage/plugin-periskop +## 0.1.19 + +### Patch Changes + +- 12a8c94eda8d: Add package repository and homepage metadata +- Updated dependencies + - @backstage/core-components@0.13.4 + - @backstage/plugin-catalog-react@1.8.1 + - @backstage/core-plugin-api@1.5.3 + - @backstage/catalog-model@1.4.1 + - @backstage/errors@1.2.1 + - @backstage/theme@0.4.1 + ## 0.1.19-next.2 ### Patch Changes diff --git a/plugins/periskop/package.json b/plugins/periskop/package.json index 4e5d87dfeb..7f044bc15f 100644 --- a/plugins/periskop/package.json +++ b/plugins/periskop/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-periskop", - "version": "0.1.19-next.2", + "version": "0.1.19", "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 085dbfb074..848a6ffb91 100644 --- a/plugins/permission-backend/CHANGELOG.md +++ b/plugins/permission-backend/CHANGELOG.md @@ -1,5 +1,21 @@ # @backstage/plugin-permission-backend +## 0.5.23 + +### Patch Changes + +- 629cbd194a87: Use `coreServices.rootConfig` instead of `coreService.config` +- 12a8c94eda8d: Add package repository and homepage metadata +- 0d6ddc62d8da: Refactor backend plugin creation parameter from callback to object. +- Updated dependencies + - @backstage/backend-common@0.19.2 + - @backstage/backend-plugin-api@0.6.0 + - @backstage/plugin-auth-node@0.2.17 + - @backstage/plugin-permission-node@0.7.11 + - @backstage/config@1.0.8 + - @backstage/errors@1.2.1 + - @backstage/plugin-permission-common@0.7.7 + ## 0.5.23-next.2 ### Patch Changes diff --git a/plugins/permission-backend/package.json b/plugins/permission-backend/package.json index 7e4e087927..0ab2eeee47 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.23-next.2", + "version": "0.5.23", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/permission-node/CHANGELOG.md b/plugins/permission-node/CHANGELOG.md index 1fbc7fdabf..7126954413 100644 --- a/plugins/permission-node/CHANGELOG.md +++ b/plugins/permission-node/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-permission-node +## 0.7.11 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.2 + - @backstage/backend-plugin-api@0.6.0 + - @backstage/plugin-auth-node@0.2.17 + - @backstage/config@1.0.8 + - @backstage/errors@1.2.1 + - @backstage/plugin-permission-common@0.7.7 + ## 0.7.11-next.2 ### Patch Changes diff --git a/plugins/permission-node/package.json b/plugins/permission-node/package.json index 92416abb55..cfccd9678d 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.11-next.2", + "version": "0.7.11", "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 0f807e1592..980d957538 100644 --- a/plugins/playlist-backend/CHANGELOG.md +++ b/plugins/playlist-backend/CHANGELOG.md @@ -1,5 +1,21 @@ # @backstage/plugin-playlist-backend +## 0.3.4 + +### Patch Changes + +- 12a8c94eda8d: Add package repository and homepage metadata +- Updated dependencies + - @backstage/backend-common@0.19.2 + - @backstage/plugin-playlist-common@0.1.9 + - @backstage/plugin-auth-node@0.2.17 + - @backstage/plugin-permission-node@0.7.11 + - @backstage/catalog-client@1.4.3 + - @backstage/catalog-model@1.4.1 + - @backstage/config@1.0.8 + - @backstage/errors@1.2.1 + - @backstage/plugin-permission-common@0.7.7 + ## 0.3.4-next.2 ### Patch Changes diff --git a/plugins/playlist-backend/package.json b/plugins/playlist-backend/package.json index 6e4e550f5b..5a24b7cd6d 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.4-next.2", + "version": "0.3.4", "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 ed624302c5..de4601c537 100644 --- a/plugins/playlist-common/CHANGELOG.md +++ b/plugins/playlist-common/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-playlist-common +## 0.1.9 + +### Patch Changes + +- 12a8c94eda8d: Add package repository and homepage metadata +- Updated dependencies + - @backstage/plugin-permission-common@0.7.7 + ## 0.1.9-next.0 ### Patch Changes diff --git a/plugins/playlist-common/package.json b/plugins/playlist-common/package.json index 2ac82b4852..43c65bbab3 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.9-next.0", + "version": "0.1.9", "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 ed4956ccda..09d4dd8560 100644 --- a/plugins/playlist/CHANGELOG.md +++ b/plugins/playlist/CHANGELOG.md @@ -1,5 +1,25 @@ # @backstage/plugin-playlist +## 0.1.13 + +### Patch Changes + +- d1e0588324d1: Displaying an alert popup each time the Playlist is created or deleted +- 12a8c94eda8d: Add package repository and homepage metadata +- 8a997547f02a: Adding alert popup whenever user delete the entities from playlist entity table +- Updated dependencies + - @backstage/plugin-playlist-common@0.1.9 + - @backstage/core-components@0.13.4 + - @backstage/plugin-catalog-react@1.8.1 + - @backstage/core-plugin-api@1.5.3 + - @backstage/plugin-search-react@1.6.4 + - @backstage/catalog-model@1.4.1 + - @backstage/errors@1.2.1 + - @backstage/theme@0.4.1 + - @backstage/plugin-catalog-common@1.0.15 + - @backstage/plugin-permission-common@0.7.7 + - @backstage/plugin-permission-react@0.4.14 + ## 0.1.13-next.2 ### Patch Changes diff --git a/plugins/playlist/package.json b/plugins/playlist/package.json index e2fa6468cb..574aa712ab 100644 --- a/plugins/playlist/package.json +++ b/plugins/playlist/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-playlist", - "version": "0.1.13-next.2", + "version": "0.1.13", "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 d03bd2b237..e9dd983ee4 100644 --- a/plugins/proxy-backend/CHANGELOG.md +++ b/plugins/proxy-backend/CHANGELOG.md @@ -1,5 +1,20 @@ # @backstage/plugin-proxy-backend +## 0.3.0 + +### Minor Changes + +- 7daf65bfcfa1: Defining proxy endpoints directly under the root `proxy` configuration key is deprecated. Endpoints should now be declared under `proxy.endpoints` instead. The `skipInvalidProxies` and `reviveConsumedRequestBodies` can now also be configured through static configuration. + +### Patch Changes + +- 629cbd194a87: Use `coreServices.rootConfig` instead of `coreService.config` +- 4b82382ed8c2: Fixed invalid configuration schema. The configuration schema may be more strict as a result. +- Updated dependencies + - @backstage/backend-common@0.19.2 + - @backstage/backend-plugin-api@0.6.0 + - @backstage/config@1.0.8 + ## 0.3.0-next.2 ### Minor Changes diff --git a/plugins/proxy-backend/package.json b/plugins/proxy-backend/package.json index eb413e472c..b710d4d47d 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.3.0-next.2", + "version": "0.3.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 5e84652c40..7253466e95 100644 --- a/plugins/puppetdb/CHANGELOG.md +++ b/plugins/puppetdb/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-puppetdb +## 0.1.4 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.4 + - @backstage/plugin-catalog-react@1.8.1 + - @backstage/core-plugin-api@1.5.3 + - @backstage/catalog-model@1.4.1 + - @backstage/errors@1.2.1 + - @backstage/theme@0.4.1 + ## 0.1.4-next.1 ### Patch Changes diff --git a/plugins/puppetdb/package.json b/plugins/puppetdb/package.json index d7c7209744..5973e91ee5 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.4-next.1", + "version": "0.1.4", "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 5b45b7806f..c90db1c135 100644 --- a/plugins/rollbar-backend/CHANGELOG.md +++ b/plugins/rollbar-backend/CHANGELOG.md @@ -1,5 +1,13 @@ # @backstage/plugin-rollbar-backend +## 0.1.45 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.2 + - @backstage/config@1.0.8 + ## 0.1.45-next.2 ### Patch Changes diff --git a/plugins/rollbar-backend/package.json b/plugins/rollbar-backend/package.json index 702c90d176..cdd3432a1f 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.45-next.2", + "version": "0.1.45", "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 06c1cd8ef5..c8664e3c1e 100644 --- a/plugins/rollbar/CHANGELOG.md +++ b/plugins/rollbar/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-rollbar +## 0.4.21 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.4 + - @backstage/plugin-catalog-react@1.8.1 + - @backstage/core-plugin-api@1.5.3 + - @backstage/catalog-model@1.4.1 + - @backstage/theme@0.4.1 + ## 0.4.21-next.1 ### Patch Changes diff --git a/plugins/rollbar/package.json b/plugins/rollbar/package.json index db73661f59..7b2c5ce5bb 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.21-next.1", + "version": "0.4.21", "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 09d7eb149f..3d77b220e1 100644 --- a/plugins/scaffolder-backend-module-confluence-to-markdown/CHANGELOG.md +++ b/plugins/scaffolder-backend-module-confluence-to-markdown/CHANGELOG.md @@ -1,5 +1,21 @@ # @backstage/plugin-scaffolder-backend-module-confluence-to-markdown +## 0.2.1 + +### Patch Changes + +- 0a9b3b14e904: Added example for the `confluence:transform:markdown` that will show in the installed actions list +- 12a8c94eda8d: Add package repository and homepage metadata +- 0d347efc8f18: Use `fetchContents` directly instead of a `fetchPlainAction` +- c186c631b429: Import helpers from the node package instead of the backend package +- Updated dependencies + - @backstage/backend-common@0.19.2 + - @backstage/plugin-scaffolder-node@0.2.0 + - @backstage/integration@1.6.0 + - @backstage/config@1.0.8 + - @backstage/errors@1.2.1 + - @backstage/types@1.1.0 + ## 0.2.1-next.2 ### 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 e51ca9eeb8..1f93176163 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.2.1-next.2", + "version": "0.2.1", "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 665f08bd8b..0c207a7d93 100644 --- a/plugins/scaffolder-backend-module-cookiecutter/CHANGELOG.md +++ b/plugins/scaffolder-backend-module-cookiecutter/CHANGELOG.md @@ -1,5 +1,19 @@ # @backstage/plugin-scaffolder-backend-module-cookiecutter +## 0.2.24 + +### Patch Changes + +- 12a8c94eda8d: Add package repository and homepage metadata +- c186c631b429: Import helpers from the node package instead of the backend package +- Updated dependencies + - @backstage/backend-common@0.19.2 + - @backstage/plugin-scaffolder-node@0.2.0 + - @backstage/integration@1.6.0 + - @backstage/config@1.0.8 + - @backstage/errors@1.2.1 + - @backstage/types@1.1.0 + ## 0.2.24-next.2 ### Patch Changes diff --git a/plugins/scaffolder-backend-module-cookiecutter/package.json b/plugins/scaffolder-backend-module-cookiecutter/package.json index c995cdc3f4..6283e20a78 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.24-next.2", + "version": "0.2.24", "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 bb47bb5ad0..ba75fd998f 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.3 + +### Patch Changes + +- Updated dependencies + - @backstage/plugin-scaffolder-node@0.2.0 + - @backstage/integration@1.6.0 + - @backstage/config@1.0.8 + - @backstage/errors@1.2.1 + ## 0.2.3-next.2 ### Patch Changes diff --git a/plugins/scaffolder-backend-module-gitlab/package.json b/plugins/scaffolder-backend-module-gitlab/package.json index 5a540e7094..e1f9a2fa2a 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.3-next.2", + "version": "0.2.3", "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 eea495e84e..97cb1b9dec 100644 --- a/plugins/scaffolder-backend-module-rails/CHANGELOG.md +++ b/plugins/scaffolder-backend-module-rails/CHANGELOG.md @@ -1,5 +1,19 @@ # @backstage/plugin-scaffolder-backend-module-rails +## 0.4.17 + +### Patch Changes + +- 12a8c94eda8d: Add package repository and homepage metadata +- c186c631b429: Import helpers from the node package instead of the backend package +- Updated dependencies + - @backstage/backend-common@0.19.2 + - @backstage/plugin-scaffolder-node@0.2.0 + - @backstage/integration@1.6.0 + - @backstage/config@1.0.8 + - @backstage/errors@1.2.1 + - @backstage/types@1.1.0 + ## 0.4.17-next.2 ### Patch Changes diff --git a/plugins/scaffolder-backend-module-rails/package.json b/plugins/scaffolder-backend-module-rails/package.json index 7d44215e18..c6feb27fef 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.17-next.2", + "version": "0.4.17", "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 d414f1cf58..f252b34761 100644 --- a/plugins/scaffolder-backend-module-sentry/CHANGELOG.md +++ b/plugins/scaffolder-backend-module-sentry/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-scaffolder-backend-module-sentry +## 0.1.8 + +### Patch Changes + +- 12a8c94eda8d: Add package repository and homepage metadata +- Updated dependencies + - @backstage/plugin-scaffolder-node@0.2.0 + - @backstage/config@1.0.8 + - @backstage/errors@1.2.1 + ## 0.1.8-next.2 ### Patch Changes diff --git a/plugins/scaffolder-backend-module-sentry/package.json b/plugins/scaffolder-backend-module-sentry/package.json index 222c7fd484..6114aa3088 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.8-next.2", + "version": "0.1.8", "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 284494c3c8..b188a8bdf0 100644 --- a/plugins/scaffolder-backend-module-yeoman/CHANGELOG.md +++ b/plugins/scaffolder-backend-module-yeoman/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-scaffolder-backend-module-yeoman +## 0.2.21 + +### Patch Changes + +- 12a8c94eda8d: Add package repository and homepage metadata +- Updated dependencies + - @backstage/plugin-scaffolder-node@0.2.0 + - @backstage/config@1.0.8 + - @backstage/types@1.1.0 + ## 0.2.21-next.2 ### Patch Changes diff --git a/plugins/scaffolder-backend-module-yeoman/package.json b/plugins/scaffolder-backend-module-yeoman/package.json index 5b4ce071f6..9319c8001f 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.21-next.2", + "version": "0.2.21", "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 a5df5d6138..67827a6384 100644 --- a/plugins/scaffolder-backend/CHANGELOG.md +++ b/plugins/scaffolder-backend/CHANGELOG.md @@ -1,5 +1,54 @@ # @backstage/plugin-scaffolder-backend +## 1.16.0 + +### Minor Changes + +- e514aac3eac0: Introduce `each` property on action steps, allowing them to be ran repeatedly. + +### Patch Changes + +- 629cbd194a87: Use `coreServices.rootConfig` instead of `coreService.config` +- 349611126ae2: Removed the options from the alpha `scaffolderPlugin` export. To extend the scaffolder plugin you instead now use the available extension points, `scaffolderActionsExtensionPoint`, `scaffolderTaskBrokerExtensionPoint`, and `scaffolderTemplatingExtensionPoint`. +- 33c76caef72a: Added examples for the `fs:delete` and `fs:rename` actions +- e07a4914f621: Deprecated the following type exports, which have been moved to `@backstage/plugin-scaffolder-node` instead: + + - `TemplateFilter` + - `TemplateGlobal` + - `TaskStatus` + - `TaskCompletionState` + - `SerializedTask` + - `TaskEventType` + - `SerializedTaskEvent` + - `TaskBrokerDispatchResult` + - `TaskBrokerDispatchOptions` + - `TaskContext` + - `TaskBroker` + +- 0b1d775be05b: Adds examples to a few scaffolder actions. +- 88bc6e27a213: The `concurrentTasksLimit` option can now be configured via static configuration as well. Setting it to 0 will now also disable the task worker. +- 0f873325068d: Add examples for `github:repo:create` and `github:repo:push` scaffolder actions. +- 5c28ebc79fd6: Updated dependency `esbuild` to `^0.19.0`. +- d3b31a791eb1: Deprecated `executeShellCommand`, `RunCommandOptions`, and `fetchContents` from `@backstage/plugin-scaffolder-backend`, since they are useful for Scaffolder modules (who should not be importing from the plugin package itself). You should now import these from `@backstage/plugin-scaffolder-backend-node` instead. `RunCommandOptions` was renamed in the Node package as `ExecuteShellCommandOptions`, for consistency. +- Updated dependencies + - @backstage/backend-common@0.19.2 + - @backstage/plugin-catalog-backend@1.12.0 + - @backstage/backend-plugin-api@0.6.0 + - @backstage/plugin-scaffolder-node@0.2.0 + - @backstage/plugin-catalog-node@1.4.1 + - @backstage/plugin-auth-node@0.2.17 + - @backstage/integration@1.6.0 + - @backstage/backend-tasks@0.5.5 + - @backstage/plugin-scaffolder-common@1.4.0 + - @backstage/plugin-permission-node@0.7.11 + - @backstage/catalog-client@1.4.3 + - @backstage/catalog-model@1.4.1 + - @backstage/config@1.0.8 + - @backstage/errors@1.2.1 + - @backstage/types@1.1.0 + - @backstage/plugin-catalog-common@1.0.15 + - @backstage/plugin-permission-common@0.7.7 + ## 1.15.2-next.2 ### Patch Changes diff --git a/plugins/scaffolder-backend/package.json b/plugins/scaffolder-backend/package.json index 9376cabf17..636074393f 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.2-next.2", + "version": "1.16.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 6fd5948a5c..25c18a270e 100644 --- a/plugins/scaffolder-common/CHANGELOG.md +++ b/plugins/scaffolder-common/CHANGELOG.md @@ -1,5 +1,18 @@ # @backstage/plugin-scaffolder-common +## 1.4.0 + +### Minor Changes + +- e514aac3eac0: Introduce `each` property on action steps, allowing them to be ran repeatedly. + +### Patch Changes + +- Updated dependencies + - @backstage/catalog-model@1.4.1 + - @backstage/types@1.1.0 + - @backstage/plugin-permission-common@0.7.7 + ## 1.3.2 ### Patch Changes diff --git a/plugins/scaffolder-common/package.json b/plugins/scaffolder-common/package.json index a0baa4470f..c281102109 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.2", + "version": "1.4.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 607836b141..ad964812f7 100644 --- a/plugins/scaffolder-node/CHANGELOG.md +++ b/plugins/scaffolder-node/CHANGELOG.md @@ -1,5 +1,27 @@ # @backstage/plugin-scaffolder-node +## 0.2.0 + +### Minor Changes + +- e514aac3eac0: Introduce `each` property on action steps, allowing them to be ran repeatedly. + +### Patch Changes + +- 12a8c94eda8d: Add package repository and homepage metadata +- e07a4914f621: Added several new types that were moved from `@backstage/plugin-scaffolder-backend`. +- 349611126ae2: Added two new alpha extension points, `scaffolderTaskBrokerExtensionPoint` and `scaffolderTemplatingExtensionPoint`. +- 0b1d775be05b: Export `TemplateExample` from the `createTemplateAction` type. +- d3b31a791eb1: Deprecated `executeShellCommand`, `RunCommandOptions`, and `fetchContents` from `@backstage/plugin-scaffolder-backend`, since they are useful for Scaffolder modules (who should not be importing from the plugin package itself). You should now import these from `@backstage/plugin-scaffolder-backend-node` instead. `RunCommandOptions` was renamed in the Node package as `ExecuteShellCommandOptions`, for consistency. +- Updated dependencies + - @backstage/backend-common@0.19.2 + - @backstage/backend-plugin-api@0.6.0 + - @backstage/integration@1.6.0 + - @backstage/plugin-scaffolder-common@1.4.0 + - @backstage/catalog-model@1.4.1 + - @backstage/errors@1.2.1 + - @backstage/types@1.1.0 + ## 0.1.6-next.2 ### Patch Changes diff --git a/plugins/scaffolder-node/package.json b/plugins/scaffolder-node/package.json index 7f78352323..ac22b7c2d6 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.6-next.2", + "version": "0.2.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 68e1db12ca..91cde8ccf2 100644 --- a/plugins/scaffolder-react/CHANGELOG.md +++ b/plugins/scaffolder-react/CHANGELOG.md @@ -1,5 +1,22 @@ # @backstage/plugin-scaffolder-react +## 1.5.2 + +### Patch Changes + +- ba9ee98a37bd: Fixed bug in Workflow component by passing a prop `templateName` down to Stepper component. +- Updated dependencies + - @backstage/core-components@0.13.4 + - @backstage/plugin-catalog-react@1.8.1 + - @backstage/plugin-scaffolder-common@1.4.0 + - @backstage/core-plugin-api@1.5.3 + - @backstage/catalog-client@1.4.3 + - @backstage/catalog-model@1.4.1 + - @backstage/errors@1.2.1 + - @backstage/theme@0.4.1 + - @backstage/types@1.1.0 + - @backstage/version-bridge@1.0.4 + ## 1.5.2-next.1 ### Patch Changes diff --git a/plugins/scaffolder-react/package.json b/plugins/scaffolder-react/package.json index 448199d709..657a66e6e3 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.2-next.1", + "version": "1.5.2", "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 2f9d1341e4..9098706875 100644 --- a/plugins/scaffolder/CHANGELOG.md +++ b/plugins/scaffolder/CHANGELOG.md @@ -1,5 +1,27 @@ # @backstage/plugin-scaffolder +## 1.14.2 + +### Patch Changes + +- 8a0490fb669e: Fix the get entities query in the `MyGroupsPicker` to query the `kind=Group` entities. +- Updated dependencies + - @backstage/integration-react@1.1.16 + - @backstage/integration@1.6.0 + - @backstage/core-components@0.13.4 + - @backstage/plugin-catalog-react@1.8.1 + - @backstage/plugin-scaffolder-common@1.4.0 + - @backstage/plugin-scaffolder-react@1.5.2 + - @backstage/core-plugin-api@1.5.3 + - @backstage/catalog-client@1.4.3 + - @backstage/catalog-model@1.4.1 + - @backstage/config@1.0.8 + - @backstage/errors@1.2.1 + - @backstage/theme@0.4.1 + - @backstage/types@1.1.0 + - @backstage/plugin-catalog-common@1.0.15 + - @backstage/plugin-permission-react@0.4.14 + ## 1.14.2-next.2 ### Patch Changes diff --git a/plugins/scaffolder/package.json b/plugins/scaffolder/package.json index 4291016fb8..f4dae39d96 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.2-next.2", + "version": "1.14.2", "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 f9b716d456..ce170b95dd 100644 --- a/plugins/search-backend-module-catalog/CHANGELOG.md +++ b/plugins/search-backend-module-catalog/CHANGELOG.md @@ -1,5 +1,28 @@ # @backstage/plugin-search-backend-module-catalog +## 0.1.4 + +### Patch Changes + +- 629cbd194a87: Use `coreServices.rootConfig` instead of `coreService.config` +- 29f77f923c71: Ensure that all services are dependency injected into the module instead of taken from options +- 12a8c94eda8d: Add package repository and homepage metadata +- ec1032129e47: Breaking change in the alpha export `searchModuleCatalogCollator`: Moved collator settings from module options into app-config. You are now expected to set up the catalog collator under the `search.collators.catalog` configuration key. There is also a new `catalogCollatorExtensionPoint` extension point for the module, wherein you can set custom transformers. +- d4f19a16bd52: Add User Entity email to the search index so that users can be found by their email. +- Updated dependencies + - @backstage/backend-common@0.19.2 + - @backstage/backend-plugin-api@0.6.0 + - @backstage/plugin-search-backend-node@1.2.4 + - @backstage/plugin-catalog-node@1.4.1 + - @backstage/backend-tasks@0.5.5 + - @backstage/catalog-client@1.4.3 + - @backstage/catalog-model@1.4.1 + - @backstage/config@1.0.8 + - @backstage/errors@1.2.1 + - @backstage/plugin-catalog-common@1.0.15 + - @backstage/plugin-permission-common@0.7.7 + - @backstage/plugin-search-common@1.2.5 + ## 0.1.4-next.2 ### Patch Changes diff --git a/plugins/search-backend-module-catalog/package.json b/plugins/search-backend-module-catalog/package.json index 1d9ee95bae..e3509aec8a 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.4-next.2", + "version": "0.1.4", "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 c8ff1e32ad..0d50bb342d 100644 --- a/plugins/search-backend-module-elasticsearch/CHANGELOG.md +++ b/plugins/search-backend-module-elasticsearch/CHANGELOG.md @@ -1,5 +1,23 @@ # @backstage/plugin-search-backend-module-elasticsearch +## 1.3.3 + +### Patch Changes + +- 629cbd194a87: Use `coreServices.rootConfig` instead of `coreService.config` +- 12a8c94eda8d: Add package repository and homepage metadata +- 631eb3816b48: Index templates can now be configured through configuration under the `search.elasticsearch.indexTemplates`. In addition, the `ElasticSearchSearchEngine.fromConfig` now also accepts a `LoggerService` as the `logger` option as well as a new `translator` option. + + The alpha `searchModuleElasticsearchEngine` export no longer accepts options and a new alpha `elasticsearchTranslatorExtensionPoint` export has been added which lets you customize the query translator. + +- Updated dependencies + - @backstage/backend-common@0.19.2 + - @backstage/backend-plugin-api@0.6.0 + - @backstage/plugin-search-backend-node@1.2.4 + - @backstage/integration-aws-node@0.1.5 + - @backstage/config@1.0.8 + - @backstage/plugin-search-common@1.2.5 + ## 1.3.3-next.2 ### Patch Changes diff --git a/plugins/search-backend-module-elasticsearch/package.json b/plugins/search-backend-module-elasticsearch/package.json index 9c68cfdaa0..63e6868ad6 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.3-next.2", + "version": "1.3.3", "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 4d954aea2f..05c17f7c59 100644 --- a/plugins/search-backend-module-explore/CHANGELOG.md +++ b/plugins/search-backend-module-explore/CHANGELOG.md @@ -1,5 +1,22 @@ # @backstage/plugin-search-backend-module-explore +## 0.1.4 + +### Patch Changes + +- 629cbd194a87: Use `coreServices.rootConfig` instead of `coreService.config` +- 29f77f923c71: Ensure that all services are dependency injected into the module instead of taken from options +- 12a8c94eda8d: Add package repository and homepage metadata +- 6694e79ab396: Breaking change for the alpha export moved `schedule` from module options into app-config for the new backend system. You can now pass in a `TaskScheduleDefinitionConfig` through the `search.collators.explore.schedule` configuration key. +- Updated dependencies + - @backstage/backend-common@0.19.2 + - @backstage/backend-plugin-api@0.6.0 + - @backstage/plugin-search-backend-node@1.2.4 + - @backstage/backend-tasks@0.5.5 + - @backstage/config@1.0.8 + - @backstage/plugin-explore-common@0.0.1 + - @backstage/plugin-search-common@1.2.5 + ## 0.1.4-next.2 ### Patch Changes diff --git a/plugins/search-backend-module-explore/package.json b/plugins/search-backend-module-explore/package.json index b8ee2f04e0..8e4781b081 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.4-next.2", + "version": "0.1.4", "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 9bd8664ff7..d85c7f3e91 100644 --- a/plugins/search-backend-module-pg/CHANGELOG.md +++ b/plugins/search-backend-module-pg/CHANGELOG.md @@ -1,5 +1,18 @@ # @backstage/plugin-search-backend-module-pg +## 0.5.9 + +### Patch Changes + +- 629cbd194a87: Use `coreServices.rootConfig` instead of `coreService.config` +- 12a8c94eda8d: Add package repository and homepage metadata +- Updated dependencies + - @backstage/backend-common@0.19.2 + - @backstage/backend-plugin-api@0.6.0 + - @backstage/plugin-search-backend-node@1.2.4 + - @backstage/config@1.0.8 + - @backstage/plugin-search-common@1.2.5 + ## 0.5.9-next.2 ### Patch Changes diff --git a/plugins/search-backend-module-pg/package.json b/plugins/search-backend-module-pg/package.json index 875af316b2..de77f80e66 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.9-next.2", + "version": "0.5.9", "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 f456f03030..1434db16c4 100644 --- a/plugins/search-backend-module-techdocs/CHANGELOG.md +++ b/plugins/search-backend-module-techdocs/CHANGELOG.md @@ -1,5 +1,27 @@ # @backstage/plugin-search-backend-module-techdocs +## 0.1.4 + +### Patch Changes + +- 629cbd194a87: Use `coreServices.rootConfig` instead of `coreService.config` +- 29f77f923c71: Ensure that all services are dependency injected into the module instead of taken from options +- 12a8c94eda8d: Add package repository and homepage metadata +- 6694e79ab396: **BREAKING:** Moved `schedule` & `collators` settings from module options into app-config for the new backend system. You can now pass in a `TaskScheduleDefinitionConfig` through the `search.collators.techdocs.schedule` configuration key & configure the `TechDocsCollatorFactory` with the key `search.collators.techdocs`. +- Updated dependencies + - @backstage/backend-common@0.19.2 + - @backstage/backend-plugin-api@0.6.0 + - @backstage/plugin-search-backend-node@1.2.4 + - @backstage/plugin-catalog-node@1.4.1 + - @backstage/backend-tasks@0.5.5 + - @backstage/plugin-techdocs-node@1.7.4 + - @backstage/catalog-client@1.4.3 + - @backstage/catalog-model@1.4.1 + - @backstage/config@1.0.8 + - @backstage/plugin-catalog-common@1.0.15 + - @backstage/plugin-permission-common@0.7.7 + - @backstage/plugin-search-common@1.2.5 + ## 0.1.4-next.2 ### Patch Changes diff --git a/plugins/search-backend-module-techdocs/package.json b/plugins/search-backend-module-techdocs/package.json index 9baa673a4a..51e59626f3 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.4-next.2", + "version": "0.1.4", "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 2733e5b22d..9d82992c80 100644 --- a/plugins/search-backend-node/CHANGELOG.md +++ b/plugins/search-backend-node/CHANGELOG.md @@ -1,5 +1,20 @@ # @backstage/plugin-search-backend-node +## 1.2.4 + +### Patch Changes + +- 12a8c94eda8d: Add package repository and homepage metadata +- e3e9bc10298b: Fix Lunr search engine highlight by ignoring invalid metadata positions. +- Updated dependencies + - @backstage/backend-common@0.19.2 + - @backstage/backend-plugin-api@0.6.0 + - @backstage/backend-tasks@0.5.5 + - @backstage/config@1.0.8 + - @backstage/errors@1.2.1 + - @backstage/plugin-permission-common@0.7.7 + - @backstage/plugin-search-common@1.2.5 + ## 1.2.4-next.2 ### Patch Changes diff --git a/plugins/search-backend-node/package.json b/plugins/search-backend-node/package.json index 845b9bddd1..19faf1f0b4 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.4-next.2", + "version": "1.2.4", "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 52fd4963ce..8538ffc08f 100644 --- a/plugins/search-backend/CHANGELOG.md +++ b/plugins/search-backend/CHANGELOG.md @@ -1,5 +1,29 @@ # @backstage/plugin-search-backend +## 1.4.0 + +### Minor Changes + +- ebeb77586975: Now performs request validation based on OpenAPI schema through `@backstage/backend-openapi-utils`. Error responses for invalid input, like `"a"` instead of a number, may have changed. + +### Patch Changes + +- 629cbd194a87: Use `coreServices.rootConfig` instead of `coreService.config` +- 12a8c94eda8d: Add package repository and homepage metadata +- 951ab6c9db58: Add missing `configSchema` to package.json +- Updated dependencies + - @backstage/backend-common@0.19.2 + - @backstage/backend-plugin-api@0.6.0 + - @backstage/backend-openapi-utils@0.0.3 + - @backstage/plugin-search-backend-node@1.2.4 + - @backstage/plugin-auth-node@0.2.17 + - @backstage/plugin-permission-node@0.7.11 + - @backstage/config@1.0.8 + - @backstage/errors@1.2.1 + - @backstage/types@1.1.0 + - @backstage/plugin-permission-common@0.7.7 + - @backstage/plugin-search-common@1.2.5 + ## 1.4.0-next.2 ### Patch Changes diff --git a/plugins/search-backend/package.json b/plugins/search-backend/package.json index c2357f2a0b..ba36bea2a9 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.4.0-next.2", + "version": "1.4.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/plugins/search-react/CHANGELOG.md b/plugins/search-react/CHANGELOG.md index 136a7ad4a4..e926722cbb 100644 --- a/plugins/search-react/CHANGELOG.md +++ b/plugins/search-react/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-search-react +## 1.6.4 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.4 + - @backstage/core-plugin-api@1.5.3 + - @backstage/theme@0.4.1 + - @backstage/types@1.1.0 + - @backstage/version-bridge@1.0.4 + - @backstage/plugin-search-common@1.2.5 + ## 1.6.4-next.0 ### Patch Changes diff --git a/plugins/search-react/package.json b/plugins/search-react/package.json index 787d24bc2a..550f7d5969 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.4-next.0", + "version": "1.6.4", "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 73650ae636..1e6c8d45de 100644 --- a/plugins/search/CHANGELOG.md +++ b/plugins/search/CHANGELOG.md @@ -1,5 +1,22 @@ # @backstage/plugin-search +## 1.3.4 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.4 + - @backstage/plugin-catalog-react@1.8.1 + - @backstage/core-plugin-api@1.5.3 + - @backstage/plugin-search-react@1.6.4 + - @backstage/catalog-model@1.4.1 + - @backstage/config@1.0.8 + - @backstage/errors@1.2.1 + - @backstage/theme@0.4.1 + - @backstage/types@1.1.0 + - @backstage/version-bridge@1.0.4 + - @backstage/plugin-search-common@1.2.5 + ## 1.3.4-next.1 ### Patch Changes diff --git a/plugins/search/package.json b/plugins/search/package.json index 5d935d57b8..3bca411e3e 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.4-next.1", + "version": "1.3.4", "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 1ca911f366..4fed635b84 100644 --- a/plugins/sentry/CHANGELOG.md +++ b/plugins/sentry/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-sentry +## 0.5.6 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.4 + - @backstage/plugin-catalog-react@1.8.1 + - @backstage/core-plugin-api@1.5.3 + - @backstage/catalog-model@1.4.1 + - @backstage/theme@0.4.1 + ## 0.5.6-next.1 ### Patch Changes diff --git a/plugins/sentry/package.json b/plugins/sentry/package.json index 3c700575b0..72e5bec26c 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.6-next.1", + "version": "0.5.6", "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 af94df1ac4..d26eddc2d3 100644 --- a/plugins/shortcuts/CHANGELOG.md +++ b/plugins/shortcuts/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-shortcuts +## 0.3.13 + +### Patch Changes + +- 12a8c94eda8d: Add package repository and homepage metadata +- ee52a48b63d5: Limit the use of the duplicate shortcut name when adding a shortcut +- Updated dependencies + - @backstage/core-components@0.13.4 + - @backstage/core-plugin-api@1.5.3 + - @backstage/theme@0.4.1 + - @backstage/types@1.1.0 + ## 0.3.13-next.1 ### Patch Changes diff --git a/plugins/shortcuts/package.json b/plugins/shortcuts/package.json index dfd05422ac..e08dfc089a 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.13-next.1", + "version": "0.3.13", "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 95388cda61..509e7ca551 100644 --- a/plugins/sonarqube-backend/CHANGELOG.md +++ b/plugins/sonarqube-backend/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-sonarqube-backend +## 0.2.2 + +### Patch Changes + +- 12a8c94eda8d: Add package repository and homepage metadata +- a24d9df8757c: Added optional `externalBaseUrl` config for setting a different frontend URL +- Updated dependencies + - @backstage/backend-common@0.19.2 + - @backstage/config@1.0.8 + - @backstage/errors@1.2.1 + ## 0.2.2-next.2 ### Patch Changes diff --git a/plugins/sonarqube-backend/package.json b/plugins/sonarqube-backend/package.json index 0473d2c165..c2d8375460 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.2-next.2", + "version": "0.2.2", "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 531ada7eda..adda9640a9 100644 --- a/plugins/sonarqube/CHANGELOG.md +++ b/plugins/sonarqube/CHANGELOG.md @@ -1,5 +1,18 @@ # @backstage/plugin-sonarqube +## 0.7.2 + +### Patch Changes + +- b2ccddefbdc6: Remove sonarQube card disable class +- Updated dependencies + - @backstage/core-components@0.13.4 + - @backstage/plugin-catalog-react@1.8.1 + - @backstage/core-plugin-api@1.5.3 + - @backstage/catalog-model@1.4.1 + - @backstage/theme@0.4.1 + - @backstage/plugin-sonarqube-react@0.1.7 + ## 0.7.2-next.2 ### Patch Changes diff --git a/plugins/sonarqube/package.json b/plugins/sonarqube/package.json index e892f2d5e3..b03f09581a 100644 --- a/plugins/sonarqube/package.json +++ b/plugins/sonarqube/package.json @@ -1,7 +1,7 @@ { "name": "@backstage/plugin-sonarqube", "description": "", - "version": "0.7.2-next.2", + "version": "0.7.2", "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 427d54ef33..24931ad86b 100644 --- a/plugins/splunk-on-call/CHANGELOG.md +++ b/plugins/splunk-on-call/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-splunk-on-call +## 0.4.10 + +### Patch Changes + +- 3d86be999fdf: Prefer simple `theme.spacing` without string interpolation +- Updated dependencies + - @backstage/core-components@0.13.4 + - @backstage/plugin-catalog-react@1.8.1 + - @backstage/core-plugin-api@1.5.3 + - @backstage/catalog-model@1.4.1 + - @backstage/theme@0.4.1 + ## 0.4.10-next.1 ### Patch Changes diff --git a/plugins/splunk-on-call/package.json b/plugins/splunk-on-call/package.json index 181e5d2565..7f7429e4c1 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.10-next.1", + "version": "0.4.10", "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 dd3d187afe..9e1bcb63c2 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.4 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.2 + - @backstage/config@1.0.8 + - @backstage/plugin-search-common@1.2.5 + ## 0.2.4-next.2 ### Patch Changes diff --git a/plugins/stack-overflow-backend/package.json b/plugins/stack-overflow-backend/package.json index 88f9d7fb18..513e52e4cb 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.4-next.2", + "version": "0.2.4", "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 c6fc25e2b9..ddda86777e 100644 --- a/plugins/stack-overflow/CHANGELOG.md +++ b/plugins/stack-overflow/CHANGELOG.md @@ -1,5 +1,19 @@ # @backstage/plugin-stack-overflow +## 0.1.19 + +### Patch Changes + +- 12a8c94eda8d: Add package repository and homepage metadata +- Updated dependencies + - @backstage/plugin-home-react@0.1.2 + - @backstage/core-components@0.13.4 + - @backstage/core-plugin-api@1.5.3 + - @backstage/plugin-search-react@1.6.4 + - @backstage/config@1.0.8 + - @backstage/theme@0.4.1 + - @backstage/plugin-search-common@1.2.5 + ## 0.1.19-next.1 ### Patch Changes diff --git a/plugins/stack-overflow/package.json b/plugins/stack-overflow/package.json index 3a6efe8d99..61df0a4ace 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.19-next.1", + "version": "0.1.19", "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 52e6615586..ac690b8086 100644 --- a/plugins/stackstorm/CHANGELOG.md +++ b/plugins/stackstorm/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-stackstorm +## 0.1.5 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.4 + - @backstage/core-plugin-api@1.5.3 + - @backstage/errors@1.2.1 + - @backstage/theme@0.4.1 + ## 0.1.5-next.0 ### Patch Changes diff --git a/plugins/stackstorm/package.json b/plugins/stackstorm/package.json index 800fbc5ffe..9453fc70c6 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.5-next.0", + "version": "0.1.5", "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 e41eaa1898..ec6986d399 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.32 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.2 + - @backstage/plugin-tech-insights-node@0.4.6 + - @backstage/config@1.0.8 + - @backstage/errors@1.2.1 + - @backstage/plugin-tech-insights-common@0.2.11 + ## 0.1.32-next.2 ### Patch Changes diff --git a/plugins/tech-insights-backend-module-jsonfc/package.json b/plugins/tech-insights-backend-module-jsonfc/package.json index ca3849773a..046517b75e 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.32-next.2", + "version": "0.1.32", "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 f6a96bdb5e..dd5f5ce33b 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.14 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.2 + - @backstage/backend-tasks@0.5.5 + - @backstage/plugin-tech-insights-node@0.4.6 + - @backstage/catalog-client@1.4.3 + - @backstage/catalog-model@1.4.1 + - @backstage/config@1.0.8 + - @backstage/errors@1.2.1 + - @backstage/types@1.1.0 + - @backstage/plugin-tech-insights-common@0.2.11 + ## 0.5.14-next.2 ### Patch Changes diff --git a/plugins/tech-insights-backend/package.json b/plugins/tech-insights-backend/package.json index af66228d4e..c3654b7967 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.14-next.2", + "version": "0.5.14", "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 ec3195f9ea..8e42f4113d 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.6 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.2 + - @backstage/backend-tasks@0.5.5 + - @backstage/config@1.0.8 + - @backstage/types@1.1.0 + - @backstage/plugin-tech-insights-common@0.2.11 + ## 0.4.6-next.2 ### Patch Changes diff --git a/plugins/tech-insights-node/package.json b/plugins/tech-insights-node/package.json index 9499f65a83..42b2b83f92 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.6-next.2", + "version": "0.4.6", "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 5be97e85af..16bb11c539 100644 --- a/plugins/tech-insights/CHANGELOG.md +++ b/plugins/tech-insights/CHANGELOG.md @@ -1,5 +1,20 @@ # @backstage/plugin-tech-insights +## 0.3.13 + +### Patch Changes + +- 12a8c94eda8d: Add package repository and homepage metadata +- Updated dependencies + - @backstage/core-components@0.13.4 + - @backstage/plugin-catalog-react@1.8.1 + - @backstage/core-plugin-api@1.5.3 + - @backstage/catalog-model@1.4.1 + - @backstage/errors@1.2.1 + - @backstage/theme@0.4.1 + - @backstage/types@1.1.0 + - @backstage/plugin-tech-insights-common@0.2.11 + ## 0.3.13-next.2 ### Patch Changes diff --git a/plugins/tech-insights/package.json b/plugins/tech-insights/package.json index d3318c46fd..804bea606a 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.13-next.2", + "version": "0.3.13", "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 b14e7c34f7..c52c2f2423 100644 --- a/plugins/tech-radar/CHANGELOG.md +++ b/plugins/tech-radar/CHANGELOG.md @@ -1,5 +1,14 @@ # @backstage/plugin-tech-radar +## 0.6.7 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.4 + - @backstage/core-plugin-api@1.5.3 + - @backstage/theme@0.4.1 + ## 0.6.7-next.0 ### Patch Changes diff --git a/plugins/tech-radar/package.json b/plugins/tech-radar/package.json index e376c05baf..789f3a3e16 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.7-next.0", + "version": "0.6.7", "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 12af94f42a..51e9d7885d 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.17 + +### Patch Changes + +- Updated dependencies + - @backstage/core-app-api@1.9.1 + - @backstage/integration-react@1.1.16 + - @backstage/core-components@0.13.4 + - @backstage/plugin-catalog@1.12.1 + - @backstage/core-plugin-api@1.5.3 + - @backstage/test-utils@1.4.2 + - @backstage/plugin-search-react@1.6.4 + - @backstage/plugin-techdocs@1.6.6 + - @backstage/theme@0.4.1 + - @backstage/plugin-techdocs-react@1.1.9 + ## 1.0.17-next.2 ### Patch Changes diff --git a/plugins/techdocs-addons-test-utils/package.json b/plugins/techdocs-addons-test-utils/package.json index e9cf034e07..898ba2392b 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.17-next.2", + "version": "1.0.17", "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 3dbae8c0a3..376fb47d2d 100644 --- a/plugins/techdocs-backend/CHANGELOG.md +++ b/plugins/techdocs-backend/CHANGELOG.md @@ -1,5 +1,24 @@ # @backstage/plugin-techdocs-backend +## 1.6.5 + +### Patch Changes + +- 629cbd194a87: Use `coreServices.rootConfig` instead of `coreService.config` +- Updated dependencies + - @backstage/plugin-search-backend-module-techdocs@0.1.4 + - @backstage/backend-common@0.19.2 + - @backstage/backend-plugin-api@0.6.0 + - @backstage/integration@1.6.0 + - @backstage/plugin-techdocs-node@1.7.4 + - @backstage/catalog-client@1.4.3 + - @backstage/catalog-model@1.4.1 + - @backstage/config@1.0.8 + - @backstage/errors@1.2.1 + - @backstage/plugin-catalog-common@1.0.15 + - @backstage/plugin-permission-common@0.7.7 + - @backstage/plugin-search-common@1.2.5 + ## 1.6.5-next.2 ### Patch Changes diff --git a/plugins/techdocs-backend/package.json b/plugins/techdocs-backend/package.json index 561d3a81fb..9ab72b47bd 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.5-next.2", + "version": "1.6.5", "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 8af1e616bc..46360b59ca 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.16 + +### Patch Changes + +- Updated dependencies + - @backstage/integration-react@1.1.16 + - @backstage/integration@1.6.0 + - @backstage/core-components@0.13.4 + - @backstage/core-plugin-api@1.5.3 + - @backstage/theme@0.4.1 + - @backstage/plugin-techdocs-react@1.1.9 + ## 1.0.16-next.1 ### Patch Changes diff --git a/plugins/techdocs-module-addons-contrib/package.json b/plugins/techdocs-module-addons-contrib/package.json index da388e9044..458738ec7f 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.16-next.1", + "version": "1.0.16", "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 4d5dbcf11e..2ec3167604 100644 --- a/plugins/techdocs-node/CHANGELOG.md +++ b/plugins/techdocs-node/CHANGELOG.md @@ -1,5 +1,18 @@ # @backstage/plugin-techdocs-node +## 1.7.4 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.2 + - @backstage/integration@1.6.0 + - @backstage/integration-aws-node@0.1.5 + - @backstage/catalog-model@1.4.1 + - @backstage/config@1.0.8 + - @backstage/errors@1.2.1 + - @backstage/plugin-search-common@1.2.5 + ## 1.7.4-next.2 ### Patch Changes diff --git a/plugins/techdocs-node/package.json b/plugins/techdocs-node/package.json index a255d5fea1..04539f46c3 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.4-next.2", + "version": "1.7.4", "main": "src/index.ts", "types": "src/index.ts", "publishConfig": { diff --git a/plugins/techdocs-react/CHANGELOG.md b/plugins/techdocs-react/CHANGELOG.md index 8aa94ebbe5..09c2ffc465 100644 --- a/plugins/techdocs-react/CHANGELOG.md +++ b/plugins/techdocs-react/CHANGELOG.md @@ -1,5 +1,16 @@ # @backstage/plugin-techdocs-react +## 1.1.9 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.4 + - @backstage/core-plugin-api@1.5.3 + - @backstage/catalog-model@1.4.1 + - @backstage/config@1.0.8 + - @backstage/version-bridge@1.0.4 + ## 1.1.9-next.0 ### Patch Changes diff --git a/plugins/techdocs-react/package.json b/plugins/techdocs-react/package.json index 42df70d181..e146fa1bf7 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.9-next.0", + "version": "1.1.9", "publishConfig": { "access": "public", "main": "dist/index.esm.js", diff --git a/plugins/techdocs/CHANGELOG.md b/plugins/techdocs/CHANGELOG.md index 3dcc35d072..c77450431a 100644 --- a/plugins/techdocs/CHANGELOG.md +++ b/plugins/techdocs/CHANGELOG.md @@ -1,5 +1,23 @@ # @backstage/plugin-techdocs +## 1.6.6 + +### Patch Changes + +- Updated dependencies + - @backstage/integration-react@1.1.16 + - @backstage/integration@1.6.0 + - @backstage/core-components@0.13.4 + - @backstage/plugin-catalog-react@1.8.1 + - @backstage/core-plugin-api@1.5.3 + - @backstage/plugin-search-react@1.6.4 + - @backstage/catalog-model@1.4.1 + - @backstage/config@1.0.8 + - @backstage/errors@1.2.1 + - @backstage/theme@0.4.1 + - @backstage/plugin-search-common@1.2.5 + - @backstage/plugin-techdocs-react@1.1.9 + ## 1.6.6-next.2 ### Patch Changes diff --git a/plugins/techdocs/package.json b/plugins/techdocs/package.json index c4f09c9f17..54bf661d99 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.6-next.2", + "version": "1.6.6", "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 9d2a85b2c4..f4935afdd4 100644 --- a/plugins/todo-backend/CHANGELOG.md +++ b/plugins/todo-backend/CHANGELOG.md @@ -1,5 +1,26 @@ # @backstage/plugin-todo-backend +## 0.2.0 + +### Minor Changes + +- ebeb77586975: Now performs request validation based on OpenAPI schema through `@backstage/backend-openapi-utils`. Error responses for invalid input, like `"a"` instead of a number, may have changed. + +### Patch Changes + +- 629cbd194a87: Use `coreServices.rootConfig` instead of `coreService.config` +- ad3fb5401729: Fixed a bug where filter queries from the frontend would always fail validation. +- Updated dependencies + - @backstage/backend-common@0.19.2 + - @backstage/backend-plugin-api@0.6.0 + - @backstage/backend-openapi-utils@0.0.3 + - @backstage/plugin-catalog-node@1.4.1 + - @backstage/integration@1.6.0 + - @backstage/catalog-client@1.4.3 + - @backstage/catalog-model@1.4.1 + - @backstage/config@1.0.8 + - @backstage/errors@1.2.1 + ## 0.2.0-next.2 ### Patch Changes diff --git a/plugins/todo-backend/package.json b/plugins/todo-backend/package.json index 4c864ea379..c2ba1ea8d1 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.2.0-next.2", + "version": "0.2.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 7d1570ae20..0b99db3d3a 100644 --- a/plugins/todo/CHANGELOG.md +++ b/plugins/todo/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-todo +## 0.2.23 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.4 + - @backstage/plugin-catalog-react@1.8.1 + - @backstage/core-plugin-api@1.5.3 + - @backstage/catalog-model@1.4.1 + - @backstage/errors@1.2.1 + - @backstage/theme@0.4.1 + ## 0.2.23-next.1 ### Patch Changes diff --git a/plugins/todo/package.json b/plugins/todo/package.json index 51a37bffe5..67dea39fa4 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.23-next.1", + "version": "0.2.23", "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 869280ceb9..886a14e061 100644 --- a/plugins/user-settings-backend/CHANGELOG.md +++ b/plugins/user-settings-backend/CHANGELOG.md @@ -1,5 +1,18 @@ # @backstage/plugin-user-settings-backend +## 0.1.12 + +### Patch Changes + +- 12a8c94eda8d: Add package repository and homepage metadata +- Updated dependencies + - @backstage/backend-common@0.19.2 + - @backstage/backend-plugin-api@0.6.0 + - @backstage/plugin-auth-node@0.2.17 + - @backstage/catalog-model@1.4.1 + - @backstage/errors@1.2.1 + - @backstage/types@1.1.0 + ## 0.1.12-next.2 ### Patch Changes diff --git a/plugins/user-settings-backend/package.json b/plugins/user-settings-backend/package.json index f2eca3e6d4..05912f1f55 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.12-next.2", + "version": "0.1.12", "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 c015344dad..ab04a4af40 100644 --- a/plugins/user-settings/CHANGELOG.md +++ b/plugins/user-settings/CHANGELOG.md @@ -1,5 +1,18 @@ # @backstage/plugin-user-settings +## 0.7.6 + +### Patch Changes + +- Updated dependencies + - @backstage/core-app-api@1.9.1 + - @backstage/core-components@0.13.4 + - @backstage/plugin-catalog-react@1.8.1 + - @backstage/core-plugin-api@1.5.3 + - @backstage/errors@1.2.1 + - @backstage/theme@0.4.1 + - @backstage/types@1.1.0 + ## 0.7.6-next.1 ### Patch Changes diff --git a/plugins/user-settings/package.json b/plugins/user-settings/package.json index 6a5bc24770..a832ceccf2 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.6-next.1", + "version": "0.7.6", "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 d28b252b31..84b61db8ed 100644 --- a/plugins/vault-backend/CHANGELOG.md +++ b/plugins/vault-backend/CHANGELOG.md @@ -1,5 +1,15 @@ # @backstage/plugin-vault-backend +## 0.3.4 + +### Patch Changes + +- Updated dependencies + - @backstage/backend-common@0.19.2 + - @backstage/backend-tasks@0.5.5 + - @backstage/config@1.0.8 + - @backstage/errors@1.2.1 + ## 0.3.4-next.2 ### Patch Changes diff --git a/plugins/vault-backend/package.json b/plugins/vault-backend/package.json index c40eabf3c7..e5ea735974 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.4-next.2", + "version": "0.3.4", "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 351fe4b168..dcf84ffc9c 100644 --- a/plugins/vault/CHANGELOG.md +++ b/plugins/vault/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-vault +## 0.1.15 + +### Patch Changes + +- Updated dependencies + - @backstage/core-components@0.13.4 + - @backstage/plugin-catalog-react@1.8.1 + - @backstage/core-plugin-api@1.5.3 + - @backstage/catalog-model@1.4.1 + - @backstage/errors@1.2.1 + - @backstage/theme@0.4.1 + ## 0.1.15-next.1 ### Patch Changes diff --git a/plugins/vault/package.json b/plugins/vault/package.json index e0c147c041..0466c81c3f 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.15-next.1", + "version": "0.1.15", "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 5fafa11c11..c85c22f0fa 100644 --- a/plugins/xcmetrics/CHANGELOG.md +++ b/plugins/xcmetrics/CHANGELOG.md @@ -1,5 +1,17 @@ # @backstage/plugin-xcmetrics +## 0.2.41 + +### Patch Changes + +- 12a8c94eda8d: Add package repository and homepage metadata +- 3d86be999fdf: Prefer simple `theme.spacing` without string interpolation +- Updated dependencies + - @backstage/core-components@0.13.4 + - @backstage/core-plugin-api@1.5.3 + - @backstage/errors@1.2.1 + - @backstage/theme@0.4.1 + ## 0.2.41-next.1 ### Patch Changes diff --git a/plugins/xcmetrics/package.json b/plugins/xcmetrics/package.json index 54320e6f7f..87bed48d61 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.41-next.1", + "version": "0.2.41", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", diff --git a/yarn.lock b/yarn.lock index b41fc1464e..8d16af3e92 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3487,7 +3487,7 @@ __metadata: languageName: unknown linkType: soft -"@backstage/catalog-client@^1.4.3, @backstage/catalog-client@workspace:^, @backstage/catalog-client@workspace:packages/catalog-client": +"@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" dependencies: @@ -3745,7 +3745,7 @@ __metadata: languageName: unknown linkType: soft -"@backstage/config@^1.0.6, @backstage/config@^1.0.7, @backstage/config@^1.0.8, @backstage/config@workspace:^, @backstage/config@workspace:packages/config": +"@backstage/config@^1.0.6, @backstage/config@^1.0.7, @backstage/config@workspace:^, @backstage/config@workspace:packages/config": version: 0.0.0-use.local resolution: "@backstage/config@workspace:packages/config" dependencies: @@ -3793,110 +3793,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-components@npm:^0.13.3": - version: 0.13.3 - resolution: "@backstage/core-components@npm:0.13.3" - dependencies: - "@backstage/config": ^1.0.8 - "@backstage/core-plugin-api": ^1.5.3 - "@backstage/errors": ^1.2.1 - "@backstage/theme": ^0.4.1 - "@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.2 - 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: ef1010b048697c051654d52a88f0e22d2a82bad33bb14c0ee5e11e86930ccfca71dc0cf0946440cc92e439d4b3a97281fbe6e1c1f78553dbd03f1118e2c2ad6a - languageName: node - linkType: hard - -"@backstage/core-components@workspace:^, @backstage/core-components@workspace:packages/core-components": +"@backstage/core-components@^0.13.3, @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: @@ -3970,6 +3867,56 @@ __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.3, @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" @@ -4057,7 +4004,7 @@ __metadata: languageName: unknown linkType: soft -"@backstage/errors@^1.1.5, @backstage/errors@^1.2.1, @backstage/errors@workspace:^, @backstage/errors@workspace:packages/errors": +"@backstage/errors@^1.1.5, @backstage/errors@workspace:^, @backstage/errors@workspace:packages/errors": version: 0.0.0-use.local resolution: "@backstage/errors@workspace:packages/errors" dependencies: @@ -4098,28 +4045,7 @@ __metadata: languageName: unknown linkType: soft -"@backstage/integration-react@npm:^1.1.15": - version: 1.1.15 - resolution: "@backstage/integration-react@npm:1.1.15" - dependencies: - "@backstage/config": ^1.0.8 - "@backstage/core-components": ^0.13.3 - "@backstage/core-plugin-api": ^1.5.3 - "@backstage/integration": ^1.5.1 - "@backstage/theme": ^0.4.1 - "@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: 3fed97a63e3bc4c5faf128373def1b31d62952f088ae19feb7ee1c68aa5092215ab047b66cb4b38caa022a26370eac244fb2b6ddb47ba896e2c3fce06873f575 - languageName: node - linkType: hard - -"@backstage/integration-react@workspace:^, @backstage/integration-react@workspace:packages/integration-react": +"@backstage/integration-react@^1.1.15, @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: @@ -4149,7 +4075,7 @@ __metadata: languageName: unknown linkType: soft -"@backstage/integration@^1.5.1, @backstage/integration@workspace:^, @backstage/integration@workspace:packages/integration": +"@backstage/integration@workspace:^, @backstage/integration@workspace:packages/integration": version: 0.0.0-use.local resolution: "@backstage/integration@workspace:packages/integration" dependencies: @@ -5376,7 +5302,7 @@ __metadata: languageName: unknown linkType: soft -"@backstage/plugin-catalog-common@^1.0.10, @backstage/plugin-catalog-common@^1.0.15, @backstage/plugin-catalog-common@workspace:^, @backstage/plugin-catalog-common@workspace:plugins/catalog-common": +"@backstage/plugin-catalog-common@^1.0.10, @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: @@ -5513,44 +5439,7 @@ __metadata: languageName: unknown linkType: soft -"@backstage/plugin-catalog-react@npm:^1.2.4, @backstage/plugin-catalog-react@npm:^1.8.0": - version: 1.8.0 - resolution: "@backstage/plugin-catalog-react@npm:1.8.0" - dependencies: - "@backstage/catalog-client": ^1.4.3 - "@backstage/catalog-model": ^1.4.1 - "@backstage/core-components": ^0.13.3 - "@backstage/core-plugin-api": ^1.5.3 - "@backstage/errors": ^1.2.1 - "@backstage/integration": ^1.5.1 - "@backstage/plugin-catalog-common": ^1.0.15 - "@backstage/plugin-permission-common": ^0.7.7 - "@backstage/plugin-permission-react": ^0.4.14 - "@backstage/theme": ^0.4.1 - "@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: 01dff91076bcc7829b10866975599a05991dd12b9c8f5978383a58dbbb2a4a0ef3b4558b6f8cc468260dc9eef594f8ebdba3cf9cbf776529ca1fd24b6460bb8e - languageName: node - linkType: hard - -"@backstage/plugin-catalog-react@workspace:^, @backstage/plugin-catalog-react@workspace:plugins/catalog-react": +"@backstage/plugin-catalog-react@^1.2.4, @backstage/plugin-catalog-react@^1.8.0, @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: @@ -6934,23 +6823,6 @@ __metadata: languageName: unknown linkType: soft -"@backstage/plugin-home-react@npm:^0.1.1": - version: 0.1.1 - resolution: "@backstage/plugin-home-react@npm:0.1.1" - dependencies: - "@backstage/core-components": ^0.13.3 - "@backstage/core-plugin-api": ^1.5.3 - "@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: cc9741b1a3b3e1943d849d5437d0254b3fbfebf3a700ba1c282ccb158aa1f23761ba021330318c79fe0fd153c2ca088e04d8355a2fd4bdaa8731e667496dd33c - 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" @@ -6980,39 +6852,7 @@ __metadata: languageName: unknown linkType: soft -"@backstage/plugin-home@npm:^0.5.4": - version: 0.5.4 - resolution: "@backstage/plugin-home@npm:0.5.4" - dependencies: - "@backstage/catalog-model": ^1.4.1 - "@backstage/config": ^1.0.8 - "@backstage/core-components": ^0.13.3 - "@backstage/core-plugin-api": ^1.5.3 - "@backstage/plugin-catalog-react": ^1.8.0 - "@backstage/plugin-home-react": ^0.1.1 - "@backstage/theme": ^0.4.1 - "@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-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 - 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: cf27862ba80f166691880b46c942726515695537ecb61eb4996109fdf32d2797ae47e25a0342f4cf1e4f1403262456dc5b6e190cd0ef28c80f188fd34aaa7196 - languageName: node - linkType: hard - -"@backstage/plugin-home@workspace:^, @backstage/plugin-home@workspace:plugins/home": +"@backstage/plugin-home@^0.5.4, @backstage/plugin-home@workspace:^, @backstage/plugin-home@workspace:plugins/home": version: 0.0.0-use.local resolution: "@backstage/plugin-home@workspace:plugins/home" dependencies: @@ -7829,7 +7669,7 @@ __metadata: languageName: unknown linkType: soft -"@backstage/plugin-permission-common@^0.7.7, @backstage/plugin-permission-common@workspace:^, @backstage/plugin-permission-common@workspace:plugins/permission-common": +"@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" dependencies: @@ -7867,7 +7707,7 @@ __metadata: languageName: unknown linkType: soft -"@backstage/plugin-permission-react@^0.4.14, @backstage/plugin-permission-react@workspace:^, @backstage/plugin-permission-react@workspace:plugins/permission-react": +"@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" dependencies: @@ -9643,7 +9483,7 @@ __metadata: languageName: node linkType: hard -"@backstage/types@^1.0.2, @backstage/types@^1.1.0, @backstage/types@workspace:^, @backstage/types@workspace:packages/types": +"@backstage/types@^1.0.2, @backstage/types@workspace:^, @backstage/types@workspace:packages/types": version: 0.0.0-use.local resolution: "@backstage/types@workspace:packages/types" dependencies: @@ -9654,7 +9494,7 @@ __metadata: languageName: unknown linkType: soft -"@backstage/version-bridge@^1.0.3, @backstage/version-bridge@^1.0.4, @backstage/version-bridge@workspace:^, @backstage/version-bridge@workspace:packages/version-bridge": +"@backstage/version-bridge@^1.0.3, @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: From 82a3aeb383d27c6474aa8f03c133e11cbbb6b5c7 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Tue, 15 Aug 2023 13:40:55 +0200 Subject: [PATCH 330/372] docs: 1.17 release notes Signed-off-by: Patrik Oldsberg --- .github/vale/Vocab/Backstage/accept.txt | 1 + docs/releases/v1.17.0.md | 72 +++++++++++++++++++++++++ microsite/docusaurus.config.js | 2 +- microsite/sidebars.json | 1 + 4 files changed, 75 insertions(+), 1 deletion(-) create mode 100644 docs/releases/v1.17.0.md diff --git a/.github/vale/Vocab/Backstage/accept.txt b/.github/vale/Vocab/Backstage/accept.txt index 402444f63f..9fa7af5585 100644 --- a/.github/vale/Vocab/Backstage/accept.txt +++ b/.github/vale/Vocab/Backstage/accept.txt @@ -167,6 +167,7 @@ inlined inlinehilite integrator's interop +iterable JaCoCo JavaScript jenkins diff --git a/docs/releases/v1.17.0.md b/docs/releases/v1.17.0.md new file mode 100644 index 0000000000..36414e6608 --- /dev/null +++ b/docs/releases/v1.17.0.md @@ -0,0 +1,72 @@ +--- +id: v1.17.0 +title: v1.17.0 +description: Backstage Release v1.17.0 +--- + +These are the release notes for the v1.17.0 release of [Backstage](https://backstage.io/). + +A huge thanks to the whole team of maintainers and contributors as well as the amazing Backstage Community for the hard work in getting this release developed and done. + +## Highlights + +### Changes to the New Backend System + +For this release we had another look at the new backend system, in particular how well it fits together with the concept of plugin installation without code modification, and we identified a number of breaking changes that we wanted to make. + +We have removed the ability to define options for plugins and modules, and force them to be optional for services. Options have been moved either to static configuration or extension points, and modules now also have the ability to register extension points. + +Service factories are now considered `BackendFeature`s and are installed via `backend.add(...)` rather than via the `services` option, which has been removed. + +The configuration service has also been renamed to `rootConfig` in order to match other root-scoped services and make space for a potential plugin-scoped configuration service in the future. + +The shared environments concept has been removed. We are still interested in having some way to define reusable presets in the new system, but shared environments were too limited. + +We expect these to be the last broad breaking changes to the new backend system, and are likely to start encouraging use of it in the next release. + +### Catalog Telemetry with Processing Tracing + +The Catalog has been instrumented with some simple OpenTelemetry Spans so you can now dig into the processing loop and see it in action using tracing. + +Contributed by [@mikebryant](https://github.com/mikebryant) in [#17534](https://github.com/backstage/backstage/pull/17534) + +### New `each` property for Scaffolder Actions + +You can now define an `each` iterable in the `steps` for a template, which will run a given action for each entry in the iterable. + +Contributed by [@alexef](https://github.com/alexef) in [#18157](https://github.com/backstage/backstage/pull/18157) + +### Updated proxy configuration + +The shape of the proxy plugin configuration has been changed in order to make space for additional keys. Rather than defining the proxy endpoints directly under `proxy`, they should now be defined at `proxy.endpoints` instead. + +### OpenAPI Support for Backend Plugins + +You can now use OpenAPI specs to generate typed routers for your backend plugins with request validation using `createOpenApiRouter()`. There’s been some movement to support this for some of the plugins in the monorepo like `todo`, `search` and `catalog`. + +Contributed by [@sennyeya](https://github.com/sennyeya) in [#17875](https://github.com/backstage/backstage/pull/17875) + +### New plugin: `@backstage/plugin-catalog-backend-module-gcp` + +Allows ingestion of GKE Clusters as Resources into the Catalog. Contributed by [@mclarke47](https://github.com/mclarke47) in [#18759](https://github.com/backstage/backstage/pull/18759) + +## Security Fixes + +This release does not contain any security fixes. + +## Upgrade path + +We recommend that you keep your Backstage project up to date with this latest release. For more guidance on how to upgrade, check out the documentation for [keeping Backstage updated](https://backstage.io/docs/getting-started/keeping-backstage-updated). + +## Links and References + +Below you can find a list of links and references to help you learn about and start using this new release. + +- [Backstage official website](https://backstage.io/), [documentation](https://backstage.io/docs/), and [getting started guide](https://backstage.io/docs/getting-started/) +- [GitHub repository](https://github.com/backstage/backstage) +- Backstage's [versioning and support policy](https://backstage.io/docs/overview/versioning-policy) +- [Community Discord](https://discord.gg/backstage-687207715902193673) for discussions and support +- [Changelog](https://github.com/backstage/backstage/tree/master/docs/releases/v1.17.0-changelog.md) +- Backstage [Demos](https://backstage.io/demos), [Blog](https://backstage.io/blog), [Roadmap](https://backstage.io/docs/overview/roadmap) and [Plugins](https://backstage.io/plugins) + +Sign up for our [newsletter](https://info.backstage.spotify.com/newsletter_subscribe) if you want to be informed about what is happening in the world of Backstage. diff --git a/microsite/docusaurus.config.js b/microsite/docusaurus.config.js index 23438762cc..a55ad01a35 100644 --- a/microsite/docusaurus.config.js +++ b/microsite/docusaurus.config.js @@ -177,7 +177,7 @@ module.exports = { position: 'left', }, { - to: 'docs/releases/v1.16.0', + to: 'docs/releases/v1.17.0', label: 'Releases', position: 'left', }, diff --git a/microsite/sidebars.json b/microsite/sidebars.json index 198195eea1..0e73bd94f2 100644 --- a/microsite/sidebars.json +++ b/microsite/sidebars.json @@ -1,6 +1,7 @@ { "releases": { "Release Notes": [ + "releases/v1.17.0", "releases/v1.16.0", "releases/v1.15.0", "releases/v1.14.0", From c1d3ce79b6acf5b45fb5fae30be41eb36dc4a1ab Mon Sep 17 00:00:00 2001 From: Nicholas Bucher Date: Tue, 15 Aug 2023 13:22:23 -0400 Subject: [PATCH 331/372] Updated Solo.io Gloo Platform Portal plugin repository link. Signed-off-by: Nicholas Bucher --- microsite/data/plugins/solo-io-gloo-platform-portal.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/microsite/data/plugins/solo-io-gloo-platform-portal.yaml b/microsite/data/plugins/solo-io-gloo-platform-portal.yaml index fe7f4d78da..2f17b84f17 100644 --- a/microsite/data/plugins/solo-io-gloo-platform-portal.yaml +++ b/microsite/data/plugins/solo-io-gloo-platform-portal.yaml @@ -4,7 +4,7 @@ author: Solo.io authorUrl: https://solo.io category: Infrastructure description: View, test, and manage your Gloo Platform Portal APIs through our Backstage plugin. -documentation: https://github.com/solo-io/dev-portal-backstage-public#readme +documentation: https://github.com/solo-io/backstage-plugins-overview#readme iconUrl: /img/solo-io-glooy-circle.png.webp npmPackageName: '@solo.io/dev-portal-backstage-plugin' addedDate: '2023-05-19' From a94e0cde3819341dc41112fb92f71a754f11a926 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 16 Aug 2023 00:28:18 +0000 Subject: [PATCH 332/372] chore(deps): update dependency esbuild to v0.19.2 Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- yarn.lock | 182 +++++++++++++++++++++++++++--------------------------- 1 file changed, 91 insertions(+), 91 deletions(-) diff --git a/yarn.lock b/yarn.lock index b2f59c7ee6..87b8894785 100644 --- a/yarn.lock +++ b/yarn.lock @@ -10208,9 +10208,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/android-arm64@npm:0.19.1": - version: 0.19.1 - resolution: "@esbuild/android-arm64@npm:0.19.1" +"@esbuild/android-arm64@npm:0.19.2": + version: 0.19.2 + resolution: "@esbuild/android-arm64@npm:0.19.2" conditions: os=android & cpu=arm64 languageName: node linkType: hard @@ -10229,9 +10229,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/android-arm@npm:0.19.1": - version: 0.19.1 - resolution: "@esbuild/android-arm@npm:0.19.1" +"@esbuild/android-arm@npm:0.19.2": + version: 0.19.2 + resolution: "@esbuild/android-arm@npm:0.19.2" conditions: os=android & cpu=arm languageName: node linkType: hard @@ -10243,9 +10243,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/android-x64@npm:0.19.1": - version: 0.19.1 - resolution: "@esbuild/android-x64@npm:0.19.1" +"@esbuild/android-x64@npm:0.19.2": + version: 0.19.2 + resolution: "@esbuild/android-x64@npm:0.19.2" conditions: os=android & cpu=x64 languageName: node linkType: hard @@ -10257,9 +10257,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/darwin-arm64@npm:0.19.1": - version: 0.19.1 - resolution: "@esbuild/darwin-arm64@npm:0.19.1" +"@esbuild/darwin-arm64@npm:0.19.2": + version: 0.19.2 + resolution: "@esbuild/darwin-arm64@npm:0.19.2" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard @@ -10271,9 +10271,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/darwin-x64@npm:0.19.1": - version: 0.19.1 - resolution: "@esbuild/darwin-x64@npm:0.19.1" +"@esbuild/darwin-x64@npm:0.19.2": + version: 0.19.2 + resolution: "@esbuild/darwin-x64@npm:0.19.2" conditions: os=darwin & cpu=x64 languageName: node linkType: hard @@ -10285,9 +10285,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/freebsd-arm64@npm:0.19.1": - version: 0.19.1 - resolution: "@esbuild/freebsd-arm64@npm:0.19.1" +"@esbuild/freebsd-arm64@npm:0.19.2": + version: 0.19.2 + resolution: "@esbuild/freebsd-arm64@npm:0.19.2" conditions: os=freebsd & cpu=arm64 languageName: node linkType: hard @@ -10299,9 +10299,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/freebsd-x64@npm:0.19.1": - version: 0.19.1 - resolution: "@esbuild/freebsd-x64@npm:0.19.1" +"@esbuild/freebsd-x64@npm:0.19.2": + version: 0.19.2 + resolution: "@esbuild/freebsd-x64@npm:0.19.2" conditions: os=freebsd & cpu=x64 languageName: node linkType: hard @@ -10313,9 +10313,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-arm64@npm:0.19.1": - version: 0.19.1 - resolution: "@esbuild/linux-arm64@npm:0.19.1" +"@esbuild/linux-arm64@npm:0.19.2": + version: 0.19.2 + resolution: "@esbuild/linux-arm64@npm:0.19.2" conditions: os=linux & cpu=arm64 languageName: node linkType: hard @@ -10327,9 +10327,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-arm@npm:0.19.1": - version: 0.19.1 - resolution: "@esbuild/linux-arm@npm:0.19.1" +"@esbuild/linux-arm@npm:0.19.2": + version: 0.19.2 + resolution: "@esbuild/linux-arm@npm:0.19.2" conditions: os=linux & cpu=arm languageName: node linkType: hard @@ -10341,9 +10341,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-ia32@npm:0.19.1": - version: 0.19.1 - resolution: "@esbuild/linux-ia32@npm:0.19.1" +"@esbuild/linux-ia32@npm:0.19.2": + version: 0.19.2 + resolution: "@esbuild/linux-ia32@npm:0.19.2" conditions: os=linux & cpu=ia32 languageName: node linkType: hard @@ -10362,9 +10362,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-loong64@npm:0.19.1": - version: 0.19.1 - resolution: "@esbuild/linux-loong64@npm:0.19.1" +"@esbuild/linux-loong64@npm:0.19.2": + version: 0.19.2 + resolution: "@esbuild/linux-loong64@npm:0.19.2" conditions: os=linux & cpu=loong64 languageName: node linkType: hard @@ -10376,9 +10376,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-mips64el@npm:0.19.1": - version: 0.19.1 - resolution: "@esbuild/linux-mips64el@npm:0.19.1" +"@esbuild/linux-mips64el@npm:0.19.2": + version: 0.19.2 + resolution: "@esbuild/linux-mips64el@npm:0.19.2" conditions: os=linux & cpu=mips64el languageName: node linkType: hard @@ -10390,9 +10390,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-ppc64@npm:0.19.1": - version: 0.19.1 - resolution: "@esbuild/linux-ppc64@npm:0.19.1" +"@esbuild/linux-ppc64@npm:0.19.2": + version: 0.19.2 + resolution: "@esbuild/linux-ppc64@npm:0.19.2" conditions: os=linux & cpu=ppc64 languageName: node linkType: hard @@ -10404,9 +10404,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-riscv64@npm:0.19.1": - version: 0.19.1 - resolution: "@esbuild/linux-riscv64@npm:0.19.1" +"@esbuild/linux-riscv64@npm:0.19.2": + version: 0.19.2 + resolution: "@esbuild/linux-riscv64@npm:0.19.2" conditions: os=linux & cpu=riscv64 languageName: node linkType: hard @@ -10418,9 +10418,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-s390x@npm:0.19.1": - version: 0.19.1 - resolution: "@esbuild/linux-s390x@npm:0.19.1" +"@esbuild/linux-s390x@npm:0.19.2": + version: 0.19.2 + resolution: "@esbuild/linux-s390x@npm:0.19.2" conditions: os=linux & cpu=s390x languageName: node linkType: hard @@ -10432,9 +10432,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-x64@npm:0.19.1": - version: 0.19.1 - resolution: "@esbuild/linux-x64@npm:0.19.1" +"@esbuild/linux-x64@npm:0.19.2": + version: 0.19.2 + resolution: "@esbuild/linux-x64@npm:0.19.2" conditions: os=linux & cpu=x64 languageName: node linkType: hard @@ -10446,9 +10446,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/netbsd-x64@npm:0.19.1": - version: 0.19.1 - resolution: "@esbuild/netbsd-x64@npm:0.19.1" +"@esbuild/netbsd-x64@npm:0.19.2": + version: 0.19.2 + resolution: "@esbuild/netbsd-x64@npm:0.19.2" conditions: os=netbsd & cpu=x64 languageName: node linkType: hard @@ -10460,9 +10460,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/openbsd-x64@npm:0.19.1": - version: 0.19.1 - resolution: "@esbuild/openbsd-x64@npm:0.19.1" +"@esbuild/openbsd-x64@npm:0.19.2": + version: 0.19.2 + resolution: "@esbuild/openbsd-x64@npm:0.19.2" conditions: os=openbsd & cpu=x64 languageName: node linkType: hard @@ -10474,9 +10474,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/sunos-x64@npm:0.19.1": - version: 0.19.1 - resolution: "@esbuild/sunos-x64@npm:0.19.1" +"@esbuild/sunos-x64@npm:0.19.2": + version: 0.19.2 + resolution: "@esbuild/sunos-x64@npm:0.19.2" conditions: os=sunos & cpu=x64 languageName: node linkType: hard @@ -10488,9 +10488,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/win32-arm64@npm:0.19.1": - version: 0.19.1 - resolution: "@esbuild/win32-arm64@npm:0.19.1" +"@esbuild/win32-arm64@npm:0.19.2": + version: 0.19.2 + resolution: "@esbuild/win32-arm64@npm:0.19.2" conditions: os=win32 & cpu=arm64 languageName: node linkType: hard @@ -10502,9 +10502,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/win32-ia32@npm:0.19.1": - version: 0.19.1 - resolution: "@esbuild/win32-ia32@npm:0.19.1" +"@esbuild/win32-ia32@npm:0.19.2": + version: 0.19.2 + resolution: "@esbuild/win32-ia32@npm:0.19.2" conditions: os=win32 & cpu=ia32 languageName: node linkType: hard @@ -10516,9 +10516,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/win32-x64@npm:0.19.1": - version: 0.19.1 - resolution: "@esbuild/win32-x64@npm:0.19.1" +"@esbuild/win32-x64@npm:0.19.2": + version: 0.19.2 + resolution: "@esbuild/win32-x64@npm:0.19.2" conditions: os=win32 & cpu=x64 languageName: node linkType: hard @@ -24188,31 +24188,31 @@ __metadata: linkType: hard "esbuild@npm:^0.19.0": - version: 0.19.1 - resolution: "esbuild@npm:0.19.1" + version: 0.19.2 + resolution: "esbuild@npm:0.19.2" dependencies: - "@esbuild/android-arm": 0.19.1 - "@esbuild/android-arm64": 0.19.1 - "@esbuild/android-x64": 0.19.1 - "@esbuild/darwin-arm64": 0.19.1 - "@esbuild/darwin-x64": 0.19.1 - "@esbuild/freebsd-arm64": 0.19.1 - "@esbuild/freebsd-x64": 0.19.1 - "@esbuild/linux-arm": 0.19.1 - "@esbuild/linux-arm64": 0.19.1 - "@esbuild/linux-ia32": 0.19.1 - "@esbuild/linux-loong64": 0.19.1 - "@esbuild/linux-mips64el": 0.19.1 - "@esbuild/linux-ppc64": 0.19.1 - "@esbuild/linux-riscv64": 0.19.1 - "@esbuild/linux-s390x": 0.19.1 - "@esbuild/linux-x64": 0.19.1 - "@esbuild/netbsd-x64": 0.19.1 - "@esbuild/openbsd-x64": 0.19.1 - "@esbuild/sunos-x64": 0.19.1 - "@esbuild/win32-arm64": 0.19.1 - "@esbuild/win32-ia32": 0.19.1 - "@esbuild/win32-x64": 0.19.1 + "@esbuild/android-arm": 0.19.2 + "@esbuild/android-arm64": 0.19.2 + "@esbuild/android-x64": 0.19.2 + "@esbuild/darwin-arm64": 0.19.2 + "@esbuild/darwin-x64": 0.19.2 + "@esbuild/freebsd-arm64": 0.19.2 + "@esbuild/freebsd-x64": 0.19.2 + "@esbuild/linux-arm": 0.19.2 + "@esbuild/linux-arm64": 0.19.2 + "@esbuild/linux-ia32": 0.19.2 + "@esbuild/linux-loong64": 0.19.2 + "@esbuild/linux-mips64el": 0.19.2 + "@esbuild/linux-ppc64": 0.19.2 + "@esbuild/linux-riscv64": 0.19.2 + "@esbuild/linux-s390x": 0.19.2 + "@esbuild/linux-x64": 0.19.2 + "@esbuild/netbsd-x64": 0.19.2 + "@esbuild/openbsd-x64": 0.19.2 + "@esbuild/sunos-x64": 0.19.2 + "@esbuild/win32-arm64": 0.19.2 + "@esbuild/win32-ia32": 0.19.2 + "@esbuild/win32-x64": 0.19.2 dependenciesMeta: "@esbuild/android-arm": optional: true @@ -24260,7 +24260,7 @@ __metadata: optional: true bin: esbuild: bin/esbuild - checksum: e7c1b123ab181a5b7e6a38f604237e4d5264d1bad80db225d9a26ab07c696a2a945824a11b7ecc4196d30b616e357e30f3cd3d10f4dfda6610df915aed4ae087 + checksum: f9ad8ad4f0cbcc675c059f2676c4458d75307af20f9168859de8642accd7f2b7d6bbe8286a23633790dcba07d1d66a8f63c204ea933a0d51300c1b69d4f25d8f languageName: node linkType: hard From 657e486eb8a6b937f9e4b334c76c338d40b4d3e2 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 16 Aug 2023 01:37:51 +0000 Subject: [PATCH 333/372] chore(deps): update dependency swr to v2.2.1 Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- yarn.lock | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 87b8894785..3bb3052421 100644 --- a/yarn.lock +++ b/yarn.lock @@ -21141,6 +21141,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" @@ -39861,13 +39868,14 @@ __metadata: linkType: hard "swr@npm:^2.0.0": - version: 2.2.0 - resolution: "swr@npm:2.2.0" + version: 2.2.1 + resolution: "swr@npm:2.2.1" dependencies: + client-only: ^0.0.1 use-sync-external-store: ^1.2.0 peerDependencies: react: ^16.11.0 || ^17.0.0 || ^18.0.0 - checksum: 1f04795ff9dff54987cbf8a544afc9e42d1350a99e899be8a7cdc4885f561e3ee464f78245ee2ebc8ced262b04023d134f731e276227319dc2d6e1843389ddd8 + checksum: 62ff1b8132966fc977df192cf4452bab94c73dbea304a1438745f27041917154dad32448d8a65fb40d5e3de0b1751ef3fd57b1d71ba450e031517f009d0fc052 languageName: node linkType: hard From 60109a8b802587af60f6c865d5ae6cd3295720d9 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 16 Aug 2023 02:31:46 +0000 Subject: [PATCH 334/372] fix(deps): update dependency @pmmmwh/react-refresh-webpack-plugin to v0.5.11 Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- yarn.lock | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/yarn.lock b/yarn.lock index 3bb3052421..0bc87c20c1 100644 --- a/yarn.lock +++ b/yarn.lock @@ -13850,8 +13850,8 @@ __metadata: linkType: hard "@pmmmwh/react-refresh-webpack-plugin@npm:^0.5.7": - version: 0.5.10 - resolution: "@pmmmwh/react-refresh-webpack-plugin@npm:0.5.10" + version: 0.5.11 + resolution: "@pmmmwh/react-refresh-webpack-plugin@npm:0.5.11" dependencies: ansi-html-community: ^0.0.8 common-path-prefix: ^3.0.0 @@ -13866,7 +13866,7 @@ __metadata: "@types/webpack": 4.x || 5.x react-refresh: ">=0.10.0 <1.0.0" sockjs-client: ^1.4.0 - type-fest: ">=0.17.0 <4.0.0" + type-fest: ">=0.17.0 <5.0.0" webpack: ">=4.43.0 <6.0.0" webpack-dev-server: 3.x || 4.x webpack-hot-middleware: 2.x @@ -13884,7 +13884,7 @@ __metadata: optional: true webpack-plugin-serve: optional: true - checksum: c45beded9c56fbbdc7213a2c36131ace5db360ed704d462cc39d6678f980173a91c9a3f691e6bd3a026f25486644cd0027e8a12a0a4eced8e8b886a0472e7d34 + checksum: a82eced9519f4dcac424acae719f819ab4150bfcf2874ac7daaf25a4f1c409e3d8b9d693fea0c686c24d520a5473756df32da90d8b89739670f8f8084c600bb4 languageName: node linkType: hard From b8741985cb56b56eabbeaaa4af436f93c9a9b267 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 16 Aug 2023 04:07:09 +0000 Subject: [PATCH 335/372] fix(deps): update swc monorepo Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- yarn.lock | 92 +++++++++++++++++++++++++++---------------------------- 1 file changed, 46 insertions(+), 46 deletions(-) diff --git a/yarn.lock b/yarn.lock index 3bb3052421..6645480389 100644 --- a/yarn.lock +++ b/yarn.lock @@ -15905,90 +15905,90 @@ __metadata: languageName: node linkType: hard -"@swc/core-darwin-arm64@npm:1.3.74": - version: 1.3.74 - resolution: "@swc/core-darwin-arm64@npm:1.3.74" +"@swc/core-darwin-arm64@npm:1.3.77": + version: 1.3.77 + resolution: "@swc/core-darwin-arm64@npm:1.3.77" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard -"@swc/core-darwin-x64@npm:1.3.74": - version: 1.3.74 - resolution: "@swc/core-darwin-x64@npm:1.3.74" +"@swc/core-darwin-x64@npm:1.3.77": + version: 1.3.77 + resolution: "@swc/core-darwin-x64@npm:1.3.77" conditions: os=darwin & cpu=x64 languageName: node linkType: hard -"@swc/core-linux-arm-gnueabihf@npm:1.3.74": - version: 1.3.74 - resolution: "@swc/core-linux-arm-gnueabihf@npm:1.3.74" +"@swc/core-linux-arm-gnueabihf@npm:1.3.77": + version: 1.3.77 + resolution: "@swc/core-linux-arm-gnueabihf@npm:1.3.77" conditions: os=linux & cpu=arm languageName: node linkType: hard -"@swc/core-linux-arm64-gnu@npm:1.3.74": - version: 1.3.74 - resolution: "@swc/core-linux-arm64-gnu@npm:1.3.74" +"@swc/core-linux-arm64-gnu@npm:1.3.77": + version: 1.3.77 + resolution: "@swc/core-linux-arm64-gnu@npm:1.3.77" conditions: os=linux & cpu=arm64 & libc=glibc languageName: node linkType: hard -"@swc/core-linux-arm64-musl@npm:1.3.74": - version: 1.3.74 - resolution: "@swc/core-linux-arm64-musl@npm:1.3.74" +"@swc/core-linux-arm64-musl@npm:1.3.77": + version: 1.3.77 + resolution: "@swc/core-linux-arm64-musl@npm:1.3.77" conditions: os=linux & cpu=arm64 & libc=musl languageName: node linkType: hard -"@swc/core-linux-x64-gnu@npm:1.3.74": - version: 1.3.74 - resolution: "@swc/core-linux-x64-gnu@npm:1.3.74" +"@swc/core-linux-x64-gnu@npm:1.3.77": + version: 1.3.77 + resolution: "@swc/core-linux-x64-gnu@npm:1.3.77" conditions: os=linux & cpu=x64 & libc=glibc languageName: node linkType: hard -"@swc/core-linux-x64-musl@npm:1.3.74": - version: 1.3.74 - resolution: "@swc/core-linux-x64-musl@npm:1.3.74" +"@swc/core-linux-x64-musl@npm:1.3.77": + version: 1.3.77 + resolution: "@swc/core-linux-x64-musl@npm:1.3.77" conditions: os=linux & cpu=x64 & libc=musl languageName: node linkType: hard -"@swc/core-win32-arm64-msvc@npm:1.3.74": - version: 1.3.74 - resolution: "@swc/core-win32-arm64-msvc@npm:1.3.74" +"@swc/core-win32-arm64-msvc@npm:1.3.77": + version: 1.3.77 + resolution: "@swc/core-win32-arm64-msvc@npm:1.3.77" conditions: os=win32 & cpu=arm64 languageName: node linkType: hard -"@swc/core-win32-ia32-msvc@npm:1.3.74": - version: 1.3.74 - resolution: "@swc/core-win32-ia32-msvc@npm:1.3.74" +"@swc/core-win32-ia32-msvc@npm:1.3.77": + version: 1.3.77 + resolution: "@swc/core-win32-ia32-msvc@npm:1.3.77" conditions: os=win32 & cpu=ia32 languageName: node linkType: hard -"@swc/core-win32-x64-msvc@npm:1.3.74": - version: 1.3.74 - resolution: "@swc/core-win32-x64-msvc@npm:1.3.74" +"@swc/core-win32-x64-msvc@npm:1.3.77": + version: 1.3.77 + resolution: "@swc/core-win32-x64-msvc@npm:1.3.77" conditions: os=win32 & cpu=x64 languageName: node linkType: hard "@swc/core@npm:^1.3.46": - version: 1.3.74 - resolution: "@swc/core@npm:1.3.74" + version: 1.3.77 + resolution: "@swc/core@npm:1.3.77" dependencies: - "@swc/core-darwin-arm64": 1.3.74 - "@swc/core-darwin-x64": 1.3.74 - "@swc/core-linux-arm-gnueabihf": 1.3.74 - "@swc/core-linux-arm64-gnu": 1.3.74 - "@swc/core-linux-arm64-musl": 1.3.74 - "@swc/core-linux-x64-gnu": 1.3.74 - "@swc/core-linux-x64-musl": 1.3.74 - "@swc/core-win32-arm64-msvc": 1.3.74 - "@swc/core-win32-ia32-msvc": 1.3.74 - "@swc/core-win32-x64-msvc": 1.3.74 + "@swc/core-darwin-arm64": 1.3.77 + "@swc/core-darwin-x64": 1.3.77 + "@swc/core-linux-arm-gnueabihf": 1.3.77 + "@swc/core-linux-arm64-gnu": 1.3.77 + "@swc/core-linux-arm64-musl": 1.3.77 + "@swc/core-linux-x64-gnu": 1.3.77 + "@swc/core-linux-x64-musl": 1.3.77 + "@swc/core-win32-arm64-msvc": 1.3.77 + "@swc/core-win32-ia32-msvc": 1.3.77 + "@swc/core-win32-x64-msvc": 1.3.77 peerDependencies: "@swc/helpers": ^0.5.0 dependenciesMeta: @@ -16015,7 +16015,7 @@ __metadata: peerDependenciesMeta: "@swc/helpers": optional: true - checksum: fd61d65fbfceb372178a14cfa998c649481a728e33b68bad90fed0ff05b34fb432f88dafb0c2257d54c4de49cdcdd12d2b5fe66f79abc553656445910f163adb + checksum: 95841974c6734c154426b7d3ee33e3b8a58ea870382918b18dd546de38160ed80b1079f35d3e8a4000d11d8ec3ed1e8bf5af6c83b5cb766dd925a42827e250db languageName: node linkType: hard @@ -16029,14 +16029,14 @@ __metadata: linkType: hard "@swc/jest@npm:^0.2.22": - version: 0.2.28 - resolution: "@swc/jest@npm:0.2.28" + version: 0.2.29 + resolution: "@swc/jest@npm:0.2.29" dependencies: "@jest/create-cache-key-function": ^27.4.2 jsonc-parser: ^3.2.0 peerDependencies: "@swc/core": "*" - checksum: 9f9fe7e091077079511e602afe0d0f270c5a274197fe6d55e7f8a8a0f44aadc70f726d8c2571b0eb2af8030d2bba601786adff2d811d6c01f27395c94c746edd + checksum: 9eaad322310f34e81f67d41411a7d60663341af1bd9fb65456faa914c936d849d6f643fa3b942a187d52e71e62c33097098c639d25c2047fa874f49bf51cec76 languageName: node linkType: hard From 462b644d2462e7e4b42184095cf455c36c1e5870 Mon Sep 17 00:00:00 2001 From: Matt Ray Date: Tue, 6 Jun 2023 15:30:09 +1000 Subject: [PATCH 336/372] Initial OpenCost plugin with light changes from `yarn new --select plugin` Signed-off-by: Matt Ray --- plugins/opencost/.eslintrc.js | 1 + plugins/opencost/README.md | 35 ++++++ plugins/opencost/dev/index.tsx | 27 +++++ plugins/opencost/package.json | 51 ++++++++ .../ExampleComponent.test.tsx | 42 +++++++ .../ExampleComponent/ExampleComponent.tsx | 54 +++++++++ .../src/components/ExampleComponent/index.ts | 16 +++ .../ExampleFetchComponent.test.tsx | 40 +++++++ .../ExampleFetchComponent.tsx | 111 ++++++++++++++++++ .../components/ExampleFetchComponent/index.ts | 16 +++ plugins/opencost/src/images/logo.png | Bin 0 -> 19329 bytes plugins/opencost/src/index.ts | 16 +++ plugins/opencost/src/plugin.test.ts | 22 ++++ plugins/opencost/src/plugin.ts | 37 ++++++ plugins/opencost/src/routes.ts | 20 ++++ plugins/opencost/src/setupTests.ts | 17 +++ 16 files changed, 505 insertions(+) create mode 100644 plugins/opencost/.eslintrc.js create mode 100644 plugins/opencost/README.md create mode 100644 plugins/opencost/dev/index.tsx create mode 100644 plugins/opencost/package.json create mode 100644 plugins/opencost/src/components/ExampleComponent/ExampleComponent.test.tsx create mode 100644 plugins/opencost/src/components/ExampleComponent/ExampleComponent.tsx create mode 100644 plugins/opencost/src/components/ExampleComponent/index.ts create mode 100644 plugins/opencost/src/components/ExampleFetchComponent/ExampleFetchComponent.test.tsx create mode 100644 plugins/opencost/src/components/ExampleFetchComponent/ExampleFetchComponent.tsx create mode 100644 plugins/opencost/src/components/ExampleFetchComponent/index.ts create mode 100644 plugins/opencost/src/images/logo.png create mode 100644 plugins/opencost/src/index.ts create mode 100644 plugins/opencost/src/plugin.test.ts create mode 100644 plugins/opencost/src/plugin.ts create mode 100644 plugins/opencost/src/routes.ts create mode 100644 plugins/opencost/src/setupTests.ts diff --git a/plugins/opencost/.eslintrc.js b/plugins/opencost/.eslintrc.js new file mode 100644 index 0000000000..e2a53a6ad2 --- /dev/null +++ b/plugins/opencost/.eslintrc.js @@ -0,0 +1 @@ +module.exports = require('@backstage/cli/config/eslint-factory')(__dirname); diff --git a/plugins/opencost/README.md b/plugins/opencost/README.md new file mode 100644 index 0000000000..d03ff4d624 --- /dev/null +++ b/plugins/opencost/README.md @@ -0,0 +1,35 @@ +# OpenCost + +Welcome to the OpenCost plugin! + +_This plugin was created through the Backstage CLI_ + +## Getting started + +Your plugin has been added to the example app in this repository, meaning you'll be able to access it by running `yarn start` in the root directory, and then navigating to [/opencost](http://localhost:3000/opencost). + +You can also serve the plugin in isolation by running `yarn start` in the plugin directory. +This method of serving the plugin provides quicker iteration speed and a faster startup and hot reloads. +It is only meant for local development, and the setup for it can be found inside the [/dev](./dev) directory. + +## IDEAS + +opencost logo on side + +### variables for: + + opencost URL + days of data (14d default) + costs warning lines + +top graph: +pick with specific query pattern +dates adjustable + +table underneath + +TrendLines + +Tabs on different namespaces/etc.? + +get currencies from cost-insights diff --git a/plugins/opencost/dev/index.tsx b/plugins/opencost/dev/index.tsx new file mode 100644 index 0000000000..41b2bd5346 --- /dev/null +++ b/plugins/opencost/dev/index.tsx @@ -0,0 +1,27 @@ +/* + * 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 React from 'react'; +import { createDevApp } from '@backstage/dev-utils'; +import { openCostPlugin, OpenCostPage } from '../src/plugin'; + +createDevApp() + .registerPlugin(openCostPlugin) + .addPage({ + element: , + title: 'Root Page', + path: '/opencost', + }) + .render(); diff --git a/plugins/opencost/package.json b/plugins/opencost/package.json new file mode 100644 index 0000000000..4c493136c0 --- /dev/null +++ b/plugins/opencost/package.json @@ -0,0 +1,51 @@ +{ + "name": "@backstage/plugin-opencost", + "version": "0.0.0", + "main": "src/index.ts", + "types": "src/index.ts", + "license": "Apache-2.0", + "publishConfig": { + "access": "public", + "main": "dist/index.esm.js", + "types": "dist/index.d.ts" + }, + "backstage": { + "role": "frontend-plugin" + }, + "scripts": { + "start": "backstage-cli package start", + "build": "backstage-cli package build", + "lint": "backstage-cli package lint", + "test": "backstage-cli package test", + "clean": "backstage-cli package clean", + "prepack": "backstage-cli package prepack", + "postpack": "backstage-cli package postpack" + }, + "dependencies": { + "@backstage/core-components": "workspace:^", + "@backstage/core-plugin-api": "workspace:^", + "@backstage/theme": "workspace:^", + "@material-ui/core": "^4.9.13", + "@material-ui/icons": "^4.9.1", + "@material-ui/lab": "^4.0.0-alpha.60", + "react-use": "^17.2.4" + }, + "peerDependencies": { + "react": "^16.13.1 || ^17.0.0" + }, + "devDependencies": { + "@backstage/cli": "workspace:^", + "@backstage/core-app-api": "workspace:^", + "@backstage/dev-utils": "workspace:^", + "@backstage/test-utils": "workspace:^", + "@testing-library/jest-dom": "^5.10.1", + "@testing-library/react": "^12.1.3", + "@testing-library/user-event": "^14.0.0", + "@types/node": "*", + "cross-fetch": "^3.1.5", + "msw": "^1.0.0" + }, + "files": [ + "dist" + ] +} diff --git a/plugins/opencost/src/components/ExampleComponent/ExampleComponent.test.tsx b/plugins/opencost/src/components/ExampleComponent/ExampleComponent.test.tsx new file mode 100644 index 0000000000..77c1dd610c --- /dev/null +++ b/plugins/opencost/src/components/ExampleComponent/ExampleComponent.test.tsx @@ -0,0 +1,42 @@ +/* + * 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 React from 'react'; +import { ExampleComponent } from './ExampleComponent'; +import { rest } from 'msw'; +import { setupServer } from 'msw/node'; +import { screen } from '@testing-library/react'; +import { + setupRequestMockHandlers, + renderInTestApp, +} from '@backstage/test-utils'; + +describe('ExampleComponent', () => { + const server = setupServer(); + // Enable sane handlers for network requests + setupRequestMockHandlers(server); + + // setup mock response + beforeEach(() => { + server.use( + rest.get('/*', (_, res, ctx) => res(ctx.status(200), ctx.json({}))), + ); + }); + + it('should render', async () => { + await renderInTestApp(); + expect(screen.getByText('Welcome to OpenCost!')).toBeInTheDocument(); + }); +}); diff --git a/plugins/opencost/src/components/ExampleComponent/ExampleComponent.tsx b/plugins/opencost/src/components/ExampleComponent/ExampleComponent.tsx new file mode 100644 index 0000000000..fbeba9305a --- /dev/null +++ b/plugins/opencost/src/components/ExampleComponent/ExampleComponent.tsx @@ -0,0 +1,54 @@ +/* + * 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 React from 'react'; +import { Typography, Grid } from '@material-ui/core'; +import { + InfoCard, + Header, + Page, + Content, + ContentHeader, + HeaderLabel, + SupportButton, +} from '@backstage/core-components'; +import { ExampleFetchComponent } from '../ExampleFetchComponent'; + +export const ExampleComponent = () => ( + +
+ OpenCost + + +
+ + + A description of your plugin goes here. + + + + + + All content should be wrapped in a card like this. + + + + + + + + +
+); diff --git a/plugins/opencost/src/components/ExampleComponent/index.ts b/plugins/opencost/src/components/ExampleComponent/index.ts new file mode 100644 index 0000000000..7e520a7ab8 --- /dev/null +++ b/plugins/opencost/src/components/ExampleComponent/index.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 { ExampleComponent } from './ExampleComponent'; diff --git a/plugins/opencost/src/components/ExampleFetchComponent/ExampleFetchComponent.test.tsx b/plugins/opencost/src/components/ExampleFetchComponent/ExampleFetchComponent.test.tsx new file mode 100644 index 0000000000..a714f640da --- /dev/null +++ b/plugins/opencost/src/components/ExampleFetchComponent/ExampleFetchComponent.test.tsx @@ -0,0 +1,40 @@ +/* + * 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 React from 'react'; +import { render, screen } from '@testing-library/react'; +import { ExampleFetchComponent } from './ExampleFetchComponent'; +import { rest } from 'msw'; +import { setupServer } from 'msw/node'; +import { setupRequestMockHandlers } from '@backstage/test-utils'; + +describe('ExampleFetchComponent', () => { + const server = setupServer(); + // Enable sane handlers for network requests + setupRequestMockHandlers(server); + + // setup mock response + beforeEach(() => { + server.use( + rest.get('https://randomuser.me/*', (_, res, ctx) => + res(ctx.status(200), ctx.delay(2000), ctx.json({})), + ), + ); + }); + it('should render', async () => { + await render(); + expect(await screen.findByTestId('progress')).toBeInTheDocument(); + }); +}); diff --git a/plugins/opencost/src/components/ExampleFetchComponent/ExampleFetchComponent.tsx b/plugins/opencost/src/components/ExampleFetchComponent/ExampleFetchComponent.tsx new file mode 100644 index 0000000000..c3403e1923 --- /dev/null +++ b/plugins/opencost/src/components/ExampleFetchComponent/ExampleFetchComponent.tsx @@ -0,0 +1,111 @@ +/* + * 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 React from 'react'; +import { makeStyles } from '@material-ui/core/styles'; +import { + Table, + TableColumn, + Progress, + ResponseErrorPanel, +} from '@backstage/core-components'; +import { fetchApiRef, useApi } from '@backstage/core-plugin-api'; +import useAsync from 'react-use/lib/useAsync'; + +const useStyles = makeStyles({ + avatar: { + height: 32, + width: 32, + borderRadius: '50%', + }, +}); + +type User = { + gender: string; // "male" + name: { + title: string; // "Mr", + first: string; // "Duane", + last: string; // "Reed" + }; + location: object; // {street: {number: 5060, name: "Hickory Creek Dr"}, city: "Albany", state: "New South Wales",…} + email: string; // "duane.reed@example.com" + login: object; // {uuid: "4b785022-9a23-4ab9-8a23-cb3fb43969a9", username: "blackdog796", password: "patch",…} + dob: object; // {date: "1983-06-22T12:30:23.016Z", age: 37} + registered: object; // {date: "2006-06-13T18:48:28.037Z", age: 14} + phone: string; // "07-2154-5651" + cell: string; // "0405-592-879" + id: { + name: string; // "TFN", + value: string; // "796260432" + }; + picture: { medium: string }; // {medium: "https://randomuser.me/api/portraits/men/95.jpg",…} + nat: string; // "AU" +}; + +type DenseTableProps = { + users: User[]; +}; + +export const DenseTable = ({ users }: DenseTableProps) => { + const classes = useStyles(); + + const columns: TableColumn[] = [ + { title: 'Avatar', field: 'avatar' }, + { title: 'Name', field: 'name' }, + { title: 'Email', field: 'email' }, + { title: 'Nationality', field: 'nationality' }, + ]; + + const data = users.map(user => { + return { + avatar: ( + {user.name.first} + ), + name: `${user.name.first} ${user.name.last}`, + email: user.email, + nationality: user.nat, + }; + }); + + return ( + + ); +}; + +export const ExampleFetchComponent = () => { + const { fetch } = useApi(fetchApiRef); + const { value, loading, error } = useAsync(async (): Promise => { + const response = await fetch('https://randomuser.me/api/?results=20'); + const data = await response.json(); + return data.results; + }, []); + + if (loading) { + return ; + } else if (error) { + return ; + } + + return ; +}; diff --git a/plugins/opencost/src/components/ExampleFetchComponent/index.ts b/plugins/opencost/src/components/ExampleFetchComponent/index.ts new file mode 100644 index 0000000000..9644c904ea --- /dev/null +++ b/plugins/opencost/src/components/ExampleFetchComponent/index.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 { ExampleFetchComponent } from './ExampleFetchComponent'; diff --git a/plugins/opencost/src/images/logo.png b/plugins/opencost/src/images/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..34fdda4c61ef7d0c8629ba7244555ec999518829 GIT binary patch literal 19329 zcmY&;19WCf({7xJZ6_1kwkEbcv2EL!*tYS;PA0Z({Zv&~ zcdgaC*Q!WGc}WCVTv!kg5Co|oV#**OpzMEnp>I%s-`?T71Ahsqv$CWJNbNNK+228k zsiu^foE!+vU;Y~iBq%Bf_&<=p4+tnO2;{#!2#7Q&-hX*zP^$l6z(7F4EkPjugVFv= z|7kz|_P^Tyq2T$T|JPzZ*#DwI+4I5wmj@C0iv}4d>#X@pU>tsEIfH<}q5acAK{B(k z|60?sRMm9Rl#}H#wzp+4GO_<@%HUz^@Q)Swb8~YuGO;kSu+aZS&^vqDxfprS+c}f{kCFeiBWCJs>}2WSVrg$j z{EuCupZ2aU{G_D+IQnnu-RJ|9oL&W?*9cukF98eE&#!6r3zg z|9bw%z5p}dzsUbj_8&idjQ=?Qe#>-ALD+r& zlRsq12G+Rh<8_MpB7q@bb=``**L=~zUm_nG$lB(aBI)3*vUhW=zMH-Rlb#v7@cw2W zSdpw0W7c)F2LHM$072)PT~I(mnB>GW_cn8JwmD9(XRP!_XpZ;l@dwMyn1}E!hKs$1 zbVO&2(^1D?k<65K`6sfjP-+Lm5L^{0nT1>tI(kOtRC2e5g*g1{Bi3lX89dvc)<0wx zT6k{#{qhz>%oR)UUAgZ@Yw*U1#2cCO5$J6) z4JDyqoq5UUu9+U}UbfQ4o~SkXCG?^iw(#tt0UI?zh2XETe)`>>TI#4$BoG#I`y8E0 zDsM}rkWDR_I9tm<^LhwtIM-8feU-$Gg8I$x{5zibMZ@t<*n9gBou*@6gM71SuJ|rN z%*vWf15us@p>{(q=@vjun@A+_>LejJMw zLR6%7?4=8%&fTDHd;u1c2Hhh`DPK@z3I?F%>gxAVpOIqtd4Oh5e{x_ zGbT#2%Pbr3`iCR#neDWB)L>0;-<)IqC>d9taV~QfjQN6}eYd^PP?{Kzo?NU@GkZ9V zz)lSEJ?que*+1?ixfFnZc! zbX&WM1k^ocdMk+!mz{VbM}P@d*-0;g@X~y2i$D;Aah(3Xjhi0PtJ&RQH4Y~OTT@n1 zp&=PUG*Vh&mtM(PojMU|u}#R$(MeuQ12glA@bOrP?+zu7O z3uen2d#IOp7U3Su1Q9Ps_9M5_a#T}_NI|2YtJTEmj-@_@{*Ik7+!G?(g$oMkI}9E= z-XmvBH9uQ%74;?CzhJqvJ$b%F8CsZ%hw}*Y2pogT;DWDz#~A4RneV_zDxvOY?I!?k8KBERR^H)$G34)b81qc+oX|lq+ z{2r`lkSI1J)paS{e2TT1<)e`^k8u~KB^QQ;)oB+CLxOT|XZ)1nzQe*PX+FnK2z-?2 zAQAfBRu!H}|X!ajGKZ$jk5h`X1mL*4dO=gD98YA;Js@>{B%h$uR zp(aoZ0@lhgrW;GV(_P&V_UC`0vaTZLE+%+5z@S`x?}Au=YUD{CO-;fK6-tsN`^xO| z;0#ls|9V~${1_5#Z)xdhX#p#p=cJ3_?+wGOQawgISBsANZ7w$w&B@FhbGm6LEV9}u{Mv( z=wV}MG>WE!Nw@krs8dJOYI$FZv%2ggP=yjIB5e6#L?&Tp@US|#VCS`)Yd>OSE#w~QIlm;(DcbgL})&8QNsJ6HKs~Z#CLBnT<*!=^=N}cN^wpox(_*jPG z_w>=*(rQKKL5%+|Plq+Ax`IzTwpMq|g5#HKHYEDaPOMICZYgO=)Rem9)Uwl)Kc<2o zpL1G*tm0rb-l4VmmY^>lJTEQAMRgpZDgws=#fR{P$L;ht=3g)DrhQ4rQl;s znNeB$R=_dIIHbmYI+LpkhjZo_tngbGA)KoLQ@p$-cuY7_Mvqa|*bEKb-Eum&scD}9E(VCgF?*~}J{!8ujZ(C;^VWE&#M!O*gD4hBx+&Kgf8 zE3VB3-iL0Ci>PwL_T^vRNw;+XF#4OShMcXCs^6h7uY^^Z3dD=2`S6s#95c1iGSyUi zC9w8(*W!9Z405_tp(t-Q3GS!P{9TpJ=ElXD7g`1=Gc&Cy;t06u@49cR(H~lB#*bwn zHwH$CGTat|-F=au_p8Ss{Fd*p&wU)m)})kZnp!J_?mUS6$JzVCUKc*NUhx-Bn;Hap zreqD#HVhj=0FRkg7sgo1`=+`dG?j5*3vIrQ(j_y2=)>a4G+5qJfp=@8ldq9IM82sw zQ0Tp$pM=?K8n<=Law%9I?YGGP$B-Ke&HVqDF&Jpl^V(B z*OrPBg2sYR8w(!-F@{-UwNm7-%%OmI?H{~*Ct&yDG6EI`@bY~3HzHk zg@b5@myz+-+7po;Iq2MSSA2;2y6lJXFl{6D%@5j`{2oG3M4@s|&AaAgl}U z4<6(6*pny-ni)1S40@eD))&BMW={B3yq^Ku3$G6yZ(|pwZN8vuY0sn|R!H|Fv7Z?y zS=XYymI1gR^vy8p2*HlCVD2kd`i?BP9YvEv`vNDEke?fJ+dg30ts^t``WE+5{o+m1 z9v_NAnGZxOA=s`>pTCWEb{~52WGS4X;Cbd-+7aCpH+cKit)6~v-1n6h?D^VbkBb#y zN#^}QB+7{`L$GIVwIAyZd)(DXo8GryBc3q_v2O`(8{Z-8eIkcPC(2qIL3-lZ$P=rL zSvU>szL?48dPCG{xwmP>$30bFP_o+PHzE za@<7jU~VM)^~Bn5snMXUfZ7%}-m4DlZN(Gki}*5OzVZPjXh>T7L07co&r;LfNz@8u z5C@K}g7M9>=w@!`Z@wNgoyMxdebsE_JN6GLIq;^q-1DJ5gz65WkxPl1vW$>PuB{C> zh0{{LBqO&1H-DB#rk6>bM^!M|qYVCj&wIW+0n79=>{+{Rrq^;c&l75LDIRjX$-4fs zOU4=+{44}V3chK+HY?-SxbN6Uzk!Z*fn%79;e9k1x*b+lR+TIVVTgz<87S?uf?N^x zg6R=|Kn>>QKiit+Qi|MT_uQ^&eS zT@#6j=WhGtbJ596*~xuV=G&hqngYF9#V6{A$*&fS_?sqHS#KHP2kEl7yIW(kL_QZX zt{E32n9}J4sF6b)OiS1~7O0>m*@VeF|GOYXPW=$r=hp;aon{%95;ryXS{M z0Wc9-V~W|`P6_kMaPPHgU0vJ#O(8U|U{OZw{h@6k6Eu}(E>XOq5@HB00gX%?>GZTe z;E%#6&=VGn!srs9Iz^2R(KDn_0v$hKFOsZDA&g0~VD5~1@-gOGQbXw}x88U4G@$g6 zUov6@9UuBn_&&1Uu1+bc-}-zw=f;v*)3v;X@t=F4+{sfhj}|4}@2Xt_^A8)TE#NCOlCtwAu%$PcQn-?vuW>X}pK|v(}fGV56DJ&Hh>z;?3JFmu}n-N>a7k|Ip$eYPt(@ZRx3zALY z(Q8hpW#3k==RQ=jxHi&af#*QZXWML=EptLjGBpacRLqb4U7#K!tNWdtfPC@;24mx0qlL-H+RdU|>oTJQV2R=Lx0dn}%yg5H&3 zNo9n)a_8rlCYZC~@gy~+av)xH;Zl|m+^P+x6`Yt0<@iyJ(Ive}(Yd+`fBh7|9m>&_ zEe11vH~bi=_%LWuszR5P1a6|dSB}Cv18|F~sOSML-kD%+?lO+}G}e=P8K>S==Q77< z4hwvK6w9~l(5lU-vQ4M1f2a-3W73Xb;K&>H%GN=!$Xc7@#B>u3>0wRs^QHj`^xq|1 z*12HMhsX+}Sj_R?4&Q)pmKp7Ma)jP=eEexy183U=`337yj4M5DC*odktWJklCM){E zt$`pU)b_m7%#@pf=!kU`yXB1Y1+I6h*!RUz$$jX}7N!@-cYT}{T#>aB_h4-`oX*8X z1$!UdMO8jcti>j-iuN)|e70c&VaSTU!3tbtc4EMBF?+yRaaZ~|8f;q~V3zu4jeXa< zhF53g(#oD_M~f=P#I<~QKUBKZAUz81!Sl>Q-e}SSrJ&CzAc$Y(M&g(Id~Mvcl;nz> zUW3oVD=RX#@b=-3kr^TT&}(hvOLjng{@V+AjaoXHM;NG zbq;QK#WFcvtw5K!caMkW;6VXJEZm~LfZ+&Cj*^xuj3H!YKF!Ytlg=Eb*P7}eln8Gd zD2&Aoed~_n)@~eN>3+Ez@DlFf@qn_>Sh>K~Unb{9d;xp<$1$zNGD`00y!6)lIkq4R zlKk~-;PwZ%t9M|68;@}$TR0laDpaV|qY@7V6g6-2TWm(}<($cS1}7^8QLOoe?>9nK zn+|FRUq{EEk_HML*5r1kL`d<-KQ=D#xS6f!mSv z(>^2hd(Z^Qd3@&y%~krkoYX3;2^IExWa!?IDvI3FJoO(R@*yxBqrGNeo0a1+5n?k9b>U-U!>Mn8G+SMbg3D~d=*s3PN=ic|ZhDnpcP0u{>BZDvQb@aW@f$1FuA}5q zTIA-3s0?~}?judt$|{+d7qGrLk9vnxS!<;i;IaxG55E#lf5&06E#^*8eF%rdb9Gfu z^uGvzYfWy<#JD$P^xoByG94{hlXXJ3v$1ntgUr@h#AkK8Ht!gZzqt4H2-sYe8xL13*EhP&I@?39aRN`V*6pl2gj8Z$<2U|p-Z9N38g5>_h z`TPbDbS*^hRK&%Veeu;b>ahwelQ`l}I|StnMnD6$Ju*Su`|QSFK=t-D`a=bJLf$Yc z@M?pt@3p)+;ftn*Ok62n%dO`+EaG?@zpkN$XAR^RB-n(H#ca-rZphlI^OHPs4$t+c z^qP~LtxJMcu2OnYQ&8Gsc za8#y)*qr4i?t$NUyro?jpOYnBrwl%epDuiDSGMojWAF?sSsTviJW9P-uJoqdFg55p z{2$n7T?4l&LXb)7PHim-Uyjk`r{&|AX+`MuseZw^jpH=-j&^~&9!rkTd~2fE*5aR{ z)9+#h((zo*%|Pr3mAfW#2dkrt3D*OoiMmdsizJ8ukj8w4mno1iY=FcBYU6sNjbr16 ztXNSobf#1(XxhDZ*r@(z%x0h!(Q_8`RS#3z48njry#|_z{PxSPN;D{K;CGQL?(bmZ zwQf+K{$vDa@ZxgguxzE-Ph?Eylzp#Ay!2c2(-!Og9B?iE%7fqI#o*e#EP}cjt|p0+ zvbnP7sah7Skltb%!mM3Y5O}mbJh6u@$a;g>jmMP|@bSnv2xjnwt8Xp?;M76=luloe zGQv|C8jd(_tH+LIZtLedUz~~@Xt)$=_z@{jSu2KcW??s7Gz0fsqo91c^zt7_gICDd z`f|*+qs(&4WNS#h7*&9Znu2Ia(9tq~&jD7eUzXeq$kr;K7$9r>4PI9gz!eI-B zU23Z*L{8{^B=YVX5lbiNl`N2iI5L;WLLvqhvc4J6{Mk0vs&Q9G)U{8F0<+o5?hyAK zYu|2I6&>QhhW1RH*bJjU6}rFemNBvMBfA}5%VD-iM<>z<>kRYo#upMe1njAVVp(D9 zg)8#%6xc@LiKirNmUGJY z%RVI4evTK*X!k~TYywEBIFD&UO(mp+tQj^}{i*HOIt_kPzt%v(D`ei!-Zx9W7D~V$ z#2UO~A_z8WeuC-@ZK8iCsG-kdGPW@+&h1Te=uA!err_rO&e&t+FU)Pq!CT6WUC=GE zH@Np+=5M?)A!iJ0vAmLTeo4N(n<)}P+jk}lG2Go{|C5yO)|Sv0J2u|ZBeVQcgZ;N( z_}HBQ#N3l%w%|sYd>gQ$n;c&c*F3r#-{HEL&OEsO=(fZlr3l2YmUaQ5$b*@>4*sO3 zZCl_%tJG=83kLaMyXgj~xIRbG+_Ey_0gLjM)7U@R3~lSeZEB#zwuLUUHUSqNY>}>79sf>U+c+kE zi*@>uSIpT!AoKm4oC^0#Du82wz|ZiQ@vB=dW#EilChY`4QvOly@gn~ZiW!+p{&)0| z&BLB*pVKNmRKa*RlU`%rDb$|fxMw$sWA6&1!lk*5EifsC!=q71Yel;|*4wQUQAM*rGrUBV!u<+=(pR|(E`1MVm8+flW5@W#S`FvXP z_h9wj@}BmaVZ3{pwgS11?5A(*>G?j(<~k*=G$o_MF-3)bS2UZ?Bb>t?Ksxc1;#;>* z0umiA%;mItlXk|cX-F-T>Jjd&zL|ZD1SQ0*6&ml243dP*=xRkY{6G$O(RvY$& z*z~jtL5Zp6CuXjMYx!F*9iKDxseN*lTq0gR56IRyDXvt85n>dw7J$q`o~!1L3TDd; z^hIG_Le(vX@%BMi@U)mQ-`jFVqD1&gW0zzjsaCD)5mm}JvVX@K_xfhs;SnpIRZJ&G z&!(65SYhBB5}fNi1&Cw4e>Zq#z3?|}CP<;~U*=c6Rz2CY3T=(~L-J>7?w*3Mw0OPq z^6gk)Ja39#Px6Q?BI=LpO0qiy*tJ3T$%Qujn@e<1tgNZ9o5mXl`?yc%Wu`pp2D%GV zC-DQ{LNU>5x_ESleD65OpNo0RHcRivTyhLCR_h&MMxQ8-k2nmA)Z9uPPrW1#H(*rZ zSze(218=E!t5FvJ>ax~AX=_3<+GO3$=WCwWe_1 z{Y_nzRaju<7vB3_X>8fypapgnD0f>oCHOVuW>2DsZY3@hI26M6?V1@(rUG8%$r8Ez~DNsC^#EH*_?-y2mbV^btzNOoUOwTXs`_6OS(VQX$! zw_A1vYUbAvcjps}WfUtg1tHdBneI%59GIj{E8wHK1&f!E?ZZ8f)G~U2_%xgs20tX* z2Ceu}ZNzz;OBAsS`Le}Ih@zdBML6^cv>)tOD<8;(R0MK1AjexGlf2fa`^PancI|&h zxU*Eg`ySh>Af72n62O>>YQ`huoA0Gsx>jHg5Rp3vgH}_ONYzg z*Yd1(Xm+V`Zi>)Z(t&j-6C}F1ip)$vbUjclkOH@0v#!9^X}B70Nd)X5w}o`#mNEm5 zcBA8!d*$j?4Oa^d?ls<%EY0BJs<_NptB!}{R&-t4(ke2$tj#6OBroDfcsI16Tkohx zb@IGMsh5|+vp?X+$pSGQ#)qfl^q>n0rY0r#6p4?Jl7(cHL=!v*!{E2#&O&7}GA@5f zdfAL+m0sL)qTrXmTq-vCbKeIoz>QLRT26i1vBQ z)l}dX58Z zeNst`tv6xq^dy_+A0zZe1#a4?Y|D#k8Aw~ZKpOSlIxeV9&A?oPR!PHp(K}eTeanjR z<5W90n)a(Sm#zLJ=UZ@&b-j68cm&>&_z{5U)~|w$I&wUHUMQQkdT9Is>(E)4MS>>PkQnun(s%iT(^vmJv@CfgoyM0r_UM~! z_&gJ9{k?~{Hv0~V6<(rS{MY9=E%P|!Lb_t;^T=Hb&u3fy4b>nGdAiu$UF*zqVuQhe zbT5A>fvapTEmC&Q&iXo!-@@`#SzkCl_L)(y)DL469uR{?>W~C>H8t*Sb7FVRKYx_Q zMk~Se7A|W~kIm*J<=Dq=otfiLN$s@lT1*e!Tk?V~WQF`xZ-kX{eh7y~R%nXHNN%Jf z+PwQh$5^SZ#@7FIV9vb8o(IEh;t5NxceMQlYtw&Z2+ku!kv@gvt+DzOpq&O4dn(7p z&$(=5ecKZtq@quWtcPpq9kXtR)fCK&@|nhJpYd??66&ekv-p_L3d(0HPkgZYB+_N~89|0Rie7PJ3+YgpMk)M}G za9Awnyczubl&sf$k$M8=bG17^C-tm07DtRpqj;I&JR`e!f)yF$CL_ABk&wPj6dzX!1t6pNObm3=)G0u@4LvX(OTX<);iE$}1*aRz}AMpg+mSL8;<2`ILH#x)l z;n#K%#{LmjoXX;g=H}qR#?66ymI(mLW1+mY_gNLa#=qc3OLES)r=rw&SxH9mmykwn z)aHj%j)fK>oP(^FIFZGCxpu2Jq?5{xF>(Nq#PxmH$qqDm0xh6zBsCr*-w8agO7Mr$ z&XrPoFX#Ew0+P*sA@xpJebi0mPvSNi!xj48q~{~glvYn@Sq>6FXDL?1&0D=ZeTB8* zRTE65qymAAHZ2MKWH#5%bnK1zAjd=|FQ{5syO>Xd zoPUV^!j2RDEWk&dLzH^Y>2yOFWc62Nm~0ZK#{Xd(7;FvwAYKn6)j|Q8gRir!&TrUv zY$dpgVZzGIc*2!!E4L=%{npp=_{f~|vZ*OCi5oSev$Us%YN1yd@r`EddLhO3Mp+)l z+&fLaT{`}8B*hmc7C0*(kvs?=y{_YFW50rEUIA2km&0zX&>^=WTz^n78&1AvmDfWm z$_rwW=IyqMh}Z4YN4l<)dLox_=0?x~l9b!MfmHhVYI*fL6M#^f$l_1KXkF244HklWo6 z6ivHFwxFR|%3hp1dgugoykUTd*i6=~cWV%Dn@SHoASlhuX>zc;<(Deh4?=s-bA4t7(r}+qf~&QLJFc;&I1##3nyX0mTwLSR?ZDE07BC zE1Xck!A5dXzu9!9r2z;eIAD&C+5KfK5mMYjDRt2@g(I$ptKw)zkV=~#?C#p4AhNjk zb?izN+sBGm9@OtZ(2$v9L+g1a>-AU(Ih)!t)|Y(-59ij2@qFaXCee$0-b#Fi1<;`W zm8BoHY}q=NNqb4j&*}{Nul-HfW-8=maG<1$w^Z*@5sdn zNkq?-ZptFJ(sm?=;|^!V_$bs7YY5VYa_R_o_u2GVtZ=)39*(uLhm^aQ7XH8-U~=+F z9yQR(Tb@^OCl}5{)OW_>4qVn#ZcipR*Wa@_1|i6}oeYlG?%ySBLOwHem}q&yr9(j%0dmx8C59L4zh;kwZ`Ds=fK zhJgf`SYI4MB~j%3jRi$~!+b?J6DjhO|5xr2THYd2s61GA9mJ)sfhOy-Hr9~$Q7i3+@A z?KmrZaR>;+zAPZ;-4E-Kp+5SOHf)>kGoLJQH0R3ce6uYJ4BwY$9dusE1h58VKuI}! z$Jl?bhPJKND}`&@mm}m=OtBnP?9Fukjh^GC2^XSW#n%Mw9Eet|^uWvNKXi@i-+&L+ z$w%Dh7^PO0)p|;O>FSIf!nj;6nWsjqeQQBFgBws78Y`YHC>MOa`)Jk9&S>*Qz5DyPhL}+EGi$&d!%)@4+ZM{dd(+hV|0O@2BDn`P*wc-~qQ3oQ5&EWQ#WY z&R=`;?zWa&99dh3qA25+-VS&xC0Z%|be_aYp1NMP6G;g&f0(Kr8Zi$KQ)C>Au+orN~lc6 zSdN!LM2K`&67aCxC>5RaA_k4=tKKn7vD(Q?D2*;MPwL5X6L2*|IseAW8xN~R}Fv9|EQG>3;AU3(bP5K+|-6PFjN?m#waIO=ri){csA$5)})#}rk zuLK}5>p`NGLw#z9O{$!(Pev~Ws~oD2ezDg9F%DOpe?G^diNNw|x5j&zO$>|r#QiZl z^OQ`7xoWbwE>XadozzjHuS;_^@d?N;BMQ9+FsXpHUAs8?iO51S8|5Ceh5R(1k18at zYmlXkyR<8(XIwG0E}56FT1c+!C3#$KZ;S?GpVCUvcQ_o^d~HWY)s5D?#W99%a7w+r zmJFf)V*1o{31?|eqzBk<>Wy{Yh$xR-80-ejZKDl?Gmm%H1V$2nGyY;m&<_E`y}AOg zhOQeO^eYycA?JZr)ZH@{H?wax3w;<)OFgmh(Qds#P3(pWUMPXZ__$pV%qYheIc0h3M#NNkc`p>kgH7lY2)?X&dEWKk@_{}uEAwZ`#VPpTY;Kv5+0Iq zBO0G{#w?j%8OwVHtJfR!@;2f%~;ZE}dD)63tueSxhYh4})|;f(|5O zO><6Xar?Mls9QXv2zJa5_2);#@J11Le@olMqb*i?=vMg7!JkiS6M3&r?9FSPEos^J z&>h_?-xcyayX3C&a7N4zp4JV% zk%}HAH_`H@DR}u_8N2c1rr`$4h=n>_?i1?sOu7S%WNK8xmE8^dMX|H3pmXKPLA3An z^QVeRXN4?W#16qRgZvpaWJ-aXu#u;o#mq0;;F_-&62tt`` z`dM>PwH~S7`jz0zW`-3LD&835kbtB1&(or}NDqAqHJgi_%qbR5*`1-d^h3zJVq+6kH+PYJM~)kYpJ z7TAHeUFkoSRdYTj?CKX9^>cQ_Mw^(ADG;b2R?=+FT+BK>&h^aP1xIa%I;dO-5FR7S zn>b#?n_-_@v_ipLuWXD3v&-By?9nAjugDNHZ(ex81J^P@=JX;F+jy& z!G;XMfBna6cu9&>=0@3xIpAVO6Tr1=y^kZtMT#rB8-uF zq8)xLo@UXdJawX;p|hp+Lhj0~!UOuX;7=tqc&(tr(<^V5JsvMv1M?J8*VsvE^bGo6 zQ2Y7K5OWF}uE6UTkx&Dbmji$Q2I%5{XwbcheVrSAOc3`n_x0%Tk`5%pZM9^w8zN{>=ut92ifZO9O6u&sh zxLjva7Qa>T*y4F$v>F^|U^lSxW2yZN=%#n!GzRSWI9qd}j9{ zy;5fBjIR^zn9P7QuXp8A`1m|;K2P?j_;_9;8#VR*5f34^(r@+EIlQ#kl8fAr`FX5m zpR-V4mV*C&ds*4mm&F7xQM%w$ce_t+2Hpjhy;$tj`dkoI+Vv!z&n3!Z(b1Zlbi|a( zoEFhXMu|q`8ve`clU`;N_S?YEBN}63S1%Jv+|-qqecgX5{i_<<*>X)`V}o#0{-7jr zNl5udiXi5{vwaHonlef8$TZwGV@T9Z=%A<_eU21v^z!_;rl=D{?!C{tDJ4pkJu1d9 z>)bdcap9MwdVWPUpbPLx zjgXCL2%0`jjdmHD+ukpdK;V+L-~4O_Yu1eQr_28e64bK3joEW>jm%fj9{Ua6ve0A} zT@HVz7+7PVA?Ug|TWZaB?hyyxF>{sor`w)*lc9+zv)r4dB$Vv)l1fRHP0YMqBRk6M z%QGvNaY6;xK};}(?3DtXi~p7Kn}q(ev3qnx?XEdAEd?|FV#V%d#1)PxG#X zc94oTvZHA^UCIHQDq7q(dn1lpx_27vbE0?Yqn}kOst#recN|N27hJqpuN5wH6GsP! z(E+xRQEXFaj>Yn?F*3$Q>@;nnH@Fu&V}xbAwr&(Ks1E0%n4;CTIXRs{9gdQdxNZ;Y%cAX`-|)e3P1u~hVZ+XDEJG-) z3!^S}}!cGbCUS1uJ} z0FztIf4qT0Yt35|7UmS2d~*+XMz0H$7+F6EnP(wDheP8G%_@N0NV&B9Zr2*?U2BO2 zM=;vPlquQzs(={XIWegN)V0^moNrav?4FD)_s9c%f~&dRx=oZ{?OR~|^vBJ-(_E36~b^j<#%wjzS7Ed9Z>_nW z7HZcwrjQFx$Ip(;Y7DIMZuf4RJNkjzrwF>V!ieyR183VRqUC_{{VLp+HhW`aW^%V4GIZN4c{ z7;b_(Cqh3@BY`|Pd9K2%xr2DYJz=Uz7w(Z-^H1^v`D2Rs&CJn_6_V-g9(+>5!{=EkbB!5GQo0QLJgo(2lXecUp)ShO3^JtBe z7vLN+O7(-Tc4l4jhL{PNqOb`6o`GU9Gs1*8CE=GVvnCtcCs7i1tb8HAdldl?R`96U zw5DA&Vf|CtCE4c=21smjYBx-h77+}b7U76#arlC$vY)wq16y^Ue;`B2L~A!wo6SlG zbS9P!EG@0Tw%o8lEV(bp+kEsmB%Ml_m!wUEVwC=f$ID1$fQpX2+1-OzElb=r-t`t6 zFtB7)7vR*y>~e4HeYD#Ud~WPSo}EsZahBSH(nPEt)}tR{yg~!(R1h zdnxs9aPA6Wdv=!s6^*gFujvE!6IXiRp5=ACSF_BClZ!^2Wi%af_S%20%58wwc+3Yy zdiRO#CX!@+H(k`7=UoAMlRWU{W(hy(edY3e2J0?ojcg>w`?&Z(zRUjk?=F0sqY-#+ zoF_6+$i!pEcwM4%va#M^cIhvIo6&B%4TV{gl_NBljnkxlr^;--Q%)>r_9p6vG_)6) z$2L<3dUK^8B2J|9LuBE`hb>tz?8beUtB?w9hR8Tfzwg7cYhnFfUVi%r@keP+`2#)e zE(e}8uxx`Lj=jIRo1svXp`P5NW7@Lx^((hJT8tQ8c_;fwzu^vqX0Rzc)sB5 zxbh5R$jpROtBJwj$cpixGR>T5hI-dIZtXZk>6~Qq9F|`e=vSW5BubKN%ZeF1R_pX_ z<)6}ZIgGk58W~|l3cKUmw{Ppvz#>&&Pi6$dgeGBc0=&q%#p=F<*&o5{IY|7>C3Rct zsW-wE({YlE6bxLM(P8I(p*QxZfu(6_n)d$Vi|9_!?-U41?-Z|8z3M-=8jff*8gS`c zg#r#5l6!S=($QwSt|BXuKESABF)S)N#h3HKc9Vq`&`Pj;a^i>O!FEw%`>O6)@W(S? z1crnm@)B$rsa4LF;vh~3cp>`=$XH&gY*aO%9iY9h#wq(AI1DSYv*k{D5}2iOY}RgI zdxp{dOEY}mZ;BJXx8Gka#RmM2B$+D>^b`zsyO;AysnZx2F3(Igji2fP_H;7%JVZ+3 zaoBFNz{--+?jloo>7dcnVlcrx^!WcM6A|LS0ve+rSNlP5R5ayrP*r>Hg+@M2+X_78 zN}hC=)fD*}QcR${(-b1>+l2yxkIvVS+CJn-q0$Tw$T7=}%ZLxTM+hXGRTyB%ncI(G zN9n?p%{4F<6g;!%D*{s#$ZF@oNZu&{De-GuX$qFFc*RN=0fCg3NAhcjqv^1EdS%ZK zap9MuKi_>GHp*X-Tk)?Qew-)glYrL630$8+EA~zY-L`hb>8lf!MV8B2l_8FdKn|7U z(ARY8e-ks0`CJFkEnyNj>s4$!#f19fn@W|P<5w(6$4HhhV;7z`jG&?EC`3HgpVipg-CJBXQXlVwn#2b z1am5Y+9enuBHCusGXSJp>ka;r0>rc*>+J8wd|eK4z&E*6%B_LWb&tzpa$Av~OwL)1}d&<4x#TEx@*2F)_WdyX; zd6hYk3PdFbSd=6)c$Pft3Nkq1&jP{7j*!(Gn>L6D52|?b7!EjoWUVFt*vn$4*gxum^J!dcP%-*H==`}0uysxN`N>tXaOkEcfN}F z0Io+M=oy9togVH6BLCAbtf@)X&xws!(#NJ}O?9Dg3X$(MLIW->tZ-NY^>XVOzn|@B zqn7*%-hirKKVw=slO&iH%eOKDsRkDRmUbiAzmGl@Y{|NViN;KpM;(?W8!#FA;}H|( zqqTjcphCt;4Mk8B29;Li$ty19F6Z!Bf`v0?uv;gW+T%ay1_ArUs}3BC>XCJ8(t#K7b$+eZXe^Cf*H1BjVLt zI-8zTn7r3%O^~+qws+pF=gz`#KMbb0AuUvJJUZ76K|46K^0QgCOHKP;3{^d&d^ zw3o^9^t;FZn*B9l@kBPKj%dmSESlzD*9RcSPY@o{5&@?#F88m8mogL@5$r-sDvG*k z^*yRKc{yu24@UH%o0{aN@OM(C0hwq{uNVkyzM{z(8*1TF`uz=xd8}3cCrt{n^|m-c z`4gMRm67C$*KK+-o;dP%w9+xqdLsG7Q=&)8Gr+d@ic9EZ+gGLy1SbLw9zvjfES$e$ zj>WsAOr>S%*VXCnt=r6@qiOT#4BiZxn7W}kO!9X!|;Na~;Y6fgSdcve7M@*cwELX@QU8qX8fN3cI z?6a$tG9f2hb(x9mZwp2RjT2>%$WwiQ9vYkvR`W9$ue*Gr6*r>xlS5}pWr=2O(2G& zv~0Wv?Kb8CXLVV~aQV7^r!>_Ywjy&k=;+)qX%y1b*k2j1j)&H~Bk`^mmMO+v;kdh` zVXaW`a7lR&vzGIz^O?|itfjy0mw+gTV&edyMVUC>j%Zj6&2M6&^{eD1NL^{!z2vkG zif^br1tdNV8Qul59NLg^xnou#cE{MDnVVHW@W*qQz z5{m`{wYdg|wFtk(yrg(;NjP_-O%aJ+F2tMVJb&`ku_l`z&x{xQB)uf$q~Qgtw2Q^I zPtV5d1!gZ%9>l8FVUjo%UJz$F^BpQ7#^$r&(L!T=0FCPiWQ;d>z<@31%zFDR0|pGt z;V0(GlR)E?jMg37ht6rf>td`SSuJKT9Zx!bGCz+Yh!hO%?mA!4(bgUv74&;smLR0%m6U^WxVlbwCDT2=pZ7S`t&!1A z@5F7>o8Or$vlqcz$MWpo0{pA~^YzQoHYRW1)ix~GnHw}{;GlMPa>!tgykWA#%y7%* z&4=*fgsjiP16mf+Ja{j5kt-QV-fdOcF#3KpEc{o0TYOC+$b6h73d0+x4nZ=yv!W7Y z9XvmJ@#PoCVVKMKH3PJ`(^4kTm=nL|AzgS8B5pL57k0Y6#A-%7Y2sP)Y^T-CZq|!? z(<7JfP5uO*o0*lbQCO3M=-3aMxM{w&i1eht6eDYHVL zXPw=upXx52&^sRB3AWhInd5{-GS%B_>`McnD{~1}5AE~R_M?(htP?Kfvxxo|Bpg!# z<1=78o=w|L^>I8c!R$_rQJqS7^}i&Svb?;m+H@0xq{>QQ@2gOg*5H^hM1}RuE>u7n zo8O21;Js$fvOD62_$jn6j`j(IjaxU59yxNvvZuj*F2+x#=7kvH?Q9i#n(MdmE=R?gty{N_<^2Ykd}qF@GgruJm2=0gw!xcQ zw;g6roh2Q9UDgmBhMC(j`eRqJO9u5AZC^xlyB(>O*Glk)_FaRvZryfJAs+?#&O((w z?6UW_Y}-8Q*{z$#vPoSBKDP5xrTcB+{W$H^rmK8aC{Urmn}P!SuBnw(pY=3O1PC9* zP<9v^mlUeW5=u-r@kPwW%Qvi>^4#4o9ggsmN~$m1oWfvdE;oRcHw0R|hWCKFQyy^G z^k>w6j<-$Y=Y!1Ug)P9Fs8tnKg4hL@8*tCUhdzi`fK~>J@bF*Fu-&2B?)ZtrCs-}R zv)MlHK7y2CUb(DLphAH+8wFm8rY2fAznq0Do{fV{BcA%#`I=Dq zt)N7|wK->Fx|Fr#Em#&qXzfLKzKN&l+F5+UlN8APEJ6j zX_DnxZcFf*xNEYfhsa*mdvK0=J>m79`b`|0u6D&Q$N6wG72Sr=mxdN%CKwJ;H`>a} lXDm(nCZ { + it('should export plugin', () => { + expect(openCostPlugin).toBeDefined(); + }); +}); diff --git a/plugins/opencost/src/plugin.ts b/plugins/opencost/src/plugin.ts new file mode 100644 index 0000000000..6a97175770 --- /dev/null +++ b/plugins/opencost/src/plugin.ts @@ -0,0 +1,37 @@ +/* + * 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 { + createPlugin, + createRoutableExtension, +} from '@backstage/core-plugin-api'; + +import { rootRouteRef } from './routes'; + +export const openCostPlugin = createPlugin({ + id: 'opencost', + routes: { + root: rootRouteRef, + }, +}); + +export const OpenCostPage = openCostPlugin.provide( + createRoutableExtension({ + name: 'OpenCostPage', + component: () => + import('./components/ExampleComponent').then(m => m.ExampleComponent), + mountPoint: rootRouteRef, + }), +); diff --git a/plugins/opencost/src/routes.ts b/plugins/opencost/src/routes.ts new file mode 100644 index 0000000000..b7ace600e2 --- /dev/null +++ b/plugins/opencost/src/routes.ts @@ -0,0 +1,20 @@ +/* + * 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 { createRouteRef } from '@backstage/core-plugin-api'; + +export const rootRouteRef = createRouteRef({ + id: 'opencost', +}); diff --git a/plugins/opencost/src/setupTests.ts b/plugins/opencost/src/setupTests.ts new file mode 100644 index 0000000000..73dd8dce47 --- /dev/null +++ b/plugins/opencost/src/setupTests.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. + */ +import '@testing-library/jest-dom'; +import 'cross-fetch/polyfill'; From 6b3ea5fbf5f2c2812060f677f052d1c80740a52e Mon Sep 17 00:00:00 2001 From: Matt Ray Date: Tue, 6 Jun 2023 18:13:25 +1000 Subject: [PATCH 337/372] Renamed to OpenCost* Signed-off-by: Matt Ray --- .../OpenCostFetchComponent.test.tsx} | 6 +-- .../OpenCostFetchComponent.tsx} | 2 +- .../index.ts | 2 +- .../OpenCostPage.test.tsx} | 6 +-- .../OpenCostPage.tsx} | 36 ++++++++---------- .../index.ts | 2 +- plugins/opencost/src/images/logo.png | Bin 19329 -> 0 bytes plugins/opencost/src/images/pig.png | Bin 0 -> 8173 bytes plugins/opencost/src/plugin.ts | 2 +- 9 files changed, 26 insertions(+), 30 deletions(-) rename plugins/opencost/src/components/{ExampleFetchComponent/ExampleFetchComponent.test.tsx => OpenCostFetchComponent/OpenCostFetchComponent.test.tsx} (88%) rename plugins/opencost/src/components/{ExampleFetchComponent/ExampleFetchComponent.tsx => OpenCostFetchComponent/OpenCostFetchComponent.tsx} (98%) rename plugins/opencost/src/components/{ExampleFetchComponent => OpenCostFetchComponent}/index.ts (90%) rename plugins/opencost/src/components/{ExampleComponent/ExampleComponent.test.tsx => OpenCostPage/OpenCostPage.test.tsx} (89%) rename plugins/opencost/src/components/{ExampleComponent/ExampleComponent.tsx => OpenCostPage/OpenCostPage.tsx} (54%) rename plugins/opencost/src/components/{ExampleComponent => OpenCostPage}/index.ts (91%) delete mode 100644 plugins/opencost/src/images/logo.png create mode 100644 plugins/opencost/src/images/pig.png diff --git a/plugins/opencost/src/components/ExampleFetchComponent/ExampleFetchComponent.test.tsx b/plugins/opencost/src/components/OpenCostFetchComponent/OpenCostFetchComponent.test.tsx similarity index 88% rename from plugins/opencost/src/components/ExampleFetchComponent/ExampleFetchComponent.test.tsx rename to plugins/opencost/src/components/OpenCostFetchComponent/OpenCostFetchComponent.test.tsx index a714f640da..0537e056fd 100644 --- a/plugins/opencost/src/components/ExampleFetchComponent/ExampleFetchComponent.test.tsx +++ b/plugins/opencost/src/components/OpenCostFetchComponent/OpenCostFetchComponent.test.tsx @@ -15,12 +15,12 @@ */ import React from 'react'; import { render, screen } from '@testing-library/react'; -import { ExampleFetchComponent } from './ExampleFetchComponent'; +import { OpenCostFetchComponent } from './OpenCostFetchComponent'; import { rest } from 'msw'; import { setupServer } from 'msw/node'; import { setupRequestMockHandlers } from '@backstage/test-utils'; -describe('ExampleFetchComponent', () => { +describe('OpenCostFetchComponent', () => { const server = setupServer(); // Enable sane handlers for network requests setupRequestMockHandlers(server); @@ -34,7 +34,7 @@ describe('ExampleFetchComponent', () => { ); }); it('should render', async () => { - await render(); + await render(); expect(await screen.findByTestId('progress')).toBeInTheDocument(); }); }); diff --git a/plugins/opencost/src/components/ExampleFetchComponent/ExampleFetchComponent.tsx b/plugins/opencost/src/components/OpenCostFetchComponent/OpenCostFetchComponent.tsx similarity index 98% rename from plugins/opencost/src/components/ExampleFetchComponent/ExampleFetchComponent.tsx rename to plugins/opencost/src/components/OpenCostFetchComponent/OpenCostFetchComponent.tsx index c3403e1923..80db2be5e1 100644 --- a/plugins/opencost/src/components/ExampleFetchComponent/ExampleFetchComponent.tsx +++ b/plugins/opencost/src/components/OpenCostFetchComponent/OpenCostFetchComponent.tsx @@ -93,7 +93,7 @@ export const DenseTable = ({ users }: DenseTableProps) => { ); }; -export const ExampleFetchComponent = () => { +export const OpenCostFetchComponent = () => { const { fetch } = useApi(fetchApiRef); const { value, loading, error } = useAsync(async (): Promise => { const response = await fetch('https://randomuser.me/api/?results=20'); diff --git a/plugins/opencost/src/components/ExampleFetchComponent/index.ts b/plugins/opencost/src/components/OpenCostFetchComponent/index.ts similarity index 90% rename from plugins/opencost/src/components/ExampleFetchComponent/index.ts rename to plugins/opencost/src/components/OpenCostFetchComponent/index.ts index 9644c904ea..91c904e5e7 100644 --- a/plugins/opencost/src/components/ExampleFetchComponent/index.ts +++ b/plugins/opencost/src/components/OpenCostFetchComponent/index.ts @@ -13,4 +13,4 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -export { ExampleFetchComponent } from './ExampleFetchComponent'; +export { OpenCostFetchComponent } from './OpenCostFetchComponent'; diff --git a/plugins/opencost/src/components/ExampleComponent/ExampleComponent.test.tsx b/plugins/opencost/src/components/OpenCostPage/OpenCostPage.test.tsx similarity index 89% rename from plugins/opencost/src/components/ExampleComponent/ExampleComponent.test.tsx rename to plugins/opencost/src/components/OpenCostPage/OpenCostPage.test.tsx index 77c1dd610c..99f7d51cc3 100644 --- a/plugins/opencost/src/components/ExampleComponent/ExampleComponent.test.tsx +++ b/plugins/opencost/src/components/OpenCostPage/OpenCostPage.test.tsx @@ -14,7 +14,7 @@ * limitations under the License. */ import React from 'react'; -import { ExampleComponent } from './ExampleComponent'; +import { OpenCostPage } from './OpenCostPage'; import { rest } from 'msw'; import { setupServer } from 'msw/node'; import { screen } from '@testing-library/react'; @@ -23,7 +23,7 @@ import { renderInTestApp, } from '@backstage/test-utils'; -describe('ExampleComponent', () => { +describe('OpenCostPage', () => { const server = setupServer(); // Enable sane handlers for network requests setupRequestMockHandlers(server); @@ -36,7 +36,7 @@ describe('ExampleComponent', () => { }); it('should render', async () => { - await renderInTestApp(); + await renderInTestApp(); expect(screen.getByText('Welcome to OpenCost!')).toBeInTheDocument(); }); }); diff --git a/plugins/opencost/src/components/ExampleComponent/ExampleComponent.tsx b/plugins/opencost/src/components/OpenCostPage/OpenCostPage.tsx similarity index 54% rename from plugins/opencost/src/components/ExampleComponent/ExampleComponent.tsx rename to plugins/opencost/src/components/OpenCostPage/OpenCostPage.tsx index fbeba9305a..faf3ca1a49 100644 --- a/plugins/opencost/src/components/ExampleComponent/ExampleComponent.tsx +++ b/plugins/opencost/src/components/OpenCostPage/OpenCostPage.tsx @@ -16,37 +16,33 @@ import React from 'react'; import { Typography, Grid } from '@material-ui/core'; import { - InfoCard, Header, Page, Content, ContentHeader, - HeaderLabel, - SupportButton, } from '@backstage/core-components'; -import { ExampleFetchComponent } from '../ExampleFetchComponent'; +import { OpenCostFetchComponent } from '../OpenCostFetchComponent'; -export const ExampleComponent = () => ( +export const OpenCostPage = () => ( -
- OpenCost - - +
+ + OpenCost +
- - A description of your plugin goes here. - + - - - All content should be wrapped in a card like this. - - - - - + diff --git a/plugins/opencost/src/components/ExampleComponent/index.ts b/plugins/opencost/src/components/OpenCostPage/index.ts similarity index 91% rename from plugins/opencost/src/components/ExampleComponent/index.ts rename to plugins/opencost/src/components/OpenCostPage/index.ts index 7e520a7ab8..f966c83a30 100644 --- a/plugins/opencost/src/components/ExampleComponent/index.ts +++ b/plugins/opencost/src/components/OpenCostPage/index.ts @@ -13,4 +13,4 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -export { ExampleComponent } from './ExampleComponent'; +export { OpenCostPage } from './OpenCostPage'; diff --git a/plugins/opencost/src/images/logo.png b/plugins/opencost/src/images/logo.png deleted file mode 100644 index 34fdda4c61ef7d0c8629ba7244555ec999518829..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19329 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 literal 0 HcmV?d00001 diff --git a/plugins/opencost/src/plugin.ts b/plugins/opencost/src/plugin.ts index 6a97175770..edaa04d595 100644 --- a/plugins/opencost/src/plugin.ts +++ b/plugins/opencost/src/plugin.ts @@ -31,7 +31,7 @@ export const OpenCostPage = openCostPlugin.provide( createRoutableExtension({ name: 'OpenCostPage', component: () => - import('./components/ExampleComponent').then(m => m.ExampleComponent), + import('./components/OpenCostPage').then(m => m.OpenCostPage), mountPoint: rootRouteRef, }), ); From 59dc379e35c59abab11ab9cfe51605f52f75425d Mon Sep 17 00:00:00 2001 From: Matt Ray Date: Fri, 9 Jun 2023 19:05:34 +1000 Subject: [PATCH 338/372] Working OpenCost Backstage plugin. Needs cleanup to make the git commit hooks happy Signed-off-by: Matt Ray --- plugins/opencost/README.md | 38 +-- plugins/opencost/config.d.ts | 26 ++ plugins/opencost/screenshot.png | Bin 0 -> 2123599 bytes .../components/AllocationChart/RangeChart.js | 149 +++++++++ .../AllocationChart/SummaryChart.js | 96 ++++++ .../src/components/AllocationChart/index.js | 81 +++++ .../src/components/AllocationReport.js | 200 ++++++++++++ .../src/components/Controls/Download.js | 89 ++++++ .../opencost/src/components/Controls/Edit.js | 74 +++++ .../opencost/src/components/Controls/index.js | 46 +++ plugins/opencost/src/components/Details.js | 227 +++++++++++++ .../OpenCostFetchComponent.test.tsx | 40 --- .../OpenCostFetchComponent.tsx | 111 ------- .../OpenCostPage/OpenCostPage.test.tsx | 2 +- .../components/OpenCostPage/OpenCostPage.tsx | 9 +- .../OpenCostReport/OpenCostReport.tsx | 270 ++++++++++++++++ .../index.ts | 2 +- plugins/opencost/src/components/Page.js | 33 ++ .../opencost/src/components/SelectWindow.js | 190 +++++++++++ plugins/opencost/src/components/Subtitle.js | 41 +++ plugins/opencost/src/components/Warnings.js | 37 +++ plugins/opencost/src/constants/colors.js | 38 +++ .../opencost/src/constants/currencyCodes.js | 1 + plugins/opencost/src/services/allocation.js | 23 ++ plugins/opencost/src/util.js | 302 ++++++++++++++++++ 25 files changed, 1943 insertions(+), 182 deletions(-) create mode 100644 plugins/opencost/config.d.ts create mode 100644 plugins/opencost/screenshot.png create mode 100644 plugins/opencost/src/components/AllocationChart/RangeChart.js create mode 100644 plugins/opencost/src/components/AllocationChart/SummaryChart.js create mode 100644 plugins/opencost/src/components/AllocationChart/index.js create mode 100644 plugins/opencost/src/components/AllocationReport.js create mode 100644 plugins/opencost/src/components/Controls/Download.js create mode 100644 plugins/opencost/src/components/Controls/Edit.js create mode 100644 plugins/opencost/src/components/Controls/index.js create mode 100644 plugins/opencost/src/components/Details.js delete mode 100644 plugins/opencost/src/components/OpenCostFetchComponent/OpenCostFetchComponent.test.tsx delete mode 100644 plugins/opencost/src/components/OpenCostFetchComponent/OpenCostFetchComponent.tsx create mode 100644 plugins/opencost/src/components/OpenCostReport/OpenCostReport.tsx rename plugins/opencost/src/components/{OpenCostFetchComponent => OpenCostReport}/index.ts (90%) create mode 100644 plugins/opencost/src/components/Page.js create mode 100644 plugins/opencost/src/components/SelectWindow.js create mode 100644 plugins/opencost/src/components/Subtitle.js create mode 100644 plugins/opencost/src/components/Warnings.js create mode 100644 plugins/opencost/src/constants/colors.js create mode 100644 plugins/opencost/src/constants/currencyCodes.js create mode 100644 plugins/opencost/src/services/allocation.js create mode 100644 plugins/opencost/src/util.js diff --git a/plugins/opencost/README.md b/plugins/opencost/README.md index d03ff4d624..2a6cacdbb5 100644 --- a/plugins/opencost/README.md +++ b/plugins/opencost/README.md @@ -2,34 +2,24 @@ Welcome to the OpenCost plugin! -_This plugin was created through the Backstage CLI_ +Currently this is a port of the [OpenCost UI](https://github.com/opencost/opencost/tree/develop/ui), but we will continue to expand it to expose any relevant data or pre-configured views that may be preferred. -## 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 [/opencost](http://localhost:3000/opencost). -You can also serve the plugin in isolation by running `yarn start` in the plugin directory. -This method of serving the plugin provides quicker iteration speed and a faster startup and hot reloads. -It is only meant for local development, and the setup for it can be found inside the [/dev](./dev) directory. +## Installation -## IDEAS +## Configuration -opencost logo on side +## TODO -### variables for: +* Document installation and configuration +* More testing +* Use the OpenCost mascot for the sidebar logo +* Use the Backstage proxy to communicate with the OpenCost API +* Convert AllocationReport.js to use the [Backstage Table](https://backstage.io/storybook/?path=/story/data-display-table--default-table) +* Allow for user-provided default reports and/or disabling controls +* Support multiple hard-coded reports +* Fork(?) to support Kubecost, which could provide Alerts and Recommendations, similar to the Cost Explorer plugin +* clean up deprecation warnings and upgrade to all the latest React components - opencost URL - days of data (14d default) - costs warning lines - -top graph: -pick with specific query pattern -dates adjustable - -table underneath - -TrendLines - -Tabs on different namespaces/etc.? - -get currencies from cost-insights +![Screenshot](screenshot.png) diff --git a/plugins/opencost/config.d.ts b/plugins/opencost/config.d.ts new file mode 100644 index 0000000000..4af53bddce --- /dev/null +++ b/plugins/opencost/config.d.ts @@ -0,0 +1,26 @@ +/* + * 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 interface Config { + /** Configurations for the OpenCost plugin */ + openCost: { + /** + * The base URL for the OpenCost installation. + * @visibility frontend + */ + baseUrl: string; + }; +} diff --git a/plugins/opencost/screenshot.png b/plugins/opencost/screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..e8added76fdde7db1d79a069825fdefc09201d30 GIT binary patch literal 2123599 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%0Dcxsc{B(0NEvw;1u~_AW z;bH!A=UZ-@8nN%lKz`=kX)XYTUy@fIm6k1Gk)k}LjUx(ffjDZWpW$(w^nK6`0C6!! z^1&ay6FpV?#MUnpz*cSK@r~@P60U#(DO5mu-5h$a=6<%m+bu$GwH!9yYo!-s`LtlL zH68^G=)Yb$1NPpSS~x6^qepuApwnwc)Jg-u9Br%=RyzBB2SU{Xv!hufAyZlG?8~Kd z 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
}Zv> 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 z zqsXGc1(mDc+Imsr+Sw~?kc2celY^Sg@!63cJg)r|ARRHE>e~2DooIq~W)b$Q?+AJW z&heHgGs2&6npVVhXd}60p3}HI3DKv&cI1@^9zGu}KRhypJ_@{a(P0vSgMVcTCENKo zQ}W#mJjd2|uXDa#tM+f11e$5iD)xoI{pwLcxOJ3(pVRF}wI`#fv|BK^u=JlMgHn+X z1um}I4KqpFa69qq6Ogdbig8*U4`hzDDun08`y`{NV<(-5;_MY-xWb$Q6J+@?;>-{Js*V z<^SqR2$#Qy5e(xY9<{xJ2=7uQw~RYItLlfCUILKIi!~!4N>saQ;-Jd&c71Z|Of$$W zTwPQB;#p7?MDG`e($aB6?hts3}v2@$8=~NXe^Pt0XaaT@+q!16f<>=AEs0?piF z7_chn4z)iY)pO%wV(Ih>_AZ4!hiA{lxl60+_iHCR0wAmccSZm#QY3L@!tjXrp-SM- z`>b^9asAR{9a@w(@PePsE67v^=>##dr=bg8DxrYsE3Nc?7*WMx0=V+5rI}Y?1`CfO zH`a*??tknh{bC}GUfsaOUVJ%mD%BxjYk7_a$WCo!XST9o3}pjE%>>Y&=wyx-gXD^t zKS4fNBSssxn(I^fYdH>-QSEIw2$8iq<6C)Q)f>LSna|i!meENm|_avqt7uZcV|QkrgfpLb;go@-Sw)g!t@@g!Jj;7 z%i580_g{XUY~cY>_Eo+hJ~4;L`z^no2rt7J=%aa(fP1NnN=Vcv3czx%Kt+c)KuF zzf?rCg>r;3@%q|Tj5X<7mhM^!pTB#XUA1J9JJv7N;~lDVt~J%A>AfZ@*6qVa9R@LP zyVl`6^*FOF=w-&`vM0;jmWgF$Jfs+^_G`JcCZw z!xq+Ue)~#l3lZNOpHsDddL<31MzLQfng3;Buy)1Y-6B#}u_q&BEatEfgyH|~*FW~ZfG)z91)T+W6(t3fnL%<)j%*1Ib?p_@YWzW-`aHaJ2bX|31 zUxB482m~Q6gN$bVK@e>|T11fHpGprf4*}<|GkNEeWde-t=OI%CVwk@Ix|=_@^K3kS z82+bEg}2`1;~VMsbe+H6ms3$ZI0UkqoXaPl@gFlF$km97s&4t0UlH$kXmW>Cm{}se zZJNFL%cJTh4%1Cy`3FI;rz<1>?%G3H!|P18AWmYwdSh`k3kyA`l6NJM)JP?fK0OE7 z(c1cq>8#N%OAGH0=dE26G=I2j>iD8T?3`oTTFJ`*(c7=lkT!$nFwVWefQ`?nj?Ld- zFA-jGHYWCIXhrmBiGQZBupYzXA|*W<;;X;*m=9;?UQEzJSi~)5e!tShKPsd<@sMIK zjtb&R*HW~+uaBIt;6@{T1=iyklKi@Ye&G4pfkRSl7@BlyFK%FINAZzu?dX&;F4&zF=$G1~!CgL_yPPE#c0YaM zRl#5TJWbXdauYpN<)*s}8YB($8r%!sDLKxz@MU zaSYaNYAVQVx`6EduJ`T-TU>qb{Ui^!Sq`Mm8DFOIYVjD_bQ(d zi~_E%LY+Gz%k9aX<|mHLmky&w-y}Pn!#f$_&~MvvV?Zce;^36T9fm`Bt!nVZ6Jyj& zUnzX}dyWO}(6*PZgp+SYU4~;Zo)JvlRcn_rGudfAy=kf~r%^-5P!YIx~uB^m)J|?@6TC zu2&FkAG_-TulRB6`zv1;y-~SJKDfeWZD7DZN<}(s`sLy5H?V=Uw9ebKt>JXzn8{Rx zvN}-Azh-wAp!O`5jVFGL>s7dT>V*g!d1dh8=eO%BXWVSpKAG>(_=*?etY?{X{6lR8 z4PTT9MtQSjuz!?f*Iuk{Ia+*PZza{_RJCaRy18)bE9Hv$k2U-S9FV=BiR45ty^ohr zS3u%O`Ni#j1rLR~t#)%3{T`315u}p>*>ybUUp&6c&Ip{~plw1;9pBG_Qm-wJTFakB zKGPIO$*k)ga`3pDr5&4Xct7(9g<|NZMraq)?uI`|tUeO>tyVh2#ac8+e5OMr^7es5 zl0Kp(XzU8V)IEsaSo!YAooOCL&t9~Qf6vQY&5{=jGg6~qXHYjxF&X^(vSvjKr2D|% zfix60S{=iWWtCsvo`QS(0&(?>RMXl(ycY4gw&}jqX<-@Rfc}od5TOWNMf!}&J+Dho zjl$)$ON0>BWkCJtR5Kk>mW*zxnhJmbR*ep==se+OF?PZ4XHk%OU4p z$~O><>Y5#@3fCFEFZvbC6eMYXIw@D$#CKAo1f}*mpy-odpJIo|+^oXMBoDzT zkeg=BI4FmzSomz40!4<&Tvoe=DB-PxBj;>Km+ORtH0XEcdfv+|zAqg*xBjCdcu7lJ zoRp(yb->&C($FxtAd)oL2YJ&(0Wc;z72D;G(Xc}?R|qjPyi#5l5$<;_#oT!&_<6$@ zO0K1-xtbU^PzT}6egoF=XPt+I^rl~obrC>Q!gdTxI^On0Yi}fA|Yn4Vac9i?POk&CbvGIA`7s#=ky{MhAT8NjoX`eLDx58vbOB z{pSpc>WyRx-@d=ltsSzh<gT_U%LY$ zVmn_+T>MVfsjaj6U;(AObXKOD7H!>UZ;2ce(d6|&Ph9d@-9>!hlq7tu%_20qIbak= z7{_3#4NWXk*!!y(nll)!EVgre89a4o>Rf&U7x(RDwT0D?JEm~e^kEEvo77MSVnBa1 zhcHi@L;5~v*FLmd;|?q-e{dFt*~j!(>P5-==Z9oWM5P47!fKhfqeHKFpy^@A zn@Y~GL12WoS2dmF?V~!e4K2AOEUDy1>@o9t{B9P4LowWGEspHVeYA!tkOd2I0Eb!? z*o;#4YS99&%jamxRput#G8-B+$=J42XMcLwZ0;z?BHRH3IajfE=Lf>^8rS{b$>Gzx zb7Mg^u^>0Jo?*Pe%`%AP{SiCn@IT=6yE|G9UtBA2n7Q%nxw_k4#m^&G*jo>Mu{75` zSoO!lWP#PMri~>%*OlzRzbj=M4#P!P?hXssyn<>y%EC`=q`Bb-`q}UR97t4i$602d z-?6cTM;A{94TVm1>BmIEJa6x{%+b(T#bZe_Z=uBTVq>^vP>~Rf>FcvP$fLI>!h}tKQO;+x z1cO!77M3esLo@PgAKt1twell3g5taak!QT@iqCO4GSdZVJR^Ni@DfC7?jtPp#x-fR zGt~+^VGG7chwJK(&E|A21SC+x9?6%w8Wu1lJLKu9It}VM)ka}z&EuaGnUe(To~ezR z#y9$_Zx#`MPSInWnzZqW?F<4&^Xky}Nzu0B^=6~4Y${t18o#Q-p4SQ{mA|FXbHvC<*^tNr{5z9q@M>s1Gj))I{sJCPbiW()I zfhk8b3Jh%@fN&c1Hrr08vJMleJ#b#n54DAMWdOCz)Gf*yM!n8%{KrGw{2ml_4b}?( z>H7*5ZkeG9ZF#I(zB$D9Oq}qU;t5bvFBePW?Es~LmY^+HA7vbz0D*cAh_Yjl3{~re ziE5_UM~!VicK2D?04B2T?WL@(Xhr%+hW4Mu#7Y^sBuOlX2;K0a0X4zycHOD;!tult zQ6NRBbQI(%dtUmucirrG)vuJnt`~bXTj0@3e}(_Pu>Td-_(v0RlsgDNL0KAxAw{mM zSk;$bj~vYmUz9+x$+#T5O2jeb$z!(CAtzo{>$pFY+XZ5 z$C-h&4G`ZbXu9vtm2-rloC|5$U3=tlvJGNS6n_DHE(Hal&VN;iWh9@J=WKwZ*|Q<` zI_+oanj;JxyY*2H3c*6-?1}$_shPkcf=8<*1smi?pFcc`#UsNiF|DaAATe3HiL3TXR@RK zU+XVf)@6-7KP-&lPb39qh?hBg^}=#q*9p}onv3Z^G1EgF2tCFW_8&D<*&Fm;^RZ|} zSn0BJViQKB3h~s8zWnr|(y(G!;HUQzr*;n%-rj#XCX zzj`C|RU0(+6HMUare>2?W%9C$h_j4( zQ40YGn&~$ZAZ~uph!WZkf~rL*{bQigOXxKG34wNYxGMt|_3X&ON0kELd5Casm#%KN zJZ$S-aUq=&HaEr07nI*Ot#mi3$;)C6AZ_OY%X@Gvx(HfqbK^iC{J1cKZ~;E5#EM4#}D7dOqTWtqCKMH zI&T=N*g|_%ZcY&ON=30w$trk(SEgpweyJ``A|LTX{AFW}v57;+G!+`%fi`+1vLLK- z^?H3S(Tu)gDQKcRn`L^%GW2^A#92AKy2s$5;`-Ia%FnZ&S27U^A5N=&KJd}<5azIf zlymz7Eb}$?-GS+Dqnxy_FVg!&CU3rv(xY5gf0s$Q7oYIOL!e&S(aWPR3tC<@Birb{ zi(dR4Rbu*n<&zX>F~4 z_KK2QklXuiuXi6>@9dBg2;HfOL-=!fhpEs5=?XeteT6kDlU$r!qcVIzG2QpH4s*G# z(>;`LU*JU=NQu93PCns&I#1KtkZ4JP=XpD@om8MRM_eJFVV0{%2ehiqJgEW2%>V(| zj|C6a*EL+Z-pLOV>bG7i5I_=9)vHC&$nOKPLbj6E=l)w~aoXZC{!OwmqP);T&Pb%t z5f_`~QT>GErhUPKms*qL*e^u|-~f+Mv@~Wkxy@?s4(uQoLw1Yq0uGpvck<~co6g=Z z7m)Zt>2WYmok*_aa?c(zOb|)sQ05LnG+7kO<>>mqb5$-Wb6o9EZEnUg4QOp}l&HDx zy9qug|k!)1d`O-oa{xert-6Qs12tBfvR z)j9aEGxH%Bx(AN}Wl`LD_XE!)E5AR?t_O{+(z4vC9V(|L0`}i0s=2jKR0Ll5kvX^t z^%g$={1GQIjOMT?HqG<>#ZUDTSR3mWDmFK2XLQqFxvFguxjlh~d?Bn_13FQ8sdvuU z^u;3%l7@%GEiOG(3f{SOtLR9SgsRfP8b=n(-7o9fhCu(ci&)A9t@dV>+3Z5l2I|e^21ILkv}u%asj?O zfVmnsbeNesbf8 z4@jX}%b#GNMf#w}lb+|V&91tA;MrjLL(6*?s;6&Qvi$SM{vw>dl=|>Y?YVE)g|A+b zdg0_#mpBpBGYw?D(Y1U!+Zp<$9xh3c7yh^FznSQ7G<*oZSpD|M>?n4ks2ryCex)N_ z;VZ(T%Mf!&Y%N7yj{X*zw9Q~{(6Kxhqe?2j;%TIROo0{k*b#O8?~dw4v9NEXGZHpq za$9wxtpsRkmg+!2uPBtmBvW2$KqSdg1=YxnY`%*=rw5%e`(hPz%?TA_u}WV-g70(0 z24yBGbp%B2!g*4uI(Jmys!TBRcx>JixlgfwrS=YcR9z6IG5fx3EH-!L(Lhs_l#lhw zDP4Hadxe~gpzD3$llcn73s(>)6NkB!{LuN&^}EboleC7;H10?oR96)H(N#8+ofZWi zA3g%Fsyr| zJV9JdPVsz&nl!Gcvmi632*CeE`JQrSQF=;PrU z|C({!B6@q<7ASh;W^~g9?O#uzSuc0^g1D>*u{}Wx1DaLVzJMmW0Hu-3AKV}A#!BlR zNA4ug`k3ZY~5{mt&r9jw=tPYpV=@2ucmkBmkB( z5PTQ%sS>wqzh966%RCGF9;YUiW4w)VnTM1$Mc!R{IHZ)JbH+lv>N4#uU;Lvu>-km@ z68$>+T?E!;PnI;rb5b)GlZc@B72SgDYH&3z%+=DhQQws(`NLhPPk3zlPf_X(_y6``T+t{=+DV7hz}QvW%o3E(2cn>{-f9gH`NFM zw#ZwJP=N#c1L#fJ)|2%+rMnv}?pai~lShfhP)Q2q#quLnf@$a#dB{qKfp8A;h()!6 zc^GLxYVGN^jM>pV&G^+&yKK$S-QhRgptTQG@&Z;SH<}DJG8( zybfNAx$ru_VCJp_%SmC$7M+NPrQtJ6It!?D9_d3RPI&L0L!{`dixEK2{f)uyL{+E!1gK&59QaGIKG&~ zIL%kO$g6beG)Zz(2POH%Sw%;1P$l1C9iapWn6~7`-0rG=J>K%E3(mN_aBV|@?;gyN z_oh&&c~9s*(gjCJ?;n=flG!5=PnYtPPTOq8kLGKh-NXPF!zUJNHrMw2c}27RDhYbz zL!eoY#{zZ+B)qT4ylz;Jskz$<-2Kcomud$pnz>i31{?wZ@WRsjyY25cM>1)XvMgUk&kCEMLc2R81>EnBPbH3H zVb!l}9$E^zKO0Z>C+d^WcVlWW<>_zNx!LeE*hkeARp-;OVc0yYjuan2>KlaEB{Bd^X z*i9iQ&4~s=+}^FuT&Pye3~`wr#-lrqVje{q4GAN-!!6uTK$2P^XziFV#3Af5zr+yZ zQ=8V$*N)d$WlhU#g<(|F00sQ+t68!Pm1>&YAb>;8wB^y!Iw6?R)vF=TDoeyh-`8=e z!_+w;hwET+7R+Pr&mC1-7QgbMpUH9yU(_bP>6CK+e18Yp;%`3pUl92GCU=QJw4)V5-3W?$D`XqoNMjd{z;uC&gbp|vzY?ZNMt-+C*2&jpVRk#F)J zBoDKGHrU=nRa!jwor=+F-0rZK(`~O{@z5irk9l;gW_91A!S>|GHsfZ>CV_U}BytWr z7}$jBBdtR(c-6~Ii_EqsCWlquxF%zw{L3s|p(8W8*RJSChv+i`Si1bcY%NF6s+->E zjaCUVY4Ci4b;&Xlu>cN2Md??_yLhv7 zcW4>Wn+&Dp*Zw?WZaGv54eFK`64TDN{#8loc;bItj#dP@U)j2Hwf%#iIdXO+PSCj? zVxSpqnZFoma?*?T4R@*hi3RocIjx>=XLnLh3xq8^)fJ5THS^VHCPB2L!1=~c?@~d# zV><{zVul3lf2uSOw&VTAOA1%eRyhCPlbH4IH5Z`Af z5LR_lhE-u}=Ts_s;zVsTUi?V_lZfnfQH)nh}hHHNl}Fx!S{N)u4g>!GGv_v2As4J+T!bHj|(|v}{&nyR8kH@%UsG z0O}$#@1z7ye6{o#aP4tAv(!Br5Nz(aM~romVw$@}2(lxnXSVi7x+c56Be9oJee@ue9BtOdXPKfJvMP?KrjFTAb|rK|K35tXJCDN+JK zN`fLmnjj*fN>`~;LRdw5iFBnG=|~k76c8am=)I{RkkC~KH4wsg#oe9vd}q!+J7@Qq zGqW>0CbP5SedYd_U%QNvv!6MnLfwi~q)vQG+8Jd-lsH~G5y)uyQbDTuT6xS#KB*cB zf4gz;D@@t!d^SnHd0aqGn|3AN$?IL!tPA+K`^hP)9&03Hm8j8GT(mI6^DQBSA5sd1 zZx)EJHy5UpMA!pnL%(Zw`OVw(xZ6X{OEe? z{I+QFmb|##B3puu=7fHW1V;}TDJ1W9K6AV`T>a>S;!?@UQgBuAsYad^{*r*HNWg)dF(h+BjTKwc zZniohuwgUjb7XrLFJ$<)yM|2bbUFN{6Q>H~$?=HA_6)@$Z7Mnn$T0CDu&#>lGxv?Hlx}H$gjg&fgZGlDg*rxz_WKpflgqcLo`}> zbM%HvR?Hj8G_bT={;1nxlD^wX7sBhN^-R&zG5zD(;nORCOSshgnG8_QAb{c99=Igm z{I?L)xnI%Lib>3F5RIeuZ|RFI12uSzb~JW=)Af_DSymdbuX`)Y{vgLan0}>_E&7xJ zQ7W#u>GINyR+?uPLiDTngpNB#oA22tJ4NQ%3?!S2qQf+ku$?t4jd}diWKAQ>{1_J0 z&Z~CU64vQc#kK7hZ+{o!QwjC$bW?U;UXH5q9RQ%s3khtqeZ%${?v$H4UbBk`1OKt= zhs)D1>k{2X&bz!eF?{~?dLy@M&RA5nIOXku<5mMrSzJsI=g8FBr2D0*5ZZNuL%%&m z$+ijU`NL(u7V@hU^*99l8Y01=hNOhq{@7-1syjW(N_jpLq9wr}S%kfqCLU^iiXc86d-J5eqTNf82V!)X6`zQ_@{O>Xhhn7C7Rg{U^pQF4kk>czj^c_D}+Be zS-N5G+x`4t9W`CRu&w|ROSM469i6{pEC0{0S?207z1(XehpFCYK4~^Qj!WEF|QE2 z={3~ca*+MO@b&|d%N2BrZqsFZUvqqYQms}r2|1}yH1UQCd0Jh3INX|dqJS|tHBs6w zntBbVG(30HAx+m3kfw z>KUzfAbb+ZkLG={4@CQ@WakUqU{tRh&`m%!pN^bg^GsKFhr5X&>bu>0Q*hiUG@)!y zD}=e;r~B>oC1}Vj33n7f(%z*N@N6>>yC|)nLf`l%nGd#3P&GvC-h6MhDsZH4^p)sd z;fL5-lS+^eb{`IcJp#n!FrD0bQDf?k zZ)Q;$Z(ls6VkRG?{vwC;FyO*=0=RGc1R9@Px60_!RegDSy~~AY`O=qU-IYt3XC;9+ z@HN)JBaEiuC+%9IcsP=x1cBB<+k1a+Yv8Kl+PmUm87`I0QR^uH7N?;^KmGnAR;2s6 z*#<6#G6pOAuG57;Fy6oV0XF>!fMbR(6S#kr0*=aZ>&rvt6qnbxOnit52YVh&H-}Au zUVjXHjPhQ3`Nq+#Vl7t*urmXNPXmDAzA2Ddg|j7^FGc>L%87dG|ESUWYdqx{>_Gkf z)+wX)&ePm;5C?2ooGPHl#fFtd%@@z*kA+?gkr6zK{!JyPomSe-C6@6e3kY1VmzvTz5sD?`k7PYK)iv^Xb2@V|G-m!$wmH^sgKB1 zwbHXrCb#=P^1M<}EnE??+8hhZq zkef8?hgx&GlnOLrv^1L8lvbwSf98J<37*a1%{ssM<@tXWfBuJWRp-utw=;V6ebo{5 z7&tl^6UEaPr%Hw%kUm*ma_%+lq^HNy?H>ca<~?K&a(mz@*OD`lRZKbvfTx?y8*2R<|u z%A~jF=uWb<`!P5Ic3t20rcfrl%b-DE_Hwg!e%_Vo7X!R7aW{`BW9lzPfcUNEuqurN zvpe^KG)f@A;?Maj<7W@y`q@LU z5AFUA>-cLJWCQtuF?fUeBzZH5CS8&ZoYq9Ke{9oii1)1?oNrC0ibSo0yD>S}d?t$F z;3lW{09y{%VOR z!Urrbom1DUK(KESTRuPq^b{!t#WCn`OO?oz3_LFz%TWy&+5i;&W-H;d-;cT}AjH_c z7Sm-qU>3RyV9`?(-ZN1bDpm4mrZ#z?Ei?VxnX2Ia5x^-;@gfEv0oTWS{`#}0E$o5y zcV}p1n;f{x{&4Be_jf;n0a=K7G~>i3Z`1a)9591y3*sP#K@t$VR^P%vfARl`c7p=# zHFczEw$0@JKR>ebz1(1zb7sud{9%yW_>^D5H*elAJ0yah&nZn(SSbfR{Yw57(%s6Q zVEv-uc)-R}DFg!QwI1r$pOX7|-XtzU&uQ6*X_$^2pTxP-NI;bAe4Lh9z!&-%B0cDw z#NECInmfUt==nN2br^=0FAaysArL9JA+rtwgyoJ*A&sL#F2vWk}y3+%FwPRQhaP$Cd{Ljd3ikKd(iv&cx?4F zXN5rX3H2YG^&~y06Zrbe(F$@pX=nRnvG+H62$4Ompy<@&S)p-;deM?>Q8<&!4W5|j zYLDhVP9d%B)0JWYr3U`aW}(xCSiZ(Q9yr!Q@C_+DUj-9BK+P^{%UB}lGR+d&mWqy8 zD@ahmwS>){X-c!MMIjlRVs|DYwN%z?v0x!FyKERZ1wu$5o1o|3bK>`z&kE7E<_mr; z!!aEITJZ3>{KF2C1k6*Q&pMm7vo&UyAuGZ@l>r{^la)K;hZF^VHhT4kw9N(bqx+vf z?Zq@&N!&Xo`%S`0lHl=Ca7MG|q}mUTsNdGF^l63kKE#I3Dj*in<`QY z%lum%1V&d3To^hR4B}wby~KLrGkfYaz$A}DkFlPMORo+$;8d=UG@CD%ZcUlnWH)`)3(roar_aw5fxt9w?ISi!5xzFU{q{>CeSrD)ZGhp-!6! z%xt)AG?o&I@aUOewS93w&+ld`#YC`qM#*aBYvXo^>r9K3%#(G1(J*jIW{&y!0Cc*^ zD&k@yH$#eNkrgM%3)lw2$zl`smqkGMf`Is+8k8B$)lLH12eBtWH}QHAE_D4F3r!YO z^t#Ld{OfiwkZn1o#{!nh4Vd^4Ss4oMcWJX)MD=-^ObaNg$`d1;*N+89Fx1hfsHV`w zayoD8y=eN^Z*6ya|M~fGhlBG|YMJTeX0XHYLAWG*GvAVCp~F4~mVg7P(;J=tk$oj* zq6o^bqT zvbTznsd=(;WQ&n{d@g!B^cdsgZGmk!fp#4}iV?~QUCJwCf8*i#nO3ZwJzbU$jf2Yq z(h}Ks8Dmv;A@maOCDG(_*u44|rhx*Cfig_9{nbt*E3`$B26$sYHR_QFdcogHKJZ9`5|fG;H?26oE9v>x7H1U({w)}`(rAwH%=4k zZ%L7;gm!h9rOv&D8JRJz1m={*zP6m?(Y3vHte)KTD?9Xa>DYso zI{t8vW(PwR=UR!y;`8;P;96v8S()cp$Xg$cV{=lSMo*tjhqjPfRfr z%3u7z+7ZMTFm&@v!L@7?awUA_B;C-6`C(QiIa#_E2R%dup)sRcV=E{+mCl_!>$T8V zSh`t|D#Lan0!xw-)t$Hzigb+}WucVW1Jvu@y}7i9OaQ`E7)Wjdc9bR%3e}XVuv4rT z_e%C^|M(Ggw%ZQ52_I?M59Nf|onn@cz~IC!-av7yF^mMH8hZZIoBLnSUO|S?2I6Nj z4*H6kPwzIE`ED+A?QAR=7ua{Azt_x#SDzp3&S1_zQNQw${*rMdeZR#hknfl8EEXUA zUJay`4n0tHWG4Ds^@u3x@*9(0-j@!NG~L)qp;50N6Ux0>(qOdsz`qY1xDvEp*X7dT z3#7cboKfCAcoIf&^U_d4e-!Q_roj2N*Cu~TZ8!HOD+8j$JPYER{aKQRN2ioG`WdyuD8ISa8e*Wz)|IlhK+Dko(mS^kNhELWH&X~*LZtL}wtPGF7Du`mp*wmNjf zX{gV%x=$J*(+_<%@)T<|D(3U{Suy#BBBfbfE^3?LS0gINDUJ&Zm}!ZM$ZKIuZa>1r z%USC&mFOfW$*tt&{6&@vc!*fIQ?1?tU8Uh~HS^gKA0xSB(3g(|NW2CEUiseUr^_8N zaS}g(31J1tp|hWY7YPGgi&@YB#ZC=}oWH07blF!{yB-&b1N7Hk4m zsI^mU?#X8W@7gU1ykf`e*uQo4=?4l#B>-~YBD1mloI@Bw+x0bAo?fM^k^_=VAr3ud zH2AfFslC+lpHGod+CSgtvAZ5#= z>#T~dh@)9>#pe~5eHdqbRERx@>3D75VIxgkF?WvsG2zZs#+d6odei7G-bUjumbD^d z@f^zT;?CiE69v~c+5~~&jigsHTy#}jc2*CeK!6zGP+A_NYn&ctgmc)<=pJK4tL%c2 zbaJeOD@ibVhtSL4i$^FfhwHge3UuonWrIP| zOw4NpZd-S6)-ud9gcRw6b{6G1Zt7x_t^{$Pz!Qzrmwg+~QAw2qIM66^~bS26>c zj;BTnTS6$kYF|k889&BW@++fzD};RO+s?%xrAihK8@N~v2_^QhA^5)>#Au~QD4a=ilXXb>emISG zt{1~&-w>WK8>e4)!ns#{_Q0%#H?AkDL!n z(2?yusXdUsh{slM<_5#S5DMQ6Zi6$D9L_R(5?b4W(m0n>Jwk6BrY%Sv^@J7S zYb|vpBe&SuQRr3GIJ1e~p!z!f`#Qm(Zqfyw)P+i2s5lhhpZw(HAq55IsesHafMuUo zr?`^{_$j)s4sd@wWuEAvR zE<5SGdQD!RJOrmcd;oabGM58((*L0u|J_&i_FzF==EPnGlki~iqt)z(kyPPi5zgwn zrEuk_QG!q!rPn$ido7BqGAqAE5KlSuX^!p{p-&G%CcPI_JNkrx=ZVeL&a~u(RAvcftK$PT;3UoJ+xmJ8srB9DE$!f zQ``lxpHGFrD3&BmL>#ZqW1zl;=?_c;x}0O>iakROXv`7tTAGc47YHNqEfAVKon{3I z_w?yc2E?@K3xyjW(;X%T3d83e@?Ly*EPi?Z%>w{Fh5+@fz)Po?K#eYdser5sIzUlA z&`UYe3U1eCcRHW?_Ugg>CwqN^4uG32P^N7_=?)jA0hp60lh*MsIyU5I$F?(fl!S_Y zPd1<%($<7=bzNBOu+r%{<$tr2b*yjB9ql0k_wp@%7IzRb+#Ury-t%uw#EetBrR@Sj z(S@x+Ecw6}Rs$nO51fHv<`<3{Fbz*XiuML8W>=ppo}=!`&WYKgj7jD#1oDaAR+(aD zhmgW-z*7%Q?5?n0x`|iI=Te=VIG9Smv~lF}_OCiVE4EQ>Nj~4zFFfY6)IgMw+EEI< z9TG^f4~2!g_05;&Vr4wdWnaF6MQz8Z``NwRA!Vto0a;|(=TR0i-k8i4(t4z6P*V;= z*(Q7r4d_*^0UFKVm#@b~Jr>S9`PMMt>u|}e_ej%$gGZhK%NfV%^grrrFpv)hA7qA> z_YQbyty$jk`s~_T4t5;&#rLp zbil%7f}Sx#Mm*8BZey4p$oEiLvp@EL@F;n>y6sB#EH{IK=4wGsw5X%>lm~*Fmuu~A z+i@Y9X^j0iI0*4mC9>L!N1BqeJkI<>s2Pmw^YJulK#Jcl;fVT9;amH}oUO1J`YXCU z&(OVnPea=>j$C=7w`W@dC=s0}0B^LI`^dppXF>`aI0I3njAkrmS$Bon!*q(PzQo!#->|zTQpj8jbja-Kfp1r&{D|DLX#FzpE*)`XTvLqs-x6HN~2)WdJ=@l zd1fWDQ<$3j$5gh@fb&eJP)$H{!98lY-NuUGWxWaX>@pJjjm#1!g^&#Q>o#tB?`@0> z;IX!lGC)!|BEa}mZCxXIsiyIP(G`x@ItH4LZoxuV4f&m2#l(pE-ggM7Szp*$z@k)8w2xpk0X%o(#u%9K1=a`4+gxCpYAt& ziA`|%YGw9Ytk^qF*jajw5)JJz&zT83P8J~*P* z2TJx}?p)R6#D{5>aYqgUy%J?rJw6ZseFYeP>>WQVL+4a>_XVRsy^YlrgrNt2liA@- zDA(c9Q#sD2Gp)Hg%??w7s4>oS?LDR#!i&IyRD;WbjHnl8;KD5}b6w2*>XrCFsf-!z z8OTR7g~H-Gk&xwZL`Kg{)F_dqDuBdL@~}!`2$f6~}$~ z4M5BqE^+j0?FC{QzU!{MT4BmsgLv$*Vjx5r}eZM zg9~p^0u3&W+_Fof8Q6nlhfM@8R2wR48P3XJ0F{0KB-7C5u5{Jv{ip(eHaoK$;84tN zxJCb)k?Xgg=+$H(n7vyPK-$3?zYfGl`gD}rJnK&7Tb6Y*IzeTF$YyOUQYwLa!3Ql z#o{A^Izih7OzuQ3nk_4O3F-M*U`q+MprsS+;v%^WI&G+s@lBa(uon3Vc=-ukNO7*b zN)w&XYk*Jgd(%J;PbVS&-AzW?CObu?to4M@G~FeY?V?u^(tT>%_Q zcU&z1J_M*~66>^*3oZyiF42zEiJKvUvH4h6wB*7_87gx%ZUAyl7rLt9y*(9Dy$*D~ zH`KuamI!nPJ#A+Uraw?*@P{1eKQM}a^_8m7?@VKP)sdz#*H#2B0&~%~@a=q>+Or(v z`|PyPiYLJu>y=VK$@LOnm@YY6lsh3dq{okQlqgx~=%)@gX{KsamlLC6ON`>c6~tdV za(DVQjVkPBn_0{1B|QdhqS_{2Ig*V0$&%9`9=`bXuwKGub7-c}(T{)RR?N1n80gD= zV9bnDK}M+gFu1$K>eX;|Tz)K(1Y{209(01Pj}t$wBJ9VTKo-p4E3G>?i#U61drz`L zy_Sk7Y_)%G*WjXaCuZ`uiMI8YTOMuOb{S zIco<_fjq~wJUXI`J}FQ2@I5d>0TYK; z@1^(K(-BkP$VG>foxx82NLy{@EMvUZMYpHCw2Xpb4IMBe{lca`g z=m0vxY7?5{^M(@btob^EV({Rs1B=}M#aYh@{A86&z*+aqL}SA_ly&Lq^kn$Xtm|au zmqkP$?OgrsSx2-Ec|Ftq#lf?yl{g0}L`c-mxS--}cnq_knhv<-E!x~Kd>|Yu z^PPw(3W99qD<K(G2rsev}F;sjgtC~R}|IaEJ2n6 zfbS)NEv4>l71(Ppl>i=qHf)J_Bm)IJ&s1K@z5Yv4G_CID+lQb3%mOg+-x#9*G76Hw z0J>>bf_Dc#rc?Q>-Ra6owBgDUSObEXPa@R_8qJQEKr+V%l{q1RRocKnE%$I06^s&D zCIeZMNdMNtfDkRq1fbZ-)T{oq}xS_oA;oubTqlgcu(<(PDdBUmH&Cz&C#dhnzem$QZtEZ)prmBxPA6Gmf~-(_awNeP$poJ!z3*J0Z^C*He-7FFz{@9hOpc6CpKC2OmlDwM??lUbz?9)nh zCUwlnv>t8D7^llwUZ%H<;t%kMBsB#KbGVbTBwAUEcVp7zsU*T<2)F~Wq)^De{%-VB zyJm3x+`F}Nm<)?&&kXl~I+vkXmh)y^jOaDwLBf;w@3~mtfKnbJ7%hM1!SSpoa41rE zd8pX9&qVkW05JIZeF&@00jfKa=)$bh2$HI(WmkbkN|tZK-;%Jayyl< z%1xrzdUGSFVZjfEjEr;ljGg=G0hFCgV`6nA#b2ET-PztgZS-F(#)p3{#;vKcoNm)Y zdaKzYOj#1)6Owlpx72zx12bnMeR!Rw?ZYk4CbHJ;yfP6a;5B`EiLTqlF#6jHrSH$P z2f&H=-HzUhVU=fsWYgUtEfq2=*4$}Y#;!SUCtP9)ceGBN7$Z@!#+EuKbZS6nrkK&O z+Z0FW5bis|<+=8|>7Sb}o4P>ukYtYZ>E8XzH>B@AMyuKY& z#>|uaTWn9PkFN0&`hue551}^OuLku?ok-br*KH4D6kyL_O|^InHr60O0cO3CQO`{O zePV8j0)~P!vZIAzIp`${)&sbT4{lAwt~{Irc_Yk2q?LzDG$*^v2vO}DkW|SV%PQS> z2^2WyHSUl<_yX}I@yP(^4`Ay0AQEira6cMsxP=2WR$`yJYb?W>xa8yymg8VRIU%)a z%2V0%pnh^6eCevVcR9!vglbvRuq)TY`Tu5+vbXs;BI~{xwD8{kd}rXOW)pvxK&JyW zGbB6)*t*7So0#!?0KGu@7OmKdqu}BmK+P^$c9lV4Mc}5OFRqQ>D9B!Sl+aP&4PVrH z1tT^iOME}Rx=ZM6`Q*i41VRKo)y5Bnv8Jm$I_Vc?3%r;B51DeCF;AU!`!p6{r z0#33pM?I8x3=bIQ^xcjSsfGewCN!&aXCJt$LNkOhM&fl0(D6FNt2DA4zo=a&$3@E$ znPotpCdf3GWEyum2+CLi1C+6gxZ!tNJQDDO zT%P7F7? zd0vVTQ|4B{d?7hDvo$2f)NJus#K74~J#{MQGwq}@Pv#<9nRijxE*l%&h}t3eBs*4xM~Ke3W>weiclxiu>h z66=#shQGbnP7=?mQ%Ej;MZ<{GmHmSGm3?2-A%R)cbr0Mhl}ukT0rI7SX~eDiGkSpp z9tMtI4fFrj-}#r!?jxiII9a|KOS|8Ro@eizd|T%$vQgn;_m6AzB-abW$x?28N}3G$ ztY6rUXY%zvjpYD!GC z`D@PkdQyv#bnOdHzq(y6kmoXs52PwoE&2yQlE|={P`wRR7fbkSIzGPeY z_IpUkiY#a*QzO6B@SOu_8k0AZ?B7A?fB8HQoTQ^+>jB4p206AOy1&Tonaa%f@!&#x zkHQB|@99-mv?NW4_*Si40inyfEr7KljBb0~!A`4jWSH#%MyTvKCuQt@75xTqua zDWaz0WQdOYPP<3hI7D%FS``YiFl=;6DHFhC`UKj1qBV$6L-OnLPli^(*y0OC^Un5n z6$&#Y$C=%D!4V35bZqVR>8SN5HPA-+}RGsO|_>Gn)UIr}UTp_+($El}i60n)1l3US|g+otWW;dc(} zNPG}^$)A<=QP36eTG9tPescr3zt@E{{J$7)1b>b<`2hFlWqGKBV$W_- z-6?PH3Rs6{sXyxhMz$i8IWN*wM4HqaF*w=Q`h~dH^z(rb952sfrYpMs8@`qZAwLCU zeq9WD=#cPj!(4CQmI8cG#xl@7`9R$@yrQ-%VQ{z15n%{C%wthq5P5-MAT`^_7VO;E zMJMBE<)I!a`kQ$Y|F1l(Hz+bAM{-1ey4-S-Wd@GPsEnT7re{%jTfWp{J5b*%jlc>g z4Y%jlUDD5}`(4}p1or$>&~ctA#9ajb)NrY+FCCd_~z-6z(7=43+zPF;$)_}YXM zBn2AY9>12EdtUuA$LoZ=J(^bh>yjWCLdvikj}5^#@c4#%GqPdV&nOG}>yJJY>>LWj6`+Ari$U$q#w~|vnBtJ# zi+bN7AkrJIkvM{5%}EB>xF{+$FEw&KP!AZ0e_w1l;)SWJO*JQU$1gXNzK&pR6SA0m% ze+(bQsAoRhTu{i&vunUamX1ZpuIfcn60}vgfyn5adXAfA&z7bN01A8x@Tr{K%w^F) zNr{t+guv1pD}OmuB+FG>^WcE0;!l@PJsb>N6mCliRS`g1{2~(qR;+*g&)Hwm96-iU zXbFHeX5RK7`|I@kdY5UTw>>j?(cwwSbPN7g$beJsJ8w7_u(8bU{0~Z-jy6L2w50hT z!xR_7G-cYE`P>%;Nh9@bO}t7Km8}jHLbKyoH;0Cz5au&5($^gSSd=?lqsA~p3fsiY zC+K;q%xv@pcECnrSL~+L_KbnigL_xql-y6mnDp8trJIejxZ~{4z8=48V>j61E=kaL zHb*gfSBf#K&^c-N%Fa~`pL+*KhaTn4p~Rn50$D}8O4;(W;p!oT3LlkO(vVqH#Go+} zO$fQOQ5FWo+UUoYXZw*^_@A^su!Z3S{(oSse8~)Xjxvj4vfS$pB4PA*EIxE=krxAc`UN2x0+c4$(dl+!*vrpk{4qJ z;w2$)3M;vdSt%;AMq)MGI@-RO8NXGKI&a&WQR9nSNy-$0sf>=Lpt)qRG?wUz6t-&v zZ}}ZEUbfTu3Pql$mOI^_XCXS9+6J@>7#Ll@nr9Iu-@Dyn%7JlyiXL5mU?1FsSOK9M zlV%DqDilh#OnQpgH8OXeFBIACEPRv>4PAT~<^D+UVLAjxs(eTZ72r_2Lz?R0g?&4R zr03tZHee*3Za!1;{A7eg5=mI1BK4YKQj|5+(5vQB`Ou7>;codCqpm(_&+L&yG`uO1o9Cr=Y z(-v%c;!7r_i0wt_y{Bd*BlF?fw|F-ua+Sj}VIXQcLfE{bWYzj?@X^@TSud+oWp!|) zexeicL!QE}YP`A=(SVPF50XS+SrC!apgqQ`EBI`GKIq#;Eao*8n;Zf?=+*z0*9r3P z>NEbGW#BsKTpJV*(Jhd6+8vsBU^V;laZ5rrD-uB5K-KMA@l1L)X}OYB0<38EXPWaA zd{(b;R-ez~)lNmb`5ETFeIISrCs4Amnq5Cj$Vmr!b*m`IV@O3iej=<-lS%wghNBm{ zFOJ?ax@-|dsc+k(xcj;UkEeqDtg)q94^DO}Wwd{(lbz3nypuV4SYYzSSAwFI5khd) zY+E3?BRX2a>&gp$a>DJcY~F2ayNrIIajCkg;t~4&K;0}Mo+WPNw1i)bu1ahmy;9ec zQ4_&VAl95Wl%5n@i=kPSd@FG5^gtNa)bnS=T-sysGB52){kI=pWTN17?#V+7&)av~ zO$J&ub=m#(Qzt?s=Va8@x66Utw>ps-)5#jut{b^iF4M}a#F5S2xiHyp-Ue`i^`ab4 zL$+O;=rWD^$bP48Q?FUVc_B3j*9O=)J-KeVvv$;`hR6a@q;^lT&%M?Fe!UOS;OmWW zca~a(FARcblyR)wUqeAg)|VTpH=S9OJy}R19IG;4S2+$SDfCLUGAnz=E0qQ5*6{lY zGQpx;lPPV1!qG9NcV;yCHnS8*3Hdud_b9#E`KBd(Rl`9Nz9c~(Uf)G`NVqz}Ww^;2 zG;UW0n%1@akA9+>PovUyFr5Ix{V_N5ZyZ6&CjmO73`=XT1A^45Y$9qpS4BkjTSeZZ zr!iDv-)a`HZ}!e~m~r@<(K$VdF`>-2T15*d?Q|Ce@&$Mh;6+{dM-XZeNB&iWIq^z< zT`^Ndztpv|nD>Mad6dXdtJSG&M5H|W+;$s;PmVZP&zTSr108>u$}UHF(OOnSz!fWY z8Wp{zjGg*ez*sni^hLAfOKpwt1^`=7o&sE>ngs34Z4Kca91@lsWpNH&G)@tNRSa^J zKoh;mh4pY;@98#`-ldPhl2+<6ts&fmVd~)ZP#s@5#cluX_03|iY(C7epkw;IZK&GO zXo(%n_<#AqNoU)tz8~a(2e7-tHyr!45E=37+zZdGxH>>l%L-RF=aL{lt0_0+svb5-#7cnmGf<0E(l(@JNM^%kt0mSLF^_&ZUAFD8p(-yi=)ObT7;b6d!O|+zAS$mLqK4&}D zjMNnURh@xcHhoAP$TAvlpk}eYe|B6M8899XZ_Nz#oQ-s!?L0 + ) + } + + return null + } + + return ( + + + + + + } /> + {barLabels.map((barLabel, i) => )} + + + ) +} + +export default RangeChart diff --git a/plugins/opencost/src/components/AllocationChart/SummaryChart.js b/plugins/opencost/src/components/AllocationChart/SummaryChart.js new file mode 100644 index 0000000000..61625e151e --- /dev/null +++ b/plugins/opencost/src/components/AllocationChart/SummaryChart.js @@ -0,0 +1,96 @@ +import React from 'react' +import { ResponsiveContainer, PieChart, Pie, Cell } from 'recharts' +import { primary, greyscale, browns } from '../../constants/colors'; +import { toCurrency } from '../../util'; + +function toPieData(top, other, idle) { + let slices = [] + + for (const i in top) { + const allocation = top[i] + const fill = allocation.name === "__unallocated__" + ? "#212121" + : primary[i % primary.length] + + slices.push({ + name: allocation.name, + value: allocation.totalCost, + fill: fill, + }) + } + + for (const i in other) { + const allocation = other[i] + const fill = browns[i % browns.length] + slices.push({ + name: allocation.name, + value: allocation.totalCost, + fill: fill, + }) + } + + for (const i in idle) { + const allocation = idle[i] + const fill = greyscale[i % greyscale.length] + slices.push({ + name: allocation.name, + value: allocation.totalCost, + fill: fill, + }) + } + + return slices +} + +const SummaryChart = ({ top, other, idle, currency, height }) => { + const pieData = toPieData(top, other, idle) + + const renderLabel = (params) => { + const { + cx, cy, midAngle, outerRadius, percent, name, fill, value + } = params + + const RADIAN = Math.PI / 180 + const radius = outerRadius * 1.1 + let x = cx + radius * Math.cos(-midAngle * RADIAN) + x += x > cx ? 2 : -2 + let y = cy + radius * Math.sin(-midAngle * RADIAN) + // y -= Math.min(Math.abs(2 / Math.cos(-midAngle * RADIAN)), 8) + + if (percent < 0.02) { + return + } + + return ( + cx ? 'start' : 'end'} dominantBaseline="central"> + {`${name}: ${toCurrency(value, currency)} (${(percent * 100).toFixed(1)}%)`} + + ) + } + + return ( + + + + {pieData.map((datum, i) => )} + + + + ) +} + +export default SummaryChart diff --git a/plugins/opencost/src/components/AllocationChart/index.js b/plugins/opencost/src/components/AllocationChart/index.js new file mode 100644 index 0000000000..a54cea13ec --- /dev/null +++ b/plugins/opencost/src/components/AllocationChart/index.js @@ -0,0 +1,81 @@ +import React from 'react' +import { isArray, filter, map, reduce, reverse, sortBy } from 'lodash' + +import Typography from '@material-ui/core/Typography' + +import RangeChart from './RangeChart' +import SummaryChart from './SummaryChart' + +// TODO niko/etl +// sum allocationSet to single allocation +function agg(allocationSet, name) { + if (allocationSet.length === 0) { + return null + } + + return reduce(allocationSet, (agg, cur) => ({ + name: agg.name, + aggregatedBy: cur.aggregatedBy, + properties: agg.properties, + start: cur.start, + end: cur.end, + cpuCost: agg.cpuCost + cur.cpuCost, + gpuCost: agg.gpuCost + cur.gpuCost, + ramCost: agg.ramCost + cur.ramCost, + pvCost: agg.pvCost + cur.pvCost, + totalCost: agg.totalCost + cur.totalCost, + count: agg.count + 1 + }), { + name: name, + properties: null, + cpuCost: 0.0, + gpuCost: 0.0, + ramCost: 0.0, + pvCost: 0.0, + totalCost: 0.0, + count: 0, + }) +} + +function isIdle(allocation) { + return allocation.name.indexOf('__idle__') >= 0 +} + +function top(n, by) { + return (allocations) => { + if (isArray(allocations[0])) { + return map(allocations, top(n, by)) + } + + const sorted = reverse(sortBy(allocations, by)) + const active = filter(sorted, a => !isIdle(a)) + const idle = filter(sorted, a => isIdle(a)) + const topn = active.slice(0, n) + const other = [] + if (active.length > n) { + other.push(agg(active.slice(n), 'other')) + } + + return { + top: topn, + other: other, + idle: idle, + } + } +} + +const AllocationChart = ({ allocationRange, currency, n, height }) => { + if (allocationRange.length === 0) { + return No data + } + + if (allocationRange.length === 1) { + const datum = top(n, alloc => alloc.totalCost)(allocationRange[0]) + return + } + + const data = top(n, alloc => alloc.totalCost)(allocationRange) + return +} + +export default React.memo(AllocationChart) diff --git a/plugins/opencost/src/components/AllocationReport.js b/plugins/opencost/src/components/AllocationReport.js new file mode 100644 index 0000000000..7447c05b35 --- /dev/null +++ b/plugins/opencost/src/components/AllocationReport.js @@ -0,0 +1,200 @@ +import React, { useEffect, useState } from 'react' +import { get, round } from 'lodash' +import { makeStyles } from '@material-ui/styles'; +import Table from '@material-ui/core/Table' +import TableBody from '@material-ui/core/TableBody' +import TableCell from '@material-ui/core/TableCell' +import TableContainer from '@material-ui/core/TableContainer' +import TableHead from '@material-ui/core/TableHead' +import TablePagination from '@material-ui/core/TablePagination' +import TableRow from '@material-ui/core/TableRow' +import TableSortLabel from '@material-ui/core/TableSortLabel' +import Typography from '@material-ui/core/Typography' +import AllocationChart from './AllocationChart'; +import { toCurrency } from '../util'; + +const useStyles = makeStyles({ + noResults: { + padding: 24, + }, +}) + +function descendingComparator(a, b, orderBy) { + if (get(b, orderBy) < get(a, orderBy)) { + return -1 + } + if (get(b, orderBy) > get(a, orderBy)) { + return 1 + } + return 0 +} + +function getComparator(order, orderBy) { + return order === 'desc' + ? (a, b) => descendingComparator(a, b, orderBy) + : (a, b) => -descendingComparator(a, b, orderBy) +} + +function stableSort(array, comparator) { + const stabilizedThis = array.map((el, index) => [el, index]) + stabilizedThis.sort((a, b) => { + const order = comparator(a[0], b[0]) + if (order !== 0) return order + return a[1] - b[1] + }) + return stabilizedThis.map((el) => el[0]) +} + +const headCells = [ + { id: 'name', numeric: false, label: 'Name', width: 'auto' }, + { id: 'cpuCost', numeric: true, label: 'CPU', width: 100 }, + { id: 'ramCost', numeric: true, label: "RAM", width: 100 }, + { id: 'pvCost', numeric: true, label: 'PV', width: 100 }, + { id: 'totalEfficiency', numeric: true, label: 'Efficiency', width: 130 }, + { id: 'totalCost', numeric: true, label: 'Total cost', width: 130 }, +] + +const AllocationReport = ({ allocationData, cumulativeData, totalData, currency }) => { + const classes = useStyles() + + if (allocationData.length === 0) { + return No results + } + + const [order, setOrder] = React.useState('desc') + const [orderBy, setOrderBy] = React.useState('totalCost') + const [page, setPage] = useState(0) + const [rowsPerPage, setRowsPerPage] = useState(25) + const numData = cumulativeData.length + + useEffect(() => { + setPage(0) + }, [numData]) + + const lastPage = Math.floor(numData / rowsPerPage) + + const handleChangePage = (event, newPage) => setPage(newPage) + + const handleChangeRowsPerPage = event => { + setRowsPerPage(parseInt(event.target.value, 10)) + setPage(0) + } + + const createSortHandler = (property) => (event) => handleRequestSort(event, property) + + const handleRequestSort = (event, property) => { + const isDesc = orderBy === property && order === 'desc' + setOrder(isDesc ? 'asc' : 'desc') + setOrderBy(property) + } + + const orderedRows = stableSort(cumulativeData, getComparator(order, orderBy)) + const pageRows = orderedRows.slice(page * rowsPerPage, page * rowsPerPage + rowsPerPage) + + return ( +
+ + +

H6OvefMurssbJw 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 Qz`wn_4(xnsef;`=0O&4bNdN!< literal 0 HcmV?d00001 diff --git a/plugins/opencost/src/components/AllocationChart/RangeChart.js b/plugins/opencost/src/components/AllocationChart/RangeChart.js new file mode 100644 index 0000000000..3410ad24ad --- /dev/null +++ b/plugins/opencost/src/components/AllocationChart/RangeChart.js @@ -0,0 +1,149 @@ +import React from 'react'; +import { BarChart, Bar, XAxis, YAxis, CartesianGrid, Tooltip, ResponsiveContainer } from 'recharts'; +import { makeStyles } from '@material-ui/styles'; +import { reverse } from 'lodash'; +import { primary, greyscale, browns } from '../../constants/colors'; +import { toCurrency } from '../../util'; + +const useStyles = makeStyles({ + tooltip: { + borderRadius: 2, + background: 'rgba(255, 255, 255, 0.95)', + padding: 12, + }, + tooltipLineItem: { + fontSize: '1rem', + margin: 0, + marginBottom: 4, + padding: 0, + }, +}) + +function toBarLabels(allocationRange) { + let keyToFill = {} + let p = 0 + let g = 0 + let b = 0 + + for (const { idle } of allocationRange) { + for (const allocation of idle) { + const key = allocation.name + if (keyToFill[key] === undefined) { + // idle allocations are assigned grey + keyToFill[key] = greyscale[g] + g = (g+1) % greyscale.length + } + } + } + + for (const { top } of allocationRange) { + for (const allocation of top) { + const key = allocation.name + if (keyToFill[key] === undefined) { + if (key === "__unallocated__") { + // unallocated gets black (clean up) + keyToFill[key] = "#212121" + } else { + // non-idle allocations get the next available color + keyToFill[key] = primary[p] + p = (p+1) % primary.length + } + } + } + } + + for (const { other } of allocationRange) { + for (const allocation of other) { + const key = allocation.name + if (keyToFill[key] === undefined) { + // idle allocations are assigned grey + keyToFill[key] = browns[b] + b = (b+1) % browns.length + } + } + } + + let labels = [] + for (const key in keyToFill) { + labels.push({ + dataKey: key, + fill: keyToFill[key], + }) + } + + return reverse(labels) +} + +function toBar(datum) { + const { top, other, idle } = datum + const bar = {} + + for (const key in top) { + const allocation = top[key] + const start = new Date(allocation.start) + bar.start = `${start.getUTCFullYear()}-${start.getUTCMonth()+1}-${start.getUTCDate()}` + bar[allocation.name] = allocation.totalCost + } + + for (const key in other) { + const allocation = other[key] + const start = new Date(allocation.start) + bar.start = `${start.getUTCFullYear()}-${start.getUTCMonth()+1}-${start.getUTCDate()}` + bar[allocation.name] = allocation.totalCost + } + + for (const key in idle) { + const allocation = idle[key] + const start = new Date(allocation.start) + bar.start = `${start.getUTCFullYear()}-${start.getUTCMonth()+1}-${start.getUTCDate()}` + bar[allocation.name] = allocation.totalCost + } + + return bar +} + +const RangeChart = ({ data, currency, height }) => { + const classes = useStyles() + + const barData = data.map(toBar) + const barLabels = toBarLabels(data) + + const CustomTooltip = (params) => { + const { active, payload } = params + + if (!payload || payload.length == 0) { + return null + } + + const total = payload.reduce((sum, item) => sum + item.value, 0.0) + if (active) { + return ( +

uQ*nhD;DH#n6@eI@~v)xn1|5F;)JgC0E+ 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

c>+?L8}0?1y$&0^saS_sx&}!9bBFNJA3i#^ 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

-e6cD8cS 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νaIfd-j^Ady_FDt{w;OGH)2y>m;L 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%0AE&wuBO?F%kAHjd!U9{Ym#~bC7sr}; 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 v{PkXJ@k_5tccEvEoAxaDz`osNg znB%JZiLk=fvyTQ&Jgl)9&_Q~Z=_Y2nRr_sc7k|4*t>10TYz=FdtW!vn&OOi%_cY^^ zC4W?YlYTR}(b1Fm;^^7(JaWv-n921h?0i|t$UDZi;39zQ1>31oQ#C3 zHeV8t;hD?@9$d!fXr%j$4{+#hwzOyg4|5+^1p9f0)Lf;l8z(4OV^UvbgELMW4HDAY z=)6VNQ~#iAe92}S7V2bz_piBthvHQjg*l(l@y-^D@Ns^OaJ%4DWE+(gQXsDPL0QHJ z^4){K&;kbhLHx15D_%j{D7D$OV#~S>~?o zF4;YQCME7}BhX;_A@NMIQ#!~13gN`uCupQ?#P?5%5`fZtg|QQ%`OIW2%Od$*&-%=# zzJ^Y`D=2&W_qx^0&0`)5nTS~xA9JwGoP&`CVviwLtE;;G#N^mV*3~fxQ_dLds+ z#|bct=b@8jYh9v7AJxuEw#m1_B=XC%nP;1VGBxP8vJXScc~_fX*?Y0D+cvI=beNrG z4~I=57mP02N)y;THQwK81G6v=3m^ka)&c{iYBASkf1N2pEBvjG({bg5R zKNBRL&bc^;w9;F;r3;?hPfs^DU62M0JZdHl%d$@f)+Zw(sbp+cYQkWi*wCmuL3!zJ zyirDPWSC7=S0PvP+hF>zGY>?AvcC&?ao#i*_?y5iK~_oQ#+J``x~{}cyKXHoxo=U` z54ji+OBeDx5VpC%U?o!taG9;_`5(sjqlX`p!qSRFb?>&AGk2ieKz?0m<{_x-7R(I@ zDo*1qyfb_I2e+H{SztFdH(Kc~aFZk|BXqqr5<`A-AN}e%t8GcVItqgSTFVh-c`SJ^ zU2;tgFZGpf{Z~IWjC*rHYfwSQ$ML+;!O`-X{}25ayW!qCqZ>8xot}&ok;^9voiQ`w zVAx;?ZWRCqwH6MKgX(d3qdm14If*}~BTG4bTkUHlXrgFkvzwC_{$R%~jwvJ@D z#1{?TJ8SR+ZjTW4zZX(QrPKdnQLDi(+XIv4YU*W*xeT+4#RD6^q!d4wbwm{d`E#|^ zh6yzc(R0I+$u+Kl9KAdTt>pk&2}jHn2n7gHr&tZVh#?PA{@(w!7UQZAuGp{U@;)GW z>F;4f`~>1NbBs-M@#oXg0vQ4hN|u`!;VXN);vyo78ql{j9GS)#p3rH@1Dcifc_T~t zAw@wSry9X`negL#j(y|^0(>v7VDwwbGPKK**9-pr1kFI)x<14l8cq9>(z}1>Ek^1v zE`B<_84j)4?m>>b^%TqRc%9U>QHKhoZ*=wOEupN4 z6bbo z2y=7pK6-g&4h(`xDp1UpTWm(KdWpmXdp{D0TsyuSn(Wpij&G^A_xQM2j4|`gzbA0! zvJ=AJV(oM=54>y44d{Tp$%Sl=wfyB)uBr_c^01azK>nm-WP{Z*7}SctEop)@gt?+} zXW1(Qa<9z0Q|SjAnk6WuSr%-iLzFg@MLYLib9$N9VLZ*F9WYrsaABex(JMstEBix< zT)Mz6GVVt|6lDm6VJkTGkybLTwL;-L_l?8#rXBQuDh@j^TPNnrJa=;SMV=gPozNa zb5AQBZ3O0O46!cuR+eaHcB6S8mrI=m)0oEoMAPQsEmBJ%&s;S0DBhPbBzxqP19h#X zuu(ry1dH!W!3kHMu1a8&$`%&W^XP?3z7+C&ehvk%{pdgkY7h-%z_b`&%s@A9!Z-S% zEK&dYS)YHnxR(N!9h6A?!2DE2$*(;XshqA0rYzA-_X2nCi6&&v-Re#?q1pP~%`im* zR}Sw|%>{z!hMq~zrD5ZTj9&{Ss=^T;xRzL{?)CrzxD;TVe}(srWSUNihr>A1pI$N$ z?i0nNl7^=*F`LVDCrs=ddfpi&0qD*v1ZQ)yRp&gNzid72@*G;B#|$I1dN>^R$i4Jq zkYbpt-?;pOX@DreY@WV6RHSf;KSUuDF8xXJ~xWb;?o@M zmy!jb#hXk7t;_);M#dbzX6UFD1M76Py>B|g{0_(k4fjkj_@1_Q1$4T@73M>-n1{76 zuBU{LkMr#QI*Qb@bYe z4qGFx6}_MMJ@SU{Ky|9Eef&&?^mXP!@cXw;a)h(9w#(7+$^dub7w-pMujO7e4aD>> zIo2joJ_rOGP51odEWKk#H&rJ1wP2OtJcEzfm982LV;JdOU61pgi#%e?G6Er=^Ukyv zj}_2=FJ*mQ`@f}(9N&%qx31l(;mlW8eGJ)U^Q{E4i^f^?+j2YGuNaGr1KuQf`9w#8 zE_XW@A09uWqvrA%KC`(fYh#eiB(C$DHte!hq3cjSv9=ow z9}D+$4wHL?Spf!W?s}1T`1q0pR~Moj@~v8?jLP8TYN_B68orU|EjV^tMs)9A$1a-g z&Pnb3;G)IjH5Q|vcssa(B$_WI4D~z#p_I#ZJ^$f_W*tDl1KgMm@PE=FLptN$w`r^j zEmJ_Bg>GNcF!pPqLfQ)(&w*x+n}Lap01GAbfimxL<$1&1Zuc&0%^V}A&3~qI^(ujL zK*&cPXQA60d0Wh_|FQOe-BTvce;AsVX4thlue469v?RoiSAaH0ZD$DYr>hHIR>Mbr z?gJEB9q-x*&KWU&D4;*<~<) z@cK}9N>qZ3j&+ly52fp)pZ|I&VMlG?tWlLW=%$X zn04cu*LV_#`dG|)wvi09Ko__X2V8*h^7o3esJ6<@?1Ac2gZ5$@6nA0Z7THVF!FcbFxc!3}gHEca3iZ1MEU+dq43I_v&g(UW(?FqKysUePu4= zi2`Zk)j;nUK8V!zFemgpr{0nCQJWn~7wD^-sej^wa+3l-n9>l|a}eL1QECe&a7#xs zeEWtw$$K*B_qVN{cl)?Ya?zL8kj6s_SpVWV!~LFCY73-0*8+a9Ig(+scp`U}GfQ`x zCslyf#7H~%`nuo*lgXZUV-F)*GVUmVmnN+PHWiQNs>HoiUzZ9v;_Yp`OS!Ke=3IOD z=F)r;RwBadaqYy^;9;W$f&lk=X&M*)`IUt3KkMs<-^D!-I_#&k1%n1o;CA#espfSD zQHHPoi8~Jn6rLviWk|eyyc+m!vH0zVT@iP!C)7^hBDmGJ6#~a>#s#4Nx51Bl~kMcK{cFd9*Y}&K4CtJhe~zuteP$ z^34m4Ypbjx-r$c?Bwgl#HTi7zvfE$bB3zL)6*Y)fQuz7@3A zdNE$yAn6WOYA|v91RNBHkRvS7@cUu^y2j3m;w?qTmYzaA)Uf-0e%0a=Ix&GZwEVjk z9-8PSmw7JCN_M~iSD@F|1wv`c#Q~n(>!t2J)>~+t*+R9?21cr(1uYd|?=uziy?F0Y z9jBbwoBavfW&Kx4493SL@Hd13{dEZ8d&T*N*L@?zI4d;q{Q&A&Z+Ekk0$^=H4F5q< z^(&VQy(N<;X2-4M?}Uy)J{*r|Z_#Q^%8l2c*1tqL7U+pIWKu3D{On@FHJ}?Yj^5j6 z0*3{C%voYf>U+@73MARMIyvZbVBWKrIXIQ~zSD@kujq?!=Q=HQKR6)`cRY9H{Hse< zIwg)8{eY65c8Fj(+_fdY34a3)f{&g_jAN!dt|m^#+rbs48(jP@wU%#j`;4nzoN*A94ePOdaR4cmR^C#vus$&l^sS zt!+?^m?bZ#5st|&)Nx(N`Srca9UpK<{$iV;-(!J%6-T98GF|e{VP=Ww5MGrmC{EeT zxaBl&(@!33TN%~@xQ_E*fzEij^7Q9mhxi*>jHQ$1v<=qeN#6B(cDlh5uer@yjR$a7 zSah4hB;)<5VgD!aW>8Q`%OdQ-`f&AiKLMlvfELg}D&^v_ii*%15n5N)%9%x+YqYk& z-s68eMX?Iu%|kk}2TL=%-2o=fjvKRp;Cjy}!0yp|mC%=UnENwEbJuiTkzn_Oe&GJ) z>|w8uVjm#bHhZ=V506~7opt{`8JXGHw4jG3{GxSf#VdL{NqVW{=AT+r7`o{$d~4Ax zeEs5KQPyS$fB=TWue;H`82I(^I146usWJjPv4z(4H1cAn@`1Hb|3mtp;-==*{HH^hB@7Kph6u3~*J^PrZ+eqImy z*+7}OyAGt#5U6l#U(dJWW|wW*qdu}ovU#Q)Vwf1-sPQMvs~ZO2!8g8NN+r>ZbH3t_ zJdks#cECZuVEntu-~d;_)pN@E-@gzG^|NA$~>Ni`jrv3wPo{jRBjR!XLK zc*3K8YHjn@^4(1;Q;}ED&JOE)H$HFccglDVT|ne|t_9*`ldjV?j)b4~fCa(B^0(tg z1|a%@+rS_`*$PTSkm|HOm!Ysfm+$mnQW_;gm>~*!&*?w6=|OAx;fW%?K3iHUuOY6=q*3XPFo$NxZxMX9q1%zoU=BvNZ)rdhIqO)avM#HBi8rQq3TPFt+O*~+ zF|>iH<{a+_Mf^4npsj?@BptN-5_{S|o()M}zbyV}Diu54HP#Q|H6 zl?MgUFY5|!bKqs*w`*@eA zC>Av(E132Q!n)=CxH0?y>5vB_A0W7FAL3TlVm`GvW^ZaC*y0qINy7*w6s1q+$rCzk zOHeAx8IhFPvD(vRsu{zw1OA$G0zEl;sLpj~l ztnYjrGv@U1v=U9RYqF3;_>4v|M6U8cv1;>%Ski@vbTaK1Tt!6NwiR0}NFmEWik)N( z*qHUV8`iv50D(B_FCVQ?zYWy|X7xydptO!SVnK^tXVlQrq zo#ZSY_;33D9hC(O5I2qE;#uLf#fAjH(|Xsl#^T=+ur_4fdCF+CzFPx#Jc}6<<`Anb zog4K;`5F>7IJtfKBf4?%BW{DaGA`8aUoi=FPFyTnM^DuJSA<`RC`mkl_+mG9;p7B| zcTZt%v>075gU@Os^EisHE2n#{YPrKkHECPO317+W( zk0^oLwYug&4m%IIqlxCWA(#Z7^Rxc%o<9a2vE1(gJJBB{qY&5oc&Mrf((a zC1`w5%mls5=ed&B%1>9@LN1^!_4WRU;+FA*J8Yk%;1QnzX0B!ZXr?>V}kPU)q{MY^fu)z7&-dS--RlNN*dAhED(U* z2UdcS$F3cl=D>bIbbnqMb#py%KY|S{3V6SMA}Q-8yenHr9B;?BpPKB4br z{~45WHEdL%+=W&x!5ku=4E53vpd%UZxaWLcb=GZ0N#FIM#-Dint@GgPsPlk?8;CPZ z5enmImU6w0eL?pE8Lxa6inh9*3F#-DhGf*kE+{_ltCEJJD9UyT#cO4xQEJ;BRWAXS zhqRIg(|=ZxDSxQCF)zXZzC!f0YfpJ@?GvUG9JxzjVbfzITX4e{ul0(7DyJIH|4VJ& z=kB^s()-|Z_^#9}`LnCT`a6n=P(D1D)O-y^IixGq+7aeir`&;DSzJ-OK9DoB9(@^P z{8&_}@C24hUE6))<=KF_Azy`aSrBE4kLa9*pJBElq=+eM%1HejQK}#B=a!lG*@Yn8 z$W_0VmMWcP#7*(|m(UeYwF&#Z5*=oir_I5}+)65GFQ^m(r1zkw5()T0h@`*R7=si(FzSW;k=7mJEK zLY-!)tMa8zh#Pqx{PDb@muePdGoOT-Qs7l=Z}56TIv`#>5I{%dUp`rnAY{E>4ixDV zSuP32cHSlww>Ni%qea&8%JKhtEnZLfi%fJH_?)iI1chCS!R~$_o*O?*yc!Ee(lD$*dsjy zX{CUQ8Gc%5<1R;1ubl#m{Y`ytLcgvDWc+BwTYK>s(T{-v1H0dt@xKhl{9EMhLaXfh zxVEC;QZx!3dy*+jq5o2_skh1G1sYvpC+*IrL;{zzo2qG%o-*K^eB z13y}_4herf(T1s~=o9-}(XND@>tAe+L_JR8U@}Y>R+jzkIS8RGVe|+jHQD9Ff4vK} zU>xs8dTIvA%t3>>m(JA62IS*2cLySmUCCCvqGg0F5aT%w3}{ijfJKCbcxUaE5lqDc zx4YEi?^fE)WxSBrUHLF*xDIe-YJMCI+@;pGnV|Q7E_wBo28iqkr{Ds`r~lst5cUQ1*$8;YihmhQ;;-|L z)IZefqLd7IvP|W{oz}imW&Bcuq-tPK6n*g)Lp;L$v~LCHjO`!XVIZbQxY_-39nj?9 z9_Tj50KEB8_^G7$_G&nnUp4f6dhye_Zht-OKB>F9jfZQc>ZO-D+DjKTAbg}i&l@RF z2mUT!kg)i5^mQ)s=AQb20i&rhJ zIgVfeo9&A52{+NJ=7X!Wr)QS55m~MSw>GIg@5@Z0eI%VI`PTgs!20U_UVRD^TI0+Y$+`=lfV9#6{{!erXU{EMDsXR1IrPh zw9d-S3Ntrr`6>GplX6u3(@4*x8=jKA!J5T{hyP`bf`VRD=~$kMj($xRoN>j}v#z4^ ziyq`=rH~x@CTQWw84~)RxtM2_*%{9wi7?BRw!O(s$#H&)Ie{cfY^wDzE!l7~my_f9 zU9xI~zlIGt)%`5+5^mAlCoviEOiMr*#)v_>cX!+rJ6SICM!6|6%1A17F9aRzscl?F zRbiIY1SWsU3>`jV(CuWBvvxBu)=lbF=MDTtU39WuV(;F@%fV-^^N9lOo&2{qv8P6? z=vM%*zy%7zSm=37ePFUWHDAZLvmVI83Qql?KXQGaFIWmPXRHr(K+V`P)q8wV088Y+ zfG8x0aVr%joZF40!ffncgzkV>kEM||7B_CW-H@7YuLL57^Hmt({rD0c$8a@rqL~9KJM;& z;%fsix>YK?hvXape}u^$=*`hjqxxTtU>N%_^jGS5}GH2c#gnVBJctK{k@ z3uft$sJTRNoza=InuXaJJ=gWUGU0PgTey`u?_HTF3n@*GpqK+6*6pI;u^hz~SJLB)idT)B4)?go2 zp%o`^9t(1gt8mTB=Q{gW-tAK9335*1C7VvyP>kY_Y3t|*Weu(|`!b79CgUiJ(q`l@j zsw`&b7o`iJtRHN~1ff9%Y|&kx5+gI*y5DG z=0=fGe|+_znXsAB10a~CN^9`_JwF#Z3sG#6S>fx>OOuk-t~C7c`|AkgnX$yRb*6&` zdWggkn};I1tC%tMf(gHQt`T?@RT_?K{*7zwgSsaDY9(~B@MS}>9PXt9XP#4gxZoS_ zY9C8Wk*dTr!QQ~FsoEY^X7h;JM4v`>u{{qHBR!7EPR9EITL4_hc_eBudxT2A^<(h2 zLZh`+)}`<}PTsw$0$dJE9OX+It12(i*I17d_-bf6Sd8Qcke zvldk>U$;Eb*I%6TP-#sCi!4^Ojmj?!6BswHZU2OQJLDH+&u%+3#r(IT#_gOx2cnk2 zST)Y@ww`>$Tf|3l@zSZpX?h!x=z>|B{BlGYGY z(MzK&ed@=59x-M44(!2NjBKoTyMvrFRA<=8hZbk{14D_5JB1_*q)czYhHi|AujGfP z-Aeb*v2pICi%& z>q305qLQ@&B2_nx>;+bPo)gm(;xv%aHJqPzdx#{}* zpVKD(79TsHVURZ+SrNvI|KMehYB{ZiZa#c~iNxZns$wQW%+H~FFHcYnd z|D&uZSlk?RWF>;lN(nsGKjv(6Q(horW@wY$SG^#gO55x!jOG$Ffx67HDh(B+cc652 z-+XB^l>3HN+cEGI?sl8QyU}QfME9P|6}Srqv3kMZm&g2v=F^af{=vhq8lyBUyDc(Z7`zu z-bXLdBYGJk38E9dj6S*uF_V7ly*Ias6Feu$&%5jH%+^tcVSSOvzljFidsv}4A!#FB_)t)$;v*TK z&7N~4du1{bLqq4Re~wdPOMJ;F4S33&b23!5>E5({Tm$32SzZx`9o z_npnE7KU;b4YN7NN6f|2v{&aGiQ6Sp^)&*Rr~C63KCtB^muGl;;R04P=des+)+Pu@ z`hdHq$MPsFO7)GTrMTLEXdGKX8rg&`dCG0lE*gm7t;x2|?|H+2ryxjk$dhR|L6Ym%ii{GO@lKSuU)$c=ZtUD6 ziQHmYyEN`{4rvPpiw5xsD=!=U*?^=!$c1B9E^&u+b**F?g}%1mZ1(59wyBBwSidE>K$poUtjj!E-{2)V=?n|%?ITbkCLVY z4T^|Ezcq_xoMXCNju1ntx^6%qCz zdS-$S^YxCOyzx7TG^aOyl-2N8WPfr=7BO?;w$zxTI`_Ioom*LW-0FVTTmn15pYHYf zHw(zvm5s%)74QOpe%*Nr)i|(p*bk+w{pN!A2p-z@AW1|6>QKXTF*O*YN`Ce236}}4nN=v-hVIem3vWXmS^;~X41SaaD{;qnt7Y9k`~ zs0uf=3bMmlyZdvlt+H5OPd2VU?oBR7@LWMd-*})$U0f1GE>4AntNtT8K3f3Pzppp= z*g;aNZCnlUy9PY7J$~6B(M^B&=+S&m{YJk@&_jvQX?r3kx8LKny4W>uhO{cXUg;uK#v6|Nty@s_EI3) z|Mw4^Fz^V_ln=jz$>Z-(Mtrw?5oi&t*&4?ri3{Nr)XD6T**s(%s^D>Cl8>u%&QDAy z3MR@e5HP`np4N!gz!c`i}*1@=9ZtCUX$sWREo8cduVY1c7_g zvCAJ)-gg&Soo(z%xfC7w3EF+zN;%L(z&i1{i2ve-RPT79W(uzyC}rV%NSc!4E8wlP zkX3Q@$<^f*K6~-022}&j*5g1Q4!Y=3s9E1~>%1)$f*h9Oj;;4r5gi+Of}o3umE91Q zm~lgGx#t;77F|n0C*bRBxXQo&>Ad^EfBo z*9DN-;bp7iHdmLMGyb+lgB9+}UAbaWw-rVqLZm?d@#M`jVbkZMq_Nr>9XpO zauy&&WM@hQUvy`5EF}9niEtBsM^)HV%HVGj{y&e&zWc{iF{oS7kkhdmLkv%b14C~w`A?AG~@4a@q73n8k!ypG_AO9H<0%(QlKbb;#gp&dxccL6u ze|M-jQNP!4C4{PW8W-7(yU1e<=_52?j1uDM^~a_rk}&=>3dUA#=IYR+%+c5B8oget zms}RVt4kvkCZC?#hyFf1sNVdpx^QAK&`*aaX7++92}(4czVh-nK0@P7@Po+XPEhCM zD)S_pi0(r9#Af~M_cV)H$XC8i-rj(*;I>i(Fl^T8>IvWN9~v^Vj2^0xW|sMy#~%Q* zMuCp^s@a?P_$I`ji+ii+Ibn@ZSfL_MCw=97h zh`$^ldzHdO$}6Rc{rWbGZb$~7q&aaS^pwDFh_8g=o-6XMaf>C7L&Vx=jWQ$o6!lJU zpTR!TarLpQ8 zk^DOOJLmjPo$qfO**YU@`1V2Eyjfu83DexiQ=g1)gx3CdGjSrR0B)Mx zqHYzwgzhPC5dFFR@oPJYxyx=3V2=$A|Bd7Z9IHMby>3jeSo*$1Lev zr4k8e`VSM@r6DkLEgVaFN2N1h%@kvPa;3H0GUzHt)}E}jE0b*yo1fLUFO7gw&XV;W zi!9d>>r9>`4qp|yR67L^#WnK$_`Rus4+!;zGG4s1>yWak5IM>Ic>_nF4}TyGA_)+{ zZDH!z=_4H9CZTRd769%3rf^w|bHA2RxBoyI7deF^t0)O%pA!*_|9)qpA*#Ab!8&n% zJ7kd!dA3?uw(5)het@lM^uYDK&C#QHwC!c%J9GSdQcJ`%Vh5A;3EbKV5P8C6Ts)w= zVTMQEx>eJDCKj;6su!NF4UltS+@vJfJ;{#{p#Sc1I&{^sB;&iTVqg3P>*X1;x!=m$HUJ(S1( z?G@T(`gn|Z0NUYu@*%78p{sS(3)(UAdR#x>;Y=+e$v_0VkA@Nr|GtqCg2OsK(^_GwptUiJhw#bE+n{~NJ3ufFnSJ(HVxK_MlulQ)HH ziRlHK^_DZqnz4lSjp|qK08McdTM*{cO@~}yvW6cnykrk{hh^Utiw%eY% zHFrgRk2XQDiAji>pJ;=ofPt~mrStt@PJ^_t-Q#`}{ISSjqDfNgh51p&+o2W)%$Ns- zwkavAsW-W*v##oNuXHjG+9JkWsc}}5l$b^4_sRR@G`=6RQlV){->(b{tqdF**Xc4n zs$d7H(f4A;tf3yh8kdvkVqg0XT&Y3X5gVyvQ~JZ>EhF%#j~NOtQrMZ=_~80iNvQFx z&s89<>UzZB)SX;rtTIT4edzR7ML^rja#fKdfnB~5ueJ^~#OHWa#&`san2dKQv;3IL z{Y_+cQI3NA$;imAeWG=l)v8NvS1mW3ZHw}J7cA;XJ$G%(ZF7`J|9P|TrHFEFQ#Q9(l_2%&s4f*ZXK8*ua*sC?MJ*cqz4{AB|m4v}U^76c%v(Q_Jn(QujH zlG;Gj)Yw+L{h)96!Sr&ojY2Z7GE3g#`p{|k;a%-4c9ErTg`90%0pF)?CPo+a5J{+= zk1w-+Zab)bR#X9@a%sj|Q*A5ca)F`qA5?f8j{B7MrI737YT$qUs8yaFknq_wJ6XQH zvuIj?K)d_M&6j4AXTiP{PpSO4<_%8+v8fCpQ}7?w%Q8`l2P;R*Y} zIbmTSE?owkgyc;mr!NKk`v-AO_#yYkUexf%K(Zll8J%mYfauI|2ry^}I~0+k$_cN^{lxsN_Q$8(5bM6; z+)MU6hSht_Vo0akk-3=4ikj~STDXL)@Q+~j`AZQe=>@PpWG;7PsJPaHc9HZ6l4nvM zFtfr)*B4#9;QzQnqB?PTV>q@hZ@cFW%K&e&&jVovo@UqK$VB`{hKWg;SH_eM2|@-W z$=1U;6#M%Tzx49)b|k|#>kNnfZQJ+0`z*Xpb|`T#$jL5aD&AFGscoZqV=ggv&Kf$4 z1=!q1J%ziBcHGqb>Hjf*&^KrHp$Wg*p_XiRSFRpo)b4(GkORF^2R`dLsxr+B3OKB+ zf!zC;AGK-N)c#e0?aYY9Tkm!Tlg{9^hfE~~E9H*H4MgQDoE|1> zHFnUnQ+I`qoO;^~UONEv*ckEj@0Gqfh{vt!_@%T9-2Y7x&?EHWo@E?0CKa3P+Pp+| zdM$>7E7BsXxXr<4a6g!Ua8VN<=j}FuQx==!oLT_g;Fia01{%hPRO$>(j4l8JxZ$H(Z zuH&BF;DI4}R0=}>W=C4u{R6P)C+g6>(P-#$Xc5fjG9LHIitT3iZlo$$#GeI0I=}vf zT?`BT3tfZYMrGXQp+WKlXWHkXe-13aFrJxSKZvPu1>#QfLVJ!U=LJ^U|NI8=RI&&m z{WIdN;H)O3q#RYCO>i>1bI@SOFCwh6mB+wW_1Jt#Kn3D=6|VatoaicEU7i0&$o<+4 z`K`pM^amSVS07qcGn>gw&9P#ojgtZa!ZGx+$7e2E$}8*@FyzniXiJI|LK_L!lw6@M z5fm|d^x%`WP{LH9zVKbHW1|aJ_E%d%H2#b|_HBh`aol-;)c-RMJI?HRZ!9_Wn;hj}`c!C-CZZb_Q6kQrE)h*k1+c$R;+7_Wje zZsE>oSpyp#zqk@&{>eId*h)0X;9uSCbuZNM#c{=T#2O+r4dhb8#^a|!b-n%!9pZJU z6R@(7w&~#dfKk&<@9Z?4CVIQcxtX}pkDb3T_%U7WU_Y6yv|>^GqvSBAia^4S&^aL= zR$_rzOZP0A?}HzNnTLUZKkiC*d>5Si%p0X)+UX7wf-aD=A=4Z8L@l!Ie zRIR#w6Xk#_G+X@Xk5ol^KIe36ohs|~dPcs~<-I#6f@8u7O3*S{jy;(}@yDmtq106~ z$kR2+HPT7e`vUoai+hiA_JJ}m%iN+Q-ZyE-ANkxxCPz;nDb+K2y2pbZNhow`wZIB% zmDpGz6Bp*%m3ih+Vb+&JaGSpd5?egj~-4K3oTWFNxw;8WhLimXd}= z`Q-LcULn>JX5jzy_z`6sdouoO2C}el{t~7JT(Xhcw~f_yoVuK4<#spO^gJXV|0rn9 z*x~#jPOZ9}%^*cW>H;7F9X9#mJ$q?1F<$2OxEN#P^_^JjY(D{XN{1O|-?m%KPu%atr~Pd7&EALJ@l{+K zX2o>5Ty_bHquv&|9`&nt-)+TsHZV!A{HF5UYz2^+R{%&mN9f)i2X^kmE%GKjN2&0LUCJ!q9j1=8K7)3qcDJhq*B_rP8 z_&j31IH2QfhcFMLk8X51X}=ww^@d5P=!?MqU3S2`Ax$2 zp-`yzK_~S;<~jZSoEsA^jjp-nN?OaTWRc*e;r=hm8ryc8$uR+aqC)5L2y!J;x5GRM z0Jk-3C%SI(WJThUG$efK3UEamS<$ohr(3JL4ctBp+7#b_Yq00>1Ud@_u~7%Vv|Ht2 zdjZE<;_snC?s~vpeGxc#(r3J}f&l6`7!B0Y)u2vy z&$vIBW0!4A$ng^Ql(rB9DTXK@x@k)mX{%bJdd0q{5rxG>=EBV@8 zfgtw&(cc%qo8&b+ZMJ#;$u1=`!md*ioj;We1?Nb8^YgG5Kq!C@kO1GUU`s)&J}Gczy-T zNC~4GwN$wd6l^)}VthhLt%tIL->`6TMo*sKb%`Ppo~ODJ@138+%0c zZg8%Spdn{Ov@{BtE@^cs2+^+w)m}<>JwL6u9@EN5P4YoW+Tb||G%>M)flow0Hi<$H z&AV=T_YW=tzqG0ceN&rQr*WY5EVzc2(?r_#&&_083VAnfzufC&MZk8vUYG32uD{-Bl68X1 z8ATq()&)a@t@P=AL4$FVw~k)E8TI|voy8Dw5jrimPj-5;?UOko@{)Yts{@~C7Ir9s zDD7g3YWqm_#q4c)bpwf`j2X$|J{_@FLbGiOx)5I$sn?m`TJHTA@+yhrhh8!@fflwz zhNZkAX<_p4*Wd#Ktkl{ zQPKHBxew*LtCUz)>hq@l@XSoKu=>v#dT>Lbq%e^#6a;+RYm&VI69IpKY$L;^d87FN%$DwJ;fiXHg} zpH~z&1>0M&UNpgLpnc`B`L^ww>MNE8p4=N%1SzFH9;BSHtzui@l$YA`O8yzg_at=j8 zBcIbvl%B81)UY$(yf;pY50D&(D@|0W=73L~{^cq?d}Z*s>cwAg6%mE0g%ha*X&FTy zBY98Za$uo=hLA;Jsq(l1C*E3q#(f8}D1+yx*YQ#luOwdiyiGVCfERMRj(pcriLcD^ zTHY1iTH3xMK+$wfvB99BclVDCJ#UyfBC3zs))Tsc$OuiDAW+M2GAy&1bbHa)?U6oHe!+Y1|zWxOZB z$&#~gWus$ilJHfeTZzT+)3=UCX^$1uB~)gU^cQFJ->$t1a^yVv&rfa66F+I;Msl_V z{FrvV(AFPM<$VFVD|3n_6Yb-;=bC+ zT0fQ8rpJ;FnZ=I;)i0+Q9n+R=U1x>R-Ceo){6cO^883lQ$m>t)>-q0_RM+1vPQs3v zysP0x_^EzZq-lA1a9pez-tg-1zu*Sk0bI+#Kc05r_IC2Kq2qb_uXE<(H;)Vk-I=c* zP28wR?V_q`KHD3x_;Q2YppJ4zx`|eL9^GseALskS>XZ+R3rPoAx+bXtGsv# zAl#6|`6O#X?#As7+#&+7?$I%K^d-B>w(hb6_rT02>EPc*I>&;=qPx??6+rpnD*ISV zp_5H^)=WzwS?fxH%x_w*Y5jlaZu->QcfaX5CtNY*hkG|F*8RHU4@MHX5I=_t3CZ(=HCY}%_Ex8!MtB1zU;*IuJKcl11972Tw@joE zh2v!`*vpu6X5-=B12t8-*K6>8;C1-y)y2w^!YmVI+P#a}Ls{S@TQdxc#UBt(BNVRH zT|xLNAk0xqI|SRq{2H?GuObra<^(Lpe|PKZ!be!a-XTk$Mf^s~*MveVSFU>VQK=$G zQhmzvVCa30HOaqwqoW`tf$DS1n}Sz^r5&NaH`;LtB{ei%&41;@#c4tV9;HCs=epmU zZxF*{uV2)dpX}sv2NaPdbak+{ZIQN#%tbhXPRZmcf(=z@G(A$JRa5eL z?vgi|(xRM}BRw5UXC(i=`UG3|h`GtSJl}K(@&xyF)HB9PSG8T+Sd2N0GD}yz+Pd4q zHU>Yi1#}dyPXtVU}et~U|8gfE$gW}63z(u)_t&JsHgTx~fx()V@8kHyH?X*;HQV49 zrfjjqQl5Fc1llzO0_TKo`e57FTNhpx8GXlKo_#*S74$N`RrQVi z=T=@PtV&~-`?DxeCCzfE@K@a1Gvw?X^a>7h<}eCTQYHup4A`C|i(6UO0}`ylB1@Ut zZj?iBdMEt-l|Kgmj3t(5r&RfTz|J8JG=n^@*1aFW9oB9olW#T5ih!LQFGMUThL`?& zdLb@lK)ozIYQLsFoUeXB^WcVe;TFJ+`K4=~y>BRat*^+6+>k>bW(Eh^2S)qxiS@2)gjNqNz?QkSKz5ZYDd?+vUp%z<>tJc6bXLjm)c*vTdE=MQ5io(|dr zb>FrFZCvxIuWAmTCz`|QAipx8CtpcX7(icI4Rao_iS`Zf3sU;i#D5(5%w#l%d`dP% zbWA3aIg}d{9@;veIOQa|<2TY)Tkyu}W^=oQ0+T?|X0qX*;sCGOEfp8aK^EoMG3zLD z)g$VEzs8y$$%&c3lZV;opZ_IeFco%bT=cRcDI%SRlsx=xdIx8JWpzWi;_*cnS-a=G z4MTu}N#4Mjg^$=XY|MmOg}8oL>6zd-sox3{S?l(ZE{}as8J8H&4_5p*_$=@^vX(Q+ zTY)l5=-I>1Fj#*q1r4D~P2B~huPbBzk#b-&-W=d>|FZ&VZL<}Olf_d|g6b!;$mQel zYh$r<>3kwRQ_LGha2ZM=b)IAp;TzDP+!**f;W^ENrItf1qES6uZ#p?;_xEK@(HX9f z^D9T-qDZWACo0R+TBeBdlif)-`Ofu&EoQD)wO5O}bPG0*Cf3640!J^$3ZTcsATj>{ zTD_1yJ{ANJhpc}bo)>AlA8#j%F|ir~TPI&t!g$4H9xebjdf-3;JHAg?;-37>6I6>* z4~M=+hy9#hdgvd0A;>}Vx@;MKfxXkEAU*L@LkN42RIt9+wb|ITv|%SBfe$=9mscCW{rfR4yyt z9Syh}HMNb$*cJF*P~f(x5}ic52A4bs#Y=6}iKqnQwc^Qhx|{x572p{YwKjX}h{U1z zzFn!}<3M;E%GmwJ)f6#wf268#-{MwpT*8lo;quFfmv%vgvjAKKEJJdEJ8;@eeorLG z=*VxYXPbP#YZ)*8s&q4Zqc@Ps6Wb@%RQ*7z>b?l?j~$&}41y$&tSW#HQVH5C1>gpl zQLq^=M6(;{dPEER)HNhZ8zjJ!xji`ta4u4#6}g+kt8REa8#{4hBxbm5Ezfcwk(jb= z3x~J19@~)gum3#XO+bC}k*U?q+lz^5Uo-Ug+pwz5ElxHbyj{xf1%=4x|FWn}Xm9f5 z*t6KLaQc75QhE$zKfRU@?$Y~JAbUNi#Z2+EH8ab?r3x6@U4SE?oNUF}aX2ypjELGZ zA}jaZN0|lL`_gYc`h6m>LuAs>Pagi2^6V^_ z>HAxrL7>?5I-neOcSFwOQG3PG9(-vJg3#-k<-TuG+@~!#bvt-#3#2UmZ6S73^4}D1 zue$bazUH-8aWaxE7w)$>rcgqB1)lRnOGq4N)jkdTo zN-xUaxV>Mu-A#K~DQTK6m{?(hTE(3mYo(<}ohJ+Z~-)09xB&VN3cUTq#<2@AOJ4gFf~6Zc)1^~ zY4S&CsL$T-On91c4s$fQHH)4kPSf6w&)&S$qUsa0`M|aWu<#$zv0U0Sf@1Fl{`Cmf>3VF%ww_#kiiGEL+y={rL3uDetcjS##E2 z#;odxi;AcKwStldD?V!%H+SJTY27c@|N1>@*Gnzl`Vr?Ckx?8%HpiLr(MmN)n&6&P z>9YZQ^0oKdS23JLzUd8|H9#clPnx8j@r&v`#4~YsT?SvBt_u#sS56E@k$B9 zu;A-`E%G&)&chu&VDHb2KKW1^D61OE=MNgcZrJ(M9`~f)sYdqAnd0Mschk}5)oo)4RsBN>`lM$*mXI}YI&ofm{pp65(|N={I`Qi!9*;c zbTb(|s8o^;+z>@SJT5DqmI|(H*ysOvt3noWJq-tiD0A2ubx2(PM^9?HP;CqQ%oZ@cHJ`kT> zmcfo?1mMxs=c~sljo-X0l<0CicuArmyeZ=S?ox_6XF!Q%|KI>Oi!pdzn<3c}_9`ov z)QL&z&4v^u%lNk|L=Z}S@&3Nc?z}bt4GlcFq48h%3nQU$-2=$C_;7%^_{~}i3uz`F zCZqp$Yz6PwQ}%RAgnNUGR%Ha1sSV$=x~{6)#2J1K_N5Qr;K=yBT5fo2TCI7e2yoBX=V=j_bH@u5578_aov{@!iX>N zBM8DjjX4B9+m4qnv6zahA`i^wf2MGKnKD+^n;*wp7(^Fo_34}CyQab}9KBviTP2XU z{=_S@xO5*kc~y(T``5=(CkM!v?4cp2GDUy-6>y%_#d-x3XqxicYM8IqkIbtg>8}Sg zRB9+}82i-F&cwd{>0;M!C~l2)x)DZ_6VtdrG-k8ipSQ0gZNLC;JSvuj_Cv8`D33?XzEz1H z-B(&k_-J$MZ)tvt&~|Hf!xli+&)4!$@Es|f7vvPy)`?!%%3Ng%GQr|6tAH&br^|k> z0NBN1plJchuy}sFCCArH)q37oEtA3j{XYXxWRKyX;9=)KH6f_N9_PJnMWxkjaIzJhZ;uN=MiHuK3tf+Cp z3`y%>S##DW@9MD;$-9VSm`JZu53dH4f=>w&s1Eb9HWI7YcVq^E=q4|VfRla-0Q2=- z?KPQKZ7JsmpP@V_>^pV6ikBOw&Fbexe~-hhNqFun0S3hE#x`aoG&X}-suO5PtHqRr zd7?VxSOqO?G7x09LnD11RMP0Z)o8#6EHosb`$SRQNe=UuS(n53l>bM^+&Yvq1kM_0 zA-kQFA;dV#=Q&u=>_&;9NIrpGIKj@HYFgKBx7~2O^~iIx@c(a#D*K-$%Ks+Et)s&3 zUfbVm>WL~(AjR=!a7iz-W{~>dV~bz!S&Apq*eaZl#}dv!T6=l*uzC`wWmh9m<1l^hdLl z4u-)~c=xbMDmry&GXLK?=N&tmfin`P?{z3{?=e0~2l`O|R39&gfwK;#ZlA<`4~Zg* z5YvWd>NVI(#7l(D3^*iDeY2%TQ4t=#jtv6n)j)0!Fnq$Mi!Lkd-dMr?6_N;-Lt zWKV+ExH-)zDe*d?=<88TC#$IeH4j3x4`lWRnI_?jz1ONPicCA}UGkq*0J|WrV_EY4 za#ljXEHmC3@-vS&s?mjhP`668g@b?hbqF}m`!Y~3oPsAnBntRCwrFW(SnFW;eo8nF zz3AX3^zK9^z0+mXYZFBSexNI6hFxgR=A= zkf7q5BZgt}vGm3S^F8*+gA;!@)!jPM0E^L=25aL*6c`X-re9mMM(Y_T=M&-K@=x8P zk44tn#*40a@vZfi%G~&XEUS4uV1GGb-#}Vn z5b=uKliAU0us|I+>yOhY`>Jby*f(`?rDuGkBp$8!2q}|9?#J5eUk)acHURGjiE7h3 zLJcjy$h0TtauvQN$Fnohc-_QmvLyEUzCBs$LAu=o>lq~D|5DE2Hilb9=YO zW`dq2-sI@b>U!+V-cj65T<#~$Xs^1Y<#QjN;BLtd5hX2;O2M)S$Yvwow;6M~L8h)njps{*rug+3%@lU*P?Ep9y5&db}9`L_Hgjvy#+4t5t_>^^=O6j{FX zu5X_vrQ0X2V4;3m>P6(iBY(h?G6(oOSR$<*9dFZcwwo2*0+TfGZWZP_q4YG=L+wJwUYSBoOB@1DE4aOd;6-Ik!GC3AQw&eo<^#-+m?k-E ziTb9hnWmTFMmo$?pjh{rLa7s$@{K>jNSHCYSGh^G$wjmfqbD^Bjm_vKM|>_aroZib z`FXc#?*(Wn?jO0g4$rPXQJeN81^Aqe(X`7?Y{5Qap+y*8UzX2LJruiLAa7i_vk~x} z74>Q;U11M;!PpZdVHhRIwyrtJvr<+ZCtCSl)~Ej*Qpr3 zlQU-R?0VBS*U}VYUZTA!mMtwIit?qp~ za#yQ06IvF?oviB0QW|QdsV~HP4AYl6*$Gbue>ur@QWuH!-rK{eNJ*p$snv1j*s=_; za){K=UT)c`LU-;+T0$(dLLoVCB`b~C-s}4){+xmQb&~oF^|xtuemu?Y3&ev1XOIzW z@b|LZ)>$1lDIae8yk-gBv06d*VJNW@0GWBpwO5hiV`G*XXnJja%Mh?^=B2*1<3^Q4 zfWXnD>}ipNg1|$o`oUbVouL=zmaHt+q!86=Qb;V;I4ocioU_$}1&JW9-yFOKseod^4*?U#D*(-F3#X0wFJSe$a~zr~DOx^$1xagk@pYJ9Ob zw&vn4nphO53eFS(@^})a`La|G7Z+J{82PvZJli(G#W((@7;jbP z@$B5g|82>qeF?SXeyOThs8(%h+&CEvMX42+?%2osdzCk{!finO%jvbm?rQVW5Zpyz zgpsc%N^=h6+-e87fOy-9Rgs+Ey{DR`ApByM*)m`xeSc(bub&x!QJwiY7g*pe1yb>c z|7YIm9COc%*n8mR+R8>Z?#CP1ud$)sgv8Tc@wXG5ja!JKqm6C3AC5P-{9LD-ag>nd zcuvUd)rtx0&NCWas`!_Q%43$p`4Cj)2`6oL=_LNc*4E3e6!J`!;r|jAa5n$4Z8=BL zfK(Zb+o(_O*(JI0+>Di3_oR zq-;DHD%FXI!^pJm-}B4s>(B-`eGgP+a!j62Q9PGXcby-)Xq0YAqK(`j3!(akQBQw` z6W_)4#UMg%S(#Dl=Xq!ND?j}AML*yz8@Rb0c#{MRylF*1Y^%6)4^H&lfU_Wh+o=T9 z@^S}$v6-pn(&u}89M0MAuh+~)HoY4ci4IDvC-O#aY@kO^>I(n)#!LAs$TR6==9oLA zE)`~dIhC@!q;UNv=uOt59{QQ_ormOBh(oX3|@Y}-J01T@M z4OxAVv&Y|!NHV?YeJIKm!`3htDIauvd|BRkEv8#L<`l_6Q#(-1Pt8IV0`9|qDD})J zksGV1(A)l%4wKpBfCg^Tn8b5Fqb3Y5jJ8k9rIfGo%%8p_V)w-;t#CQ)Sc@yVUl#Wm zv3vSIdnA7+=+ty*MuszWS@RQnU569TKfenDZ)5)h-=bf4Z--H{pFDAMdbu-|#ngVS zynLA|LTbc$_G|q_Pi}}GJhrj&mx&Tqi90`ZgXA5x%Kxv_^S>s#7yr*hcjDvvHSovC zCDg;JWMwd}kWdD>VDtVrn-bie4O z*y}MiwX(CAd5)d|;-o;2KTukuva#j3$}y zDzs-W^j7w*eoOTazc>YLy78^@P!_4EqEC&w(#L&k@ArH3>4~@mkx#i}q{~28vRdkU z?3DAE7r3(}IURNE`*$}zvH5SDEELh-_}vogZD-O0Kg1cM*t}ypJZxs}f35pYMW zB=$_yj9Ssjh%qRr7ANY3`!nJ^@cLluhwrQ8#3v=ea|W*rxd<=fw^@7ck-;zq^XZK) zXO8s`b9moPc|A0i=U;YPHg4HPphmLtE@65!h^C z>@?&EoOyM&F$pib;$m$#hq%fM0{O{=HZ33ng1~JS?oi>;Wae~@d$nv7ez@`Wkj|g* z>`RHEDIzvdbz@usekQ7wQ}-XWSnQ?(#8Y%af!E^TZ>Ak=UT`E$og1Xfby_-seSy#RrK<8Q#Q7ibr!dLSQhXCD&f5#~kaG&eT_9F-&fD8(23j?dMsc9aZjv5? zO<9>C2~%sp!<8?Ozf=L(jiu)ti8P`ju$<%nvcud9D2cF z=H{(X>9G3--?sX?e%IlaAac}m00l$#wC93J1zrV3k%f`DBPtnmk=DBMl&LP~Mv|2I z#!vBU-7tzOVIqb9L(^HmHTnL3Uj?K?P(W%5$W*$UsURUOC?GK!rMqDwN=So9Gn5kP zZbrwOmJaD2NQ?m++pc?`eeE57+fN&*$^?cwDO$keA9ndG9^ioISYC$CWu8 zl>8uFhToO2^F5JRJaTJV9jSY=qc;4{DaV=}o=8EY)~v0w4u-e^HdLPrPM_f?QSF**8?q zRheLXkEEFEh_D2LGZeq6$@Z#X(a&qP{TSw2uM zZQe_>@0aXM{wRkVP`~BI9A#`9=rf;-o~zr1T8j#}%gl@!3+=FqOE!M)< zJ$4>;TD65%{J-pSHdpw(oM4t3-eMq|4*&EFkDft5;0I>yN1uREq}cu z?O5@nlRx|Byb=R26Wva@qeQ@pm#X92BiHO?6vp&(+a!5=X5=f+?OxzRe+jn(7e{z_ zkSVM_5gPSFn8i`sF#`<`ku*!>1Iltj+!IX%j!#zF7U)SdIi3`3N}zpBbsvpzD3a(j#!zpAefiXE}KnU}*pdV5sC5#*2( z+n2bF(`@7AK6+Q@IUHDVzliIVDI2IuR4eY~?qf%Z5c4Y>y|w5+8nuEk{k@6USx0_& zZgbJ?X9i^{jyvTKIFtY~Lx$c-xyDd_DFI~4(y%$9p&tMIRs`Rj()4-m|2*J;aag`& z<%p*@M}A#ommJNL45a{I;Bqa}uM}G!nOk7GqZV2ta6KSluQ=VamlXr zexfsR{QK@@CcZbF{bvmuWav{z|1Wlg`^cCEB^Ucgd-V=Ea;T};=pj$?rZsx7j@5$`uDw&*O zL%oTq|v}+LB?w?cipGS+`owovZ+&GqrslG!{}U|Hp`^ z$-Tkog7bPo z4Hs?njbzlhRoxxA&YD`gq40I`1urEd-3u?zLJzLp;o)rM0KyTf``yLXfA;eRk@MQi z;o5B{V*%8cf1dQn>Z(bgb+wjmFO76ASRhrXikH!Bl$m=~559h2R3chp&0{z}*p@+n zVg){H8h#~Qi#MM;FI~^9l_F55%`~8_$_B~ zny#?Mc($>2o!{@rpEfX-LsVN|W!#zieuT4fdi0q!G;-Ui=Y3(*sy6zaTh$0mC0e{I zaM^HJyIie(RlG_oH_C=)ME(+_GS5&9lVzYo=jDa~8Q7^#UhF)tMdV|;nr32aGyhHG z>B(p1-E`7z<1lKQ57{3WdE$LxgHER3&#$yE0{(P<}Sie+Ev*ne>|>cuL4=uTiiqN59LHzn`BCK;4Na zp3t8N+d<*2YZb8G*^8`Sa*Kq>XMz61b7D0d)f%fZO!Q?R94ypZ(_X1p>|*FGOqQHN zFoI$0OEvxw{F`LCX+&U{XZ$_|MH0!~8e!hV9}JxknB^~6In(Y)I$LAE*ndIl;f=** zmY!kva!}q#4gpy;OWx^&>i5E%OMY)z%d} zDbU{&fJ6xt>lpNo1hrXMK79jMZ%{KF@~H$eVCUsPJ8aIwG1D=!oJD5$E>R@S)i1tT z`!orT9>A4gTebcKaqgq5h}t1aOY7vEfci@j7%heD#!Sc2^006JPTP z;Gejkjdy>F+V_zkqj#0Eam{{ft4RKx;#tJf)>bUcpZ$)+v~|8t4v${jA@HBU_!0c@ zxBNi4%LzS_e)dSB;&5-h3%FBl-})lPgdt!3<b9DoOLID%??W&woZOVz zwp5OYpyX#2^4;(V=E)GLt;ltrJ&39uhgnne{0Y!0xI?(c39occRK4f7+07cQI)xtX z1SkLo2r&*ny9&Qwx(l+Eh=UCH=GJ1p5SB~a^WN18ICBb)ey3|RA$yGUt{%>-t8mZY zp`qVg2E;3Y-d2aa4H^?An{Pf&p+kGIKATB$*0TEnjvWhYx;X$7VX~0%a2G58jVET6 zGn)G!>iFg^R(u?IG>j=<8wnD7oqERUnMd5PBn#k**=N~qFtxYK{jQufW`6gNzN?E@R$i!s*mpY$k@aa6V<$@EP2IEFG;#1^Q1eU1~J<|F>|?jxZ!*pt?=;A@9eo-L@PE z;PD0)aFL^(V}f`sw_bk5hifyg)ZVh`6=Yu@q*hg|Kx)Kd*sJjha0@+NZNu*z18Sm> zcmx&=JGv-FoasKDC0(Bz#mbFF3U~NjcWDwF*Xi9VJ1)8iZ^!08t%&l$z39q5JUnK_ z_*f4)fVdcfrEt_v!p}pjN+A+!pzlHdp;T8tV)ycO-Efb3K%sfMu?IfOM5ST-5^&NE zyMEp#yb`>9QQUzC?Rl1f4oi+?TGB2Sv2s5y)0(a8s*OT1S;B50;A;D56^MhbX$Atg z3HP7p)WNLT(6!B0T5@Q?^9a<&{i(5!6b12L%gwKu5)?hz+DM1f4j;3Xw|LRStKsu|gi%fy!CUzthK3J~oa3q5~iv25o}mKxMedRmUN{g{)%X5kgZz0a4fo@_BZTi!-vxVhso%9`VKn&mLsKxBZ+~}UN_fc z#)Qn>X`t6tsVb|-Y)5#QFzLygGX4&x@x?FX#BqtHZB_L+F?tEvKp^U70$q)dJw;vd%fuBr>L2AAT!cf~`fg z=y&~x@}G+Ou}+j7s0Se`M_wVDHGIDj8}@iFIn8l`p19`)jPaX_q@?_Rw~HqCJ<1^r zl9jYYY&H$w)o%rR=2ll=!lK=G-r@ymxlAea%H^WxTgR^UZjqQfjo2eHNnw));5oya z{sF4Tn&GU6nqrp>PKke1H;%rfGZ44D;EH%l6Yo2@_Phsv7^A6Yd`(Oa;xV!GP z*s0ADDe0(Ee!Ryb~Iw~Fjfi+>((XOuCzQZnp@ z=$xjKNS!+C6V-YoQ$~7%zLrbNKM z*i!)aLy-1FAMkoQ#2NJ1$2}0ueRzhr{knn~p{wl$Od_QQz@gTEWI`!#YgRxwn82|T zH5pIUEZy;ss{Vbr`M2zgI9VcMZPUWp!|>|Ljdc^|92Er=xCB}IwVn2z1mnZLp+qi= zECZK0{=_(MQ$^z@F&NPLpLm&Z6tE1VRBa%lsE(b%{k@LSm|8*!Y!;?;_mey^cdTP$ z;=DCb^1~)=Idmf0#h0z8?(X~llvIg?(9qt&K}c6d91b6Ljp=6Nx=}+D>&Inq_uMhQ zn2ZIytR&R4*x!uL+NdB@Clg2O-5CTAo0ytJE-_(vq%aF}XZW3w##)>neIxCr@yN>k zU=kAy{Gs8K6FhP}ck|*yP47)XxmBiV1Mq+?Oq}F*q@ZDO<9SMK8dj5|5^;8MR0^FF z?wNoJ1>@~P7EV$R3sJHzL7b0;v~v)L6+hlsp=6VgtCj;oZxw*>7ow9kOZel==guUz zTOW$~V;$)*zrhSv#KSCyk1&lmu9k3H)b~NOYiq^JKvtZYRr=F=l;0dvf5C&f-6k@^ z668;&tTTtqKx;_!h?4F37MgxIsKo<0rQ8xj-BqG%Hx0{C-F`Tz+2tT4J4Z4re86x- zrAhZqVQN&tT_wql1O1NRVsclb0AtquBZh^}Nt5KmIv06s1!OOgDGe=ey|w1AbQ*C< z7h6bJOYj}h?uv`6S7JM}kf&u~DLgZdeB(#i1DEkTdDQdsx$bd$^>&hHL8`8D^!M>T zefn%znWek;7_4Y^@JnfUsbUAh;6=$uknyM|g@Y1a^b9N!`S)=S}M?#UH#PAUg{I&=NejtYM` zONaP;ebTu-MeSkMB#m)J(mIhhTxw$#smJE#qPrdrenyX=(n`qMBBbRmU_M{GM4&eP`ey|z|OZi$0L@yI6{H2qV99L+e)J3BKG zn&%Ur+TzQzlu@w>Vl!9@1aeEoL|TB6^RQ$^Cfn60jGL%bT60WJ^%MO(grnx?TM|~@ z-PTO`&>Hd6L8zkR6R1+C_n94k8()c;OcFYiS$k^^&*+M@OE8M6@_Bau!_aAhl8>0D z`w$%^E&j=eI_tY?o07&Zf& zY>G(Qkx2-7pYRt(wYCg&ff}YiID=oGws`KiRxGhJm;*uO+8mR3!ZBL6cLB*q4_O3@5&gJcW2$<{iqPgOvrq zt=A~v7f=Ch(lJ%LV9Ew2{?&tjS5;fI&h-2<1-8nf^t9hx)Vr&F{hoPV=0Zq+fI{{5 zfO}?r`*<~Mvp&q2-IQplpYsT;D}<>uczbeO1Qw2SS$~7`b5O9nn#CN`z*`7HptDuO zq&||GY(!tZ+Nwf{*Tz0|$AYrO$EpgixV({r6Z_!l=*Q078F_P(;0m7qQo%L7OnmNY zn@WXv7Sq7RvEhf3LeIlvVN0IUME60m6jpY*u={YiEm65Jy`;MKrYR zy^4FhC*BI4$3OPCM?x+a<`Oi-l&6w4g$-&B=+-68JxEtf&Xj3+{84L3Ds@5{m=z&} z8`lh>Z1n4K!@Ycjn|de0u_ZR zNk;BX|Mh?KQABRNnaGVe?ZQM76*(~^F$(9Q6L`g;w?XIjGuajix$-){Gae2Uc=bzA zi=T^{$dC{{17~mrn|47~O8WShrwnB;bAuEP?-vuULd0^q@*{nZ5&8;~7+lKeVv5)b z0W74EnB!tzOK-KZdB2OV+Oo!XTSusW`HB8{o5jmSnehpMYC*lPRadMGoXEeD!OnEf zq7qH2$u0dbyRIPGJ{D^Etkd2tvUN&P!jTI354=?_E?9img7vF9q^!n<^trEg$!oyT zhRMt}x^+_%g5C@DA7NGqg(2w)n@cc!5YQhnvX{0BIJg2Q;{<+wK0^o;&mVm0iWphoP~u%#U){H|Q(o5FySV9PU-LU3Gzvpo^3_(!Be<@yjx_c1qG-+4+Z`9XtTbum*f999-#Xx2FH3|toWFb# zo)ccmL3wuRw@0{c=>f6qJW_odl>|xe!@+~J4qA3^g|&k;?rX9h1L9jqCK#0`$>;4J zp5OJHzoOx&E39M`x-HD=X#*pCdT1Bq`hOS(;!$bp^-X~Ipl!3XzKFV!qqmK(R^Jp( zQa_3a5DUU{KlJ%p5#n%pFE*RKSxx+72K~2Fz9MMdyWIEP40$k(A657xozRCdPaOva zp`IVxL3*`d#Gf=ZLphmY%E{UQbQ)OZ@%#7F7v6_=blBr{j!ev$QMbFSV~e`; zHZxKb*;t#q$RpwA3m?@*4I>TY-xjYxBx-Fw=d*=Cah0C2*--&0g(B>}QUn*CXS1-2 z=oR&69a-rDS)I==Xkqv$i?RSLuS|BkxT6Oyeeyi z6d~h=>f+$cChX*z+HfdRxL);9_H6+VN3sEX;#%LGyZJm)3^&+9v>;R{}Uc^i$z4TLuAuuPUfdR18?4ro$$M1 zl3ny%wzPio-GSZ@c?A+cy$L!Eg=l^Vjd?=I1!QjZbg-7SYZ39`S(U761h@A5RbSi~ zbx7CA_K_3f1bcB%A4A{1Me&Yf9g^jE3E3*Q9z#YZF`9obNG!w- z5(t?EHtw&kJheQiQZ~;esyzv)AJ&|^kw31^VRJIbV+x6ZTs{RQQ4~v7w-eiGz^Ei; zsduvIFw|DGOD+)>wZXIdOT}Y)Ed28^z{?Q16FDC@q>-l1*kYO6S-5S!WV+-T+laYvqr( zrm}IdrlZQ+h=#3ZXFe9o&r$Q&WL%BvIpq--;{;K*w3;fxSNKcgh=ad}4*drlMLuQD zh(yW2t%*BKq#OUR@{d%~@NoJoJ^qd7_kwP_C@=0awU2}S&ritXr@`KbkHE|k6sZXO z$aHnNKa(axFUTBtNKshkkjr!n{N26kHr%V$m2e@v(mj>|kt^gEDpdki`tPN~! z>`DC~{T+&dn?K%8vGTBMPBs1W>74d7FHhNbiFr*Q^Lv2X2KCxGeC;{7T!mBZb&O?7 zDo?|ry+z8;ND7FDHA_ftlir_z_PjSVm@nj42_YsEJHxlS79gyEgQ|d>++OeAT@v`( zmz3X-vg-1k!Mw9sA})lSb}C}(Ati_Io8ROV78p~omg-=4WP$~#4g6?;Cir-6M9`Zw zS6hTfjr305KiKFp!$JigBgFx}&vK;mg|emK%uf{^k{h{FzRaWOeD7a9KIgt)^t(vJ zbO&ESm&zciiJyb&78k*}{oKQGA1^`PGiFHPqz6L~V`}HpaF#HoHe^p*LsF_?*}NR^ zgF!KeokYaT<=v8*Sh#9J*1SLiYrGO6JYymbG7f}Jk{ix>2`uZE=CZpXEAMvX?-nRP zwuMDkIFEaXarTO{xpfG! z3mMD>SUPfR&;2(c-e8uFV$t*F0IJ`$uT#2?kt;WXtCQKtyUqMRsxup0z(kN}7Jo%x z812}pa-Zah=&TtasI0X4RsTHL{qd{~lWbXo9k37G0Id{~f*w?VCJ&?fM<4Gj^!g-i ziuk`AO*1Xs0eK!%n%$gQuAeNx3>Yr|sk}Y*$;1Twv`caDwn){JlY3ISJ0GL}G&~6i zx1`;GJg|1mP8#ue(l9NfJ-S61o7U-=&8xTne0RC{@o+a4sNc0k+51$)bId&A180)D z-Pv5oBa;`89OpmouWn<7tqf-`F$kyI;OU-_Cow6DK|O@^(|5M!ijq!_or^nIP-F)n zuZuPyZ`IPx+8UWTA0L?wG}^oLikRWa9JSpDvu{kkM-t zWw5(o-V9VWBT|688q*HbmO+9vO~1WJd9VRwiz=ZKz!P!?_P~)3r)%UiR@0YK^ejfpyF_4ty6pl@ z`u_U9{0*F+YoT(yp<0Ua)0`PF*QaTi{`-m4dZ0DKd~Cf}a>rm53+AcdyV7yWp-8Cu zu1W%7Nfcq8;ng__Uhp){8?Tofxn_lpf)^|kj;sFdvW{52To-13-`{qnI)v+Zl-5@@ zeF3D0F*Nu0z|arslCo1jppv-$jV(Wo>dGKsVh|S zC@Dv2Slf>KI0_RmRumY1Q^ggj9sQXF7;I!Qm01xnvY}E-ncQFPz^NvVXC_wi*hbrY zJu-H7drCKxaFCqkDB3hje_$>@?tQ~Z$o7L_vZ^AArSEh0^?qo=llgZ{L~;2rFVfnQj+`pyn(Z*4E`ehJ@Vp>(8;7}Dz{t3! z4kKLPEm)3sLEmZq45n#$#h>DY9lX#Et2n`w9K1$UU&q@GqLs#uI*$6h=NhcV zSxd`Q+8l(ey!HduE&KP9T>p-@b#8o$w{PvuT7S8YPh2GJh`$w{pd+x4-)ytfO7hYti|?S$|jCnEP4Q#?iaN;AFZJ)|6{c`l8Br{ zU&<{!?)tzQ!!?!W5+;_;whlY_E8H`D*ED885<=Ze&HTP{*=STrmzFCgzE-tqBP^k5 z6$!IQIHGsvNC0|`RI$Hg{|&ZS>@|MdHOi1T-_Om??=hym?l);zWOw(Y@cm5pZyj@t zBugZ9TRbBF;y^Qfq12josdW3G1&H*Qn`3uCp?3c;mCBMfVWsm05;es&?34L4G~V{cp~v~FEqL%M-YeaFarN>a#Q%B#xPppGLWOWA z+kS4KHr%RR#<6I-KYHkB#t1SU+^G6`$YFGHk}be~4x{KNS}HumXuF2?f8j@the-?i zksP);UuwJ|L{88B-ECo+KnfErX)H95D?-*%Bq-GL8U&2H{UxmBBk&J0;nz7Z^u^5T zb!{zYy{5NElyE%#F~HytMz1_@K%9>nH6}m^TmS3bU0;(acib2(dP1o(n2t)LX};?n zAFn25f_+dJz231%RPiLmRPi7$9M((4^#JlQ4-G3aLtIY z13ia|@S3bv`K(d8Sm3toC?N71je}2~5a>hOE$obzLS&nKI1k`?^f4l?L z%~1}!A(R1SWlYVLK`k#pMfApF8qhyeszcY#HomNI2lk{rn~3JAd>UC%9eAM3%jdI2 zk#xH1rn0G4qenKH!uu{)=Es{_m`}r!l%$Yar`I<<`&KTQAGC!izqkXaoa}C8OcF=O zSv+aIHj3I!DUT@%+r=!`76!yI7A+i^u9)$E%)U*eJ|+02Qs>+C2t-G`KN}jM!j(p!`cbpd*fUduk3zW@p$>x z*Z_y~FC{NbVC{Dfsn(vklp`+SIHAT~Imv7{*7RDbYm%uRo0kXU?Z-MW(1$>> z(lxz?m^_(J*VqXBU~)H6Jc+Jg;Ex@Cb&vdSvl!o+J86Et3*QZG;az}P-nkOOIusqd zgIYz(Y@%>1e~A5Dh-qxK?)+B5&I5LUJ-%fW$s3;bYIhiRn6ot3arz&ObEj`<8T#2# zkJVd;b8Fmb$Me<0pTE2$DqVPu{)SLpeN5z2R+c^7aqN-Bw0^gc7V+h)Js+8C)(7Y^ z-8*?z-;RSC&J+lNqv8KKGfMAF!)E6|?*}oJDu)SJ)SOBbNGj-{>tz>8!b*c+Xc}%A zoA6^(we4&G$Ut0K4U-#=vXuenLfJL0+$Zyq0=za~;%i>rAMZ@dI7z!sIEr}hSq;42 z>{RO1QlLp_n2vO&kJK)zrz6P70p)!^*VMnf$qrT8vQ*$?v2~#yWgps6-D%IewN?2a zwZ3rUjLDsKYN41k6E z#C(jOrzxw1tki6b*Uaz8;chESbb{o^SzF0gXYlQzTr!Pdp>9h}(G8#9iD_Zl?{S%W zPZ#a(@VrxF@x|%0d*;2MdhoAgcK@Mg$KpK$BIjg&r(mLJD%k5|_~Ya&wY(iRPKEFL zHzahN<=;met`g^6_fJ{4YBWpNA*_z>CZXZXiSW!}Wcme>$YWuT?~@_rf@7R;-=VPA z!__7vcjR3ACT+J;Uj=>@JpH8)+l_aP=qe}*{%lS{>F#yI#d_;8qAlbNR3P}0xMfs%p4PA$dN0jMTy~Ip{~fH=ER^It*W*$3 z4}#pQZL_FvKnK7x%(3-f3iOqGBSFJmYWg_dHP$v>L|NvYKz$}0Kq6akyP7aCKN zWz{{%wd++#JibOIOkw~pGTy%17$H%&i~{lZlyP_o6KaU?jQT#1W#iP5%X69vW0 zW~eCX>rzS8yq)&+^;_#>Kg^qQ$e3U1?%z$?sBCzpg}OWJkb+^Rcr*veylDPws1d?x zcpkb^{E$^sWpOdW@{3?1L%sQJ8-Wu$sGLlB<*}FjTT;(YAP=)y&ibviSPop1lGcnINBtg%YY(*d==!|G>OAIFx!U%pF} zBVmeelSM*V&rub_?h{8*zGVs5!o`6%4v3jxHbD1YkJ2@Mof;ruNLD^nQ|yc_GH{4K zD}Gx$qVO`Mp0pn2o?Xw5u@GJFo$-?EJ@uGn9LgC!)oN^CfCR6ZJG`+#)f4Q0ESguJ zeN_&dN6i;9pB&Fni;HQH>mH5c$iZ=X;qu(IR zHzjL-bhxb^D5>O9d)q|1b)HPbdH4R#qH1Vh7Lh|i*(f{IdN%BoykWVh(dAbWQeUpw z^AlRxM;EaJ#jS9PB!!GMpyv?rfzax;*0HaZPgJr)N~=-hRHjo`CvHk+6*xX1nne5L z#GnV&_FPkQf~iHgJo>k=n2K5 z(QpQ_*?R-o>w9Q&^GzIVJ_v4XT6^B+v>Jqb`}cRn?+Rb*Y}du`*hF#5iP*izBe#@U z^F(S?{BFl4GB7bPTCa6}HtFx>`?@v4K*N2LF_D6j(zby2vEEzfKi_F}UQoEM|2y!V zgDW6*1K{-#_>o(Xdw!`f>wyi0E62RWRq;4AkU! z%y@*}3ke%^u0#M#2B7ZMa?buKRE?jd66@SWM;)wV!R?mM z6N??xLcc#Sl0aF(RB7EA6xX(Lb)KS&PJ8+ydG{f?j9JFAzLG?=R*Pde+*RlI{*YghtslL17XxSP%Rbm@Hb#Vr!bPP`ztzX(X^< zU7IzISON5-1cJL_-!Dke*IA8Wj^{X&vv*~2bv6MmimRvf4|j{JL8 zs+%4j*M@cbs({h*aKN z@vd{m{IpXSaOWomINi57(}#PeaG8h4!31uv_~?1mungll{fhW6N9v4zv! z=#Phpfm~S9kZn*E6a~49b}k(_fWO(h)6}%Jib+X%G$<~YpgyGoJoq!KH0Q;CY+q7Q zsy*6Sghg^RR`LJokii~>n;a!r@-WkEHK&&S!dY9|9(pS{Tw~t;1n(IjICwK!jLm2= zzg%xa5~=4bK^Cw&&CDpguE3g~aapbnwfKPln1}rZ3;{%aVzwO@4?HthvgdM6usg;r z?qbN3zHqwq_kI;TE0vPBxAru`+jOYft9u+#LM$2zRuU(4bmB@X87&_7{JJS4IfrOg z+4)WFFc?8r$@3GNhG8R#YFni6f4Y86Yi#J~lh76Qb7Io#CjNdbIbjH~&mQpm4g1R`0rk3i`A&e{I{Pt>DY5MkQ!E)(`J$|C_Hdmh`uUjk zW3NAJPQH8*W!P4KDxl}0P5AAJ}fl#s%*~Sny z)Pa0Im!elLZn~&#@aoS)ul}n~`B0IvknPuku#;J7&n8R-U3@ji^oVd_BLmuLhI(Pg5JYR2h{<6I5W4X zbr+%sB4!oVkZEN5NpOxqw(y8}4a6(xMO>@YrD7niQR+mJrJq0@ap0y46)B+7Ju11S zd(Z!OrvX{$>!&B9P=LCT{+x`;HSzi-xHco`Th>mfNlIEe%F~UZb$FQ1wJ#)7Ty7GZ zwsnBw7Pjz+*S3fv8zx`EcfYCB+p$ZB>SA|XOgjFl*kTxh-H)*tz?QTspC(SIRKcQH` zt*Ip(fjDnYh)b9T@3X{}C(stsVJ*0_45f=6D6$CqXnae0u_0^kSpSbka|8ALfe_1s z&bDfaU0{n2$>Y8+9xgqF>N;^fM9# z6X6MUhCcS)5R4=D&t+|=$=t0ByGM~Bu0QY~XkeI1STzOa)&D@LK)i9MTVYord^Y$q z)mJGe>NJ(=RR3whu+}T@9AGDQ1@yWRxRPM!AeDL91=2y;Z(n`I$fRi9+=&~z{WxRQ zs=g$>zXYYLbR~zPzyBxRHecp7KkZQEdB4^tM#lC{9$zrsgyH%c4harb-fV%+fx_n{ zVWZjXlKwxO_Dbnjn%XbLh27i`*BckFVUk6n`k>j_a)}f~;X9cD$;6#4oM_)T6)Us) z4i5fAas=!3z5mv|+4+c;&2n9tOV81JpkVhqfybuVC4U`?z|z*)xNer%SiN~fr7o+M z;CwA5)pZCVa%x}?|J++-h}%^{$GvD!k`&U(XN21*HPl(4e4Z*Z@y6BZyxK3g;{%yN zMdvBxzQ!6#SEVAx|1F-99po4tWNq!)A93`8kJp)am%mO?Bsi8~U|$)tvln&hTs&e! zH}!gE8OG>$cdPCK?)aMNSevexWsW2MCv&sasi=P3hjHNM;4>-~4g7@vqZZvmfB(PH z#Cxb|g>R|Idx86}H>NKLI4F`bj^G2UO{l&kz+LXYP@mx=XnB)r#n$!1GpaQTgI;hi z@fZ0JG&|9LLg#uiZ+f++<#U<)mJ=U0l?;umECq z4Ta6>(c2=KhBD7fUfwEnBZea9N>49z?NkEen9e5#!PN|D@7s4JECt~4$@TgupI0)6 zH}at1^D=0l1u0&VKpRCa^!)&djv z;-hApnNmJ@s)lZB>|k1~o`!e$h`ez=)fZy~6Y-5qqq~w0YyY1GK!0Ec*gYRh!}ieC zt(9T$7|=M!X(p=jhy2TBMPI@a_iVo)ko*DRZec|CGq*whHnj+;gatQKELnhL6QW4ruI_rUKzFt& z1*2mH+x1;o&CUKF7fR5psuGsTcX2mM!h5AC*i2LvWvk|Q%?_OIlR7qht7V~62w;3R z))PITuRmq%*_(($09`KWdLp0DO#l)*hZ`EcP<7=;7J9At-6*Ck+#2Q*XiBOKyAgFG zE9E`!JhD=>@wTEr9d<{4-0e6x4^f7n62=?R!1twjLn^-4A@dZKBzGe5hszQf>HAGS zFGV~nA@y&1F5c%-fVmdgyS>e2mS7sHdpR}VmgALiMOE(}!PxBN!ch&nGR z`F1vLpqt$=ru-o3bLY%2;+of#)m^QbOvuI;Md!5(jC7cTu+1;fHPnJ{k-qs5WLl#h6KTD`M8|}t=<@Pyk zuRo8lE;wLK4Zm}JY@j2-U9w_U{ekG874+EDZwO0=WXlRQ3v9ql2gbvc9KVIgTd;{2 z#iw7Lm{q5h$hsk}IWqdV(RMBN$rmhTQGc0M?fq43y9osZ8``+SmTr|ZIG z{!8Mm973~dtg~~C6_q`QzqQUx1n@Yr-y=7!;`+llY~B>W4nX1Ko5$z$pog7Ucfif| zqP~hrS)%5Zx+cLLu(2UOwI+FqfWJ@3uIN0h^#t3HyO!;)@UO9V{_3s%2ka;(9IY+S zxNd2FY15C@L&au#F3ibYjE4s7dJlN~degXK4rpDL!= ze!KdeKpc>HwJ)IF?`7b)MVFc}HuWCr*rfYJxm85=f6jkbVEv;%f*zdq)Bhf{NdR0Q zZ;eE{Ou-8h;_T9~kfO4~C?o&zZ@*A?KChN5z@Cql=x(pQ?cxi#PL>HMbkM5*rDaSH z`|c_m(6Rsndu;BKzV3%PKG$kSbcG4Mc}fLWnk&Ser#KKEJkfPlvdXtePX{BSvM67d z$^=6E8A_%GYFZx(JU{nO;zYl6GaX`+#yBKMwp=v^)A-UBdby7_D=aZPUHFdCpE*gK zcj*ts>u4H(P_kx8@%GIAIwv+?;}t@Q?5!I^d=ZhJ%?1>K?-1Jl9FN|=P8Cjez^~VF zI}SMoCBt3%HM}4x@z1gNx+o5ZnzXpvt+_WYG7mkThBH@SD>;MM zXbB6{JO5fn1MX|x@9v^;FIS9I1_DFM2KGLi`{bw}3M^jf-n;0~u#FsuzN?(wWpm=qCd>6z5R#iRnj?rf0KvX~cmG|T&+xdGu z_Az`t)`LNe53BE%Gwk4~sQw~x0}(cD)7(;m zyh?$JQGju8q4ghGQ$D0HVVwh)9}+B->NUU{+wqK5%*)4)eYj9tP^YB7AFL{2uGZg= zWH1`p;HiKA(jZGRs2Ad20g0K)=UD5%zy>SG{oYypJHtIdhUF&!Na$hLp7*+uIV*+1ORiBjH@wesSx~M4_7`wBw zzT;|Xa~PBppJEOhG@>htbuB+QS-I9IswP`PaZ-7Q5XfPU`Y{y{^>4|Qfoh)>=Au04 z3~$PaMgLiw`rIi{YJGikE|c%6X0O-i>dpM0KEUWTX#M;0zlMZ*Hvw?Ov7R}5O9dqJ2-0+oVX^v}fPUUY%2r^jxnUP#*)$D1=^EOv zZ^{2n5XzOG2KiHklt9Muo_Zvdp#_zlr;mDoqeepOk{f;usC&TKhTYTs+i?LS^sVc1 zqwiI|2uwM`AE$*pat9WUb~{dA0jDFyjZi{rdZ(_< zb5)zr|Ekp@+vJ=vE5;sd6%lkCzAmxRjs91OIrBm6C4S17fbuS7b$*lW5o8->*vnPR z3Gv&*B#O_cSZ(~yUf+d>UJYJ_sjc3^$WlgU5-T#<8A6l@_hg5w7J@VqlOy9*JaMfuVb9e=;SXCqvAV|3hT;Jj~-Zfo*7(pJ_=-T|~CdZPCxdJ??QHnZdy2 z?{T+3q9Py5+*Vm!t_u2pG@XT4(|_FdL6ndZP#Q)F3dle@2ZDs8g3^rcMv$J;NQ+2^ zg2a#RW^_mlBt|z389hcW9`5IUp8sIyd(O^zf3A34NB3%Ry$v`Dkv{fNw&ftjc!FPm zg!^KJ%d)(?p8Mc8WSmio7dRVcFz4v%^0w@!h1pS7fb8tm{8}GHvz~ z7;zm_<5E9USmt*<1il!nA|8F3bI^TVV_eGt{&gWtGR_tr@k4VTm5o+Y#LgZ7;@LqL zH#QE)5DrPGhFN58eyjB8lPwGU$bEd6rB3inN^7NcR$u`fFkH zM|Z=ZXBYdU9?Pqt_=Kgn^g6@0IuPMN`91k$AYr%Jz6bn(?RyjLtIlpSk{+8h3I{=} z)glUj8d#u+iU{>)R+;vVXe6DGfAHhoWP0FxH@iLJWkd`G&Clq<)(2@eC=y2>fHM)@ zJ$9} zboaUO6;HUxXfJ$MhxewY!?L|1f3gAoI_YfXp!DQ@J#pWvC2N_GguAsCn>hma3V`2o z{=79NGm}ky&NsnELZC3b>k*LqH4{mffN+ptqIzhXKsIT+V(BycY~3%9Qzb2+BJ&^w z2TU`1lD{%j``ebzpGw# z^$AN&CDx$iI3sUYyAs6WlJyQ1%mbTsRSr3aUGgR*q*#OT*;?E`{$3N+wM*^4t=$2h zzFxl}Vikqge9x#iY=IFV^j6MOhG^7GCfH`3_7w-X;sdrufuDJ`^!GTjMMk?a8XIKk zMhOW(hV=R82Bf=kuzxq7a@TqI#iLV<>I_RGXR`d;>qbthA-=x5$1SYtuPlfAI<6cz zYoFTFWNcAUOR>M~?S(pih`%zyy^Xk%0v%8?e5eeiE@H&*!@!=`g1tjC;Mk42mO*-Mez72FEJY!kT>mvTo(@Zxhh3_)@m|TPfZM$PjeK$&)+q&)|fKp!o?&O zYQ74kr4Xl-{YF@5pLO`MS6W8Ghj@PRXA@gzggo@cjMdP?mv>Q$6-_BCf0-xXM@xI_ z;^4pSgdABu9RHF71>Vg2ic?hCBw5q>5Hm#zs_~eY5SmzBXISpuet15UIuolDVM<<^ z;boWgON%szA^xoiYZV1TO2%FW4@c=<+m*i{8cclp#5T8Lt8KK)2oB!9FQKhp%~|&Z zXxk7w&Nx`VTAH+I!q0SL)H7m6LM_tiVcjFN6ch}-vOzDGFmBWHsY4M ziT7RZY4$j|Qzfu1-E&%Rq_s4)b9AU5+>0oraM!w)Y)aH1^sio5)(GFpnS$}(F^kz* z3J6#_k+vkCU7vtu{OnJE-y`3|?62wAHZI3V-in$%k}<(j(}z$U;LHuDxo2rjAo@T13A*+_c8lYj}kwL~m+FV7H z>RdQN15whoT`~}QN5}o*Q*xXWeD;Za$32aNUgmd+NTSRH)m~fQ8@Rtv+v!_qV!!_d zxTsO5Gj3Qx-TY9VQzeA`x#HJ+DPo4V@U?#xjmjhx_%iTWv;_R%pfIwQOCmIM)XZ(E zI`ew61{Xe$J$NqqJZ7HHGU>&a@}^c`ZS=IF{M=WN=c<&IHfxFb>9>H~NF(uhSK~KF zNNQ{OBW}y8(Qd~G&x&o2jXI5oeg941c&pF;4)q!14>oGG#&=02&V>E>GHv0I<4s|o zN^f2@EX{Qnvv#7{!Pyq8)cy3l$y04*ovx%CHR-?;YHZ;+3RoadS0WZ_LCfNKs_c<} z-j^Td@>jZ`EHT<;Lb0GxQDp_2@8g*tE314v)o|O-Iy3AlWygx|QJK4x=$Y!JTbT_E zdLdcr+ZEYnF*ab;5tt{Z5Y$=U@_s2tz7#)sD0ILenke`$#Ust!3p@~hmx`DB-*$UbfxIQf5$ zCWAH95|)!x&w^%4RuraCZaDo%kP$t_kE{~DYL1L7gl`mllb?~Yv9v#+hCy8QPP;x= zSL@@ka-0V)A;Nm)Lszl!g)nY1fy+h4>PxOkq|)4;H1D!GIJOcMDyEUV{aQR|tzY-o zGkxa(Vn3W(>MEq}l-X+EuM(0`BrN1r^Zq13_IyDmR`wm8F$uBY3qQn-W+}D?4vOEA zzdZy$p?&LJ3E>H`RnqV}< zkbM2-klO~AjCPF_aeio^RlKo!#WYedrp~wo4LtaPk9;GZ1-k0^;5*vheIJ11B zWlXnB-YGcdSWQcBx4Rpu;lV?#Yvy95V5>`43CgZR#vIk&Ig*H%>9p*Z%hNDA`cj zFPz;o{0?RvLqsxmCCg8Hi9f6RVG~R`7Qjoee@R}G?XYW5N6Z8M#4h-nmrGwiqe0b@ z&9ppimO=1vosL9$hpVwP_u zv~w=jwd8lBJja+#f@v5`UEo$D$cLN6h_3U#E7>EhBBYhm$bDT(X%yxWcE!i(8aFj* z^KpIjJ!svzdZW%kE4*4_tXANX$<%KBboM&7`c6}y?6#Vog9?+Xp`J%c`)wO0?kD%a z81DB>WuOYu$jzX7F%>?-(DO=<5F{J1?j5L|U#_v_q1^lR|FN^KG|Ia3acFQ$Cw|s2 z)!pLcGd8Fx65B0rb>1w~rQQm(TVq}%U!8s`Iwz~P`)!q#)|G~F^X@YmANbdYf z%^woUy^gTQ6AHevmvNyZJKnc2)|Ld-=%GbZ$!RP4b5SgxHo^DvcUO&Yl=K75y~Rkni7X?tq#N!VO#YQpYbIXTfmZ$Dq6XjCrL zBm*zMv|IvdIRVvmS$z-e;q;i>8UN&OyybxFjyKOzdWBUkAz|FwtMeGtJYxqt(s5tA zsOqeOvIM~TH9$rYr36Ac8}TTY?}^>OE23DcVQMSZS_5X&tET9n$!GO??HC2S?8!qJEIdf^8KahoCUq|1{Qn|OcV>oNdxCXAFo%q zCfpLI_C@up)*0#^`3Dq_1NkY%5ptjZolWEmr)*C8NgI-`Pg)^boxXgfmB7_0!|*-B zX(2z1Eo<&J-JZSjGw451IY-JPHay1&gn}(+i~YBuZ~(w2+=9b(F1;>!oS_(gt!u_h zlvMdb0gsWCwDj77)v~{Gj#!Q-n}r^zNx5~9D&x2fhgbrE;Lgc(3h?skEI2;kGO05l zNEvVzRT*5|eIGxO()L1WJ8LmI_#0H$M|tp9trVDXXtlx85uL&0vo6qlV~DdF*#2rY z-l;tQ>6e!liKxXh04{Zd!&90sq3{bFN2ht=aOgd5`-9PraEzL*zpsrpj)>qlr!#pm z&XV=3*iLh9O5x}O!NGe$_)#iCQXid%#m&02kh4z|y*qN z3ysb{*hn@%)82!F=->}>FNsV_5A8EbzeHFryBbQIO=eadN`16rP`fBKjv=?8Dcara zkG4x_WiKLd^fap~eE$haOhYL|IqFABpAIK}CY`qClCW_Fepvrd61VP=GWffFV?<`L z{1pJFHxIhyn<@Lgqw_DGj8|doxznY?8RABP>Qv;Pw85Dz9#Em!mLR|` zsvFlBAE@Vwy~2DpeI}gvTIDwVa*x*Gj3l;kv%c@-W77P>B7SeonFV?9l+}w^(nrY@ zJl-hK35!9*9pQVl4t8}TC_bg}()aeH<6gX|i}?Izv*(Rt(0QPg0+D^>E+$E2cswhm zr^@S+Hy$&u>OKa;#{HNce_9``)6&nO>ikc>s`lFjGbOJtJ3DYQ{`Dxcje~xI{8KCC zm(36&Vaq{6f~Fw@Wq9gEn~N6}`g+4-7ebzyPlzFun525Yh(CX%D;uTyLC3?KkZk1Dtw(PG zFJAG9{53a7*aa`En<7rV&$*0}%v)IvMju>U1bHlX6+ug}N4lLYo&Ex8C#%p)P=NHY zmmR)8>=SRxzm8gU!nAT*y+K@R^?XKzOyDD6-xD_f#$-n786=%{qDV8@~cip6v6|WJ#HE>CGyFB11g?wFvtKhBdaQgE3K#&`HO) zy;Zer0!h%|ALv?aUOb@A$Gen_w*x=4$)MV`zztcZgnxTCxM1^Nt}b(b1-D6lE#p_Q ztG~W^_ui;=8ZP<#7w=?&FK!A=5dSWVAINF(LVU20dg{q0esW#lA_4Kv0H{n*CaDRy zSw>sCMzOQ#|JD5QE=H41e^^QN=N=lEUa+lxzmSqFRa5xFTK(|!wI=4^lCg#aa3r6c zIOuQR5NIwl@~3$@C?pZv{J7ZY>YIEGwQEOTz8N!gmNwFllJ(oqt4mdF%)rpvs>hb9 zoI!S@tKVi0!eCS_cS{j;M=h$AIgxmXpm6OPf^|WDqM}=|u|w<|jaJ)vT3uF_orI)A zNrxv?vJ^>T$4deDC#FmJEpEsZ_~=x|tjI@O$owB}9CAv5nQ%%=(7V~8W=r7|WjN)Z zpedS^8=bP%g=2n+@H(_BBxuuZrnXAr>Q7zZr8<|DROVY_lquU#ca76q*NYZ^J1(M9 zf~@p&YxvVo&c*XJno~OG+J=7o`eyAq!JI#P-cpM^X~dY(EicUl7 zrMY&TTVgFTJp=j87!HJkCkQ(6e8I_C*3O|TEnyzf%@ zx&|^pJJG*+dgXzuG(C)sr6)gQ0&RgVZ8w$jf>Q-P$OBKQN!b4dxc7IHj8-G7r8;%3 z`-FzG^aV@{Cw2YD;)oh&XyxAd4@S?TC1K-5Foni4>OADbG101d_aM~;Xgt>^4i{GZ zgfAveWnLjD{IjaCeLF>E3fpm4G7BzF%Wvee4qp}xBN3b@F^9~b{FM^jVm#Vw`#?3_ zHssoy8{^h#9g)=3`SJTON=`{4D=?SU&KsrI6uTr=?=Fq+V-A?-p~0TIz&|*fgA}*o z&_kb44@d6~m?e3kTMiLf55U(Cz@?c}3mUCM0A)8*l6klhq3xQ)T77hYUsN+EPUO)DC#UTitpxb020#k!=D(pUe$ z(1lpTz``?k6|WaZ1W7I`6U6g~OWh0Y`+sbM&x6+jlI`{*92RYpPpwGmZh6VPg=mQB z$w&$lVYu@oIV5$VaS2>&dT1Z`nZ-}RL749CWt-EZD?XR#d{xx?HRSsl->;EcCLR|1 zt$sP_{(P}coDNn}Y!)f*oXOj8Ao)Op-G2{9l#W(oXInj9vS_vx`pF#@#FgZ>D?21m zc-bL195*OeJ8ot!XSeFheK_;+zkb%3dw)VTc~;jP6BU&v<1f8(VE!;g+YdhWt1B~L zP|mb`^B*Vj5w?+*yiB<<_sC?_tU~oAUQ2Oq?gthD+lTj-=kD);0OtE0M?h!#MqfUm4yOu`j zi}4`K!L1}zKO6vmb_=5_l2qxRX@_!4Qa+X=xSuBDWG1wED&y4v`BIy?8!V=a^(8*P zgbXZSAEREYOQ}6$Wu@ys0~lX$x6Qb5rLgg~2 zQWK+zWY`I1-6?-$TR;S-2~99M-s-9nh--qOxSABnoH=OlIi($S6Fr-m*o}o`rooXs zm$|?7l%oO+@}G`Q?egr9smTI;&}FIfKbd4uih;W*7rDc)BGo=Ia+dVXlU3y;?ZSlP zn(okGTv2F|N>ct+k~U`WqjK=^qMu%~2F^29bt;E?e4dVM zNApt$`>M;cYCh;<34=SY*tdH7+lFASc&f2j+0|f4*xue^RMjQa98aizoXgF^we>Gx ztZ&vFEeZXf4B*@+NLfWWULS%1cVb7VaRb}ZKjfp=f=?dwk=YxANlshrE`7veU(7zM zYq_}eUP|~0C&~+tDRrcO&priMsSVxl$m2i8kO!_`J_cLfRR~z5O2@0Q7k5LwOVCp= zsK6gLlI{Vzb%FW^ot_#h-T@4{D=JM$kig)a? zZ31|HDi0+6Cvq?+C(`mtm-+{g`mBhNB0=QF`l~L-?P%z5$|+Xdb#K&|CH8>Gz3cda z!`8Itb)~$FX9AlRc9KDjn%)=+g8SE2Cq(U*L$>F8bOitsCk4pMW9D)dhG3)~J~uyy z%_hi+F~owKBdn;=Ly1|6(InN%EP9WznY7XAouxqGF=KED9B9Pc5hV>E*pnc0kNhS8-~@Kjzrw4;#KjtAdwMOu(^?zSuAg3o+#dpK1JJnskS++voHm!Z$B+3l5mIdCsRk2PE?VYTyD{>Ec_%ky~ zPGomL-{S3?ZkET(2`h{dwLn4CD;Fqsf?OPPTUAM&$3vC5Aa;=*Spp9*q5EJN`_Urv zcPgQGC@p;dRfXB@D{xqZlnw^>a9b2e>11RkZBNUC_w<+RC88IK?5qg`mPmcP%LU^; zFtbD}9tIRM0VuxdQa&~FFd|4+-q*Q9f2P3STxZjc&GR0Yfp~Q|d_bK2m2p1_w=_Iw z*ItcODlhO7;tX-M1iQQFbPIs+R(Q#ITuuRI+8?RiA~KXZX?L$;Mxcj z?3x!o2YT~whE`9S+L)aMaIau6OME_Xr_f~Oph2RRbp$B>pI~3ZxBKiHMI6C2h z2G6+0J?{+W59GsOL4$X(3#&YN0T2JF2!q{T5xmF8)4kP0yVj~0Ls*%cZYn^Zhp}<; zQO1vBe@j_k=8(R&1MpYafPFQzMxjnAlqKdrbFn2t9y%J^9D7a+kg9TwEX0S0eYZ=Y z?L$9TE4N7*j}WU%zbVvzN9p7i0|WY*sU2>-*R@i2s>BCRWps>lJq?`h+s90mY2=CL zXtbl)#y_*m%z4OrQb^d%KE-+i z9Abq!GF<)3a0*_v=z2<6MinXB+k;Pml+wjr=HAN^))!SzHfytabaQQB4>t1T#DyM$nLS>^FxeDH`kce4K?-Z^Ht^6~|- zngNAdlAoa$t_2%|`E4OzdaIa9YM8r!3+~({LP#`knwUt0`OlJ8*&m4f4mzpVlv8;& zwY`GjR#A}6VSH)M4|_7&YCr6F`iiTo%#}BZdh`Fl81L#IU9}(1& zPf2ale`vt71bLlQ^`qx-y(lxe{W9)6E9O~{BgrIV;ipy=HMzcVOQ}O+Dq4qgi;z3y zX$DD#%XeD~NTw$A*yRyS%~8j>U+mcj?nI)GdmVt>?bs=Q39Ekv-W^{fJMv&yz@i>E z1F@{QZNISC4{6>JFTmrL_&|K^naEUPn!G8Y4ID7&`zBnQGf*OIr~woL>7`GySwXiJ0c%gMpl z-Lc#Z`T6khB}O=apovF5r{5)?>j*eSi4?T-b`U!@nM2 zsJ%yhX#(3&f5E3E{rN9{KE7Tj$`Fy;aiDyA zXCX8X`!uBXLJCR-M z8-8?7)Kvi9E@mOE=CxYIwt)S~PgUc{hHmqj&W!PC=>!vLQekA*@z0C4S)J5n6}(nG zGzOg|EHwX*o|vGkDMSosdO%kq&+^=jzFCRC?)) zD_n8TZ-@C)?KFOI_#VYe1mDjP)w1aqm`xe}ZS`zRAuN-x=<}G9(OmN1g&#qQCSB|5 zAsnyDLT4{Isx7Eu3!MbPRzC7`*A5F;EH^X>NoU7my?oh&8d6u;3GYLUtd>}JB@`~^ z{%~ZP21)0X?Gk;mvy*2OFq}?3?##E`)lj4$TSQiu3K#W%{DuI9{(B!K+)wuVBL5h_ zRqji9k6pE4CL~H(p2{<t2TcxpAZ=UKr(M#is<7RKd0!xPD#V>& zlQ7ltG9;z66*nE7+NySzZ^o^G4c7=}jn*w3yr=&`Z27s*{==^y$`gSwP{Jc({4TSS zEP^9XFH?|aLS&n+oiRSYktsLfJ=~W2XR!E$$oFPPuQ)39u`P+l=f9fvn5O5jkh%l| z`oiOa9PBS9s`bO@=>_;q@9OMOV%~>3{kt-?Sb-K_`DU~>uhlzk`|x9V+O9q7bY|N3 ziJL(yIJ)B1<L|lj1->d&2K?^M8;&_h#3L ziE~=GhBP{fGGY#@{4A4h@iOo*giMankcAI?oYkg1>@jgre=1*L?tL4Us?zqT1YXo8 z`y8nDdtuN36}8TRlXd+YlFTBZWm39<0BizemT$%;d#zz{U8?2lio<9*f%kMwi~C&T zt?&)$dl!>Wv2@yVarIxl0`*~X?~*Ts32h)CYTo$t+fuhye2ND*L8Zj4-8Jay&=|E# z7cMP9xTQpK{5)Ue_!tx}vAvr^OLpBJdcL9hgx#pvx2W_WKir~Po%P}m0_!Sr z+(>+Sf=PlbWEbLOhd_6`0*g!nyZ0?ANiLq;dfY=XJM1emwYdcqZz#wcyi&A0^*PQL zFT1VcJLN|3%@&jx|2N^9C~)hv`>KdPLDV~Y@y2$k?P`daNzEuWjk}t2Yr*H1xbbxC zqN8K)^4cTDjd4KN?y4Fw92h)C(srYFye`Z4@U_Rw0R`Vhri9;44%)oM+ZR{Zk}16v z;dqe$O!3lN4N7nxeU%<#nR+C_58bgD7(A_HIH)Ovg~O)z^ez19D7 zi7Sge@VFvIP*VvTIjx%ysbyy4_%}Jm;^DlFO)9QH)Q&C?HRSRt&X1eMgNJQU|)kc zF0#Jj`xNq#Wh(f{(!0d*{g?`}js4zs@9;{lB_D1%4eH zD_LVAvAR<8O59+i=S>ojuQB)z%u^8sWYLzA_XjZ+7Oo&3zx8JcBX79l1#xk&i%%Efe?Gj9|K3RHZVs`QQ~St)R^K?@){0&u zWWR;^d~CRZ#kXQL*zPm+`%+N(zLTy7Yixk1>emHS8Wh-V<|lj9FL$q3$?{^(t%Y= z(v+9RHJ5-J$Po+BBmd@Zv$q~JdA>Fi4(#?VJlT;lfvU&kkO=MFy<@)YoawOycFDe` z&QtSkJlwg@Cg+fJ^u5t+m@%D*g&DP2KoSkPX-wQmN$_J+g)ZRR{VW$~ z@NkEb@cLAma$lTo4a68M92}QDdq*6J!IjDXuf_GhjV-SK+t^C-00g78p+=jLCS4J| zhdyf=vc<53G=}6(EaJD->W>6%g<$UZqmJcZ!_?YLwG16KivSew=cz2@lXl}5alRd& zGg~+i;kx@9(rfedFov?>&;1<(0hx}*752udS=@hC_8V67_v_vDcI49gqmE`K+S8kA=l{#}(k z-s{8>zxiAn8Y2l=K$b!x{sPbpvEY+O*-}@QE!gZF4*LYYQX?JD;22WbtTzZ6F|`ZQ zaYdta%&7^_o3GDl;UA@*E+DDjt`^nso%vR6a(=)w6wr>#ip)qrjFs&BN%AZQ6JDp% z*&Ks}FRBCLTx@nf@131Z7Ojrz8Om^+{hdUAiWfmpoZ|ASzvSJn$*8+A=(e~=_EJ2= zk4gQ?MXg=OTKqS^0j3_uYU-Ho-NhNrWe#{DK6EvYan_~b&0j_`n(T&YyjvKN8z`{y zEHz$iT5}+$cBj7UI{A8!0A7k#EB5P3p@<4z?iT%U{0Niy^S|&;X8qtmCYlz7m&vQO z^E%P5xgH>(SaQi_0ioTj95i*x2PMKQ42cb^I>zy3tV88FImsbYmp}OdH3V0JLtGzI zf1rKdN|%n=0nTcj=hUNhT~ps);_rHrZ_ibPM6(X+am+qA-9xM2l%38$bDkCjB5$f& zweGH5`nT%U)V`??MS|WbgD=H#zmU+om<8JZvc%#>;ri?l(Tr%Tx@Fk0Sle*_9F5=k zM16lX0TVm)Lc_`8d7{%RsZapdnMiwqc+S{ZhRh(9fQJM6dFO$V-psqU#Hz?a{$F^6 z@p*%Bc$6Y5?q!WZ7hZSlJ|n&k$xD4LW zb+R14y$CZH?-`qqVACAB8HHr4<^GkV@Us1{aAZ~!@uUWSraq5C)d2BFwG2&+UlrgG zFqmGLK$(ra@yvOF72lf2iqoA)>wfckwxJfLI0MNZ3tdT67-C!;D$)`wY_kU4(4he`i}3H^9}X ziLvJZjueuW%&b1B$Bn@dpm8VyT1y4XbFB=QpX8Im#Koe7%A_6(QWbHl3x1tY z+%!vxq8NHS@?~FfjaP=zcxd!SSLpPE=S`kknmu(lx$#J?t8(%6$8vx#+;Rm^n_|tC zWLqCj1$-wZKi$(Z0$7|I35DO7a{kAydaEcD^%QPqmLG&G&k?(=g=CJ=8CWmDATfGq z_{gN46zUVk-Z|=PLfF_h^E1BUNXo?4dQR#*h%`L5Jn`r(T2y-uBmDjtonH(8hI%7i zd7G5*I9&KN{FC^n1xV6ed&K8n&?np_GcDY(0tII2UkxVEG`$3W9lfqzpFF(Tk{R3H zzVhT8Qx{F)fSrCP2~r|mlAbGg(N{*14PqWQN!rtp_p%>$S^3gnu^#|A? z12Z#_)9M^W1HI8B#p>9mj~#!@?)T6~r|g9QrbYiP#q80WqhGqin7tDU&jQN)s zZoD^4kL949mH+da!Ub*^=9#KK?BB-av9i5nSD+L#5>L}|`-t z#6#V=yQ`#ww3VWa;dMTrm!_t4I7nYfh1mIN{MVO>{%jvV&Y0d*>+?_SGyp|f^}q-Y zXeon+M5J$BM5b$=4yy(l0A&<_!U-jF%r>`xnaQPEkq7Z=;MCe|X}0Zhd#?s` zrYvaRR+i;j51-=rreK54w4A^gv9VsRy@-ak?zBp{oqOZ)vIO_ zw%%a&!ZO{9w?mFEfkSf#q&Cz-g~(b22=1P4k8Yf`9>me;lh zKl-&zcVE>#yqPVmLjR+59>tD^)(jWmaeQ@xZpBRLLXrFU7pZ1#n{qg^qa{?m#)7M) zYMfB}*8nU4rym^56)oR(Ivts>5|jt$`d*TBLpX&=UJ-v_B%cSY)lkL=pT~&|l>?509X9LtbTR0=8+Vik;st4 zmTUir^g>YcQ$6(qqYrd5eJIe^KW<@wY%zYvlN9^oRMK;ca$X5Eby8xgRDd{n{r74) zMKom}BDhDdWK3np*Vp1elI5W!a$B0@_QcXjDxLQ9tpG{#GuEUi!wD}Ar(?*DI&;79 zs@-tK63QRk= zxI2Eqd3Vw$-)5Ox9al^LOfCzNpBdieLO*~HohZFF$6XcD{OWWB-LTs^1!1(B4#W*9zU)_l9DxwW&rb1=SVl(3iC8!P_HZLSyy1aEfPBw> z2aIS54Xnd=t2RFcFDPs%~Uv#xmc>B(F;03*fK?VKt4=j+t8nQW3& zL@P#JOH^VBQdsmRe#$nUQZ4|C8i3(zM~SM@P$U39%flz9@(tJ_5k0r&#eVI;ULLLH z5`DZ1{rG{~VVK9_<)2fL@rjY*Dkv;vMC9GRElK9D>E)IdTW4|tj?80Z2G@VB7Zu#o za$JeuVkiK+Oge3gxkj-ob-z@d*bB#c_3f6x9M0{PmF$-BD>lF~9%T5(C|u=f>65B@R> zvIt0-0St2e_vt~7uXy`fQ@k};Rxf@@p&dJsgj+p?-W=vvTcVFU(X&hW*Ei5DjH&r; z@^v|N7vge*;VMSBZhA;nWHH5TCwI0^+OX>;oPc6n!bWNd=*2)#+~3r~Zh=HTyu}z_ zBT>F6n8P)Z3mB2;i97PZ!4ih&1yLitWai7b5!i8HfddI{%@6_v?R<3%tsl?t4H| z8DdjVVt^)OH^##0wcHr{v~~N6SoAa*l`&?=I0OY794#vTVrDLQWek z-EwWj4k*ZTr?TU;puIr`N}8lW<~hbVlq{Z1n}5gVufcrHQSC`KG=vVzsv2hVa!h@D zpG38KGuYKJ%NgDdo-ACSKT$NyzbX&8zJ1W+{jkn;1M$}4W~uYdKwJ{8TAtKDjBSe+mwHHwt3iklpdgzncWHs9x9K@(%G3aAc7LwS$y{=)9sp!(L8v-S~5>8!~zjZ5Zmf@QWCW?#y3MyWI0hE zpEhW@1@_o`NC>1+RAHw^MF(e?(jD+zd_0q+)Z)zvPhCDw22y_t!W3CtVT~(W$}w5d;FL;5Q0c($c`FaB;4jpGVmT z!w0>%pJAG=fqfgEZu(}*r0+0nS7k0| zk{SF7wK7cY&tBPVnn8Z~ zbQTe1P}gg4*&K|0`I!X=-_vEOhJ%f|KV2``=*Fb3-cmt+Oq2oE1Kv;e0OgusA^a(0;S)*~!+n8O8rO|9b%AF{7qL?+R_UPM9s zwXK0yymT1kSWlz_X^q`0^Ir~$q-ohZ^?!#6{^VCfxjyF6A}EbF46@UHp2FO#S0P?O z$0c|E)xYpnkFLM1<(jb}{mQ(FU^&0393pj`JU(RrG~Zy=p8O%*EJoCLhTnz0wWb83 z%|`N=Sx>T*iB4AT@$gPPml>gvWr%vWbwy$uT4sRtK^yUxf0l+{KIb4|_kMMN@ONDr z`UkdS0XDh2#teSFtPgZl1k7xhejMOK@LLoa9UrcAZ_h+@0BI!-@PhDT}KZjBbrAiC#m4-<$+U{C&5$hJ4lCYI0QA zhTDSG1^)QkB%_BvO%)$H;zz_e^^e{p{gm0&YNi0hOwZ?Ub7o#@JQhCPQU&?T)XcGY zZ%L^~3m^z5f{Inh(|W#)Hp*XDQ+JEm4;){uqoQ}xcJ$83uMAkhllD+4yJGOh3FJwEWhvfx#^=%zyjB*LcrZg8Zkcv9_`s*ave5oI)s*~i^%3|qKQDpkzj zI27l`_p|Wr=~8v%;Afdc7nx_W&{YT*Sg3VGS8(1JZDHRll&M)!v&I~RU>&J1=qsA zV;->TxAHYjc!oC6Ojn|G=|D*Z`IFibr`D9Kzo*tiv1NjAuglMxVePIO<*76wz zj{_xi!|3+7#m`DKAA`=<`uFzj8{bzY9u<^mGiHv_WU?ndpz*ObfX~xToyudb7yB+$d=e zx-VPlW8)Woh@3akM`LRaz*|7Tr3q2Zq-(5NPd&`>>I@BoQ(E8g(%P5`ln?&}P(bn_ zgvv+r{i(Or_7_P)2=F7-r2kaES#_B3P0311cQ;}cE3L3333`7=xD5)TT-t_xmbo_W z>VZqv_ADQ>0^?sF;}`H>Y3_+vb9Oq6i8`;mU}wmQ9xAu7F_$^F*e0}y*V~cF>!wRE ztPaxV*+`-KTKE(;!m@0F?>`XJyTsi68AQ$T%jEF}8^z4t-%;Qe-ky=yTF&KE|Cv2+ zcNgkrtdVaONc2B9IZR_BCgfY86QAaPv-#v&X#|1ooIL*JAA`S<6R_>mT??MAK6 zp(N?Y_44n80u7VUg zV|DS}E;PDX+RqwI8Oi3Vx`(@S@GJPlZW*U&k_G3#KmA?<9tdu;-vN^3Ri7#RlLR1P z%RTOi?KJ*#l?iu0@n|9`U*OlbWvRjGIWq=o3u;vUxE-G4b6!iC{CQ>}_wdHFaMufO z+t7TSSKw6UlK2oD!?I(4eI8_y9CNjdJJI&ZefikCvRI9qp0q&cgK6IKeuZM7I;VgL-bp@IlFy7yhv|Lt`)yv1CaS+j(r!92^KLzb$1JJ zm&6^atEdSCjKB?gRfX2Y5w;yo1UfA9e^&f6edF90!JBsG7~DK<3#0*;6Y|4lD4n@1Yv>kBlN%fVlT|%^sP}bqZ**WDR}4m_GHx`Cv$fON zv)^tN7}LM|aYtn4YO~O&*iozx)eT$vuX5uCg26cipI?KQXBOGRPQS zdDVhH;25LLrfDf>=V8#hbwf5X606~sF4l4JqMbBP*IzhRqS8AnS{-Yui=N<9=Q?ld z&uF?R8LS6y*#tF6`|S=AD~l^lVBu)B+M0QPb7m(@G{+NIfY3Wkc|gE&_|v3@mx5mg z)Pr^uhHS)eeR6f9DlcW{ar&ur_dj1Vk(nip=wIf*WvXrl^Zr!Wzm=9WJ&&&RjGVKP z7Cg2M6kdk(E#Ih-<$b8m<+c*1&)=G;n8#EZ)nhV-E&~!IbXx)}^kj*^KBdr$?oy@{ zODJ~?&&!Wi;CH&wb{D6!cJhSRT@o-$b`czTwJn$kv#-;r>^#Q&NiY~u+oz88% zC3=`Fo3>$q3#e)c!JK*EMwpYVmSmf!Z<|yDYid5mEuQ zECn)#f~P?s>#m_$;GUPpdeHmx|HIW;ent6y@md54iBV9xQ)!T{p(Lc?i-dF|-OYdq z0}=zGbc%{di*yVPN_RIhz|h0MFiafQS?jFzTj#~|FYM>u`?L3T{T^pf^TP$H4NCMr zXMNMs&8bF`maKr-?!N4WPy+TY8x>*HZ_<>(_a zE93AonagShx#d4|^a7Pp>GDm7Oaf6@y4w&sik z#I!byQHZy?K9-p+Q(NsgBT2|IXC=_-42XT8_VeO@+9$r6`x}_Md#k9M%Gv^HY4znW z1dNit=xF?n$rOQTDDh#=g#)sSV>|o)YX)v+AB{7Yggt~!{2026rs`P_>R)9kWHbK0 z{6w=@p7Q=q3cx&?nl|~YbfZ;Wi2h20b4DifGMbFf9=MvyNa*P{fEX!ou#WS8&=l~A z09W{e&|#F@PuX)?jF}{=EV@T?twxeL^u8cO=Ju=Ct8HmA1g|YUzmFJcoHClYqmPk~ z=A@C-Ul|vfICP#LbI&;26q@+Se?ANIXG|)zz-NVgrzdJ-r$;bb~9=)2#Pu}%^1($K9XI%Q2^Uep0P?wjqG;L{_eqSJ|o)J{6(s#QmdHf{O%u zvgq8D+w|Xyp4I(@GvOJ?M!cYkq9PSN(MyP8!g)b0zP$?G1s)JnY2Q4}-@XqN^k?dA9q!&j}GL3YEp5)=i9$?s`2;pd)i&?z;$zr28lx@zcn&!QeH`?NfDNPHJ!u4mHwF~Q;O3-hu+N4X`jys6Ij|jO_W{1w~#}tCASgaO5;*Xyn=?+ zjt)E2Efv$eWMO#_g6&z>KDuD~Lu$h0UVqF=B4C7hqZ_OhRgF|80h85xZIQYn53WU) zC$Ogqjpi13!$7z)Y;KMn#*ffC_%+z@LG92SF!X+I@YiHa)A#cqJNpTW-6MWO`;Ro} zFmpfI>VmX-75@s+Xr4F`#MkLA&U;%iY)5{rOZ&4}uP;%Ie^&V>=&p)B6sNCyphLwL zU-;54&yt5Vnt}YLTryKC9}p=C};EIywnN0js5yjPXde8lXokJ1KueXFaO_kEZriiyifxWxdppyxE3(E>n&wtI*YFTwKlmqcaW|%MpKelY$A59p3%u1P zusj@=o28~+Ipn&XDhyrB&tXH2Ts>R~!>8rujf7vgj>1zaA-a&23|Z{k9`cOH zZ9ZHbAax0V^Yy`-nXS97H|zg7C@1=3Yb@PfxSZ(Mn9#LN@*+0Q5!)#;_)J_tt00#3 zFv&JJjEd$a9LuAAm8HBbA0S2@aMV+gYjl6XHek0rb>^N{=CmA>yS@S6%}@M(WRtGa zhx?z7y?Q4(P5+BSU^K_eqV-^L&%z6jnPG2j=omQm(nGnOMO!7e9F7P(@+Lqfx`E0I z2~{S8t}<*7QMk0GH`L>1utaZy}f>EQdR1kzmeGs$#&H@0o*`Ta#n*6_U15_sU4X3Y44 z5G96D?*hRJk6}Ka{e$Wc8&dG|@#)uuyZ>2)`y~EkzmsqUEKAK1?Wl>8+dezv6kor_ z&y3ohHQxJVNyghm%9FLq$uc+>EW#i+!uOR1;Od#+0;u>8ibBrsOS+7+RV9`G> z(pC76KcCRnrLGP9w3y`MaxQwBZny(CN=X+-FiVx|fVdHvYs1?C{v)~i-CR4EBP$5F z_hU>Zl#Oe;jV^f4*!|?7RCMycqbC;e8Xu|tenN2jJNX0oH?kFKNq!%>hD)MzLfd{Q zj<9zAhzIJ)*+kms?hqL*Es7uC#1_g1Drbe>a@_2PiX;-BR9V~y$6z?<4KuUvg^5F` zsBA$~=M!IL@rqy~rkS^+5EWW^VyZA4oBryr&qG>-k^AfxwZF3t(nH9-LhVG7pqiQs-`_S?6rR4%jU zUmg{O!9PmYh^!=vHj-&_>Q>1Jy&%L)0Qj4oKdWb7e`CAxm;ezZO*Ym;%y|#{vn*5b zgaH3r*Mcb81ZF=-jWH0(Y;8P(B!YQY(Dn6aav=&P)HVA4%z~bVNE{HeZJ77J zyjj)(*v#z5HPa!=&iIwZgqoT%om$z1E+Q=c+i~-Sgbeh<4sLd&D7dRA~tt5i862fuNbssCkH!lUs*Q2|aNTBQ z3Ot*hsgo~`(`bHtE<(%nTj?;i`@QN4oCf>l)+Fjaq)W`vfnM{*HdJ@6NeLn3$1^C^ zh7!@&Ov@{)XPlZaahF zR#M#McjJ)8qglHLgG#W{o~A!4bM*OVniDP6@cEm=Z2QTP=v}jlx2|DtbC|bfjCi3q z9NC-0M?VJ?Dho*uix`-39V9!qk=zIdr4L3Mb1$Z=R2?cn9&h^}j@_Sw?9bJ4O9R$m ztNKUhkc%#%ZKETronl$NmLR@<}k(hg>A<*RD;rf9w>cCiJ{K} z_cA`!@$Tk@{q%Id(p~Uw(*SQb@fu`;YaAc21HDEREYK~U^nKa#s;YTco6T35D(F^q zy~OGBjliX-@@c^QMyZ&*zT|o4foYb{^P9^o*QB z3t#U>Zv3o02|_qa->ab;unfs1Dr6KH8QDYx(rseDMxPLN4PhUT8C(}fqRUn`(Bq(p z+X(z7C~EWg#T9>!zs`B z9Q1_Lx9lTgj*e~zI-)D;%zd%`)u;&bpmO=ki3?wf1-B^kPM19Ymb#=sW%P zpS+g0EvE|GQ8iHTLh3;DqQ1DMSce_B4juUq@9z6SCKZ(rnHAg~;ySnCH~_;Lj}FD_X&E2|TOi z;0EsNeHAe4#{&YzW%@VwSBW^dOTZ6^pU$bU8@5e8~qkLqI${`;5)5t7*N&moy&1O z$2r(t7W^_Y1iSSBR|P`Q0dEa@{jCv0Wph;h8|s7WU4r~s>NJ9}68Kpi#w{U2nX%T< z8xob{Y|wqmdcj{KigN_(zaRYQHtO!VAA+|?DujO!se~ZGw&Gaz>p#Z>cK~T0XeEFl zdTVTj1d7@_9&5f7Fo13G(3sm`#?-fZHPvij&<75Iohh5_Y$la*1C^p=20M+okEL=| z!__`jab3&mJ|&MXlySLx!*?6ZJ@LFSoO0^=KEcl!kOaEcaMCRPu(_O% zgo;$lPZCF7T%<8Y+-K=%Pk&_VrZ8Q#%R&5*q{Pz{vq_}*d19)SAK%s5>G2Cg2w7#D%)jF;1040IR$%W1N*pjkNN$qq|=F==#+AQaHUu++;d0sVvr~T zwIX3F?6SEid4>Jtydpc(2}q17RD1Si zLP`AoK?GH7t~bI`BU-HN8u1-~gdG#P?b?mY{&g)T+rvbK>j!a1Htl!QAN!-;EH2zI z)aNo4|Jv!+f}^FozO%*e4j{~X$M;IIHDcZ?r;Wt0bzWOg{0v~d0AHHk)++tlTgKOn z9SBwKMO2^X|A?!{9+}-29(P|3_~q!9tYbY%neS<>mwZ@^^Xv=yaB{c=cV_?BN*}7K zI1c`GqPN@l#V1Pi=k2 z6^#-H#Y3r4M?%Pg41$0^EmaN)Hvg1VlXbaYKk6t47a1gW8`Di8Oacj>=38)o1%RU_ zI{Yl%6}w*j_r|&}!?XjV<0C8csai+;T_)p~J5A*$1(kbAS0;x(v~Jz}+A@7~wPi-q zC8VPx#fOL;NVSGvU@EiGOl1nL4TnruxKgTpa2~%3|7L%2dIJrb+kBe2{D7nSS^XH= z)%%cZScm0=EMXWX#QN5Zq!vDem$PlNxoSXIOO#EZJwyK7EkDW5SN=(haE>0R3S3(~ zP%g$GFb&W1Om3;7rvDDZ>Xd5=)#q;ts_TN|kW?#rxLL#5#Y?Hz`O220flF4If>cA;1>*$(; z-*m$3mt&WY z6iI^@ugg#I%{V&g7r)?Q=cfP<)T?MkjNSMc3=VeRh@70A1dy;v*dsR1H6(CMgEq1i z0QtCUf?8|GuOn6ug_9tMM+zQAxBRB>5sxq}hiC;WJPUajyhn}Ap(jDd^G$<8<_}C~ zZF}(wz15gvPB>>}?0wWcE`PR)hy&R0W=f8R*N;AxMX@dPK|Z0g z=3Xonz*Z$cat;}rT#4qKn4~5cQs17o$!=SWz;B>%C)V4cJcjDW&K*07j(yOc>`2y1 zYs2Z`lKM2RivHF_Wule&WYT^7|zpjY;&f z4bB92DkE{33J+EF;R-KWgaV{@wnQB4Q>p`Bvfh3ef!*{pUsC9=7(E-Gy|FR7NxPrC zx59W7J^)ipMp8?0%5+br`^f|)x+&2SS-HMp(TtK^zg74=GHUfEPVYLX<_>xnnR5y= z5;)hPwAWs_tC^!!<~T*i(+*4U+SMs(r-+(Ub;9`{zlGFBPV!@*46(DpO5sFLIhk)nFpz|w+sP3~{ zAa3wDABaL9lK^o|gB$*#r%^W^Bev09^{MP|E6AN<&k$US8I9uawH_)~|(3=q43v7LMG=rT{ z^9l@zZfFKxgy4mu*wX`ENueve!jD%Qa>Sh_!*N64J#j(74Lg+a-B%geeI{}M!vw1+ zO$-1oSv*j7DHP#K3Jd8n4C(fo6CLPGAN{=eKH#aZlGh%~L>7lgZ362|9~qEOtXc-; z-l#GG@G}Jq?Kq$m%#V8{S)G0#$|cmw&H?2tqXH?Yly>Lr1N^hgqJN5LoO#4u1|9c* z+UKq*!p+h+IS;(3Wwt;b*ZWL;c%Uhe;3t++35+UnB{&JjSb8ebv;g!cMXw znxfAjvQ59Q`jc4SIE_{ckSL0y5A$t-iNgiNW`4t{=XgbAl_qi>fNx-_o;Ck(2% z52SmFnn4is@ve~QdE3lzZiT+OnrSSVtcKb0STr+JU)C)7mSIUJ0{$umoiFOQSj_i9 zPqQ3HL~(S>N9NM6q1p*D@2#sI9&Rto-SstdG9T5NK2r40tp9!^QJPO9KSqiCg_A^v=x6fc*F9S(s(sEdz2Zpn449eo2 zK3WCq7Vj5EL{D+}{`(edwHqJTAAVSWDMJ3&okW{*PS-Uz;lKBLF=oMoPZCFix$Lk! z!%P=xXpxgt{axb}GYMWbhXo~b`dR|d3XNs+d5isL1H24K5eCc++mbVOtGkqns#{$q zZ!q#gw8r6VTKlD$Ks12lsTHIabktKEn6fs{ZnBfGx-+BoDEi>-)G}UGyZeR~z}&FW zmuO6HcYi>)F%Po@*&~+45Z-B=6i5d0XA77Nr zBk=8ybL@@JyU?>KF$f5fEvx`3!uN)rI@9zgr`!zox`vlsyLO$;A2&e10_eLCf<9W0 zp2`KhR9!mdp zsP$9E^IPdT@vATRKa}y0Gm{4sBNHQUUAdRg-&ytYsY4IO5h9Hbzt=PFCHmLM zGVhH^t1;-2S3Cal>0bje_Ienp%}H=@OghN{#*qf>4M4)50;t~b9G%y6bJ=a!$(1G! zW5N-=&|ke@UOQ5DW>blzX@ZlVqd%@}t4{6e9ryK|GUf|1|L7XYypR$uLONP%fx z;~-{RzcCPwMV8WqdSG)}A+wj{{!PDF12Y z=&Tk07y`OD4%8C+S5P8$b$pnTfm~L{Mtu9C-$eC5bjAM}i0E}|&A6FK`*e?_pOq}% zmt6D4-0Jdiq00eK=t9xGBR#N!9yCcM!B8{1$jWuK$;f3x42Cw#g4M%fq+wbo` zcv`BNo0cLhvoI35Tl!)ZE>QTkMNj+{)rypp(zw0gcO2~%Mr7#&3#g%ZN%$i8Lb_)7 z*Bxh^;6LVX=g}Th+@mC~%LbhNGQB;&nQw^-C)!v!dE-aA;7!MoZQ8)*QyXc+HPBxA zI$KT_q|L57rzLy#Z*Iuw?AU&axlZ4^>hD-jPkTO+RLd74l`-F+YO~QjmH_>wm+f^p zUM}6c0W(lT(i&NwP-9(H%EjTvbzgL=6JuXJspz^_c`UbzYJBHZW6 zJl88eIsMyOb*B0HH%OSl@4oR$9u7?`G&VyS0>L@Vh zD6W!h(mQT4nd@CdG`zq3bMs|5giPy-;Yc*n&t^)g5l8!(jFN?25qqk;JK;ayln?{ zxR-j%m6u8h7U)636xhXQ%-S7}KV_zn0TAo3bNlEApO}vsDu$U~Y%*u5GU_t3JsEtL zX2iMhA41)6?CjrECXL^1hUm81^;io} z_Orr=aykqP_PX$O%Bw^Y$A?Vzk$OZV+7zC$NY?_%wc8$f=;amHcX~2P0WSjae0F^= z%n;{<+9D`*+{JOFUPkW??H@gA-v8zT@h?rnP#o@5HP3&Sizz((dJ8N#s#vem<|K4T zRok=w+}~TEX#{+YKZ_eUk4hfer^PhP* z$Fl=M5{`ZI&<{U%enNvs1Ts9<>AQ0m#NHx$5xxGB z?B}U+jVAdz7VY_2aw4GHS8WcDPffaT6lKQ}K*wfHS- z1w1fxw*VtE^iekjxp8=eG|-#Mhsv_t0ntv)w_Bpemo&0mhJFXt%Rp4*btsu$AsUNpFI4G+~xa)HdJn0h?JU1s!}?FCJEx4o9eKBEl& zej8AnO~c?LP_62xQEd#rY~wgs>u0m}v9kB~v?#2P;jhjwasIgHwD-^B+N5;$&}zPE z5Jq{{x^^Y(BNu-eepnFMl@rt!l*u&dcI=!yB!kqc0@M91e|^fZq|UkGX1rGvp!GMy zNVMq<$~Ro3I(z`sDY)Qh4lH8DjmY;11BPpH4R4Z!^vVQtzPIDn@aJr`DXn-o9Pe_) zNcEKB+tV6Z&*Q9PBfA`<`$KQ3wXHIzB~E5EbI2Wo=RvnaD~$utPS(1BG<^Lz?xkj# z&7~FK{u%n^fZrtyJ@nwC;_~f^M!5?r=R+iA?949P`fhz`meC za^ZGraj6WU&JlnTQ-QVq5TMUjx}*CXYou=%vDx8YY6%BZWu@k;P#S|lgiPN$sNoHk&$LpKs;f9pEd`cO~^_ReGx~@oS`2U5)v1W>bwxvNEwZPo+KcFFn=@ zTRVpNAG4BQHK+OJo=&RjF@^EohOU8-5p%^;)VS7w)jJoY^UqVpM_DKgEb2QU*B_JBGp;H&+~uIV~dr z=*TME3P=MM9URoSKnuR6Jjqr+&$6F)U`4Q9+rHU&{#Lw)^UAyd>X}G-mwED0^v7FHd?UNwb;}Z0B&mo)O|JI0PwcOoj@ZZZpJ_tSAA@6`3_nw z_2ER#wc@boTr|bXD>cHw*^IlF+N?A^P7`|bExJ3Ma?G_2#nC=4X0NNZkUF8EW~RV) zQP!xbsb-rN{pe8|E~cVOJetd-{o;-|7g^qgxH4{+1n@385MC?N1z6tP9MRW{g3GE~ z(50I5q3~L%IWrs2u>Ir#&3~>b|CI41g@b@k)Fr0|g&F4B2e~sJMm!zmhKhPWfyEvS z6al8{TQ29Cfnf&F{d_kuSCK|0amG-T`*52U3YJd*hcZ(OSvey$At_yyT_(}XqTjcm z!6|R#G0jx_Z}`wSw|&0|U(oRa2)nSMadt_W@ZZ+|;1VWu9^ghdZUmYqa2N8?hCHsU zyDOnF3b4@&+Vl)G1K|&X@yXX6q8ws?{b+-9G>#|W+PErP?NA-7;7WAN_o;PhJ}|F% z{rq8Wac5=rgp!}VXD5*%r!+w>#<#G8;~8xZEh;mWJfWn;l^9-}6t+xN*DPp}c23v^7Sa>F`eTSNe2v4=B}GP|wW4viwqF zrJ^~K3@|&){8%ZW=j5v+{>)6`8a>nmG8(_pQyeC{Ee%YYH^4dc#ZF!J#10wXNn9*F z_B&kM3T!Df-0A9E@Tvaw&g<@pbz^9qw4azG!g0`t_jPoMQ~5ez>-?25RYTTnJ5Cc1OCNyHlSBwAiegHFjD1P<&9 z0K}Ywv}r-~x&<#M+I*!LdHu&vXVqN>;oWF?dW^`&M8*OJ2e=h=$Bt+-)rc{3|AZ|o z^5zTu?vl9p2Tvnm-$_?Gf!Or-W18$!x*M`Y)gYon6RJu>{f#}RW{6C z3{^1S3zvk`T+z!u_v`cWAfeVOUlfqrsDtinsbv29nXacg&7VJxfd)ClJe0 z;Imh#QRa(@6^&ETl{>*S;OJ5Y)m~;<}7>timM_y?l*fc@Fm;y`{d{X8G%#*|K2bs4#)l?1q&Q%7%tfuNlAOuDo0TWK&^?zUZbBmf>JmJtWL_QNo{-fvJD- zz^mjkYoA_9cv6hcvKbBxO;rg~&21hqQmJ1h+TMJ99ai%qe=PXJKzRC{Rt%TYRd2Xq zg{tXlO)qY~BoQpSZ5DD>?vV3Qae>c(=^x) z;KWltsBhx0m|9A?J39{jkoNPgrQ0}k=mhxITb|`^iP0j0^5LfktN}pg8iehmtqyE= zS}GLt+1)t{@-Z!8>;AKGL8XV4*=#-jHM*i}1{&Js<{eUbV7Z9T9i953#^3>9!oWzP zWH8mE&>qPgSOn_3EURixREDLFGB&m(z<{MV$sqIZSIb6)`k@>SuUxH7RB8s`Limq! zDYp$l%=71tmV2%;sKsO!&F^&kmX%NS-0Do?#Jp-ig+<1G49z_u&z_|9``96r%l~@mRCQwZ^?}G z9##x&1y83W9a(`6%wD#Ku@v7cBous3NOCCNT{DO)zpoy&cAcY_IPb#w{1WZDygDgo zyEt9<phsJXtW7ioh}nG%PMfjown5A8ZMAKS(9 zPQ6z_G&VPnZ}t>5{`x0JWYEFq=*e{YdFDlI1zCt(Yj8j3%_tnC&S0GV$v$_S+RUc7 zWb?bd0Z(L9@O#nUjh2O#BqDF#zK5V{!M?${p`B3pw)!H zN(8nwxQEEqvkyx!~V9F)5$lne!Ld!Px|0WZyj4RUAb->cz0;@HghkPO41=APF;Xj$QI$Td-N$_(y{aU}T*b;NzEO{C^I9;K9QacivJh zmnbYC?8MPo5ovH>x1yenu+9q@PeFeD_i3#u&2$Fkt#{qF_?l@X(&KKp&F!>>%!mv5 z_}f(nTQ93Bbq{}wc6{$x(IHs@9WB*P;22$O)yfMP(co3t?_ga> zm5$tid`q=!SX?Oj3p&&;D(xNVbfw_r%SYTmv8fLdqi|kSyIzpn)13{|mANk=sX@9a zFoxGmPIDekO5_ej%T`QZXmPaoQPJO!l@r8ts0PU!4M;ls|* z*AvNNa6i8qvM@CgKAS7*0oMofvA+pu>qmB;WG+GW%RiSQhS0rHN~DuBl})Zbw~V2x z%qtt}PGdn7o^@nvIfi=J&rFqzL!hn)GYrq!b^Y;S$mWW+vcX1q)CC4XQ6EI*diKw~ zM(cV9bip;>DgVw>0y%p-G0P33k(FssVs&o1np_5buH3+NR;ibTrZ1Fn)XK&bVpMoj z4GXe91Gv|7Qyhq3mUB+_r(Rw~$gk_0w1vE|#+Ur?o?XT~!w6v)XC|d*jE_S@Mp2)* z8ZfZ9i0|ZAP{r=x8&Z+ zLoMjl=LGbST>5O+_q5gE9~v(JTB(x4JEu%Qbg>V94v(!p5Q~FcVS1KDqOaK6u@%58 zI`87BYdZCNBFCm-8n=t*^$%A^#%~TPBC}Gr+fL#P&DAw@6veOn0*6n_pv7#jYuThG z7dXu9Y6-h6@qLi4h}+a!e0j4EE^Z_G-gfjR1d6Bg0Ubr)(Z{DC_`hTM4IJufN;5tq zZ~`&xUo?S}_djbQIeLq4u*C-lfu1tPXaCurgC_G`i{vWXU=zjhIH)4fFdj?~jyiz5PdG8+H3G zXXX&9_zV3UVD5z4k#0oVM(x}in&`w7=wL%Vlp!8!DOBQ?wfa2ef?M{glGW{);YY$0=MybmI-p^0AXyChZk*`@CsXs5gupVl*dSRU?Vmsnf`An9F@ zk?6QneYY=XWrp@RZm=qC3pXb;_0h^lcYlgI2bK7UMncH(Gb9wIss9V> zyp$NuXAe6qDn#DhkbQ`}ru!f@-E(D(CfjV$fbj_{EYXw>+^Z}Heor@-xbP*m^YDL- z>2Hz|Cc1ESE{^^{puaU1@1EYc{Qp=0YZ*Z1eofg&*|e`11@EmJ;@CVWG%sRbAcqoM zBJS~QJz%$>pUCfA<(`^6|J|JAdr2IxBpK!FnECHiluLZYt(!^bahrZ3446j!0AEnV)xQl;R6VSsij&7jtVbYCrR>@ zH^}rs2QFr|ifM?ZTMloA`}HY`lOccSJvbLKJXXsy>fo(5P+ic8A26d**e*bx=J$CS zL>W4K52={%-5?dKzaS4j-1^0zmXoOS3y#)wH84ISa1bTh!cI(Tu)ddgrJFKhzp%h{ zXn>>PM_%CSGTc^&GAd6nNnQnPGIyok(2>G@0^f<7eb&f%8i2jsv%i&AtY7s$jXD`P zjuYt$i!k#c1|g1NP4)N|%bQvR=${Z!fRKjzQ(l~j?K>gWnV@N3ix)MYui22`HKb~U z*H#9l_O?b4s}GN<2-VYviP!ZDK%}eQJlauvZ7$;U)j1jHn6g{u?v~gP$6q2c-1%Sm z*VtF{bk&7G_SRG{;j`hg2A$KofMP< zHy@Ic^445h(g32x$P-jP!cq6#N6_ucE<_-Z!J7-P$Ezx8F)tkN?`pY9o0?lp3VUmxv*D z9taaHClXs?+?(S-b}8;KcK#77ZgUSbUJ__R74QCOUI5Y&MHd9wOHu@q)N2w0WlCUM zAE?DojQ)F}i$lVt@%a*NFjxHFzVSCA^z5dPxSqv7KR(9s?)7o>>Dp;~XM*7I^pwnA zzGikWSghJRakPC(lb72r-mC|VW?_=R1vV<>JTIas5cmyb^eY=SCYNLRBGRwuh_Hz ztr4WL_=VnyRNp~|mW}9+CPY1ll+q>s#Twl~NT?MVhM}oW6=!>O5HF_Bax-qD>D~4I zagOhba16B#gY?WvkCuCWDgZ7ujSQ4}*hlJD~+9X2vR5i$lpPL@2$3ckJl%lnj7>J0p$z8 z!(+oj^~1Iu^4J}--d4Pc2v_+R!qqONRFQ|^@!Q%8(FI7<76dDMV@V8#ao9)cjS|@Q zQ5Gg;IX$6iPi1$)!oDO`A4}AU==qw05||8Y4%jk;Np07lzgexiT?}}1+HULsv z6!Qjcgumd;RYiY`hbbkDK=;N3klmcU>a@3FFX;DHo7G9o>g)A!sU8T{4D(iVu>dtI zT*vx7ULhsR;#UXoPDOk1G*`%CcGj*Tmg7RS^^6v^xB<_lv9*y-f$b%w+SaDyI(Ykb zBYrNi-=dXScEDBd$fTm#l2kaq!U+e3Ihy_kQFEK1R*8#SGO0j zu|Jp^#Cw1sEx|~d1*O;&D9}mK>AAy#nWko?8sbnPoZe85d&YSz(Gxa75s53;FUny7 zxtLmBmc&iqh}o7N7GorDe#1|%M53qA{``#X^w3a(g`7;GE{(1;b?)8KOom_;%RlBW zyW2roY6z8=go5u(pN^bj-rHg9lm%2=Zq1{3Rx<^qssEaMl#I#Qu8y1&_-=~#l{Hx6 zgLY24c?qp2&z5R^FMto=!Z5KsX)6OskTUZ;MOc{ZgX;G=%UYHGBN||4e61YbgRN$7 zB8*w@6rTsB`>mk~=)fIx+G#0})#Z#TVHZ~u@qk%fWvumaX$f`JwD)8&qB>0GFZzSZ z>MRM}#HFw}_(z`&UdHPPGQXi;A+6w&qeWkql7h`^T*0gp90>$)k0a#llY+LNA*mDC zR+9hr42nc#-JV5f+DA)2X%C$__dbM0wPk3>)4e6$K}>q%Wr44&d4<6s^V*@$#^t`1 z#z~kes~AceP^jD~FeUx&#U@4WF`eW2XO-gX`qaS=KcyogYdqTg6pP|&(_CI$#9J%K z;oocw>4yB*|BFcqQizWreAsJux`m-8f>1l>y;(y*uZ>tVGCoyr1hdbF#B0 zAf7pspH};5x{_y&Up@`syonn_Oz3$Z)qPLqhV8m&nt9&l1+5qPi+!&L8|$>Rg^xAJ zJ{gm>&ibpnqXvh*Sd&wD?Ned$NmrsFlG+xrB$L{)^ov@FwQGn&4-{LzDLGb#f>~CE4Rz+Mz_{bPfZfJx^c?JeXaTXT&2vxv2 zXzF@D-szeS*Voi%>OqvLgE+a-a5Hy<6d#dkMa@DatB zA^R$HcN$(}&uoEDhQNffV+T_v9B0_6NgWm6#o4aK=$1#T6^=Gk=nDr;wS@me)mcVW z5&dge8l*+(5(Jb^X^w&tQUXeMcS^^hyHV*@x*Lfj4bt6>fOH->IhX&s_pWvCm-)Qc zteIJ}_wRk5XY*>xyQ=W^#ztfe1)1_3;c2oL+ciP6EP2V|Q*sMZaFA%5M*4}$IyWnL;Edlad8Xh^>O5s~ zdl==2-|S<15rd?BApvdsW#ZQ|FLa8e#67xaO^~dW>W*$t)Unb&4vf(GzafbhLsm^L zG=vP3pUsFb>}^v0H05C4=`DfH&YJGx7|K|G{?JiR(yO~Qx=9wcUiEoniE?4-0So}{ zxPBfa{DQ*WL%VGYJ)rg=WC9R&Gqn7Hx%R4hqL| z4vCZ6EeCcEEljBN!1j+#Sn0p+tTtGt>)XfI7!u9F3BzBOI462N3UMM3h7X~Wcx1xo z!8?VgRV<1k0&8t~c=E1W6Pwug#NYLEi{N$O&bCLP9SJ%JvFqUCV@SR0^e>xCkS_QJ zo*5l%FojGzXD0c0og^}JSt}~YCwL%LoHW_n%|C!QLJ0nd+f$o7$&`z)QM%t&K_2{` zHfTormxL`Ygm6|&uY`Po#>JPE9bi|NHl&swi?!3rh(GWewlSn&+2ZNupva-`7UnA` z$^o7IL|^E;$Hj`CZ<`1iwBtWkhP0WD-UZ z`0jTp<>Bsf!|tPj*pZgYOlghJ)up_3BZ(egm)vV)v3bXvXb0T|e?fro{>7ygg0_X< z?6D90nV_K_t-bMgYH<~V!t#aK?rGG^mW%6SH|GY12xN{yh+-ub{Qet59OkBej`spn z?y7@}ALJY-?uHNgEu?N0KS?`(9IZQIeKrZAG$&5JJf1NuBr9d}jrtK74EgjvHB)k9 zpAR3O!#q>>Ly0MTt*S`oxw2Dv#S(|@^_C0twZIK2h8W{`2Ri0+&7MbX;Lm?f>b8Ly zZ`M8@tqyc1n)E$YkM#hzs7{Y4!-t#7?SHukm_kYQe0Ve4q$-U zpz2F{7{)&RLCe)AZRukfP8~(U#esL-&oH0V);i2sLHfUojrYB!Zkte!&Z)iz!3g_(%;@TBgKrI+ms`LH?2+5vi1gKhYol!d4LTs$0d(+ZN0WIg+a zKUDvt(fu6>_G%trtV4zw?1o7h$&}YQNd8Su$nj?BP}pB#GaQAE`c;bDf}Q4)=B*od zR*Qax6zJN2;ew>_h=;WhU;>HObq=JeJ}fWrqW;107(f|$&^_9q1v}vRlM!q#_jas~ z@FCrXX7rOjaVz&E>5`Lq<9yxSzX2(-GS%G@R%qsA4Mw9$yjq|^{E^U?c!o+7tND!E zB)+FaTC+m+c@OVqhN;%o(tl!jQk? z!HCODpBEw{OQ7CeMeV%j4KYuYavJ`EWas4O+1%)7mebk$T|{wA!-*5R24OC}Tka6j zx282r(JQ8{v;_o~mcNsOsX89c0Sqw7{QyyF`0b`<{gf@Va#~9@!QS z-fjb2xuQqfWIyqxyQ$7;g&jWex498d;%ud2N`*ivTKbxsX;ksUNQb)v>eH7HY9NLt7zZgE*oKCP~GFA%9uVi@$6Gf9AFli^G9^0G#)M$#dBVTLjB z`?or>>7q-;;Y$fU)OMC?c(P*$o&09iOdTczdvqwO`SEuaLst zrZc@vT-OPKZod;2%xdpyH1QiL`TaKA61TywIsD(Hwn@AN!-U8aG`9xb+P$*g(VmwM z*nV-1k>(w!#)z*bu7@W4ZRhPZ3%_3KPA-p7T+aa?DX{*n`c_Lf()VQb1TM;Z4SQ6; z%~098e)QUq^^=FE!ByAm=oavA|7Kl|n|nGuM(ZzF19E$xOnF#j{cBDmFXW<$C4b(K-M} zy6s#lh=xowrxY;Cb%Iq~=cB0d60G`t!glzmEA4!BkKSjHj*f-z$zwRm40?|L#3k$T+@4F*6bPsx*Tl( zCLPLY*LI=aPeevGdzW-7f~kAE=&pjropYbupm7zJpk+#% zr(D02=^DC5KVZFHZo9PVaI}D;diV3@xy)s}Kd}iqNk7+3U6=ibbyv>slmLxa5uc-TX**BaSO6Q#ieDzz)xZ69qemC?A$AE72%%QG10oV)AiM==X z&hPZpRZ2>s`QH5gukaU=+6sU_GYZ*wV7h)w`aaOs8j@+UFdnNVIKj4wW{TtO_Cl!x z*%p5*WX)4r7D1_h!f?|R|9V4BSXJz-K>nvUCY4HF0jfGwYVV^I77vA$u*IFl5!_F& zxc`c9xf)>BI7=SdZAg*ydkM0hoS!-W75c^;eY#1Wa1h@I=~Rv~Y+0J8j!TaBTFfV_ z8@UAuarbepGpLjK1J9yzD9@|+>(RKHiex?02La!?0j=&_5;76T64{@O>Z{Dh(@0WM z3sUujbB3IjE!(iqYsLi7(tuRlL;8QauZrVSXbueV9P+C31&KEQkj&2K+>(LXjCr1h z-9LOMJ&;<*W9>B&(c;C(8jsPlyL{$t-Fs<1ybOf4(W2+#V@srfy`f@*a;HJWVP22P z@{3&w{yV0NPm2=0|JZwHN1>3PTYrdtF|y9O*+1(oI_DH#Y`<5hga-7}`+qssP_pQp zn(%>MtKaW*yG0<*(HD?*)L<*nwMq&?dyN6XLwo=$7!7rR-0-a#OC1!8IgLm)dIZ#h z%N!_eWvaVK(z&(1`PUq6f$N05)y`Qv^EZ1;Ku%k=3f+{Kq#$@6$nf3(a@Wc@(2dw3 zYz1GY1LLc;o%fBcNkKOwr`ZtT^3)rQ;AmwE0<7|e96XXCcTJ)jBsHERfuA`S7{YN5 zfON>!!YK#n5|0R6@F>U#gxcDKnf(sZO`=|I8?$53n)zctNndJOah}oLA{}GDNQ!PA z`kp_rZKcL#A}~DF7sIRMP@v6iaWMwlzBU@0^hw!H%F_<;&CK707uEvihjz6`*&z7U z*X(XV^FS-Cn_ml-YDE$QEf@>01XFuzVx|{$hE#Pclr`XH5__%>X*E+5fMK@-okH$l z6@Q%8-8T3#1;md}vJq5Qw-%65TP-z~&1A9HZ*(?D9O-6(5fv|vmKgl54Q$!o+~Wb% zli;$46d&vQtSGf+`2Qd3+zXiituFb9Z>=|5Wl@Tt-RGW+uYKDdh{}u_cM05~?IMT7 zb^;gl8k^Cop0g05QRPzc zq=m03BHmXe2OKdW02#Z&Qxe{Ul~#=>*xxJ~*No3GaY9n4@*7NICJDJsPiX-6GY+`g z*!OAicJiZV20D!XJYP3;@$oDqS_tvC(jX3{0^%K~I1`3L-5)oR43*7fG3tZ~2YXCH z!h9*C_&S~5GI5ysgZ;(4B0E-icxKyrfRYt7XRcvDYJocs$=mD3!b**I`0MZZorU*Y zzUeR*Y;^ExUmE`SHz7M4ncp#C(RIr_0)w${1W8M_L%VArIH632=^y(!ir$5=!18fK z0($ihAlz5W5f||Ban4qo69TYlbk?>Bh~WEjnAhhdR+cMSC$ZV?`e$@5T}lB);NVuY znEW{}A|u9*O-(5aa?)UXb_bU$)9!>dfF_W+OmC-O7G9aSRCL~xhO=hQXtKrA+*UD0 z^$RNwRUXgyU6SU;F?Ym_28@fx$VrauXi!W(%Rf2w$6|K{GSxW90G{s#%u6R2V-Jh(tDz`AYjkMRM+0xy8r$RLz+A$vJsN6KEua@LH%tiC@CS z2b1xK7MHB5i*M<4)kQg0`*E%`!P&9%F#l9nsytc6AIF`GZ5&H}Nab~W1;CTJbuas` z(gca9IpTnLD9D58F|#rEpvu^fAR=KwTv?Yx^TVXeIq)|<&INLnU93~;z<){A&)Z&q zrFGG^5P0h?Y>_11M-kS|_T_AVL>zKx2wU}nn#4q4#h#+AMC*wwl`yW;PXfvtw*4dHwsS zCftK>C~3Pe^LhGE$a(RoBe;8gEGy)PQlYZzs&=b888TN_S zg|Vj13_kMW5^Y(gdQJHz$RDk)TKSx^mQ`STlO$qM>Q?7KAhWEj+l=ZbYL}ede?qrj zTxz_9H-OpGoh;$B90ab;O`d{X4t?6PICC8VSKI7hJIeInN@&D`xy0k4OTZI-mB%%4 zIX);6K8JCJsFzpwVIhuAqA$MKFGs~=Kib759Q?4N&N4&+XUCx&$Zi(+B+2alD*5wD5jyK_}PycR(8Y?K6soZA0^Z`u}M$phI zl!QP=)~*q^NxAuxu4q1B?$tXRMoJ}>)l$5f93Y4!PRE3g0zmBo%FwsePi>L@EAZlG z!*xS&D)Gym4^QvaS$nrH(X2^6Z&Vno34IoE+XoY|r5nG2bs2Cu;=Xu^o1f6<6HHwT z!D?@l7@Epi=~G|HoP*{X3=k2S9_&x}Lhbx{T6iplFHIkQ28=;_Ienp)Nki?&wa?vy z7;}K}BxF0f-L#)T!%?{5j@${r@BeiqbO2!}Ovx()og%@z~c zEMtx_rjbIRJYx9zI+6n|VtkxWWH0&@k!1!vFX%6bGh4d6N+XNkRZ%8u(0cPT_UaKy z(k&Um7Waud>pP_FxLy9m+tr5+8QIs|!gZ(X&+Nt~@%_GMkQiuNW=x)BBW)nRd9*_Yr2Wn;FB+f59$PR89h>SvqlyQCs){KDy!6vy}cZ<$1YclN}5>d+g- zW_=X`>tva5jmnaa{hZi8v4pm={IQ#shaAGH5BcFzmDLszW_BZGqmmg$RG}aluijx= z6Jo(VSaVvR10}_!lE^{urP4R{E44Q;%j7CC!LR$Wh_vUDjF0lu36?)h{q$ z+Il9gH~E^ve(_O~>!8r37^Vexqq;iA2iO~Cv#MD-D|*GCsjD=h&tZ1+zMRI;{JX-Z zbM6W>Sl9m^QH}dsLQU#!UyScKXYgEc= zbciMNSD5j%0^T6(1WWt-naDGF3@@3K1gjl4Bt=$vBpXv*&TTrkOQ(v+Mb0mb@0U3p zQ%z{-vCj)^X;{3@A{%XDJu7;J2Cw;xKT71f{b$gl!}2+O@Syg7#&v6%fDjk9uMoTj z^3J}5kwiC?$b<|*joJXmh!GV`z#}tt@0GOu!7t<;XLdYSnRz1f*yGKF zD{rz=aNU76)JMki7;0Z7_4WTWyn`hXlg&5LTWr6qen+KJ{4ajv89jJAmg!4Ve^OLD zPmWyckfkl}$MHY)|i-|nEx zwy*HJ0HQ?X<-^%M$u`M*)-zBKJ06Sjmz!HfsSyadGm(VU9-QUVV?HG@isF-WV2`Qe z{xFJ$Wp#*Pk^H$;qK&?1JkM;;*zP8YhT5@&aJQflBWol>_mx(dWv+b_=DcX$)fOWI zS}pHB$#V1o#xy@^YxSmTKlJ>Kpd{)ppx*HH{bPfw(e0oKp6T)gzFQmQ!f!K0)+-n|hP$4cSBkv}u?f=98ghJN{(+=th@WfQq4c6w1~~dD6(f4gNQ0;@yL7!* z|Gd{bF2<12pm~|^5krmFQqOoQcL%;>cx}h9g;7)kzAe|eV1%4UF_AaNKrcv)JDh`ZE#2;o(ItHvXWb(Vs;-n9_|%_zUIV5QY<%<)CoM; zVAa21s;Ll3NRczR*QCt}_(ftHL<`{qcWp|5&zE4mT-?8-U=UWz$SzDSh^c|*1RzF+ydWp$>OX`n6R4WF;XG< z@Sy|5w+TCL1yBg!_S7E)L#?XIz@A4s!zo_2dgp=9pwPz2f27a4JQ0U~?~rf%DYQ-+ zZCuvTb09dCGX%a}yS@?7Gh}$w77g_Y{8p23^PX*D$Wu{W`td>YS6tY18D~GVws25VvpxppcSqD zL&(l8Ho<8co$xBC1U-DGX@bqRe_kj0jebkkKFWf;$V8A@7i-^ZS?)Ow$Y zPy#Vc(b-9Dfgy`N@b2pun2h&j98UP{ms`-LHArpYhjLV>xvOO@R#>EC*~hOls$a?6 zW7n*nJBK{M>3p`P&depS=^IRiX5~c6t@~8tl``oVGktWA52Rv~5W~6oQ%-iaos8*^ zKZ@7HK66q(cuW+V9Rm#F*<#z;DVotmlU61mjmcI z#8sW%7+m<{isTEK>F&ViU}G0{(=omkTM|h*rt(Qx$dqnzR*D3|6+i19%U!dhEr#&N zG2fP7;Y-e0mCV;1_jbEKXD>hW+fCcNho(@S{WQ6y`T&r7`afxsqaQ@Fcqm4Ub(b;p zSdY;)ohZ!C|7hWYW*8rK*8n*H;p8KkD$hfu6Iisyw)4nE8@^+#{XuBR3zDpQYZ;|R zv^X%ppHt$5e)53r1bvn=`N+h1jUcvv*Vw1=%BmQiv3Lyn!1jjzgda`FF6p`@UhxX} ztVKvhdq_we6iURQ(6?af!;}6|Mx!fW0G7Ybi;Ko$Vl4dqGR14!(PF}|gY^9azM_Veslx}y z&Lmj1ei7q5Jd3`+>{0?qA>2YS4|qsZ1eSpC79}-e3x$7|T zZd{-}mMi?_ew$NjjIyG;k%BuluT9)q_PuN)g&3B(3U=5~9!m4v=;{>hs@osoHX8JxHSQLFp;H!e|NYt(_o}Vy(e35${lnQn|E=x57{0uhZ;V!1}t2K3D2L=m={)n##~AO27HK=9B)kjj>aAj8c=h z!Y-bMjVLYR9Rw?a23>E0iG-@w5b820Sbsa!C?yw5OJLB)!JB(($kW_N;E!uXTReV( z$A_vdGVA6g0A_)aLl?{8$S7%lt$2vyAh^|3mKl@273H>4f0xutU6Z|qaRh3-pX_`R zMwBDHBr#s|5R` zX%@JqviBo6R#o~^y%gM~_UUYDN8%m*>8O!day_8omhrt%FAyz9!O4JkNQ!F@)JqxC zq3-!g*1$^q$I)yMdYmDjhB&Pkg6z3dPnh4_CeH}7wN^zBJ}Upls}i6~5_mo2zD~#k zSYth~4G%2EVSGPNqiG;1GZZ8mRR=%~ghhw1jP7Dgn0A$O`;m?SZc88O*k1TYJR4<0 zuHco&W8#xtd~JDvg+h8<2Yf}pjg%z&)xMG_{eSQmiZ5pK7dY3U3!8LLX$3hH#Rh=@f<@sYzz}jTYLwcA5w}|)m%QHmp!K+ zl#<`IB}%mc{50XS-?7Fmv{n5^xV245kNNPS_K2Y89;09Ce#zj))l5QiYIkwCg3%qu zMu0-tlb-(h93xDNzD9FTY~nW(^yV@$(*Mj%zeF-zn+0CnZ#r}@jvlZmMo}%CO2l6N z9U?rCxbNBa&Ij;xdM9Qk;90R0DYFxAj|+gxM4>Y@R`0Hw_g;ADCxBwi59v+GT$f4$ z5dE90J*ev@tK;bT?Ga)hM2%_o7*C0DJZJ1Dqze4f(+K_*rGU0@fY(2tiaI7{xqL#{ zz4oDwgBItwyYDEMPqy~EgJz4&0p_m>tpUNjUca^oE0GajbWCpcelu63ZJGIa38WH|v5G$gJ_e4FvC9yg^eQ9_nH*w-ty*7(3m<@M(z6&Y`#HUs z?T)1;=M;PvcOjjo2cT4;gHXBLfoyw~fb18SXX3?6z6#aXgM$CEOn6xGtCqlz?IC7Q z!}Mon4Vkyk_SOru@s9Bqa^8xoJmrlOUG$Sm8Ge?Bt#vwwPcc-k%R*z1cq|(KAheQ6 zujyu|7`>}V)wvc;&011MEY+_;1)$Z08!5Bjl@rDX+^$k6SSMI+lr5jtwC+fS8!jEA`|@dq-rn8W{b~D0E%o8V_O%go%m!R2{$|+Vy1Dkpq{yg7 zFu#fR^V`E%GP&KPgQ@%jaJ`)1<#OZu813$8Z>T%xM^&1OcgpX|vv4GqbhCt6#nq7j z?epW+=En-UlPDX?)hJPW>xneuZqH}sq4jkLzfWGbAoE5 zZ))OAEptj&cRmMKf2KJdI*zrh)#h%0{W`C4rKaMd90DWOvr!KG;iWJZzYol1O{$ps~nsdHG-#Zq;?&W!3Brq;5XDJN`v1-phqu6Z# zxf>nAl0p@nU1OBxzQxxkv(%OD6Bs)6#)1h4i?KfN`urB~ClV$$Ac0T6ZSb z`Un@t9m1XU*Q}mn%|(pn?AX5gZPSw3UB)$#V@x&Gfwb?#f~~OqH(Af3^Q1Qq9$SzY zIE(16nmslN=x>l1ZU@y1M~RU6ONzH2A7;0_r6jpjZ87e!Ew zb|!9>9gU(z>H*U_yUG`rCtb2t3FO^pmsQ|}=gV)1m94w2{REr!(Bn|xEY>Z-WrX8#l@j~evI?I(<{);g%0Iw7T+-7%pUb^V_E z9kKkVUKrxp6RZ%2TK>g-cV)fe)?C46WH{f--`LK{Pl-%)g zK70tt8po7u*OjN?b^j;E%cG8QM)9M6#WP1voeR(PH?wbKUMG@XhdVxZ67b(P|5xyX zq4S?Ok!`Qx4$;{D^ZlB}Q%|uGk;^mNon36j#gc>1*9V=Zo!3+iIdUWiqCq#H^=@<* zumfGsM<#+4hw)}N{C0&}`MRzr*U`hP0P?i!0OE>RNCF>2!9f6|3&jLNW~Y;~yv}^! z>Tl;Gi@|D4f=G&1?@hRAe~dFnXvW@?cgdMEO3kcnfS1bzZR6Lh5X(kAT1!Q zFmDmX0fBJ^NZeM!w}o`ZgGupbGFT5V2T3gy?*nw#nRneItLO*jOY%7?RsS}pl{@`Q zx!mp?#H6ZTyH!`miX!&&v5QYBlnk^xibUo?u7%hGm`i*5GByiD^Wkr_fu-PTl5F<^ zE)GF{Q?6nVjH|Y5ZV`9Ov--t=tTqis&K2(LRwf0RbTw0xMaTr{pPuFLUmpX~m?Jo; z0u4}ofqyRhI%T%|ZBV-ut8fL^l;1ms9qgjZ#*g1<~xzl$oS{fL;?{N{j%ip~ zzO`gmJky5Xs2{o>aDjHI`WTmJ3epnQ(R0>?Jqjf0P~GEaTS5BF<96}-AYZ;0FJB^s zwTkVY7$cQc;-N_*;aT?y+8J-kTKKU-R*8K~q^pPD+6sD#n_$Zh`1KrM|J&;$!s1;0{7{UsW{?s*K=rr`@+)&V7tXn+f=%k-!MJwO`gNfkq56Q2PN)BLj`9g zDX)1bBiV8Aw!%;1JP&xMrP(tSs%em87~9|-XvxfKgf9gb_f@)RvxS>*IZ^JrnM^VX z4+N_AXNnysIe0+K17}_r-e3PBFr+k(LB{7CZ0Zj6=hmLXi(Uy%M21PQhaxS6zO z6mPoqf=|oqcQGbFPMP0oEn~0QHV@6n>X$8$T&_@%yvt$kw{!445(+a3LO`MZ@Xy^r z*~g*=@D+LAQ!(|d7&aWX7YM2`d_omP-lekHq)HaLY|YkfkNzj21SD}&VLx--@jIEu z*%Htlj<0ksEYhQKFoa-qk4goQvN6LqE=Q&|IB%z}!Im<2BGBDtF>TZ{^#;{WR|(!D z;g}mFQ-rRy$WfnwKD|p+wUoYq8CU)oija%|5rSWY&!A}LT03BePDwp)BMa8mnVoXB zaH?;{YKK6dTgQ2$D87v^^xU?R28^SH_=Q5vEP3~4X<4sgS=0Jq${|z;m(F z)081Vz?Qf$T2X?EA_OZj=hY%81%^zASU%!Tq{qAxz`FeNFj`YHBfhiTceQNer!i&D zeGq(dhpr3+VGk}vJ1}I(XJ6-MLY%bUEzLSw2qw&%w6d$QeNylZz?rAN&lr}0WmSel z1K>kUQj2B5QHm)a4oICIX?Xl3s^t){b#5oWunW$5eX{|0Nb3s*H@z6r{)AeVEWgB>Ase z^6DJrvZ+7qNut&nh!hQh(h0Aa`lCGanJ<2!N7WgXW3mW5kQ~v8h$zBNG=5Bi-*5Fs z#RsStE7V|J<=Kx#ZI5({VA>L=_(B)s@1t`}YtLpp|Aw2neDJ*m4Zg}#756!hC9Aql z+2$@KV9z}irw!-4wOLOCPC);1VSAfm$+yG-El$?BONe>kT{LYgh1t4+fz}Xp#%)Wc z-=i^N7{}PD7GxKM|7@{|IuL&{%e(VKwcc7ay@q~=2gMGp z7SiZ&ku07~g~=&BqZv%r>%}E2cADXeI^_NJZOB~^) zSK6Uj%}N2cM>HTD+IX7%t9ow!5)S6|MX7-(Lha zI-8wek0n|n5o7?iX4vIH6%bG+Gwu^LPvP&C zXHw{RV(ZI7jD#*M?IP;~zX8cKJ-l8m_uZyV{>Z5qF6lU;(#37fNdaED4-PyBNKXt7-)*y%q)NRf;=qPWB9uv8&g0F7GQy59BnV`RILixh* zZn?EkqD*6HTK08Ft%wnVabv&`&!BFlFNAcHYIFHp{;<+_--clUp|4HyaG>r^MxfRD zpXXwEg@0v5W#zA5t7pzYTs=WQ_+#`Q*{g=X%otDl$OMQRW*Qao_k)vvM?MeZHw|?( ziy>EJ&Je)I=8}K;frzD{Ly3OYdHG*k$NHHUP+MbAwW&Y3;tx3pYOQb##XRab_ulBb zyRNd421A23?{cnlJs=)cas2*7_qu}aSQ{-jPgIDw&Zs+hBQd6TyP%s&fxmjipk8dy zoM$KCy%9auXZYYjwR0sa&7w)FptcEnmY8#@M_t`V{u|ZeV$G=z(Mb*{QDy{bcLv$B z))s90QVLdXe=5t?!C!i7`GED0jo5J*Ma}Y2zDy9;IXZ4%Y7oE{icL{EypDTCsxQ0g zTP6N$g$DK;<08g4_URMpvbi;3ph}~R9@un#8cX$kJq9VS`&awdU;9D6 zXzvE>uEkx;$~ocZv(qPBqs?9`>JywtCBhn>C;>eF1EytHa7e<|Ic-rPoyh%%qS5P^ zc&36jivYi)TW};$It}cxRgVO!TaM>H_GJ+9i7}aR0~VJm>yGk&*#LxCDj8e~6W||} z6D^CeaP>M!SL3ILTt=(T^pYSZlQvp^EV%jb*}&RqS@r0)TfKv zL^+4bzB;}Rca3k=qIHBK$y{~v)2GNQxoUJIB!=jpIiX5u*TS&RR zXx6hZ%v6y6-!Aj8}mu%SP-EKu*l@!dHQ9ii!n9CZqA^+oNgD89IybFSSwbM;N>67$e zq6M-~+BVvjq+?njA*dWL{{YxZ;~VauiKg9sHLnXj7QbwGi5EcfCTzS|$?;=Co}YNb zp`z<#&nKnqnuH(*At+(WOzJ!t|~mgR(YdY!N=LP^h*O{xdyg< zr{M!q=p_Iu>G8BX5uc$w=>;7k&QMTN4(BW=F#sduhxHo{nW(U}+sSKTqo7@XQ~rL? z9qpG#%p<5xNYdeTK}B6AWp@8TKoYzW2*69D4X*`tMJk2To$P{`k=_Yy=xPtgAG_KN z@jZecBo`GdPBg~QecNCC_H+QPmVxFP$lE03Nh<1>*&c*AyjWYZ zU4$EpbMUl2V&))DOr3%H?0q{rs_@|3q9J$B@sgM_KjW5b+J?-jg*|tKjs-I8`hiJu z?7}s^yHU^U`JuSCQo})8) zATip!kO44b{9g$uQLkC_wLhSGV6Dq$6w-*;g*&hs&>8w`1F#YzFl|9i2GP(2n0@9e z@E%wybddW3SAW?|6jf=dv3JlN4G6`i(I7P@OOY|9J)KX_l;9VKlH z)-0EGV^^8{CjH@QIT#u#WD0S3RC55d%U={2DTIK5)%@ zSKVqU@9L<+#u#+VmjVH_#RIP^7^wHEN#XE+8Qtg}=_UJ{0!`VQz&RR^Vc(`_eL3%J zORtX{lrMzE^q=lO{pK4NwDK(KYy%W9YK+YavF@8y)^A%5?j`hWl ziubWsAY}wKFHXr!&4Z7F1DO&UgX(~v>Oog&wU^ijv-#+zlF8NU$5OSw|K}3m{b{Qd zKu>ONATiJZ5~6c!a0K>m^$WI93ZwOC&!HwYJY(itg7;RP_a-hZF?>>(@NC~T=UHSN zB}Ah@-0*XJ1Zu?heh6e4^tYz{>Aj1b730VW#m|!%rYrNbq|dA633#RT9-mzNjvtfB zqorrLfX-o(8h!}uK=gUI^h&q|e`msIa+nMs(}^B45WFBK=!u+&qk(C~PXAD&+Ydk$ za&!NcaKBqt^-UxdI)+#B=9=>Ckh3|!}xu~z{_dH7PP+6A{yC9 zF3z(oi0hvEh5a}amGJ)3-vq(i&$^4{l{^IFTSWEqknlWFj^ul}4=k!H&_mHuep%ee z?-nSR7^=W4??lXn*)uD?cvRyc?HzI59-j=#eBl7{Ma&^Em8-XDZKAmOW%Vu1WwY2x9?ae?{PC>UL9wNuP5cKT{QWy{$!g?IM)R@B zCw`vyg(H!03PYz&E}-AZfx!#y>Iq%R=3AG!mrio2J*u7TM6M{;1R~XGcQ@WYSEBvt zN*~W=kZ}mjA*%dgqZS9me*$ktg@*GU=Sw*yjtw+iVn=R#lHf1!Fdc#q&7$AD(6~!w zr`z5hcUOI1uoFhZ{4dz*`v^Ir0wNp?R|eB@H+>>wwj`F$f~Whash(5)?moxX?wL^Jmkda?z}It*S#rH{I?nMHAI)!F)c~*CziuSH?u3CS%z4bnmy1C$XOwFWF6W z>z-XCsNM_*Lge?6(*v)3pZ7iG`u<>5&SFZpzTN`EXdJoIjc{4)RpN4z_XszIN5%(A z$f8ikio#q(<=igltY9yLFkO~oR4I13%Q8`2;2F=QKmTJg!1dB9=@9XcabZZ6hM?~$6Q$0XPPA>$?yp$ z-pajl9Dh7y=ccyaQ714%47~UJr@VERFFOVCV||o^Zf*1ks6!sh$9kfB8_DtFob;uz zS6A6L-7%p~<5dqJWT+sKYT_~CLzfK@;=p*cYognHntyN2m$N26qH_&`ZVrG(wrtD` zm1WrL+C1dGxS~0eSV#`R8qCM+_h7Xb*5+V->a7s(BF*KLHe;8rH6xdnJEl4PPo7y;Y#tAo?KiG=Cxc z_>qWq9Ky9Os5uVQ$TR0iw0gSq+0E4NUb&98uGH2aP@+(jUL0}kFFk_4c>V9pJ;|hDuYa*ucb-BWc z_@|G}kuBPM-0}P7t-hk9mo`xXZ=cbG$gc z!a&B+286nM?{mi5;=x-Rn4JRkOy9tyKG;ow;r5KJNd>QM!5FCPR{#~CBB9z$c}wq61NU44`& zw=PNkUV9XC#{!7@M}JzNy$}gWKj$O;R#Pc)lKwsqA7ieIbfWx2g3o7xSc0T)zq``0 z+T9yS6k`SDfd@{xjM(~L7BBOu=YuIQZj%Xar2Mo$~O3 zAw%YT=SMb^0zfyDG02z#%}K3=U?>|q)|e#E4P~|Boc=GHNIx1gDpSmtRGdjx=ZZOU z=A+Yk7oWglJN*blN>75ovhoi$$J%`i(=2K0!axbW{VL{pssp zKtxbw83em^=9aistxdSyG^FV_R=+beoorFhnnHr){nd6J$65Rq4%M@o)}-1ADJ1$M zaWP#er;+fXWAlv>!t&}C3s?Bijxw?557f@EpjApn^~F=l)7fB8_V!Ca2q}YwHQTi9 zEbhq4=oq+}wo0>HYZllo7SluaP2win45c($MCb9fxY2drO@^G4$AtHGZJV|H!Rehiaf%3Lj(RF@Nr9wyHp5pe2!bwQ#LARs0Xamc2?abz-q3$kn%ixaR zN2a}*zMZFZjm4P|3OpXHld;JD;;-E;V%mCqK(HRc=XTLx+eM;p&YvYS)KmYbglZv|7n%Chn|?teBSc0r1oQH7%~5e|2+@qu%^_yz?#o6z;u4E)!X_sG_NiOF*({$9Y)>t3}Z*G2sMAi+IUwp0zWC9oT` zQ!}|r*k!%p*rL7gF}utl;C=~&ICLZoIuT!44Lk}#!5M(5Zm^BdGLUk^PTlOdHOdo) zKkbW!idx%!Swrt;drY}k=#BPrdlb5UbxfM+9Nz?7mGBeGH{QtgDsVd4+8f~c<0Ix}rlMb@~JuD3)!02&cOPDq&zVhay z=(6VSzwUoe+?6C^>**nDo6+4!0r5S981_i%p78ysLGbAyla)Ly7VjL2evvP~`C9%j z%44>>&fi+#&jRnfo&2PBpyaNc@(u}`X(*cZ#nFRLR(T&N$~D6o6#~x%e(PHVf1>0a zWTxVnBtJimvuLv?eSO}n9^{~Be%-Pyp1xC20D!(3iVgi{p?HW>hi^pYBjnIit+w-Q z_o!i&4-to4@sy=XI7@SFP?wp%hT5i27N54i@LJe+pg&L5`2P zY^DwAh~gH62i&g5gX?u0mg1#C-}S{OFq6dRDf%r}orIIy1#*wa@>~z&PMj>|;{&0^ z`dr4otlsXT+{84>!AG87MM#;BNWOiG@Y^_}?y3Wd`S&(Ozj*$*PD++ZwmJ8U*ITCB zpNlh$eZ9Nug%JwVI8qf!J|LRBC*Tn-p*v*)1+KULdxHc`RVfId1?Ry|q!#{;mA}{V zM1LBSYAGOYOZi-Z>#63mdp)Kniyu=YDT=JR!t6O~pW$DD|6)K;H=;Y8&Dg8BjiV zkXXoRX%mP1=aYj+!KQaueVb3+LTER^frK0c@frwc5PqoIqObtn*|O}>4A%4V2E zQ9EtbmrO`y`@HIo3c9g;8(}&Q2%KJ$94Xust66{~1tLD1PS*2j#p*c@++zABC)ED? zr715H=tu+e{W?F@6S99gV;Avv&y2e*>55&!Z5J0!Q+b}O{vuznTH(E$E5j>wDN#jc zc>}4z{#1)twJ*}h!w(;&sYqV4Kr#<6S%qZ`_4$Gc%lB67V)k8!7}qgdI?{6XN1Thb zDBdF3Y_sDA&fm(15s|%r(+0@NMuQ9Wf(w|dL6_qKk}~LrM4dzo?N^k+XJhVBUy1Iw zB6pMK6alc^Ei`R@9V3wg)~BG#P8OgV|46N$9C?R|J$jOIp5&o?s5Cg_VFkfoVB)rU zD2V|ffP&JL8%IA>TXiPUS#MuFe-8Qw4zK;(L8?gPpIc~lv#FV zs_!kAqJYit2M0J4=l+;nv6vrQl(BDd>)sOVW_Yp}4r|(z3u$dmKO{HALN?_d6$e*D zzMjCdI`OlC%^*D^WFH851=-qma#`c`-ugd$@g-!uB0;m;9fU?U#{JkY-GW?N0;iH&e`sZ;bPJy?H zdXbIVG<}|+EcyerF8f?Mt-vUUl%5T+~Dvx&js*Jo8XIcMTf$uj2}R-5=Z`bH($<4|t-jPP72Y$&22O!VW|6$UJy zXozqAHi5FI>?}~;vVC~X-q-~3$tm)0!cKT7AXT??@xuY_ESzcojud&a(C%F*)l27@ zXQUx{=gh-91yB7@zJz2(r|hdAyNfXTmh&%fJwmob1@yStrykm;b^@uuj1=0*n!=Q> z`x^?>FHb!BLNF)cFe>+uGOL0`*dvMy{0Q!IkNk(^JJ6ekZf&kL`rz9m{x7Xn@`MKo zv>A;N11r{&jEU#Jlmq>0w36)OK(Nt3j;P=Dlx{-`@C7uzBS6IvT?VVa%;Qcfm1bIJ8Ze*WdRg!FolU``kNFv-OJ z9%)9bd1s?=+CR$r6zR5SsUfCJoYQPHEBI!z=VjDN6aBk!z=Q3^T!D7N3}W@Yl01JJ zBYAkth(M*YTOl3G1cEsBXFpuh;v_yUCv^PrV_Vs}n6dAT1Hj_zNYcNF;e9WCN3FF# zC>Ocz$`$3l)fl(CtFxP;bQhV!jFcL%1w%=@N&6~mL<9XoANR^SeXO%z@wL&SP6(km zQZ^W#ovElk?rB-neMip|s(xT>d@D_Mp43{6)4%-oQZGdfSq5eV&DAH#+u-{?%nJIa zOEf$s=-SD-kbGKQR#KmI&evbL}=z z0uoF9d!1ADa`>T7Fp;+2t@Q^mz-EID64%#2zfMEFAJGAIqMJU@h7XqAMBL~UYGPi<>A+|a10uTIt8#3n4-C1QGx>QlO zo6B2STrtS4@(&U9he&JTsVkH6l10km4o3A9qoTL)1l^0p(eCav;~fM#wHE&FjW3l% zN8s=Ek3)((xZ}LnZ?_uIw!3V1;$ZO)qXz1aGd^89NZK{6&Wy^QC3#_EZ!5X$TWwFe z_6$485u`sKXCJfg>K-o4>qSz94(X3^0B(^eF6sEpA6ZSf=@)5L7dR}R15k37Ov0_o z*ZyB*g2ET_sP6){*nd#f?>!+|^ZANE14Lq3@t-4+390Do*omsw04$YpsiLw1F@rx% zmy?jlFscNKC2%A_Z0D_VG)ZgqF0vgRkgV=1_dk3%oH!lcy3!H-toyp7{Q|4Ug5S1GK;Xk@$nCEBFh|tZ+gze|IP*Cf6gxZpfgv)I|Ab%eSf+RQK6Zmxat5MEU zTFX|%=>fGeXb;Z}LPhHa)=&5vKKS)3GwGo`t`8u_H|d*9GdTfrm1S~6T(yqTOlH(_ z{{%1^Fc~7m!v`^7+v#1@y2v{|(1K%#{f9j1V)8rNBv*zfWMw z<+0wpDa0)Z#Nd2Sb4EnAr#17H$H-&Z-xGXz%vip7VZk_VgTaB=k}ZHq8jITea1PyL;qw*0BmQA|}%cZwD3iDo51m zzh$@z5>YrWBF2Wm96Ee0vg97Xc^8)+A8rh%WO+Y}`_Fn1GzplmAyoO#tx}j7yE`73 z4)K|(dBL(blPTJwuk5)4EUrIQ-zutM5}935Eqv4~`KEc>`el;c=6A8&L0MrZD3R~Y z8FLp3!WbABj4yPChr_M~APq=eA6dpPxw&6H-V?Y3NZM_`>n!~r)z1_88b_?k!_7M|!bO&; zRsRZP|4FGh2!56{V)JG5`xmY~dAeV|bv47iggw3V6Zv24qc|e3trh=Vzzp?m>rY zT_y2jk1qLWBoz-=n8U(m?EAF~<|Yo6im!FS!94z&235)p$u_IqY+&U=LBYq~1K*BC zZBGY&d;J(Q2;bgOfSug^5Js<^p3gbZ2LKB6cRd?Y5*Pn0@@2V14>+gy@Cm>HwEj6qaey6llA{|w3m?q@K-kq)h4VbE#DJNxt(nA zm#08~}Ze{bFYJ=$-|y z?y2+51e1?FUIhbfNQm%$L@qgZ@&r2Y@?zr$wLBry%4!}p%s?pgz*k&R8+!~UD)&Z7 zN)FUl-+FCnB&cyqe|-J5RZvfhZ}VeqzFP-!mbK7pz5Vq7yx83wVBBpHuhOZZZDrey z;FJ{X$d;4oTWGSL+H>D zc&Dbv2w-ueTZv(}n=N6)glX9aj%e7i@-GDB1;e&EaWoe4+???dc4dx{g(NXc5pSdqyg+;J4*dy@2scYxfRhZmlEgCkvEottMMHuC68!yRa_4p z8heiXCB#Fg&0uqgFUVbdAjcUS6!?@RWC30Nne-9J3p4WG$6i)-Orv#rkv?pG?WsM| zSKEk~p@9WC{R}jXU1a^I?*?}(P>kQ+S%2{N)3F zpMin8?Do!nwfVc^{JMuD4)afSA`HavtnS`RnzB}KvJeegNt_mbgB6{d3Q{1mNcONV zl)Qh`_vV{ItrB@zJp?3Orb{DsD=zLmzJa*@BZ$cSNJN2?QyDO8>;wb}gG(5;K5F;t zh_M3B(<^=Lm^fZnOWFNfn*MP7hkd*DyZ@YS{V8Q%=`+HOiJA95`GY=BrzaBER8=}x z;G-BR^%1DIr3erdDn8YkV4;5DuQ3niiV9HvD9tLmJ29bZ)AwwH4-xqkzY~lrqv|3k zL{q&mtE)L3`pfPND0qE|u)2Q@C-;=$13&t9FZ59tiP@5PU5jQ5XyUJ%Q z^nO#&(T?|L5I&PRg!EHdi+o?zenJMRyV`?f3;A)A%v+3YwSbkTH}F$7*w}&fcUyZS z>Zpc8>QSx9XRAo!33?3)JO^HZUVziKSUzpN>zw|;oOVm?K^?6nOJ=ElyaeCok92@4 z3xH?r$K0HqsyxI{bJW29q`+=BJh*H7dTkOQ+)~}naJ~ced5N=1T&X(mkxaG(*5s0X zde&eSMrb`aMjUUxt$zDB1Q|ckaGH94y2137%59uBoN~dmjK+_wJa6yfhI@K4!vI!A zrT0G{kbUL*2YM3*!COp=_PT~y&1KV|6XB3a;M34|H_#3G*r5#z6fa`cV@r_avBg~s zZ9)oWd5}6p&q`UEjv+3)O%P)LRu$qa|CWDhh8C_iOcEkP0)w6v zD3|3U*f#2U2kHr#%Wh5T@yS{{^gbw9DbJ+(E6Q4!aMhso#E(lG&+IO=T~yHLy}92Tt3r9B|S=WR2`i^ zWjjxpf0iD2K{yMScNZHe-I&H9poNu2DXD*i%I>tTM-V5J$pd?ubv2xq9# zQZu`P)f7$oGA5BD;m!kz``$0QQpk<#&#hS3#i#QgHn}>msEg@wxX#9kU~ON-4uw#5TCOPg zu)%BD-(hZ2f%VjJ`AT7BJ@F-lYf*~c5AN*EboqMHYR5wfi#~=;;Me|sJ<5@-7qfRaU1M;DyZcY6kT$3r6?rsr+37KgMIj`s^MxNGd?dll z^-fW|f~v2L?y|zes6rwh4ZQ@PLwAR*V&i2Q+~$*~M3Ayir>S9VP^YXP>Q+*$d{IWV z=R*jh%7@&M4EcCZOV)m*Gc}zCq9XZ%wAeAx!E!?{wEtX`I1EL}rA$>cS0h;4PAUh^09JjlRAj3{(eUyEt}@V#mcE4Hvn zke2AqE?>C}f-K-cL*iR6SNcJ{Up17!-cl}0XO!dYJfvGL!W%C+Ld(Ri4xyOa-8uhO z`~Tp-seH|0f%Bqp%%HF-rCX>CjgKk$E+exXGP9TUOR#YrLhURbBQB15LtNO!aCQwD z6O$6-vX}gKYk7F*EnHvR=44oW~ z{z(-k#Dtpsp|9mT2C1aNMvbD1oAEVVUU`K7N;2>SNUux*+`HFY`YRuC(2K>v>qXu@ z`(jJX>N{^gU(*R%`}7(K3LY37g7X3s<9ae^cf*qcwaC6HzHrUjQlC>2FVrr21b@7K+CknO98;(zGUc>Z4{)S_(2y&x5 ziX9idTgzHNw38QcQddFWm{t^?Fqzh6VHuYJL5M@MYr)=_R;INZ`43`l9{PV#;NVeb(etN+ObVPqF-% zm0I?q{7zLnF@rByepG#OtK*)n?f|D9>`v=DX6BmE^}z3tf7`XyY&}Vosi18c?|}k4 zzbsZ==Cbg08$FTBF-EhUqeKozw2EnleSr=AoLQWd2MX}&lk^JUn_y)xtgv1v^5oIU3c^b0S6l`f15mn!3Ib~b&t zfPRsnpPW#q_5R7kcZTg=s$+ix@2vS`4B-f7S>56FwG_A=@~dQBuHfi#q@hJ2!RLSr zRUOHCdweZ&+Qu4vCZ6ApEAEW?8PwOLL1V9he*}alz8lMT;duQsBdH#PUcYY<9wF7X zn-O?KnjA`}vvP1|6QYBjmKHl^-#;;Uek}>vWrhIW23JnDvv_l%vAK@UhxcBoZCjtD ztN22TfA9rvP@4Q1Upu|Uxl3YnG7MJObS~_kgDTs-aPmLnHrWh|MP-MrPLYa%h`l6F7ye~4PfD(!alff3aRI#7~kki%S(2b^BqNbCr zy45laz3!M8D}>^VL9Pt?Sbl;`PmTh1?O5|+xQ-|ivo#gYck5fz>Z8%Qf`$JSTp4#} zp)~U}WPd+Q{O=Q@G4v4P9BDkYER2-T7U&NVu8m1nQY=Rf& zf!=O^+HakiS}0kz2sqOdWbym5+qWUEI>X9zIrqI#gYnREznDmNq5S2IkGcP zMp(DDWuBJaoxv)FKjw{!QwU4|70#jsV(evim79H03=&05@d|9!P2CxXJ{B1zFW-#$ z4-$rT-C~G?UdHlvL)v!Nb8)0-%PQxPPIBj^Kuaz50#m=Czj}ikngt_Cqp`225%L9= zsW(}>64fE3A9=*SgB+?kPf_v>0UmZc6c_u*C!#s?>*!U|;eYNA_RmUO4#2o8j5v{c z0wr8qGBC>D!mB9CO~W98H59`FKXy&k%Z~gd-}-}=Bb=$rafdr6 z$26M(U%xE7N9Ap|M$bK|6s13#1!RK0 z{V`94U``4*}G=zhkAOB$A7jgW2L8#6#`E{r;GaCYJ;%o%M?vt7Oa0xw=sFi+Vf8z4t#&(z0 zdf_q>i51*G`ECquQBkUU4~0g`fA_VZgV~KE?mmM>9p_v%E*Wo3&A7J0HYzMS&tzEz zHcHq-UJE>i@U6;S^!WNUgu#r?vPYcD3n~?A6qr)1yE&8yq)W_icJsc^-?W*x9DFnI zGn&36aH{`WMN{0fMUxuf(I{z;uv4|!Fao^B2}qWvCFcV{9%7udy_vXM};51 zTjuE{^A4~tRC)3YZczOFS&XVGdt;AtoPyNP2|T&L_Qu~KEP9@;hP=oTFZ-m%M6>mG z%0EdT@~i?&X>ThcMqC%cc9c}RwYNTu_L@}Bk6Cb)B-g8Ge>6^)Lh_<+6+}_8yOYKf zm)g4l^SxbyAo%hrUl3T^;k**eL%w~(stvxw+(WCNsF`nAl?Kufb?=0+(k=5#rY9}x z%bsr{VfsRYQq}<{3O1TXdS_~(DI`K5y_Gn#*YYo&m9s1EaPf~)PqXPno-@dTUTOep zCR;0X$M1kz@C2yLL~8(v#ZY{}rnZLzTv^OyJ7&1-GWM8ZTy@4bN&B2)Thj1|TT)ii zYm=M4O>&uFVj*H&a{p#xPvR| zm%8L5>Ej?H!M7cUe`t_Q-f9%mD%EIEg0+@M zJWC5ALR|~KjfOPbvn6W5SCkuXJyl6)wv9EVy0eHL9QDU%qVZ_nwzr>YVpboXD0ryj zN|=4;QzTFSF_%$EuFB@(bf4%TkMHR6+*6RETWf;YpuTW1J|2I>z32N{i1+91vP}(bax##@f1S)5^Yw4@Z@uxeB)lsb0MHg*D$s9Cx z=7JMRf=@~n_)ZMw+EcR}rm4d4Cb(;e?x;@HqclUmG2k zNZ9(;BZUgfJs*|*rER-Em-=nZNqVRQ_x`!3=Vp8<%9Vi9HQ;=oeEAA|*45n9o58=8 z$s3yQ##j3;b@(^oG;;D9%;(mD;kJYegk~&**hXj-?{Ir?5K&}DK@ht8E?Q1rGSsry zdM)4eusG1I%+W#P;qwBGSuAtg(G4#+L$jcedaQ&wF?Bh&02!KGS6|e5vEx@Th8{+P-BwzfW(rMS z0NC>P)98n%=6HIOnxhOkC!*vvr~DW>gQl3q`r;LHWr))h*xsX2udv;U{U#ZIkD?JoFZ{h{U_d?bPkTtAQ9-zG|6&QMS8E--yJDLO? zuFYiA6Cbk#;$ysaoX)tqa9D$zNBG<91te@PH$%c-040>6y~0DcM;@*fc3!qv_2Wx# zbWlo{^)-2D&k16Xa_x9Cnp#E~E`3EQ!@^ z7-)0NU$Un?e@T9DWPeovdMlB8kjN|hiyc(5+TWvBt{FgPW714wJi@*>tO#r-Qt>P< zvWR1L->B|#_r2(A>eyTFxo>vV%K?!Stuyw(#Wro?PG=RwsTnZiFb`4*Z9rbhRQ`R_r=hQ}#(-%iYzX zkyNWD(1_WQ#`lF&Zj7gQEyPA%^)tN9{?1-n{JcqCWtHqAC7aX(XACor4Z{hVOpNnB z`C7Gjkh62d@#Td0W?uWfno<*20dWoc8W2%f z?W2KzEZh3r7yj|83gG?yqdRswbRsO~&={$KAXkRc9f=)@z%`qv1?fBV$R2IIN^+j~ z{u=`x1<&+sL1K`!Rz{4+lH*F#Fq8&`u&OhC&tf+Lit@iZsL6UtH{xh}g~=bf?SMyJ zPHuyjG@*vICp1VwwA{CA9ZxgRi!8F&(VLu_tIm#;L7Tih!En93zrNv(!++4pE3B*jqb<*X;24_WjSc$!Boq6Y)W5(14~X@AXN^ay~c^ zeK~>@|I4!vnUVj!&%hcd&!b3up=h}EYwIH3NHawaZJ*rDly{3ANg@?HEeXEgDg8t< z;O!$uChcE@4QYCX5GdX7k2Zp-&28*L@XyFRiq-Zy>TkIJM#OuQGL#NIxO=z+d$it< zBU71(>&R6p?i_@5BeKb!w)-k9o7#<0T8ul z3ka^q=Tckz!^iH&uTn1Or})oJsZ)Ikkj9t7+K^~7lMq?vp!}JJIk3M*;EX_?E`=a@ z496ei8pW&Y>|{u;zaxa@KNMdr3aAiQc+`Sp)(Ttiu){RJqt5w7Ff-FjYCS*Je9<+* zKaiC{m)z&lR4&og6_tpBhDtcsEyj+PT*ZSMzK(^VZYz%H%ru^%g=1IkBj3TCYj#c^ zYET;I-0`ke+*N(?Q1%jB#4V`kv&SxHnsf@n053U}|$vCc_&&^57N172X14YtUz4l`$e29u%mrcQm^ z9Y0PeB(K+CbLcSRThx?MH3#MA3SGTtsi^(WM_xl+d%cy2!9a>y8^msZ*S!;X2SXr; z^Lkv8GKV7RrHn-)ybZRBmd<%U-AIdkJUy-aD=MMr_`_V7$)I3@o_SJD_7Zk5^SbeQ z+zzjdjB7x)jm>{eOwe#uK5N&98eL!O-}H-r#k(Hr(7+qrY%3w9kBYyTA_1olzHfh- zAnef7Lb=uneZJZ&eGT$QM!h&~Rn%FL4oNniS(eLU#63i%pX}JhdctRVa6b)|{kGdW zGTacXhXOvu)e$~!Tq(D8UKX>Wc6zft#nDh5hU-VUac>=-RdTd0BIkM%?=LBmrtOB7 z6SU)W3gNl+^1r^sa^-AS2Bi4pF?dT=J@w(%sC`ePajoP9WWc+#!b%>$b-P&w(@9Yw zDKeskRajo8zqvQG`D>b~re5QPMj;YZM1&wjeeB0}BxEDgU)?>%%Y_d5#`7H)-G7)q zwi74;`r$GzOQxL}I8!%vlhW>ydv*Me9fA95bv|wvwR;v}ae4Fdt&drtj!_{ko1Hxp zZhx*G86{o3(e*Di`K(G5ObI^iZ55J!86Yh80PDHGo>eo-*I6=KEGbUqUc=B?uA7U) zVrC(IpAFyMHZ1?WtzKQrEg4x%O-S~0Y;>l!CeIbnhAWG5b=pnxddr@74*zR#ezOIaFY=X zSEv2uqm06c=(L6Nv+!6MZll+>`A8>yaxLeLupuk$0aoyCF0Xm0()*!WkLPnf-ANV_ z3dh)+rI~wFE|WCY?sMfbhx2=}NyA+dvNn5!LR3j2Kyf5+-4E}i4P-fU!YakL-7#M}LfLn-_4a}fI+z^y*cos8O9 zmeEoJOhmg$SWPN2J-`AN3KMI%cP_yemmNVP`G1Sc3)}6c4E0PMB=dg0A=?4SJVtRYRL?(7$ZM#5w#8LY3y(dq?lo`PH zV^lW1hijAmw+jI7zyU$=3LJn|LH8rKLw0NjBpuD1u*bB{eJ`)7t-ddccP9(z{jlA< zt@WBoq0b5wYReLPiu1H%sLx2lI~6i{A8AXJ_f$!js06m_md%g!0(led|f!hZD z<_+VlIuPO&0XtB<<4QFJnUZn*cW(7Ocz#SOG9f8zYs&m8IL)6vMp6t`0Mh(BSP`dL zBySEP@)*#75vu#66y#f{B`NZ8?a3uSm&0LolXUErwSDz-vGuu9JnpwBd^wQU@lW0<-AppEiXvo_f0XK zp@{hpPLQ`*$2r3*Wx?ijrv48=mf}UJr#}fL9}fxKjhA3Josq=sz@na|M`~D_XH^j4 zb(8Bin8A}wpR)>Om99Ku8!;7h5dB&{?Dz7>sC6;Z1g|Rl5tf)DNr)V58V}VQe4%oW zrTvxL3s5p&!@rn``$r5-j2%HKN(d-<%RHOkG11tvIL-6eW(>X7(JtaMQdDu|GC&y3 zOXp;p!pL3GA3S#>Olt*fHdBNY+glSkHk(f)m8w|U>%Lqe3=RRGzW94s{bx|H3=Du5 zfeAZqI63fU0I=)Qc?b}9EzIrIIHrGbXX3MkFE1ZlIp!bFfdbpo@M3T)!AP^&Oe)pk z2{%JHFt0HH@4^1N@cQ%L-I3sH&&QJPoFGfk$I9lqtjDMWE4r{JgZ0l&Tj9|8eQpTf zmIz+YgazSUZhSxm zTsUP>JrPfsQVOl`bXl{0z@_>zYAMHejWSbjUY37Dc*muctaE#ZSzeIgS zTm>H1z31V;BuSMLN}!n0CpKBryArufZ@g9bn2)`Z)&Ij_?$2j>tq>-%iRa5sU6*jL zwLolQMg#o~?=k42cv)B#C+r2dp5|@uBphgYrSf(LhoB#Jxoh{I65WwkkjE^iU^})u zL~;wGyNLl{5VQ3((x+!_oVO{s>1$p%Rtb2OO^>$S@WQXIg~P?~_g)<6^4@q0k$@2F z`5M*>xr8+@`otAdfp2t)`FJlcnLx)dv!NiH9MB-lI@`ts&Nn%?1sxxx{Lc11@ zGT;H68mFQ-{tdD+K>3F!UmU#dX1y?d8_WT<+R=>+1^fiAmc-@_4sP^tiQ0|Om-#Yg zcgSN>+R=(IINIT5V5n<_xLnwWBTnizOiZSN3fDz)dKa^w%;9wr+bL^mQcib~e+6TK z%!SN0YAwhkSK3pr(L;6YG~%WmUU0hc&)$>24OEPVg+GqiHiZm>3X4|O(*^DHBFw*z zJowe+8~Q2qqk!ATh0i7TmV+F!`V5OO0WWZPrbmuY~)usDf_^o+FYdwTf>fYz5c3R?L&e@E7W@J zx+$>fVi|Eq!{U0Bb)aCC>yMnzE-U$(h-qlZ=W*$j%|nA{)-ILQt=ly+EWIKm=u>)i zsAO%CGTsJ+7spOvlGR!ds0+8C;(DBJ%5wkYceFd^SdCtn-%2+VvC7mf3|H0Vv`wm; zW*+yV=`(&B41s1Tk~GfP{m}e{`yi4VZUG-&L)EirrTd$lF)_BfzMy-|G^e-l)pdN_ zj(fdG^3mk&7H=(l`F;5yCspVEG7(EvO(mZZ<)DEExPX--Wc_#UmOtID`~YP2U-Eul zw=5DuI7__Ec9#{~Ee?1A$8G3Dns6DJB2L$*lDr`RNsMM!|Jfl5!r3xdB7X$dAY##t zgh+PjwwMDWESJy2>b={_f|Dj)x=8dSMM+7tc(8 zZOa7fI()ZylwW+rt4Ji(GrSQx!nf31EkQo#RAh$>ya>QMe&1U1(sd*c$R{IhLHc0w z9CTk|Y(bCEv*DWu*CpiNm34&B@8yk7G=6+LObi1P1B3u>`1k^Mos@cM)PhtZ`$N!t z%IQ8hr%sPxJGD(KtKo@Vz_jgmGKAT4{HamMv5i#56HJ~`X;(gwe7+_TY&ydab&`@(qPl1eWJkUC9S;0od*poNPEB?i|KiHyI=)ZD=MY5g{!@`=o`^)A@qhM6$TgkX;tY{B z8T>Ur^nBnM@_1kz4WN2LR-jSJZ;wpm5qeocHCE&}VH$mMmJ)gl;*XvES|CRj%+(}Y zJ65gO!a7)M=a_ioLt&m&;OlxDI03R#>z&7|kIhA%JVfB&3&^dRs1^Q_(>7X5&Uhhi zGs}E~d&tOU1IC-xo8m#D8~zpr^;$XiSMiZ~29iz=D!&A3VpEUW*;r<_PEYqRKpg{E zSTf$%E9>*Y1F=ip*L>8?5A*lq5`TQEohIRY3YG zMMv-BXp=C4`Rz}i9sk#F&LU~Q?$|0%)Z||?=3#}lkmy(yskUuqAT%l34SP<2m2cV+ zw-$m(zE}P{F?DkIZ(dTT)BXko_ie8Oi0Ayf7r#9Q6{^*L+eKK9?~Dg=poA&P7}NJF zNEe`X@1BY{ZHQxeGv7QBe_v<}#?TL5b%4=&TnQ6b}Md*ZdpAd0D7&KT5rJ92y4a9408Ucrk$el*1(wRAsU4FQm zd%4TOLEaG-(AYF|J=`%#Y;iix32UD-<6SlhH56N5&MIqz` z0e@)y=4U4+KU3r*AGv9UrnCmiqw>NqM&rZBL)W%Q7&kPvuprcIvDAv!e= zf?9J7!9R49Hc)={u1d%X`|)l@ZGpNTVYFgGn2EojYKs~&kFnp}dPgN9&s%b3L7kaw z!JT%}&@tz742`0AgvGQxDpTG0k^-{~@`(@q!xAUa!A#|c7iRLQf1Hzgw3{UHao{o8 zVAtT6un&?G=0Ti%EWK`4QU{JnVk{J#u4jAtn(6TTb*)!-?B?_C9d~ZY@{5#4+==km z6PxSlq*JSVQrG%mJLvu3wT)`ig-q!AcjM!c^m~yJR zii7oDz~EP3OSlAWVjr`t(i-T1@M(-BB&F(6RMKet8{J$4gZ%k@-?Ytb0)X;7PySZ2 z&}s)!?s1+0_5Srhqh#-LHeBzyT&7!8#`n3lHz!hsstr6nCH6!I!7Bgopk3*^q@IKWk{eMoXdRYw!l>K->*y z%T1h%D$K@c>4a9kI(X7(z6E)>;5dUZ?$o@`Y(v(pwLu3ejo(Xh`;aOJ7Us~stsDH( zrAM0Q{wD{`{DzyEx+<$#UjXP%dhW$*a_t%=f+%*eL?0lq*%zc%X>|GrBE zwERrun%|%Q_*mwOa<}X;SHR-Tsb%8g`k67Zz5kS}#D1PLS??;QmSx!1Wu#7yNJk>w zmKg`vs&rr4$T95w7v%PUXRd#)q73O-Cyz8qUidpL_ZaQ0tE@soh47cmCyqXfe=!r&v@embH*&;MTEF{Tbw!ub!|eTVu2GhB6A3I-^X9p+(-0qcrxpa0R@jk5+F ztdAy`bu$w=1;NpKMnLc1sT+35C0IO=4KkiH_{t+*=jkHs`oy*tHWV3_<-ix?WEKC+ zw(K&ppUn@E(aS%A*oU!9rnCwlGjmsXr3k%#5^Py~f<=ah>XP}HfA){FJUAL>Et#|D z;54t#GyE{;nEGnqF*RqcJoCE8_#yu`C&K*51Z#IXgacVi5j=pifpauOVg|=)(!|Gp zX8noUXmVKlDY@hrCK3f13tsPpC+ADXi6A%^#)8BWTM1gL;e*|0m0;e_1UfD2P3ttY(5goQ(WsT-)wd?D_A#JlMWJ8(TA)CuBs3{~a6g=K4Dt z&Eo+E9&`QEsC(zaqPo_m_S=1A_EeiH<6=1?bDjsF-gUS1@IMilYfROZaz_>2I!aL;{c19_ zt%QA5#{9%y=JLCBmowLt)wTW!vkX8U8dsLSGZXrNgeLa5C5s#$3OI=`m*6iZjWDjRlmD>tcU*= z*L&JO3(&Yv{kzGk%RY&ft2(7U!=hCjq#F#Mz*{n8*CxqpR_x6^6J z2n!62`S}3Xu)*-Xs&DJj%fiVmvEQbrCmeL`k)3|ZiM;+gKKsTA4`clIOOfEJFCScB zi>I#)40vRW$$`cg40HOkbzUC6J68Xd)pzIcoa6e3x8wRRKe|hU;Jw<3sY42MCUhSh zI0B>)4HQ}J>1hN8R|BjKGREBu8rrt@{lXo7!M34q(v0yBmN5@F(KDvq+gA@K5B&3G zKpHw8#OnXYS3UNPrTTK7*y`wM^uz%6p1-ntd+@}Bp1)wo{1=~p!BACr-kw+Bc?F(V z;CThU>niZm`hww``huaK{OZog&5_9qdV{QATFKoW&D{3&jF}fb++h8B2^*RqJQ42O z6n7)J&Q`NQq&bQyWedcd}`S!p37r%S^#+UUJg#hwujTGGc3l-NvxgG(y0+T=E z6(eIA`-Omx=$e-_miS4U4lgQyB*mZxIV6M~P@6@S5Ow=0r=5B_Y&?OD}xvov;M7IE=da3nh-MKW~vf(dW`8(HQy2 zFLU`NUi}mI@{cEqgVI50o7LM z%fhbuk+2$_%b&ab@Bi)Z&H76~Z9tkp!^z(ztLuS~ThD)s>=Q4Ce|z1A@4fyTYtH-iAK!HL zuTA0Y6t~w}x;B$H1~g90u0O88c->vK)M4_cuFZd-63qJ3W2Y#rTZ*an2#L{a45wuN zu$}zR_VD`k{P#MV|KP0;mIOQe(8zbV?dr%sznqj;%MLC~&hy`fJAadogTM42{^;#b z{F&^LU-_la-G1%A`Fxz)uRtP)KOe}Qa4b$B{-qRqD1qYH_Iyd;S?7P=tOXbjj~-h8 zfpq_QIcwq*bCQtklfU?5`p`Eo0dKee{y+ZA?Kgk*D=QC&$NF*pYg6P}G34Gm8ngek zFfcxT?L~jF@HPDF(iCI;W-s@lIxo(dj~A zPzKa-*=Up)B{8RRQEZeo`E%Wy`~PO$&W`KfL(bvGIsO=SEgY+bA$2@~=6c0>NYlxi zFHJf)aYek3wu~Hdw;>Yv$(;YTL#%jlK#oapVyo%Uf&bngef9RQ{F^^uZk{Ln*Z{*C3l#-$bN$I!Vj zmaQX_-?jgQ1wNtJ)2gH7zW|4U>tJPoetI)Sy!h|dzx#jLiX+y;C%hen zCRN2h>m?w(F_^))?%I;A^K$)#&qhnKGWP$RPsk<`*Fz1?Hr%KIzpq!Hf4cti>zaeL z#mImCqu^WS6)d2q}?ZpZvQfX|*?ZhPG+~ZkKAmPA@=d1Rn&il`^vGpF7J(PjX zK+fSHU@OK5!r~koki$Q5IJ2w+Ig)=(a*YxP4WSN>w^KxFcB6woCrJnhi6e!Letd!E z{_iKzf`zYf*iiOhL@{Y0rLk}P*U==0-ozrf-+xvRlv=~^^;dKDed~|XJVv4%0}VVJ z4l4w-f7Li2z8Iqtc>QfvHuny5#EfZOD#Xrz{A8ZQR{r4iK*|>kUwrAs+iUZe3qSD2 zOZuYW3;vHMUhsco4^TO|?&EFF|13($r1K^MuDtADhXi1#eU3<031GT`Sp*{}VL%IF-^s9Dbz#_=$_A!0gZT~c5tGc)!dWIop%*XeV{>eltg7$`?LDO`fAEU2D(zSW*M zZ->&*!|lyRFOmo}v9}d_1p7Q?-&W@5|1!<_Ukp8M0$a&QStgk<;XR{s-$<| za6&t?T_nPd!8kT*L~D7Z%k?thna*)}^sWboDFoH_2MT%LOG2BkWT0qFcXSqSUHQs* zXvRmFe0>pBUnAO12d=|=|JT=1n>&B;qvO=6A?M42R9!yi&{*hEc>T3sVw&^M;{t(Q z_7gQK9+EW9+kO5^X3&r{^ah6GY_#C;FB9VL^Iar{TLXas={X|mIf?OV)UFc-b-wrC z)(>v*UVjxT`vCv3$-dHfbcBQn=iKJ1U36id9VO6YkZdk?iV!{nIILhY!h!O%M&mFB zWs^yPRn7;BM*tIk*L%1Y=nyNspwEZ>!)I4`mA`ZUd5;X9g~QiGDZ|8U8P6Z9#zNEFFvF9Vc9$G#2YPRwc(%D(lj|{-FM9a-q*j} z_quSV{;?9mVCpe0<#*M#aX6&J2)ugNMgr$(p+}H91s?_+KM{w?))tIa>1H=fJepnB zc9`p8#Uhf!Yg|jheS_1w_rKzMT@H65V(lu2Abjyp(q|5K;6tKsPKZ2~*sl|O-7Xi} z;M+fx8>qIdZP)m|2US@a$I@=Dx@d-x_$(NVuOkQ|y`KNQ*vg0PHt$@-?Yx=A4@|;M z!Mk1nS&=Y+tp8Yrf5z^1{f))Rr6JI{LBMM9lhyE1{+)}pM(EI04{oV6Xb$FaDZ2lP zJ^Rg9X}PfPedDT&hs1eAvf>AwmW+b&F9l^Z*6N9iHudw!f{{P013witxRr>djs!-{ z7%m|qAsh4||9^itk+6@R;XgHbI1=`spTFO!YeP=HW{1B&Hm#f z7}j}nF!JwMCF8GP@Yf7O7XO;)-}X-&ZXVz?l5wLs_15_xXP$$ZbWppkxw+%R%1s%d z8G1#j2%latUw=FsyF?Q=9oLHfLT>=M)qj!XkUG`E&%3an_(A&1IkN8khn$LML|fc* z{(DbEHKoId>n|)NS1&R&spHf2lS+{5+8~3&5ut;|64OOHE*$C{&i$9)=f%*K5s4Xv zWpu{>Z2to1$MJ7_hv1kPB@}Xtj}_p=)j7EH9JU;pBQm%m^+sR(pSGhlKK@z9#-d(A z){zI}*8jxRS^X11xt0zgnRXGXIQrPQ%614J^}pO#F7=PGsXd%vHO5UE)fS>4`)5)> z6$AIC-TN=_tcQ`~-}R8m)jIx>?dM zb2>sXEfTA?i+ljKFW?#dLm11Jf5l_x7Y}0VoSrsLHR|iHy^p9GEjB@>lHGr<&mb=Q z#CEaWSIgFRDc8W<>#$>_s)>h40bKo0fad9W8&s*w&`fKe_e#P#wXlC)_wf67PllxN zFs;2tV^&WW|6@Yz_}C0fVY8?ASEFxV_G|C^0U`$xEX$p25AoG3SplDR`X@44J-4@P z_EmoWz%?p4aXxjNb;>IFeY@FzSwT~$5+g_A=NEFceK9)Df6XrYO8&^P`;Wq!4zf-p zYc7ns|6ner{>UG$(d3*NA7$D6l316|_@Hn6#pXhN@J&qk+5V${@aWfX`}L18zE@9> z&a7v`mBIB_u)r_*OJ@I~fMx5h_K|0`vX3OGTR|E6_3FU`Z`Y#S?O~^OFm^wjI`nPN zlH;^G_XMc{d#>*dmxF%P>2a=6{pWq2?4RsaERruHkhHarGqolx!b~B_`F!neLoqBI zJi@@GXh#F85i-8c&@>+Nc-<{r2mJGV*4LUC*d|Q)=lV6xgZfL~yj>c>NaxyAk9q#n zIy6e??(@gia`#W?|Mj;&fBQea@?YM5=j(q{f6eeqx9_~eAGLdb?Smiq=tT9 zeDDWuAAS9Y{6)i;UVN;-%J*2WiS!?;zsT2j-hXSHSUfe>8@z8lc}xGP$#=45vv+2> z*Q%vntxAbjQLD8t)^4qqY)g)@W1E1nNeIR!1TbdLkif8HvO%11 zPQntH5Qrg%6Os^?Bn+8h3*bOt0Ed9V*apKG+jw6k%Sf`e*1osYlDb>-{GR81>(=*m z%S*y6=eVo;yH)ir&%0FBz4u${e|O8T-MjL;F7P|8*!iT&q;T&;w=HjY-%ox*>U(#c zww!tVGnP+(%HLhi-h0&;*B<9j1cdin2lbQWyZ0SjZn{nz3?DkIeAJjLMqKkB)o1>x zO^lw8fXfi`g*EXkJ;Cts;a$rwzWqEl7=D9ZoX`;OCkN7Je-?#r1r4RTY4q7d*x5jy z(tLDy!G|{M_Zt`J?dGh{w}$984PDxerKa21N0x#NeDo;D^TJls)U+??AltE`OKE&2 z?X2Iv!-r03*~V)7@LP^HeCpNWtq zUnC4Vj&$`xDb$Q$&w-*&qXE;`VAAXxF( zZ#wuCYUJ4t1JYRSFTB=+N55mjez%c<*LrL)Jdqp4tFOLV$<_f9eTUvhEAzojI`wb2vx!D&7 zehHY4uI_aGWseB3xO!9P&9I0vV`oAO)X&0L6ywQ%B*jYB6E zgGpJnzl?(h1C7cr_!T9M!V;$VfEeHY3CEaLplMnE(p}%o#Samk*Y%ANf{xXLC=9;E zqpg==CBXbZf5Z=4zo6g9Kl2DFcwizQ%JA7Pi)oG>EaPl0G(I+IOVh%p8YO&=_=Azi zS`$Dx(uF0FQIKsvV?P-EQODQ*gf?KJkBcP1t;`s!om*uECL@f&muU0Yh0i&~zQ6fr_AT%F zjXTr^gMv`yj-JOcJjaX`@gbwoc6W+-c=kv95^-%=Xp)my@{fS?rdlQAPXj)E)iRX4 zsxG2f#%z2P+7Id)Qne~33+gb&AN-)K=ZYiNgr(BCSmRG_!Y%$trZfRz>6PY_t^Y53 z)ziiX!$10|eakz4{m$eceHq0SYLAf`t9|C-Oy81q5cu#3u790?dK|aox1Ctqu%GeA zqh!SFS&(gwpnzTeIz{`g5839GW{_$tdi|3urVllkuBcPuAsb0KT_xV?%2 z6_t*^+*yMTTgP}?4E16w`3u!^rNvlFa*A%3#2=GQkIa$zzu>BqmS=zd83umv?t{yl zfBts2ec6-I{$Zf)=U_9=nryclz5dO#Q5||dLM$H>jdG-hPZ<&$7!@mvnh#U022Hv^ zF+E*ap9D$YjL62G+VF>d=~$$3qtE!q5AvcSnfw*j@XPdawl)~P?3LPJsKN%r|MHzT zsAWJO|MK5DZ#h9vL#DjzHFqz!UHiyzuQANj0Xt|?kMoZRwm-OHx-hOQ2NF5+)wAxu zU=wP-VA`>~^jp>qhVT51dzKHr@xF#iJ*-!^D~}Jh;+?JPK$@XVLobsWch7g(uKZh0 zZO?BHloSn82Gk`M^Qmima{mWCmWeob1F=hvaLN3_^M=G4|8dGfPJGK%V%>&LiG$)N zr?{OjLZGy({pCpe$2CHN*l!_&LW@%!6MeUfg-MIjQ1Shl>fFvH-o#dVma?P{(d6j$ zC*xl8>SM!gFP_!+;Ky&Sf6gPmNZz4K-YVw6ARrZwUz$fAiP0bc#Vv%uulWbtr1FO@ z(2lB@QSCUZcD{hD7~Ge(V)ghIkgvbuxywNXKJ(At`N;<7Hq7HIXxW@EzT{0u34U1v z4Y{%Y=-cNAdQL|{M}c4;zU`w6P1-VGvsRN`3?io&^LxJk8{;E^P5Z*Iyg<+`E|Bdb zbWGd6Z1{SQ5=D&RJ3^FVMJXg`=(kAsBb$6U)(SL{DSrjh^Dk&Zk^MCvYGYHrq38QA zfH7uzYR3&e4D_ucjijroqmxFc6?rVrn;rC{os|J8ot zP5k&)%w?Xl9;|F(;?gz+UISVjJ_XuK&1~^FsV56d-D3Cc90KfOCzo z3N9ho@h29>zv3s)#3Dn?Rf{7Jz4CM1UOl}~8wz=H;c0qu;cndza$Af4Xh_^PR)-+K z3#QxH09?g32#f|c;W__iJ2jRQA2M=?S_N51@DSnvu=No{0BLiFj42#cVvj~%8-3%6 zPJ9&lrPuu?*@6zEKN_VX;G9dW8L)P|0$WwmvY%y$+~&N{Sr%7%t4`x~-P)0Z+H+-a z++h5Lf|w2-L2xzb9y9VM-z~}lqA^NapW=oWxX7yA!{PNOHs^c~liJBQ3IVpARw!Kn z!?t(v3rEI0O&&7Vv9Dvs4QNP(=?b2RV#WTLf7Lgm_2R2BD*hfe2WE5tr((aQ;ovH# zwr3RiE!lZamA$G~SO`s|S#3~UqBv=7&j$4*K7JB8iY0o^l2n8!*dW` z<^rwsd)B$v7-5z~AdO)PxRZc-q?tnKZb}6I_(4HAWVhB?jWi{wZ8mcO^0uEAE{wE& zoD_{@y`VD7^LYc3Lm2pXhs5V)VSkyol7Zud(JrS$wcWPw2st3HSM)OXhgS1NsOBd$ z|JEoCFJ+^*l_E}+*o|+h<<;tm>%2wY*_-&zrInM{#GGTVAH!%~Chw}HPyYM;7{+5i z*@-2_wKEe+GDREd%2mMK&-k|6;UnFp(WtTCc0GKILX9Jg#D(ORRr%Dj2dR8^-2QCF zk(i?Iw(}Ou6JaEQf~=cnMyP_L=$1e<}I=>-;B9%XxlB zvzpfSG!zmsA(wSxmMEgt^=IYLD&N$KW^|o1XcB>vJjGA@XifU@%ieVSqJ>lPbfHcB zV20jtw$A4G+jEb9U;i6DH5f)O`0`cBXg>4PC{z6Kus6pQ`$t}X*7&o6xtB=h4B~m> zEGa%XdH=2a+ky@<=Iif>KmKBGZnb@=b6M?2qj??Q=!0ML3)<7W5*S4q(u@U@XBFWDZNRWW*0B8SY@8}xyv?04xSp! z3HfOh6VnEUR{UdTOQK964{u$krEh^~T9~{EbG2Xd&u)c|i1VRC&p)3paSbS$K6Frj z8dkO85Vul-wT!(f|Iq0&>_@lBsgXxpweg^arekcIQu%>Mek2>4WF~oN>CicUb)1Q* z^VGOq3vpzO_Nw3QWIsJ=4aGJ8x#!48q0fu&`z>r=87KUJQhupTFDMOKJ-QpE`64ow zXgObMi)EjyZ?#E(woo%j^4vpIM3bNBGXBh!=3{_%f8QYX=;zuUpU3>Q{v26HNR9jQ zNR5sN|0(UVW2wH|5-`t7L{qwsx9|WM9CxPv&=9Ti)kY8%c-saet0**U7Qf67EA-*_ zyecTutOr2_?Cz8Q$ctM3$9_v8oA#W4GSJuG$fGXQ$_@C@On&GwhPE!bo|&;H z1_!4wAsub~w+F#Ia{YVkj2lllW^R^enm_Y<*7kqhj21uRhm<=$VC#&Cr?zpi4c!MC@oWqr zn5$h2%m=|4vDN9QRMk<6QUZRqi}6gUEj-2G}JfG+40XJGG?E_ zkD0BxIx(jBOEjiyoF(a!@h%5M>Hez286tK`Hj?J)KpkI0wUitq$9?BB=y!F*L2M_2E*HfGm)t!sxryCdj8QXPt8KvUktPe%fMZbFNFYGSt1Ty6uSk z{+oV(x#s3KZ3%34ckkT0oUrRD%QH{?lI6l3 z-M1fJZocmEWxsx!_V{Cm^!{rdf9?k}{-M#&JdNY5hpV2y*WX+I;@dA^@73QZE1U)} z!+t30-j{|W`G(BRQ-Iv89c8ly3rA1Bt$iO8~1kb(>aoqiz?7Nvb?zna&2Z4*rN zDb1q|A01v`P}uK15;L~qD@+1N} zZFtm;*SaE^P7Mt#l1RJDtWTR4cG@PGY#wZ#mY@A?ZAN%>$pBgG1!(3w% z8EEKW|7W$q&|99bx#k*mkCkH?IF^B9890`KV;T6=$iR#B1jAGM35FdqS4Wq6gEk!LM z3lGqMTSPPljl9(WXZ+RIkCXgmyb31x9i_sZ_8`&W^wI zs#~eDryYMJO0MH~d{Zm8sJ-+H&W^{&-ZQ32>pEs{x zDjOH_1Vbr!gP}H$Fu|*QBVjL%8TLBjjA_2$3KF^F zlNHbJkaDa!-1B~Q7`Bu=|7yUkA)B0|IR7Yq>^9lrI)ubg{@8W3RX_9dPG3I%A6{hf zyFYqh`Gr?r8&x}>&9BI<1+4m+Ljn{_F)$sN|7zP7Ix!m6N;=hG(ZFZbEgG}xK^Qs+ z^yoo{-|=HpAc{Yy>WaTXvEdTW=)(GnADA{6{`9`(9ly#Pfr;>@{q`d~1WK^t2RSnE zf=^sK|_e`z^5&$DbI+cXBC2>YjM;!E{l_kJ<^&-|P*BBERMbZdg9@#}7nw z(xHie*so^hNI{t>I5rrP!xQy`^3%`XvmCD{8t%{&Y}&WfxKh43ezd{06&;6_4LVYZ zGm?Bz41uA99?y_c2~;&?i#};JT?Z*$@`96>&-m(dEOXy&k1xOTZ*Eph;KhEYxy;x| z&Z%XuUGDI}Zkn2Di#TG0i0&jdoeD*)%JZ9c*^;j3m?-{$ zUi{3BcD@X&JFe~0VT0jIU-?wyWP{=LSU*S3$(+@F9o3i4a_dk{PSxa>S2iB0t#SXA2=)8dk4)r$cP@6}L0*r)*{i3bdA{f$wl2<*&Sj-j@JL3hg@BiaY zh746ql1u8rOJ?|b#RB4uB9i@U1_0=F0mS1k!WZ0xnLc1BN3lkC3-AJ>?pB^gAFQ$;^UnyoyDD}Dz+;yCuTzJ}!<&?9I zTm0lg-3#vA?Fekh_xkeFYY2a_4Ke{@*G8&V<=j#Gx=SM^I`OAv)-@!M%B2km)FELP z=jqgZwL$g07Ddi@TRpJtPuX>KG@9|mwV|q!>(Xu8f;f+Vwb3oPwb{nHUIBal7_HVy zeq>X!T@{ZUC;yF6_R1%0x>UnzU{o<2JjKdzb)h+A-4S7~5o{cve*| z&;<-V{ogqMLW0&ZB?|F~&z}&)>3Xl3wNaY&{@*=`jWJYnoe!Ej%_^t_jnVj#{HBAf z75aYB1X<|wU!$3xrAlmIQo)9`z5X}yTDlg*-dq}^W!fHf*{L&&g4?Vo=%~*R=mgHkwwcX)MTM8FU+zn#$;<0-TivY#3rL*Ffe9M+t z)(J{n448Mcw=IPSbL3xgeW_;H+VuF$Py9C3Ycbg1S1DT=b`;ufqam=;Jh#=)dr$Di zYa@+02(1U>W8uMN9F71g#NgO>AJi|n_HL+(z9ASPBAzQS`tA>3{S6)fbaxJeK-Ld{7c+}&_gSdVD zUuiMSyuiZvp}x>P{|YgFZaN7KFV-~|ms@JJVKFnq3tA$u;TBL``By6umle%dOSZVU z@o<$}eGCr{#VU16%)fbz1?YktZ_af6sra$hw&wXC`NYeLjaS_-uAFF_@h9|n z7}>_5&NxF4-nI_Z|1ZlL<&%5yiO3{Zb2LvL>5LbR$j&(&=O5;l82&>sPwHZ1oa1SX zBi`2Lxv~1j{O@yn!)J!li(C-mUB)qzP`rNB$O@=?oUrT2I@0&gy3y%tXmB|`q5HpR z_I&KQ*wCcIuHM4K|sAt;s(nTbRQ@t_^-I{Kf;`d=dwQoz=5VWwE|p4E8?7Fxb`6_2oj3lUeUn6u2uJO~y zX3nqM^DlVONqis%6`;1>cB$h@>ojM3{bMgVYP?7`BKo!vV`gq!-0rt6>g{vu%4@*w zIucE-Fzj50dL5Y|BNf_RR)6{$lJQ(4jC9Up^Zbh@$6o)LCo5uXq#ygmqoNE)LP-82 z*(^BV&i6ei5*dY=yV^HtIwXGXj}VUrcoFIGO|RGUI{(LbAkTGdy8f-1?J&@9uY=gf ztds7kZU-h3O`D-%7#&KEYSUMQjw~~5ds3kqvfCpOg2=cAD}3%}t3T|EK>Py*fk=P6 z{I}eyF;r(aOiY}SY+K-mKIb2C`k4jm_@ld7@DeJo?fd^#vNGdJl3qM$G<}<8W)5eWjy6m+kpw{gTOh6l{)YM#FjlS(ceV>3E{i zw&3+=Dt!(_I&{@hhGhTgHw`;Svp=a=Z$4OF0Fj9{<4plKBaeOVKYMIv1ms$8(|-H4 zDc!y3&>QRDtjs?w`g~NL;a_934Tqoi z?7uxxj%?1E+2+D~`0)pq58m>o<(9kNyBs{kezyPqviG=CmZx9vqUF-FpS$eY&2J|E z`wR2+_3!_W%l-RrJ1WTT9ebC(yG~!uJK=fDbI$m><&5JmlU$F6TGh-nsPkPXV?ta< zY$e`z&*9~cTMjM{-t)xr&;xq1O=($bO50z5xgT2N zw>*7*eb@5TjnTT)Jt(wWxAjEwCcv(@G3Ym~YcQJLn+O@`#)scB@Zr(_Ic+f9%Z2FJ z6AYD&W93)|j%DCj299OmQzipE!SJ*T^aMlhhIJkE+Z8^H(ACuMugL^g*1Eeet@=&w zCl~|++5FujR9qzJn{8cn!S$PF7``FSTPO>N(Kh>L#x?qN+txNw?=~{K^aH=I{8!Ih zPCL(kFTnDD_#bc9#;toSXq>Wt)}<#bU+|rmEhnDNtw6AU_1msl?!EO^L1Nrx~0{39@2Ej%i8q*YR;WyBK+ArV zqU*Fw?AG%a9+D?YB!O^&=2$o54=wVEDEMFd6Ic1EXXsw@hI^Jb{P;~ql$%1;lM7GY zsV56wzMOTb-YCmoTzrE!7v5(#V>UU6Cp9LH-vL(ml}XVPu5^&W_Yjs>e6OBh_*`u; zl-iqrmM0kAmFOB6IJKPiC99kR(MX_R$4-jp+;)jKuigf6@ zk2!l#Np1V308)G^5YfMU-eAZR41et|i6{z*g1H)-@^3s@YTxV+k)x3>1N_19jAN+I zA#%w-Dn0)F;R^7kBSj1@=*Ar%H7Kyq#n<%-hEFVhg5g^pKv@D}0?}2;Td&yg^Q6h- z8U-*&>w;y+Wo?5fI17MAf!EjQvHb!?o!J9M1FJ0W~57#gK%d8VlQuM#K zYgzyRKmbWZK~z;TnzE&TCXtYm^_*0jT$t1>`lic1MmaYJZqNtCiek3i2Co`DMAl;9 z6;IbSp2Fd$m560eiQ8jgLL3A@-Cf!g(Ec7g*j~j(Z!m=aM?Z7>a?`ZI5Ly?(4Es$x zIsr))8*D8+gcgjI3US5V$@Q9?NZ<*5O7Bf2QznvMtKBR!@ynhXzjKxo!b&%mn9??jSdsOHJ&%LbMc}>%Ov7^!0hAGkNcPXxB0F12 z4q;-c@`ND)xKh(oQ_L(kqZ=);!jQOf>L2Y$X;VI+>-FENiHRm~Rfhd0sKy6`!fOd? z%B1XGa$Q+7x351zXcZjx{~)N#2g?|XJ>nsL7$qn+#n(szq`;@C%C!!yPoI4G2Uft8 zNQ*N{9$VL7hy#-*u;@2DEOp#hp0l}MO#Yi!dNuyww7%OG6>+lJ{(xb-0+RRc8qMP` zA4QLAtH)6Q4rOY+@Jk5xlUkE5^F?;?9fwqMWUiF1snDatd^X-j0OcaQUThAh{1x5z zi_i>!TyPji@Yd^`=oI)AV^SkWr%0S5=n}vF6`X2%gDC+#FVWEwfg*kULWeJeDUppG z6Z(LC6gZ-1ztzCLShlN%H~jP;cW_?CD>&zPYyIc^v*x?41hY&Qv3Yhv9s3a%l6Em_ z7~`r15QIV1N|76vXJd$GiPSwzw#9+im@{tcU_)ERaax;uDj}+C7Ndk|a_#sFOZ4sa zk9A3o_1GZ*kQ~E}`HlFkWi#9;>!0f_rN^6Id|j43dQ#yYZ74kXj9tsAXYWy4dcCx4NWzm1j|UsRI+-R2(S`wz zA^U41MH3&d_)nBHYUU)@KuC$vpm6m0MEE}c72Qm?%gK%v1(9%P6#Jr{>R1e?+jdst zSd2gUH<8-wt{k0hmGkIef_dNTAGMhEk*={Fu%Mionviz0C#MB<*vO0U53lRr=R9B~ zLv~qc#D)s)(HJhP-}HQngiy(t(|$p#_(hKhadnR1NyZ%NE<$(wlJj|5^v*vxWgqEb zzg4ks-4J^H4Yuu#-e|;+nDIGgOAhlC&&>{2^{R)$Xl5d^N&&3SpP`zzt!*?Wz8LEefxlOJ^no(aq+01 zKY?KoJK(lRp`io0ufLY-InnX~uv}xQw*AVe(I=Mk zGqgI#rDNSfsQd?`Q9I+Ib}u!ig4a5umVJBbc^)b*#j0vGh=1c8B7Wvcn8+HXW1%Nv zj|DX{#uZqfXVF41`d<3>g>|sXCxV`Tp@R{bp{z-hj2ji;k;&i@e`iBHoUunOPd%(o zy!LLE!&jfJHi)ggK?Dg~wx^n8+KwuSOm>Q@mTQTwGc@>I5vYcj655>b=&kWvx)p4{ zFZLo<{>?5Ksvf@)J%lc0-;^eoE+W?7u7_}O9qcOGdQOQtUjGnPP;GeHjAxH#y9L}V zhhACQs?p4MRVxb8^wv4lSm39<<{wGVDR_D%lvOuq(Q54@Xbz~H4s)`!wFZ~F{pttjgu)gE-4`jF&W zk3LeXTw9!UAt6=kKXay|2(NqFbt$S62WDDnl((}EjQ-(stE|42nyY9Xowv$;JpL;A z|6Z%({a6-T=Eyqp4Bh6Xtwhy`6Xmp&wOhXQ@l@m7yL`RayqaPXC_}_(Ae=e8vU)x*jTvsHS z1ek#yUFh4Q;knfMPmr=W`QIW(tu2R>tCirjbmu93)_?9% zG7qAa{3aX7<&9b+uIJwsYeZFkCXO}#YMevvXHe?9~_l+u5aD)TE*q1)&BZAAR!8c#8D!MBz9EpDVb59u-g`W~@!WULvi^40ot{&SrI z69pkm@yGAB6ZWdxbmd+7vwk~`D73;dZsV(NKV3_w`>6Z=Uv)z@j|}EogC+IEfH%hZ zh`tEpLoy_LEYJfT|5S}qxMevK>-eE-*Zz?uChNA|hxRPUR z>EWq;b*pn5-EgCaR8!kV<0IFBGdAf}15O14~Q-o*V=+IxsAI+`% ze;dF98U}M^oaW)kriAEB?ZFExUH+x3outsOXPiK|k>L{^jl0|K@W0y??e3_`2%C&t0B={%7h*hI`gD z$R6n(X*t59O~S(m9$bF=-9NlZRBz{w-F{->`Px``)oEY3oVE8^#$^2F(&N$71>@K! z{~xdHfAERr0c|q8`;J4)y?Q#9T_=H`+~C?Jp|y;|_lCG~}QI7fNuzqpyR_z~s(g z2!(+=&;FvbmluBB`A8e*b^qpu<)iP=#t{=hDW$?VSx=68`S)D0oUEq}P;P$jL(6af zi|gFx&>H^u0yFyO*v!yD9rNT^y}!$wL*Zirv2M)q69+#4=SML+l|#S9MnNy)FH5!+ z5RtHto?iS&(zrT|zsO~uBG*24YDHcBqm3=Q&l?tvp`4q24Y(;tmvFVJ8*+7At#Y<6 zElPYTKfRkkM8!>Y0|S+V7~V{-fzFp1T>wUHBb`}dkbsbhyjw_TMV z9lxcD-U4O8EXos@9E&%9J`JhJG3PVKkU1Y#N60B~N#3t_kRHHEb zqc8)OIxtF1@+5#dy<~Po$>P)e_e5g++cDLLJ+AFQ)%fT9Q?K#+qa`N=x?Vkbh(q>w zsE>ULHrnSaUvm2LvTwau)F+m^^aR6K`w50NV(Ic$N(80A^Q$Oop)`d+Q->?vbZduUO zOP+u7@|l0_Y`5>f?NMzoyj2QW{~}Jx(zU;)ZXOIoopn%DZ`l6DLZp$BS``ryDe2k; zLE%e?bhAh|(zPL=Ah{BPbPGyL=YmLgH%l)KODrsGyu35-Z+`!rdHy+b=A1cmo^#*# zb$zblTh`ChGRsSgiF?*v$cYWcHCZ4#x4d|E{gR>#^CmJ>^(lAJ&RzPe0e<=*tD;Oa zn8(Vet@L;iP2nw4_9vKAHS5J+&OM;eF<@t;!iv%QVWB1WhE@A zDNm!3x#G-a+EWX;qNF#MQmA8QU|;*%9rGP7_VmQ~ag_wjcEEM^z(;AFJwEaT!~keb z8jX^m669G4Oepj=7Ak??GO!&86J!?%S{BZK_>KJd_g@ZijE8$!b(hKXm2FW@Bu96}2ul8N2)|SM(bJzuA$=Mz2aImh%ocMf=QDRguZBl!CIhozz$H*5}w-c}lC zAYpOkFK6|-0Y>ZlU&t8XLm>Hm(_e&bRpEY0X`426x!ij0n>anUw?u(k(sJvbFpr~N zq}N}w?;K@CLfd^RXm||;wxax}db^>!S1hZ`cl8_F=Y$NhH%^k6$7=x8^>&C0FJD$W z5O!amcqkG%bxjMb`ns&VR=*xd6u~C`^={e>&3Iy&JoQTu`%r5;P8^Y9q*z|mW;U4t zcaM(;#G>9^^KR-WEkz!su!;N>^nD4m8o4yYr@$GMz@G9x+tzbGfJIr}DJvHuxvV3V zFp6{hIm_sGfYA@GY^ht>(|l$zi66r>ZP2XuvNIA)R#l$gk;40tsWhHyjjVTN%f~kL4LQX}Q$RmE zJbmi05%pLqSvA+7m3`TG#KPPY6{V8B+zXomu{%{JjMQ0r0g&Y_cwzaS!QC@07rVp^ zrh(7@O6^8_MK9iYeCS{+*w7e|Q%p`5zk6fo7VM@$w2prHu?egECjxOi!PKkhEZwv} zQfD`dmG4xZ=&cfBjY97$vOA3O%lSno$gS=)6Ze7mc=vJ>+JN!YQ6FC4KWm$J-(T_Z z{OJ22arRp`z!Y6;6D_c$Rt@HIM}xYyukf;q@K;PP=!YwG-HS z&O3%&TH65$Un?ZL8qp{lq^6q< z%CkMmb{Kvk>+=MW&NoRBBI;as{1#>$ zxUHJw-wdI_lU$T*JS3&t^}*A6d8&c@$%=JiNd|7~^R17g(wswc9UMgDxpNt`IV1X& z^cXLVwsyEwzb#=~a#8I%j8R4ze49Px%Qj_JiC2hJ#%aRV?|!h)z*#$OD&+#&S{ziNaw_G%5H8 z$Z|?b6Za+k>d8!{7IJ>QR#K-9I-GMO*OjpHM`ZQ()V+K}bd-R`E`q~{0!WE%ILNKPZPR3U&RpI|KSWrrDhJCRdenW!5^|qd4)g`do%q~)BJ%N|Xqcp# zvC1&rGAnmur#!#6_3O}L5!RtPMXZUXc)E6CB7H@CCEK=vr2@>|rwC3*7jX zaRMJy>U~ChewGSG@sib*ktTuGU$y=|#P*+d8+@w!w~v@g16$VJ7>x`&KN?+ljU zz7}!8a#L_UsF?fC_`(m;7-wyT*bvegR#NpH&d!(zz0pzc`tj51LR^8_GyDet-?<|l z{Fh1X<(pURmFW-K+5#`DB?eXcrQ(A@D0oOH#EPuo%55%2&T)u?(}@sOwWHTMvcbga zmZoRGB|m>29$u{zTTSa*zwa0E+k{W03Z9>yLHDqkYr0D{W0x~EF30C|3^K`9^7bwB z5U+s~@!X7EZ6oUPk)Q9J?msK{jWcmFQk*2{^(`M=eg`c6Uc-L{shLCfU4mSFmdk`i>LnzpoO6K2W3DyexJv5#{oR8E0Gx zL%h#kNMtjVdzN065414Qy}z!ssnQ06pJda2bNFKm=P^$L;l7-mo7^4P1Y%AT^ldwg>&egz)4hH`(gFChcnnAhr%Q6(hfC zQi74Dc{q64@6>pV>%Kad7{9B8P5e-6o^O|Bc*wge4{oapj|R30gaSd35b}4gjc_sj zo1IC{P@5nv_WhJ4-(~Bj{W=bxtG2q|oY&0IcER$bZlLGZr^#k4tu!`RyyeV<%c5JA z<0$S6s@|#bDW;gJvBzf-^0|HcW)=*Y3RBj+0Vr-G&)6c~qk=a2>}sl)pIR(k$lvDf|Th%Y&qg|JIQJ(A7M+7pL#1ONMZQ+AjXXzmB-H`_nx@nB3X;JB!TA^y`T+@M?WyWGy`T>Ri4SvUPr7;YRA| zc=hz^em$~|bxjYGroy(TA5+88eC;Vq?gx7}X4wRUWbRyCaEB)m{6MV>7g+LSXA}hG zxg~PrH{E-kZAmfN)AgQyU}$=Jh1^DbOaFiNTy+ax=kob@jv`5|Xpo2+ z_@iO#>A=Qq*Ph^yc@iN@UTb-opa{_0ck=eb$JH!ZZXF1DPk&sS`*wsQtfR$RS}Dy+ zNEb-4(Q3+NUKX@V=*RHxnPr~aqF=H+R~h(1!v5Y(CO?D>fFn8mLhz6reDj{NJpIva z_vIi3>n>K8;O7L|8?=ePi!7PIQo5+Hl>x26A0;LRCnEs%$_dF>%_i~HJ*xes>J zjy^~IJm-cye-r?Bh(!GR^}6h2O4$0=qO-y)@O7D&X~Irb9X74x}HnS7l4ch0{zze`sJJTi_Pmt;ubz$+^n`-Ngn{ zQg`+CF3}dzwHE+}9e9p7s zB&Q?w0YU&UQolr8QAr1}V{j_ZT%@pBo*2yWN#gZ&oy=-l53S5V&p|aS7i6UZSzCR> z{G{XUrEicV2`JDUP1e_O?K)l}ux*&WIzJ5Z#`OReL92fiyGT?Ut5&WDG5~hA;wCq# ziiJq(!3^?zr4LI-k8km9;8onTChWwA6j?xr>l^u^zCulBHqGJHf`_e`Pn&x!siABj zh^`_nPdVn8B{vMTHXP=**2momUs&So9|!L0WkkI@+Pz5db>;%?P$wK-?FS_h*be0| zZ`8VitZ>KN60A$ca)XtrC;x&jzXT`@VZTuC)~cg%Ac9lRF|it%W9 zLKGE}h6N;T?$2t?7oVJZn9P$Wv!hOyk6TfbW(|iU*WCx(fWdR;&=r7ambmoJWhh7@ zyLB2~ZlC@j!3i-WZrJ=DH_j$+iavQDWsP8ytQ;<%{BI z?90O4Urh+kk@S|c$_?OPxakrSjP`ZJH47v}_5z;0;?s)-+15?{`ws|8|G0BtJMAHx z6b_K8mdnO85w*O5t0v07Aj0sYL#k4dDJcx+$PZy=VGGZaFpk< zZmg*w@r2iS@At6$qP146n?G8qADZ5;SEeh6SU_dPrBv^Y?Dup=u0&HJ3=fz>yY2@J zY1Z+DHMs{)RB?~_kP3#FgycHenX=*Q0<;2%eNcURp;tFkmQN(QZx8@6()!U7^r6E+ zLiRv-$y}!URiK%!;1rH7954aFZ#7|sg0vPJ%$|aWbZP3#fZoGvCJE$8&P(}c7pxQ` zK7A)G-QcHazi{-NG+R@ZH`M<9Xw$|m+8_>A?yk(gGbrrJtygKE|F}qP3%ho|c;AGi zJMkHnE52IBg6zxvl6A|Xn2BKg7jW+sW;O$R&jyGSrQ}2konT*V31_dX}iiWMkFhj%#5zs7I zxyQ> z!3=IySK0uJ&nnvsD=J+e>qvsfK{UN}iFF7h_|x-S5r7Y)A4GzmGgD@j@l*pnD`_6H zi+ncPS^kjqccxS4ElR8s&!rx{@?e#d^|kfQacxJJIjlQREKag_M8iQ`!nS`&!;_i= zpv~|mgBVILf8O@$=fy+XvpxhpT*WEyKkn$Fc+pcw1(kQ5);y_bO?p?P^4=}{jW>T; zJMLH`@S(p9@&7_{-L9-Gr%o7{?e9?JM#V-!EvAv?U%;=REzvsZ8dUqje^P0EEkjPz zEpIdSE`O-mTQg!o!2SMx`>~j7N6hJJhtj<{CkvdBAS+$?Las&T}cPcVDUuzEdBjk(a7jnyI0EjzWJN0%o6%kIm(7!Ebxf1Hw~D*aD6O>SdU|FvF8-%z|O ziwM(LF8!mX;$KCZyN>C#TQP~v+^Rl{9F8+yQ~7T|1fXqD+4^F%CHfIl?5u6^etQ*R z%o*Ar5~Gk2yO+N|iLXs#Le76J$GxXzWfu;Ta0z<-`gN zw;^uQCVUC)ZXwQB1F!VjtN-Z7yN?bkKT>5b`>Eep+URka*@JEv>!)=LY}z=uQNXL{;$0Q!L2%SDCMQwLQjrF3Gc4?14JT=NrooK4Hlnuuhbp_RHwvO91$uo$ z7AINHC|I~EkHJD$y0JIr#cpp-N*@Ef-xn_%vd~d+x-V)@<;ZrcS>`{XD4YI{OH$(y zYwF=!ViMt91+!Agb3AwxBFWO96l7;?iS<*OizTOR6mxQ`xy#yoeN*QQ%!ARX`+1_5 zU6tex9Vx5#0<$`zg;H|VKQpH|O7to6TsnGDg_)Qz3BHoL(|LFF|3S+&_;Maq)oGAxqEEj6K>HLUAACm0CN_ z(TBP3#qA#9U-J&2ze9hhtUKQ6Dezovw>{dTOZwrTzAz0_McTKop8yD=3;N+nn$+CI zE9&MK$pJ9U=Qwm-()TYyjJRJFZ zdfDAtB%fZ=;Xwk^nNue`DfyU&HGKy0?^)G0DP;*tJ8_@%xt$O*iHzolZZ;DsJ|@w0 zMOI&Ov0+F50nd5(k*53Q#+?Y}v06Y4gR1wyd7P5Rn2L};=YY#~U@n@(Z}YT7inI2Y zqMP>pQ-croSMGU)4WlGgDhzANkbRX(VFvcM1F~9L1Y*xIV43=bshSvaY!`) zDe<4``_`Rsi?n;^$Htqj-6*tgxvq%hX5MK?d06F&QjS9ZC40W2pOP>4u642IJq$DY z35xKaIu*nf=+pUAD5fP$8PhQL@_E{M)`AycwOD7ei+<{UG7berQ*k6K>I+peci;vt z)$vNhFF3V!Rh%i?TRT!t7PCb2X8C5_^499;?r7BzEkTuM=USEjwN9k2Z@)@r?Vlmn zhmMX0hrgb9N~V215`>>m?;>#qWZr{tKGumBU3YA5R=+vDk!{sX|JlwtR%rUtpWVm5 z7mffq#ZIcerfdK6*J9t0obsqL+r2g2XDtG-JwR6O5B>m)FLk3V(K^usxrO~ zL!3^1U?*!MWB`70_oGP$>45v8nalJ{=|HW{*(E{uO8I>&>DS3SideJgR)TKWQ_#U| zr%U=irkfYCo5rD9;`8wqj5EI1=S~(|r74R`<6L3#?_IRO3Q?_65IU7}7<` zD_kt`u@FeG;1531L)y6ezmvfa5F{5nw=07wR)4NYDjg?)h1)cGP@fsD@%dhUAkeondoQ`m8x5)j_hLJU7 z#Joh#*j*6j9LG(3uEnIVwr05r-u}skQ@wFhK<>P^?!?YZxOlYBTdAr6Sf@alb0nJC zQwzeDPrRv-auP+I{xMqWE|tNG--xRvc>xIOtH&P>OnjYW2P2w>#{l2`HOf_zLjyTs zAy7k=B(&M_mwqNR^fE45;J$XkmooQ;^PP=S0C7X$7pUn#P`>5p1hj9O^Z=V_m6j#^ zispCowh{=r5PE}wpkE@s#>#(>oau}57#K#3^}BwCO%(Ub0=EWjOTo`rmy%cs1> za^fh1w*})PlURv6xXn62pZ?>wUnp*t&QDa)Y^V54oP{aE>gC-zZYQw(*?PYTvsSp4 zdqp?IKrhWVVdJJ;pmwFO#>&d!DBvGafXPX=Ux{mBz(nFy!QzFvl5B4EDt+`5IE3ZYV9!!Xe zBYe)_O8Dd(PivB+nRlfYHFDmm5fykkZwM1vl*k!BfKBf!%`3-Zhhb}yur*A&cX{ij zlS6l3B^5`1+y5OPYBtMn;FpAcM>M9x!`umaXPBK0iQA#N(4>!2nn0|WmfHNlH(lfNj&^xoW!h+lFIF` zKjI~O4hiMQyP!kUQ=s_UH}-hsB^cDf&OjE}fmkexp*jC2WdCx>ELT$ve4!;MItO$8 zdeMM9$q^yVm|fgK`9=h|2tsy+u6uc_SAx@bW!!dkh$nS0|AxcOTYW1O{a~C5i*p`( zgZB-A)zm?`!=xc1wb%@~&^)(W;JwK7 z*-d-{0-TRng?_jeJ6sJ*F0E;P?%to={CjxaFvaAOkh7%U^!|S_bY<__9BXlsB)gJUZPtL7u&KYw(!i$-p8o9*Qfjy_T^%`<3my`a4ce z!Y992DwiEjTQb<3YdoA%Nk$Q`E%>r!lVJ`_S$T}-8$v)I-0Gnf-tVOgo&ai%kmeZ1 z;Xj{%*yD+pwBXA0V$IgXX-CKsNmj-^kpmD7BJmGdSe(|NpSdTQ(2{e>RpY0S_^snH zLyIjU${iPi_@;m z&$AOj*T7CeEckd(%RJN5ql`OUB>Q!tunN|kaC96FDs?7*dUJ}TYWxqQ1lh@wbqv5v zXE;BRk!)UT-w-7gdNGPVO$_<(%JrBOhyiEgK7Nsi{rN2=$vBDDQTHsUI>kr&Y2f~g z*CEtUA^a}72aW6PyF(W8s08-%-h4Ekmj>c#LL5rv!r=hyTS~RnN+x^(3-jLnsZJnR^$!$iV4iT)7@i zR|8`Vql7By0C6z>_TN$>n+&kZc(pUKJ&ozHR`5q^61RLi=GU-{_H>qR$!QJ>39hZ4 zo%59W_T1;2t-og2(?HVK3GEI#&ZI9BM+@Hp2jO58~0-mGHHFEp7B^4+b`qKla63lV!FeYn6w_=;6(;%9M~O%!MJ z{14eMtGQ^YY~?|vEKK;LK#IqQe_k`Tzh;h7Ju6tIGRbUsUKD`uU>lPO|UeYQfM#j&A;JOCwKRmo&EZ2L?FxlM0$8pm#tbz6rfc?ZN#7Y1u=oy=9zSA zZ{3aW>Fqk)SfyzX#%}Ou$F2z+ARyuz_FCHg;gfQaXM;}NzNiI+DBR_GFOg{1>9x-lu!!EU0OCPwu>*w_K&( z>{kj7y?i}b!El_HYA|OzB`7e(v~+s+6L4_h2+>h@qeoa285~%7|kW@_2yLPnUqx&yf>}*9(;41o{!hg zC^AMr-~Z$~;R4)EmKxrd z79?oMKk?nS6UQSqZtHYZYE8?r!HxQT3@dWR$E|MhB(azMWVPiauKBiH>%iHMPa}iH za5lhb7AXZr{(^0{ji0^jXaIe9ZDmJ|1XLUXH}WPGZ2Rt)lZ$_3X?1T)BJN1jlU01tTUIZUt1$BjkA(^e;0tU7OeYD-w(lZj_=MrV$>Pe)56vb$T_m?$41N0u+*eGQ;MqY z4v5XEbd6VA)^d4fq)qkvJH%YzZ?UH98S6ft8O}9r3m^1J7I_fr)ulHFvtIjbXoeFl zhxg|KIWj5(OO&cuRqwz2YJ2U~mVRRSQMPuy$0NnS;k(AwXIk8mbR@GNds(ivs3`89 zw8)xgeza`q`96`3+(CbDNj1j5_1PW$Zi(idwn(mkC#6TPb2=roi3uG;xw?Vtt@We}-9~acz7{m!PpzF&%Rz<~;keN&eEBvNVdG{PD%$mA}uI(jQJ! zs+=ZWY$cOOOV_|#EWcdnb|8bmE|KA=KlJ}z^CQ=M4oFuPVgLMrdR=P|0x^{7*q>{x zpW8s&m1j292vTr_Atz;wT(8|d5|+6feb3OX?~vr(UoGdHqTgs09GxsH5F ziTaKaU=9f;;Fg&0Fe(*xoAp*{k23nPPal8$i$HDZFIh&|2MxveZ!r$_bSqSZ;MJJ- zeN};DD&kYmx(vLMDt~#()id~lJXYt;qRoS&&D7gYQ{mP2>{Y;hP33z7bIl}U!heiu zQrkXUhF5WSq*T}KYyZuJiJBgctR8M&s^pC-IQVo(hObsoY5RFcAKinur~JD=iTxs?iAa1)3C3n{Ix`$1%vb@}6T|L9Lf= z$|3D@wPVa_T#JL^JgL++L|)iJ2hk4y^BKjl`V2K~=wE!o&~q{CKdRpOe1Qo9=AN<1 zwV}pq;Ct7b2A+02(BQIi3`+<#np@!*r@RZ4ME<$@F3vj1I! zu5+=6j-TM1m37Tf+pnhs*oVb9V)--(Q^#c>V>=^bvMu*PG>~KZF10ofkDODlo>raY% zohyfCkncRgBOlFb<*HsR=X58Nu(9ycMi`6kj_jFX2iRj}SfKE*!Nmf&IfPN%3TUq= zXb~8-P8f9nNFzMTyH#HKpZDoSNHT^|%k3S1NaX?-xJe{c28ey+Vnsd?PzlDHku= z7BP)YTT)d2C(-Vl{`0ZuJlU-|4RYF+*ffwk0xEISm+I(S2U1Sw4fXe-JL34RH|4I1 zg|v68hZNV^3ajO?81lezhm%XxHA@O<(6X88JRxuJ|3SvrD_!neLQ{7;bkEiW!OA|m z{e$xE@|Q}_z`@@m&1`myUbvTSo%Dq>i{+e5*PoqBoe8-IUdB9zuT?EL$;^G7~*;&3VW?^C}XboyiMnxjcjyeNjr2lk46jaMtw zu^{etRv{eW7#`S=i7lko-8r!f(*z;pK8|Ra-9%Ed1K=9~xRI9lnnbLbAeNxsdUzkC zFYqZKggq^EDB$wH$T}6j@J#P&IPUC_sEd%TJW4ib-2sEfaUEUkF#KE4V}?2zww)+6 zbr{<;DW5tl&NxYZR`1+3Ik$D;h?n+)!l5uDikJh4auLpH<%ccz0k z%1NfK?Z1Vj??0RJkb>eVi>s0rq@%viRQ&Kq5aG_)onfE{E)w3}z{}uL)}o{(H=kGN zndybIaHl#rIm~(8nl9Bw|6^N~ppYCX+0#7vE)pg3#L6|Z|A7imYX#=A)|m^7sOWXB*a+WT zgA-T)=4J4xA^jK8Agx>Y)x%b!78hYWpR4cy)l|2}McK)NcaTAZLuihq7$}Z9tlZXG zC|))R4a4XrCF5HtpM0(TyWCquD-1u&f13&UswEsN8(fE&wY-P}!ES7w$!%-c62?nx z?Nx*(685f541$xmr)bF|x9Na{lioXq8AX81!_x+6;SAuSC8#DsL#uiMWcT?-5({il zx+ab#R0iNE$_w;_N}ZX>r;K*3Ui~j}T7Fw+h6%*Z4nn(w>A(g34VM=3y@(h~xrZlG z@+%DNPj^Dy>-_?dnKPEiT3xi02sdp(}1fMK$Culae@*R1i$Alr6o}6D8K(r^Hi<{ zLzck;7`>}IMQfe#r$cKkXc1|hP?kOl&uql$xOU~8-c{NhifR>P|Iu)ehmg|xC8x*E zfx1Yj3xMYNZNBLi5*mNjxzEZqmhdDix6s+`Uv|tD@+7a$|6rC(APo7NI?R4Tmn;Qj z2z7H898kCpYNLg3O1P)5vxP0qSUyJzj*U|Wg|4*pwPX4oPAg_+_B=DqY;4$6n1;&R zUigXAP z?rcSdK6^;<;*YcJ40D?yh8rpK8vli@yZ0(^oJGr&JucYQiaj1ZR^?uG|9ydrenrN; z|E6#tJEg-5fqvHCAErNh{A;QAZ!ckc*itWOnHc$(cJeXftk`E?C$HPB53|CeJAqG} z10Dc6M~Lwh9ht+jAWXZcTf9c z>guOXB|EFfwC~Z}X9~t=an2QEehd|1TAiBa+=cJfhSpHRrR)BETK($oU2E#vsA=Xn zC%Iob88cf7_L>xpZQR(?C-iKIsZ6VqZ}j`W>#x!VyYr95(#gyd*Rm23c2XzpYrbGVHywJ0Tmf1*vzVLB3@M!^QOQ+-( zJnuu2gF(F0pe-)OsN8z1S9L-p9?xCyO4!kNQ^Up1X@Kf}X%9QCJh`Rkqw#?Y6{*Df zrlC99{SVmNP(NqXG?)aeMOCNF9?YI9)9X1jq!x=X(K0pAxyB~#DsIB_2-jgCe$96J z0azrBlDp3B?ST>PiF*bWkJ{Oo-gJJAjFf+S(#2{jRxTfanlTllXJp4lYUf!6&!{sh z2Bzguwb0o9NI{*ol=&RCWQmGC!!>82z(c9hLFGQlyMoU9ggvzMFf{45O>Sf`H-DyV zuMzYyE-SRv9Qh>N5FcM{FJn>fFo!mlrkUjHj3J`GVAT=^X{E%*M9(s_0#v{@fogge}>;*h$|T)&EB zQLr<|+5dSNYP6X@MQJntB2?k~OK88AwRLP&9+OMmF9;d410w4~gg!hl6G<#t^7-j` z2W&JGez=P~$M{0DR_LvA)zllZrE*~;u|bggF9%WFbp4(e!Cu_9<}|KNsLOObXQIY=`1Z!gei`MB0;1plC6 z@b-FkfBjPW$y#N%{+|>rv1ij+9x8K;sJ99U8ZI=dc7x~E-wwG3mf(G*qXyvy&Cs*^ zOPC%u`?XnQA3wIAMP%>YF*xu`TZ(iVrgBZG^R>y-`#cxcz(Sq7?0YKng5La(Mx6$e z2qmLOAuLy;0+$nopA7^7}zwhmdrj+09Ja46lG+q5%X&F6qqw#_YiG-wyoeS&z7lPmQ8@*Ioz=d!pD5 zw2RK2;~#biS?s!iwI@^a(I`+?`r>bK%X`k>!Utr9DvU|Y89jcEDMr6&;f6c3w~ikQ zW3CXY-jFiT0foF`CIZIKMz+YmTbzKtmY#B{^PXRd7&LH`h~Q1|(D_BTnVm(Cc3=uS zq)7Ho>*#vK^x_ZF_DM81-94!epVHPER~Ay!_mJCDgLC3PM(|?7W3EV4f;dYieDrP> z|Gg^S=v%J8Q#q8w9_ku zJ|C}CN=qgM5@N9ai9bvWtfhwgK~_Ab!_?NN3ejGJ_huhvJ*6r=%4^4S>z_WFa=O`m z^5~)6wZb+UoAa2b3~x*5-b|fF-K0n!miVnC307KT?L475Q0^+*SzgH2(QqI{M3jvx zJj|l7Q`V01MSzMK*eX3VpQd7Pq8_gicH8re)sbLWGPK%D|0!aqM!A&#@%knhUTj_{ zBHSaQ?Cz8W6!0BKJIF}axvxoK*U)=-M5AqiaCd+e4L@bvaLGA7iZNq7i-IdF#b)*$ zh2rb>XbBm`SXGySO=O9OFO||iOO4DLjMnlOL+nYw>-XJw6L4r3T)jrdRMJLdUSy+@8G@ z1V{e8<-!TKbNB>AAcHvYfFh?u@_=+*=CK%}W=^?a-UpT?|wlywtMj70a$r36y^j z+$(1%-@Q0Wc9s7)(XsVOxZ7MsSL2QYFQn`2cF4V7d?_>^dde)G4pW56xhDdiNWtXP z(%eDToqP7+2(3-$^f!*O?I#{Eh%BG4RRd z&hdsrc>PKqRp`SZR%w&JV{LmqlQqnHWeLiIX(USx1j_6(*>$@VnHj$T?-S$|XE~Op zfu4Kd?(Fv`%R$8(1SDr$IbjHvvbQ9q&)a%WmJpQc|vK zy=6Z(qaS==&Zq(lq+L2VoKIrkTWv3>!&hg(I?(g3{HNiU=$eeW7L_K{5~AGYQcla} zEN8XlsBe5uXqYhO)LbfIHWRyWrkfI%nLN-|vXz)L+dnXo%Fkvp-m0B%Rs~y}hSWGoE#8{h)6OBiEW6Rg}1n?zyywY99tZLJb>_0MDX0pO0COykI#@m<5CdM?eW-emY2Oy6VIQmiGPz6Uh>I7Cak=PPgX-Zj;Be%B9_T* z`Xf4xL68+e)a}SHkAItArrf963_$k-pT_<`&1gC%(Id{IPMdzXvJM>Hej{MV;YMqi zGkb8pG{!7=MHt-Am&~+(cuG)gJJLf1@4GKFpy}spuDDwAeE6PU^oVMmJosl`tvkE6 zR8hF?b8(hj?f@c1`=0HMh;*%P=Y^vZ9a%J9v5EuG-UUyO&4 zr^E7Rjo1!a0Y|^0qAx-Y2TuV2;_(+(ZWdUn6FSo~!|&Epd7XHuCy(p1*Mk9H$}nAN z<)}=|N)wG2rob?(@NZLEI1Y8DRUNd95_sL;2$ETe$EGEeaR3?p|C*lr=G@e{uh5E_ zqBK)x=m-qW<80)*NY5b0>mt-K1%&upTCn-0j)Q34;;*p_GwvzHII#an(!O@Ng~QcS z`%%E9v*c4X5rIaMK?hA(|97oO=N^&}vSQ+mX7TB?csX(%>-*0X>pjZ)NF5fGa9m~d zB|Z@KBs!*UL{N9mwe-G5ob*b7eXXrwagVN@Z^QiNzK8n&TlQ9LL&JJ?8pjjISyF}T zTqro(e6u?3&hDNl9O~PIT{UG2{}KCankLWb-;dqbhnG&|O7z25qi3#b0xZ=Thnb7n zCFQoK8%Pk++_P)&^@Q9jKY5~AVLXFWX8^+6W2ruLY2eALX&UHK?2DwPs*^yXmYV}FVeL(0iyg6H8i*+k+RBX2V03T6#9~*h zhg|p#{s)afa=)ywb$r4T4#S5JeZH85qu-;#-kv-BAul&wb%*Da^>@g#cXa$f(2jrB zncCe<*Nfsfa#CP;%JG-AUug$J;sJi)K`LB){h}!8$PRWtRe_xU;*$6j_Z{)ScUOUz zcF>e(H)+STk39cu75wULqkP@_kgZf;xV!ah2SYv-rttw}-4u>~_ueWn492*Fq42ds z-LpQlp9;TOTXSBwU;g_G+x04hwSzKppC@nM4moCr6mDQtzO#ejx!P^8n;Pza;tGYv zwG9LZ6$QUvYmZ%J)u(9nn{QvzC~7B&O}5;i9ri-y@8SCETI^(_x%&D)UaZ14y(O3W z4*PDZVn2%C($4(;buL1rNR3OBLb!wF-_|M?q%G6#vER})v|Kw~;>({rcH6f1!6`Q5 zp77&OUg7-W8rSDTpTD!N3v}n&ZOc})ufFMGtsC7$9Nen5@LpTA`#fbkap&6gm*3XD z`3@Dfq0GxwPXJKZqH!j6(lxWFK^eWfS9(4UWXp_x4R5Qj38Wg z=FRO#pSYrNkH!SCQ9#JJ z6LM`J^UE(?-OfJs2KDTvuDea!gL;7>{M%H}{~sS)sv=O`XVfU_%UU6g6M3 zV!^{-{9o^2h)r_9JS{z2_b>&q$rcORJ^ySQU2}P6!tht#ytv(<-EVoV;Q8aOhi%mk zI$~S9tXqo<8ZZ7$|0{7?FFWe~bLexn??tT^^E?s@f%&QsB0b@jPnbMoXfY0-}Y_Gue?^7ZyFeA zQ`1JaATt?VXta{AvtPXN!@N+VW$&zyUe@2*XTdX<)ccr6w zCH}lx8&ZV+RRJc&F6y9er7^L?kTUlXZe(iMb@3g-qS-_#`fM1>av0}7>o4-=IDRjR zZU!oROcAvkj`TP=ldZvi7a7>qAy4|pf4~0$NU}5QPdxHpMT{2c6Amn0{imlNQ*tJL z1?Bwr#T9wQrw(*<-8AO4F0YlWnvQ0H?juB6>Cm@e7|u5|wGs)^_{)dbjT&xA0Aq70bp3{ z*S)~jcKsvi`$Csz99cRrp`^>%zknA#9*Cfh<0r3uc^j|m^;3i#FrdO?I$#b0&~<;% zoREK$A$5MVR;Qak!<5dvW;@V&a+y7=fNf(%DQ60B9#Ds{7l;tJus}<%@+4Y8bqFMo zT&+z=?&>haZ`^1ZU-pn0kQjsz!`+`X+UO2ioIXth#yQYQmwQRpe}`2tiLi?f_g@6% zpBy&4z>-dYO)(*_2N@^xI%?==p22}G&sa=!a{b#agki8kx-KKNZmMf{Kc#Ejscygi z3C>Ldlj}d?=qVP7baQ$A)wn_~dIAe;RyFeA^)I2}{$KYt zgn;7AK|h$%|AJ2^6j9}~z=JdaVL{o)u817}MDsj=t1~O0BRbxLbrFmprM7ElW^6kT-B^uUSiBm$#u|v!d6LHu+L*?_SU*W z>?W;Yuu<2U7-+K=W=9sXue0qA>RGMu z%0kW{OyB<(wWI@7*Jr<$EL1D88^MbIcb{-%rd39y+~+ekVlhF?C=4+qhr*R;eF4^5 zK;gfFXKWf2bq4RaPYt}tW8V>xG|A8TOS*MkYAiDO&E*}`pm$t{f)Kn!!O=VSf@u3@ z#V5g|x<-x#YvpM- zr_+B$o6oOtokyg#V&B^PV9I902DoeR3ormuDWoz|JS$O-TN zSUbLk00P7#uFtGL=7TlCPg=$iuFNvW6^YIwXU;Ou>qvK1z`_e6U)P6#)PfXk?;W0af z)s09InKhvmZ9FqWo(($95dvBW!$V1XE09*CS+BOgBTmuE=V`~PqY4^`w?v&EU*|B5u&FT|W-(>jFv zq-#1h5gGd)?~BH{{OoCVT(fgM+C;wMoagn}Q_{6j5$ zdNqUbqoXL`-s=v=9s~Q-?az({*7c@zY{XZn)e}($$yH{)=D)lf*XqAz9=Lkk@DmqgBa8GbX9G$X!St(_5Wj_8J1trFglnvZh!)Sr3tihkWu+FIlau*DAsS zT%@tZm~+`Ex$?vE&a>p?Fw(iEN;`IQ&B5(~4C9w0Dis)N%MfujeXN{N=kc zCCB-Q`@E(tSg*=#rkpkRufFk;_JcEyTaC%ig^%3feQoOv_iz;de)-?DOK$neYI675 z=6UU&cY2o6L6ogsaMQ`{`&YbnHMy-f-?bffz_SV6a;pi5uqNKm&-+@t_{!CbF7Lk8 z)7!nb{R_-yN_58lnp)+5jl7A{?0t3ALgZ%EUtX*4=UsQ@%69b?E822>A82THynsSy zL~s8CH}XfXpZdj)eDUd6{pekqSzJ!l=S-t!j9)i!hF?GGS{B&i6%AeJ$YQcE@@2Tt zMDCYwa2O+7_;GraDLUtB$Y7^@u0AsU6-gI_&u?MpFV51Rp6S;Q7==}K>sA0}KD89OG#8CF>myhU_EcVL2y7nDf+2vdf9eDhJh0iQb&WxvgWEexo zHb1oT2_D$U(ZHaUT%XpAMsZ00pZxCq+nv~HNA2t%UfX{7&x?)bL*6~dnELh} zf8;x(y$;#B9rn`QtjpokFHu2_ic(TwxYs~G??>0Q@4o9|jfK#i=DQQ@D)!X(?(ZE9 z5&qTZwKLmiFPEQlZIKGU9`>@`9mW;sYInrfo~ws`KKMxPNcX1N1?nm9+SfSv^x2o4 zrJa{<71CUzz;GLiS=89s@Uz;Hk3u4N29^B%o~B}?$8YEO*n#njuR2$JC559-&S%d* zbkj7x%RZa6Bi^*9r1S<}e--89FH~Wq3R=?8pKAv^`p#{uom1>V;oR@Od9~+jp9gQ# z9{Q49EV@#~F()c#6e-0n6OZB6?)kXw+WntS@#dU&%lgD$oZ;Q9_>ksFDllYMGurpw zx4518{p_}7RXL3Z6pcPw1)MZ?%=-BAw1Xk*&$-pEeSHT*`0UK|g;$=VB8lZhB>lOz z??W`V+Nq94vD%3*Jxj%2DyFLWmya83N2;g)^ZwfD3Sw*D{{TDtUG4dM$~!3VjE~=V z>xJzC?Uu*Fsr64T?|1YL?Vu;IyVabEM6PY$dFNtv<3D^F^DRJo<*{UupujLY7-n8X z9#e>*8pWFwF0$Jg7!(pYxn!v0?{R;@9Hasw+*7L$#>mBekCF}1&(eL1Vlw(iym3+6O$EMk zRXdYi*-km`GT*OEQ2ck=VWW276LQUi_lqxF;dPIDna>#F*i$0hITgfiCBMh(;bSj6 zOS|B)u2_whR#E1H_UwP%FZUzqf9HKm+UeiA#yC%S%O2VtEk&rOs=)A^pAN$&ckX=xA z+_Bn)R*4!ufb3sPo$g@xo%bwhzmspY`#)`mcK@TZu9n}jq8t^{;y+?XVZ` ztm3K^PBEsy@O%{*X8tpW&Iif&P>w5iGlzSv$M43yp!z-TKn8jkjwn9(k_G> zDu4Uv^HJq;zRJ67BJ_xt?b0^iHnCGI_6rqg;+k7Gy}k;iANe=CxBwhFyC9yy zPNTB_;OFhsiz~GzPrcs7dDdnAGW`#?E^xtR@eir%<)Eh4POb9%+1O;UpDjQUGjcm_G-yQak!>qdCm3vbSp& z!IR!{v5M&Md6kQ#AM~tXp!c)SUD?k2sR|Iie#pyQ+fX?^@=d$zFW#?a$h64qB zfAZMupvq2&Uw-37?e<&9U~7M-9Sq0aTeUNwb}^)o()UqTYQNX~cMA-E^69HwM9U0e zfqTUI8_l(&{&7)qAmYjYa#_1XMT|7o;1l1tdtMX8`}r5IYG~s#8mfrO);6>s)-+k@4u;vD{TXG{*=G-SS*3nIcOEJF^XDaJlB;$M?`@ zWap8_+!UkE(Ta=EddLv;pZF?n&OG-FSU5o7I87hlxJJ~fm?p9owCIpH&xMtwCLPo? z%zQGAj*Zdv3toiG5in<(UoWxEpc6Y>a3PBx$TAcggPi!8F8~JW*oQQ^{uyG+v(e+X z2iQU1^N&y(_H&=+$pTA}G1oZwXjGez6kO57=j1aawHhX08p{W8{atMMh8j_<1kRv2 z+XcJg&q@`cOb_;BHN$StFlg9%Fi`FDhio-SgAF@~jv5C;gOctTEKZ2pbL_k-Pw^zm znSV6K`0M$|_=u^^&OZeGNT6(5)`QL%jda-%EW$xQUb+L0Io%H4h+&@k_$+qjsozL& zVbB$p!8(St>E#f)tdHP27PDogKnD2^%9ySiDFkbj6(bWe@NG|{uHp`~)rsXR`& zIK=xeIT*qSk6i~K5gMX2{G;E`WuNiv{G*;PB^k;p2t|KA)_@k~`kQFyLcQnTd>idJ zz1{jQu=o2(DIrR8JgA~$f)1To_D5L+V52b4X%C@W0N`{O_pW+w^`)|!8^w}Vjn*=WE^52TcE3&*=0g< zTm~1kNV{ta16z8j83!&i1)^|SlGON)358Z{6y3$gPuAz7LMbE zWT%8THNZU6}4jp45r&e^x z11LlqdLTzX_nD4mzT^~tZY2c-Bl-i1R6>fcS&QQGzYCQtHiyiOL|ZFl;Al)YuXQwh zuWN%T@lvophtl9&7aUsCR=$NcHC@^RO&w>2*d=b;K68+@z9=g;BbwfADF2=>D~oHl z>We@c=3-F{$!&}vm$`5OAI?Y*RT{(D=O1WL!3&OM;h36Wr9Aw|Lms65KTaNa{ZSO z=MIl?+wY{A^#`rXm3(6UImMTW9`gL+pBp1T6KM=vCl|V-0F?QF) z9yLJ3&Zsr**-GcRKQJ|CUZcd%{KYSP8Se|kID7pkM@YrD%2d&TpIL?w%CJ=I?Nk{4 zAmG7j2fq$kX2KF?!4`G?7&^46AYRiHV$?-E-Mp;CC7RVz0$@C^^MgNES66 z*p6q%%SOOrzaXL?`A(avPrwIgEGBr_nF!3#k)Eu-QQ7|DiRXqJs{T)3-{Qp>7Zzya zT+Xv84sPUHE~&&{Bhp|Q;Sj&qhGPhNuA5oh$`iU^8%rYo{3j#h1i>ykEwPCmar!(| zx{!+f$k+RqjKu3;$h+Ieoa*_{_kWyn!%BjSjiSRuYdW?O^jd7abU!}1`{uD{T`K9JRbb(6Q)w_#~_I>Y*+dE&`xj{PyF;WY{0 zz>}UI%^7suV47fyk&MH|tJhP;yl3Ha?iD)w*&a|~(clj`8u9~Ul(7@`W+H4uv1uU0 zjpySK{{Sv|UoRFOZ5js7=!7i=C34P}1btVNT^)THo{CiWe*NO{r)?evr2fN!{Dr=PWD|S`v*ade9*&7UVqYyEd0Fgu4X`- z!d5o=93zhn@NEx*(L+N6K5e@GyNA*W(-|wlhz~m0MQW-On_X~ZiZC-6jU(#3LW<3< z-8FVt3mH3m3%q40SqWc202ZLVX zzz&?)7p>b1y~dsa>q9S@sb{61qTG%xEc=O#iDKPL;ukXZEO6aE#-NgHtj9~AIt@zb z5XSkh=TB*)s~^Xr!kWRctHCS#HNE}^hb&#e8F>JkS$_kSD4G96S9VG>ZZV%@ zmYoTin4kYZmgZ<6Im)rFf278S{fx?fMOte)_RAvSkFzm)21Z6BcKI1j@XC68vMt-! zVcvW6tdo*6e4s7g$6VJ0U|0?lrs&r8O-k#p2Ws)|29ZRW>pT8)UD9&Bjr{5%53=(m zBDm4%icufz_2F>pZdj)@z%DxX*fm}MW#4jLkyFJr&R=1Tb5=e()^4ccG=_1~gI>Or z(fRfqm>uRo#v>bie{HPaSu_Rx07wy$aH&*i&1F#mn&U$x6_{l$zN zgM;@yy6v#l_ua!*hbUj6hzrb`ZI;54le!ubSceh(_ z=lh;xW34=F$G5j#H@m-ybsU*Yrr)AVAm_U?RVgY`hNDxcH%E~xkU=c>IX%=Q?nrE_$e^HJxPLU zTzuqdoXho+DIH|t^8?0IhjIS`m$8wB1{QLRNkL)Om@{oYX5pg)?gIUQg*-ou(SbkT zU-;0#piOnK54|ur(@MU^CBwPwm)umh>?2n(OfgDlK0frB2GAdBdu?oNR!Jxp<-ylEhth1o6YwI$wE(7Z_ zur34ZGVn){frHOgfnnb74UF53&q+bHkh3mGuQ>DWc~G zY2r4$(6-tMAZ1*bb0e(BX`w<|B8@K3tJ@f*4f+I^1N zvE56>O!&I=tee|c|NcDpANu0m+CC573aR#ke_qng{9cM-D*lS?LC@c%?SFWR4Sx4; zSG6B~^fKwMQbE{QVECIaU)g?g;^mGZ@%z~Je(+dCw@gKNpLmgq@Bn5a6~Co;@}ZSM zbvD>Yg+wPD;4e+Wxa#~{v>V;hcG>ASdFLj-S++{-a9r8v@u4r?rS0>O_WlT~1N*7vWquU*@& z&g@{Q*gn<^=g9xU`);kGx^doq^wCS(Z@#A8le|!5K>r`E;?6z$j$i+&LaiTvOodu* zPSDV0Hzo>$XxFKzj@_=dxXT9Z=^xn7G>ZH_@dAn)2~Ihcdd>f)DmHnRc7lXL!R-mh zo}r>GyDHFiEXfP9>>4>hV#9X+txd7(4O{z{p}sQ)1C1AGnEgr zBn00#SdOdOW-2Z__9MuNBmQyE`n~eCyzQwX$rKo3aZW{b+A&k}IpjSWwbZhN0xNH2m`i}OI=bVA6?-R#pr#ozrtB*dX z=L$*S5mFvE-D>^zoD-N=`7J+>Kjw_KOhu2h{k4PP!)gb^i*E7mgRz^t%9bhseCEIG zXFqO|jgLH6Hq`Ko#uq>-nAv1v!?}2-ihQ-(-2ahaNNL6Lm5m~`GroOIyKX7P zv-k&=Cq-z0a@|360I|bbl|kgQZd-e_u9v+ZsQZy*f2EzqPSJg)3NIYI=pgL0f364m z*Ju~e%g@#hnu4De7}z*-zjiQ0m*{A|=W70se%D^}b}&>iu&g{zx?rI3o3CHf zPS*O4a^kli;%>3s2JN{Y&HRJ=)i++)&eJZDZY88V*0pQ5xw^h5_!*YMUQU$Ev``{%ubN5GY+xB}1uP3Y83aOrb%JnLGzCk-Es)*3K$=Gmj z@ciRm0^9vwo45OV2SawiTi(9;&LtR~X-2>eegda1>$SC=71trhsEAXz`rp3rnhR9$ z9zm}&b=jr#9*>Og%dTJ1zNP}+NCXmN?8La=gPAMsDtp?pcB-yl+Wl3$yzt)K_vYFK zx(EIAGZe6PClGKP+R<-=_1Y1y+r4eD2`_A`+Q}cfyj^jQcHh+lLUu5u&@^-SdHJ|p zAB819fT#)bF|XRKZE@#(jPNtrIq#?XFj4s1E!wCZ{+Byh?2g;CE3I}g>?)3f9SkWj zB&KPBVR`w0qqkR)VeZ`&k^V#lv^HpzIw%Ic{yyRLyXiif7w7MO;4;7Nkk>zZ#jYwa z%tsg$0Dnb0QL>X^#c$&p9{!ip9SpB-XQ&8}wySneeaLfDY>VutUva_knr;C(%X}X3 zI&u&@KR)rwcCM}i;-E zz9+O_lZNXtbUj>xTu0k4UDM-sO)GXCRnG(c%)ib<{zpWnyNkxeaQ$a!{fLh~3kp)D zRo&j0f5qG}EyF?gI~!5obBuJ4VQxLmW`F-oU#o5zV=+^1%(SfNm zW|G5n?4$30f*96+@q7MD2P-{(^eTr=gn1I=`qyb#JMw5)XXu!RZkoemO+nC)`LJZb zeg5!GkK6D2JXZ;=rZ`wRlC#7{&Hz#iEB!t$lBD%-D%kzSzUbNYrZ7i{|8`G?DrOwQ zTL15}Eqfk&HVJA-LOClMWZjDW`|Q#A88?z=Y^dpgEKnxc&}0l*OsBKwbUOdJ7;64e z<~byO0BSht4fvAqA1Pw4{y>XwK3auw=y2xC|&&vbN^-=Rs!vUS}F+heYkZm_KNVFxz4V05l7pwoUgVmxqH%YS!H zbn+58qFX~-BXN{N*ZR04Jl-p>4m5R+T#ulh7yO&2Hq|I=S$`T;Jn9CjuNOr_imhwE zc-oUp$xArTd?FIJB%_fVME>wxEc+7&tKTbBb`%BJNx{< z#^*2W&^Xt_{Kx*lY7Sv`{J0LJS5ej0SaFkh5$e$&r-p+CO< zOIjL132yiUF6=I2H!WLN2t3-D|2~{ZMb^iTMc?;70b(cQp(nUWA3z*K5^@f7O40IN zqGNTN#z7-74N6)|MXR%UHZhU4V=-ind2YdpOSAEhzQoQ1L0xg3$dXDJqetO8WE9VwH~$N8{KJJzv_jcWCIJ zo;dNbV|cHq={!Uf)Q&XbLmM+G_8MAgmDlA9qC>xgOiL^SuVc<1hrD+C$kWQM`;N0X zX8Yj04djV4qsSV2^RNFk3ax=S^_o5tHl3^aD&^7iY#AJ927u5x{)jTfGOmA1iVn** zIZ6=vdVW8qp2l4Neox$=16bEtADGH)+pLB`(kljQXZkwOc~}FV184k-M{%&$V(=_6 z@U4k|=<3JMB>(`2s2h=V8%65piZiPz_F+M<$8+E+7sSZ>9X@OH-@c7IU4y|uP`_HI z*;p*b0(9aXqb)nOZ?BOU*Shf~@8?5%nfZy-h+0;l(-_x*7=|Ha+aGnqtBgP&`{hf$ z|8!Q-52RGp!9RKvS`~eOU37`{Hd-i^_}`C~D`6z)v;Jgkf|Ig$KrrhU5~{tX|R3njb&V{=r&z)nOp4X8g&UYLH_yVb$|jgrzBv zA*}9qcPjLvNg>y1&z;9c84vgdy;J8r-<;5T8oM-- zMHfQ9*K=R2^*5c@NTVS1nvhO(B%;^72Xf{=0u}n&?OQ>INapnipF$bEjNH@?665@j zYlV31myR`?u|J!C))!kF$HT#|j#yCcl`f!99yNR}YXg62aK)PB)$bC^bC;vIlh7q*L zPWw9C$xO{p#)dC#1CWC_ zAH0&ty=W#Q3e;=W*pVKuf9{yICcuCnTrlu|wuxWsuUO>(*z?Z4|`ZU3Df zIG?=M@hNA0qFs62`K$3Cvfb<3qRk#|U-0_o6<4+|EP1kC<5w>nT(tRN?Ot0yuWhv6 zR?hEtmcFW8aqDka!#wnW=e2D&-_e;UW@UuzRV&(6H(uI)aQcUfJe)UPuys3n(bt_e z=f5L@!OZ7#*Fk*j2pH_yYc11h``wAUO-%1yyr;TD-@&24aLM^ARBWgxGcC38Ge(qI zU;6$n&p|Q-g&hp}J=}@E*onUyek|to!xtF!%`rDzsy=7fF{97?Oo`ZCwV|Wnf(f)@9(2 zB?AX*2g9wj`yVfmereRJqu+3ez#BYXEqO4`i)N&Fql1j!0Cp1EetA;tm{h?+kXq zPp)s@e&>aL6Y*pf;nfa?Km4Ey6i@C2iuj;^C7e%=^A;8{DhyK9%iXeUPF-p$$t z>toMXk(k?@c8A=uJ#w;x;m4l;d+%}>wsNC|_N2G%)$XkP)4s1F$TPot4bwvMx}UwH z6JN+D2EXT*fOk)P^&(WgquM#ATo*kE!te(TJ(u@9V!O8fhP<^`F^6`Uy!PT-)Z-1g zf^a5c4!%4?-92_N++uqkPphf0?!%XOr^qAUx@X%#yG){k)_2~$xSjn2<=G8eAkmVG zN4;_(PN_Inc~X(7^FLfepv<)=yTCAijfkBZ*}>5MNbhlPRDt0=vV-BzK7D!n`KOl} zLkG!p|N8M64>^jJ(} zhFl1G1N_pn+tu0~lO618w@T>8KU)QT*Xq5Yl$~o!$B#dM*FM^TaAQ%l^Va()l+>EC zqsbQCMOr(LdF}3|-*h#FgunN?Tc|?D$Gm2t=oDGSPXhG&%t|Hz06+jqL_t*iOHrzB zgnE#62`oQ9^^$Yi)hZ^W?R(fZ?cx7x7x%Be=(hGr?e^#(F|R=PxX+gDF@Lv6u&cCo zmV0+X;)gxIu@m8f4Py0EFFmJSb=7_4N-?%{w>lk?Y|*?^*2K@t~*JLnurX4L~Kp*&zS=2j>ZI9(OQ2 z<@ih6ufIeA=v-TP(B|!k*DpfTIsJ$V488uih^4Rp#$+BT=6#BG(xlz0Lfj8NRrgA@ zJzZe9P`%{LI~ZbB|Cx(GsJQgqd#k{ZwWn+1y<980ruFZcAJn~a*Q|+?-g;p>_djlw zUhGTQ`V#Z&&kH|!*GBOl7++NZ+s}+it@VyS%vK{nzUQ^~&Sb1yvw&uvKyNjKBJbasW*TX54q`>fI6$mdi&ck22 zv*s{6=KkbUS7?n>jBW=kTL;p1=nJ${;y$e9IqmLuRXc|{6k`_^*FET2_&C>=>9zPP zZ@gIjtY3_{NKVV*5igUiT~gdlf#JFAa;Ohcw_m6N!3r7`suJ2sz7kxT#ppyoqei&5O2DJ;kiFn zk>aPbQ>Z`8wlUCGwZmV$lU^gD|EsTDqXI*{Myc(3k4?3cWY*fU>sGWc{_l$FeWR znzJ4D&UIG>hM1~#H(vbR1!3^z+FJ9-)`z0>Nwm!vBje!NO}pVZbg1V)uAOLwjijGH z`|B@MFcDJ?`nVfY>4`pj|L1x^$66%?f*ZfM#{VfFMqSVJ{cJ2v$E0zP;u(MyzroRU zrx)#bEE(lVqI9|~k09u^w6AIP(XD)!JrwgLVJxGkGt55!3}@&b`(S%cU4*QSwAY{3 z4$fn9@V3K`X7Go5*?9joPxkZtiMR0L5>|n5)4*d9IAbe+sDQpD9ER;XiSeatMZia+ zbfx5qmjl*6xB9_I*YNxgMN^Wqd&1EFX?_u(`OII)!15F%`eP9yBzFh6}+f)x~OrdK)lm}h4? zGE(c05NUpnm9Y6b`nsQqUp#&x=OjjnHD}*D2vpC%5qqEY=fxRW<4X|xzSrR(dSK~n zD0h0iV$}KyevcbjD@t#2S^EAU4tWHoa_cqB`o{n~m~Oq}`%-)wco-g^EhoHI^-p$%?mK+bdjuX*kggJACrN&z5#o_CWFoqNk%WJVpc;};Vc z{cNZ|sIt*!dIr;LKYyfx;=;@c0K|e|{K{~$E=0FC!mRl*p<u9!0B@*V3Q_v7p7yd z+pX72M1YC&oHI(YGKx&6_q_B=rK^pGf;*xP$WkBT8O32c7v#fv?qf5sB?fNWbui2* zFog9p!Lz&xVxUy5%jI>Vh*9MWee_D&zKFt94WES}W3kaE0%DDDtvYT2)V;gtwuEX; zI2c7NKRxc&Ni2rdhJ0l>9A_XpwL-NWZnTs8pZ&%M3B?Ks_AuAKY!2%WJaVpow!@(k z15YhErdK|T#*JA+=U1KFOW}isj(%{`py;M!lDp#7q8i4Ms@H-ppZh=h-8$g1khtlG zKA3?pGk`GL>RAn6`0?|d=XNSrAQ)8NlN0Fff`yZttc&iUtM$}PJ1wNVhXP=l?W!xAbTK{TSIT3I z@FW3X7xX%)7y62^<5lgqjW{mpp{hRX4{?5GUVr-Ms8c_xkK@v`hx1>%i;iQ0bmOVX z;*7B08J4Z*PgweK4t4fgupm@gY(};E<;Mip0wo1K9t9ybhJNK@BuD_vX{%AU)hDf| zco57y^#_eHK=VfghWL{xv;GDMckrA!iIfH+*iB<9leS-RTY3Ue<9_ajXY${p!+*1l zR~`a|E;h&c^VrnlcHK@h-|{?YOt93A?~({?Cuo3uGi$~(Pxbx}lu`*kHUXScCqf+y zsaZ|5*Vg_UvV%G0+%X1gHBICoRT5wFClq28S3c-Gd>|V}8ZgJjQ?DSea>OgzXtNLFum|PuWV1i_^B7>nTR(d!F=vNbgUE!RJI)7SZqXuW8FQC69M>B?T7^D3T5`u>lsRNz$n z^pUUZf#!bAWzRFXY4%D0L4js3G#o@MIPx=hSfpiC>wA zXn$57iPf!?jIZ@vFbIy#0ZXdDN6sJYp=Oo;q23hK-s<4<8gU@Poo!IY`45k==d#-HHdZGagRe|6_l!Ecx-882iv@ zIkFE%W(${<{;(ymWE;qlFnk$$xN0bPS-4#FPpS7{#09Uo^;>zKPCo14#`2%%*!d z+V4Ce)blN9nSX3m-xeU)7?IR-Yu%smFByzK!~GG*>{j`Pbx0WxkrrFL_?NSVrw8PG zZw^jRifB{&;u%kevR@N#tih_~3@Lh@@!j(yv2Mj$$$#Yh++rKu6mId;6-w4)?lJnz z%-QUiS>G|5T$H8cJg;G6p2N)=81mnZ#Ery{y?Q;HL?ruNsyhgVF-0zY2N^FTF9Br2 z50~c(|Ncd9#0xVVWFy&;2VHws2^oYts_|kcEVNhZ@4XQ_GUb82wKMizam0SC!X52{ z)a467cojz>mehPJ@F#z74zZyTMsgQ?`_OYbT9k~9DHic;Z?NCT-5c`;^zyo5tFgek zjl5n=zJFqW!k&p=d8I`SykW)JpR7jk(ZbpCp8WIqE86K-zM&vm@pI<-&u2S9>LSJ% zC5tLb_X}Ox5WjIEXZzxt7ct959)BnIzkvf*grhki+ZX1kpyDZ`iqG8viF+IQfj`{G z>`jTlD}2t?p!Zf?Ccyn7gwM#D>P$I>R7q z-Je)C%<0g)UJ8}-*h(zaaTbFeYBagO(VOI7!?J_?|MT@fNt!*W`>&kD&&(mdGtz8$ z9W#oDdB%YiK9Z5OwB$xQ8Z;=hAQWGJMEa5=+AS;i9^L9~vjy9?O|@en?e>+|x9gYp z?}JQ4?{cSo+adcsWkOkdcjc-T?aM!V%W4Aasnq9*yMDfHDtk11x( z^A8)Ww^`e2!$l74#yb|bTUX?dY)|Fxz1I`l?svYMNz?ctc-+%aIXdH#Q?$F{_ofi; zFWmf3+hIGr$$eC~!fD3ftd5tA`pGZcw4&GgfeNk0U@*3x1|CP%GS@7nz;JoH>H3xJ z_S^N`!)MZ#p0yv`Rqd_^ZtVABpZdj46#YFzKS0u`-KwHLitlKAEQaYS&|{1ot@MzE zM%bkX583*u@$?KX^3dobTl(~;4g9GtJalOAkYAu5^ox#s{itgh&P6MKk*}LFSmjGi zBjYI@eR$A|hkd^MRdVVM4IXmnRilr;B@Z67sqB0mvBw7U54Cb0Kw5znopBkjfRKe> z&cLUSEI;sZnnoYJDJ}_Mp&$dDHpQr*p@R!X$<-K)qLn|4%crsrR^f4m&$srlUl`D^ zk51{sqhDjN`9TJIeCrw>w8AfWkp^sdrN~PJHq29Y4nF7eB@q)Sa~Z-BaGXpC3d}IR2TxYj@nTvK{-0yQ@ISMvX%c%QG#m zSeNdlzq_e@trti>i5(18Y=YkRv@7FT-%|mB?GwMc`q}MXDztmmLPIW7;mXI^pRX?vN2zX-Bmc?LWVCMf=T3SNRPKf5iI$ zy+A_0SnYhcf#p}Vue|QucG>T>dz4Ig8+xhp;ZGcF?IADJ?u6A zcQB;DkR1$Z(>KKn586TnhKo#hf#Gu%Ti^YSLa|5w?e69+zjbB%@Y8;m`7Zb6!gEiQ zpW1bT_QltntKzJibvqTNe0*9=rcN@|6qi$c;<2gW-$L%=~-4@i+4i-gbMWIO}`b;q8pRgCXna zaj&Pqke#=*BiQ?vwBMhc9VP37RP14kzuNk+m+sp3(GG#g{`xCdwg33YrR~5cZm;5_ z6zVz{amPkBDsR=#`HQbUuU)G3v&a3nQi0)aR$)Fr^yj~e+p z?iI;9i5vZrtk+_|SgA^X-lR$B$Tu%)yY@opQ;)w)yGLH>SPp#rcDj$IAa3z*Zfaln zyYp-_JGW@%JB|6kZu4z7)XtFmVhG3D2mkzxcI!{az`| zn%Th+Ke4HNB`4C8^W>lZfB8k-PuOuza-V+rdAaYY??@sdmZT-J>6Q!HmMYw*z>s^; zKH9PGp4x$sc7=9}W!`Mgl#bE+8*jOOd+e*Z7Ld>`i*LH9-Np`b8g8}IhV8(|-FYam zjSL=)?Xt6$wg3Fu)!LzRxe&_As*Ol$VEC;gk# zRN-xW+c9Y!e0V(P}`;;59`=6YB zw01DuTJuc%)mN_8&d1jiLU2sY;qVtvcQ90e;dgT%-1VNDwL_29Jx&JM-SSIsP!5DJ z+#l6vjsMx-?%cNR1)c0*c+QX5#c@@;y9z+>^%&+y1)wTs{@w?*Ry7B?7Uc=fXw0-c z=$YDeQU%74&SVF}&+9|#eh*>wcufJM=I28><-d;GVW5L!fbj%*$g9~UqqE_qj~@7( zhx=5=K&GB|YF!&baaWUwu{<_Yc-{AsA_lI1WUF=2(Y_ew`+5m?)Q8FatJc3baY#BH zTVv)Xt*D66CvV{qBbH|UnT)%WM(B@V`LZ?oojH@$km1;bJG$rhXJ?V^gMX3J-5%wl z!<#c z_CW>+Y35Y9!#CJ8k%#$5%mmoXpT>?A`>bKnJB?>zdx3tSv#yNMaV3%Pg@sU;t24_E zf!rI^r%4~aPj&G6j2+vD509okFen5savcGVT93QHML~xc(-d{ji6y~D#>NorMl?>h z3m^p$KW5+rL*$L%>yduteVS|QSsnZ8s15O{-yw`Salx{nGasxAs}><evH~ zF>*tjtbfs~xFq&Pka4d+$$R~2Au|77kD?`atgG$|xD_*sP6|xrK|)!78QTv9FKW7E zN-SUh_@X|*=;X_Tq1E+)Kx8a7n8NC`)$32?!>|b01{kuhzQ@F;j!4EX9g9QjiSMq7 z5WPAxEJv)X5xKI@2t_~^Fi7k=VoZ(qr}zrbBo2;$P_rC|&I%(?Hajt43xfhW`Vm~t zG1=`$6(;X@7ObzG3$+9Fmihw^8*jN@+epuVb9&aC=E7KD_Dj&-~Ay0P_0p zx;*!kkE2}-(d67{pqn74?q*JHk+J@19r^heKE4cs>96EBZP2PAqmPpG9Rky1KQ^r^ zGM*3<_b>*2{baqW!E-A+It!h@TW0%3~2U=u|;wgZJhsP&#(XDf>b*6$^Y=&p>ZLrn?AnbgqyHXqRr45Pj#pE zVfFk=CVmx2^d=*aXPb2%$E^Url0eYEkT?u&h7#46l| z77M|s`7XO)q#3Dq@kSCu4r4C}p_l)q#o4WQY7Ej~-xD!!HA)a!-wqHnST~= z*9Bv?Nm3Z5$}vlJhvR3~L+FB5XY?oDf>)@>(Ts#FSlzzC!yYh<(CxuT&(G@aJK~Pl z@BiHZr>V`EzVQq&=terqktLUaOpu6Q!tFa9N`~&(GtyIHDdk?uM5dbt}*PR z8x*_MaYPdcFkCN4=DkW}Y{~Q4a#r|S{2T}g1ZWiTwtKKGw^fn;w4BKfITQy-D1 z*|+K0dFnn}qT5!#bWApWcc{zN$(XA-6mHooSwImbUgQ4(+(Cy9a(EA*+JC8rol)Gj ztO{NF!!n(PHFh0f#UM%%j9$%uCs$UxZ=4V(|26;hnqd(gaxD$$mIH=$1JxMaYp*1c z^I8&qXhy?Hx4QpZS2##wpT<29kIJ9mn`9@3al|-UKj&OGQ~UMo0Kar+?I(Vozc4+O zw_ngoH_7rYhWtU^X`7$7@XBIIGNws)GO^4*Z)flx6ZjX+X?_!DD8Z;}82>ySMnJ#p zln(M^!}HShJW3qgF``_ZmXqw7&V?2~Gs-%`m(}f;OBG)%biaug0T~)2$H}syvw8Rp zjRRgyTVLyD6~EJvcTSUE`eh#+kf!q=FVHDVqwzwJ~M=hsTlo z_tZYLy6=>Z=T`&9^II|zN#|!sO~o&bByPTHA1D7->$-^34XQeQFpS}8FddhC2lZ)9 zG&5`f?f^aX>41xY!k>RGnevmd=fRND(;R~`wO<&vI8j6|ufK36SArAxlOymeN#M$#seNRFHlB?l z;(#MPAQ(@d|BGK%6KNkwq2fgo*^I|{gUGn@U26zGODlRq4327)D-6y1SCF?ea8WDEe$#3k>!|(yPg>H^B<{cB%-XrK621!UjHqKCHY2tYFR7s z75nx(jytcz>wmOB7<|n8g~=E|alyA7>)EflnK#q9V8r!zn^-85=IEhG#O_HJBs6Gs z@AM!r?ymI^XS+wU3Ledx4@}p|V3LnSXMlhMuIHM8u$%y$J1nxN-|)%y%WFR*Q9ii;pSMjmxKlg)o-c@^ z?M*P|jjz1^!uFGMK06UeciRp3YmeFKIOi^Ngkoz~-F900=H)MKD^^h}_djoY?0Eln zx1AsS-&0gBzIXaZ+D*&yN4=*?583_=ZI3M;=CoBv({sK4l@94m1bqsM(a)tjCD$BU zR{|w-{WUAw(j_a~_1E0dZn<$)yImWB6n>q{KDoQwK^y9O9IdIqP+u4w3Jig(;yn8N zOp6LN^fTm^8M&aRHIf(NFHBCb4AdB-AAod9e-I7t)eR#+hR@p(W^wk~o>C?a~9mePt z_SCncA&;#ZPvy%ddi>CkL#G}UJis_S+zBpvJ8x(uw#z`6{q%fKH?1`avzO>N5^vjYt;jsC);UOIWZ$3MSK z_p4^!DAfxsyy3S${Z*AWSlX!DbY5irVU^wl*P9()l0o)ghpwk#$wgLYbqb&SX9q;R zoEK37_D34%ihQZyID2u zdUaj<-g_>#+7A0^SHd^!>HcyRcbxF-)AGKoJ2Q=+BEToTZ69-Zs6Xy$r!{`ba?HQp zwQa1OvT*-=?M!&<4LnwnN1b|1oE(eJw3}2E@|&-ya7X{Dz!2H*zh67psR%C_j0QLh zwR7VmUbWD=%k<{s<1aj2GW_+ZMC_bO-x>Wf#jpMB~wy@_709sPm*+UDBDf%c7mxS(C6-PAAu&%e-B-}a^Yu$S$w-N~|B z)h|DPMf=5PF8BN&^^UQ?@Z=tw-r05`(Y*3nx1mvTNTbR9Kmq zh!me&d-g}~);8WEfqeP3DhQ(JND0Z8b0dS?sDb0q=i1#=1oPnM?+n|8Iv1;$3pses zq5HE3IH!H%%69c)-d{x;2@q|=4w9L)XJ`k*EwzIoGj-mNu4~_V+eK!S1$LKw&~xJh z2$%nUS^M(q&UgNdsClIA;R3_m)ti&Ax3`bK;LO<5ah(6Tc9eE>+-^@5R>^_ytHAJd z6&NO#xpu@GRA8w22jf4qJKcYNO$9rAC_z3PK(M&RANh*i+a4+;qW%1{SG1p=czL_~ zBk!z&IDFMEidw@LDqlm~mee5=gjeQ4{_VeAt$f|4B1!FF_)22Xj*;xbs2wSjsj_dD z^yb=A-=&>F`woWRe%E3Z;HWrNuKI(??(@R?Y|$S3+J#oSSp~w!A4}owoc!FT9s0sP zud;)m2@ug9ueAV#6#KvZ`c>^3?X(DSzlUzE0>fRD+d1!Q_(|=;h-yBFTh$IwE*|V6_qY820t`^5XKf894l^+NgTo3z{Ek87Lng*Isg4`;KbWecdWlf zDg?XlQQH~j`pcKMZ@qKLAde<7`%8K~?BRn_JE`3P57=DAxnqIhNpH<-r3*>@sqtLf z>)Y4!AY>oohcl?lKo1`|Ui75}(|X zu|u?zB87Cc)4zSKcE+VZodUy6`woUGg4FBbSKk~Tk@FX~WFJ=_^|I9q3^74IAEp9B z+VZ}GA^!Iicn3pvF+%nf3JibScUeS1#3Noe?r=yE=_O~}B04Kcu><5j+H>}Ew?9b? zr+w?%_SiC#%IoWoK6z!k;O7)S3S)9DGd^6qS=J7S-ofy@+BH`Hc2%MH zq0iMksky-L^%o@od=Nihx^3;zf4i#+3{%MH0>geCP`G*U)3jFAuDtNJ_Khk;)fj}t zV0L@>U&)8PQ>@DlhCloKRgQD`1%X0!{&aBEJ^wuwp!pVSG-Lytp=3?zw;+hcH$K-Y z1b(_M@slSs*YmoGOrX>!|N0q!0btb*;aLj7klj8I<%{SvI2Gf7B_j3{kk0r;Lzq_c z56e6bXgI6xBNj#cq#F<-Vw@R7Mq{4il$(MtyU1DB9f>-B;P4}*39fN`&%=}%5|K6c z`&e3CDV_?Kf5FQMQ@KnPO~3CCJ|_fW>Q|LoeAX1rI-Kp7s9<19M_Z79|Eg|)hxq-z zLQ*NXu!0ZCjnSR(dZ-5T?9B9Jq|kr&}d`E zxH)mgE@Fx{#2-Dbhg@UbN5kvDS;ohb#oK6-sXm)1qX>->pWY;a_b z@XtDVXSDYBpJhKt-BarlSs9yIe^6)QXK{&;NsObw@k4Z?o7Kmo0Q_#F2NyZ%*c}s% zfh4kZA0P7{gz#ledNcQknt#nfc9x1;tOxwFOEy#U-x&r>pZURxbJN#9_VG1e@Xuc@ zk2JA%|E-nyhwG}_tS`>{{$tFkeS!NrvJ+&m+t-Qp$8gBM`n}nHM0;S}NAc}z>1aG& z4-qwAx-8EPRZO^%p5M0EMg@l3udhEIpdG2f?bkNuu*D(f=+MKC`aOQjh?Y=BnP^Ae zea}&-9Dx8By|i3goorLS41v@?&kG6;LPUZX;ORiqsYIX*{D~;WkfT+uYCMrQA1s!= z28Lz~Lq6aJ?*nMgvp9~)ltIIzuHE~n8?C1^dYOMD#p|&Rufx)`hVsw343(8UKXshA zWLvS)b*&Z++vv#)BJ|{cP^41^ia5-_2m<&0fi8W^=%7yJq0Uy5OvYthg2sn|au6zh zu9^AspZhPe=qO|QqfGVs<4FK#`1~z)kPf~q4F20-w{HnquQfKxTgnG~)Ae8P`xHoB z|3T{74sgt9w_*de&LbiYb3A|j#g*~s{Aeg~o-XG5m_Go(ydk55aLa_42`A*hi=A& zhAsL?6s`Q}K=3Tnr7Tz|_<&x|qftcYVD>@r@!U8?HJ%{iO}B3wgQ}OLu_c%JkNxsA zbA=)Fvlxm8%^V$A(!>0BA~~<6ZqMWp|GdTn$%-Yao-^X*Cu1ksepxG$e(=Qdyhi-` zSNg>bnh^W^*UOgIwl%Pinsg%hFFAGd8bFq`ssPG`fQw-^7BZS z2lfAB@4e$~OUgR$y0>%AP3KGpBqJb5lq8`+Ktvf)f|wlxBcRSW#9@39#q6kvAR>q$ zQBosGK$;8z697++^_FL{d)stQs$5%Yh=by7r?OWIA zu@>9uL_6mUyRf-}n7k(bsa?vRS7n#-F=s|NhCNWHBR9gL5fdXbrhJ;qxC|>45WZ~s? z2ET&=0vglnkGi(oJ_d5~XL_>+m`dBHP2QqSFUZu!!`X^qsRN&485$9rkQ$NNWd)~+ zt99&&Mx#sVb@yAOIBC$O^t_4o9Cst|K65$#(PG?t#$@hf zTyy{JF-A6K3!SRw3Ot(q`=8lz>p1mD>7PbOvPSVdVZ<{3X!ZOkNl;pDe zv4{}xaCjdSXTnbU=RA*`4@MD>-n;GK~_Ci3^p?>!nQFXTD|rwg6e!&eLZ0D@y{NFiy8cVk>dYzhb+xZ32HQTWSKh*Ki4Q`J zQ_cxC){b+_FFnOp)=gUxz5@5mp6s`s$V@nufBRd;+xwP*XZNYyX*sZb+22-8HpbM<`Z>%PpkVC z;4D@x=c977j=2Q_qV}{>6IF=qZ{nPzDL*C~QH+A zBuE1``nhY4AL+=o$B~>pj>Va4=_nc9v&;6Ae{1@ZIq7TJ&ohviiV+A<)9N0I1-^(N zBuQfji579M=%P*cNZYrhE?8+hR+vrL24MW4RQBC%U*w_htHoB;rPodJFB|Alq>47U znVIfP{S`sWARi6u6i%;CyC?1TDC<;`GH9)0F#o%6lJi{1B0%#RDMy1JoPPGg(_UBh z1%gUY;+X9V1FT-d!A_>*gp|Zb!@A3{vwcw)_aCI<1Np{cO6EtbH%)4mX+PJkf5+N5 zrHg~)ntRJi{N<#$$?L2ad+iJWY0vgoW1HS1Orm&?eG#VkXZ!ED@aM;+x11s_-&6hf zmpymw?<#(K-J5Q?cHDFe-@98a-?PV$jeGC)i%N%HB?!tTIr_KDUpc;h?K?%kbyexR z=xw|0_G8x_^L>`@B+gJ=d2PO%wUphsVcYSehrfI5urYrSyi&gu@%+PUyFL%2MH3C< zmGRHWMIBx^wH~V1&(-*J{WY7$RhMlVS6;eVKevsWZ|?jAgKJ)Y^Zb9pJ-3%1I+Wrw zhuk36v-N`l14{xiN1LB+^H|!Crc0UDYd86FD{nA*AZRxhGA$2Q%jFG8@Y%mcpSm$y zM=&lruf4c%O#wlIn9DwaOGL#O6b{m98yOYp59Tc)nqwY5HZM*Fv zOF?&OKi}w^?Sp|1KW(?`#%%j-Q=+y_pMrerG_7S@7e0REn{?3!zvb1OHX@=!flpcL zfJ32fUHFX!t@Wr|7x`Cj-C(FJY%NNB%u!CM8^X8B@JoAGs zUkKI%vA&?>4{h{H>MxS2xJhmD|&sorzefR)6{{@gnsb;E3tX z1y3Pd^uhL9uK?6ZsR^bdZ16? z0(+A}fAvplGmti2JodMAlG)vJdekRh`_1vicU}sz{;wDoMKQcmr_CLn4Xh{q{yF1} zPh4&Po}vwzy-DoDe|G*j^@Eq&J|h-y8K1q!!+t5_!zQuU{mfSd0h658^@cUt4&jD;v?i3!)rd^$YVA3;|X+%Gg~whOz{bZ+F%HS6C6MI zN9S8M61r-P9{<}%jzfHETt@TcH(oqG^A9@li#WN;*pc_$V?6r#N6;D9>%^+p{?u2E zAB~nALOn<{@P&p1AC4~{>ovNV7_pIAtT)L zkBz!de96(q zvKQr(-+0ORr_SJf6~iVPcZz^+EN{>H% zCr6c?P>e^7gUFxA?|tQYJ~7Ut#@rBbL(RX#bx&rT_%ix++5mdpWw(s|wXydHe*R#a z;DpY%zvS#r%QXMu;TW70c>f>I1~E1azn2YOD$URRJoBYz4X@$HeBW;4C~Xewac5ng zqRn@HeU<*<+OU1!r|xf@t1rAo8w}5LED)GWOtskxZQ`fWMKQ8@@B5#wlkr4ke`0511AF2}!&tW6wH$^qD`9R)TC*);=;pW<4$lM*{LC-!=^D~>(KCcrP zPx}ZP*QHzQzi~i&^sg;8;l2Knan9#;lA!X>CddaoBf0Yi!1Qz?c(*40LZ7>vl zzoT{>59b6!Im8KuZ`KKhU3f0y1jAjl!I1K?zqxpv|D|j)70WR^_&Epa)X|FJ9hZ-< z>GZ)A%`1c?MXb!1$3E|1pGXPyDP64bD@+wNm%reE0M|-YTT&R=sDovSK@Jf9Q^q4Tu_0?8g`4h)=NWOZh7SKw+mq zr%T1Sm@XvC0i(p5DLkIP>psx0bBOm>2@6ma$|`}LFpCsy6zxZZ$_>R=IV_0P@fXqd z4XsQ1MFLR&>iG+OLsxbZSX{%dCkQeN`yx*{Eca}~zUm@-9lx?+d%DOb?O8WQkdQy9 znHvc=ZC`xV*2S)bc>SHm7yl{52trj|8y#M+3)>N18x+f-xsGzKf+}9eYBRE7`!$_lSEHW)lPiq|vIr}$jE;fK6ivSL^MB(bo$=?2MmuQ~QzlG=DcH9d z`1mwc#S9J6*jL@pe-*4G61Q|AQA`8djTzHyUCcsWKZIRkj+K6XIa^2wyIJ|SUBy^+ z<{5p|H8xI&6pA0^wgnj0%3|5a5$BG+^5EA=0 za-BI;dZ|h`2t``Ji%xJVz76098tTLfdL9)jk!7RvYpuStPxP1V<{Q!-PitV;j3xPS zimhH_;Ur;L=EcmKRmU=z63_obo5mlagy!72+ZXAG?};9{#AYZ%OK_Si#N6v|@)>@q zwkzmlOqZ0#l(3mIk63J1B(OYoYIq#D*E7|CbukvWtv~2BGul{M)y-S@Fz?G%f?@Xqay*_Nh&%wky>K zljrbk1}$~zd;V4aNs{NaokB78p`|b~)s`_@;b9rV%nMfrMY13El^KH*h!bzkAlug~ zohPn%2KGgrE)A5vW0fGaZHHX8=t$miglm(I!?VjKVhGuw^%tJHAC$JR-hO|k-1o+y z1kPH7P{kp-9lVfvD#V{?)-cL^ArV6HOscjk0KlK%GBzejxL&}4iHzMe{+8gG8rewDvd2?*YJ|1wu*0;e;;xkrTA1d^pAH&7(4BRe!*t*-y(#OC@d`CrK~3eGu=9y_(v&H8V|c%LsElmGZgEbTXK$1hg6 z;rPC3XOZREt#vWk!fgk^nV)Ejj`VU$azSnYTf)EVq z<+#KzuFL$F6@;sV66vO;#$Pa(S2*tLGEKpz!Bm02EQxnXN&8#T*GvBIQ+oZcM_9Gq zK0~EAM(Scr)5hGsC^r^ZGdDd>QOxTPIm{el{>5_ULy+LN2T)3a%7(fBY5rBh<6Fk1 zvpxAIrfn_OKl7ORZ&_8e`WpT9^Urt{Ja|b&FcM2NgCwKIB_B=4OBLv{onFz35uc&u z^(o@%qt`Y=(N+I>j`NRx2ju&Z<18KH24(i5y#+A$WQ)nTP1v(J|IqM<@mQ|^#+&Xz zac91rSa1EMJzHD%JP2;vk4H}05umJn{RwKU zaYcWTJJ`%8Co6WMArkh@2pwN6=D}XdnhKD9)YdpovhG6-4ZQjOM+`Pnz_AvU#_UL$ z_qqSUk1cA->gx~g<-XefAQ2kUcArKS;FfW&6DT?E57V4+tT1LjOYB>aDpqThUut)Y zx=Z^PznUsp2{jLD>&_C@vP-QU|2qEw^jrXexLXo!%el@xOJ0~S$zPum73(GovR79; z>R8&&Oof8IdH!__rnCMPWcy^tCXcWc4p(`jpTtJZGbNg#&8?28J#4-N=Umo3jn`{( zoRav{4sk{&hS>&pm(1ysfP+*c9#RoJ`hNttSi9)%RI& zW8Z1Fv1GRA8Kmj8rU0!~va_GTDm0l%9z)gD|3kyVw_5-0xz~Au_Za1QD(I|q{?nW7 zude^t&lr_)kr*#43Nx8({mdPB(B~}21$kA1LBM|IaGpb@;yzrg!JmCI#R(4b)W;GE zDy!oc8gk`s6YR$|BDbq|@H*Vp#e9-AdWA4{e zdCjXif|da1TeaJUYP+_OOHg9u{u{|e)jmb3V?wv?bS)Moi8ro%x1V8znjEd(|K@R- zZIz30w2@V}v9i(K;bl_Jyf&)BLlw+ZKBJ>ShL2IUto8<|N6M>)~_li z_D}uaEE~qd@9>Io$jeASBG z8m=j`{rOjCb@*6qhK zc;GB+cuN}gDbU)N=0gXwb>PFpK6RJYZ9DKO^gAxv6tJLC8jCixr7y_0Y};%9_ySnl zZ<0{e$d(;$sMVI~(2mAEl!|S^Bo7b`C z+kTO2S!9rh*BEN9*hKcV+F-Z?H~mvjJr(}evNZ!+Gq5!STQjgV1OFj1aQ`!3rVSh0 z`(c+iVE%HS-ZAm;$_pniq%``ytNVHbq{&qVIQN?Z+q@zN&>3#CItI3O#d#A-*4RaX$Pt$lAb<3@Vh!$?+ZGa3digeoM_|y zZu@ROPW8i`8UVq{Ek~Y#Ma;W4=c={67!*xpE zkvc_=a{d>u9sm5Yvt?@2c#t+P9{&S-n|_KmZGGZz*lf`yF>*apo1ykUPMZ>x|MS0m z-MHWj!Jyop002M$Nkli?k*U;}-uLMTj(a>Ye|d)3{kMT0&zr9X>yyuhl_jvI|%1^)P;&D4~x10~F>w<=@Ho-L~ z81AOi%3z)L;VZPk@H{n@!+c_4wO#ksU(Wgca};$7i7uJ7$5pmZOl7Kn~&(|!sft3 z?vnAi@oF}6o~F&D`LZP<#!RY6zc=Ac3QlibPJ8vA{`($kZk~;Z1`R^~$dfns`5g)@QNinXuSQ`wb?|TA9Bnu9X z;_uU5#pYBt@#qx0KRkb&rj1l^n7bMO4Vv3J!SKHwA(?El@diW5aH`z1{(2tQ*Z%aW zKIzO!kPXiv`MLeh+l=phO2(D@$;sNl$El?JJHaOy9wy|?+K_s4HW((+rtPxV4&zy` zInI8wAr~8*B(_>Mj~!&=UO#*Xf2oeY{Q7U&OvH#j@|U#{E$JN}f9*x%T5Y)N_`x8? zhyU_n;{;BDQ$o)9?6u=$Ohti;_%j825R~zTWT-~_^y|q>*R1B?K{OCy}>YkUZ&GHKln!%%sBFa zT;AnTY%t8Jw&!cCnB(|=_s8u!j(;$8Z8E<2*7483dtMYge!ke1y${(z8+I>GRrFO!e*&z}O92Dz9|Fx)Use$%Dn%unf*QPKC+2E#|z z35K`nzW)!s!4St)9{+7N7{b5j@Wtm?zwKK{c#qRb ziF?Zr;6C}rOULOS*G5L=YDaCPc=AgQAKQ4HY4anS96zN^#u5aBsm`1_@_TogPKy-D z8w@|A4Tk<8A6cb+TL0qrF9Y)dxcYXaF6u1(YaX}=8b?iZ;rVJuSON3=@Zk}^C#;)TML;Yw%h&3AE|II5XLu{ARrak^m}YT-oy+2vx}syha4j?`z(X%F znd~I$#YNBmrWao4^RY{gB8}idOu)oSt zU$piWePWVhk(7StLpFNuNNV5^>5KU|9SqUuWR&asB}yw3M=;? z!DXW@h?xhdbrQdIs~T_P^A7>rl>Tx~L019R zVE|wFHYNLc{+P|ex2$TrC!J;S-JtCwAWxWMZ67xh7C>l5raG2~>S963EelZS$PvSf z7n^F}TvsIWVRBI%zx%oW3Pe4jijny*TWzfLoP&~^p&Fc82oaju*bQr@RjXwy zTcXCv$qo%-wtfYmm?k~Z@s(VFf!Ol?+w0#9)b&G!T%oxEzWch+=KkBypXI_N@01`f zMsPGsoqurk`d@7$^4i3Lu^< zVqzIW6IKIQhcS+Qy3_ij0|T3jD`WsdoBfGJWIKjP86rx)X8fYJAS0|IT?v3-!erl( zuZVYN!dIi8|B(h^x&B)&_6uHBr=#Z)ud|f6L;etI`>D;dkYsJwB5F2T**D6p3u=W4 zCEW&R5ig8|q+LW@rG0Bp6F1b%Kj)Y3EQnf}@3Bi9$w|h8FY0ym*AFoSYz%G4P&3IB>ts* z`&1(+IloHTE3EqdgB@_1H?3of0dH=4tNDimCDAtzTIrgXe*DT6`Lx8-oa{JkX;Mal z5<-tH`I?J(++#%OtARxcO|ppSpVcheeumz@=Pv|sGX;HNqnoBjmum!LrKxDHmX?cu zI1)^*^B`8B=#^ zIDj%R5!W|RPcBlo1imGEP1$nY=35p$%F=w}hm&j5GC!PoF*?)a&)rh#4mG8%q-Tmr zo$2JC2zvejh_6e38LK%;u;(_TwwIk&Az^iR5g*_2AX>r%3oh9_@K4PkCGehEz0~ffhz} zmC~eFQb@P`Ew!W25~>@v{Ap#n8IR6?&`e+0hYCm#@kecS5}mHK{t?LQFPZ2(Mizv; zK9)_?0Fa#X=4UY40CN=+BPx+|6ROLMp7oz+?zS%xsRkLmv`V$~(*qmK`F&*UL+yLB z<1J-;1sTuM>U@OL@yGX)pmOO(ykEv;K+Cj!b=pXjrz?7un$Xk-d5U2&V``X__T1?C znfyb?pu}asEg6Z7$&)+nH&R=A{x^m$`5YCz*@ajL-i#A_$+skIUrJ>^a^>3=@*ltF z{9`SMi62c`eMR0g!o;<6BRr(ZG3&pSAuUS$S!E_82*rMV{$woy#RpUQq1bfB7J z1UsPMd%YP(AUz)g7n_dQF6rWgHI9i^?Xe`!l;job@zzA!H&^B}{>ZhCrDNFPfYg>~ z^joQpCYZUlJ z5J2jbeY==TOw=`4$xVLe3jjW8li{Z8$0x6N#W??lf7LzxR*jDy;%6s~!1wvS{d0X8 z`gc@2ZL{}y>S6D6tg%P%_?6Q6|I*ceJHB+)>$J)67RlZ&iCLy)|G%yo)d%hW+vAws zALaSlo{>l9Mvc0M(?jN*Gj8*cwoglMeUB;GnO~qH7{3^t3V++Jo5m#<-afv0)@|bk zeI4iad|++~@{n=Grw!vy_uN6gZqf;c2i+)vXX>X1lDBHKDY!$sdDPsz`pb$b^*mJ+Szp!0&$7 z>>0xb_Mss|S=xd}fkvB}(mLI5{AGwG z=|aMwH?QqN?>4;F=>SBUXw8QQZret``^|#}c5l!l;mGg-wl!l>^7`kf&q)S2?M!LImK)Snz7-Z<~oVfh{_ujSceQ}=G=RE7I zbJpJ9{n?L)wCF+YRBA)rN~(Vu#r*$Sun5aljAg6KzULpcs)?y0VHXv^;5qUkcS0+8 z62F0~)&1lu_#OXv7inO$p}D6qSf{gz14ht;3v6v$V5I|_*R*oCF3Rd8ebErN|JhOV z@Fs=3c&g9BrGCM#%VUr|W-OS~@p_}T53|;K;tF2+`v~;DiYe^K_xc5L0_J%>@2O5p z@i?pCsnD3?7Xt{ZYY5WaP_*;7*TxQTbbY|z`wiazUZpXxB*ZD;Z2{SA2=tzE_8!)?A{AQ*vzR_P ziCv6$RLC5gtuR}?F#6OAX^}BLf22CG;CKb@Q%8|fh2%1~!907}kj&_f1j&n_A%N%1 zNnpB$)I~6U-xk6vOm|m&jH)emze-FxdTNAq3$oLE!UbM+i5~^DjXsY^DI{i zqpSV$jAyyKmS3Q(l!Skqj=@h}OCUi%V-n^|KAZqDJK7k(&RAssof(OR8u|3o_Y_8MVo{S` z$wFQ1B?PF|35%SEbxIx(`T(CXBb$a$Z*=EG@pDUAi*>$C=Wg4ZJgI_V^0$=fXJt^ARJFVbQK6zwVmxo3g1J;9 z#bWn_V+wu1^iJk&7JJ_vW>p`uKxsE5v8zS&jcYzqpjT&oEzdIT>KrJl#$vtsxKq6y zlYO!S8Sk}VTQjb};$nxTk#_K3ayO_&ZW_Rhd_CWRpwYr4oyDnB2aP+0y6?us!&h)| zLloh1N%_Ss>$xLQhSXJu<=#0TsUZ<&4e0xA&!5OCSdC{o-w2xD^1IzAT4??wNIpA2q<+F>A0e0_e0!m z#ir$Cs>1Sxsa2p5(6380EVqzy@yHua(~I6U18&=LNy@R1f4KyDZJj_d$K*wn`e~!1 zGXseW4o?^_ucp}`>NgoVy>@pOi@*${!VxV?Oxod`+w;XLC@I%F1MfoBEjSO_v|>ddqP(N;_iDH^YgMPtn0r=rv0)I@pCYlRAJi6l*dS*xKCpopL#QRFD*ML!ow&=3078xCsR&M%$DT~TbDv-y6PM($*+X%IfS8LqGI2=D zu31MP>Xxp~-zAb8eMTx~u0i!}NUC|!O5;$*MGPV3MOdKkavOz|ft269<_q8W)pEE` zcz+BN(khmUbz#% zbJ*E6;9r(2)HpCp2<6svq;W;nXT`ymZgR~H@yk-npOHwQtuVQxu19*zb5j>a&D&}y z?T`>0WERewsg6VQDa!Xgvz!SM>p_)oAJ%!ncYf8H8F4fB$knCYl-YZ(6yPJ5Vx z3inffOhNU@39HJj$R*2mla#5{DqJo~9P$34u!G4ExAZtEePEu~yTg)@a4x@aw)!%` zdfd9&?&IW!bQftsTUu9s;YaMutFPpr8N6%GoAVt5@@{wOrKS_WE6=@A=RVL8iyt}P z!Bod*M81n56owq3`iyJAGLEz63}+7v{v@jxiBu@Q!ziGeou|usE?ozk^Fy4S#o69Z(qZ3J}#N`n2!Np=Tz(|Nx#q^V{kVK zoI`MJ1p5j`a$SbCZpS+}%%tZxZvo;u2Ym@z1=U1YBL*-gXk~&k)Y_t$%^A@*j+T#@ z&bsd#ZTpKj|Cmj`d|=sJ!ejZlaocA>7t}P{{^Nj>^}ax*u{PteF<*r$Rm04Ez+#tZ zf4^mU-pV~gzklGJfNAs;DHX~wCYZfGGTKQ#L(d@y*;6K07 zb5){hrOpBwlwgBouhED2PqW$2#?2tjpd#fepGBMTLxxYauAa6OGiWgl1{%GkKjsOM zK|eSzc(hx8Ajz59RiDcF<1qKID$!pw^QCE))iC-;^%|AQkmypEUqzM6kwm(L@%--@N_A&y0|Y)&K+ILa9#hv0 zOPDt=c<=m3U*1K`D|JRvTP$7Ue5`txx--H-;aYX{LG7y-rlHl*EJoGf&Bi3pc5QoT zG=65d28U$CVE;KrMq+HIy|e>E$~W~%tZAaQ)~gzEDEBgTb?aV)NSmGPc_bPyNG z=YtVCgyWkf9= zNd~aP9Ct7np1p<1aT@~=z`4(p@h^=|tALPt6Xcn`W$1Q4todOH z*o1rjvPz`Z^59ZLH((tW5$jSUpjNw?r2THskyt3aOzS)vDi}bZ8K*uy6*3F9b;D%! zhCKQ1fK_*1Bd!Ok@eArjnOGEcP< z&&Ccp*Fr3g-nBCV%8r_oWtI3Zr{hg6{zcd#$;_9X2Kp1Qd98h)9g};RRvt?oln(unv82{+ z0FxC3{{)oAaT}iVAye%oc@xiIP#`@~u#4s?f$A)ykuL#NEB`|Z%RG8vAt+{HF`(J)NS zWqWE{7cMa10NA=4XxJl??~OH&ypW%v)KA78SdqOyz@f+@gS6}9B{=CtBWtmWbSs<_ z50B{fGx05o@)v

3G+AYIP_?sWR8LM0U0wtz-L(kvOD20lVqSY^&!*TIIrTNBZSg zLc{6g>;Y}Pim;;7x>d@V$9GjKMd0LK1(?n`f|kiM_2{Cr9{~R$InrHiFJp4DOqJr zxg#76sX_WltLHv8YPZgIWW36bH@ES3>7S^9SAbuFi7M255*yFNn9hi*Hm(^g_A(v7 zK!Ks%NsUSc35WA@0mil)!FSsKr>Wc&gsD^)sp;D9qAbp-=N>VcmJqIY8y4GIff2HCIO~ z_v02~2AYA|PDAW1Vnr^$f_=KDt?=OL3^)syl4zj%*^cp-)3E_g>x*a8;*X8I`9*xq zcAzuT#YCa3NBN^Si#ZFS)>}_6R3r$dUnQD&M2cIDX(1|5UW2YjM5g8?D@1HRkazR5 zuZTWFu=mwS^9_s-qH%i!pM3ESr0Fd~yOpG@sa^@~y;Tj%Gsmz{KjBpfDUBU^gzldF z=pY`RTNX9+xxGkX`Bn6gtU z@1hbnM1*RzN=3L1z{?|P2^HixOL#OV-=+S2itZjMB8{AkJy}TshDM>VIt%y2g(I{L zVou$#NTT&)HX2XGaHs-ykbSaYV<^tmexi)LUF3cfW$*QAEp7DAbQ=q#RQwzpzZYD! zzoDQ!n6D_)=8rxNi; zn_cz2FPMFSibrKAV~WY)$#>T24lxI1_roXQ&|6#d+it1yl|La?ujX(TePcP4ANl`W z8Q5?CIQs-&-)xnx?;utR_}c6?F-+2LTchEyn!9@ExHGqwI|_%;$BcEgLl184wP=Ib z*=zVWs}K{w}0JbDidAZZ4F4PKPO)3we`Cyy1A*(>x5;zg%=+;{p**yK9 z1=D4I?`gD~?K>K&4V;y*RD{2t@lwww>ewBLO~(9*)|xIV>>}a+{oNu<%Lf=zvP?wC zto%$A_&vuukM*2Pp;GbRAg)7{x~ZHLhe7Nz&x_V6F66&4$-h)$D$^UyLv}NYYI9LT zwP9fQjA@S!$Ck*p+M)^=$Fmj7d&J!ddw-Fa2%F%hR}P7s1Stqd?){fx_mOr&px_s9 z#>xq*>ci7{bnnxQ^T4$9%`2iYNkI|Pxj+bJ+|d?H-+Yj-x)SO>Q8c$W+UdUROMTZN z*;l?Ikge(gYE&x#Wd805y6UP}ecY8keQA6jZunYhjuLUbZgT^~cwvYI6zq9i3Qpw@ zsT0GR$CDbw51K|i-~a%ye%W6ko3~uzXw$K`ubdiz+I2-HQVH*vRr%a|rC zEs}UlvUR2}XmF=U?DNs7vpxA8byJO6OiNd7EKb(F{2$zly_)GA+@di?-*X&tEW(+o zOFUMRlonAT=*e`fY6F-St}jJ2gwjw8qA;}i{A;7 zwRAfQ*wscjN401ARnMNwE`n6dYIn2hC{{eGtF9?wL_&LgNYx%|Z|P-sj${3)+V8oO zt_CAL3;F4Mn(B9KHlb%-x@?&GaR;PU%|_z(&JEg&6#(nrtpcEAqJ+==4h?SFZ*Enk zq!0H1ZC`AR^}sHRzCL3N)hQ$rgFXSqr#%BsAxpnW2)0leWvbx?R-*=c=O_`ClCa*4h=eGxPp3_iDHXWC0%s z=vX0LMoF-H#BuX~rf}>hK(CCuvb|m{p#RYH#b8fp(0Rt`mip?RSW@J>n+7AY+mD~@p$0i3dfC=&9H$2BBfW|M*mvF}v zq3g<>Bog(bqNpEK9%KwQ_K++!o0%}L`)PkmenmAS@JkwH4A$S)+RVW3k~1mV+0|qh zEDWYq@Hw*6b-%MhIvnCb=kS8=y^#;+H=nM;xHE*w{q|?bqQ}rv=JkErhpl&RNEXcL zd{vJ6qi>_G2z2@^JP7{2F;MLYdEVLrEhLPk1!Ry{+}y2bIhhpPpJEEVo;po2+BqNvyb$VC(P*v0f1t?L?aQAtTmM!2cd-qqI z%iYj!{He7XqGc}rawbeb$Nt1L(!F(k-!We(OjV;`lgP6MMEPr-TTNY~+sR=B(?H6;G)_6v0sIv)wZ%;43 za9$7sw_Ya&bpOZ&Xdt*Qnzzto4FdNIU<)+J3h9y%8Y5Q@0RP3&qovv$;i^P=NLJ- zkDz!y;n-jQV|&DUOZ{)#<4vMqM%TtY2zG^91%OtGnvWOu=I%P8n z#V=o?@f%pz%$=#?8M9U0CB{oDf{$<8-a~hdGfAuSb%u<}*CED$TPKna`|*0>*<63w zeyx${vR%`n2B&_GaF-g%b+|d?JJ5AWCxH&#!=ko_r~7r7OIa5apFLi7nW9v^hZNd-{`B-yKK63Gc=+0n=W@;;Ye9cf$%1K{R9NGKcd~}4tejtr{PnZ1fNXYkS zSf3)^{#DZRw?evjzHfxw$nw5{OU?Dk+T(c_LpIWX0cH)7F2)718^$LbWo{;6#HStF zbW`8o;DQ47W?=_%N%_lrc5`xD--t^Wq}=!pM}hh~jI<*_b?t$EyIuh8pM#n-#orl^ zfquc{eju{L`RF@0R*&vJ8@$Vgjr9-URD^2(ixIgzaC$HhCC)4!Gv46j17)!2qzWDot$h^t7}*ziVwtNu$* z?myAs4M}XWd&Z)pJKXfWgs)FjzUdp&OBL%rZc*MLluAH_iL6iD4+OEikN?~YE`8a7 zy@m(mkcqb~A{ayUNIB!e>PRkT#bm#rZ26)qBYO4y{)o+s5R;F@Lh^>#G^63SI7X(L zfuCKRcFI}fkC>+0|BXLSR2gfnPi)>vRt~e+7IdQ*Y}rVvo=;<}6ui=ePw2E=@)v_Z zdHu)pSjxqE;RRus)(`PhPWh@9-BNdhb^+P-A;QXZkm-ni9Q} z4e=>M7JF-!A7bt&t&$0-kQdKozNu5NUdO6FiPH$V*wnCy2qCzpX@dgkJRCzrH%bDs zV!9W!v9%)7Axp%KsycZ{pE{$HDYG^liXM4dd(Zx z$FF-Ir64A&=gMIeT(j#s!E88Gnl$Lq51}x#6QZqv)#6N0kbX9g*3GDXSTI7jd`9gl zu$me@9j<2M1`blh1+0Ghq%0NqnP-!;&Wgppzo-xUYWuphyT`fSKCT zEb0+u>2rHqRg~xa3?r^&`e*HewY%<`kW9+h$dwBbKHA9hLW7RcHB{!astD)A*%;r) zSFpfCotKPTxel=zr`)>GtBG+X7X*h7iY0Hoh%R6uRrBzk3CsDkcxF%zTTQe%)&AnMuM-A6Rtb$d`tmF@d~E6>Cg zWRv?1B{%4SfseFdb@Fp5rvpKY&e548Lgq}tm#l4>NzA`r9P~5&T@7f+<6{Wk^JFW~ z^&4q8L+!cnquDr^~m5U35R!-e9|C-SlY|kc@nsK$0eej9wgQ*IUAhk z*+;xAliVrmJonOBwWNO%hH4;@#Pao>G|DS@NS+Se9Nh^vO1`n#Ph}dh<;o#bmUIqi z-j`#Zqu`)bQgaKfl8otI&+}MIPPUDQDz?X)vb=n5J$FtGqpVG0io4d)smx&N{o++O zQgZ{og>Ma7zIJmeBQ2O1+&re#l~TK8&m4F}|IMqmS)D!<5Nn7YPl2&z3>o(1+emK;lv@9pwUh<8Ojd66z!aUcRh0o-~%5`20D}A^S^q zwTTVj&}c39JY7@Ciag3WW@&sf3y03#n;B$#Bu-S(*W+ytI&|i9Qy$hH+mv74LbV?Y z+nr(^h|9f3TE_t^*BD=qUF9;V} z8_+XWq(779OV#=(R|Cb$*brJp=XP53xyNx9iAyQr~U2VHW*_ z-fJ>WwXu`4!Wr-yxX(>tz6#c~!f;MiZ=F9^dswf#$BMNyzE<_CuL>8Pm@$IJ_=1&k zhjlx46D$!=<4X4@z6Rtp^!jy6yqn?|63f7nQU&M~b8j{Jb_~CEWaW&pt$0Ge-D(7c zVwv66$HOvx$c$64`F&r2Sfu^FtHk`VExVUqDMtdjzuWKh^<7-GAsY!(-H5Z|XK%6Vdjh zkiG_=U_)K)x-tDiALZ}LdljydWHUQg5aqk;RzLLE1TSWJZ>wU|Wz)oGKF+r?-w zsgu_rtjDbQd_@tQEdImA-BZnySldFbwq458;vu0Z{IM3WzH?8$Bhodkuk2QhJ&$)u zbL*$KEjzG*!v1>L|90}gC4f%ZACQpfYCpUe<-=HZb4-~j zX-M)l>sT$=XnA9GNT2?ymoM%6vh--1l*s6p&LU-G`*?&bs_Mu#9W@X^fCZ*<$kQ zu?#f8cCmmc#&76HXMXprmNV*rA9{07J4uUOd<7HC|39Why~Qf<lOLV#v& zTiH2&Fe1apJ>QDeZpU-h^^lX3ugIMOMb$gR3GLLS4}AF73HR{)JR0xy(^lj1?Dz$& z?8B7u6)I}PN!q2zDU}eCA(k-$PpI#@_6JG%>_diIiQgHP!K&$2WyAyzAAwhPuB*nz z{8{!T)O1j zT(1{#kE+)NaYx_UUtEamJbvubsOITCeHN|lDO0PNB$XDla+6)-HNWfXNYZ&nu zAET9so+&azlrLpZ#YkNyZN*I0c}^hBLFe^~kOK|uWEoyv9(VRoQM)5y z+tV1~;B?ySRj8*8^!kx(SRl;dw9 zEpUnFh{W{3cZiq2Q2CCF`T)-r^q4-wXqzxNo!V`oanCd{t*IkNS~J#fvt?ESes5&k0@80o^}F**LIR+A@J$`qYs_ z@uQ@m4}P1VOrDG%;UZj_=mi@W`jv&*O{c#yR|$kpoqEZ`o>GjU+=(XO&ef27*;teq z#rXhy*!_=?XrCS`r>@;+6TnRYfMlovNw`W{8LG?@T*t~TDu7vy@j}g#x1J$UGDpop zcN32?31Rk_DE>Z+Ht=QJ=PLwD+kXH34ac|`gasU5+mnOlm@R~!(fU}b$t|yv5Wr4X z*z>clb{t`@-6Ed~#zyn@$$A&yp#uXYAuCKLFl3%(OpSFQ9h-b)>U0&R=&sKHmo_8@ z9o5xqygoMEucto3W%~hghCg~*1QkChj(4~mFA~v(;L^bM8n0sZ_Z+`3aL$lr_;p=R zQ*oc{N%z4%Q!M~c={U8DQG|9ij{0hBTQmRsPB*UDgrlXA6~XFneLMg8sircA8*xpy z#SrGCtbTc_+vC_WD_1LXLFtBtu0ECpU(Y`6a&JTF<6lYydDBrA;7@1*UI$2M!4P3E6eXTf-jA2I zL^YeRffo$*)q`FZIyNtINo^229{SpQPc(&fHhgl3tLj4~$<%f7Knix^ZF#1}c!vCJ zX}tlhT^`%&fYrGup(y5Owuh)tAwbQG=;ovHeDlC8wVpbaUMfihB%v#nUPHBYw9KrO z!RU)>XAox1<5wj-D8`_vpeO0eXP}F?MmNey!+-B-osQ`AYeFHEW@$e74WW%d(H$9? zwO3>{S7l6F@aLhk$3;!#fgMQ|SP^6K@o)W6?-qsWCLFQGQ=rTylL05D_@yw~L~F;4 z^}o3h>f?n4C&E9z7c0;4UYr?+F__mQ1GL}OGgO9md3FS!kVJ64{FNY7dE5_cj*pl( zeBBZdmYp*goH6*5@i!h@n*IEbjk*zd$!ZYE3!}-pAx*BKTDHy+pRZ)!C!DYqqVGaV zcl3>vT-MEgq%Jj@veg;HMPy)x~I@5Rv4A}!!|)h^~PT5 zEp?lsZ>)9S0cEopyH0F&jIWkJG9;YrLsDGUp0Ql%ck9_}8Ir0#m`l9I+DpJcHaw-$u5)GLfwc!xD}+@7`rDUG0A>7<%yGR;T${5l^x-*J^`*c~rr(nJw2& z9}mH?P$s%Int;!na92Pu0=y!amcyebY1k1mC_o2zV_r z66I#1>Bg~Zfnw4Ytz`$}3X)DuXS%#Oc&Yqy!L2(&=G>eU<^!{X5=NIlTklF6o32Oq zx+sY3c1?~+>}|gJ^z0`f^ur7G{U)$gCA~SjxiwpDw>CS!&1CT;x$>7OT?>P#_pk3Q zuOa>?>&e#Ho3wAY6XA7ap9fz z%2np@W)DksUBr-L@g5K31F#PKkzmvCz7pze3+q6<`k_2gcYvr_5TC(fU?H%FaG3hn z7fPFjf@QbqFYhxJqZ8p%B#N$LZUSs4a?Y*?f#2rYwOnXY3#0b*5(~|8w|2f1qAPoK zk^EDck4XVRxZ1xtZ7IabHOX{2Nei$49U;jqT#zgkUObxOp`5$f=R?&+~GPjIxM zh2y}Glo#qsTl+Cy{F_4|Ch~QbgrJHa97*rtzR8`Iy+d(xo~$1#(VM;2Udx(o ztyr-I@O@H~X!udkrzY)o!?N6m9?E4kyFTv^?w)8<)P2hkW$0WLD~pvYX=)51Qf_hk z_DHhgZ=jM5m!yqK23MKnkQ|A>pHhK=lZKz>1$BlK;qNhMfzDR}29>MN7jFw?tHr=w z=e?n?wVrRrGUI}~2n_09!_I;-U45b&9XF-?#w6i8oI9U3Z|*DWg85fcn=4bR{f`{%~1_J*wUcNQ&9EigN3$kurj~M30*AvxjE>dSHPp! zW0Vdf^oFPV6-Qy!Z0&u0B!$=qn>O9IUS12`;b@)ggGE))rqxWN!6J+3uQ|2-@OW&r zm%Kskr~Gcb0h!eToS65RUsM4G7Ae1DKSjg0$U*VAysEsmi!by0K-5#F&Q@V=@|K$u zkLX-=w=FRfP$(|LG-VB~3y{I%jSU9xPhMe?dHoYtChMCl&MX^4tlr#V1g-_>&Qf7j65)wHLQ?0c!($4=Qgy1@8Vz=Og@ zH|$2d9J0;~6>pii*aBF%sXceC!W^i0{sb+g|J3I>7Q$#s9k^T*59%A{KPQw(IcV_N zwxJVaD28|^7o2bL`V*Y1qzN%kb+G?M}VcCFz zrCsm)SKb&Pf+Sn4N%=*3L{QIsa)t8ml)-CNp8Fn}t#JXqy#13{{voL=Pt?$@!l%^i ziQPFK*|-*phMHPyNPRfbYlp@kji~?;>4(7j@Yz%I+Bqt<1o@dWl)+ly-2BGFpK>}# z%jF7^I**6ixWq@@6=cRa^O~hDK4r9l3m(@SC0L7ePxRexf{XxcvD$IJZg~P}=Z#qx zaoNIEaa0heoiL1ogjKY%+Ye+(CZ6kqe5S~HwJLmvM6kCpWWGiCrw!~>KDz(1S|p5? zETJIkMZ58f1{R6c4+;>4HGkIyf zq)E$%zyR6|rttOx7xnh3`(j^D%%!X~@E zUiItk4>^d|-ao_9=7U1GC)e)7{`!Z&th({y)0m8AT%m%)_Wj z>*YB%dI$9zLMDCQUOQVGeImLt4K6KM?N@jj>uUamD>{n2`^f5+@Dt=AHPy|RhvA+P z{`uHbic70KDBw0$&i@N(+Uvs$2Hf4;^0u~4j^P`xyRx*t`xXHUAJh!l_nhvsPF_Qv z>z=-c@Z8gDGJt9SqTNbvPBbig>hO}v-E#>e)%H^3y0gfGEW-_bodlF}U;4v+ChS|! ze3VeoB5470YyiL^`?-Yn8~Nxq9Trz#9ja!vn=R!&PWV?#=0{4qME5!8Nt(o|IH~M= zxyZal-+s{Ve?N=no|A8Z>e%rlJZL(MEE<@XcAOAT!g1L}N0MclGQVebX@$ zCB0h+w-cj4P(oNLQ8_>6ziLHC1OWKHK*>Dk1H&&QzFL!=&p!7kV9q+wBr5k#EZ6xiTwb6#$dgU7vAonKta=g+pF-(*-6M(F@<&hUG~u;_l<+Jv)v#vhJ5 zPY_4+(QmuwUiT#3>z~7~s=fSxxglEw#jJ71>nZdQX zp1FF)%GEgZ$R}u4>(uo$jf)a7J>VwskKZhE?6a7;C*b!i{kN3-_L~`-(?6|3WAOiAA9Ty`#HV!jgZ=)Rk9yntX$nZPP~Z|q|xCalEQdMym*+Nkc| zjc{+3O>Qdig!EsJE!r-&tx|&mig6Zll|0K22bFX zQFalF-vf8bn~(O3>)MxJ+#V|xgs&jGeFcu(X7LB9Q*f3xtDv)lEQ*J&4$Bo!eE!YdPpk#u zMj}t>bHfptMfgGmI4js4cOI*z&X@VVuluM7poQ`8z8!Dm0-HMScaEl_#X9g`#_eO7 z`w_QV0WJxLy!8t}w#M}#X5QC#H^=iq;Zk`_Dwim_*RfiNY^6{&Izg$8DrD&!3%L{y zK=^uEMvW)^`8AWoeHY`7hP??1RP6yNl!O3q&j}>lzg$9ZG4-h+ci-U^F-1rB3=F=} zpf}{mC*!H7vbzD`9q7<;ZH2UJ_>{kEN7%~w9}}{f{hU|%-<5=SsT$9c#uecp%l#vj zsvG2-Y)Q3or1f>Vrmj8g+azN1(L6h_0Zg~O=Q6(P9GmU+sq+q`lOOLhweH=kg0*ix zmI3pq$PPCxrHgu=&Ep;lUCuc7uY?@%*v;iD3*}}Osm7u{|2&%W5!sbm_&8vd4f5C` z-7x#Lxka?FuYO7Pibi8@shqXk;Z@AnSSmZg*JjtvFF}5P82M(HKAGSf8p=fKOs^_w zbi}K&xh={wwX8W2y|j^Ot>^#ehLirJ0d1{Pqcr;)y(!u=N?L83oN@tG06!zH#_fSR z=+QKLeqB}RVEQaV{%d0X{?IJ`iUU(V>XV;A^C(x&uWKb2Ij_ZAd2ZztpO51=r#m1R zeR%FQ@7F@Ols;KHt2%kolIRJD=8XQ$2|ambFJwnALMd{Klf#5bw^`}UNjsLLhUr~W zt)7sJ3yXS`UHd+j%xnAC{^atuje+K|ri>@=D`BrTf$iEvPfIB)3J2voQy0lzTd4Jx zdd7yNeH5d;UQeLnz2#l`D2btQ&Qa0)-uOqsbZymTg8t#qk}Fc3_JSz?xs}zzp*Je6 zot|6=$1>oLiI%RdQvS2H9YTuJ#WNygzxO`1g8z@l6)oF4A#1!!8ej5i$+2};z}Hbz z53_A}T(++L-w8}?EtP(Y&>Wy7@2JjdJ~Bt67Ea&9NkaUq3?Xg#!=dIwVxr+H^Xz*t z@ch-Ejdz?Ckf$Gp2MVkUtJMWD(S4U;j+qejkX>)!_O?4mZ)DYDyA=8dp>Y}ZbTZv! zRT7(Vi*~r^wGU$&Ejuyq_Z>qH(CLX+kGsd4f4E!PxtBM_tZI=RE-((U^Y&t%=Wj+TR1N<0@6A@vr2CSG!InkUjjIh(p#@OHS;`b_b1@XAgE_4s7(!PYc zu=tR2(s5YPd|@fRjTgI2!m;Yo7XvKk=MTS7Zz|=r)0loCOP`=e|)jm za;6e<#{}CE9*HreAXj6QI7AZ5QSSnKUrjs9Z{d4dzTF_AwwXY5`YL4sZ!buZdLVPb z`N5v9G-Gh2?3NANJo$m3XtI^`A4CN<)@J9UZr{kqfK|D*=fyx zU>uy)9}Hjqe(RNSwE!%&W5Xu8tr{M^qVJn(`-&c>PS-A_86aPrUH!}`x*(kEx~1t; z!{}C;69MAc`T3U=#8%sev9LO0Hc+l()Sbx8TsU~h@>sy)`b5%80_#1R#V$X_Yl_Er z$*_1twEelm3Rd-!+PU#H=oJ{q9S}htr?ItkS;ia`F8A#;24SUP%2K~mhl@Y(lV0s# z>7V!Y$in(+Mm{NRT?dxOvS}-PC(qReZ8<9?i86k?$>zG#KELCJ6w!)Rl{Juf^3GD~ zo7fd`ibwCYOm}fcaIMqSaG#WoxI8bYiqFd*;Y%T*(I`_}(N)b_H6Co0g5z0Q(uuR- z@wiQJv`EoVqZX*~zpxSq450w{*}g_T8O>K4AzCO1%-itEH{$)*30N zGpT!GLBzpW-Q>{BE@6W(sX9a z@Hr2=liNu7_xPfDG-ij++Vi(;ZAW66u?Lvf5jH46tk+Sh2J3k z&Ae-Ct^2V_ZSFU9fYz>M(X;9WWckCPO@H0fZ4&)tSm18kEQ4I1g!iNCEc6W9>dqV^8|$swD`Ghvs%>7Ly&jR!wnRfs za5{g>3X~w?_p`-52~$lSi@Ff|qJm#Z5^eLEvgoWo2z~`H`8%skmz-k&gHVn%W~hnS zrt6!mcv~}o)?rs&u1R#2WP-T9-wyS|j9vapJ~9a2@^!?stOQn)N^5dSm%*oF-kyN$ zJA3k7B~0;NP{n+Oyi31`IP@v|!MLZ+F#)|BoBZ}5;E{~@qsWf9(rA}}lo5>Oh$W1v z&%wXx5O&&2bYXbd*VWkK!IW9oKKZll<45w4n#r(njlQpQZ=W3Kx^t=nt}Y;v{Cqyl z_ZoXW@@3oX0ER@?w|Yx_Mas>OP&Az-d*vy<5j@O%|I9udwd&<@0yCw(mST}}`3Wh5 zRJfkb@QgN|95p;rQZ@k8r(->~1xvQDhB>$DZVI`@AdxZj{r?ocAWsyL8znHoh`4T$ zwf1&;prZDIZp|rD9IqgTLLTCdS_wfk`hpO1@`TlUx=gGN*c)NY0fW9Wn37D6A$;^y z^lO?}Z%7n(h;bYiHVy)zPMlXvlhQ|r$*)jj*KXc-Gu$gHej8^tkdT4*-bRKT0jD~i z?%SCqQ75K94l^xpUcE$n8kl0b06so<7?7XO-7HiJ=6hBGSXsgTTk)M2N`%M&c-A3b zF;K|X8TtpEUgDU`31O|X3i;GHulyM9qX|-|u-- z6%Z{7dONzPe9%j+Mp-{U%$>%qUqE!+%KM8}lp5SKLnK+AU;c;E}$i|kfXLOdd6iPhuHFohv_Q+S{BWV)MHH=bWiVb(b<@0fLm7a|4; zDG1xq>wARQ#Fd`R|6=Mq zyy5D?wvR|eqKoK;Xh}%)UWO1PT0)}t9=&%)i(Y~!h&F@}(L2$5H~Q$E!4P#Y{qufn zy=%Sy!8vE|b@smR>$BDm*ATNu(uQYl#m;dtYQ+Vkk+0UD$#YA1W z82s&Z8Ki3~#?UnuCJuEdRC*yyZm*}7RnkH0mI_E03Xdy2j zIUsJwF|#P3)y*;?@SqEkRv3(EB9KZn$Z5 zGbN}35Iqciq{@ODs3}ro=~w>G?NGoSTY)2*FL#q~3xPQSRy!{dfTKt%q~lkY^z|X6<8I%;%n&4eoi~+$ zwN9+SMiX#3`UHraK0#ilJb48_ zeJC1Vc{61M3VD9GrjNB0z+EhXvC}t*Oq$DZ<=z3+ZJxP+R=F3FXD`AEuHT&Io^c1? zfH#VNnrC(XqI`|TbY1M9*kT*wPlHdeD}J5lo${g_=^XB+6PB;kUcert>1OT#slK0D9+O+QtFE}3o;>sD}etK+zaxhEDkvY`3n`ac8qppT7I|2nF%!vL}gG1myoA9iZXxp;vW z;_?rXRr0yls1?YS{(D3heF!#k#XM9uCnNAf49Tlhn$oc-wl~)LXOk(E7g)?jASbL3 z9PA!+$_!Y&b+740N%*j!_q!aep3DtEp9OT4hulhq5L{wUL;TVEfG$vwIY`LY<6F*z zuk7k`|M~+F>^y_K#XzSuB?xiT5QFI9fvL}t1^hZdKyqKU`1XzD)elIG0*16>1FsAl~_uRmky79?0MgO(*sXnzC7S@I7{ zzX=@DJqLB1twB1f#OCO7!5SC8+>Vj%;(*uq80y)3{Tdx;PvmKla*dnlLgC?w0&w?2hR@B%Vpxy`2LP-&$|>=FIV=>B+nSAklM>YX;kJmELnJGvZ=Zznv(VQ#SIiIsSN6SmQJnsov+Zo9YoUJ9x8 zgM4h}pro@NKyK-Rqv94K7^fkZ+n`u5BRf;bXe@o-hy2$E;-`Mt4(I~P9)GUCs;66l z5o`ElPVBU`6+zy4l4`iHF`wq>Y3DX>HX7ZlbgKiBB=aNhi?g|)tL^Ir`XY_idzOl> zLUCEN?sBRUmd07)ubJell#dd>HE!8oH=3?I{+&gyq7{Ix{ZhnPJ*_!Du0MOW3cBw4 zk5Tf^;3+%HfBzlP&rfbZHc0ipS$HP`M(Vi@oJL-w!A?#2YbCzdugO;CUD++E4@%2( z!e~PN7%UFkVOs?+!1qND$8beBPv0fbMLQU{*MOvfYOHYr6fb6Sn_eGSTX5jS)Hs+P z5$Wb4(U*VC3fg;mZahBD=N(G2-!bk3qtE1Mq&E7uQGlSg7acf0E{8$Y3v(!NB>|?` zR@H@bBY|zRSk54x0xKSjr*z?lN5v@HBq5-qf%R@VlZr1r!^IIH(f_t;$XKC_C*Vwk zF|iq^ms{u!EFTHv+Lp?J61Ob!4`qeK$l-`ROTYB>M88i3LqNF{dPRKP)V~-wEKHYe zB9|O>QhA9xao%|2&M)VklG^C9!DZOYL{q}!ni%x2ND8{pJ7QZ@j{$RX4@a$8o;jZR znG@fKrU?|}>eGt8tiY?!rZ>u78TL1|#yn%T*If(BVj71AU>8+W6SIU^pPz;ddY^B= zudnhzo4n>q5}5u;$*XLCd0d8oFgJ0v9nmEY5;~Ug?xbZspgC@6KO2TJm!fds@WU+I zKZZ|mHSP#bk$6h!zCA!6(rgRnuDs_QI*t|H;#U}?s(7FaGnhm<)m?M@Gl`>o@6VyJ z|LPTfSHU@f$q6tXN$Yhqx4RYNq0o~lWVOQ+J4cO{))M6ym!sp@@q@_7rCIdHQEp@I znyQa{PZNi3z79>6GrcGHd*-dpl58QF#qz>&7am*&ab|-Kms{)K;Oast-jUpFUtIFy zbaTt*uM@SWbYCQu?NL#Y(UdSj=57{U$;ZlTmfYJS5w<{D8v*5^X_o>mXHV|ON7}}W zBc!4JXyClrTRvH|<@=Oa zzV$xhjBFQ=i_?5xa`J31Xz^$iYD5VTH~pQE$y3@Kb7BF)zZFv9RZ@h5L9^Okq@CZ zBPuRY0`cp3`&3g18b$f_uSzR-t2?si)B{Vn)_1IAUlYF;tRUupG38&jcqrwk5P&tn zOX*t=P(ShM(VnQsH_0A2-e>0WgROy4vRnm3OkE`CYMU$sI{sZM>`(^#o;D|e?V=nBlN|; zc4Cm%RYDi7>zR4LZCYh$rkW74P-}`dedMUP1Rm8m=Kf7e? znQc4tt90h+aA95FmNgXcYz%Qq>=?Y9aBYcgb>bz&=#HWnT9`hc;^Fqxxk{*QX+;?+ zXY2LGyXd?2j4DjCT#!@~Q+L_vHUtgw9rVF3b;n7Fa8W#asl7FUg0Vd6ZwW#+>5xfL z^1p8(brziF+5cDWzm0S-2a#oNUtlCcO}n3lu-M`yq~BJ(J(DV12kL&|ubLyCog@^E zf3%Xaii<8Dc-@~nQUL@0sd|p?=6T#jQka&n=@I6cLWtka@8*U+{~H~8UU4^rS# z^Oe@N;s>cYKBGaGTL^aOdN58soo-^-(c>^~DfvNh^80?Vxx3c5kl{DSHQRLsj#;<1AlkuQ z;NQO*v7mm?TYHLf3}1dszGKXO1Hyy|s!J+EgTAq}6minbaWX8b)Q66m+?A&7L?3jE zJMk%mQ25(nWvATHYzo@4;m_A!WQ|5^SkCXGeX{b&$#qG|oyi6Mcew*=M$KYn^4d@HMtXe3+JoeQnwVR199Fa10mtxV#7p zGySY@{t)@z;@H#a)YHmgTQLhLw`lwWkla0;iE~d1VaK+pp?x7t_YI@zL7hRk*DP?uA3uh2G`3 ztG}Uc{8>(XeHl9QCLr}jA1fNuT?EJ>uUF6$t8097dao&_E%|#-QbYA!>jX=2Gb*E( zFz`Auj_kD&MtDSF6HXd+uw>5kd?f4ZJgEYIHiXK*}w*RUe=5u!e<8Obh zkOWpQN_62c*Ym);dZaJlR4-%@GSqC2Y?Q!c!<#`j^jB5QE16eol*fDIRssAyte5ip zLiVejU;)15p)WQrix)|`6204kMcWLiCQ%|1DCOcj8&+z;yAdTL#gwrAz zN)6`-4U}hjXudObcA@y@*wI+ak$??-eMarqD%QZ-w0KTl!jcHOR5wS>7_Z8L)rievs}wg2PoM0~1Yp~8ty_`sU%aKbpy|G$|~ zvW(Va);|>(pyA4`FFHcr;ue4}LWUKx9f05xp#u4uf2FAJ4iArFe{$(!+8-K&ajNNn zXZfE{27g*-nS~rXSM;!ScvYODxhS9g2r80c!6CGSj>d78Amytmd`edN!6dM~f$S%% z+>_9HHXP|B11p13K{!%1V5D2{(%Mp+cnXn8Dzy!$eGqILMwa(PAOLGDdhd16qjyep zcf4=|$t$hdTaNv=T^K1)LY%FH*J$0xpK(&EM$;to^yVHhop-rg!rm4I1&(^g|6 z#V*JYuAn%^w%FNEif zBrdcAGxJ+)>qDoX>*zj&2fi>n1(IS3pPm28C~#16JpG=u`d!T=`QZ=@1qkF%OX*0^ zd@3yzjDxD}4=C;_a87#=PfD;51mmfnX+VyVS zpSyJ&JxTJr+V{ck$;fBDcjEft5FJKqmQ)0iJT)97REGIOkpe(r0`LOiJ3*CddGmbx zXL8Bi3RDMIbE;O(-5PvRhkbC6!kyI%Nv`xFn6*|{<1%a}*C2z+jNlFmq1;<*wF5@`WLhwu&Pdzr7Dm7p^l(mw z+SxB?8r#K^>^6SL6jnwZi%-7`sK?zP()^X|27Ls}>`p2_Boi@*rl!#05R`NzrK8>>h-MZw48NFQT;e~r)H6M4*wQai_VXVE+2Y|SX3-}EcAaYK@*$JV^KZ{(PJ3X%Q_3t==}PJq`wj2kcphPa z?&phY(pLpNWO~B=mUT0?jQ3OIh_)h%aXTv#FZr}$n`qHF@x7+L4Ks_mosvj-Zz@^J8}mjbR>q$9=1W1sJ%6Kb3RajqRKn|Aaz=LWJrp z6kjMn|2ygCxM%AJuINt80^D!MF4;Fjg16>ZoKTeaZuu4)%1CRJ5C3elpIwANI|)hTS$qKj|i{u)uT!wDdIRPe{&Jn z$V}#mVyny>`7Nh=Kn$9^;e(SVSG7Q}AKrAbejgae{qx_;rL4{w$+yuZNI`4Aus}JoNiKf7DZzQV24PzYt6@--s@)w#K|S<$ zut04iL*gu!-X!3GlWMO=NSY`AOtl>Uyli&3x3m*BKWu%sXJ z`x-F)`7ERS{3$R(RM$YlEA@x*?5>Q~u15Am%B^!Y=Y=h3w^rMkl$~KNW=yfv3Ad|M zp5s2!MV6#!852zozDoQ2*(rGXHxTdg4YnCv#U<~YyVg4LOccB`@Ze_|wa_^x^U~wU zYtaTjrla^#7X#`q`Mg2Yy(M_8@bVgbU#X$Pso!pl&PI`i!hngZf#WO2xuOe6iY)VNXP!e*I4_A>%Wa4 z4dqTbI4b|RQx4HNySoNjhQHGZfp4}1PxS{8X;Por;+o!K6rZ9 z44c-7K=5heE5a`oBDG-F{4XT?!3?y7|K`pooT58$JV|Z}NgKZC%|+S!fDg!=d6k{g z_JQ{@!tPtMIG{}_mTAQ#W?Ncc3*mM=GX%Ijpo_`nX5!$kcKc?Ae^E28(>abj#)ta%ZM^xMb7?^(B@NQe`gP5zK{lQ5?|Y@p{A8$*QZ z7;-}@O(TKU3RykwFh-BRuz87&`Hhm?d`Myz2Q?f6eqM%oP`yc(=@aa58j&z*BqS1m zdLN&I?K|e`pIpoKPjmr<`S;sTfA~GI^gQPZj}z~4+->n6kJ+-`QR9YW_lr9VR>bqCvkIZu z{m5#*>@SPrvjkd6P;W zhVTkCi@HZv!G7jC0|{8j{-i4>ie}VdOad&l;%ehC;f;a|(aAfOkbX=I!|+HQ_H8K8 z9HPqbCvW{X-Uk~;dpP+bnEYsz0J;q>=!UAIjizVEOCquL?6biqO`XEuEDxpK__O1D zlK%YKKtP-UI~zlWZD(A9?hPs+)W*5DIWhXopMApn?Q>7)57X}^9Rjpzg*RT%`Kh?E z#lUx(eNVKfSrDn4&l_*%4e@YkzL)8w)7Vp-;?viLd~&IpdoNj;(Hqp_ciZ|dnZ!$r zQR$h0gFc8-aS55hBCocAvSYgag^X=nk zlZTxb->V%^|3~60BLcG0osp0s=<5PYuM^l^b7WcI$=Ucd!)C3}&Ehn7TEyv~H$6<{ zA9Dp=2!q77PP=YeZH@51NPJ7Zrdd_4Tl7Fo#eR%7Zcq4*7p4A>G>V4jW!KaW-5s`` z_4nNF{UV<&LR~3=zY4+UnHztxy!eTYo=BW@s=URpxnS;sgu+r+4UPujtNi`FP~B*V zi=vcFjMVwS_=6D;@lmb-S$fxq9&X!QtN++!2%ktA_ldQLV$zsP3n1}vvDt|rG;zV) zq!z#b^Z2a#_OjRP0r8f=L*1`G51F5>XXE!W-{|6xg{aIpbSn%NQ0na$LoaX~3t746 zO*Yxd!yT5E&<}rEe>mA}U4v=Xsi~NQi0?+)s3#X~6DM8>xsR}fCeoVE$D^(8laupr zP`r&nmh)Y!Rpk%WrwqQA7cUo`s!-;oOn$7$3$%WHx4NK!QBI_FA@13jc~xS&>2lS1&QfbKmXB zt7QGx>0Qld&d+6`y_mihPH;h%tHSvQRu-MAlb~H+;?UC~hVS9H)Tc1oD~pL=wccbg*~1cTQIreI z!b=C5e)vfc&a2rRceByhcV{42zyNXRYPdk^5zH}{Rg|Uuvpj>{C^%Oq0nM0*OBif;yejg+Bna6hgWnZ^9xuARUL1a>Ni2Iw z{w#R-l!@;AQa`cy`^4=KQ_wY0kZAo!yO$@)NyRi0HmD}h>^q9^yhMVC1)#L^kj-|b zW)Op&$sZBb+YYuCqMDQA1m!;$!y>FvBJJX-mldb>IWlaKnc%FQkN%}3Ot8O99TrT(gNS}js|KJqrBz2t9^qLOUsxk=%)Qo- zVS2ZtJX3BIV>-AdlnvZn+d2oL>5Ir%oUf;#L5RJ>GWQd<^!QnOHyoV`Whn7~ee~Xi z{UTs9aKIvG0!N$3Bx7=5ogqd|Z$C_-rWBEbl3`d-!t3D{?om%yRC}1&ECdI47sp+a zkcese4kvJ$>HKV^b=R5ecISH_tT2(QRw9&pKHd6$b7BAMl;uz+DoIhPZZlEHHWB@K_gk6A#pY$eqxII&E1f&hW(l$cJ@7 z9rMQwA?;?9$vw__*1k+l3%sprJvc^sj~I=j!*60ND+V>O&L@$~a{WHI(_;n9(?Rh_O1_~9l?l&K)r)GPF3WUTThfcl z)du|%uUQ`Aum4P9y}dylu#SyZe#Nt53!~yuw0z>!>$5@T{CaVfC-O&-(r_(v@5mTB z3Cb*O{_K&TBzLvIrSd5CMd4XRjH&(Y*{`SdML25n5TS0Vsfz@!!q2Oqd3O}lII^BG(**skhgVzcSE`+?wY&mAs$DJ;*Il@Z;`*9Jkb;bUvckN-5dn zLaft!&IMTz6-jNX_V~F?6gDW!f|t0QaL0RfAatLQLFhPxK|~roRKLT@;f3{bfyOSn zi@4eKfsKFK#FB^Vt+JgM{M7s{o);-1Xijac&LxX?E>DgNa2G3oRQsP3*08`TX5_<& zf}B5&nG92=?0X=8vNPoc%LxGC+MVL)J8=Ku=VT>G{f?7`&Aye2rM8*v+x<4!oX8To zE=#Cu-l*C+5Rx?dL(K8Yxw3q$WTXfJHr?C0n}o&gZVWFE^=5}W(F#=(2a zi>-mL14Iag3ds+q$R^uaSJ6H!gWY=^T)WVa|yh+9oGBHQn`5=6Re}xaeFaiJ5 z2=Da7Bt1gibT_rfbDSWg^)Kbin2>N*ZgiKAY8!TdMgh8mRsX|4B!2yC862!I*lLAt5c@;Ex@>brFE-;Wsorca z{HsM39Wx`(A2zj0@M5BrcG zFPk<5oUVfTz-c;^8p{k=1pV_2k4HwVf1g-a6T-Oi>nC-XAgf#KEl$4@B+rGL$hC9? zWBGlez7z6?+f33L8vBfE=S(vL0~U(0-yi=w>0$_U7j3|-CT)Q!nDqLbMUs%29tTLGxV^pb8NZR;t^{2*T-Z?- zxlG)k=(fx$`#%itd_8+G@cC)h?o1<{pp^ELG@0X;)&rH@*PYKS$Nw2YC}23i zRcmtWumIHe-u0GuXL03evQL@aRM5pWt@9yUzs#evOuK;pOv$r;KdY22Wu)us!h>^p zwIxw)XQbN%nZTchhVw6R1EPe`uDt~y8?)>=$PX7J5an}P%U)}MPC=iZ<&5A;7WG^`$_~U2szzX!|53 zEEvZ(rE&t_WsnM`o;J_U`><27qf#I_UD^CicjLpD>k$~em;85(s-*rW;w@KN!odJe z0)WdphpruFf*`$=*38pG(#L4bMmFJZIK{h3l^Q(88TPypXH368F7ogD{ghJKY3J($ znxOjRiK-76#+_%q92#k)TjrOsP%{vlh+I)s=zyfqE-vlZ_qplV5S%izR(ehqjUwft zTW+Kcoy2ci4QL(0@mA;K{-?mYUrjsAL>_X!_#wXE9W>*XW1*_)$o)sXR-8qtZy)Vn zb}nBBVN+QaHS)?sr1Q^#wcJtYKVSY~m-zdBpy#Q#`iZUCaw$zCIrR_E!HeEkos>=J zZk9-o3F6a6cHhNQUpYK?OmdBVORB!1(qQL~RjsLg_J6l-Dk1WG8E|u3UvfQh*yL}Q z%TqBnsa1M3hnYCvn))XL3Qt0=k3Q6Hsk~*U;H^qk`# z<-AUOfN=7k2aAH`K7+nOeO+46;hHbx#)12Z%m}F_Eh3kpm7opG!F3}Dw{_CCfxErN zQC^uJAJG4)WJY3-syp_f2B@$tO642dkef&lEQSzSz~aeNO6z4b)KXn>Jx)rgfnc45 zHl;{47O5_<8F$LWWJ*;A53nnBxvf#wT69Z9hb|l^X8LJur{wDe2mAo%1)L<2r+6Y$l5n95zDs_1@p9r<-{zc1Kj&vG5Zz{&g1Q^Hj+k@>Nt&GFlQ zx^jeXHGA5~uDw^Zw*UtUjq7_)k@ok!PB{gTLZSQtUcdHlFWeM+gu`=O2Y;w3B#N%4@(32(A zjXB|}NUu?zoGOFF?3NcXfdnCci7JEuSr_v&KS>yyx^uSO@_ z3+CD$O^T=YwVY{dLYR)9i*fsUEfMV8GK$nVwBuvn-5Cc7T8fb|51C+ZZ9~hFWSv>W zt~r7aj-DCOaP-}sCK)fRH(d|xe~HpZ-e3g397_a010&3}M$&nZ%GQ){f==J7d(9(@ z$QaW_W7e<@6ChA=1gQ~P@pxdWIemc&kBXPAFjG2x+?yRTCrRYT)RdlkBng6hTMTMP z?}2|f^^iP36h2)T>wUV0EV}nF@Xsbk%-n`2F9R9+TfA61Eh!~3as-v28Juyz;OpOlaGOKgzmmCJlj(-p~!j|gkvr!Q0ot5 zW&AT~rZf_a%dr9D531mhz>Dvfp**9yz;*&BU`t%JiGb)eYRp`y&VEQH@7%)-Bme_> z4c2C++lZBD#u!V`0X`;^eMltE*`61%1xu;^RFrFP#X$rnl|AzDmboS#gr(a|vu%h{ zGhL-zU3%40Cfchg)g<#!CD031(D_Lvq&+YQR$skpHs5|e_(+#*RB-UAQ+o^fw4!_z z@64XVCxxYK`9#xC7W3jh!A9euZ-grQ3VA_&8I^XMs&0Hps}y$Mjt}=P19}ws|TjfP3$*B?=k~F5HQIscicS7+8FHDQ&xI}G0Nxp81n2MSg8>5l%wtfNkD^g=>ri6>D5~Gi>3C%PO(F0Ni`D4(1PO{ts5>Ief5kL4H`C4Z# z!JtlBBus+=@)2{)WtVvgZr%Is?WRL&epTYx(#w+{2SwZZpZFo|pSmUoBeS_>U_kl8 zGBo^>6g`%=RU7 z>jH6?`hT}qLBIIvLp;(!&)!A#*3h&6V))>ZH|aW|~Uw5g%iWd3^`?P<%7hhXSXamp|;AwLx2SNr=o}Xy%8fv^k~} zm7uv%)u>Rtp;UP7mfD3ZXYN&_kkuZ6TE>}0ib;$-K1VODqD#~wiEtiszoi<;P!471 zGOALdNwhHpElou)?3~*&Mod=9QhZPEor_4ky}*KK&dtK?&L-{EMut{Yy)Hl%t+++w zA1GS);K836J67MUtu1LZI=H9kk(s={+rBJ)@65=G5~oy&pO*r2IXyztIDFqX>O)pN zCxPU8vb-(qRvgc$>u`^Op5V+HOLb;kqX3mbX=F6+TB>@a7H3v&OXe;C$>kLu)&V6< zVxiMt>6QVFp{#Vx`z+-YiX=N3^|#^=uF zc#&qO(=HB<{4ZyNOyP?U^PAY`?eJ2`wY8uf19I|q*HRCc!r8?^i=~8+5QijN8Jaqx zuX1+2!VC!&FP<5NO(#ic*5kkJquK}_P`r9Sv6q1A>WBFA{A&|?99r#oW9}R?sBwO; zu9la6WXy&BTx6Z5Z#QIlFUhdXBe+D~>0POo)@aPa6T9VISfT#=02LTk;^ADmre;{9 zRt+&Ywoh9Afql}GIA16p6J{A=(FJubmJjF!XVZmj@KK^ugFOjrp${DwM0~&Zwc4z( z7brd*Y20nFX7v_{UE-cR7!fAC-L`@j<2tiY1?@(TJ=DlWtr(7fD+ssbwKuZ^r_J zZh#ZeOMJAgvKd?@;rA-@;%$z(AQV;2VCyQ|$WD7H^2m?R`keiH)PL4uViN)MjJPV; z#;(i4v72CpPpk8b*EUIWvgvx;Bd(ss$uf=W(`2mEFE)p*fB3^-!wX@gQmg^nYf!iT zdX;;Ok9Xr=Qx+DCPs?^!8Jty1&$CfFaDLGcR8CK&+J@a|clKUInH6xB>MVv+@Gjh* zEPbRiS55GG)&@;Me&-g^cRZ`K{K7ogh#Sob0ezwJ7VzIaI!35gyRDQpOObSb&f9{^ zi|a{a1b!407{;KqO}3geqy;(q@#-Ll$Slcg@n zJ0scm5i7t2BOBy6+MnM4TMhC&S^TCmf7Mt@iCBPWNpU!>em99|3x@-RYtAQ50qCk| z)P_@pjX8arE{%l9wjCH2kmnD1=_C8OWp1ftopVH3-YbN{ywy{>ME=_0@23Rs-eewJ z{pu2ESlE8~M zzp~WYBUn(A*7eRW@sCZsND02G1(Zp5UnaQ&<7~@giy+uZ!~499hSSNzx%M_^Hgk>R zEQXxFL1DLDZMY>RM~0lc?&R3*27;uIKTwVpg5bjGg1q}{ZG`G%-4dacE4<+kD1LTJIf6UukliE){mYwf9>wqquUb~T<$IHwtnpS~mUmk{SAbHc! zCOm6&+z(#7#hTSc_IDZsf}Qc>OpG1v0ULW*?S)vtr=M-*<1a-b|ACGyd02;IZhMoS z{NQY;q*y4sX~$?drh8OfcGEsanI>%0l}DG#Ku((f+gb}wv+iu$3s7&a_H^55FL=48aLENO!j!^U^%Wuj)~@YWKWh1L{X6&8P0zULk!$4W3THoD%3h;9 z*K+9O^h$#SEY~O%i>}b|5I6JA*9TcK;AX z=i-gwxxfb605otm)a(X=@2uRc2Zf@A0L-%Ax_(kJTm)`{ka+?)wfL@TH+h4hi1P{i zW{1R7TGze`jb~#M6+)iwn&f8A-)1+DV{X0)0R!M9hOMFvnqzwMHP~q>KHhyKqR zC*2o61Zxnw8aowQR1&+3H_Vn;&dBsmTtYdhj79ZQ4r|?)tA|fa?Nj1&v-2B@_}B0B z-cz%nSduIJff31xcFxmM#mt0G09SvqltJfKNTRwGyrvv6r<;`T>baIVDr2M#AW`nAKU(`V+mQ1|nOz6aPBv)-?SrH^C5=RoXCW@j;Q!#fD| zIQq#}ncU~i|MB(Rm1x?U_c8QjUEQxfP(oydykdMxd)f~SC{H@dby(d)-||-OwlADN zu0?Jv+nvjX!Y;$D;uWE2byfe7$va@ER@oM zCeAvK#6MJx(9JweGGyccc*EzmhMNUl`Q2qt31R?O^kk{c=Ra54hjTH{#r9!l@XS^k z*dEbsTnEmWg_k&`(-tn7Ybz-yU`NF63VY7Eu5o_`=v|8+*JbV>ekp)WqW!<|IXz>3(g&al_?`&3B8VSfr?t%uTavLE*hC1|BB!%y0#lQ$!gN~ z=5j-t?#$keBdN#odf56Qn_(jd^1_HALT?4Zhp3l7%8X`7nlgobL=-OeyCyj>oC3{p z>=xDIty}C-AJ{xzu~LmdFqevzTg+ys&l98ec03`r4u4~Jl}5MZfCW}~;cLozmOJW# z=1cu~q&+{us~&EGrR||%kB6gT7Yejjb%wC6sh$JLgb9{s{y1q^SAg?(47*+PF@oNl z$eZdqSAj?6nB^z-v^ys%u)2#gr^Qx*6LX2trqLmG8kZIo*t@N}2KbtptY1YZ7@7!uosH ztxJ?-DVnj$Z0@%UxO8oizb%A86bzZWivN96*-U19<>{`$PbBA?x}=m#+)d3NunpKy zvJrA5A1A$b$Z(RcBEHa{m>;6@6Ae5CK>~l%?=ud`H3d%us=|UaZ!aosAZ*Uxg9)r6{0RLdzpJvD5iWuVeOczyMPoK7FgZ?2_KxgJ5Jpggh zeM!+YARY!-4TXWw3nviVW(dfACCF&hqljVOM8l(3aMW|Eja13@_Cl&>IXl7OnfbY} zduW;$PGmtWEQtD#Pg2@4dUXU!+q?EHpC*_SF2MEhO@+#@pZSY}9+d_C!cD$o(mQ_N zD3(f0K|GeSSk6kiKq?$T*1PGMBg5X;6^SJ};RgpH>Sv_GSS;?bL53NK&=B;f`nEQR zs?aM}qN4CSXm%$C2D%V0lN3XMJ`o~CucEE2iz;*3G@VfYF{3XD)e03b6F@uM-(cdPAf z2ZRfO8YO$(q*C>Q_GH-9ONNAt3-@bG$Fem*Pa!i&RE+3_j1i{%#)L&j@T!w#>YBr6 zH7fKv_N{QQtDGxkO4b#n)(02DqAe#`qa}3W7S$gYyp_&m|9ev`fp$m_fwCx})+Vu6R7ziCIr+d|E)^lX9zrdW%UAZLxTF|Bg=LFF0LnGBJ?0wP9#d^?OT1>z$=# zS3A6&s?Rztl@jzKXP$lbU0kk`hn}}5L%>P!2fehSQP3*K*_jRKm)4n$w$P*L$u5ei zg2zn=pEVU%TgnSJ03Ym3uOq!Boigm~3&ItWZS&d=T$)W!<)2*2&k=-WE>U6%=<|9a z-Qs*fW2P=qTGApG0-Y0iBJ=bb_UCh+_eHm}|8X=+Hm`EAvD ztDVy`IVmiDgU=%TnyrUd7k<>1k?)@dzpbAi9=Pbmf9fZ;4R;{R8Pwpb4n*fH7OSzL z$%vd*r+i-(G_ZtWvSwpMv_JHGOkdR}_WhWQ8mlVIcJ+5Q`O4F2_S=ojNqYrfQFdrA zMqy0yeEk@h_k5i%jFFbhIxqynjz}elSu~QMvY->}bZX+ZlmjI%)oiQQU794RNsxq<$!bX3>!!=jsQo7ksWM8WF)WcmU!~`P5HAYP6P;3^y=H z@rKVT-#nVh?!`z=+f(Xi0kM70xa-XZD?z?bjNWaM{*uwksh_uh_Q%dD>-}*{nWo*_ zDtX2CITC+M^U>okUI%C>xO?cZoG7kUh_tG{E0y|QN^EMpUr#Ulv*`z?cKNGIP6|_C zJVQZ4SMmC_|Mb4)(n zp;eSe?~08&66b>7W9ukcdYmegOza@@A;Af$&n2U_bp*b>qpkOWUb-_#?)DJrajF;{ zPbFzYBEZfR3s0pt;hi|1aP>eakjQwOBlTG#H(A4h>=j`d1jJXzLk6+?Znb&iR?e!N z;rOqSy5wabQ((%CVy}DUhOWu}%v+ZruTAq_mYsVGK5JAGR|v#UjFP{bzWVV_VKS+D zRSf+}E{>v94q+ z<{pfxv81nq;l$>2esMH`025pV+<8`BFg1_@qqRZWL8Y}$nW$|iEO@kp2_~Eq#ga{T z54u}PBVd=94IIf1MP$Fvd-Yu>UuG$iAhp0biw_NXzgUeuC(ue*3zu98V(QP17T`}smOE~Sj9-w?@u4I0;bbyr zB5_7U)}=y>rWJHwLYLh@MZq7?UGx^`7B5XKOJn+|W|og1YH(l2B{*5x6+-^vNx-_; zC6k6h*fJU!*Pbp<_6oU)-Ds^}ni(%a26A%W4#xJxSyqX-50bK_+)Nh2x+IfTR80)? z6Yh&>N;u^5syVQYPkLji^s1v7NIY#flPtEbZnuC25bCeBdjoHN(Z+3ApwDlOT21-3 z1sw{AX?{jrOuAT%gXXRgmVc`$nZMvRjahKxT3lCI*BNX&CZ+0sN>jy|M4@lQu?^lO zs=nct^L@9IH)?i(cvJ_*&f@8<*vSwqZ?dLx|J!y-O5lzW$*}FO`;ADp&2f5g>;1cX zCqi+tt>c_h(jxxsduLYR_+%kv-c}iAu6SA}R%2duG~J+f@OTs|;FY67-ZUX2`Md@E zrhj@$Y`#GYy4v}vp83g=6ozi)uT?+++}VGIPDN zx4jG;*4s?GEL}!6m=^i&%zb*rATLa}A!*(`#QC^-VP;G=!DO#zcsj&MR&XO@a(XHu zuI^+D(sLc=ySv7kP{=*di`zP!DQid)bQC8DB}%D39Jm;1^6(hVscsp8Tm!0$Jj`+k z=I=2bWVb2b4(JtIjH=ALb^p@k6hnJwP#b}O_0Ib>wI;}IU9t-pok->iXxA0IP|m{a zt_Py7O;j;QXXqX>F;rUTJ(i?GkYoz}b1A~}aay@TGG#U8ffHgwsrWK&pzf#K5l2qF zl^J$eufO>P9!<7vTtEDe3Obnv4=FL@Ip3EQVH) z=6ZbR;S?4$=P3r>@lEdydETjBO|E_5y`qvM*z9S%Xu0P`G!#Nv2Nb)>oAhWpjn-yWtKtC>wP*H z&Kmkx-@xOZEnP9EOY>jl$z~ypt}a0EqgcW6|GHxTLkM}8`>zWi_^@@<`5O6M=A@l? zsp0&ee)3E}D1wa6k8+oPnbV5Hu~Kn|dBor>;R`)!DWY#8kD4p_U~BhOR(A$YIVM2< zKwjnRc3Uh@dt4IedCQUw7P3*3-}X1webO$ZSMb2LB=B~RB(*(jKSG9a>XL}e>}&f) zslF@Z+;^Ro8{)rBhM9Dg0b^eaApEd|$*yY8Grj3o2$)YAFF5qqFbE3tMF}{E(kSQB zH-P`GSKo8QZSF&Ax4S(he<9a#p}abV1xxu5i2Fe9iVA(x{6KzS-4y27Gds7;K>ppq z^E*2sbIXn@$UYLqj=#ra5ZeGb{McXM)m%36bYLHg%t1OZg3eo zvUm7IBHSJshQ(}+FQNuetdtb+RFQfzhUHVDOvUDl!&G^qB1AH7VBKP=4KltX$&9Eq zfReIjczuTa<#pVH!9lI>_*vOxNaZGm)QmJqa>z;s#!k*6+kRm ze%3(&Q%ORqOS$)4;8#Cg9*G3*`Pt2-K=<$4G=(4R7=M~NqNn?G^8V=es$yRYiSG-3 zel~3c&WA)|qu9Elb{nyD>P|9DCNM00iG@omxAk?-RuJwidCS+}x--MvhM{JSazeAd zG9CIH?x&a@1^9!KB-W1!yIhOD<-U(%O!Ak$K_-)>tR5Dgav8CxGrJx-kvfA7c;Ue@ z@NIPYxa)?^$(CWHj0^NB#?KAy*Xp>{V|z1vImtFN*HH{XU%!6rWnI^;lvQac@V`!D zjq^$Rurtm~FDg=9NiyNoGbbiJDJGijXpY&y5(X$^Uov`~E1$JMLy-=uxLNZv{`9|; zu};)Z>m?-zpE=eC=DKGYk^4?!B>V4s;b1(R7g7aZUQ>K!%tMcjM{2>V2Tl~~o|Bp^ z2RTc;s{h5ArA=kvvj!&D%pWOIHK)jAj-p#Bkl^W58D$2P|GurR6^`xQe zYu?{qth1t&Os$HxyF6JeTL7X%Z&)qVuu~k|tfB+1c6(gn$5AEvI?X-$pO9|(LWO8g zbdp|`Au(md@qZfwmi%$;9D2aO=PY*--$SGWI$*g{kar_u&=m8bh=3L4>hV#wo4iw%=f#js0%Ec@PHBGU@q#2SHFXGK0ob;LqL8Y9Vyj z7AYhZKF@_Ri6}K}o)bUB@h6kpIrkN}YsDlP>C*=drz| z1CG)M7u{rsM4ZB9vj> zPtvn6JrCHbQ`}XFpAt%-ql^wXsF@i3{`H$v{I5ObzZK(ubE#cAD!;poDU)0FZwGe# zB$=G=emxZ4k-3q4;g$W=3X^SWt))KhPRbt&8)_ikyA5A#rejeWf6g{obLSN9(krF` zN9X3SXb=wr{G9qW;A8>%e6Q(Q@|mdKkyPVw{^uS0vifU)a0Wk+>WzH+ZYaT$&)E^= zmlQ2W+NtjDM$6!7IM&(&k`%NJj$_a>2S4`r2(hjc||Ie!T{0ds7|qK2{8jG$u+j;;nZ zWRGue-w(0H*bAV0>|%kn(&t4=M8@0kRdg*TR_-RX9gC-C_-)ql$T9dDtplz#b5H&z ztttl;I%jNhV49unNvlczw7-GJ5}jZib_?hrF8>`vSHr#*w2u&*EVO3lAWSVf=sdi0 zz3``Xf)69D{>9qNp#&SdU(nAeAy00!b?4-ujz_4(ZjsFHCZfO$;z3=&pXh*atf9(C`ju(*(p}gwg3t| zSBV*;--LEpzVTXNeo6bYc4}@~pM~!4cLhP6)l#jOpJ=6?t{hc1grH@4cgdE=Lf&;@ z<}5!3?ro@yL&4M9XzKB9Dc#68xDh6wY=TN{K@Hdc-Fwu=f<&HLgXoyvR;InuS9Z40FB>UQS#WrD?yeE&J`Zc{*sXi27a5fsv~At6xCDl1OL zeB!;Yibb9whJFvLD?4>@lE&ECzvFB~=Tl!(in=0Az-dlfj**J5{`#YU*AERpAFe9B zQ+8-UQj*{vE2&NyU?@xM$fPCVoTRc%r*JRYtnn*2Dh#EZ+6u$LB#RxDk4g1SK|n>P zJm`=6>DTK{0^bEtyuEn1F8r5fCA+hSRvLbiKX=)wRUezmt`H-NVfz2)BTWZmY;mKy_G z*d4HNpY=A5>+CQ0kOG~g6$ZMoO~LnY+et^l=!Jh+vSvoM$F_S3m_+DOjAR`xfsF$gdV0dvDsZVOGYqNm1Le=XM4t zn**ysxq1`(uR+i4eOx2c|Dv|i$Z;_F;3&w7++pbW23ku28GL-s9_Idbo~m z7e9RVX_1{ju&mVRe3K2xdcLrvbj!HZ*B_^kot7G5SYV$2^lS3Dj9kx;G3^5q_j#_X z7(b456&T&j*D$1ZsEkMvm4KKI-UVG%8QT2H)KN8Y5Qc1%!9YbupR<+eoZs?-VEL_7 zbs%uxko=&#b1nQDZu{di#vAnSA7&6ZXaDr;FIbj&3Rj3HnLHPhsRDvscRT-ONZ}~H zXyG|*a)<7pBAZb)5xEfqZWKRsXsm>og@4?el|-Yv57cvdYbluiEkj|kvQTD>ab*^w z*wf;2)k_7)amPgb8SnP;=;Nf|hMQYrqZkd9a>+<8hm>#=rdyaDb&F~+=87C;9aX9S zInX=JZ2?;X_WUp^r}T7qZun(x|4psm1HI`=bd&}vqW0i>9Z_((YTOiJ1)bD9oUniQ z5L$fKnA6SvEfcU_+*KOjg>P+GC&u1tdq*Ck7{eqkn%LnbqWlC9+BSfAHsen2pVocA|HH z^Y4zUL!)5{pT?{tt^4$30?uzsJEE^2*(1gT$M^pvACr;m$jeN~1GPj?RnQJkj{N^8 zWBiYUriO>^cnm-yzq}0?%s-7rM}-v(`FHN_W)Xy;endefGK!$h0$J4I0M&aH-U0PZ zp&GRs)&C6h?8GaWKS#+4*4$2;{YC%4v1DF_|DairjisWpGFo%`6&8u=R=%WnO?qM8 z?DRV_uh>(a7hgfWmlJ;!@+Kp47MKtd8hs}^%E@2fCp5e9Nqu^zb>WmEUKs13J^!ZmD!@C_m zYLU?41V0Xo@F%<}&xW!cJsWeQ5}7r@VC#;%`7cQ6@XoO&cN&7V?S%!Y(6*!&H_1Zs zi}zZ#D6!t(Io~it_{T|-ip!a*!%yec--hd0X%5$MX1>Z{X!2!{4Xd`v(e{W_aifZ( zx`FW=B`d7|{%9Hr4`4r)IVc~iVm+j2m?WV)SFK{QL@AfKLqYANbd{x$m~(|W>kG0z zK5BVNdchh=PQpiS1TV+LbfdH#Hkm7rG-Nz3w)xl9@g!0S4`*W|JQjD7rjL7Ixa9wM4Go8aUhr;o8SEg#e zinh}u5cbcu3A#R=yHdDGJLZN*cbQaD!hBsN<@#eBsT)L9-R8Ef|+W08}YA3D7# zA~dDSqKE9IL(*gzkBJdziL+WmsI!8)L_6|0oElg}jXmOYl zC#FV0WIvH5wt6Ma?03~xqdS%rEU)s1I1lT$@Q{7hCX+#eeb3v876c{e8nT4dcEb3wP%>gMa0!vAsrkDy zSsompN_?9$CtFSII%E&~t2Zh;jTN%&wJ4|+{Qdg~h4_Ck=Wq^4UVZ9ijL)6K@6BHe z)q4-U4c2*}MM+Xa*jre~W9%c0l4!%P`juE;DJ&DLOYx@^&QM#8K)Tv#e{v0(R#)Hx z9B>|1w0uSmSHcI)#quT|uN7$$!SDG7gL%l0Osm^fxOv~4&XWc7Ci+aJHdPE+JS2$4 z{@@IVQhi>G^Q6c!ntcp$_TC}MvJaT0Fxrl6iHFJ^{*nQq*xpcJ(5?yx=6rANy=)y| z0UfctvAB}x|0>h@43i$ctEZOtEGEyj3UV>G^36;rn<^i@Nz^_G=BjSOoGadc4|^ZH zc00$@tc8euy#_>l z>sYDCwybpBshJM{duLp!d>uv`6#Omj!3T8`(@bxT;&+T?FJEaD-R^Sz8Klu!-nZ^A zRb8Q3Xev?^?=K$by#TbjFSaZ&`+S>3rT_dZ`ZM5N##hM?*fLfmXGBTmJJz*{Y?_Q) zGoqUyXmWs6E{Y{D{Ji7q6q%8&lGcD#@$Z(q?#FNI-sZ(uRxATn(5cj_RBEI`T#5j< z6*EWt=nXJiY9U8?b3j39+d*nlc%Z$)W~^h)YQ{OPV^f;ec;#~zGQZWNEzj+c_4L2Y zTUN#c_vJEr>wHiX$X)Wvb^Gk#G&4|bNMU-If6c*W-DfM7|G6#DFD{W=#v?8Jhx z8Q1%R&+|GAiN4kv&D{GnDB8*-WQo^hczFR02;;M^uM}F0^RB{yJ|8co`fwNR`}phh z*84Yp#++8LC zsy4%Ppt3{b4LD_p3EMl~b5Ntp4LSP267?URP1+*6YQ9tE zw_s^%I-S_SWCMlcTXvh{L0~0^faEYn>Vo}d49h_8Y?CbWIZS{eO!3Sx{=2(%;&rFQ zV^{Im!}R5Z+j7VN{vC^{*&n|5TSj_&g$Cj@%Nz7~X?`iakPs@vtmnEt!9zk>PriOT zO3Qh2?HwQHHU}ErzAyw2wCHn&u;`g(Yx7h3fR&(*uqo}lQWZxBrqe63^)b)N0z@|P zIGM=!&;ehT(4u2mRhbujPZ~AFFHhTbV!dBiTP7&PAt`Zh?QD2)amvUROzJL{>>~D`%9<3E4o??~l`b}GnII@A-j8rM- z1?{QTFC$(Bi4{!?B#b7eWZ{maab5~6uPerJG4)a|CXb!4YZM`{yk$cSsyS9F$tckPHoN0m&nD~lM1nQY1J6BfiX$9 z#FGhwz0vO#A}P1$20wSXEkELfx*CZxww*#BnkSc9w2Z%GC9S5P0(YEf#s*=FSjBA4 zaY8eUu);(wQGaxG&D^FliYeJs*76l&ijO;@&=w}LW-j$9p3bVItP>uPVrOCH$y{Sq zu#l>p$~ELbmhyzmYj?@fm+iL_Ti3e`4RPi}(Yi;dZ1Cm9T(*Tg{?RMU?zngXFKmed;qZG{p6x+RxUY7Q&` z%(rBNS;;X^kbh$dJCVvFybW%857xzX2n*cA7k1N`^UX?c z#mGA6+@#UauVJWO;pWtSVEQolY9Q_}P(VmlQ12BGs~P>O!9Y4zdDlM(KRWb%pt^k^ zS`Z^mZqsYoZ<6S@Y9n7apKrsoeuHOR*;}d>Lj=lAMx4R*3ne~agrnH&w)3obrckdU z^ZwI^>zK*E;-ohszlxizg-LmO5{YIq{2> zPlIg&rg5ZZr_Bce3Ua^N(D8?H4G!z^-s(Dq0!tfc`^CwRX>W4PDg{f<>dH7FKlxVU8N)X64GhDUhOJWzg934~c(AcZ_cbq~ZbuApBjktC`_ zSGI`C2lc8=`nuES;1oXmQgX7t+F(!)p3YQLUg^3qe!x>^&I`fZfB|=Uf&aJT^}lY` z$B!FO%z5Fy0QZ3a?IG!~w#Pq>>?4=>Rk9l{ThcKBub<~%@Bt|oi^28nN`i`Js}-4t z_~S;#Q(d>C>>fQ|q|xbb3>XUwE}3dcqsg@W zI0%kJlVBU!eKp^=jP7J4$Nn8Fvj>r{-bK(YV!+oE&Py}fe<#|?T9Ge}Nbni7Zm~jn z2wJIMhqgA78xx#JNnv!a;e#^Z=%UplRSq5wOW+GnmPDGsZ>7=Oztl!0y zn?~&}bV{;fZ95Jxm-d&=-Dkgnlv;5jd3eq?$zSA~XK5KvMV`^5l{NAZOEa@kq#=)h zBjHTo@u^qRPsjF<)n+^LPu!Fm7C?E$1Jpg8-zDyx%$qM2C9pq*VXcJWKYTC=F9%-V zPBC&FYRPT(n$|CX`z2`|apK5iMn+iG`Lt>tgL_n!;m8dmL}D~jyh#xN87krW0U zt;5$_w{e~%=($hj^c#He($nli(Ddgp?BiVYaxjF^-Gvex4{Ig^uYBB(SwdF)ZnJNrEDT#1u6_ONTAz!H(WA%Ay_nB_#KZ9cZD0+1iT6sL$1 zSWtMi%*rLcZ*#DGk2OJe6+!}te_<^l^%A-)*~t3Ra+g0m;6CGtA*{I^{Bb5g0k={D zrQx3trbDZj`OMlGd%OdE_{c_Mg0}PKS?oK<_ii3- z!s?yB%^Tu%5As8KmGS%Q=kgG$8vKca?lg^4dPEeifBQ1_u&G`xEUSvv;rDnAJWH~D zeLVYteI53)?U={-5o6*Vo--O##gmSCI;Rl^W}zZj5Y-)q)z{dNo4FQoJX!HgPLxv* zQ5t{$;^Q8qr;M4Q?m%$fbYDn#BY}iE$CV1sWvTOg%l)Yv4ZEUcdW?{dL|98NB+_hs z$LYxku*^O{hOmi5wD5Q7*_}8H>Dc&{Kt0^eJQ&TYzQMS0^+1~}`a6s;7d5v>HfCv} zuzUVXl{|@E#^SG$mT3lN+Mj<#d?D&VDvd%gWGpx|w;)}Jjkv)+WwHNTb1Y64>E@g{ zA0@p;TL`^c55)^<#KTnpko$hBSxCH5B~gwqERsEq&p32DfsKb=y(N=QXd|7rk4UUH zc%0F8-=SQHmUIDW!oaBHb_`h{EZ;UvUNjWtSOY(e1eKHs$e#Cpu9w+zB0K?mB@sMB z3F1@z2aWfmq`&yZedw$(CdA)_Qvax0B6{4v2qEVijqa5JyK9b|{+gXYyBw`=^k(|8 z-sGt>9z{mh#bs}Lp3LX!BZZ65;a3pk?LiqBt_oH}&d=sbJl6E>yVUdM);k%Vg#4J1 z7c_U<9 z7_2_zzWFdM(~zC3X{8nW>)z@8k6wILCr0fg^kwoH6i++f$*J0@IzjG}I$w70E-@+R zfL)G}jZ0b$iRUY|N359g$KzfU4HG}j#@KtS14afU;Yr`}Q4!ooYS({_@kyCETlL?0 zhej1nLa9*;5ZGt|#VJ;0%k(DDi|Xqq8H)<*By&6*jk4iz4IAo>h`P^%k@#IK02^LI zhONdh^2~MPl+DfzoqD%tu9*_XTMh|CUkO^u)60WQzx|s~6oYw(8=)^RTK0~fxIVF& zp#LZ)_GSYx-W{HEd1Ma6v>Uu4+ZOnv1- z#|0B_vm8P1PU8f(&x|c@!(Kk+VqX&4@g6CVa0)f2%GF4l736LCSnr`fvD|PM@}uWP z!~-J@lsTV*-a4i>jka&qZW=z8&AM<`SSFs{JR8Qnse>H~W5_y2&q!f+OReSgIKj6j24cG!mb6IVv z4Fi}Z=FKJ9X;)~QGR?miu*{#QOaN2w-qe&l zdw<7Sa{k+Aaj!T2R*6p4?V44?WM9Vi{wv@|^-sOVHy%QZ1?V<> zLvZ~H{*UE(-7OW73iLNnGiQh$u?Eu}CPHxXPO0K~K9=9&9!3t62gb&4loZnGSQ@n? z$8C*MV&6>_WcG}ntUm^x0vCImC+orhMCP9u-!{t0&IB~z3ECWQ_G=zwP5T7FfLq6W zIFZ#S-(1Zp=p`uc`7)8xCis(Nj|RyG$-*tWPjphp#me~0&lR`@{DvNQ5(lx*b~Z$P zP=jZ!=w~1RKWg8KQ2)tiMLGV&a_6x>;D#EQ>^K~GjdSflb7Y%LH8i3L-^DO?9&H9l zM=q4QH*hB}z($^dz_d$R1lZ?{XENy2%A7@v*^`y1aOBytKX24zU_Og09j%?f=wRza zeWm&F*Y=(`mA((5B9nf4s|DN~njB<$>Qrs5NpsXapFf@U{Rhg=uA@S9t})#`A`?dS zZUFL7w2TwO7Zo=7A2q>6!!rI%qihIgjA<>8j8B`3PxxEDSnIEds__MzIg{o`#s!ne z5GYicvcP&GD5x@&9p3q&gA)5fjhQTWhuZXzcfYxCu_o9l-K-h`?#TdO$d%AgU(}S3 zy4T4bOk9-umY+X8PhY^8-N{3Hodfaag5S|~1QX+1->iBwnjD2Qot)O0>>E)#gs#hi zS5f0fCe76TTjdyhgHxo5TVCmZom)_UXNK1a-U_~D$Cz7uJ_cyqra5Qo8YUJ0aol-N zL{oAU@5wC0Y4M>=w~_CL?TAa3PpYCrU0Gy!1gQwkA z2gji3GG)Tlz*bUCVP1m8p*fmSgzVbU)xJd}9`S;dxP-mQUibt=p521#4Fhqay<+ zRvbLKONYmUKSeenstGj|)||Y7K4TtTIdoqFcB7$@YZWs)rZYpACPXw{$o1yaWTY$a z8mAQ%4NO_sW1V758#70ZHicghk5Kt#NDfScpw_SI(9?`*}mDa+8+kru1dYH57 zojH%9!}G>b1V}o_2DPLDRgG*ZI9UfqJn>xv`weIp#Qo!?N*<(Q&)Be=D6BzKtP@H+ zNeID5$CidEu7I5#2Oq|O=q0eY$wPx<4U=AQS5cvs_tlfQI}n^3Ul~I4NoJI&MrHXq&5L^7;z{Sk6 zYs&00II`KPIA90FDNLK{!#K@!P0;rXBbt?@r2rk zjd;Fw!@lJgvz>9mK>yUtJ;q)=Cq!RN0-JD4pim#cOHJ`X-NW6ts8Dk++ z(;#Q(T~Symz`8;4QzugS<{lYdgbtdW9R&&gd@6AA3tQlYUul;nUZ>ED+fxAQbXFf3 z&MNUw9`80Yr$GI0+e@oU3KP~-8c}1a2H7T?iC8Ad}2Z4Qw3^?4y@uPD4o)km#jJ+hC!!>~o0LTyz zx_Al%!<8$~zd*W2aVaX$a7B*e_b;jc$Z@FF(leAlL=i$@DG!QCuas$JZ{DyU{>=PI z8DE0_#sE+>Mfjo(wj8%Vr@8!iS4B`%`UT7y$|Nr7IhNxXUhi22j-*W4Yz-Y|MzZdeY{{${5Hz%5?j#~-3vT51Ci0dwpDa`~!n8zdW-t{h<(!tJ3?c>tu4Ht%ar8qe)pJKR$!P zRv(W#OpTN}(eP|s8o)5m?{T66jTSOC~#JSTBM zf=l(kVdf$x^AJ<}Ei;1GAHc)p=>@O*MuJS$x+znh=!}n0mSw*6-+L_3H8?$VwX7vD z3>(Mffru%|wv_)jZ7zJch)V`a!Sc0v1D&A3WWjiJ0w^&{z-9P3% zWQjr*o&#z2Z<$ilo&m$EIl7IS`s>hPFF*Zj2nA20gSRtIU8MX5bbD4iww^s(2{8S2}4og!3VtFf>6 zN=akhEP+yX;+sW#fukB+4vbr$Pr&@7CPx#WXoVA<0}d&S7a!hHIx1A+xV-!h_e78R zgO6Td*zv1zC1^^_03Py1!U~dzaPPoH{BPU8Vu9D>X^y=oT_Q6o69@q0l?CQPYfnx> zo@(?MSpHG~6tElkTnz@O$!Q?{YB=$_(0F_W!NTNDm?yU`%fXp`D;P;17(Z^#TTK+x z?FGS97q@>MqTPC%Sczlfvz3G-h$`21M+T@fI{h%zpG$`eS|?34o2Z3-OPtsGI{Lif zD9s`AKo(!nFWwf@Ylm@To1cD(_z{QrYYJuMD(W8T$%H3dSi$Wye-#|@FjIFB3>fh; zx6N4Zmb)&1t!HfiMInr^Bf|jU??S2HuOIjKvnDtW{NUbr++D{J7rrbwM5nYE-*%9R znt(jMc2$9c#-n^EjPGK(d`O8ZO8OR~S;l9i$fGC0Wj-jY*S~O5XM$GNk~1mOW~0aq z&80aoETk9)bJ0J|imB2A7ID@8jpx~YKB?JkV201_T(yShq6*>N@3NhP+{z!%(pV9` zw$7XN&#c~6cyUZYRAnc08lNpr8sZIw7Z()A+_~z6&3k6|qGjQs6_|Zv-5*US$B;R0 z-g3Epw72A9F4!ZNc2#Ud@AqR8LF>H2<}Mp}=BSdpNUJOUL3GUs*Pr~cBifwzWpilS zsPHVfG%H6%zF^m%=NR$0;C=#VyM+(YJaeFvug>fkS(~fd_kY~~36|)+UIbsW2b~uA zh{P~(&Yb#7t{xT+GvDOY2_;xZ&{Z?i8qDE1rsWk6Hz=q!7`hn0atLkhgRgaxd=+qv zBU@?6Ipo9)U3|k|=DLqK`X;&iLqPrf1Dhw`lN=K{v9S*B=@Tozs9E4yTQRypl}=oS z1~iFDtR@STt(iYFh@A~d*eQ=-%9TsAv*FrISwk%UNzBTM#1WDB8%O(b>A?OXo%!%` zuf=neAv19-_~XjME@`O&mD;+d1mB-;$MfJHcD%#uABg~v^J+{w@Pe($4a+kBAdsWbGLTZ zN{@Gd4a|iwV4W}{LP8)?^i=->Cfcq8g#(_OFz&ZalCy3a$_Jh{qPOJh3im%xKVl!C z4wuQ9v%&>#N#Lz3^FA8RZ%iG|Nq51E2m&=8xsF_XQul}ZrMK9%EaZjC;z=bA4neyN zOLpxp^M5m?Oblx_8)IrNkudfUw$JTVkT-=#cK*EsW}B@^@;L^!@@lip= z;Q9Jnx`t~@n;8pN3~PeyT&cx_EnoyA4G~|nko2h@j+mC$SB&&8ydRqT@RsCI>R#YD z^+We9jR_jQ_IhAHLhJK)24JyD+Ow3sYs-ccDy6+Eo|jj(gnOlgR*NZR4d_ZTAB&bk zOd@~qf{YLwq193<=h=RE;QAeae*&!LM0JhvN1t_MaTlT|QP5{j7z@PPSfFg5W}o{v zZaFjX%R&Qs{i@V*;w9^-T6sZfj8r}P0s_Ns3bM7+s7z-zf~?;%7{)%640zpc!%nZC ze6AL!KYpa!A%^oIrzJ^}Y1jk3(&Jweu+*_AM6eP})yos3tord}jb-sq=zRS4go_94KY&l|%t=YFmXIZRXX0A;Xq4#E9y5us68 z#h0I~{*WR@r%6bMyfQD2{-@bfJkiWa;9Jj5`2jUl$sk*?h|9|rNHpcS=k9Y^1Ww+- zc|&Nq=}r+m}C6WpA#P^j}>EdXf? zBCt<{bE+D7#raDn&RZzPjwRImS!;Phe{x{0Arx0Iy~N$m8~7%o)b;ICCGA=WYV`3v zyVqTlM~y%3u_6Z{_s9b^B=WZ{^-2l8QhXP2FI}FLRZFp zES24ne-Zjg`M!cgPFnE6%PiO%QX)Vb!jBrIA%5MX8Tda>ni==`hcH(yyw3YUj3LNt z%J+CO#=CYeEVzJsfvD`i7YDZ``Ws!B&&z4B3-+QScXIBval%k+-&!Q$fhxnz4EJ%_ zG~}}{uVU6ufHU%iFz)ea$2=OWtp zQNVhB4^J$+>$~`y^W8+jE~;?r5}@+y`ln0|q`Uj8j-=R+z&gnIxJVI||F)Fxko*lKKHv-US2no0IgmmyvrrrTRXd#L^~ z9%D=tIAG?aGgQX=dM~$E%_4XL6Zd%pT!88P9RMP>xg?|59GK+DIJRq0@=D5LXEA$q`Ai7qTS}lSG4Y z*pJ0C2~T^{76*vhW+V~j5dM;pr+CvIJ^EmRX)ns664F88xrhIpFNxq+{J7e*5YrxZ z$Vsdv%1&5SI8ah6eS}9f*>tNZ4Y`cNq>*~NqtCrr!pox~l?QU&r#Muvw5k!`xrW8m ztSb{3l#p=&SF7pjeKYSqo6)cSNzJhr=}5?a>AmnedfWcg{S>jsgwGh3y#`{b_WUXG zPRA5H_Aep%K%JkdTIp}~$z>rTux}3Q(>${iN9yX|a?M&^YMK7B18Fcd88>&DnD`4f zm}jLOt;@~MT;$zSt3>oqz_PJr_6HI0IVHTvqdcb^J}J#qu3sg=Mkg}vP08fJ$8u!e zLQ1dxcY+ek_0x4hlaUE6cA0_e%Dq#?@~FlH$8IM;8xGJSQmYQvK-h%?W32q`XV96{4yyG^lGtz)(G5U1?{0%ryvhCTwI z+b0V!98!LRK&B5(JJNyim+zCk`JRj=CL0yAvmI_4S!hLW*cM`Qw+U%2X?&x+N$B`4 z=up{FFYjlK={AUw!_oEXVx6@@>6J{g0_kmBZmHfsI3AC4q{dA5#|$tJQT~F0R~PV= zRAiFW)l{$7xMDeVVs{%U7H6bnTNlw`K#F>0sPndvh;f=s) z9Yr1e55MYn5>r~RS+*N$1#at-?o#4D=iA41OR9JiWQZy2xB;p@Pg>9udt;_bw#12a z&EPU%8szq#eR%|G;H~fMwEZqPyhMA#XRA^D0ZD@wg8cp!8cx3lg#M#$VcZ_ zxoy9aq8%$Gjte^p9eVhfeQQktv&_|Z~i+3jRM=vH}y|3e7?g~^QF3^I# zs!+p%cT6k9OpV93naLvw&x|KA@&6nN07n1*bXB4V#OSFK0g2fIKxs*0w^-QA{4m1F z5Y^#d>xB_E{Lh}=V5T;`3z|Cp5Ld%{$o}7#qahz(ny+lnPVzm?1rJAN^NL{SlFP+d z%4u54v<6js?B4!Wt{ilmM3B{JYjNw=eKMq3OzbQN?k09`)@DZ6ZQeVveVUMP&mj|5 zCLA(Tp7<#FWdLGRRuo;J%saRqYglL3<-}CCGia4=E!z8?lX?*$aHIUhzp|#AfUNdr zdFiE4>slJmMMkFz=coTv%@et3<%c1j(M`MFJ=-&s?AHlFv|2}y?Z))=HLxv;J%hr> z$*Jns9}YC)flQ&c6HQu`)b|eoo%8s!!7kxma0Ge45yf9kaCbijY9ucUjWUX?EaVo@ z2~2`Nl{BvTZdH|ih90eNx9p^pNnt&_V*fPO%>@Fn|9OFVd5vbsI}u$&R}=jr;IgZL zcvI}si^DDnTcaELL)?XzDi-r7XvbPC+P6k}VyW^Y5w0$~FzZ&OB>T6YGym4u>|fJV zl~*SiETEuk=K?g>bgOW*Zdat_#gBs)9Ob?8^s3QwhC0+n@+h+hHav$^eYO-&TJjG~ zHDd=80Yh{y4wapr=<9L+jsjm?vG+ZHLj9-D9w{?+BvU`{v1^R%am;nu|HI4Ug$=ky z*^t{iv9zbh&G%2OY<6>|9xrtGT{aOXYB{mW2ilnzgwjvKu&e$tXg0lv*>+Kl&I2!g zIj_ip*0|J(Q@d@Dww_#F3|m!+s^rogV(tzLe^vMqQ(>;SaTe*A*w#0BwC=+YmVxG4U;}=_{%1ZgHHlM3v zE#efH=k7l#)Yj_8WzlqJvc)x8G5>iI7`={1nm0|S37k=E=X^z|HKD9jD=hUi$uDro zY6ccWVk#q!{|{AX{T1aK^=tToB2rS)T?XAfgoM(9(v39I9U~zj-OYdqhyp{GbPYWy z$bfXm&@jZn%yT&JT4$~I{0Gl3&wbx}fA+qv@xM}UR`B`0=hjGsye8!glN6pA(dzIp z&0b4O)G5B2Mb!tgKf#Bfgs@`prnM=>^1Z+bg;yG#b*GvHWN-5yeaOSCJF7o^b#m%e zEtVG|X|9e-PbfRX^!gmv6f#_j7(P{v?|i-c;bSy;bg;RbBJG8KhQWEhJE5kTpO|{Zx)U*Yya4_~I%3QcwYgz784*VW zt+j@|=Lph~rI*iWlnrqf)aEUS3?QH$GX@G|{){|53gsWH!NP;`oMyqP^j-gHK6=)m z`$Wg!(km5a;MJ@6KnV7MWmG+%#n*O1n_(^of}}QeVSKwTOk*H9l>E5B_tjGdkUOpS z8CN!|Jx%U^#H-jM1&)O?vkz~W@@US{%5fd%yOMCGr_zdFY}!ZPS}?wgy$Q~<7Q|4^ zUFqKWte>^uQ_gjf7D`2%d092CMhm7#N9PM^QqUnq3O^r-$yO#RRb_r)K;Hn zo*|mA{17~Qunl?9t76-+K;=d#0#maD6g~%iRj(3p=ig$W`5nYQ<^|39Qq-kNByqM7 za@?1X3H?$ixw1prTInmON}%M})%-VHs`{z|E%DxKnS1w5G)U9KNy4 zFw5xXY*v?ormFdS|NA-oV5zitT|{s5k;^2_+QYY92O1Nu&8Ks(j5Y;-5UJb+_w`;b z{3tboAOIr*(1vva3CyUe-Lwe9aJUDujF9oX^1M<+-rFkD=EY18Oo4P4NPKmFrJH=r zc#=*aOyc-)AC`C4dZM9u>4D5F5`DZIx!NiLnq^4-u}l{%ehWfXf;$0DT(fE#UTc{f zuZNB7mu~L^QPJ@aivBeNaT2(}O$S;4I#&H!D7W95z;U*9r#g4& z$uF-*y8%H*B5FIa0peaw_7T32TWUKCdm#!E zq~3z_e;f|?Dc1F}$&IK_WCfPN_QS>89|*~0Gi7{LJGy&e_9Jfgs`#hxLtGywX%;6H z7;s2+%+sY&5mh$f6-@z{w=8F)wbeSc38t??e)n+51h1>CFpk1HY+D`YvS^rO=h%PB zpZmN51^f%9)%SMkzm(XOLA%=IEPZ}5sxx42p#FD}b)voOM%%+XW3xC+vJ>|e*A zN`X@IjR8#yN{w#w$mfT!G!cB+` z-NunqdM8AtU^7y8V<6gwaCcKlu=EW!Yhjewyg8HXh6i_}1$_7PL8*U9(Ldj<|9+MFC*$r6_BzpE!U4FH&XxTdJ z{W~arkq!Ykt&{ym-8HD(W%2sPzBC-HnOivB!xXoMPNea&NWMKu2c&^s9!`BITistE zwVURP^e`_{;9Te*GWpZPmeT3gVq=wr18MA9>DC1yD5WkpnGmz zEZVXbQ?*EiAD7YLwi$0LpFtN>3E%jM!qQWdT_oFtuf!D0VvEh(>}H_Bo}XhiLA@Iu zUTU?IpFb6}q*S%hkZ25{?9(K@JCYJH*>XYO4`*nJRB$ykMFO{n-C_@OL!Ur%C~+r3 zz6@Sf#nR6|qw#8VXhA{}D2)7Rgjb@i4J;1YLgo%v)p2Is_g+0SAANfHbm?FCHL%*k zarvkbp+9s`T-OX1hAcf84fv6^`|4j)oGp@N)-vk$Y$EEd^~*QV?gvHMIl+a)Bg@>T zIHzArxh=q`v*V!L5O$Jkl7@1MV%Vf?j``dMVm$cWCmR){oFD>3q`8GzHB$VWJhhsc$_0|P1tQj!D+gL-)eoI3XqM^`^r z(IbJ^hFA*WNyShGMp2*bb2fdR2i6zc|NY!nzc-Wa&(JZ`T@Z>lj=Th7#@{@RZ)Nv> zf^tF$PHWvqrHWd-0(f4}GhW_Y)ujeandyH~R~BdFsH4q&SK3lZT4O%p%F5O|H4`}4 zTv{?IedKUd10H{mqZ@#!)U6RT2CpGGJ|3h|RAc<{?N0}u!edf%Iv)>F{wn-&)pKLL z{|h3xBa9!cDr1|QmlPQg{e~B<68S2$T7%Tg;V$p@zd3I+>fSbQH`zaukB*AdN~S}k z5lEAK53RKwbozA`c!AO-(&|8jS6=X8DK>Ja+v;O{jHc#?(~6ZK%*CKUN7(&PY1@f6 z=I^eKJat7F<&>*;HLmkdvWrMMuqv|W29AP%sPn~nwQOH?eX4@J_KUX}s*`amko1dK zIqo*p#}nt_FvIzyQ+MQG-l^47$yV`~vq6gaGV9R*fr67U(}dWE?m(coyzV^PYOB3t zc&eaj=q1Ty4Nw$}>3>fUPpDC4R?PLcBV#r*@GABguIc!T=8UmerR-!|j3JI9qI=p5))VN=-PWTVneJwFXLld{eBm8 z2SM{UPlZ%nl-bJ|s{}&VJ@q;t{Z#GMt{j_7Xx5>r7nF7qDnNhAx&cCBcT?Jtn!}Y#quuWa>1mxRBw=4yI?xfkI z3NGis0Ilp~%{f>0DAl9`yA5y0)~OAkj>d}E-ZIE|ar--zp-@j9CUI7%Cp6WFIw5?*jp$ z7shrI4PAnqUv}vkoP2=PmeR9!e9IcQ2b2wpI@JVBTZ|5YOgf>EW@ef9tuxNWC0yIh zeH0W*MJP#n8)cg4=C~<1zFY(=r)|c2 zzi$iCh7(^$a!7kiH*6~u*}UwjEv9AH#$28AWMz@^w3ZfVLbW)pGX!$QFD)E9+chN1 zW$+g+b&IZL{;Q>HW4z0wUil;pm3@0F;I*#4Z1{5S+~o6PJDzXYMUBcwsE8hFl&;|e)34*i3k70Fg#jVO$MtNJW_5ufXVfd`dy0n>?=P=E5@e}#a^6p&NEYyj z2L#A}pd~vuj9lIUM=;v|R$uX;lYV}W$*K?eN6IAhlr1{^s@+8E&i`q0bRPRZ5pckM z_ivuoID{Wv|2|?m>G}7}&WHvKxqx(QsMw7IRL6v5$I z?NhjKjIi~5cdWt)@|Z-=Ig(sSR^i!Nqu#Db@Y1+o1=g(8@J>!At9xiU)~A}e$Q)eX zuV#9uqNFg-XXgFBQ?wrJbV}m9aWBTZ98e7Cd~f_BR_sYg@tR9rfzk65B@)M>!XS;S z-Z{BK@`sK^?iGn(0H0WGdR~kG=2gAr^h@N4!Szf?(sn*$tjgzg|4Z4G9gXN-eNgfc zNJw*^m^z}d#5(I=t@Jr@b^vGg@Nxh8W7Uh*#i!18xiWv!B*0H59~3QF)l=7?Ainj+ z2&VY}7Siwc`rp_gvX6dG^Njc#sqo?;rwGOq$r+hvFvVuKzE%tMge054?7}(dyap5u zP!x@7$jaktX1c){(%91OUtR2OEfV1xs>~(f(KdEic_NUx=;?1T-zi=JhW^4adkJy&FAY#5G*s1iW>EfqhBaP446_pdECB7_p3vs`-B+#>EBitK+t(XpJKl3 zKcTM=4c;sWiZm*LI|@C@MB)5SJ$JLJcRWab+42WZjF_4G_1KxkuqyZK4wbCsSyE)I zpN$d9pIg|Qq0COMyYeR(;O)E$M>BbQCw1@KN$4HZ%$J8HQrr$Sa}<1e{V8DwilDDT z_6&9l{vqF(7d~WG5wT57VEVWa+Y=0H!fQu}W4nvG^B!o-Qp)&TD&sI~39xzDOZlXH z&pG5az-p291$=br@B14{m2~tRXVQ|{KU)1W;xi92`eD}&959pccSYe7kxY1Bfm{7; z7paE~w<~GBGnrRE9YuNndqra8=0pY{Ff_ob<0*oCz;w`Q61lBF(eoI%d7od%a+Ss2m|M-fmwB2~R8EHuk;Kr<`&MEN|zrjGnNz z3`iM9Smx?a&w>iloO4SIL z=Wg3H1gv{mb8cTiL0@PzRP)<`en)9bUQplqq~R_Zz8$>B164>XHTL^nGjEe6i!kGq zd9;4mBzgB6a@(A7@pHcBX$*jChsibb-FiWG-jQB^|2kEff_<@N@N{RXaC=fg`nvRy zzHy%!aEtX`0#G_|^p#xF&LzwEb?Y&3t@Ch+Z`f;Pq{}qqZSlfktjXhhB4fgRi>w;? zxmZ=;zlW#4ZkW}K-3Qk~xm2}>G+yeIjxTn7#0o_U5U>6lZEO2lQX?Y#4eP=nke>VL zN($Sz@6Y1+-Sl_&#ZtpV61~E&hqUY5dVz&Si>s*|wwmE4 z8Ka!_UEU%7Azth*UUQ#HsTTr2WcKS7p)1r@hFYZ{(g%(gTgo~vmPbP*r1Q@mG&hL8 zR4Z?&7y?!)hB3+ft~V)|?3KV9qUaa>|2twbc@U;?FRs!69w>j1hnitlt2~*Vd>1l$ zlJD9#&??d`#z&2!uG>ua&aYUqaPD3Fi|MAJp3re?{S0^cndiSkvYrcwdOQWBl?ced z;R=+XDIK$C8<5%|{r{RB?ou<|zD+XV=TVDD$w(}~Y%n&j+IV-P4rpxF>swCA>^X1Z z`OgQ)#eEQ2?c|1GnfAaBrs12ut=&v`P?o)lr%BFW2|Pu@LPN0Cq_aRD6&YV zYXOqyA9oz=JYJ=vbRNxW%stbp>_-7M@e!%K$e>ZvM};R1<;os?FqypwqS?l;5>~ z-G`dH?xH)M#|guIK&>4RT%8YMNIwVLe0a4TSC}#oC z*1x6H3;6h^wpvaOy$t`N(ryfnXZPnP{(F$k>9j1dZw!Vw;)Xk6Nj2Wzhb1*HEjD0S zN|nnxNqw6=Les`qBi)SlK=mT$Q!4Q=M^cT@EIj2y&{`<}q#TLae(t{`V`vJI0&0YdiNIy1n@O5vtJ3zxfpskXmgUPme^wry-wq+Oa4QitU{; z+i+{<0#6mC9{<)udTb#m?lr$q{Q=i}W%#R|bIVZt)RM2cYMtHqps=nZ8IrliK{to` z^q%^SJ6Jc?yQBFXrcu!Eeho?^D?Yld{h&exsc0)*Cg!dEmUlb~cQ$0UI@P`j=QnpK z_Vv`4ul?GI=iu?VhpsLF$U)IC-vHkeW?s*}&}CI%$m|Kx2rg^UzW2;oW+=kKlFM&50s6Lzlszt`075|vx> z#cCI>^g-IKov}l%az8gLMW3;pRY-r7+(PTf&U|(m&q)npFP!`4&Bf_s9L*}kRXSto z8j@>5sbC zV~gc>E&Qhin}*UOt|pG;N|v-ukjWM;5M*)bO$payI=nmG5@=Q>P-DD*c~zwd!9fk{m>%_St%8H?7MrCT@k1mSlX z;_*KrA)P6e(8V-*v6iPQJDyuPR_Pru`V7BPYAkL166FXUk%1Q2KI}i{%KH8K zV=Yci{y^7u9F8^?RfJOwdH00KK|5%qQ=7wIi~K!IS9;R;yiCKGvtmB~H7*zKdHfuB zEy3~IRc^)oJCk@~56^6LzD{9dc=c_1;uSY6ZhDN}w*+~o|6dq4^^{rMC^AJghM?~>&m6wQ;l%xC&hG2;!4X2ERhX^-urT7FVxr36O- zkpwT{FTbhn_9fQ_+a5ed`Eb`*r*r@3X(TSbhtJ(DUFL3zWIthLsZsdKC zpISo&GbaSjHISdpz))1ndoxt;|N9&VySZK()qRd_NXW!`mll=U;Co#%V;0!r#jc` zth^2WW84JuV8x&~m~_|3i5bG$8vZ;(7W`^uhYaywb|0_H_{{1-QJoso9XdNM4=H9# zGkG*{Z1Z&(ll^4A0wtgUd;PmI#f=6o*%A_kA8u>nZj`9^b(7SEJ~u$=PZHtOv!(D1 z1#EWSot&Dy2dZ^@>U=zFv*i)|i&_#eFrW_Tfm>5brnM#62Bp;8z&z2AZ; z)xTnwU^{ zyS{gIWYbKqP(#v{`Xf>qC<`m%9F5|~iKL!!)8<|}?QQy4O|#R@5FGB(o7yerxfk@c z5PYc*uc6sSCySMCq2cQ9Ve%TxRf=bzQsM415EQuP7(Dq4dOr~|8!x-bGhYvxr;MH` zkqqHzF9f{S56r2d=DfS0!`LjxgFe;WdNCozCLSjWNO1 z`Qe!CN5f^M=je3N%{Pf1UfAGC#o%98B2^MK8|toyQKFCm`ePk$%xAZEb)U(p4+?`= zstK9F&G!5s<~n^^>_LGT81z_gbmbP(G?Q#=!1k7CpNr0WA;CcQ+ACkq1NDNTh6b%l zirgGa<+CBPuF(}70CiSAiDR)dk$d;GEqdNzw;fIq>^Ayj@0CP{_TQ|4LlnHRsNdSX zk02cM&B@#yB%(fmEs>&6&SX;Y)<|If*KMJr$3TcSdm>=KoHTb6aNUAom0m{lTML31 zEmRulkVc%D^7pF{fQ*+`?G8f-WL$$W*5B4X z&!WZy#;VN-rm6^~eB`pcLJn@E`qGB|G?+wJ*l2%0AKt8YqjdvPS56ImPKNiP1<43V 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

ApC6up;6ONjo26N7j3#TRDM(J2 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

1$K`dJ#%q*I?U@Wo$s(beZgjqsy#jp$A8I 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

v7@>zbt5|fI)>{UBX@NOjOr`7dGWt~X%U!?p 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

?ti5l~`GJ>tcQM5iemFx_gFmi&?W_!ElK{9# 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

mqJ5 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

fwd-SVjtEW*_WNyqppiRI8i#vk zZGs8qvt33-3p_XCLl#h-y4s|G7NN9XbmJb&S=tG(GPHqlOaipQE|f+naDI=c>nv|P zPn|u%1ZbyWYOu4ihee~m-eiV$g9QZ>qLxcwL$)Ox454`wD!}E4Ud;?wgul~fAKwks zI|d#JF>3^a821KTs1@{Z5}G>ZS!E8HSO*xL7<;m`@y%P#Y=6F=){(En7v3xR z?MgmeiD_b7j9BFnw#}Zn9f2P~4Xq73hU+Ex+ok&Ri~Q6$=~i>Hu-%P(b~tbIjGlg} zTNm3UO%OE@O?i`FbT@_`N)sYNyqQRS=#c!7Xz3|k`?qxU-x<2GhK~-`wZ=L$*@Pdm zDnG=PVld|~3pgN`XJ{nJxm$+rG{kSAhpjWLF8Qa5{~;UP>6ficZ|NWfO`^e{ynwPeF z_aOdW=z0IO*HL{{!pXBACKw}vof!{OJdS>`cA|pK*gqOgWGTg=FQrX`cFKd{(FXm4==&glAeiDYq2#)5Jds zPYidmb9;-_wX;b3T{`$ftmCNeNDUIT@*$5GiV=RDYPu{V_rVA~wyR|_oKoEp(zZ{9 z8E9w-(B%yg@CWx0lJ+P!^?l_lg6Cl5$k$PYlKB3O=3RV) z4MEz}zR2o3N#Ui9Uif~B0jqg1k+R4ruh1KPvhO%OjZ0dlobiNNV|CGHr(s1p2(NSlfUBCEN#KEI9+UoxU)SwKo99Vqp7|Kj+dq=`cRIJMLCe z;MoG>cykxvSVY(011o>xSV|XuYTRM_MZ-wdwxmYi#m@5nONW-7g@YINCo}rN%O_5M z1a!t8?=3#{uo^M_dNRSfN<5mw3p*UmuW#&z2eKFIm^_5lKV$H#5+Le}r1&#(@+F$y z4fPY)WU78H`PY|6G%P=;WT5PChWT7-+`a!tQbMf

  • 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 Q+78)SS@E=t{Zn1}75xj4ng5-MZ^_SsncVbL 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

    g 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 wrfod6`@rM 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

    )T^dlM;w^J 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

    G1u*yv!L6Km+py)zyhRc+YF!COQpZR&$*5NJG`C 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

    oTN%8qz2wBT}6YeGhx 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

  • ^=2fs^@~{Ty%*P&rTA$*&QX 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

    + + + {headCells.map((cell) => ( + + + {cell.label} + + + ))} + + + + + {headCells.map((cell) => { + return ( + + {cell.numeric + ? (cell.label === 'Efficiency' + ? (totalData.totalEfficiency == 1.0 && totalData.cpuReqCoreHrs == 0 && totalData.ramReqByteHrs == 0) + ? "Inf%" + : `${round(totalData.totalEfficiency*100, 1)}%` + : toCurrency(totalData[cell.id], currency)) + : totalData[cell.id]} + + )})} + + {pageRows.map((row, key) => { + if (row.name === "__unmounted__") { + row.name = "Unmounted PVs" + } + + let isIdle = row.name.indexOf("__idle__") >= 0 + let isUnallocated = row.name.indexOf("__unallocated__") >= 0 + let isUnmounted = row.name.indexOf("Unmounted PVs") >= 0 + + // Replace "efficiency" with Inf if there is usage w/o request + let efficiency = round(row.totalEfficiency*100, 1) + if (row.totalEfficiency == 1.0 && row.cpuReqCoreHrs == 0 && row.ramReqByteHrs == 0) { + efficiency = "Inf" + } + + // Do not allow drill-down for idle and unallocated rows + if (isIdle || isUnallocated || isUnmounted) { + return ( + + {row.name} + {toCurrency(row.cpuCost, currency)} + {toCurrency(row.ramCost, currency)} + {toCurrency(row.pvCost, currency)} + {isIdle ? ( + + ) : ( + {efficiency}% + )} + {toCurrency(row.totalCost, currency)} + + ) + } + + return ( + + {row.name} + {toCurrency(row.cpuCost, currency)} + {toCurrency(row.ramCost, currency)} + {toCurrency(row.pvCost, currency)} + {efficiency}% + {toCurrency(row.totalCost, currency)} + + ) + })} + +
    + + +
    + ) +} + +export default React.memo(AllocationReport) diff --git a/plugins/opencost/src/components/Controls/Download.js b/plugins/opencost/src/components/Controls/Download.js new file mode 100644 index 0000000000..ae111376f6 --- /dev/null +++ b/plugins/opencost/src/components/Controls/Download.js @@ -0,0 +1,89 @@ +import React from 'react' +import { get, forEach, reverse, round, sortBy } from 'lodash' +import ExportIcon from '@material-ui/icons/GetApp' +import IconButton from '@material-ui/core/IconButton' +import Tooltip from '@material-ui/core/Tooltip' + +const columns = [ + { + head: "Name", + prop: "name", + currency: false, + }, { + head: "CPU", + prop: "cpuCost", + currency: true, + }, { + head: "GPU", + prop: "gpuCost", + currency: true, + }, { + head: "RAM", + prop: "ramCost", + currency: true, + }, { + head: "PV", + prop: "pvCost", + currency: true, + }, { + head: "Network", + prop: "networkCost", + currency: true, + }, { + head: "Shared", + prop: "sharedCost", + currency: true, + }, { + head: "Total", + prop: "totalCost", + currency: true, + } +] + +const toCSVLine = (datum) => { + let cols = [] + + forEach(columns, c => { + if (c.currency) { + cols.push(round(get(datum, c.prop, 0.0), 2)) + } else { + cols.push(`"${get(datum, c.prop, "")}"`) + } + }) + + return cols.join(',') +} + +const DownloadControl = ({ + cumulativeData, + title, +}) => { + // downloadReport downloads a CSV of the cumulative allocation data + function downloadReport() { + // Build CSV + const head = columns.map(c => c.head).join(',') + const body = reverse(sortBy(cumulativeData, 'totalCost')).map(toCSVLine).join('\r\n') + const csv = `${head}\r\n${body}` + + // Create download link + const a = document.createElement("a") + a.href = URL.createObjectURL(new Blob([csv], { type: "text/csv" })) + const filename = title.toLowerCase().replace(/\s/gi, '-') + a.setAttribute("download", `${filename}-${Date.now()}.csv`) + + // Click the link + document.body.appendChild(a) + a.click() + document.body.removeChild(a) + } + + return ( + + + + + + ) +} + +export default React.memo(DownloadControl) diff --git a/plugins/opencost/src/components/Controls/Edit.js b/plugins/opencost/src/components/Controls/Edit.js new file mode 100644 index 0000000000..2054672518 --- /dev/null +++ b/plugins/opencost/src/components/Controls/Edit.js @@ -0,0 +1,74 @@ +import { makeStyles } from '@material-ui/styles'; +import FormControl from '@material-ui/core/FormControl' +import InputLabel from '@material-ui/core/InputLabel' +import MenuItem from '@material-ui/core/MenuItem' +import Select from '@material-ui/core/Select' + +import React from 'react'; + +import SelectWindow from '../SelectWindow'; + +const useStyles = makeStyles({ + wrapper: { + display: 'inline-flex', + }, + formControl: { + margin: 8, + minWidth: 120, + }, +}); + +function EditControl({ + windowOptions, window, setWindow, + aggregationOptions, aggregateBy, setAggregateBy, + accumulateOptions, accumulate, setAccumulate, + currencyOptions, currency, setCurrency, +}) { + const classes = useStyles(); + return ( +
    + + + Breakdown + + + + Resolution + + + + Currency + + +
    + ); +} + +export default React.memo(EditControl); diff --git a/plugins/opencost/src/components/Controls/index.js b/plugins/opencost/src/components/Controls/index.js new file mode 100644 index 0000000000..fe687e51be --- /dev/null +++ b/plugins/opencost/src/components/Controls/index.js @@ -0,0 +1,46 @@ +import React from 'react' +import DownloadControl from './Download' +import EditControl from './Edit' + +const Controls = ({ + windowOptions, + window, + setWindow, + aggregationOptions, + aggregateBy, + setAggregateBy, + accumulateOptions, + accumulate, + setAccumulate, + title, + cumulativeData, + currency, + currencyOptions, + setCurrency, +}) => { + + return ( +
    + + +
    + ) +} + +export default React.memo(Controls) diff --git a/plugins/opencost/src/components/Details.js b/plugins/opencost/src/components/Details.js new file mode 100644 index 0000000000..9cc45d0913 --- /dev/null +++ b/plugins/opencost/src/components/Details.js @@ -0,0 +1,227 @@ +import React, { memo, useEffect, useState } from 'react'; +import { forEach, get, reverse, round, sortBy } from 'lodash'; +import CircularProgress from '@material-ui/core/CircularProgress'; +import ClusterIcon from '@material-ui/icons/GroupWork'; +import NodeIcon from '@material-ui/icons/Memory'; +import List from '@material-ui/core/List'; +import ListItem from '@material-ui/core/ListItem'; +import ListItemIcon from '@material-ui/core/ListItemIcon'; +import ListItemText from '@material-ui/core/ListItemText'; +import Table from '@material-ui/core/Table'; +import TableBody from '@material-ui/core/TableBody'; +import TableCell from '@material-ui/core/TableCell'; +import TableContainer from '@material-ui/core/TableContainer'; +import TableHead from '@material-ui/core/TableHead'; +import TableRow from '@material-ui/core/TableRow'; +import Warnings from './Warnings'; +import AllocationService from '../services/allocation'; +import { bytesToString, toCurrency } from '../util'; + +const Details = ({ + window, + namespace, + controllerKind, + controller, + pod, + currency, +}) => { + const [cluster, setCluster] = useState('') + const [node, setNode] = useState('') + + const [fetch, setFetch] = useState(true) + const [loading, setLoading] = useState(false) + const [errors, setErrors] = useState([]) + const [rows, setRows] = useState([]) + + useEffect(() => { + if (fetch) { + setCluster('') + setNode('') + fetchData() + } + }, [fetch]) + + async function fetchData() { + setLoading(true) + setErrors([]) + + try { + const filters = [] + + if (cluster) { + filters.push({ + property: "cluster", + value: cluster, + }) + } + + if (node) { + filters.push({ + property: "node", + value: node, + }) + } + + if (namespace) { + filters.push({ + property: "namespace", + value: namespace, + }) + } + + if (controllerKind) { + filters.push({ + property: "controllerKind", + value: controllerKind, + }) + } + + if (controller) { + filters.push({ + property: "controller", + value: controller, + }) + } + + if (pod) { + filters.push({ + property: "pod", + value: pod, + }) + } + + const resp = await AllocationService.fetchAllocation(window, '', { accumulate: true }) + + let data = [] + forEach(resp.data[0], (datum) => { + if (datum.name === "__idle__") { + return + } + + if (!cluster) { + setCluster(get(datum, 'properties.cluster', '')) + } + + if (!node) { + setNode(get(datum, 'properties.node', '')) + } + + // TODO can we get pod, container back in properties? + const names = datum.name.split("/") + datum.pod = names[names.length-2] + datum.container = names[names.length-1] + + datum.hours = round(get(datum, 'minutes', 0.0) / 60.0, 2) + + if (datum.hours > 0) { + datum.cpu = round(get(datum, 'cpuCoreHours', 0.0) / datum.hours, 2) + datum.cpuCostPerCoreHr = datum.cpuCost / (datum.cpu * datum.hours) + if (datum.cpu === 0) { + datum.cpuCostPerCoreHr = 0.0 + } + + datum.ram = round(get(datum, 'ramByteHours', 0.0) / datum.hours, 2) + const ramGiB = datum.ram / 1024 / 1024 / 1024 + datum.ramCostPerGiBHr = datum.ramCost / (ramGiB * datum.hours) + if (ramGiB === 0) { + datum.ramCostPerGiBHr = 0.0 + } + } else { + datum.cpu = 0.0 + datum.cpuCostPerCoreHr = 0.0 + datum.ram = 0.0 + datum.ramCostPerGiBHr = 0.0 + } + + data.push(datum) + }) + + data = reverse(sortBy(data, 'totalCost')) + + setRows(data) + } catch (e) { + console.warn(`Error fetching details for (${controllerKind}, ${controller}):`, e) + setErrors([{ + primary: "Error fetching details", + secondary: `Tried fetching details for: ${namespace}, ${controllerKind}, ${controller}, ${pod}`, + }]) + } + + setLoading(false) + setFetch(false) + } + + if (loading) { + return ( +
    +
    + +
    +
    + ) + } + + return ( +
    + + {!loading && errors.length > 0 && ( +
    + +
    + )} + + + {cluster && ( + + + + + + + )} + {node && ( + + + + + + + )} + + + + + + Container + Hours + CPU + $/(CPU*Hr) + CPU cost + RAM + $/(GiB*Hr) + RAM cost + Total cost + + + + {rows.map((row, i) => ( + + {row.container} + {row.hours} + {row.cpu} + {toCurrency(row.cpuCostPerCoreHr, currency, 5)} + {toCurrency(row.cpuCost, currency, 3)} + {bytesToString(row.ram)} + {toCurrency(row.ramCostPerGiBHr, currency, 5)} + {toCurrency(row.ramCost, currency, 3)} + {toCurrency(row.totalCost, currency, 3)} + + ))} + +
    +
    +
    + ) +} + +export default memo(Details) diff --git a/plugins/opencost/src/components/OpenCostFetchComponent/OpenCostFetchComponent.test.tsx b/plugins/opencost/src/components/OpenCostFetchComponent/OpenCostFetchComponent.test.tsx deleted file mode 100644 index 0537e056fd..0000000000 --- a/plugins/opencost/src/components/OpenCostFetchComponent/OpenCostFetchComponent.test.tsx +++ /dev/null @@ -1,40 +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. - */ -import React from 'react'; -import { render, screen } from '@testing-library/react'; -import { OpenCostFetchComponent } from './OpenCostFetchComponent'; -import { rest } from 'msw'; -import { setupServer } from 'msw/node'; -import { setupRequestMockHandlers } from '@backstage/test-utils'; - -describe('OpenCostFetchComponent', () => { - const server = setupServer(); - // Enable sane handlers for network requests - setupRequestMockHandlers(server); - - // setup mock response - beforeEach(() => { - server.use( - rest.get('https://randomuser.me/*', (_, res, ctx) => - res(ctx.status(200), ctx.delay(2000), ctx.json({})), - ), - ); - }); - it('should render', async () => { - await render(); - expect(await screen.findByTestId('progress')).toBeInTheDocument(); - }); -}); diff --git a/plugins/opencost/src/components/OpenCostFetchComponent/OpenCostFetchComponent.tsx b/plugins/opencost/src/components/OpenCostFetchComponent/OpenCostFetchComponent.tsx deleted file mode 100644 index 80db2be5e1..0000000000 --- a/plugins/opencost/src/components/OpenCostFetchComponent/OpenCostFetchComponent.tsx +++ /dev/null @@ -1,111 +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. - */ -import React from 'react'; -import { makeStyles } from '@material-ui/core/styles'; -import { - Table, - TableColumn, - Progress, - ResponseErrorPanel, -} from '@backstage/core-components'; -import { fetchApiRef, useApi } from '@backstage/core-plugin-api'; -import useAsync from 'react-use/lib/useAsync'; - -const useStyles = makeStyles({ - avatar: { - height: 32, - width: 32, - borderRadius: '50%', - }, -}); - -type User = { - gender: string; // "male" - name: { - title: string; // "Mr", - first: string; // "Duane", - last: string; // "Reed" - }; - location: object; // {street: {number: 5060, name: "Hickory Creek Dr"}, city: "Albany", state: "New South Wales",…} - email: string; // "duane.reed@example.com" - login: object; // {uuid: "4b785022-9a23-4ab9-8a23-cb3fb43969a9", username: "blackdog796", password: "patch",…} - dob: object; // {date: "1983-06-22T12:30:23.016Z", age: 37} - registered: object; // {date: "2006-06-13T18:48:28.037Z", age: 14} - phone: string; // "07-2154-5651" - cell: string; // "0405-592-879" - id: { - name: string; // "TFN", - value: string; // "796260432" - }; - picture: { medium: string }; // {medium: "https://randomuser.me/api/portraits/men/95.jpg",…} - nat: string; // "AU" -}; - -type DenseTableProps = { - users: User[]; -}; - -export const DenseTable = ({ users }: DenseTableProps) => { - const classes = useStyles(); - - const columns: TableColumn[] = [ - { title: 'Avatar', field: 'avatar' }, - { title: 'Name', field: 'name' }, - { title: 'Email', field: 'email' }, - { title: 'Nationality', field: 'nationality' }, - ]; - - const data = users.map(user => { - return { - avatar: ( - {user.name.first} - ), - name: `${user.name.first} ${user.name.last}`, - email: user.email, - nationality: user.nat, - }; - }); - - return ( - - ); -}; - -export const OpenCostFetchComponent = () => { - const { fetch } = useApi(fetchApiRef); - const { value, loading, error } = useAsync(async (): Promise => { - const response = await fetch('https://randomuser.me/api/?results=20'); - const data = await response.json(); - return data.results; - }, []); - - if (loading) { - return ; - } else if (error) { - return ; - } - - return ; -}; diff --git a/plugins/opencost/src/components/OpenCostPage/OpenCostPage.test.tsx b/plugins/opencost/src/components/OpenCostPage/OpenCostPage.test.tsx index 99f7d51cc3..de6565246c 100644 --- a/plugins/opencost/src/components/OpenCostPage/OpenCostPage.test.tsx +++ b/plugins/opencost/src/components/OpenCostPage/OpenCostPage.test.tsx @@ -37,6 +37,6 @@ describe('OpenCostPage', () => { it('should render', async () => { await renderInTestApp(); - expect(screen.getByText('Welcome to OpenCost!')).toBeInTheDocument(); + expect(screen.getByText('Open source Kubernetes cloud cost monitoring')).toBeInTheDocument(); }); }); diff --git a/plugins/opencost/src/components/OpenCostPage/OpenCostPage.tsx b/plugins/opencost/src/components/OpenCostPage/OpenCostPage.tsx index faf3ca1a49..88ef390c49 100644 --- a/plugins/opencost/src/components/OpenCostPage/OpenCostPage.tsx +++ b/plugins/opencost/src/components/OpenCostPage/OpenCostPage.tsx @@ -14,14 +14,14 @@ * limitations under the License. */ import React from 'react'; -import { Typography, Grid } from '@material-ui/core'; +import { Grid } from '@material-ui/core'; import { Header, Page, Content, ContentHeader, } from '@backstage/core-components'; -import { OpenCostFetchComponent } from '../OpenCostFetchComponent'; +import { OpenCostReport } from '../OpenCostReport'; export const OpenCostPage = () => ( @@ -38,11 +38,10 @@ export const OpenCostPage = () => ( /> - - + - + diff --git a/plugins/opencost/src/components/OpenCostReport/OpenCostReport.tsx b/plugins/opencost/src/components/OpenCostReport/OpenCostReport.tsx new file mode 100644 index 0000000000..0f25d72f3d --- /dev/null +++ b/plugins/opencost/src/components/OpenCostReport/OpenCostReport.tsx @@ -0,0 +1,270 @@ +// code ported from https://github.com/opencost/opencost/blob/develop/ui/src/Reports.js + +import React, { useEffect, useState } from 'react' +import CircularProgress from '@material-ui/core/CircularProgress' +import IconButton from '@material-ui/core/IconButton' +import Paper from '@material-ui/core/Paper' +import RefreshIcon from '@material-ui/icons/Refresh' +import Typography from '@material-ui/core/Typography' +import { useLocation, useNavigate } from 'react-router-dom'; +import { find, forEach, get, sortBy, toArray } from 'lodash' +import { makeStyles } from '@material-ui/styles' +import AllocationReport from '../AllocationReport'; +import AllocationService from '../../services/allocation'; +import Controls from '../Controls'; +import Page from '../Page'; +import Subtitle from '../Subtitle'; +import Warnings from '../Warnings'; +import { checkCustomWindow, cumulativeToTotals, rangeToCumulative, toVerboseTimeRange } from '../../util'; +import { currencyCodes } from '../../constants/currencyCodes' + +const windowOptions = [ + { name: 'Today', value: 'today' }, + { name: 'Yesterday', value: 'yesterday' }, + { name: 'Week-to-date', value: 'week' }, + { name: 'Month-to-date', value: 'month' }, + { name: 'Last week', value: 'lastweek' }, + { name: 'Last month', value: 'lastmonth' }, + { name: 'Last 7 days', value: '6d' }, + { name: 'Last 30 days', value: '29d' }, + { name: 'Last 60 days', value: '59d' }, + { name: 'Last 90 days', value: '89d' }, +] + +const aggregationOptions = [ + { name: 'Cluster', value: 'cluster' }, + { name: 'Node', value: 'node' }, + { name: 'Namespace', value: 'namespace' }, + { name: 'Controller kind', value: 'controllerKind' }, + { name: 'Controller', value: 'controller' }, + { name: 'Service', value: 'service' }, + { name: 'Pod', value: 'pod' }, + { name: 'Container', value: 'container' }, +] + +const accumulateOptions = [ + { name: 'Entire window', value: true }, + { name: 'Daily', value: false }, +] + +const useStyles = makeStyles({ + reportHeader: { + display: 'flex', + flexFlow: 'row', + padding: 24, + }, + titles: { + flexGrow: 1, + }, +}) + +// generateTitle generates a string title from a report object +function generateTitle({ window, aggregateBy, accumulate }) { + let windowName = get(find(windowOptions, { value: window }), 'name', '') + if (windowName === '') { + if (checkCustomWindow(window)) { + windowName = toVerboseTimeRange(window) + } else { + console.warn(`unknown window: ${window}`) + } + } + + let aggregationName = get(find(aggregationOptions, { value: aggregateBy }), 'name', '').toLowerCase() + if (aggregationName === '') { + console.warn(`unknown aggregation: ${aggregateBy}`) + } + + let str = `${windowName} by ${aggregationName}` + + if (!accumulate) { + str = `${str} daily` + } + + return str +} + +export const OpenCostReport = () => { + console.log("get the URL from the config") + const baseUrl = "http://localhost:9003"; + + const classes = useStyles() + // Allocation data state + const [allocationData, setAllocationData] = useState([]) + const [cumulativeData, setCumulativeData] = useState({}) + const [totalData, setTotalData] = useState({}) + + // When allocation data changes, create a cumulative version of it + useEffect(() => { + const cumulative = rangeToCumulative(allocationData, aggregateBy) + setCumulativeData(toArray(cumulative)) + setTotalData(cumulativeToTotals(cumulative)) + }, [allocationData]) + + // Form state, which controls form elements, but not the report itself. On + // certain actions, the form state may flow into the report state. + const [window, setWindow] = useState(windowOptions[0].value) + const [aggregateBy, setAggregateBy] = useState(aggregationOptions[0].value) + const [accumulate, setAccumulate] = useState(accumulateOptions[0].value) + const [currency, setCurrency] = useState('USD') + + // Report state, including current report and saved options + const [title, setTitle] = useState('Last 7 days by namespace daily') + + // When parameters changes, fetch data. This should be the + // only mechanism used to fetch data. Also generate a sensible title from the paramters. + useEffect(() => { + setFetch(true) + setTitle(generateTitle({ window, aggregateBy, accumulate })) + }, [window, aggregateBy, accumulate]) + + // page and settings state + const [init, setInit] = useState(false) + const [fetch, setFetch] = useState(false) + const [loading, setLoading] = useState(true) + const [errors, setErrors] = useState([]) + + // Initialize once, then fetch report each time setFetch(true) is called + useEffect(() => { + if (!init) { + initialize() + } + if (init && fetch) { + fetchData() + } + }, [init, fetch]) + + // parse any context information from the URL + const routerLocation = useLocation(); + const searchParams = new URLSearchParams(routerLocation.search); + const routerNavigate = useNavigate(); + useEffect(() => { + setWindow(searchParams.get('window') || '6d'); + setAggregateBy(searchParams.get('agg') || 'namespace'); + setAccumulate((searchParams.get('acc') === 'true') || false); + setCurrency(searchParams.get('currency') || 'USD'); + }, [routerLocation]); + + async function initialize() { + setInit(true) + } + + async function fetchData() { + setLoading(true) + setErrors([]) + + try { + // get the baseUrl from the Basecamp config + console.log("get the baseUrl from the Basecamp config") + const resp = await AllocationService.fetchAllocation(baseUrl, window, aggregateBy, { accumulate }) + if (resp.data && resp.data.length > 0) { + const allocationRange = resp.data + console.log(allocationRange); + for (const i in allocationRange) { + // update cluster aggregations to use clusterName/clusterId names + allocationRange[i] = sortBy(allocationRange[i], a => a.totalCost) + } + setAllocationData(allocationRange) + } else { + setAllocationData([]) + } + } catch (err) { + if (err.message.indexOf('404') === 0) { + setErrors([{ + primary: 'Failed to load report data', + secondary: 'Please update OpenCost to the latest version, then open an Issue on GitHub if problems persist.' + }]) + } else { + let secondary = 'Please open an OpenCost issue with a bug report if problems persist.' + if (err.message.length > 0) { + secondary = err.message + } + setErrors([{ + primary: 'Failed to load report data', + secondary: secondary, + }]) + } + setAllocationData([]) + } + + setLoading(false) + setFetch(false) + } + return ( + + + {!loading && errors.length > 0 && ( +
    + +
    + )} + + {init && +
    +
    + {title} + +
    + + setFetch(true)}> + + + + { + searchParams.set('window', win); + routerNavigate({ + search: `?${searchParams.toString()}`, + }); + }} + aggregationOptions={aggregationOptions} + aggregateBy={aggregateBy} + setAggregateBy={(agg) => { + searchParams.set('agg', agg); + routerNavigate({ + search: `?${searchParams.toString()}`, + }); + }} + accumulateOptions={accumulateOptions} + accumulate={accumulate} + setAccumulate={(acc) => { + searchParams.set('acc', acc); + routerNavigate({ + search: `?${searchParams.toString()}` + }); + }} + title={title} + cumulativeData={cumulativeData} + currency={currency} + currencyOptions={currencyCodes} + setCurrency={(curr) => { + searchParams.set('currency', curr); + routerNavigate({ + search: `?${searchParams.toString()}` + }); + }} + /> +
    + + {loading && ( +
    +
    + +
    +
    + )} + {!loading && ( + + )} +
    } +
    +) +} diff --git a/plugins/opencost/src/components/OpenCostFetchComponent/index.ts b/plugins/opencost/src/components/OpenCostReport/index.ts similarity index 90% rename from plugins/opencost/src/components/OpenCostFetchComponent/index.ts rename to plugins/opencost/src/components/OpenCostReport/index.ts index 91c904e5e7..aee85ea8db 100644 --- a/plugins/opencost/src/components/OpenCostFetchComponent/index.ts +++ b/plugins/opencost/src/components/OpenCostReport/index.ts @@ -13,4 +13,4 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -export { OpenCostFetchComponent } from './OpenCostFetchComponent'; +export { OpenCostReport } from './OpenCostReport'; diff --git a/plugins/opencost/src/components/Page.js b/plugins/opencost/src/components/Page.js new file mode 100644 index 0000000000..6dfe640ac4 --- /dev/null +++ b/plugins/opencost/src/components/Page.js @@ -0,0 +1,33 @@ +import { makeStyles } from '@material-ui/styles' +import React from 'react' + +const useStyles = makeStyles({ + wrapper: { + display: 'flex', + flexFlow: 'column', + flexGrow: 1, + margin: '20px 30px 0 30px', + minWidth: 800, + }, + flexGrow: { + display: 'flex', + flexFlow: 'column', + flexGrow: 1, + } +}) + +const Page = props => { + const classes = useStyles() + + return ( +
    +
    +
    + {props.children} +
    +
    +
    + ) +} + +export default Page diff --git a/plugins/opencost/src/components/SelectWindow.js b/plugins/opencost/src/components/SelectWindow.js new file mode 100644 index 0000000000..32957838c1 --- /dev/null +++ b/plugins/opencost/src/components/SelectWindow.js @@ -0,0 +1,190 @@ +import React, { useEffect, useState } from 'react' +import { makeStyles } from '@material-ui/styles' +import { endOfDay, startOfDay } from 'date-fns' +import { MuiPickersUtilsProvider, KeyboardDatePicker } from '@material-ui/pickers' +import Button from '@material-ui/core/Button' +import DateFnsUtils from '@date-io/date-fns' +import FormControl from '@material-ui/core/FormControl' +import Link from '@material-ui/core/Link' +import Popover from '@material-ui/core/Popover' +import TextField from '@material-ui/core/TextField' +import Typography from '@material-ui/core/Typography' +import { isValid } from 'date-fns' +import { find, get } from 'lodash' + +const useStyles = makeStyles({ + dateContainer: { + paddingLeft: 18, + paddingRight: 18, + paddingTop: 6, + paddingBottom: 18, + display: 'flex', + flexFlow: 'row', + }, + dateContainerColumn: { + display: 'flex', + flexFlow: 'column', + }, + formControl: { + margin: 8, + width: 120, + }, +}) + +const SelectWindow = ({ windowOptions, window, setWindow }) => { + const classes = useStyles() + const [anchorEl, setAnchorEl] = useState(null) + + const [startDate, setStartDate] = useState(null) + const [endDate, setEndDate] = useState(null) + const [intervalString, setIntervalString] = useState(null) + + const handleClick = (event) => { + setAnchorEl(event.currentTarget) + } + + const handleClose = () => { + setAnchorEl(null) + } + + const handleStartDateChange = (date) => { + if (isValid(date)) { + setStartDate(startOfDay(date)) + } + } + + const handleEndDateChange = (date) => { + if (isValid(date)) { + setEndDate(endOfDay(date)) + } + } + + const handleSubmitPresetDates = (dateString) => { + setWindow(dateString) + setStartDate(null) + setEndDate(null) + handleClose() + } + + const handleSubmitCustomDates = () => { + if (intervalString !== null) { + setWindow(intervalString) + handleClose() + } + } + + useEffect(() => { + if (startDate !== null && endDate !== null) { + // Note: getTimezoneOffset() is calculated based on current system locale, NOT date object + let adjustedStartDate = new Date(startDate - startDate.getTimezoneOffset() * 60000) + let adjustedEndDate = new Date(endDate - endDate.getTimezoneOffset() * 60000) + setIntervalString( + adjustedStartDate.toISOString().split('.')[0] + "Z" + + "," + + adjustedEndDate.toISOString().split('.')[0] + "Z" + ) + } + }, [startDate, endDate]) + + const open = Boolean(anchorEl) + const id = open ? 'date-range-popover' : undefined + + return ( + <> + + handleClick(e)} + inputProps={{ + readOnly: true, + style: { cursor: 'pointer' }, + }} + /> + + +
    +
    + + + + +
    + +
    +
    +
    + {windowOptions.map(opt => + + handleSubmitPresetDates(opt.value)} + > + {opt.name} + + + )} +
    +
    +
    + + ) + } + + export default React.memo(SelectWindow) \ No newline at end of file diff --git a/plugins/opencost/src/components/Subtitle.js b/plugins/opencost/src/components/Subtitle.js new file mode 100644 index 0000000000..44a26f3a75 --- /dev/null +++ b/plugins/opencost/src/components/Subtitle.js @@ -0,0 +1,41 @@ +import React from 'react' +import { makeStyles } from '@material-ui/styles' +import { upperFirst } from 'lodash' +import Breadcrumbs from '@material-ui/core/Breadcrumbs' +import NavigateNextIcon from '@material-ui/icons/NavigateNext' +import Typography from '@material-ui/core/Typography' +import { toVerboseTimeRange } from '../util'; + +const useStyles = makeStyles({ + root: { + '& > * + *': { + marginTop: 2, + }, + }, + link: { + cursor: "pointer", + }, +}) + +const Subtitle = ({ report }) => { + const classes = useStyles() + + const { aggregateBy, window } = report + + return ( +
    + } + aria-label="breadcrumb" + > + {aggregateBy && aggregateBy.length > 0 ? ( + {toVerboseTimeRange(window)} by {upperFirst(aggregateBy)} + ) : ( + {toVerboseTimeRange(window)} + )} + +
    + ) +} + +export default React.memo(Subtitle) diff --git a/plugins/opencost/src/components/Warnings.js b/plugins/opencost/src/components/Warnings.js new file mode 100644 index 0000000000..967fc6fde8 --- /dev/null +++ b/plugins/opencost/src/components/Warnings.js @@ -0,0 +1,37 @@ +import React from 'react' +import { makeStyles } from '@material-ui/styles' +import List from '@material-ui/core/List' +import ListItem from '@material-ui/core/ListItem' +import ListItemIcon from '@material-ui/core/ListItemIcon' +import ListItemText from '@material-ui/core/ListItemText' +import Paper from '@material-ui/core/Paper' +import WarningIcon from '@material-ui/icons/Warning' + +const useStyles = makeStyles({ + root: {}, +}) + +const Warnings = ({warnings}) => { + const classes = useStyles() + + if (!warnings || warnings.length === 0) { + return null + } + + return ( + + + {warnings.map((warn, i) => ( + + + + + + + ))} + + + ) +} + +export default Warnings diff --git a/plugins/opencost/src/constants/colors.js b/plugins/opencost/src/constants/colors.js new file mode 100644 index 0000000000..4c66549ad0 --- /dev/null +++ b/plugins/opencost/src/constants/colors.js @@ -0,0 +1,38 @@ +import blue from '@material-ui/core/colors/blue' +import brown from '@material-ui/core/colors/brown' +import cyan from '@material-ui/core/colors/cyan' +import deepOrange from '@material-ui/core/colors/deepOrange' +import deepPurple from '@material-ui/core/colors/deepPurple' +import green from '@material-ui/core/colors/green' +import grey from '@material-ui/core/colors/grey' +import indigo from '@material-ui/core/colors/indigo' +import orange from '@material-ui/core/colors/orange' +import red from '@material-ui/core/colors/red' +import teal from '@material-ui/core/colors/teal' +import yellow from '@material-ui/core/colors/yellow' + +export const primary = [ + blue[500], + red[500], + green[500], + yellow[500], + cyan[500], + orange[500], + teal[500], + indigo[500], + deepOrange[500], + deepPurple[500], +] + +export const greyscale = [ + grey[300], + grey[400], + grey[200], + grey[500], + grey[100], + grey[600], +] + +export const browns = [ + brown[500], +] diff --git a/plugins/opencost/src/constants/currencyCodes.js b/plugins/opencost/src/constants/currencyCodes.js new file mode 100644 index 0000000000..219384c24b --- /dev/null +++ b/plugins/opencost/src/constants/currencyCodes.js @@ -0,0 +1 @@ +export const currencyCodes = ["AED", "AFN", "ALL", "AMD", "ANG", "AOA", "ARS", "AUD", "AWG", "AZN", "BAM", "BBD", "BDT", "BGN", "BHD", "BIF", "BMD", "BND", "BOB", "BOV", "BRL", "BSD", "BTN", "BWP", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLF", "CLP", "CNY", "COP", "COU", "CRC", "CUC", "CUP", "CVE", "CZK", "DJF", "DKK", "DOP", "DZD", "EGP", "ERN", "ETB", "EUR", "FJD", "FKP", "GBP", "GEL", "GHS", "GIP", "GMD", "GNF", "GTQ", "GYD", "HKD", "HNL", "HRK", "HTG", "HUF", "IDR", "ILS", "INR", "IQD", "IRR", "ISK", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LVL", "LYD", "MAD", "MDL", "MGA", "MKD", "MMK", "MNT", "MOP", "MRO", "MUR", "MVR", "MWK", "MXN", "MXV", "MYR", "MZN", "NAD", "NGN", "NIO", "NOK", "NPR", "NZD", "OMR", "PAB", "PEN", "PGK", "PHP", "PKR", "PLN", "PYG", "QAR", "RON", "RSD", "RUB", "RWF", "SAR", "SBD", "SCR", "SDG", "SEK", "SGD", "SHP", "SLL", "SOS", "SRD", "SSP", "STD", "SYP", "SZL", "THB", "TJS", "TMT", "TND", "TOP", "TRY", "TTD", "TWD", "TZS", "UAH", "UGX", "USD", "USN", "USS", "UYI", "UYU", "UZS", "VEF", "VND", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XFU", "XOF", "XPD", "XPF", "XPT", "XTS", "XXX", "YER", "ZAR", "ZMW"]; diff --git a/plugins/opencost/src/services/allocation.js b/plugins/opencost/src/services/allocation.js new file mode 100644 index 0000000000..8b94c4945e --- /dev/null +++ b/plugins/opencost/src/services/allocation.js @@ -0,0 +1,23 @@ +import axios from 'axios'; + +class AllocationService { + async fetchAllocation(baseUrl, win, aggregate, options) { + const { accumulate, } = options; + const params = { + window: win, + aggregate: aggregate, + step: '1d', + }; + if (typeof accumulate === 'boolean') { + params.accumulate = accumulate; + } + + console.log(`${baseUrl}/allocation/compute`, { params }); + const result = await axios.get(`${baseUrl}/allocation/compute`, { params }); + + console.log(result.data); + return result.data; + } +} + +export default new AllocationService(); diff --git a/plugins/opencost/src/util.js b/plugins/opencost/src/util.js new file mode 100644 index 0000000000..8e4bfcb54d --- /dev/null +++ b/plugins/opencost/src/util.js @@ -0,0 +1,302 @@ +import { forEach, get, round } from 'lodash' + +// rangeToCumulative takes an AllocationSetRange (type: array[AllocationSet]) +// and accumulates the values into a single AllocationSet (type: object) +export function rangeToCumulative(allocationSetRange, aggregateBy) { + if (allocationSetRange.length === 0) { + return null + } + + const result = {} + + forEach(allocationSetRange, (allocSet) => { + forEach(allocSet, (alloc) => { + if (result[alloc.name] === undefined) { + const hrs = get(alloc, 'minutes', 0) / 60.0 + + result[alloc.name] = { + name: alloc.name, + [aggregateBy]: alloc.name, + cpuCost: get(alloc, 'cpuCost', 0), + gpuCost: get(alloc, 'gpuCost', 0), + ramCost: get(alloc, 'ramCost', 0), + pvCost: get(alloc, 'pvCost', 0), + networkCost: get(alloc, 'networkCost', 0), + sharedCost: get(alloc, 'sharedCost', 0), + externalCost: get(alloc, 'externalCost', 0), + totalCost: get(alloc, 'totalCost', 0), + cpuUseCoreHrs: get(alloc, 'cpuCoreUsageAverage', 0) * hrs, + cpuReqCoreHrs: get(alloc, 'cpuCoreRequestAverage', 0) * hrs, + ramUseByteHrs: get(alloc, 'ramByteUsageAverage', 0) * hrs, + ramReqByteHrs: get(alloc, 'ramByteRequestAverage', 0) * hrs, + cpuEfficiency: get(alloc, 'cpuEfficiency', 0), + ramEfficiency: get(alloc, 'ramEfficiency', 0), + totalEfficiency: get(alloc, 'totalEfficiency', 0), + } + } else { + const hrs = get(alloc, 'minutes', 0) / 60.0 + + result[alloc.name].cpuCost += get(alloc, 'cpuCost', 0) + result[alloc.name].gpuCost += get(alloc, 'gpuCost', 0) + result[alloc.name].ramCost += get(alloc, 'ramCost', 0) + result[alloc.name].pvCost += get(alloc, 'pvCost', 0) + result[alloc.name].networkCost += get(alloc, 'networkCost', 0) + result[alloc.name].sharedCost += get(alloc, 'sharedCost', 0) + result[alloc.name].externalCost += get(alloc, 'externalCost', 0) + result[alloc.name].totalCost += get(alloc, 'totalCost', 0) + result[alloc.name].cpuUseCoreHrs += get(alloc, 'cpuCoreUsageAverage', 0) * hrs + result[alloc.name].cpuReqCoreHrs += get(alloc, 'cpuCoreRequestAverage', 0) * hrs + result[alloc.name].ramUseByteHrs += get(alloc, 'ramByteUsageAverage', 0) * hrs + result[alloc.name].ramReqByteHrs += get(alloc, 'ramByteRequestAverage', 0) * hrs + } + }) + }) + + // If the range is of length > 1 (i.e. it is not just a single set) then + // compute efficiency for each result after accumulating. + if (allocationSetRange.length > 1) { + forEach(result, (alloc, name) => { + // If we can't compute total efficiency, it defaults to 0.0 + let totalEfficiency = 0.0 + + // CPU efficiency is defined as (usage/request). If request == 0.0 but + // usage > 0, then efficiency gets set to 1.0. + let cpuEfficiency = 0.0 + if (alloc.cpuReqCoreHrs > 0) { + cpuEfficiency = alloc.cpuUseCoreHrs / alloc.cpuReqCoreHrs + } else if (alloc.cpuUseCoreHrs > 0) { + cpuEfficiency = 1.0 + } + + // RAM efficiency is defined as (usage/request). If request == 0.0 but + // usage > 0, then efficiency gets set to 1.0. + let ramEfficiency = 0.0 + if (alloc.ramReqByteHrs > 0) { + ramEfficiency = alloc.ramUseByteHrs / alloc.ramReqByteHrs + } else if (alloc.ramUseByteHrs > 0) { + ramEfficiency = 1.0 + } + + // Compute efficiency as the cost-weighted average of CPU and RAM + // efficiency + if ((alloc.cpuCost + alloc.ramCost) > 0.0) { + totalEfficiency = ((alloc.cpuCost*cpuEfficiency)+(alloc.ramCost*ramEfficiency)) / (alloc.cpuCost + alloc.ramCost) + } + + result[name].cpuEfficiency = cpuEfficiency + result[name].ramEfficiency = ramEfficiency + result[name].totalEfficiency = totalEfficiency + }) + } + + return result +} + +// cumulativeToTotals adds each entry in the given AllocationSet (type: object) +// and returns a single Allocation (type: object) representing the totals +export function cumulativeToTotals(allocationSet) { + let totals = { + name: 'Totals', + cpuCost: 0, + gpuCost: 0, + ramCost: 0, + pvCost: 0, + networkCost: 0, + sharedCost: 0, + externalCost: 0, + totalCost: 0, + cpuEfficiency: 0, + ramEfficiency: 0, + totalEfficiency: 0, + } + + // Use these for computing efficiency. As such, idle will not factor into + // these numbers, including CPU and RAM cost. + let cpuReqCoreHrs = 0 + let cpuUseCoreHrs = 0 + let ramReqByteHrs = 0 + let ramUseByteHrs = 0 + let cpuCost = 0 + let ramCost = 0 + + forEach(allocationSet, (alloc, name) => { + // Accumulate efficiency-related fields + if (name !== "__idle__") { + cpuReqCoreHrs += get(alloc, 'cpuReqCoreHrs', 0.0) + cpuUseCoreHrs += get(alloc, 'cpuUseCoreHrs', 0.0) + ramReqByteHrs += get(alloc, 'ramReqByteHrs', 0.0) + ramUseByteHrs += get(alloc, 'ramUseByteHrs', 0.0) + cpuCost += get(alloc, 'cpuCost', 0.0) + ramCost += get(alloc, 'ramCost', 0.0) + } + + // Sum cumulative fields + totals.cpuCost += get(alloc, 'cpuCost', 0) + totals.gpuCost += get(alloc, 'gpuCost', 0) + totals.ramCost += get(alloc, 'ramCost', 0) + totals.pvCost += get(alloc, 'pvCost', 0) + totals.networkCost += get(alloc, 'networkCost', 0) + totals.sharedCost += get(alloc, 'sharedCost', 0) + totals.externalCost += get(alloc, 'externalCost', 0) + totals.totalCost += get(alloc, 'totalCost', 0) + }) + + // Compute efficiency + if (cpuReqCoreHrs > 0) { + totals.cpuEfficiency = cpuUseCoreHrs / cpuReqCoreHrs + } else if (cpuUseCoreHrs > 0) { + totals.cpuEfficiency = 1.0 + } + + if (ramReqByteHrs > 0) { + totals.ramEfficiency = ramUseByteHrs / ramReqByteHrs + } else if (ramUseByteHrs > 0) { + totals.ramEfficiency = 1.0 + } + + if ((cpuCost + ramCost) > 0) { + totals.totalEfficiency = ((cpuCost*totals.cpuEfficiency) + (ramCost*totals.ramEfficiency)) / (cpuCost + ramCost) + } + + totals.cpuReqCoreHrs = cpuReqCoreHrs + totals.cpuUseCoreHrs = cpuUseCoreHrs + totals.ramReqByteHrs = ramReqByteHrs + totals.ramUseByteHrs = ramUseByteHrs + + return totals +} + +export function toVerboseTimeRange(window) { + const months = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'] + + const start = new Date() + start.setUTCHours(0, 0, 0, 0) + + const end = new Date() + end.setUTCHours(0, 0, 0, 0) + + switch (window) { + case 'today': + return `${start.getUTCDate()} ${months[start.getUTCMonth()]} ${start.getUTCFullYear()}` + case 'yesterday': + start.setUTCDate(start.getUTCDate()-1) + return `${start.getUTCDate()} ${months[start.getUTCMonth()]} ${start.getUTCFullYear()}` + case 'week': + start.setUTCDate(start.getUTCDate()-start.getUTCDay()) + return `${start.getUTCDate()} ${months[start.getUTCMonth()]} ${start.getUTCFullYear()} until now` + case 'month': + start.setUTCDate(1) + return `${start.getUTCDate()} ${months[start.getUTCMonth()]} ${start.getUTCFullYear()} until now` + case 'lastweek': + start.setUTCDate(start.getUTCDate()-(start.getUTCDay()+7)) + end.setUTCDate(end.getUTCDate()-(end.getUTCDay()+1)) + return `${start.getUTCDate()} ${months[start.getUTCMonth()]} ${start.getUTCFullYear()} through ${end.getUTCDate()} ${months[end.getUTCMonth()]} ${end.getUTCFullYear()}` + case 'lastmonth': + end.setUTCDate(1) + end.setUTCDate(end.getUTCDate()-1) + start.setUTCDate(1) + start.setUTCDate(start.getUTCDate()-1) + start.setUTCDate(1) + return `${start.getUTCDate()} ${months[start.getUTCMonth()]} ${start.getUTCFullYear()} through ${end.getUTCDate()} ${months[end.getUTCMonth()]} ${end.getUTCFullYear()}` + case '6d': + start.setUTCDate(start.getUTCDate()-6) + return `${start.getUTCDate()} ${months[start.getUTCMonth()]} ${start.getUTCFullYear()} through now` + case '29d': + start.setUTCDate(start.getUTCDate()-29) + return `${start.getUTCDate()} ${months[start.getUTCMonth()]} ${start.getUTCFullYear()} through now` + case '59d': + start.setUTCDate(start.getUTCDate()-59) + return `${start.getUTCDate()} ${months[start.getUTCMonth()]} ${start.getUTCFullYear()} through now` + case '89d': + start.setUTCDate(start.getUTCDate()-89) + return `${start.getUTCDate()} ${months[start.getUTCMonth()]} ${start.getUTCFullYear()} through now` + } + + const splitDates = window.split(",") + if (checkCustomWindow(window) && splitDates.length > 1) { + let s = splitDates[0].split(/\D+/).slice(0, 3) + let e = splitDates[1].split(/\D+/).slice(0, 3) + if (s.length === 3 && e.length === 3) { + start.setUTCFullYear(s[0], s[1]-1, s[2]) + end.setUTCFullYear(e[0], e[1]-1, e[2]) + if (start === end) { + return `${start.getUTCDate()} ${months[start.getUTCMonth()]} ${start.getUTCFullYear()}` + } else { + return `${start.getUTCDate()} ${months[start.getUTCMonth()]} ${start.getUTCFullYear()} through ${end.getUTCDate()} ${months[end.getUTCMonth()]} ${end.getUTCFullYear()}` + } + } + } + return null +} + +export function bytesToString(bytes) { + const ei = Math.pow(1024, 6) + if (bytes >= ei) { + return `${round(bytes/ei, 1)} EiB` + } + const pi = Math.pow(1024, 5) + if (bytes >= pi) { + return `${round(bytes/pi, 1)} PiB` + } + const ti = Math.pow(1024, 4) + if (bytes >= ti) { + return `${round(bytes/ti, 1)} TiB` + } + const gi = Math.pow(1024, 3) + if (bytes >= gi) { + return `${round(bytes/gi, 1)} GiB` + } + const mi = Math.pow(1024, 2) + if (bytes >= mi) { + return `${round(bytes/mi, 1)} MiB` + } + const ki = Math.pow(1024, 1) + if (bytes >= ki) { + return `${round(bytes/ki, 1)} KiB` + } + + return `${round(bytes, 1)} B` +} + +const currencyLocale = "en-US" + +export function toCurrency(amount, currency, precision) { + if (typeof amount !== "number") { + console.warn(`Tried to convert "${amount}" to currency, but it is not a number`) + return "" + } + + if (currency === undefined || currency === "") { + currency = "USD" + } + + const opts = { + style: "currency", + currency: currency, + + } + + if (typeof precision === "number") { + opts.minimumFractionDigits = precision + opts.maximumFractionDigits = precision + } + + return amount.toLocaleString(currencyLocale, opts); +} + +export function checkCustomWindow(window) { + // Example ISO interval string: 2020-12-02T00:00:00Z,2020-12-03T23:59:59Z + const customDateRegex = /\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}Z,\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}Z/ + return customDateRegex.test(window) +} + + + +export default { + rangeToCumulative, + cumulativeToTotals, + toVerboseTimeRange, + bytesToString, + toCurrency, + checkCustomWindow, +} From 568875edec8536cd3356ce2406faf10c68c86b92 Mon Sep 17 00:00:00 2001 From: Matt Ray Date: Thu, 15 Jun 2023 15:56:53 +1000 Subject: [PATCH 339/372] Document installation and configuration Signed-off-by: Matt Ray --- plugins/opencost/README.md | 62 ++++++++++++++++++++++++++++++-------- 1 file changed, 50 insertions(+), 12 deletions(-) diff --git a/plugins/opencost/README.md b/plugins/opencost/README.md index 2a6cacdbb5..fbc923f37d 100644 --- a/plugins/opencost/README.md +++ b/plugins/opencost/README.md @@ -1,25 +1,63 @@ # OpenCost -Welcome to the OpenCost plugin! +Welcome to the [OpenCost](https://opencost.io) plugin! Currently this is a port of the [OpenCost UI](https://github.com/opencost/opencost/tree/develop/ui), but we will continue to expand it to expose any relevant data or pre-configured views that may be preferred. - - ## Installation +1. Add the OpenCost dependency to the `packages/app/package.json`: + ```sh + # From your Backstage root directory + yarn add --cwd packages/app @backstage/plugin-opencost + ``` +2. Add the `OpenCostPage` to your `packages/app/src/App.tsx`: + +```tsx +import { OpenCostPage } from '@backstage/plugin-opencost'; +``` + +and + +```tsx + + … + } /> + +``` + +3. Add link to OpenCost to your sidebar + + ```typescript + // packages/app/src/components/Root/Root.tsx + import MoneyIcon from '@material-ui/icons/MonetizationOn'; + + ... + + export const Root = ({ children }: PropsWithChildren<{}>) => ( + + + ... + + ... + + + ); + + ``` + ## Configuration ## TODO -* Document installation and configuration -* More testing -* Use the OpenCost mascot for the sidebar logo -* Use the Backstage proxy to communicate with the OpenCost API -* Convert AllocationReport.js to use the [Backstage Table](https://backstage.io/storybook/?path=/story/data-display-table--default-table) -* Allow for user-provided default reports and/or disabling controls -* Support multiple hard-coded reports -* Fork(?) to support Kubecost, which could provide Alerts and Recommendations, similar to the Cost Explorer plugin -* clean up deprecation warnings and upgrade to all the latest React components +- More testing +- Use the OpenCost mascot for the sidebar logo +- Use the Backstage proxy to communicate with the OpenCost API +- Convert AllocationReport.js to use the [Backstage Table](https://backstage.io/storybook/?path=/story/data-display-table--default-table) +- Allow for user-provided default reports and/or disabling controls +- Support multiple hard-coded reports +- Fork(?) to support Kubecost, which could provide Alerts and Recommendations, similar to the Cost Explorer plugin +- clean up deprecation warnings and upgrade to all the latest React components +- upgrade sidebar icon to https://mui.com/material-ui/material-icons/?query=money&selected=Savings ![Screenshot](screenshot.png) From 79aad75ce745b69094c7056344b1e6d4cfc3fc92 Mon Sep 17 00:00:00 2001 From: Matt Ray Date: Sat, 17 Jun 2023 11:57:57 +1000 Subject: [PATCH 340/372] Updates from Backstage linting Signed-off-by: Matt Ray --- plugins/opencost/package.json | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/plugins/opencost/package.json b/plugins/opencost/package.json index 4c493136c0..f14d85e28f 100644 --- a/plugins/opencost/package.json +++ b/plugins/opencost/package.json @@ -25,13 +25,20 @@ "@backstage/core-components": "workspace:^", "@backstage/core-plugin-api": "workspace:^", "@backstage/theme": "workspace:^", + "@date-io/date-fns": "^2.16.0", "@material-ui/core": "^4.9.13", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "^4.0.0-alpha.60", - "react-use": "^17.2.4" + "@material-ui/pickers": "^3.3.10", + "@material-ui/styles": "^4.11.5", + "date-fns": "^2.30.0", + "lodash": "^4.17.21", + "react-use": "^17.2.4", + "recharts": "^2.7.0" }, "peerDependencies": { - "react": "^16.13.1 || ^17.0.0" + "react": "^16.13.1 || ^17.0.0", + "react-router-dom": "*" }, "devDependencies": { "@backstage/cli": "workspace:^", From 5511693aa0dc01a85115808effae2d0d2371420b Mon Sep 17 00:00:00 2001 From: Matt Ray Date: Sat, 17 Jun 2023 12:16:46 +1000 Subject: [PATCH 341/372] Updated copyright headers to make Backstage check happy Signed-off-by: Matt Ray --- plugins/opencost/README.md | 2 + .../components/AllocationChart/RangeChart.js | 16 ++++++ .../AllocationChart/SummaryChart.js | 42 +++++++++++----- .../src/components/AllocationChart/index.js | 16 ++++++ .../src/components/AllocationReport.js | 16 ++++++ .../src/components/Controls/Download.js | 16 ++++++ .../opencost/src/components/Controls/Edit.js | 16 ++++++ .../opencost/src/components/Controls/index.js | 16 ++++++ plugins/opencost/src/components/Details.js | 16 ++++++ .../OpenCostReport/OpenCostReport.tsx | 16 ++++++ plugins/opencost/src/components/Page.js | 16 ++++++ .../opencost/src/components/SelectWindow.js | 50 ++++++++++++------- plugins/opencost/src/components/Subtitle.js | 16 ++++++ plugins/opencost/src/components/Warnings.js | 16 ++++++ 14 files changed, 240 insertions(+), 30 deletions(-) diff --git a/plugins/opencost/README.md b/plugins/opencost/README.md index fbc923f37d..4c9d721efb 100644 --- a/plugins/opencost/README.md +++ b/plugins/opencost/README.md @@ -4,6 +4,8 @@ Welcome to the [OpenCost](https://opencost.io) plugin! Currently this is a port of the [OpenCost UI](https://github.com/opencost/opencost/tree/develop/ui), but we will continue to expand it to expose any relevant data or pre-configured views that may be preferred. +All of the code was originally ported from https://github.com/opencost/opencost/blob/develop/ui/ which is under by the Apache v2 License and also managed by the CNCF. + ## Installation 1. Add the OpenCost dependency to the `packages/app/package.json`: diff --git a/plugins/opencost/src/components/AllocationChart/RangeChart.js b/plugins/opencost/src/components/AllocationChart/RangeChart.js index 3410ad24ad..bacb255daa 100644 --- a/plugins/opencost/src/components/AllocationChart/RangeChart.js +++ b/plugins/opencost/src/components/AllocationChart/RangeChart.js @@ -1,3 +1,19 @@ +/* + * 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 React from 'react'; import { BarChart, Bar, XAxis, YAxis, CartesianGrid, Tooltip, ResponsiveContainer } from 'recharts'; import { makeStyles } from '@material-ui/styles'; diff --git a/plugins/opencost/src/components/AllocationChart/SummaryChart.js b/plugins/opencost/src/components/AllocationChart/SummaryChart.js index 61625e151e..e73359e857 100644 --- a/plugins/opencost/src/components/AllocationChart/SummaryChart.js +++ b/plugins/opencost/src/components/AllocationChart/SummaryChart.js @@ -1,3 +1,19 @@ +/* + * 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 React from 'react' import { ResponsiveContainer, PieChart, Pie, Cell } from 'recharts' import { primary, greyscale, browns } from '../../constants/colors'; @@ -9,8 +25,8 @@ function toPieData(top, other, idle) { for (const i in top) { const allocation = top[i] const fill = allocation.name === "__unallocated__" - ? "#212121" - : primary[i % primary.length] + ? "#212121" + : primary[i % primary.length] slices.push({ name: allocation.name, @@ -78,19 +94,19 @@ const SummaryChart = ({ top, other, idle, currency, height }) => { label={renderLabel} labelLine // niko: if tooltips error, try disabling animation - // isAnimationActive={false} - animationDuration={400} - cy="90%" - outerRadius="140%" - innerRadius="60%" - startAngle={180} - endAngle={0} + // isAnimationActive={false} + animationDuration={400} + cy="90%" + outerRadius="140%" + innerRadius="60%" + startAngle={180} + endAngle={0} > - {pieData.map((datum, i) => )} + {pieData.map((datum, i) => )} - ) -} + ) + } -export default SummaryChart + export default SummaryChart diff --git a/plugins/opencost/src/components/AllocationChart/index.js b/plugins/opencost/src/components/AllocationChart/index.js index a54cea13ec..8c6f5350f6 100644 --- a/plugins/opencost/src/components/AllocationChart/index.js +++ b/plugins/opencost/src/components/AllocationChart/index.js @@ -1,3 +1,19 @@ +/* + * 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 React from 'react' import { isArray, filter, map, reduce, reverse, sortBy } from 'lodash' diff --git a/plugins/opencost/src/components/AllocationReport.js b/plugins/opencost/src/components/AllocationReport.js index 7447c05b35..9aad66c901 100644 --- a/plugins/opencost/src/components/AllocationReport.js +++ b/plugins/opencost/src/components/AllocationReport.js @@ -1,3 +1,19 @@ +/* + * 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 React, { useEffect, useState } from 'react' import { get, round } from 'lodash' import { makeStyles } from '@material-ui/styles'; diff --git a/plugins/opencost/src/components/Controls/Download.js b/plugins/opencost/src/components/Controls/Download.js index ae111376f6..35493b927b 100644 --- a/plugins/opencost/src/components/Controls/Download.js +++ b/plugins/opencost/src/components/Controls/Download.js @@ -1,3 +1,19 @@ +/* + * 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 React from 'react' import { get, forEach, reverse, round, sortBy } from 'lodash' import ExportIcon from '@material-ui/icons/GetApp' diff --git a/plugins/opencost/src/components/Controls/Edit.js b/plugins/opencost/src/components/Controls/Edit.js index 2054672518..9dcd664e50 100644 --- a/plugins/opencost/src/components/Controls/Edit.js +++ b/plugins/opencost/src/components/Controls/Edit.js @@ -1,3 +1,19 @@ +/* + * 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 { makeStyles } from '@material-ui/styles'; import FormControl from '@material-ui/core/FormControl' import InputLabel from '@material-ui/core/InputLabel' diff --git a/plugins/opencost/src/components/Controls/index.js b/plugins/opencost/src/components/Controls/index.js index fe687e51be..f5ea994e33 100644 --- a/plugins/opencost/src/components/Controls/index.js +++ b/plugins/opencost/src/components/Controls/index.js @@ -1,3 +1,19 @@ +/* + * 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 React from 'react' import DownloadControl from './Download' import EditControl from './Edit' diff --git a/plugins/opencost/src/components/Details.js b/plugins/opencost/src/components/Details.js index 9cc45d0913..ff09336f97 100644 --- a/plugins/opencost/src/components/Details.js +++ b/plugins/opencost/src/components/Details.js @@ -1,3 +1,19 @@ +/* + * 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 React, { memo, useEffect, useState } from 'react'; import { forEach, get, reverse, round, sortBy } from 'lodash'; import CircularProgress from '@material-ui/core/CircularProgress'; diff --git a/plugins/opencost/src/components/OpenCostReport/OpenCostReport.tsx b/plugins/opencost/src/components/OpenCostReport/OpenCostReport.tsx index 0f25d72f3d..e85c2ccae6 100644 --- a/plugins/opencost/src/components/OpenCostReport/OpenCostReport.tsx +++ b/plugins/opencost/src/components/OpenCostReport/OpenCostReport.tsx @@ -1,3 +1,19 @@ +/* + * 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. + */ + // code ported from https://github.com/opencost/opencost/blob/develop/ui/src/Reports.js import React, { useEffect, useState } from 'react' diff --git a/plugins/opencost/src/components/Page.js b/plugins/opencost/src/components/Page.js index 6dfe640ac4..9d5af515d0 100644 --- a/plugins/opencost/src/components/Page.js +++ b/plugins/opencost/src/components/Page.js @@ -1,3 +1,19 @@ +/* + * 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 { makeStyles } from '@material-ui/styles' import React from 'react' diff --git a/plugins/opencost/src/components/SelectWindow.js b/plugins/opencost/src/components/SelectWindow.js index 32957838c1..3fd2ec8fca 100644 --- a/plugins/opencost/src/components/SelectWindow.js +++ b/plugins/opencost/src/components/SelectWindow.js @@ -1,3 +1,19 @@ +/* + * 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 React, { useEffect, useState } from 'react' import { makeStyles } from '@material-ui/styles' import { endOfDay, startOfDay } from 'date-fns' @@ -34,61 +50,61 @@ const useStyles = makeStyles({ const SelectWindow = ({ windowOptions, window, setWindow }) => { const classes = useStyles() const [anchorEl, setAnchorEl] = useState(null) - + const [startDate, setStartDate] = useState(null) const [endDate, setEndDate] = useState(null) const [intervalString, setIntervalString] = useState(null) - + const handleClick = (event) => { setAnchorEl(event.currentTarget) } - + const handleClose = () => { setAnchorEl(null) } - + const handleStartDateChange = (date) => { if (isValid(date)) { setStartDate(startOfDay(date)) } } - + const handleEndDateChange = (date) => { if (isValid(date)) { setEndDate(endOfDay(date)) } } - + const handleSubmitPresetDates = (dateString) => { setWindow(dateString) setStartDate(null) setEndDate(null) handleClose() } - + const handleSubmitCustomDates = () => { if (intervalString !== null) { setWindow(intervalString) handleClose() } } - + useEffect(() => { if (startDate !== null && endDate !== null) { // Note: getTimezoneOffset() is calculated based on current system locale, NOT date object let adjustedStartDate = new Date(startDate - startDate.getTimezoneOffset() * 60000) let adjustedEndDate = new Date(endDate - endDate.getTimezoneOffset() * 60000) setIntervalString( - adjustedStartDate.toISOString().split('.')[0] + "Z" - + "," + adjustedStartDate.toISOString().split('.')[0] + "Z" + + "," + adjustedEndDate.toISOString().split('.')[0] + "Z" ) } }, [startDate, endDate]) - + const open = Boolean(anchorEl) const id = open ? 'date-range-popover' : undefined - + return ( <> @@ -156,9 +172,9 @@ const SelectWindow = ({ windowOptions, window, setWindow }) => { />
    -
    - {windowOptions.map(opt => + {windowOptions.map(opt => { ) } - export default React.memo(SelectWindow) \ No newline at end of file + export default React.memo(SelectWindow) diff --git a/plugins/opencost/src/components/Subtitle.js b/plugins/opencost/src/components/Subtitle.js index 44a26f3a75..1c7affb8b7 100644 --- a/plugins/opencost/src/components/Subtitle.js +++ b/plugins/opencost/src/components/Subtitle.js @@ -1,3 +1,19 @@ +/* + * 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 React from 'react' import { makeStyles } from '@material-ui/styles' import { upperFirst } from 'lodash' diff --git a/plugins/opencost/src/components/Warnings.js b/plugins/opencost/src/components/Warnings.js index 967fc6fde8..5cb3ccfdd6 100644 --- a/plugins/opencost/src/components/Warnings.js +++ b/plugins/opencost/src/components/Warnings.js @@ -1,3 +1,19 @@ +/* + * 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 React from 'react' import { makeStyles } from '@material-ui/styles' import List from '@material-ui/core/List' From 4d0d3e3207637ca3b34fd28b3a92795959f91872 Mon Sep 17 00:00:00 2001 From: Matt Ray Date: Sat, 17 Jun 2023 12:51:46 +1000 Subject: [PATCH 342/372] eslint --fix automatic fixes and corrections to make eslint happier Signed-off-by: Matt Ray --- .../components/AllocationChart/RangeChart.js | 6 +++--- .../components/AllocationChart/SummaryChart.js | 4 ++-- .../src/components/AllocationReport.js | 10 +++++----- .../src/components/Controls/Download.js | 4 ++-- .../OpenCostReport/OpenCostReport.tsx | 12 +++++------- .../opencost/src/components/SelectWindow.js | 18 +++++++++--------- 6 files changed, 26 insertions(+), 28 deletions(-) diff --git a/plugins/opencost/src/components/AllocationChart/RangeChart.js b/plugins/opencost/src/components/AllocationChart/RangeChart.js index bacb255daa..0c74cccbda 100644 --- a/plugins/opencost/src/components/AllocationChart/RangeChart.js +++ b/plugins/opencost/src/components/AllocationChart/RangeChart.js @@ -36,7 +36,7 @@ const useStyles = makeStyles({ }) function toBarLabels(allocationRange) { - let keyToFill = {} + const keyToFill = {} let p = 0 let g = 0 let b = 0 @@ -79,7 +79,7 @@ function toBarLabels(allocationRange) { } } - let labels = [] + const labels = [] for (const key in keyToFill) { labels.push({ dataKey: key, @@ -127,7 +127,7 @@ const RangeChart = ({ data, currency, height }) => { const CustomTooltip = (params) => { const { active, payload } = params - if (!payload || payload.length == 0) { + if (!payload || payload.length === 0) { return null } diff --git a/plugins/opencost/src/components/AllocationChart/SummaryChart.js b/plugins/opencost/src/components/AllocationChart/SummaryChart.js index e73359e857..7431c7984c 100644 --- a/plugins/opencost/src/components/AllocationChart/SummaryChart.js +++ b/plugins/opencost/src/components/AllocationChart/SummaryChart.js @@ -20,7 +20,7 @@ import { primary, greyscale, browns } from '../../constants/colors'; import { toCurrency } from '../../util'; function toPieData(top, other, idle) { - let slices = [] + const slices = [] for (const i in top) { const allocation = top[i] @@ -70,7 +70,7 @@ const SummaryChart = ({ top, other, idle, currency, height }) => { const radius = outerRadius * 1.1 let x = cx + radius * Math.cos(-midAngle * RADIAN) x += x > cx ? 2 : -2 - let y = cy + radius * Math.sin(-midAngle * RADIAN) + const y = cy + radius * Math.sin(-midAngle * RADIAN) // y -= Math.min(Math.abs(2 / Math.cos(-midAngle * RADIAN)), 8) if (percent < 0.02) { diff --git a/plugins/opencost/src/components/AllocationReport.js b/plugins/opencost/src/components/AllocationReport.js index 9aad66c901..79a0121858 100644 --- a/plugins/opencost/src/components/AllocationReport.js +++ b/plugins/opencost/src/components/AllocationReport.js @@ -145,7 +145,7 @@ const AllocationReport = ({ allocationData, cumulativeData, totalData, currency > {cell.numeric ? (cell.label === 'Efficiency' - ? (totalData.totalEfficiency == 1.0 && totalData.cpuReqCoreHrs == 0 && totalData.ramReqByteHrs == 0) + ? (totalData.totalEfficiency === 1.0 && totalData.cpuReqCoreHrs === 0 && totalData.ramReqByteHrs === 0) ? "Inf%" : `${round(totalData.totalEfficiency*100, 1)}%` : toCurrency(totalData[cell.id], currency)) @@ -158,13 +158,13 @@ const AllocationReport = ({ allocationData, cumulativeData, totalData, currency row.name = "Unmounted PVs" } - let isIdle = row.name.indexOf("__idle__") >= 0 - let isUnallocated = row.name.indexOf("__unallocated__") >= 0 - let isUnmounted = row.name.indexOf("Unmounted PVs") >= 0 + const isIdle = row.name.indexOf("__idle__") >= 0 + const isUnallocated = row.name.indexOf("__unallocated__") >= 0 + const isUnmounted = row.name.indexOf("Unmounted PVs") >= 0 // Replace "efficiency" with Inf if there is usage w/o request let efficiency = round(row.totalEfficiency*100, 1) - if (row.totalEfficiency == 1.0 && row.cpuReqCoreHrs == 0 && row.ramReqByteHrs == 0) { + if (row.totalEfficiency === 1.0 && row.cpuReqCoreHrs === 0 && row.ramReqByteHrs === 0) { efficiency = "Inf" } diff --git a/plugins/opencost/src/components/Controls/Download.js b/plugins/opencost/src/components/Controls/Download.js index 35493b927b..527940924a 100644 --- a/plugins/opencost/src/components/Controls/Download.js +++ b/plugins/opencost/src/components/Controls/Download.js @@ -57,7 +57,7 @@ const columns = [ ] const toCSVLine = (datum) => { - let cols = [] + const cols = [] forEach(columns, c => { if (c.currency) { @@ -84,7 +84,7 @@ const DownloadControl = ({ // Create download link const a = document.createElement("a") a.href = URL.createObjectURL(new Blob([csv], { type: "text/csv" })) - const filename = title.toLowerCase().replace(/\s/gi, '-') + const filename = title.toLocaleLowerCase('en-US').replace(/\s/gi, '-') a.setAttribute("download", `${filename}-${Date.now()}.csv`) // Click the link diff --git a/plugins/opencost/src/components/OpenCostReport/OpenCostReport.tsx b/plugins/opencost/src/components/OpenCostReport/OpenCostReport.tsx index e85c2ccae6..2e93e64d98 100644 --- a/plugins/opencost/src/components/OpenCostReport/OpenCostReport.tsx +++ b/plugins/opencost/src/components/OpenCostReport/OpenCostReport.tsx @@ -81,12 +81,14 @@ function generateTitle({ window, aggregateBy, accumulate }) { if (checkCustomWindow(window)) { windowName = toVerboseTimeRange(window) } else { + /* eslint no-console: ["error", { allow: ["warn"] }] */ console.warn(`unknown window: ${window}`) } } - let aggregationName = get(find(aggregationOptions, { value: aggregateBy }), 'name', '').toLowerCase() + const aggregationName = get(find(aggregationOptions, { value: aggregateBy }), 'name', '').toLocaleLowerCase('en-US') if (aggregationName === '') { + /* eslint no-console: ["error", { allow: ["warn"] }] */ console.warn(`unknown aggregation: ${aggregateBy}`) } @@ -100,9 +102,6 @@ function generateTitle({ window, aggregateBy, accumulate }) { } export const OpenCostReport = () => { - console.log("get the URL from the config") - const baseUrl = "http://localhost:9003"; - const classes = useStyles() // Allocation data state const [allocationData, setAllocationData] = useState([]) @@ -169,12 +168,11 @@ export const OpenCostReport = () => { setErrors([]) try { - // get the baseUrl from the Basecamp config - console.log("get the baseUrl from the Basecamp config") + // TODO get the baseUrl from the Basecamp config + const baseUrl = "http://localhost:9003"; const resp = await AllocationService.fetchAllocation(baseUrl, window, aggregateBy, { accumulate }) if (resp.data && resp.data.length > 0) { const allocationRange = resp.data - console.log(allocationRange); for (const i in allocationRange) { // update cluster aggregations to use clusterName/clusterId names allocationRange[i] = sortBy(allocationRange[i], a => a.totalCost) diff --git a/plugins/opencost/src/components/SelectWindow.js b/plugins/opencost/src/components/SelectWindow.js index 3fd2ec8fca..a8eb00f03c 100644 --- a/plugins/opencost/src/components/SelectWindow.js +++ b/plugins/opencost/src/components/SelectWindow.js @@ -92,12 +92,12 @@ const SelectWindow = ({ windowOptions, window, setWindow }) => { useEffect(() => { if (startDate !== null && endDate !== null) { // Note: getTimezoneOffset() is calculated based on current system locale, NOT date object - let adjustedStartDate = new Date(startDate - startDate.getTimezoneOffset() * 60000) - let adjustedEndDate = new Date(endDate - endDate.getTimezoneOffset() * 60000) + const adjustedStartDate = new Date(startDate - startDate.getTimezoneOffset() * 60000) + const adjustedEndDate = new Date(endDate - endDate.getTimezoneOffset() * 60000) setIntervalString( - adjustedStartDate.toISOString().split('.')[0] + "Z" - + "," - + adjustedEndDate.toISOString().split('.')[0] + "Z" + `${adjustedStartDate.toISOString().split('.')[0] }Z` + + `,${ + adjustedEndDate.toISOString().split('.')[0] }Z` ) } }, [startDate, endDate]) @@ -138,7 +138,7 @@ const SelectWindow = ({ windowOptions, window, setWindow }) => { { /> {
    {windowOptions.map(opt => - { > {opt.name} - + ) )}
    From 09ab43fcefcd494b5ed7140f78909cf8881d4972 Mon Sep 17 00:00:00 2001 From: Matt Ray Date: Mon, 19 Jun 2023 18:41:52 +1000 Subject: [PATCH 343/372] Fixes for eslint "guard-for-in" Signed-off-by: Matt Ray --- .../components/AllocationChart/RangeChart.js | 40 ++++++++------ .../AllocationChart/SummaryChart.js | 52 +++++++++++-------- plugins/opencost/src/components/Details.js | 1 + .../OpenCostReport/OpenCostReport.tsx | 6 ++- 4 files changed, 58 insertions(+), 41 deletions(-) diff --git a/plugins/opencost/src/components/AllocationChart/RangeChart.js b/plugins/opencost/src/components/AllocationChart/RangeChart.js index 0c74cccbda..e5a7af8044 100644 --- a/plugins/opencost/src/components/AllocationChart/RangeChart.js +++ b/plugins/opencost/src/components/AllocationChart/RangeChart.js @@ -81,10 +81,12 @@ function toBarLabels(allocationRange) { const labels = [] for (const key in keyToFill) { - labels.push({ - dataKey: key, - fill: keyToFill[key], - }) + if (Object.hasOwn(keyToFill, key)) { + labels.push({ + dataKey: key, + fill: keyToFill[key], + }) + } } return reverse(labels) @@ -95,24 +97,30 @@ function toBar(datum) { const bar = {} for (const key in top) { - const allocation = top[key] - const start = new Date(allocation.start) - bar.start = `${start.getUTCFullYear()}-${start.getUTCMonth()+1}-${start.getUTCDate()}` - bar[allocation.name] = allocation.totalCost + if (Object.hasOwn(top, key)) { + const allocation = top[key] + const start = new Date(allocation.start) + bar.start = `${start.getUTCFullYear()}-${start.getUTCMonth()+1}-${start.getUTCDate()}` + bar[allocation.name] = allocation.totalCost + } } for (const key in other) { - const allocation = other[key] - const start = new Date(allocation.start) - bar.start = `${start.getUTCFullYear()}-${start.getUTCMonth()+1}-${start.getUTCDate()}` - bar[allocation.name] = allocation.totalCost + if (Object.hasOwn(other, key)) { + const allocation = other[key] + const start = new Date(allocation.start) + bar.start = `${start.getUTCFullYear()}-${start.getUTCMonth()+1}-${start.getUTCDate()}` + bar[allocation.name] = allocation.totalCost + } } for (const key in idle) { - const allocation = idle[key] - const start = new Date(allocation.start) - bar.start = `${start.getUTCFullYear()}-${start.getUTCMonth()+1}-${start.getUTCDate()}` - bar[allocation.name] = allocation.totalCost + if (Object.hasOwn(idle, key)) { + const allocation = idle[key] + const start = new Date(allocation.start) + bar.start = `${start.getUTCFullYear()}-${start.getUTCMonth()+1}-${start.getUTCDate()}` + bar[allocation.name] = allocation.totalCost + } } return bar diff --git a/plugins/opencost/src/components/AllocationChart/SummaryChart.js b/plugins/opencost/src/components/AllocationChart/SummaryChart.js index 7431c7984c..977ee395a3 100644 --- a/plugins/opencost/src/components/AllocationChart/SummaryChart.js +++ b/plugins/opencost/src/components/AllocationChart/SummaryChart.js @@ -23,36 +23,42 @@ function toPieData(top, other, idle) { const slices = [] for (const i in top) { - const allocation = top[i] - const fill = allocation.name === "__unallocated__" - ? "#212121" - : primary[i % primary.length] + if (Object.hasOwn(top, i)) { + const allocation = top[i] + const fill = allocation.name === "__unallocated__" + ? "#212121" + : primary[i % primary.length] - slices.push({ - name: allocation.name, - value: allocation.totalCost, - fill: fill, - }) + slices.push({ + name: allocation.name, + value: allocation.totalCost, + fill: fill, + }) + } } for (const i in other) { - const allocation = other[i] - const fill = browns[i % browns.length] - slices.push({ - name: allocation.name, - value: allocation.totalCost, - fill: fill, - }) + if (Object.hasOwn(other, i)) { + const allocation = other[i] + const fill = browns[i % browns.length] + slices.push({ + name: allocation.name, + value: allocation.totalCost, + fill: fill, + }) + } } for (const i in idle) { - const allocation = idle[i] - const fill = greyscale[i % greyscale.length] - slices.push({ - name: allocation.name, - value: allocation.totalCost, - fill: fill, - }) + if (Object.hasOwn(idle, i)) { + const allocation = idle[i] + const fill = greyscale[i % greyscale.length] + slices.push({ + name: allocation.name, + value: allocation.totalCost, + fill: fill, + }) + } } return slices diff --git a/plugins/opencost/src/components/Details.js b/plugins/opencost/src/components/Details.js index ff09336f97..8be2038cee 100644 --- a/plugins/opencost/src/components/Details.js +++ b/plugins/opencost/src/components/Details.js @@ -156,6 +156,7 @@ const Details = ({ setRows(data) } catch (e) { + /* eslint no-console: ["error", { allow: ["warn"] }] */ console.warn(`Error fetching details for (${controllerKind}, ${controller}):`, e) setErrors([{ primary: "Error fetching details", diff --git a/plugins/opencost/src/components/OpenCostReport/OpenCostReport.tsx b/plugins/opencost/src/components/OpenCostReport/OpenCostReport.tsx index 2e93e64d98..c84070aa2b 100644 --- a/plugins/opencost/src/components/OpenCostReport/OpenCostReport.tsx +++ b/plugins/opencost/src/components/OpenCostReport/OpenCostReport.tsx @@ -174,8 +174,10 @@ export const OpenCostReport = () => { if (resp.data && resp.data.length > 0) { const allocationRange = resp.data for (const i in allocationRange) { - // update cluster aggregations to use clusterName/clusterId names - allocationRange[i] = sortBy(allocationRange[i], a => a.totalCost) + if (Object.hasOwn(allocationRange, i)) { + // update cluster aggregations to use clusterName/clusterId names + allocationRange[i] = sortBy(allocationRange[i], a => a.totalCost) + } } setAllocationData(allocationRange) } else { From 44ac248dd871e89077e8258d6ba0b06649c2fd6f Mon Sep 17 00:00:00 2001 From: Matt Ray Date: Tue, 20 Jun 2023 15:23:42 +1000 Subject: [PATCH 344/372] Fix for "79:34 error 'currency' is already declared in the upper scope on line 41 column 20 @typescript-eslint/no-shadow" Signed-off-by: Matt Ray --- .../opencost/src/components/Controls/Edit.js | 47 +++++++++++++------ 1 file changed, 32 insertions(+), 15 deletions(-) diff --git a/plugins/opencost/src/components/Controls/Edit.js b/plugins/opencost/src/components/Controls/Edit.js index 9dcd664e50..a1b3fe1fc7 100644 --- a/plugins/opencost/src/components/Controls/Edit.js +++ b/plugins/opencost/src/components/Controls/Edit.js @@ -15,10 +15,10 @@ */ import { makeStyles } from '@material-ui/styles'; -import FormControl from '@material-ui/core/FormControl' -import InputLabel from '@material-ui/core/InputLabel' -import MenuItem from '@material-ui/core/MenuItem' -import Select from '@material-ui/core/Select' +import FormControl from '@material-ui/core/FormControl'; +import InputLabel from '@material-ui/core/InputLabel'; +import MenuItem from '@material-ui/core/MenuItem'; +import Select from '@material-ui/core/Select'; import React from 'react'; @@ -35,10 +35,18 @@ const useStyles = makeStyles({ }); function EditControl({ - windowOptions, window, setWindow, - aggregationOptions, aggregateBy, setAggregateBy, - accumulateOptions, accumulate, setAccumulate, - currencyOptions, currency, setCurrency, + windowOptions, + window, + setWindow, + aggregationOptions, + aggregateBy, + setAggregateBy, + accumulateOptions, + accumulate, + setAccumulate, + currencyOptions, + currency, + setCurrency, }) { const classes = useStyles(); return ( @@ -46,17 +54,22 @@ function EditControl({ + setWindow={setWindow} + /> Breakdown @@ -66,7 +79,11 @@ function EditControl({ value={accumulate} onChange={e => setAccumulate(e.target.value)} > - {accumulateOptions.map((opt) => {opt.name})} + {accumulateOptions.map(opt => ( + + {opt.name} + + ))} @@ -76,9 +93,9 @@ function EditControl({ value={currency} onChange={e => setCurrency(e.target.value)} > - {currencyOptions?.map((currency) => ( - - {currency} + {currencyOptions?.map(currencyVal => ( + + {currencyVal} ))} From cd7d4e4f27190d9925e662478bab32da953b7e08 Mon Sep 17 00:00:00 2001 From: Matt Ray Date: Tue, 20 Jun 2023 15:24:03 +1000 Subject: [PATCH 345/372] Fix for "86:5 error Arrow function expected no return value consistent-return" Signed-off-by: Matt Ray --- .../AllocationChart/SummaryChart.js | 92 ++++++++++--------- 1 file changed, 51 insertions(+), 41 deletions(-) diff --git a/plugins/opencost/src/components/AllocationChart/SummaryChart.js b/plugins/opencost/src/components/AllocationChart/SummaryChart.js index 977ee395a3..9ac59cdbca 100644 --- a/plugins/opencost/src/components/AllocationChart/SummaryChart.js +++ b/plugins/opencost/src/components/AllocationChart/SummaryChart.js @@ -14,81 +14,89 @@ * limitations under the License. */ -import React from 'react' -import { ResponsiveContainer, PieChart, Pie, Cell } from 'recharts' +import React from 'react'; +import { ResponsiveContainer, PieChart, Pie, Cell } from 'recharts'; import { primary, greyscale, browns } from '../../constants/colors'; import { toCurrency } from '../../util'; function toPieData(top, other, idle) { - const slices = [] + const slices = []; for (const i in top) { if (Object.hasOwn(top, i)) { - const allocation = top[i] - const fill = allocation.name === "__unallocated__" - ? "#212121" - : primary[i % primary.length] + const allocation = top[i]; + const fill = + allocation.name === '__unallocated__' + ? '#212121' + : primary[i % primary.length]; slices.push({ name: allocation.name, value: allocation.totalCost, fill: fill, - }) + }); } } for (const i in other) { if (Object.hasOwn(other, i)) { - const allocation = other[i] - const fill = browns[i % browns.length] + const allocation = other[i]; + const fill = browns[i % browns.length]; slices.push({ name: allocation.name, value: allocation.totalCost, fill: fill, - }) + }); } } for (const i in idle) { if (Object.hasOwn(idle, i)) { - const allocation = idle[i] - const fill = greyscale[i % greyscale.length] + const allocation = idle[i]; + const fill = greyscale[i % greyscale.length]; slices.push({ name: allocation.name, value: allocation.totalCost, fill: fill, - }) + }); } } - return slices + return slices; } const SummaryChart = ({ top, other, idle, currency, height }) => { - const pieData = toPieData(top, other, idle) + const pieData = toPieData(top, other, idle); - const renderLabel = (params) => { - const { - cx, cy, midAngle, outerRadius, percent, name, fill, value - } = params + const renderLabel = params => { + const { cx, cy, midAngle, outerRadius, percent, name, fill, value } = + params; - const RADIAN = Math.PI / 180 - const radius = outerRadius * 1.1 - let x = cx + radius * Math.cos(-midAngle * RADIAN) - x += x > cx ? 2 : -2 - const y = cy + radius * Math.sin(-midAngle * RADIAN) + const RADIAN = Math.PI / 180; + const radius = outerRadius * 1.1; + let x = cx + radius * Math.cos(-midAngle * RADIAN); + x += x > cx ? 2 : -2; + const y = cy + radius * Math.sin(-midAngle * RADIAN); // y -= Math.min(Math.abs(2 / Math.cos(-midAngle * RADIAN)), 8) if (percent < 0.02) { - return + return undefined; } return ( - cx ? 'start' : 'end'} dominantBaseline="central"> - {`${name}: ${toCurrency(value, currency)} (${(percent * 100).toFixed(1)}%)`} + cx ? 'start' : 'end'} + dominantBaseline="central" + > + {`${name}: ${toCurrency(value, currency)} (${(percent * 100).toFixed( + 1, + )}%)`} - ) - } + ); + }; return ( @@ -100,19 +108,21 @@ const SummaryChart = ({ top, other, idle, currency, height }) => { label={renderLabel} labelLine // niko: if tooltips error, try disabling animation - // isAnimationActive={false} - animationDuration={400} - cy="90%" - outerRadius="140%" - innerRadius="60%" - startAngle={180} - endAngle={0} + // isAnimationActive={false} + animationDuration={400} + cy="90%" + outerRadius="140%" + innerRadius="60%" + startAngle={180} + endAngle={0} > - {pieData.map((datum, i) => )} + {pieData.map((datum, i) => ( + + ))} - ) - } + ); +}; - export default SummaryChart +export default SummaryChart; From e4fc8df2cae87811441a1b3adca275bc0d6d8cb1 Mon Sep 17 00:00:00 2001 From: Matt Ray Date: Tue, 20 Jun 2023 15:39:45 +1000 Subject: [PATCH 346/372] Disable eslint "warning

    is forbidden, use MUI instead react/forbid-elements" Signed-off-by: Matt Ray --- .../components/AllocationChart/RangeChart.js | 131 +++++++++++------- 1 file changed, 80 insertions(+), 51 deletions(-) diff --git a/plugins/opencost/src/components/AllocationChart/RangeChart.js b/plugins/opencost/src/components/AllocationChart/RangeChart.js index e5a7af8044..d95981f42a 100644 --- a/plugins/opencost/src/components/AllocationChart/RangeChart.js +++ b/plugins/opencost/src/components/AllocationChart/RangeChart.js @@ -15,7 +15,15 @@ */ import React from 'react'; -import { BarChart, Bar, XAxis, YAxis, CartesianGrid, Tooltip, ResponsiveContainer } from 'recharts'; +import { + BarChart, + Bar, + XAxis, + YAxis, + CartesianGrid, + Tooltip, + ResponsiveContainer, +} from 'recharts'; import { makeStyles } from '@material-ui/styles'; import { reverse } from 'lodash'; import { primary, greyscale, browns } from '../../constants/colors'; @@ -33,36 +41,36 @@ const useStyles = makeStyles({ marginBottom: 4, padding: 0, }, -}) +}); function toBarLabels(allocationRange) { - const keyToFill = {} - let p = 0 - let g = 0 - let b = 0 + const keyToFill = {}; + let p = 0; + let g = 0; + let b = 0; for (const { idle } of allocationRange) { for (const allocation of idle) { - const key = allocation.name + const key = allocation.name; if (keyToFill[key] === undefined) { // idle allocations are assigned grey - keyToFill[key] = greyscale[g] - g = (g+1) % greyscale.length + keyToFill[key] = greyscale[g]; + g = (g + 1) % greyscale.length; } } } for (const { top } of allocationRange) { for (const allocation of top) { - const key = allocation.name + const key = allocation.name; if (keyToFill[key] === undefined) { - if (key === "__unallocated__") { + if (key === '__unallocated__') { // unallocated gets black (clean up) - keyToFill[key] = "#212121" + keyToFill[key] = '#212121'; } else { // non-idle allocations get the next available color - keyToFill[key] = primary[p] - p = (p+1) % primary.length + keyToFill[key] = primary[p]; + p = (p + 1) % primary.length; } } } @@ -70,89 +78,103 @@ function toBarLabels(allocationRange) { for (const { other } of allocationRange) { for (const allocation of other) { - const key = allocation.name + const key = allocation.name; if (keyToFill[key] === undefined) { // idle allocations are assigned grey - keyToFill[key] = browns[b] - b = (b+1) % browns.length + keyToFill[key] = browns[b]; + b = (b + 1) % browns.length; } } } - const labels = [] + const labels = []; for (const key in keyToFill) { if (Object.hasOwn(keyToFill, key)) { labels.push({ dataKey: key, fill: keyToFill[key], - }) + }); } } - return reverse(labels) + return reverse(labels); } function toBar(datum) { - const { top, other, idle } = datum - const bar = {} + const { top, other, idle } = datum; + const bar = {}; for (const key in top) { if (Object.hasOwn(top, key)) { - const allocation = top[key] - const start = new Date(allocation.start) - bar.start = `${start.getUTCFullYear()}-${start.getUTCMonth()+1}-${start.getUTCDate()}` - bar[allocation.name] = allocation.totalCost + const allocation = top[key]; + const start = new Date(allocation.start); + bar.start = `${start.getUTCFullYear()}-${ + start.getUTCMonth() + 1 + }-${start.getUTCDate()}`; + bar[allocation.name] = allocation.totalCost; } } for (const key in other) { if (Object.hasOwn(other, key)) { - const allocation = other[key] - const start = new Date(allocation.start) - bar.start = `${start.getUTCFullYear()}-${start.getUTCMonth()+1}-${start.getUTCDate()}` - bar[allocation.name] = allocation.totalCost + const allocation = other[key]; + const start = new Date(allocation.start); + bar.start = `${start.getUTCFullYear()}-${ + start.getUTCMonth() + 1 + }-${start.getUTCDate()}`; + bar[allocation.name] = allocation.totalCost; } } for (const key in idle) { if (Object.hasOwn(idle, key)) { - const allocation = idle[key] - const start = new Date(allocation.start) - bar.start = `${start.getUTCFullYear()}-${start.getUTCMonth()+1}-${start.getUTCDate()}` - bar[allocation.name] = allocation.totalCost + const allocation = idle[key]; + const start = new Date(allocation.start); + bar.start = `${start.getUTCFullYear()}-${ + start.getUTCMonth() + 1 + }-${start.getUTCDate()}`; + bar[allocation.name] = allocation.totalCost; } } - return bar + return bar; } const RangeChart = ({ data, currency, height }) => { - const classes = useStyles() + const classes = useStyles(); - const barData = data.map(toBar) - const barLabels = toBarLabels(data) + const barData = data.map(toBar); + const barLabels = toBarLabels(data); - const CustomTooltip = (params) => { - const { active, payload } = params + const CustomTooltip = params => { + const { active, payload } = params; if (!payload || payload.length === 0) { - return null + return null; } - const total = payload.reduce((sum, item) => sum + item.value, 0.0) + const total = payload.reduce((sum, item) => sum + item.value, 0.0); if (active) { + /* eslint react/forbid-elements: [0, { allow: ["warning"] }] */ return (

    -

    {`Total: ${toCurrency(total, currency)}`}

    +

    {`Total: ${toCurrency(total, currency)}`}

    {reverse(payload).map((item, i) => ( -

    {`${item.name}: ${toCurrency(item.value, currency)}`}

    +

    {`${item.name}: ${toCurrency(item.value, currency)}`}

    ))}
    - ) + ); } - return null - } + return null; + }; return ( @@ -164,10 +186,17 @@ const RangeChart = ({ data, currency, height }) => { } /> - {barLabels.map((barLabel, i) => )} + {barLabels.map((barLabel, i) => ( + + ))} - ) -} + ); +}; -export default RangeChart +export default RangeChart; From 3e19e82a1d23c4e9e748df0c74f07dd6855ae86c Mon Sep 17 00:00:00 2001 From: Matt Ray Date: Tue, 20 Jun 2023 15:54:51 +1000 Subject: [PATCH 347/372] Turn off eslint "error 'agg' is already declared in the upper scope on line 28 column 10 @typescript-eslint/no-shadow" Signed-off-by: Matt Ray --- .../src/components/AllocationChart/index.js | 106 ++++++++++-------- 1 file changed, 59 insertions(+), 47 deletions(-) diff --git a/plugins/opencost/src/components/AllocationChart/index.js b/plugins/opencost/src/components/AllocationChart/index.js index 8c6f5350f6..c08c5513a8 100644 --- a/plugins/opencost/src/components/AllocationChart/index.js +++ b/plugins/opencost/src/components/AllocationChart/index.js @@ -14,84 +14,96 @@ * limitations under the License. */ -import React from 'react' -import { isArray, filter, map, reduce, reverse, sortBy } from 'lodash' +import React from 'react'; +import { isArray, filter, map, reduce, reverse, sortBy } from 'lodash'; -import Typography from '@material-ui/core/Typography' +import Typography from '@material-ui/core/Typography'; -import RangeChart from './RangeChart' -import SummaryChart from './SummaryChart' +import RangeChart from './RangeChart'; +import SummaryChart from './SummaryChart'; // TODO niko/etl -// sum allocationSet to single allocation +/* eslint @typescript-eslint/no-shadow: ["error", { "allow": ["agg"] }]*/ function agg(allocationSet, name) { if (allocationSet.length === 0) { - return null + return null; } - return reduce(allocationSet, (agg, cur) => ({ - name: agg.name, - aggregatedBy: cur.aggregatedBy, - properties: agg.properties, - start: cur.start, - end: cur.end, - cpuCost: agg.cpuCost + cur.cpuCost, - gpuCost: agg.gpuCost + cur.gpuCost, - ramCost: agg.ramCost + cur.ramCost, - pvCost: agg.pvCost + cur.pvCost, - totalCost: agg.totalCost + cur.totalCost, - count: agg.count + 1 - }), { - name: name, - properties: null, - cpuCost: 0.0, - gpuCost: 0.0, - ramCost: 0.0, - pvCost: 0.0, - totalCost: 0.0, - count: 0, - }) + return reduce( + allocationSet, + (agg, cur) => ({ + name: agg.name, + aggregatedBy: cur.aggregatedBy, + properties: agg.properties, + start: cur.start, + end: cur.end, + cpuCost: agg.cpuCost + cur.cpuCost, + gpuCost: agg.gpuCost + cur.gpuCost, + ramCost: agg.ramCost + cur.ramCost, + pvCost: agg.pvCost + cur.pvCost, + totalCost: agg.totalCost + cur.totalCost, + count: agg.count + 1, + }), + { + name: name, + properties: null, + cpuCost: 0.0, + gpuCost: 0.0, + ramCost: 0.0, + pvCost: 0.0, + totalCost: 0.0, + count: 0, + }, + ); } function isIdle(allocation) { - return allocation.name.indexOf('__idle__') >= 0 + return allocation.name.indexOf('__idle__') >= 0; } function top(n, by) { - return (allocations) => { + return allocations => { if (isArray(allocations[0])) { - return map(allocations, top(n, by)) + return map(allocations, top(n, by)); } - const sorted = reverse(sortBy(allocations, by)) - const active = filter(sorted, a => !isIdle(a)) - const idle = filter(sorted, a => isIdle(a)) - const topn = active.slice(0, n) - const other = [] + const sorted = reverse(sortBy(allocations, by)); + const active = filter(sorted, a => !isIdle(a)); + const idle = filter(sorted, a => isIdle(a)); + const topn = active.slice(0, n); + const other = []; if (active.length > n) { - other.push(agg(active.slice(n), 'other')) + other.push(agg(active.slice(n), 'other')); } return { top: topn, other: other, idle: idle, - } - } + }; + }; } const AllocationChart = ({ allocationRange, currency, n, height }) => { if (allocationRange.length === 0) { - return No data + return No data; } if (allocationRange.length === 1) { - const datum = top(n, alloc => alloc.totalCost)(allocationRange[0]) - return + const datum = top(n, alloc => alloc.totalCost)(allocationRange[0]); + return ( + + ); } - const data = top(n, alloc => alloc.totalCost)(allocationRange) - return -} + const data = top(n, alloc => alloc.totalCost)(allocationRange); + return ; +}; -export default React.memo(AllocationChart) +export default React.memo(AllocationChart); From 83a103e2f6d82b337d01c6072a2e19130d31c488 Mon Sep 17 00:00:00 2001 From: Matt Ray Date: Tue, 20 Jun 2023 18:20:44 +1000 Subject: [PATCH 348/372] Disable eslint issue with "error React Hook useEffect has a missing dependency: 'fetchData'. Either include it or remove the dependency array react-hooks/exhaustive-deps" Signed-off-by: Matt Ray --- plugins/opencost/src/components/Details.js | 217 ++++++++++++--------- 1 file changed, 130 insertions(+), 87 deletions(-) diff --git a/plugins/opencost/src/components/Details.js b/plugins/opencost/src/components/Details.js index 8be2038cee..5245c9e9fa 100644 --- a/plugins/opencost/src/components/Details.js +++ b/plugins/opencost/src/components/Details.js @@ -41,131 +41,139 @@ const Details = ({ pod, currency, }) => { - const [cluster, setCluster] = useState('') - const [node, setNode] = useState('') + const [cluster, setCluster] = useState(''); + const [node, setNode] = useState(''); - const [fetch, setFetch] = useState(true) - const [loading, setLoading] = useState(false) - const [errors, setErrors] = useState([]) - const [rows, setRows] = useState([]) + const [fetch, setFetch] = useState(true); + const [loading, setLoading] = useState(false); + const [errors, setErrors] = useState([]); + const [rows, setRows] = useState([]); useEffect(() => { if (fetch) { - setCluster('') - setNode('') - fetchData() + setCluster(''); + setNode(''); + fetchData(); } - }, [fetch]) + // eslint-disable-next-line react-hooks/exhaustive-deps + }, [fetch]); async function fetchData() { - setLoading(true) - setErrors([]) + setLoading(true); + setErrors([]); try { - const filters = [] + const filters = []; if (cluster) { filters.push({ - property: "cluster", + property: 'cluster', value: cluster, - }) + }); } if (node) { filters.push({ - property: "node", + property: 'node', value: node, - }) + }); } if (namespace) { filters.push({ - property: "namespace", + property: 'namespace', value: namespace, - }) + }); } if (controllerKind) { filters.push({ - property: "controllerKind", + property: 'controllerKind', value: controllerKind, - }) + }); } if (controller) { filters.push({ - property: "controller", + property: 'controller', value: controller, - }) + }); } if (pod) { filters.push({ - property: "pod", + property: 'pod', value: pod, - }) + }); } - const resp = await AllocationService.fetchAllocation(window, '', { accumulate: true }) + const resp = await AllocationService.fetchAllocation(window, '', { + accumulate: true, + }); - let data = [] - forEach(resp.data[0], (datum) => { - if (datum.name === "__idle__") { - return + let data = []; + forEach(resp.data[0], datum => { + if (datum.name === '__idle__') { + return; } if (!cluster) { - setCluster(get(datum, 'properties.cluster', '')) + setCluster(get(datum, 'properties.cluster', '')); } if (!node) { - setNode(get(datum, 'properties.node', '')) + setNode(get(datum, 'properties.node', '')); } // TODO can we get pod, container back in properties? - const names = datum.name.split("/") - datum.pod = names[names.length-2] - datum.container = names[names.length-1] + const names = datum.name.split('/'); + datum.pod = names[names.length - 2]; + datum.container = names[names.length - 1]; - datum.hours = round(get(datum, 'minutes', 0.0) / 60.0, 2) + datum.hours = round(get(datum, 'minutes', 0.0) / 60.0, 2); if (datum.hours > 0) { - datum.cpu = round(get(datum, 'cpuCoreHours', 0.0) / datum.hours, 2) - datum.cpuCostPerCoreHr = datum.cpuCost / (datum.cpu * datum.hours) + datum.cpu = round(get(datum, 'cpuCoreHours', 0.0) / datum.hours, 2); + datum.cpuCostPerCoreHr = datum.cpuCost / (datum.cpu * datum.hours); if (datum.cpu === 0) { - datum.cpuCostPerCoreHr = 0.0 + datum.cpuCostPerCoreHr = 0.0; } - datum.ram = round(get(datum, 'ramByteHours', 0.0) / datum.hours, 2) - const ramGiB = datum.ram / 1024 / 1024 / 1024 - datum.ramCostPerGiBHr = datum.ramCost / (ramGiB * datum.hours) + datum.ram = round(get(datum, 'ramByteHours', 0.0) / datum.hours, 2); + const ramGiB = datum.ram / 1024 / 1024 / 1024; + datum.ramCostPerGiBHr = datum.ramCost / (ramGiB * datum.hours); if (ramGiB === 0) { - datum.ramCostPerGiBHr = 0.0 + datum.ramCostPerGiBHr = 0.0; } } else { - datum.cpu = 0.0 - datum.cpuCostPerCoreHr = 0.0 - datum.ram = 0.0 - datum.ramCostPerGiBHr = 0.0 + datum.cpu = 0.0; + datum.cpuCostPerCoreHr = 0.0; + datum.ram = 0.0; + datum.ramCostPerGiBHr = 0.0; } - data.push(datum) - }) + data.push(datum); + }); - data = reverse(sortBy(data, 'totalCost')) + data = reverse(sortBy(data, 'totalCost')); - setRows(data) + setRows(data); } catch (e) { /* eslint no-console: ["error", { allow: ["warn"] }] */ - console.warn(`Error fetching details for (${controllerKind}, ${controller}):`, e) - setErrors([{ - primary: "Error fetching details", - secondary: `Tried fetching details for: ${namespace}, ${controllerKind}, ${controller}, ${pod}`, - }]) + console.warn( + `Error fetching details for (${controllerKind}, ${controller}):`, + e, + ); + setErrors([ + { + primary: 'Error fetching details', + secondary: `Tried fetching details for: ${namespace}, ${controllerKind}, ${controller}, ${pod}`, + }, + ]); } - setLoading(false) - setFetch(false) + setLoading(false); + setFetch(false); } if (loading) { @@ -175,12 +183,11 @@ const Details = ({ - ) + ); } return (
    - {!loading && errors.length > 0 && (
    @@ -197,48 +204,84 @@ const Details = ({ )} {node && ( - - - - - - + + + + + + )}
    - Container - Hours - CPU - $/(CPU*Hr) - CPU cost - RAM - $/(GiB*Hr) - RAM cost - Total cost + + Container + + + Hours + + + CPU + + + $/(CPU*Hr) + + + CPU cost + + + RAM + + + $/(GiB*Hr) + + + RAM cost + + + Total cost + {rows.map((row, i) => ( - {row.container} - {row.hours} - {row.cpu} - {toCurrency(row.cpuCostPerCoreHr, currency, 5)} - {toCurrency(row.cpuCost, currency, 3)} - {bytesToString(row.ram)} - {toCurrency(row.ramCostPerGiBHr, currency, 5)} - {toCurrency(row.ramCost, currency, 3)} - {toCurrency(row.totalCost, currency, 3)} + + {row.container} + + + {row.hours} + + + {row.cpu} + + + {toCurrency(row.cpuCostPerCoreHr, currency, 5)} + + + {toCurrency(row.cpuCost, currency, 3)} + + + {bytesToString(row.ram)} + + + {toCurrency(row.ramCostPerGiBHr, currency, 5)} + + + {toCurrency(row.ramCost, currency, 3)} + + + {toCurrency(row.totalCost, currency, 3)} + ))}
    - ) -} + ); +}; -export default memo(Details) +export default memo(Details); From 66991811272fd0c5b608a5856790ca680eb25e2d Mon Sep 17 00:00:00 2001 From: Matt Ray Date: Thu, 22 Jun 2023 10:28:15 +1000 Subject: [PATCH 349/372] Disable eslinting for now plus auto-formatting changes // eslint-disable-next-line @typescript-eslint/no-use-before-define // eslint-disable-next-line react-hooks/exhaustive-deps Signed-off-by: Matt Ray --- .../OpenCostReport/OpenCostReport.tsx | 314 ++++++++++-------- 1 file changed, 169 insertions(+), 145 deletions(-) diff --git a/plugins/opencost/src/components/OpenCostReport/OpenCostReport.tsx b/plugins/opencost/src/components/OpenCostReport/OpenCostReport.tsx index c84070aa2b..bf3ea200e2 100644 --- a/plugins/opencost/src/components/OpenCostReport/OpenCostReport.tsx +++ b/plugins/opencost/src/components/OpenCostReport/OpenCostReport.tsx @@ -16,23 +16,28 @@ // code ported from https://github.com/opencost/opencost/blob/develop/ui/src/Reports.js -import React, { useEffect, useState } from 'react' -import CircularProgress from '@material-ui/core/CircularProgress' -import IconButton from '@material-ui/core/IconButton' -import Paper from '@material-ui/core/Paper' -import RefreshIcon from '@material-ui/icons/Refresh' -import Typography from '@material-ui/core/Typography' +import React, { useEffect, useState } from 'react'; +import CircularProgress from '@material-ui/core/CircularProgress'; +import IconButton from '@material-ui/core/IconButton'; +import Paper from '@material-ui/core/Paper'; +import RefreshIcon from '@material-ui/icons/Refresh'; +import Typography from '@material-ui/core/Typography'; import { useLocation, useNavigate } from 'react-router-dom'; -import { find, forEach, get, sortBy, toArray } from 'lodash' -import { makeStyles } from '@material-ui/styles' +import { find, forEach, get, sortBy, toArray } from 'lodash'; +import { makeStyles } from '@material-ui/styles'; import AllocationReport from '../AllocationReport'; import AllocationService from '../../services/allocation'; import Controls from '../Controls'; import Page from '../Page'; import Subtitle from '../Subtitle'; import Warnings from '../Warnings'; -import { checkCustomWindow, cumulativeToTotals, rangeToCumulative, toVerboseTimeRange } from '../../util'; -import { currencyCodes } from '../../constants/currencyCodes' +import { + checkCustomWindow, + cumulativeToTotals, + rangeToCumulative, + toVerboseTimeRange, +} from '../../util'; +import { currencyCodes } from '../../constants/currencyCodes'; const windowOptions = [ { name: 'Today', value: 'today' }, @@ -45,7 +50,7 @@ const windowOptions = [ { name: 'Last 30 days', value: '29d' }, { name: 'Last 60 days', value: '59d' }, { name: 'Last 90 days', value: '89d' }, -] +]; const aggregationOptions = [ { name: 'Cluster', value: 'cluster' }, @@ -56,12 +61,12 @@ const aggregationOptions = [ { name: 'Service', value: 'service' }, { name: 'Pod', value: 'pod' }, { name: 'Container', value: 'container' }, -] +]; const accumulateOptions = [ { name: 'Entire window', value: true }, { name: 'Daily', value: false }, -] +]; const useStyles = makeStyles({ reportHeader: { @@ -72,81 +77,89 @@ const useStyles = makeStyles({ titles: { flexGrow: 1, }, -}) +}); // generateTitle generates a string title from a report object function generateTitle({ window, aggregateBy, accumulate }) { - let windowName = get(find(windowOptions, { value: window }), 'name', '') + let windowName = get(find(windowOptions, { value: window }), 'name', ''); if (windowName === '') { if (checkCustomWindow(window)) { - windowName = toVerboseTimeRange(window) + windowName = toVerboseTimeRange(window); } else { /* eslint no-console: ["error", { allow: ["warn"] }] */ - console.warn(`unknown window: ${window}`) + console.warn(`unknown window: ${window}`); } } - const aggregationName = get(find(aggregationOptions, { value: aggregateBy }), 'name', '').toLocaleLowerCase('en-US') + const aggregationName = get( + find(aggregationOptions, { value: aggregateBy }), + 'name', + '', + ).toLocaleLowerCase('en-US'); if (aggregationName === '') { /* eslint no-console: ["error", { allow: ["warn"] }] */ - console.warn(`unknown aggregation: ${aggregateBy}`) + console.warn(`unknown aggregation: ${aggregateBy}`); } - let str = `${windowName} by ${aggregationName}` + let str = `${windowName} by ${aggregationName}`; if (!accumulate) { - str = `${str} daily` + str = `${str} daily`; } - return str + return str; } export const OpenCostReport = () => { - const classes = useStyles() + const classes = useStyles(); // Allocation data state - const [allocationData, setAllocationData] = useState([]) - const [cumulativeData, setCumulativeData] = useState({}) - const [totalData, setTotalData] = useState({}) + const [allocationData, setAllocationData] = useState([]); + const [cumulativeData, setCumulativeData] = useState({}); + const [totalData, setTotalData] = useState({}); // When allocation data changes, create a cumulative version of it useEffect(() => { - const cumulative = rangeToCumulative(allocationData, aggregateBy) - setCumulativeData(toArray(cumulative)) - setTotalData(cumulativeToTotals(cumulative)) - }, [allocationData]) + // eslint-disable-next-line @typescript-eslint/no-use-before-define + const cumulative = rangeToCumulative(allocationData, aggregateBy); + setCumulativeData(toArray(cumulative)); + setTotalData(cumulativeToTotals(cumulative)); + // eslint-disable-next-line react-hooks/exhaustive-deps + }, [allocationData]); // Form state, which controls form elements, but not the report itself. On // certain actions, the form state may flow into the report state. - const [window, setWindow] = useState(windowOptions[0].value) - const [aggregateBy, setAggregateBy] = useState(aggregationOptions[0].value) - const [accumulate, setAccumulate] = useState(accumulateOptions[0].value) - const [currency, setCurrency] = useState('USD') + const [window, setWindow] = useState(windowOptions[0].value); + const [aggregateBy, setAggregateBy] = useState(aggregationOptions[0].value); + const [accumulate, setAccumulate] = useState(accumulateOptions[0].value); + const [currency, setCurrency] = useState('USD'); // Report state, including current report and saved options - const [title, setTitle] = useState('Last 7 days by namespace daily') + const [title, setTitle] = useState('Last 7 days by namespace daily'); // When parameters changes, fetch data. This should be the // only mechanism used to fetch data. Also generate a sensible title from the paramters. useEffect(() => { - setFetch(true) - setTitle(generateTitle({ window, aggregateBy, accumulate })) - }, [window, aggregateBy, accumulate]) + // eslint-disable-next-line @typescript-eslint/no-use-before-define + setFetch(true); + setTitle(generateTitle({ window, aggregateBy, accumulate })); + }, [window, aggregateBy, accumulate]); // page and settings state - const [init, setInit] = useState(false) - const [fetch, setFetch] = useState(false) - const [loading, setLoading] = useState(true) - const [errors, setErrors] = useState([]) + const [init, setInit] = useState(false); + const [fetch, setFetch] = useState(false); + const [loading, setLoading] = useState(true); + const [errors, setErrors] = useState([]); // Initialize once, then fetch report each time setFetch(true) is called useEffect(() => { if (!init) { - initialize() + initialize(); } if (init && fetch) { - fetchData() + fetchData(); } - }, [init, fetch]) + // eslint-disable-next-line react-hooks/exhaustive-deps + }, [init, fetch]); // parse any context information from the URL const routerLocation = useLocation(); @@ -155,132 +168,143 @@ export const OpenCostReport = () => { useEffect(() => { setWindow(searchParams.get('window') || '6d'); setAggregateBy(searchParams.get('agg') || 'namespace'); - setAccumulate((searchParams.get('acc') === 'true') || false); + setAccumulate(searchParams.get('acc') === 'true' || false); setCurrency(searchParams.get('currency') || 'USD'); + // eslint-disable-next-line react-hooks/exhaustive-deps }, [routerLocation]); async function initialize() { - setInit(true) + setInit(true); } async function fetchData() { - setLoading(true) - setErrors([]) + setLoading(true); + setErrors([]); try { // TODO get the baseUrl from the Basecamp config - const baseUrl = "http://localhost:9003"; - const resp = await AllocationService.fetchAllocation(baseUrl, window, aggregateBy, { accumulate }) + const baseUrl = 'http://localhost:9003'; + const resp = await AllocationService.fetchAllocation( + baseUrl, + window, + aggregateBy, + { accumulate }, + ); if (resp.data && resp.data.length > 0) { - const allocationRange = resp.data + const allocationRange = resp.data; for (const i in allocationRange) { if (Object.hasOwn(allocationRange, i)) { // update cluster aggregations to use clusterName/clusterId names - allocationRange[i] = sortBy(allocationRange[i], a => a.totalCost) + allocationRange[i] = sortBy(allocationRange[i], a => a.totalCost); } } - setAllocationData(allocationRange) + setAllocationData(allocationRange); } else { - setAllocationData([]) + setAllocationData([]); } } catch (err) { if (err.message.indexOf('404') === 0) { - setErrors([{ - primary: 'Failed to load report data', - secondary: 'Please update OpenCost to the latest version, then open an Issue on GitHub if problems persist.' - }]) + setErrors([ + { + primary: 'Failed to load report data', + secondary: + 'Please update OpenCost to the latest version, then open an Issue on GitHub if problems persist.', + }, + ]); } else { - let secondary = 'Please open an OpenCost issue with a bug report if problems persist.' + let secondary = + 'Please open an OpenCost issue with a bug report if problems persist.'; if (err.message.length > 0) { - secondary = err.message + secondary = err.message; } - setErrors([{ - primary: 'Failed to load report data', - secondary: secondary, - }]) + setErrors([ + { + primary: 'Failed to load report data', + secondary: secondary, + }, + ]); } - setAllocationData([]) + setAllocationData([]); } - setLoading(false) - setFetch(false) + setLoading(false); + setFetch(false); } - return ( - + return ( + + {!loading && errors.length > 0 && ( +
    + +
    + )} - {!loading && errors.length > 0 && ( -
    - + {init && ( + +
    +
    + {title} + +
    + + setFetch(true)}> + + + + { + searchParams.set('window', win); + routerNavigate({ + search: `?${searchParams.toString()}`, + }); + }} + aggregationOptions={aggregationOptions} + aggregateBy={aggregateBy} + setAggregateBy={agg => { + searchParams.set('agg', agg); + routerNavigate({ + search: `?${searchParams.toString()}`, + }); + }} + accumulateOptions={accumulateOptions} + accumulate={accumulate} + setAccumulate={acc => { + searchParams.set('acc', acc); + routerNavigate({ + search: `?${searchParams.toString()}`, + }); + }} + title={title} + cumulativeData={cumulativeData} + currency={currency} + currencyOptions={currencyCodes} + setCurrency={curr => { + searchParams.set('currency', curr); + routerNavigate({ + search: `?${searchParams.toString()}`, + }); + }} + /> +
    + + {loading && ( +
    +
    +
    - )} - - {init && -
    -
    - {title} - -
    - - setFetch(true)}> - - - - { - searchParams.set('window', win); - routerNavigate({ - search: `?${searchParams.toString()}`, - }); - }} - aggregationOptions={aggregationOptions} - aggregateBy={aggregateBy} - setAggregateBy={(agg) => { - searchParams.set('agg', agg); - routerNavigate({ - search: `?${searchParams.toString()}`, - }); - }} - accumulateOptions={accumulateOptions} - accumulate={accumulate} - setAccumulate={(acc) => { - searchParams.set('acc', acc); - routerNavigate({ - search: `?${searchParams.toString()}` - }); - }} - title={title} - cumulativeData={cumulativeData} - currency={currency} - currencyOptions={currencyCodes} - setCurrency={(curr) => { - searchParams.set('currency', curr); - routerNavigate({ - search: `?${searchParams.toString()}` - }); - }} - /> -
    - - {loading && ( -
    -
    - -
    -
    - )} - {!loading && ( - - )} -
    } - -) -} +
    + )} + {!loading && ( + + )} +
    + )} + + ); +}; From 08925803ce0deba35cd369d9951e67f06e68eca2 Mon Sep 17 00:00:00 2001 From: Matt Ray Date: Thu, 22 Jun 2023 11:21:55 +1000 Subject: [PATCH 350/372] Disabling eslint tests because don't want to change the working code Signed-off-by: Matt Ray --- .../src/components/AllocationReport.js | 217 +++++++++++------- 1 file changed, 131 insertions(+), 86 deletions(-) diff --git a/plugins/opencost/src/components/AllocationReport.js b/plugins/opencost/src/components/AllocationReport.js index 79a0121858..52686a741c 100644 --- a/plugins/opencost/src/components/AllocationReport.js +++ b/plugins/opencost/src/components/AllocationReport.js @@ -1,3 +1,7 @@ +/* not changing the working code at this point */ +/* eslint no-nested-ternary: 0 */ +/* eslint react-hooks/rules-of-hooks: 0 */ + /* * Copyright 2023 The Backstage Authors * @@ -14,18 +18,18 @@ * limitations under the License. */ -import React, { useEffect, useState } from 'react' -import { get, round } from 'lodash' +import React, { useEffect, useState } from 'react'; +import { get, round } from 'lodash'; import { makeStyles } from '@material-ui/styles'; -import Table from '@material-ui/core/Table' -import TableBody from '@material-ui/core/TableBody' -import TableCell from '@material-ui/core/TableCell' -import TableContainer from '@material-ui/core/TableContainer' -import TableHead from '@material-ui/core/TableHead' -import TablePagination from '@material-ui/core/TablePagination' -import TableRow from '@material-ui/core/TableRow' -import TableSortLabel from '@material-ui/core/TableSortLabel' -import Typography from '@material-ui/core/Typography' +import Table from '@material-ui/core/Table'; +import TableBody from '@material-ui/core/TableBody'; +import TableCell from '@material-ui/core/TableCell'; +import TableContainer from '@material-ui/core/TableContainer'; +import TableHead from '@material-ui/core/TableHead'; +import TablePagination from '@material-ui/core/TablePagination'; +import TableRow from '@material-ui/core/TableRow'; +import TableSortLabel from '@material-ui/core/TableSortLabel'; +import Typography from '@material-ui/core/Typography'; import AllocationChart from './AllocationChart'; import { toCurrency } from '../util'; @@ -33,88 +37,106 @@ const useStyles = makeStyles({ noResults: { padding: 24, }, -}) +}); function descendingComparator(a, b, orderBy) { if (get(b, orderBy) < get(a, orderBy)) { - return -1 + return -1; } if (get(b, orderBy) > get(a, orderBy)) { - return 1 + return 1; } - return 0 + return 0; } function getComparator(order, orderBy) { return order === 'desc' ? (a, b) => descendingComparator(a, b, orderBy) - : (a, b) => -descendingComparator(a, b, orderBy) + : (a, b) => -descendingComparator(a, b, orderBy); } function stableSort(array, comparator) { - const stabilizedThis = array.map((el, index) => [el, index]) + const stabilizedThis = array.map((el, index) => [el, index]); stabilizedThis.sort((a, b) => { - const order = comparator(a[0], b[0]) - if (order !== 0) return order - return a[1] - b[1] - }) - return stabilizedThis.map((el) => el[0]) + const order = comparator(a[0], b[0]); + if (order !== 0) return order; + return a[1] - b[1]; + }); + return stabilizedThis.map(el => el[0]); } const headCells = [ { id: 'name', numeric: false, label: 'Name', width: 'auto' }, { id: 'cpuCost', numeric: true, label: 'CPU', width: 100 }, - { id: 'ramCost', numeric: true, label: "RAM", width: 100 }, + { id: 'ramCost', numeric: true, label: 'RAM', width: 100 }, { id: 'pvCost', numeric: true, label: 'PV', width: 100 }, { id: 'totalEfficiency', numeric: true, label: 'Efficiency', width: 130 }, { id: 'totalCost', numeric: true, label: 'Total cost', width: 130 }, -] +]; -const AllocationReport = ({ allocationData, cumulativeData, totalData, currency }) => { - const classes = useStyles() +const AllocationReport = ({ + allocationData, + cumulativeData, + totalData, + currency, +}) => { + const classes = useStyles(); if (allocationData.length === 0) { - return No results + return ( + + No results + + ); } - const [order, setOrder] = React.useState('desc') - const [orderBy, setOrderBy] = React.useState('totalCost') - const [page, setPage] = useState(0) - const [rowsPerPage, setRowsPerPage] = useState(25) - const numData = cumulativeData.length + const [order, setOrder] = React.useState('desc'); + const [orderBy, setOrderBy] = React.useState('totalCost'); + const [page, setPage] = useState(0); + const [rowsPerPage, setRowsPerPage] = useState(25); + const numData = cumulativeData.length; useEffect(() => { - setPage(0) - }, [numData]) + setPage(0); + }, [numData]); - const lastPage = Math.floor(numData / rowsPerPage) + const lastPage = Math.floor(numData / rowsPerPage); - const handleChangePage = (event, newPage) => setPage(newPage) + const handleChangePage = (event, newPage) => setPage(newPage); const handleChangeRowsPerPage = event => { - setRowsPerPage(parseInt(event.target.value, 10)) - setPage(0) - } - - const createSortHandler = (property) => (event) => handleRequestSort(event, property) + setRowsPerPage(parseInt(event.target.value, 10)); + setPage(0); + }; const handleRequestSort = (event, property) => { - const isDesc = orderBy === property && order === 'desc' - setOrder(isDesc ? 'asc' : 'desc') - setOrderBy(property) - } + const isDesc = orderBy === property && order === 'desc'; + setOrder(isDesc ? 'asc' : 'desc'); + setOrderBy(property); + }; - const orderedRows = stableSort(cumulativeData, getComparator(order, orderBy)) - const pageRows = orderedRows.slice(page * rowsPerPage, page * rowsPerPage + rowsPerPage) + const createSortHandler = property => event => + handleRequestSort(event, property); + + const orderedRows = stableSort(cumulativeData, getComparator(order, orderBy)); + const pageRows = orderedRows.slice( + page * rowsPerPage, + page * rowsPerPage + rowsPerPage, + ); return (
    - + - {headCells.map((cell) => ( + {headCells.map(cell => ( - {headCells.map((cell) => { + {headCells.map(cell => { return ( - - {cell.numeric - ? (cell.label === 'Efficiency' - ? (totalData.totalEfficiency === 1.0 && totalData.cpuReqCoreHrs === 0 && totalData.ramReqByteHrs === 0) - ? "Inf%" - : `${round(totalData.totalEfficiency*100, 1)}%` - : toCurrency(totalData[cell.id], currency)) - : totalData[cell.id]} - - )})} + + {cell.numeric + ? cell.label === 'Efficiency' + ? totalData.totalEfficiency === 1.0 && + totalData.cpuReqCoreHrs === 0 && + totalData.ramReqByteHrs === 0 + ? 'Inf%' + : `${round(totalData.totalEfficiency * 100, 1)}%` + : toCurrency(totalData[cell.id], currency) + : totalData[cell.id]} + + ); + })} {pageRows.map((row, key) => { - if (row.name === "__unmounted__") { - row.name = "Unmounted PVs" + if (row.name === '__unmounted__') { + row.name = 'Unmounted PVs'; } - const isIdle = row.name.indexOf("__idle__") >= 0 - const isUnallocated = row.name.indexOf("__unallocated__") >= 0 - const isUnmounted = row.name.indexOf("Unmounted PVs") >= 0 + const isIdle = row.name.indexOf('__idle__') >= 0; + const isUnallocated = row.name.indexOf('__unallocated__') >= 0; + const isUnmounted = row.name.indexOf('Unmounted PVs') >= 0; // Replace "efficiency" with Inf if there is usage w/o request - let efficiency = round(row.totalEfficiency*100, 1) - if (row.totalEfficiency === 1.0 && row.cpuReqCoreHrs === 0 && row.ramReqByteHrs === 0) { - efficiency = "Inf" + let efficiency = round(row.totalEfficiency * 100, 1); + if ( + row.totalEfficiency === 1.0 && + row.cpuReqCoreHrs === 0 && + row.ramReqByteHrs === 0 + ) { + efficiency = 'Inf'; } // Do not allow drill-down for idle and unallocated rows @@ -173,29 +202,45 @@ const AllocationReport = ({ allocationData, cumulativeData, totalData, currency return ( {row.name} - {toCurrency(row.cpuCost, currency)} - {toCurrency(row.ramCost, currency)} - {toCurrency(row.pvCost, currency)} + + {toCurrency(row.cpuCost, currency)} + + + {toCurrency(row.ramCost, currency)} + + + {toCurrency(row.pvCost, currency)} + {isIdle ? ( ) : ( {efficiency}% )} - {toCurrency(row.totalCost, currency)} + + {toCurrency(row.totalCost, currency)} + - ) + ); } return ( {row.name} - {toCurrency(row.cpuCost, currency)} - {toCurrency(row.ramCost, currency)} - {toCurrency(row.pvCost, currency)} + + {toCurrency(row.cpuCost, currency)} + + + {toCurrency(row.ramCost, currency)} + + + {toCurrency(row.pvCost, currency)} + {efficiency}% - {toCurrency(row.totalCost, currency)} + + {toCurrency(row.totalCost, currency)} + - ) + ); })}
    @@ -210,7 +255,7 @@ const AllocationReport = ({ allocationData, cumulativeData, totalData, currency onChangeRowsPerPage={handleChangeRowsPerPage} />
    - ) -} + ); +}; -export default React.memo(AllocationReport) +export default React.memo(AllocationReport); From b9f668fde65673c3ece12726ef6ae7db750dfd6a Mon Sep 17 00:00:00 2001 From: Matt Ray Date: Thu, 22 Jun 2023 15:49:52 +1000 Subject: [PATCH 351/372] Added config file support and updated images Signed-off-by: Matt Ray --- plugins/opencost/README.md | 24 ++++++++++++++---- plugins/opencost/config.d.ts | 9 ++++--- plugins/opencost/package.json | 8 +++--- plugins/opencost/screenshot.png | Bin 2123599 -> 1531674 bytes .../OpenCostReport/OpenCostReport.tsx | 9 ++++--- plugins/opencost/src/images/pig.png | Bin 8173 -> 5575 bytes 6 files changed, 36 insertions(+), 14 deletions(-) diff --git a/plugins/opencost/README.md b/plugins/opencost/README.md index 4c9d721efb..d034f1b3dd 100644 --- a/plugins/opencost/README.md +++ b/plugins/opencost/README.md @@ -48,18 +48,32 @@ and ``` -## Configuration +## Plugin Configuration -## TODO +Since OpenCost doesn't have any authentication at this point, you just need to give API access to the plugin to access your data. + +If you haven't set up an ingress rule, you can port-forward the API with + +``` +kubectl -n opencost port-forward deployment/opencost 9003 +``` + +Add the following to your `app-config.yaml`: + +```yaml +opencost: + baseUrl: http://localhost:9003 +``` + +## Ideas/Next Steps - More testing - Use the OpenCost mascot for the sidebar logo -- Use the Backstage proxy to communicate with the OpenCost API +- Use the Backstage proxy to communicate with the OpenCost API if necessary for authentication - Convert AllocationReport.js to use the [Backstage Table](https://backstage.io/storybook/?path=/story/data-display-table--default-table) - Allow for user-provided default reports and/or disabling controls - Support multiple hard-coded reports -- Fork(?) to support Kubecost, which could provide Alerts and Recommendations, similar to the Cost Explorer plugin - clean up deprecation warnings and upgrade to all the latest React components -- upgrade sidebar icon to https://mui.com/material-ui/material-icons/?query=money&selected=Savings +- Fork(?) to support Kubecost, which could provide Alerts and Recommendations, similar to the Cost Explorer plugin ![Screenshot](screenshot.png) diff --git a/plugins/opencost/config.d.ts b/plugins/opencost/config.d.ts index 4af53bddce..0ff11bd1ed 100644 --- a/plugins/opencost/config.d.ts +++ b/plugins/opencost/config.d.ts @@ -15,10 +15,13 @@ */ export interface Config { - /** Configurations for the OpenCost plugin */ - openCost: { + /** Configurations for the OpenCost plugin + * opencost config + * @visibility frontend + */ + opencost?: { /** - * The base URL for the OpenCost installation. + * The ppbase URL for the OpenCost API * @visibility frontend */ baseUrl: string; diff --git a/plugins/opencost/package.json b/plugins/opencost/package.json index f14d85e28f..e5de3defa8 100644 --- a/plugins/opencost/package.json +++ b/plugins/opencost/package.json @@ -1,6 +1,6 @@ { "name": "@backstage/plugin-opencost", - "version": "0.0.0", + "version": "0.1.0", "main": "src/index.ts", "types": "src/index.ts", "license": "Apache-2.0", @@ -53,6 +53,8 @@ "msw": "^1.0.0" }, "files": [ - "dist" - ] + "dist", + "config.d.ts" + ], + "configSchema": "config.d.ts" } diff --git a/plugins/opencost/screenshot.png b/plugins/opencost/screenshot.png index e8added76fdde7db1d79a069825fdefc09201d30..432b525cb1b2173ec45f0965895abb48a124e58b 100644 GIT binary patch literal 1531674 zcmeFZ3piBo`!`A_oku4sF_lhACLIXFs#GeZs8BIQLP$c0nN|6g9C9cniAls)IUjSJ z%9$9aj6;l&!C)}vJZr6Y4Sj#V-}U~l_uYG6dtcYS_O<`+W@gQ-<8wdv^W2~NbKg&a z=gu0eSh{hkl$6wp)2EJ`N=Ys4lagApe(@som&oq1Z&Fgy1V?@SbEoz7H=n!fdehO_ zPD*N5glG6s!+F7OGEaGuW)bI_tRop0=k zUX?`bh4YU$?AZL*(-*!w2K(<(37RMj$ms+ywFBSXDc_ZX#2d5pOiu=aOzsODR`jR-Z zUTgWr3;lM(=k`6@?6!W($HfSTh1Kqjmw&z8yhbZ-cz)f*Ywsq!2cjN;t3RiycZP#{ zdk$XxaCMurJGgLID=#(5^NX(ZLF`^;sf}gBfp?-MpB???-NoIo#m{gzp&Adevp9Xz z*jQ>ey1iIxf%HbHh3J+v`qGnD_}BJH>0MIuXMdk3B^BT(wcyV&XVFi|UpV@boHO@1 z|M?Rs8T8v~^yU3--akh#?Rz)>pY0{<(S1@!&Gb*7MnBDL@7mejc6V^~un!-2=IwGvavdqWw>G-zV&`#v zv$u=$ZFg;N-L11nXrtSbpK)6^&mQ98q`TF^_}pfF*SmI`HPrU0?c1uibo1uT_`5f5 zYMUNE`R8=>o9I}Vy-u?so594P~_%FNuearti)#5)+)jWLg zKTrLSUH|i`7v1gd>btt2H}%l_cZdBs`9F95IT4SOwEaJHF{kL+Ur|l#Eyd&h)oXf7 zcNTBbKs$1i<8hM<=qGAslD`EZ=-aNjPjnmOt7b#A`zj@MMC$bMqZhoT$4UvQw|hLv zoX!ab5SUhF{CDQDT`RXZwp{vHVeGKLao*JjHe2%UGzXt~cYN#LkGFn3QRuKbzCUYx4%1l{>_`DC0kA#U)UKsPKEW_+3D=DL)>Xm znW#rJR!Y@l;Po&2!V2yoTAal~G4<)sg07ytLa|JJ~NYvBK74FnwNv%+jS z7`*EyWY%-*sY)t9l_-VVtt?pj?oQS|Y#7jjL>@FcA<^X2JwdoT?U zpM>q%8L4ZCj&K2#40-ivS*$rXRlV^_;Nvozq)I|1xsqNlvh(P> zi{ImzeXoYa&4L7Wb&*?sLM;8BeWO2#e#j>*EboEa>RUgeoA5{z| zyKZm3UYru();(U#N)DX~0J)6ao$XPF()ZM*QC47~VE*eN@RH6dvZH~Gz7_0sA_;9r zGGu_u5|}&9e2VM_HT-5W`fWdkq0)W>Ve?%KQ1k!bF-&R^?XnihjOsnU z>b11uwZ7Ekat(gM%ID;glEE!?x%D}$Pa%a`HBK@6f1Q8jY53!%^K?#cHgQ)nqJ7e4 z6Kqj^rjs7zpa1L4E$BBm^Py|OtN#020OsEAfc=76eWf}i_3)$_zVc+rWwhsM&o$J? zAB$59oUuMTF+P8D3i`iL+v!1%^W#eg!D&Fa+QlYae)a}~vG~DwF*RsDzy|inbv@xe zM{1E_!`#3^>l*6)dTxZ*ba=otuxF+CJCbVQpwMLq??e)C%{zwXZg0^0&)p9oIX3Yw z4mbf>99DKb<~8%*53mc#K_39U%m1wh@aq&)HKy-wk)5|?a>1&ml;;zgo0;o1Tq1pz zd;d(lJ<8azh>WbREUWQvv(ruS%)N3JG#+K;Z9Fxpq)@u(5uGV75+keU|5#a=os zGC{?4s(NTy%{nmEdo9?r$zUBQ2YSJhfsn&a7Hu!KXRsRSu@u_j)tk6Z2`r3)Ml3}` zwdVSsa1Hm{ieJlH;o@Hl?~Maqbnpvq*4fJFe=%OM@WA>mo!fQp{{Hl55u|*xj7^#+ zMje2QCOS8Yi%xH;A0epEli4NKEdF+~;)Kq7XT|a4(Ws>Po#~|!$6iG&4BLPDrQxm8 zySuLJq?>yF9m8om$~D8P+=$j2q3>IWaofJm%q`J5*3a-FpLIui&8eTcnx-}TEpCD_ z#t#GTo%om*sBFg^yz()dqNsLlUSJION?q$x@^^$rroC`Yse|u*ez0WQ?JfnC8yi$}C=E$p^ozItXs?LK_MF~( zv6H@1e&53iV_)URs{VG|g3h(x4(5qnZw{O0pDp{aTh#q)-j49kj;@K}cA4K{jhK0u z@t_M=))>^a*A`r`19h%`S+H7j{Mp*<<*z#FH_iIuts-tY^`Gk07QFg6<{Gf<^^yK0 zi8j9O7j-)?#pmuZbur$gB2maoX#D>RjrKdk^;&-wIJSAgvA#|74y(nk_q)CHaE_&` zf@i*^!O~j5E_E*r{P>~`PmJ$0_i?JPihs)6;}(YC#nVBMXn{J4c;BXw5xu%fctwnMnaoDA>X`n{8` z5NrH@eFj}vy(n|dE~KD86B*IodWfYR(@_{VhI3`&5K4i(^Ksv3jl}Wq7j(8BqC_P> zvoryHTyjF!o&jO3!k4q}#7Iy%oXmXMR>E|)VcgHAl%!F_NUwF~s&Tun@caX2<4@bf z)^Qp)b)nyR4cex=AOYwsrSota*|SnaPFFT%r{@I5GHc=Ke0Uo1_5FG>H_B1JtI;SA z-R0}k^_nviMbluOil1R1S<+(*>X3}XV_*^5?&8KB_tJNY>br&Y$p5Z^WMr;^l>co5 zBT=7LGPL;f7Ut#${v`^*b}b{)~>QnFH zvYAflp8`LOw;Su-ID$Gj+o{d5-Y>{@-IZSbyW1x_Zubl(C@w`NX?nRbEsn08bWeOm zHRllRM@7p$<__%sckKkGiKt2G)D`euW@lA}|NXl3jKcICukx>G3c{uHV2zMUe~*4+ z(kmBvdf+FEa@%6h7h(5yiOUI+vyw~gK-!cnmPWg3zQ(XSEyl0rfy7&k>-%nYfgXOl zsjvn!s#07wRP@H83w;*-MQy_FeR7zVKuv*VzLnq3bek1nl85h#pTvNYvtqfgAggM9 zzpDgyD`Qocg4@$u=HG(y;9Si3!(5Kc(ij&b{NKrA!Z*xYHje1CU^bj%x|UnuPwng- zwC}t(75h2p5MJ`|4guc)aUOb>N7ogumm+4$jo9FMC@WW@$K`)>Xu?*BO4|P~Df0bZ zbXxVUl)aO6V6WnXU`2Zy#qmf_xg>4H-xfGzEaPhTsc{2qYe5U;`aHc~WT>#r=nB|f zbnV&GVCD((F-wY#f+H-m_R{J-ZgnUi$XlYC2-&l7!e}w;rhLcK&knd&(#)RxT9c)< zdkC<7`2xSoU<}dGK8@0#mbuEU+4`zkq?LJo#5WwepP9i)Hom4TAiEF?8>fL7t82>r z?@NtD%^4j#0F`YSeyD3&GwBGqa6iPN{aE}3o!))jjL+Y*>O8rWg6>bFw39U+J{tt{ zIlr~*5$Agk(dXpuA2*=b#E28aOQwH=8b)7|IR%|j_u7TsWAhYN$&XhaI??HAr=TK! zUNW5rUk1AtXgo(yfW=frayl1kY*p*3&&5JPF4HfLP1i*so%^K8?ev?3E=#6s&NAoY zS99fQYwc(+T@oh^r|W1!Um=s~WiDL0^~<~v>%9v+(i=x(x0n0wcv&;>nv#pxzCPMZ zx|B~f#UJ(*L>|Rrg+@LjGI`G`OvfCey&ogDY_C0sT%6VwKd>-CtzUj$GcSAyOc%Wn z!#rV^bTpUTPwuC<5Gw8Ez_s8y@V4)XDaJdt(-^$V_xq`v=x((N}0cG5jG z+LUG9a3WoDaN~6ey6DJuxrTX>O$x5Rogq%`*rzf&;4%h6*@tV z3LWK%C|rBOwCg`ei*{N*VQJE-A!0 z?WKXQ#LOfQb{X8WF+D1<^{Rck`e%DxyY4Z=;%Nt0$uL#RQ2~0)XG7Sg_ydbFe z5!nH8ME1fR{rS*F6?p%f&q}rcbr*c_ zO_AhK$A1o$Ls6U@IQr+%9KJ-%{?8rCzW5C2kulWYydZ9kv_??jL+^cAjoH!xF)MG? zcI#=rwZxE#FHhGcs4{=WPT#cLz|C@*W={T{qogPLxD!I>pFDVGyKo_KX^N+C74a!? zFi#N{Q-{ne7QU@GYjoPDqUFB#xP7dhU59~n_b&{x!rV=IXVw}sQ>Cn2C2NtTJ$lIq z+C6?bSbp*9m(ybvk&y-&rSrXSI&{_TQ@vnZNSLp08eB$NIPg z0AkInmH&O4{~su=x{9oR91Wlfj(<7fq$#JC>$Ox=nQpf4L(d6NHdB0#Yh-V&IQ=3C zJfZJ=%0BMWzQmRLKd6Z{@n3Fsz4>jqGd=e-8ixMW5#ESTL&3NGwfVE7knUpjc?Z`K zmOrk6-L2&0GG!uS-CE*KjTJcR40eN;O1i*qR5ZbNz&vH4J>ogWM~z74akF|w9UqqC2jrEH=QiN>!IFWL8|BUylz?eu%h`dE(mN`FN>CWWC0wdFGod+78K-nS;+_+q7sr!tu-cSDvSvPbui{yDcY(n`ru_Ik z1r>NV++sg$p1F({(;p@g7v0bFQJuZT)kUuyXw{!m@}?!aB6-f!qhVrUlfn%-MWl2S;irq zf&mf*o&4wKb;-LVMnCHJLjnpIYORfgIYMhp+#`s|d6cLde$1UR%p>ek>YJx`?SQTG zs0eQ1$vfMCa6X>4Mq}`P`Mu5ciA{r)8&EUDt_2`sY{Qf`NUs==_>pw`=#eqcl@E^f zX8Xj>8(-~-zkRIzMT^N+47qVW>D11n*2JN`FS^JcEyNM8l_8j8VP{=4z)-u}C0yOb z-aE=m_-|tPvg{PEFVKOP4f`twO^15Yu+lIg%m-a}{t$9dl)=3eoD8mNR6hisw z`Zo^V1ve=L0YSjc?}ylx*h=i%*kDQ!5KIYttMSd`jD+ADdno}%eapPxH4>bhSIEU_ z)(q(EeL+@de3$>D7>QDv1^%(_%G}d|rMalnD`p!oFn-dQHk1Sm5dFp2JN8Jse$eM> z4o}cX;Q7MyOisPEBCkPS+CsHDzkXSDdbwEIeaHJT#DI3>)K(5NW|QxT^5zF_$HRi9 zUKeNnFxt?C^BWy3=mB*{zS;dUQks5c{QDwC#pOANmxApaCC4n~_*OqADQ$Y`Q=J_0 zVdMcdMG!n+%vCo=p6osR1j!$H7@!daxmaZ0+f0-75$mIo!~*<`PEz0Yn@O{rlbw2) znDt27$)FCAL)IcLdaG4CbT;#3r^hL%W(eJHcA?|r;DkmcVf27;Fr}dMF>wJth;qc{ zLqAm_4F(cp&+$4o5kIJdBFSNKR$5>qHWt8pz3#_xqLX5Q{EkP&L{v2yjpWq7UTTB) z;4yLG_^MbGimuiLjELL=VCy zir)E%tDBjKwb5Myr|0A<9UBbfzqY};j@4JlOEgo7Hs)CnMN?H9yh<1 z;3z5s?!jG+7ews#GNVYz&_NmA@sgwIY}yl46-<%g+_Baf?43?=x(|sh91}r2i@tZa zk{HHnzn3|74Qrtr{)TpW>}sUi1!?v0oZb_7`HbM#dLrJ5PVIT|o!Dq44bP>cmTy*i zT!CiDxwJ4nj`r<3JbP>Aey-3S)Kh9U(3(sl47MK>XLKXE*zp}ACzJ@Crl9jW_72rf zMx83$3_$iMEoU%gK9%ftVakgU)<_t8qadNH4^b%J`KKwJXcS=2pf-{v9d^G_H*#*n3m5%eB)I7q* zdpogLR8=?1ziX7$Q|kI&pJVbXqA&J_;Ps}_Hpb_@pV$_F_fER8FygWPmOO0A*(YsU zopCUm1@^CngQazq$8J8q7x@SLLO17#$a@{CFxpESHP<5PpC1IE3?^kfq0dxYdg5oF zdadULF|mj8PxpIw)|CEW2aZ~({KsByb+M4{)vypqqu@G4pJ6)`6Us|FsuU!K*pt!vCs>DUub zc+ZZy!8Ag4fVd1^4UHbHYNLJ*_qqa!qcmq8wuPy}Cl*c?QxzbrqoT!|o4)P1k_=Cc{-dO1qu#$;4z zSnR>$x_R=w2?rs-XE>iuNVf8ZHF~#l3LO#M56Hg1Nk1|3ZgY9cKJ(=Vr51M{5T&gdDVIVc|`18Au z@utaN{c~16zK_dpnb6s15)@*|nrD`eHydjCok$YKujwbe7iKJIJ6-ByM{W(X9y+=d z*uQ1)GKGv-ag@CP#7s!P?7bm)Jfy)Vo-B^3XP;x6Ncen|E~FM=22nWK1=1|iQ7iuR z$6uk7GE;MCL>6 zG2ONfj6YM~*MXmb3 z!hVWMkR-%oxYcuzG&-D2;yWZO6{V4?_sPE(wy{1( zP-rHIyYQtU@OzhknO;cD{b4^^wp_&2qw!W=hq`$qf_0AXNYo zagLINnC@rRYsqlArf_ZwO(Z#;pq$=|=F89o2z`9aLYy_O*s;+2st}5Yyx7U(K=3cs zHn_OI2`(1C>_(0y6U4eRL-vKdAz7&#NIV0Y&m3kP}n@Dn-U995Ql6 zst{B>_pSwd_230L?mSk9lTQd!NgM7rzD4DGd+3Km>>oIshqS7Z_iqxlcnll( z;MhrmR?VV?^B#f0Y8i+2cu#$Qw@7)Nfmv6r)1V>uBVAqj6TI*a3{=DP1rX4!D3s!|^8XIa%Xv>`VI+W6x=c0L5hFYcOV!j$XV+BRtR~avxwIe&kZyc2Qnmz^3xqK83^n} zI6RXvPr{V^-N~HlL1V;8e0MiYIDWPA@F4CPGT6;Dc)}v*8_u-uy#M6EgM~GY3-;}k zmpZ%X`$6sHFS4Jg;5f1_gI3!%s(8MzSFxTNsTn-KL%Q#Skm21plH5?(WT4m{PyO;j z3!g-)x|c%o-jY=mCZL~0+6+jqBHTxz)*bCL(fnj&ng>j+M8;gZ^k>1Ll}6NK3;C*T zslk!~-;cReRiqI_X@9*eM)K?>GvY%7X{g(0IbtLcLnS>xHi7T^FrJMT3rOHor=VCe zhq}1V#z_b4C0MD2ms|#LppoC7L3Ijm2FhT8tx7_e#-juX;ec4hVvx6XJj}DtyH@m8 z2lw}a8@{J8z2QV1Bnvy3bJ%bmqoN)2yHerJGj_bIFW zh^URaxtZF*5T_VW)y3Fjl>63g;#Rtd3KwinK!<)kQh*fV`Z0-I*eBU@e#)y1O z%Wa`tP%+Yy(h7&qk=cB54EoX{mlXUcoPMFR05XuEon?=H7W+ba6#eFvy_Lz}@q zMl@O2K)8=M)a?K#;DnOCO}hFI6J`tnIKftZK_b@xZp-lV9;4jA%vcCFm`PBR zuR0n~N`Ql8t`pGZSAi05@NdD3_|s!CPwDnz5?hvz`c?^H^KUuvKsTO0@C!sP{c)Ug z?$d52YhsBc?8Fd}6h8C!Q_AGRFbH~~D=-zg`&HbPRq+}>1(AZ&8bn_CCcTe;A8Bu{ zmOQB4mM`$A!6GP`H2Pj~o|K%G!4c(_2fIYq_=D;fre*C`xNJ;wNz83slmUrpOWTen z4gN9@fW{1ODU`Io@RE)Qh)f~f$ZAS4K(5s5D;|#x9`u>P{-rC*qM@M&M@QyKILtZ0 zhiBoUZYtXCsd_t+ZWJ+f!^`GXVy}ql=vFYn?{BvGRQ0I4pcBrqi9kJpP%&k;#3UIi z;166cLudPSVBit7mv=5+i++&@Gu$L`1&WFPU;$ZPm^SDm92W8P-%^h7(s``))a_Fk zuLVD@|2#!E<6%n8yjvjv4cAsuz`LrEj_%{(@1xw8arBaB%4M1jHbjodG_b>Lt*%(J z$@6C3l;3$>wkY|lli$Hx*9IK}QdY{K!m;{|cJ$DF&sbC1ETGI21{4xdgJy*Kp!9+Y+`K46WYl9GgtX_h z&+HsW2LX?nIET9U#i+!TUaMLrQHb}%e!Gl)+_p zeqU!K5hu1vF-a15@|R!-&YBGb^;4q`z#c?g2LF!Z4^P)yA~SC!obv4vop+(J(_53O7WbWJnU-r`+qvnn*K^^jE?e3s-9_8i*3b(WjDE>MF#UQBkIuP8D2a% zs^6;$JRuEb)10&*uLAH6$Ex=R*k5W=4v4c9$NJY>Vlep{5Ki1lhgd-0?#D>baV`x_ zCri-iC7=&(LXFBWIkBD0Z$!s!1m3Pq$EtZnN$GNx)BYtp0)eZ0LyvP8-UC|Fc`RD zgjhkSyXJDN4C|qO+aZINO;o`uGs7C_`L>XCu=YdJ-W|SQw+U!o>mOrI`agWQ#zpDe z?}Qca@z0`2b(`~uNp1RdJ2S3|lv+&`z%p`V*(=3mwz^4VfCmpv?>pNaHFg@xwR(>& zt@}WAnJE{Qut6m#L=%cBFAatsBR%7D(bzOF=6??6-Tyh$G$r#|lKx5qE*(RGM-0Ll zGwyFf*X8R5Ai@ zVTJnoGbRu%wHtBMh+*rG!_64=i5Rr+$@ho%tQ;ihOqa8qG^gy>+=Hu^+icuCHhpVf zWLmi_Z@+`TdBT-!bLnR#+=As{(-Ef$@*D8s<1={^t08yQ(HJ4-TY%VbrW<)nl820i zu~8$$5qTsz30qQ06CopB^aBkD1926?9}ovbG<{$}N9L<8ghp6tr25k}7h8WkPJlf( zEHaxdK%xrhzz86jqItd!DCxvAOw9*$^R{sMs z=pM^3^0wZy`T^}$OZ^S?GuB06htKVx9_Zeu7V`GK@NUdirDrp*rR)4vyHxaZtOq{y zik){-Xe^6JC!j98pn-RHmwwV@chr5hh~x`Z58;w(3XcOtEHeuK09QWcA9N0KT77{e zdJIR1Z+|A}JPWTzk`YIg?U0yMe|#x6etE-v;!4hty^cUk9X0#X|D0cpCMKOAE8c-r zMWv@R@r{HUNuKjENTXTKVjnxN&t+;MJ}H_2Z|8I+rIJ#yw&U0o(m(+veBf@BIHC6G zcyDfL1Tbuo=41mpnx_F8WQ5vpH(Wk(hiK(Jl+Y{wNv`#RnPQs2)k-r%B#u`j8ZPY{hW+>9tCAu(d76Z59Ejk^~5 zE8E7KKH2x#(OGo=SvhGu%d}^+OkyS+YL2xfucYP_I$i zsuaQouOHOI&8*kE^rJ=#=pTg9!Nm1CGkCUn`v+mOJ$c6eBpMxm%CK=clNw3zkIGF^s%Nzii8<#Brq>a>fn|s z^nD)@m?8WohKWaS092Y+^Xunwt)cFpKmz?O;3M|WzU>b0Z`V#HYw!lNKsP!wxtE?W zT(BwTzT7Kw@`CXnaQ{ORPc*LJO!xls%q9IeHWKey;TBj!h#hl=Y^)c;^1 zWt^*%L@%3Ej>_`w$O~O-+NeJY90EP8Q8tdxVt{85mmxB#sVD}WwAdMxG2ASPG?9%k zP%uPQK=S?tgi=Xg+?m@MEG}Il98>8})vm^aRtD`O1o0F7pKjeOSMCYDyJ#Aog68qV z42{Ffp7_D`&m1eaA;A|@U$5`ZLw-*12;-Dbgs-6}F)tzG|48SmV9K++ukR%jdcU2^ zd$#rzMFL2qEy&C!yJ}XbW8fbOxI0@-tfSD4Z7P57I(Q&}9>p%+q&da04gZM%7 zvJ}4z=g|s6=aSGsb#tX>>-?J>t}A1j)i6~DL=Njk_kM?Ol}~uwr@u&=Z{6O8p_hd{ zG5NTP@ScwH?w?uj=~KIyYQm`N*kLu{4_=9ICp=hL!5j2-FI(QB*GD1?qs@c`d7gn# z0K#2%YHU^aU#Ie{oa^u@ulIKDxl;BCIsb~O4!uL^273O`Wl%v5W!^JK&?;y?w;(hpb>qks3)=O2#+}N=eQ`tA|FW= zxuaRV4AKXbdr+}yMx7`#?w9s;mIKn$zSMUyGm*`bEAT(fpfCLEafqb|VhtHebSi?_ zqY5*ts;&}|PHqIs-`n5XSxN8;29o!d4nqMJQ+i^uhFcW>g`O7#f9?1>nNLC9sAumV z+7wyaQA72qwRcv*{jN38J+64Xn2o+^6vS75}DPX#obdEr(xy+>_8O z`?8qSnw;5lzv7WE{OeYEcJ zUC{|abHspa%tk?(W&?RD86<`+Tg!tbxYQML)jJ8MkQ)%^4s^z$q%Y$Rc2^Lpbdx$( zx1m6_70wZKaLGS*4%>Hun%!RrL58zs+)?YY(!*lPko8`#({+O-28K$$ZaxagmXRIa zUKAImt>7BDsi1M4DttBJRQs_h#;C&6?Ogc9{xIJ?DaVOu;i_%rDWDt9x$fWa)Nsz3 zjGmAXYUuTV4h5_>{B7Wx6DAK)QUHoVHsCsuUlCOA(dYa%J=0V;YB(8741IIQ^tchBq7kBB2}j%znA5pVn! z8E<4N{6hV0{_K9Obwu{5?b92FtdWC9_&ni=VXW=vPo!!cjt=R@`}x{Q z^H?n!nC>gSfRJG7C#=s1290g4Sej`_I~@{I(A=@4!d)T(rSBk~Sdf77f&+R~vIH>v zhma+~EnoU+B=Mp5i}eo!iu$SR=C?1Uvc<3r9z`CrGP!Uz*D8IyYZeYmXyqOOdNG2y ze6hHW7z>0m%JObtD!e&X)Q>CeV<8BziR-SS)D+hXg7ti%0$ngZ#%D`#SzR$x9Pv;! zYwP2`LA%=1W!Y;str?jAa9N`d``Z>mQI)>WB4S&);qHv8>dHj_nFMo1JBg|WXXD6B@wX0apB2*SmeLJ*>F|v$tqBxT%c(oG)`E16;w?t`+B1{9^YV~`Jh3fmfBM0Uk z1E#Hv%+QphA>i%W!m^NW-{WszGOCk=?KKmo0Uzk5Xe4oO*#+FGvp(;neX|$ zY<9B!LBAUITLi5=lISv-4~pQwUB^YVAq5@86IRw>in|3-IiK{hXIW{PPkpy3AQR1- ztmnUML}Fa`!ato8&|MOdBw5i|@=C~&pMuv@1@t8>k=P*BoyHIAkUCcNfdb0q7!J6W zMbPgdM*{}7P{kEtc#pGyaF|-MiDe99^!Ou8?P#dhECb#y8eR1QTo>pwHTgVN8F#nr z4k1-#(GE&g)&<4oM>e$SM~)P*{F{xHe((JeaG(G3gLSJ)edQ6LYoy#CU$=2|OuxGg z7bbKt2llr)-6HVAMhG7%M#xwWjpdDN#!%nZe-PS}8O_w6NvXENSn3CUJy!Fdos{5FDnd={OM2{OX=?3#l^C7RiW!$>{uyw)xxYX-xdDJ-3G2C5< zE=?K5YJ)DK6AUVc*KDzfX*&@=hflitQyK}~mI-XyEqQ(ex=C89l)A{q)}>?Gd)WVm~P^*LoHb$)ag zjWp&aJKlEGCjXW7L-N_Nb+7AwtX+QAC|cRaIuRGHO-LOv^}J}WB552Lrf=N5iJsk|_uF?A$>0M+S!!1~lY4~yK-k+uCR zsn<4pNc_tjDMV@2NYV{_BB}ZnJTPaT*xs@0Vzkh-@(>zV9g=%JW$-U;p=%NJ-=azX zAW9<<`6r(G6IGF1zn0Z#D%9ZZrtz{P+bL*dp$m!R_csi+as%acZzN)y;b)Z}l_@ zw23{E`r+S6!T)) z7)f$*Hm}$Pg5OMff5V+w{416PQxtCDpt!!!qRdv9jDSwR9y8EzN4082j|Z$VwE2(; zC57-dnKU?kD))RZ(>#d*)Q=`mh|USO>ypH#FR-=Nqo>Cfu?&^%Nb3V};ZfDc+V1?! zjQTj=QZA~Ny6`eVZ+tL$<$`zBkM+7!$%%jl0f=Nxc#D`N;_A>Z^97e)j>&xq4Dwa!6lm(sLPE_({#OUIKaHHe>pM;Eh- zZg!Y#9{b(Fa~-eAo%P=K-L5Nx?FG_1AlSB2+9-)4DeU~Jw7GqWfJD=d-~#sY_@%kcV-cDh71*Yo|zxq-ary5V-F4%1jRvWI3U zZVfD}Fgv_FHfm4d>s?NZ%kV4KlLQA>3iiI3ej4G^o#J)9$^5<5bKYChjZBAa&qB-a z!<~!>FS3w+b@1r0Rx;t|DO__#sv!fB6>eY>M|f60Z^Ey@jm( zT4CQ55??J4iIyp;nwLDI)A*QkBzY)f)9VQ{VEV0&&rAaIr_i4)I1) zuRTzmyxiLn#VdEmZSSLFdfQBF3m7B#bfpv}=BR=Mg(63IrqB@{zK}7Z0_Ey6hBB7( zC$0ed<7deElu1I?*R$Cakri@nsl*05zSyz=nSpwAlj^)#)a{p*WhnwhK-q@fD0Nv# zWz%n6jG@*dw=D)ibEd?c91%;}G1O4dIzlcnn)9W=j=R`wdSXKon$N(c%8ZIyi>f81 z=Y?_>I^j-F{bpxbYW|KcFrQc;@kinhdadXLDe74%TI`*9ZyWC|N^fFZ9_Gz2d{QGn zTV>gf5|IFESGkhoeRLAh@+DbctSf?0moEnO3gp^A~<9GQgtoU|YSiZPr_tE%lEc zU%$XlugsarvlF~hGhYyP9FR{JrVRWdXk=fzS$sd~>U6saWXQSxHUw-@hjKrWwXm&W zn>c@iqX{eT;)l|JgK9t)AwYfo`P^ z{%|~_2%R0FAx3^}%8ShCN|?cV1M4?J`(AF;4!gU!15-A!^KtD_r_aRTx=+M!Q8kvC z{%r|}Z1JjcA;A}-4Y@%{ZtsF+NM^zN-18U=4*d!=X@{m?0ty$Grk!Lq=HYX~qz!0Eq-9 z;z)Kl+XN|+%Pon(VE*~P04S5-PfipH-uVUXbOBTV*-wnEpx=(allA%Xs+*gUt5kj;g%|_fi2%ZwM5E1MvfaZ@qJ+#mhEnoXr zO;nfs?RmLy4EHFZx&|Hlq>C?WTfUvM{3d>Z$Q!w5p=L^@)+GC`Rp~xtDIO{;2(J+;;Vc zQPF;uNhPNo%N#~kvA&&cj(8iJXcE3!_;nBcd1?NUHZ&mL(5q=+UAl2YihC#XCzD`- zDH)9-3vClga&kU`5zvUjc|j|&^?+y0d!Osd{yrTU5lE_W`((g~ckcdCNCr65T_<

    e!V1i{17j-lU`^GU5w?WRNR5&N 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

    CZ40ZG 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

    9Kr9!ty8Ss%B1(B!%JTn??uvN@ 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 z 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


    kx|XFL3(UQY5yC?2Yx5z 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%0D%u`8f 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

    =57W)YrTF)b@}v&C85KHY|_e2sM;n_>R5V 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%0DZV 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%0Amcx$E{%F`bE89xm(LyY2kp@2QY$_ptP4V~}ss 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

    %MXX+( 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⩔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 z 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⩔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 literal 2123599 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%0Dcxsc{B(0NEvw;1u~_AW z;bH!A=UZ-@8nN%lKz`=kX)XYTUy@fIm6k1Gk)k}LjUx(ffjDZWpW$(w^nK6`0C6!! z^1&ay6FpV?#MUnpz*cSK@r~@P60U#(DO5mu-5h$a=6<%m+bu$GwH!9yYo!-s`LtlL zH68^G=)Yb$1NPpSS~x6^qepuApwnwc)Jg-u9Br%=RyzBB2SU{Xv!hufAyZlG?8~Kd z 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

    c>+?L8}0?1y$&0^saS_sx&}!9bBFNJA3i#^ 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

    -e6cD8cS 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νaIfd-j^Ady_FDt{w;OGH)2y>m;L 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%0AE&wuBO?F%kAHjd!U9{Ym#~bC7sr}; zBp$)OOzD^$PMZ~Ajhz`1)f9O^p3s|T!Nf>POJw%@iX%~byzPC{sStK~Q2SA%G-cTW zo?6-iTC<0Q`8w6*|LAWeY6+$Hy;&wPBhjRsWcT9gH=RGgin;IZ(xP?{LHtb$ah84}=x@~t)$(66EHIaWZiWZ(M;2}hsO!%_@iUC~i zlo6gb+MW0V_dz7z$EBsheKiVnbl(Yqnxnh|7mCelyrVNLWa+o^FKHxfG7OTe`&7B8?-?+D?-8j5G+z{)0EX0aF`tfAr+w+XQQ$v^Rcc zZ$7s++}A!Rpl*NU!>y72{E}O8FTo6^_(HYEak_aR7kaP58SC`lqQ&+@)mn$I%`3bf zyX`CoBTk4TBHJk&9-%4zT7$}JyJp3Uh!-Oxr{7A>Z2j*+@;oq|1e1> z96I)B;hejf0l7&4868%85JhSu`LQ|6_P$ zN-%+98pzlbJ`WY9p{CvAEdii`CiGTIq{zH~y-&=yi$dNb&h(;CMEwEZo8x5Pu@zp9 zn&Z)Q-#uN`MOlS2uaRY5O9ZF!RBG%oII`Rk?@DS(h~>JIuI_9elw@1=I z)Yoyz5ao4z0=Sl|@Sg(j={Oi-AJV$&1IJ{06O8PIAm_qUTsl0#1w=`*MIQ@WPjJ^^ z)zlSWWmk#=o|;fZX%*imEeNl%LU&lk%(hO1c(>NR)_f`awrkoU{Gwg@{hV7 zN*u5NzxJ=$%D;HYBM4VheodJtCeBnhUr*Sg@)d9^nH{M;Aa8qq!Z z%&4*{((0$V8WE5tD$&uVm2fmgTJUBM#(vN_O6c6x%u8kH-o1dAdxzpN192xDs}Z=W zCbGm8sm%Y+afHc{Ed)0ci|p{c+F4!~rk$(JJZktd)!6PVx_OCz_!3(yk}lJ8PAlSd z^;pRMUetgBS$2n;R4`P`dP(#%UTXM`1TA&eazM_$wn7!M zmEP>dZ3bac&^0$~d}hk%&i0h5b0Hpdsa#!pAi|o?rc?DIsYx?A+lz8UjCAsbV zt(au)%?XWqHicBVGniTM@NQ@F0bo=dN21H-=ABH9@s3z}3uhpsv{=~a(Ww#`^z1Mj zX=OIgqLqVq^#{VY6UtuISe#hwX%P&}pDh%B$yV3|{<=MjU|cC?oT8_buWp6 zJ$VZeQMJ^A=wB2AoA>={wXH+hU`dm*;7kzrSjpt{*dQ7d2rg@ z@n8%AG@RUX;EAJE3iJBPU{!Mk=@Q9>!fM}NZ>~2s4%k>-`swYg5*7jFTMa*2P(bti z=q9y3;ewEh*9D&xuysvpDB*jc>-MnUi^h$uF5yeFPq@8_<>|_-&;UVjLe&U&H)sU` z-X*4U!EjtI-o{q1qZ;r>c!-9?wkd<$-U+G>J@*(~O#Wd(>_|Bq>7{jB!PeX<@=Y9U z5INzrCsj{zx&XGmRw+$yT#{$QhY@yRmUF%t4HPPyb8GN$`$)yB>_Y3TbGJFJV_%`{ zWi2k+xPSr75bxEDUbMMcUJ!M!gJ`P zuHjBmOt`V(UcZbbvC6MwZ#MnjQ7EZf>m>w_F#XNuD&*|lB#RGx&PP;rSlcL$%^Xyo zrHg;49_vcGvO}}$E6YjWAtXQX9q_UR(#%Bx)3{p8P>O|{L1A}~OpS(IZ7fyT(4a~# zNLhXQDVoV>d3R5!@ud2xeS;}$PUud<4@mSaZEU~Bj61onKL*A1BrwS|#h_tRNB#&I z^k~#0t&yeC8`yW}-E(n~_;9ZbCmtJb{I!>qR8#*kjY0&{@_Ve8#Iej??@i;z3uSgU zFD=LGS8Otfw%0yyPP`K0p4lZ-y6AOnl~#<~wmy$@Dko7p&2oSG`b1184ngqGrYL+U zIrHgS7epqdVrYNv=ovP=L}|D2pW@SDvy$F-hPPh=WY-DQnw4%dR)g1jd@5)him8t7 zdA_SA%6<-i^jN~ZbacV(_d(zQby8`yGaZx67e-Co~$^0T7zn(ysGQ&50Uadhp9A5r3q|G*P07cG-vct1&vt^Rd`;0>#dB>Dz~)lP@y9zc0d z=Vc&KJPoaSEXKgLUDx+W=jPe6sQP!MmbB(W&nJW?ZmZM_Fg#3V zZ_WrA&_jJVtz_OTK8f(YiclR(M$ML^h*PT*NiHet4cgfb+iZLdsWI#wO1$l^GZCam z8t(Un`Ok6Lv0M2U+6hR5>d&*S%j^$iPkBY;cN1M%!->L6S%76#@~uqI$KbQ|kgLEx zapjR3>l#=63j^((_gUad>p)sf_r)tOy@SgtokQo}YPf#!aHB=3v<1+NZRf>AT$j+` zeQkZG(`>fDLrI~tPj;TU8EQi|*r|}QrbpG@ycd=XDbxS`lmjljOs8#Zacj)cb&vi% zq<$_$3UR2x^&^nl*K(EXY*d~LXRB7Q@!2+qKKbvMTVFIYr!&a$a_)AhayfGI!6vm% z(n`^uW3~H~Etm&=c=^DU0K?NfBi@8T`S4Fwd34f~5A5YpDPkV@UV3sw0qCKbj=L4< zxVPo#WSyKNJK3AtkCrDER7^_wo3+skJSiz@HvIg&?E;zL@!!kgQcMJKu(u|;^p<98 zPPG;n@in;MVPdszH1~fhjL(!7%P`E1f0vFFpCjElXrfscBjc zqvT2Qg5LB_@I9$t-)csOSt))6S+xw@G0xwcg>2v5#!09F)q0m)=GRUD$yY(4SkN8w z368(h#B6KtLAq#)lwar?ar<61_!cmS{wEHYKpSASSB9Fb$8zb z@yCf>V}3Q8Q{o~)n6Nn}Re|wQ(>U+YpO^YbQ)(uq%*uni5aBK)%m20TZ6_&LZlu2r zw&X+Q>zoa}*k2r&jhgAOoADTsD+YgXdCk%@#jaCddIu&%;q5iQW^~Ibxlj9xX9mXV z37%*$-toh7+?~h$HBWdSpR`!dI@foTgvkfg&-c0lw#UD|YIwUEWX92;&fM~*auFy_ zA&0hC^+{_cS97MnI#yC&(UfxK+@@E1Wmv4CV1+3CMDY>w-3WlZodL17fj$zlHy6bl@ zK*wueqhdwBev%mi+k>rJcdhY5*@8I;t)d3|Eyb*~j-7}*&Ag~%8K7P8$?7+N-S6f% z`d_Lx?()ri<)>Bo^~2;~KZGgd{L9RBrvuJah} zJN!K^P~*;HnK5aisd%@&X^tj*<;}8uT2GtpP;d3Wc9FPJ|H;7ALiNY5Cjn>1J($|+ zpl_jzn|*3~6L(DfziVti&9en&){Phs zuD{zp)I%uEDD`ad2hmL8fUlE0?a0c7L7bn|67O@DK5BVXZbpMj2e@~H5*_K8=|BSO z9`D=HCk^*AQJ7-WeqL&OgzQ;h-J6^rNtP$8M`In_Bj7HdCV%UeJ=UPF*4y$w0?h-6 z1QAu*g*{YOm)b^3_ttPn?mgJ!jK9-NvDe2!;-+wUQ>IKdZzmMiDoKV=N5H#B1&GX+V zph4;~u<4q$XW^ytQ;zH`=u05Na4}bF4*#q2A1(a8(4xC^sCW^ToQ`EpF&R{i^@Vh z>npV3`nTIU#8DHk&Ozj(u|V4e;IuVS-yZ+wANCB^1C2EE79W*v?E?OLXdk*HGdu_- z?NmfN5A%iMLblze_=f+@xy)bZ(_SHUya$_mmOCHwS*0soMrv*v;shmdK@gq}*liAg zN_8%SeQUh#cFZW;`)4{;yDWN3 zffL6D0{J~`X^QCY_LA&+0(%qEsGf{Kyz@!R*?Zct=>uE0#i{K)S@ZaAo$0l(_tRV1 zN`Y|9bHWXfs^wtwbmW0A7W|Vj>fEmsI2i`N^4u*h%oRM{?!F-Gaos^)7I?P_2A36C zKh4^9R_2sdt4J8B^U+@q3-IMo^S>%n(gmFgz$-L&Q!*WgQ$s-bTzysIW^1HiLII5Z zui$V|3!2JUL2?606)&YmM}MRepO&K(G@u8=Ow!SBr_M~X@9r;yQ9+X%?EO&neJt&ziP^48(!SGnO{ zXuBj@f&B+rBr=vCIZGl~LtJc7n`1*a$o*ITp1f^jnj#nxM)v6<3X=mpx|75g62PkD zZ)Bj&skH=?h@GvZhbj2*)`?m(S>v-fvobbu$(roT{DW_7{0)*E35EafxDYi5mg!qfxm+fn0{x>vbS>)+BdH~o zg(wNXAP?WO(PY?3f$rt{Kr?RIGofejG`eHv;v+ukQ9$qA zw)N*miNav()o6RTQ8%&e*mi2pFuYhPt#j7Rs&OS<&8jhW?S1D3wdMk8h72DJD~{7o z&aagRpSFplTYGII(WhJrn|?B0|65(eIT$>%*j}K&Q3GAaf*>;M7r$VTi<{)n2gL?d zynZu{!%4w&_RBs4%aHZo`3DgDT(=(8XnMV=ePVnx`1)&s0yah_zLJrC*}?~MnP6Rz z*Gui8IrlEy0dm?wN4h$=if(4(x&m2-&C@!&(`aN~$0PB3r{CnGK0n^vTy;oH z2890`ga<;xs*<;|;)d3l>+Jkc?l1g?pG@c$hn{05%~zqHVtJxYXx7!%&pP>Tef3i# z7Q%>jZ(Es$WP!$sa0Y-f5Wcysd@Z%-O(O;3i6z-xHgtikUN5JlmwzI8fY z>lP3>Lb6@>PRMBc$^G7MK{D&x_Oyn&Yv0N6sPkHQ;qZEt=-Ln=OTkvo4ufgcHEVYd zI7fC4DLfvIZ4M@2ci?i$65rVZlfj3T6>j!mt6qhrNHPd;nW6Bu=+dUxI4C_RoO;CD$!6`7;4JgIzfW z``?z-40OCic>W&Y(Z~ZQIeW`rQ?^?J3^@hx+d9*nje+OsFOTc7bk@EC!vNnfd(ikj zYX*at2nk&%Op+%b8hsPwZXHGwotUBC$Qu{RV*At3gk)`|eGGuGYdj2c%yQXPcQ;f@ zNEDg5Hka=Iz7zJ3=03%qmc2==KK+d#ceJtRW)`qui|<=p^FpZ=l7+gEGbFdT?+p5T zX8Nv*RDMa?K*j})W^CNMi(&y+?mq*afn*?)2epR&HjyD+@o|Nc18>Mut|@-t`KRp? znLobo-Qn2EL}J^0zHsl+wmMu!zwRH-Lfnc}|smH|6wLD|-sfUY>l8Kz-V zpoBj0>zzWYmm0nsFi77>IU&EuI5tde`gtL_ z06)hm1+qgjG&wf6~1y6a~TP3x!sRc3^RR-I(7{bzva)O z%k*aaJTRH70z^N;EKz$YoOulPcCL7|pyGNGSqx0l!$Kh5#X+`r^Iw5n=(twQU=`>yU~ zeU-ES!ExoGWf6DKWSq1E*FJ9VS+8isvXj(QdyL_Ger`#dM@$DIq4Av2Q(~jokf7Eh zQ1A42>aEfIdroRg_r>UgC)p{8_wuv}nfEGkI~f2~Vzl^aV_uKBiwy3HVKD6{^_WcfW8@{e`_#xXZ8ub2` zr&!k82ovGDdfUG4TJX@&P3e-K3YQe9sDCn&FGi0;249_XgPIz4Wp(x{%2%G!&bd&&l3dn+UA3a7yAlZF zqyfzuDxYpSLsRjVDa;fJL6~s->tv)TZME?A^W9J%?yHq%PQ!~8Gs0jTOVF}|r^~x9 zQkdTJrGD-rxqg7mtHE}0D~#c1SkB^6z$<1O0WF=bB|wk}h2k{IBhz{Ef|PMBb?2I_ z??aH~C|6T4nB#K(8gKXql_}*1t}Tb1J+t5yHrDRqPRHsNCeU-5obp2T))cliboCex zB$No8>$?b|b9|xSf!nu%LRdb0x{{#_E5?^}hwTe z@d#>2RwuuQHJFIu;A}X1I__*?a!B#pPb6rjq>&9z6}l*DXQcJNquCoY3S4J4pNJ!n zLb55Xbx_0r;>+CinvhCYV8-ogA|lp%F#1XU?#c4AOyrgX`{@M7y0ze3jr(x&bUN_jcb}9Vv>{eTC!qF~FYCnPyM)odzA853`L>K!p`oVx{k5JzP(Ea<=UQ3dYA43~J*!}PAV z=Y(xP!3i6kuMHwWC$xLhc5LL-@=Bw(Za)XJ-@2lE2z7M)73* z+fRf&?U!2vR95vIzDKsuaUR4f1N)6TZH@=}angaKBuh%i;4iCSc`d~O_=7HW7d_-y_A=wynelz^Scm_JNm(Cia?$Jj8$cK;R{V{r0 z*bG3puO;%irXUq(GIfMf>kv2k0Y8;0rqGGO+8GuS5)|DoE#XGPsup!} zX+`t)1m=k?@X_=hIrsp9kI>wl2%GrErWpZ;8LgF=!;D;G`_TMy(Ke{-LiX#p9AQ5e0>N|5TfN(Gw195qwE_m7RBKqE~6&Z76(FS)&< zdN!MPk zc-4Y<{PzpIF^p6&^-yGSmtVw&gnjsQhDBU|8`5R!k*0@imnWDq#@1=Y{9Y6_OK+f|(R zmsw@D3pn+D!R*n(VDB>#g1xj;R7czOyvn(W({emRF^5Jdy1C_u^>?aox4_51`?YZS zR_oe>?0|y4R9sL;apXOi>d0*Qk5Z*t2QiF-Y)#;3AN?x3 z_n5+VxD8oNpL&l0JoFi^0gLeQTEK)dkUNp1V*ojqQH_3^zw$;GEF z$Q}jo>xvILQ*9QIF6rF{A<_CkF>1m{z_I|9&?^Z}OsIR~J=K37k){B@JXS9lEpC+&;^Fa%^*2(Ci$X_q7n|v+RKDclxy#Oe1e(n9bjl<=4Ej~T&zMeD%m=GQb zB;1 zBlHIUMWv=~u&8j8y4Q`Ym}^*}DjX)g=%Uzv_*-luF+32HQ6tHm@{(MhZaB5+Px$8I z#kn0witAVyZKis!A-6x~Mg1!0-4qn;csCq5(quEq%S;T8WzgD9eLnyEkgYOnA@u14 z!O+9O1W-GtPS(mD=5zH+Lt_B|MG!<;(KwJ^nWVH;9BAK;#vVV7Gwh%=wZ>;-{lEyZJ9uUow8*r7%=@ z^zM)?L(s*x|Qpi1;*fazEVE6_II<3 zEGyZS1lH;4D)NCRlE{C)e(zlt@0OB}>q9CrK4$()_2wOYRzYmLkH05}DELI-`o;ru zodk^og*xzEHjdI$U~~%pM#<45D7`ok4wOZ<2(TXN*9iG!ZP%3^zXlT=_mrh1pYmqV zKBP^F9FUO?^Rd;xm9j^q53nei!nKk|cCivhh`^WuapdwU|I^XjyZACthAT*KR!Uiz%NAYR$}xcCxkoKa23zI z9a0Pj53YcpUn6aoiqoW7(}P*qyU-CKO-DQgNTbIa!OL zR9w55UsFNx)iw(2ZCN!DA!JAIO6jsXsx!{z+7!db?FOJJFnq{!(VO1b&7$xvgalpl~ik@3W5) zIH4yxHAc}2hR-t+rV-Dbs9z>?hNan1v{9X2d};na0JT6$zfeobq-W~lW57~bpb>kH z#xb&72Q1t;v`?Ttj+ekD!&bdO#x-D*b&HZcSFfe#%| zxkU6(fvn~TBrj<>lYu?sl=f(6OhY4lSHDVNZp%Ves2!EWkE1&2tNrKe zhX~n+*tH+}?7v8@@}Z;BM2nMIFb)%mf??dx`#K)0ipVmcHD5-JR=+46Tc)f))}Puj zTW)l~W--Elr;ilob(`l`FL2q?xuz9B>~dW8hL{BGXyO%2>ga2voke5+J_O@vWbaEw z2W9_@zPVdXZ~tCwCZ1_OB(~t>r0TygVQ1s?8n%VyHpGsBH0%%cgwr@fd|0BQejvU7 z)u+~#zvgTIbsA1W>*8i2o&JVZ0i?)!0G&oN|Ln7lSNf_)d?-eVde4ZV)eI$XK7-Is zAHDzK>9*h{!4zisW7teRu>U|JngWDrrf|ICaRKmOIw@;tf#U(&5b24h{o9F<*mNu# zy%f~J+Tun}b6@_ee3Jt`R$fDMEO9kInC2=E?I{WgryK|Nwb*RuAI@%V%e;MNT{q8v zR-()3=Ud=qfDQYE*7iM~k)fa&xAJItjJw{(iI^)O*B_pfhPNwR*CkA zf)wWviijNp(CCl;RKX^N5NVKbK zOvjIg=9nmKCUgBUZKfU=1s%_~^~3YjxhBYElj}btBAg7G_YDvlx=FhV#ukEGrrzIV zs85yghlloZ!=Y?avtE^4r~4X>HrGu!@Sfje;mVwjW|2iMD>;VS&#h$GW9!Q{*%U^y zWggp3qq!FUuvDJ*4+pY^!wjqXcihCWM(sb7wqhq}#{8rnI7ywb+scI&?#P9k{^ecD z?6Y3It~b?(tF2NGQ&|@M#`$k$tl|%@c#oZq>uJ@0#xp_N59Z@UsoPVgiF4Dz{ycdP zv~sh_QjaC`)Uf%x&wk5{BQ0L3U996DY0Da4_0_rARbiikT%P}hk?6vZ`cH;-3T(Co z8Bx#&tb_c!jxq}}=Ljt9W7?XbM3I+&aB~Z-ES9LlveYE=WD{HafLw$2*Q1{M9HkQZ zFI+rWpmEkCB#W=M2AfI~Yv*QL2|&>*ggIugFf4lGDrwejZI2E5oa^#i&YHXTcgrc> zV!v7cMIJslx;YOfYhf$ZC%naftESw7j*2|9|9W31Y~sO1Vhkel}6Hg~4|KU4u{vfjMYbKPUV1WSW?hI1m+LCJuD>}%!*#jd=CN(pMdHd8wzZFF78&z3mYHJj1(7N1w|@S? z8gI=YRtpbv+DwDo6g+lK4LX%J6peo5kS>QLyzyLxy+S_SIucvT%EnSA=lIXqGMfrB zIa}9!^h^GIKF)d=w%E-4%qv<^d$@Hz?HF{-9c%2E&F3y6YAsZG{B>lKhum_3Jkw!4 zXP;m{<0+rvOx>3_vcCi`W=3h?*y{?WQRDInjE6HQf*Gc9} zjzwlLW4vzW?>OL>&WJKu&$~9uxsH#pEiwyAT3ljW)&tc#w&2a9!}MoV=0Oxr07C2h z!FODsi33?$*qlm(dOrx@JcUlJIx6~bWS@4OQjitR#Nl_!#k=^gFz6(7G@^m2AJ<-g z`7e&QUHKa;V1~yZd8hHnJLuaBcirB2q~=|bzx(Px85dvus&Tn)F1-5Y583d@9ec)c zyY4vdaLj$iy-xTB*`E?Z1sMOzPB#(mI8rwi?$T#g^(}?_bd%u`d~=~cU=aAHeYCR` zOUIp}yIvk{neS(&xciz(lz(d{}wWV~-wP z|Fk{5K6U4BGF0c#;Kc?V4IAu{6MFNvoH=@Q%|BBtS=+Z_{M;Z2j>eoHT62Nx8w!#29L!6e^rR>4VQ|3(7tsBaYhU`} z=Z#}d+5f}QZ~EyMjQ9V~zxEAq=RED(w$1A=zU>*~>JNT+>^|Z6an{#<`MC2VA2#^* zxplkd(#!nqX7Bs+SF3XS#yy|(ug6)B`?3jn({ttLFaFv$=5d4Gf!d!w;k(AM`nI?` ze%=GeKfLhQ4+J}G`Tvd^43E>zkq`U%AKi$dZ^qmZYI3J9c<{K_w|&z%>i7eHsDIzh zw~T8)`my?^zITmF|MpGei+|}SCe?N~7~W0maF1{Pnu)pOyjP94{Om8!`K>iL&<%#y zeE1{dbwBVEgPYy%@|BO6?zqYF)zA1(;}h?C&y*d`fOWdlzkJX*?VU$DVfT;9NNA9%pSwJ7qUsb@jOV{g;j_-u>Qj>1*Gh8)m<3 zoO=KJO#Rjy43D|}$>U33^1P{M-GBcppE&1-JGjeNJbaw}t=~A|TW>Jrn=l{q@)uA2 ztu?shyuZ{Qd(o{$_s=~4gevgRi~jRC;WLh@i1pN#cl6bGkn|fN%>Ae-iT?YkujV}Q z4G3HecwxvJLiy01dOZW?NpU?tMk5`T=uCo_$eHrO*pd+1hab)zO=(&O-lFNh-|&Uy z5&!R*G=EK`)J*0D1JYKmp}fmoPDNl8oTdToihH#m+4#B z2fv{Q#B`Uv}ZO z;{{*+R{cUwFHH4JY?jSr(6T2)&9gKmzURbUwfLh@h3m=UhBz` z=3S%@kw5$yXN<$T!BF2|m_3Jo0tk=E=0S2V#u2L3oez0~;s1R8`}J*Jv===y!OJc`-kzqzrVV`@OCYh{P}jbr~k!$$8op!-`_YO@#XKoe!Tdb z-!ZQE5U*piF7Uy+qt1UTbl9VB`#kr>_c-WUgT3*(z2hez_NH<5<=o_|j1^w*qwo6t zdyhNlhSUQ!Ug$sjfqyryyYi+iamwa+mi0Gn9rlf<{?UELDR=E_;P%WfIrp98U9Y~P z4b^wu_Kg!x(+!4yb-(QmSJGekmJ7xOuevT|qt0)dln zSbh5WT+>_=Q^-L^u_>gl75P?@_FoZTk0H&msdL;BChm;m^N4ZO(MOEk`VjOUeZvah zKFc?(ke3@!UR^>;&WRL(hB%PCVr~(ApXbS21jb0Qkv~A$=Use_HDCMHbj}&8^>r$> z$~-G(?GlpF7&Iw8tsO94WJ!fJLh6+QpvL+KN9V_5J4ZEFV~%aY0Ta8LgHp*xL`{+U zA(J136<*fAdaS|FsW4ufPLq1$4UYL9#MlKBg-TcpT>%VVgEYE*iq2XF#@H zCq$Vr5CWj}%u@N0VPCi5Mjx}2Li>F>74KcS(>>V8t@`sIBKp?Y{0~QOb5r9h*2OLXi zhvld94~;eU54qtwIRE&-sbBwe0AO5a2P3Qn2;;qQj#cBtUurp6ZUmByhC4ehz6e5B zF`3zZFo+-bWfFbJ0#nS65g9EulLCoES&FWE_YTPx*d;si2+g|cFed@{<6~NTiV=+o zO+0%3&vbeGwN$$DMcjR(DHd7_{>a5GTxZx;#g+XCr<&c^VTO?wlF3T9 z;Y1Xu>l4~u|Dq9Ksgz`07=g2n^un0O3}rza)DfNf_ET(e%#j*ZIGQ2xD|E}Gb%=P9 zu6%$fOX=eiZ{5&mD}@`mZ!iR^AG3+Vma`tNg_c}y6Y zGX9w?`4g1mlXT-UhD*g@e%6+F`0uqK!|0s987t(nOHn9@1nmE^mtY0dm>8Wao)R$3 zZtdR_J2xHE_V3uG+PUip|G^i&5&SlKPQCj$eS_g1)~s9*hUvrZ=*x}iw;rs+z!k9H zKEEkJQDtkCtxa_3hhfAiSL$aQGj>ebe`P-FpGvIP1?E_H^w{KispNKSNsYl)AOS{R z0r*@XucGzZnxuTxdRY%n9Msz(MCiF6`^zo0tz`@h`Kn>o&k^lk0%U!O%47y8OUC?w zs|dWEm=ldxFnX@Pw7@ea>fYG)m3qQtzs?HCQc?DQ8t4C_a|KAwbqT`$9hc_i-Wqcx zwk5{+%)Tgp#1tx0OlzK=SKrg#e-kgO)=er2QU)|d=s1`B=R(!JuF}!*H1&LYJ5krk9Cwf|9%g6#F3B^{9HP)UZ z*8sL)*hej^m9jsmrSP7zrEIWD{cME0dT*_Dh;Z!3In-qnx$LPKdO77f*VkxdhN{c+ zZ|Q|0B0o=;lIH~`7dCd*+7Qiba{?(33c3E;T(iX$_Tp{XtTPB&`KxiCe@wAUqy8Xs z4MW}6>6>(tJkC{J3{7+=@Q|ZB?@%> z-)hs`(HqM?Cy%DgtN`H$m;EQC@^MDO*QiZhjlO|{e@bm{B9ym%TMB`=$4KYk*H`)ca)CU2?~?<~C8+dx;4?=VE;hjq3bej?$ysc)f(Z2;k`7 zzqNgHci;PuxaWKitxu4}ZH~p7Y1h3R zxaP>$>(8|`dEiLR=S?C=ToSGF_p=+XfBpW;HXOw4|7D8^fwLj58Z{|%7hF1&H4jpg zl0~lRYL3h;q&+hzqSSd&^k}KSqbdJ0Zs%UuZTw~ZSHFL5jA+fQAba(~((@Hiie(>R zm&ebV={=-pG*1}TTxfXVgZ<7{BI^x#uwtsu@ zwQjDMa|v^HUK{s5gcEe_uZw<#E0L&^3-=fNAdRCax46j`LK7 z5U<6+F08^e0Uz}vyWEcFLc+a%Xt;`07G^!cCbr0|X_&$rn_-Fht}O59n0xzN9^ zQ~SrVZHTx({}6fV6GZme;>YE)bwu-R#?OnJ3Rg7*X~k(WKcyo&So| z3$^%X9t+UIR^4hguN$af>en5fR1&?i&6D}!A9?eIWzmrroYCWVcF z>86Drn-<&7Drn^VFq5WVOCb?K)*PnoTI{foZ7?nE$F3#p*3i>tgqha7_g{o7EQ(bq znM%;-pU<0AI&0kH#g8jhYt!r9*Z&G)qiY5W<(_D$3yjll%lT(a8Kg2@;jpofXxU$> zF?`##Amgvh>>q6M*I>p|xFUkHV`(0%WXRmtdoUeO)!&#Zbdd0}H^So6#C9O#WqpkO zaNAQVjCd zS*WkjqSK`IUoZ)C*?)e9W-l=dPeo*T@_@I9t<1Qi>*xQm>*^%`j&bAqBOo!XU;iw& z$(T8#tg9-COG`Xp;yn)2BC*(qnZIm6%*PVtk^EuPxb|CHCbP}~|Iy6%bu_Y>syxapbt$agQ1IKlwYy zt|N9Q|6Tg*-A>(E^;C=<9KK8s1ui%2%avBYzLO$OqE5|0c(@uzj~p5IuQ8`@&bE-f;E`LHJ*a2>mb(+`~OhaN04?3$Z7V|qAf%*n0g*tM?t(6xW=Wy8K>)o=rk?b?6O z*PK1ZcBA3^U=3oN)4C@(2s>~vH1y5a4$(2*nrtT})#SmpIl;H@_6wGV?b<(c?Am{i znYZ8Wo3s75PeIMWoCdyaTGrUMMNb@kM;m(h8?WKK5fK|2dfM6s9vXeyqHnI|1%s?@ z!N2IA`VEF8b=$M-OfK`Q`DxKYLYA-Jkg= zee>hDKXKV@lHPK|jpMR6{{8s)+s;=VKd77IJ~FQR*vB`%{g7|+`?BBpFOzG#8w~gR z2E$jqZv5SIeqq|&T7&IwF#P0u-#1?OgU|7P;oBI$=;wZ99DB#*Tb#)2FTeW-#$J6B zp%X9@v5i(pknz%i)R0+++cX@X{U_O zf6fn%-M8hzdudl*bg|a$t>a4Ne$9tIJg(IZmN#9iZ;x8F2R-ZQ*H*eutQEofD=M%nmob@%2nYyhv7@~OefBWUJ^XT0Z^QPy%Pq7!6jslH_2ktr>{JWAxx#CT{)L!dH)`%T{CE>VkE}cR zE6eqQ(vPkU0w)ST?PkE!3;i$QGLX(Z>T%h-t{GQ-Z4n?}9!SIzo&$sNoUv?BoKmMye;c?l>RgIgN zzV*MJJx=@VfBatL8~ON#O}s!}Oz1yB~>REfn?LX_7v1@lfCAOI=0a{Vy!->KH~TNxxZt=?-}1R@ zocpV1AM!>%EdT14Kd5hSqSswHUh*yP)VF(P zNjo6Nm2kw#`tQ@tj(f(x`@MT_5^S9*gdhLHH;*eW)y*XZHIInW?<;AgBnlx`KO_(oMt8wY_23yro*nZI$!zzS2 zyHLN^AK0HLvlC)p|8w58)7bk+AVlK2XvkbYdBX#p0qF?7rp7}sU7}O|P+_Hk{m*as zz!0VS0`&(5k+Yuk{l?tp8;q&zERFv-Wl6+!0h0vlTI0PNjtEH_1*^_L&XeSX*`-sUgO@GgB! zDxgUg+71NmI@Z=&DrK*~;|h2}9NHF{m69dw4g!J32wCsa((!l|{~Yyv0*n=!OPA79 zV;ogW@|7S4O>E-=)wt@mvW^~sAgEo_vhw36ruZ;Mhv_eIu(#9D@xLo*Lvb>XIXJAm zFJ)KTNIqqV3p(M|spaV5RAv?yRY8#6+xDS3{__jXU||8{4{yo9I34I|me{c;wO7#2 zlTqM`l{nes9XJFqY0je$zQUZ5ry5d$oQox=a{x;e%x4(3(R`}$pY>mt#ruHz)+yQN zdn!nr^3z-dozL>&zdUnVrD z#OYGURp4Ol5S#WdU$W(|s5>6{Mn$8;+HIk>oP(KlVB5km@rBJ^!MX@-!1I6kEdL$H zw1!Xk`TW0eMPpyHXu=8I{=K*GW&hTAuddI3_D`>WZYC4n;nB-*xg^UYXcl@|CnP?X zv#|D+00>ZRRe$2j2mKQhbNj$w<>g0ZUI=5y0dycEhwRo)|1iA4|<#rtZQ09ZSVq!ugFG8yPv;QgI`(}w5&`9M|pb(CWB{NKC|gkx0-o2(D^>9t9W z)=7vzuf@#2t4GCn{KryFwtfCrvT<5E>S7=8Ie!gg(=J_qW6M8aaofL#l2<&q?DHRc zpeDkU`uFY_vqUSkJTRu;u{Qi z?>WNnm2lHxVk3XKTOOdDljr3gT;joz8uQsSS>@kYN5MgAnUvb>(Dnf;R|)vAIBiNq0|_e*O;EUeyV54 z*i%msXf8p+)?@DpZzO>L@Y8b*%~U-5_U8N_J4L4T_w}b)DYF0DbETfKX>@?bsUuc| z*`pfefevBzs6k-a!vYhen&Z|X>uI*ge9^&qo&WGV9ukSI3!-tT9YA~`>-~t6&@u`) z1Ndn%o0tl7W1jT~Dk1}#kX(wwJZmz@!KLtMgpU8Y{vA8mAey0)La}P?KcdO$Y1N5w zkz_40A#6vTLT6%ZCE%Fy_<)$_ih!06WGR#4K-0~fOs3Cha{Vtwf&5;9m#@HvY9Sn) zWQvU)H1~)jCJMc-(%z)8cao_l6_45G!U2kI4m7tK7gDmzNe~#k@aO#FPZOA}OhaTn zDA#Va|70H^{AFjE4(+Sf8ZE=sDisnRG$X{*{5{75@8hiDf+fbrp-Uc#10Aial6osv?}MfOX6u7ZbeJwO;FwCo*vihM z=ZgkZw?yGgbjbc7W?K=nfvG6t4gB;axs-nX!=OPGRaT($Z*{oW9(tVE5`=xO_qjNG zeNv^wO8$v2-olYx+5SOxo!3#M=90)yGLK0HVq~7Th#nFZfhVr?X23+C~GX{KbhVD zuvA8+WxHNu?AErb4)Dlq){V54|CWc_BMsji^P4JN<#mw?8a@OgoF#9_F6Rz>h&HYE zJk;4;&r6B)ERb2-D6gVl^TZtMEne6{`5HdHH-@+twE=hNg6;X|Hsen`l*I3RAY)tT zuC70p%OP4EC9Cy6&v|06O zL64o>%(*Le=(tY&>-+CWY_5OiDfoQONzE}?5lvr79-v=|b^O-17~ax|j_E!$9Zp6% z$G*$OpCyB~C;R+yt}FF(3ts-iuBHi4flj|fi?zxTrd0Ymm>=SYX1Wf`Jl^RkGQ`!W zUN1?kvyilG+wZZnYmoy-|0o_WUoT^CJ^w7=LwluY%AUy>oPD)x!7%Pvus;nVxn!ZU zJQ)&2p6gDZe~@JZWF<_!jFP++PU4q>&8Lrtxt*76;eknM%ZadEZfpx!F6SSlqLC=N zk4RBgs#YWi8^M~o|AX}x5U-P@KsrqiA@dj-eO^1)zlXr~$pyaee*MQzBMGS5OTIuS zb!#bOTM`XR=t$k33ehfG(YhID=#fX|qYH8C`Lg zYHhu#(b%bj?Bd(fw)}J;h^!yh5%G3T=thgW(8OkpDym|Op!I5r9(PoB6cov4mnEO; z>wm6^Efx9XU2WlGCkM%>|8H9V0rL677VTeK!%UwQ9i8nFbk5`WH72C4@%9>Ba;I*v<}_P1EPU_4&u6Zb@pdJ zm<8C?60#}QUD;1Udi_a6KH(L9TFiZ5WpWk_Y7*}nv*R&;1*r%Y6u>~iYf*M*f6uI^J zu{DqjH<+zuc%v^!lcp~sqF1;Rq5EVdqZ6I7uyWget^96m$78%1oqCBXzDc6yL!sKz zwmzmJ-x(1h6T=Mawm*yVMl1LWsrwBB=RFtw{rKAtK4uZB)**Y38eet7?~cRu^ucMS z8v+9B^R|i`knj1`W@c^m+Jc+o>-_iI{#i}<+n|$ z52@$#65!&H`Q6=f#kh3O`Pv<}PrJVqgFj0Q1|pr;7T;0tV&5{mDDnqpcn^5-MOTgs z_i0lj5BWe&rTu06id2kLmuR!-zn=39{h=BCo^Y$&^nFhlhwu9W&&13la6!>ZX#Z9^ zSv4G)e|7zl_-*fWkbU}t*PMWnZ_|r`ECFwhQ+IA8gw6{?)X4V0vyqO|Gc|>p9{^J$ z&#QT@i+uCIq1`pSZc}$u-EItYDD+zgS>&)!-KBNg4txrI^r;&UENGO*q77~B3-T@7 z_TVGOezdmVG?83d5Bl0}+Xt&{QMU~%Zy(yBZF=|H$hwAyF=$P1Xw5}L7u>H zsvYYZUh8zi;jJ;&Hfh6O7i8Ih*MY-Z%d{&HJn;Ys6&<8C~@R{#uXRmX*d5C2R>CB4Db7lUm1rhPhH;hj6WD> z{@Gu5ckmQEHcAq2m$P5_>hZ5nd)B!0{C!Q@wLb9h!^Z#bkAG|OcH3Zh;uqgzBai34 z`K{xXkA1?_`D8V=HyC2)pMK_7#$^{?G)=Gp@E%Y6G5z3)C6w~^=l|7s^E02@-G6g^ zl%5)SGsS$;{qHjlI%4xFLT71nxMSKk4b-5Zbi; z)z`GakQ;$7|KI;>uz|A6%fJ68#`*7fcXzKkRkT>(T@NOFndBP@7+U)XI5Bjc+ zF>Cs#>rZFk+GODFXa3x{{_*_PlDtvnCU#Fgu@^13uUtXZwT$HT zKX(se7z+i?AB9P`3!=U}yCDSMLCdCYsJUI9A1GQ1A?#X1wfY#A4xHs{p~Qjgv9~;I zJp4I#90wiNw4kkyiW7>!`IYy)fv6ube#sAO!<;sDU6=CV zcYb`l_K)?X;s1Ny*r$zXS6q6fHqab2Zu(hAjL-X;n~d9j@$Q?rw{3jr?H7%wf886j zF{|!>onJ{g^*)Si^AtmH`4RkUpZCG>?pL2b&Q<*9zUyMW;knYAS=kuJCb3)J^O$WH zcJyEK#~&Ck_?dUw1(-GSGFOzd`~ApC;~v+v!SGpUYs1>RH?f&xzOE(zo>`u-=|Au% zwUO;XSHF?X8w{U%R&aZP;3GeH0-rlfPuM-!i8A5~a4Kls8s`3Zd{T+QL4^DZB+(RjbIf_^85bm zv#-XJuugmFdE+mi_%8Xv`)hOwxzXs1am&v?YJBr=+;$vx^l~p}!L0)u7N7Agrxmp^ zgjwgG0}k3Ve)cVQ-O}2B_ri}{rp==HBMpZgb>KMjAI~3u@}qAj`EpCRe#FY6?`g@Q zvXPc#WuJ{n^mG18r1`;J=3h@syk3V76h9JnG|bg9>xKnIXl3d8$ujE0YWp3(`<4xd zAER1uHUDi$%8pNX#KQS+7W9c9hpg7b2@1iYwAGUE|M20o!ep>w01UNk{d@`CkOWut)fWfUHOq5?NTD(1yB#rPC3Y;kWzj-3TN zWLU%aP&AJp?e?Q2+TWai#1w&l2|j&`qF1Gxmh*W`!E^ot998|>Ise4qS`d-Afh=k& z`B6qEr_H%M<6lH!`My!Uu4aXW*W(W%*8%L4i^5A4KdU`E zE4ya(09XKuKuTt}`4_kdpqf^LCW{;EUlJMB$a2KZ(9ly6(E9rC{CV8M-Z-`?6NTje zvf=Rut9}+>IV_36iGll%ntyfxQC<~4^WPrQ*IY)$@tYrfi!4ba{pC442w}qWJZKLPA_bOCa(VcA!`+>Wex=gVObBXTI#ob z(dPWaAiha(ef_rs=u5BjnDIBPbD8UA`7AOf9IqN!rx*eEFw^&!v>^}>4q~6a&p&Fm zvYHg1l2mj4a~u_v=btb-|2@BfTaQ2f^Ov=Ej=w;$Rp(0Emm4NxV@GMn#Pj@9ZUnIY zp_Jo5Pfj>?#dN>{d-O+h_UaD}X@jBOI~}Qe>4Of_=0e?9$7gUWetqQ8mYp6PbdDsl zGVeBmokKMjn%V_YsZv+U9&5zv{@?mKY@dJ29Uu$FtvRZt*FRK5yj5DBKEkBsU$WiF~M!QD2w9*?Ih5y6Op!e_sDE9ibA> zk9{ntgXs%ky3X__ny}ziTBe)OfTHxdYw==oro4H?*sM5G`mTIf-haw_jOf+l@0>-W z6y#gw&FQpkOfZk~52c)8A}9}N?2*nRnx5k(^sUG;S(&gxhq z%$qLBZE{S0+q>3rUlX*^>CYcROM30uv=80$9Xypb=b+l#^0kngY9FJu%ZvuxQtUY@UL+VUv@-RNfxNfs;P;U6EB;6z%__@*rde2WI7a6by#w0N(DkV>-g99 zLyw;`ZX4<(fP}`n4=tFJI&BHD^J=L`IL49*TH=RJzh`Ds?U7XBM0|q%t=1qc-Jt1S&DX_ih+P)6>9tqKl=<8+4 zniQ3t$5L#QzW!HETNs|*Xd(4YD}k$PH^$1tg|tg6?l2ypDpxX`jIE4My>edtsaMkU zGyV%NURPgmAm)B|0(xw`9*rZ3m3`I?-n1tf$MoBNXJ)Yx>AYkru#^jR27sg00;#h(wusk&9Fqi6#QH zdn$Qe8P5m>VrQD*dec()%lJ>jrxvgpO*__?wq0C+k7 zw@%x^VzmVVLgta)|5U)(=est){{X8NP+uS2HA)Rhwb5Iw#JBD{H^NU=pz5Da3cg1W z{qoCo{k=k);jWP9n#8{U!H|6d+0F(|x+#TL4mGuy_B%c|Wzp(ul|5RVvR}@F!Qx}) z@glU2e?jj2m#_FM!8wMDpmWeUg`D$U-GAYMRQ*|)pp52q)bP?%SD#m9O2VGMtuBo`yAPvZM>1^S|vNqeuI^$T=Kd)bD+g|$i zgMQ7$jr>bAF4fWcX#)}qYDs^wAMX~arH}u8eztbmWd3FRu}6ft|6eq#RiH>L_89{x zJ^pw_AK{jyr@rlp?9%)K-Oy>?mTZeogjkAdY%O-lZv@+$EwpJ7vHIx5UPp16|C{HT zMoIn`t6AA=TWueWc70j@O$l$?K9Ox-|DEPVtuP^AwUN``f4=dC(s}_z8=5m}$JK{K z=|JSbGH=W7yjT_KbYpJ?{$T)L~TKbPDRd@*q1=i%uJW#GXIdkCMBGz!4&}>bnhA7kFEJ zoew4?OHP68w*J8hGOfleU)3+GZh#X9}45q{{G#Eermkq!WS=s)wHvT^E3->r>>`pq2I8bbW{ES=J}xz+D{Y?19I8wxMotIdUb_GvEW zw{>e6+UwlT*gC-o>;}9;5khhc;Kh1^;YHeD$kPmYADE?FKve6}wnTsHdH-jed-0pr zT(^%r|K8)cvwu8v$yr4Q&oYe({lGHAvxX23Cu*$!Ji+ivJ;CsJ?X(;Z)r%h=qt2(Qn-5K?9p)(|+|21ClF`#v`Q=Al368-p+Xy{8PGmbYDA^Tb~tXTRz-V0i!MK21+BJaSt8*Z=uD<6VFK(%Jv4hdpH6 z>T4b_`yYP8Y2#Ht@$1E_xXnCazI4HlS3dSGDHHC>%Pv>!-{q%6PNEvub%Wv2x4ikd*HeCOLhuB}mwn%ljgOu6fl0f%#@&8W zPcXd8{-0oo?ic;q6UOy#b<%`+{ZpPf-u|S3mX*}ieqi=i1?0>rP=?q+#4BY+gKdX%vx>j(t)RoyE)b$(00?OMa z__~eNUH)EbcxqGc@h@`#pi>9S!ZX#l`H==PxitnSf5{!16xE-8L`}zjBT9=BZ@N8o z;K*Q z(8^ZSLCXH3%yYfK>>!Tr84vu)TWW*haboPhWP{=Rt@>P4InI)D>dhDd+M>{ z!B4);f5=?CM4MZm@l9_YA2^Mt=P7}`-q!IutBJoS!OcGV$nhP2aC`rtG?84pBY)Ay zPqMgn;*pZ+-+RPqn4|JL!w7k(rno_}(N z{JH2XqweEhdzW$e^?3_&-OKC#^qld>k2$jzi1ZWoGy%S+rcC-rFk0Vj-ct_+&u8f( zlWKmz3W4*YzoezjKm7VLd=JOJa7=rPb14maf`C*r+)U^_^~Y;f0PD@yB8^;_)omT%XVf3?5A#WPcVDSN+LY8u*T# zzKUi3LlNDo!B5173(x60|t~NH_O!aelY;-!VGr*yf+?`~5$z z>O>M(@XiA9zq-UisK~6>Ki6BPUax<9(8;8Oya5ARnF+n^!$PMeQJ9m%h_MNl=-A&L zf1JqrlaTEL3eb{QBY{CM@KmLRS73(*)%k>|5*gL#^78yk+e`^?zR-UWQK%?I-*F!z z1w>qsOVZs9-2jCnatpT;NZJu@bi|~sY}hdd0=!uu^EKMb#*cZ#c>9y8gw)|Cp3N#zI&$+}kScgNLtpsLY~{ zb4x8Exyl5i%KW!{VfWm$KFP#@h~DUEXM*gxAr`uG{f8A5bTDS{RG6UKzOL6lW8rZ` z#(I*R_MsJcRgL9t4|+Nv%~To7L7^cWwcQ0zbI#{N7$TzO_n%v~4958qITa)6&^|#o zCUwk+XKE>_Ee5Q{pb?9u0HNZw_azuSNqXR>wnSGy1cK~wQeCBeTcJ<;_Cq?!cg}0^ z*H@#Jj~gC0^ipG2BKVv0c35_0%W#PX+x}wTng9r=vr(}cME*cmdn10yCofrpJLaD~ zieJmgpd9Luz*L)Yb5WZn=aK!Le?GrAKo_4p zPWv9Q;*pOo#z|+HXNpJi*=Rw&!tYtfJuTLKfT!17|7M6_nc%c``~`32J23L0Z2)J8 zC^v`@ha3`Qu^m z?LT_vZA_L%ixsdIPpx4Aau#~5Zpf7V8UNy$S_?In$bZ{R?fk3Rep^5W+Qv*Xde}0L zLvqvcYsQFOLNyz0N(TVEKtsR0Fb~i!W_BmF{S_dr__fY|Jeo1tKJx;%HuH}R8%gI} zozX~g$NWQI*v3iR?G?CLBH=fkdOeJmvkh~M*RyAa>;^_MBWzIOoqz1R5KxS!&xu7k zs3T%FoC2oG`fo&-VM8x5)Ao00)8;$>HE&kR-9(o5tkvlCzhO)`-2bu;7LEA7_H-S8 z#x~w~-mNu5Hq^HLb^coq2T_UNiibR^Y_I?I`PcSIFhxMYO?QbQhzqafLT7-$@%&Sr z`)Tpajz>t?In3yVeE6ysmN~I5epKDHP86-y`A4J$@oK*RH$K1(Vh_q>&qs8zBNs-BOE!})bMh&gc!|pp3oFNv>>R_0&W(k zf}b+tt><6XS)%Ir1B6Cvsh-%g;jvlI#>lje)F~3TCy-}}46b3L-;FGq*0A+fiR|JT zbgmaYi({xW12-6{W5wn~$089g_SfUTc+v4&z8zq^jg5^$4{!+A;<&aDsN{bG*O-yS zBE=DTJyZt@b4-N{%tTX$|9JH~@>oiQG zGp#1)AA6~)yrQ+V*ZkN|+`)+~;_9~z8Wn%|D_?+HmzCPeD@mlcUjGQzj6O>)IR?t4?W$$?NBCk8#A-~7qjIcuVrZm6;94SdJDWm zKIbJQh@ZN(Hj&rVwlk$S##smww#-^^;!Z6ZE>38 z&zF8*(EUiRJ!sUR^}6iY+VY$F(#Zm7!#MmFik3blW0?#A6}E7GCUoBq$9J~Z++;Bu>4%cps^RZ z4kbvtM}SL(O3tjo09o+{^~=4ak3;tZ3PW5z5V)j%IAyFF;kTN6orL zxZ};dhLaMn1J3;&^RMj($%KUzwRyBZnhQPCdi^mlrj~sV)GD?$c7uV{;!RtkDT)M~ zT^rt_xtr)`{tIx4e?i{aLO8jZd77yzp2p9u1RjWW{L){>zq6uRGRurmYlYiW!g@0a z9eLu};j5g8AIQbxf>S&xA>)kodQ}g^wr_rff->zVgUsvX&enpZV*%4LUO~9uhqdSJ zTg$hZORn5Ep8viFkBhJTXsgZoOOJc*$ob+}*!0D=kCk_oq<%3tY z`?g_C7`=|9Duy>0UUn5540&SIx9f!v`?z?a%B>&!s;DX5r;RMTG+VBBY<3?RbiqQl zZzGZ8^hm#Pk?Bh|I=tvpx9++xvgz=#M`>Rg2ims3@Yc4F0l)3F@ATP6hCX}>y4`OZ zEeF4I29L7FY9E`{`jLzcXwAoF%e4KL-BCCA4#tXr46ij<_gkOf2)cu!-+Huhh!=bc zG&ae#v&h1u-^t_GuFx7sO_%Pkb-`h`r0(e~S~whth@_8mR^YJSJlHoHcL_8PbK z`d7N}!KF}lT(TQ677{ z+syuJfAOi~tXKTw>|b5udM6$~?)|j?F-3NJf+0^ve83<6<~ZPxp59~p{f|9SKJ*iG zruu#x$KU-f<1Rn;{geORm%ehm?n%En`!ufY2EzjnJ#>8WQ=jM!qz%BvyqACfkMBB` zC*J!WlD%<@j(7Z@7hUTo>>YZ8W5)e{=gIz%xB*`JJwH13z2~g%y1uR(3{QH%eH8Dv zO^gq``d{?4#wX4GH8t+_UaNJ?}4O|JpQ8IQ4Fd=N40xF}nC8 zJ8xd6z^5Dk&t~B6XKG{Y3EBXzD<>C34!$u~&HF8GR=KG9O+9@&T~Od%k#4GKnnfc> z7N*-b4R9#^=5pE!xwV3$p5MNKFW|hDD;q2McE{3n_a9&Cr~qzyha<*Ae*KhjxHcF4 zdzKHr^`i0I?>TK;z!T%DIH$B}I5r~48wg1E)rPri+F-~NY_9VL!m_`=>ebJE|9IgO z--#<#$a{R89;yN9dN)3JeAn~tIF8g)5$nlL& zKUo``K6SZ^rRB(Gzh^)Ev~lJ?T;MqUVF-!Xh`;)iF1AT~#^-(AjmB3$;WHP&Pf_b7 zPkHZn>Hkzdjo)vili940xOD7^hmP-k{vF1ldivj|x}5&9^R(&l49&aBkE(oFRhG4e z`2qWbpLFZ-IbU(ZPsklM82-_t-@cp@CUm04Hd*M?1+LKUV%Ok9;Lxs8FWu;f=1mnI z=kQyo^`oZz3z#p!DKr0t**0v?^IsBRwtX7*TR+Z|aATvloc}>Jp=?CCq!X_+iN8No zCRSdc^cSAVk1fbP0%~_xlKBytNRY+8Li{7Hzt>OHJmh-%!SrDVEccwHXNRye6K$iI z4R&>r3rUJ{4AT%?tz?jcxIw3*g8#(SUx3iZu4T=qo28L~MGyb*KC6h4|LkbQD zJIuE(m4A0F5F0dIz>ucD%y1j*@}}mk$niyW#=3Hk@n)*d1{(+zS%6Q){KFtG0eJjN z3{sex6?7@3S~?;CfDRR~jw@}}yXTPkCD4L^ZI$HTmM7*SUPdtHdE2wCT(KWyOmvcg zxCchH=g&>G78++A7MCt0g{U@m{`U~h$MciU};`| z#KUF(sH%J?+T?c$XZg|V8Xv>haHT`dKhe?_&+|tDIF<)GF*2!G+-7bCbgzxcEyoQ}1;zOv$&L68S>w|@(R$v3g_-^mLLy@7B}V2m z-PorpxY$6Z?ZdObJMDJ}**sYwKvrQ~mhq22z5dDQdTms?L{D* zVF17wqI;zmV8Vd8IEfywKL2(8Y*My7HtAr{h02f|n%2bXM{>7gDOF|r60?2ate+eZ zKm7ysM>!7QsfBu~{h_*NKK$qd{Pe;D50)G_c!OYJhN!*({Jy}LfFs&M=v8Tcv#6Cg zuRrCAF1qn8I>1;>2aD5jf-P+!(;-JC81#!kZu5iYs3K^Xk~jWJ-~F`{jcY}5!CeDr zEjs>^+u!&nkTTRp0V_YJ*oasu;9G%26fP*6*MHHx z{;@(lzLB!%JWLpH>RzXP^Sy~Bm;1&(zs9%VHW+%-=Oz+l&I)kFmmg|vuD>a49ugA= zVLKF=_IJ@(w{rgt1$@peJ*HDic!n(8w$t|zA#+S=e)p+ooNg3B6|(YN{BqcRQs1aW zP_@j5$a<|X|2#L5V~pDvHiZly8f;a&u74?&b=S-ImntV{73ZgL;&1S+i(yP*#D=W0 zIv}+gBlU32URsH^AtV)9`i9!Zv%HlNu}o$NJ;pQC`0Ff)y250^A*l+ew$X@T!)TqL z)8n;cNmwjnXe_{8=)p``UrV8QJUjNaq7#FC{*yC#FPKJ(eIkMz-+ceE#weRhCAqe> z5RJK9|7AfkJ^uLT&jt#2@wYu$0m+m0FlKrbktLA$>Gq5y8oRg^9m@rGLB~aUU4-xd z%iMyE#5`Z9Z7(3UDmoCwaf~Gcr9G$ZQg}TEhG1?K9q{@7UkdGB;|FoE6K}8&Qs|6k z*33T!>{aT%9@{rKWq+HFj%|r=%{U$!%0*{B!S7O9?lQxg+cFC!7I567D+atS zwn@i!migD?M|@MJl(zeAtLw&I*W0{a|6p~HX|J`GHu{X&l&MC>G2<|8s6m^8nCFVm zzwS()`4f;{Y*6<&)28gqf8|rWwuRjK{EKyR9{cLmq_cc0t?ainI4SMD=3h`uhMM>H z0+FL0|H5Ou@CciR7JV_*@)q%-Eg*%4-2Q`n1E$AX#88Ja!sg95KLXGT$RoXd5jHhzY-B;de7?OaAHi z^*=nMmjWE|XDpizT1I-k{>_y_@)@1>H#uC5xgdIOB8ip7zOY-dP41_T=8CzYw{SPe zQ(QJHkaL~h8B7sD&=RbWAyX5>`pTUc`Xvpj+=^`!B1hYpnb0*x5zff%#%aqtpo=h+; z{n**evvs7(xUAA93AJAU?i3CMl^%lS#Vn*mfm>tcg7?YFhmv7Z%@n34fJ&HIn!-{%8-o#&S& zThm?pmtM|a_?v!aMdHt#38UD~dNNwRNNxN54_J*CRJ6Bpij4l{`vkGwN2+DJ4#IMT zzFojx(}m)0V>EA(Yyak0N+i-8dsZ&;SPY+5m!_<<7GC4Gh>6TI#CGjNjgf5y?; zOG+l#8jH3{)VAgxjP^FoLi9P#N=1lN$rk)HufD~W1He@>Yjf?9oMfV>HR*&GrldQb zh2FA(N+e}G*%l*tSWrxY8eZ|y!dz@OhWZiLaVhpu-R=8-l>1B$LYMXR--w=Xk!1YA zTib7&j#rG$*@=%xL?^9STD)F((As{a#51OzcDL{Uj8~nz>>FtQ^$t3Ie8ut48iyQk zgh?KTV%nY#=Un{e@fT-5yj8BY-rokp>2C*7epPr^i}@*K>imDno{#9sg&)<~>=KX7 zwmn?Nf6B`J5bD_U4I-U2qd~TWF4xwxOE11suRP6=_kgpknx+X4NbWl>zw+Yo`g4DC zTz19Brg%3_eD_nvAs5}w!gKz6aN|(J8mpAnZH%09rvt}jm+l?UdF@T**?fW_Cw*Q( ztn1#G*Bklx%C`BvxeguL(BX4RrcG&HUOu=>pn7I@M`(4MVfv>qcjF}@A+Eu zptoP}@uy4MrADW1!l#X1<5E*v4j!fH$hUoX$YBfYwSDB_@oM{O&OUSsc)OMs*p(?F z#u~VdBTKvc-QIQrxpp2$ukP2hogidr^8#;e9~%6&(|wU#nog(nNFwdFj|{Ia>o#)j zBiQtLwG46ctLpBnx#17Cx^x>n+TgWrV}iqrJ_XsfPahurmH~rZTdl9=c=rEm8w?4G z^70>e+&KTtckS3n7Va45zWI#t50C#vZxXxFoo+vF|Lxx}jymbYW^dH*d-yw#lDx|5LHS zaC?*36&GJJUigjQv$2uxOMdH@#u3LaPd0kxW1cY1eal;~RU9XO(|;SceehRJ+1)l6 z!o2I_es~;r*E>zQ_y5B`k5~WPug(57HSY4G-?y=G^mV`bo8!GNdF6)MwcTKd(v9x; zS>x_M`&g|cmQu=@fBquPiQn(;tnd8TM-Dcyb$R8F{@ghCO{aJF8tX6n{r@=*x&F~p z?q!es@8g1Zzi;+wT-ObTw|&T0kCVUgYbM4!|MDf{4NrU4>|b5u$eSHM?(?)?*ob|% z4Td-PtlN$+{2xCtq4?nfbN+&Ny?4^~+fZJ;VfW-)ZHVl)!SJvf9y{*)%wL;7h`;EA z=M4PeX^+>Y@T1r-`R!ks8%CMqfAx^>mOl3upDzE^GH?$)!SMPg9FjMQd^_X2k>$-4 zpW)08VOam%=yDq1OCheL$kXTQS|4zkgdXphv<~uCT_3XwKTl1FiZoC%KCpQcalSrw;|2^ZFn;$a1^|wwL$KL!?KNmmt;mgJ!|M1)N6hCd$B!1ROer1+G@tsmR zc3zrR9rDdnBJcm0Tg>ZDls{u z%_n`Mt)OQ)?|qkyr+oDr$3^E|Ha{$~S9VT^m6NyB6FtA<*{6I${`d)ok9zw&pLX2T zoMMSTb4S+8EXFx6`}~X_IO8#-y;b;;t0w*)kAK9RT&M41=M{g4aIiKN@+0ZP^wi12k3MkhJy1OPhgkfNzSW&qELNc*qZ|3hi3V>u#PsrB zW?HrWGib#`R``~y>x0{ZBW`BBzo2kXC5Mja>kn{E3QGL9&!PfWvfgyp$$}+b=gL@g zY#bf<8WYz#xB*qgZ5=%MTBZ7t*gV>1`7Zq3Qf0G(z$c1b@wpnJ8aUtiwT$Qq&hlbb zJ|fyIi*nE_PcbWTGt@SWe51b+|4N_}1%}%aRS+FVg(njRnK{L%Q9RexvaQuTvn!Qj z+GQWDjxOsT-efx#2x~bD#F|mp2WD>jy&)&ZF-h=_-|G|2woa>cMMDm**|G0+puUGD zhsbb@O3i<%dkCc`Ir0~yRe`aP-1d17`-O;SDdY#bO*D+wmna?#F`7vO!a(^dK`#O*j90z zMlsE&VjZsRIVF}uj)*!K)Qfsmd=B^cf?bT2jMuvI(>ZBXL*dkp_&u1mlaM4?$z8z; zhOx%*m0W=$QmSnOcyv1dYq~VV<3wQR!?IHxgec?Lz@mQ4#18=Fv*RKm%w5~Ha&YW8 zP4Oh(*BxX7V_rl z(CZ(03Uo@ZRrf7i{zZTcT1DObpiQcBG~?gg=-CxFMOQuNA9frZAZimxCJzhruRs2Q~6y)>66m>**DB?L?8vkr=Hm6KUhRFd0hw>qa)twz=HjCYL&Ksln zFjmF6?)itPFcHa9wwS{hsqk&D<^@94-L{!WN zalfpMg@;{V_srKjz#9#D^0(J)L@c+~ZFq8y=TyXDYz%e@8)gE8PMadRjFCv9xotTe zYAg(;gYVxPm)dePYW<5~Qn6Ic(l%OsEoXmwKqjUd{Fg!xubrKU@zrj$0J`mg4F!Xs zu&W`j)lJV2az%9d6pV+>z4iYis7N;x`wTkO*gVt7ME?b^v3ZB4fGqJ7LOk?fDlEYW~|O_AFS3SVY%!H{_V&!@Vi0-X4GOm7n?dlC}0CGeDHYj3w&q`f8%+X@3U2G+RnM5TYW>@K0a&xW*{svc zj6ynAdWQA<3&&`30xs7ibSbtkdT50oXYFYGLQY*D&}u(urxFVX+Kc@K zZMX49E7+~GppeJLk4Nw{|Lthx!cS&EXuBDMMJ90urRCr*_LH;F;!!YIcNUbV@pX-z zsB=UP&Gq%qs#>h*W=*P9cv(Nyi3#)Iv($ToVPazK&BDCQ#(nV>`rjIh^gEeQuU=M_pc%TgPLQSqBJ4+RW=qadI)+y+}r{XkayO&4|J z{=cJG=U*~C50?9$_&JXO2Tk_-vnz7kGa*jmR@2&rND+UX=kT@gIyCaQO>3TOGviH< z@fJjhVQrTZx5X%ol`?+C=Wu(Z)+m^drex>&cY;bZfPMejy2*|-#qRH)=qzJ`WZPeS z?{Ucd5=!99j=TkOAy$8}YJ=5Xd{+zx6xhTgD%Lc0m-t67_SLXF(bW3aoZZC5pXh@` zvk^_!fjsBhwYmPGZ|C3n@i{gqi>)BX#$u(J`zScvd1aI*<)Xihd zY*N!>Ec$$cT$ia+_7_Xlst^{r*1WoUN-si%pYdJDw8X0Tl4p;E*8hSM-=WukX@%QI zYD%)$y1@%Ae2y7Qcqs|7R|0cc8W3G1<@29S*Fhvry!HG}44Hqdzo0e7Qpc8H)L7f^ z>y&*fNwG*ssn#jSDLq+PnY{!E39QjQ+FYn77hbusk8J;*bvT`(tLry!SF{zA zKQ42HUKd|<<+y0ym42eV@q6IiK|zhyGi{91Kl*3myo;BISGBEUKl-3??E4=+$6B1vwUX<-NG`wYVK?UIt zW1%5S&Bd|#YrI@E7dh;+musyekZMEk)yN>?Ute4{Iw1E4AeGnEknEejfZ_U0#d`nR|b_rzY8?{p`c6Y8ajM* zq0w(%V^Bk*Za#I}r_GB3R?9WLH!J>*HW=#hO=FyK#u-%qDa*~j3@nDT3E!gCVAPY93F|>%y1LJXvvj^Wd$&?t$ZW z-}?0}HgEqtA{*dT=uaGHzW@@^pNr8fAWk;&;wA$6yC*J4O@wq>= z{6!0%zR6QKKVAN7X5j9%!O+p`9g07b(7Tk})I!xIGyioDtA^HnD%Ji)aPsCi*J&{3ZBFtv-JK<>M7kf8TiRAAdk!HsKJyC9i~>NJXbZo|PMDE^6HOhpzbv zhOc_o+2fV}>wV*4zjudm!(00Hr4g=kefmp3GM@LSw~j0IX2hlPZ@;@;Z)9-vD*afe z$NzdaJZL=l$tRDS-SLyN(GmNXUvlO6^T(Yz-td>_C~uT?ev~iejeL<+zI4CeqqM>B z8a8D9y`EtBH^2ODqXm;A!Bh=kmk4Ns;Vs8q9&}t&cdcLc)c1~;vB9v5bPG`wff{!i z|NdYRnM02}V0_Vc-E7?Ln~xg@>d6qFit>(syuf3-Pn!(8WGR-H8}V<^D*FV{G2Qyq zqsN1ubem7=lLIf)U;lajkH2HQ;RPA*9twXj=Z+3IK&gIK{1~6{`A3b1Joz@ClBYqw z=k@!>?|;u*$G&sOT{(dLxrjxZeYN%fbHD0F6bjk# zhmS|AZal0d%owMrp|zVYvf?kS`GHy7mJC!7E$;sI7m}8!gXd7^#Q7+oKuF(6#tW_p z@N#kwe|5U)4=)#y9^t~7xR$6i^_2kV2ykw)MykkF{2MMw{=h@{k@Oxv)t2+vfrsz~ zqOjUlHGIA)yaIF_b4(;p3UHw+*XfCF`{Bb#?y8TjnkkBBGNCYT)XIhGe7OiA&N$}c zuTjuQiClQ=_KGiHU(-zrcCU8UU+jyC->Pg*hb=eF*~pXeIG|{)P#AN&5?cVe1t9Ul z=Ae@JpoeFob#=hE;+S5C{tn$@F=RmESfMN`qW9QgaVfC@$+Ikgan1_R;ZSO>qAng4 z;j{{JJyY$67}I+v7|F6d6I*?8DD8iP(zl(kBcr2pw}P`5D`M+3I;_NBN~)57=3Ea} zh!a){xXImF+zw~@IDLYyVk2p$Uu~Rd2uLe&x@K2?iX|G<<@(=u2EJCH)cHeqCXJ<|c;V1PXgm z==hx`dDF7am9WTPe2l#L`05xEf9nzlzM5C~)|vo`(Q@KDFC~WvHv4*E`vP9W#DmS_ zGNzk!+t}gx%D%mnjt%G_2m0Mv>*CX<{q8NC__--Zj+0;-Dz4D2exq8>2a7R3{G(fu z$Rfr0Pc!OvAv$Zsc}^hz9*|PvBFiG7tSUqn5_yiro~tElPu z-s8A7SV+zd?fmzccc-zu9*M&^6*e8#soz$>Yx~v~O9JpQ(7}Pg96}d$Fst46sf{4U zvZ|p;Ua!_Q!3P{S#}d8%OWJUK{!0XnL55|)=NkD`z;TCI@?$~&2vRbwyV#{=XKlCR z$~i?G@&cG%i33@6phG~nf=}*Z+3twvC#yvYVM9^lW+dsA2S8ODNKZF&b=a0KH)6Vx zM9lwS7g)KsVQ^xXYR@ZTSd`nDIAKu-CaKN~@|Bsr2kzDT)8S2pM;ycE!UM;l`W$5s z->SHPoe}8qPn=+=%<)&d^dNX?%#2d6V&{9iWZ%Kh?ymdEMrG9%3Bj z!20?>uaD?D2wX%irS*GmB)>}-^W0%^oK=JPYhZfKE;y}=g`&Euehan(CWn_CZ>p8n zgt8lmh|zPiv_mX)XjYmNh^~x_k@t>nk}WZkkKF%76K$9Fx9cr-sSC3NRMGOr%A#cs zt=BXlCGTcH!SKhAyyxrS;zeA^VvX(`e??$}3*<_rgIq}EALiGop-(P)W+X4D$(K@qK{Z179CKzw!1ESv%L=Et zR?-3Oj9pXkvx&-#bQ53fG%Gz@ML0r>uymqpR2f)*{^)#f0NKGdBsleJZmg$>$E$Fy zE;(XsC~VP-S6E4zz9taETQ-c6YV+;4Q30HoeT&fwId82&Vwr^53$X~L9I{%ECB#1e z%d1yz<1l?qVSi&ujEJ-`}e~V^gTetEPPnx5erc2SJj;P16 zn6@LE>+3&?o)YMmKRrH+jbH^o$BsW1K$#9qv3O#u<|d-d2ZT2A!z3bGs*JVr1=++w zD!A>ds_HYMrZ4la=a46VdcZau^+qR*H7QsT>-Fk&kE$m(nC*O| zn@w^zw9tL5HA{P)d-^T{ z2_m^@j9ULKAck`hgQj{7mj_*$v3;%nXlL{Knrdn3Di1ZrP;#Mk%O0e~vHS_498$;q#iQg59D_+tycv7Tt?DU< zyh@EFAWaX~nK6>~R$8*s|*y7I!fOY2%7q&ni)4>*jKYntnG^Im|FHSirR>kO(qxz&hrk!> zZHXC?cr03a#uSHPY5p90H^Q6Z-6$K84YB86j4vL(P&e{4b`&FRP}l2!gDYVBWc!H~ z3O>1r8T+|A<({N8!rwTWDazWyf@4wJi3Q8GO1vnvN%TDLIfnd_pTf1?h7+6i1qE8h zRxOQJ&o65&rb-WLh(1QeqOrdytfMS}(p_;herT+{rR|*78Vcgp{Ii$9HJ9;k&(u&^ zS!uB_;FZBrpL7~#=>TtyQ7V?jYR<)xpzrzD`S!d-wERm2L8a#G7A>;7fV^!pW(JlOdmQfC` zv%mC~`OWy5?m4oo|FjlwS~nEw*nyQ*nl4~Rx;^nYi5F^l7NcU7V)fxN|M5 z>d^5or0x69%qi~6E*bB<@MYtykN?v+@3Oa#ORrph?|zv!8?O5cnjWrj+^>!k4*UE$ z^vn2lz9Rj1ANuKW=EweKt-7PVcke;tOK}IfyN%un^f6F-Y z{6E_Pf7qp`j1$g$is^IxmlWy^JI5QI7)_^piZ>YU9e?neoAd@lrYswLcp=(-AZb(J z(T3kYd~A6(`BA#=NZ>aHy#5vyoW^Z_(~xPs#-VOG?63LV?^s|(zy7^tNaT~Mi4zy*~wV+&}QNZi3m7(<@VP9WCPy3A_lH)|K zX>E@h8g&=s*7UUwZ3^~Vk9Ow{`<(~)VBs%yztnWQYvg|SVGnzlAHj3_>8C^gPglP3 z1(Q_u+L&Ch)9c>DAJYTV?`cN};7sYiX%V*HD*e(1RQ zeeO9fKJTOB;OiZ^W0T`~Z#{GT-$y@TzZ)0-EslJ$HW(g$lN*iCc;Nl~T5m4o$!;&z z)AM*j+`91eMxNr>W#4Oy=f^y9lCHYq z%509*Q#|)q$l>Sx@FT_z@3^|*D&fET!N=LRZQb3T^mxv{ylK4lmwsbhdcn@WAhG9w z1IBG0^cCY|Jz7{MXFDJIQsa*vRpME`ZGiBkhwtSMwu3cCx+Bt zj$W8qhg@yD@J3KTkhq}tMS6KlDW3HG17YK|VlLY0@dmAK)Qb(C-&D$}`NPn1ZH)~I z-t&fz525^Jl$G)6s&UNmhmQOFz%9n@?zf!F77sqL7GEm8<_|wGUh$jn8yD}pOtuqP z`~oxH8{LT!pB%5>w2S^FJdy8PkH1g6wjd|&X zSBw|`>bu8lpZ9?bP>)09a}H{|t=dhGt6H3|8;O{nkVuk#@ z`9(9`-FmmiA0@r55AFL}y)$A{m^ zdtjAvC7oW;>6y)XA#tkn!_cdA?mBqf^E*!%cY5FrKPej@+3@(P-+TY~+h0FxTz;vX z+=|~BByIl2n?}wl$?TqS*KfGV_)2X~^;BD2zuJ~J7(V9hUWe$GhQ2#Kt^2{lxlvN4EV$~YA{Qy_T3 zmoWY^NaRLzUG}C?^hh^ONRpD+mOepP*K$aSCm|1!6{3k<=6%~wPNC)6#b2e~tMk@@ zI$a%c?1AI@#~q?4w2)Ahn63u4tJn<=lH&s;S*q4w)&5{geUF12 z;V+vm;~&Oe8SWnlAn1IMfW>jOi9Fd3J&t%z;6aIFx@FzOSSE$L?V9J?)FI#MG!w}H zt?~h1#1h+xp*<5j*MG)Ez9P=28Qjuh3;z|LLvtUJ8a#%~_ECs|c4zujEYuj)n%-&^ zbkBFmnPwvkUa0Crvhy_5^%JVn20PAWo{{bPFLLq^Kcir2@uO>eH65p8G9~@WKN#(M zab2;V;1Pm-DoEhgr7Yr7+=PjJl>DP?yX(H^GVEGcYSLTsubxa=-SMb1@4ql)<0}u~ z1EE9Tf6;XTM-6PYMq_*Z6Ep=m3Bcp!!hDya`vz&D;?D|&Wn5;jj2grC(U-5aF&Uek z3!vKm;()2s|G79j5ZDxOR5h6?L_1F?Do!(}um}ol+E*jzf8;6R6Tf^VyPUJH@*l9+ zwAG@WGtA_CA$5W;^~YYxi03_H)^1u552Kv8%*d0rmo%Z`7b1{R=CtE#LxM^w5;3t1+5F# z+Y?)90Fq2;wrd@zcNEDoH<&9bh~(5{MER8(`wJkFl!{-q^S?j)C0moBVC5w_7qQrZ^@nGpHN6z zPx(Mb*WOkW8^|HJZJ!5ey8e#LLd<`T+EW<6YC z6u)JxR|W{P^g~&EAw4;tW&X9=M%re4=IT&UdESvgp{m+%!Keh*pFe@&`;Dnr4ifYR zUiy%1qiW)ztjB+fr~&N8Wk!A6-6*Ung10>}JLm>l3HK5U1n1MeenLy)-bGbRZb<+D zKmbWZK~%wl8GrEmM-(0_oTJn@cmBDT**T5MKk!&QWh(c7>U6%qvuMXt=M9NOwcdZy zSr>eP)-}A+S3~!m z-Qp133?sE(pi;=U<9`Blt7 zlo$4~e1W?>bHYqo-+vjg=eEq)e~4;%uF@*=v2Ru#?9f(QT?QB7)>Dt-bt^i^@we%s$wu zMW;<^ztYPwdDi&KxivrZ6|O*buK&D;n)ch!%7DYHKKMJXKjd5g=k;G0$Wa>C?+Mh~ zhVS`r4Ud2Hf?(}Nv3Ac_q;fB!m}S51Bynw>USl-k(q}NSj|kKpqswuT1SJ&YlS8=4 z-KNG$YiUZ>kD$za@$m%h(BwMT*rgW^K9D@PmW-7J+En-2GX49pz8j!C#rGdEp{oqpFP085{q^| ze+(}f1*68_`V0QrzO9R}2#-tCFneIde;m%k_Qc75o%K0A9mtf*H-W4{foZ z9>kvGHoZs^*Am%8P;H-ix{{mJzCx0rix$dKk>v!V|HX4*Pj_}^55s5^3nz>GPmOo z9<8y}B?PD;C(deHu@0@-b^Fxg5V3{3*4?#Dyz6|oO&}=h??RfytozORmhmrTMb+Lg zb29!5xUUyJcOsYkGfJ#S*4ZqqfBR`E*$>A0yc4IO>(#o8sX%qVfrYbi|KHvsw>H0J zf2OQ`lD(*K6lU3H9+_?|9Ymnt1u@S`1g#S;UE;5-h*jqTDO%os0|#*Ip=mSSH&pDk zKNvUW^sn-1lyZT#{Ng(pDNCeH$#}6U%gY+5wqGgmpf%2FXr-5k*5h5t3$OASd)RMF zP|{nxQa}Ga&*-!*=G~Nsh^mUos(XHioV7w5di#yM6&f@ItoVF`Y{p+YQd)~m`-+G0 z@AW_J1Fct&f4~0(W3f*MU>mLj^TyZ>KFWibt^If1W!e z-#E0$RKH(X=%rqSz^c;|v@ozuY5VD^@9|bdJLY91OzxmsscX{<5qtc1)z_-xNj`q5 zk82!U5-+pDpJ!R90o z3$GfNUZVGXmuXG)8|MwhwKsdbarB=*^lKXubPl-cdgG+i|9r>%V}x^8zO2etZsf#r z)wu0Eo%cW0f7r(>MZPwLtYd3Qve!9@lB~3B$0}qen{$jJ8HbcTN@bKyHYa;KWE}h8 z*vICa;WQin)xcdhgtKqA4t^Q^yxwx}QJB>~ z8X*L3dZhtHf z_$8Q~`Qy*g_-Fs?Eytrj7ggW1w3XqP%4fHR{}CqncUX}BF;)AS<{P;}ijoT%fA7=* z;~vP_-X}B0N8iMvfN^*B^X0V1zK#-N!KJh5Cvlo&o2VE}LTLeh78)asnz zw<+tul%~+cyc%L12fSuyVMhku$?5(|b7y*H`>jQuMw#s4pR`$zs3lVHr}Tky+1 z4yU+liXG&0z@|=`JYdbI%ey{{-FcL0EDMZ0Do6@mXQBHyFKr^NYzxWFdT>&t4BAzu4WmBG|u2!8ECu_gyqZ67>)S4{3}CD>E2Yc zSd@6F;>~e^?mNh@=jyYoUP7{-lt_z(NS9P0R>*Aj3!8i8?*qO77`6 zwrJ|bBv3YHE3OQ(OWNn@W)3hPj-kXYV?iyU%_J{yiHvBj(l8vk5VCI{6&Jcq4e$s) zVUKEkli@PX`@087(jg``g?1SA>>#(Ju>~?9uA4Y0ZAqMTghEjkPYTyt;i2(`T|Uk- zbF9;!K;#3l$sB_&I1<#_Ro|mi4%3k~xgDCEXLs>KP9hg48q~=3da=BNv7`FOxx~3O z;}nuJEBmI3OLt!Gh4vQ}=`EXmF$mN@>5dfSNxDyp6R8&ExRJ` zTwUbk|MOkdp;-5BneyEWZ@pc49*QzEqmyRUWcnJ2BrO!BM2ScTkl75}mo$&ETh_Ao zD9xyl4Byf)5`nyz7dkD7?GW4Ul1z`zKadQmqT6vyz@8umgEC0{gdfhB6+y}Z@xIB_ zZs2vfC6G;%6|&&uDTcVVLqQVO!z5gX_kN1wr5bh9$(-iMqHvkln;ep)s)}K}U=0A? zfQ0=cEWx+0%^rc56ZQB8Bgv~~NJmQFUf>wvupH>x*;R1`sV9!vQQKt1l^g~%1jUmd z1HRyY7{Ut9Pejv|vS9KI9u z8{1B3ZA(IiZa;`AEmRK_x^p!>O#z>BCgX%0;Tu2be@AzjqhH2+qx<*Oc7+$GMXYmn zQX3O6Fb9{TIO~iB1V4c7LUvogF7MP() zG$i|^-F2ChA)|1*Tq3I?GVX^c`JA(jl)gUY?1^2#vZJk61I(^SkK0yAq9>iognb-c z(cF)L+C9t5Qo8r$xVv@kSx&I0*=IjWAgt#8Zyaydjk4K(JRjZ|){S{IAzM8iX z*8ta<3inpNE7)a#0%#9R#TqvGjqfSck!^dJ|2mW-^?brHGmjyB53h$-wceF7U{lPa z?YTw2wUyfrA1L}h$eeh#0X%kl&vj>V+zk2qo7&jjasJkh7SCYvA z6;7X@hnsxwL*B{S?Gs83Y5s7oO6#U)>i3JHer>y;Gjltd={19`C0yZGZ%UmRN{(ZT_ZycYo7a?OUbxQVR02tz@~IeIg0}A# z-WLXVH|zvo{Aa~7WMGr@KvMYemnt-p+yl1#8Kd3sceV16NP+jc)-P)}8ef@)(Hz@> z+Vi)z+us9~eqQy*(F2cyv${vv6OZ)o;baU1BhW&3u7w!wUt(9H)IldAS)5RQJ=#Ay z(-;jHing6-ql}-;zzqJj5pz&SV?ZN2+Xy@YW#4cxZFeX5GMS5 zQvRNcYtbCx{^TGmAYr{Ao!lg{7(;za>jD1&&oHx`i`^c4|4NswUEYT?T-IPOw9q6% z+^fD;+etefLCa}jpFSYR-S}OG_%?blo~kuOUdNYDFeCWMLIU5o zHTr$Tmv@nsZ_$2E4nMYq+kZ{5sUk}KjE412aKT6Faj9|}O_7P(yxXXE!ZbJfjIj7M=64wv6zyo(VXyo3Ht9Ip<4;ulbGPF@yP zEw+1325wr`#_M@xW!_zrCMHLsaL$Y$?SEPd%gI_wI8d|o#Zr2502vx zV-am{R=nz>rNg~@VEJ`nHN9OW`~)0=+6l)hMQIj66WpDB`{dLBJtYfuGBz4<{i(uO zBRzhFDNWHyp%`$=e9UdZx#6gMaav?DNeR^L`g@_QTm0pH4Y5F7oBbPV=udy9&1f>U zLdg>>5;kWopwrP|QrhO*U0@REg*DIYl*|T&1S(qTP_y_<04}PTJQNeEQu6rzdeHmp znTs(TOg^r9)wTc@^W)ExJRDG=YWu|d`FX8h`N>2_At##@s8lI@Qs-aymA^ucSTaj5 zoFmT$ZWA?8p!rnv5aafid&yq$@?o$@!+k{97HG&8Ufhy94CNWWX2!Z6c!Fr8%7_}q zTB#ASEKt8&wJ6W_dBgqd-W5b68&Bl335@cZxIEy{fS3B`bDel`4ZNElt__R3VI zCnO%35dviinVZ}0pN>|geB!!xFwMID-zWJy>~S)ZuNSWP4$kQdYTlGeq4_LKrs#L; z5odaZ9yX&5s0TNLIvaZU6ohXyOrgvcQ}V`fGcQZqalXzcN$U;S;ZIzh2HDSrjtbRK zIk?{q80ZoF%69Nm49XQ`4t8iJYm zH@TpoU7&m*$IS(ufUY*=dqo^vQI^Gb?r||KD3}P1S5ZopMZ-(+mF_EHxBLnu6%)j) zsR!juC;7##)00Q2cij;tq5CSxhy9=FcSR;${t`4V=*%i)8`VH>7{-Gp6Z_vQg+tt4KRV6r@vUw&gPSfsbOMPIAnaP2y{Z zB=I^OYDY?N37$19LHZQ~2XY8fnf?l57X+j4wf@j3g`*YT@M6|K-?f1|d2;^t455pN z$X~&BWDNS3;M(+Ga1@_%iqj?II?n*g3`yPT&KH+qmI^kLU$z{^TRc34@@afmR`F)9 z&%VFAnE6|}kX{Hrc^U_&3g_m>)&_5I+a}h#42RM8{C*JhT9XY=jK=Owk?CdrZV39F zrd{~k(#!tc=ra*k=FK)r&{Ou9G0K7_taW2-Wj9u(uywXudR^fN@CbkI($26H6cF zlT{ZObB@Zn)`HD}hVH+S=M7QMODI%~FX)+tmaTM&z7_U<%bR=%71TP3izoJTK3l-~ z_^MK$eS+EWZCL>!>B1Ln4SW+cDZer;S?ot0nguUp;gamc()VvI6P0*&CBZssX^DPA z8B^xb|Ag;YVzHq&ZZ#K9cRek22$BVsek@P}$n*~59VLmxgQj)AtI`l^_HM>-7Nk-| z`H-kIq@2AsaW^y@7)*z*sWf_oV8bAP!iaKkx<8SD{4GXr+Ou^xcD6^8#8T%xf0$fb zL~QwID>JF~?gTy`hWXP%-oez;4(A~)^S)4+Vyqww2tKAz>x?0Z%`$1?pVnHPE{pOT zidMxqY^1hrz*96lZ-uT;K&N++Z_r*v>sm=+!_L#~y_cdK)jZp{IvQ&M%s2|zg z@?tKXp;@KN$5#}jF#27Osg;Axh)qlRj~s8)3&#olX5SV4>%QAAz57-oC9G1rWnuXCc=exmITKc?Hqi~EMiXGb`muA6RP?A^25$E_de8?f(V9!GhhNZi zC50t=lm|6(X$H0t*Xls&0+B~|0;p{!GvEyrweR`rffbZCvl9Z@^Kw_23mzaGKxseu zV9)m=+cFmQ=so2#wt$u#W&x-MhlS)p2uvkmn}x8oD_f_3Y@4wIbFqBxnCJ+_v(368 zX(6|MVhgJHX!CM2o^XPK+ywM#(LC{^7d>_7n%s#f=5atGr4=4uQPeN?)EY8(Rd=j}s1&ggO<^#^w@Qu;=Y}>lfe$CSH3aW+d_Jc*D^l zKsO*{ksi+lQc7ogLN}op&k%x=Csovceq_4Em8NGu?Q?y58kg zeb@OKb2|WhRIn2UA;iv}&WF6TUlR$lrDUbn+1${mZk3avb}eKu;9n`-b#76u5Qa z%EL13Mr=ml(_47@y&%k#M$ple@zm_|I%4n=Pi^65LBr%BZuO&a)qsKCPAU%`B6GM-|r46l(Vdgu0P8k5qW?hZRcJVPM!E+>lfMSbP>7Jdak zc}kF+rR;c3ii939?7|Pecwua5QC`!wN9CB>`4E*52+1@qv=W`)krS1BagzG7ZW4~L zB!$o}?};3+l9#rhzSUU?LGCB+=%ZSKnvB+2)(5ekNMjuB>+&G!umC;Z)IwhMnuaZX zA%4i@km|!1F-XXX{ZX@m-*8Hill@g^QzmB1NBDl^;HX)nMN(7oGJ!*AmEpvCZ57DY z!6h0OBVNUgey3|I2J}OvD+^+ zhJhHo)co(+p#WRt{4c2BPoydGTss5|DMH@T4f_z4b&K>{@5iEnr%NbnVIo=F8Ku|r z;UPy_`}(!tx^@k%r8tPeEsx26SKXB!2Pm%Y;ecJ2XPl4WSihvFzF+uxKb-k&8iW~~onJ)B0}QCtyr6btd2<`$Sy5qBaZoYPLirjX|b zzzzBoe7E4w(Wdsk-9c~niX0k~9(~Cndnuqqey#Dj+3s_wzH$Hg7{8yK=K$^KAxGBv zXM%gg@h*xlCNw5Tf2YKMv%}cE(-gX)NFbw+igOssKXBVs_9*hKLpkqgosTacJV?ju zDTTM$ZI(0!Y+uMMxfsl|OEP97}u*41dc+%Ht0 ziROa}_|i~)8cljn2jc!{vv*FLCk5*0+P&VM8I(_nc=kn=*E^;)I*Enxtz&ZaYkzd( zB##6dxgD$4=8tsn_K^IlJOlS8#l2LQ3j_BOmQ?-OeXN0dSRKBb4)&Vgx;h4Bt#Am9 z>MqdYi~@hHcW3=Yh5%DeLTm!yvo*NT?E823UbXQPwEbC^T~(*gazf}&@7_z)x$6&E z1dz;f2djt5C=Ki%=0Ql`rc#r)~*CfyPg;{j4vJ!kFv{i=Z)-8F&NYKI~Gx+yg zek;~!AYE_?&v*A6diY*K+q4;q$>e9(!pC@?iFlnxsEJ`R8B&B^+#fTCm;DSv6sz|S zUdO6s_2;R&tq**T6XmwHubH_M{at-rpviE{0)lQvD_}z}j?@mRgv_+|m?Y^kp{883 z(b|j2r5?=Q&%c;3AK*afO}~BF0PA_rut@sj1&?5x(CQUSMO#4){RxfdZC(jiUf;}n zNa&O@;KwF;8s0jt&3g7uqgdE?(*w-Vtv54y>Fn6g1WPslMSF$BYq-dp@X@*Od@0YI z3l7LpAyI}QE~UG=Y_?T+J{I&5=BAAQlC(_I-_(O`4$AF1_D|>V@7+D5`W~==UeAW(7q74kAGLsTSq;SavQ36BJ_PdNSp$9?^f9gyY}GcZqgM| zz*6JQS0#W}eXUP`FV82NAN!*6B0l30v>Yur?;?`gi)=ekW+13oSCLsg%l`>O#f;Gz2RR!M=X;#l`!)LQZ;+8Q9!uw1*=tqns_&s z@gA~tSEn4H3H+FNRj~U+uRLn}M*He(&GrXqDuPU*m3q_SOJ5R>a%nx2=lyn)7%S1= z`U8If!LKkfd?f#pqzYuEL1J=1w6bzSt-xA*PMwDlzet|fQdEO1Z>Gh4)=Ihc#1xol z9Nfu%pFY~a!=d+XO2zW~7uF*h=_~u3O6H{GbM=UHITPovuG3A2!t1H4Gm;`unUyO! ztRFADD-lv^aR(Qy4Ouz?OalkwDkqvyA@>9}N{Vy^N!G;U!}TwknmsJ3GQS0_3{qHN z6rr?k1$gB*vq9_Rbyv>G)nfnV71lwohK*PJEso0BG{$%^DZ zkjnCWf3Zhuqth=BUvj4(awW=JGfo>TFsxA>5ICfz;4h1#LNATELfD^=i0=h$6L1m- z$8VeEk1@d?TV5ry>57*$G@ryTqru7vh6^b+=4fYh_RYZ+`N<{SU6!spZ(qOh>*$YOA!|2MN&ohPi!LcEuN&IKpY_zs z)=0&Ew#Wk{G8%VCeKvg;l=n`YfgbkF9z#0x~)fCMyoLz>GxG6g#jnT(PX?Z-o5~*N|UY%G=CD7A6KJ zQ0&xS%2iuLgR7oL`Fr&7b#9VDZX4)(ejkhfzWU61P)Wa9c=oY^XYkr$pP6k-Zf)MV z+u+RP%r^_sB^0kxKKwdfFVIZ^W;l8Izb0Z9D!}K#XVHM3gnDayUSL4FLX?9oXxoX& zq3Ux%_QvpJKpvlti4{$u2ST&R^6k5RMs|4WX~qC8?{K<_9iKaRQ>vY(Fk#Szv`6My zY<=PAb6YZS_L2Dm2Z;xgx&lTO!W|iNW(_ss#TRx};ZXW-Xf17gUhXBiXa?&QI830< z0@XVVBEaTad#}``gI$kEzo4J+li+#4@5rjI4t#ul-tOer&W`gb$Vwv+F`kVulIe$> z4b%6>S?3Oi-kZJkU7COsvskW~JhhI3Osf7HHXA%O5+~{0A@3CJ`3kNCA|2#sr1Y7NzXda+K)%&g6W0%u~K5&owEL7;6f{uc9ls8dg$a=h5 z@KyC*0#smpM5SM>&`0e#uct6JziLJyhRF~wJcdpkV-4HcNdBW|ru8N;W31nd_0I9) zh?Fba_{W#5xoRBrKc7efa(Ac{=p8+d+U7;H4{Zbump`s?!|#8^n&!S4Gm8e?l*}(6~=LN$Uph^Q=y!6_S5E_T=-)H;7 zDlIQ5qjJD?jIKX!EU&8N#I3dY*UtJ|$8iLVWVUyNDQRoMGU|9Xk`Le~h`KuZpd03; zK%M5!HM$f8CVM!l2y5Hzp|?Q}6Ef0h?ZQGBV%llG)D37@#O^RLXo2u8kJ!-o?La^U zXHzj%Ten%z4x;}Sy>w1iq6Hh;FNDBi7(oXmU26mv2s7HB7t$lXSRFkI7g8+BA z69f3GkgXU%=Cal=`ZvlhIw2i+hP+5BRd-Z-Dd!cik;Vu|csevMO=ihm$i~wYG}7VZHRQavA=x!Mmf59yQwa3Bq5pO z*CgT(P=8~8w4CgKNnhiuqNRy~7qOdFUUXHC^(zx9Pe{g~t%5>3q}#IQ<-3l^k(^@4 z#kBL&IvYuDYa9=hh)jMRLopIT9lWgc${%&p@d)A!kHj0F+p`!~*XS?BJA6PQXHqL` zzH#|Q_bAy*gGmG0;0(V!|NNy5yVG{4<2z$mRXlvVeAw@-wD+pvaB8rZ;l&DLo1~MuOmYg` z6ULQL)L&q6e)vjpW_LQ5D;lUsVojg?@YG?$qx%Q+(^GSaELe6K8B3Nhe9AD)J3~ZX zIvI<|{KHjdB%R&cka$SEFMr1S{6?ta>Vs~YQ0i@;Cn`%h@#+Zsq_%C~yglNII(%9u zJpGkSN0hLU+oQQ`$Qdjn(ish1yt}~*SQv|6c`3Rk?+*nwa$+j0eCYC`io@x!O$7Yr z^3WEH_6O)BtIqES&88gR-_r1$^K3MNm!?7GFQws5!)e5QAFYWhFfN)muQ-d|sX0d( zkU1~LW!-ZG6=;s1Tw8rk8(?&|aKR||1AqNZRJ~>Lwwitv`9iu%BFW(=G!LlOkm21b|K^*Y7%%LcAjNG) z4C*L+p@~S;@6?IKtl4`;q!U54B|YbwRTF85lI}CZ0>eVQ(ZPdhq$VJzH)$5R52IfJ zESYC*{OOQRIsJAH$?gOD7y;=iW-ltGq&;z6dvO15xEgjC1#Ghs;2X^sQmHMd9*D5V zSDyEW$$yu+zH=U4WA9l%5`WMwDkH5ncm!0WK70J3rPY0*4T6;q(?*W zX`U^%OZ`4<%ttv+PH)$h_;&x%VodnTYNf10?n(X<(hk1g&E%NbvHyWt?e^%|3n5{{ zPs=%exxV6Mgk?ez7gyG=^c4juesj<|&{r%&^4(YH+xgfv9`yEko;Z<~CZ=x3U{%Eo z5-&%hub9|L;>a3{m4cq8gJhKu=IkTgNAVx_S80*teJ>_m`MHq-DdoL#GSUg?xU4bZiS(HhAE2ki1A04iD-!F{p{7aY&Se*#g9-4mG4W|! zY{vfh^?CX3A|ro-aFm4vXagbg!*X=GyZFQMq9=qup5345!q}5 zoc;CP-ptYK!t^+65UwL#uHy+J4#%NC6T$b-r>)?RLDQuvpidk;eps+fcanoA|)IClKDoID~kzDw2Eg-+LpjI_mBl58vh^UiZgJ( z1~eplYg9cUw#Sk8tSueDdABv!=;D~LJ-_3R9dxix+gwXnJ70<8dS^w1dgt$h zzn@NubUF&e4HkrzU@`)hJ4$!K>9DD&DJscBL3 zy3=d4UD@#hO>}Ix@SSH{8Q%+6N#~~>G^tGX+wm&@440;NqR}PN>`xw3+&RA!NxPAe z2}%6fH^!2U#u=Zzvl#9UUC5kjP+n%WVo-dTt(@y)^9f=l)TtzB%@Tf%T599zfAMSc z+P_W|gr5>DCec;vDB1mAt0RqTOI~iDOl24`|NA0NFk=lyuj|OxyK2ox_;5xOxJ?8n z!@HAC)L&@`bMCM?d@GjtFIYxUBb(qSbP>{$E;MI1h`xM9WJ(f3b!Od~f}b~S4(5v^ zjT&mHDaO%A$bx7zQtq4%CzL5mK?riVtvPBe62c*wYi70FVKBIyO$%6IeoCkwvKnj2 ztbZ7S8?*i*?6C=WV{)>W{N262j|DMp@w3qBXe`5)<`d!O!65!l`FQ1uYgb0 zDOJcHzU*y^wE;?2ZdY1$A8gqu&F;}-wFS-=)pvbzdLa2bN1r!#Z6WQ$lQF-Xo$_~) ze=~6==125PK{V$%KZ8~~ZJ~rImp&N@=b--tzW>+3V~-WF5L z7<7 z&u>fv6bf*;NS*@0Bc4wl+Eu{aZ!Vva;Aq*iUH)*B;+g*LoXR@#LAQ5Hj<3B9JWobB z-iYMRh?=I)mVaj+oZDAQ)6K+xqfal~yNg8exQ0qS=}r*6E6jG|=$>emTPZy6=!B|< zle_7fUXwkZmyW>6*=Fl;tH!Q=h)b^S58C+g%jmM@E!2vt2)ki>5)Y-=`l;`=k6|8# z1yVI)4Tj-jQ)%nHT)X>>edZqO8&5RuJ@nxB^E!Vse%~kT1#plR#`6SzK3}Z-S|C)9 z{UrU-bVK>?RP0%JN>AtgXT1m!Yo`e(krx$&Nalw=9erd-2|RESp?ApS7uXQ_+ZR|L z?BEr-SSj!I{cd1Q=r+T^DEG(G;loq3#A7KNFMMR4+@l7qh&}g{`;JRp(#>2)i=dDn z#Y0Qb>5sochW%x-A990ymX$=RfEP_=ex?VFWf1EMq0;IpQHX=h5#oNv)ATJ1lV;WW zs9<|bi?ow0W|HF|tTN02Y!SZXSIRhcgvt7NF}3jv^Hnth^go`JWQp7m8Y(Es+!`l+ z)ldOtdjq#3yAyQShaC}=56xycb>bf=PF{Ur+0uk*Q|b)w@u9z5Xl(fWFYShZF$e5= zjJZ5nJ@xnZWb3goqi#L-B|ZO#iCi}a-@HSVyt?3&nD{UxcNfHGSLrJf+RQt|=2!Zura074N*>?bvp!rJ5)(-sIKB2% zwzb}agXkDvo&ch$=G7bWA`jHd5@*>%|X4xDL}g#~kfR7W1mM3}Jn~VS68I z^S8irWJjsOy_oUUeJ`&5Z*I9fWghkB=~U7_KLZU zrgZsu&*coAR(QVI!~($is4|a56X2;9QD4NoDlW-!+U?C37ReneVfi~H6sZJijh-L{ zi9lntTciPdt#Qi5>@v6vU8-pj6lEbt$)d?v6S(n4@oFNM26gJT;R7F`?lN^{3SgpE z?2vm+8DRMH3W&!fEPu~3+|^wJ=CrDR>*OpK{NOp=G(FZQUtx;zicKvrG7h(RQaw2A zH*6o?xw-_aKcVvZpLzMQN8;XQqaK^RR!W=w(~#i9fJ?ru3U$w7PS0-8aq-fxx^8k9 z)Mg*_hhMScUu0)Y(VgS%v^Y{gz=i3OCivHsom`G}AVM>A5>8gayiVk2(h2NTRBDqL zbP3{grSFd|UHA(SeBpK>Jvv^W2sU*Zo`I;HYbs%X34>NJA|cxfw&y>8*|S>TH&oy8 zyg~8lbbEQ;`edJNFWt>XG{NJlzXoF=W&8ZW-pfNb(rUY77;NX8gMr&M4aBjH(1jnb znvo&vv!I3D2Amkpg%K_Ej_-6EpR&G7|F(k<00vmT%Fz1rW^(ttAzVk_>~pG-m21f~ zj254TP;2>V&wm%X2NZx{jpEaE7Onb9b_S79;lytKAf5bjL!E(;lrwLReZFEU{?%){ zxC}2en}Ke4(Z=#L07F>!vq-KIi$YPx(oF)iZWOw8Ho$ zpkZH-D!0n~@yLFs-SinpJ=lI|hcleujCr?QwsFYsPB9mI*@rge4oClkz8N`6Wh1>vyNODt91_B*4s$}(LTZ} zD)~f=LbmimdkNZbvPte;C@}|9M;nKboMrAv?;VJN>a~a|kYOzq8QYn+wHR77bPBe_ z1Pi2012~Nq>9pnHcXgVpeY3uhRcxIG2G=laWYX;0WQ@EuP1u4H5h`zGJj4~6Z6nY1g<|<+Qi39_HjPZm>%>J*$y`9NHm4hzhbIs7HM=Y^(y@90< zT2b^9#B?sb2{MQaYa!fB__G{J`3WLb?);IX+*-}e>w!(i+17_m!70$4w-73XdK#={ z&gh{vJKo4r#>Yjanx{Bv- zpw(WtJDrbA|LVFBgpa$tvi4b$$b#=faBvKQnbd*z3QXA?;6#oMo+1w?(1*m+44}+1 zAYEhOo&I*{T?Zg#jK1`KC2v11_oxWgwm*xc{&{mDFMr~*_J03vx6gmLJ_WalokPPX<10A%P*XTaq>tbk!JG%qW+z0u z*Pne(R_?E0huqUgUkryn);Iqo@HHyMx-xMp*n27Gdfy1%59# zAyd^=Eqc1Ms&2v{g#%D~-fpYJwav678Z#c!^pN_jPf%&2XOO-*c`PM+Z+PG{WlbH5Z4kMoF z)onO)2(7J#F6{EEJznQ^(fJPo)}gLnC;!|_b>8>M@ZR_}TOVMQC zp1W)ftTq>B6QN5d@B0MtH)QL;OTqAOWc7KwivW!7Hb@|p)jD2jD<~_u#o6v2)}!yi z7{2zyVwKt_6_mm9BvZX`nYpsy#U#5VX>gQ9?DJdFZGIhoBPCpnt|s?hr65R1bP{nz z<-bLFTycZ9zs87RB!1Yps(r)ia|`c`8a)6cRr&Xw_dWeRWrqHExO3|bDaAm(ZK1Nu z4kA;(RARo(zuf5hPcMC^O<5?Z8m6fF@BKsc#L5+O7r#pxK54taI44U{2a}2A%fWoX z_l?o__N2q*xswDFhSP*cN`xbM?_u31Iv3Ud!}`6uMDyMr<{BhtJ^D{iB)Is@$jDYv z8J&of96B<2$7GprIg`Y2u8$3Eu2Tm#BeV2e#D8_;)y99|7S~EW0_-7t`u#yt4{?ht z7J7zGI!we}ok*Bz3nkCZG~A|c{&l?A8As_oATes(R9gszb}aasoidcT-5l+(;&JUy zM2FtBMu1x}ST=QG*%6z)xXjfvJgXktEZJ*v2r`Zx6K%J?OWTW2qsj_-?t3fX4_5Gq z77saY2pHmugmS)jC*p~6A6=twS*r(!>vGWY++^MudB^o<3FUMv~e0S2xB4hBuaLY*K z@S|@^C~tzQeImRs$m4Q(2lMys*m^W_P?BGRz?I-9=?^t?O2$FfOOAg*TDAXMj=^?* zl~r83I(%Kb#32U{g|e)DPVHuoajsZNLVCuJ zS7PXwX$Z@X^Owava@JeNZ=ScBN&fTZMd)@Fm(ztBb>HKdq!CbvR0B7zHRg?j6f9v$ zTBKilz;i@M;)Vp~Y|aZK2SwEf1-si+kk&icaGvkYtP3?F9`W{HGp>E-dhW<#)I2kC zOXx%CF}shL{Sn?PXnXbGfyzySqnl$0n9RY(h5P4kd_U>B zzUx!h$J`lfA~VLLTs37{5yBM2@;3UdBZ{40NEa)U{(KcDJnFKu-JkeYRF3yApDkVj zvGZt=51_dG2kFBduS6G#>+6VR->IJt}ea`1>zY~a$A1?kj zwj$IoutG(!gZG@fmM4hfFO8%%e~L+j59JZ#2G5R1xb;8N?3AO?NpT)O88n_LW61+# zg-SRcE78m^5WD<1!DUoZQ`=GntJPzC(BGFx{CoD*9@<&Ay~}HhL*GM!8O5E&^Fi;e zOK8pf_#`A4iS?{d=c*Rusw!o@l$TxjU zCQlxbWn=dLUI0I<{fZ&hw)QEbx-b`e_wmi&2Wpb6zTV*1s2;^;S(U~T zYs$5s@d=6%?AU;*K>@f3qsD@GgdU#jVNXX)RA!@**3DnZNs8-+MpgfQ~POb@ViJ> z1t%deEvfJyOsvv;d&V2l48Eh2mF=N$El^JViSuO$j|Q*nxZY#DA=5nM_LK_`!)aB@fGy^@`=6$5SgYUB;o5qmngRC|Xmf*|~iS zM_l1=jl*-i2@Q0R)PDcbmgCv>P`6I*plfe7hp*8mtE0O+^5U65G z;{F*E+!mVKXRjbMU*PvnK0~O@F>7rh)7fVCw6B%XGzD|ll*S%SIA&cVfi9SfvI_Q! z*FL0&woEo2_+>Ng!F$V-_w|gE6mqw_)!$B=ia{nZ(%pTm9pSQS>>t!rTt%=wJeqCE z@!W4?0{@6c4r*25Q09RfLht7-s3?wouC`+&s|7aAmUnRCCs;CQ;_g@{<_lh`IR2jPDwX}ZA!#g%l8 z+_>d27wX=DFhvgh6j$-Fqh9zX;P6Ll-E;L`K)RFU2A(ezea``x!oYL*ZRfyAfaEPQ z-dB9G3)!n;P;~P794yrXR#{d-!5z3o#R}jJol|wu!K=;}=?;f>L^)AM>{hWcHd}@u++x(IX4Zp8W{2?#|ToL#VWE&UfC?=Z|??*vSnK<3R=aMXUrDcc)#p{LqXAHbbG@%)Qk0sw+ZL_ zl-!mp^`kz%%$FX2=JUjiZ+PXeh>$MBLc`+HC@tn3{J7J=#1ksXTD`c>+s=*0J6T-yTa9$>cPPiR`*{*t4U9@Q(rEQ_pGIH$r^@;d z&Ju!WYUv2|C>s>eeJSMrK+vF5q$UI~Rg&qhNeRr%rs=`odBNLvW+b9EuV=8A24`Ib>nsn>kjLLe&NCVJ|>(1?QU zt1f%5ZEcc}OFc|wbARSTR%MZ5Nb5k6xgW?lkl%IZXjvXzV#|>|5V=Gnf=i%^O|3nGAr>Cj%X17p3=rEeEddtmnm1^O z7Mqar#?nvu2hpDRpT&ZQzVu;q`hG+kB35(2I)g&*4um_d6R+|B}1<*G(I41(@KBQFwXM0;ci8&|Ll3-l)rj`yHI{3wr# z^~5*lxpZLED@Ks@3(6lWT<4KTHG+2S-wPq}g~r0d_GMIH#rywK;L{Z< zx;Z!v__P5Xx5GZ)+SqX>Jszr}{0?+!i|x^8sewP@DBI$5N(!^I5{awalB>kByr1Qo#EWrcIS?;HERUn#C}P7GDDlCod~=u$!q}se9a0)% z6OM$~{SS}WN(B;6$o-*(gfG?&hL7eK48Q&Fymq+7<9cY?WFV#SYG+wWxpCenuaXqx z9<}^uy)agE1c^3@$ab(&V6!)dfN|i4A^)A(7<_+6*m}O@weAB2kvkB2H_7EhY!~PxUQ%E#3ml%Bp3cns$&+8w#OJx z-T%8BY$zPd1T@^o`jZs?vWo3RFBgQ={+QuBEpcKwTKswcBZ-VY`W(Hs^KJTiPH}Vo zd;J~H5Xj7NwEn}^vX$L^H-QZH^`}m@89uWiN<6cuIhQ21e6KA6HLyDW@M$`UcK^^Y z*W=>)OE_-mv;Gba6VqD81Ol(Ws#2Rmu_b?Oz|zcjBFWNAUX0J}Sr3p2V2llt)JbWN zJ~aD|T+j1w@YpmsjUBu2UB`SEm^~C9_E|dHVk5n4FE{ej>kqs=|Mx_2AS^un!dti- zhBfvU4D#$@a94Cg;f;^Gy50K3>$f|edgFHejk-dUn(ckQvdnOc6b0IA6%!UMDKc)Q1kQrgOa6VjGbeEO?Jsla<@cVPxP4O%d3OXob!oT z`WLry>ZR5}<%lgYI#xo!h=wo(5iat5y@26sI2MR)BS#9EvQQANMVlUd`qL_w|PjA%jnPsi5*O;>o3chC(!83 z43RA~8@)P*r+z*EErZ^8l%=!f9;X%3rOCj1W~RvDPy&RSYnSSVT!*|~fkCfeHQ(1? z*j|4zG`$YK{wSxUCZ4|TNHliF4TkJhlc}q!p&-ha)Dlnkzt>*}!o|ojX0me-X(s7> zPB?mEjBY_dl$L-yGdF&FeX)%W&VLB%KXJJr$zNwmbOL()m)HMzAcv_@9p?H^lGk5} zFf}~L%7bL$WJpN%@4?J9u6)Em-I$}q#yaK8{-x#aWFvQ=KSZAAGn;N417~Q{@~Zc z`%g;NefLkkkOKhAeEd(K_JxnioBtxPU#<&DIXQ~Z4Sf7F9ddQK*_XJ8F?l75*u}p> z^U1XOkBsvljBV&OC4XE@I`-x|I{;LvM*_xRJ^w?Xqd7w?i;2y)65@hG*Ml#K;kVCS z;5fAaG3I~Vrz&%lfv>Yd!ISH#jextw8e+IjW4W)ttl{i0?=@l0&;PvMif{X$;*=K| zfqVVs#C5{Y5rCaG&P0Wc9x>iU43c9+SFgXSKg_0otkExd-~4zzZr2~%c)VnK9qg8Z zVI{iePi-`>e}LVa$WX`$VY|Ryf6t(qxXyY_9jf%LheW%KT%a}vg(qip_UV<3Z*aTA z8HvBo|ERM5p(`3EUTX=)jd}L`oA@3KmTHi>Y_YQ1`F1V_Vw~4Im}D&tVwxZ)`by0s z3U7;`T<#_bJAtzP*tFbUf%-Q{Fk=v^Y0awk6p;iYMHF7c^VwC-{~-$^M@0I?=yg-z z-?1+^=RknIR>U8%ySCtV0}Bxd%b36^E}YDl{U?Zbr)+cnWuH#iu;L)i!ezY5HBSD) zdn{Q#Hs_j|$|OXHYM|&DlGE;Jh6YQiRxNe0iWmpG`7)PfhM=%wQbx^1U`p$8@cvaO7^AyAeD0WD$o1R{rOiX_r6Do%?2e1PeooQ z@i>+`kSFikcqD6Qn4JJfoY;6Y^K2@eDv7>dl!6B&(l&G3CsC$#J@#`_v|)l@%{-Eg zfy__+2W1(WFef%MV4!yXyf|hibDZMGVVc^H`I+!`ZT0|MdvRe#oGpT`(`mx%%S ztD{c+qjj39P1fdN8e8*D?uPZ?ybk|ex5OwP=E?Pdc)b!(j@?>M^pnUw8Vjqe-RqP1 z8&WDB8KLcRuiNSRJ9J_YXnmcAldO*ssRT~dTsI^WHyx_J|1n6Cc*^UqAX4AP6P(sh z1aKby8aqgsXKzmZQ%8#vSBUm_GL2pBkG|lgCjkZEyfj?*{}BNUWR&P(r&XVEeC8=C zoLFW30SoP7jWs?c#vhWLr(A!d_w@ihrc2M5mkj2D9ol6MxOl{j+YVeMK@#P>+}!=I zmPYAdE|HjLDDc1Mym$+yHB&EOaP{3DWb#1b63IjJH)?#^KN$Q7=si<_`vZ|^=k>oM zMrTXU49Bl#i8cBvL0Z>!l7cM=Z}9POj2T52&ic!&Xjq9Okua3q_|VKXa-0-aEv$>6t<|30@T z->j95g|piD?EmaPV!^k&v4hioReXCTe_(2jA~U2$s_z(^wf^TeK!v6LGWA2RE4ay! z6C(aJrrCe^?cax}a;(phLFPACu`ziP48Y_XN@h#&o*uP-P_K<2)VJ0iQt#K30)p~O z=E)JW_54c|0K*4t875zGbbZ(Q6I!*dqYN3_*8Bpi8x_JJd1_9WH<6y=T+rQUl_5m@0QUEze z?0pWz)V-E-F=*m~4Bq%UWkZ^40a}`oopiqR_;-{poD>wqEk05&jV)InF~Gs4LtTm! z1(QAAn6K*(3%QXmoaXT;^L;Pw{@3+SRRoXST$@rkq%`r!N!DMrVgDd@OdfD>?2#wN z?k?wVg;7#Mwim&+J`^)~#0kWDfLHuL_8LKB!$6Ecmd{7>AH=l`K3ItgsX z0lOZf!&fw^DBz$LGaDg|?!5lT{u5@_V`Zz4!?z@pY*>jYC}LqP2;!*6?%A;=r$O%i zd=@(w%-0ql%@WP(zjc^=Z72__|7nb2*^gb9lk*Sl+TwF%c49!9978?Ai(*G47vXlF z)PLERMoMY@!WWhvSLVoEYvEVFD~d4*zWDE2#cLv1Bax4pp4M+_Cxh(2#Ay}>9i|*3$n{!d^QmY3iLDM+ zlVx0W@;}87gDJsLMdI{(Rzw?e<}0-#JASARmL7a$pyMK4s@5_V0ioXlJ|Vs zcJD)XZQNXV-BoU-Q9JRMx#f=6qoZ=vLcd(NJ?`$Qi_I_ikJWK>j1y$zwGj{mw4`%! z9_??~@qsIMZ|}VN%i9B2-uWBGxf1=l)0q0KTpi!9JEQJ>$3uE>vtj{tKcBFXUPdp}@%#?Smcl{)8Z7C$rI|7SjCisvL3IePww>OO<}uhTCWK8@mi zRt)@dqxXmTrN<&?&V5x4lQ9pdvEjjeQ{cEkks$m}+0!G(78}N38Plpm&zOeoB(l$o z!zW|x;Q`CM_l4oVvA|I~4Q+!Tu#F#mOVlwvwyV6l`e$B0jNznl|6Aqs&8v1`khebQ z>!)M-`UiJutI?%O3DNgaXUrkz(N+v|5}~cmtFJA=)8J@Pm{S1eE&6I#9J+J=@FAz6 ztKB(IG4&4~-p;!K^#KpM#*Mrj$Y{k}hC@a?wW9}*pW16^AL#18b-=!l##ukuf8FPN z&gb01ljU#aUocc2dwbePzF_-ZfBp0Jc?S>chNf?O$)DREdfWj8JpQ&Hg)U)B0e4|lMxO%gs=fu1a@LM!L+4A{}V-)^J1sTly%>4yHJvtct!z+)8N51_=O|14WO$m@|?5^Hd zouf`nejDh(!ebSN{69YT4^{|ZvBiO7-2G2{aqKs8&MmI?V{@<%810`vG4u^6xEFuk zbGMKBtY_@DmknP2^*_IT=ihlvcmOm^`Zj#fh;7XQ*({jja4z5m<~|ejjXmO-*(M*r zRZi{TaP2JYYI=g#_<&JRHcb8ZALJV+>&@oM%^Jfan|=LFH9X|D)*o9MK4{LrFMSh2 z{6~G@2q`{ynK?KNr??zVUD8YII3d+!=f+GeXG3y8zwW<_>))_L6f20B)2W}}b{^)= zpI+)53Y#g$ZRG+Yxy>XqHIva>YcCo#i`Xy&o~pu<`Js(3yspSb;Po}XBm(sxL_Cp& z?Q}TdM`)n@Y20u<;2>c_w7lx4HzhAKEob^9BXC`suh?Q%K*JRD>H2=8K zk;PWy3kZAx{I)0Eu-*Ce8@3y7(c44S3|!i>zfb%tPJ9aFn)S)>Fze{(OX|3>*8mRI z2p!ivqs?l5111{cG@|u4m_zUrOgKVBDrz$sZrp;ke-AYQ=WDKd>6s4f=n>M;YwVW` zn&kQ?Ih&G(p&qd}u>|VJ-p`R!e?S&fw#*UhCoBYRo z@@)de)IW1*S9!6Bk?WClJN67VFk8<8(smB%G|n{Sc`d2kC8F3IPQmJ<923|zhCDxn z0EL?^DkPxMCr?fEfB6$>FtHPbwe)}>d%lbYb7OdW6Sl&vBA*h2s3H0sI^z@PGj#^=jCuT8a}d9V$Bn0M8p5C z8T$`Of>3^FWdlEtHj3jSf!7cn16n6`HTKa&1ta`G=fOZv1v&pmW`qvO38b3rknh(& zPmGjqFw+^o9}F~?SEK%wLnDNl8>oV079!WqJRnIkHZ!p#ZdU(dF;Ro5|KYWN>D1f5 zVe)@={=5EO|9HqzHghrN`O{0`n7AgWnHGPH6EpNJ4{=dbBgTJhB=`EOCq9APnFy{K zAlxVL5RXK1;2v%uJj55X+Ke#X4RnM8an0PHe_@48FI{}i2#E+o8&+`*t<{Y2c1$qd zBXym|#QR7%)*CoFVxCKWwzd^Rr!nDx$+d-A+aXR9V+)L(nrkpdehrB)IOwIsn!QB? zjCmaXlRq4}W)7(^W`Ky1U!MTt|G}tBjNwJf$n~_9<}z`(a$q}bz_s@T9&BqgJu>?j zr^bc?vRu7%KEF};`3J?=x*IU#swDFHKU+ACC4}R|c8n@SUy`Z6f3;9I7T$74ZZ5n* ze{AEr8|F*uzMh8Ca9)3s3$B#RzW+2nUVmsz7=!Z!w`(It$D+RRHum&1d3JK^@27Os}!S z@4A`|z}T?pN;I!~$~V~!%&~UeB(sGbX(YMlQx4XM`OXjb)Q|P{zL$*mSJXG}KYez1 zp7kG`{mWjA_Q4!xJFqeW9ldTiFi?U~dynBt{^m?O;bPM}X5-m^Q(Zaf{@YJhVVw5F z&=NR^@wbmX&;j{$gqG`zgzzJWb3loZ6posOKuEwe^O;GL3d3VPBGw>9vO(*Q-scd5 zYc%39g^t8Q%W*OAdLFtH5-G__r(06Z;Rt?%%O!rW;nd$=FSu;fqf+K+{kD$Y%f5 zjy|~rT^sB7!y!#xjw7L|e`>Xq} zT!%HIRH3rY;O!SMt7{Kmxm`)W{yO6F^~Ai=9%2F#1yN*|ChvMgg-%*T!gMb#2o!sZ z9tSoUc^#&X2orBSgY5Mu!L{B7?s*YmuMe&5UaP|e^lGOO9<_^B;ZJ3q0dF{p^o1(yS%pHB#oZ z1RRZyc8wFsJ(+}r#6P}iz_6)=x;gfNW4a=3gq`Hh1AEtQ*C5&V75-O#Q23<5+x@?< zpNJh3abKgMDaQrK*vD_R;v56~)V4e)J-{>HjfA~Q^Sr`{j-&k_N~p3IBl8?IZq)Tv z71TjwE!OqVS`~>g=Ab7aOA@xF5@$W9mYVI)iOxUP*?(oqI)y5cz>>JmeQ9nVhyTQg zb!3PC@ODmZdu|>c;|1&Pm8O^F!2gl|c{JFy)jrpi)Wmtr^Ig`TdQ81VX7+i#WF7?5 zf>WfrU=n5L&9b=m$GRoTi|d~VAtV1}1@~Hw)AJvueDOE_v5bGbc9fu_(NTfon**{u zzXe@ys89Wek66gV_Ika0ohIua@Bww+jJ1$>@V_D=TP4>VyTHli1S1ijZTfYuUVG%1 zEp)>ncNe;0L*&h|^{ix23iQ;1Xk+948ve7cQ&*^tgcoaP?kK8G9gh5w*FSGDx~mVw z!~$-BWa2*#LSJJ$=!AgOfEmCs`S1RPm)i2IKUnr(YZg2-vCSxPNjIqF=DhJQk+VA;R_f^T-oj6KQ~0tSh|w zhx20n;pSHj_va8`JFh3Z%f5a%^}KpK@^56rpl;cVeQ#mq+4{R;D4ILtu$40zu2F!Y zt^OHDLISo`(bxSK3y$?xPm%Sw*5902>`^z4OxM{yZs3B%zRc}+WCZ3%cGeU>u{8f! z9rZ`vOvt!@D6DwcGR`RWhYiwH0Nmj})k7Cq`P!$xiK7_%$HX@H=;~x_!AOrQ<-FHi z@;GpZed4Yrez}Ghk$_Gq&+_G~>j*OC8$?x;-dCAZBnznFjdggIbCxag3W zYg9|Oni=AK&GUcV&;HlkpMMV(?4ew1rK*ozuK%)SE+F`|#TH4Ja@14`Jofbm#@;sq zzfctw_1hIq*bl`Y|x@J&7N+I=xFud-m-#>=wU?| zH9?4JC6nqv&WOFhA9kC7lc(a5T~-J_NPJ3bZ?bFD?TIt~vB5C$`|~1=;pwqlMveo&zOY@i%>VZ{ zeA;%;1HW{@XY|LP{eNyZU-!h!a5eIH%)D`Noul=dL^&V6@$K7{Ti+z9BHH~APswbh z1M?DBw)W@vRrl@~tCsg~Z`L1WA2j2UR z{E{JmROVe3_o0U$*na4jzVw8S$xZh^cYD@Pf30n^AGJ&h2>&_%G|-$F{rt4=KMB;H z|AL$J3x*GE-~7YRxL4E9)`OekY_6Vr(KspSc|b!$M#RO@V@E?r1JB#Pa;$iG%7-0u zIB4ZzT;J%xb5B-r<*O}v8hT{d_U&iwC30(A^zeXhYh28+gNL36{@W_YmPhTtF)zM2 z`g3{XD96fEEIg0c06$V|F^X+~*fH*dd9n0u*!9t*u;C^;lBZ|hM2n?IPx0DoXl!r9 zW8MZw7rH$h#8OT$wED*4d_jUY&Ay1sIc*QG_|F&r#@z?&s_KX*P#D#ob{nD3hKk+r+xZU|a z&)YusEB@vM{UZr}_FKPm`?0V7hV7Xj^SibW|EquA@Rxq-XFihIWBSJ`@Y}iqH$VA_ z+k1c7@85IehTGSD$M^2@M;hGvjHhiM|J7gWf5ZlR_v?RQ`d#}^`+H)gWojTuxl zxcqqrJ{hCX7=NB;>SI(K)xd%QEF;4`N2kFaWXAZ+hfT#Q266Cf61#us%$v8Q030nY zMFZX+6veT0(kf8Pu^r3|>7euR$k~jRo3=IXJ3|Ry{Ffj37Yw<<@H=#ap__>^yfEK& z*9fk9sn2csPDo4HJo^s?z%gZ^@}`;b)QG`kZlT9r^Qpfvg83DrnDk1_dqE=GKtXMU zV@OM=6R^5`K?tX^NVfu)@zfks7>PN<)BQKH)gd@pfzX%A+G#4sha%5z7-=*ZKwJ;(aaMtaM|#h|B$3FR~X z>#}(*{%|0>`e&M^`pF*U`TnQy-ZE(Id`udf`R1IN{qK$#<%oYcXJ{U<3|fB|H>4cx ze?JaPSo;?s80-b|wNY#_cWhVZ1|s5Qb)1Xh^fF)rcJLZaOPxd~+9Q8BOh@h2_yxl| z^$UhK=@(qCyJ3DS%5lg}=cj22hDA~9ub@m>6Eh$hcC^kj8$p!jld*gF39tw!6x}#B zm%k{XV%cXDV_{Pr&K)zihuy~1;1ELuL_#vm7k@RU#ms$dB1Uf3p)SS#?tEbG;20tg zHIAo%_O%rkV`Jc@vH#Q=)9YhFgPk&+#53+p!6DC2)XePJD_Ces&fcO$+u;PD_29-q zX3Zab4Z8mMlB-Zq#>I|zEIN3fT6g5n>dtl^2QlV25zK2A)JTSWV$FVzwD@sh{{u_M zo*Db*LVazgLw!2_lF70@_{Y3>*HQli$!Q?DKsygQ94zbP0G9m?He5qO5wH=D<&4#G zZ9YB!;q|YW7|0=58_s!rkefz_;5a(g;U`yLc83DA&q2*oZ_T@)^;7c2bw!3CpFtq1 zk2v7#mtk>7#k~HE>)*DSd)LX%mBrrmgIb_5K>M&hRdbAScI-bvX(P5g^kyVM%b+tS zHNl_f4ag#AWA(y_UB28iJm^AUd=8S?Y4U)Z*UvrwJx9+X;BwCQ6I;m>WBf4j9BLCV zh&g462r@fXpD{j(mxhERv;N`@`O)&4S7@6h?okClM>@a$wA0~K9`>Mv%}tmC>rZST z_WU(F*?-om^ z3WAPIHffB4v&*_Zira57LcSM*CRn;B!gFz>u@IPu~B-r-#3+Z!YQ? z2KE{19*t|3J7z*=E_?7}+@dM_JU@d4p|1;B3^1c3<;xaj_Ck|R) zCuE}I$TQbu4-&ui3Hfk{h`IrD+&0uf^F7(onaV*($90g6thPckkqn_4FPDjFzX5RM zM=}7^;Ogry8>cqT6aP{hIb$S#PVt-rc}z~iYUo4jbPz~f<%$C@2dMBfAs}6ZOa?@( zlfOmwfBY&-kg2)3?2~$s*GvFSvronh&gx1~$MavpSp(e9KkUz`;iFm3ftZ$~Cd~Jz zwc;hKPYvY`6m5?*(;kPX<|`TqJFhV(-t5KVoO6wb)4BqrL)|b~*N%Zy*Y&P#a67`t z*s*^mF6s@0HEq+-F*BEeuf>wZ#zLJlcxAZ^c07F@g%9t~2BtZUX}8UoS>F2hyc)Ru z87D)ZqpqXIzF^qYep?Gi`yNp5o6(1&*q5 zd(YaSu0zN%bQ~ianEm_Joy2uH+r-!Z)MkDCC!mCtz_Z)IKJ;{4FY#xQ4?+5M?KnXj zuGCZp6Jey;QsKc<);8E$gmqQeo=v; z4eZjneahI_3DDdzjlDoCpTQ*+;#&UexX{LPP!lIw{3m8~J5Gbf()`fxv2;&pGt?%& z!rM9qU#5D9&;9%ts4U@1WQSGPy!#TKiN)8SbE_lvAde%t^fQmFKh9;Z|B1D69~O~Y zi7-&Dd3@&jFN||I*1vc-xt6rTxiPpn<>U3Q*7P-X2wq=C_9r&nLh1qB_OSbpr&e>I z!unUAc01`s%rySNO+HX-#yl&@Tsjwy;jD#>?fH`WTaKAp$K*ld-%I#6gR9r^%VTQr zj_<~T4@8&*1Mu=zUejC-xl~I2TpR2|7s3Z0yyBY+AATU8v0&6|Norw<;+g!1b@flx z&d-0pcAQ+o5JPai<`Dxqlk2tiAJ-ppJgOC*)jt>JtXeBN^@Bd}<7mTU|6Kq~%&z}o zwQmD6g7Nw%Hp84p>dHLv;=N26pYK1fxlm}09g|ooE6u6Ueq%{c-q+R$=v_Mn8FRC7 zKz!^G#pgI7nH5D34lr#ouzYy;J?dxzEAfg8$#GohER27G9aBk8Txp5(^QRlTd|oFf3?w2rw2vOERvpowjXvLq^FnK9gngWP#SYUG$%fYB^Tw#5=D=Z14OVWqZNM&nHuOcKeB|8w4$_ zmh>l0M8=5A7*BNA=gIV(C;rQ%EF{1_*HfX#;M{KYZ{0w%-pLF3I>(D;4BQm6>I9~m z~c)a8H<2KP8y_@9pl2{GX|BJ=MtO4`ozJ$7M9l4S%$GV80zbC|Ddzq zGD<`p)0c^!mh)=XoVo4M1aZ_myuDuKHCD7eH?gAa+)O5~re~cFJ4TAI?9fApy;`x1 z@z1=k;gB8vv!Z?d?;S02@bwSAwL{+Pw_neJy9_Ue-A98lA%|5^Pn8WJn2Odw_Ndsy zQ~6oo?CXN-KRC$tcut7xUw$j!H_XU1Kiwh7g_bGMW>o)~$DdPJ@<4}8>lvT<0vVU;G;%w&G@J9mZUKa81f2}v%5@KHS8jXb_V9JNr)#Z;Av(nW8L6h0FSNyv=-u8ueC5II z{wsHF_g;D9_TUwMsP5h0$npPY@9krE-_o>fpjbivu|P2xA;=gknsP=u*kW7T zPG6=y^K#~#v-k1(T-SZAwVr4H_L*_|@<(T{y?@`e)_q_1b-%3j{XQ?h=lgqF!qb~` zKLt-37bp_;9lv*Z<&$q*KJoG+-)!jLT|UWH^1u3{|G{J0dyihc{ECy&Hi zRy^V0lLi-9?!_uM^Hbg%1CfC_s_Qv2e(JYe<&(-bjPc=mkVB6@r)ZMJ#reh_@UKzeMNd4YjlXNhSk?;9nsS&&n)xmNTB1B=d>d!aK)DI zEMoD+v~Qx!Pk!X(Imhr6TRrh1qsWYrQ#|~010eRbLEd?Jk+s<1_$h`lt#Y_KZjVoV z^FynDIFQu_ALXk*bRX0WhR>`2CG!o2_}`+KkSx04V5iSN3+^qt>zx&M|2mv8tl{?O(5FMO9FKlRf0U;gKB z{R6k~r}L*3_`IsXgLk~`@=yL(|9P%B%KTG5{u7tK@H@X%-x%7*oi{JX*Z({J=H)$K z|8)!WfBmUHd-+=*{BPF$>ELMvejzIG{_p>`%e&tD7C-3v(Na$Q;cg~8LQ3<-8~g9o zS*AzVyd>beor2$uwLS7Tn?v#;VI}z^KMkn^^s=QZg#GUfMvbyM52pTh2?k^A*HL^-Ms6{O0NlkU zAjUxLLxb6kV@7O8{V4@cDFo&U>Ngo~@^|#;Cy1WUzJ|%lbyV;A%eimb!JFe_PCS~- zylV%j!+}q& zl6siD7!1`~O?vMu`Gf!Yx81wE?TenfyzusCFK^KYt)I~cuxZATuRf^YJQ4Td4ci1_ zY*Y7STr)O@0_rzH;M#6&5Yq`mlH|!en8XK*+u;x1M5&`;*Vt(HF(C<)|EVV?azxi~ za#nWb(91HLA{c=khRy?D%d!ZgBNi1%GVdFT)v-7dGZ;qkv`&`cDP7{k2e>JE=?ROF zL#5F%hFkK*8?BF6v9s_li;!qouIP0%F*E)1eg}bxY$lZT_%}R!nB@^zY##GJw$inf z_OCh3{yjRS5#)moi5Lmg9Fg2L4jV@Yv5qTiISbpYw1RaMCY$(_XZPPa{~KhIyAB$i z=|qCz?)Dg&BiBI##sj_b@2g!XB(KHv#7O^sE&%Ag{urgXW~H3!InM?n znEhj71$Lfj-l69D|AyX4&NYdNl!j$|wf-Y#8#`vGp*1L`OnZGGjeI!FAT;{1g@*8B z!(JPi>cI#U4IR|%#1TlJ4=&gO`zs5K^kev5|1lO{9)E^(W1TZb`Z@DwfxLf+U_btI ze%SBqpY`}7l;z~6kylWd%w+GeBTtM=r&#Se$kxUIT2wi-jM0!^{Q24yp~J@^8vAdZ zH6N#@#RuyHHaDz7%|s$8Tq|Aw;trn$4~^zz=6vzQS_xtl{`r|Xax~ilW%Skvked&g z?Z*0pOAt3>VAdT2*F$3Dj-YZa)Ek22A`%yi-#O-=#WqblemV>H5=^ks9Vi1 z&+Oj;EdQma$FFa$_iw}PEGa5~o|h&X;y%aZl57%5_J7aEB!k{jPtW;3*B>NS!rNTb zdwmkC{m%Z|D8QP@sQ$f2%_1G@bdtn>UhM?Glz<3fdUtR#(2x1;2QRy29iz8Y${>)iQ3U{LD~uTg5rbr3uI#CF}&M!#EU!09sI(`(B`|;sF zSfX)1fYZ7(PLlFts6CE5;p3txiq8I*gWLM|`a8*{MzJQG#G*c;)vsEDp$QD0A5sAC zdRUIM1PnE%{$TXaJ?Dc}NLUyE60AjtJ~ht1!y0e74rLZpOi49CFfiGg=DLO$4mJ64 zES_l0^AFp^&aMd51Cr{v3&tFG;WJeBos*>PNSZU-LLv32>iJrI&69txV_qXWCQBOp zV9>O6j%56gYEm~k%qUv1jnDdqJEnJx1rNtQIzA#HMtWVuT*JrW8(Une?zv)T^X(YT z;0z2)AU<~gHUHS`{kNWP+>yU4<+A8Ns2r9TX*IQ4(o}{%lH@n%zav3jdyOV|*6Ui% ztSsU0sRj+tzy0B2CN$R%n|YR^x$PZBxSKPmNU{t1A}*Fq5DYFw{l6?r0aU5v34 zkI>`{iic3_@%9|PXprs^Hp{|sG#I3`(|=^%GdDFXcC&4JWTA#jSKYB~#X;r&ufa^qD))K3CBis%#Tx%U`dXOl?3}C1fA(;k$Y#~QyJzn%{0*DE z@AF?y3E6F8tN*cBx=9A6GH0A@QbFZK9ONRyQs0H&i1;1vvbl~GTh0h-)oV4(UFXC{ z9%AryKKWC#a)E)L3bLNqKkDlr_Lt+G2=tnOT=HH~V!@g{bo$@tGg+n*j2c(h9&ge2 znEAG-wSh;>!~-KOw-E zT=99Zj8F2okA>MxhtzSapISK&^Pr3$cRDxlW?r-FI@Zc-X=huqYqgnr{Q(u5J;FRQ6B%K)7D5)TFBvS^#>V<&V7woH{J3Si zVwx#^uD?5iVx-bAS&K{i)bGDcy^zzI|E?|4Si$b`xi2l7$M;!Ri*#sIjHp-7|9WA? z7H5qdW6pm>dAtzPum9w|^^&3a6Sku-S2QI|A2WD@Vk2b7^f>tLzky9zL}_oNpQfoL zo{uh)0bFfrIfyvn#OAL3cZQM-<3C;>kJlj)%JSdq7+CF< zzW#Ucd*7y!pT0)KBFWP!Oi1;*S}UN9{wfiHFH=}t?;B)a%y4l zwneR=8?k0HW~6q<-mcF9sDm$6H64oaT; ze6G9Xf@j?ebVA@Un*-Jd8 zX7?DN!)C_+o+Iz|Z%aYk?gziwxOQYIAk$Tfwe{YjKH~9scCQ`EkK@%!5g+{ep{4#D zvsRU6o!|`$;wyxFbS-%-&vRY;A2yiUj+nBCV{`hCN8+)oOoux{$J>BMPh91?_K&a4 zmi@|_U`YP>$t#5GN{oL2u?epJBMV{z5g!;)T5NizR_ow=nGZlZz&>w`vB0v9;D`!; z(E1>0oh>gGq0WATA(rb}<~%Atm`&ArdvMn+`y`xk);&Ek^TBM=$^T$G#(wdP^Y(vE=-ujn2}O^G?El%5#Q);Q^c8p?--b7%Mz#2c133+Ovu3`=1vIF0-Z2KB zV|#dczel)3}1a!?*%9o%S8yZ zW*NP4`OruI$mO+%FF)q)SAO4L6dsH0|D4Z|gh9`Y#g)AcbFZ5`|M;q}d!U;epV2oM ze(5W+`0ZHfha2tMbCS@QGp4WZ92du@4r!g!!`FtsI^+adZZM3?LC?>A0E#U(jj>~i z+~6)Jg7P8b2R$;{$z547=)v-Xf8;c9#hhbwl^077rhedIOe^-x4O!*wi#_Mat{TcW zYt<9XtwZcuG;m;ws~ijsd2ga?QrMIeJni(?8|jc^&zv62iG!m&aQDVQ4Hvflu{#&0 zoM36_%hh;q=fzYG2eNYGpLXJyBS+R;u&=F#_FEfzbYS@Dy!z_?m~Jq9LHb{kHyDx^ z?aP0|KYaPMzvp*la&zQHrVoGTe}8%OTJCng|KNdd9(?rr>z7x4@~3sJ%GUaVFZV5t zF+fFr6Cy`Z&j0{G07*naRJhm5!Lk3ui+MTen}fwx4#$jKDmb72SL;7M;4>j!J%|&J znIj*arx|(BU>7FiqXrvU27y$+;SVYi-5DtFMD%=y3kqF2lML&QWv zvK&CB^1R&2Mnlo^C(dc~}N z_(vX$CGp>~gTf9EQ)h-w-o~2TIs~qkn$XJ+#cG>4y64PAEVY^IZ{Xq|JbrOa^A!y_ zG0b`4Z>&MX`twh5O_sLtp~Y~_!Ra*T3a+ngVzI zy*IEnk@A^5b9pmbI^;@NeeD_8CkHi;Gt6B2b^ecXl|=}rzt&&&@BtWX;@bP)T+*#y zT*ONZWkh7emZrJ=&xf{$6P+u9a;{(aGpF|sc^Xt2*U9$lq8iG{QfDS6(d~8DEi&AL{0}X247!45^`?f2yA++SUW<^*7;3F!{%G*Li$G zG?6-&`dw18ys1ArJxKW5J;&Uk=>V1+TQVmj{6nhVfn&>z^+&5w^S6YJCbX_U#J*+?Qyj^U z*B?FR3De z`+75D^qJczaWXu)81J6gq! z4M=4S8y;iJ5irmX3uA!Bh>D$9(c1={06d=1_xxvuz1Nrhx7NR8k_qB9hZ8I|K4`8! z*GzE>=nv512U@Um{d1Twc>oV2p*tx3zYJ`Xe#I@KTqA@>Kl47Otk>C6JFj{E85VqCG(QMEhlDXk z4Afd6h8DcZ0f2d?2dY9je_#LLMW}-d#~hy)W{mpqf4E0;%|B*~&oM7y@Z*c?FOLDw zJ%3NnarFl^ewqH5#*6nZ&%H$-kYaDh%sXoG&;GmR66N?nlO1To_|lqrZKE9j*chC? z(w3KfMhSpHW&fJo?7x1Hr0btPwiCPvIH^Q3{?ake^<(i1kn2%&7+mE)bCDTG?|sE! z8hE14^OFd#uH};-#5w=2&wnROpk9C3!^aN=VEu3M#{+6N21?c2#)S(FHm1i_Sa256eEUK@AK|UXMzEJ+|~UHkamV z-Vf@rbwi+uQz;%A`<Co`9SU*P4&lJs4bceg837n@>Ew{)Tdl4o1Ty?sc>Nr`(}B{KsF| zICj3Cf3m-jqR>y)dw>>TrB*|ruB~J$z8}l151?fa847A`Kzg70t$#%1pi7=%T!WdX zep>Xo9{Vu_p}8hz7JnXp9@~FrFgP&`dzklHCKr1Z0tfMY1QDmD(##kaeBLueLM*an zuLR0fSNmTDF{^1uCmEwvyI3MIHcX_tM~O=klTVCGFM^{P65t^{hl%r=#SuAz?bS@q zDgGM;mgw};y)g8*Zp&5go$u>(YZ1m=?}y$#YFP*L^6%hJ|6#`e<8>ur!8TdjjhIW!4rn zhOI=#=&L*HkJQ^)ddKFz)>zSo0|Jlf!^Y@(tQq;qq@IBs&jsfWI-tBJr7i4&`y^Qk&rva{ZaW8y^1iTA?e^JRofxGlbFCyVU>C zu6i_XE)VRf$!?f5AOC2(%6Q5=){bCI>2_<~&h<|ePIJY3Muv5?JjrVQ<=i)HCZ0gM z{?vWv(CFanT4Y_qMje@Z56cY8)V8a>b6ydto@B%I6j{8%4`=-|rdgZe--4p<^?Dcz9iN|Gv2LODBV= z>y9y2<(#4jH}cZcPc)r%RFm)j{{^Jpl7iB$fP!>NOr)iyrMtUxG}0w0Fc1V$QY59j z2h!b)t})nP@!jWl&hO8iv%hwB?)!ROujk|OY)$IgW@xv*%2Ek_tB zS-fnc@MROI?6D*bG=3oG$QS@TOygD_>4Tt{h3=x|IrGvim3Y;1pJUn&w_1R}r14WO zkW}VF2i>B*uWB?~o}PHa&a3?oZZ)9R0A@=cwD`*xOg_b2%pqUfBURMas3_P;xLP9B zNfdRjG&1#+; zr@4F`9zPlP9Q$iD_s76V!Aav!3STe-RI;rWlxMBeA?y*WZ`Qv4;?F4i%t>{6W| zTne(J##EBeIsH58FnUXV`Ay8sPdFRb8hK@rZ4`MP2raq*LSC4W@la_l+1gMepZx?!_0y+|hVRe*( z_BLfcN80$IPJo%I1pV9dWWRw2#J2DIqi1+iT&#hU#W2Ip3Tn$1voIa-Ea1l*EBiCJ z7T@Q@QbP{D(OQ(CvMNdMOH6~8*K|u!Vb*7TPvJ|=*2G$MN@vda=08!An7X>|AHS1& zHugLK*VMWpT2DEt?dt?=sKD{7M{o{g}gK&W0=i?UWLzenmY2?oqlx{9? z?+I}8l@J%$*okZqjph1Dwtd<`>YL_=FhQXu!M{HptkuzYeujuwN$f@sO4D+q4qeB_ zC>w=ETp6mxmgnK70Dw;rDqo9RsrdVkd2}3L%%at1JzR+#e`BZ;@$3G2&`=g}czw*{ zVQT*1YrdI5VHj1AjlsaH$jxQZ$K-zP*cM7@hLfmY3%P=(Uf^OIP8Qq_usCg3DR#Rv zP8zpa&O$GKtZh2`<6<&&BEyG@LW?{}egV{u+fOSgvvkeMlN;yW{}Eq329QE$^%_{Zhk_D`0}u14H?m4Uuh1}jb{VwziQDQZZ0hm zYM#OoKZah~O_91gl#o7(udG#+fkjnYM^-ikc2U|RwZd+=`0t8CZm$>kQJLebT|48& zpE1Roun>NJ%sNZ>H+0pG6TU3y_2o;<7Qhn$>&BS)4CW624>+)&RxxLwzsRNduDk2| z%D`%^-Q2SabU|Hv$Atxa@-0_)yY(GEY7tZ9evhi*cr4SP)UqhH#tm_|RZG%J&*X_ z_&9xUe+v6?wP0gKIO!Cj+#c)I(ksWXcbR!NPso2=@zCBb;j?i(wiXVcwfv14-DH`g zCa5ACvdJth|Ggh-PnPDlBl=xoYBjk}0_d7D)OX8#c!@b7=qHXMZ$hMuY0$Mlj*7P_ zJ{q&|GEyTOs0N-Bhu3uP_?5m?`*(0M?GfYn{uLN$7O@S{SU|rYp4%C>NK!9)x|;%A z#$MMB0&YcgUMomyM5awYqL?6Cl-}du*zrSCOdqns{)*)ojgUS^xAMx?;~z5GJSF!| z3%q5aKn1)h8Av2w^WQv!#jmO?&pN1s#r^Ftlu4>{DZ5A00}8x&Uarr-x%wtMU24q= zATHWq<~<|VoI2i9o1>9w@5LYaT20>f=N-uWvF}Z%ls;=1y;r-K9+7(1O9+h3$hxn+ zC*-FNk|1KbwlL3hU=PU2=}8`vQJNBcO4u`f0uY+k^?9N0wU75xMjZueMK{XWo%($Q zS@d`-iZt#gk9JS8DHZ+H;)RjdUcpUf+jC!fxNd(qu;f_OF|AE@E0-(ZLgMt;F)=Qh z)`9|xF?sJlytu#M#9@a-Ws2(GEf->pfhOacGLrquW+h`*p}(bmxG|N9PYhQBZ9CEa z7zC205)l)3+hv|18+e7@uek_6zxEHy+D5gMq!C_tAa^Yb9apRh#gbpg(NLU_X1)1B z1B(zw>$0f)MtdndGx6d6OVgqo^XIoMf!2G+ce@s|BhfY}lab3LCjq-Y%Ter+)0(IM z96%fzoq^{U=)VgsE-dQ4{8xAHvT%|T_ILVI6QUlTNWM=N;zqfuu+Jz}S-Bt*DmdVy zz$8bsGe@8iGlHTyF8A+v%9Jx>WiCl3^Sq#R$PBYD*VmISy)j)n$}e-^rCT1J%+ku@ z6PMoP>srQeHF3E=Urh4739~Zyo43iJ4))DCXRQ_>iQAimvzvN!_!P#W zzt%GS>_Dc&PBHYJDS|LP+&O`Gt;)>1ivJ;Z<}If36U;S$v*?oqpK$v@f*<1|M!zlr zqRTTRGAx;fQ6~nWJTPOE16)fl7FGkD$uxAXgy+cn_dT96gu8r!_oEq5ms~k?YPia$F4UNx3PFqz->7-9N{1nn}j*&t{M6Fs_w<8yepsD(2sWM z=PhvszRWGf3DRvFxtr2tFI<0ti5lIeDA$dzRb##hGs=yu4|>{u)cE_FvyXN zKOnaq>V5w5$K$JhBMmCy3G?@VZb9|6rB=plH(QeIR)xdXg5cm*131@q8P-iz_pA5| zt1!sbKT+k9!-Fi8h>KWPWU==KQCUVssa+r`Rghq_C~?AKF$t{czCl%N*T4JMN}V6) zUy8hHLvCZsMDWGKi7Vt;nbow2{qh&`CxS%kf?k-Okf)0w9HM|bc@WTmj`D5{ytzur zjDh-3uizG9xbgmMxD(qDwJmis8GG?BCH8)y?|+Ls6y)(<=aXfv=JD1=9B4L$`F~Z< zX~yiX6&5-hVaXLmavX0V5cq&vF)R&GcPSe%T?`5r!HwNaP>q3e@w$7~$QeEbOLKiX`I+Mjm_NfB<> zCz^NzGiB4senS8kB2Pav%$N}2mkd{dx5xj9Q$HK_HaQL2@oe9{S;1~^_yov=pO6>N zMl5}u9(Yrw_=dx=fR2&Ng=twm08Th8^z-ayWc$XSX5(+10Pl36;Afs%&3bkD%+3s9 zUg6V3e3~!H*o$s)T{uDA)S=h*N!^Pi&Fff$_1{r23P6ICO{l>tGlP_*NL*38;2q0k zo{{U9K3>}$+`^nD#~2&Obe_U?A;VLZYc#ahs#Z`Ev%H!*yU0%}m_@`wr!dsEGmHZh zI|~1x@+5g`9x6U0i$-U`aOg(a7DtC@yz0K+xaM|TyiCURJzM-w1I=SJZQN)Mq}TmP z6>i%w0mFAXFqcfJ%)wm%g4?c__l3SNiRR~U=U>eH3#!@EQau0E`jgF_6_1=#{l`-T zHq)kAbCW9H3GaQlZxTp(FQfgI%sEAjfrvOUaAMa(;8B*#4Qooag@e>rhay9JKHa*? z?duRco7ClSBuBv?r5WrwqbwEf!E7{WZ&ywv)U5g8CLC!~-J11sWu+NV3{3o1C&`ke zm~6$CI#+rD*m9{MmVYv^PrbW5qq+eZPoU}F(YXiO?w)(=QTkGgq8BbO)tUB{{mNhR9|R#A-fb`@g)Xa4pMy-J>Fqe;KVwNA6uJ>I zshq|30lpYS_%eCtjTTsHqWzXT9Ig+^2@0(KBJwP817SWGWg4hX9kq!O5K&KH zV0tE5AZdFbonR))?u9z^c#=OM`hsmmpS_=n^h1@t4B(0xd00@ltK|P|AR@JP;>c$L zngicL>~UbrT;l60b7J;ir($Yd7a1`1YksI+H|bMZ2&TBqAr=YW7L5O-7(sYTcAYws zD`t1Q66kJgBply)_M zDPIcNwoS7SN!Lt;)tPFv%|uGqt1b`a91Bk{^v`)OoG=oN=1ai8BenA;dh|E zdQ80&uhC2Ya;v@eEPe9v5AMgCw8yaI;Zs}@vHMl%<{~rOM=G4Tr}DJE$U-jJkQS+oWdJmPOt)EYMNnp%@1z@@-Boh!=rLlb{#V_Np^{1rEr{*V5DTT~| zQx~8&G5I)NAXzC*7Cj^O8CvNqvAKhv5nYeq9N^|`(qWvKEY~ zrfIHydzsmt_vKVqb z5n6d@Xd_8$Hw6Zx)mR;pz?zcUSt}E!ln59W`VnGXISHgvJe8`rgE`P?g`ENXRQ~n1 z))KEqpKSG{pXC@ey*ISJrOR_cn7bge&>6qZBu6ekXAz%(kUFQsK;H+Xe8A&U#(LL& zP{UKYs-OjcSOTc^N{Pn;X=vbf(ErN!)}^Mr2{hS@_26895{_)@(3`mz_Zge^b&&0K z@^IL`c;}sz!HYvnSB|&?i+q=ouTMZhmt(*C4{oopuo@uvKy?1D^dLA}lni+mdHLX9 z(A(u@5iG-u5IqW8rMZB)QaGe@j0e-yKZxHjpY)Gc`s!|Th52mvJNO!IEE8q=6FN`> z0K+Et?Qb4xx~}JGwB;vRj>S3*EyDUYZQ)f~KiZK`FCCXlGh~hk`sY=?2L<}XFM#RV82Tm%>Jei z0#1%OggB$;&ap8|RfDZxXaw-!x@+?mEStlyX$>D`!5r?-gHWv=8(~*!UGVEQ6V!f{ z;SvkN0)4+PkJ$$PBp37y3Rx*O*rI91Wtqm#&HbB}KjJlk-bz}wbjSL=!9g!0L2Jjc zK)`9s<|+8eP}kdSoV<7|^Y(i-L$S5ie}<)y+H<@H5bJ8X#mghbWOLR7d7gbbjQ3Os z`MVIRXbbkFxeHa5-6dii44IrGz$LHkQFxiDZud631uBA8aOV}7Kr>gjpvnu01`G+| z(2Lso&TH~#f?D6KsB#QV>+uYr;xB@bLk_^`Z5DK-MC`jdODJc@P(?M@q?hPgitf|# zU5n;lKL}hpe-P{KN&OxLoRB;0&AI-QqcyyY<{}{}1O&ccZ$OaJt*XTtiPe@~cCd~= zLHBq6DL#6qK`ghSZv$)QC(l}TntXF}yBlbC@|&o@EzQ9-4lmv9N}&5NdzP||FL2b{ zn>v9>)@OuS%=# zVKGs7KLp4piz~P>{qs5cbS$=b!Wej3)N&0z$KhGe2L2=pceYhdrfN~O<>W+AjB$z1 zK6Y6i_~N1uSGhk%#@`uf-)5NQ7pTm;PXQrY-(aK*9g#n@8HJ1Cz;gif?co7`XC@aA zNMXPK%!F#K2}3lxc2pG)`S7sO2tMpz@Hp&WBza@Ki#zwbI{~Q*0sOF} zYxDcyN~Dk}YH!ZQI@z8tqKTfVJf3loQG4C!BN+MhHEh`8vPa@qx;DS6h9FT*QAgwvz3Y zUs05rl5f#Tr>zCJbF6S9f z80ct~%v@H}etNJTAjP?jyl&l;SC8MBa%*%hU8YHl`6YXX4AQ=YBx_bfkr1S_uf!1o z?DKf9)+4S_^C=7X?lZCI$(%)xx`YmQ&N(o?zSWzr-2b0CjJ6GpGP8gLaQUgcJZ-?sH$wN<>+a~R!-Pl#l28Q0wPp7Tw&L&fT*jv9L- zz=$0S)a8gx;YmEbdw)TOJ$1fP=Ujt77s#)yjXApFtf?7v!0#{`b)u$DQfqCg66>sY>zqqF|RIXlO%Pz9&E0Ap!-Q$rzQ$FarVHR(}O3Q~Rz4#N!5HLe&XmS6Wp(=)tO$l7*tcn#M zCZGJB1Nd`yLJwdx&FO8jk7S0WrH#d7oPSV8K=ll2gN$%)uoZm{P%sS8#462OdrU6= z@nQO1rx{LBoV)){pQNnoP4wk0lI!u8sWiB4{S@%%cg10(Tuh_F2)7OKASvPI8ln&# zN4;q<(&E#7_5?KFLYoLRUhk7e+nh&yWFZV&0C>^&Mh*iLBcVtwMrGRCLDyH`ybI_1 z<*?yokWh+N9*XE99v3D(abPc>Jl7#X!kTRp@OD}&+M~JesRPraiF^KuKtuN0fz!IZ zNHS}f_x#5|x3Ii08$Zue{Dn*u#Prr)C>z6?L#sBP-Z1@qnc(M@GCCF8V9LNP$+mR< znY8_nfb~ho=YCsUHEWY@v5|Y-XBU9!yz9m(poZ)7^=lrAdOy?^E%!%Jzw6`vw-^P@ z?>?FlqY^4lb*R;B{m)`ACHdfUp{UX!=XD-Gmu)7(GQTCkNh2du?F42A$LhvEg5}Nj zB?jBCk}8G=NTM4J_`enq&kbXQ#aDk4HNS@CW$?ft6fr|zCf|3w1K9-aT(bTQ-znLx z9G{eUkXWYA!FBSmy?BRXWB#?$yMVdYcJTebI9@L=Y#+l^C?B``qJpb^MrzGL#LybU zKe-aeEbj%N6`>Elnb76${j2y$w60H*dIB|g1^CjD(lZ?sZ5#aQT=E|j1wO+etx?!j zKx6_!tE|(MQgi#eFL^~58uUEKvasRUhNDJ>*ONR<$!%IBOI7*<4Y>8!?)EST zUU+@;8c86rM}9B*O{uXc?b9`d@P0?XK4tt@J8MK&RGG`zh1Tr$i5w3 zYZIPmHt*yw$x09R9BG|`&x0nm`$wLZA2h322U5AX@X*c49p{C`4K(mukEUexoTPpW zx77dI6t)KVfTX_2x06{4*RZ#je$U>ULm5AZ(-qiN3)}>^!u;=B=XJ7119y_^c6OK` z&e0lrRd?nXgTZ;Vjui73m$n|7lOlJ}?=LEhW!NlTpWKDNE}1z37GZLp{7Q*c^cm&l zO}?UMDr5DDDXEbV`BR9oisj*Dnh^&Q1~g4A<;FKq$=K$D9$3&ta<1&ZZoDux3+JL^ zz=!`hlmQ<{@fe+IPJY+)Sv?U?11zWhG`|C|oE8qVT;HK{HQ+BUfm!NGyZY?qVH3p6 z#A^d0Hn3#%Jwcv$|7!=#gK3^=Dio~ZV?|NCbnJM4f@H$f@6LQ$j{R-Uw0#TUnAQ^& zR~@#nj#Dl3I(qUsj7UvAShkc;oI%L3u~!hVBeeGcw8Xx6CBo2k27Ih_Xz2}Q?ZyO_ z-;K77UZ%v4=_rn!yp@~@T7V{)wqpd(!r8xg7u$puLVa9|Ty)T8KE4y}=w#$bNF@e( zTH8IF`7G68O{c6mtVl^~+^2fDu?jT>$Q!ZYNnrePRDc)rE&VqHH{&B$w$4<7CDUQ@nVBVP8ISWh{sn7_P&E<190fiA&fJH4cG;Mz zOoW*;`%@lDRP*v+k-E~@;m?i=`SJ%(qA4HL?SCp7y-Xx}^CLXXP2Cq2yzinS? zH}1*f&OOTqVtGL_FR(f@X=wjljMH2U4nN|C7PyGEf!M_L4RbQz zHo(l#i>weJJDtyjJ2Jj%?Z&CC*w-K^dUVa0GD5PqIf_mTUwK6(6X7 zglQ|pK<|BwRw#uZ(!fclCqR@^hj(daDWTFz4*xlDuvBd3yM1<0lO@^E)_O;Kv-VJN(L_4@9d;PPy zZaukoc+YYSQWf%Q6FCTyBn`>?EvwRu30%VJ v{PkXJ@k_5tccEvEoAxaDz`osNg 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%0AKt8YqjdvPS56ImPKNiP1<43V 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

    ApC6up;6ONjo26N7j3#TRDM(J2 zMqw2ASC;ES902kYAv5ZE;XJSv-UYT zlF-WDy+%{<&nUj@Ue(%`+hu*ny~4q`37qdw%ubW3+FR`CC2G4(-?=wmBsQz~`KF&= z`XT$)A90SzkPZthr-ebnhnPQ8xtnLehGOlZ#7~*Ozt()whM{+*`>E|1YrRB{%iq(n zG-9Rr7(_q+>m>Q?vqeS#S))Z9C#DpaE|sUmWrZgvV#_wUJOnF*p7)9CQ2Jun`$BbX z74*ixA+W5xTE}Dj%*j>_1QcXSc~kp}vpM5k2r*JWnV&_aW5%|b{>R;shlgl5wtA-Q zn`wnxXG)MiCfvDs410!!oL{)nWU$~Xa<#XG$LO}nLK7P|lfy=$w*e-fuYiOjOIS9u)Xj;(1WtP7D{<_~%9E40G_9*#W?gkoS4QAUMaabRl7?_R20ML0RXQ#yx|q25oE86zN% zPIcFE7_aQW*728M!R2$AGM|^i{eK?i5F;DyR2_oIxQwGIku$`pbP4jCGNPK?9dFvo zG-u{nk?|+A4a~mAIIv&%qx+6HPG~P`tKp3beVfK=EJgrfx!&irNFwg1IKki?Yn+4U z*YM-pnTX=H$0*n(nVQroFv@Neq-;IU0QC2Qc4pLtBf7vEOiN~Zp>na$EZ5GL>LBI| z_M{WiGZ!{{6khRx5soPMlG*1^dOkFR-z(|SO>&*M{tNJ^blW8mUj|b9ugzn};e)xS z5KJkZT-~RFC@P~iCRp*qJ1vwqcF29pI{mX`@)u(uf&+N-L@jUkmP-A|hbyA2uyrJS zWrk$1V^v63wNMXm=)JxF_catqt_ZJMy6d_y9_6cWM_0Jwl0~*cc3@YevXzXJoO0{N zuPZV-UV}&9(prkFnzLkz#UuzXNnbAiDk6%{TT$ZP9d9yQi zdENSXsS?&`XY`Huo+mY1zc?m*A^R_J|2=^h7@rvaKWO9G75g56r~4UJ=Nel;FeQwUoZS z^G39W3R z9X)dd+gR`_7VYem%J%Dojdg#T3Tz0;|4UpPZxp2ZsE#vz;}L55srNNa5h;+933=k; zZZfJy88YNKZ~}uuC=x5C`M#)#zk9N~6LahP`O$=u)A4ZPZkm9ln`Oys`ZYP@%YSyk zuL2O*ubI9WhouXs@aOt8=5nZrey5W7WQZrQy7+jbNSNN&&_30-FRI@jFl~}P%;@9cz?bmD|W(hCH zPewrY&&O^^>~2bitAnBU90HpC;oR1JIAClT@9#AZi;u;iz$IM~91eY%TS*sT+i8kV zvh030rj&XU^}<|)$dT)wt{WB+MP^lFrn88ymF$13<&8goKZ(XHP2LgE{v%f?PsBM6-}a2W&LZ9tL$@nr4QP+tvsWnG-OZ#uiy z7@*bbiNl$uk4)0#-frP3>{VPp_fCCW+5Z}{9p!1-XHdLO&>j?q)1};$TK3hQ50E-K zEk6@^CSn0#&S9R&R`=!e<)7YP@xc&#(H6enkxKKG7h}R0-~!?$2Mq?A!aV*B1$tRt z!T0j&!~J))Lf&jm-AoU11-SX25zRP7*6H25lFxiT6;byn`>R1&${5#vgafotB|zD^ zzAAOLyRno`M2@x6TQHyfdC5_~`PplQ;6$MVHbnBSmLU9aa#1qZW(Iba2l~>sgMzdI zuVag7L{;9J`9Hwj1)>TYZ67)`16~(KWWj8 z%r}LDK5#dXj1Et5>h*0a^3mkh4dd(LEo@v;WU7p#E%3|{(*}wcA@fj8@<24;&V?^0 zjBs4RQL6}wh^!_5zN8PAzX}*(kiUl}yu%u_@Ee zJ2NbuR}sXhcwJrLpDI{o*5d~b<{ax`*QQNcTh4TUn$ZsW&QQ}cD{3LXmEDD*=yruS z5cum{s!j$@l7aV&oU(H5lE){6pXRa>-IknXAE(zv7sfiFxy^vSgfmGsB6r1E!+?zw{^nXEl1ZE zIt2*xM-_&x^wKKZtaWbz=;kU+Gjn4Hu9FKJ@$)$NaJniCdDyLb&>hmvu?|6HK~6_M zV1t(bvnwn&4ptx5SA`xP4!0i+yIr{cH_>7Lvj;xYE8qNI2e0QDFhpQ>UOr#Gc#ckc z*06YZ*-hBqHGqI~5G-^sD`fCcQ*}d=2~Q3=A$R}p@l9JCCsdJG2A(AF{f(b0*X>Ax zGve~#w~NBRTa{onY~?Y!5?SQ-jTU+p2=)ITdq&@#AccT=V(P&dSvYu)CgvLb#~t$r z`7HimnUL;0Zo&N**<7>h5LXK8a|r26^DNx?&tVaa|1Y&E^1sw3#^t8!bHYfw%!aHR z`u#1JtaZgbR(VqS!MVsU=B=QG(ue|Uj2MO4ZaJq|AJaHpN^n6A4)Wt@^6XocO!-?h6j2PACuF&OuH}>(WeB=Sb+TTs=taO&p+`EE&uTY|KvjAeFodlmfR%7H{nBR&o|G_ZY zW~`ekWcxM&F5U;pI7jk{NO6N8LcM+;10(fiq~(wsy(a8f>*X=9f=Aa57sRA6H3z{z zd5vgvvagu^ssa!fJ$l}mMrs|r9eX=xBol&}_p17hcx{MiM5REiKSYrb317~Dd^u!4 zIn9wDP|e8$*H;xul{{zT@4ml#ABxVJl5FYg`TQ`NAt4qCw=QI`+}BmwuUhtWx?G&2*P1IRK4Znu%e$I)5fMe9>-qkeILoZ`C;wLeM^1u z`%kq4v+dv20(*sj3|XRb$edke3S6yJ5nSP{V8d$qd=BCluXIDzy4u)2P*!h)_;Ix< zp3HokHpDaB_1@ujvY8~$mtCru#j zAzKs>WQ*%nVK?RV^6hLjU^NQpe~pua6*`CplDRH6+8y8|8@Gngf5n2$q%Jd{0FRLj zs$o0XrIy9k8|b#c90ZVxO-3+J&v*aFb3rx zea+uiz7JE^dx$}E_+$6{ClhjkS!L{w*=wC$h83>zfiGa$|q?h&x}qyBrRw=I1r$Wh=612F{#0%__gA}D4=Z2=F~yB z=L`Rg`S)+UzTN|wY*EL{5C&Jx*c5i~58$-Z8FZomQ(ZOAgd&BGxj9%8#hXxpKHt(o zldptA##&gk%2v|_SMvbcaZi~qo%ezE6d9#!(7>t&{gSF@y6%VzaB~9QSt$J zQ-zFeYl-yLZv~z-6Ft(wh4u+tor80dZA=f$*Rruu(TtiLiB%K-rm|-vXOs2kmZ)NO z!c9-;`gouI2e6=%x`-oMgZn2G2HyLB(m zhV-orA;pWxqmD@L0CiDs1G$U`&n$MnM4h81S{Yb^qh+7b*ZQBe3pAdECzn~5&9z-6 zsd-fXd>0lkKJ%=SD9=2(sV1RK-=?bEc{0E@^-~T}p;M`Az%cF68LB%X>){iT$dTU# z*5O)7xtLkz(d>47g>hm;j0Z=&MSb0yP62C?pMkjkcrE9g7r9#GAb-r=xp|1m*RZ;8 zd84bLm64aBd`HdESav0BfvrqPTPZB7JiT2d$UbC;h z2!mnSt6v|liE|&4XB4&t5Y~Gv%6%xWKTVNrb&|#WOv(+DA);0^ug5DrWCp3;u*z^q z_qU&Kq}`&fI3;Z0uPa|Rikxb2&KcnL`Q+EatNtb)JEK?xFExhvk>JDvOy4b(`AAny zZ*%3JvX@@5FK)d)9%{P7maP$tTxm65usw8cF!k`-%6Q9_$V#?e_;mxQvn-l87OZg6 z$xQFq3zDyC;^e+pvF2;BZM)}O!Y`I@wWvq7)L3H%ovSd6oNLdFrT?~k*U9C=A*m9n zI+q4mHWkqj)4t_%e2k1pwj=s9AKfcuioq58azhta4pnpP!gw2J>zCO#0`dKyowFpr zSf772Es64=Ch+9EQQQ?Esd}zm5iUJD3r)r(x3AFwfU&@8A~<)T->5eQ*(`Gbd9RLgW-`$6c~zlx|FKM0=BCiIvMFAj%M z-3SQQ81emG8bTk7kQ?fw*=+Wx>=k{agMFJ_l|O1*4q5>E0Pr7{pNt8=UO&C zh(pCrDijtzE!H?_TKjD5%fh}_CN@1d^-%nSbm~|zZ9(}Y4h0iFlW@MA4Rs5v2o{`X zDR#f3Wc$YP{q}tZcQ_CYZ40ghS3x>EPOnjrcuxhf^SLa|&@L8%;J;;s8c$YDj<|KK zWiamaMU_8VGRYpeZZD&mv-T@ORQ6zt-eYn0-}BDF-op%KnjgD|CtmEV-2cqQz5r@x z3%&lekm@YMzXaUR9Gw-^mPvU8jn(q-$16oluD)w4Wc9yg9g3Gn9;4`xKTCf^G4Y`U zkFWi2iWK7mAsnWnlswC_F1^cub$dm+WD^TBO6|# z50Rf{c6ow`rQ+67ItEbLx5#%+&tYyai)C{=d&K^nW8uN;@?$6vEdnVd9J@S|E<4hy z>i5QS`L3GB*OLzFP$)n(jC_M#PY?7}S{RTwM&n_K#DT5%1+P4upzIuzO!wpB?W<4a zYVDrX`B$h5tlZtGRVIN++Yzv)*@D(6&vu7=BjJUe@y9Q@RyW8iDY>%!wE~nwFVwCp zqv0?bh4X&nH;R_VZfV=Bz5DKM_*&q-&?Sqzbqa$31(Pp^4s?4aWj0w4k!^yWf5?J$ zrn?703mt7_(f5~Qw>Vp?AXyGBrkT&Wh3ck2RiN{Ee-iinP(6U$9;xni+xSjTwK>EEG6TgmHrM8joPq~f>_i@~Awc!r_ zF(O7bmM8gV^Lkny&sT0>uibx%#tY-;qA2+>o{_gQQhI!vX0nlq4-~Xs9xtIZ3K}P# z8zOKijKo`N3(DK5lvY_@eDyl4&;*=(Nq+qW5M%vg;C5Q9ceDh^=&S`S#Da>!5?FFV z1&oO>?Kxkp6iCIjBwj3TPh$py;LH=AlXTw1B4ojCZtCQ8bk);YS-H#!Wh%2vlYQ5p z5p+Sok_u|nSGkt{XHbx%^-ACH zhO78vR_O363l3ph4whkUpV&xYSHUo2hzJg`5F54=yVQQ201G(vNZ>9|KEL zmiIlpSGEZd6ESL-#DF-Bmko~`%VnRo+Z2{S>pU8!`Lg)=I@!Ns;wkc(Hw(5*jnJ(FcVir0jN%B&d18KbXel$Dd}7C* zp^%MmDeGCM)>nl!BFUNVpK*>elfoL;$OHH5>usc*x8osON#C$JNy>zQv*Vj= z67bdv4dvDZaKMrWGL$5!yDvF@xo1lM9NWoZ-tOWE2(wVU9qER~oGf9ssh);OV;u2} zxi$p0l7LLdyA6^kX~@$(5MD_=YG(B%Vg}N9u3aAgqLl&esZqe6%I7J@epuzFcVUps zP_aSK62!YI%S9()qrt@M5wl1`cSa6=OQbI0ez4OB68a%hM9g{?%~zPC$srgOHK}6> zIlbO8ExegUP96?PtYK^29zY4@9aQ|y%LKRPQ4$B#nfPRO2_$a_q5h$r)#=()4XZ0e z0yD~E#5q!sDI=J7W5wiPe1~A&u(-Fk0;HFOh-GJ*p^9`JCileBv&VN7bRLS6G{yx> zg%uajo%!d@BZ6FYB~St+_c&3)Z%Ykd0_7l16gimb3x6Mv7tQpj6=E5wBaI>%K-0~7 z?Gl6zTXbWPSAvKRJo7#N8a|Oe#sNkI7yHq{u{ost$A`C~M@s@Nb*cuf#UZy^>DkM4YPZ;kd~r{uHgnDcn7(F z&Mvt+!yhibym)MB+VhP@a*y%lR=&&Dk8+IBGH zF|V9z(#}n>>Yv9?zi$Q%T@;W?$mY95 z*zIU$)UPI7bwh7=w(hzR?K{5yCtJx>(OK{e$@T#C7VgnC;s%3 z^i2iGb5|WVT6n$~%o7o*=R&}<=#~~%rCdv-Uc&miogKV(4&}(M-9>Nrf@;gzWClVw zZmKa7@xFyayjg_4U5q&&RHC>r5lFe%+fvm~3PC}^R0sa|3Trr65h|AN!62m`V);Gk zhPpB<=zPQot#|PN@LJtp!Y&?W9ADKzEav2jsL(}^#5haZh0pfp)?1d(x_72clt(KEM>2#@pAh5ip)$S z_vYP2g}%!$OAt-NdEdmo5!Y$hMe|L{xBC;(N{sq16b9FK|2e9juQ$bG0#iNO}}ySMMF zmnj5rH@)sD{bn2IqyQ+T-!L!E9%WB$s6U??A*M`ewa^)Kl?K*tEl^~p9bqkoRte`M z@2iXBwh6`f5&{BZ3~#|_aM|gEmZvr_o_bDwM zWuTbiZvxm+`Ii$ZOqXe-vq0G|n^klq+mEXgHbJ!Z?HE)zU4xvjj82187@x5rhF@&8 zhdE^Ay9NuBh@(Dw1~6cpt;BrwWQ}u{>u1BPJ$gyk@jxJJ#=C=cwB_Bulo;1bBji z^J7@tW!r^YL%&0Hk{F(p-MwkQ+PhYL7T<3^s!AqAQmB*3;JAibvB@aZ?#E9?E`Uqh zh>8%4_fJ_Q(LQO}AbHzBRgJo`+QqQW*AC3wf4lA+1_9!)ku@XBH;oD> z-LQObQAVPx`!A;A$+`a0#Dk;C191+^Qv2KK_IwpGya)0Pc{@;4@-4q$I&PAZf(@omB5*l=pQzAeB}d7%sx{|C1}5Y zA4=|fFRRQPDei-#ckE4?_ZH}eZ2Xm9Pmy1T`TY~W!i#VArI7wR_wX-|VB^S}HT4-F zn&MjjA;k0?P1P{a*_i}N5vU6ZIAsSUe)Psj`l*UREVEMmq0A^ZY;m#_8sk~dfXZN0Cj~lK8rijl7X2+&RY4I5NriI27OZ!r`48;Q=~+_ zQ=uu6^^5Xcym~5pKk&)JK7rnj1>XpJylv2@N-%pgXdfzRd5MiPd)aukAD;9ZLTzl; z`B>Plxc=t?dORHBY#=9~_s3yt(t0^>-{PR(Jk( zu0P6(!?i_4vY{>}`CADQ=%J==Yt+AQx^Hit+oxg6I^OEUTC}y9EKB5qYX*kRhX}VE zQ9~Wa$T%4#8Atx9AM%%cwMXzgF6)xt+4sCZb|p$3F(T({-2MKeN2sv*NK)+SFewE)x{%(R5)G}% zD_P8rEw@2W#^@QaJrC{XzH-QyqwN|bIWX-Q8}{sbL+it_4h>vTsA>&Z`#`6Mvx$Xp zCT&mgmC*)zS3vi6oa*foMJqz>2_=uEc*JKdo}I#gEduScnJhjpceVN2YUMi%4FfeL zk9bN<0<-BRGD5WWOu}7rtW_~!wFul|07=_tJv0{Yh?Ug~!|P>!Kf zJlRTx0HKbQMJGbHN*74ES6ArV4s;)?LSDU#r#wDusB--AW^-do@(;e-_Hi6}zDdsY zaOcw^^QmZniazNiKav);DKZ!vTdU%UOQP@S`_d@4$$oqMhEC2zCg%B!{CR;yI0;jy z9n-VMPiAjYCltzo^n{;p($yAHLE`s-QE{i?pIM(Gw-S7(0unztnKL0E*kEDevNTEO z@AeJ4AxZPR9L=14V?_Co%i~)7ps&S8!e6+vkm0AO#AXeyl)k z2(51nk~^&0wfU-+Hx+de-X)4sJ-}Rvc!R5qhk9SlTu{bDe;Tu)CHWAknX!4VgX6YA*YYZ#pOs=$O1Ctv0u7!Oqe<% z;BhM8>SwUe$PxQDie!*04eA!U0e~}xC-+9V6QMyTJjGfrD8;8;TRB+9 z?9UwpH}J#v3wF-|&7b9UeE7 zz)=xs#da~PRbfLypTt<=@3b-Cxat1dbw#R%l-MPKSmW7To)}BS$R>$AS^4+?eLfA_ z=0Ag>M5bS_MwuO~)lQ~!roV0h+T4+Z~<83Qy znN0?Rfzqp_p%X*7Z)o*LkLcKt1@m{f!@Q~78EHiaZgYPz=13U+%^l35F&`^1Z&{z6>-rM@r7sPzk?gy)dcJ62MD$4g+$gS}y$z13vtuhfTz;ylA>U2TQA2kXO}s*oU*wU6 z;#6LHK9Bo`Sk}s`-`|JyAFBQC6Z|EOEr~7&ePeH%8YC+-63h@0m=rxk!~_0zgcDME zHo>k2n*R{kTLx`!LnDKpp9O_kpyn3Ns|>06wG#b3Rfjz3KNK7(PcB4iCm{5;dkFv2+Q}b6v?{CQu3(*KIm;xo< zxSHX+r$IPK3{iub293Mj1s_P8EGO5{giTOgqIk2F^|Yi7FGw2EDd?{nSB&x{4tzg` z($O%ddLJEk`XfK`Lyg)ND5-zEO7>2F@KBoo46`Kz;vl@<#P3cUVu5-fv z*4SSBfOn_4@!jg5Tj_8le*fzNyHsAIVKKf|{gLZnHW&M_{%n$D!YiU6#PT61q_E8# zvN6sSXw3o_UqUs5coY^N{0WrbSyk3i`ey}B2o-fT zI-5_^9+mKJ=2Hac+NNU2gVr7=o&I)Sv{!+YlEU3Y|6xno4A`e)jSe@&-q_2j_mV6o z4+NXuqXHMKXFQHUT8{#4pA)!_b2{dD_TG;{|Er=ij?F^or{0ljV~HZs;A_cJGY z!M6-z^0UUtE5ZwM++Ho+Zp})C8v;`v!hg*vX<)jOMmHv=mX9X{Is}!Rym|)dx1yS< zE%srna}Q1>xfQFt`5HPte|4I(=&@{AUle*Ro%HYCGqL^p%q4qi(0PJfgpQf!Z6aUnfe}}dd6=qff;-?8nr{)cHLS@L9aNU*pGIzaF88|Bvgs` zF?P094+V>Rt(+Vgd|eZ~u|t?#F%X!6>4x)o<5i_bec9L!7JD2rrg+7r>@hV@!V!Y! zfCCu~Fc6`+KCU#rj`f#R8+{5YO&)?Z5e3$T*he@wysc+w!$(NKBbP?+Y$LG-7Bg;n z+Zt8F0=3%Nous+)B{pwv3Ot;DsQy#67QhrRMhyQE834Um5gWzR4wghf5!WQAJ12?K z;cseB&}}*?DFpy`d`gBkK^v^4YMNbFU%}DbKL%JRd{XxX=wHv!fEe9y1EA5K%7A0hTi zm1TDJjy8-UoqqlE{dvFvl?+PEpe?fy<$uNUOVj0VRK>sRu5_(!RkzTrO|_KG=$&`o z)eGx6z+L4I!vFMNe|#-{tf|}Gy(&(+n~GSlw)jW!I{d01 zBfX9FJpSF$`^bliUeEe~86P2w2`i^wl~OmtM;6z&1+Iur8wpbWWUDa9(TMlh{3_Ls@^ecKjPXT7L;gD{aFDy`qu@@_R3cY2*4I=BOUT)C8|XIl+ltNfgeepX#zm?Ran~} zQDfg@#o%Kbu3Q@>`PtiI3=H&ZogIt@wBQ^3OX0;@&3>v+&m_gvS1EZ`b@`XnhzE5v zGzPV6Uz|~Pgx{c#vc>!XJGZ@_&UQYu;mZ3|7BIEs{p$5`MFYP0eWJqFqVvJ@>P&sp`(1PEI4OfF}$TSIR8kDhb%W#HwSE}xq@zYo&l2Oot zWUfDI($YnLFMe$dWXL&5oOBtx*jed=Jh+uMPu?L~QOL*F+v*)#;k4|hJnqh-I}=&V zEohCU>rawo#+(;*Yo`Xv1Hv{V`@jTA43{x*K}bC&9l0&r-3%BwF%H`_E>K058i*zU z`LMwg+|@D!O=z*b2AMYyqr-_{?@kE&Gr9u&HG%LSiN5X!;V=HkK#c>ulq> zU-I6W0G+obYFwG0q3thQ1)c}tVg)X#8mTT)LD(2p@C3#}>8SahZ091e6hCiDjk-T6 zF$&$86k^vKRkRKZHsJ~~1>3(9X3!*qZzPiDH&Or6=X!fbcZ0>SclDcbB%WM9$(Zfs zdS7hQ&BicNRx07{Ag}H2q57GPs`6e&A#5&djqH6y@L50NtYz)1B`U3R$W9SIeJGpY z@}0f0-Df;5x3V58^9yRr!r_-HmmES-VR0`{C~VY}Eb$cPEl}-$Vb(Cj`(p;8+FB#V zYo($ZfV-(kxK{dNg0mB6&qxI7@oDQ0z5Hwu=X8rUS`IHgHoiZQOv--oP(EO=P>;Xn zUjBLUjFDvgZ~SUEJ)PKfw_m<`v7}sgT}Td}@}HIb!l2LV_BroYYN$E}IBnUYtEh%R z`ydo0+tO^8g2%#o*S@uwIqlNCYr3p@L)WcTRUIwXUP}mtJOD?=T0peAUVqFyhkjKP zg6OR9l4O{(HJsPgHEuw8zi9uokw(E~I(6;nQR@!E+0-{AHTMx#q+b|6y#ZQh!d6fz zo8uTR3#~k4iup64!55HssjJH<$3pyd6IJDF7UDv4ddE?mNHX z5N0DjN(<*lO{^?fKBKH{wvF^=qaTc)y`0r{!cL)>%*_q>6sh7+hTf5W{Uk(;1ezQ2PKUpXAc<~y?CMJ4k6YH zSdOutwJWEt^rdUcYESDsl||vAiKkH0ZTsQxEDNWMpr+M;K4O~v}KW~TfmWZiMkvDh6H z9-aBK#(6KAh1a%Z1B7wkcFqY2YWfh-hqCFA&rg{dZT7>-bZGxht`5#qae#+xbjxkVu>Ec9N&Uj#K3~51J-> zou+9#wz71x7AUjID9k(mGh$xX0BN$}c9; zh|gBqy1jvH3QgV0q*23TI*crym%C9d@dJARc z$M%w7o2wC%v<*N{?m39Mb748p7-RlEY?Qq2|vUo+I?;B zkU3%_%rr}0%;|CREtc4C_2Q%(%RvheeodJeHG+t_;@>ILfyal#-S=#@wknhwv9BRf zc}1uf8MmRI5yEX$%d;Lw`gzy}g>ni^NbTl}pD7KW~5}aRhs`eT-N^ z_xmP=lv~J@o*BN)()4cpXnlB}i8*@X9D%}3zHN&aUxo$M?idix*glM@=d~~e?&8b6 zYb9Chq9!axnGducHRmk*$jX(6C2DSbNzrBx!*p}%eEMXy=YBAsTWu@vU*__SRmW?{zLT|%=6UeyK(?_#dyjWJxX@qCNApvnfYsM-C0$%Z`1!xG zHSx=X8mZ}%Xk*3*EZ#jrP~TCcjbLKr??b9pCd6h7LNISbC>0th@2EXu;M2HG$HoYZ zOl7JoGq%#Joyee4-jF?R5n>z+#OF@7cDt*e(UH$7F9KAPIA+X>P~u8*W7()VyfE2I^1Ul2KjI*toJ8uu8n@lq2wrKCfo{R->%1>Be0rd&2P_B#SW zWbS%coXaFPm~{Vr{Ase<^ZwbpHxDcofh0ywUavgdrGG%$5 zg~n*Dq(-e35ZXo?f7(g{e&e%M;4o90&&c=qfU4*H+R`BBf1!#Q8Wm*eQIhbS^l3P4 zlrE<FLHa^Q1O_P5G-pJQ>+}iOojvouq1C3t9c% zarfLKkZn6Y>n*#CMrm9af}mtekkgArzthK=Ld@6mx3aw>XAQ3G>%7?|EU?9pOFSru z&=gbjFw3R@Dp+t#tN}0&y(pJ9d)VqK7CQ}K4;Q|1|`bvvD#)6a0%!C^SL z(FHm>{B!3E%V~~;hrVHez@ix(vfHKIny6&Mt~1<>r>gfpyidK#Ju2D{oXA2@YauND zGtxik)m_UP)_OH3iqo)c&o{+ai}um}HsZ%NLZKp6`ziOlmZTk14x0WyimbJ#15O(bKbr5Ard*nfN6~5V_S!>%&JoEw!@T&YD$#*VnjBoRg-Hnn zR-+fP5&-l&2j~OEp8IXtuAQCKzx9hDm^;zlkxK*SK+aDw6DpaQlx?tw$xr$TZTo1J zOn}!}!t#w(w^g=JYgJe{@Gda;if0Vi03o3g4G?n~x(DaRwH5-m;|pwNFX78t>*nU) ztcP!hjKL~5sZhh3s=!?DrrLm!imqMe(G^wNlW~Qar%c}XEMe3YUYbAG*gNOZZ~K>K z=%Tkz4!lE5`yPc?9iF0%6)+Rj`{>^?_a0M5PCo&Adb=(<6O=Rsk(E@3q_+H41 zRdJ=jug7zXc_Hq^zb}1F%lO8QeegEj=-kEAY0ykl@CoKe-(U-U@37*ihLw%{qUBCy$gFS9A0S&>Okem55pEi^@0wGhGBj07r%XY9(F9BZk1a~_osZM2 zNt$r!Y`$oOB)T^0!3heC8+z|1FTRj^s79jnew;^e_dNq6GK+ zfGiZ?g%m*6OSREkuiX!u0Jem(h~J7Tg=2W(+lPU;!@VN${iPqXy$d{Mcs5;3Q0d)J z+_B3E-TpjXVtlA(pU@?;s#A?MJ|jyrK%6(5qH#Pu{joVQd&M?4~^Dm|$ z=-r6u3$7KLFx8HJSl=hd;0vqN(=H~C3aP$<4$p)^mKLvZKHU`d7S+1q)r9r=v&2~^ z1j|sAip^Riqw@NYj1T+fx8eu^L63UE-fL;GLyqeLd2HrH`abDLV5B;v??u7<>;6{1 z0ZSM8Yd2O~dGP|tL+UuSy^`7adeG@CUvcNNYGqs93CHPt8;{mKE{?Dq1jMF1xg9U; zoHzUG4UnSf64<%G$<`;sdC?s+o9n->)!!H-=;U(s=nNmKw6(5VpVT4qUo}*yjM!3t?Q*qycWqKn1r5$1P4esGjFA-$T9g z=G?=aWx=o!k_1d7{(zAV8@k2_Z9K7pcb7mebRicP$SMf#yUke>JoISy9138iTmBoz zg3$yRNn7!MRW``q0y95lj{$e}qR?4#>YBjwt06kWFC& z!hi=k>mkW-XyKAjF7r$|z7+y_vvLj`f|T2UoRp0QgWZ1!E{(19yY6YNuhCRjzLTOa zmVdl(KH%Cp0Da`ssLIR@T1xKTprdU^{RyJ=dq}}DFqPFo5gM|ZtG!eodo=-k=c3Jp zzFJ@M@kkVgf6Gw!8aGjVDN0Qpf@A3IqyIp*LZ4fj8qWjvmV>BzbZn-u{+)>;U_-0_ zeg!CQGUKt)QG&|hYvOFy)=?kQ=-P3-UErQu>vZzObsHzocWP8_5oId29zgF4TBje# z<0eXb62y1xpE7NbiHPzO!0E|%sa=bxxSFuS?f&RHlReJLy=I&pk~A}*@|uf*yLY2` zjTzI8_vp0Gi|tX1Iu^VG@dT2ywKQr`3RS1* z4nSTX{}eVtei$^mtDZfDiS8gLg;X&U#r{aPsOzM(K3X{epTSSgRsd5P6ua_RpRlT~ z%#;b8qF(TMF_KM*p|qiihiKn-!_-$LorXrQ$Y_vuhvT++$ZHz)7>n=56;CIq+!|1v zBLluD(ON6M-KP~xmAXX%_Vkqy=Il34ZmdqybTRxQ!hQ>b`1osSv72AlnjgW#qe1A< zndHK7hwLt$>aJ#R_GD_dB=xz5!cKbmH3e+!hqGZGorCVwVE%;d6YtANQF6p$ zeGf;XoaZ(1$qw&(_3b%fbG!CYpX}Ez+VG}s9Q#$ysg+dGl8*C(Bw+$zo>wnDgx)Cx zI&RoVdT?v;wb>MgB?^??5^l(V{M->Lqj#ZXWhuZJx>9HUz@>~JK%`%)Ac=Mbuz2wT z5fTTZ#b!wssh~Nps-PtZI!udz1?^VIEC*qfU+308s@llpykK>64_29z^K(_AA>{G< z-o2_JDUPYC%(Y1;H65R*{Ta5xz$5O0j8t^zyZbb(?t$GU5rS=3ZGI+H;Nrd5tu{+O z4L#{BuJ0N13P}~!Vm9i-jr))SfS4e;xKlm!XUrbRxqJuQlm2u4EeVr|a6|fVd>B-G zCM9-w_(|xJqC|ksdIK#jc2bx*`8`-e?cNr8e|6rV;`y6O;rM)&?RKN%iIEdS1(YrD z?AO=Qd9~ZNz$x32~k&BhKCf5 zk>p3^HYy7XbrQdl4wGn$F*rF*8GCZq_V-58!m5?W%yNljd~e{Ze?@#SQto`xhz9+Y z(%%t`4u0fbmCr%}Hcj7jm}pJx#Jy%YI-9&%h zyrYVWmoE|gV{gN1*2+Jz(4ut zL+QRJ!mc^Nk+TI`CzFS6rBl{e=Y-~e;USp>PQH!|!e%V#SZY_Wxk~i2Dvzw` zGq1Q7eFod=zL;#Ob@sZ?Fm(6jg}r-0q4bW$p@e48^-~nj%=x+TlCU6)`ntF(srKrV zD^FteKgM3D|D)-xADVjnxNS-hX;B&mg5XDx?wU%8AR!78($XE$j1HwyIt4+bK{`f< z#6V*7=o$?JHnyFc@AKUEe{g;|=e*os#MJjo`*w zdc&p_Zy_M}=5|Y|hCkwL!BDrlWyo5?yv5-Kc~YneH{DvPH z_gA`)zC+_Uoa8dbQOX9H;}JGr{p7a8Kk$p_E#gA9?vk)td%W%`xOgpx{_XJzF)>QZdf z?$Nj7N3-bzY2%5N7e3{`>XS`~C5(4nbvT0Wuqxhjxe9QTGGL=$w^25GhMV8FxJra03LKlr%+shf)nfi0_;7;HpA)x!E!IGN8UDf4prbgwon|T>+P)ZU7j;y8Id^(5b<9GH zdb=z>gz6KaD%=kzW@g3upO_ZGAcwOe#iCr8eTZXb=MC)YZL|VuHaGHpV}-xL*sH;# z1(EmJ9yT8TUCsbsY*Q1dcqqTxKA<^GbV>Bb^C@wCx|Clm{PXxSATOj1C{A*huELWK z{xa0~)8f;&7^s!Cc?gm>`IqITy4UB0y{YGlUl>T1Z({wYYj*tcah#YV{k?z;d-W~& zy)lFbKH7RiY{5J7ciSWHo<{-ee-6>NvEOum`jjw*DsV(+hYQnWlfo>hs;|zuJFB$e zL?&MOw&@V$QQqd`}hBQw|?b^ zWAA(>y_zrK^zCA)`wFk&sccgU-y8y|8}Yl3GcWooiQhY8*=jKwj>R#FJuyG^Voxz} z?8lIGs=;6or!aoRe=nj-Bkc%`3SQH(Gsmk`{!nKdj-lKy4|rs1H0kgntdegS38iG* z6{%GsQc7zK+QQWTD*jBpa$`Qi4JEY~%-wkPh>HYWqitE{u;%~kuRgP8C-AiC>1Fp0 z7~cTQLORtIR*!#A6Vuh{{cM0xzmoSB#9{Z2%Q$uG$9lwQpx?u}AmhKH=h-?__%uh&)@S*l0gLV$3r_H{7-nZ8qn3P))eXVu10Y8AN& zbAAhN)j{!Lylyol`L8Pe3es4cX+(YBgs!+*G`<=@?Lcy>O@!d;qCSyeo)MJXK^d@AJ7VM7dJ;JlDxAafW&Ikdn-%JyEQ7Gqs5oB*C@Zy~TbK_8Vk8#3zp>k{`nSoh+;b*>*;Jw8zIG!!s z;_IWLZrJ(9Yp}8Nc%HkNXY%e?)*B=gdvRi=7l^Z(xIRJ1CpUd3W253&7-k&qttF*d zm#FL|jSLex6nW9SpM=km$~>EBDqvZl)&$i!n)FY?%|MNEJ6mBz{#46Dg?MHuRi`ig zW;n;)x#St4AXdp;-|m^{M>ipBWn{fY4-FPCSG%US!KbX0Eu2d< zOm7=$5T^b^C)N1<>b&3$so;%yC1+3`F5jiwReZCF|30GaxbvpZ)nF6#zugz6C#Dj! z+>jW2QKWtA>;_--xk~n>krCaBO+nM9&|uufo;G9we+w-EPGkMCp7L(Py-D&PhI=FW z)Y}uy+JkhKnvSZvK87Aw-@BG#+9&K?a=CK;)?^&7ur=@=M8I=423^_4xj%13v(Xb@Ki)QdXGJK3gkt&eC%{N+AzSyetsNBlUkC-LX#j$NBE zJ;=7N43tUxnaFUj&DsaszdAjr1W=S_PVkU4Vd10LYtg)Wz7jtLV5&eaLcr%^*z)J^U6ILM$8l^hIErS z8`7PXM{W`JYU57YFkAp!yLx4YTi?wMUx|%OjqBK$acgJZAye$vsxvo9y!OO@?!Pwx zIh)FerioaV>Dz8sY>TT)iYJe!jv%wlHMN z>f`?Qxfi~&-&Xhzg!VXp1DJ7rrW*A8K^FJ#k;}qWria3NA0Yd2>PO&4a7iSNDuEq75yMAhBX#w=zVTdLy;2e(s3ABzs) zy$(@W+_nY1y^tRxQ8Fl)T1d|cD_BSlG;gB}=5_-W$leB9iqf$K6nnST zFU->|nlsMMQ1csO$+YESY;m z%gxZeUyMWp#{~4;BSkMm`=&h%<2{cgSJhdGx4ao7s}gpN-|okGLC-&_01jHKR8XbKxX;D52;(J+i+y@5bs>raFJ4 zxB)$|eOP(LkZJgU@BTFgEV&_bwd$@%dip7Up5@1+*ws5Se-@buClNTb!)`L8fYhSd zLom0@gK0&&r;sFi^qBu;3jL`+GQI_Aq~(9G1nV+!O9*W{NNn{zK zFZOu6X=4#1JazavjqO#oB8jTeTN6d>x?5D_TxW^ZvBdWu?qL#D<~F7Wc7dIoXT5!f z+5!T{kG(DP^pF++xGKK6&(=qD=!)bzWi+@Lo`0Yc@`mlJRRvRTxMt`zS!q}Ax5oXk zKP4;}F;P#8#CI>|T`wV3{jsX|)&hc=ei0wj(fWcvS84;2Pg}omC+QaM5j&kQ7p^+G zi%z$;pfSCDJSrunXZN(!Dtej@D3eW8{v1rs>pYg~PI2=1P7P(ur?z;-^3`FzE`wjT zQ^GER3FK9e2fQnme*<_HwPrVDL0RO1Fzyl$XmI+w+>JJ#8vG_{*2;FjSxj z3rlqglOE6KZT~q_z4VE|+6=eHiHPxNYwuHAsMB)jgIPLnr0d2!n6WG7hmkSZg5OLmnNj_=m024Z^>7kHA+U69=R?3(xe{4%+M zbGSjWQT9D_q=$WAM(V%#xVTC83a_VjRCuTPaFP)k(GDZPj`ADPwD;)k$9SW!HYj17 zoRqu3Xz=1sh3TFQj6Jl~6Bj<^&bBJ(_r0*47sXX8LgJ?YuvdxSZiL^krc@105+BnM~)j8AzWUIU!);Ct^(HVxW4T{`a6TT6kqA zvnVOyJ%3A-%c@m+kjjVETC$|tjR&I=j`*x&${x=;TO4%)h3l_V?^)2zHNr4=FVl?6 z8)zZgek}P%4iGJ-)-&$W)o|%cgmUsD1DwxG6)mVaTFPDhB;0H$&5VDiGg~z=PkeHX z!xkbjGr+x<%~)ejIPk{<-T?nLJe^L7ah0@MKdJ+^vDKX@PSCIYa6&877Rz__KEw

    1$K`dJ#%q*I?U@Wo$s(beZgjqsy#jp$A8I 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

    v7@>zbt5|fI)>{UBX@NOjOr`7dGWt~X%U!?p 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

    ?ti5l~`GJ>tcQM5iemFx_gFmi&?W_!ElK{9# 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

    mqJ5 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

    fwd-SVjtEW*_WNyqppiRI8i#vk zZGs8qvt33-3p_XCLl#h-y4s|G7NN9XbmJb&S=tG(GPHqlOaipQE|f+naDI=c>nv|P zPn|u%1ZbyWYOu4ihee~m-eiV$g9QZ>qLxcwL$)Ox454`wD!}E4Ud;?wgul~fAKwks zI|d#JF>3^a821KTs1@{Z5}G>ZS!E8HSO*xL7<;m`@y%P#Y=6F=){(En7v3xR z?MgmeiD_b7j9BFnw#}Zn9f2P~4Xq73hU+Ex+ok&Ri~Q6$=~i>Hu-%P(b~tbIjGlg} zTNm3UO%OE@O?i`FbT@_`N)sYNyqQRS=#c!7Xz3|k`?qxU-x<2GhK~-`wZ=L$*@Pdm zDnG=PVld|~3pgN`XJ{nJxm$+rG{kSAhpjWLF8Qa5{~;UP>6ficZ|NWfO`^e{ynwPeF z_aOdW=z0IO*HL{{!pXBACKw}vof!{OJdS>`cA|pK*gqOgWGTg=FQrX`cFKd{(FXm4==&glAeiDYq2#)5Jds zPYidmb9;-_wX;b3T{`$ftmCNeNDUIT@*$5GiV=RDYPu{V_rVA~wyR|_oKoEp(zZ{9 z8E9w-(B%yg@CWx0lJ+P!^?l_lg6Cl5$k$PYlKB3O=3RV) z4MEz}zR2o3N#Ui9Uif~B0jqg1k+R4ruh1KPvhO%OjZ0dlobiNNV|CGHr(s1p2(NSlfUBCEN#KEI9+UoxU)SwKo99Vqp7|Kj+dq=`cRIJMLCe z;MoG>cykxvSVY(011o>xSV|XuYTRM_MZ-wdwxmYi#m@5nONW-7g@YINCo}rN%O_5M z1a!t8?=3#{uo^M_dNRSfN<5mw3p*UmuW#&z2eKFIm^_5lKV$H#5+Le}r1&#(@+F$y z4fPY)WU78H`PY|6G%P=;WT5PChWT7-+`a!tQbMf

  • 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 Q+78)SS@E=t{Zn1}75xj4ng5-MZ^_SsncVbL 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

    g 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 wrfod6`@rM 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

    )T^dlM;w^J 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

    G1u*yv!L6Km+py)zyhRc+YF!COQpZR&$*5NJG`C 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

    oTN%8qz2wBT}6YeGhx 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 z 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

    H6OvefMurssbJw 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 Qz`wn_4(xnsef;`=0O&4bNdN!< diff --git a/plugins/opencost/src/components/OpenCostReport/OpenCostReport.tsx b/plugins/opencost/src/components/OpenCostReport/OpenCostReport.tsx index bf3ea200e2..1fb57d78db 100644 --- a/plugins/opencost/src/components/OpenCostReport/OpenCostReport.tsx +++ b/plugins/opencost/src/components/OpenCostReport/OpenCostReport.tsx @@ -38,6 +38,7 @@ import { toVerboseTimeRange, } from '../../util'; import { currencyCodes } from '../../constants/currencyCodes'; +import { useApi, configApiRef } from '@backstage/core-plugin-api'; const windowOptions = [ { name: 'Today', value: 'today' }, @@ -177,13 +178,16 @@ export const OpenCostReport = () => { setInit(true); } + const configApi = useApi(configApiRef); + const baseUrl = configApi.getConfig('opencost').getString('baseUrl'); + /* eslint no-console: 0 */ + console.log(`baseUrl:${baseUrl}`); + async function fetchData() { setLoading(true); setErrors([]); try { - // TODO get the baseUrl from the Basecamp config - const baseUrl = 'http://localhost:9003'; const resp = await AllocationService.fetchAllocation( baseUrl, window, @@ -237,7 +241,6 @@ export const OpenCostReport = () => {

  • ^=2fs^@~{Ty%*P&rTA$*&QX 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

    )} - {init && (
    diff --git a/plugins/opencost/src/images/pig.png b/plugins/opencost/src/images/pig.png index 14fe563941abc8fb0248247428790bfd1e66dfc6..5de5409e87560a36d4f897b0091f62f2a837433b 100644 GIT binary patch delta 4747 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 From 1380a689ab561dac4cd4a6a2d6cbf7b5c7fff918 Mon Sep 17 00:00:00 2001 From: Matt Ray Date: Thu, 22 Jun 2023 16:07:38 +1000 Subject: [PATCH 352/372] Changeset describing new OpenCost plugin Signed-off-by: Matt Ray --- .changeset/slow-queens-visit.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/slow-queens-visit.md diff --git a/.changeset/slow-queens-visit.md b/.changeset/slow-queens-visit.md new file mode 100644 index 0000000000..2081215287 --- /dev/null +++ b/.changeset/slow-queens-visit.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-opencost': major +--- + +New OpenCost plugin provides an port of the latest OpenCost UI to Backstage with updated dependencies. The plugin's README covers installation and configuration From 6961967fb4c990d73c13b2504f2598bdbffde708 Mon Sep 17 00:00:00 2001 From: Matt Ray Date: Wed, 2 Aug 2023 17:16:49 +1000 Subject: [PATCH 353/372] Updates based off of @freben's code review * Reduced changeset to `minor` * Fixed indentation and quoting in README * yarn.lock update for rebased versions * ran `prettier` against all .js and .ts files and fixed errors Signed-off-by: Matt Ray --- .changeset/slow-queens-visit.md | 2 +- plugins/opencost/README.md | 20 +- plugins/opencost/config.d.ts | 7 +- plugins/opencost/package.json | 4 +- .../components/AllocationChart/RangeChart.js | 1 - .../AllocationChart/SummaryChart.js | 1 - .../src/components/AllocationChart/index.js | 1 - .../src/components/Controls/Download.js | 115 +++--- .../opencost/src/components/Controls/Edit.js | 1 - .../opencost/src/components/Controls/index.js | 19 +- .../OpenCostPage/OpenCostPage.test.tsx | 4 +- .../components/OpenCostPage/OpenCostPage.tsx | 4 +- .../OpenCostReport/OpenCostReport.tsx | 1 - plugins/opencost/src/components/Page.js | 20 +- .../opencost/src/components/SelectWindow.js | 220 +++++------ plugins/opencost/src/components/Subtitle.js | 30 +- plugins/opencost/src/components/Warnings.js | 30 +- plugins/opencost/src/constants/colors.js | 48 ++- .../opencost/src/constants/currencyCodes.js | 197 +++++++++- plugins/opencost/src/index.ts | 1 + plugins/opencost/src/plugin.test.ts | 1 + plugins/opencost/src/plugin.ts | 1 + plugins/opencost/src/routes.ts | 1 + plugins/opencost/src/services/allocation.js | 19 +- plugins/opencost/src/setupTests.ts | 17 - plugins/opencost/src/util.js | 349 +++++++++++------- yarn.lock | 54 +++ 27 files changed, 753 insertions(+), 415 deletions(-) delete mode 100644 plugins/opencost/src/setupTests.ts diff --git a/.changeset/slow-queens-visit.md b/.changeset/slow-queens-visit.md index 2081215287..2df948e477 100644 --- a/.changeset/slow-queens-visit.md +++ b/.changeset/slow-queens-visit.md @@ -1,5 +1,5 @@ --- -'@backstage/plugin-opencost': major +'@backstage/plugin-opencost': minor --- New OpenCost plugin provides an port of the latest OpenCost UI to Backstage with updated dependencies. The plugin's README covers installation and configuration diff --git a/plugins/opencost/README.md b/plugins/opencost/README.md index d034f1b3dd..39c5e7ee2e 100644 --- a/plugins/opencost/README.md +++ b/plugins/opencost/README.md @@ -15,18 +15,18 @@ All of the code was originally ported from https://github.com/opencost/opencost/ ``` 2. Add the `OpenCostPage` to your `packages/app/src/App.tsx`: -```tsx -import { OpenCostPage } from '@backstage/plugin-opencost'; -``` + ```tsx + import { OpenCostPage } from '@backstage/plugin-opencost'; + ``` and -```tsx - - … - } /> - -``` + ```tsx + + … + } /> + + ``` 3. Add link to OpenCost to your sidebar @@ -74,6 +74,6 @@ opencost: - Allow for user-provided default reports and/or disabling controls - Support multiple hard-coded reports - clean up deprecation warnings and upgrade to all the latest React components -- Fork(?) to support Kubecost, which could provide Alerts and Recommendations, similar to the Cost Explorer plugin +- Fork(?) to support `Kubecost`, which could provide Alerts and Recommendations, similar to the Cost Explorer plugin ![Screenshot](screenshot.png) diff --git a/plugins/opencost/config.d.ts b/plugins/opencost/config.d.ts index 0ff11bd1ed..0070bec7b7 100644 --- a/plugins/opencost/config.d.ts +++ b/plugins/opencost/config.d.ts @@ -15,13 +15,14 @@ */ export interface Config { - /** Configurations for the OpenCost plugin - * opencost config + /** + * Configurations for the OpenCost plugin + * * @visibility frontend */ opencost?: { /** - * The ppbase URL for the OpenCost API + * The base URL for the OpenCost API * @visibility frontend */ baseUrl: string; diff --git a/plugins/opencost/package.json b/plugins/opencost/package.json index e5de3defa8..2dde15362b 100644 --- a/plugins/opencost/package.json +++ b/plugins/opencost/package.json @@ -31,10 +31,11 @@ "@material-ui/lab": "^4.0.0-alpha.60", "@material-ui/pickers": "^3.3.10", "@material-ui/styles": "^4.11.5", + "axios": "^1.4.0", "date-fns": "^2.30.0", "lodash": "^4.17.21", "react-use": "^17.2.4", - "recharts": "^2.7.0" + "recharts": "^2.5.0" }, "peerDependencies": { "react": "^16.13.1 || ^17.0.0", @@ -48,7 +49,6 @@ "@testing-library/jest-dom": "^5.10.1", "@testing-library/react": "^12.1.3", "@testing-library/user-event": "^14.0.0", - "@types/node": "*", "cross-fetch": "^3.1.5", "msw": "^1.0.0" }, diff --git a/plugins/opencost/src/components/AllocationChart/RangeChart.js b/plugins/opencost/src/components/AllocationChart/RangeChart.js index d95981f42a..b1ce5a34ee 100644 --- a/plugins/opencost/src/components/AllocationChart/RangeChart.js +++ b/plugins/opencost/src/components/AllocationChart/RangeChart.js @@ -13,7 +13,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - import React from 'react'; import { BarChart, diff --git a/plugins/opencost/src/components/AllocationChart/SummaryChart.js b/plugins/opencost/src/components/AllocationChart/SummaryChart.js index 9ac59cdbca..53c0842845 100644 --- a/plugins/opencost/src/components/AllocationChart/SummaryChart.js +++ b/plugins/opencost/src/components/AllocationChart/SummaryChart.js @@ -13,7 +13,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - import React from 'react'; import { ResponsiveContainer, PieChart, Pie, Cell } from 'recharts'; import { primary, greyscale, browns } from '../../constants/colors'; diff --git a/plugins/opencost/src/components/AllocationChart/index.js b/plugins/opencost/src/components/AllocationChart/index.js index c08c5513a8..9fec3e296f 100644 --- a/plugins/opencost/src/components/AllocationChart/index.js +++ b/plugins/opencost/src/components/AllocationChart/index.js @@ -13,7 +13,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - import React from 'react'; import { isArray, filter, map, reduce, reverse, sortBy } from 'lodash'; diff --git a/plugins/opencost/src/components/Controls/Download.js b/plugins/opencost/src/components/Controls/Download.js index 527940924a..727188e5c1 100644 --- a/plugins/opencost/src/components/Controls/Download.js +++ b/plugins/opencost/src/components/Controls/Download.js @@ -13,84 +13,89 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - -import React from 'react' -import { get, forEach, reverse, round, sortBy } from 'lodash' -import ExportIcon from '@material-ui/icons/GetApp' -import IconButton from '@material-ui/core/IconButton' -import Tooltip from '@material-ui/core/Tooltip' +import React from 'react'; +import { get, forEach, reverse, round, sortBy } from 'lodash'; +import ExportIcon from '@material-ui/icons/GetApp'; +import IconButton from '@material-ui/core/IconButton'; +import Tooltip from '@material-ui/core/Tooltip'; const columns = [ { - head: "Name", - prop: "name", + head: 'Name', + prop: 'name', currency: false, - }, { - head: "CPU", - prop: "cpuCost", + }, + { + head: 'CPU', + prop: 'cpuCost', currency: true, - }, { - head: "GPU", - prop: "gpuCost", + }, + { + head: 'GPU', + prop: 'gpuCost', currency: true, - }, { - head: "RAM", - prop: "ramCost", + }, + { + head: 'RAM', + prop: 'ramCost', currency: true, - }, { - head: "PV", - prop: "pvCost", + }, + { + head: 'PV', + prop: 'pvCost', currency: true, - }, { - head: "Network", - prop: "networkCost", + }, + { + head: 'Network', + prop: 'networkCost', currency: true, - }, { - head: "Shared", - prop: "sharedCost", + }, + { + head: 'Shared', + prop: 'sharedCost', currency: true, - }, { - head: "Total", - prop: "totalCost", + }, + { + head: 'Total', + prop: 'totalCost', currency: true, - } -] + }, +]; -const toCSVLine = (datum) => { - const cols = [] +const toCSVLine = datum => { + const cols = []; forEach(columns, c => { if (c.currency) { - cols.push(round(get(datum, c.prop, 0.0), 2)) + cols.push(round(get(datum, c.prop, 0.0), 2)); } else { - cols.push(`"${get(datum, c.prop, "")}"`) + cols.push(`"${get(datum, c.prop, '')}"`); } - }) + }); - return cols.join(',') -} + return cols.join(','); +}; -const DownloadControl = ({ - cumulativeData, - title, -}) => { +const DownloadControl = ({ cumulativeData, title }) => { // downloadReport downloads a CSV of the cumulative allocation data function downloadReport() { // Build CSV - const head = columns.map(c => c.head).join(',') - const body = reverse(sortBy(cumulativeData, 'totalCost')).map(toCSVLine).join('\r\n') - const csv = `${head}\r\n${body}` + const head = columns.map(c => c.head).join(','); + const body = reverse(sortBy(cumulativeData, 'totalCost')) + .map(toCSVLine) + .join('\r\n'); + const csv = `${head}\r\n${body}`; // Create download link - const a = document.createElement("a") - a.href = URL.createObjectURL(new Blob([csv], { type: "text/csv" })) - const filename = title.toLocaleLowerCase('en-US').replace(/\s/gi, '-') - a.setAttribute("download", `${filename}-${Date.now()}.csv`) + const a = document.createElement('a'); + a.href = URL.createObjectURL(new Blob([csv], { type: 'text/csv' })); + const filename = title.toLocaleLowerCase('en-US').replace(/\s/gi, '-'); + a.setAttribute('download', `${filename}-${Date.now()}.csv`); // Click the link - document.body.appendChild(a) - a.click() - document.body.removeChild(a) + document.body.appendChild(a); + a.click(); + document.body.removeChild(a); } return ( @@ -99,7 +104,7 @@ const DownloadControl = ({ - ) -} + ); +}; -export default React.memo(DownloadControl) +export default React.memo(DownloadControl); diff --git a/plugins/opencost/src/components/Controls/Edit.js b/plugins/opencost/src/components/Controls/Edit.js index a1b3fe1fc7..f02f8cc111 100644 --- a/plugins/opencost/src/components/Controls/Edit.js +++ b/plugins/opencost/src/components/Controls/Edit.js @@ -13,7 +13,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - import { makeStyles } from '@material-ui/styles'; import FormControl from '@material-ui/core/FormControl'; import InputLabel from '@material-ui/core/InputLabel'; diff --git a/plugins/opencost/src/components/Controls/index.js b/plugins/opencost/src/components/Controls/index.js index f5ea994e33..c63833a6ab 100644 --- a/plugins/opencost/src/components/Controls/index.js +++ b/plugins/opencost/src/components/Controls/index.js @@ -13,10 +13,9 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - -import React from 'react' -import DownloadControl from './Download' -import EditControl from './Edit' +import React from 'react'; +import DownloadControl from './Download'; +import EditControl from './Edit'; const Controls = ({ windowOptions, @@ -34,7 +33,6 @@ const Controls = ({ currencyOptions, setCurrency, }) => { - return (
    - +
    - ) -} + ); +}; -export default React.memo(Controls) +export default React.memo(Controls); diff --git a/plugins/opencost/src/components/OpenCostPage/OpenCostPage.test.tsx b/plugins/opencost/src/components/OpenCostPage/OpenCostPage.test.tsx index de6565246c..ea10906f85 100644 --- a/plugins/opencost/src/components/OpenCostPage/OpenCostPage.test.tsx +++ b/plugins/opencost/src/components/OpenCostPage/OpenCostPage.test.tsx @@ -37,6 +37,8 @@ describe('OpenCostPage', () => { it('should render', async () => { await renderInTestApp(); - expect(screen.getByText('Open source Kubernetes cloud cost monitoring')).toBeInTheDocument(); + expect( + screen.getByText('Open source Kubernetes cloud cost monitoring'), + ).toBeInTheDocument(); }); }); diff --git a/plugins/opencost/src/components/OpenCostPage/OpenCostPage.tsx b/plugins/opencost/src/components/OpenCostPage/OpenCostPage.tsx index 88ef390c49..19a383e7b6 100644 --- a/plugins/opencost/src/components/OpenCostPage/OpenCostPage.tsx +++ b/plugins/opencost/src/components/OpenCostPage/OpenCostPage.tsx @@ -38,10 +38,10 @@ export const OpenCostPage = () => ( />
    - + - + diff --git a/plugins/opencost/src/components/OpenCostReport/OpenCostReport.tsx b/plugins/opencost/src/components/OpenCostReport/OpenCostReport.tsx index 1fb57d78db..8a4cad49c8 100644 --- a/plugins/opencost/src/components/OpenCostReport/OpenCostReport.tsx +++ b/plugins/opencost/src/components/OpenCostReport/OpenCostReport.tsx @@ -13,7 +13,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - // code ported from https://github.com/opencost/opencost/blob/develop/ui/src/Reports.js import React, { useEffect, useState } from 'react'; diff --git a/plugins/opencost/src/components/Page.js b/plugins/opencost/src/components/Page.js index 9d5af515d0..6346b6287b 100644 --- a/plugins/opencost/src/components/Page.js +++ b/plugins/opencost/src/components/Page.js @@ -14,8 +14,8 @@ * limitations under the License. */ -import { makeStyles } from '@material-ui/styles' -import React from 'react' +import { makeStyles } from '@material-ui/styles'; +import React from 'react'; const useStyles = makeStyles({ wrapper: { @@ -29,21 +29,19 @@ const useStyles = makeStyles({ display: 'flex', flexFlow: 'column', flexGrow: 1, - } -}) + }, +}); const Page = props => { - const classes = useStyles() + const classes = useStyles(); return (
    -
    - {props.children} -
    +
    {props.children}
    - ) -} + ); +}; -export default Page +export default Page; diff --git a/plugins/opencost/src/components/SelectWindow.js b/plugins/opencost/src/components/SelectWindow.js index a8eb00f03c..87ecfe093e 100644 --- a/plugins/opencost/src/components/SelectWindow.js +++ b/plugins/opencost/src/components/SelectWindow.js @@ -14,19 +14,22 @@ * limitations under the License. */ -import React, { useEffect, useState } from 'react' -import { makeStyles } from '@material-ui/styles' -import { endOfDay, startOfDay } from 'date-fns' -import { MuiPickersUtilsProvider, KeyboardDatePicker } from '@material-ui/pickers' -import Button from '@material-ui/core/Button' -import DateFnsUtils from '@date-io/date-fns' -import FormControl from '@material-ui/core/FormControl' -import Link from '@material-ui/core/Link' -import Popover from '@material-ui/core/Popover' -import TextField from '@material-ui/core/TextField' -import Typography from '@material-ui/core/Typography' -import { isValid } from 'date-fns' -import { find, get } from 'lodash' +import React, { useEffect, useState } from 'react'; +import { makeStyles } from '@material-ui/styles'; +import { endOfDay, startOfDay } from 'date-fns'; +import { + MuiPickersUtilsProvider, + KeyboardDatePicker, +} from '@material-ui/pickers'; +import Button from '@material-ui/core/Button'; +import DateFnsUtils from '@date-io/date-fns'; +import FormControl from '@material-ui/core/FormControl'; +import Link from '@material-ui/core/Link'; +import Popover from '@material-ui/core/Popover'; +import TextField from '@material-ui/core/TextField'; +import Typography from '@material-ui/core/Typography'; +import { isValid } from 'date-fns'; +import { find, get } from 'lodash'; const useStyles = makeStyles({ dateContainer: { @@ -45,96 +48,99 @@ const useStyles = makeStyles({ margin: 8, width: 120, }, -}) +}); const SelectWindow = ({ windowOptions, window, setWindow }) => { - const classes = useStyles() - const [anchorEl, setAnchorEl] = useState(null) + const classes = useStyles(); + const [anchorEl, setAnchorEl] = useState(null); - const [startDate, setStartDate] = useState(null) - const [endDate, setEndDate] = useState(null) - const [intervalString, setIntervalString] = useState(null) + const [startDate, setStartDate] = useState(null); + const [endDate, setEndDate] = useState(null); + const [intervalString, setIntervalString] = useState(null); - const handleClick = (event) => { - setAnchorEl(event.currentTarget) + const handleClick = event => { + setAnchorEl(event.currentTarget); + }; + + const handleClose = () => { + setAnchorEl(null); + }; + + const handleStartDateChange = date => { + if (isValid(date)) { + setStartDate(startOfDay(date)); } + }; - const handleClose = () => { - setAnchorEl(null) + const handleEndDateChange = date => { + if (isValid(date)) { + setEndDate(endOfDay(date)); } + }; - const handleStartDateChange = (date) => { - if (isValid(date)) { - setStartDate(startOfDay(date)) - } + const handleSubmitPresetDates = dateString => { + setWindow(dateString); + setStartDate(null); + setEndDate(null); + handleClose(); + }; + + const handleSubmitCustomDates = () => { + if (intervalString !== null) { + setWindow(intervalString); + handleClose(); } + }; - const handleEndDateChange = (date) => { - if (isValid(date)) { - setEndDate(endOfDay(date)) - } + useEffect(() => { + if (startDate !== null && endDate !== null) { + // Note: getTimezoneOffset() is calculated based on current system locale, NOT date object + const adjustedStartDate = new Date( + startDate - startDate.getTimezoneOffset() * 60000, + ); + const adjustedEndDate = new Date( + endDate - endDate.getTimezoneOffset() * 60000, + ); + setIntervalString( + `${adjustedStartDate.toISOString().split('.')[0]}Z` + + `,${adjustedEndDate.toISOString().split('.')[0]}Z`, + ); } + }, [startDate, endDate]); - const handleSubmitPresetDates = (dateString) => { - setWindow(dateString) - setStartDate(null) - setEndDate(null) - handleClose() - } + const open = Boolean(anchorEl); + const id = open ? 'date-range-popover' : undefined; - const handleSubmitCustomDates = () => { - if (intervalString !== null) { - setWindow(intervalString) - handleClose() - } - } - - useEffect(() => { - if (startDate !== null && endDate !== null) { - // Note: getTimezoneOffset() is calculated based on current system locale, NOT date object - const adjustedStartDate = new Date(startDate - startDate.getTimezoneOffset() * 60000) - const adjustedEndDate = new Date(endDate - endDate.getTimezoneOffset() * 60000) - setIntervalString( - `${adjustedStartDate.toISOString().split('.')[0] }Z` - + `,${ - adjustedEndDate.toISOString().split('.')[0] }Z` - ) - } - }, [startDate, endDate]) - - const open = Boolean(anchorEl) - const id = open ? 'date-range-popover' : undefined - - return ( - <> - - + + handleClick(e)} inputProps={{ readOnly: true, style: { cursor: 'pointer' }, }} - /> - - -
    -
    + /> + + +
    +
    { }} /> -
    - -
    -
    -
    - {windowOptions.map(opt => - ( + +
    +
    +
    + {windowOptions.map(opt => ( + handleSubmitPresetDates(opt.value)} > {opt.name} - ) - )} -
    + + ))}
    - - - ) - } +
    +
    + + ); +}; - export default React.memo(SelectWindow) +export default React.memo(SelectWindow); diff --git a/plugins/opencost/src/components/Subtitle.js b/plugins/opencost/src/components/Subtitle.js index 1c7affb8b7..63b3df61ff 100644 --- a/plugins/opencost/src/components/Subtitle.js +++ b/plugins/opencost/src/components/Subtitle.js @@ -14,12 +14,12 @@ * limitations under the License. */ -import React from 'react' -import { makeStyles } from '@material-ui/styles' -import { upperFirst } from 'lodash' -import Breadcrumbs from '@material-ui/core/Breadcrumbs' -import NavigateNextIcon from '@material-ui/icons/NavigateNext' -import Typography from '@material-ui/core/Typography' +import React from 'react'; +import { makeStyles } from '@material-ui/styles'; +import { upperFirst } from 'lodash'; +import Breadcrumbs from '@material-ui/core/Breadcrumbs'; +import NavigateNextIcon from '@material-ui/icons/NavigateNext'; +import Typography from '@material-ui/core/Typography'; import { toVerboseTimeRange } from '../util'; const useStyles = makeStyles({ @@ -29,14 +29,14 @@ const useStyles = makeStyles({ }, }, link: { - cursor: "pointer", + cursor: 'pointer', }, -}) +}); const Subtitle = ({ report }) => { - const classes = useStyles() + const classes = useStyles(); - const { aggregateBy, window } = report + const { aggregateBy, window } = report; return (
    @@ -45,13 +45,15 @@ const Subtitle = ({ report }) => { aria-label="breadcrumb" > {aggregateBy && aggregateBy.length > 0 ? ( - {toVerboseTimeRange(window)} by {upperFirst(aggregateBy)} + + {toVerboseTimeRange(window)} by {upperFirst(aggregateBy)} + ) : ( {toVerboseTimeRange(window)} )}
    - ) -} + ); +}; -export default React.memo(Subtitle) +export default React.memo(Subtitle); diff --git a/plugins/opencost/src/components/Warnings.js b/plugins/opencost/src/components/Warnings.js index 5cb3ccfdd6..ae1047ebc2 100644 --- a/plugins/opencost/src/components/Warnings.js +++ b/plugins/opencost/src/components/Warnings.js @@ -14,24 +14,24 @@ * limitations under the License. */ -import React from 'react' -import { makeStyles } from '@material-ui/styles' -import List from '@material-ui/core/List' -import ListItem from '@material-ui/core/ListItem' -import ListItemIcon from '@material-ui/core/ListItemIcon' -import ListItemText from '@material-ui/core/ListItemText' -import Paper from '@material-ui/core/Paper' -import WarningIcon from '@material-ui/icons/Warning' +import React from 'react'; +import { makeStyles } from '@material-ui/styles'; +import List from '@material-ui/core/List'; +import ListItem from '@material-ui/core/ListItem'; +import ListItemIcon from '@material-ui/core/ListItemIcon'; +import ListItemText from '@material-ui/core/ListItemText'; +import Paper from '@material-ui/core/Paper'; +import WarningIcon from '@material-ui/icons/Warning'; const useStyles = makeStyles({ root: {}, -}) +}); -const Warnings = ({warnings}) => { - const classes = useStyles() +const Warnings = ({ warnings }) => { + const classes = useStyles(); if (!warnings || warnings.length === 0) { - return null + return null; } return ( @@ -47,7 +47,7 @@ const Warnings = ({warnings}) => { ))} - ) -} + ); +}; -export default Warnings +export default Warnings; diff --git a/plugins/opencost/src/constants/colors.js b/plugins/opencost/src/constants/colors.js index 4c66549ad0..8e0289541b 100644 --- a/plugins/opencost/src/constants/colors.js +++ b/plugins/opencost/src/constants/colors.js @@ -1,15 +1,31 @@ -import blue from '@material-ui/core/colors/blue' -import brown from '@material-ui/core/colors/brown' -import cyan from '@material-ui/core/colors/cyan' -import deepOrange from '@material-ui/core/colors/deepOrange' -import deepPurple from '@material-ui/core/colors/deepPurple' -import green from '@material-ui/core/colors/green' -import grey from '@material-ui/core/colors/grey' -import indigo from '@material-ui/core/colors/indigo' -import orange from '@material-ui/core/colors/orange' -import red from '@material-ui/core/colors/red' -import teal from '@material-ui/core/colors/teal' -import yellow from '@material-ui/core/colors/yellow' +/* + * 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 blue from '@material-ui/core/colors/blue'; +import brown from '@material-ui/core/colors/brown'; +import cyan from '@material-ui/core/colors/cyan'; +import deepOrange from '@material-ui/core/colors/deepOrange'; +import deepPurple from '@material-ui/core/colors/deepPurple'; +import green from '@material-ui/core/colors/green'; +import grey from '@material-ui/core/colors/grey'; +import indigo from '@material-ui/core/colors/indigo'; +import orange from '@material-ui/core/colors/orange'; +import red from '@material-ui/core/colors/red'; +import teal from '@material-ui/core/colors/teal'; +import yellow from '@material-ui/core/colors/yellow'; export const primary = [ blue[500], @@ -22,7 +38,7 @@ export const primary = [ indigo[500], deepOrange[500], deepPurple[500], -] +]; export const greyscale = [ grey[300], @@ -31,8 +47,6 @@ export const greyscale = [ grey[500], grey[100], grey[600], -] +]; -export const browns = [ - brown[500], -] +export const browns = [brown[500]]; diff --git a/plugins/opencost/src/constants/currencyCodes.js b/plugins/opencost/src/constants/currencyCodes.js index 219384c24b..a325df54d0 100644 --- a/plugins/opencost/src/constants/currencyCodes.js +++ b/plugins/opencost/src/constants/currencyCodes.js @@ -1 +1,196 @@ -export const currencyCodes = ["AED", "AFN", "ALL", "AMD", "ANG", "AOA", "ARS", "AUD", "AWG", "AZN", "BAM", "BBD", "BDT", "BGN", "BHD", "BIF", "BMD", "BND", "BOB", "BOV", "BRL", "BSD", "BTN", "BWP", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLF", "CLP", "CNY", "COP", "COU", "CRC", "CUC", "CUP", "CVE", "CZK", "DJF", "DKK", "DOP", "DZD", "EGP", "ERN", "ETB", "EUR", "FJD", "FKP", "GBP", "GEL", "GHS", "GIP", "GMD", "GNF", "GTQ", "GYD", "HKD", "HNL", "HRK", "HTG", "HUF", "IDR", "ILS", "INR", "IQD", "IRR", "ISK", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LVL", "LYD", "MAD", "MDL", "MGA", "MKD", "MMK", "MNT", "MOP", "MRO", "MUR", "MVR", "MWK", "MXN", "MXV", "MYR", "MZN", "NAD", "NGN", "NIO", "NOK", "NPR", "NZD", "OMR", "PAB", "PEN", "PGK", "PHP", "PKR", "PLN", "PYG", "QAR", "RON", "RSD", "RUB", "RWF", "SAR", "SBD", "SCR", "SDG", "SEK", "SGD", "SHP", "SLL", "SOS", "SRD", "SSP", "STD", "SYP", "SZL", "THB", "TJS", "TMT", "TND", "TOP", "TRY", "TTD", "TWD", "TZS", "UAH", "UGX", "USD", "USN", "USS", "UYI", "UYU", "UZS", "VEF", "VND", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XFU", "XOF", "XPD", "XPF", "XPT", "XTS", "XXX", "YER", "ZAR", "ZMW"]; +/* + * 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 const currencyCodes = [ + 'AED', + 'AFN', + 'ALL', + 'AMD', + 'ANG', + 'AOA', + 'ARS', + 'AUD', + 'AWG', + 'AZN', + 'BAM', + 'BBD', + 'BDT', + 'BGN', + 'BHD', + 'BIF', + 'BMD', + 'BND', + 'BOB', + 'BOV', + 'BRL', + 'BSD', + 'BTN', + 'BWP', + 'BYR', + 'BZD', + 'CAD', + 'CDF', + 'CHE', + 'CHF', + 'CHW', + 'CLF', + 'CLP', + 'CNY', + 'COP', + 'COU', + 'CRC', + 'CUC', + 'CUP', + 'CVE', + 'CZK', + 'DJF', + 'DKK', + 'DOP', + 'DZD', + 'EGP', + 'ERN', + 'ETB', + 'EUR', + 'FJD', + 'FKP', + 'GBP', + 'GEL', + 'GHS', + 'GIP', + 'GMD', + 'GNF', + 'GTQ', + 'GYD', + 'HKD', + 'HNL', + 'HRK', + 'HTG', + 'HUF', + 'IDR', + 'ILS', + 'INR', + 'IQD', + 'IRR', + 'ISK', + 'JMD', + 'JOD', + 'JPY', + 'KES', + 'KGS', + 'KHR', + 'KMF', + 'KPW', + 'KRW', + 'KWD', + 'KYD', + 'KZT', + 'LAK', + 'LBP', + 'LKR', + 'LRD', + 'LSL', + 'LTL', + 'LVL', + 'LYD', + 'MAD', + 'MDL', + 'MGA', + 'MKD', + 'MMK', + 'MNT', + 'MOP', + 'MRO', + 'MUR', + 'MVR', + 'MWK', + 'MXN', + 'MXV', + 'MYR', + 'MZN', + 'NAD', + 'NGN', + 'NIO', + 'NOK', + 'NPR', + 'NZD', + 'OMR', + 'PAB', + 'PEN', + 'PGK', + 'PHP', + 'PKR', + 'PLN', + 'PYG', + 'QAR', + 'RON', + 'RSD', + 'RUB', + 'RWF', + 'SAR', + 'SBD', + 'SCR', + 'SDG', + 'SEK', + 'SGD', + 'SHP', + 'SLL', + 'SOS', + 'SRD', + 'SSP', + 'STD', + 'SYP', + 'SZL', + 'THB', + 'TJS', + 'TMT', + 'TND', + 'TOP', + 'TRY', + 'TTD', + 'TWD', + 'TZS', + 'UAH', + 'UGX', + 'USD', + 'USN', + 'USS', + 'UYI', + 'UYU', + 'UZS', + 'VEF', + 'VND', + 'VUV', + 'WST', + 'XAF', + 'XAG', + 'XAU', + 'XBA', + 'XBB', + 'XBC', + 'XBD', + 'XCD', + 'XDR', + 'XFU', + 'XOF', + 'XPD', + 'XPF', + 'XPT', + 'XTS', + 'XXX', + 'YER', + 'ZAR', + 'ZMW', +]; diff --git a/plugins/opencost/src/index.ts b/plugins/opencost/src/index.ts index 0391378aef..32ec0d0091 100644 --- a/plugins/opencost/src/index.ts +++ b/plugins/opencost/src/index.ts @@ -13,4 +13,5 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + export { openCostPlugin, OpenCostPage } from './plugin'; diff --git a/plugins/opencost/src/plugin.test.ts b/plugins/opencost/src/plugin.test.ts index a505cbe130..6d6d20c603 100644 --- a/plugins/opencost/src/plugin.test.ts +++ b/plugins/opencost/src/plugin.test.ts @@ -13,6 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + import { openCostPlugin } from './plugin'; describe('opencost', () => { diff --git a/plugins/opencost/src/plugin.ts b/plugins/opencost/src/plugin.ts index edaa04d595..9eaf8f63f5 100644 --- a/plugins/opencost/src/plugin.ts +++ b/plugins/opencost/src/plugin.ts @@ -13,6 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + import { createPlugin, createRoutableExtension, diff --git a/plugins/opencost/src/routes.ts b/plugins/opencost/src/routes.ts index b7ace600e2..5f1f9e4527 100644 --- a/plugins/opencost/src/routes.ts +++ b/plugins/opencost/src/routes.ts @@ -13,6 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + import { createRouteRef } from '@backstage/core-plugin-api'; export const rootRouteRef = createRouteRef({ diff --git a/plugins/opencost/src/services/allocation.js b/plugins/opencost/src/services/allocation.js index 8b94c4945e..e7fba8feae 100644 --- a/plugins/opencost/src/services/allocation.js +++ b/plugins/opencost/src/services/allocation.js @@ -1,8 +1,23 @@ +/* + * 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 axios from 'axios'; class AllocationService { async fetchAllocation(baseUrl, win, aggregate, options) { - const { accumulate, } = options; + const { accumulate } = options; const params = { window: win, aggregate: aggregate, @@ -12,10 +27,8 @@ class AllocationService { params.accumulate = accumulate; } - console.log(`${baseUrl}/allocation/compute`, { params }); const result = await axios.get(`${baseUrl}/allocation/compute`, { params }); - console.log(result.data); return result.data; } } diff --git a/plugins/opencost/src/setupTests.ts b/plugins/opencost/src/setupTests.ts deleted file mode 100644 index 73dd8dce47..0000000000 --- a/plugins/opencost/src/setupTests.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. - */ -import '@testing-library/jest-dom'; -import 'cross-fetch/polyfill'; diff --git a/plugins/opencost/src/util.js b/plugins/opencost/src/util.js index 8e4bfcb54d..d2c8fa7562 100644 --- a/plugins/opencost/src/util.js +++ b/plugins/opencost/src/util.js @@ -1,18 +1,34 @@ -import { forEach, get, round } from 'lodash' +/* + * 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 { forEach, get, round } from 'lodash'; // rangeToCumulative takes an AllocationSetRange (type: array[AllocationSet]) // and accumulates the values into a single AllocationSet (type: object) export function rangeToCumulative(allocationSetRange, aggregateBy) { if (allocationSetRange.length === 0) { - return null + return null; } - const result = {} + const result = {}; - forEach(allocationSetRange, (allocSet) => { - forEach(allocSet, (alloc) => { + forEach(allocationSetRange, allocSet => { + forEach(allocSet, alloc => { if (result[alloc.name] === undefined) { - const hrs = get(alloc, 'minutes', 0) / 60.0 + const hrs = get(alloc, 'minutes', 0) / 60.0; result[alloc.name] = { name: alloc.name, @@ -32,70 +48,76 @@ export function rangeToCumulative(allocationSetRange, aggregateBy) { cpuEfficiency: get(alloc, 'cpuEfficiency', 0), ramEfficiency: get(alloc, 'ramEfficiency', 0), totalEfficiency: get(alloc, 'totalEfficiency', 0), - } + }; } else { - const hrs = get(alloc, 'minutes', 0) / 60.0 + const hrs = get(alloc, 'minutes', 0) / 60.0; - result[alloc.name].cpuCost += get(alloc, 'cpuCost', 0) - result[alloc.name].gpuCost += get(alloc, 'gpuCost', 0) - result[alloc.name].ramCost += get(alloc, 'ramCost', 0) - result[alloc.name].pvCost += get(alloc, 'pvCost', 0) - result[alloc.name].networkCost += get(alloc, 'networkCost', 0) - result[alloc.name].sharedCost += get(alloc, 'sharedCost', 0) - result[alloc.name].externalCost += get(alloc, 'externalCost', 0) - result[alloc.name].totalCost += get(alloc, 'totalCost', 0) - result[alloc.name].cpuUseCoreHrs += get(alloc, 'cpuCoreUsageAverage', 0) * hrs - result[alloc.name].cpuReqCoreHrs += get(alloc, 'cpuCoreRequestAverage', 0) * hrs - result[alloc.name].ramUseByteHrs += get(alloc, 'ramByteUsageAverage', 0) * hrs - result[alloc.name].ramReqByteHrs += get(alloc, 'ramByteRequestAverage', 0) * hrs + result[alloc.name].cpuCost += get(alloc, 'cpuCost', 0); + result[alloc.name].gpuCost += get(alloc, 'gpuCost', 0); + result[alloc.name].ramCost += get(alloc, 'ramCost', 0); + result[alloc.name].pvCost += get(alloc, 'pvCost', 0); + result[alloc.name].networkCost += get(alloc, 'networkCost', 0); + result[alloc.name].sharedCost += get(alloc, 'sharedCost', 0); + result[alloc.name].externalCost += get(alloc, 'externalCost', 0); + result[alloc.name].totalCost += get(alloc, 'totalCost', 0); + result[alloc.name].cpuUseCoreHrs += + get(alloc, 'cpuCoreUsageAverage', 0) * hrs; + result[alloc.name].cpuReqCoreHrs += + get(alloc, 'cpuCoreRequestAverage', 0) * hrs; + result[alloc.name].ramUseByteHrs += + get(alloc, 'ramByteUsageAverage', 0) * hrs; + result[alloc.name].ramReqByteHrs += + get(alloc, 'ramByteRequestAverage', 0) * hrs; } - }) - }) + }); + }); // If the range is of length > 1 (i.e. it is not just a single set) then // compute efficiency for each result after accumulating. if (allocationSetRange.length > 1) { forEach(result, (alloc, name) => { // If we can't compute total efficiency, it defaults to 0.0 - let totalEfficiency = 0.0 + let totalEfficiency = 0.0; // CPU efficiency is defined as (usage/request). If request == 0.0 but // usage > 0, then efficiency gets set to 1.0. - let cpuEfficiency = 0.0 + let cpuEfficiency = 0.0; if (alloc.cpuReqCoreHrs > 0) { - cpuEfficiency = alloc.cpuUseCoreHrs / alloc.cpuReqCoreHrs + cpuEfficiency = alloc.cpuUseCoreHrs / alloc.cpuReqCoreHrs; } else if (alloc.cpuUseCoreHrs > 0) { - cpuEfficiency = 1.0 + cpuEfficiency = 1.0; } // RAM efficiency is defined as (usage/request). If request == 0.0 but // usage > 0, then efficiency gets set to 1.0. - let ramEfficiency = 0.0 + let ramEfficiency = 0.0; if (alloc.ramReqByteHrs > 0) { - ramEfficiency = alloc.ramUseByteHrs / alloc.ramReqByteHrs + ramEfficiency = alloc.ramUseByteHrs / alloc.ramReqByteHrs; } else if (alloc.ramUseByteHrs > 0) { - ramEfficiency = 1.0 + ramEfficiency = 1.0; } // Compute efficiency as the cost-weighted average of CPU and RAM // efficiency - if ((alloc.cpuCost + alloc.ramCost) > 0.0) { - totalEfficiency = ((alloc.cpuCost*cpuEfficiency)+(alloc.ramCost*ramEfficiency)) / (alloc.cpuCost + alloc.ramCost) + if (alloc.cpuCost + alloc.ramCost > 0.0) { + totalEfficiency = + (alloc.cpuCost * cpuEfficiency + alloc.ramCost * ramEfficiency) / + (alloc.cpuCost + alloc.ramCost); } - result[name].cpuEfficiency = cpuEfficiency - result[name].ramEfficiency = ramEfficiency - result[name].totalEfficiency = totalEfficiency - }) + result[name].cpuEfficiency = cpuEfficiency; + result[name].ramEfficiency = ramEfficiency; + result[name].totalEfficiency = totalEfficiency; + }); } - return result + return result; } // cumulativeToTotals adds each entry in the given AllocationSet (type: object) // and returns a single Allocation (type: object) representing the totals export function cumulativeToTotals(allocationSet) { - let totals = { + const totals = { name: 'Totals', cpuCost: 0, gpuCost: 0, @@ -108,177 +130,225 @@ export function cumulativeToTotals(allocationSet) { cpuEfficiency: 0, ramEfficiency: 0, totalEfficiency: 0, - } + }; // Use these for computing efficiency. As such, idle will not factor into // these numbers, including CPU and RAM cost. - let cpuReqCoreHrs = 0 - let cpuUseCoreHrs = 0 - let ramReqByteHrs = 0 - let ramUseByteHrs = 0 - let cpuCost = 0 - let ramCost = 0 + let cpuReqCoreHrs = 0; + let cpuUseCoreHrs = 0; + let ramReqByteHrs = 0; + let ramUseByteHrs = 0; + let cpuCost = 0; + let ramCost = 0; forEach(allocationSet, (alloc, name) => { // Accumulate efficiency-related fields - if (name !== "__idle__") { - cpuReqCoreHrs += get(alloc, 'cpuReqCoreHrs', 0.0) - cpuUseCoreHrs += get(alloc, 'cpuUseCoreHrs', 0.0) - ramReqByteHrs += get(alloc, 'ramReqByteHrs', 0.0) - ramUseByteHrs += get(alloc, 'ramUseByteHrs', 0.0) - cpuCost += get(alloc, 'cpuCost', 0.0) - ramCost += get(alloc, 'ramCost', 0.0) + if (name !== '__idle__') { + cpuReqCoreHrs += get(alloc, 'cpuReqCoreHrs', 0.0); + cpuUseCoreHrs += get(alloc, 'cpuUseCoreHrs', 0.0); + ramReqByteHrs += get(alloc, 'ramReqByteHrs', 0.0); + ramUseByteHrs += get(alloc, 'ramUseByteHrs', 0.0); + cpuCost += get(alloc, 'cpuCost', 0.0); + ramCost += get(alloc, 'ramCost', 0.0); } // Sum cumulative fields - totals.cpuCost += get(alloc, 'cpuCost', 0) - totals.gpuCost += get(alloc, 'gpuCost', 0) - totals.ramCost += get(alloc, 'ramCost', 0) - totals.pvCost += get(alloc, 'pvCost', 0) - totals.networkCost += get(alloc, 'networkCost', 0) - totals.sharedCost += get(alloc, 'sharedCost', 0) - totals.externalCost += get(alloc, 'externalCost', 0) - totals.totalCost += get(alloc, 'totalCost', 0) - }) + totals.cpuCost += get(alloc, 'cpuCost', 0); + totals.gpuCost += get(alloc, 'gpuCost', 0); + totals.ramCost += get(alloc, 'ramCost', 0); + totals.pvCost += get(alloc, 'pvCost', 0); + totals.networkCost += get(alloc, 'networkCost', 0); + totals.sharedCost += get(alloc, 'sharedCost', 0); + totals.externalCost += get(alloc, 'externalCost', 0); + totals.totalCost += get(alloc, 'totalCost', 0); + }); // Compute efficiency if (cpuReqCoreHrs > 0) { - totals.cpuEfficiency = cpuUseCoreHrs / cpuReqCoreHrs + totals.cpuEfficiency = cpuUseCoreHrs / cpuReqCoreHrs; } else if (cpuUseCoreHrs > 0) { - totals.cpuEfficiency = 1.0 + totals.cpuEfficiency = 1.0; } if (ramReqByteHrs > 0) { - totals.ramEfficiency = ramUseByteHrs / ramReqByteHrs + totals.ramEfficiency = ramUseByteHrs / ramReqByteHrs; } else if (ramUseByteHrs > 0) { - totals.ramEfficiency = 1.0 + totals.ramEfficiency = 1.0; } - if ((cpuCost + ramCost) > 0) { - totals.totalEfficiency = ((cpuCost*totals.cpuEfficiency) + (ramCost*totals.ramEfficiency)) / (cpuCost + ramCost) + if (cpuCost + ramCost > 0) { + totals.totalEfficiency = + (cpuCost * totals.cpuEfficiency + ramCost * totals.ramEfficiency) / + (cpuCost + ramCost); } - totals.cpuReqCoreHrs = cpuReqCoreHrs - totals.cpuUseCoreHrs = cpuUseCoreHrs - totals.ramReqByteHrs = ramReqByteHrs - totals.ramUseByteHrs = ramUseByteHrs + totals.cpuReqCoreHrs = cpuReqCoreHrs; + totals.cpuUseCoreHrs = cpuUseCoreHrs; + totals.ramReqByteHrs = ramReqByteHrs; + totals.ramUseByteHrs = ramUseByteHrs; - return totals + return totals; } export function toVerboseTimeRange(window) { - const months = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'] + const months = [ + 'January', + 'February', + 'March', + 'April', + 'May', + 'June', + 'July', + 'August', + 'September', + 'October', + 'November', + 'December', + ]; - const start = new Date() - start.setUTCHours(0, 0, 0, 0) + const start = new Date(); + start.setUTCHours(0, 0, 0, 0); - const end = new Date() - end.setUTCHours(0, 0, 0, 0) + const end = new Date(); + end.setUTCHours(0, 0, 0, 0); switch (window) { case 'today': - return `${start.getUTCDate()} ${months[start.getUTCMonth()]} ${start.getUTCFullYear()}` + return `${start.getUTCDate()} ${ + months[start.getUTCMonth()] + } ${start.getUTCFullYear()}`; case 'yesterday': - start.setUTCDate(start.getUTCDate()-1) - return `${start.getUTCDate()} ${months[start.getUTCMonth()]} ${start.getUTCFullYear()}` + start.setUTCDate(start.getUTCDate() - 1); + return `${start.getUTCDate()} ${ + months[start.getUTCMonth()] + } ${start.getUTCFullYear()}`; case 'week': - start.setUTCDate(start.getUTCDate()-start.getUTCDay()) - return `${start.getUTCDate()} ${months[start.getUTCMonth()]} ${start.getUTCFullYear()} until now` + start.setUTCDate(start.getUTCDate() - start.getUTCDay()); + return `${start.getUTCDate()} ${ + months[start.getUTCMonth()] + } ${start.getUTCFullYear()} until now`; case 'month': - start.setUTCDate(1) - return `${start.getUTCDate()} ${months[start.getUTCMonth()]} ${start.getUTCFullYear()} until now` + start.setUTCDate(1); + return `${start.getUTCDate()} ${ + months[start.getUTCMonth()] + } ${start.getUTCFullYear()} until now`; case 'lastweek': - start.setUTCDate(start.getUTCDate()-(start.getUTCDay()+7)) - end.setUTCDate(end.getUTCDate()-(end.getUTCDay()+1)) - return `${start.getUTCDate()} ${months[start.getUTCMonth()]} ${start.getUTCFullYear()} through ${end.getUTCDate()} ${months[end.getUTCMonth()]} ${end.getUTCFullYear()}` + start.setUTCDate(start.getUTCDate() - (start.getUTCDay() + 7)); + end.setUTCDate(end.getUTCDate() - (end.getUTCDay() + 1)); + return `${start.getUTCDate()} ${ + months[start.getUTCMonth()] + } ${start.getUTCFullYear()} through ${end.getUTCDate()} ${ + months[end.getUTCMonth()] + } ${end.getUTCFullYear()}`; case 'lastmonth': - end.setUTCDate(1) - end.setUTCDate(end.getUTCDate()-1) - start.setUTCDate(1) - start.setUTCDate(start.getUTCDate()-1) - start.setUTCDate(1) - return `${start.getUTCDate()} ${months[start.getUTCMonth()]} ${start.getUTCFullYear()} through ${end.getUTCDate()} ${months[end.getUTCMonth()]} ${end.getUTCFullYear()}` + end.setUTCDate(1); + end.setUTCDate(end.getUTCDate() - 1); + start.setUTCDate(1); + start.setUTCDate(start.getUTCDate() - 1); + start.setUTCDate(1); + return `${start.getUTCDate()} ${ + months[start.getUTCMonth()] + } ${start.getUTCFullYear()} through ${end.getUTCDate()} ${ + months[end.getUTCMonth()] + } ${end.getUTCFullYear()}`; case '6d': - start.setUTCDate(start.getUTCDate()-6) - return `${start.getUTCDate()} ${months[start.getUTCMonth()]} ${start.getUTCFullYear()} through now` + start.setUTCDate(start.getUTCDate() - 6); + return `${start.getUTCDate()} ${ + months[start.getUTCMonth()] + } ${start.getUTCFullYear()} through now`; case '29d': - start.setUTCDate(start.getUTCDate()-29) - return `${start.getUTCDate()} ${months[start.getUTCMonth()]} ${start.getUTCFullYear()} through now` + start.setUTCDate(start.getUTCDate() - 29); + return `${start.getUTCDate()} ${ + months[start.getUTCMonth()] + } ${start.getUTCFullYear()} through now`; case '59d': - start.setUTCDate(start.getUTCDate()-59) - return `${start.getUTCDate()} ${months[start.getUTCMonth()]} ${start.getUTCFullYear()} through now` + start.setUTCDate(start.getUTCDate() - 59); + return `${start.getUTCDate()} ${ + months[start.getUTCMonth()] + } ${start.getUTCFullYear()} through now`; case '89d': - start.setUTCDate(start.getUTCDate()-89) - return `${start.getUTCDate()} ${months[start.getUTCMonth()]} ${start.getUTCFullYear()} through now` + start.setUTCDate(start.getUTCDate() - 89); + return `${start.getUTCDate()} ${ + months[start.getUTCMonth()] + } ${start.getUTCFullYear()} through now`; + // no default } - const splitDates = window.split(",") + const splitDates = window.split(','); if (checkCustomWindow(window) && splitDates.length > 1) { - let s = splitDates[0].split(/\D+/).slice(0, 3) - let e = splitDates[1].split(/\D+/).slice(0, 3) + const s = splitDates[0].split(/\D+/).slice(0, 3); + const e = splitDates[1].split(/\D+/).slice(0, 3); if (s.length === 3 && e.length === 3) { - start.setUTCFullYear(s[0], s[1]-1, s[2]) - end.setUTCFullYear(e[0], e[1]-1, e[2]) + start.setUTCFullYear(s[0], s[1] - 1, s[2]); + end.setUTCFullYear(e[0], e[1] - 1, e[2]); if (start === end) { - return `${start.getUTCDate()} ${months[start.getUTCMonth()]} ${start.getUTCFullYear()}` - } else { - return `${start.getUTCDate()} ${months[start.getUTCMonth()]} ${start.getUTCFullYear()} through ${end.getUTCDate()} ${months[end.getUTCMonth()]} ${end.getUTCFullYear()}` + return `${start.getUTCDate()} ${ + months[start.getUTCMonth()] + } ${start.getUTCFullYear()}`; } + return `${start.getUTCDate()} ${ + months[start.getUTCMonth()] + } ${start.getUTCFullYear()} through ${end.getUTCDate()} ${ + months[end.getUTCMonth()] + } ${end.getUTCFullYear()}`; } } - return null + return null; } export function bytesToString(bytes) { - const ei = Math.pow(1024, 6) + const ei = Math.pow(1024, 6); if (bytes >= ei) { - return `${round(bytes/ei, 1)} EiB` + return `${round(bytes / ei, 1)} EiB`; } - const pi = Math.pow(1024, 5) + const pi = Math.pow(1024, 5); if (bytes >= pi) { - return `${round(bytes/pi, 1)} PiB` + return `${round(bytes / pi, 1)} PiB`; } - const ti = Math.pow(1024, 4) + const ti = Math.pow(1024, 4); if (bytes >= ti) { - return `${round(bytes/ti, 1)} TiB` + return `${round(bytes / ti, 1)} TiB`; } - const gi = Math.pow(1024, 3) + const gi = Math.pow(1024, 3); if (bytes >= gi) { - return `${round(bytes/gi, 1)} GiB` + return `${round(bytes / gi, 1)} GiB`; } - const mi = Math.pow(1024, 2) + const mi = Math.pow(1024, 2); if (bytes >= mi) { - return `${round(bytes/mi, 1)} MiB` + return `${round(bytes / mi, 1)} MiB`; } - const ki = Math.pow(1024, 1) + const ki = Math.pow(1024, 1); if (bytes >= ki) { - return `${round(bytes/ki, 1)} KiB` + return `${round(bytes / ki, 1)} KiB`; } - return `${round(bytes, 1)} B` + return `${round(bytes, 1)} B`; } -const currencyLocale = "en-US" +const currencyLocale = 'en-US'; export function toCurrency(amount, currency, precision) { - if (typeof amount !== "number") { - console.warn(`Tried to convert "${amount}" to currency, but it is not a number`) - return "" + if (typeof amount !== 'number') { + Console.warn( + `Tried to convert "${amount}" to currency, but it is not a number`, + ); + return ''; } - if (currency === undefined || currency === "") { - currency = "USD" + let ctype = currency; + + if (currency === undefined || currency === '') { + ctype = 'USD'; } const opts = { - style: "currency", - currency: currency, + style: 'currency', + currency: ctype, + }; - } - - if (typeof precision === "number") { - opts.minimumFractionDigits = precision - opts.maximumFractionDigits = precision + if (typeof precision === 'number') { + opts.minimumFractionDigits = precision; + opts.maximumFractionDigits = precision; } return amount.toLocaleString(currencyLocale, opts); @@ -286,12 +356,11 @@ export function toCurrency(amount, currency, precision) { export function checkCustomWindow(window) { // Example ISO interval string: 2020-12-02T00:00:00Z,2020-12-03T23:59:59Z - const customDateRegex = /\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}Z,\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}Z/ - return customDateRegex.test(window) + const customDateRegex = + /\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}Z,\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}Z/; + return customDateRegex.test(window); } - - export default { rangeToCumulative, cumulativeToTotals, @@ -299,4 +368,4 @@ export default { bytesToString, toCurrency, checkCustomWindow, -} +}; diff --git a/yarn.lock b/yarn.lock index 3bb3052421..4e837003a2 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7482,6 +7482,39 @@ __metadata: languageName: unknown linkType: soft +"@backstage/plugin-opencost@workspace:plugins/opencost": + version: 0.0.0-use.local + resolution: "@backstage/plugin-opencost@workspace:plugins/opencost" + dependencies: + "@backstage/cli": "workspace:^" + "@backstage/core-app-api": "workspace:^" + "@backstage/core-components": "workspace:^" + "@backstage/core-plugin-api": "workspace:^" + "@backstage/dev-utils": "workspace:^" + "@backstage/test-utils": "workspace:^" + "@backstage/theme": "workspace:^" + "@date-io/date-fns": ^2.16.0 + "@material-ui/core": ^4.9.13 + "@material-ui/icons": ^4.9.1 + "@material-ui/lab": ^4.0.0-alpha.60 + "@material-ui/pickers": ^3.3.10 + "@material-ui/styles": ^4.11.5 + "@testing-library/jest-dom": ^5.10.1 + "@testing-library/react": ^12.1.3 + "@testing-library/user-event": ^14.0.0 + axios: ^1.4.0 + cross-fetch: ^3.1.5 + date-fns: ^2.30.0 + lodash: ^4.17.21 + msw: ^1.0.0 + react-use: ^17.2.4 + recharts: ^2.5.0 + peerDependencies: + react: ^16.13.1 || ^17.0.0 + react-router-dom: "*" + languageName: unknown + linkType: soft + "@backstage/plugin-org-react@workspace:plugins/org-react": version: 0.0.0-use.local resolution: "@backstage/plugin-org-react@workspace:plugins/org-react" @@ -9948,6 +9981,13 @@ __metadata: languageName: node linkType: hard +"@date-io/core@npm:^2.17.0": + version: 2.17.0 + resolution: "@date-io/core@npm:2.17.0" + checksum: 008dfc79eb54256805113d76feca82fe0b08a245ecbfb2d53809e6a129dc201f9dbd053c8ad63512203ab1a13ff7f76de0edc31829588ef507d53307974c29a8 + languageName: node + linkType: hard + "@date-io/date-fns@npm:^1.3.13": version: 1.3.13 resolution: "@date-io/date-fns@npm:1.3.13" @@ -9959,6 +9999,20 @@ __metadata: languageName: node linkType: hard +"@date-io/date-fns@npm:^2.16.0": + version: 2.17.0 + resolution: "@date-io/date-fns@npm:2.17.0" + dependencies: + "@date-io/core": ^2.17.0 + peerDependencies: + date-fns: ^2.0.0 + peerDependenciesMeta: + date-fns: + optional: true + checksum: bfab634c985a98dd44fdfc5f982b0348da2886c9ad79a8d71fd7bfa05b740af7f5cf340508cd7ce51d67c141fb8766998c8efdf50653252c68ec078471cd76e6 + languageName: node + linkType: hard + "@date-io/luxon@npm:1.x, @date-io/luxon@npm:^1.3.13": version: 1.3.13 resolution: "@date-io/luxon@npm:1.3.13" From dcd3a280d52afd9b9060ab394c3fe191f6f1b75e Mon Sep 17 00:00:00 2001 From: Matt Ray Date: Thu, 3 Aug 2023 17:06:14 +1000 Subject: [PATCH 354/372] `yarn tsc` cleanups OpenCostPage.tsx TS6133: 'ContentHeader' is declared but its value is never read. OpenCostReport.tsx TS6133: 'forEach' is declared but its value is never read. TS7006: added @ts-ignore util.js TS2322: Type 'string | null' is not assignable to type 'string'. Signed-off-by: Matt Ray --- .../src/components/OpenCostPage/OpenCostPage.tsx | 7 +------ .../src/components/OpenCostReport/OpenCostReport.tsx | 9 ++++++++- plugins/opencost/src/util.js | 2 +- 3 files changed, 10 insertions(+), 8 deletions(-) diff --git a/plugins/opencost/src/components/OpenCostPage/OpenCostPage.tsx b/plugins/opencost/src/components/OpenCostPage/OpenCostPage.tsx index 19a383e7b6..bd60fa0c35 100644 --- a/plugins/opencost/src/components/OpenCostPage/OpenCostPage.tsx +++ b/plugins/opencost/src/components/OpenCostPage/OpenCostPage.tsx @@ -15,12 +15,7 @@ */ import React from 'react'; import { Grid } from '@material-ui/core'; -import { - Header, - Page, - Content, - ContentHeader, -} from '@backstage/core-components'; +import { Header, Page, Content } from '@backstage/core-components'; import { OpenCostReport } from '../OpenCostReport'; export const OpenCostPage = () => ( diff --git a/plugins/opencost/src/components/OpenCostReport/OpenCostReport.tsx b/plugins/opencost/src/components/OpenCostReport/OpenCostReport.tsx index 8a4cad49c8..12f64f3606 100644 --- a/plugins/opencost/src/components/OpenCostReport/OpenCostReport.tsx +++ b/plugins/opencost/src/components/OpenCostReport/OpenCostReport.tsx @@ -22,7 +22,7 @@ import Paper from '@material-ui/core/Paper'; import RefreshIcon from '@material-ui/icons/Refresh'; import Typography from '@material-ui/core/Typography'; import { useLocation, useNavigate } from 'react-router-dom'; -import { find, forEach, get, sortBy, toArray } from 'lodash'; +import { find, get, sortBy, toArray } from 'lodash'; import { makeStyles } from '@material-ui/styles'; import AllocationReport from '../AllocationReport'; import AllocationService from '../../services/allocation'; @@ -80,6 +80,7 @@ const useStyles = makeStyles({ }); // generateTitle generates a string title from a report object +// @ts-ignore: implicitly has an 'any' type function generateTitle({ window, aggregateBy, accumulate }) { let windowName = get(find(windowOptions, { value: window }), 'name', ''); if (windowName === '') { @@ -208,6 +209,7 @@ export const OpenCostReport = () => { } catch (err) { if (err.message.indexOf('404') === 0) { setErrors([ + // @ts-ignore: not assignable to type 'never' { primary: 'Failed to load report data', secondary: @@ -221,6 +223,7 @@ export const OpenCostReport = () => { secondary = err.message; } setErrors([ + // @ts-ignore: not assignable to type 'never' { primary: 'Failed to load report data', secondary: secondary, @@ -255,6 +258,7 @@ export const OpenCostReport = () => { { searchParams.set('window', win); routerNavigate({ @@ -263,6 +267,7 @@ export const OpenCostReport = () => { }} aggregationOptions={aggregationOptions} aggregateBy={aggregateBy} + // @ts-ignore: implicitly has an 'any' type setAggregateBy={agg => { searchParams.set('agg', agg); routerNavigate({ @@ -271,6 +276,7 @@ export const OpenCostReport = () => { }} accumulateOptions={accumulateOptions} accumulate={accumulate} + // @ts-ignore: implicitly has an 'any' type setAccumulate={acc => { searchParams.set('acc', acc); routerNavigate({ @@ -281,6 +287,7 @@ export const OpenCostReport = () => { cumulativeData={cumulativeData} currency={currency} currencyOptions={currencyCodes} + // @ts-ignore: implicitly has an 'any' type setCurrency={curr => { searchParams.set('currency', curr); routerNavigate({ diff --git a/plugins/opencost/src/util.js b/plugins/opencost/src/util.js index d2c8fa7562..5854718a55 100644 --- a/plugins/opencost/src/util.js +++ b/plugins/opencost/src/util.js @@ -293,7 +293,7 @@ export function toVerboseTimeRange(window) { } ${end.getUTCFullYear()}`; } } - return null; + return ''; } export function bytesToString(bytes) { From 223972a153cf3a089d7b6f155be58ec0b03f9a0c Mon Sep 17 00:00:00 2001 From: Matt Ray Date: Tue, 8 Aug 2023 20:32:35 +1000 Subject: [PATCH 355/372] Rename .js files to .jsx since they're actually JSX This makes `yarn backstage-cli repo build` happier Signed-off-by: Matt Ray --- .../components/AllocationChart/{RangeChart.js => RangeChart.jsx} | 0 .../AllocationChart/{SummaryChart.js => SummaryChart.jsx} | 0 .../src/components/AllocationChart/{index.js => index.jsx} | 0 .../src/components/{AllocationReport.js => AllocationReport.jsx} | 0 .../src/components/Controls/{Download.js => Download.jsx} | 0 plugins/opencost/src/components/Controls/{Edit.js => Edit.jsx} | 0 plugins/opencost/src/components/Controls/{index.js => index.jsx} | 0 plugins/opencost/src/components/{Page.js => Page.jsx} | 0 .../opencost/src/components/{SelectWindow.js => SelectWindow.jsx} | 0 plugins/opencost/src/components/{Subtitle.js => Subtitle.jsx} | 0 plugins/opencost/src/components/{Warnings.js => Warnings.jsx} | 0 11 files changed, 0 insertions(+), 0 deletions(-) rename plugins/opencost/src/components/AllocationChart/{RangeChart.js => RangeChart.jsx} (100%) rename plugins/opencost/src/components/AllocationChart/{SummaryChart.js => SummaryChart.jsx} (100%) rename plugins/opencost/src/components/AllocationChart/{index.js => index.jsx} (100%) rename plugins/opencost/src/components/{AllocationReport.js => AllocationReport.jsx} (100%) rename plugins/opencost/src/components/Controls/{Download.js => Download.jsx} (100%) rename plugins/opencost/src/components/Controls/{Edit.js => Edit.jsx} (100%) rename plugins/opencost/src/components/Controls/{index.js => index.jsx} (100%) rename plugins/opencost/src/components/{Page.js => Page.jsx} (100%) rename plugins/opencost/src/components/{SelectWindow.js => SelectWindow.jsx} (100%) rename plugins/opencost/src/components/{Subtitle.js => Subtitle.jsx} (100%) rename plugins/opencost/src/components/{Warnings.js => Warnings.jsx} (100%) diff --git a/plugins/opencost/src/components/AllocationChart/RangeChart.js b/plugins/opencost/src/components/AllocationChart/RangeChart.jsx similarity index 100% rename from plugins/opencost/src/components/AllocationChart/RangeChart.js rename to plugins/opencost/src/components/AllocationChart/RangeChart.jsx diff --git a/plugins/opencost/src/components/AllocationChart/SummaryChart.js b/plugins/opencost/src/components/AllocationChart/SummaryChart.jsx similarity index 100% rename from plugins/opencost/src/components/AllocationChart/SummaryChart.js rename to plugins/opencost/src/components/AllocationChart/SummaryChart.jsx diff --git a/plugins/opencost/src/components/AllocationChart/index.js b/plugins/opencost/src/components/AllocationChart/index.jsx similarity index 100% rename from plugins/opencost/src/components/AllocationChart/index.js rename to plugins/opencost/src/components/AllocationChart/index.jsx diff --git a/plugins/opencost/src/components/AllocationReport.js b/plugins/opencost/src/components/AllocationReport.jsx similarity index 100% rename from plugins/opencost/src/components/AllocationReport.js rename to plugins/opencost/src/components/AllocationReport.jsx diff --git a/plugins/opencost/src/components/Controls/Download.js b/plugins/opencost/src/components/Controls/Download.jsx similarity index 100% rename from plugins/opencost/src/components/Controls/Download.js rename to plugins/opencost/src/components/Controls/Download.jsx diff --git a/plugins/opencost/src/components/Controls/Edit.js b/plugins/opencost/src/components/Controls/Edit.jsx similarity index 100% rename from plugins/opencost/src/components/Controls/Edit.js rename to plugins/opencost/src/components/Controls/Edit.jsx diff --git a/plugins/opencost/src/components/Controls/index.js b/plugins/opencost/src/components/Controls/index.jsx similarity index 100% rename from plugins/opencost/src/components/Controls/index.js rename to plugins/opencost/src/components/Controls/index.jsx diff --git a/plugins/opencost/src/components/Page.js b/plugins/opencost/src/components/Page.jsx similarity index 100% rename from plugins/opencost/src/components/Page.js rename to plugins/opencost/src/components/Page.jsx diff --git a/plugins/opencost/src/components/SelectWindow.js b/plugins/opencost/src/components/SelectWindow.jsx similarity index 100% rename from plugins/opencost/src/components/SelectWindow.js rename to plugins/opencost/src/components/SelectWindow.jsx diff --git a/plugins/opencost/src/components/Subtitle.js b/plugins/opencost/src/components/Subtitle.jsx similarity index 100% rename from plugins/opencost/src/components/Subtitle.js rename to plugins/opencost/src/components/Subtitle.jsx diff --git a/plugins/opencost/src/components/Warnings.js b/plugins/opencost/src/components/Warnings.jsx similarity index 100% rename from plugins/opencost/src/components/Warnings.js rename to plugins/opencost/src/components/Warnings.jsx From ff83a7f394dbbe9613a9b094c631bcc839769e8e Mon Sep 17 00:00:00 2001 From: Matt Ray Date: Wed, 9 Aug 2023 17:19:19 +1000 Subject: [PATCH 356/372] Test was provided by the generated scaffolding, unused. Signed-off-by: Matt Ray --- .../OpenCostPage/OpenCostPage.test.tsx | 44 ------------------- 1 file changed, 44 deletions(-) delete mode 100644 plugins/opencost/src/components/OpenCostPage/OpenCostPage.test.tsx diff --git a/plugins/opencost/src/components/OpenCostPage/OpenCostPage.test.tsx b/plugins/opencost/src/components/OpenCostPage/OpenCostPage.test.tsx deleted file mode 100644 index ea10906f85..0000000000 --- a/plugins/opencost/src/components/OpenCostPage/OpenCostPage.test.tsx +++ /dev/null @@ -1,44 +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. - */ -import React from 'react'; -import { OpenCostPage } from './OpenCostPage'; -import { rest } from 'msw'; -import { setupServer } from 'msw/node'; -import { screen } from '@testing-library/react'; -import { - setupRequestMockHandlers, - renderInTestApp, -} from '@backstage/test-utils'; - -describe('OpenCostPage', () => { - const server = setupServer(); - // Enable sane handlers for network requests - setupRequestMockHandlers(server); - - // setup mock response - beforeEach(() => { - server.use( - rest.get('/*', (_, res, ctx) => res(ctx.status(200), ctx.json({}))), - ); - }); - - it('should render', async () => { - await renderInTestApp(); - expect( - screen.getByText('Open source Kubernetes cloud cost monitoring'), - ).toBeInTheDocument(); - }); -}); From ef6eeff53423908351566df5bee7255fb9466ee1 Mon Sep 17 00:00:00 2001 From: Neal Ormsbee Date: Mon, 14 Aug 2023 10:59:07 -0600 Subject: [PATCH 357/372] Change opencost plugin to use @date-io/luxon instead of @date-io/date-fns Signed-off-by: Neal Ormsbee --- plugins/opencost/package.json | 2 +- plugins/opencost/src/components/SelectWindow.jsx | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/plugins/opencost/package.json b/plugins/opencost/package.json index 2dde15362b..af2a275a52 100644 --- a/plugins/opencost/package.json +++ b/plugins/opencost/package.json @@ -25,7 +25,7 @@ "@backstage/core-components": "workspace:^", "@backstage/core-plugin-api": "workspace:^", "@backstage/theme": "workspace:^", - "@date-io/date-fns": "^2.16.0", + "@date-io/luxon": "1.x", "@material-ui/core": "^4.9.13", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "^4.0.0-alpha.60", diff --git a/plugins/opencost/src/components/SelectWindow.jsx b/plugins/opencost/src/components/SelectWindow.jsx index 87ecfe093e..e374571c00 100644 --- a/plugins/opencost/src/components/SelectWindow.jsx +++ b/plugins/opencost/src/components/SelectWindow.jsx @@ -16,13 +16,13 @@ import React, { useEffect, useState } from 'react'; import { makeStyles } from '@material-ui/styles'; -import { endOfDay, startOfDay } from 'date-fns'; +import { endOfDay, startOfDay } from '@date-io/luxon'; import { MuiPickersUtilsProvider, KeyboardDatePicker, } from '@material-ui/pickers'; import Button from '@material-ui/core/Button'; -import DateFnsUtils from '@date-io/date-fns'; +import LuxonUtils from '@date-io/luxon'; import FormControl from '@material-ui/core/FormControl'; import Link from '@material-ui/core/Link'; import Popover from '@material-ui/core/Popover'; @@ -141,7 +141,7 @@ const SelectWindow = ({ windowOptions, window, setWindow }) => { >
    - + Date: Wed, 16 Aug 2023 09:27:00 +0200 Subject: [PATCH 358/372] yarn.lock updates MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Fredrik Adelöw --- yarn.lock | 23 +---------------------- 1 file changed, 1 insertion(+), 22 deletions(-) diff --git a/yarn.lock b/yarn.lock index 4e837003a2..b914780327 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7493,7 +7493,7 @@ __metadata: "@backstage/dev-utils": "workspace:^" "@backstage/test-utils": "workspace:^" "@backstage/theme": "workspace:^" - "@date-io/date-fns": ^2.16.0 + "@date-io/luxon": 1.x "@material-ui/core": ^4.9.13 "@material-ui/icons": ^4.9.1 "@material-ui/lab": ^4.0.0-alpha.60 @@ -9981,13 +9981,6 @@ __metadata: languageName: node linkType: hard -"@date-io/core@npm:^2.17.0": - version: 2.17.0 - resolution: "@date-io/core@npm:2.17.0" - checksum: 008dfc79eb54256805113d76feca82fe0b08a245ecbfb2d53809e6a129dc201f9dbd053c8ad63512203ab1a13ff7f76de0edc31829588ef507d53307974c29a8 - languageName: node - linkType: hard - "@date-io/date-fns@npm:^1.3.13": version: 1.3.13 resolution: "@date-io/date-fns@npm:1.3.13" @@ -9999,20 +9992,6 @@ __metadata: languageName: node linkType: hard -"@date-io/date-fns@npm:^2.16.0": - version: 2.17.0 - resolution: "@date-io/date-fns@npm:2.17.0" - dependencies: - "@date-io/core": ^2.17.0 - peerDependencies: - date-fns: ^2.0.0 - peerDependenciesMeta: - date-fns: - optional: true - checksum: bfab634c985a98dd44fdfc5f982b0348da2886c9ad79a8d71fd7bfa05b740af7f5cf340508cd7ce51d67c141fb8766998c8efdf50653252c68ec078471cd76e6 - languageName: node - linkType: hard - "@date-io/luxon@npm:1.x, @date-io/luxon@npm:^1.3.13": version: 1.3.13 resolution: "@date-io/luxon@npm:1.3.13" From 0a4c1319454f6cb4702458864533188dca96a4d5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fredrik=20Adel=C3=B6w?= Date: Wed, 16 Aug 2023 09:38:35 +0200 Subject: [PATCH 359/372] enter pre mode MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Fredrik Adelöw --- .changeset/pre.json | 237 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 237 insertions(+) create mode 100644 .changeset/pre.json diff --git a/.changeset/pre.json b/.changeset/pre.json new file mode 100644 index 0000000000..9333a04d9f --- /dev/null +++ b/.changeset/pre.json @@ -0,0 +1,237 @@ +{ + "mode": "pre", + "tag": "next", + "initialVersions": { + "example-app": "0.2.86", + "@backstage/app-defaults": "1.4.2", + "example-backend": "0.2.86", + "@backstage/backend-app-api": "0.5.0", + "@backstage/backend-common": "0.19.2", + "@backstage/backend-defaults": "0.2.0", + "@backstage/backend-dev-utils": "0.1.1", + "example-backend-next": "0.0.14", + "@backstage/backend-openapi-utils": "0.0.3", + "@backstage/backend-plugin-api": "0.6.0", + "@backstage/backend-tasks": "0.5.5", + "@backstage/backend-test-utils": "0.2.0", + "@backstage/catalog-client": "1.4.3", + "@backstage/catalog-model": "1.4.1", + "@backstage/cli": "0.22.10", + "@backstage/cli-common": "0.1.12", + "@backstage/cli-node": "0.1.3", + "@backstage/codemods": "0.1.45", + "@backstage/config": "1.0.8", + "@backstage/config-loader": "1.4.0", + "@backstage/core-app-api": "1.9.1", + "@backstage/core-components": "0.13.4", + "@backstage/core-plugin-api": "1.5.3", + "@backstage/create-app": "0.5.4", + "@backstage/dev-utils": "1.0.18", + "e2e-test": "0.2.6", + "@backstage/errors": "1.2.1", + "@backstage/eslint-plugin": "0.1.3", + "@backstage/integration": "1.6.0", + "@backstage/integration-aws-node": "0.1.5", + "@backstage/integration-react": "1.1.16", + "@backstage/release-manifests": "0.0.9", + "@backstage/repo-tools": "0.3.3", + "@techdocs/cli": "1.4.5", + "techdocs-cli-embedded-app": "0.2.85", + "@backstage/test-utils": "1.4.2", + "@backstage/theme": "0.4.1", + "@backstage/types": "1.1.0", + "@backstage/version-bridge": "1.0.4", + "@backstage/plugin-adr": "0.6.4", + "@backstage/plugin-adr-backend": "0.3.6", + "@backstage/plugin-adr-common": "0.2.12", + "@backstage/plugin-airbrake": "0.3.21", + "@backstage/plugin-airbrake-backend": "0.2.21", + "@backstage/plugin-allure": "0.1.37", + "@backstage/plugin-analytics-module-ga": "0.1.32", + "@backstage/plugin-analytics-module-ga4": "0.1.3", + "@backstage/plugin-analytics-module-newrelic-browser": "0.0.1", + "@backstage/plugin-apache-airflow": "0.2.14", + "@backstage/plugin-api-docs": "0.9.7", + "@backstage/plugin-api-docs-module-protoc-gen-doc": "0.1.2", + "@backstage/plugin-apollo-explorer": "0.1.14", + "@backstage/plugin-app-backend": "0.3.48", + "@backstage/plugin-app-node": "0.1.0", + "@backstage/plugin-auth-backend": "0.18.6", + "@backstage/plugin-auth-node": "0.2.17", + "@backstage/plugin-azure-devops": "0.3.3", + "@backstage/plugin-azure-devops-backend": "0.3.27", + "@backstage/plugin-azure-devops-common": "0.3.0", + "@backstage/plugin-azure-sites": "0.1.10", + "@backstage/plugin-azure-sites-backend": "0.1.10", + "@backstage/plugin-azure-sites-common": "0.1.0", + "@backstage/plugin-badges": "0.2.45", + "@backstage/plugin-badges-backend": "0.2.3", + "@backstage/plugin-bazaar": "0.2.12", + "@backstage/plugin-bazaar-backend": "0.2.11", + "@backstage/plugin-bitbucket-cloud-common": "0.2.9", + "@backstage/plugin-bitrise": "0.1.48", + "@backstage/plugin-catalog": "1.12.1", + "@backstage/plugin-catalog-backend": "1.12.0", + "@backstage/plugin-catalog-backend-module-aws": "0.2.3", + "@backstage/plugin-catalog-backend-module-azure": "0.1.19", + "@backstage/plugin-catalog-backend-module-bitbucket": "0.2.15", + "@backstage/plugin-catalog-backend-module-bitbucket-cloud": "0.1.15", + "@backstage/plugin-catalog-backend-module-bitbucket-server": "0.1.13", + "@backstage/plugin-catalog-backend-module-gcp": "0.1.0", + "@backstage/plugin-catalog-backend-module-gerrit": "0.1.16", + "@backstage/plugin-catalog-backend-module-github": "0.3.3", + "@backstage/plugin-catalog-backend-module-gitlab": "0.2.4", + "@backstage/plugin-catalog-backend-module-incremental-ingestion": "0.4.1", + "@backstage/plugin-catalog-backend-module-ldap": "0.5.15", + "@backstage/plugin-catalog-backend-module-msgraph": "0.5.7", + "@backstage/plugin-catalog-backend-module-openapi": "0.1.14", + "@backstage/plugin-catalog-backend-module-puppetdb": "0.1.5", + "@backstage/plugin-catalog-backend-module-unprocessed": "0.2.0", + "@backstage/plugin-catalog-common": "1.0.15", + "@internal/plugin-catalog-customized": "0.0.13", + "@backstage/plugin-catalog-graph": "0.2.33", + "@backstage/plugin-catalog-graphql": "0.3.22", + "@backstage/plugin-catalog-import": "0.9.11", + "@backstage/plugin-catalog-node": "1.4.1", + "@backstage/plugin-catalog-react": "1.8.1", + "@backstage/plugin-catalog-unprocessed-entities": "0.1.2", + "@backstage/plugin-cicd-statistics": "0.1.23", + "@backstage/plugin-cicd-statistics-module-gitlab": "0.1.17", + "@backstage/plugin-circleci": "0.3.21", + "@backstage/plugin-cloudbuild": "0.3.21", + "@backstage/plugin-code-climate": "0.1.21", + "@backstage/plugin-code-coverage": "0.2.14", + "@backstage/plugin-code-coverage-backend": "0.2.14", + "@backstage/plugin-codescene": "0.1.16", + "@backstage/plugin-config-schema": "0.1.44", + "@backstage/plugin-cost-insights": "0.12.10", + "@backstage/plugin-cost-insights-common": "0.1.1", + "@backstage/plugin-devtools": "0.1.3", + "@backstage/plugin-devtools-backend": "0.1.3", + "@backstage/plugin-devtools-common": "0.1.3", + "@backstage/plugin-dynatrace": "7.0.1", + "@backstage/plugin-entity-feedback": "0.2.4", + "@backstage/plugin-entity-feedback-backend": "0.1.6", + "@backstage/plugin-entity-feedback-common": "0.1.2", + "@backstage/plugin-entity-validation": "0.1.6", + "@backstage/plugin-events-backend": "0.2.9", + "@backstage/plugin-events-backend-module-aws-sqs": "0.2.3", + "@backstage/plugin-events-backend-module-azure": "0.1.10", + "@backstage/plugin-events-backend-module-bitbucket-cloud": "0.1.10", + "@backstage/plugin-events-backend-module-gerrit": "0.1.10", + "@backstage/plugin-events-backend-module-github": "0.1.10", + "@backstage/plugin-events-backend-module-gitlab": "0.1.10", + "@backstage/plugin-events-backend-test-utils": "0.1.10", + "@backstage/plugin-events-node": "0.2.9", + "@internal/plugin-todo-list": "1.0.16", + "@internal/plugin-todo-list-backend": "1.0.16", + "@internal/plugin-todo-list-common": "1.0.12", + "@backstage/plugin-explore": "0.4.7", + "@backstage/plugin-explore-backend": "0.0.10", + "@backstage/plugin-explore-common": "0.0.1", + "@backstage/plugin-explore-react": "0.0.30", + "@backstage/plugin-firehydrant": "0.2.5", + "@backstage/plugin-fossa": "0.2.53", + "@backstage/plugin-gcalendar": "0.3.17", + "@backstage/plugin-gcp-projects": "0.3.40", + "@backstage/plugin-git-release-manager": "0.3.34", + "@backstage/plugin-github-actions": "0.6.2", + "@backstage/plugin-github-deployments": "0.1.52", + "@backstage/plugin-github-issues": "0.2.10", + "@backstage/plugin-github-pull-requests-board": "0.1.15", + "@backstage/plugin-gitops-profiles": "0.3.39", + "@backstage/plugin-gocd": "0.1.27", + "@backstage/plugin-graphiql": "0.2.53", + "@backstage/plugin-graphql-backend": "0.1.38", + "@backstage/plugin-graphql-voyager": "0.1.6", + "@backstage/plugin-home": "0.5.5", + "@backstage/plugin-home-react": "0.1.2", + "@backstage/plugin-ilert": "0.2.10", + "@backstage/plugin-jenkins": "0.8.3", + "@backstage/plugin-jenkins-backend": "0.2.3", + "@backstage/plugin-jenkins-common": "0.1.18", + "@backstage/plugin-kafka": "0.3.21", + "@backstage/plugin-kafka-backend": "0.2.41", + "@backstage/plugin-kubernetes": "0.10.0", + "@backstage/plugin-kubernetes-backend": "0.11.3", + "@backstage/plugin-kubernetes-common": "0.6.5", + "@backstage/plugin-lighthouse": "0.4.6", + "@backstage/plugin-lighthouse-backend": "0.2.4", + "@backstage/plugin-lighthouse-common": "0.1.2", + "@backstage/plugin-linguist": "0.1.6", + "@backstage/plugin-linguist-backend": "0.4.0", + "@backstage/plugin-linguist-common": "0.1.1", + "@backstage/plugin-microsoft-calendar": "0.1.6", + "@backstage/plugin-newrelic": "0.3.39", + "@backstage/plugin-newrelic-dashboard": "0.2.14", + "@backstage/plugin-nomad": "0.1.2", + "@backstage/plugin-nomad-backend": "0.1.2", + "@backstage/plugin-octopus-deploy": "0.2.3", + "@backstage/plugin-org": "0.6.11", + "@backstage/plugin-org-react": "0.1.10", + "@backstage/plugin-pagerduty": "0.6.2", + "@backstage/plugin-periskop": "0.1.19", + "@backstage/plugin-periskop-backend": "0.1.19", + "@backstage/plugin-permission-backend": "0.5.23", + "@backstage/plugin-permission-common": "0.7.7", + "@backstage/plugin-permission-node": "0.7.11", + "@backstage/plugin-permission-react": "0.4.14", + "@backstage/plugin-playlist": "0.1.13", + "@backstage/plugin-playlist-backend": "0.3.4", + "@backstage/plugin-playlist-common": "0.1.9", + "@backstage/plugin-proxy-backend": "0.3.0", + "@backstage/plugin-puppetdb": "0.1.4", + "@backstage/plugin-rollbar": "0.4.21", + "@backstage/plugin-rollbar-backend": "0.1.45", + "@backstage/plugin-scaffolder": "1.14.2", + "@backstage/plugin-scaffolder-backend": "1.16.0", + "@backstage/plugin-scaffolder-backend-module-confluence-to-markdown": "0.2.1", + "@backstage/plugin-scaffolder-backend-module-cookiecutter": "0.2.24", + "@backstage/plugin-scaffolder-backend-module-gitlab": "0.2.3", + "@backstage/plugin-scaffolder-backend-module-rails": "0.4.17", + "@backstage/plugin-scaffolder-backend-module-sentry": "0.1.8", + "@backstage/plugin-scaffolder-backend-module-yeoman": "0.2.21", + "@backstage/plugin-scaffolder-common": "1.4.0", + "@backstage/plugin-scaffolder-node": "0.2.0", + "@backstage/plugin-scaffolder-react": "1.5.2", + "@backstage/plugin-search": "1.3.4", + "@backstage/plugin-search-backend": "1.4.0", + "@backstage/plugin-search-backend-module-catalog": "0.1.4", + "@backstage/plugin-search-backend-module-elasticsearch": "1.3.3", + "@backstage/plugin-search-backend-module-explore": "0.1.4", + "@backstage/plugin-search-backend-module-pg": "0.5.9", + "@backstage/plugin-search-backend-module-techdocs": "0.1.4", + "@backstage/plugin-search-backend-node": "1.2.4", + "@backstage/plugin-search-common": "1.2.5", + "@backstage/plugin-search-react": "1.6.4", + "@backstage/plugin-sentry": "0.5.6", + "@backstage/plugin-shortcuts": "0.3.13", + "@backstage/plugin-sonarqube": "0.7.2", + "@backstage/plugin-sonarqube-backend": "0.2.2", + "@backstage/plugin-sonarqube-react": "0.1.7", + "@backstage/plugin-splunk-on-call": "0.4.10", + "@backstage/plugin-stack-overflow": "0.1.19", + "@backstage/plugin-stack-overflow-backend": "0.2.4", + "@backstage/plugin-stackstorm": "0.1.5", + "@backstage/plugin-tech-insights": "0.3.13", + "@backstage/plugin-tech-insights-backend": "0.5.14", + "@backstage/plugin-tech-insights-backend-module-jsonfc": "0.1.32", + "@backstage/plugin-tech-insights-common": "0.2.11", + "@backstage/plugin-tech-insights-node": "0.4.6", + "@backstage/plugin-tech-radar": "0.6.7", + "@backstage/plugin-techdocs": "1.6.6", + "@backstage/plugin-techdocs-addons-test-utils": "1.0.17", + "@backstage/plugin-techdocs-backend": "1.6.5", + "@backstage/plugin-techdocs-module-addons-contrib": "1.0.16", + "@backstage/plugin-techdocs-node": "1.7.4", + "@backstage/plugin-techdocs-react": "1.1.9", + "@backstage/plugin-todo": "0.2.23", + "@backstage/plugin-todo-backend": "0.2.0", + "@backstage/plugin-user-settings": "0.7.6", + "@backstage/plugin-user-settings-backend": "0.1.12", + "@backstage/plugin-vault": "0.1.15", + "@backstage/plugin-vault-backend": "0.3.4", + "@backstage/plugin-xcmetrics": "0.2.41" + }, + "changesets": [] +} From 5f06e9f1da7e1d54cdbc8b1c21632366da37766c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fredrik=20Adel=C3=B6w?= Date: Wed, 16 Aug 2023 09:49:03 +0200 Subject: [PATCH 360/372] fix api-report MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Fredrik Adelöw --- plugins/opencost/api-report.md | 22 ++++++++++++++++++++++ plugins/opencost/src/index.ts | 6 ++++++ plugins/opencost/src/plugin.ts | 2 ++ 3 files changed, 30 insertions(+) create mode 100644 plugins/opencost/api-report.md diff --git a/plugins/opencost/api-report.md b/plugins/opencost/api-report.md new file mode 100644 index 0000000000..ee9026cbb7 --- /dev/null +++ b/plugins/opencost/api-report.md @@ -0,0 +1,22 @@ +## API Report File for "@backstage/plugin-opencost" + +> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). + +```ts +/// + +import { BackstagePlugin } from '@backstage/core-plugin-api'; +import { RouteRef } from '@backstage/core-plugin-api'; + +// @public (undocumented) +export const OpenCostPage: () => JSX.Element; + +// @public (undocumented) +export const openCostPlugin: BackstagePlugin< + { + root: RouteRef; + }, + {}, + {} +>; +``` diff --git a/plugins/opencost/src/index.ts b/plugins/opencost/src/index.ts index 32ec0d0091..30153e0c32 100644 --- a/plugins/opencost/src/index.ts +++ b/plugins/opencost/src/index.ts @@ -14,4 +14,10 @@ * limitations under the License. */ +/** + * A Backstage plugin that integrates with OpenCost + * + * @packageDocumentation + */ + export { openCostPlugin, OpenCostPage } from './plugin'; diff --git a/plugins/opencost/src/plugin.ts b/plugins/opencost/src/plugin.ts index 9eaf8f63f5..2725cf3dde 100644 --- a/plugins/opencost/src/plugin.ts +++ b/plugins/opencost/src/plugin.ts @@ -21,6 +21,7 @@ import { import { rootRouteRef } from './routes'; +/** @public */ export const openCostPlugin = createPlugin({ id: 'opencost', routes: { @@ -28,6 +29,7 @@ export const openCostPlugin = createPlugin({ }, }); +/** @public */ export const OpenCostPage = openCostPlugin.provide( createRoutableExtension({ name: 'OpenCostPage', From 7a3dd00cc4204cfb7e47f62f6267f7e74ae857da Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 16 Aug 2023 08:49:45 +0000 Subject: [PATCH 361/372] Update dependency @types/react-syntax-highlighter to v15.5.7 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 e2f47d2d8a..d610d08bfd 100644 --- a/yarn.lock +++ b/yarn.lock @@ -17745,11 +17745,11 @@ __metadata: linkType: hard "@types/react-syntax-highlighter@npm:^15.0.0": - version: 15.5.6 - resolution: "@types/react-syntax-highlighter@npm:15.5.6" + version: 15.5.7 + resolution: "@types/react-syntax-highlighter@npm:15.5.7" dependencies: "@types/react": "*" - checksum: 81a9f26da41606ff595d42a064ec4097cd17c4ef242558aa5b3b76a1063729b2ae73f063350069a4692218cf6843d7ea59d3eaeac4df2a4894d969d911fb80b2 + checksum: 1918d01baaa9bf485093fb04167d0dc87131be708bd68d32d3f614c0e7dba05de765fc62df139fa1972836b13e27983a2d89552eda5b5a38691a4ec300949648 languageName: node linkType: hard From 8d46092f83057bcec15c25fb792a0ec47de96e21 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 16 Aug 2023 09:01:50 +0000 Subject: [PATCH 362/372] Update dependency @types/yarnpkg__lockfile to v1.1.6 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 30e72dc2b9..cacddddb1c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -18283,9 +18283,9 @@ __metadata: linkType: hard "@types/yarnpkg__lockfile@npm:^1.1.4": - version: 1.1.5 - resolution: "@types/yarnpkg__lockfile@npm:1.1.5" - checksum: 2aa761eebea2e8780ddc9d2819a356451d04166e3ea4fad3fd43d81e25a68806edf884f71aef12f77f0a256eb98aa152d32a8af16e32d04a918424d10cb6d858 + version: 1.1.6 + resolution: "@types/yarnpkg__lockfile@npm:1.1.6" + checksum: c0983d88c479f7b00a66d927fda9f8972e072745d5d16922cf381807aa6e88553319bb9f2b21b58f9e1ebea1a198a22d4da3111d93c81288589371ebb00d65f5 languageName: node linkType: hard From 745be7443c4e19ce468c5e1094001427cd0dffb4 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 16 Aug 2023 09:14:35 +0000 Subject: [PATCH 363/372] Update dependency cron to v2.4.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 30e72dc2b9..9a2b35aa77 100644 --- a/yarn.lock +++ b/yarn.lock @@ -22192,11 +22192,11 @@ __metadata: linkType: hard "cron@npm:^2.0.0": - version: 2.4.0 - resolution: "cron@npm:2.4.0" + version: 2.4.1 + resolution: "cron@npm:2.4.1" dependencies: luxon: ^3.2.1 - checksum: e1dfc2d2a8cfdee0c17daac791074d904b8d7ecdcd3cf9ca969f8efb00371113d1eb69d60fdebb9e94ac5b3bb3e904a7e687a2fcd276ffdb1f0381e8b6df26bd + checksum: a421a837f99cf18da2f51e3608610f71817c38e6f756b4c85a26f64521dac327ac79861ae3dcf991076f72f3be0daadfffd413b4be0c3b4b029509b89e86b6d4 languageName: node linkType: hard From 4e8535d140a7e2aa4fc5f42c14f3c0448851c2ba Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 16 Aug 2023 10:13:28 +0000 Subject: [PATCH 364/372] Update dependency eslint-plugin-react to v7.33.2 Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- yarn.lock | 111 ++++++++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 103 insertions(+), 8 deletions(-) diff --git a/yarn.lock b/yarn.lock index 1146fa8528..7b54d46fad 100644 --- a/yarn.lock +++ b/yarn.lock @@ -19627,6 +19627,15 @@ __metadata: languageName: node linkType: hard +"asynciterator.prototype@npm:^1.0.0": + version: 1.0.0 + resolution: "asynciterator.prototype@npm:1.0.0" + dependencies: + has-symbols: ^1.0.3 + checksum: e8ebfd9493ac651cf9b4165e9d64030b3da1d17181bb1963627b59e240cdaf021d9b59d44b827dc1dde4e22387ec04c2d0f8720cf58a1c282e34e40cc12721b3 + languageName: node + linkType: hard + "asynckit@npm:^0.4.0": version: 0.4.0 resolution: "asynckit@npm:0.4.0" @@ -23904,7 +23913,7 @@ __metadata: languageName: node linkType: hard -"es-abstract@npm:^1.19.0, es-abstract@npm:^1.20.4, es-abstract@npm:^1.21.2": +"es-abstract@npm:^1.19.0, es-abstract@npm:^1.20.4, es-abstract@npm:^1.21.2, es-abstract@npm:^1.21.3": version: 1.22.1 resolution: "es-abstract@npm:1.22.1" dependencies: @@ -23982,6 +23991,24 @@ __metadata: languageName: node linkType: hard +"es-iterator-helpers@npm:^1.0.12": + version: 1.0.12 + resolution: "es-iterator-helpers@npm:1.0.12" + dependencies: + asynciterator.prototype: ^1.0.0 + es-abstract: ^1.21.3 + es-set-tostringtag: ^2.0.1 + function-bind: ^1.1.1 + globalthis: ^1.0.3 + has-proto: ^1.0.1 + has-symbols: ^1.0.3 + internal-slot: ^1.0.5 + iterator.prototype: ^1.1.0 + safe-array-concat: ^1.0.0 + checksum: df1800a64be755e61718d2e62eef17c22590ed668c44eb3a5c9b78f874e8e01bfa7ba27a0f258b1322f577c2b2032fec194aa20912f7417ddc580c4ec31882e4 + languageName: node + linkType: hard + "es-module-lexer@npm:^0.9.3": version: 0.9.3 resolution: "es-module-lexer@npm:0.9.3" @@ -24675,13 +24702,14 @@ __metadata: linkType: hard "eslint-plugin-react@npm:^7.28.0": - version: 7.33.1 - resolution: "eslint-plugin-react@npm:7.33.1" + version: 7.33.2 + resolution: "eslint-plugin-react@npm:7.33.2" dependencies: array-includes: ^3.1.6 array.prototype.flatmap: ^1.3.1 array.prototype.tosorted: ^1.1.1 doctrine: ^2.1.0 + es-iterator-helpers: ^1.0.12 estraverse: ^5.3.0 jsx-ast-utils: ^2.4.1 || ^3.0.0 minimatch: ^3.1.2 @@ -24695,7 +24723,7 @@ __metadata: string.prototype.matchall: ^4.0.8 peerDependencies: eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 - checksum: 0427bd24acb87422b7298686203167123ba289ba563384983f3d99fad7817eae7f63157fd2e9b868bdcf0760719c319ab1e22a44764a98302034b0c844763e57 + checksum: b4c3d76390b0ae6b6f9fed78170604cc2c04b48e6778a637db339e8e3911ec9ef22510b0ae77c429698151d0f1b245f282177f384105b6830e7b29b9c9b26610 languageName: node linkType: hard @@ -28204,6 +28232,15 @@ __metadata: languageName: node linkType: hard +"is-async-function@npm:^2.0.0": + version: 2.0.0 + resolution: "is-async-function@npm:2.0.0" + dependencies: + has-tostringtag: ^1.0.0 + checksum: e3471d95e6c014bf37cad8a93f2f4b6aac962178e0a5041e8903147166964fdc1c5c1d2ef87e86d77322c370ca18f2ea004fa7420581fa747bcaf7c223069dbd + languageName: node + linkType: hard + "is-bigint@npm:^1.0.1": version: 1.0.4 resolution: "is-bigint@npm:1.0.4" @@ -28314,6 +28351,15 @@ __metadata: languageName: node linkType: hard +"is-finalizationregistry@npm:^1.0.2": + version: 1.0.2 + resolution: "is-finalizationregistry@npm:1.0.2" + dependencies: + call-bind: ^1.0.2 + checksum: 4f243a8e06228cd45bdab8608d2cb7abfc20f6f0189c8ac21ea8d603f1f196eabd531ce0bb8e08cbab047e9845ef2c191a3761c9a17ad5cabf8b35499c4ad35d + languageName: node + linkType: hard + "is-fullwidth-code-point@npm:^1.0.0": version: 1.0.0 resolution: "is-fullwidth-code-point@npm:1.0.0" @@ -28344,10 +28390,12 @@ __metadata: languageName: node linkType: hard -"is-generator-function@npm:^1.0.7": - version: 1.0.8 - resolution: "is-generator-function@npm:1.0.8" - checksum: ff6a510416885616fa57a2a1e043224a386ed37451c3686cc1ed38a63acd59b240f09b5d937aa86dedc3a7fb91ae6c0ce6477149d4b6f9be608a870e038b38bd +"is-generator-function@npm:^1.0.10, is-generator-function@npm:^1.0.7": + version: 1.0.10 + resolution: "is-generator-function@npm:1.0.10" + dependencies: + has-tostringtag: ^1.0.0 + checksum: d54644e7dbaccef15ceb1e5d91d680eb5068c9ee9f9eb0a9e04173eb5542c9b51b5ab52c5537f5703e48d5fddfd376817c1ca07a84a407b7115b769d4bdde72b languageName: node linkType: hard @@ -28990,6 +29038,19 @@ __metadata: languageName: node linkType: hard +"iterator.prototype@npm:^1.1.0": + version: 1.1.0 + resolution: "iterator.prototype@npm:1.1.0" + dependencies: + define-properties: ^1.1.4 + get-intrinsic: ^1.1.3 + has-symbols: ^1.0.3 + has-tostringtag: ^1.0.0 + reflect.getprototypeof: ^1.0.3 + checksum: 462fe16c770affeb9c08620b13fc98d38307335821f4fabd489f491d38c79855c6a93d4b56f6146eaa56711f61690aa5c7eb0ce8586c95145d2f665a3834d916 + languageName: node + linkType: hard + "jackspeak@npm:^2.0.3": version: 2.2.1 resolution: "jackspeak@npm:2.2.1" @@ -37196,6 +37257,20 @@ __metadata: languageName: node linkType: hard +"reflect.getprototypeof@npm:^1.0.3": + version: 1.0.3 + resolution: "reflect.getprototypeof@npm:1.0.3" + dependencies: + call-bind: ^1.0.2 + define-properties: ^1.1.4 + es-abstract: ^1.20.4 + get-intrinsic: ^1.1.1 + globalthis: ^1.0.3 + which-builtin-type: ^1.1.3 + checksum: 843e2506c013da66f83635f943c5bd41243bc6c7703298531cfb16eb6baaefd92f83031fa37140ad31c4edc86938b6eb385e6fc85bf1628e79348ed49e044f3d + languageName: node + linkType: hard + "refractor@npm:^3.6.0": version: 3.6.0 resolution: "refractor@npm:3.6.0" @@ -42258,6 +42333,26 @@ __metadata: languageName: node linkType: hard +"which-builtin-type@npm:^1.1.3": + version: 1.1.3 + resolution: "which-builtin-type@npm:1.1.3" + dependencies: + function.prototype.name: ^1.1.5 + has-tostringtag: ^1.0.0 + is-async-function: ^2.0.0 + is-date-object: ^1.0.5 + is-finalizationregistry: ^1.0.2 + is-generator-function: ^1.0.10 + is-regex: ^1.1.4 + is-weakref: ^1.0.2 + isarray: ^2.0.5 + which-boxed-primitive: ^1.0.2 + which-collection: ^1.0.1 + which-typed-array: ^1.1.9 + checksum: 43730f7d8660ff9e33d1d3f9f9451c4784265ee7bf222babc35e61674a11a08e1c2925019d6c03154fcaaca4541df43abe35d2720843b9b4cbcebdcc31408f36 + languageName: node + linkType: hard + "which-collection@npm:^1.0.1": version: 1.0.1 resolution: "which-collection@npm:1.0.1" From 0bf0bd6e1701727d6fbad4fc51ec04f907bc0c73 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 16 Aug 2023 11:15:58 +0000 Subject: [PATCH 365/372] Update dependency postcss to v8.4.28 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 967e6c3aa6..8a220323d7 100644 --- a/yarn.lock +++ b/yarn.lock @@ -35497,13 +35497,13 @@ __metadata: linkType: hard "postcss@npm:^8.1.0, postcss@npm:^8.4.21": - version: 8.4.27 - resolution: "postcss@npm:8.4.27" + version: 8.4.28 + resolution: "postcss@npm:8.4.28" dependencies: nanoid: ^3.3.6 picocolors: ^1.0.0 source-map-js: ^1.0.2 - checksum: 1cdd0c298849df6cd65f7e646a3ba36870a37b65f55fd59d1a165539c263e9b4872a402bf4ed1ca1bc31f58b68b2835545e33ea1a23b161a1f8aa6d5ded81e78 + checksum: f605c24a36f7e400bad379735fbfc893ccb8d293ad6d419bb824db77cdcb69f43d614ef35f9f7091f32ca588d130ec60dbcf53b366e6bf88a8a64bbeb3c05f6d languageName: node linkType: hard From 1b1898a07a51a45e4ca08205ccb9fa5e2d92b905 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 16 Aug 2023 12:10:26 +0000 Subject: [PATCH 366/372] Update dependency swagger-ui-react to v5.3.2 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 8a220323d7..f13edd7ac6 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9604,10 +9604,10 @@ __metadata: languageName: node linkType: hard -"@braintree/sanitize-url@npm:=6.0.2": - version: 6.0.2 - resolution: "@braintree/sanitize-url@npm:6.0.2" - checksum: 6a9dfd4081cc96516eeb281d1a83d3b5f1ad3d2837adf968fcc2ba18889ee833554f9c641b4083c36d3360a932e4504ddf25b0b51e9933c3742622df82cf7c9a +"@braintree/sanitize-url@npm:=6.0.4": + version: 6.0.4 + resolution: "@braintree/sanitize-url@npm:6.0.4" + checksum: f5ec6048973722ea1c46ae555d2e9eb848d7fa258994f8ea7d6db9514ee754ea3ef344ef71b3696d486776bcb839f3124e79f67c6b5b2814ed2da220b340627c languageName: node linkType: hard @@ -39959,11 +39959,11 @@ __metadata: linkType: hard "swagger-ui-react@npm:^5.0.0": - version: 5.3.1 - resolution: "swagger-ui-react@npm:5.3.1" + version: 5.3.2 + resolution: "swagger-ui-react@npm:5.3.2" dependencies: "@babel/runtime-corejs3": ^7.22.6 - "@braintree/sanitize-url": =6.0.2 + "@braintree/sanitize-url": =6.0.4 base64-js: ^1.5.1 classnames: ^2.3.1 css.escape: 1.5.1 @@ -39999,7 +39999,7 @@ __metadata: peerDependencies: react: ">=17.0.0" react-dom: ">=17.0.0" - checksum: 6f27e72bbd537a0c9d9d091d4632b4a09d95077c59815330186c495d67e17fd4dd1af649d5e8d93a61c896163d81d3faa2ae402418c3e7f43853b7d840712f7c + checksum: d01e011cfd3915bbd17f0a0c886062a292cbef99f0feff247a18eea457bf4500f9d8fe932977cfc6e68b19197d8e52809ca58f269f9fe3128347901ee3cf621b languageName: node linkType: hard From fd365326d06b9a3343196cfaea7a867631ca8683 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 16 Aug 2023 12:11:07 +0000 Subject: [PATCH 367/372] Update graphqlcodegenerator monorepo to v3.3.1 Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- yarn.lock | 42 +++++++++++++++++++++--------------------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/yarn.lock b/yarn.lock index 8a220323d7..fed1f7eb66 100644 --- a/yarn.lock +++ b/yarn.lock @@ -10890,8 +10890,8 @@ __metadata: linkType: hard "@graphql-codegen/cli@npm:^3.0.0": - version: 3.3.0 - resolution: "@graphql-codegen/cli@npm:3.3.0" + version: 3.3.1 + resolution: "@graphql-codegen/cli@npm:3.3.1" dependencies: "@babel/generator": ^7.18.13 "@babel/template": ^7.18.10 @@ -10935,7 +10935,7 @@ __metadata: graphql-code-generator: cjs/bin.js graphql-codegen: cjs/bin.js graphql-codegen-esm: esm/bin.js - checksum: 7c3ae7ba62cfb5576e6c1fc78f81a2c59d399415b9ef2ba55818af00aff2337a047a61b1cedb6e89e73dac30d9a00e57045ff6052245934bc4c5cf35c9762250 + checksum: cc3c0b8f1fd8150591b35b549a04577e84ac9c30396ad100196f594f741dd34e69ec9b1335ec41c00afe4ecf1d7e3505c1859fa244bdef1d10753d2b441de962 languageName: node linkType: hard @@ -10954,18 +10954,18 @@ __metadata: linkType: hard "@graphql-codegen/graphql-modules-preset@npm:^3.0.0": - version: 3.1.2 - resolution: "@graphql-codegen/graphql-modules-preset@npm:3.1.2" + version: 3.1.3 + resolution: "@graphql-codegen/graphql-modules-preset@npm:3.1.3" dependencies: "@graphql-codegen/plugin-helpers": ^4.2.0 - "@graphql-codegen/visitor-plugin-common": 3.1.0 + "@graphql-codegen/visitor-plugin-common": 3.1.1 "@graphql-tools/utils": ^9.0.0 change-case-all: 1.0.15 parse-filepath: ^1.0.2 tslib: ~2.5.0 peerDependencies: graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 - checksum: d3b4e9fe169742ce7973466045793ff0823c690f0736ba22aef3d4578be498746df108726ccad0c190d1c45a33816ab4e010b9c6e9931ced06ef7489d85a3691 + checksum: 6e7303a850984c3c414a96784f499dab188d94cf3d13b6f44cb3c59de4b5f127080df610a316554511cfe669283ac745d8b2537afbe6d8113e58f4b30a27c28b languageName: node linkType: hard @@ -10999,39 +10999,39 @@ __metadata: linkType: hard "@graphql-codegen/typescript-resolvers@npm:^3.0.0": - version: 3.2.0 - resolution: "@graphql-codegen/typescript-resolvers@npm:3.2.0" + version: 3.2.1 + resolution: "@graphql-codegen/typescript-resolvers@npm:3.2.1" dependencies: "@graphql-codegen/plugin-helpers": ^4.2.0 - "@graphql-codegen/typescript": ^3.0.3 - "@graphql-codegen/visitor-plugin-common": 3.1.0 + "@graphql-codegen/typescript": ^3.0.4 + "@graphql-codegen/visitor-plugin-common": 3.1.1 "@graphql-tools/utils": ^9.0.0 auto-bind: ~4.0.0 tslib: ~2.5.0 peerDependencies: graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 - checksum: d866b95775c95d1685e832a1d24df2a1e98feb67f35ef20a5d590c42b7314307b48399531b0cdc004e0be1062769ffe1e1a4757863ed1ca1f575dcd5e08b014d + checksum: a84f8fc68fe778beabbf537f1312699a220a3a605d972403075d8307fb7fe9aec73ae2eb5b42dea9f3a7c91deabfe6e1271d607e1b2c84b346686107f39354fb languageName: node linkType: hard -"@graphql-codegen/typescript@npm:^3.0.0, @graphql-codegen/typescript@npm:^3.0.3": - version: 3.0.3 - resolution: "@graphql-codegen/typescript@npm:3.0.3" +"@graphql-codegen/typescript@npm:^3.0.0, @graphql-codegen/typescript@npm:^3.0.4": + version: 3.0.4 + resolution: "@graphql-codegen/typescript@npm:3.0.4" dependencies: "@graphql-codegen/plugin-helpers": ^4.2.0 "@graphql-codegen/schema-ast": ^3.0.1 - "@graphql-codegen/visitor-plugin-common": 3.1.0 + "@graphql-codegen/visitor-plugin-common": 3.1.1 auto-bind: ~4.0.0 tslib: ~2.5.0 peerDependencies: graphql: ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 - checksum: 5d292379b5f25f1df0dfdec62211f7e304a85910b6e30dcb28e89478dd15b565f05993913d9b8cf7f08b1e9166242f08e9cb68bd9688f486bd5eada7c6f82442 + checksum: ede5311c5f620e16c3e98f51bdcedc7fd42f2c552a8ca5a946f757dc9709c384a12d32d088769d04041461d3318159ad0644f70056aea1877ee80a0bdc48de1f languageName: node linkType: hard -"@graphql-codegen/visitor-plugin-common@npm:3.1.0": - version: 3.1.0 - resolution: "@graphql-codegen/visitor-plugin-common@npm:3.1.0" +"@graphql-codegen/visitor-plugin-common@npm:3.1.1": + version: 3.1.1 + resolution: "@graphql-codegen/visitor-plugin-common@npm:3.1.1" dependencies: "@graphql-codegen/plugin-helpers": ^4.2.0 "@graphql-tools/optimize": ^1.3.0 @@ -11045,7 +11045,7 @@ __metadata: tslib: ~2.5.0 peerDependencies: graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 - checksum: 7532666c578680cda538d7b859ee7d5541113f3972f0f2396affa4dd6823a2e2d6f8b715c685912652b0906722dfafb4375c462aa3b4f991a12ec0a28f1b7ba7 + checksum: 8dbef75ba0576a7de5e134b53778d64d818084df01e74554adc979f08db8446e9734889575c820449b6ef9febd6a9005fb89c7c9c101a9e398c195b5c3279353 languageName: node linkType: hard From 0bba0e75dc135c19264e0ab29eb4a888c186a094 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 16 Aug 2023 13:14:57 +0000 Subject: [PATCH 368/372] Update aws-sdk-js-v3 monorepo to v3.391.0 Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- yarn.lock | 1254 +++++++++++++++++++++++++++-------------------------- 1 file changed, 642 insertions(+), 612 deletions(-) diff --git a/yarn.lock b/yarn.lock index f13edd7ac6..964b564bff 100644 --- a/yarn.lock +++ b/yarn.lock @@ -569,457 +569,457 @@ __metadata: languageName: node linkType: hard -"@aws-sdk/client-cognito-identity@npm:3.387.0": - version: 3.387.0 - resolution: "@aws-sdk/client-cognito-identity@npm:3.387.0" +"@aws-sdk/client-cognito-identity@npm:3.391.0": + version: 3.391.0 + resolution: "@aws-sdk/client-cognito-identity@npm:3.391.0" dependencies: "@aws-crypto/sha256-browser": 3.0.0 "@aws-crypto/sha256-js": 3.0.0 - "@aws-sdk/client-sts": 3.387.0 - "@aws-sdk/credential-provider-node": 3.387.0 - "@aws-sdk/middleware-host-header": 3.387.0 - "@aws-sdk/middleware-logger": 3.387.0 - "@aws-sdk/middleware-recursion-detection": 3.387.0 - "@aws-sdk/middleware-signing": 3.387.0 - "@aws-sdk/middleware-user-agent": 3.387.0 - "@aws-sdk/types": 3.387.0 - "@aws-sdk/util-endpoints": 3.387.0 - "@aws-sdk/util-user-agent-browser": 3.387.0 - "@aws-sdk/util-user-agent-node": 3.387.0 - "@smithy/config-resolver": ^2.0.2 - "@smithy/fetch-http-handler": ^2.0.2 - "@smithy/hash-node": ^2.0.2 - "@smithy/invalid-dependency": ^2.0.2 - "@smithy/middleware-content-length": ^2.0.2 - "@smithy/middleware-endpoint": ^2.0.2 - "@smithy/middleware-retry": ^2.0.2 - "@smithy/middleware-serde": ^2.0.2 + "@aws-sdk/client-sts": 3.391.0 + "@aws-sdk/credential-provider-node": 3.391.0 + "@aws-sdk/middleware-host-header": 3.391.0 + "@aws-sdk/middleware-logger": 3.391.0 + "@aws-sdk/middleware-recursion-detection": 3.391.0 + "@aws-sdk/middleware-signing": 3.391.0 + "@aws-sdk/middleware-user-agent": 3.391.0 + "@aws-sdk/types": 3.391.0 + "@aws-sdk/util-endpoints": 3.391.0 + "@aws-sdk/util-user-agent-browser": 3.391.0 + "@aws-sdk/util-user-agent-node": 3.391.0 + "@smithy/config-resolver": ^2.0.3 + "@smithy/fetch-http-handler": ^2.0.3 + "@smithy/hash-node": ^2.0.3 + "@smithy/invalid-dependency": ^2.0.3 + "@smithy/middleware-content-length": ^2.0.3 + "@smithy/middleware-endpoint": ^2.0.3 + "@smithy/middleware-retry": ^2.0.3 + "@smithy/middleware-serde": ^2.0.3 "@smithy/middleware-stack": ^2.0.0 - "@smithy/node-config-provider": ^2.0.2 - "@smithy/node-http-handler": ^2.0.2 - "@smithy/protocol-http": ^2.0.2 - "@smithy/smithy-client": ^2.0.2 - "@smithy/types": ^2.1.0 - "@smithy/url-parser": ^2.0.2 + "@smithy/node-config-provider": ^2.0.3 + "@smithy/node-http-handler": ^2.0.3 + "@smithy/protocol-http": ^2.0.3 + "@smithy/smithy-client": ^2.0.3 + "@smithy/types": ^2.2.0 + "@smithy/url-parser": ^2.0.3 "@smithy/util-base64": ^2.0.0 "@smithy/util-body-length-browser": ^2.0.0 "@smithy/util-body-length-node": ^2.0.0 - "@smithy/util-defaults-mode-browser": ^2.0.2 - "@smithy/util-defaults-mode-node": ^2.0.2 + "@smithy/util-defaults-mode-browser": ^2.0.3 + "@smithy/util-defaults-mode-node": ^2.0.3 "@smithy/util-retry": ^2.0.0 "@smithy/util-utf8": ^2.0.0 tslib: ^2.5.0 - checksum: 88be8e754b0f65bef93cf00f87336aa66b6e7d52d78f6bef132716f528f908318628f87316d0feae2d4a8fcf0ba2d2362ecae4bdea193eb8f14ed43eaa2deee1 + checksum: 62cb9721b48b3615679604be11358ca75453798b8a7b2e124afe6fcf46d8224395b77acc956707a00dc3feac54b676517e4e99de62591ac04d186b778e434461 languageName: node linkType: hard "@aws-sdk/client-eks@npm:^3.350.0": - version: 3.387.0 - resolution: "@aws-sdk/client-eks@npm:3.387.0" + version: 3.391.0 + resolution: "@aws-sdk/client-eks@npm:3.391.0" dependencies: "@aws-crypto/sha256-browser": 3.0.0 "@aws-crypto/sha256-js": 3.0.0 - "@aws-sdk/client-sts": 3.387.0 - "@aws-sdk/credential-provider-node": 3.387.0 - "@aws-sdk/middleware-host-header": 3.387.0 - "@aws-sdk/middleware-logger": 3.387.0 - "@aws-sdk/middleware-recursion-detection": 3.387.0 - "@aws-sdk/middleware-signing": 3.387.0 - "@aws-sdk/middleware-user-agent": 3.387.0 - "@aws-sdk/types": 3.387.0 - "@aws-sdk/util-endpoints": 3.387.0 - "@aws-sdk/util-user-agent-browser": 3.387.0 - "@aws-sdk/util-user-agent-node": 3.387.0 - "@smithy/config-resolver": ^2.0.2 - "@smithy/fetch-http-handler": ^2.0.2 - "@smithy/hash-node": ^2.0.2 - "@smithy/invalid-dependency": ^2.0.2 - "@smithy/middleware-content-length": ^2.0.2 - "@smithy/middleware-endpoint": ^2.0.2 - "@smithy/middleware-retry": ^2.0.2 - "@smithy/middleware-serde": ^2.0.2 + "@aws-sdk/client-sts": 3.391.0 + "@aws-sdk/credential-provider-node": 3.391.0 + "@aws-sdk/middleware-host-header": 3.391.0 + "@aws-sdk/middleware-logger": 3.391.0 + "@aws-sdk/middleware-recursion-detection": 3.391.0 + "@aws-sdk/middleware-signing": 3.391.0 + "@aws-sdk/middleware-user-agent": 3.391.0 + "@aws-sdk/types": 3.391.0 + "@aws-sdk/util-endpoints": 3.391.0 + "@aws-sdk/util-user-agent-browser": 3.391.0 + "@aws-sdk/util-user-agent-node": 3.391.0 + "@smithy/config-resolver": ^2.0.3 + "@smithy/fetch-http-handler": ^2.0.3 + "@smithy/hash-node": ^2.0.3 + "@smithy/invalid-dependency": ^2.0.3 + "@smithy/middleware-content-length": ^2.0.3 + "@smithy/middleware-endpoint": ^2.0.3 + "@smithy/middleware-retry": ^2.0.3 + "@smithy/middleware-serde": ^2.0.3 "@smithy/middleware-stack": ^2.0.0 - "@smithy/node-config-provider": ^2.0.2 - "@smithy/node-http-handler": ^2.0.2 - "@smithy/protocol-http": ^2.0.2 - "@smithy/smithy-client": ^2.0.2 - "@smithy/types": ^2.1.0 - "@smithy/url-parser": ^2.0.2 + "@smithy/node-config-provider": ^2.0.3 + "@smithy/node-http-handler": ^2.0.3 + "@smithy/protocol-http": ^2.0.3 + "@smithy/smithy-client": ^2.0.3 + "@smithy/types": ^2.2.0 + "@smithy/url-parser": ^2.0.3 "@smithy/util-base64": ^2.0.0 "@smithy/util-body-length-browser": ^2.0.0 "@smithy/util-body-length-node": ^2.0.0 - "@smithy/util-defaults-mode-browser": ^2.0.2 - "@smithy/util-defaults-mode-node": ^2.0.2 + "@smithy/util-defaults-mode-browser": ^2.0.3 + "@smithy/util-defaults-mode-node": ^2.0.3 "@smithy/util-retry": ^2.0.0 "@smithy/util-utf8": ^2.0.0 - "@smithy/util-waiter": ^2.0.2 + "@smithy/util-waiter": ^2.0.3 tslib: ^2.5.0 uuid: ^8.3.2 - checksum: f4a8a64d7c7bfef23c4fb610156a4b80c14728870bf67346ee052082f136f02776aba89600adc79dae803d1e96c351f16a0dc4a0ddbe9df09a198644966d4fc3 + checksum: b1b4ad33d34068c12492065eca485f9973122b0fedc76e3806e4886fec60be0c912b81c4b7e584f3f4fdbbe5ba7f10e009798f45fc62653347df01e449a5e7cf languageName: node linkType: hard "@aws-sdk/client-organizations@npm:^3.350.0": - version: 3.387.0 - resolution: "@aws-sdk/client-organizations@npm:3.387.0" + version: 3.391.0 + resolution: "@aws-sdk/client-organizations@npm:3.391.0" dependencies: "@aws-crypto/sha256-browser": 3.0.0 "@aws-crypto/sha256-js": 3.0.0 - "@aws-sdk/client-sts": 3.387.0 - "@aws-sdk/credential-provider-node": 3.387.0 - "@aws-sdk/middleware-host-header": 3.387.0 - "@aws-sdk/middleware-logger": 3.387.0 - "@aws-sdk/middleware-recursion-detection": 3.387.0 - "@aws-sdk/middleware-signing": 3.387.0 - "@aws-sdk/middleware-user-agent": 3.387.0 - "@aws-sdk/types": 3.387.0 - "@aws-sdk/util-endpoints": 3.387.0 - "@aws-sdk/util-user-agent-browser": 3.387.0 - "@aws-sdk/util-user-agent-node": 3.387.0 - "@smithy/config-resolver": ^2.0.2 - "@smithy/fetch-http-handler": ^2.0.2 - "@smithy/hash-node": ^2.0.2 - "@smithy/invalid-dependency": ^2.0.2 - "@smithy/middleware-content-length": ^2.0.2 - "@smithy/middleware-endpoint": ^2.0.2 - "@smithy/middleware-retry": ^2.0.2 - "@smithy/middleware-serde": ^2.0.2 + "@aws-sdk/client-sts": 3.391.0 + "@aws-sdk/credential-provider-node": 3.391.0 + "@aws-sdk/middleware-host-header": 3.391.0 + "@aws-sdk/middleware-logger": 3.391.0 + "@aws-sdk/middleware-recursion-detection": 3.391.0 + "@aws-sdk/middleware-signing": 3.391.0 + "@aws-sdk/middleware-user-agent": 3.391.0 + "@aws-sdk/types": 3.391.0 + "@aws-sdk/util-endpoints": 3.391.0 + "@aws-sdk/util-user-agent-browser": 3.391.0 + "@aws-sdk/util-user-agent-node": 3.391.0 + "@smithy/config-resolver": ^2.0.3 + "@smithy/fetch-http-handler": ^2.0.3 + "@smithy/hash-node": ^2.0.3 + "@smithy/invalid-dependency": ^2.0.3 + "@smithy/middleware-content-length": ^2.0.3 + "@smithy/middleware-endpoint": ^2.0.3 + "@smithy/middleware-retry": ^2.0.3 + "@smithy/middleware-serde": ^2.0.3 "@smithy/middleware-stack": ^2.0.0 - "@smithy/node-config-provider": ^2.0.2 - "@smithy/node-http-handler": ^2.0.2 - "@smithy/protocol-http": ^2.0.2 - "@smithy/smithy-client": ^2.0.2 - "@smithy/types": ^2.1.0 - "@smithy/url-parser": ^2.0.2 + "@smithy/node-config-provider": ^2.0.3 + "@smithy/node-http-handler": ^2.0.3 + "@smithy/protocol-http": ^2.0.3 + "@smithy/smithy-client": ^2.0.3 + "@smithy/types": ^2.2.0 + "@smithy/url-parser": ^2.0.3 "@smithy/util-base64": ^2.0.0 "@smithy/util-body-length-browser": ^2.0.0 "@smithy/util-body-length-node": ^2.0.0 - "@smithy/util-defaults-mode-browser": ^2.0.2 - "@smithy/util-defaults-mode-node": ^2.0.2 + "@smithy/util-defaults-mode-browser": ^2.0.3 + "@smithy/util-defaults-mode-node": ^2.0.3 "@smithy/util-retry": ^2.0.0 "@smithy/util-utf8": ^2.0.0 tslib: ^2.5.0 - checksum: 095de70f230113d1b035a25c93074e6953a06b99deb0bf39928c661e05710c7678defbdbb58dbb6919e6f4633fbc9a26a684b07821ba69e244e14733ba978eaa + checksum: 69fc34393c063be11879cb6892943567babfd726955678df2253b1e6a92a3367cd54c43f047e1a17af5ca78d426baa22052580fdc517813c8a7026802ad1fb97 languageName: node linkType: hard "@aws-sdk/client-s3@npm:^3.350.0": - version: 3.387.0 - resolution: "@aws-sdk/client-s3@npm:3.387.0" + version: 3.391.0 + resolution: "@aws-sdk/client-s3@npm:3.391.0" dependencies: "@aws-crypto/sha1-browser": 3.0.0 "@aws-crypto/sha256-browser": 3.0.0 "@aws-crypto/sha256-js": 3.0.0 - "@aws-sdk/client-sts": 3.387.0 - "@aws-sdk/credential-provider-node": 3.387.0 - "@aws-sdk/middleware-bucket-endpoint": 3.387.0 - "@aws-sdk/middleware-expect-continue": 3.387.0 - "@aws-sdk/middleware-flexible-checksums": 3.387.0 - "@aws-sdk/middleware-host-header": 3.387.0 - "@aws-sdk/middleware-location-constraint": 3.387.0 - "@aws-sdk/middleware-logger": 3.387.0 - "@aws-sdk/middleware-recursion-detection": 3.387.0 - "@aws-sdk/middleware-sdk-s3": 3.387.0 - "@aws-sdk/middleware-signing": 3.387.0 - "@aws-sdk/middleware-ssec": 3.387.0 - "@aws-sdk/middleware-user-agent": 3.387.0 - "@aws-sdk/signature-v4-multi-region": 3.387.0 - "@aws-sdk/types": 3.387.0 - "@aws-sdk/util-endpoints": 3.387.0 - "@aws-sdk/util-user-agent-browser": 3.387.0 - "@aws-sdk/util-user-agent-node": 3.387.0 + "@aws-sdk/client-sts": 3.391.0 + "@aws-sdk/credential-provider-node": 3.391.0 + "@aws-sdk/middleware-bucket-endpoint": 3.391.0 + "@aws-sdk/middleware-expect-continue": 3.391.0 + "@aws-sdk/middleware-flexible-checksums": 3.391.0 + "@aws-sdk/middleware-host-header": 3.391.0 + "@aws-sdk/middleware-location-constraint": 3.391.0 + "@aws-sdk/middleware-logger": 3.391.0 + "@aws-sdk/middleware-recursion-detection": 3.391.0 + "@aws-sdk/middleware-sdk-s3": 3.391.0 + "@aws-sdk/middleware-signing": 3.391.0 + "@aws-sdk/middleware-ssec": 3.391.0 + "@aws-sdk/middleware-user-agent": 3.391.0 + "@aws-sdk/signature-v4-multi-region": 3.391.0 + "@aws-sdk/types": 3.391.0 + "@aws-sdk/util-endpoints": 3.391.0 + "@aws-sdk/util-user-agent-browser": 3.391.0 + "@aws-sdk/util-user-agent-node": 3.391.0 "@aws-sdk/xml-builder": 3.310.0 - "@smithy/config-resolver": ^2.0.2 - "@smithy/eventstream-serde-browser": ^2.0.2 - "@smithy/eventstream-serde-config-resolver": ^2.0.2 - "@smithy/eventstream-serde-node": ^2.0.2 - "@smithy/fetch-http-handler": ^2.0.2 - "@smithy/hash-blob-browser": ^2.0.2 - "@smithy/hash-node": ^2.0.2 - "@smithy/hash-stream-node": ^2.0.2 - "@smithy/invalid-dependency": ^2.0.2 - "@smithy/md5-js": ^2.0.2 - "@smithy/middleware-content-length": ^2.0.2 - "@smithy/middleware-endpoint": ^2.0.2 - "@smithy/middleware-retry": ^2.0.2 - "@smithy/middleware-serde": ^2.0.2 + "@smithy/config-resolver": ^2.0.3 + "@smithy/eventstream-serde-browser": ^2.0.3 + "@smithy/eventstream-serde-config-resolver": ^2.0.3 + "@smithy/eventstream-serde-node": ^2.0.3 + "@smithy/fetch-http-handler": ^2.0.3 + "@smithy/hash-blob-browser": ^2.0.3 + "@smithy/hash-node": ^2.0.3 + "@smithy/hash-stream-node": ^2.0.3 + "@smithy/invalid-dependency": ^2.0.3 + "@smithy/md5-js": ^2.0.3 + "@smithy/middleware-content-length": ^2.0.3 + "@smithy/middleware-endpoint": ^2.0.3 + "@smithy/middleware-retry": ^2.0.3 + "@smithy/middleware-serde": ^2.0.3 "@smithy/middleware-stack": ^2.0.0 - "@smithy/node-config-provider": ^2.0.2 - "@smithy/node-http-handler": ^2.0.2 - "@smithy/protocol-http": ^2.0.2 - "@smithy/smithy-client": ^2.0.2 - "@smithy/types": ^2.1.0 - "@smithy/url-parser": ^2.0.2 + "@smithy/node-config-provider": ^2.0.3 + "@smithy/node-http-handler": ^2.0.3 + "@smithy/protocol-http": ^2.0.3 + "@smithy/smithy-client": ^2.0.3 + "@smithy/types": ^2.2.0 + "@smithy/url-parser": ^2.0.3 "@smithy/util-base64": ^2.0.0 "@smithy/util-body-length-browser": ^2.0.0 "@smithy/util-body-length-node": ^2.0.0 - "@smithy/util-defaults-mode-browser": ^2.0.2 - "@smithy/util-defaults-mode-node": ^2.0.2 + "@smithy/util-defaults-mode-browser": ^2.0.3 + "@smithy/util-defaults-mode-node": ^2.0.3 "@smithy/util-retry": ^2.0.0 - "@smithy/util-stream": ^2.0.2 + "@smithy/util-stream": ^2.0.3 "@smithy/util-utf8": ^2.0.0 - "@smithy/util-waiter": ^2.0.2 + "@smithy/util-waiter": ^2.0.3 fast-xml-parser: 4.2.5 tslib: ^2.5.0 - checksum: cc0600dfc971b203bb737850613ab986811b36014f4f42e8cebca71d05baf7ef3d618687ae43c50694b1341f339a44671813187dff6910d24130418d755dd265 + checksum: 7210fdd27a91fa6be6d86f6846a5afd52e1e951ba18e2e0664af432a4bc24092c411a5bed2db070664978f74ff71a3d586609531860a044a6540a4138587c5a8 languageName: node linkType: hard "@aws-sdk/client-sqs@npm:^3.350.0": - version: 3.387.0 - resolution: "@aws-sdk/client-sqs@npm:3.387.0" + version: 3.391.0 + resolution: "@aws-sdk/client-sqs@npm:3.391.0" dependencies: "@aws-crypto/sha256-browser": 3.0.0 "@aws-crypto/sha256-js": 3.0.0 - "@aws-sdk/client-sts": 3.387.0 - "@aws-sdk/credential-provider-node": 3.387.0 - "@aws-sdk/middleware-host-header": 3.387.0 - "@aws-sdk/middleware-logger": 3.387.0 - "@aws-sdk/middleware-recursion-detection": 3.387.0 - "@aws-sdk/middleware-sdk-sqs": 3.387.0 - "@aws-sdk/middleware-signing": 3.387.0 - "@aws-sdk/middleware-user-agent": 3.387.0 - "@aws-sdk/types": 3.387.0 - "@aws-sdk/util-endpoints": 3.387.0 - "@aws-sdk/util-user-agent-browser": 3.387.0 - "@aws-sdk/util-user-agent-node": 3.387.0 - "@smithy/config-resolver": ^2.0.2 - "@smithy/fetch-http-handler": ^2.0.2 - "@smithy/hash-node": ^2.0.2 - "@smithy/invalid-dependency": ^2.0.2 - "@smithy/md5-js": ^2.0.2 - "@smithy/middleware-content-length": ^2.0.2 - "@smithy/middleware-endpoint": ^2.0.2 - "@smithy/middleware-retry": ^2.0.2 - "@smithy/middleware-serde": ^2.0.2 + "@aws-sdk/client-sts": 3.391.0 + "@aws-sdk/credential-provider-node": 3.391.0 + "@aws-sdk/middleware-host-header": 3.391.0 + "@aws-sdk/middleware-logger": 3.391.0 + "@aws-sdk/middleware-recursion-detection": 3.391.0 + "@aws-sdk/middleware-sdk-sqs": 3.391.0 + "@aws-sdk/middleware-signing": 3.391.0 + "@aws-sdk/middleware-user-agent": 3.391.0 + "@aws-sdk/types": 3.391.0 + "@aws-sdk/util-endpoints": 3.391.0 + "@aws-sdk/util-user-agent-browser": 3.391.0 + "@aws-sdk/util-user-agent-node": 3.391.0 + "@smithy/config-resolver": ^2.0.3 + "@smithy/fetch-http-handler": ^2.0.3 + "@smithy/hash-node": ^2.0.3 + "@smithy/invalid-dependency": ^2.0.3 + "@smithy/md5-js": ^2.0.3 + "@smithy/middleware-content-length": ^2.0.3 + "@smithy/middleware-endpoint": ^2.0.3 + "@smithy/middleware-retry": ^2.0.3 + "@smithy/middleware-serde": ^2.0.3 "@smithy/middleware-stack": ^2.0.0 - "@smithy/node-config-provider": ^2.0.2 - "@smithy/node-http-handler": ^2.0.2 - "@smithy/protocol-http": ^2.0.2 - "@smithy/smithy-client": ^2.0.2 - "@smithy/types": ^2.1.0 - "@smithy/url-parser": ^2.0.2 + "@smithy/node-config-provider": ^2.0.3 + "@smithy/node-http-handler": ^2.0.3 + "@smithy/protocol-http": ^2.0.3 + "@smithy/smithy-client": ^2.0.3 + "@smithy/types": ^2.2.0 + "@smithy/url-parser": ^2.0.3 "@smithy/util-base64": ^2.0.0 "@smithy/util-body-length-browser": ^2.0.0 "@smithy/util-body-length-node": ^2.0.0 - "@smithy/util-defaults-mode-browser": ^2.0.2 - "@smithy/util-defaults-mode-node": ^2.0.2 + "@smithy/util-defaults-mode-browser": ^2.0.3 + "@smithy/util-defaults-mode-node": ^2.0.3 "@smithy/util-retry": ^2.0.0 "@smithy/util-utf8": ^2.0.0 fast-xml-parser: 4.2.5 tslib: ^2.5.0 - checksum: 3382ad67ec9679b73a571e0389db1ae80f21fa28beb3a13e3107ce72021705f37c3aacb06b3a3cfb4bc751de0453a443e30f315d5b2cb319abcd3454158c3518 + checksum: 1bcbcf6e3a8a031cc8facf099ba5fa45fca69ac2235b3c37dd267b09db00f9f3483b3e01026f3a93acd4d68bc6dfa110feea550f90a4ee0f51c4414eb0e280fd languageName: node linkType: hard -"@aws-sdk/client-sso@npm:3.387.0": - version: 3.387.0 - resolution: "@aws-sdk/client-sso@npm:3.387.0" +"@aws-sdk/client-sso@npm:3.391.0": + version: 3.391.0 + resolution: "@aws-sdk/client-sso@npm:3.391.0" dependencies: "@aws-crypto/sha256-browser": 3.0.0 "@aws-crypto/sha256-js": 3.0.0 - "@aws-sdk/middleware-host-header": 3.387.0 - "@aws-sdk/middleware-logger": 3.387.0 - "@aws-sdk/middleware-recursion-detection": 3.387.0 - "@aws-sdk/middleware-user-agent": 3.387.0 - "@aws-sdk/types": 3.387.0 - "@aws-sdk/util-endpoints": 3.387.0 - "@aws-sdk/util-user-agent-browser": 3.387.0 - "@aws-sdk/util-user-agent-node": 3.387.0 - "@smithy/config-resolver": ^2.0.2 - "@smithy/fetch-http-handler": ^2.0.2 - "@smithy/hash-node": ^2.0.2 - "@smithy/invalid-dependency": ^2.0.2 - "@smithy/middleware-content-length": ^2.0.2 - "@smithy/middleware-endpoint": ^2.0.2 - "@smithy/middleware-retry": ^2.0.2 - "@smithy/middleware-serde": ^2.0.2 + "@aws-sdk/middleware-host-header": 3.391.0 + "@aws-sdk/middleware-logger": 3.391.0 + "@aws-sdk/middleware-recursion-detection": 3.391.0 + "@aws-sdk/middleware-user-agent": 3.391.0 + "@aws-sdk/types": 3.391.0 + "@aws-sdk/util-endpoints": 3.391.0 + "@aws-sdk/util-user-agent-browser": 3.391.0 + "@aws-sdk/util-user-agent-node": 3.391.0 + "@smithy/config-resolver": ^2.0.3 + "@smithy/fetch-http-handler": ^2.0.3 + "@smithy/hash-node": ^2.0.3 + "@smithy/invalid-dependency": ^2.0.3 + "@smithy/middleware-content-length": ^2.0.3 + "@smithy/middleware-endpoint": ^2.0.3 + "@smithy/middleware-retry": ^2.0.3 + "@smithy/middleware-serde": ^2.0.3 "@smithy/middleware-stack": ^2.0.0 - "@smithy/node-config-provider": ^2.0.2 - "@smithy/node-http-handler": ^2.0.2 - "@smithy/protocol-http": ^2.0.2 - "@smithy/smithy-client": ^2.0.2 - "@smithy/types": ^2.1.0 - "@smithy/url-parser": ^2.0.2 + "@smithy/node-config-provider": ^2.0.3 + "@smithy/node-http-handler": ^2.0.3 + "@smithy/protocol-http": ^2.0.3 + "@smithy/smithy-client": ^2.0.3 + "@smithy/types": ^2.2.0 + "@smithy/url-parser": ^2.0.3 "@smithy/util-base64": ^2.0.0 "@smithy/util-body-length-browser": ^2.0.0 "@smithy/util-body-length-node": ^2.0.0 - "@smithy/util-defaults-mode-browser": ^2.0.2 - "@smithy/util-defaults-mode-node": ^2.0.2 + "@smithy/util-defaults-mode-browser": ^2.0.3 + "@smithy/util-defaults-mode-node": ^2.0.3 "@smithy/util-retry": ^2.0.0 "@smithy/util-utf8": ^2.0.0 tslib: ^2.5.0 - checksum: ca4750675bc39e7201b4b611cd642cb5f37413138a09670499c00ea637509aab0bd54a7b96e6b4a2bec810f12c9c87d0519fc6cad0a7f8a86ecad4bf8047a7ac + checksum: 6cfcc63d172ede2144924652ceb664839b7c5abe4085caadc878c99137561f0394eecb96c93c51f7ca6aa408bf7dfe4e03409f9e9a4349cef1e62a0e8b4991a8 languageName: node linkType: hard -"@aws-sdk/client-sts@npm:3.387.0, @aws-sdk/client-sts@npm:^3.350.0": - version: 3.387.0 - resolution: "@aws-sdk/client-sts@npm:3.387.0" +"@aws-sdk/client-sts@npm:3.391.0, @aws-sdk/client-sts@npm:^3.350.0": + version: 3.391.0 + resolution: "@aws-sdk/client-sts@npm:3.391.0" dependencies: "@aws-crypto/sha256-browser": 3.0.0 "@aws-crypto/sha256-js": 3.0.0 - "@aws-sdk/credential-provider-node": 3.387.0 - "@aws-sdk/middleware-host-header": 3.387.0 - "@aws-sdk/middleware-logger": 3.387.0 - "@aws-sdk/middleware-recursion-detection": 3.387.0 - "@aws-sdk/middleware-sdk-sts": 3.387.0 - "@aws-sdk/middleware-signing": 3.387.0 - "@aws-sdk/middleware-user-agent": 3.387.0 - "@aws-sdk/types": 3.387.0 - "@aws-sdk/util-endpoints": 3.387.0 - "@aws-sdk/util-user-agent-browser": 3.387.0 - "@aws-sdk/util-user-agent-node": 3.387.0 - "@smithy/config-resolver": ^2.0.2 - "@smithy/fetch-http-handler": ^2.0.2 - "@smithy/hash-node": ^2.0.2 - "@smithy/invalid-dependency": ^2.0.2 - "@smithy/middleware-content-length": ^2.0.2 - "@smithy/middleware-endpoint": ^2.0.2 - "@smithy/middleware-retry": ^2.0.2 - "@smithy/middleware-serde": ^2.0.2 + "@aws-sdk/credential-provider-node": 3.391.0 + "@aws-sdk/middleware-host-header": 3.391.0 + "@aws-sdk/middleware-logger": 3.391.0 + "@aws-sdk/middleware-recursion-detection": 3.391.0 + "@aws-sdk/middleware-sdk-sts": 3.391.0 + "@aws-sdk/middleware-signing": 3.391.0 + "@aws-sdk/middleware-user-agent": 3.391.0 + "@aws-sdk/types": 3.391.0 + "@aws-sdk/util-endpoints": 3.391.0 + "@aws-sdk/util-user-agent-browser": 3.391.0 + "@aws-sdk/util-user-agent-node": 3.391.0 + "@smithy/config-resolver": ^2.0.3 + "@smithy/fetch-http-handler": ^2.0.3 + "@smithy/hash-node": ^2.0.3 + "@smithy/invalid-dependency": ^2.0.3 + "@smithy/middleware-content-length": ^2.0.3 + "@smithy/middleware-endpoint": ^2.0.3 + "@smithy/middleware-retry": ^2.0.3 + "@smithy/middleware-serde": ^2.0.3 "@smithy/middleware-stack": ^2.0.0 - "@smithy/node-config-provider": ^2.0.2 - "@smithy/node-http-handler": ^2.0.2 - "@smithy/protocol-http": ^2.0.2 - "@smithy/smithy-client": ^2.0.2 - "@smithy/types": ^2.1.0 - "@smithy/url-parser": ^2.0.2 + "@smithy/node-config-provider": ^2.0.3 + "@smithy/node-http-handler": ^2.0.3 + "@smithy/protocol-http": ^2.0.3 + "@smithy/smithy-client": ^2.0.3 + "@smithy/types": ^2.2.0 + "@smithy/url-parser": ^2.0.3 "@smithy/util-base64": ^2.0.0 "@smithy/util-body-length-browser": ^2.0.0 "@smithy/util-body-length-node": ^2.0.0 - "@smithy/util-defaults-mode-browser": ^2.0.2 - "@smithy/util-defaults-mode-node": ^2.0.2 + "@smithy/util-defaults-mode-browser": ^2.0.3 + "@smithy/util-defaults-mode-node": ^2.0.3 "@smithy/util-retry": ^2.0.0 "@smithy/util-utf8": ^2.0.0 fast-xml-parser: 4.2.5 tslib: ^2.5.0 - checksum: 6f3a0a36c7d2881b438e64a2b6cb11f809c4bc406af27fb692d5d3a7cebb93fc5b26f235ee5a4f3eea620b0c07d015ce11e2d8f32c79b3ea01221fe8548c2421 + checksum: 5f4d1660a1c614ca89e4d35c440fbc58ed0c254fb0406a7165d3827fe6b0b990615995cd78816f746e985b405863eb7de0cabd085fe395ffb3c2739035913f40 languageName: node linkType: hard -"@aws-sdk/credential-provider-cognito-identity@npm:3.387.0": - version: 3.387.0 - resolution: "@aws-sdk/credential-provider-cognito-identity@npm:3.387.0" +"@aws-sdk/credential-provider-cognito-identity@npm:3.391.0": + version: 3.391.0 + resolution: "@aws-sdk/credential-provider-cognito-identity@npm:3.391.0" dependencies: - "@aws-sdk/client-cognito-identity": 3.387.0 - "@aws-sdk/types": 3.387.0 + "@aws-sdk/client-cognito-identity": 3.391.0 + "@aws-sdk/types": 3.391.0 "@smithy/property-provider": ^2.0.0 - "@smithy/types": ^2.1.0 + "@smithy/types": ^2.2.0 tslib: ^2.5.0 - checksum: 126a72f6b6515237aa128c22fe6b0fbdfefbfb39950da8686187f567fdbaa6cb18d41437b67e80bd66e4f5d2eae0018587585700e0950c2a639e04092f31445e + checksum: 3168dd179a3a4e3cd0e46afb3bea47d4e0e991a978911ed8610e93bd449c0529f7abff852d6adcb3e0a0ea1d17a84a1535f9ce935620764100e66ffd20d42640 languageName: node linkType: hard -"@aws-sdk/credential-provider-env@npm:3.387.0": - version: 3.387.0 - resolution: "@aws-sdk/credential-provider-env@npm:3.387.0" +"@aws-sdk/credential-provider-env@npm:3.391.0": + version: 3.391.0 + resolution: "@aws-sdk/credential-provider-env@npm:3.391.0" dependencies: - "@aws-sdk/types": 3.387.0 + "@aws-sdk/types": 3.391.0 "@smithy/property-provider": ^2.0.0 - "@smithy/types": ^2.1.0 + "@smithy/types": ^2.2.0 tslib: ^2.5.0 - checksum: 7cfa4c87224a8632741d8fd1c25384a59413581b94eb79e1547a4f9b3542c2b27559c097a09f747f4b1617a3c382795f17aebc290b5e35a8a5fae1f93736449f + checksum: 08c797255225d26181687a355f3771d126914e58ed3532087535f88a5185439c273d80530e40540ea142613835f52fb6fe076324d1c356d452a2247a0a17a274 languageName: node linkType: hard -"@aws-sdk/credential-provider-ini@npm:3.387.0": - version: 3.387.0 - resolution: "@aws-sdk/credential-provider-ini@npm:3.387.0" +"@aws-sdk/credential-provider-ini@npm:3.391.0": + version: 3.391.0 + resolution: "@aws-sdk/credential-provider-ini@npm:3.391.0" dependencies: - "@aws-sdk/credential-provider-env": 3.387.0 - "@aws-sdk/credential-provider-process": 3.387.0 - "@aws-sdk/credential-provider-sso": 3.387.0 - "@aws-sdk/credential-provider-web-identity": 3.387.0 - "@aws-sdk/types": 3.387.0 + "@aws-sdk/credential-provider-env": 3.391.0 + "@aws-sdk/credential-provider-process": 3.391.0 + "@aws-sdk/credential-provider-sso": 3.391.0 + "@aws-sdk/credential-provider-web-identity": 3.391.0 + "@aws-sdk/types": 3.391.0 "@smithy/credential-provider-imds": ^2.0.0 "@smithy/property-provider": ^2.0.0 "@smithy/shared-ini-file-loader": ^2.0.0 - "@smithy/types": ^2.1.0 + "@smithy/types": ^2.2.0 tslib: ^2.5.0 - checksum: 40e69ca6081d24016b0a56fab6cca9b6cd2d5ca2cf17ab2e3e99a99e351d78d86d38f5e424a6c26355d099c6e060e24c56ff3064b6b1fbc2cad9c89b1dd655c4 + checksum: d1832002b5c61a12bc9139db3a21b1baeaa358684118e518dceab08baccf8c134d32e0397f362357a4a3c468fdb74cc5978287b47d5414ec4fc5e14fe1a16a05 languageName: node linkType: hard -"@aws-sdk/credential-provider-node@npm:3.387.0, @aws-sdk/credential-provider-node@npm:^3.350.0": - version: 3.387.0 - resolution: "@aws-sdk/credential-provider-node@npm:3.387.0" +"@aws-sdk/credential-provider-node@npm:3.391.0, @aws-sdk/credential-provider-node@npm:^3.350.0": + version: 3.391.0 + resolution: "@aws-sdk/credential-provider-node@npm:3.391.0" dependencies: - "@aws-sdk/credential-provider-env": 3.387.0 - "@aws-sdk/credential-provider-ini": 3.387.0 - "@aws-sdk/credential-provider-process": 3.387.0 - "@aws-sdk/credential-provider-sso": 3.387.0 - "@aws-sdk/credential-provider-web-identity": 3.387.0 - "@aws-sdk/types": 3.387.0 + "@aws-sdk/credential-provider-env": 3.391.0 + "@aws-sdk/credential-provider-ini": 3.391.0 + "@aws-sdk/credential-provider-process": 3.391.0 + "@aws-sdk/credential-provider-sso": 3.391.0 + "@aws-sdk/credential-provider-web-identity": 3.391.0 + "@aws-sdk/types": 3.391.0 "@smithy/credential-provider-imds": ^2.0.0 "@smithy/property-provider": ^2.0.0 "@smithy/shared-ini-file-loader": ^2.0.0 - "@smithy/types": ^2.1.0 + "@smithy/types": ^2.2.0 tslib: ^2.5.0 - checksum: cdc3f29c6be304e39cb42f8b53227f607e8bb10d0fae542614d76b322e1a75718d70a4726d97cb24d6e3da51245b837dcb07cfaf34eb8600d290267c8987a06a + checksum: 92d1cdefdd3b11208ccac18373ea10fee78a3a71e45b8d06a1c5d8cff7e7738277075eeb166a7cdd31b7b6e2d3b28d50a0d17d38db622b392a095b86296a2649 languageName: node linkType: hard -"@aws-sdk/credential-provider-process@npm:3.387.0": - version: 3.387.0 - resolution: "@aws-sdk/credential-provider-process@npm:3.387.0" +"@aws-sdk/credential-provider-process@npm:3.391.0": + version: 3.391.0 + resolution: "@aws-sdk/credential-provider-process@npm:3.391.0" dependencies: - "@aws-sdk/types": 3.387.0 + "@aws-sdk/types": 3.391.0 "@smithy/property-provider": ^2.0.0 "@smithy/shared-ini-file-loader": ^2.0.0 - "@smithy/types": ^2.1.0 + "@smithy/types": ^2.2.0 tslib: ^2.5.0 - checksum: 90b5c902b659dd6d39b6e81503fa4587ed5bb7c4b6a7ecb648561e8ca7a82c621b0b65496855cba3e68d63e1c432e26d40c89c0194e5952f31b52cbd20bca8ae + checksum: 67237867667f5f73d7ebc13b92f80f2c9fe58fa764dc7a7f9bb0a6d2c7060c4de014b9b718d07d79744804189f8d39fbe863034d21eda6ecc61f1e551d991532 languageName: node linkType: hard -"@aws-sdk/credential-provider-sso@npm:3.387.0": - version: 3.387.0 - resolution: "@aws-sdk/credential-provider-sso@npm:3.387.0" +"@aws-sdk/credential-provider-sso@npm:3.391.0": + version: 3.391.0 + resolution: "@aws-sdk/credential-provider-sso@npm:3.391.0" dependencies: - "@aws-sdk/client-sso": 3.387.0 - "@aws-sdk/token-providers": 3.387.0 - "@aws-sdk/types": 3.387.0 + "@aws-sdk/client-sso": 3.391.0 + "@aws-sdk/token-providers": 3.391.0 + "@aws-sdk/types": 3.391.0 "@smithy/property-provider": ^2.0.0 "@smithy/shared-ini-file-loader": ^2.0.0 - "@smithy/types": ^2.1.0 + "@smithy/types": ^2.2.0 tslib: ^2.5.0 - checksum: 740d16079be50a43a23b59c10d44fabca3da67ee251f2b6975d7b58909554c66e0c8a40f6e9457d85f2997a63cf435bcbf82e53d9d2f7c7005f243dbe5305fff + checksum: c6dcb8ccf4644e72f6628ccc1f166585dd5594a2aa6ec0640f3f2b36b254a811482cd5291116ad9f3667b0e536bfd29048f7f366702926b58279af3a580ca3ec languageName: node linkType: hard -"@aws-sdk/credential-provider-web-identity@npm:3.387.0": - version: 3.387.0 - resolution: "@aws-sdk/credential-provider-web-identity@npm:3.387.0" +"@aws-sdk/credential-provider-web-identity@npm:3.391.0": + version: 3.391.0 + resolution: "@aws-sdk/credential-provider-web-identity@npm:3.391.0" dependencies: - "@aws-sdk/types": 3.387.0 + "@aws-sdk/types": 3.391.0 "@smithy/property-provider": ^2.0.0 - "@smithy/types": ^2.1.0 + "@smithy/types": ^2.2.0 tslib: ^2.5.0 - checksum: 47cf13e4275ee948750c78c147fe70a64698197ed86bc38c29269e745001775cf4261e763e6dd37235ed50adc5638add08b3c04d6bb9af1cf1ef7c79f0cd336b + checksum: e568db62051d848d801f4948ecbf5680926d342fce4c7a608df9f91e3c3ae20b6ff43647a2a24c52b711e324018b0dc02c461d36f679987f6acf9985bc76d737 languageName: node linkType: hard "@aws-sdk/credential-providers@npm:^3.350.0": - version: 3.387.0 - resolution: "@aws-sdk/credential-providers@npm:3.387.0" + version: 3.391.0 + resolution: "@aws-sdk/credential-providers@npm:3.391.0" dependencies: - "@aws-sdk/client-cognito-identity": 3.387.0 - "@aws-sdk/client-sso": 3.387.0 - "@aws-sdk/client-sts": 3.387.0 - "@aws-sdk/credential-provider-cognito-identity": 3.387.0 - "@aws-sdk/credential-provider-env": 3.387.0 - "@aws-sdk/credential-provider-ini": 3.387.0 - "@aws-sdk/credential-provider-node": 3.387.0 - "@aws-sdk/credential-provider-process": 3.387.0 - "@aws-sdk/credential-provider-sso": 3.387.0 - "@aws-sdk/credential-provider-web-identity": 3.387.0 - "@aws-sdk/types": 3.387.0 + "@aws-sdk/client-cognito-identity": 3.391.0 + "@aws-sdk/client-sso": 3.391.0 + "@aws-sdk/client-sts": 3.391.0 + "@aws-sdk/credential-provider-cognito-identity": 3.391.0 + "@aws-sdk/credential-provider-env": 3.391.0 + "@aws-sdk/credential-provider-ini": 3.391.0 + "@aws-sdk/credential-provider-node": 3.391.0 + "@aws-sdk/credential-provider-process": 3.391.0 + "@aws-sdk/credential-provider-sso": 3.391.0 + "@aws-sdk/credential-provider-web-identity": 3.391.0 + "@aws-sdk/types": 3.391.0 "@smithy/credential-provider-imds": ^2.0.0 "@smithy/property-provider": ^2.0.0 - "@smithy/types": ^2.1.0 + "@smithy/types": ^2.2.0 tslib: ^2.5.0 - checksum: 761260e185f932cddc523d3e1491497cf3ff147496af354aed2ddd43da5a86218dbc2eccec00a71c166070dd24261795c2eb227ab986761478bd138ccb3fa9af + checksum: d090648d10c2e0e602234faa5e6d26e0834a5cc2c6d26df52d79fbde6733fe8dfbf1fb89e68449848a2078e643ac587ff57ccd157ea7a3324c419033333b1b3a languageName: node linkType: hard @@ -1045,33 +1045,33 @@ __metadata: linkType: hard "@aws-sdk/lib-storage@npm:^3.350.0": - version: 3.387.0 - resolution: "@aws-sdk/lib-storage@npm:3.387.0" + version: 3.391.0 + resolution: "@aws-sdk/lib-storage@npm:3.391.0" dependencies: "@smithy/abort-controller": ^2.0.1 - "@smithy/middleware-endpoint": ^2.0.2 - "@smithy/smithy-client": ^2.0.2 + "@smithy/middleware-endpoint": ^2.0.3 + "@smithy/smithy-client": ^2.0.3 buffer: 5.6.0 events: 3.3.0 stream-browserify: 3.0.0 tslib: ^2.5.0 peerDependencies: "@aws-sdk/client-s3": ^3.0.0 - checksum: aa753c2e6f9db051fe893ab2352a3c7c84ca53089ba837b972e1ae5911af71bb978002ea07ed59f673b3773fe3d1fbd2ce2fff251b671f672655cfbf9b48626e + checksum: 2447a727a003c78e456ebfaedfdb5724b60a1ec6b88f726a11bf65af133b6c80c3a0e652571869c44226c2e36094361ce32db9981bbcb840c77b1f8c1f85c236 languageName: node linkType: hard -"@aws-sdk/middleware-bucket-endpoint@npm:3.387.0": - version: 3.387.0 - resolution: "@aws-sdk/middleware-bucket-endpoint@npm:3.387.0" +"@aws-sdk/middleware-bucket-endpoint@npm:3.391.0": + version: 3.391.0 + resolution: "@aws-sdk/middleware-bucket-endpoint@npm:3.391.0" dependencies: - "@aws-sdk/types": 3.387.0 + "@aws-sdk/types": 3.391.0 "@aws-sdk/util-arn-parser": 3.310.0 - "@smithy/protocol-http": ^2.0.2 - "@smithy/types": ^2.1.0 + "@smithy/protocol-http": ^2.0.3 + "@smithy/types": ^2.2.0 "@smithy/util-config-provider": ^2.0.0 tslib: ^2.5.0 - checksum: 61b134bb6ba13d8007f1e8bd9a9c4ab4041c66fa184deaf7a0796297c218f14eb175f957038577909ac94e16fdf97d115f698a2d629ce1d4122593fba86f192e + checksum: dc2d48f091565ebcc957ee5da467f35edef4b35f42cfdbb526b2f0f00c4d983c7d59587d31994d92d6f054ecb772d46dde526a34165dd86aaec03dc7d4ae9e33 languageName: node linkType: hard @@ -1088,115 +1088,115 @@ __metadata: languageName: node linkType: hard -"@aws-sdk/middleware-expect-continue@npm:3.387.0": - version: 3.387.0 - resolution: "@aws-sdk/middleware-expect-continue@npm:3.387.0" +"@aws-sdk/middleware-expect-continue@npm:3.391.0": + version: 3.391.0 + resolution: "@aws-sdk/middleware-expect-continue@npm:3.391.0" dependencies: - "@aws-sdk/types": 3.387.0 - "@smithy/protocol-http": ^2.0.2 - "@smithy/types": ^2.1.0 + "@aws-sdk/types": 3.391.0 + "@smithy/protocol-http": ^2.0.3 + "@smithy/types": ^2.2.0 tslib: ^2.5.0 - checksum: 48644c0809702b9b82c9d43bad3a3919868295914550d5c0ce72dbefa39dd24daf4aa02b7a431e1856e7bff3c3bff93ea1d06936f7a20213c1ddbea14cf6b1ad + checksum: 7b093e3b8caf60d0f24732fe06af8882b1f9679bc357c450fbbcfc4a0658521c5d1ed853f9b81dc658429e4eb3c84c9bc06f972680c8603be7726adbb4dc7daa languageName: node linkType: hard -"@aws-sdk/middleware-flexible-checksums@npm:3.387.0": - version: 3.387.0 - resolution: "@aws-sdk/middleware-flexible-checksums@npm:3.387.0" +"@aws-sdk/middleware-flexible-checksums@npm:3.391.0": + version: 3.391.0 + resolution: "@aws-sdk/middleware-flexible-checksums@npm:3.391.0" dependencies: "@aws-crypto/crc32": 3.0.0 "@aws-crypto/crc32c": 3.0.0 - "@aws-sdk/types": 3.387.0 + "@aws-sdk/types": 3.391.0 "@smithy/is-array-buffer": ^2.0.0 - "@smithy/protocol-http": ^2.0.2 - "@smithy/types": ^2.1.0 + "@smithy/protocol-http": ^2.0.3 + "@smithy/types": ^2.2.0 "@smithy/util-utf8": ^2.0.0 tslib: ^2.5.0 - checksum: 056a4558750f3c6bf676154778de813bbed2897d5a79efbe142ea6f99643fdf98b4367f602bb61a3cecd5e22ea2b680b842a0cfc5cf8f828d936626d8d4126ea + checksum: 52f98aea34d4acfab3566513021e7412542c33a6118b591a609eef0fb16bb128e971dff0dc97bb9214fda914d3fd3251924b1959b26c6eab493850b3b2d02546 languageName: node linkType: hard -"@aws-sdk/middleware-host-header@npm:3.387.0": - version: 3.387.0 - resolution: "@aws-sdk/middleware-host-header@npm:3.387.0" +"@aws-sdk/middleware-host-header@npm:3.391.0": + version: 3.391.0 + resolution: "@aws-sdk/middleware-host-header@npm:3.391.0" dependencies: - "@aws-sdk/types": 3.387.0 - "@smithy/protocol-http": ^2.0.2 - "@smithy/types": ^2.1.0 + "@aws-sdk/types": 3.391.0 + "@smithy/protocol-http": ^2.0.3 + "@smithy/types": ^2.2.0 tslib: ^2.5.0 - checksum: 91fdffa0051d1c426533170b1770c174abffc822b6e8e0cf0b850536a32c9fdea3241279494e2511232a46260b2320546bb9a59b2d4ee05a72f3cedabe6fa1a1 + checksum: c8dc6fab8125da76b3f98192d10a15351f2b2afb17a5e9770e7b4039b1f80144c5ff2aaea5cfecdb94890df13fa700c51452e88f2ad2c1eb45445a1d5448ca4a languageName: node linkType: hard -"@aws-sdk/middleware-location-constraint@npm:3.387.0": - version: 3.387.0 - resolution: "@aws-sdk/middleware-location-constraint@npm:3.387.0" +"@aws-sdk/middleware-location-constraint@npm:3.391.0": + version: 3.391.0 + resolution: "@aws-sdk/middleware-location-constraint@npm:3.391.0" dependencies: - "@aws-sdk/types": 3.387.0 - "@smithy/types": ^2.1.0 + "@aws-sdk/types": 3.391.0 + "@smithy/types": ^2.2.0 tslib: ^2.5.0 - checksum: 4027555e3c0ba089711a93ce0ca0ab4527052ff67fe7d390b59d305f238109b9f4aec63ac1e51b6e5a88026c2417967dc7091178061d096fbb3ee23ca2947555 + checksum: ce945bc089f58e01b08ac5dbe1e55d3ca9a2695b039bbe1bd9ecc21afc28465a2fabaf55eb21fb6b64ae5298ff94b29ecc33f61e564bcfa733096323d97f0855 languageName: node linkType: hard -"@aws-sdk/middleware-logger@npm:3.387.0": - version: 3.387.0 - resolution: "@aws-sdk/middleware-logger@npm:3.387.0" +"@aws-sdk/middleware-logger@npm:3.391.0": + version: 3.391.0 + resolution: "@aws-sdk/middleware-logger@npm:3.391.0" dependencies: - "@aws-sdk/types": 3.387.0 - "@smithy/types": ^2.1.0 + "@aws-sdk/types": 3.391.0 + "@smithy/types": ^2.2.0 tslib: ^2.5.0 - checksum: 75812390856559eaf9e8259f3d335c97268783d2e175dbd4568271e8f321a7a34754fcfcff0f70726a751c0418f6787ddbd7f1ebb3b644530e743edb5da63c2b + checksum: 81955beeadfef9e72df6852b9b5b50b79e9358ed4df672f6763ec29a706128cd176a8a02727e225828c6170b325255b14047db421560889e9d5c9e2860f74b02 languageName: node linkType: hard -"@aws-sdk/middleware-recursion-detection@npm:3.387.0": - version: 3.387.0 - resolution: "@aws-sdk/middleware-recursion-detection@npm:3.387.0" +"@aws-sdk/middleware-recursion-detection@npm:3.391.0": + version: 3.391.0 + resolution: "@aws-sdk/middleware-recursion-detection@npm:3.391.0" dependencies: - "@aws-sdk/types": 3.387.0 - "@smithy/protocol-http": ^2.0.2 - "@smithy/types": ^2.1.0 + "@aws-sdk/types": 3.391.0 + "@smithy/protocol-http": ^2.0.3 + "@smithy/types": ^2.2.0 tslib: ^2.5.0 - checksum: dd6ed9eb8969181f3adf5820f66db38ab544fda03f44bec87e6efdb194f01184094dc2d3ce150e9f045a75decb99e37a9a1dc8b37a78f8722caae8367c9db8d9 + checksum: 3eab16f976594dd25260a6852f207ab83fff27866acef67019dae017d1326af5cf948bd5d8eb5f681add1c9e663adfef1235483dae7208cfa38872b92aef2f57 languageName: node linkType: hard -"@aws-sdk/middleware-sdk-s3@npm:3.387.0": - version: 3.387.0 - resolution: "@aws-sdk/middleware-sdk-s3@npm:3.387.0" +"@aws-sdk/middleware-sdk-s3@npm:3.391.0": + version: 3.391.0 + resolution: "@aws-sdk/middleware-sdk-s3@npm:3.391.0" dependencies: - "@aws-sdk/types": 3.387.0 + "@aws-sdk/types": 3.391.0 "@aws-sdk/util-arn-parser": 3.310.0 - "@smithy/protocol-http": ^2.0.2 - "@smithy/types": ^2.1.0 + "@smithy/protocol-http": ^2.0.3 + "@smithy/types": ^2.2.0 tslib: ^2.5.0 - checksum: 674ebd73ed89f8375b5a7f15135a65e61736b8bc58f076504a050e9cb679da867ba256e6dc8c46b2a403c3a2fbed0667e40bb3b40bf79bc54a669650f09d97ac + checksum: da2879718b8fa0c96518f2f9745dd7182e27a56905bd9ac74b62197884d9fc1dce7242d7d709637fb1e9d13cfd70a3904127530217f020d5a44e2be0b65d316d languageName: node linkType: hard -"@aws-sdk/middleware-sdk-sqs@npm:3.387.0": - version: 3.387.0 - resolution: "@aws-sdk/middleware-sdk-sqs@npm:3.387.0" +"@aws-sdk/middleware-sdk-sqs@npm:3.391.0": + version: 3.391.0 + resolution: "@aws-sdk/middleware-sdk-sqs@npm:3.391.0" dependencies: - "@aws-sdk/types": 3.387.0 - "@smithy/types": ^2.1.0 + "@aws-sdk/types": 3.391.0 + "@smithy/types": ^2.2.0 "@smithy/util-hex-encoding": ^2.0.0 "@smithy/util-utf8": ^2.0.0 tslib: ^2.5.0 - checksum: fa734414df1c597c8fbcdff5131cfb240682a99d6d2302096040a05ff64742383f6812e8e41a7b1d32421b5556a138fd9241bced7eb35a29bcbca5376bb793b1 + checksum: 6b9fd7572e90d80eacb99246d6d84240def247505ac381720266fed278a25c28addc67c5a2660114b763457cc48caa72ccd5137d5c9b504fce331e00da6e2a8c languageName: node linkType: hard -"@aws-sdk/middleware-sdk-sts@npm:3.387.0": - version: 3.387.0 - resolution: "@aws-sdk/middleware-sdk-sts@npm:3.387.0" +"@aws-sdk/middleware-sdk-sts@npm:3.391.0": + version: 3.391.0 + resolution: "@aws-sdk/middleware-sdk-sts@npm:3.391.0" dependencies: - "@aws-sdk/middleware-signing": 3.387.0 - "@aws-sdk/types": 3.387.0 - "@smithy/types": ^2.1.0 + "@aws-sdk/middleware-signing": 3.391.0 + "@aws-sdk/types": 3.391.0 + "@smithy/types": ^2.2.0 tslib: ^2.5.0 - checksum: b9d5e4af2e10f980ef19add7eccd7f04eb5e42987c238acb17093b1d4239ae3430fb25e1c34ef915cd3420a2e93d59cf6570c1f9275bf5345733b1b030876cb5 + checksum: dd6f1572ea4306f6add42902743eaa4325ad47e7d497961578d104ae9c96c0bca10521ab2c7e723896ccb85f14ec38d866218c7582a6acd394df75ff5fc8ee24 languageName: node linkType: hard @@ -1210,42 +1210,42 @@ __metadata: languageName: node linkType: hard -"@aws-sdk/middleware-signing@npm:3.387.0": - version: 3.387.0 - resolution: "@aws-sdk/middleware-signing@npm:3.387.0" +"@aws-sdk/middleware-signing@npm:3.391.0": + version: 3.391.0 + resolution: "@aws-sdk/middleware-signing@npm:3.391.0" dependencies: - "@aws-sdk/types": 3.387.0 + "@aws-sdk/types": 3.391.0 "@smithy/property-provider": ^2.0.0 - "@smithy/protocol-http": ^2.0.2 + "@smithy/protocol-http": ^2.0.3 "@smithy/signature-v4": ^2.0.0 - "@smithy/types": ^2.1.0 + "@smithy/types": ^2.2.0 "@smithy/util-middleware": ^2.0.0 tslib: ^2.5.0 - checksum: 3553748d92a64232df572f2b56d122943db9520d31b224f263ecce5711368de9d8bddc51facde9bf8a7d1075c3c381a96e65d4ad8d7f14f097d8f7e484c712e4 + checksum: aa76b0aeac670cffc472f7d7197edef2656d155bab38ebcfdb17f7573bdd23ecbf2cb29cbcf97cd15643bdf5cf7ed4cf5fb020db598e42e81e6502140669057e languageName: node linkType: hard -"@aws-sdk/middleware-ssec@npm:3.387.0": - version: 3.387.0 - resolution: "@aws-sdk/middleware-ssec@npm:3.387.0" +"@aws-sdk/middleware-ssec@npm:3.391.0": + version: 3.391.0 + resolution: "@aws-sdk/middleware-ssec@npm:3.391.0" dependencies: - "@aws-sdk/types": 3.387.0 - "@smithy/types": ^2.1.0 + "@aws-sdk/types": 3.391.0 + "@smithy/types": ^2.2.0 tslib: ^2.5.0 - checksum: 362b2c5faf5a606734d72104071a6a5aaaab7ecb8eb36507f1db32e22f842898fa589916b59e239f8cbbccdbf4743c978ad2fab2e434d14f3397f71086df31f4 + checksum: c6c0c7bc2210d22ef76d4c9725c99fb4b2debe750463077be077709adfaace851aadafb307b5d24ae0641bb67068f5fe24f1c15a72ed686b561f00281263b8b7 languageName: node linkType: hard -"@aws-sdk/middleware-user-agent@npm:3.387.0": - version: 3.387.0 - resolution: "@aws-sdk/middleware-user-agent@npm:3.387.0" +"@aws-sdk/middleware-user-agent@npm:3.391.0": + version: 3.391.0 + resolution: "@aws-sdk/middleware-user-agent@npm:3.391.0" dependencies: - "@aws-sdk/types": 3.387.0 - "@aws-sdk/util-endpoints": 3.387.0 - "@smithy/protocol-http": ^2.0.2 - "@smithy/types": ^2.1.0 + "@aws-sdk/types": 3.391.0 + "@aws-sdk/util-endpoints": 3.391.0 + "@smithy/protocol-http": ^2.0.3 + "@smithy/types": ^2.2.0 tslib: ^2.5.0 - checksum: 54cb1ddbd743bf70a28c1eebd6d1bc0adfad79b2bff0553737d238de01a83e11c9130c38526d4236457fa124d6024fd0c09607d796808dfe43821c75387d8fba + checksum: 33cda72f937173c6770976c233d627d587d2c943a70126b6eebd6225fb7ee982ad96e0c3125bb231b4b6f5bbd0da392ebded1149194aa952fe325d2cd993386e languageName: node linkType: hard @@ -1293,21 +1293,21 @@ __metadata: languageName: node linkType: hard -"@aws-sdk/signature-v4-multi-region@npm:3.387.0": - version: 3.387.0 - resolution: "@aws-sdk/signature-v4-multi-region@npm:3.387.0" +"@aws-sdk/signature-v4-multi-region@npm:3.391.0": + version: 3.391.0 + resolution: "@aws-sdk/signature-v4-multi-region@npm:3.391.0" dependencies: - "@aws-sdk/types": 3.387.0 - "@smithy/protocol-http": ^2.0.2 + "@aws-sdk/types": 3.391.0 + "@smithy/protocol-http": ^2.0.3 "@smithy/signature-v4": ^2.0.0 - "@smithy/types": ^2.1.0 + "@smithy/types": ^2.2.0 tslib: ^2.5.0 peerDependencies: "@aws-sdk/signature-v4-crt": ^3.118.0 peerDependenciesMeta: "@aws-sdk/signature-v4-crt": optional: true - checksum: a520eb8a564edd12169addef6c449c236e6c86a657f7e1cda0331eff8adfa925e1ff4a201f4adbedd6f078fe5ceb89f933a268e5c4b61c92ff60ae47132ff5ae + checksum: 3c3533b317603e267d19a0b1a90ed6da464cf6b6d7459be8b5e1f01b0fe38fcd3cd5d8c62d0e4b5a279786aca981a5fe1dc609fc55b9892485ee0c1e335d3d46 languageName: node linkType: hard @@ -1327,16 +1327,46 @@ __metadata: languageName: node linkType: hard -"@aws-sdk/token-providers@npm:3.387.0": - version: 3.387.0 - resolution: "@aws-sdk/token-providers@npm:3.387.0" +"@aws-sdk/token-providers@npm:3.391.0": + version: 3.391.0 + resolution: "@aws-sdk/token-providers@npm:3.391.0" dependencies: - "@aws-sdk/types": 3.387.0 + "@aws-crypto/sha256-browser": 3.0.0 + "@aws-crypto/sha256-js": 3.0.0 + "@aws-sdk/middleware-host-header": 3.391.0 + "@aws-sdk/middleware-logger": 3.391.0 + "@aws-sdk/middleware-recursion-detection": 3.391.0 + "@aws-sdk/middleware-user-agent": 3.391.0 + "@aws-sdk/types": 3.391.0 + "@aws-sdk/util-endpoints": 3.391.0 + "@aws-sdk/util-user-agent-browser": 3.391.0 + "@aws-sdk/util-user-agent-node": 3.391.0 + "@smithy/config-resolver": ^2.0.3 + "@smithy/fetch-http-handler": ^2.0.3 + "@smithy/hash-node": ^2.0.3 + "@smithy/invalid-dependency": ^2.0.3 + "@smithy/middleware-content-length": ^2.0.3 + "@smithy/middleware-endpoint": ^2.0.3 + "@smithy/middleware-retry": ^2.0.3 + "@smithy/middleware-serde": ^2.0.3 + "@smithy/middleware-stack": ^2.0.0 + "@smithy/node-config-provider": ^2.0.3 + "@smithy/node-http-handler": ^2.0.3 "@smithy/property-provider": ^2.0.0 + "@smithy/protocol-http": ^2.0.3 "@smithy/shared-ini-file-loader": ^2.0.0 - "@smithy/types": ^2.1.0 + "@smithy/smithy-client": ^2.0.3 + "@smithy/types": ^2.2.0 + "@smithy/url-parser": ^2.0.3 + "@smithy/util-base64": ^2.0.0 + "@smithy/util-body-length-browser": ^2.0.0 + "@smithy/util-body-length-node": ^2.0.0 + "@smithy/util-defaults-mode-browser": ^2.0.3 + "@smithy/util-defaults-mode-node": ^2.0.3 + "@smithy/util-retry": ^2.0.0 + "@smithy/util-utf8": ^2.0.0 tslib: ^2.5.0 - checksum: dffbaa98da3bd30fdedab88093d3ae94b4fdad1dd12b30fd5dbf7cfb01d1e219e3f5abe403ca71514bfa1f92818dde97a6d9c9d2cda35f2cbd43882750017bc2 + checksum: 4d929e006519fb25ee337a459f6e0dca6aa0a1e1a839605d8a3857b37b7aa77a032a6810a65023b2802827bf3190940dbee1e585bf86edfb2541be753bea1989 languageName: node linkType: hard @@ -1350,13 +1380,13 @@ __metadata: languageName: node linkType: hard -"@aws-sdk/types@npm:3.387.0, @aws-sdk/types@npm:^3.222.0, @aws-sdk/types@npm:^3.347.0": - version: 3.387.0 - resolution: "@aws-sdk/types@npm:3.387.0" +"@aws-sdk/types@npm:3.391.0, @aws-sdk/types@npm:^3.222.0, @aws-sdk/types@npm:^3.347.0": + version: 3.391.0 + resolution: "@aws-sdk/types@npm:3.391.0" dependencies: - "@smithy/types": ^2.1.0 + "@smithy/types": ^2.2.0 tslib: ^2.5.0 - checksum: 39c5c3eea4cd8705c0c9dafa187ac6e14585a1bb6d162bbda8dc3ea5522020302ccd3ff7c8b425225c625d2b83ae6e6f6b71f621da790830a8a55ed5643197ec + checksum: 3539807ba0d515e0788da7e234c83578b761cf02b4bc2ede04755a39e44cc22dfc2edd0a48d333a090dc87c0f540cef957cd3c8009a12f38017438b50563fcbb languageName: node linkType: hard @@ -1390,13 +1420,13 @@ __metadata: languageName: node linkType: hard -"@aws-sdk/util-endpoints@npm:3.387.0": - version: 3.387.0 - resolution: "@aws-sdk/util-endpoints@npm:3.387.0" +"@aws-sdk/util-endpoints@npm:3.391.0": + version: 3.391.0 + resolution: "@aws-sdk/util-endpoints@npm:3.391.0" dependencies: - "@aws-sdk/types": 3.387.0 + "@aws-sdk/types": 3.391.0 tslib: ^2.5.0 - checksum: 15c3250f096ca4ed7a832294cc3b609e62004f8888781cbd5ee907bd325bb5b999867aa7c8fdd5b806e92424f2561f5dd8ae3ebbb876044289d36163180fa2a5 + checksum: fa2a096d21ea2944e5c0a87e22c78f84c3383941a8b85b7e48ccc9c2a623a458f0e5de8150eede33bbe37b3a7e93d2089824bd1dc4c3d3d49c77b45ffcb412d9 languageName: node linkType: hard @@ -1448,32 +1478,32 @@ __metadata: languageName: node linkType: hard -"@aws-sdk/util-user-agent-browser@npm:3.387.0": - version: 3.387.0 - resolution: "@aws-sdk/util-user-agent-browser@npm:3.387.0" +"@aws-sdk/util-user-agent-browser@npm:3.391.0": + version: 3.391.0 + resolution: "@aws-sdk/util-user-agent-browser@npm:3.391.0" dependencies: - "@aws-sdk/types": 3.387.0 - "@smithy/types": ^2.1.0 + "@aws-sdk/types": 3.391.0 + "@smithy/types": ^2.2.0 bowser: ^2.11.0 tslib: ^2.5.0 - checksum: a7ab9c2d98c4e00f7ac8aab8f08e8f0472d026573c0790aa6036557de0dae5c6e89a3989e00937725badbefcfdfd4fa5e5a996e5e11a043a3d594b5956cfae2c + checksum: 2cc35bebec3efce878e2ea30571e72d670ed815cf3655928063943f73b1302ad485fd40dd068dfb93e49e9f7283eca2bdc4a13a22ee77fa7fd1c1fd95298abb1 languageName: node linkType: hard -"@aws-sdk/util-user-agent-node@npm:3.387.0": - version: 3.387.0 - resolution: "@aws-sdk/util-user-agent-node@npm:3.387.0" +"@aws-sdk/util-user-agent-node@npm:3.391.0": + version: 3.391.0 + resolution: "@aws-sdk/util-user-agent-node@npm:3.391.0" dependencies: - "@aws-sdk/types": 3.387.0 - "@smithy/node-config-provider": ^2.0.2 - "@smithy/types": ^2.1.0 + "@aws-sdk/types": 3.391.0 + "@smithy/node-config-provider": ^2.0.3 + "@smithy/types": ^2.2.0 tslib: ^2.5.0 peerDependencies: aws-crt: ">=1.0.0" peerDependenciesMeta: aws-crt: optional: true - checksum: abe3cf2d058ff0a907780ee2100b0d5805d7878c434115cda645d2fe0a57226dd7cf86c2d795ef75d8062914d89c8d71752789b355317586417b92482e05c98f + checksum: 2e59bea8dee6e2a4aaaeec61fbe5bfacb6c3dcebfc2d9e624dc7039855c5793f5d7b064eb08c3a066a954c948ba1f6b6c93c7cf14ceb6713d45fdce110f6a928 languageName: node linkType: hard @@ -14594,13 +14624,13 @@ __metadata: languageName: node linkType: hard -"@smithy/abort-controller@npm:^2.0.1, @smithy/abort-controller@npm:^2.0.2": - version: 2.0.2 - resolution: "@smithy/abort-controller@npm:2.0.2" +"@smithy/abort-controller@npm:^2.0.1, @smithy/abort-controller@npm:^2.0.4": + version: 2.0.4 + resolution: "@smithy/abort-controller@npm:2.0.4" dependencies: - "@smithy/types": ^2.1.0 + "@smithy/types": ^2.2.1 tslib: ^2.5.0 - checksum: 68a331dc59decd842b2eecae3ff8705340d9504048a0e5af31286e9505e2473f81d96bfb2dd395161529adee5413bf6aaed7e264debd0862113325c85e0771da + checksum: b1121708af27d151535bdd997d99a7c71ceadc057f77352cfd09cccfb5a92bc05612370c78a8642bfcbb22dff5e6b9a5c38e5856b9f48bd0fb5cebdb9a4bb75e languageName: node linkType: hard @@ -14623,141 +14653,141 @@ __metadata: languageName: node linkType: hard -"@smithy/config-resolver@npm:^2.0.2": - version: 2.0.2 - resolution: "@smithy/config-resolver@npm:2.0.2" +"@smithy/config-resolver@npm:^2.0.3, @smithy/config-resolver@npm:^2.0.4": + version: 2.0.4 + resolution: "@smithy/config-resolver@npm:2.0.4" dependencies: - "@smithy/types": ^2.1.0 + "@smithy/types": ^2.2.1 "@smithy/util-config-provider": ^2.0.0 "@smithy/util-middleware": ^2.0.0 tslib: ^2.5.0 - checksum: deb7ecab3d3f2ce57304d99605e55739c94356105c8106c8ca9bb5c0fc329e2b4153788a12bb8600187c51645b9a5be799571c8e380cc4458d110c37f127c75b + checksum: a153a6baf80f7f17439312fea5f379abbcb0778313897e3ab8d5c4eb24496c2ce1d6c1005764eb802221fdb57814fb6a558f26e6cb02b80cdd1af9a83bda7480 languageName: node linkType: hard -"@smithy/credential-provider-imds@npm:^2.0.0, @smithy/credential-provider-imds@npm:^2.0.2": - version: 2.0.2 - resolution: "@smithy/credential-provider-imds@npm:2.0.2" +"@smithy/credential-provider-imds@npm:^2.0.0, @smithy/credential-provider-imds@npm:^2.0.4": + version: 2.0.4 + resolution: "@smithy/credential-provider-imds@npm:2.0.4" dependencies: - "@smithy/node-config-provider": ^2.0.2 - "@smithy/property-provider": ^2.0.2 - "@smithy/types": ^2.1.0 - "@smithy/url-parser": ^2.0.2 + "@smithy/node-config-provider": ^2.0.4 + "@smithy/property-provider": ^2.0.4 + "@smithy/types": ^2.2.1 + "@smithy/url-parser": ^2.0.4 tslib: ^2.5.0 - checksum: 519fd53a74e7fdb4a5e39bf4d0554983231919d80e2b9e324976a14ec41d4e0e4de6c9272af10820c220810ba30a9803a901c677b9994b8893aded10e1b36505 + checksum: 72c208836e1b7ee3a1466be1f41691c97a7ede67a16d902475cd46f7b732334703a96dc74e246ba350ea88811bc96f34e3a9f3290f3510d2004b9b004dba7ac7 languageName: node linkType: hard -"@smithy/eventstream-codec@npm:^2.0.1, @smithy/eventstream-codec@npm:^2.0.2": - version: 2.0.2 - resolution: "@smithy/eventstream-codec@npm:2.0.2" +"@smithy/eventstream-codec@npm:^2.0.1, @smithy/eventstream-codec@npm:^2.0.4": + version: 2.0.4 + resolution: "@smithy/eventstream-codec@npm:2.0.4" dependencies: "@aws-crypto/crc32": 3.0.0 - "@smithy/types": ^2.1.0 + "@smithy/types": ^2.2.1 "@smithy/util-hex-encoding": ^2.0.0 tslib: ^2.5.0 - checksum: aa9136264c1f9a3bc8b9bc175d28b10d0ce72377593b4ed32d11b1753723a88e6305991ab0c6822d986f31edb914355df6bec8fb65ffe1f66c2ce6dab0768668 + checksum: 7bd5ac65de1ef611939a413c6cf6c3bb583c89cae521f0b202cd167a95d748446d5a829dc31285e9b5c9bd0d1cce58c288e5c1a7957cb26a433e34a64b8c4676 languageName: node linkType: hard -"@smithy/eventstream-serde-browser@npm:^2.0.2": - version: 2.0.2 - resolution: "@smithy/eventstream-serde-browser@npm:2.0.2" +"@smithy/eventstream-serde-browser@npm:^2.0.3": + version: 2.0.4 + resolution: "@smithy/eventstream-serde-browser@npm:2.0.4" dependencies: - "@smithy/eventstream-serde-universal": ^2.0.2 - "@smithy/types": ^2.1.0 + "@smithy/eventstream-serde-universal": ^2.0.4 + "@smithy/types": ^2.2.1 tslib: ^2.5.0 - checksum: b21c97d9e02fe3ba9110cbea35f674b3746c36eafde2874e878fcea03f7c1d1f34f38797df38b8b04dcc19576aa9f568e3e241f79aac696169941c4f44132d08 + checksum: 7795f1de75d6173198fb6698d24962a2cd5f6c7f796ff24be048b42821457287923e6542cd4d77179b437089408e5924a0ffb7e2b5473f781b5f7c8c7829e0b6 languageName: node linkType: hard -"@smithy/eventstream-serde-config-resolver@npm:^2.0.2": - version: 2.0.2 - resolution: "@smithy/eventstream-serde-config-resolver@npm:2.0.2" +"@smithy/eventstream-serde-config-resolver@npm:^2.0.3": + version: 2.0.4 + resolution: "@smithy/eventstream-serde-config-resolver@npm:2.0.4" dependencies: - "@smithy/types": ^2.1.0 + "@smithy/types": ^2.2.1 tslib: ^2.5.0 - checksum: 707e6e39e2ccb832db06f82bbf96c655548052458bf3f8b8b00e32461747b1fab1be9ec60a5ddbff8770e48b2cd153277bc81b203765d66b78fc2f76252ce8b9 + checksum: d52392e42285aefa3874385111d30e99cdde0c35dfbc857439ccb7c03badcc47fe0b75124f369c6f4f4a0071ec88b3fa9266c0167238c0093bbd938461006782 languageName: node linkType: hard -"@smithy/eventstream-serde-node@npm:^2.0.2": - version: 2.0.2 - resolution: "@smithy/eventstream-serde-node@npm:2.0.2" +"@smithy/eventstream-serde-node@npm:^2.0.3": + version: 2.0.4 + resolution: "@smithy/eventstream-serde-node@npm:2.0.4" dependencies: - "@smithy/eventstream-serde-universal": ^2.0.2 - "@smithy/types": ^2.1.0 + "@smithy/eventstream-serde-universal": ^2.0.4 + "@smithy/types": ^2.2.1 tslib: ^2.5.0 - checksum: dfda607f0d76098616341c1e6f3012242c58f1d3211a464631f4d337f7113bce7f0380fe5cdf5b6e4e391beb54562d1a96494ca8d2af847f1f13264f362365aa + checksum: 932dfa9b2e57e29f139479a5d177794d19a2fa807aa2f1b52fd5d50eb1d6abe53b289940384299f825c8f6e3be7d1b252b20f7ad711d9230d0f0606b13d9e1ee languageName: node linkType: hard -"@smithy/eventstream-serde-universal@npm:^2.0.2": - version: 2.0.2 - resolution: "@smithy/eventstream-serde-universal@npm:2.0.2" +"@smithy/eventstream-serde-universal@npm:^2.0.4": + version: 2.0.4 + resolution: "@smithy/eventstream-serde-universal@npm:2.0.4" dependencies: - "@smithy/eventstream-codec": ^2.0.2 - "@smithy/types": ^2.1.0 + "@smithy/eventstream-codec": ^2.0.4 + "@smithy/types": ^2.2.1 tslib: ^2.5.0 - checksum: 887d03832126054fdfd6426ee3153eec54ecfcddeb04c63c69f6f1fcc23e0b8af737dce7c8ae07ca456f1e0be63614498280b77ff5c919793a0633b1d7d11a2c + checksum: 015a781c745aa371e4c7ad92da66939d46ac1a5864d14317e4c47c9f9ec3fac032defce3545fdfd144422cacfa0e4272c68f45b90a8da50769a25041a2482b9d languageName: node linkType: hard -"@smithy/fetch-http-handler@npm:^2.0.2": - version: 2.0.2 - resolution: "@smithy/fetch-http-handler@npm:2.0.2" +"@smithy/fetch-http-handler@npm:^2.0.3, @smithy/fetch-http-handler@npm:^2.0.4": + version: 2.0.4 + resolution: "@smithy/fetch-http-handler@npm:2.0.4" dependencies: - "@smithy/protocol-http": ^2.0.2 - "@smithy/querystring-builder": ^2.0.2 - "@smithy/types": ^2.1.0 + "@smithy/protocol-http": ^2.0.4 + "@smithy/querystring-builder": ^2.0.4 + "@smithy/types": ^2.2.1 "@smithy/util-base64": ^2.0.0 tslib: ^2.5.0 - checksum: 2c7c97c02bc347b420c51a052b97884e70cfbed25475e68d5a1e8f46b1b0873d727c4989b4a71aaa5e5e1ba055c423f989f5b01bf105176580acc9d5cc80eb72 + checksum: e1f68057af85dc03762a1b6afc661224c97ccf84efae51bb3bd7dae97624e0c85added8d4595bf970d8f6262ae5ee034f461487c2a8207678e03b7d0c1b9a11d languageName: node linkType: hard -"@smithy/hash-blob-browser@npm:^2.0.2": - version: 2.0.2 - resolution: "@smithy/hash-blob-browser@npm:2.0.2" +"@smithy/hash-blob-browser@npm:^2.0.3": + version: 2.0.4 + resolution: "@smithy/hash-blob-browser@npm:2.0.4" dependencies: "@smithy/chunked-blob-reader": ^2.0.0 "@smithy/chunked-blob-reader-native": ^2.0.0 - "@smithy/types": ^2.1.0 + "@smithy/types": ^2.2.1 tslib: ^2.5.0 - checksum: add61e1fbdcaf5b019bb8ad4d1dbb70cbc59c65f039cab2ac9fc4617333ce7a3aa356d51b737732560d23db29f7afbd5c1addb4db738ec21dfa2cad5dd82ca05 + checksum: d7ce36a111ba7cb0133f2447c3bfb85e7543d0778547cf1de118bb02bc8b3808d96fa117a82fa41caca224782dfd4473594cc0eaf49b9cea1bb9f6cde9e50917 languageName: node linkType: hard -"@smithy/hash-node@npm:^2.0.2": - version: 2.0.2 - resolution: "@smithy/hash-node@npm:2.0.2" +"@smithy/hash-node@npm:^2.0.3": + version: 2.0.4 + resolution: "@smithy/hash-node@npm:2.0.4" dependencies: - "@smithy/types": ^2.1.0 + "@smithy/types": ^2.2.1 "@smithy/util-buffer-from": ^2.0.0 "@smithy/util-utf8": ^2.0.0 tslib: ^2.5.0 - checksum: 2917822fcc965596755a284cbae8376adb0d1ebc5998ae8a5682e4385f29eaac4408b24e560eced4b7fb8a279fa4453277dc3853114724d4e4c62ce935863fa9 + checksum: f8dceea46c32391861ecb23a4dbb0878048ca8aca2a8e617eb2a15266e77be4aaec795da223b6003b6bb61451fe66edbd5bb7665f9ada76e59e4e405331c5d1a languageName: node linkType: hard -"@smithy/hash-stream-node@npm:^2.0.2": - version: 2.0.2 - resolution: "@smithy/hash-stream-node@npm:2.0.2" +"@smithy/hash-stream-node@npm:^2.0.3": + version: 2.0.4 + resolution: "@smithy/hash-stream-node@npm:2.0.4" dependencies: - "@smithy/types": ^2.1.0 + "@smithy/types": ^2.2.1 "@smithy/util-utf8": ^2.0.0 tslib: ^2.5.0 - checksum: b588608e200978a09633591e5f155bb63890d0f96776eaf94bfbf8df7223bf6a83e8f1a0b256fd7ee286b7b2ca53f1f7124e2d436d5e21ddf10aeb52e7ab528d + checksum: c674e2ba399dd30757e0c0a8e432d2ce024e9f4335a41f20f86dec7f1f1acc7a6389ce8f1aae094b8549b385a2210346e340124a23af8572adb9271b8f580a28 languageName: node linkType: hard -"@smithy/invalid-dependency@npm:^2.0.2": - version: 2.0.2 - resolution: "@smithy/invalid-dependency@npm:2.0.2" +"@smithy/invalid-dependency@npm:^2.0.3": + version: 2.0.4 + resolution: "@smithy/invalid-dependency@npm:2.0.4" dependencies: - "@smithy/types": ^2.1.0 + "@smithy/types": ^2.2.1 tslib: ^2.5.0 - checksum: c31f5d8555729ac34a0e56f350061ee127a6869c6fbe5e30c303e8b273aa52370d7e3a9ec603448cf2e986740a4c67e5285a350d738896e2ad4f7312cb3ed943 + checksum: 947cc13ec2d949f42449492b8b10942676c99d82cec5a62b99e66098c71fed79528e0f2c058ca6e855192ecdb07e7be1e6a38f6fa98305b673fcea3e57152304 languageName: node linkType: hard @@ -14770,63 +14800,63 @@ __metadata: languageName: node linkType: hard -"@smithy/md5-js@npm:^2.0.2": - version: 2.0.2 - resolution: "@smithy/md5-js@npm:2.0.2" +"@smithy/md5-js@npm:^2.0.3": + version: 2.0.4 + resolution: "@smithy/md5-js@npm:2.0.4" dependencies: - "@smithy/types": ^2.1.0 + "@smithy/types": ^2.2.1 "@smithy/util-utf8": ^2.0.0 tslib: ^2.5.0 - checksum: 889056925d17f424f23540b25c237c7ad4e9b7b8a7817a0172cf0a648da5ab9c709593790629955365c93504787c534b2156aa8d056ea27fe81a88106126268b + checksum: f57f61bfb8cb353b86eabd3e0761744c6f3ee5597a6c54587cbffb59092ab1540a415cdbc6558d86d151c84432794303efce5c4fc5424a59ab8d4a5904e21597 languageName: node linkType: hard -"@smithy/middleware-content-length@npm:^2.0.2": - version: 2.0.2 - resolution: "@smithy/middleware-content-length@npm:2.0.2" +"@smithy/middleware-content-length@npm:^2.0.3": + version: 2.0.4 + resolution: "@smithy/middleware-content-length@npm:2.0.4" dependencies: - "@smithy/protocol-http": ^2.0.2 - "@smithy/types": ^2.1.0 + "@smithy/protocol-http": ^2.0.4 + "@smithy/types": ^2.2.1 tslib: ^2.5.0 - checksum: d4a28b967629eab3ee2265ad34e6f45b8006e247e51fdce53604431de58a7840a304ff530475b160d50dc9fb47b1c4c91e51e340003c57b9aaa8483686540336 + checksum: ef7fa3ff95a388e72f3847836bf663397c1ce436f0c27285d8db5c14f8c12c57b59a8928752f445b192658bd86977e6aa16faf1c2e5ea5ff51fabefc0667a5cc languageName: node linkType: hard -"@smithy/middleware-endpoint@npm:^2.0.2": - version: 2.0.2 - resolution: "@smithy/middleware-endpoint@npm:2.0.2" +"@smithy/middleware-endpoint@npm:^2.0.3": + version: 2.0.4 + resolution: "@smithy/middleware-endpoint@npm:2.0.4" dependencies: - "@smithy/middleware-serde": ^2.0.2 - "@smithy/types": ^2.1.0 - "@smithy/url-parser": ^2.0.2 + "@smithy/middleware-serde": ^2.0.4 + "@smithy/types": ^2.2.1 + "@smithy/url-parser": ^2.0.4 "@smithy/util-middleware": ^2.0.0 tslib: ^2.5.0 - checksum: 2a1ba8fa8fe0aef2bdd87c6fc7d3567b4b03e63ad8b46531130042c226b627d438f163caad81295b7dcb506536fd0700fb0ddc20bfc894c7be589b8c891fa799 + checksum: 0868e8a0c123c50f2fb93a9d58639306146a44c58ee48f7d208d21039e3c5b7c01c4697b9254d549e31494696abac95270c893564598abdac95f4bf5d47764d3 languageName: node linkType: hard -"@smithy/middleware-retry@npm:^2.0.2": - version: 2.0.2 - resolution: "@smithy/middleware-retry@npm:2.0.2" +"@smithy/middleware-retry@npm:^2.0.3": + version: 2.0.4 + resolution: "@smithy/middleware-retry@npm:2.0.4" dependencies: - "@smithy/protocol-http": ^2.0.2 + "@smithy/protocol-http": ^2.0.4 "@smithy/service-error-classification": ^2.0.0 - "@smithy/types": ^2.1.0 + "@smithy/types": ^2.2.1 "@smithy/util-middleware": ^2.0.0 "@smithy/util-retry": ^2.0.0 tslib: ^2.5.0 uuid: ^8.3.2 - checksum: c88134fe739b9b038117b388b10e29e53407af3bd6f61fbfdc2600b45b6415bb2e75ee4ce9b0423376d11472d0fb96ba6300c23a1c0ddf8a5d3806f8b7d3c088 + checksum: f5b637a3add7177b1109f7c2c28d35ef64112aed9191ea83bee666c6f0fd031afc37f23d8de1ad9449a6c610cdbc0174120871bbaeeb66b50e80f617b84bfcd0 languageName: node linkType: hard -"@smithy/middleware-serde@npm:^2.0.2": - version: 2.0.2 - resolution: "@smithy/middleware-serde@npm:2.0.2" +"@smithy/middleware-serde@npm:^2.0.3, @smithy/middleware-serde@npm:^2.0.4": + version: 2.0.4 + resolution: "@smithy/middleware-serde@npm:2.0.4" dependencies: - "@smithy/types": ^2.1.0 + "@smithy/types": ^2.2.1 tslib: ^2.5.0 - checksum: 6d343eceeff45c08142ff0567885b910f6d77e7ec95396f8fc4b0fc259284c8d430bd8412ef36c5c45905ee631c660524e38450bda86400b06f3272f4504b08f + checksum: 4b712a13f89a02ae4f912bac7a6c175474588b242cd834716ed7ec66e566fbea512b1b4af2c51841ea8cd980604c87e67497335bfc81e07f612386dff5d2f5e0 languageName: node linkType: hard @@ -14839,69 +14869,69 @@ __metadata: languageName: node linkType: hard -"@smithy/node-config-provider@npm:^2.0.2": - version: 2.0.2 - resolution: "@smithy/node-config-provider@npm:2.0.2" +"@smithy/node-config-provider@npm:^2.0.3, @smithy/node-config-provider@npm:^2.0.4": + version: 2.0.4 + resolution: "@smithy/node-config-provider@npm:2.0.4" dependencies: - "@smithy/property-provider": ^2.0.2 - "@smithy/shared-ini-file-loader": ^2.0.2 - "@smithy/types": ^2.1.0 + "@smithy/property-provider": ^2.0.4 + "@smithy/shared-ini-file-loader": ^2.0.4 + "@smithy/types": ^2.2.1 tslib: ^2.5.0 - checksum: 6cf3953dfd08f337b5ef41fa6808b083ceb06624e2de4996bfbb7d4326a8deefe73e47d6bb00ca81a2d2dc9b662d3eaaa3d1698262f2256d1a7c71290663ca12 + checksum: 0fdc571b996d472b5bb714fd79a4d253835ee711881bcb430194c1f62510db06d13f196bfd9b925cc3459a06d315e9096f6f91af2d92d4a0fafeebfa3a543516 languageName: node linkType: hard -"@smithy/node-http-handler@npm:^2.0.2": - version: 2.0.2 - resolution: "@smithy/node-http-handler@npm:2.0.2" +"@smithy/node-http-handler@npm:^2.0.3, @smithy/node-http-handler@npm:^2.0.4": + version: 2.0.4 + resolution: "@smithy/node-http-handler@npm:2.0.4" dependencies: - "@smithy/abort-controller": ^2.0.2 - "@smithy/protocol-http": ^2.0.2 - "@smithy/querystring-builder": ^2.0.2 - "@smithy/types": ^2.1.0 + "@smithy/abort-controller": ^2.0.4 + "@smithy/protocol-http": ^2.0.4 + "@smithy/querystring-builder": ^2.0.4 + "@smithy/types": ^2.2.1 tslib: ^2.5.0 - checksum: 1c5e0189d2f68bfc4c50c107182eb34b34024de3213a552cab2088c01bea8707c51c7cbbd7cf61290cf8b71e13ec2d715e51b7647edc9f5d27ab8779011e2a4d + checksum: 35622e82eec7ebc33a463c69da679127ccc76e84d628b752dcfde0a02a5e9a4c6a75076b01ca842e8bdf95e02f78fb45aaab77e0d7d474d9cc64c44a525b19ea languageName: node linkType: hard -"@smithy/property-provider@npm:^2.0.0, @smithy/property-provider@npm:^2.0.2": - version: 2.0.2 - resolution: "@smithy/property-provider@npm:2.0.2" +"@smithy/property-provider@npm:^2.0.0, @smithy/property-provider@npm:^2.0.4": + version: 2.0.4 + resolution: "@smithy/property-provider@npm:2.0.4" dependencies: - "@smithy/types": ^2.1.0 + "@smithy/types": ^2.2.1 tslib: ^2.5.0 - checksum: e18df64d5ec92b2c7876dc1e7a596dc80066e13d49fcad6d8caac50394e8b3f3b15aa1f517429a85cdfefc218ee3d72028613454c706638352732ab1ae0f7418 + checksum: 80d6eb6a87138c8752103ee5c541a1f8c867dc2baef5cf6eaa88e4cd920ea3d7d0b80aca7e8ff90b360ed976da688e26c3c20402cacbba32b807c7b612a2cc5a languageName: node linkType: hard -"@smithy/protocol-http@npm:^2.0.2": - version: 2.0.2 - resolution: "@smithy/protocol-http@npm:2.0.2" +"@smithy/protocol-http@npm:^2.0.3, @smithy/protocol-http@npm:^2.0.4": + version: 2.0.4 + resolution: "@smithy/protocol-http@npm:2.0.4" dependencies: - "@smithy/types": ^2.1.0 + "@smithy/types": ^2.2.1 tslib: ^2.5.0 - checksum: 61202d08d4433a4406a56e1e77863b89a60431a39984b38fec04a18276973857524b18d60c394236f3b664a08ec1996d837c295798e44f02ba93aca5336e9432 + checksum: 2e92a9a6ee52c5e94bfd21a510af3b5f2d4f56f849e5cb8a91eb0c28204051e51bf3801295acb5f4adb588c2bd0a3259c55019f9cca94d2056f838878cc0d9a3 languageName: node linkType: hard -"@smithy/querystring-builder@npm:^2.0.2": - version: 2.0.2 - resolution: "@smithy/querystring-builder@npm:2.0.2" +"@smithy/querystring-builder@npm:^2.0.4": + version: 2.0.4 + resolution: "@smithy/querystring-builder@npm:2.0.4" dependencies: - "@smithy/types": ^2.1.0 + "@smithy/types": ^2.2.1 "@smithy/util-uri-escape": ^2.0.0 tslib: ^2.5.0 - checksum: cdda228f0ac049aed302dcd19c47309a81eeb4d4c360189a399bc70bd6283ba218c87cfdee43e33c406cbe452d7979a389de9150b06de5221dfe4a6f69e53c1b + checksum: f26d8a9596f3f6c5ed8f42d4546c703c7dadc4e6156b2338b5383848a891aab684d84d80d8f775a0007a559e1f20f71707a999891423ac9f857acb06023e4216 languageName: node linkType: hard -"@smithy/querystring-parser@npm:^2.0.2": - version: 2.0.2 - resolution: "@smithy/querystring-parser@npm:2.0.2" +"@smithy/querystring-parser@npm:^2.0.4": + version: 2.0.4 + resolution: "@smithy/querystring-parser@npm:2.0.4" dependencies: - "@smithy/types": ^2.1.0 + "@smithy/types": ^2.2.1 tslib: ^2.5.0 - checksum: 0a571dbf7876096823071583e4b8506d9ce4fc1ff2af9fac07987bdf9a6e0dfee1598280cf411a6709cf535e2904eeab385bb2186bb6fe3aa987bae84620256c + checksum: cd7ba10925fe4e4cac9b90dd308270b32d9a12c89a75ede93fbb6b25e662135084d6c29034a27678df53d1386a16c6012f6a2f873c264b2d6c6ed70cc10676aa languageName: node linkType: hard @@ -14912,13 +14942,13 @@ __metadata: languageName: node linkType: hard -"@smithy/shared-ini-file-loader@npm:^2.0.0, @smithy/shared-ini-file-loader@npm:^2.0.2": - version: 2.0.2 - resolution: "@smithy/shared-ini-file-loader@npm:2.0.2" +"@smithy/shared-ini-file-loader@npm:^2.0.0, @smithy/shared-ini-file-loader@npm:^2.0.4": + version: 2.0.4 + resolution: "@smithy/shared-ini-file-loader@npm:2.0.4" dependencies: - "@smithy/types": ^2.1.0 + "@smithy/types": ^2.2.1 tslib: ^2.5.0 - checksum: 5a7100b1db34d0a479dcbc2d649840dcf37fb2be4d5798ba7bef58186b636d867c3c555796f1372bcfc5554705a3f267e13008705451f44cd03a2c5a87c5c89e + checksum: b0cb86f52d13a290705f2ef28ecdc6a8d6b817737a5dbb2ac8c3b8b45c77a0cc9d33b03a8e709bca963feb4415c50d37a5508fa0cd20e667a7ff7b8dafac5624 languageName: node linkType: hard @@ -14938,15 +14968,15 @@ __metadata: languageName: node linkType: hard -"@smithy/smithy-client@npm:^2.0.2": - version: 2.0.2 - resolution: "@smithy/smithy-client@npm:2.0.2" +"@smithy/smithy-client@npm:^2.0.3": + version: 2.0.4 + resolution: "@smithy/smithy-client@npm:2.0.4" dependencies: "@smithy/middleware-stack": ^2.0.0 - "@smithy/types": ^2.1.0 - "@smithy/util-stream": ^2.0.2 + "@smithy/types": ^2.2.1 + "@smithy/util-stream": ^2.0.4 tslib: ^2.5.0 - checksum: 999b814ece054dfcc4808e5e3bdf6d24f5bc1a16b375bccad95ba9f0ff709a68f4c6437d1378b8b1ef870ce75e4cd2e55df4143394890e9759cec69fd078062d + checksum: 11ba0e9c135ce4ca7a8a042679b9ae1a78405971699501b2ba065ab458a85113ddbadd55b793f15bdb448a2c80aee285028f5760ea9d9db0300c1231080f8826 languageName: node linkType: hard @@ -14959,23 +14989,23 @@ __metadata: languageName: node linkType: hard -"@smithy/types@npm:^2.0.2, @smithy/types@npm:^2.1.0": - version: 2.1.0 - resolution: "@smithy/types@npm:2.1.0" +"@smithy/types@npm:^2.0.2, @smithy/types@npm:^2.2.0, @smithy/types@npm:^2.2.1": + version: 2.2.1 + resolution: "@smithy/types@npm:2.2.1" dependencies: tslib: ^2.5.0 - checksum: 15c61c1b6520ef21257b64e4be7c8334c1206db8f21c9fb301838b5e09699996060c4361e51d2c63ee972f8678df68a8a60e2dd18216ae70751393d9d4188c5a + checksum: cd06347fce5ccf31464fef57a7943a3b5858aad6efc0169a9871c4e8dd11c542936f35ebac92c9d82e3cdd9668f23001400f5a1a015fff3f59e021a27fec32cb languageName: node linkType: hard -"@smithy/url-parser@npm:^2.0.2": - version: 2.0.2 - resolution: "@smithy/url-parser@npm:2.0.2" +"@smithy/url-parser@npm:^2.0.3, @smithy/url-parser@npm:^2.0.4": + version: 2.0.4 + resolution: "@smithy/url-parser@npm:2.0.4" dependencies: - "@smithy/querystring-parser": ^2.0.2 - "@smithy/types": ^2.1.0 + "@smithy/querystring-parser": ^2.0.4 + "@smithy/types": ^2.2.1 tslib: ^2.5.0 - checksum: 3a977e6a2c8d6d01e29d8925ef351d2cbc0951029d774490e3362d681fd18d97622afd2e99cea158f3e851cf423dc8dde5f6aee639cdf77f31e80150a732478b + checksum: 2fb1729ed6e822f65d9c22f9caa1dfd8008d9fd9c7bd3a4ea6c385741a65eec5d47a5f39ba50690f704923cbeb1edb6b6355bfecda41e15057167f5709aeee5b languageName: node linkType: hard @@ -15026,29 +15056,29 @@ __metadata: languageName: node linkType: hard -"@smithy/util-defaults-mode-browser@npm:^2.0.2": - version: 2.0.2 - resolution: "@smithy/util-defaults-mode-browser@npm:2.0.2" +"@smithy/util-defaults-mode-browser@npm:^2.0.3": + version: 2.0.4 + resolution: "@smithy/util-defaults-mode-browser@npm:2.0.4" dependencies: - "@smithy/property-provider": ^2.0.2 - "@smithy/types": ^2.1.0 + "@smithy/property-provider": ^2.0.4 + "@smithy/types": ^2.2.1 bowser: ^2.11.0 tslib: ^2.5.0 - checksum: 0e4d70040268757120aec9b6207256d091772075e21dc1778c29d33d002c12e4825a192a2424ca3099d79ceb9ce8e6e77a627b680e12a657a171ca9ed84818e7 + checksum: 3758310f855bb7127e732f778fda1c2ce1badc945fe79d9b56e1419ad8049043e645e07a572e667d804a61d29141ccfaded053b9e1854cc6c139c3dfbff06c04 languageName: node linkType: hard -"@smithy/util-defaults-mode-node@npm:^2.0.2": - version: 2.0.2 - resolution: "@smithy/util-defaults-mode-node@npm:2.0.2" +"@smithy/util-defaults-mode-node@npm:^2.0.3": + version: 2.0.4 + resolution: "@smithy/util-defaults-mode-node@npm:2.0.4" dependencies: - "@smithy/config-resolver": ^2.0.2 - "@smithy/credential-provider-imds": ^2.0.2 - "@smithy/node-config-provider": ^2.0.2 - "@smithy/property-provider": ^2.0.2 - "@smithy/types": ^2.1.0 + "@smithy/config-resolver": ^2.0.4 + "@smithy/credential-provider-imds": ^2.0.4 + "@smithy/node-config-provider": ^2.0.4 + "@smithy/property-provider": ^2.0.4 + "@smithy/types": ^2.2.1 tslib: ^2.5.0 - checksum: 25b8988bad21b7fb45c715e303b57bee4e865644f3c3282aa36f81ce71000e94289c84bccdd820556a8625d5d6bfa4ce70eb0f02bd74e9bb117ed713fabeba5d + checksum: b558c47ec61bafc8b69c84931e5c97aecc00d45b0dee1db56298d5fb205453a4be742899083a57cb282ae109b2bce9f70261d7a3ed0949dd5678daded4043567 languageName: node linkType: hard @@ -15080,19 +15110,19 @@ __metadata: languageName: node linkType: hard -"@smithy/util-stream@npm:^2.0.2": - version: 2.0.2 - resolution: "@smithy/util-stream@npm:2.0.2" +"@smithy/util-stream@npm:^2.0.3, @smithy/util-stream@npm:^2.0.4": + version: 2.0.4 + resolution: "@smithy/util-stream@npm:2.0.4" dependencies: - "@smithy/fetch-http-handler": ^2.0.2 - "@smithy/node-http-handler": ^2.0.2 - "@smithy/types": ^2.1.0 + "@smithy/fetch-http-handler": ^2.0.4 + "@smithy/node-http-handler": ^2.0.4 + "@smithy/types": ^2.2.1 "@smithy/util-base64": ^2.0.0 "@smithy/util-buffer-from": ^2.0.0 "@smithy/util-hex-encoding": ^2.0.0 "@smithy/util-utf8": ^2.0.0 tslib: ^2.5.0 - checksum: 32115fa35437370671dcedf14714ab32b94ceb598baffe1d8afa7c574084b4cf0826f15fd3a76bc1450010512d2d067cbe62fe8c6ce4ee640fb0270768a8d87c + checksum: 0d7b6b7b3ca01cdd24edccd9f411ae2fd6ef627c6b37b97b8be96d632cd43b49a0b4e20b180281ffcb5264237b0175594f3974c3278d859e9e988ab4eb109e1b languageName: node linkType: hard @@ -15115,14 +15145,14 @@ __metadata: languageName: node linkType: hard -"@smithy/util-waiter@npm:^2.0.2": - version: 2.0.2 - resolution: "@smithy/util-waiter@npm:2.0.2" +"@smithy/util-waiter@npm:^2.0.3": + version: 2.0.4 + resolution: "@smithy/util-waiter@npm:2.0.4" dependencies: - "@smithy/abort-controller": ^2.0.2 - "@smithy/types": ^2.1.0 + "@smithy/abort-controller": ^2.0.4 + "@smithy/types": ^2.2.1 tslib: ^2.5.0 - checksum: a0d23641fb724684b299d5131d82578f1c11cdcde9d55af309e00a0f75b19792016207eb1effb58da21eeafcac6cd5ed7ea4632c2c2e2e5eb423aa40f2e50fdf + checksum: d00ba1e2a066f069725d5e5394adea7b656f3be44565677bd59fda406272931b1414239f85c928e2edd9c9404e940a754e977cf86291d60c491632155dca9ce6 languageName: node linkType: hard From 8be3659e68cfb96449255354f3184c4692457284 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 16 Aug 2023 22:43:24 +0000 Subject: [PATCH 369/372] Update dependency @newrelic/browser-agent to v1.238.0 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 27aab37fad..1dcb7ec252 100644 --- a/yarn.lock +++ b/yarn.lock @@ -13106,14 +13106,14 @@ __metadata: linkType: hard "@newrelic/browser-agent@npm:^1.236.0": - version: 1.236.0 - resolution: "@newrelic/browser-agent@npm:1.236.0" + version: 1.238.0 + resolution: "@newrelic/browser-agent@npm:1.238.0" dependencies: core-js: ^3.26.0 fflate: ^0.7.4 rrweb: ^2.0.0-alpha.8 web-vitals: ^3.1.0 - checksum: 79a96c8f8421bed13e0e9eaf08c9bb8ac2785da3199e2304366c5cf98eb976713e393bd26a7efe998837eba5facfe7a54a6d58ba5c948c7ecc8de49e477b5836 + checksum: 180d2bc1d419e9b32fbadd6bfcbbea4d3300aa8fa9e8d848f25fe3f256d98a855c84ea5562d33b60e8ad24b5c0a7379f7e35cbeb7db271f454c64a793870efd2 languageName: node linkType: hard From 22581f2b6cb4c5bf8e02bd48ef54724ed7ebfb3f Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 16 Aug 2023 23:25:58 +0000 Subject: [PATCH 370/372] Update dependency @codemirror/language to v6.9.0 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 1dcb7ec252..5a394646d8 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9907,8 +9907,8 @@ __metadata: linkType: hard "@codemirror/language@npm:^6.0.0": - version: 6.8.0 - resolution: "@codemirror/language@npm:6.8.0" + version: 6.9.0 + resolution: "@codemirror/language@npm:6.9.0" dependencies: "@codemirror/state": ^6.0.0 "@codemirror/view": ^6.0.0 @@ -9916,7 +9916,7 @@ __metadata: "@lezer/highlight": ^1.0.0 "@lezer/lr": ^1.0.0 style-mod: ^4.0.0 - checksum: 64408d996641931fa4c6b892e17ee1fdaee0f63d3d84c019a6ea7b1e6d1c774f92357b95c2ebaed60545062b795b72d0a058c03578b2bf4023c87726e97b5d2f + checksum: 9a897fb0f569159eeafb7dce83061b425af7244bbeae2649e0e677488548b2a02eaf0c13c0c5b4d59da55e8866e6f4dc7abe3dfaa09c13749a2fa2c0dbc0c565 languageName: node linkType: hard From 0599e630cf432fa28518fc19153f4ba759863ea4 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 17 Aug 2023 00:28:51 +0000 Subject: [PATCH 371/372] Update dependency pg to v8.11.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 5a394646d8..77ba3254dc 100644 --- a/yarn.lock +++ b/yarn.lock @@ -34871,8 +34871,8 @@ __metadata: linkType: hard "pg@npm:^8.3.0, pg@npm:^8.9.0": - version: 8.11.2 - resolution: "pg@npm:8.11.2" + version: 8.11.3 + resolution: "pg@npm:8.11.3" dependencies: buffer-writer: 2.0.0 packet-reader: 1.0.0 @@ -34890,7 +34890,7 @@ __metadata: peerDependenciesMeta: pg-native: optional: true - checksum: dfea8a2269d500dee8c17291207e5a25897163480037beb7a59be35f51e33b519c297c943ea6898b285d6a74a0d661901dc9cff2e587cc4be0bbf09b833a71a5 + checksum: 8af9468b8969fa0d73a6b349216c8cbc953d938fcae5594f2d24043060e9226a072c8085fc4230172b5576fcab4c39c8563c655f271dc2a9209b6ad5370cafe5 languageName: node linkType: hard From b34e58c09362e561be2ff7056dc1ae5b9dba3047 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 17 Aug 2023 02:37:40 +0000 Subject: [PATCH 372/372] Update dependency @stoplight/types to v13.19.0 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 77ba3254dc..ec0379375a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -15426,12 +15426,12 @@ __metadata: linkType: hard "@stoplight/types@npm:^12.3.0 || ^13.0.0, @stoplight/types@npm:^13.0.0, @stoplight/types@npm:^13.14.0, @stoplight/types@npm:^13.15.0, @stoplight/types@npm:^13.6.0": - version: 13.18.0 - resolution: "@stoplight/types@npm:13.18.0" + version: 13.19.0 + resolution: "@stoplight/types@npm:13.19.0" dependencies: "@types/json-schema": ^7.0.4 utility-types: ^3.10.0 - checksum: 17f464b6986fcb07719584cbb55c59e1c8d72d6d000ed64b13cae92acbdc069e5a725b4d14c4a2998eb701a0289e6ce3aee151e4200698df906ba058747e210f + checksum: 30ad1f7b8f7594e520cf5e0c1e1e9df8a2761cda1dff0a9ca22483e7b6c6310a0120fd1d599ddcaf9a1a622b064aeb5c5b8d84bdc6d8db8ce3f1bffe847d1f79 languageName: node linkType: hard