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>