From 21378131853a7feaad17680caf59f54ce7870428 Mon Sep 17 00:00:00 2001 From: overbalance Date: Mon, 10 Nov 2025 23:36:50 -0600 Subject: [PATCH] chore: add baseline-js eslint plugin for browser packages Add eslint-plugin-baseline-js to enforce baseline JavaScript compatibility standards for browser-related instrumentation packages. --- eslint.config.mjs | 12 +++++++++- package-lock.json | 58 +++++++++++++++++++++++++++++++++++++++++++++++ package.json | 3 ++- 3 files changed, 71 insertions(+), 2 deletions(-) diff --git a/eslint.config.mjs b/eslint.config.mjs index 783a185ee1..8fea1965f8 100644 --- a/eslint.config.mjs +++ b/eslint.config.mjs @@ -19,6 +19,7 @@ import tseslint from 'typescript-eslint'; import globals from 'globals'; import nodePlugin from 'eslint-plugin-n'; import yalhPlugin from 'eslint-plugin-yet-another-license-header'; +import baselinePlugin from 'eslint-plugin-baseline-js'; const defaultLicense = ` /* @@ -201,11 +202,20 @@ const baseConfig = tseslint.config( files: [ '**/examples/web/**/*', '**/packages/**/browser/**/*', - '**/packages/instrumentation-user-interaction/**/*', + '**/packages/auto-instrumentations-web/**/*', '**/packages/instrumentation-document-load/**/*', '**/packages/instrumentation-long-task/**/*', + '**/packages/instrumentation-user-interaction/**/*', + '**/packages/instrumentation-web-exception/**/*', '**/packages/plugin-react-load/**/*', ], + plugins: { 'baseline-js': baselinePlugin }, + extends: [ + baselinePlugin.configs['recommended-ts']({ + available: 'widely', + level: 'error', + }), + ], languageOptions: { globals: { ...globals.browser, diff --git a/package-lock.json b/package-lock.json index 193330100d..43b1d25901 100644 --- a/package-lock.json +++ b/package-lock.json @@ -27,6 +27,7 @@ "babel-plugin-istanbul": "7.0.1", "cross-env": "10.1.0", "eslint": "9.34.0", + "eslint-plugin-baseline-js": "0.4.0", "eslint-plugin-import": "2.32.0", "eslint-plugin-n": "17.21.3", "eslint-plugin-yet-another-license-header": "0.2.0", @@ -18394,6 +18395,44 @@ "ms": "^2.1.1" } }, + "node_modules/eslint-plugin-baseline-js": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-baseline-js/-/eslint-plugin-baseline-js-0.4.0.tgz", + "integrity": "sha512-tD59KX98c8lAiV/zaPBfGoBklNW3F6UnBnRBdyaEfxPYhLWzlRL3O01/ZZ5QBUtTaomIplzkdDBfWsDaFfxubQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "eslint-plugin-es-x": "^9.1.1" + }, + "engines": { + "node": ">=20.19.0 <22 || >=22.12.0" + }, + "peerDependencies": { + "eslint": ">=8.57.0 <10" + } + }, + "node_modules/eslint-plugin-baseline-js/node_modules/eslint-plugin-es-x": { + "version": "9.1.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-es-x/-/eslint-plugin-es-x-9.1.2.tgz", + "integrity": "sha512-v019GsVMydtD8e0QazxOtwQRtmKVZgkpykvUwaKH8otLHaLsnV6txRrQWN4MeGn8W1A00Dh8N0R41uiIyvMsYA==", + "dev": true, + "funding": [ + "https://github.com/sponsors/ota-meshi", + "https://opencollective.com/eslint" + ], + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.1.2", + "@eslint-community/regexpp": "^4.12.1", + "eslint-type-tracer": "^0.4.0" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "peerDependencies": { + "eslint": ">=9.29.0" + } + }, "node_modules/eslint-plugin-es-x": { "version": "7.8.0", "resolved": "https://registry.npmjs.org/eslint-plugin-es-x/-/eslint-plugin-es-x-7.8.0.tgz", @@ -18561,6 +18600,25 @@ "url": "https://opencollective.com/eslint" } }, + "node_modules/eslint-type-tracer": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/eslint-type-tracer/-/eslint-type-tracer-0.4.1.tgz", + "integrity": "sha512-7kDovYNNitAxahP/qQ9UrHssUk8d6V5Y9MQaDiHPKsJrk1g6STDqVHjJPu8ycn1+qE4D0jwQRN7waRrxrX9k+Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.7.0" + }, + "engines": { + "node": "^18 || >=20" + }, + "funding": { + "url": "https://github.com/sponsors/ota-meshi" + }, + "peerDependencies": { + "eslint": ">=8" + } + }, "node_modules/eslint-visitor-keys": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz", diff --git a/package.json b/package.json index f426c4eeda..c2659b014f 100644 --- a/package.json +++ b/package.json @@ -59,6 +59,7 @@ "babel-plugin-istanbul": "7.0.1", "cross-env": "10.1.0", "eslint": "9.34.0", + "eslint-plugin-baseline-js": "0.4.0", "eslint-plugin-import": "2.32.0", "eslint-plugin-n": "17.21.3", "eslint-plugin-yet-another-license-header": "0.2.0", @@ -95,7 +96,7 @@ "webpack-merge": "6.0.1" }, "overrides": { - "rollup":"4.52.5" + "rollup": "4.52.5" }, "workspaces": [ "packages/*"