fix(deps): drop deprecated transitive packages and refresh tooling#4
Merged
Conversation
Shrink the dependency footprint that surfaced deprecation warnings in consumers (most notably lime-elements): - Drop the unused direct `glob` dependency. - Replace `lnk` with a native `fs.symlink` call in the docs generator. `lnk` was the last thing pulling in `rimraf@2` -> `glob@7`, and it was only used on a guarded, watch-mode-only code path. - Bump `chokidar` to ^3.6.0, replacing the bundled `fsevents@2.1.3` with `fsevents@2.3.3`. - Bump `puppeteer` to ^24. The production dependency tree now contains neither `glob` nor `lnk`, and resolves a maintained `fsevents`. Also refresh dev tooling and types (Stencil, typescript-eslint, prettier, eslint plugins, @types/*, fuse.js, yaml). `fuse.js` 6.6 made `FuseOptionKey` generic, so the search index key type is updated to match. The .scss changes are prettier 3.8 reformatting only. ESLint stays on 8.x: moving to 9 requires a flat-config migration, since eslint-plugin-sonarjs now ships its recommended config in flat-config format that the current FlatCompat setup cannot consume.
Convert eslint.config.mjs from the FlatCompat shim to native flat config, which unblocks ESLint 9. Plugin recommended configs are now consumed directly instead of through FlatCompat: - @typescript-eslint via configs['flat/eslint-recommended'] - eslint-plugin-sonarjs (1.x) via its flat `recommended` - eslint-plugin-jsdoc via configs['flat/recommended'] - eslint-plugin-prettier via eslint-plugin-prettier/recommended eslint-plugin-sonarjs is bumped 0.25 -> 1.x: 0.25 only supports ESLint <=8, and its newer recommended config ships in flat-config format that FlatCompat cannot consume. All custom rules and file-specific overrides are preserved. Also remove the now-unused @eslint/eslintrc dependency and drop a stale no-constant-condition disable directive (ESLint 9 no longer flags `while (true)` by default). This eliminates the @humanwhocodes/* and eslint@8 deprecation warnings; npm ci is now free of deprecation warnings.
befe617 to
3cdad73
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fork-side pair of upstream PR jgroth#183. Same
main-basedbranch, so the identical change lands on both sides and the daily upstream
sync merges it as a no-op once upstream accepts.
Note
This PR will show as "out-of-date with the base branch" permanently and by
design (
limecarries the fork delta; the branch is based onmain). PerFORK.md, do not use the Update branch button.What
Dependency refresh focused on removing deprecated packages from the
production dependency tree, plus an ESLint 9 flat-config migration and
safe tooling/type bumps.
Deprecation fixes (the motivation)
globdependency.lnkwith nativefs.symlinkin the docs generator.lnkwas the only remaining path to
rimraf@2 → glob@7; it was used solely on aguarded, watch-mode-only code path.
chokidar^3.3.1 → ^3.6.0— replaces bundledfsevents@2.1.3withfsevents@2.3.3.puppeteer^22 → ^24.8 → 9via a flat-config migration — removes the@humanwhocodes/*andeslint@8deprecation warnings.After this, the production tree contains no
globand nolnkandresolves a maintained
fsevents, andnpm cireports no deprecationwarnings at all. The cleaned-up production tree is what clears the
fsevents/globwarnings seen by consumers such aslime-elements(whichonly installs kompendium's runtime deps).
ESLint 9 flat-config migration
eslint.config.mjsis converted from theFlatCompatshim to native flatconfig. Plugin recommended configs are consumed directly.
eslint-plugin-sonarjsis bumped
0.25 → 1.x(0.25 only supports ESLint ≤8). The unused@eslint/eslintrcdependency is removed. All custom rules and file-specificoverrides are preserved.
Tooling / types
Stencil, typescript-eslint, prettier (3.8), eslint plugins,
@types/*,fuse.js(6.6 —FuseOptionKeyis now generic; search key type updated tomatch),
yaml. The.scssdiffs are prettier 3.8 reformatting only.Verification
npm run lint(0 warnings),npm run build,npm test(96 passed /5 skipped) all green.
npm ciis free of deprecation warnings.