chromedevtools--chrome-devtools-mcp
cdbc66f160
## Summary - Adds a custom ESLint rule `@local/no-direct-third-party-imports` that flags value imports of bundled third-party packages (`@modelcontextprotocol/sdk`, `puppeteer-core`, `@puppeteer/browsers`, `yargs`, `debug`, `zod`, `core-js`) when used outside of `src/third_party/` - Type-only imports (`import type`) are allowed since they are erased at compile time and don't affect the bundle - The rule is scoped to `src/**/*.ts` so development scripts and tests are unaffected This prevents the class of bugs where a direct npm import works during development (devDependencies installed) but breaks in the published package (only bundled code ships). PR #1111 was an example of this exact issue caught through manual `npm pack` testing. Closes #1123 ## Test plan - [x] Verified `npx eslint --no-cache src/` passes with no violations on the current codebase - [x] Verified the rule correctly catches a test file with `import {Client} from '@modelcontextprotocol/sdk/client/index.js'` - [x] Verified the rule allows `import type {Flags} from 'lighthouse'` (type-only import) - [x] Verified the rule does not fire inside `src/third_party/index.ts` (the barrel itself) - [x] Verified scripts/ and tests/ are unaffected (rule scoped to `src/**/*.ts`) --------- Co-authored-by: Matt Van Horn <455140+mvanhorn@users.noreply.github.com> Co-authored-by: Alex Rudenko <alexrudenko@chromium.org>
18 行
487 B
JavaScript
18 行
487 B
JavaScript
/**
|
|
* @license
|
|
* Copyright 2025 Google LLC
|
|
* SPDX-License-Identifier: Apache-2.0
|
|
*/
|
|
|
|
import checkLicenseRule from './check-license-rule.js';
|
|
import enforceZodSchemaRule from './enforce-zod-schema-rule.js';
|
|
import noDirectThirdPartyImportsRule from './no-direct-third-party-imports-rule.js';
|
|
|
|
export default {
|
|
rules: {
|
|
'check-license': checkLicenseRule,
|
|
'no-direct-third-party-imports': noDirectThirdPartyImportsRule,
|
|
'enforce-zod-schema': enforceZodSchemaRule,
|
|
},
|
|
};
|