Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Refactor to improve performance w/ hoisted regex #39

Merged
merged 1 commit into from
Apr 3, 2024
Merged

Refactor to improve performance w/ hoisted regex #39

merged 1 commit into from
Apr 3, 2024

Conversation

bluwy
Copy link
Contributor

@bluwy bluwy commented Apr 3, 2024

Initial checklist

  • I read the support docs
  • I read the contributing guide
  • I agree to follow the code of conduct
  • I searched issues and couldn’t find anything (or linked relevant results below)
  • If applicable, I’ve added docs and tests

Description of changes

Following wooorm/stringify-entities#13, in this PR I made changes so that the subset passed to stringifyEntities() is a variable so it can be cached via a WeakMap.

I also hoisted a regex in comment.js. Didn't want to side-track the PR again, but it was only one instance 😬

At wooorm/stringify-entities#13, I mentioned that it helped brought the execution time of toHtml to 2.38s. With this PR, I measured it to drop to 1.99s. Not as much as I expected, but perhaps every bit helps.

@github-actions github-actions bot added the 👋 phase/new Post is being triaged automatically label Apr 3, 2024

This comment has been minimized.

@github-actions github-actions bot added 🤞 phase/open Post is being triaged manually and removed 👋 phase/new Post is being triaged automatically labels Apr 3, 2024
@wooorm wooorm changed the title Hoist regex and entity subset Refactor to improve performance w/ hoisted regex Apr 3, 2024
@wooorm wooorm merged commit 6af3709 into syntax-tree:main Apr 3, 2024
5 checks passed
@wooorm wooorm added 🏁 area/perf This affects performance 💪 phase/solved Post is done labels Apr 3, 2024
Copy link

github-actions bot commented Apr 3, 2024

Hi! This was closed. Team: If this was merged, please describe when this is likely to be released. Otherwise, please add one of the no/* labels.

@wooorm
Copy link
Member

wooorm commented Apr 3, 2024

Thanks, released!

@bluwy bluwy deleted the hoist-regex-and-subset branch April 3, 2024 13:33
renovate bot referenced this pull request in turtton/volglass Apr 5, 2024
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence | Type |
Update |
|---|---|---|---|---|---|---|---|
| [@biomejs/biome](https://biomejs.dev)
([source](https://togithub.com/biomejs/biome/tree/HEAD/packages/@biomejs/biome))
| [`1.5.3` ->
`1.6.4`](https://renovatebot.com/diffs/npm/@biomejs%2fbiome/1.5.3/1.6.4)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@biomejs%2fbiome/1.6.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@biomejs%2fbiome/1.6.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@biomejs%2fbiome/1.5.3/1.6.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@biomejs%2fbiome/1.5.3/1.6.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| devDependencies | minor |
|
[@types/node](https://togithub.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node)
([source](https://togithub.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node))
| [`18.19.26` ->
`18.19.30`](https://renovatebot.com/diffs/npm/@types%2fnode/18.19.26/18.19.30)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@types%2fnode/18.19.30?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@types%2fnode/18.19.30?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@types%2fnode/18.19.26/18.19.30?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@types%2fnode/18.19.26/18.19.30?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| devDependencies | patch |
|
[@types/react](https://togithub.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/react)
([source](https://togithub.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react))
| [`18.2.73` ->
`18.2.74`](https://renovatebot.com/diffs/npm/@types%2freact/18.2.73/18.2.74)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@types%2freact/18.2.74?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@types%2freact/18.2.74?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@types%2freact/18.2.73/18.2.74?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@types%2freact/18.2.73/18.2.74?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| devDependencies | patch |
|
[@types/react-dom](https://togithub.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/react-dom)
([source](https://togithub.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react-dom))
| [`18.2.23` ->
`18.2.24`](https://renovatebot.com/diffs/npm/@types%2freact-dom/18.2.23/18.2.24)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@types%2freact-dom/18.2.24?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@types%2freact-dom/18.2.24?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@types%2freact-dom/18.2.23/18.2.24?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@types%2freact-dom/18.2.23/18.2.24?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| devDependencies | patch |
| [gradle](https://gradle.org)
([source](https://togithub.com/gradle/gradle)) | `8.6` -> `8.7` |
[![age](https://developer.mend.io/api/mc/badges/age/gradle-version/gradle/8.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/gradle-version/gradle/8.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/gradle-version/gradle/8.6/8.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/gradle-version/gradle/8.6/8.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| | minor |
| gradle | `8.6.0-jdk11` -> `8.7.0-jdk11` |
[![age](https://developer.mend.io/api/mc/badges/age/docker/gradle/8.7.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/docker/gradle/8.7.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/docker/gradle/8.6.0/8.7.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/docker/gradle/8.6.0/8.7.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| stage | minor |
|
[hast-util-to-html](https://togithub.com/syntax-tree/hast-util-to-html)
| [`9.0.0` ->
`9.0.1`](https://renovatebot.com/diffs/npm/hast-util-to-html/9.0.0/9.0.1)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/hast-util-to-html/9.0.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/hast-util-to-html/9.0.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/hast-util-to-html/9.0.0/9.0.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/hast-util-to-html/9.0.0/9.0.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| dependencies | patch |
| [pnpm](https://pnpm.io) ([source](https://togithub.com/pnpm/pnpm)) |
[`8.15.4` ->
`8.15.6`](https://renovatebot.com/diffs/npm/pnpm/8.15.4/8.15.6) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/pnpm/8.15.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/pnpm/8.15.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/pnpm/8.15.4/8.15.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/pnpm/8.15.4/8.15.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| packageManager | patch |
| [reactflow](https://togithub.com/xyflow/xyflow)
([source](https://togithub.com/xyflow/xyflow/tree/HEAD/packages/reactflow))
| [`11.10.4` ->
`11.11.0`](https://renovatebot.com/diffs/npm/reactflow/11.10.4/11.11.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/reactflow/11.11.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/reactflow/11.11.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/reactflow/11.10.4/11.11.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/reactflow/11.10.4/11.11.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| dependencies | minor |
| [ts-pattern](https://togithub.com/gvergnaud/ts-pattern) | [`5.0.8` ->
`5.1.0`](https://renovatebot.com/diffs/npm/ts-pattern/5.0.8/5.1.0) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/ts-pattern/5.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/ts-pattern/5.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/ts-pattern/5.0.8/5.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/ts-pattern/5.0.8/5.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| dependencies | minor |
| [typescript](https://www.typescriptlang.org/)
([source](https://togithub.com/Microsoft/TypeScript)) | [`5.4.3` ->
`5.4.4`](https://renovatebot.com/diffs/npm/typescript/5.4.3/5.4.4) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/typescript/5.4.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/typescript/5.4.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/typescript/5.4.3/5.4.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/typescript/5.4.3/5.4.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| devDependencies | patch |
|
[org.jetbrains.kotlin-wrappers:kotlin-wrappers-bom](https://togithub.com/JetBrains/kotlin-wrappers)
| `1.0.0-pre.710` -> `1.0.0-pre.723` |
[![age](https://developer.mend.io/api/mc/badges/age/maven/org.jetbrains.kotlin-wrappers:kotlin-wrappers-bom/1.0.0-pre.723?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/org.jetbrains.kotlin-wrappers:kotlin-wrappers-bom/1.0.0-pre.723?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/org.jetbrains.kotlin-wrappers:kotlin-wrappers-bom/1.0.0-pre.710/1.0.0-pre.723?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/org.jetbrains.kotlin-wrappers:kotlin-wrappers-bom/1.0.0-pre.710/1.0.0-pre.723?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| dependencies | patch |
| [org.jetbrains:markdown](https://togithub.com/JetBrains/markdown) |
`0.6.1` -> `0.7.0` |
[![age](https://developer.mend.io/api/mc/badges/age/maven/org.jetbrains:markdown/0.7.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/org.jetbrains:markdown/0.7.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/org.jetbrains:markdown/0.6.1/0.7.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/org.jetbrains:markdown/0.6.1/0.7.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| dependencies | minor |

---

### Release Notes

<details>
<summary>biomejs/biome (@&#8203;biomejs/biome)</summary>

###
[`v1.6.4`](https://togithub.com/biomejs/biome/blob/HEAD/CHANGELOG.md#164-2022-04-03)

[Compare
Source](https://togithub.com/biomejs/biome/compare/23b5a73ac7ccd4920f13919aaa712b9364020e88...f6fd1ef7130e7bcd1466aa78ae7295fc5fdd5d58)

##### Analyzer

##### Bug fixes

- An operator with no spaces around in a binary expression no longer
breaks the js analyzer
([#&#8203;2243](https://togithub.com/biomejs/biome/issues/2243)).
Contributed by [@&#8203;Sec-ant](https://togithub.com/Sec-ant)

##### CLI

##### Bug fixes

- Fix the printed error count
([#&#8203;2048](https://togithub.com/biomejs/biome/issues/2048)).
Contributed by [@&#8203;Sec-ant](https://togithub.com/Sec-ant)

##### Configuration

##### Bug fixes

- Correctly calculate enabled rules in lint rule groups. Now a specific
rule belonging to a group can be enabled even if its group-level preset
option `recommended` or `all` is `false`
([#&#8203;2191](https://togithub.com/biomejs/biome/issues/2191)).
Contributed by [@&#8203;Sec-ant](https://togithub.com/Sec-ant)

##### Editors

##### Bug fixes

- Fix the unexpected code deletion and repetition when `quickfix.biome`
is enabled and some `import`-related rules are applied
([#&#8203;2222](https://togithub.com/biomejs/biome/issues/2222),
[#&#8203;688](https://togithub.com/biomejs/biome/issues/688),
[#&#8203;1015](https://togithub.com/biomejs/biome/issues/1015)).
Contributed by [@&#8203;Sec-ant](https://togithub.com/Sec-ant)

##### Linter

##### Bug fixes

- Fix [#&#8203;2211](https://togithub.com/biomejs/biome/issues/2211).
noChildrenProp should work fine when children pass as a prop in a new
line. Contributed by
[@&#8203;fireairforce](https://togithub.com/fireairforce)

- Fix [#&#8203;2248](https://togithub.com/biomejs/biome/issues/2248).
`lint/a11y/useButtonType` should not trigger when button element with
spread attribute. Contributed by
[@&#8203;fireairforce](https://togithub.com/fireairforce)

- Fix [#&#8203;2216](https://togithub.com/biomejs/biome/issues/2216).
`lint/style/useNamingConvention` should not ignore JSX Component name
binding. Contributed by
[@&#8203;fireairforce](https://togithub.com/fireairforce)

##### Enhancements

- Add support for object property members in the rule
`useSortedClasses`. Contributed by
[@&#8203;ematipico](https://togithub.com/ematipico)

##### Parser

- The parser doesn't throw any error when the frontmatter of `.astro`
files contains an illegal return:

###
[`v1.6.3`](https://togithub.com/biomejs/biome/blob/HEAD/CHANGELOG.md#163-2024-03-25)

[Compare
Source](https://togithub.com/biomejs/biome/compare/7669b334ecfb9580abe83bbf6141232805f0e4bd...23b5a73ac7ccd4920f13919aaa712b9364020e88)

##### Analyzer

##### CLI

##### Bug fixes

- Fix configuration resolution. Biome is now able to correctly find the
`biome.jsonc` configuration file when `--config-path` is explicitly set
([#&#8203;2164](https://togithub.com/biomejs/biome/issues/2164)).
Contributed by [@&#8203;Sec-ant](https://togithub.com/Sec-ant)

- JavaScript/TypeScript files of different variants (`.ts`, `.js`,
`.tsx`, `.jsx`) in a single workspace now have stable formatting
behaviors when running the CLI command in paths of different nested
levels or in different operating systems
([#&#8203;2080](https://togithub.com/biomejs/biome/issues/2080),
[#&#8203;2109](https://togithub.com/biomejs/biome/issues/2109)).
Contributed by [@&#8203;Sec-ant](https://togithub.com/Sec-ant)

##### Configuration

##### Bug fixes

- Complete the documentation and overrides support for options
`formatter.lineEnding`, `[language].formatter.lineEnding`,
`formatter.attributePosition` and
`javascript.formatter.attributePosition`. Contributed by
[@&#8203;Sec-ant](https://togithub.com/Sec-ant)

##### Editors

##### Formatter

##### Bug fixes

- Fix [#&#8203;2172](https://togithub.com/biomejs/biome/issues/2172) by
breaking long object destructuring patterns. Contributed by
[@&#8203;ah-yu](https://togithub.com/ah-yu)

##### JavaScript APIs

##### Linter

##### New features

- Add rule
[noEvolvingAny](https://biomejs.dev/linter/rules/no-evolving-any) to
disallow variables from evolving into `any` type through reassignments.
Contributed by
[@&#8203;fujiyamaorange](https://togithub.com/fujiyamaorange)

##### Enhancements

- Rename `noSemicolonInJsx` to `noSuspiciousSemicolonInJsx`. Contributed
by [@&#8203;fujiyamaorange](https://togithub.com/fujiyamaorange)

##### LSP

##### Bug fixes

- Quickfix action no longer autofixes lint rule errors on save when
`linter` is disabled
([#&#8203;2161](https://togithub.com/biomejs/biome/issues/2161)).
Contributed by [@&#8203;Sec-ant](https://togithub.com/Sec-ant)
- Range formatting for Astro/Svelte/Vue doesn't place code out of place,
especially when formatting on paste is enabled. Contributed by
[@&#8203;ematipico](https://togithub.com/ematipico)

##### Parser

###
[`v1.6.2`](https://togithub.com/biomejs/biome/blob/HEAD/CHANGELOG.md#162-2024-03-22)

[Compare
Source](https://togithub.com/biomejs/biome/compare/4ed1cbe96bc9e6d7092e88dd0a54ff8ce78037e5...7669b334ecfb9580abe83bbf6141232805f0e4bd)

##### Analyzer

##### Bug fixes

- The `noSuperWithoutExtends` rule now allows for calling `super()` in
derived class constructors of class expressions
([#&#8203;2108](https://togithub.com/biomejs/biome/issues/2108)).
Contributed by [@&#8203;Sec-ant](https://togithub.com/Sec-ant)

- Fix discrepancies on file source detection. Allow module syntax in
`.cts` files
([#&#8203;2114](https://togithub.com/biomejs/biome/issues/2114)).
Contributed by [@&#8203;Sec-ant](https://togithub.com/Sec-ant)

##### CLI

##### Bug fixes

- Fixes [#&#8203;2131](https://togithub.com/biomejs/biome/issues/2131),
where folders were incorrectly ignored when running the command `check`.
Now folders are correctly ignored based on their command. Contributed by
[@&#8203;ematipico](https://togithub.com/ematipico)

- Smoother handling of `"endOfLine": "auto"` in prettier migration:
falling back to `"lf"`
([#&#8203;2145](https://togithub.com/biomejs/biome/pull/2145)).
Contributed by [@&#8203;eMerzh](https://togithub.com/eMerzh)

##### Configuration

##### Bug fixes

- Fix enabled rules calculation. The precendence of individual rules,
`all` and `recommend` presets in top-level and group-level configs is
now correctly respected. More details can be seen in
([#&#8203;2072](https://togithub.com/biomejs/biome/pull/2072))
([#&#8203;2028](https://togithub.com/biomejs/biome/issues/2028)).
Contributed by [@&#8203;Sec-ant](https://togithub.com/Sec-ant)

##### Formatter

##### Bug fixes

- Fix [#&#8203;1661](https://togithub.com/biomejs/biome/issues/1661).
Now nested conditionals are aligned with Prettier's logic, and won't
contain mixed spaces and tabs. Contributed by
[@&#8203;ematipico](https://togithub.com/ematipico)

##### JavaScript APIs

##### Enhancements

- Support applying lint fixes when calling the `lintContent` method of
the `Biome` class
([#&#8203;1956](https://togithub.com/biomejs/biome/pull/1956)).
Contributed by [@&#8203;mnahkies](https://togithub.com/mnahkies)

##### Linter

##### Bug fixes

- Rule `noUndeclaredDependencies` now also validates `peerDependencies`
and `optionalDependencies`
([#&#8203;2122](https://togithub.com/biomejs/biome/issues/2122)).
Contributed by [@&#8203;Sec-ant](https://togithub.com/Sec-ant)

- Rule `noUndeclaredDependencies` won't check `declare module`
statements anymore
([#&#8203;2123](https://togithub.com/biomejs/biome/issues/2123)).
Contributed by [@&#8203;Sec-ant](https://togithub.com/Sec-ant)

- Fix [#&#8203;1925](https://togithub.com/biomejs/biome/issues/1925).
The fix for `useOptionalChain` would sometimes suggest an incorrect fix
that discarded optional chaining operators on the left-hand side of
logical expressions. These are now preserved. Contributed by
[@&#8203;arendjr](https://togithub.com/arendjr)

- Rule `noUndeclaredVariables` now also checks for worker globals
([#&#8203;2121](https://togithub.com/biomejs/biome/issues/2121)).
Contributed by [@&#8203;Sec-ant](https://togithub.com/Sec-ant)

##### LSP

##### Bug fixes

- Correctly parse `.jsonc` files. Contributed by
[@&#8203;Sec-ant](https://togithub.com/Sec-ant)

- Correctly resolve external `extends` configs. Contributed by
[@&#8203;Sec-ant](https://togithub.com/Sec-ant)

###
[`v1.6.1`](https://togithub.com/biomejs/biome/blob/HEAD/CHANGELOG.md#161-2024-03-12)

[Compare
Source](https://togithub.com/biomejs/biome/compare/560628b380b0b1f61303c8e5ca2175d3b4794089...4ed1cbe96bc9e6d7092e88dd0a54ff8ce78037e5)

##### CLI

##### Bug fixes

- CLI is now able to automatically search and resolve `biome.jsonc`
([#&#8203;2008](https://togithub.com/biomejs/biome/issues/2008)).
Contributed by [@&#8203;Sec-ant](https://togithub.com/Sec-ant)
- Fix a false positive where some files were counted as "fixed" even
though they weren't modified. Contributed by
[@&#8203;ematipico](https://togithub.com/ematipico)

##### Configuration

##### Bug fixes

- `json.formatter.trailingCommas` option now works in `overrides`
([#&#8203;2009](https://togithub.com/biomejs/biome/issues/2009)).
Contributed by [@&#8203;Sec-ant](https://togithub.com/Sec-ant)

##### Linter

##### New features

- Add rule
[noDoneCallback](https://biomejs.dev/linter/rules/no-done-callback),
this rule checks the function parameter of hooks & tests
for use of the done argument, suggesting you return a promise instead.
Contributed by [@&#8203;vasucp1207](https://togithub.com/vasucp1207)

    ```js
    beforeEach(done => {
      // ...
    });
    ```

##### Bug fixes

-
[useJsxKeyInIterable](https://biomejs.dev/linter/rules/use-jsx-key-in-iterable)
now recognizes function bodies wrapped in parentheses
([#&#8203;2011](https://togithub.com/biomejs/biome/issues/2011)).
Contributed by [@&#8203;Sec-ant](https://togithub.com/Sec-ant)

-
[useShorthandFunctionType](https://biomejs.dev/linter/rules/use-shorthand-function-type)
now preserves type parameters of generic interfaces when applying fixes
([#&#8203;2015](https://togithub.com/biomejs/biome/issues/2015)).
Contributed by [@&#8203;Sec-ant](https://togithub.com/Sec-ant)

- Code fixes of
[useImportType](https://biomejs.dev/linter/rules/use-import-type) and
[useExportType](https://biomejs.dev/linter/rules/use-export-type) now
handle multiline statements
([#&#8203;2041](https://togithub.com/biomejs/biome/issues/2041)).
Contributed by [@&#8203;Conaclos](https://togithub.com/Conaclos)

- [noRedeclare](https://biomejs.dev/linter/rules/no-redeclare) no longer
reports type parameter and parameter with identical names
([#&#8203;1992](https://togithub.com/biomejs/biome/issues/1992)).

    The following code is no longer reported:

    ```ts
    function f<a>(a: a) {}
    ```

    Contributed by [@&#8203;Conaclos](https://togithub.com/Conaclos)

- [noRedeclare](https://biomejs.dev/linter/rules/no-redeclare) now
reports duplicate type parameters in a same declaration.

    The following type parameters are now reported as a redeclaraion:

    ```ts
    function f<T, T>() {}
    ```

    Contributed by [@&#8203;Conaclos](https://togithub.com/Conaclos)

-
[noUndeclaredDependencies](https://biomejs.dev/linter/rules/no-undeclared-dependencies/)
now recognizes imports of subpath exports.

E.g., the following import statements no longer report errors if
`@mui/material` and `tailwindcss` are installed as dependencies:

    ```ts
    import Button from "@&#8203;mui/material/Button";
    import { fontFamily } from "tailwindcss/defaultTheme";
    ```

    Contributed by [@&#8203;Sec-ant](https://togithub.com/Sec-ant)

##### Parser

##### Bug fixes

- JavaScript lexer is now able to lex regular expression literals with
escaped non-ascii chars
([#&#8203;1941](https://togithub.com/biomejs/biome/issues/1941)).

    Contributed by [@&#8203;Sec-ant](https://togithub.com/Sec-ant)

###
[`v1.6.0`](https://togithub.com/biomejs/biome/blob/HEAD/CHANGELOG.md#160-2024-03-08)

[Compare
Source](https://togithub.com/biomejs/biome/compare/906de83449b5066554cd8e97c78a1f8e43749016...560628b380b0b1f61303c8e5ca2175d3b4794089)

##### Analyzer

##### New features

- Add partial for `.astro` files. Biome is able to sort imports inside
the frontmatter of the Astro files. Contributed
    by [@&#8203;ematipico](https://togithub.com/ematipico)

</details>

<details>
<summary>gradle/gradle (gradle)</summary>

### [`v8.7`](https://togithub.com/gradle/gradle/compare/v8.6.0...v8.7.0)

[Compare
Source](https://togithub.com/gradle/gradle/compare/v8.6.0...v8.7.0)

</details>

<details>
<summary>syntax-tree/hast-util-to-html (hast-util-to-html)</summary>

###
[`v9.0.1`](https://togithub.com/syntax-tree/hast-util-to-html/releases/tag/9.0.1)

[Compare
Source](https://togithub.com/syntax-tree/hast-util-to-html/compare/9.0.0...9.0.1)

##### Performance

-
[`6af3709`](https://togithub.com/syntax-tree/hast-util-to-html/commit/6af3709)
Refactor to improve performance w/ hoisted regex
by [@&#8203;bluwy](https://togithub.com/bluwy) in
[https://github.com/syntax-tree/hast-util-to-html/pull/39](https://togithub.com/syntax-tree/hast-util-to-html/pull/39)

**Full Changelog**:
syntax-tree/hast-util-to-html@9.0.0...9.0.1

</details>

<details>
<summary>pnpm/pnpm (pnpm)</summary>

### [`v8.15.6`](https://togithub.com/pnpm/pnpm/releases/tag/v8.15.6)

[Compare
Source](https://togithub.com/pnpm/pnpm/compare/v8.15.5...v8.15.6)

#### Patch Changes

- The exit code of the child process should be preserved on `pnpm run`
[#&#8203;7817](https://togithub.com/pnpm/pnpm/issues/7817).
- When sorting packages in a workspace, take into account workspace
dependencies specified as `peerDependencies`
[#&#8203;7813](https://togithub.com/pnpm/pnpm/issues/7813).
- Add `--ignore-scripts` argument to `prune` command
[#&#8203;7836](https://togithub.com/pnpm/pnpm/pull/7836).

#### Platinum Sponsors

<table>
  <tbody>
    <tr>
      <td align="center" valign="middle">
<a href="https://bit.dev/?utm_source=pnpm&utm_medium=readme"
target="_blank"><img src="https://pnpm.io/img/users/bit.svg"
width="80"></a>
      </td>
      <td align="center" valign="middle">
<a href="https://figma.com/?utm_source=pnpm&utm_medium=readme"
target="_blank"><img src="https://pnpm.io/img/users/figma.svg"
width="80"></a>
      </td>
    </tr>
  </tbody>
</table>

#### Gold Sponsors

<table>
  <tbody>
    <tr>
      <td align="center" valign="middle">
<a href="https://discord.com/?utm_source=pnpm&utm_medium=readme"
target="_blank">
          <picture>
<source media="(prefers-color-scheme: light)"
srcset="https://pnpm.io/img/users/discord.svg" />
<source media="(prefers-color-scheme: dark)"
srcset="https://pnpm.io/img/users/discord_light.svg" />
<img src="https://pnpm.io/img/users/discord.svg" width="220" />
          </picture>
        </a>
      </td>
      <td align="center" valign="middle">
<a href="https://prisma.io/?utm_source=pnpm&utm_medium=readme"
target="_blank">
          <picture>
<source media="(prefers-color-scheme: light)"
srcset="https://pnpm.io/img/users/prisma.svg" />
<source media="(prefers-color-scheme: dark)"
srcset="https://pnpm.io/img/users/prisma_light.svg" />
<img src="https://pnpm.io/img/users/prisma.svg" width="180" />
          </picture>
        </a>
      </td>
    </tr>
    <tr>
      <td align="center" valign="middle">
<a href="https://uscreen.de/?utm_source=pnpm&utm_medium=readme"
target="_blank">
          <picture>
<source media="(prefers-color-scheme: light)"
srcset="https://pnpm.io/img/users/uscreen.svg" />
<source media="(prefers-color-scheme: dark)"
srcset="https://pnpm.io/img/users/uscreen_light.svg" />
<img src="https://pnpm.io/img/users/uscreen.svg" width="180" />
          </picture>
        </a>
      </td>
      <td align="center" valign="middle">
<a href="https://www.jetbrains.com/?utm_source=pnpm&utm_medium=readme"
target="_blank">
          <picture>
<source media="(prefers-color-scheme: light)"
srcset="https://pnpm.io/img/users/jetbrains.svg" />
<source media="(prefers-color-scheme: dark)"
srcset="https://pnpm.io/img/users/jetbrains.svg" />
<img src="https://pnpm.io/img/users/jetbrains.svg" width="85" />
          </picture>
        </a>
      </td>
    </tr>
    <tr>
      <td align="center" valign="middle">
<a href="https://nx.dev/?utm_source=pnpm&utm_medium=readme"
target="_blank">
          <picture>
<source media="(prefers-color-scheme: light)"
srcset="https://pnpm.io/img/users/nx.svg" />
<source media="(prefers-color-scheme: dark)"
srcset="https://pnpm.io/img/users/nx_light.svg" />
            <img src="https://pnpm.io/img/users/nx.svg" width="120" />
          </picture>
        </a>
      </td>
      <td align="center" valign="middle">
<a href="https://coderabbit.ai/?utm_source=pnpm&utm_medium=readme"
target="_blank">
          <picture>
<source media="(prefers-color-scheme: light)"
srcset="https://pnpm.io/img/users/coderabbit.svg" />
<source media="(prefers-color-scheme: dark)"
srcset="https://pnpm.io/img/users/coderabbit_light.svg" />
<img src="https://pnpm.io/img/users/coderabbit.svg" width="220" />
          </picture>
        </a>
      </td>
    </tr>
  </tbody>
</table>

#### Silver Sponsors

<table>
  <tbody>
    <tr>
      <td align="center" valign="middle">
<a href="https://leniolabs.com/?utm_source=pnpm&utm_medium=readme"
target="_blank">
          <img src="https://pnpm.io/img/users/leniolabs.jpg" width="80">
        </a>
      </td>
      <td align="center" valign="middle">
<a href="https://vercel.com/?utm_source=pnpm&utm_medium=readme"
target="_blank">
          <picture>
<source media="(prefers-color-scheme: light)"
srcset="https://pnpm.io/img/users/vercel.svg" />
<source media="(prefers-color-scheme: dark)"
srcset="https://pnpm.io/img/users/vercel_light.svg" />
<img src="https://pnpm.io/img/users/vercel.svg" width="180" />
          </picture>
        </a>
      </td>
    </tr>
    <tr>
      <td align="center" valign="middle">
<a href="https://depot.dev/?utm_source=pnpm&utm_medium=readme"
target="_blank">
          <picture>
<source media="(prefers-color-scheme: light)"
srcset="https://pnpm.io/img/users/depot.svg" />
<source media="(prefers-color-scheme: dark)"
srcset="https://pnpm.io/img/users/depot_light.svg" />
<img src="https://pnpm.io/img/users/depot.svg" width="200" />
          </picture>
        </a>
      </td>
      <td align="center" valign="middle">
<a href="https://moonrepo.dev/?utm_source=pnpm&utm_medium=readme"
target="_blank">
          <picture>
<source media="(prefers-color-scheme: light)"
srcset="https://pnpm.io/img/users/moonrepo.svg" />
<source media="(prefers-color-scheme: dark)"
srcset="https://pnpm.io/img/users/moonrepo_light.svg" />
<img src="https://pnpm.io/img/users/moonrepo.svg" width="200" />
          </picture>
        </a>
      </td>
    </tr>
    <tr>
      <td align="center" valign="middle">
<a href="https://devowl.io/?utm_source=pnpm&utm_medium=readme"
target="_blank">
          <picture>
<source media="(prefers-color-scheme: light)"
srcset="https://pnpm.io/img/users/devowlio.svg" />
<source media="(prefers-color-scheme: dark)"
srcset="https://pnpm.io/img/users/devowlio.svg" />
<img src="https://pnpm.io/img/users/devowlio.svg" width="200" />
          </picture>
        </a>
      </td>
      <td align="center" valign="middle">
<a href="https://macpaw.com/?utm_source=pnpm&utm_medium=readme"
target="_blank">
          <picture>
<source media="(prefers-color-scheme: light)"
srcset="https://pnpm.io/img/users/macpaw.svg" />
<source media="(prefers-color-scheme: dark)"
srcset="https://pnpm.io/img/users/macpaw_light.svg" />
<img src="https://pnpm.io/img/users/macpaw.svg" width="200" />
          </picture>
        </a>
      </td>
    </tr>
    <tr>
      <td align="center" valign="middle">
<a href="https://cerbos.dev/?utm_source=pnpm&utm_medium=readme"
target="_blank">
          <picture>
<source media="(prefers-color-scheme: light)"
srcset="https://pnpm.io/img/users/cerbos.svg" />
<source media="(prefers-color-scheme: dark)"
srcset="https://pnpm.io/img/users/cerbos_light.svg" />
<img src="https://pnpm.io/img/users/cerbos.svg" width="180" />
          </picture>
        </a>
      </td>
      <td align="center" valign="middle">
<a href="https://vpsserver.com/en-us/?utm_source=pnpm&utm_medium=readme"
target="_blank">
<img src="https://pnpm.io/img/users/vpsserver.svg" width="180" />
        </a>
      </td>
    </tr>
  </tbody>
</table>

###
[`v8.15.5`](https://togithub.com/pnpm/pnpm/compare/v8.15.4...v8.15.5)

[Compare
Source](https://togithub.com/pnpm/pnpm/compare/v8.15.4...v8.15.5)

</details>

<details>
<summary>xyflow/xyflow (reactflow)</summary>

###
[`v11.11.0`](https://togithub.com/xyflow/xyflow/releases/tag/11.11.0)

[Compare
Source](https://togithub.com/xyflow/xyflow/compare/[email protected]@11.11.0)

This is hopefully the last release for React Flow 11. It fixes some bugs
and adds a deprecation warning for `node.parentNode` which is now called
`node.parentId`. There are two reasons for this: `parentNode` poses a
name collision with the DOM API and it actually is an id not a node.

##### Minor Changes

- [#&#8203;4110](https://togithub.com/xyflow/xyflow/pull/4110)
[`d80b9e7b`](https://togithub.com/xyflow/xyflow/commit/d80b9e7b18476f11d91a68cfcae0e3f5e5fcac36)
- deprecate `node.parentNode`, rename to `node.parentId`

##### Patch Changes

- [#&#8203;3957](https://togithub.com/xyflow/xyflow/pull/3957)
[`c7a140bd`](https://togithub.com/xyflow/xyflow/commit/c7a140bd7bc4442bf4121b1bca936a05e19117a4)
- fixed smoothstep edge if center = 0

- [#&#8203;4082](https://togithub.com/xyflow/xyflow/pull/4082)
[`ba3809b1`](https://togithub.com/xyflow/xyflow/commit/ba3809b18413fa581a4e7098611ebcb9067c971f)
- fix: re-observe nodes when hidden is toggled

- [#&#8203;3935](https://togithub.com/xyflow/xyflow/pull/3935)
[`6228d499`](https://togithub.com/xyflow/xyflow/commit/6228d499464408fc7bad0ce89b321a59ca5ecbe1)
- `disableKeyboardA11y` now correctly prevents enter and escape key
presses

- Updated dependencies
\[[`c7a140bd`](https://togithub.com/xyflow/xyflow/commit/c7a140bd7bc4442bf4121b1bca936a05e19117a4),
[`ba3809b1`](https://togithub.com/xyflow/xyflow/commit/ba3809b18413fa581a4e7098611ebcb9067c971f),
[`6228d499`](https://togithub.com/xyflow/xyflow/commit/6228d499464408fc7bad0ce89b321a59ca5ecbe1)]:
-
[@&#8203;reactflow/core](https://togithub.com/reactflow/core)[@&#8203;11](https://togithub.com/11).10.5
-
[@&#8203;reactflow/background](https://togithub.com/reactflow/background)[@&#8203;11](https://togithub.com/11).3.10
-
[@&#8203;reactflow/controls](https://togithub.com/reactflow/controls)[@&#8203;11](https://togithub.com/11).2.10
-
[@&#8203;reactflow/minimap](https://togithub.com/reactflow/minimap)[@&#8203;11](https://togithub.com/11).7.10
-
[@&#8203;reactflow/node-resizer](https://togithub.com/reactflow/node-resizer)[@&#8203;2](https://togithub.com/2).2.10
-
[@&#8203;reactflow/node-toolbar](https://togithub.com/reactflow/node-toolbar)[@&#8203;1](https://togithub.com/1).3.10

</details>

<details>
<summary>gvergnaud/ts-pattern (ts-pattern)</summary>

###
[`v5.1.0`](https://togithub.com/gvergnaud/ts-pattern/releases/tag/v5.1.0)

[Compare
Source](https://togithub.com/gvergnaud/ts-pattern/compare/v5.0.8...v5.1.0)

##### New features

##### `P.nonNullable` wildcard

Add a new `P.nonNullable` pattern that will match any value except
`null` or `undefined`.

```ts
import { match, P } from 'ts-pattern';

const input = null;

const output = match<number | null | undefined>(input)
  .with(P.nonNullable, () => 'it is a number!')
  .otherwise(() => 'it is either null or undefined!');

console.log(output);
// => 'it is either null or undefined!'
```

Closes [#&#8203;60](https://togithub.com/gvergnaud/ts-pattern/issues/60)
[#&#8203;154](https://togithub.com/gvergnaud/ts-pattern/issues/154)
[#&#8203;190](https://togithub.com/gvergnaud/ts-pattern/issues/190) and
will be a work-around for
[#&#8203;143](https://togithub.com/gvergnaud/ts-pattern/issues/143).

##### What's Changed

- feat: Add P.nonNullable patterns by
[@&#8203;gvergnaud](https://togithub.com/gvergnaud) in
[https://github.com/gvergnaud/ts-pattern/pull/229](https://togithub.com/gvergnaud/ts-pattern/pull/229)

**Full Changelog**:
gvergnaud/ts-pattern@v5.0.8...v5.1.0

</details>

<details>
<summary>Microsoft/TypeScript (typescript)</summary>

###
[`v5.4.4`](https://togithub.com/microsoft/TypeScript/releases/tag/v5.4.4):
TypeScript 5.4.4

[Compare
Source](https://togithub.com/Microsoft/TypeScript/compare/v5.4.3...v5.4.4)

For release notes, check out the [release
announcement](https://devblogs.microsoft.com/typescript/announcing-typescript-5-4/).

For the complete list of fixed issues, check out the

- [fixed issues query for Typescript 5.4.0
(Beta)](https://togithub.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=milestone%3A%22TypeScript+5.4.0%22+is%3Aclosed+).
- [fixed issues query for Typescript 5.4.1
(RC)](https://togithub.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=milestone%3A%22TypeScript+5.4.1%22+is%3Aclosed+).
- [fixed issues query for Typescript 5.4.2
(Stable)](https://togithub.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=milestone%3A%22TypeScript+5.4.2%22+is%3Aclosed+).
- [fixed issues query for Typescript 5.4.3
(Stable)](https://togithub.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=milestone%3A%22TypeScript+5.4.3%22+is%3Aclosed+).
- [fixed issues query for Typescript 5.4.4
(Stable)](https://togithub.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=milestone%3A%22TypeScript+5.4.4%22+is%3Aclosed+).

Downloads are available on:

- [NuGet
package](https://www.nuget.org/packages/Microsoft.TypeScript.MSBuild)

</details>

<details>
<summary>JetBrains/markdown (org.jetbrains:markdown)</summary>

###
[`v0.7.0`](https://togithub.com/JetBrains/markdown/blob/HEAD/CHANGELOG.md#070)

- \[[#&#8203;133](https://togithub.com/JetBrains/markdown/issues/133)]
Added support for mathematical expressions in GFM
- \[[#&#8203;140](https://togithub.com/JetBrains/markdown/issues/140)]
Added wasmJs target
- \[[#&#8203;146](https://togithub.com/JetBrains/markdown/issues/146)]
Added linuxArm64 target
- \[[#&#8203;149](https://togithub.com/JetBrains/markdown/issues/149)]
Fixed parsing of code spans with backslashes and spaces

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "after 1pm and before 5pm on Friday"
in timezone Asia/Tokyo, Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config help](https://togithub.com/renovatebot/renovate/discussions) if
that's undesired.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/turtton/volglass).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4yNjkuMiIsInVwZGF0ZWRJblZlciI6IjM3LjI2OS4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
🏁 area/perf This affects performance 🤞 phase/open Post is being triaged manually 💪 phase/solved Post is done
Development

Successfully merging this pull request may close these issues.

2 participants