From a49824feaee22b7afe010a7b1351aea1c10bc0f2 Mon Sep 17 00:00:00 2001 From: jrwpatterson Date: Mon, 11 Sep 2023 16:46:32 +1000 Subject: [PATCH 01/10] feat(start) allow overriding inspector on start Signed-off-by: jrwpatterson --- packages/cli/src/commands/index.ts | 6 +-- packages/cli/src/commands/start/command.ts | 6 +-- packages/cli/src/lib/bundler/config.ts | 47 +++++++++++-------- .../experimental/startBackendExperimental.ts | 21 ++++++--- 4 files changed, 49 insertions(+), 31 deletions(-) diff --git a/packages/cli/src/commands/index.ts b/packages/cli/src/commands/index.ts index b1941ddac8..651b853c5d 100644 --- a/packages/cli/src/commands/index.ts +++ b/packages/cli/src/commands/index.ts @@ -14,8 +14,8 @@ * limitations under the License. */ -import { assertError } from '@backstage/errors'; import { Command } from 'commander'; +import { assertError } from '@backstage/errors'; import { exitWithError } from '../lib/errors'; const configOption = [ @@ -115,9 +115,9 @@ export function registerScriptCommand(program: Command) { .option(...configOption) .option('--role ', 'Run the command with an explicit package role') .option('--check', 'Enable type checking and linting if available') - .option('--inspect', 'Enable debugger in Node.js environments') + .option('--inspect [host]', 'Enable debugger in Node.js environments') .option( - '--inspect-brk', + '--inspect-brk [host]', 'Enable debugger in Node.js environments, breaking before code starts', ) .action(lazy(() => import('./start').then(m => m.command))); diff --git a/packages/cli/src/commands/start/command.ts b/packages/cli/src/commands/start/command.ts index 9306ab247c..48122d5ac0 100644 --- a/packages/cli/src/commands/start/command.ts +++ b/packages/cli/src/commands/start/command.ts @@ -15,9 +15,9 @@ */ import { OptionValues } from 'commander'; +import { findRoleFromCommand } from '../../lib/role'; import { startBackend } from './startBackend'; import { startFrontend } from './startFrontend'; -import { findRoleFromCommand } from '../../lib/role'; export async function command(opts: OptionValues): Promise { const role = await findRoleFromCommand(opts); @@ -25,8 +25,8 @@ export async function command(opts: OptionValues): Promise { const options = { configPaths: opts.config as string[], checksEnabled: Boolean(opts.check), - inspectEnabled: Boolean(opts.inspect), - inspectBrkEnabled: Boolean(opts.inspectBrk), + inspectEnabled: opts.inspect, + inspectBrkEnabled: opts.inspectBrk, }; switch (role) { diff --git a/packages/cli/src/lib/bundler/config.ts b/packages/cli/src/lib/bundler/config.ts index c9238e7e48..ed20fe385a 100644 --- a/packages/cli/src/lib/bundler/config.ts +++ b/packages/cli/src/lib/bundler/config.ts @@ -14,30 +14,31 @@ * limitations under the License. */ -import fs from 'fs-extra'; -import { resolve as resolvePath, posix as posixPath } from 'path'; +import { BackendBundlingOptions, BundlingOptions } from './types'; +import { posix as posixPath, resolve as resolvePath } from 'path'; +import webpack, { ProvidePlugin } from 'webpack'; + +import { BackstagePackage } from '@backstage/cli-node'; +import { BundlingPaths } from './paths'; +import { Config } from '@backstage/config'; +import ESLintPlugin from 'eslint-webpack-plugin'; import ForkTsCheckerWebpackPlugin from 'fork-ts-checker-webpack-plugin'; import HtmlWebpackPlugin from 'html-webpack-plugin'; +import { LinkedPackageResolvePlugin } from './LinkedPackageResolvePlugin'; import ModuleScopePlugin from 'react-dev-utils/ModuleScopePlugin'; import { RunScriptWebpackPlugin } from 'run-script-webpack-plugin'; -import webpack, { ProvidePlugin } from 'webpack'; -import nodeExternals from 'webpack-node-externals'; -import { isChildPath } from '@backstage/cli-common'; -import { getPackages } from '@manypkg/get-packages'; -import { optimization } from './optimization'; -import { Config } from '@backstage/config'; -import { BundlingPaths } from './paths'; -import { transforms } from './transforms'; -import { LinkedPackageResolvePlugin } from './LinkedPackageResolvePlugin'; -import { BundlingOptions, BackendBundlingOptions } from './types'; -import { version } from '../../lib/version'; import { paths as cliPaths } from '../../lib/paths'; -import { BackstagePackage } from '@backstage/cli-node'; -import { runPlain } from '../run'; -import ESLintPlugin from 'eslint-webpack-plugin'; +import fs from 'fs-extra'; +import { getPackages } from '@manypkg/get-packages'; +import { isChildPath } from '@backstage/cli-common'; +import nodeExternals from 'webpack-node-externals'; +import { optimization } from './optimization'; import pickBy from 'lodash/pickBy'; -import yn from 'yn'; import { readEntryPoints } from '../entryPoints'; +import { runPlain } from '../run'; +import { transforms } from './transforms'; +import { version } from '../../lib/version'; +import yn from 'yn'; const BUILD_CACHE_ENV_VAR = 'BACKSTAGE_CLI_EXPERIMENTAL_BUILD_CACHE'; @@ -244,9 +245,17 @@ export async function createBackendConfig( const runScriptNodeArgs = new Array(); if (options.inspectEnabled) { - runScriptNodeArgs.push('--inspect'); + const inspect = + typeof options.inspectEnabled === 'string' + ? `--inspect=${options.inspectEnabled}` + : '--inspect'; + runScriptNodeArgs.push(inspect); } else if (options.inspectBrkEnabled) { - runScriptNodeArgs.push('--inspect-brk'); + const inspect = + typeof options.inspectBrkEnabled === 'string' + ? `--inspect-brk=${options.inspectBrkEnabled}` + : '--inspect-brk'; + runScriptNodeArgs.push(inspect); } return { diff --git a/packages/cli/src/lib/experimental/startBackendExperimental.ts b/packages/cli/src/lib/experimental/startBackendExperimental.ts index f4875ce1e5..3bc603a9da 100644 --- a/packages/cli/src/lib/experimental/startBackendExperimental.ts +++ b/packages/cli/src/lib/experimental/startBackendExperimental.ts @@ -14,16 +14,17 @@ * limitations under the License. */ +import { FSWatcher, watch } from 'chokidar'; + import { BackendServeOptions } from '../bundler/types'; import type { ChildProcess } from 'child_process'; -import { fileURLToPath } from 'url'; -import { isAbsolute as isAbsolutePath } from 'path'; -import { FSWatcher, watch } from 'chokidar'; import { IpcServer } from './IpcServer'; import { ServerDataStore } from './ServerDataStore'; import debounce from 'lodash/debounce'; -import spawn from 'cross-spawn'; +import { fileURLToPath } from 'url'; +import { isAbsolute as isAbsolutePath } from 'path'; import { paths } from '../paths'; +import spawn from 'cross-spawn'; const loaderArgs = [ '--require', @@ -68,9 +69,17 @@ export async function startBackendExperimental(options: BackendServeOptions) { const optionArgs = new Array(); if (options.inspectEnabled) { - optionArgs.push('--inspect'); + const inspect = + typeof options.inspectEnabled === 'string' + ? `--inspect=${options.inspectEnabled}` + : '--inspect'; + optionArgs.push(inspect); } else if (options.inspectBrkEnabled) { - optionArgs.push('--inspect-brk'); + const inspect = + typeof options.inspectBrkEnabled === 'string' + ? `--inspect-brk=${options.inspectBrkEnabled}` + : '--inspect-brk'; + optionArgs.push(inspect); } const userArgs = process.argv From 04eabd21bee4ef74ba092d8f5d1257cc21b6df4f Mon Sep 17 00:00:00 2001 From: jrwpatterson Date: Mon, 11 Sep 2023 16:58:13 +1000 Subject: [PATCH 02/10] feat(start) add change set Signed-off-by: jrwpatterson --- .changeset/brown-cameras-marry.md | 5 +++++ .github/vale/Vocab/Backstage/accept.txt | 1 + 2 files changed, 6 insertions(+) create mode 100644 .changeset/brown-cameras-marry.md diff --git a/.changeset/brown-cameras-marry.md b/.changeset/brown-cameras-marry.md new file mode 100644 index 0000000000..d393191028 --- /dev/null +++ b/.changeset/brown-cameras-marry.md @@ -0,0 +1,5 @@ +--- +'@backstage/cli': patch +--- + +Allows the ability to override the inspect and add after the `=` so you can now change the i.p. and port of the inspect and inspectBrk by adding for example `--inspect=0.0.0.0:9229` diff --git a/.github/vale/Vocab/Backstage/accept.txt b/.github/vale/Vocab/Backstage/accept.txt index 9fa7af5585..9f6cced436 100644 --- a/.github/vale/Vocab/Backstage/accept.txt +++ b/.github/vale/Vocab/Backstage/accept.txt @@ -448,3 +448,4 @@ zoomable zsh Pulumi Lightsail +inspectBrk From ca726055d857edc07bc10792719ff18a1c77fa7e Mon Sep 17 00:00:00 2001 From: jrwpatterson Date: Tue, 12 Sep 2023 10:27:38 +1000 Subject: [PATCH 03/10] feat(start) fix the cli report Signed-off-by: jrwpatterson --- packages/cli/cli-report.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/cli/cli-report.md b/packages/cli/cli-report.md index 6323eb0035..9d6ffd3f69 100644 --- a/packages/cli/cli-report.md +++ b/packages/cli/cli-report.md @@ -278,8 +278,8 @@ Options: --config --role --check - --inspect - --inspect-brk + --inspect [host] + --inspect-brk [host] -h, --help ``` From 16d80f885a72a7d7fbf29cae37d73317f2d9a282 Mon Sep 17 00:00:00 2001 From: Joe Patterson Date: Wed, 13 Sep 2023 09:35:54 +1000 Subject: [PATCH 04/10] Update .changeset/brown-cameras-marry.md Co-authored-by: Johan Haals Signed-off-by: Joe Patterson --- .changeset/brown-cameras-marry.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.changeset/brown-cameras-marry.md b/.changeset/brown-cameras-marry.md index d393191028..f87dc19b74 100644 --- a/.changeset/brown-cameras-marry.md +++ b/.changeset/brown-cameras-marry.md @@ -2,4 +2,4 @@ '@backstage/cli': patch --- -Allows the ability to override the inspect and add after the `=` so you can now change the i.p. and port of the inspect and inspectBrk by adding for example `--inspect=0.0.0.0:9229` +Added the ability to specify the listen address for the `--inspect` and `--inspect-brk` command. You can now set the ip and port of the `inspect` and `inspectBrk` by adding for example `--inspect=0.0.0.0:9229` From 962feef9f8923147ddd0c2c0fb7c4438d6f6c245 Mon Sep 17 00:00:00 2001 From: Joe Patterson Date: Wed, 13 Sep 2023 09:36:03 +1000 Subject: [PATCH 05/10] Update .github/vale/Vocab/Backstage/accept.txt Co-authored-by: Johan Haals Signed-off-by: Joe Patterson --- .github/vale/Vocab/Backstage/accept.txt | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/vale/Vocab/Backstage/accept.txt b/.github/vale/Vocab/Backstage/accept.txt index 9f6cced436..9fa7af5585 100644 --- a/.github/vale/Vocab/Backstage/accept.txt +++ b/.github/vale/Vocab/Backstage/accept.txt @@ -448,4 +448,3 @@ zoomable zsh Pulumi Lightsail -inspectBrk From b12f4d9769750a436bc032ae39554d2f90a86c30 Mon Sep 17 00:00:00 2001 From: jrwpatterson Date: Wed, 13 Sep 2023 09:41:41 +1000 Subject: [PATCH 06/10] fix(docs) fix lint issue Signed-off-by: jrwpatterson --- .changeset/brown-cameras-marry.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.changeset/brown-cameras-marry.md b/.changeset/brown-cameras-marry.md index f87dc19b74..cfa6911842 100644 --- a/.changeset/brown-cameras-marry.md +++ b/.changeset/brown-cameras-marry.md @@ -2,4 +2,4 @@ '@backstage/cli': patch --- -Added the ability to specify the listen address for the `--inspect` and `--inspect-brk` command. You can now set the ip and port of the `inspect` and `inspectBrk` by adding for example `--inspect=0.0.0.0:9229` +Added the ability to specify the listen address for the `--inspect` and `--inspect-brk` command. You can now set the `ip` and port of the `inspect` and `inspectBrk` by adding for example `--inspect=0.0.0.0:9229` From 1dbb77dc0f7b6905a9f032580c6f0390332296bf Mon Sep 17 00:00:00 2001 From: jrwpatterson Date: Wed, 13 Sep 2023 18:07:54 +1000 Subject: [PATCH 07/10] feat(start) reset mocks in KubernetsProxy to make tests work Signed-off-by: jrwpatterson --- .../src/service/KubernetesProxy.test.ts | 51 ++++++++++--------- 1 file changed, 27 insertions(+), 24 deletions(-) diff --git a/plugins/kubernetes-backend/src/service/KubernetesProxy.test.ts b/plugins/kubernetes-backend/src/service/KubernetesProxy.test.ts index aaadbfae0e..cf7f31b0bd 100644 --- a/plugins/kubernetes-backend/src/service/KubernetesProxy.test.ts +++ b/plugins/kubernetes-backend/src/service/KubernetesProxy.test.ts @@ -15,38 +15,37 @@ */ import 'buffer'; -import { errorHandler, getVoidLogger } from '@backstage/backend-common'; -import { setupRequestMockHandlers } from '@backstage/backend-test-utils'; -import { NotFoundError } from '@backstage/errors'; -import { - AuthorizeResult, - PermissionEvaluator, -} from '@backstage/plugin-permission-common'; -import { getMockReq, getMockRes } from '@jest-mock/express'; -import express from 'express'; -import Router from 'express-promise-router'; -import { Server } from 'http'; -import { rest } from 'msw'; -import { setupServer } from 'msw/node'; -import request from 'supertest'; -import { AddressInfo, WebSocket, WebSocketServer } from 'ws'; - -import { LocalKubectlProxyClusterLocator } from '../cluster-locator/LocalKubectlProxyLocator'; -import { - KubernetesAuthTranslator, - NoopKubernetesAuthTranslator, -} from '../kubernetes-auth-translator'; -import { ClusterDetails, KubernetesClustersSupplier } from '../types/types'; import { APPLICATION_JSON, HEADER_KUBERNETES_AUTH, HEADER_KUBERNETES_CLUSTER, KubernetesProxy, } from './KubernetesProxy'; +import { AddressInfo, WebSocket, WebSocketServer } from 'ws'; +import { + AuthorizeResult, + PermissionEvaluator, +} from '@backstage/plugin-permission-common'; +import { ClusterDetails, KubernetesClustersSupplier } from '../types/types'; +import { + KubernetesAuthTranslator, + NoopKubernetesAuthTranslator, +} from '../kubernetes-auth-translator'; +import { errorHandler, getVoidLogger } from '@backstage/backend-common'; +import { getMockReq, getMockRes } from '@jest-mock/express'; + +import { LocalKubectlProxyClusterLocator } from '../cluster-locator/LocalKubectlProxyLocator'; +import { NotFoundError } from '@backstage/errors'; +import type { Request } from 'express'; +import Router from 'express-promise-router'; +import { Server } from 'http'; +import express from 'express'; import fetch from 'cross-fetch'; import mockFs from 'mock-fs'; - -import type { Request } from 'express'; +import request from 'supertest'; +import { rest } from 'msw'; +import { setupRequestMockHandlers } from '@backstage/backend-test-utils'; +import { setupServer } from 'msw/node'; describe('KubernetesProxy', () => { let proxy: KubernetesProxy; @@ -66,6 +65,10 @@ describe('KubernetesProxy', () => { decorateClusterDetailsWithAuth: jest.fn(), }; + beforeAll(() => { + jest.resetAllMocks(); + }); + setupRequestMockHandlers(worker); const buildMockRequest = (clusterName: any, path: string): Request => { From b80e6364c53706952d60d16b9941c3473ffc487d Mon Sep 17 00:00:00 2001 From: jrwpatterson Date: Wed, 13 Sep 2023 18:34:06 +1000 Subject: [PATCH 08/10] feat(start) update mswjs/interceptors to get undefined agent Signed-off-by: jrwpatterson --- package.json | 1 + yarn.lock | 99 ++++++++++++++++++++++++++++++++++++++++------------ 2 files changed, 78 insertions(+), 22 deletions(-) diff --git a/package.json b/package.json index 0a8007944b..c29ac83733 100644 --- a/package.json +++ b/package.json @@ -45,6 +45,7 @@ ] }, "resolutions": { + "@mswjs/interceptors": "^0.20.0", "@types/react": "^17", "@types/react-dom": "^17" }, diff --git a/yarn.lock b/yarn.lock index 3bad15a7d1..b83ac6e3c2 100644 --- a/yarn.lock +++ b/yarn.lock @@ -13444,19 +13444,19 @@ __metadata: languageName: node linkType: hard -"@mswjs/interceptors@npm:^0.17.5": - version: 0.17.5 - resolution: "@mswjs/interceptors@npm:0.17.5" +"@mswjs/interceptors@npm:^0.20.0": + version: 0.20.0 + resolution: "@mswjs/interceptors@npm:0.20.0" dependencies: "@open-draft/until": ^1.0.3 + "@remix-run/web-fetch": ^4.3.2 "@types/debug": ^4.1.7 - "@xmldom/xmldom": ^0.7.5 debug: ^4.3.3 headers-polyfill: ^3.1.0 outvariant: ^1.2.1 - strict-event-emitter: ^0.2.4 + strict-event-emitter: ^0.4.6 web-encoding: ^1.1.5 - checksum: 0293ccc56c1c85fb7334cd5902574f7df20c26be74d633c83fde64ffd7620f81e08253fe7985c6b5ad3b64c04ad53c3610e9b9c07621518aabd977343026bb2b + checksum: e6f11d7c01ac83f54ed9012409d72d11dee75717d2988edc446861c465c4c0a946f4e663c687389ad7d5516f95e849c6eba909704d97f15f130739baa65a2934 languageName: node linkType: hard @@ -14715,6 +14715,49 @@ __metadata: languageName: node linkType: hard +"@remix-run/web-blob@npm:^3.0.5": + version: 3.0.5 + resolution: "@remix-run/web-blob@npm:3.0.5" + dependencies: + "@remix-run/web-stream": ^1.0.4 + web-encoding: 1.1.5 + checksum: 4a9dc463a322ad43cd1ea0d603b3aa1dc7187af8da68d40165f9bdb60a3f20dbba08c3db1cc24e3b935395da822e4cadfeebd4b0fb8d2403b2401d832a644ec2 + languageName: node + linkType: hard + +"@remix-run/web-fetch@npm:^4.3.2": + version: 4.3.8 + resolution: "@remix-run/web-fetch@npm:4.3.8" + dependencies: + "@remix-run/web-blob": ^3.0.5 + "@remix-run/web-form-data": ^3.0.5 + "@remix-run/web-stream": ^1.0.4 + "@web3-storage/multipart-parser": ^1.0.0 + abort-controller: ^3.0.0 + data-uri-to-buffer: ^3.0.1 + mrmime: ^1.0.0 + checksum: 27600848597e38be2f88fe5ac58bfeb6539d3ca0a37e8a54bf473286f0c8405eb1482c6bb585782e069319396463abf233b7f10647f54ea83e992ddb323e6669 + languageName: node + linkType: hard + +"@remix-run/web-form-data@npm:^3.0.5": + version: 3.0.5 + resolution: "@remix-run/web-form-data@npm:3.0.5" + dependencies: + web-encoding: 1.1.5 + checksum: 194b0e5d3842cbbdf53ebb72336d4983e51cb2f151e49679daa43715e4ee77b780e54068b8936ab30399e4309405abe46c6452649d519723ee40688789b3ea20 + languageName: node + linkType: hard + +"@remix-run/web-stream@npm:^1.0.4": + version: 1.0.4 + resolution: "@remix-run/web-stream@npm:1.0.4" + dependencies: + web-streams-polyfill: ^3.1.1 + checksum: 4d3336c38cc36aeb74d6ae34b2468ca225382f0599034c38f1965728e9a8e5d96829446f8de15a05203f7c6d29f03104a41a821aedaed11fe145283bd574ca42 + languageName: node + linkType: hard + "@repeaterjs/repeater@npm:3.0.4, @repeaterjs/repeater@npm:^3.0.4": version: 3.0.4 resolution: "@repeaterjs/repeater@npm:3.0.4" @@ -19224,6 +19267,13 @@ __metadata: languageName: node linkType: hard +"@web3-storage/multipart-parser@npm:^1.0.0": + version: 1.0.0 + resolution: "@web3-storage/multipart-parser@npm:1.0.0" + checksum: d8bbb5b9b0a5c07b4119c33c64ef4b7cc8d74ca4de2dd783f608f2653f81ef298bf04136b7cdb7ce97306d5fe2217572b5655236b70e1b625ed18d4a21a81913 + languageName: node + linkType: hard + "@webassemblyjs/ast@npm:1.11.6, @webassemblyjs/ast@npm:^1.11.5": version: 1.11.6 resolution: "@webassemblyjs/ast@npm:1.11.6" @@ -19470,7 +19520,7 @@ __metadata: languageName: node linkType: hard -"@xmldom/xmldom@npm:^0.7.0, @xmldom/xmldom@npm:^0.7.5, @xmldom/xmldom@npm:^0.7.6, @xmldom/xmldom@npm:^0.7.9": +"@xmldom/xmldom@npm:^0.7.0, @xmldom/xmldom@npm:^0.7.6, @xmldom/xmldom@npm:^0.7.9": version: 0.7.13 resolution: "@xmldom/xmldom@npm:0.7.13" checksum: b4054078530e5fa8ede9677425deff0fce6d965f4c477ca73f8490d8a089e60b8498a15560425a1335f5ff99ecb851ed2c734b0a9a879299a5694302f212f37a @@ -23538,6 +23588,13 @@ __metadata: languageName: node linkType: hard +"data-uri-to-buffer@npm:^3.0.1": + version: 3.0.1 + resolution: "data-uri-to-buffer@npm:3.0.1" + checksum: c59c3009686a78c071806b72f4810856ec28222f0f4e252aa495ec027ed9732298ceea99c50328cf59b151dd34cbc3ad6150bbb43e41fc56fa19f48c99e9fc30 + languageName: node + linkType: hard + "data-urls@npm:^2.0.0": version: 2.0.0 resolution: "data-urls@npm:2.0.0" @@ -33668,6 +33725,13 @@ __metadata: languageName: node linkType: hard +"mrmime@npm:^1.0.0": + version: 1.0.1 + resolution: "mrmime@npm:1.0.1" + checksum: cc979da44bbbffebaa8eaf7a45117e851f2d4cb46a3ada6ceb78130466a04c15a0de9a9ce1c8b8ba6f6e1b8618866b1352992bf1757d241c0ddca558b9f28a77 + languageName: node + linkType: hard + "ms@npm:2.0.0": version: 2.0.0 resolution: "ms@npm:2.0.0" @@ -40298,19 +40362,10 @@ __metadata: languageName: node linkType: hard -"strict-event-emitter@npm:^0.2.4": - version: 0.2.8 - resolution: "strict-event-emitter@npm:0.2.8" - dependencies: - events: ^3.3.0 - checksum: 6ac06fe72a6ee6ae64d20f1dd42838ea67342f1b5f32b03b3050d73ee6ecee44b4d5c4ed2965a7154b47991e215f373d4e789e2b2be2769cd80e356126c2ca53 - languageName: node - linkType: hard - -"strict-event-emitter@npm:^0.4.3": - version: 0.4.3 - resolution: "strict-event-emitter@npm:0.4.3" - checksum: ee335aba8a43bc6749d3337d78b9f6dbe8358d34b6eb38e7075dadf7f1cae621d96588663dda22dce17e6e7c7e281ddac79ca47421da8250bb4bf53b979508a5 +"strict-event-emitter@npm:^0.4.3, strict-event-emitter@npm:^0.4.6": + version: 0.4.6 + resolution: "strict-event-emitter@npm:0.4.6" + checksum: 4f4f2909613e7811de789991c06bfb770d6d6987e2ec5c66fa7485d0f07cc4e7e32eba0dcf26cee6d86af6c92946d7f4acdfaff57d0c4114df2cfa1bf0e3c091 languageName: node linkType: hard @@ -42873,7 +42928,7 @@ __metadata: languageName: node linkType: hard -"web-encoding@npm:^1.1.5": +"web-encoding@npm:1.1.5, web-encoding@npm:^1.1.5": version: 1.1.5 resolution: "web-encoding@npm:1.1.5" dependencies: @@ -42893,7 +42948,7 @@ __metadata: languageName: node linkType: hard -"web-streams-polyfill@npm:^3.2.0, web-streams-polyfill@npm:^3.2.1": +"web-streams-polyfill@npm:^3.1.1, web-streams-polyfill@npm:^3.2.0, web-streams-polyfill@npm:^3.2.1": version: 3.2.1 resolution: "web-streams-polyfill@npm:3.2.1" checksum: b119c78574b6d65935e35098c2afdcd752b84268e18746606af149e3c424e15621b6f1ff0b42b2676dc012fc4f0d313f964b41a4b5031e525faa03997457da02 From 12243fb03dd8ee8f15d5576a866f54f2a5a2df1a Mon Sep 17 00:00:00 2001 From: jrwpatterson Date: Wed, 13 Sep 2023 18:56:38 +1000 Subject: [PATCH 09/10] feat(start) revert changes Signed-off-by: jrwpatterson --- package.json | 1 - .../src/service/KubernetesProxy.test.ts | 4 - yarn.lock | 98 +++++-------------- 3 files changed, 25 insertions(+), 78 deletions(-) diff --git a/package.json b/package.json index c29ac83733..0a8007944b 100644 --- a/package.json +++ b/package.json @@ -45,7 +45,6 @@ ] }, "resolutions": { - "@mswjs/interceptors": "^0.20.0", "@types/react": "^17", "@types/react-dom": "^17" }, diff --git a/plugins/kubernetes-backend/src/service/KubernetesProxy.test.ts b/plugins/kubernetes-backend/src/service/KubernetesProxy.test.ts index cf7f31b0bd..663b47024e 100644 --- a/plugins/kubernetes-backend/src/service/KubernetesProxy.test.ts +++ b/plugins/kubernetes-backend/src/service/KubernetesProxy.test.ts @@ -65,10 +65,6 @@ describe('KubernetesProxy', () => { decorateClusterDetailsWithAuth: jest.fn(), }; - beforeAll(() => { - jest.resetAllMocks(); - }); - setupRequestMockHandlers(worker); const buildMockRequest = (clusterName: any, path: string): Request => { diff --git a/yarn.lock b/yarn.lock index b83ac6e3c2..2639da8bdc 100644 --- a/yarn.lock +++ b/yarn.lock @@ -13444,19 +13444,19 @@ __metadata: languageName: node linkType: hard -"@mswjs/interceptors@npm:^0.20.0": - version: 0.20.0 - resolution: "@mswjs/interceptors@npm:0.20.0" +"@mswjs/interceptors@npm:^0.17.5": + version: 0.17.9 + resolution: "@mswjs/interceptors@npm:0.17.9" dependencies: "@open-draft/until": ^1.0.3 - "@remix-run/web-fetch": ^4.3.2 "@types/debug": ^4.1.7 + "@xmldom/xmldom": ^0.8.3 debug: ^4.3.3 headers-polyfill: ^3.1.0 outvariant: ^1.2.1 - strict-event-emitter: ^0.4.6 + strict-event-emitter: ^0.2.4 web-encoding: ^1.1.5 - checksum: e6f11d7c01ac83f54ed9012409d72d11dee75717d2988edc446861c465c4c0a946f4e663c687389ad7d5516f95e849c6eba909704d97f15f130739baa65a2934 + checksum: 4df726cbee93d8baa54ead1ecb11e98124468659f51eb659ef8ead4aca7d6375198baf412ea17d4810fa5f1ee4fa53994702cb3b0b4f6f427a2f0fb890020192 languageName: node linkType: hard @@ -14715,49 +14715,6 @@ __metadata: languageName: node linkType: hard -"@remix-run/web-blob@npm:^3.0.5": - version: 3.0.5 - resolution: "@remix-run/web-blob@npm:3.0.5" - dependencies: - "@remix-run/web-stream": ^1.0.4 - web-encoding: 1.1.5 - checksum: 4a9dc463a322ad43cd1ea0d603b3aa1dc7187af8da68d40165f9bdb60a3f20dbba08c3db1cc24e3b935395da822e4cadfeebd4b0fb8d2403b2401d832a644ec2 - languageName: node - linkType: hard - -"@remix-run/web-fetch@npm:^4.3.2": - version: 4.3.8 - resolution: "@remix-run/web-fetch@npm:4.3.8" - dependencies: - "@remix-run/web-blob": ^3.0.5 - "@remix-run/web-form-data": ^3.0.5 - "@remix-run/web-stream": ^1.0.4 - "@web3-storage/multipart-parser": ^1.0.0 - abort-controller: ^3.0.0 - data-uri-to-buffer: ^3.0.1 - mrmime: ^1.0.0 - checksum: 27600848597e38be2f88fe5ac58bfeb6539d3ca0a37e8a54bf473286f0c8405eb1482c6bb585782e069319396463abf233b7f10647f54ea83e992ddb323e6669 - languageName: node - linkType: hard - -"@remix-run/web-form-data@npm:^3.0.5": - version: 3.0.5 - resolution: "@remix-run/web-form-data@npm:3.0.5" - dependencies: - web-encoding: 1.1.5 - checksum: 194b0e5d3842cbbdf53ebb72336d4983e51cb2f151e49679daa43715e4ee77b780e54068b8936ab30399e4309405abe46c6452649d519723ee40688789b3ea20 - languageName: node - linkType: hard - -"@remix-run/web-stream@npm:^1.0.4": - version: 1.0.4 - resolution: "@remix-run/web-stream@npm:1.0.4" - dependencies: - web-streams-polyfill: ^3.1.1 - checksum: 4d3336c38cc36aeb74d6ae34b2468ca225382f0599034c38f1965728e9a8e5d96829446f8de15a05203f7c6d29f03104a41a821aedaed11fe145283bd574ca42 - languageName: node - linkType: hard - "@repeaterjs/repeater@npm:3.0.4, @repeaterjs/repeater@npm:^3.0.4": version: 3.0.4 resolution: "@repeaterjs/repeater@npm:3.0.4" @@ -19267,13 +19224,6 @@ __metadata: languageName: node linkType: hard -"@web3-storage/multipart-parser@npm:^1.0.0": - version: 1.0.0 - resolution: "@web3-storage/multipart-parser@npm:1.0.0" - checksum: d8bbb5b9b0a5c07b4119c33c64ef4b7cc8d74ca4de2dd783f608f2653f81ef298bf04136b7cdb7ce97306d5fe2217572b5655236b70e1b625ed18d4a21a81913 - languageName: node - linkType: hard - "@webassemblyjs/ast@npm:1.11.6, @webassemblyjs/ast@npm:^1.11.5": version: 1.11.6 resolution: "@webassemblyjs/ast@npm:1.11.6" @@ -19527,6 +19477,13 @@ __metadata: languageName: node linkType: hard +"@xmldom/xmldom@npm:^0.8.3": + version: 0.8.10 + resolution: "@xmldom/xmldom@npm:0.8.10" + checksum: 4c136aec31fb3b49aaa53b6fcbfe524d02a1dc0d8e17ee35bd3bf35e9ce1344560481cd1efd086ad1a4821541482528672306d5e37cdbd187f33d7fadd3e2cf0 + languageName: node + linkType: hard + "@xobotyi/scrollbar-width@npm:^1.9.5": version: 1.9.5 resolution: "@xobotyi/scrollbar-width@npm:1.9.5" @@ -23588,13 +23545,6 @@ __metadata: languageName: node linkType: hard -"data-uri-to-buffer@npm:^3.0.1": - version: 3.0.1 - resolution: "data-uri-to-buffer@npm:3.0.1" - checksum: c59c3009686a78c071806b72f4810856ec28222f0f4e252aa495ec027ed9732298ceea99c50328cf59b151dd34cbc3ad6150bbb43e41fc56fa19f48c99e9fc30 - languageName: node - linkType: hard - "data-urls@npm:^2.0.0": version: 2.0.0 resolution: "data-urls@npm:2.0.0" @@ -33725,13 +33675,6 @@ __metadata: languageName: node linkType: hard -"mrmime@npm:^1.0.0": - version: 1.0.1 - resolution: "mrmime@npm:1.0.1" - checksum: cc979da44bbbffebaa8eaf7a45117e851f2d4cb46a3ada6ceb78130466a04c15a0de9a9ce1c8b8ba6f6e1b8618866b1352992bf1757d241c0ddca558b9f28a77 - languageName: node - linkType: hard - "ms@npm:2.0.0": version: 2.0.0 resolution: "ms@npm:2.0.0" @@ -40362,7 +40305,16 @@ __metadata: languageName: node linkType: hard -"strict-event-emitter@npm:^0.4.3, strict-event-emitter@npm:^0.4.6": +"strict-event-emitter@npm:^0.2.4": + version: 0.2.8 + resolution: "strict-event-emitter@npm:0.2.8" + dependencies: + events: ^3.3.0 + checksum: 6ac06fe72a6ee6ae64d20f1dd42838ea67342f1b5f32b03b3050d73ee6ecee44b4d5c4ed2965a7154b47991e215f373d4e789e2b2be2769cd80e356126c2ca53 + languageName: node + linkType: hard + +"strict-event-emitter@npm:^0.4.3": version: 0.4.6 resolution: "strict-event-emitter@npm:0.4.6" checksum: 4f4f2909613e7811de789991c06bfb770d6d6987e2ec5c66fa7485d0f07cc4e7e32eba0dcf26cee6d86af6c92946d7f4acdfaff57d0c4114df2cfa1bf0e3c091 @@ -42928,7 +42880,7 @@ __metadata: languageName: node linkType: hard -"web-encoding@npm:1.1.5, web-encoding@npm:^1.1.5": +"web-encoding@npm:^1.1.5": version: 1.1.5 resolution: "web-encoding@npm:1.1.5" dependencies: @@ -42948,7 +42900,7 @@ __metadata: languageName: node linkType: hard -"web-streams-polyfill@npm:^3.1.1, web-streams-polyfill@npm:^3.2.0, web-streams-polyfill@npm:^3.2.1": +"web-streams-polyfill@npm:^3.2.0, web-streams-polyfill@npm:^3.2.1": version: 3.2.1 resolution: "web-streams-polyfill@npm:3.2.1" checksum: b119c78574b6d65935e35098c2afdcd752b84268e18746606af149e3c424e15621b6f1ff0b42b2676dc012fc4f0d313f964b41a4b5031e525faa03997457da02 From 3cc9e2eb9a8b8910f2983acc69f0b2697a1ad305 Mon Sep 17 00:00:00 2001 From: Joe Patterson Date: Wed, 13 Sep 2023 19:47:22 +1000 Subject: [PATCH 10/10] Discard changes to plugins/kubernetes-backend/src/service/KubernetesProxy.test.ts Signed-off-by: jrwpatterson --- .../src/service/KubernetesProxy.test.ts | 47 ++++++++++--------- yarn.lock | 23 ++++----- 2 files changed, 32 insertions(+), 38 deletions(-) diff --git a/plugins/kubernetes-backend/src/service/KubernetesProxy.test.ts b/plugins/kubernetes-backend/src/service/KubernetesProxy.test.ts index 663b47024e..aaadbfae0e 100644 --- a/plugins/kubernetes-backend/src/service/KubernetesProxy.test.ts +++ b/plugins/kubernetes-backend/src/service/KubernetesProxy.test.ts @@ -15,37 +15,38 @@ */ import 'buffer'; +import { errorHandler, getVoidLogger } from '@backstage/backend-common'; +import { setupRequestMockHandlers } from '@backstage/backend-test-utils'; +import { NotFoundError } from '@backstage/errors'; +import { + AuthorizeResult, + PermissionEvaluator, +} from '@backstage/plugin-permission-common'; +import { getMockReq, getMockRes } from '@jest-mock/express'; +import express from 'express'; +import Router from 'express-promise-router'; +import { Server } from 'http'; +import { rest } from 'msw'; +import { setupServer } from 'msw/node'; +import request from 'supertest'; +import { AddressInfo, WebSocket, WebSocketServer } from 'ws'; + +import { LocalKubectlProxyClusterLocator } from '../cluster-locator/LocalKubectlProxyLocator'; +import { + KubernetesAuthTranslator, + NoopKubernetesAuthTranslator, +} from '../kubernetes-auth-translator'; +import { ClusterDetails, KubernetesClustersSupplier } from '../types/types'; import { APPLICATION_JSON, HEADER_KUBERNETES_AUTH, HEADER_KUBERNETES_CLUSTER, KubernetesProxy, } from './KubernetesProxy'; -import { AddressInfo, WebSocket, WebSocketServer } from 'ws'; -import { - AuthorizeResult, - PermissionEvaluator, -} from '@backstage/plugin-permission-common'; -import { ClusterDetails, KubernetesClustersSupplier } from '../types/types'; -import { - KubernetesAuthTranslator, - NoopKubernetesAuthTranslator, -} from '../kubernetes-auth-translator'; -import { errorHandler, getVoidLogger } from '@backstage/backend-common'; -import { getMockReq, getMockRes } from '@jest-mock/express'; - -import { LocalKubectlProxyClusterLocator } from '../cluster-locator/LocalKubectlProxyLocator'; -import { NotFoundError } from '@backstage/errors'; -import type { Request } from 'express'; -import Router from 'express-promise-router'; -import { Server } from 'http'; -import express from 'express'; import fetch from 'cross-fetch'; import mockFs from 'mock-fs'; -import request from 'supertest'; -import { rest } from 'msw'; -import { setupRequestMockHandlers } from '@backstage/backend-test-utils'; -import { setupServer } from 'msw/node'; + +import type { Request } from 'express'; describe('KubernetesProxy', () => { let proxy: KubernetesProxy; diff --git a/yarn.lock b/yarn.lock index 2639da8bdc..3bad15a7d1 100644 --- a/yarn.lock +++ b/yarn.lock @@ -13445,18 +13445,18 @@ __metadata: linkType: hard "@mswjs/interceptors@npm:^0.17.5": - version: 0.17.9 - resolution: "@mswjs/interceptors@npm:0.17.9" + version: 0.17.5 + resolution: "@mswjs/interceptors@npm:0.17.5" dependencies: "@open-draft/until": ^1.0.3 "@types/debug": ^4.1.7 - "@xmldom/xmldom": ^0.8.3 + "@xmldom/xmldom": ^0.7.5 debug: ^4.3.3 headers-polyfill: ^3.1.0 outvariant: ^1.2.1 strict-event-emitter: ^0.2.4 web-encoding: ^1.1.5 - checksum: 4df726cbee93d8baa54ead1ecb11e98124468659f51eb659ef8ead4aca7d6375198baf412ea17d4810fa5f1ee4fa53994702cb3b0b4f6f427a2f0fb890020192 + checksum: 0293ccc56c1c85fb7334cd5902574f7df20c26be74d633c83fde64ffd7620f81e08253fe7985c6b5ad3b64c04ad53c3610e9b9c07621518aabd977343026bb2b languageName: node linkType: hard @@ -19470,20 +19470,13 @@ __metadata: languageName: node linkType: hard -"@xmldom/xmldom@npm:^0.7.0, @xmldom/xmldom@npm:^0.7.6, @xmldom/xmldom@npm:^0.7.9": +"@xmldom/xmldom@npm:^0.7.0, @xmldom/xmldom@npm:^0.7.5, @xmldom/xmldom@npm:^0.7.6, @xmldom/xmldom@npm:^0.7.9": version: 0.7.13 resolution: "@xmldom/xmldom@npm:0.7.13" checksum: b4054078530e5fa8ede9677425deff0fce6d965f4c477ca73f8490d8a089e60b8498a15560425a1335f5ff99ecb851ed2c734b0a9a879299a5694302f212f37a languageName: node linkType: hard -"@xmldom/xmldom@npm:^0.8.3": - version: 0.8.10 - resolution: "@xmldom/xmldom@npm:0.8.10" - checksum: 4c136aec31fb3b49aaa53b6fcbfe524d02a1dc0d8e17ee35bd3bf35e9ce1344560481cd1efd086ad1a4821541482528672306d5e37cdbd187f33d7fadd3e2cf0 - languageName: node - linkType: hard - "@xobotyi/scrollbar-width@npm:^1.9.5": version: 1.9.5 resolution: "@xobotyi/scrollbar-width@npm:1.9.5" @@ -40315,9 +40308,9 @@ __metadata: linkType: hard "strict-event-emitter@npm:^0.4.3": - version: 0.4.6 - resolution: "strict-event-emitter@npm:0.4.6" - checksum: 4f4f2909613e7811de789991c06bfb770d6d6987e2ec5c66fa7485d0f07cc4e7e32eba0dcf26cee6d86af6c92946d7f4acdfaff57d0c4114df2cfa1bf0e3c091 + version: 0.4.3 + resolution: "strict-event-emitter@npm:0.4.3" + checksum: ee335aba8a43bc6749d3337d78b9f6dbe8358d34b6eb38e7075dadf7f1cae621d96588663dda22dce17e6e7c7e281ddac79ca47421da8250bb4bf53b979508a5 languageName: node linkType: hard