From 73b246c7d3640b87ee92765197676f4c73e144ce Mon Sep 17 00:00:00 2001 From: kavix Date: Fri, 19 Jun 2026 02:22:13 +0530 Subject: [PATCH 01/11] feat(observability): add clickable link to component name in logs Signed-off-by: kavix --- .../src/components/RuntimeLogs/LogEntry.tsx | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/plugins/openchoreo-observability/src/components/RuntimeLogs/LogEntry.tsx b/plugins/openchoreo-observability/src/components/RuntimeLogs/LogEntry.tsx index aa0edcf2c..8c5512ecf 100644 --- a/plugins/openchoreo-observability/src/components/RuntimeLogs/LogEntry.tsx +++ b/plugins/openchoreo-observability/src/components/RuntimeLogs/LogEntry.tsx @@ -9,6 +9,8 @@ import { } from '@material-ui/core'; import FileCopyOutlined from '@material-ui/icons/FileCopyOutlined'; import { LogEntry as LogEntryType, LogEntryField } from './types'; +import { Link } from '@backstage/core-components'; +import { useLocation } from 'react-router-dom'; import { useLogEntryStyles } from './styles'; import { getColumnStyle } from './columns'; @@ -59,6 +61,7 @@ export const LogEntry: FC = ({ renderRowAction, }) => { const classes = useLogEntryStyles(); + const location = useLocation(); const [copySuccess, setCopySuccess] = useState(false); const handleCopyLog = async (event: MouseEvent) => { @@ -140,13 +143,23 @@ export const LogEntry: FC = ({ } if (field === LogEntryField.ComponentName) { + const compName = log.metadata?.componentName ?? componentName ?? ''; return ( - {log.metadata?.componentName ?? componentName ?? ''} + {compName ? ( + e.stopPropagation()} + > + {compName} + + ) : ( + '' + )} ); } From 49502d1dd157e564a4cb861191213e0d8e7c31f0 Mon Sep 17 00:00:00 2001 From: kavix Date: Fri, 19 Jun 2026 02:22:13 +0530 Subject: [PATCH 02/11] test(observability): update LogEntry tests with MemoryRouter Signed-off-by: kavix --- .../src/components/RuntimeLogs/LogEntry.test.tsx | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/plugins/openchoreo-observability/src/components/RuntimeLogs/LogEntry.test.tsx b/plugins/openchoreo-observability/src/components/RuntimeLogs/LogEntry.test.tsx index c71371266..9a17728fb 100644 --- a/plugins/openchoreo-observability/src/components/RuntimeLogs/LogEntry.test.tsx +++ b/plugins/openchoreo-observability/src/components/RuntimeLogs/LogEntry.test.tsx @@ -1,4 +1,5 @@ import { useState } from 'react'; +import { MemoryRouter } from 'react-router-dom'; import { render, screen } from '@testing-library/react'; import userEvent from '@testing-library/user-event'; import { LogEntry } from './LogEntry'; @@ -48,7 +49,11 @@ function renderLogEntry( expanded, onToggleExpand: () => setExpanded(prev => !prev), }; - return ; + return ( + + + + ); }; return render(); } From f1d26ab951b227cc105dc5b8c44497982e3454ea Mon Sep 17 00:00:00 2001 From: kavix Date: Fri, 19 Jun 2026 02:22:13 +0530 Subject: [PATCH 03/11] chore(observability): add changeset for clickable log components Signed-off-by: kavix --- .changeset/clickable-log-components.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/clickable-log-components.md diff --git a/.changeset/clickable-log-components.md b/.changeset/clickable-log-components.md new file mode 100644 index 000000000..85acd64a9 --- /dev/null +++ b/.changeset/clickable-log-components.md @@ -0,0 +1,5 @@ +--- +'@openchoreo/backstage-plugin-openchoreo-observability': minor +--- + +Made component names in the project-level logging view clickable, allowing users to navigate directly to the component-scoped logging view while preserving the current time range and any relevant filters. From 913888c05253a8481ee09d826fdba48511ef3443 Mon Sep 17 00:00:00 2001 From: kavix Date: Fri, 19 Jun 2026 02:33:10 +0530 Subject: [PATCH 04/11] fix(observability): use dynamic namespace and kind in log component links Signed-off-by: kavix --- .../src/components/RuntimeLogs/LogEntry.tsx | 6 +++++- .../src/components/RuntimeLogs/LogsTable.tsx | 6 ++++++ .../RuntimeLogs/ObservabilityProjectRuntimeLogsPage.tsx | 2 ++ .../components/RuntimeLogs/ObservabilityRuntimeLogsPage.tsx | 2 ++ 4 files changed, 15 insertions(+), 1 deletion(-) diff --git a/plugins/openchoreo-observability/src/components/RuntimeLogs/LogEntry.tsx b/plugins/openchoreo-observability/src/components/RuntimeLogs/LogEntry.tsx index 8c5512ecf..cfb7e5d35 100644 --- a/plugins/openchoreo-observability/src/components/RuntimeLogs/LogEntry.tsx +++ b/plugins/openchoreo-observability/src/components/RuntimeLogs/LogEntry.tsx @@ -31,6 +31,8 @@ interface LogEntryProps { environmentName?: string; projectName?: string; componentName?: string; + entityNamespace?: string; + entityKind?: string; /** * Whether this row is currently expanded. Controlled by the parent so that * expansion survives the virtualizer unmounting the row off-screen. @@ -55,6 +57,8 @@ export const LogEntry: FC = ({ environmentName, projectName, componentName, + entityNamespace, + entityKind, expanded, onToggleExpand, getLogsSnapshot, @@ -152,7 +156,7 @@ export const LogEntry: FC = ({ > {compName ? ( e.stopPropagation()} > {compName} diff --git a/plugins/openchoreo-observability/src/components/RuntimeLogs/LogsTable.tsx b/plugins/openchoreo-observability/src/components/RuntimeLogs/LogsTable.tsx index f332a8fbf..506f4b298 100644 --- a/plugins/openchoreo-observability/src/components/RuntimeLogs/LogsTable.tsx +++ b/plugins/openchoreo-observability/src/components/RuntimeLogs/LogsTable.tsx @@ -21,6 +21,8 @@ interface LogsTableProps { environmentName?: string; projectName?: string; componentName?: string; + entityNamespace?: string; + entityKind?: string; renderRowAction?: RenderLogRowAction; } @@ -37,6 +39,8 @@ export const LogsTable: FC = ({ environmentName, projectName, componentName, + entityNamespace, + entityKind, renderRowAction, }) => { const classes = useLogsTableStyles(); @@ -164,6 +168,8 @@ export const LogsTable: FC = ({ environmentName={environmentName} projectName={projectName} componentName={componentName} + entityNamespace={entityNamespace} + entityKind={entityKind} expanded={expanded.has(key)} onToggleExpand={() => toggle(key)} getLogsSnapshot={getLogsSnapshot} diff --git a/plugins/openchoreo-observability/src/components/RuntimeLogs/ObservabilityProjectRuntimeLogsPage.tsx b/plugins/openchoreo-observability/src/components/RuntimeLogs/ObservabilityProjectRuntimeLogsPage.tsx index a02a108a9..c59856328 100644 --- a/plugins/openchoreo-observability/src/components/RuntimeLogs/ObservabilityProjectRuntimeLogsPage.tsx +++ b/plugins/openchoreo-observability/src/components/RuntimeLogs/ObservabilityProjectRuntimeLogsPage.tsx @@ -241,6 +241,8 @@ const ObservabilityProjectRuntimeLogsContent = ({ selectedEnvironment?.displayName || selectedEnvironment?.name } projectName={projectName} + entityNamespace={entity.metadata.namespace} + entityKind="component" renderRowAction={renderRowAction} /> diff --git a/plugins/openchoreo-observability/src/components/RuntimeLogs/ObservabilityRuntimeLogsPage.tsx b/plugins/openchoreo-observability/src/components/RuntimeLogs/ObservabilityRuntimeLogsPage.tsx index 44df01637..903a64eb6 100644 --- a/plugins/openchoreo-observability/src/components/RuntimeLogs/ObservabilityRuntimeLogsPage.tsx +++ b/plugins/openchoreo-observability/src/components/RuntimeLogs/ObservabilityRuntimeLogsPage.tsx @@ -257,6 +257,8 @@ const ObservabilityRuntimeLogsContent = ({ } projectName={project} componentName={componentName} + entityNamespace={entity.metadata.namespace} + entityKind={entity.kind} renderRowAction={renderRowAction} /> From 6c65bd16d6d7b54697fd7970e17a7da6ccc1182e Mon Sep 17 00:00:00 2001 From: kavix Date: Fri, 19 Jun 2026 15:26:43 +0530 Subject: [PATCH 05/11] refactor(observability): reuse buildRuntimeLogsBasePath to derive log link and add tests Signed-off-by: kavix --- .../src/components/RuntimeLogs/LogEntry.test.tsx | 15 +++++++++++++++ .../src/components/RuntimeLogs/LogEntry.tsx | 13 ++++++++++++- 2 files changed, 27 insertions(+), 1 deletion(-) diff --git a/plugins/openchoreo-observability/src/components/RuntimeLogs/LogEntry.test.tsx b/plugins/openchoreo-observability/src/components/RuntimeLogs/LogEntry.test.tsx index 9a17728fb..5efce186d 100644 --- a/plugins/openchoreo-observability/src/components/RuntimeLogs/LogEntry.test.tsx +++ b/plugins/openchoreo-observability/src/components/RuntimeLogs/LogEntry.test.tsx @@ -102,6 +102,21 @@ describe('LogEntry', () => { expect(screen.getByText('api-service')).toBeInTheDocument(); }); + it('renders component name link with correct path', () => { + renderLogEntry({ + selectedFields: [...allFields, LogEntryField.ComponentName], + entityNamespace: 'my-namespace', + entityKind: 'Component', + }); + + const link = screen.getByRole('link', { name: 'api-service' }); + expect(link).toBeInTheDocument(); + expect(link).toHaveAttribute( + 'href', + '/catalog/my-namespace/component/api-service/runtime-logs', + ); + }); + it('expands to show metadata on row click', async () => { const user = userEvent.setup(); renderLogEntry(); diff --git a/plugins/openchoreo-observability/src/components/RuntimeLogs/LogEntry.tsx b/plugins/openchoreo-observability/src/components/RuntimeLogs/LogEntry.tsx index cfb7e5d35..907a62fe3 100644 --- a/plugins/openchoreo-observability/src/components/RuntimeLogs/LogEntry.tsx +++ b/plugins/openchoreo-observability/src/components/RuntimeLogs/LogEntry.tsx @@ -13,6 +13,8 @@ import { Link } from '@backstage/core-components'; import { useLocation } from 'react-router-dom'; import { useLogEntryStyles } from './styles'; import { getColumnStyle } from './columns'; +import { Entity } from '@backstage/catalog-model'; +import { buildRuntimeLogsBasePath } from '@openchoreo/backstage-plugin-react'; /** * Render-prop slot for a per-row action button (assistant integration, @@ -148,6 +150,15 @@ export const LogEntry: FC = ({ if (field === LogEntryField.ComponentName) { const compName = log.metadata?.componentName ?? componentName ?? ''; + const entity: Entity = { + apiVersion: 'backstage.io/v1alpha1', + kind: entityKind || 'Component', + metadata: { + name: compName, + namespace: entityNamespace, + }, + }; + const basePath = buildRuntimeLogsBasePath(entity); return ( = ({ > {compName ? ( e.stopPropagation()} > {compName} From 6ff1b718a641f4e6e0b4339c428a7b823354eb9f Mon Sep 17 00:00:00 2001 From: kavix Date: Thu, 25 Jun 2026 12:22:00 +0530 Subject: [PATCH 06/11] test(openchoreo): fix failing tests and suppress JSDOM console warning noise Signed-off-by: kavix --- .../components/SetupDetailPane.test.tsx | 8 +++++ .../Secrets/CreateSecretDialog.test.tsx | 2 +- plugins/openchoreo/src/setupTests.ts | 31 +++++++++++++++++++ 3 files changed, 40 insertions(+), 1 deletion(-) diff --git a/plugins/openchoreo/src/components/Environments/components/SetupDetailPane.test.tsx b/plugins/openchoreo/src/components/Environments/components/SetupDetailPane.test.tsx index 860ef6d17..502bdf4ff 100644 --- a/plugins/openchoreo/src/components/Environments/components/SetupDetailPane.test.tsx +++ b/plugins/openchoreo/src/components/Environments/components/SetupDetailPane.test.tsx @@ -319,6 +319,10 @@ describe('SetupDetailPane', () => { await user.click(screen.getByRole('checkbox', { name: /auto deploy/i })); await user.click(screen.getByRole('button', { name: /confirm/i })); + await waitFor(() => { + expect(screen.queryByRole('dialog')).toBeNull(); + }); + await waitFor(() => { expect(mockShowError).toHaveBeenCalledWith( 'Failed to update auto deploy setting: boom', @@ -356,6 +360,10 @@ describe('SetupDetailPane', () => { await user.click(screen.getByRole('checkbox', { name: /auto deploy/i })); await user.click(screen.getByRole('button', { name: /confirm/i })); + await waitFor(() => { + expect(screen.queryByRole('dialog')).toBeNull(); + }); + expect(mockUpdateAutoDeploy).toHaveBeenCalledWith(true); await waitFor(() => { expect(mockShowError).toHaveBeenCalledWith( diff --git a/plugins/openchoreo/src/components/Secrets/CreateSecretDialog.test.tsx b/plugins/openchoreo/src/components/Secrets/CreateSecretDialog.test.tsx index 3a1ab9d9a..e435395da 100644 --- a/plugins/openchoreo/src/components/Secrets/CreateSecretDialog.test.tsx +++ b/plugins/openchoreo/src/components/Secrets/CreateSecretDialog.test.tsx @@ -166,7 +166,7 @@ describe('CreateSecretDialog — SSH Auth', () => { await selectSshAuth(user); await pasteSshKey(user, VALID_KEY); expect(screen.getByRole('button', { name: 'Create' })).toBeEnabled(); - }); + }, 15000); // The two tests below interact with multiple fields (SSH Key ID + multiline // SSH key + dynamically-added Key/Value rows). userEvent.type is per-keystroke diff --git a/plugins/openchoreo/src/setupTests.ts b/plugins/openchoreo/src/setupTests.ts index 7b0828bfa..ff0705ed1 100644 --- a/plugins/openchoreo/src/setupTests.ts +++ b/plugins/openchoreo/src/setupTests.ts @@ -1 +1,32 @@ import '@testing-library/jest-dom'; + +(globalThis as any).IS_REACT_ACT_ENVIRONMENT = true; +if (typeof window !== 'undefined') { + (window as any).IS_REACT_ACT_ENVIRONMENT = true; +} +if (typeof global !== 'undefined') { + (global as any).IS_REACT_ACT_ENVIRONMENT = true; +} + + +const originalConsoleError = console.error; +console.error = (...args: any[]) => { + if ( + typeof args[0] === 'string' && + (args[0].includes('Could not parse CSS stylesheet') || + args[0].includes('css parsing') || + args[0].includes('not configured to support act')) + ) { + return; + } + if ( + args[0] && + typeof args[0] === 'object' && + (args[0].message?.includes('Could not parse CSS stylesheet') || + args[0].type === 'css parsing' || + args[0].message?.includes('not configured to support act')) + ) { + return; + } + originalConsoleError(...args); +}; From ddda7aa1633f1485dec7f7616072cc4aaa3139f1 Mon Sep 17 00:00:00 2001 From: kavix Date: Sat, 27 Jun 2026 00:18:23 +0530 Subject: [PATCH 07/11] DCO Fix ESLint failures in the openchoreo plugin. ESLint Failure 1: @backstage/no-mixed-plugin-imports - Warning: @openchoreo/backstage-plugin (frontend-plugin) uses forbidden import from @openchoreo/test-utils (node-library). - Reason for change: Changed the package backstage role of @openchoreo/test-utils from "node-library" to "common-library" (and removed the unused @backstage/backend-test-utils dependency). This permits frontend plugins to import the shared test utilities. ESLint Failure 2: no-console - Error: Unexpected console statement in setupTests.ts. - Reason for change: Added /* eslint-disable no-console */ at the top of setupTests.ts to allow overriding console.error to filter out specific act and CSS parsing test environment warnings. Signed-off-by: kavix --- packages/test-utils/package.json | 3 +-- plugins/openchoreo/src/setupTests.ts | 1 + 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/test-utils/package.json b/packages/test-utils/package.json index b36971bdb..865c5ada8 100644 --- a/packages/test-utils/package.json +++ b/packages/test-utils/package.json @@ -12,14 +12,13 @@ "directory": "packages/test-utils" }, "backstage": { - "role": "node-library" + "role": "common-library" }, "scripts": { "test": "backstage-cli package test", "clean": "backstage-cli package clean" }, "dependencies": { - "@backstage/backend-test-utils": "^1.11.3", "@backstage/catalog-model": "^1.9.0" }, "devDependencies": { diff --git a/plugins/openchoreo/src/setupTests.ts b/plugins/openchoreo/src/setupTests.ts index ff0705ed1..de87378af 100644 --- a/plugins/openchoreo/src/setupTests.ts +++ b/plugins/openchoreo/src/setupTests.ts @@ -1,3 +1,4 @@ +/* eslint-disable no-console */ import '@testing-library/jest-dom'; (globalThis as any).IS_REACT_ACT_ENVIRONMENT = true; From 73a9f867f262c998c9998c4b02a610a3812983e1 Mon Sep 17 00:00:00 2001 From: kavix Date: Fri, 19 Jun 2026 15:45:25 +0530 Subject: [PATCH 08/11] test(observability): assert link click navigation and propagation stoppage Signed-off-by: kavix --- .../components/RuntimeLogs/LogEntry.test.tsx | 41 ++++++++++++++++++- 1 file changed, 40 insertions(+), 1 deletion(-) diff --git a/plugins/openchoreo-observability/src/components/RuntimeLogs/LogEntry.test.tsx b/plugins/openchoreo-observability/src/components/RuntimeLogs/LogEntry.test.tsx index 5efce186d..100d21001 100644 --- a/plugins/openchoreo-observability/src/components/RuntimeLogs/LogEntry.test.tsx +++ b/plugins/openchoreo-observability/src/components/RuntimeLogs/LogEntry.test.tsx @@ -1,5 +1,5 @@ import { useState } from 'react'; -import { MemoryRouter } from 'react-router-dom'; +import { MemoryRouter, useLocation } from 'react-router-dom'; import { render, screen } from '@testing-library/react'; import userEvent from '@testing-library/user-event'; import { LogEntry } from './LogEntry'; @@ -196,4 +196,43 @@ describe('LogEntry', () => { expect(screen.getByText('fallback-project')).toBeInTheDocument(); expect(screen.getByText('fallback-component')).toBeInTheDocument(); }); + + it('navigates to component runtime logs and stops propagation on component name link click', async () => { + const user = userEvent.setup(); + const onToggleExpand = jest.fn(); + + const LocationDisplay = () => { + const location = useLocation(); + return {location.pathname}; + }; + + render( + + + + , + ); + + // Assert initial location is '/' + expect(screen.getByTestId('location-path')).toHaveTextContent('/'); + + const link = screen.getByRole('link', { name: 'api-service' }); + await user.click(link); + + // Assert the location updated to runtime-logs path + expect(screen.getByTestId('location-path')).toHaveTextContent( + '/catalog/default/component/api-service/runtime-logs', + ); + + // Assert propagation was stopped (onToggleExpand was NOT called) + expect(onToggleExpand).not.toHaveBeenCalled(); + }); }); From f699bad10de2707f83f3ac61f9ec975a41575a46 Mon Sep 17 00:00:00 2001 From: kavix Date: Wed, 1 Jul 2026 07:26:25 +0530 Subject: [PATCH 09/11] chore: update yarn.lock to resolve @backstage/backend-test-utils@1.11.4 Signed-off-by: kavix --- yarn.lock | 505 ++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 489 insertions(+), 16 deletions(-) diff --git a/yarn.lock b/yarn.lock index 613b5a613..36b9c9025 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1669,7 +1669,7 @@ __metadata: languageName: node linkType: hard -"@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.14.7, @babel/parser@npm:^7.20.7, @babel/parser@npm:^7.23.9, @babel/parser@npm:^7.29.7": +"@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.14.7, @babel/parser@npm:^7.20.15, @babel/parser@npm:^7.20.7, @babel/parser@npm:^7.23.9, @babel/parser@npm:^7.29.7": version: 7.29.7 resolution: "@babel/parser@npm:7.29.7" dependencies: @@ -2088,6 +2088,18 @@ __metadata: languageName: node linkType: hard +"@backstage/backend-app-api@npm:^1.7.1": + version: 1.7.1 + resolution: "@backstage/backend-app-api@npm:1.7.1" + dependencies: + "@backstage/backend-plugin-api": "npm:^1.9.2" + "@backstage/config": "npm:^1.3.8" + "@backstage/connections": "npm:^0.1.0" + "@backstage/errors": "npm:^1.3.1" + checksum: 10c0/4bf44d45a7fa2a398ab37bd2b74b023b59d2fd5b0f0948ed25a88f5467a61fba2ee8f1587b781b2fca9975d91b8ed0496eed01bbd0d6d61a0259c293e995d20e + languageName: node + linkType: hard + "@backstage/backend-defaults@npm:^0.15.1": version: 0.15.1 resolution: "@backstage/backend-defaults@npm:0.15.1" @@ -2263,6 +2275,95 @@ __metadata: languageName: node linkType: hard +"@backstage/backend-defaults@npm:^0.17.3": + version: 0.17.4 + resolution: "@backstage/backend-defaults@npm:0.17.4" + dependencies: + "@aws-sdk/abort-controller": "npm:^3.347.0" + "@aws-sdk/client-codecommit": "npm:^3.350.0" + "@aws-sdk/client-s3": "npm:^3.350.0" + "@aws-sdk/credential-providers": "npm:^3.350.0" + "@aws-sdk/rds-signer": "npm:^3.0.0" + "@aws-sdk/types": "npm:^3.347.0" + "@azure/identity": "npm:^4.0.0" + "@azure/storage-blob": "npm:^12.5.0" + "@backstage/backend-app-api": "npm:^1.7.1" + "@backstage/backend-dev-utils": "npm:^0.1.7" + "@backstage/backend-plugin-api": "npm:^1.9.2" + "@backstage/cli-node": "npm:^0.3.3" + "@backstage/config": "npm:^1.3.8" + "@backstage/config-loader": "npm:^1.10.12" + "@backstage/errors": "npm:^1.3.1" + "@backstage/integration": "npm:^2.0.3" + "@backstage/integration-aws-node": "npm:^0.2.0" + "@backstage/plugin-auth-node": "npm:^0.7.2" + "@backstage/plugin-events-node": "npm:^0.4.23" + "@backstage/plugin-permission-common": "npm:^0.9.9" + "@backstage/plugin-permission-node": "npm:^0.11.1" + "@backstage/types": "npm:^1.2.2" + "@google-cloud/storage": "npm:^7.0.0" + "@keyv/memcache": "npm:^2.0.1" + "@keyv/redis": "npm:^4.0.1" + "@keyv/valkey": "npm:^1.0.1" + "@manypkg/get-packages": "npm:^1.1.3" + "@octokit/rest": "npm:^19.0.3" + "@opentelemetry/api": "npm:^1.9.0" + "@types/cors": "npm:^2.8.6" + "@types/express": "npm:^4.17.6" + archiver: "npm:^7.0.0" + base64-stream: "npm:^1.0.0" + compression: "npm:^1.7.4" + concat-stream: "npm:^2.0.0" + cookie: "npm:^0.7.0" + cors: "npm:^2.8.5" + cron: "npm:^3.0.0" + express: "npm:^4.22.0" + express-promise-router: "npm:^4.1.0" + express-rate-limit: "npm:^8.2.2" + fs-extra: "npm:^11.2.0" + git-url-parse: "npm:^15.0.0" + helmet: "npm:^6.0.0" + infinispan: "npm:^0.13.0" + iovalkey: "npm:^0.3.3" + is-glob: "npm:^4.0.3" + jose: "npm:^5.0.0" + keyv: "npm:^5.2.1" + knex: "npm:^3.0.0" + lodash: "npm:^4.17.21" + logform: "npm:^2.3.2" + luxon: "npm:^3.0.0" + minimatch: "npm:^10.2.1" + mysql2: "npm:^3.0.0" + node-fetch: "npm:^2.7.0" + node-forge: "npm:^1.3.2" + p-limit: "npm:^3.1.0" + path-to-regexp: "npm:^8.0.0" + pg: "npm:^8.11.3" + pg-connection-string: "npm:^2.3.0" + pg-format: "npm:^1.0.4" + rate-limit-redis: "npm:^4.2.0" + raw-body: "npm:^2.4.1" + selfsigned: "npm:^2.0.0" + tar: "npm:^7.5.6" + triple-beam: "npm:^1.4.1" + winston: "npm:^3.2.1" + winston-transport: "npm:^4.5.0" + yauzl: "npm:^3.2.1" + yn: "npm:^4.0.0" + zod: "npm:^3.25.76 || ^4.0.0" + zod-to-json-schema: "npm:^3.25.1" + peerDependencies: + "@google-cloud/cloud-sql-connector": ^1.4.0 + better-sqlite3: ^12.0.0 + peerDependenciesMeta: + "@google-cloud/cloud-sql-connector": + optional: true + better-sqlite3: + optional: true + checksum: 10c0/6958d8c087bd6d2ec43801468b8d0d34489c2b8163319eacd546fe8141f4af7af7c3668fc874d1b9106a7d0abce8eeb480d99c2d1cd78c27283c7548e8316b56 + languageName: node + linkType: hard + "@backstage/backend-dev-utils@npm:^0.1.6, @backstage/backend-dev-utils@npm:^0.1.7": version: 0.1.7 resolution: "@backstage/backend-dev-utils@npm:0.1.7" @@ -2316,17 +2417,38 @@ __metadata: languageName: node linkType: hard +"@backstage/backend-plugin-api@npm:^1.9.2": + version: 1.9.2 + resolution: "@backstage/backend-plugin-api@npm:1.9.2" + dependencies: + "@backstage/cli-common": "npm:^0.2.2" + "@backstage/config": "npm:^1.3.8" + "@backstage/errors": "npm:^1.3.1" + "@backstage/plugin-auth-node": "npm:^0.7.2" + "@backstage/plugin-permission-common": "npm:^0.9.9" + "@backstage/plugin-permission-node": "npm:^0.11.1" + "@backstage/types": "npm:^1.2.2" + "@types/express": "npm:^4.17.6" + "@types/json-schema": "npm:^7.0.6" + "@types/luxon": "npm:^3.0.0" + knex: "npm:^3.0.0" + luxon: "npm:^3.0.0" + zod: "npm:^3.25.76 || ^4.0.0" + checksum: 10c0/4ece1a7a599d558954cb5f97d1fd5840a5c8691a4006ebacbbed471588df133535c206cf972c29f4324d41a22b3826379a05149225dcef0e3a864ad7b98d264d + languageName: node + linkType: hard + "@backstage/backend-test-utils@npm:^1.11.3": - version: 1.11.3 - resolution: "@backstage/backend-test-utils@npm:1.11.3" + version: 1.11.4 + resolution: "@backstage/backend-test-utils@npm:1.11.4" dependencies: - "@backstage/backend-app-api": "npm:^1.7.0" - "@backstage/backend-defaults": "npm:^0.17.1" - "@backstage/backend-plugin-api": "npm:^1.9.1" + "@backstage/backend-app-api": "npm:^1.7.1" + "@backstage/backend-defaults": "npm:^0.17.3" + "@backstage/backend-plugin-api": "npm:^1.9.2" "@backstage/config": "npm:^1.3.8" "@backstage/errors": "npm:^1.3.1" - "@backstage/plugin-auth-node": "npm:^0.7.1" - "@backstage/plugin-events-node": "npm:^0.4.22" + "@backstage/plugin-auth-node": "npm:^0.7.2" + "@backstage/plugin-events-node": "npm:^0.4.23" "@backstage/plugin-permission-common": "npm:^0.9.9" "@backstage/types": "npm:^1.2.2" "@keyv/memcache": "npm:^2.0.1" @@ -2356,7 +2478,7 @@ __metadata: peerDependenciesMeta: "@types/jest": optional: true - checksum: 10c0/73111bd769f700a140df64b9c76319e32b76655227b647542bf5cbc1409addb03f6d56aabf67da7c9adc7ee34fe4e81f9eba9010368e1ae3d207326526858e69 + checksum: 10c0/6b53de951e3ee8c55c24e811e60de0074e12ef0a04f95ca66d634f6067ef2bfcb7b176d08236eb78c3a81ca8d97600f15ae823fcf4fdb9f27f4120c283792394 languageName: node linkType: hard @@ -2374,6 +2496,21 @@ __metadata: languageName: node linkType: hard +"@backstage/catalog-client@npm:^1.16.0": + version: 1.16.0 + resolution: "@backstage/catalog-client@npm:1.16.0" + dependencies: + "@backstage/catalog-model": "npm:^1.9.0" + "@backstage/errors": "npm:^1.3.1" + "@backstage/filter-predicates": "npm:^0.1.3" + "@backstage/plugin-catalog-common": "npm:^1.1.10" + cross-fetch: "npm:^4.0.0" + lodash: "npm:^4.17.21" + uri-template: "npm:^2.0.0" + checksum: 10c0/82b01a3d60051900aa2133c84ada0be2e23c5a1aad3535825a92a6858b564e79cc5f996d74c6ab26a504768941f38d606b3304b6af49913f26fa0a2f8941da0c + languageName: node + linkType: hard + "@backstage/catalog-model@npm:^1.7.6, @backstage/catalog-model@npm:^1.9.0": version: 1.9.0 resolution: "@backstage/catalog-model@npm:1.9.0" @@ -2781,6 +2918,37 @@ __metadata: languageName: node linkType: hard +"@backstage/cli-node@npm:^0.3.3": + version: 0.3.3 + resolution: "@backstage/cli-node@npm:0.3.3" + dependencies: + "@backstage/cli-common": "npm:^0.2.2" + "@backstage/errors": "npm:^1.3.1" + "@backstage/types": "npm:^1.2.2" + "@manypkg/get-packages": "npm:^1.1.3" + "@yarnpkg/lockfile": "npm:^1.1.0" + "@yarnpkg/parsers": "npm:^3.0.0" + chalk: "npm:^4.0.0" + cleye: "npm:^2.6.0" + fs-extra: "npm:^11.2.0" + keytar: "npm:^7.9.0" + pirates: "npm:^4.0.6" + proper-lockfile: "npm:^4.1.2" + semver: "npm:^7.5.3" + yaml: "npm:^2.0.0" + zod: "npm:^3.25.76 || ^4.0.0" + peerDependencies: + "@swc/core": ^1.15.6 + dependenciesMeta: + keytar: + optional: true + peerDependenciesMeta: + "@swc/core": + optional: true + checksum: 10c0/02b4369c09137073313cbeb320ae26eaed0cebbd3b4345ba4367c8d20719b44f066d0146c420612e9742c0966ed83255781f05c5da51125897dae2db37587cd2 + languageName: node + linkType: hard + "@backstage/cli@npm:^0.36.2": version: 0.36.2 resolution: "@backstage/cli@npm:0.36.2" @@ -2861,6 +3029,28 @@ __metadata: languageName: node linkType: hard +"@backstage/config-loader@npm:^1.10.12": + version: 1.10.12 + resolution: "@backstage/config-loader@npm:1.10.12" + dependencies: + "@backstage/cli-common": "npm:^0.2.2" + "@backstage/config": "npm:^1.3.8" + "@backstage/errors": "npm:^1.3.1" + "@backstage/types": "npm:^1.2.2" + "@types/json-schema": "npm:^7.0.6" + ajv: "npm:^8.10.0" + chokidar: "npm:^3.5.2" + fs-extra: "npm:^11.2.0" + json-schema-merge-allof: "npm:^0.8.1" + json-schema-traverse: "npm:^1.0.0" + lodash: "npm:^4.17.21" + minimist: "npm:^1.2.5" + typescript-json-schema: "npm:^0.67.0" + yaml: "npm:^2.0.0" + checksum: 10c0/b1eaed65f116d6d448755a03a975034a2d2ee91aad096efbea3b238a4e7e4b5baf9c13174003fcf8b7c57c8788f477f10b82f2ec3b8f59e71401d02e70705e2e + languageName: node + linkType: hard + "@backstage/config@npm:^1.3.3, @backstage/config@npm:^1.3.6, @backstage/config@npm:^1.3.8": version: 1.3.8 resolution: "@backstage/config@npm:1.3.8" @@ -2872,6 +3062,19 @@ __metadata: languageName: node linkType: hard +"@backstage/connections@npm:^0.1.0": + version: 0.1.0 + resolution: "@backstage/connections@npm:0.1.0" + dependencies: + "@backstage/backend-plugin-api": "npm:^1.9.2" + "@backstage/config": "npm:^1.3.8" + "@backstage/errors": "npm:^1.3.1" + "@backstage/types": "npm:^1.2.2" + zod: "npm:^3.25.76 || ^4.0.0" + checksum: 10c0/c290f5ddbf73a9e6be48328518d59461d313129da5c8179fbd28c311780c29981022c0dd9af41620a891bd9ebb01fedbf2995d8829be7ad804576daada5d69fa + languageName: node + linkType: hard + "@backstage/core-app-api@npm:^1.19.4, @backstage/core-app-api@npm:^1.20.1": version: 1.20.1 resolution: "@backstage/core-app-api@npm:1.20.1" @@ -3344,6 +3547,25 @@ __metadata: languageName: node linkType: hard +"@backstage/integration@npm:^2.0.3": + version: 2.0.3 + resolution: "@backstage/integration@npm:2.0.3" + dependencies: + "@azure/identity": "npm:^4.0.0" + "@azure/storage-blob": "npm:^12.5.0" + "@backstage/config": "npm:^1.3.8" + "@backstage/errors": "npm:^1.3.1" + "@octokit/auth-app": "npm:^4.0.0" + "@octokit/rest": "npm:^19.0.3" + cross-fetch: "npm:^4.0.0" + git-url-parse: "npm:^15.0.0" + lodash: "npm:^4.17.21" + luxon: "npm:^3.0.0" + p-throttle: "npm:^4.1.1" + checksum: 10c0/d56a5be601813b541dbb1899624a4379944ff3c44e3fca47ddd00ca0cf785fc3b4f1beead2be55af8dfa8adc03fb8f804f80784e66d7a85d615c4830a0dbbdb6 + languageName: node + linkType: hard + "@backstage/module-federation-common@npm:^0.1.4": version: 0.1.4 resolution: "@backstage/module-federation-common@npm:0.1.4" @@ -3628,6 +3850,29 @@ __metadata: languageName: node linkType: hard +"@backstage/plugin-auth-node@npm:^0.7.2": + version: 0.7.2 + resolution: "@backstage/plugin-auth-node@npm:0.7.2" + dependencies: + "@backstage/backend-plugin-api": "npm:^1.9.2" + "@backstage/catalog-client": "npm:^1.16.0" + "@backstage/catalog-model": "npm:^1.9.0" + "@backstage/config": "npm:^1.3.8" + "@backstage/errors": "npm:^1.3.1" + "@backstage/types": "npm:^1.2.2" + "@types/express": "npm:^4.17.6" + "@types/passport": "npm:^1.0.3" + express: "npm:^4.22.0" + jose: "npm:^5.0.0" + lodash: "npm:^4.17.21" + passport: "npm:^0.7.0" + zod: "npm:^3.25.76 || ^4.0.0" + zod-to-json-schema: "npm:^3.25.1" + zod-validation-error: "npm:^4.0.2" + checksum: 10c0/f03cae9a92db961db544af75852df16ed97a427cdd849b5112d0157551b4444082076821145cc4bc4dce59a7c433c24ea3f65d903dd089447cd554f0a8f5a3bc + languageName: node + linkType: hard + "@backstage/plugin-auth-react@npm:^0.1.27": version: 0.1.27 resolution: "@backstage/plugin-auth-react@npm:0.1.27" @@ -4010,6 +4255,23 @@ __metadata: languageName: node linkType: hard +"@backstage/plugin-events-node@npm:^0.4.23": + version: 0.4.23 + resolution: "@backstage/plugin-events-node@npm:0.4.23" + dependencies: + "@backstage/backend-plugin-api": "npm:^1.9.2" + "@backstage/errors": "npm:^1.3.1" + "@backstage/types": "npm:^1.2.2" + "@types/content-type": "npm:^1.1.8" + "@types/express": "npm:^4.17.6" + content-type: "npm:^1.0.5" + cross-fetch: "npm:^4.0.0" + express: "npm:^4.22.0" + uri-template: "npm:^2.0.0" + checksum: 10c0/dd82274bd7cc80f1ab5841c6ef9af9dd5aeab3c5916614bcce1e761989965f3186dc16ca41dc01f0ce9b24fb14ee36f4caec9a1800f8c054122c9bd266399e5b + languageName: node + linkType: hard + "@backstage/plugin-home-react@npm:^0.1.38": version: 0.1.38 resolution: "@backstage/plugin-home-react@npm:0.1.38" @@ -4301,6 +4563,23 @@ __metadata: languageName: node linkType: hard +"@backstage/plugin-permission-node@npm:^0.11.1": + version: 0.11.1 + resolution: "@backstage/plugin-permission-node@npm:0.11.1" + dependencies: + "@backstage/backend-plugin-api": "npm:^1.9.2" + "@backstage/config": "npm:^1.3.8" + "@backstage/errors": "npm:^1.3.1" + "@backstage/plugin-permission-common": "npm:^0.9.9" + "@types/express": "npm:^4.17.6" + express: "npm:^4.22.0" + express-promise-router: "npm:^4.1.0" + zod: "npm:^3.25.76 || ^4.0.0" + zod-to-json-schema: "npm:^3.25.1" + checksum: 10c0/96efe0e8ccdecc4c640cf693d29988de226bd7cce9495e973d4e8ba7e26838bfa23678b47f668c2d33d1c1ea70b7613291a919bcbf67700cc507df316b637a8b + languageName: node + linkType: hard + "@backstage/plugin-permission-react@npm:^0.4.39": version: 0.4.39 resolution: "@backstage/plugin-permission-react@npm:0.4.39" @@ -7015,6 +7294,15 @@ __metadata: languageName: node linkType: hard +"@jsdoc/salty@npm:^0.2.1": + version: 0.2.12 + resolution: "@jsdoc/salty@npm:0.2.12" + dependencies: + lodash: "npm:^4.18.1" + checksum: 10c0/46eff8275fed2102dea17762a1ee6266532b154ebce99326775e5cd4a1953d2f0ad4f6418539af09d017c855f65ce71a01270a62d16d0006e04776997aac5bd6 + languageName: node + linkType: hard + "@jsep-plugin/assignment@npm:^1.3.0": version: 1.3.0 resolution: "@jsep-plugin/assignment@npm:1.3.0" @@ -13807,6 +14095,13 @@ __metadata: languageName: node linkType: hard +"@types/linkify-it@npm:^5": + version: 5.0.0 + resolution: "@types/linkify-it@npm:5.0.0" + checksum: 10c0/7bbbf45b9dde17bf3f184fee585aef0e7342f6954f0377a24e4ff42ab5a85d5b806aaa5c8d16e2faf2a6b87b2d94467a196b7d2b85c9c7de2f0eaac5487aaab8 + languageName: node + linkType: hard + "@types/lodash@npm:^4.14.189": version: 4.17.20 resolution: "@types/lodash@npm:4.17.20" @@ -13842,6 +14137,16 @@ __metadata: languageName: node linkType: hard +"@types/markdown-it@npm:^14.1.1": + version: 14.1.2 + resolution: "@types/markdown-it@npm:14.1.2" + dependencies: + "@types/linkify-it": "npm:^5" + "@types/mdurl": "npm:^2" + checksum: 10c0/34f709f0476bd4e7b2ba7c3341072a6d532f1f4cb6f70aef371e403af8a08a7c372ba6907ac426bc618d356dab660c5b872791ff6c1ead80c483e0d639c6f127 + languageName: node + linkType: hard + "@types/mdast@npm:^3.0.0": version: 3.0.15 resolution: "@types/mdast@npm:3.0.15" @@ -13860,6 +14165,13 @@ __metadata: languageName: node linkType: hard +"@types/mdurl@npm:^2": + version: 2.0.0 + resolution: "@types/mdurl@npm:2.0.0" + checksum: 10c0/cde7bb571630ed1ceb3b92a28f7b59890bb38b8f34cd35326e2df43eebfc74985e6aa6fd4184e307393bad8a9e0783a519a3f9d13c8e03788c0f98e5ec869c5e + languageName: node + linkType: hard + "@types/methods@npm:^1.1.4": version: 1.1.4 resolution: "@types/methods@npm:1.1.4" @@ -16829,6 +17141,15 @@ __metadata: languageName: node linkType: hard +"catharsis@npm:^0.9.0": + version: 0.9.0 + resolution: "catharsis@npm:0.9.0" + dependencies: + lodash: "npm:^4.17.15" + checksum: 10c0/9ac03ca48154ac63cfdb6c1645481d9d04f3c3e0dea131debf3116a0c12aa47e8864be7dcf770932c46d75bdd844a99f0c116c234e57232ad1f427751498e7ed + languageName: node + linkType: hard + "ccount@npm:^2.0.0": version: 2.0.1 resolution: "ccount@npm:2.0.1" @@ -17071,7 +17392,7 @@ __metadata: languageName: node linkType: hard -"cleye@npm:^2.3.0": +"cleye@npm:^2.3.0, cleye@npm:^2.6.0": version: 2.6.0 resolution: "cleye@npm:2.6.0" dependencies: @@ -21061,7 +21382,7 @@ __metadata: languageName: node linkType: hard -"formstream@npm:^1.1.1": +"formstream@npm:^1.1.1, formstream@npm:^1.5.2": version: 1.5.2 resolution: "formstream@npm:1.5.2" dependencies: @@ -21758,7 +22079,7 @@ __metadata: languageName: node linkType: hard -"graceful-fs@npm:^4.1.2, graceful-fs@npm:^4.1.5, graceful-fs@npm:^4.1.6, graceful-fs@npm:^4.2.0, graceful-fs@npm:^4.2.11, graceful-fs@npm:^4.2.4, graceful-fs@npm:^4.2.6, graceful-fs@npm:^4.2.9": +"graceful-fs@npm:^4.1.2, graceful-fs@npm:^4.1.5, graceful-fs@npm:^4.1.6, graceful-fs@npm:^4.1.9, graceful-fs@npm:^4.2.0, graceful-fs@npm:^4.2.11, graceful-fs@npm:^4.2.4, graceful-fs@npm:^4.2.6, graceful-fs@npm:^4.2.9": version: 4.2.11 resolution: "graceful-fs@npm:4.2.11" checksum: 10c0/386d011a553e02bc594ac2ca0bd6d9e4c22d7fa8cfbfc448a6d148c59ea881b092db9dbe3547ae4b88e55f1b01f7c4a2ecc53b310c042793e63aa44cf6c257f2 @@ -22822,6 +23143,20 @@ __metadata: languageName: node linkType: hard +"infinispan@npm:^0.13.0": + version: 0.13.0 + resolution: "infinispan@npm:0.13.0" + dependencies: + buffer-xor: "npm:^2.0.2" + jsdoc: "npm:^4.0.2" + log4js: "npm:^6.4.6" + protobufjs: "npm:^7.0.0" + underscore: "npm:^1.13.3" + urllib: "npm:^4.9.0" + checksum: 10c0/1aa487b35584dc490e481b9530fee98c41485c69a250bbc8c52583fc898e01221233d977a4c51cd6f5e3734ab1b447b5c5b5b34820d78dd007320198e833d4ce + languageName: node + linkType: hard + "inflight@npm:^1.0.4": version: 1.0.6 resolution: "inflight@npm:1.0.6" @@ -24355,6 +24690,15 @@ __metadata: languageName: node linkType: hard +"js2xmlparser@npm:^4.0.2": + version: 4.0.2 + resolution: "js2xmlparser@npm:4.0.2" + dependencies: + xmlcreate: "npm:^2.0.4" + checksum: 10c0/b00de9351649d67d225e21734a08f456a4ecb3c29cafcd3bbecb36a8ab61ec841fad7f425bed50e21936fe387f472e49cfe75ce71d0beaacb0475b077c88ed39 + languageName: node + linkType: hard + "jsbn@npm:^1.1.0": version: 1.1.0 resolution: "jsbn@npm:1.1.0" @@ -24362,6 +24706,31 @@ __metadata: languageName: node linkType: hard +"jsdoc@npm:^4.0.2": + version: 4.0.5 + resolution: "jsdoc@npm:4.0.5" + dependencies: + "@babel/parser": "npm:^7.20.15" + "@jsdoc/salty": "npm:^0.2.1" + "@types/markdown-it": "npm:^14.1.1" + bluebird: "npm:^3.7.2" + catharsis: "npm:^0.9.0" + escape-string-regexp: "npm:^2.0.0" + js2xmlparser: "npm:^4.0.2" + klaw: "npm:^3.0.0" + markdown-it: "npm:^14.1.0" + markdown-it-anchor: "npm:^8.6.7" + marked: "npm:^4.0.10" + mkdirp: "npm:^1.0.4" + requizzle: "npm:^0.2.3" + strip-json-comments: "npm:^3.1.0" + underscore: "npm:~1.13.2" + bin: + jsdoc: jsdoc.js + checksum: 10c0/8192c234f60c58ee67342eb0532f66118849a921df9486fe15132c9228badb5e1bc7d10233b0821e661ab02e94c045f4cb8c110f6264620aae9b73bee84e1cc5 + languageName: node + linkType: hard + "jsdom@npm:^20.0.0": version: 20.0.3 resolution: "jsdom@npm:20.0.3" @@ -24855,6 +25224,15 @@ __metadata: languageName: node linkType: hard +"klaw@npm:^3.0.0": + version: 3.0.0 + resolution: "klaw@npm:3.0.0" + dependencies: + graceful-fs: "npm:^4.1.9" + checksum: 10c0/8391cf6df6337dce02e44628b620b39412d007eff162d907d37063c23986041d9b5c3558851d473c2fae92c1ccb0fde8864e36f9c55ac339fc469b517a2caa1b + languageName: node + linkType: hard + "kleur@npm:^3.0.3": version: 3.0.3 resolution: "kleur@npm:3.0.3" @@ -25527,6 +25905,16 @@ __metadata: languageName: node linkType: hard +"markdown-it-anchor@npm:^8.6.7": + version: 8.6.7 + resolution: "markdown-it-anchor@npm:8.6.7" + peerDependencies: + "@types/markdown-it": "*" + markdown-it: "*" + checksum: 10c0/f117866488013b7e4085a6b59d12bf62879181aef65ea2851f01ed1b763b8c052580c2c27fa8bd009421886220c6beeb373a65af9e885ce63a36ee9f8dcd0e89 + languageName: node + linkType: hard + "markdown-it@npm:^14.1.0": version: 14.1.0 resolution: "markdown-it@npm:14.1.0" @@ -25588,7 +25976,7 @@ __metadata: languageName: node linkType: hard -"marked@npm:^4.0.14": +"marked@npm:^4.0.10, marked@npm:^4.0.14": version: 4.3.0 resolution: "marked@npm:4.3.0" bin: @@ -27133,7 +27521,7 @@ __metadata: languageName: node linkType: hard -"mkdirp@npm:^1.0.3": +"mkdirp@npm:^1.0.3, mkdirp@npm:^1.0.4": version: 1.0.4 resolution: "mkdirp@npm:1.0.4" bin: @@ -30011,6 +30399,16 @@ __metadata: languageName: node linkType: hard +"qs@npm:^6.15.0": + version: 6.15.3 + resolution: "qs@npm:6.15.3" + dependencies: + es-define-property: "npm:^1.0.1" + side-channel: "npm:^1.1.1" + checksum: 10c0/8f3f6e45ece255347d57696628401cde29e9ec649fff698b53bd3150dea7cefdf33036e1bc1826b9f110bfa7cb0ec4ab9f5297eca628ce216c55af82c304e08e + languageName: node + linkType: hard + "quansync@npm:^0.2.7": version: 0.2.11 resolution: "quansync@npm:0.2.11" @@ -31386,6 +31784,15 @@ __metadata: languageName: node linkType: hard +"requizzle@npm:^0.2.3": + version: 0.2.4 + resolution: "requizzle@npm:0.2.4" + dependencies: + lodash: "npm:^4.17.21" + checksum: 10c0/ad138f987943aeda5f96cd1ccba9752c96352a729a7e3c3e2545568703f7fc9b978d9b46715803408ef178b0d61d36a4b1b506b367b7e78fe6d041fa5bfa5e06 + languageName: node + linkType: hard + "reselect@npm:5.1.1, reselect@npm:^5.1.0, reselect@npm:^5.1.1": version: 5.1.1 resolution: "reselect@npm:5.1.1" @@ -32418,6 +32825,16 @@ __metadata: languageName: node linkType: hard +"side-channel-list@npm:^1.0.1": + version: 1.0.1 + resolution: "side-channel-list@npm:1.0.1" + dependencies: + es-errors: "npm:^1.3.0" + object-inspect: "npm:^1.13.4" + checksum: 10c0/d346c787fd2f9f1c2fdea14f00e8250118db0e7596d85a6cb9faa75f105d31a73a8f7a341c93d7df2a2429098c3d37a77bd3be9e88c37094b8c01807bc77c7a2 + languageName: node + linkType: hard + "side-channel-map@npm:^1.0.1": version: 1.0.1 resolution: "side-channel-map@npm:1.0.1" @@ -32456,6 +32873,19 @@ __metadata: languageName: node linkType: hard +"side-channel@npm:^1.1.1": + version: 1.1.1 + resolution: "side-channel@npm:1.1.1" + dependencies: + es-errors: "npm:^1.3.0" + object-inspect: "npm:^1.13.4" + side-channel-list: "npm:^1.0.1" + side-channel-map: "npm:^1.0.1" + side-channel-weakmap: "npm:^1.0.2" + checksum: 10c0/dc0ab81d67f61bda9247d053ce93f41c3fd8ad2bdcb9cf9d8d2f8540d488f26d87a5e99ebfc07eea49ec025867b2452b705442d974b1478f0395e69f6bfb3270 + languageName: node + linkType: hard + "signal-exit@npm:^3.0.2, signal-exit@npm:^3.0.3, signal-exit@npm:^3.0.7": version: 3.0.7 resolution: "signal-exit@npm:3.0.7" @@ -33192,7 +33622,7 @@ __metadata: languageName: node linkType: hard -"strip-json-comments@npm:^3.1.1": +"strip-json-comments@npm:^3.1.0, strip-json-comments@npm:^3.1.1": version: 3.1.1 resolution: "strip-json-comments@npm:3.1.1" checksum: 10c0/9681a6257b925a7fa0f285851c0e613cc934a50661fa7bb41ca9cbbff89686bb4a0ee366e6ecedc4daafd01e83eee0720111ab294366fe7c185e935475ebcecd @@ -34375,7 +34805,7 @@ __metadata: languageName: node linkType: hard -"type-fest@npm:^4.3.1, type-fest@npm:^4.39.1": +"type-fest@npm:^4.3.1, type-fest@npm:^4.39.1, type-fest@npm:^4.41.0": version: 4.41.0 resolution: "type-fest@npm:4.41.0" checksum: 10c0/f5ca697797ed5e88d33ac8f1fec21921839871f808dc59345c9cf67345bfb958ce41bd821165dbf3ae591cedec2bf6fe8882098dfdd8dc54320b859711a2c1e4 @@ -34616,6 +35046,13 @@ __metadata: languageName: node linkType: hard +"underscore@npm:~1.13.2": + version: 1.13.8 + resolution: "underscore@npm:1.13.8" + checksum: 10c0/6677688daeda30484823e77c0b89ce4dcf29964a77d5a06f37299c007ab4bb1c66a0ff75e0d274620b62a1fe2a6ba29879f8214533ca611d71a1ae504f2bfc9b + languageName: node + linkType: hard + "undici-types@npm:~5.26.4": version: 5.26.5 resolution: "undici-types@npm:5.26.5" @@ -34660,6 +35097,13 @@ __metadata: languageName: node linkType: hard +"undici@npm:^7.24.0": + version: 7.28.0 + resolution: "undici@npm:7.28.0" + checksum: 10c0/fe781983a26098795e99bb1f64906cbb7d0bcaa029a26baade007b53ea67f2631d189b8f9671a31f4c8d0cb3773b7559608628ba54452fef51fec90e7c78bb0d + languageName: node + linkType: hard + "unicode-emoji-modifier-base@npm:^1.0.0": version: 1.0.0 resolution: "unicode-emoji-modifier-base@npm:1.0.0" @@ -34990,6 +35434,21 @@ __metadata: languageName: node linkType: hard +"urllib@npm:^4.9.0": + version: 4.9.1 + resolution: "urllib@npm:4.9.1" + dependencies: + form-data: "npm:^4.0.5" + formstream: "npm:^1.5.2" + mime-types: "npm:^2.1.35" + qs: "npm:^6.15.0" + type-fest: "npm:^4.41.0" + undici: "npm:^7.24.0" + ylru: "npm:^2.0.0" + checksum: 10c0/e73d0b0a3ae781e65ab79729e539519d4b941a28e0d8be55e4a1de9cd4723d6611cbaa74bc23cf855504b3461064ccdfed8bb2ad25621e0b97ddebcee6058a7a + languageName: node + linkType: hard + "urlpattern-polyfill@npm:^8.0.0": version: 8.0.2 resolution: "urlpattern-polyfill@npm:8.0.2" @@ -36011,6 +36470,13 @@ __metadata: languageName: node linkType: hard +"xmlcreate@npm:^2.0.4": + version: 2.0.4 + resolution: "xmlcreate@npm:2.0.4" + checksum: 10c0/fc4234e2d1942877d761d4f3d64410b54633d2ec60b13a5d56a6a06545aba39a0df8ed7ded10785a302f632eb4f0a4fedbf4bf10e17892e11d5075244b9e5705 + languageName: node + linkType: hard + "xtend@npm:^4.0.0, xtend@npm:^4.0.2": version: 4.0.2 resolution: "xtend@npm:4.0.2" @@ -36130,6 +36596,13 @@ __metadata: languageName: node linkType: hard +"ylru@npm:^2.0.0": + version: 2.0.0 + resolution: "ylru@npm:2.0.0" + checksum: 10c0/f44f0b3cdeedff3cc298c3db680bf9eb536d6fb8cff1d881b7497e181d52173f9e206f95d2a869fd2596515c2ae21aad57e2c0e98f51da40a0179858bdb34201 + languageName: node + linkType: hard + "yml-loader@npm:^2.1.0": version: 2.1.0 resolution: "yml-loader@npm:2.1.0" From a58cc9457a09b86caeadd4bf2ec58445dd053180 Mon Sep 17 00:00:00 2001 From: kavix Date: Wed, 1 Jul 2026 07:29:09 +0530 Subject: [PATCH 10/11] chore: refresh yarn.lock - remove stale @backstage/backend-test-utils entry from test-utils workspace Signed-off-by: kavix --- yarn.lock | 1 - 1 file changed, 1 deletion(-) diff --git a/yarn.lock b/yarn.lock index 36b9c9025..3678a308b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9732,7 +9732,6 @@ __metadata: version: 0.0.0-use.local resolution: "@openchoreo/test-utils@workspace:packages/test-utils" dependencies: - "@backstage/backend-test-utils": "npm:^1.11.3" "@backstage/catalog-model": "npm:^1.9.0" "@backstage/cli": "npm:^0.36.2" languageName: unknown From 3bbf3b8feda5583c6b1391f9673b8acf0a00beb5 Mon Sep 17 00:00:00 2001 From: kavix Date: Wed, 1 Jul 2026 07:32:32 +0530 Subject: [PATCH 11/11] style: fix prettier formatting in setupTests.ts Signed-off-by: kavix --- plugins/openchoreo/src/setupTests.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/plugins/openchoreo/src/setupTests.ts b/plugins/openchoreo/src/setupTests.ts index de87378af..70a2f4e8e 100644 --- a/plugins/openchoreo/src/setupTests.ts +++ b/plugins/openchoreo/src/setupTests.ts @@ -9,7 +9,6 @@ if (typeof global !== 'undefined') { (global as any).IS_REACT_ACT_ENVIRONMENT = true; } - const originalConsoleError = console.error; console.error = (...args: any[]) => { if (