@biomejs/js-api@6.1.0

biomejs/biome@biomejs/js-api@6.1.0Oct 21, 2026by github-actions[bot]

Upgrading?

Full Release Notes

## 6.1.0

### Minor Changes

- [#9940](https://github.com/biomejs/biome/pull/9940) [`1aefcb1`](https://github.com/biomejs/biome/commit/1aefcb186f47df33685aeb2fdd249cd90bdf1892) Thanks [@regseb](https://github.com/regseb)! - Added `spanInBytesToSpanInCodeUnits` helper function in subpath exports of `@biomejs/js-api`.
  
  ```js
  import { spanInBytesToSpanInCodeUnits } from "@biomejs/js-api/nodejs";
  // Or:
  // import { spanInBytesToSpanInCodeUnits } from "@biomejs/js-api/bundler";
  // import { spanInBytesToSpanInCodeUnits } from "@biomejs/js-api/web";
  
  const [start, end] = spanInBytesToSpanInCodeUnits(
      diagnostic.location.span,
      content
  );
  const text = content.slice(start, end); // Correctly extracts the text
  ```

- [#8912](https://github.com/biomejs/biome/pull/8912) [`e9785d8`](https://github.com/biomejs/biome/commit/e9785d8ce949cd7ba3f9d64f4cb4a7f7f9034e60) Thanks [@dyc3](https://github.com/dyc3)! - Added GritQL search to `@biomejs/js-api`. Parse a pattern with `parsePattern()`, search content with `searchContent()`, and release the pattern with `dropPattern()`. Matches are returned as UTF-8 byte offsets; use `spanInBytesToSpanInCodeUnits()` to convert them before slicing the content.
  
  ```js
  const patternId = biome.parsePattern("`console.log($message)`", {
    defaultLanguage: "js",
  });
  const { matches } = biome.searchContent(projectKey, content, {
    filePath: "example.js",
    patternId,
  });
  biome.dropPattern(patternId);
  ```

### Patch Changes

- Updated dependencies []:
  - @biomejs/wasm-bundler@2.6.0
  - @biomejs/wasm-nodejs@2.6.0
  - @biomejs/wasm-web@2.6.0



## What's Changed
* feat(js-api): add spanInBytesToSpanInCodeUnits in subpath exports by @regseb in https://github.com/biomejs/biome/pull/9940
* feat(useSortedAttributes): add sortFirst option by @thibaut-pro in https://github.com/biomejs/biome/pull/10631
* chore: merge main into next by @ematipico in https://github.com/biomejs/biome/pull/11044
* feat(plugins): add resolutionKind for object-syntax plugin entries by @soconnor-seeq in https://github.com/biomejs/biome/pull/10711
* feat(cli): output files information via biome rage by default by @christymcgrory in https://github.com/biomejs/biome/pull/6886
* feat: add partitionByNewLine option to useSortedInterfaceMembers by @LinusU in https://github.com/biomejs/biome/pull/10424
* chore: `main` into `next` by @dyc3 in https://github.com/biomejs/biome/pull/11093
* feat(html): support .htm files by @Punisheroot in https://github.com/biomejs/biome/pull/11126
* chore: mege main into next by @ematipico in https://github.com/biomejs/biome/pull/11241
* feat(cli): add profiler for type inference by @ematipico in https://github.com/biomejs/biome/pull/11244
* feat(useSortedClasses): add support for html files by @gameroman in https://github.com/biomejs/biome/pull/11102
* chore: merge main into next by @ematipico in https://github.com/biomejs/biome/pull/11380
* feat(languages): support Google Apps Script (.gs) files by @JamBalaya56562 in https://github.com/biomejs/biome/pull/10837
* chore: merge main to next by @ematipico in https://github.com/biomejs/biome/pull/11433
* chore: merge main into next by @ematipico in https://github.com/biomejs/biome/pull/11490
* feat(cli): inspect config command by @ematipico in https://github.com/biomejs/biome/pull/11432
* feat(cli): enable Git VCS integration during init by @nhedger in https://github.com/biomejs/biome/pull/11477
* feat(cli): add `--git` flag to init command by @nhedger in https://github.com/biomejs/biome/pull/11479
* feat: enable markdown by @ematipico in https://github.com/biomejs/biome/pull/11394
* feat(plugin): distribution and loading by @ematipico in https://github.com/biomejs/biome/pull/11408
* chore: merge main into next by @ematipico in https://github.com/biomejs/biome/pull/11635
* feat: enable YAML and Markdown embedding by @ematipico in https://github.com/biomejs/biome/pull/11451
* feat(cli): biome inspect file command by @ematipico in https://github.com/biomejs/biome/pull/11709
* feat(grit): support range patterns by @dyc3 in https://github.com/biomejs/biome/pull/11713
* chore: marge main into next by @ematipico in https://github.com/biomejs/biome/pull/11811
* feat: yaml quotes and bracket spacing by @ematipico in https://github.com/biomejs/biome/pull/11832
* fix(cli): inspect plugins by @ematipico in https://github.com/biomejs/biome/pull/11634
* chore: yaml linting by @Netail in https://github.com/biomejs/biome/pull/11804
* chore: disable linting md code blocks by @ematipico in https://github.com/biomejs/biome/pull/12015
* chore: add more clarity to needs-repro bot message by @dyc3 in https://github.com/biomejs/biome/pull/12046
* chore: merge main into next by @ematipico in https://github.com/biomejs/biome/pull/12035
* feat: biome migrate stylelint by @Netail in https://github.com/biomejs/biome/pull/11742
* feat(npm): add Android (Termux) support to the npm distribution by @dlecan in https://github.com/biomejs/biome/pull/11133
* fix(grit): backtrack into contains when later conditions fail by @dyc3 in https://github.com/biomejs/biome/pull/12063
* feat(xtask): export unsupported rule metadata as JSON by @dyc3 in https://github.com/biomejs/biome/pull/12062
* fix(js_analyze): don't apply noAdjacentSpacesInRegex fix inside character classes by @santichausis in https://github.com/biomejs/biome/pull/11563
* fix(migrate): update upstream rule scope metadata by @dyc3 in https://github.com/biomejs/biome/pull/12066
* feat(migrate): additional unsupported rule reasons by @dyc3 in https://github.com/biomejs/biome/pull/12069
* docs: sync configuration rework by @yanthomasdev in https://github.com/biomejs/biome/pull/11629
* feat(lint/js/vue): add noVueBooleanDefault by @dyc3 in https://github.com/biomejs/biome/pull/12052
* fix(format/html): group snippet definitions so they only line break when necessary by @dyc3 in https://github.com/biomejs/biome/pull/12080
* feat(lint/js): add useBigintLiterals by @dyc3 in https://github.com/biomejs/biome/pull/11967
* fix(noUnknownAttribute): recognize React 19 transition events by @ternaus in https://github.com/biomejs/biome/pull/12089
* feat(lint/js): add `noZeroFractions` by @dyc3 in https://github.com/biomejs/biome/pull/9817
* fix(noDuplicateFontNames): allow monospace, monospace duplicate exception by @GreedyC in https://github.com/biomejs/biome/pull/12068
* perf(noUnknownAttribute): use binary searches instead of linear scans by @dyc3 in https://github.com/biomejs/biome/pull/12091
* fix(css_parser): distinguish legacy and modern if() syntax by @denbezrukov in https://github.com/biomejs/biome/pull/12047
* feat(css): support expression-based at-root queries by @denbezrukov in https://github.com/biomejs/biome/pull/12048
* fix(css_parser): parse unary and identifier-led SCSS list expressions by @denbezrukov in https://github.com/biomejs/biome/pull/12096
* chore: add sass spec to coverage by @ematipico in https://github.com/biomejs/biome/pull/12097
* ci: breakdown conformance job in groups by @ematipico in https://github.com/biomejs/biome/pull/12099
* chore: improve docs skill by @ematipico in https://github.com/biomejs/biome/pull/12100
* fix(migrate): support empty nested configuration by @tionway in https://github.com/biomejs/biome/pull/12075
* feat(type_inference): support mapped keyof types by @dyc3 in https://github.com/biomejs/biome/pull/11854
* chore: update rule metadata by @dyc3 in https://github.com/biomejs/biome/pull/12102
* fix(useImportExtensions): take html modules into account by @dyc3 in https://github.com/biomejs/biome/pull/12104
* docs: improve lint rules and code actions by @ematipico in https://github.com/biomejs/biome/pull/12101
* feat(lint/js): add noIteratorProperty by @dyc3 in https://github.com/biomejs/biome/pull/12083
* feat(lint/js/svelte): add noSvelteInspect by @dyc3 in https://github.com/biomejs/biome/pull/12067
* feat(lint): add noProcessExit by @dyc3 in https://github.com/biomejs/biome/pull/12122
* feat(lint/html): add noRestrictedElements to HTML by @dyc3 in https://github.com/biomejs/biome/pull/12084
* feat: promote rules by @ematipico in https://github.com/biomejs/biome/pull/12108
* chore: use agents all over by @ematipico in https://github.com/biomejs/biome/pull/12125
* docs(lint): document the noImplicitReturns caveat of noUselessReturn by @ff1451 in https://github.com/biomejs/biome/pull/12054
* feat(css): support dynamic supports heads by @denbezrukov in https://github.com/biomejs/biome/pull/12127
* docs: improve docs for useButtonType by @dyc3 in https://github.com/biomejs/biome/pull/12051
* chore(deps): update rust crate libc to 0.2.190 by @renovate[bot] in https://github.com/biomejs/biome/pull/12139
* fix(css): support percentage steps in SCSS bodies by @denbezrukov in https://github.com/biomejs/biome/pull/12128
* fix(migrate): apply upstream lint rule scope decisions by @dyc3 in https://github.com/biomejs/biome/pull/12141
* revert: "feat(lint/js): add noIteratorProperty (#12083)" by @dyc3 in https://github.com/biomejs/biome/pull/12148
* feat(migrate): new unsupported rule reasons by @dyc3 in https://github.com/biomejs/biome/pull/12142
* feat(lint): update useLogicalProperties rule to include values by @Th3S4mur41 in https://github.com/biomejs/biome/pull/11953
* fix(parse/tailwind): parse css selectors that start with `[` by @dyc3 in https://github.com/biomejs/biome/pull/12152
* feat(tailwind): add top-level detection configuration by @dyc3 in https://github.com/biomejs/biome/pull/11386
* ci: disallow pr titles to end with `…` (one character, not 3) by @dyc3 in https://github.com/biomejs/biome/pull/12153
* feat(lint): add `ignoreElements` option to `noRedundantRoles` by @dyc3 in https://github.com/biomejs/biome/pull/12033
* feat(migrate): migrate noRestrictedElements options from react, vue, and svelte rules by @dyc3 in https://github.com/biomejs/biome/pull/12086
* chore(deps): update github-actions by @renovate[bot] in https://github.com/biomejs/biome/pull/12138
* feat(lint): add noTailwindRestyledComponents rule by @dyc3 in https://github.com/biomejs/biome/pull/11801
* fix(lint): compare equivalent member names in noSelfAssign by @erenbati in https://github.com/biomejs/biome/pull/12155
* chore: merge main into next by @ematipico in https://github.com/biomejs/biome/pull/12161
* chore: next to main by @ematipico in https://github.com/biomejs/biome/pull/11046
* feat(lint): add noNestedSwitch by @dyc3 in https://github.com/biomejs/biome/pull/12166
* fix(parse/tailwind): parenthesized and unary expressions by @dyc3 in https://github.com/biomejs/biome/pull/12156
* revert: fix(parse/tailwind): parenthesized and unary expressions by @dyc3 in https://github.com/biomejs/biome/pull/12173
* refactor: extract common `has_inner_comments` helper into common function by @dyc3 in https://github.com/biomejs/biome/pull/12171
* fix(parse/tailwind): parenthesized and unary expressions by @dyc3 in https://github.com/biomejs/biome/pull/12174
* fix(lint/useConsistentObjectDefinitions): ignore named function expressions by @MustafaKemal0146 in https://github.com/biomejs/biome/pull/12178
* fix(lint/noConfusingVoidType): allow unions of only void and never by @MustafaKemal0146 in https://github.com/biomejs/biome/pull/12177
* fix(css_parser): accept leading digits in Tailwind custom variants by @dyc3 in https://github.com/biomejs/biome/pull/12180
* feat(core): enable SASS, cover more caes in the analyzer by @ematipico in https://github.com/biomejs/biome/pull/12132
* fix(loader): js plugins by @ematipico in https://github.com/biomejs/biome/pull/12188
* feat(css_parser): support Sass values in attr() by @denbezrukov in https://github.com/biomejs/biome/pull/12190
* feat(css): support Sass statements in keyframes by @denbezrukov in https://github.com/biomejs/biome/pull/12191
* fix(parse/tailwind): tokenize binary minus in CSS values by @dyc3 in https://github.com/biomejs/biome/pull/12181
* fix(parse/tailwind): parse CSS variable shorthands as parameter lists by @dyc3 in https://github.com/biomejs/biome/pull/12183
* feat(lint): add noTailwindLegacyUtilities and add legacy basenames to tailwind parser by @dyc3 in https://github.com/biomejs/biome/pull/12185
* fix(useImportExtensions): resolve configured extension mappings by @dyc3 in https://github.com/biomejs/biome/pull/12202
* fix(type_inference): infer string types from template literals by @dyc3 in https://github.com/biomejs/biome/pull/12115
* feat(lint/svelte): add useSvelteKitResolve by @dyc3 in https://github.com/biomejs/biome/pull/11957
* feat(lint/html/vue): add noVueRootVIf by @dyc3 in https://github.com/biomejs/biome/pull/12077
* fix(parse/css): support Grit metavariables in selectors and property names by @siketyan in https://github.com/biomejs/biome/pull/12199
* refactor(parse): lex GritQL metavariables from source text ranges by @siketyan in https://github.com/biomejs/biome/pull/12200
* fix(css_parser): correct variable-led SCSS media ranges by @denbezrukov in https://github.com/biomejs/biome/pull/12196
* fix(css): preserve interpolated SCSS at-rule names by @denbezrukov in https://github.com/biomejs/biome/pull/12205
* feat(lint): add noOctal by @dyc3 in https://github.com/biomejs/biome/pull/12110
* chore: update rule metadata by @dyc3 in https://github.com/biomejs/biome/pull/12217
* feat(lint/yaml): add noEmptySource to yaml by @dyc3 in https://github.com/biomejs/biome/pull/12214
* feat(js-api): expose grit search to js-api by @dyc3 in https://github.com/biomejs/biome/pull/8912
* ci: use nextest in CI for testing by @ematipico in https://github.com/biomejs/biome/pull/12222
* ci: fix insta behaviour by @ematipico in https://github.com/biomejs/biome/pull/12220
* fix(css): support Sass values in modern if() branches by @denbezrukov in https://github.com/biomejs/biome/pull/12209
* fix(format/html/vue): format Vue directive values inside quotes by @dyc3 in https://github.com/biomejs/biome/pull/12131
* chore: rename useSortedClasses to useTailwindSortedClasses by @dyc3 in https://github.com/biomejs/biome/pull/12157
* feat(useSortedClasses): switch to tailwind v4 sorter by @dyc3 in https://github.com/biomejs/biome/pull/12149
* chore(format): normalize spacing in OS matrix list by @dyc3 in https://github.com/biomejs/biome/pull/12227
* fix(format/html/vue): format Vue event handlers that are statements by @dyc3 in https://github.com/biomejs/biome/pull/12218
* fix(tailwind): read stylesheets imported from packages by @dyc3 in https://github.com/biomejs/biome/pull/12192
* fix(cli): inspect plugins messages by @ematipico in https://github.com/biomejs/biome/pull/12230
* fix(cli): inspect config without key by @ematipico in https://github.com/biomejs/biome/pull/12208
* fix(css): collections of model rules by @ematipico in https://github.com/biomejs/biome/pull/12014
* fix(fmt/md): prose wrap of cjk chars by @ematipico in https://github.com/biomejs/biome/pull/12232
* fix(noTailwindArbitraryValues): don't flag modifiers, and add escape hatch options by @dyc3 in https://github.com/biomejs/biome/pull/12194
* feat(lint/js/svelte): add noSvelteObjectInTextMustaches by @dyc3 in https://github.com/biomejs/biome/pull/12072
* feat(lint/js/vue): add noVueRequiredPropWithDefault by @dyc3 in https://github.com/biomejs/biome/pull/12090
* feat(lint/html/vue): add useVueConsistentEventHyphenation by @dyc3 in https://github.com/biomejs/biome/pull/12053
* feat(lint/js): add useCapitalizedConstructors by @dyc3 in https://github.com/biomejs/biome/pull/12081
* feat(lint/md): add noEmptySource to markdown by @dyc3 in https://github.com/biomejs/biome/pull/12221
* fix(parse/css): fix parsing of tailwind `@theme` options by @dyc3 in https://github.com/biomejs/biome/pull/12203
* fix(type_inference): detect inferred arrays correctly by @dyc3 in https://github.com/biomejs/biome/pull/12249
* feat(html): move useScopedStyles to the suspicious group by @dyc3 in https://github.com/biomejs/biome/pull/12245
* fix(lint/html/svelte): mark `class:` and `style:` shorthands as variable usages by @dyc3 in https://github.com/biomejs/biome/pull/12246
* fix(cli): don't let script exit with 0 when child process exits by @dyc3 in https://github.com/biomejs/biome/pull/12251
* fix(useVueConsistentDefinePropsDeclaration): only check calls to the defineProps macro by @dyc3 in https://github.com/biomejs/biome/pull/12242
* feat(noTailwindRestyledComponents): let users supply their own advice messages by @dyc3 in https://github.com/biomejs/biome/pull/12252
* feat(codegen): extract tailwind raw colors by @dyc3 in https://github.com/biomejs/biome/pull/12243
* feat(css): support empty SCSS statements by @denbezrukov in https://github.com/biomejs/biome/pull/12253
* feat(md): friendly cjk semantics by @ematipico in https://github.com/biomejs/biome/pull/12257
* fix(biome_js_analyze): preserve JS number stringification semantics in noUselessStringConcat by @Athish2002 in https://github.com/biomejs/biome/pull/12211
* fix(css): parse quoted interpolation in unknown SCSS at-rules by @denbezrukov in https://github.com/biomejs/biome/pull/12259
* feat(lint/js): add useUnaryMinus by @dyc3 in https://github.com/biomejs/biome/pull/12093
* fix(js_control_flow): resolve unlabeled break/continue inside labeled loops by @dyc3 in https://github.com/biomejs/biome/pull/12117
* feat(lint/js): add useConsistentJsonFileRead by @dyc3 in https://github.com/biomejs/biome/pull/12109
* feat(lint): add noNestedTemplateLiterals by @dyc3 in https://github.com/biomejs/biome/pull/12170
* feat(lint): add noVueVHtml by @dyc3 in https://github.com/biomejs/biome/pull/12135
* feat(lint/js): add noUnsafeUnaryMinus by @dyc3 in https://github.com/biomejs/biome/pull/12116
* feat: add tanstack query rule source by @dyc3 in https://github.com/biomejs/biome/pull/12263
* feat(lint): add noVueVText by @dyc3 in https://github.com/biomejs/biome/pull/12134
* feat(lint): add useNamedFunction by @dyc3 in https://github.com/biomejs/biome/pull/12133
* fix(js_control_flow): treat for loops with a truthy literal test as infinite by @latent-9 in https://github.com/biomejs/biome/pull/12240
* feat(lint/js): add noExcessiveStatementsPerFunction by @dyc3 in https://github.com/biomejs/biome/pull/12061
* feat(lint/html): add useConsistentBlockLang by @dyc3 in https://github.com/biomejs/biome/pull/12094
* feat(lint/js): add noUselessAssignment by @dyc3 in https://github.com/biomejs/biome/pull/12107
* feat(lint): add useMatchingFunctionName by @dyc3 in https://github.com/biomejs/biome/pull/12129
* feat(lint/js): add noSvelteUselessDerivedBy by @dyc3 in https://github.com/biomejs/biome/pull/12092
* fix(noVueDuplicateKeys): don't flag variables derived from withDefaults props by @dyc3 in https://github.com/biomejs/biome/pull/12244
* feat(lint): add noAccidentalBitwiseOperators by @dyc3 in https://github.com/biomejs/biome/pull/12223
* fix(migrate): use Prettier's defaults for semi and singleQuote by @JamBalaya56562 in https://github.com/biomejs/biome/pull/12266
* feat(lint): add noPromiseExecutorReturn by @dyc3 in https://github.com/biomejs/biome/pull/12112
* feat(lint): add noUselessDateGetTime by @dyc3 in https://github.com/biomejs/biome/pull/12186
* feat(lint): add noDoubleComparison by @dyc3 in https://github.com/biomejs/biome/pull/12175
* feat(lint): add noArgumentsCallerOrCallee by @dyc3 in https://github.com/biomejs/biome/pull/12114
* feat(lint): add noObjectConstructor by @dyc3 in https://github.com/biomejs/biome/pull/12111
* chore: update rule metadata by @dyc3 in https://github.com/biomejs/biome/pull/12281
* fix(noUnusedImports): handle svelte stores by @dyc3 in https://github.com/biomejs/biome/pull/12280
* chore(deps): update github-actions by @renovate[bot] in https://github.com/biomejs/biome/pull/12277
* feat(css): parse computed SCSS media feature names by @denbezrukov in https://github.com/biomejs/biome/pull/12283
* fix(css): support compound SCSS placeholder selectors by @denbezrukov in https://github.com/biomejs/biome/pull/12276
* feat(noUnusedVariables): add ignoreUsingDeclarations to options by @dyc3 in https://github.com/biomejs/biome/pull/12206
* fix: plugin includes globs resolve relative to config they are defined in by @dyc3 in https://github.com/biomejs/biome/pull/12264
* feat(lint): add useTailwindStaticClassStrings by @dyc3 in https://github.com/biomejs/biome/pull/11961
* feat(noTailwindRawColors): suggest actual colors from user's design system by @dyc3 in https://github.com/biomejs/biome/pull/12272
* feat(md): configure embeds behaviour by @ematipico in https://github.com/biomejs/biome/pull/12262
* feat(lint): add noInvalidThis by @dyc3 in https://github.com/biomejs/biome/pull/12120
* feat(lint): add useVueMatchingComponentFileName by @dyc3 in https://github.com/biomejs/biome/pull/12137
* feat(lint/js/svelte): add noSvelteAddEventListener by @dyc3 in https://github.com/biomejs/biome/pull/12070
* feat(lint): add useSvelteShorthandDirective by @dyc3 in https://github.com/biomejs/biome/pull/12172
* feat(lint): add useSimplifiedBooleanReturn by @dyc3 in https://github.com/biomejs/biome/pull/12169
* feat(lint): add useLowercaseTestTitle by @dyc3 in https://github.com/biomejs/biome/pull/12154
* chore: update rule metadata by @dyc3 in https://github.com/biomejs/biome/pull/12296
* feat(lint): add useSvelteReactiveClasses by @dyc3 in https://github.com/biomejs/biome/pull/12235
* refactor: move syntax helper to syntax crate by @dyc3 in https://github.com/biomejs/biome/pull/12303
* fix(html): lex processing instructions in their own context by @ematipico in https://github.com/biomejs/biome/pull/12292
* feat: change tailwind domain activation to v4 instead of v3 by @dyc3 in https://github.com/biomejs/biome/pull/12291
* refactor(noProto): avoid possible allocations at all, use idiomatic apis by @dyc3 in https://github.com/biomejs/biome/pull/12288
* fix(css): support computed SCSS @supports names by @denbezrukov in https://github.com/biomejs/biome/pull/12307
* feat(graphql_analyze): implement useSortedVariables by @ff1451 in https://github.com/biomejs/biome/pull/12055
* fix(analyze): update eslint-plugin-package-json rule docs url by @dyc3 in https://github.com/biomejs/biome/pull/12305
* feat(lint): add noVueShadowNativeEvents by @dyc3 in https://github.com/biomejs/biome/pull/12136
* feat(lint): add noVueLifecycleAfterAwait by @dyc3 in https://github.com/biomejs/biome/pull/12229
* feat(graphql_analyze): implement useSortedArguments by @ff1451 in https://github.com/biomejs/biome/pull/12282
* feat(lint/js): add noUselessCall by @dyc3 in https://github.com/biomejs/biome/pull/12082
* fix: correct urls for eslint-plugin-package-json by @dyc3 in https://github.com/biomejs/biome/pull/12313
* feat(css): support interpolation in modern if() conditions by @denbezrukov in https://github.com/biomejs/biome/pull/12312
* feat(css): preserve non-color SCSS hash values by @denbezrukov in https://github.com/biomejs/biome/pull/12321
* perf(service): skip re-parsing formatted code without syntax diagnostics by @dyc3 in https://github.com/biomejs/biome/pull/12322
* perf(formatter): skip comment-free subtrees when collecting comments by @dyc3 in https://github.com/biomejs/biome/pull/12325
* fix(css_formatter): preserve single-element SCSS list commas by @denbezrukov in https://github.com/biomejs/biome/pull/12330
* feat(scss): accept Sass non-ASCII identifier characters by @denbezrukov in https://github.com/biomejs/biome/pull/12324
* fix(useReactCompiler): analyze files with exported type, interface, and enum declarations by @maroKanatani in https://github.com/biomejs/biome/pull/12340
* fix(lsp): empty messages in diagnostics by @ematipico in https://github.com/biomejs/biome/pull/12346
* feat: improved diagnostics for some GraphQL rules by @Netail in https://github.com/biomejs/biome/pull/12350
* feat: sorted GraphQL documents by @Netail in https://github.com/biomejs/biome/pull/12318
* perf(analyze): read suppression comments from borrowed tokens by @dyc3 in https://github.com/biomejs/biome/pull/12339
* perf(rowan): read a single syntax slot without a slot iterator by @dyc3 in https://github.com/biomejs/biome/pull/12331
* perf(cli): skip dropping the workspace when the process exits by @dyc3 in https://github.com/biomejs/biome/pull/12327
* chore(deps): update rust crate tokio to 1.53.3 by @renovate[bot] in https://github.com/biomejs/biome/pull/12140
* fix: improve lint diagnostics by @Netail in https://github.com/biomejs/biome/pull/12353
* feat(css): support at-root statements in keyframes by @denbezrukov in https://github.com/biomejs/biome/pull/12352
* fix(deps): update rustls to 0.23.46 by @dyc3 in https://github.com/biomejs/biome/pull/12359
* perf(lint): skip embedded lookups in files without embedded content by @dyc3 in https://github.com/biomejs/biome/pull/12341
* feat(lint): add noSvelteClassDirective by @dyc3 in https://github.com/biomejs/biome/pull/12254
* feat(scss): support interpolated at-rule prelude names by @denbezrukov in https://github.com/biomejs/biome/pull/12357
* fix: improve more lint diagnostics by @Netail in https://github.com/biomejs/biome/pull/12354
* test(yaml_formatter): update Prettier test suite by @dyc3 in https://github.com/biomejs/biome/pull/12364
* chore: update rule metadata by @dyc3 in https://github.com/biomejs/biome/pull/12378
* fix(js_formatter): parenthesize returned and thrown sequence expressions by @florian-lefebvre in https://github.com/biomejs/biome/pull/12379
* fix: improve even more lint diagnostics by @Netail in https://github.com/biomejs/biome/pull/12355
* fix(js_parser): accept any expression in Astro shorthand attributes by @florian-lefebvre in https://github.com/biomejs/biome/pull/12394
* chore: remove unused advisory ignore by @Netail in https://github.com/biomejs/biome/pull/12396
* refactor(inference): remove the legacy type engine by @ematipico in https://github.com/biomejs/biome/pull/12391
* fix(core): domains and overrides by @ematipico in https://github.com/biomejs/biome/pull/12392
* fix(fmt/html): svelte bindings by @ematipico in https://github.com/biomejs/biome/pull/12393
* fix(css):  preserve URL nodes in SCSS custom properties by @denbezrukov in https://github.com/biomejs/biome/pull/12398
* fix(yaml_parser): exclude trailing blanks from plain scalar tokens by @dyc3 in https://github.com/biomejs/biome/pull/12365
* fix(yaml_formatter): keep comments after flow mapping keys on the key's line by @dyc3 in https://github.com/biomejs/biome/pull/12366
* perf(lint): scan borrowed tokens in noTsIgnore by @dyc3 in https://github.com/biomejs/biome/pull/12360
* perf(lint): scan borrowed tokens in noIrregularWhitespace by @dyc3 in https://github.com/biomejs/biome/pull/12361
* feat(css): accept computed dashed at-rule names in SCSS by @denbezrukov in https://github.com/biomejs/biome/pull/12406
* feat(parse/css): extend lexing/parsing metavariables for CSS-in-JS by @siketyan in https://github.com/biomejs/biome/pull/12210
* feat: parse and format CSS-in-JS snippets with interpolations by @siketyan in https://github.com/biomejs/biome/pull/12212
* fix(format/css): improve compatibility with Prettier for formatting CSS-in-JS snippets by @siketyan in https://github.com/biomejs/biome/pull/12215
* fix(css): preserve Tailwind theme wildcard property order by @latin-1 in https://github.com/biomejs/biome/pull/12411
* perf(analyze): walk only the node kinds the visitors of a phase read by @dyc3 in https://github.com/biomejs/biome/pull/12362
* fix(migrate): migrate eqeqeq null comparison options by @dyc3 in https://github.com/biomejs/biome/pull/12404
* fix: mark `useSingleVarDeclarator` as inspired by @dyc3 in https://github.com/biomejs/biome/pull/12399
* fix(useTailwindShorthandClasses): preserve Tailwind shorthand semantics by @dyc3 in https://github.com/biomejs/biome/pull/12401
* fix(useVueDefineMacrosOrder): fix detection and reordering by @dyc3 in https://github.com/biomejs/biome/pull/12402
* fix(yaml_formatter): keep comments between flow mapping keys and values in place by @dyc3 in https://github.com/biomejs/biome/pull/12367
* fix(yaml_formatter): keep comments after directives in place by @dyc3 in https://github.com/biomejs/biome/pull/12368
* chore: add changeset for gritMetavariables removal by @siketyan in https://github.com/biomejs/biome/pull/12424
* chore: update sponsors by @ematipico in https://github.com/biomejs/biome/pull/12428
* ci(bench): build all biome_service bench targets instead of naming them by @dyc3 in https://github.com/biomejs/biome/pull/12430
* perf(js_control_flow): visit only statement and function nodes when building graphs by @dyc3 in https://github.com/biomejs/biome/pull/12425
* feat(scss): support dynamic attr() units by @denbezrukov in https://github.com/biomejs/biome/pull/12429
* chore(cli): upgrade self_update to v1, drop reqwest by @siketyan in https://github.com/biomejs/biome/pull/11550
* fix(useNamingConvention): ignore declarations nested in ambient namespaces by @dfedoryshchev in https://github.com/biomejs/biome/pull/11888
* perf(rowan): skip refcount traffic for cached children when building trees by @dyc3 in https://github.com/biomejs/biome/pull/12420
* perf(rowan): compute trimmed node ranges from the green tree by @dyc3 in https://github.com/biomejs/biome/pull/12426
* refactor(rowan): add named single-space and newline trivia helpers by @dyc3 in https://github.com/biomejs/biome/pull/12182
* fix(vue): parse `generic` attribute of Vue setup scripts by @levrik in https://github.com/biomejs/biome/pull/12124
* fix(lsp): make `pull_actions` handle embedded snippets by @dyc3 in https://github.com/biomejs/biome/pull/12440
* test(noUndeclaredVariables): update Vue generic snapshot with new diagnostic notes by @dyc3 in https://github.com/biomejs/biome/pull/12442
* feat(scss): support standalone percent values by @denbezrukov in https://github.com/biomejs/biome/pull/12435
* fix(cli): search matches by @ematipico in https://github.com/biomejs/biome/pull/12444
* chore: update rule metadata by @dyc3 in https://github.com/biomejs/biome/pull/12446
* fix(daemon): various fixes by @dyc3 in https://github.com/biomejs/biome/pull/12441
* fix(css): handle irregular whitespace in strings and trivia by @fe-dudu in https://github.com/biomejs/biome/pull/12434
* fix(noTsIgnore): only report comments TypeScript treats as directives by @dyc3 in https://github.com/biomejs/biome/pull/12451
* fix(grit): json query binding by @ematipico in https://github.com/biomejs/biome/pull/12461
* ci: enable unstable releases by @ematipico in https://github.com/biomejs/biome/pull/12463
* perf(lint): fix quadratic time in noUnknownFunction, noShorthandPropertyOverrides and useSingleTopLevelHeading by @dyc3 in https://github.com/biomejs/biome/pull/12462
* test(analyze): remove the kind-filtered walk tests by @dyc3 in https://github.com/biomejs/biome/pull/12467
* perf(js_analyze): decide noUnusedVariables usage from stored reference positions by @dyc3 in https://github.com/biomejs/biome/pull/12437
* perf(search): use optimized Grit query execution by @dyc3 in https://github.com/biomejs/biome/pull/12468
* chore(deps): replace actions/attest-build-provenance action with actions/attest v4.2.2 by @renovate[bot] in https://github.com/biomejs/biome/pull/11981
* fix(css_formatter): keep wrapped selector indent below a rule comment by @dyc3 in https://github.com/biomejs/biome/pull/12474
* feat(rowan): add skip_subtree() to preorder_of_kinds() iterator by @dyc3 in https://github.com/biomejs/biome/pull/12479
* fix(format/js): don't duplicate comments of spread objects in JSX by @vidigoat in https://github.com/biomejs/biome/pull/12480
* fix: advisory for tls vulnerability by @ematipico in https://github.com/biomejs/biome/pull/12490
* ci: release by @github-actions[bot] in https://github.com/biomejs/biome/pull/12065

## New Contributors
* @thibaut-pro made their first contribution in https://github.com/biomejs/biome/pull/10631
* @christymcgrory made their first contribution in https://github.com/biomejs/biome/pull/6886
* @LinusU made their first contribution in https://github.com/biomejs/biome/pull/10424
* @Punisheroot made their first contribution in https://github.com/biomejs/biome/pull/11126
* @dlecan made their first contribution in https://github.com/biomejs/biome/pull/11133
* @GreedyC made their first contribution in https://github.com/biomejs/biome/pull/12068
* @tionway made their first contribution in https://github.com/biomejs/biome/pull/12075
* @MustafaKemal0146 made their first contribution in https://github.com/biomejs/biome/pull/12178
* @Athish2002 made their first contribution in https://github.com/biomejs/biome/pull/12211
* @latent-9 made their first contribution in https://github.com/biomejs/biome/pull/12240
* @maroKanatani made their first contribution in https://github.com/biomejs/biome/pull/12340
* @florian-lefebvre made their first contribution in https://github.com/biomejs/biome/pull/12379
* @latin-1 made their first contribution in https://github.com/biomejs/biome/pull/12411
* @fe-dudu made their first contribution in https://github.com/biomejs/biome/pull/12434
* @vidigoat made their first contribution in https://github.com/biomejs/biome/pull/12480

**Full Changelog**: https://github.com/biomejs/biome/compare/@biomejs/biome@2.5.15...@biomejs/js-api@6.1.0

Related Repositories