From 875e36cb453088e823f08ae04fdf4149f49e2a09 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 28 Jul 2026 19:44:03 +0000 Subject: [PATCH 1/2] chore(deps-dev): bump @biomejs/biome from 2.5.2 to 2.5.5 Bumps [@biomejs/biome](https://github.com/biomejs/biome/tree/HEAD/packages/@biomejs/biome) from 2.5.2 to 2.5.5. - [Release notes](https://github.com/biomejs/biome/releases) - [Changelog](https://github.com/biomejs/biome/blob/main/packages/@biomejs/biome/CHANGELOG.md) - [Commits](https://github.com/biomejs/biome/commits/@biomejs/biome@2.5.5/packages/@biomejs/biome) --- updated-dependencies: - dependency-name: "@biomejs/biome" dependency-version: 2.5.5 dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- bun.lock | 20 ++++++++++---------- package.json | 2 +- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/bun.lock b/bun.lock index 3c174ae..1384923 100644 --- a/bun.lock +++ b/bun.lock @@ -21,7 +21,7 @@ "zod": "^4.4.3", }, "devDependencies": { - "@biomejs/biome": "2.5.2", + "@biomejs/biome": "2.5.5", "@types/bun": "latest", "@types/semver": "^7.7.1", "bunup": "^0.16.32", @@ -59,23 +59,23 @@ "@babel/types": ["@babel/types@7.29.0", "", { "dependencies": { "@babel/helper-string-parser": "^7.27.1", "@babel/helper-validator-identifier": "^7.28.5" } }, "sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A=="], - "@biomejs/biome": ["@biomejs/biome@2.5.2", "", { "optionalDependencies": { "@biomejs/cli-darwin-arm64": "2.5.2", "@biomejs/cli-darwin-x64": "2.5.2", "@biomejs/cli-linux-arm64": "2.5.2", "@biomejs/cli-linux-arm64-musl": "2.5.2", "@biomejs/cli-linux-x64": "2.5.2", "@biomejs/cli-linux-x64-musl": "2.5.2", "@biomejs/cli-win32-arm64": "2.5.2", "@biomejs/cli-win32-x64": "2.5.2" }, "bin": { "biome": "bin/biome" } }, "sha512-VQ3RCqr7JmDIX+w6stWYl+g/3bYofN3q2wDBHUKKc/c7i5QWrFKFBZYCYPWTE6agsUPMIZZe6/CMmVUfUAhkKA=="], + "@biomejs/biome": ["@biomejs/biome@2.5.5", "", { "optionalDependencies": { "@biomejs/cli-darwin-arm64": "2.5.5", "@biomejs/cli-darwin-x64": "2.5.5", "@biomejs/cli-linux-arm64": "2.5.5", "@biomejs/cli-linux-arm64-musl": "2.5.5", "@biomejs/cli-linux-x64": "2.5.5", "@biomejs/cli-linux-x64-musl": "2.5.5", "@biomejs/cli-win32-arm64": "2.5.5", "@biomejs/cli-win32-x64": "2.5.5" }, "bin": { "biome": "bin/biome" } }, "sha512-r1S8nFsAG1MY+vJFZALzIvwXAJv6ejDQ0mxP21Tgr9YK3ZFtjrvbBwDdNhx1rUqvccEIeNg20cYCNzl6Cr69pQ=="], - "@biomejs/cli-darwin-arm64": ["@biomejs/cli-darwin-arm64@2.5.2", "", { "os": "darwin", "cpu": "arm64" }, "sha512-e7P3P7EkwFc/KiX2AHw4YDLIBOMfG9CPCAwy52k5Bp0dfhkozx9hf6wCmIr2QeXy2XeccJ3V/Sg+hDmzYEqxSg=="], + "@biomejs/cli-darwin-arm64": ["@biomejs/cli-darwin-arm64@2.5.5", "", { "os": "darwin", "cpu": "arm64" }, "sha512-kUrAhXVWUrwmAUnV2iXSK7umxKFysTwvqK+Ty6ptUcLY/7T3SnCAjUowE4uvwaEej6nXZ7hu/dTtbokKdsPeag=="], - "@biomejs/cli-darwin-x64": ["@biomejs/cli-darwin-x64@2.5.2", "", { "os": "darwin", "cpu": "x64" }, "sha512-ymzMvjC1Jg0b9K0D26ZdARqFQXs7MocfLC5FOCGfkC0Ss+ACUJkX5364ZM5nT4NLZanHRZNVrZEy+Ibwcvux/g=="], + "@biomejs/cli-darwin-x64": ["@biomejs/cli-darwin-x64@2.5.5", "", { "os": "darwin", "cpu": "x64" }, "sha512-DamiYc5bUYZ2uxlfc+RLEPtz1Abb6PO5eTbOkufLpSGwd/7AMQAdxhFYiXmwwkJL8IsT8S7GvdgwDHqaMFAvKw=="], - "@biomejs/cli-linux-arm64": ["@biomejs/cli-linux-arm64@2.5.2", "", { "os": "linux", "cpu": "arm64" }, "sha512-t7sseOmqND57uUWTwlawU6BYj+J06T/9EkydzBhkrgw/FK3QVhjU2wsJR0frljrKZ0/I8A/rYw7284QgqjQfIQ=="], + "@biomejs/cli-linux-arm64": ["@biomejs/cli-linux-arm64@2.5.5", "", { "os": "linux", "cpu": "arm64" }, "sha512-lRKF/pH/1RiYiBKExi3TCZVAtvzEm77aifrvcNiDFrR9WxeAnDUjDnseb6y2XV85mjitLs6SILGm2XG77cHtSQ=="], - "@biomejs/cli-linux-arm64-musl": ["@biomejs/cli-linux-arm64-musl@2.5.2", "", { "os": "linux", "cpu": "arm64" }, "sha512-w+ANG0ZvTu9IeEg9QnstoOnk6L0fpwJifW6aHR18+cb5Z39bkANItYjAfMrnvce5tmMK+IQ6nPX7/kQFdam5iw=="], + "@biomejs/cli-linux-arm64-musl": ["@biomejs/cli-linux-arm64-musl@2.5.5", "", { "os": "linux", "cpu": "arm64" }, "sha512-U4WMl/sy/E/Q73vf15VspakLRRs2LDFcCeBxJnQfXzssb88zpV6PJPaQ3ezhQ7H6Ht2/8bvuZeHgJWzmoxllZg=="], - "@biomejs/cli-linux-x64": ["@biomejs/cli-linux-x64@2.5.2", "", { "os": "linux", "cpu": "x64" }, "sha512-M/lOZrewzTCRDINbjhQ1gYYru37KlD3kJBQwwKCG0ckz5E9IZwIoJ3X0wBwRXA+yBDIwWUuPBHS67HzJY4dTfA=="], + "@biomejs/cli-linux-x64": ["@biomejs/cli-linux-x64@2.5.5", "", { "os": "linux", "cpu": "x64" }, "sha512-H/O39nJEw/2Zm/fm7hrmxxoF8kK/aU1uCoPp70ruXVbomaAdLpJJnCmL11Q2JotT8QVHH06So04Oq53lCSwSwQ=="], - "@biomejs/cli-linux-x64-musl": ["@biomejs/cli-linux-x64-musl@2.5.2", "", { "os": "linux", "cpu": "x64" }, "sha512-VArNLAzND063tF+XY0yPyM+DyahpzOMzOAvb7qs259nhjJWRjvjZdssuA+Rfl+l07+NOesKZ0Xu2yFrXyBMtzw=="], + "@biomejs/cli-linux-x64-musl": ["@biomejs/cli-linux-x64-musl@2.5.5", "", { "os": "linux", "cpu": "x64" }, "sha512-m7wC7tjX5Lrmo69dc4md8FeKpPU1NTCY1v7xUoQQ2vadWwNnBS0KZOG8471otFPHrTHihQJAjQPgMObpLvDe6A=="], - "@biomejs/cli-win32-arm64": ["@biomejs/cli-win32-arm64@2.5.2", "", { "os": "win32", "cpu": "arm64" }, "sha512-kbjFFKyZlzYnAuw7sRy5qDoFG6zrP40UK08oPQsWK0ct3NMnGSt+Bs1iviEEyEIP57N5MrykGXdO/wRiaR4lww=="], + "@biomejs/cli-win32-arm64": ["@biomejs/cli-win32-arm64@2.5.5", "", { "os": "win32", "cpu": "arm64" }, "sha512-7BryINPuYypLUAH3o/o5ZdgomJ4zn3EDR0ChZJst7n32S6ZhKbgHXuYydLu+YAnx59ehGFR0z/MG6qnzQi3Yyw=="], - "@biomejs/cli-win32-x64": ["@biomejs/cli-win32-x64@2.5.2", "", { "os": "win32", "cpu": "x64" }, "sha512-4InchVpdVmdkkkgjQqKpgvyu+VPnoF/7RPSw5YATgEVpt2j72wcCAeV5TwaE9ZGJUZWZn7v2CwSAj6CrMJEx8A=="], + "@biomejs/cli-win32-x64": ["@biomejs/cli-win32-x64@2.5.5", "", { "os": "win32", "cpu": "x64" }, "sha512-bIBFo+n6MIxdNcVFy5CrurbKiZQiUciK3bt8+O9I4wjFZNTfXLpi+giq47522eXqW5NBc9ulx7dR1SlZKi2J5g=="], "@bunup/dts": ["@bunup/dts@0.14.53", "", { "dependencies": { "@babel/parser": "^7.28.6", "coffi": "^0.1.37", "oxc-minify": "^0.93.0", "oxc-resolver": "^11.16.2", "oxc-transform": "^0.93.0", "picocolors": "^1.1.1", "std-env": "^3.10.0", "ts-import-resolver": "^0.1.23" }, "peerDependencies": { "typescript": ">=4.5.0" }, "optionalPeers": ["typescript"] }, "sha512-qyHgYEYxcghoChICEhuFKfA/EqqRA9WHOHLXcIkR9c70DgLAEXcOlkYhfBPmGxfMKJYL0X4VtQwst0/AMk9D3g=="], diff --git a/package.json b/package.json index 2162eec..95a0fb9 100644 --- a/package.json +++ b/package.json @@ -104,7 +104,7 @@ "zod": "^4.4.3" }, "devDependencies": { - "@biomejs/biome": "2.5.2", + "@biomejs/biome": "2.5.5", "@types/bun": "latest", "@types/semver": "^7.7.1", "bunup": "^0.16.32", From c9e279093b8df5c7340fcc854a3596e9b8739cd7 Mon Sep 17 00:00:00 2001 From: Olli-Pekka Heinisuo Date: Thu, 30 Jul 2026 11:23:55 +0300 Subject: [PATCH 2/2] chore: apply biome 2.5.5 formatting Accept the deterministic formatter output required by the dependency update. --- .../mcp/src/shared/list-files-request.test.ts | 15 ++++--- .../package-dependencies-request.test.ts | 17 ++++--- .../mcp/src/shared/read-file-request.test.ts | 19 +++++--- src/commands/code/files.test.ts | 44 ++++++++++--------- src/commands/code/read.test.ts | 43 +++++++++--------- src/commands/pkg/deps.test.ts | 42 +++++++++--------- 6 files changed, 94 insertions(+), 86 deletions(-) diff --git a/packages/mcp/src/shared/list-files-request.test.ts b/packages/mcp/src/shared/list-files-request.test.ts index 907e9b5..4ea15b6 100644 --- a/packages/mcp/src/shared/list-files-request.test.ts +++ b/packages/mcp/src/shared/list-files-request.test.ts @@ -139,13 +139,14 @@ describe("buildListFilesParams — limit bounds", () => { }); describe("buildListFilesParams — waitTimeoutMs bounds", () => { - it.each([ - -1, 60001, 3.5, - ])("rejects out-of-range waitTimeoutMs %s", (waitTimeoutMs) => { - expect(() => - buildListFilesParams({ target: packageTarget, waitTimeoutMs }), - ).toThrow(/between 0 and 60000/); - }); + it.each([-1, 60001, 3.5])( + "rejects out-of-range waitTimeoutMs %s", + (waitTimeoutMs) => { + expect(() => + buildListFilesParams({ target: packageTarget, waitTimeoutMs }), + ).toThrow(/between 0 and 60000/); + }, + ); it("accepts 0 (fail-fast mode) at the lower boundary", () => { expect( diff --git a/packages/mcp/src/shared/package-dependencies-request.test.ts b/packages/mcp/src/shared/package-dependencies-request.test.ts index 0c304eb..d732253 100644 --- a/packages/mcp/src/shared/package-dependencies-request.test.ts +++ b/packages/mcp/src/shared/package-dependencies-request.test.ts @@ -27,15 +27,14 @@ describe("buildPackageDependenciesParams — registry matrix", () => { expect(result.params.registry).toBe(expected); }); - it.each([ - ["nuget"], - ["maven"], - ["packagist"], - ] as const)("rejects registry %s with tool-specific message", (arg) => { - expect(() => - buildPackageDependenciesParams({ registry: arg, packageName: "x" }), - ).toThrow(UnsupportedDependenciesRegistryError); - }); + it.each([["nuget"], ["maven"], ["packagist"]] as const)( + "rejects registry %s with tool-specific message", + (arg) => { + expect(() => + buildPackageDependenciesParams({ registry: arg, packageName: "x" }), + ).toThrow(UnsupportedDependenciesRegistryError); + }, + ); it("rejects truly unknown registries via the shared UnsupportedRegistryError", () => { expect(() => diff --git a/packages/mcp/src/shared/read-file-request.test.ts b/packages/mcp/src/shared/read-file-request.test.ts index 461a772..7a94e4c 100644 --- a/packages/mcp/src/shared/read-file-request.test.ts +++ b/packages/mcp/src/shared/read-file-request.test.ts @@ -72,13 +72,18 @@ describe("buildReadFileParams — defaults and validation", () => { }); describe("buildReadFileParams — rejection cases", () => { - it.each([ - 0, -1, 3.5, - ])("rejects non-positive/fractional startLine %s", (raw) => { - expect(() => - buildReadFileParams({ target, filePath: "src/index.js", startLine: raw }), - ).toThrow(/start_line.*positive integer/); - }); + it.each([0, -1, 3.5])( + "rejects non-positive/fractional startLine %s", + (raw) => { + expect(() => + buildReadFileParams({ + target, + filePath: "src/index.js", + startLine: raw, + }), + ).toThrow(/start_line.*positive integer/); + }, + ); it("rejects a reversed range", () => { expect(() => diff --git a/src/commands/code/files.test.ts b/src/commands/code/files.test.ts index 31b2593..f4e819b 100644 --- a/src/commands/code/files.test.ts +++ b/src/commands/code/files.test.ts @@ -235,28 +235,30 @@ describe("pkgFilesAction", () => { exitSpy.mockRestore(); }); - it.each([ - "rubygems:rails", - "go:golang.org/x/text", - ])("rejects package spec %s in --repo-url mode", async (spec) => { - const errorSpy = spyOn(console, "error").mockImplementation(() => {}); - const exitSpy = spyOn(process, "exit").mockImplementation(() => { - throw new Error("process.exit"); - }); - try { - await pkgFilesAction( - spec, - undefined, - { repoUrl: "https://github.com/x/y", gitRef: "main" }, - createDeps(), + it.each(["rubygems:rails", "go:golang.org/x/text"])( + "rejects package spec %s in --repo-url mode", + async (spec) => { + const errorSpy = spyOn(console, "error").mockImplementation(() => {}); + const exitSpy = spyOn(process, "exit").mockImplementation(() => { + throw new Error("process.exit"); + }); + try { + await pkgFilesAction( + spec, + undefined, + { repoUrl: "https://github.com/x/y", gitRef: "main" }, + createDeps(), + ); + } catch { + /* expected */ + } + expect(errorSpy.mock.calls[0]?.[0]).toContain( + "looks like a package spec", ); - } catch { - /* expected */ - } - expect(errorSpy.mock.calls[0]?.[0]).toContain("looks like a package spec"); - errorSpy.mockRestore(); - exitSpy.mockRestore(); - }); + errorSpy.mockRestore(); + exitSpy.mockRestore(); + }, + ); it("emits the JSON envelope with --json", async () => { const logSpy = spyOn(console, "log").mockImplementation(() => {}); diff --git a/src/commands/code/read.test.ts b/src/commands/code/read.test.ts index 94d75bf..4ff90e5 100644 --- a/src/commands/code/read.test.ts +++ b/src/commands/code/read.test.ts @@ -178,26 +178,29 @@ describe("pkgReadAction", () => { ["10-40", 10, 40], ["10-", 10, undefined], ["-40", 1, 40], - ])("parses --lines '%s' into start=%s end=%s", async (lines, expectedStart, expectedEnd) => { - const readFile = mock(() => Promise.resolve(defaultReadFileResult)); - const writeSpy = spyOn(process.stdout, "write").mockImplementation( - (() => true) as typeof process.stdout.write, - ); - await pkgReadAction( - "npm:express", - "src/index.js", - { lines }, - createDeps({ - codeNavigationService: createMockCodeNavigationService({ readFile }), - }), - ); - const calls = readFile.mock.calls as unknown as Array< - [{ startLine?: number; endLine?: number }] - >; - expect(calls[0]?.[0]?.startLine).toBe(expectedStart); - expect(calls[0]?.[0]?.endLine).toBe(expectedEnd); - writeSpy.mockRestore(); - }); + ])( + "parses --lines '%s' into start=%s end=%s", + async (lines, expectedStart, expectedEnd) => { + const readFile = mock(() => Promise.resolve(defaultReadFileResult)); + const writeSpy = spyOn(process.stdout, "write").mockImplementation( + (() => true) as typeof process.stdout.write, + ); + await pkgReadAction( + "npm:express", + "src/index.js", + { lines }, + createDeps({ + codeNavigationService: createMockCodeNavigationService({ readFile }), + }), + ); + const calls = readFile.mock.calls as unknown as Array< + [{ startLine?: number; endLine?: number }] + >; + expect(calls[0]?.[0]?.startLine).toBe(expectedStart); + expect(calls[0]?.[0]?.endLine).toBe(expectedEnd); + writeSpy.mockRestore(); + }, + ); it("parses trailing :start-end range from the path", async () => { const readFile = mock(() => Promise.resolve(defaultReadFileResult)); diff --git a/src/commands/pkg/deps.test.ts b/src/commands/pkg/deps.test.ts index 4d89f86..08aa51f 100644 --- a/src/commands/pkg/deps.test.ts +++ b/src/commands/pkg/deps.test.ts @@ -195,28 +195,26 @@ describe("pkgDepsAction", () => { exitSpy.mockRestore(); }); - it.each([ - "3.5", - "5abc", - "abc5", - "3.0", - ])("rejects partially-numeric --depth input %s (no silent truncation)", async (input) => { - const errorSpy = spyOn(console, "error").mockImplementation(() => {}); - const exitSpy = spyOn(process, "exit").mockImplementation(() => { - throw new Error("process.exit"); - }); - - try { - await pkgDepsAction("npm:express", { depth: input }, createDeps()); - } catch { - /* expected */ - } - - const msg = errorSpy.mock.calls[0]?.[0] as string; - expect(msg).toContain("--depth expects an integer"); - errorSpy.mockRestore(); - exitSpy.mockRestore(); - }); + it.each(["3.5", "5abc", "abc5", "3.0"])( + "rejects partially-numeric --depth input %s (no silent truncation)", + async (input) => { + const errorSpy = spyOn(console, "error").mockImplementation(() => {}); + const exitSpy = spyOn(process, "exit").mockImplementation(() => { + throw new Error("process.exit"); + }); + + try { + await pkgDepsAction("npm:express", { depth: input }, createDeps()); + } catch { + /* expected */ + } + + const msg = errorSpy.mock.calls[0]?.[0] as string; + expect(msg).toContain("--depth expects an integer"); + errorSpy.mockRestore(); + exitSpy.mockRestore(); + }, + ); it("rejects unsupported registry (nuget) with tool-specific message", async () => { const errorSpy = spyOn(console, "error").mockImplementation(() => {});