diff --git a/biome.json b/biome.json index 8d1b11d84859..25d2459aa03c 100644 --- a/biome.json +++ b/biome.json @@ -3,7 +3,8 @@ "vcs": { "enabled": true, "clientKind": "git", - "useIgnoreFile": true + "useIgnoreFile": true, + "defaultBranch": "develop" }, "organizeImports": { "enabled": true @@ -17,13 +18,15 @@ "noUnusedVariables": "error", "noPrecisionLoss": "error" }, + "complexity": { + "useRegexLiterals": "error" + }, "suspicious": { "all": false, "noControlCharactersInRegex": "error" }, "nursery": { - "noUnusedImports": "error", - "useRegexLiterals": "error" + "noUnusedImports": "error" }, "performance": { "all": true, @@ -43,10 +46,10 @@ "indentWidth": 2, "lineWidth": 120, "ignore": [ - "dev-packages/browser-integration-tests/fixtures/loader.js", - "dev-packages/browser-integration-tests/suites/**/*.json", - "dev-packages/browser-integration-tests/loader-suites/**/*.js", - "dev-packages/browser-integration-tests/suites/stacktraces/**/*.js", + "**/dev-packages/browser-integration-tests/fixtures/loader.js", + "**/dev-packages/browser-integration-tests/suites/**/*.json", + "**/dev-packages/browser-integration-tests/loader-suites/**/*.js", + "**/dev-packages/browser-integration-tests/suites/stacktraces/**/*.js", "**/fixtures/*/*.json", "**/*.min.js" ] @@ -66,6 +69,10 @@ "json": { "formatter": { "enabled": true + }, + "parser": { + "allowComments": true, + "allowTrailingCommas": true } } } diff --git a/dev-packages/browser-integration-tests/utils/helpers.ts b/dev-packages/browser-integration-tests/utils/helpers.ts index d00f125a90c1..25ea6cf07e80 100644 --- a/dev-packages/browser-integration-tests/utils/helpers.ts +++ b/dev-packages/browser-integration-tests/utils/helpers.ts @@ -68,13 +68,10 @@ export const countEnvelopes = async ( page.on('request', requestHandler); - setTimeout( - () => { - page.off('request', requestHandler); - resolve(reqCount); - }, - options?.timeout || 1000, - ); + setTimeout(() => { + page.off('request', requestHandler); + resolve(reqCount); + }, options?.timeout || 1000); }); if (options?.url) { diff --git a/dev-packages/node-integration-tests/utils/index.ts b/dev-packages/node-integration-tests/utils/index.ts index b2b81361c0ea..b6a2426df705 100644 --- a/dev-packages/node-integration-tests/utils/index.ts +++ b/dev-packages/node-integration-tests/utils/index.ts @@ -128,7 +128,10 @@ export class TestEnv { private _axiosConfig: AxiosRequestConfig | undefined = undefined; private _terminator: HttpTerminator; - public constructor(public readonly server: http.Server, public readonly url: string) { + public constructor( + public readonly server: http.Server, + public readonly url: string, + ) { this.server = server; this.url = url; this._terminator = createHttpTerminator({ server: this.server, gracefulTerminationTimeout: 0 }); @@ -300,19 +303,16 @@ export class TestEnv { return false; }); - setTimeout( - () => { - nock.removeInterceptor(mock); + setTimeout(() => { + nock.removeInterceptor(mock); - nock.cleanAll(); + nock.cleanAll(); - // eslint-disable-next-line @typescript-eslint/no-floating-promises - this._closeServer().then(() => { - resolve(reqCount); - }); - }, - options.timeout || 1000, - ); + // eslint-disable-next-line @typescript-eslint/no-floating-promises + this._closeServer().then(() => { + resolve(reqCount); + }); + }, options.timeout || 1000); }); } diff --git a/dev-packages/overhead-metrics/src/perf/cpu.ts b/dev-packages/overhead-metrics/src/perf/cpu.ts index 2ec17c1866fa..9a9ef43aaa42 100644 --- a/dev-packages/overhead-metrics/src/perf/cpu.ts +++ b/dev-packages/overhead-metrics/src/perf/cpu.ts @@ -7,7 +7,10 @@ export { CpuUsageSampler, CpuUsage }; export type CpuUsageSerialized = Partial<{ snapshots: JsonObject; average: number }>; class CpuUsage { - public constructor(public snapshots: TimeBasedMap, public average: number) {} + public constructor( + public snapshots: TimeBasedMap, + public average: number, + ) {} public static fromJSON(data: CpuUsageSerialized): CpuUsage { return new CpuUsage(TimeBasedMap.fromJSON(data.snapshots || {}), data.average as number); @@ -15,7 +18,10 @@ class CpuUsage { } class MetricsDataPoint { - public constructor(public timestamp: number, public activeTime: number) {} + public constructor( + public timestamp: number, + public activeTime: number, + ) {} } class CpuUsageSampler { diff --git a/dev-packages/overhead-metrics/src/results/analyzer.ts b/dev-packages/overhead-metrics/src/results/analyzer.ts index f27356f4d507..776aa4c407aa 100644 --- a/dev-packages/overhead-metrics/src/results/analyzer.ts +++ b/dev-packages/overhead-metrics/src/results/analyzer.ts @@ -100,7 +100,10 @@ export interface AnalyzerItemValues { const AnalyzerItemValueNotAvailable = 'n/a'; class AnalyzerItemNumberValues implements AnalyzerItemValues { - public constructor(private _unit: AnalyzerItemUnit, private _values: (number | undefined)[]) {} + public constructor( + private _unit: AnalyzerItemUnit, + private _values: (number | undefined)[], + ) {} public value(index: number): string { if (!this._has(index)) return AnalyzerItemValueNotAvailable; diff --git a/dev-packages/overhead-metrics/src/scenarios.ts b/dev-packages/overhead-metrics/src/scenarios.ts index 0fa64467ae34..bef25c19614b 100644 --- a/dev-packages/overhead-metrics/src/scenarios.ts +++ b/dev-packages/overhead-metrics/src/scenarios.ts @@ -55,7 +55,10 @@ export class JankTestScenario implements Scenario { } export class BookingAppScenario implements Scenario { - public constructor(private _indexFile: string, private _count: number) {} + public constructor( + private _indexFile: string, + private _count: number, + ) {} /** * diff --git a/dev-packages/overhead-metrics/src/vitals/index.ts b/dev-packages/overhead-metrics/src/vitals/index.ts index b573edb26bb6..db3b3eb47e62 100644 --- a/dev-packages/overhead-metrics/src/vitals/index.ts +++ b/dev-packages/overhead-metrics/src/vitals/index.ts @@ -7,7 +7,11 @@ import { LCP } from './lcp.js'; export { WebVitals, WebVitalsCollector }; class WebVitals { - public constructor(public lcp: number | undefined, public cls: number | undefined, public fid: number | undefined) {} + public constructor( + public lcp: number | undefined, + public cls: number | undefined, + public fid: number | undefined, + ) {} public static fromJSON(data: Partial): WebVitals { return new WebVitals(data.lcp as number, data.cls as number, data.fid as number); @@ -15,7 +19,11 @@ class WebVitals { } class WebVitalsCollector { - private constructor(private _lcp: LCP, private _cls: CLS, private _fid: FID) {} + private constructor( + private _lcp: LCP, + private _cls: CLS, + private _fid: FID, + ) {} public static async create(page: playwright.Page): Promise { const result = new WebVitalsCollector(new LCP(page), new CLS(page), new FID(page)); diff --git a/package.json b/package.json index 3135af0994db..b8dccee9f6aa 100644 --- a/package.json +++ b/package.json @@ -85,7 +85,7 @@ "dev-packages/rollup-utils" ], "devDependencies": { - "@biomejs/biome": "^1.4.0", + "@biomejs/biome": "^1.5.0", "@rollup/plugin-commonjs": "^21.0.1", "@rollup/plugin-node-resolve": "^13.1.3", "@rollup/plugin-replace": "^3.0.1", diff --git a/packages/angular/test/errorhandler.test.ts b/packages/angular/test/errorhandler.test.ts index bba65056cba8..399fe004a8e9 100644 --- a/packages/angular/test/errorhandler.test.ts +++ b/packages/angular/test/errorhandler.test.ts @@ -23,7 +23,10 @@ class CustomError extends Error { } class ErrorLikeShapedClass implements Partial { - constructor(public name: string, public message: string) {} + constructor( + public name: string, + public message: string, + ) {} } function createErrorEvent(message: string, innerError: any): ErrorEvent { diff --git a/packages/browser/src/integrations/trycatch.ts b/packages/browser/src/integrations/trycatch.ts index f555acfcdc9c..6f684f0899e5 100644 --- a/packages/browser/src/integrations/trycatch.ts +++ b/packages/browser/src/integrations/trycatch.ts @@ -178,7 +178,7 @@ function _wrapEventTarget(target: string): void { return; } - fill(proto, 'addEventListener', function (original: VoidFunction,): ( + fill(proto, 'addEventListener', function (original: VoidFunction): ( eventName: string, fn: EventListenerObject, options?: boolean | AddEventListenerOptions, diff --git a/packages/core/src/integration.ts b/packages/core/src/integration.ts index f9be8b325782..063d16844fbb 100644 --- a/packages/core/src/integration.ts +++ b/packages/core/src/integration.ts @@ -167,7 +167,9 @@ export function convertIntegrationFnToClass( fn: Fn, ): Integration & { id: string; - new (...args: Parameters): Integration & + new ( + ...args: Parameters + ): Integration & ReturnType & { setupOnce: (addGlobalEventProcessor?: (callback: EventProcessor) => void, getCurrentHub?: () => Hub) => void; }; @@ -184,7 +186,9 @@ export function convertIntegrationFnToClass( { id: name }, ) as unknown as Integration & { id: string; - new (...args: Parameters): Integration & + new ( + ...args: Parameters + ): Integration & ReturnType & { setupOnce: (addGlobalEventProcessor?: (callback: EventProcessor) => void, getCurrentHub?: () => Hub) => void; }; diff --git a/packages/integrations/scripts/buildBundles.ts b/packages/integrations/scripts/buildBundles.ts index b5eb77730d40..69f97fd5e823 100644 --- a/packages/integrations/scripts/buildBundles.ts +++ b/packages/integrations/scripts/buildBundles.ts @@ -32,13 +32,10 @@ async function buildBundle(integration: string, jsVersion: string): Promise { - tasks.push(buildBundle(integration, 'es5'), buildBundle(integration, 'es6')); - return tasks; - }, - [] as Promise[], - ); + const tasks = getIntegrations().reduce((tasks, integration) => { + tasks.push(buildBundle(integration, 'es5'), buildBundle(integration, 'es6')); + return tasks; + }, [] as Promise[]); Promise.all(tasks) // eslint-disable-next-line no-console diff --git a/packages/nextjs/src/common/wrapPageComponentWithSentry.ts b/packages/nextjs/src/common/wrapPageComponentWithSentry.ts index 2051d015b0c4..93fa55ad72b1 100644 --- a/packages/nextjs/src/common/wrapPageComponentWithSentry.ts +++ b/packages/nextjs/src/common/wrapPageComponentWithSentry.ts @@ -6,7 +6,9 @@ interface FunctionComponent { } interface ClassComponent { - new (...args: unknown[]): { + new ( + ...args: unknown[] + ): { props?: unknown; render(...args: unknown[]): unknown; }; diff --git a/packages/nextjs/test/integration/test/server/utils/helpers.ts b/packages/nextjs/test/integration/test/server/utils/helpers.ts index 590590c8710d..2eb852135780 100644 --- a/packages/nextjs/test/integration/test/server/utils/helpers.ts +++ b/packages/nextjs/test/integration/test/server/utils/helpers.ts @@ -35,7 +35,10 @@ export const startServer = async (server: Server) => { }; export class NextTestEnv extends TestEnv { - private constructor(public readonly server: http.Server, public readonly url: string) { + private constructor( + public readonly server: http.Server, + public readonly url: string, + ) { super(server, url); } diff --git a/packages/node/test/integrations/localvariables.test.ts b/packages/node/test/integrations/localvariables.test.ts index e592c90a3a86..34e1de088b5d 100644 --- a/packages/node/test/integrations/localvariables.test.ts +++ b/packages/node/test/integrations/localvariables.test.ts @@ -20,7 +20,10 @@ interface ThrowOn { class MockDebugSession implements DebugSession { private _onPause?: (message: InspectorNotification, callback: () => void) => void; - constructor(private readonly _vars: Record>, private readonly _throwOn?: ThrowOn) {} + constructor( + private readonly _vars: Record>, + private readonly _throwOn?: ThrowOn, + ) {} public configureAndConnect( onPause: (message: InspectorNotification, callback: () => void) => void, diff --git a/packages/remix/test/integration/test/server/utils/helpers.ts b/packages/remix/test/integration/test/server/utils/helpers.ts index caf9d5525fd7..3040489b314f 100644 --- a/packages/remix/test/integration/test/server/utils/helpers.ts +++ b/packages/remix/test/integration/test/server/utils/helpers.ts @@ -8,7 +8,10 @@ import { TestEnv } from '../../../../../../../dev-packages/node-integration-test export * from '../../../../../../../dev-packages/node-integration-tests/utils'; export class RemixTestEnv extends TestEnv { - private constructor(public readonly server: http.Server, public readonly url: string) { + private constructor( + public readonly server: http.Server, + public readonly url: string, + ) { super(server, url); } diff --git a/packages/replay-worker/src/worker.ts b/packages/replay-worker/src/worker.ts index e9da044b976b..e31356388d35 100644 --- a/packages/replay-worker/src/worker.ts +++ b/packages/replay-worker/src/worker.ts @@ -1,3 +1,3 @@ // This is replaced at build-time with the content from _worker.ts, wrapped as a string. // This is just a placeholder so that types etc. are correct. -export default ('' as string); +export default '' as string; diff --git a/packages/utils/src/error.ts b/packages/utils/src/error.ts index af0f80e9dce7..6c483b86303b 100644 --- a/packages/utils/src/error.ts +++ b/packages/utils/src/error.ts @@ -7,7 +7,10 @@ export class SentryError extends Error { public logLevel: ConsoleLevel; - public constructor(public message: string, logLevel: ConsoleLevel = 'warn') { + public constructor( + public message: string, + logLevel: ConsoleLevel = 'warn', + ) { super(message); this.name = new.target.prototype.constructor.name; diff --git a/packages/utils/src/object.ts b/packages/utils/src/object.ts index 6dbe15488325..f6dd9a1a7166 100644 --- a/packages/utils/src/object.ts +++ b/packages/utils/src/object.ts @@ -102,9 +102,7 @@ export function urlEncode(object: { [key: string]: any }): string { * @returns An Event or Error turned into an object - or the value argurment itself, when value is neither an Event nor * an Error. */ -export function convertToPlainObject( - value: V, -): +export function convertToPlainObject(value: V): | { [ownProps: string]: unknown; type: string; diff --git a/yarn.lock b/yarn.lock index 48857bd5a97d..5b45df8527a5 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2477,47 +2477,59 @@ resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== -"@biomejs/biome@^1.4.0": - version "1.4.0" - resolved "https://registry.yarnpkg.com/@biomejs/biome/-/biome-1.4.0.tgz#b512e1e7a4f3ec0bc0aceaa99fab8eded2bd95c9" - integrity sha512-/rDlao6ra38nhxo4IYCqWCzfTJcpMk4YHjSVBI9yN/ifdhnzSwirL25xDVH7G9hZdNhpF9g78FaPJhFa9DX0Cw== +"@biomejs/biome@^1.5.0": + version "1.5.0" + resolved "https://registry.yarnpkg.com/@biomejs/biome/-/biome-1.5.0.tgz#8cc7006861618b601fe4c37429e9aee58e277328" + integrity sha512-ln+o5jbs109qpeDoA+5n+vlAPai3DhlK0tHtZXzQvu4tswFgxNiJCeIXmlW1DYHziTmtBImV3Y0uhbm2iVSE3Q== optionalDependencies: - "@biomejs/cli-darwin-arm64" "1.4.0" - "@biomejs/cli-darwin-x64" "1.4.0" - "@biomejs/cli-linux-arm64" "1.4.0" - "@biomejs/cli-linux-x64" "1.4.0" - "@biomejs/cli-win32-arm64" "1.4.0" - "@biomejs/cli-win32-x64" "1.4.0" - -"@biomejs/cli-darwin-arm64@1.4.0": - version "1.4.0" - resolved "https://registry.yarnpkg.com/@biomejs/cli-darwin-arm64/-/cli-darwin-arm64-1.4.0.tgz#08e9e19ae72fd980be65307844a71cd7ba96f4f2" - integrity sha512-nBrtVRwr4IlTtxLOHwBwLv1sWvggf9/DnT5/ALIANJZOpoING6u8jHWipods69wK8kGa8Ld7iwHm3W5BrJJFFQ== + "@biomejs/cli-darwin-arm64" "1.5.0" + "@biomejs/cli-darwin-x64" "1.5.0" + "@biomejs/cli-linux-arm64" "1.5.0" + "@biomejs/cli-linux-arm64-musl" "1.5.0" + "@biomejs/cli-linux-x64" "1.5.0" + "@biomejs/cli-linux-x64-musl" "1.5.0" + "@biomejs/cli-win32-arm64" "1.5.0" + "@biomejs/cli-win32-x64" "1.5.0" + +"@biomejs/cli-darwin-arm64@1.5.0": + version "1.5.0" + resolved "https://registry.yarnpkg.com/@biomejs/cli-darwin-arm64/-/cli-darwin-arm64-1.5.0.tgz#794ea67d348a3f95747e41c6bbbc1145937359ce" + integrity sha512-3+D7axf04dpadGMOaqb2q+zyQnhWW0o/Imt7TJBWsoE0N3/+28Wht8g3UEHHcUL5FPuGIfsE+NcYntBaaAsEIg== -"@biomejs/cli-darwin-x64@1.4.0": - version "1.4.0" - resolved "https://registry.yarnpkg.com/@biomejs/cli-darwin-x64/-/cli-darwin-x64-1.4.0.tgz#ae04f06a4446fa718dfeba863af6250a0b4185e6" - integrity sha512-nny0VgOj3ksUGzU5GblgtQEvrAZFgFe1IJBoYOP978OQdDrg7BpS+GX5udfof87Dl4ZlHPRBU951ceHOxF7BTg== +"@biomejs/cli-darwin-x64@1.5.0": + version "1.5.0" + resolved "https://registry.yarnpkg.com/@biomejs/cli-darwin-x64/-/cli-darwin-x64-1.5.0.tgz#ee8ad47984bf08bdbd09cf5cf7b1d0856af8b0f3" + integrity sha512-8k5aaLWE/B6ZAXLC+z/Vwh9ogyiSaiRIfvg+F9foxuneHl2R/D/2Iy7pvd3Yoi4Kf6/MBdowekPVezGP4/Kbcw== -"@biomejs/cli-linux-arm64@1.4.0": - version "1.4.0" - resolved "https://registry.yarnpkg.com/@biomejs/cli-linux-arm64/-/cli-linux-arm64-1.4.0.tgz#40fbd94cff2c8437d18136d25801ead441ac6739" - integrity sha512-gyLkT/Yh9xfW1T9yjQs/2txkCeG0e+LRs0adLugMwN0ptcNTRyusBvUoiHnpB+9rS6hWu9ZCedGMNmKQ8v2GSw== +"@biomejs/cli-linux-arm64-musl@1.5.0": + version "1.5.0" + resolved "https://registry.yarnpkg.com/@biomejs/cli-linux-arm64-musl/-/cli-linux-arm64-musl-1.5.0.tgz#94af114a283b2e40cd56ec39bbc087dd752b9da4" + integrity sha512-+1B3J8tWLTOvP3+00Cap+XhEXMvxwCHvVfuywUsB7Sqd66NWic3wKJuGbGcS3PuCWtGuIFsiQMNAGqiOXG4uBQ== -"@biomejs/cli-linux-x64@1.4.0": - version "1.4.0" - resolved "https://registry.yarnpkg.com/@biomejs/cli-linux-x64/-/cli-linux-x64-1.4.0.tgz#813d191b020a90aa829a5fc37dfeea393696a0f1" - integrity sha512-LIxTuU2zSbIHM9XDYjQphJ5UU8h2eS7yR8uIvGYSba7Qt9AKqfbenyVJTsVnoj1CXxxgKNVSc/wVmlOlGz5DBQ== +"@biomejs/cli-linux-arm64@1.5.0": + version "1.5.0" + resolved "https://registry.yarnpkg.com/@biomejs/cli-linux-arm64/-/cli-linux-arm64-1.5.0.tgz#a173b20a9c85f7b5a69824f7fd8227274fa181d0" + integrity sha512-RiecxG71E1jnqiJZ3FaikVBDRkk2ohIxBo0O4o68g87y6Hug//G0S83sj6Wqyn8DgKMCRWQg+XYMgk5CwLVowA== -"@biomejs/cli-win32-arm64@1.4.0": - version "1.4.0" - resolved "https://registry.yarnpkg.com/@biomejs/cli-win32-arm64/-/cli-win32-arm64-1.4.0.tgz#a6edb984d48d9a9db5971e13c3047ab19fd592c2" - integrity sha512-U2jT1/0wZLJIRqnU8qHAfi/A/+yUwlL3sYJgqs+wO0BbR22WGQZlj03u5FdpEoyLXdsLv1pbeIcjNp+V0NYXWA== +"@biomejs/cli-linux-x64-musl@1.5.0": + version "1.5.0" + resolved "https://registry.yarnpkg.com/@biomejs/cli-linux-x64-musl/-/cli-linux-x64-musl-1.5.0.tgz#5431e874954eedf8e95851a61c87ba755353fb74" + integrity sha512-4S2rLluc0WT+XTbLTgcm9+5EEFwJmoGiUEzR6N0P2sIjZD8c5KNf9Ou46BP1Pdg5AgqV+IIClGPK1I80ApSh1Q== -"@biomejs/cli-win32-x64@1.4.0": - version "1.4.0" - resolved "https://registry.yarnpkg.com/@biomejs/cli-win32-x64/-/cli-win32-x64-1.4.0.tgz#0bb1292c5e279198912b6ec35649124ba8349b72" - integrity sha512-gN6DgyyBxIwoCovAUFJHFWVallb0cLosayDRtNyxU3MDv/atZxSXOWQezfVKBIbgmFPxYWJObd+awvbPYXwwww== +"@biomejs/cli-linux-x64@1.5.0": + version "1.5.0" + resolved "https://registry.yarnpkg.com/@biomejs/cli-linux-x64/-/cli-linux-x64-1.5.0.tgz#273dc39c8dea8ce02e0bb842355ffb9a7e94b201" + integrity sha512-TlTsG+ptSmnDTUsAAYsXyGOXMcFiF8SiwhPdj4YsNkJRgx9M2curEVcTVm66FINIPK6VJTUcEDahFlx3NPUOzA== + +"@biomejs/cli-win32-arm64@1.5.0": + version "1.5.0" + resolved "https://registry.yarnpkg.com/@biomejs/cli-win32-arm64/-/cli-win32-arm64-1.5.0.tgz#fd4ec29be7774dc5392fb765c25a7a8e378fee9a" + integrity sha512-sWOi1SR+YqJuXElBncGRnWBR7IN7ni6GQY4Zm/vTpP6nVA0dX5C301eQUW1N/VnFQb6fyrJTcBslDUKyemsN/g== + +"@biomejs/cli-win32-x64@1.5.0": + version "1.5.0" + resolved "https://registry.yarnpkg.com/@biomejs/cli-win32-x64/-/cli-win32-x64-1.5.0.tgz#aa74ea06cef041049027aaa0462bff5facc42b7f" + integrity sha512-OoqgUXyzmRwX466bklOsWS7WdcvWtBuxF94DXATNe7bUiBa2tlW8QX7VVZvPnMKH57E5J619AkB3b5fhzyUhXA== "@cnakazawa/watch@^1.0.3": version "1.0.4"