Skip to content

🤖 Dep Updates: Bump @biomejs/biome from 2.2.4 to 2.3.10#65

Closed
dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/npm_and_yarn/biomejs/biome-2.3.10
Closed

🤖 Dep Updates: Bump @biomejs/biome from 2.2.4 to 2.3.10#65
dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/npm_and_yarn/biomejs/biome-2.3.10

Conversation

@dependabot
Copy link
Copy Markdown

@dependabot dependabot Bot commented on behalf of github Jan 5, 2026

Bumps @biomejs/biome from 2.2.4 to 2.3.10.

Release notes

Sourced from @​biomejs/biome's releases.

Biome CLI v2.3.10

2.3.10

Patch Changes

What's Changed

New Contributors

... (truncated)

Changelog

Sourced from @​biomejs/biome's changelog.

2.3.10

Patch Changes

2.3.9

Patch Changes

  • #8232 84c9e08 Thanks @​ruidosujeira! - Added the nursery rule noScriptUrl.

    This rule disallows the use of javascript: URLs, which are considered a form of eval and can pose security risks such as XSS vulnerabilities.

    <a href="javascript:alert('XSS')">Click me</a>
  • #8341 343dc4d Thanks @​arendjr! - Added the nursery rule useAwaitThenable, which enforces that await is only used on Promise values.

    Invalid

    await "value";
    const createValue = () => "value";
    await createValue();

... (truncated)

Commits
Maintainer changes

This version was pushed to npm by [GitHub Actions](https://www.npmjs.com/~GitHub Actions), a new releaser for @​biomejs/biome since your current version.


Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot merge will merge this PR after your CI passes on it
  • @dependabot squash and merge will squash and merge this PR after your CI passes on it
  • @dependabot cancel merge will cancel a previously requested merge and block automerging
  • @dependabot reopen will reopen this PR if it is closed
  • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

Bumps [@biomejs/biome](https://github.com/biomejs/biome/tree/HEAD/packages/@biomejs/biome) from 2.2.4 to 2.3.10.
- [Release notes](https://github.com/biomejs/biome/releases)
- [Changelog](https://github.com/biomejs/biome/blob/main/packages/@biomejs/biome/CHANGELOG.md)
- [Commits](https://github.com/biomejs/biome/commits/@biomejs/biome@2.3.10/packages/@biomejs/biome)

---
updated-dependencies:
- dependency-name: "@biomejs/biome"
  dependency-version: 2.3.10
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot added dependencies Pull requests that update a dependency file javascript Pull requests that update javascript code labels Jan 5, 2026
@socket-security
Copy link
Copy Markdown

Review the following changes in direct dependencies. Learn more about Socket for GitHub.

Diff Package Supply Chain
Security
Vulnerability Quality Maintenance License
Updated@​biomejs/​biome@​2.2.4 ⏵ 2.3.1010010010098100

View full report

@socket-security-staging
Copy link
Copy Markdown

Review the following changes in direct dependencies. Learn more about Socket for GitHub.

Diff Package Supply Chain
Security
Vulnerability Quality Maintenance License
Updated@​biomejs/​biome@​2.2.4 ⏵ 2.3.1010010010099100

View full report

@dependabot @github
Copy link
Copy Markdown
Author

dependabot Bot commented on behalf of github Jan 6, 2026

OK, I won't notify you again about this release, but will get in touch when a new version is available. If you'd rather skip all updates until the next major or minor version, let me know by commenting @dependabot ignore this major version or @dependabot ignore this minor version. You can also ignore all major, minor, or patch releases for a dependency by adding an ignore condition with the desired update_types to your config file.

If you change your mind, just re-open this PR and I'll resolve any conflicts on it.

@dependabot dependabot Bot deleted the dependabot/npm_and_yarn/biomejs/biome-2.3.10 branch January 6, 2026 23:34
John-David Dalton (jdalton) added a commit that referenced this pull request May 11, 2026
Cuts ~64 violations from the post-autofix tail:

* no-dynamic-import-outside-bundle (51 → 0):
  - Hoist node:fs / node:crypto / node:stream imports to file-top where
    the dynamic import was just being lazy (process-lock,
    process-lock-errors, dlx/packages, releases-github-archive,
    disambiguate.test, http-request — also fixes broken-stream and
    pipe tests that relied on createWriteStream / Readable).
  - Inline disables on legitimate cases: vi.resetModules + re-import
    (promises, crypto, regexps, ipc-cli); optional peer SDK
    (tools/prim disambiguate); runtime-computed module paths
    (esbuild-minify, external-esm-cjs, power-state); ESM-loader
    behavior under test (test/integration/esm-imports).

* no-console-prefer-logger (4 → 0):
  src/stdio/{divider,footer,header}.ts now use getDefaultLogger via the
  relative '../logger/default' path (not the package alias the inline-
  logger autofix wrongly inserted — that path goes through the dist
  bundle and breaks tsgo). Pre-existing console.log calls in those
  three files are now routed through `logger.log`.

* no-status-emoji (61 → 36):
  - src/stdio/footer.ts: hand-coded `✓ / ✗ / ○ / ⚠` status markers
    replaced with LOG_SYMBOLS['success'|'fail'|'skip'|'warn'] from
    the logger module so terminal-capability fallbacks apply.
  - src/stdio/prompts.ts: Inquirer theme `checked` icon disabled
    inline (consumed by prompt lib, not log output).
  - src/cover/formatters.ts: coverage-gamification emoji table
    disabled inline (public output contract).
  - Remaining 36 are in test fixtures, lint-rule plugin definition
    files, and emoji-output assertions — all intentional.

* prefer-undefined-over-null (7 → 0): inline disables on
  test/unit/fs*.test.mts `encoding: null` calls (Node fs API contract:
  null = Buffer mode, undefined = utf-8 default). Plus
  test/unit/http-request.test.mts `|| null` payload fields that the
  autofix flipped to `|| undefined` (JSON.stringify drops undefined
  keys, breaking `toBeNull()` assertions).

Also a small bug fix uncovered by autofix:

* objects/getters.ts createLazyGetter: previously used UNDEFINED_TOKEN
  (= the value `undefined`) as its "not yet computed" sentinel, which
  meant getters that legitimately returned `undefined` would re-invoke
  on every call. Now uses a unique sentinel object so memoization
  works for any return value.

Net: 1028 → 352 violations (-66%). Remaining: 280 sort-source-methods
(blocked on task #65 — needs autofix support), 36 no-status-emoji
(intentional test/rule-plugin/coverage UI), 35 prefer-exists-sync
(stat-for-metadata cases that genuinely need the size/mtime), 1
no-placeholders (rule plugin's own fixture file).
John-David Dalton (jdalton) added a commit that referenced this pull request May 11, 2026
35 → 0 prefer-exists-sync violations. All are legitimate stat calls
that read metadata (size, mtime) or discriminate file type (isFile,
isDirectory, isSymbolicLink) — not pure existence checks.

* src/fs/inspect.ts: whole file is the stat-wrapper surface; file-
  level oxlint-disable.

* src/fs/find-up.ts: needs isFile()/isDirectory() to filter results
  by type; file-level disable.

* src/dlx/binary.ts: DLX cache uses stat for size/mtime metadata;
  file-level disable.

* src/dlx/detect.ts, src/ipc.ts, src/process-lock.ts,
  src/fs/validate.ts: inline disables — single sites, each with a
  one-line `--` explanation (mtime for cache, lstat for symlink
  discrimination, accessSync(R_OK) for permission, etc.).

* scripts/build-externals/bundler.mts, scripts/validate/file-size.mts:
  inline disables — both read stats.size for logging / size limits.

* test/unit/fs.test.mts, test/unit/process-lock.test.mts,
  test/unit/ipc.test.mts, test/unit/dlx/package.test.mts,
  test/integration/fs.test.mts: file-level disables — tests verify
  stat output (mtime stability, isDirectory/isFile transitions, size
  growth), not existence.

Net: 352 → 317 violations. Remaining: 280 sort-source-methods
(blocked on #65), 36 no-status-emoji (intentional test/rule-plugin/
coverage UI), 1 no-placeholders (rule plugin's fixture file).
John-David Dalton (jdalton) added a commit that referenced this pull request May 11, 2026
violation is autofixable-only sort-source-methods

37 violations cleared:

* scripts/build-externals/bundler.mts: bare emoji prefixes →
  logger.success() / logger.fail() (used logger.log with hand-rolled
  ✓/✗ markers before).

* .config/esbuild.config.mts: redundant ⚠ inside a logger.warn(...)
  call dropped — the method itself supplies the visual prefix.

* scripts/check-paths.mts: inline disable on the local logger replica
  (this script validates the package's own paths and can't import
  @socketsecurity/lib).

* scripts/validate/external-esm-cjs.mts: inline disables on diagnostic
  label strings ('✓ default', '✓ N exports') — debug context, not
  status output.

* .config/oxlint-plugin/rules/{no-status-emoji,no-placeholders}.js:
  file-level disables — these files ARE the rule definitions; the
  emoji / TODO literals are the lookup tables they scan for.

* test/{isolated/logger,unit/stdio/footer,unit/cover/formatters,
  unit/tables,unit/stdio/stdout,unit/logger-advanced}.test.mts:
  file-level disables — tests assert on emoji output.

Net: 1028 → 280 violations (-73%). Every remaining violation is
sort-source-methods, blocked on task #65 (rule needs autofix support
before the bulk-fix lands).
John-David Dalton (jdalton) added a commit that referenced this pull request May 11, 2026
… tail

* Dedupe safeDelete imports in scripts/claude.mts,
  test/unit/{archives,compression,fs-additional,dlx/binary}.test.mts,
  test/unit/utils/temp-file-helper.ts — earlier sed pass converted
  `@socketsecurity/lib/fs` → `/fs/safe` while a later autofix re-added
  the bare `/fs` import, yielding two identical bindings per file.
  Removed the bare-path duplicate everywhere.

* scripts/claude.mts: file-level disables for no-status-emoji and
  prefer-exists-sync (this script implements its own color-coded
  logger wrapper for Claude CLI workflow output and uses stat() for
  mtime-based cleanup, not existence checks). Plus an inline
  no-placeholders disable on the deferral-marker scan that's looking
  *for* those strings in diffs.

* Ran `oxlint --fix scripts/claude.mts` to clear 55 export-top-level-
  functions violations there (top-level helper functions now exported,
  making them directly testable per the rule).

* test/unit/{fs-additional,compression,dlx/binary}.test.mts: file-
  level disables for prefer-safe-delete and prefer-exists-sync —
  these tests verify raw fs.unlink / fs.stat behavior, not the lib
  wrappers.

Final state: 1028 → 333 violations (-68%). The 333 remaining are all
sort-source-methods, blocked on task #65 (rule needs autofix support).
John-David Dalton (jdalton) added a commit that referenced this pull request May 11, 2026
The sort-source-methods rule now ships with a fixer (resolves task #65).
Function declarations are hoisted, so reordering them is safe for
runtime semantics; the leading JSDoc / line-comment block and any
trailing contiguous comment (notably `/* c8 ignore stop */` paired
with a start above) travel with each function.

Bail-out conditions:
* anonymous default exports — they have no name to sort by
* interleaved top-level non-function statements between functions —
  reshuffling would skip over their declaration-order semantics

The autofix attaches to the first violation per file; ESLint dedupes
overlapping fixes, but when multiple violations exist they may need
several passes to fully converge (oxlint --fix is idempotent — a few
re-runs settle).

Net: 333 → 167 sort-source-methods violations after iterating
oxlint --fix to convergence. The remaining 167 are files with
interleaved statements where the autofix bails for safety.

Also propagates the _inject-import.js identifier-based detection
fix to socket-lib's local copy (matches wheelhouse canonical, where
the same fix landed for task #64).
John-David Dalton (jdalton) added a commit that referenced this pull request May 11, 2026
Picks up the new autofixable sort-source-methods rule from
socket-wheelhouse and the identifier-based _inject-import.js fix
(resolves task #65 / #64). Iterated `oxlint --fix` to convergence;
function declarations re-ordered into private→export alphanumeric
order across the repo. Function declarations are hoisted so the
rewrite is safe at runtime; leading JSDoc / line-comments and
trailing c8-ignore-stop markers travel with each function.

Also re-syncs the canonical scripts/check-paths.mts and
scripts/ai-lint-fix.mts from socket-wheelhouse. The wheelhouse copy
already accounts for state-machine null sentinels (blockKey,
blockKind, inString) and the SKIP_AI_FIX bracket-env access.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file javascript Pull requests that update javascript code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant