Skip to content

fix(deps): update dependency postcss to v8.5.4 #443

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

Closed
wants to merge 1 commit into from

Conversation

renovate[bot]
Copy link
Contributor

@renovate renovate bot commented Jun 5, 2025

This PR contains the following updates:

Package Change Age Adoption Passing Confidence
postcss (source) 8.5.3 -> 8.5.4 age adoption passing confidence

Release Notes

postcss/postcss (postcss)

v8.5.4

Compare Source


Configuration

📅 Schedule: Branch creation - Tuesday through Thursday ( * * * * 2-4 ) in timezone America/New_York, Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

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

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

Copy link

github-actions bot commented Jun 5, 2025

[puLL-Merge] - postcss/[email protected]

Diff
diff --git CHANGELOG.md CHANGELOG.md
index ad10ecf7e..3500c2e5a 100644
--- CHANGELOG.md
+++ CHANGELOG.md
@@ -1,6 +1,9 @@
 # Change Log
 This project adheres to [Semantic Versioning](https://semver.org/).
 
+## 8.5.4
+* Fixed Parcel compatibility issue (by @git-sumitchaudhary).
+
 ## 8.5.3
 * Added more details to `Unknown word` error (by @hiepxanh).
 * Fixed types (by @romainmenke).
diff --git README.md README.md
index 0c5d12b9e..71907544d 100644
--- README.md
+++ README.md
@@ -9,7 +9,7 @@ These plugins can lint your CSS, support variables and mixins,
 transpile future CSS syntax, inline images, and more.
 
 PostCSS is used by industry leaders including Wikipedia, Twitter, Alibaba,
-and JetBrains. The [Autoprefixer] and [Stylelint] PostCSS plugins is one of the most popular CSS tools.
+and JetBrains. The [Autoprefixer] and [Stylelint] PostCSS plugins are some of the most popular CSS tools.
 
 ---
 
@@ -460,9 +460,10 @@ module.exports = {
 ### VS Code
 
 * [`csstools.postcss`] adds PostCSS support.
+* [`smallcase.postcssense`] adds Intellisense for global classes
 
 [`csstools.postcss`]: https://marketplace.visualstudio.com/items?itemName=csstools.postcss
-
+[`smallcase.postcssense`]: https://marketplace.visualstudio.com/items?itemName=smallcase.postcssense
 
 ### Sublime Text
 
diff --git docs/plugins.md docs/plugins.md
index 57b45ba0a..6c0fedfef 100644
--- docs/plugins.md
+++ docs/plugins.md
@@ -137,6 +137,7 @@ by one line of code.
 
 ## Fallbacks
 
+* [`postcss-auto-var-fallback`] adds var fallbacks by provided files of variables.
 * [`postcss-color-rgba-fallback`] transforms `rgba()` to hexadecimal.
 * [`postcss-disabled`] adds a `[disabled]` attribute and/or a `.disabled` class
   when the `:disabled` pseudo class is present.
@@ -313,13 +314,14 @@ for targeting all button elements.
 * [`postcss-foft-classes`] adds guarding classes to blocks using web fonts
   for better font loading strategies.
 * [`postcss-font-awesome`] adds an easy shortcut to font-awesome unicode codes
+* [`postcss-font-grabber`] grabs remote fonts in `@font-face`,
+  download them and update your CSS.
 * [`postcss-font-pack`] simplifies font declarations and validates they match
   configured font packs.
 * [`postcss-fontsize`] generates `rem` unit `font-size` and `line-height`
   with `px` fallbacks.
 * [`postcss-fontpath`] adds font links for different browsers.
-* [`postcss-font-grabber`] it grabs remote fonts in `@font-face`,
-  download them and update your CSS.
+* [`postcss-fontsource-url`] rewrite Fontsource assets folder.
 * [`postcss-lazyimagecss`] adds image width and height automatically.
 * [`postcss-lazysprite`] generates sprites from the directory of images.
 * [`postcss-placehold`] makes it easy to drop in placeholder images.
@@ -629,6 +631,7 @@ See also plugins in modular minifier [`cssnano`].
 [`postcss-russian-stylesheets`]:          https://github.com/Semigradsky/postcss-russian-stylesheets
 [`postcss-swedish-stylesheets`]:          https://github.com/johnie/postcss-swedish-stylesheets
 [`postcss-color-rebeccapurple`]:          https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-color-rebeccapurple
+[`postcss-auto-var-fallback`]:            https://github.com/Ch-Valentine/postcss-auto-var-fallback
 [`postcss-color-rgba-fallback`]:          https://github.com/postcss/postcss-color-rgba-fallback
 [`postcss-spanish-stylesheets`]:          https://github.com/ismamz/postcss-spanish-stylesheets
 [`postcss-at-rules-variables`]:           https://github.com/GitScrum/postcss-at-rules-variables
@@ -743,6 +746,7 @@ See also plugins in modular minifier [`cssnano`].
 [`postcss-flexibility`]:                  https://github.com/7rulnik/postcss-flexibility
 [`postcss-font-family`]:                  https://github.com/ben-eb/postcss-font-family
 [`postcss-fontsize`]:                     https://github.com/richbachman/postcss-fontsize
+[`postcss-fontsource-url`]:               https://github.com/mondeja/postcss-fontsource-url
 [`postcss-grid-system`]:                  https://github.com/francoisromain/postcss-grid-system
 [`postcss-input-style`]:                  https://github.com/seaneking/postcss-input-style
 [`postcss-merge-rules`]:                  https://github.com/ben-eb/postcss-merge-rules
diff --git lib/input.d.ts lib/input.d.ts
index 260040f35..3207da3e1 100644
--- lib/input.d.ts
+++ lib/input.d.ts
@@ -18,6 +18,11 @@ declare namespace Input {
      */
     endLine?: number
 
+    /**
+     * Offset of exclusive end position in source file.
+     */
+    endOffset?: number
+
     /**
      * Absolute path to the source file.
      */
@@ -28,6 +33,11 @@ declare namespace Input {
      */
     line: number
 
+    /**
+     * Offset of inclusive start position in source file.
+     */
+    offset: number
+
     /**
      * Source code.
      */
@@ -131,6 +141,9 @@ declare class Input_ {
    */
   constructor(css: string, opts?: ProcessOptions)
 
+  /**
+   * Returns `CssSyntaxError` with information about the error and its position.
+   */
   error(
     message: string,
     start:
@@ -151,9 +164,6 @@ declare class Input_ {
         },
     opts?: { plugin?: CssSyntaxError['plugin'] }
   ): CssSyntaxError
-  /**
-   * Returns `CssSyntaxError` with information about the error and its position.
-   */
   error(
     message: string,
     line: number,
@@ -165,12 +175,23 @@ declare class Input_ {
     offset: number,
     opts?: { plugin?: CssSyntaxError['plugin'] }
   ): CssSyntaxError
+
+  /**
+   * Converts source line and column to offset.
+   *
+   * @param line   Source line.
+   * @param column Source column.
+   * @return Source offset.
+   */
+  fromLineAndColumn(line: number, column: number): number
+
   /**
    * Converts source offset to line and column.
    *
    * @param offset Source offset.
    */
   fromOffset(offset: number): { col: number; line: number } | null
+
   /**
    * Reads the input source map and returns a symbol position
    * in the input source (e.g., in a Sass file that was compiled
diff --git lib/input.js lib/input.js
index 9773e0fa3..bb0ccf53a 100644
--- lib/input.js
+++ lib/input.js
@@ -9,11 +9,26 @@ let CssSyntaxError = require('./css-syntax-error')
 let PreviousMap = require('./previous-map')
 let terminalHighlight = require('./terminal-highlight')
 
-let fromOffsetCache = Symbol('fromOffsetCache')
+let lineToIndexCache = Symbol('lineToIndexCache')
 
 let sourceMapAvailable = Boolean(SourceMapConsumer && SourceMapGenerator)
 let pathAvailable = Boolean(resolve && isAbsolute)
 
+function getLineToIndex(input) {
+  if (input[lineToIndexCache]) return input[lineToIndexCache]
+  let lines = input.css.split('\n')
+  let lineToIndex = new Array(lines.length)
+  let prevIndex = 0
+
+  for (let i = 0, l = lines.length; i < l; i++) {
+    lineToIndex[i] = prevIndex
+    prevIndex += lines[i].length + 1
+  }
+
+  input[lineToIndexCache] = lineToIndex
+  return lineToIndex
+}
+
 class Input {
   get from() {
     return this.file || this.id
@@ -68,31 +83,38 @@ class Input {
   }
 
   error(message, line, column, opts = {}) {
-    let endColumn, endLine, result
+    let endColumn, endLine, endOffset, offset, result
 
     if (line && typeof line === 'object') {
       let start = line
       let end = column
       if (typeof start.offset === 'number') {
-        let pos = this.fromOffset(start.offset)
+        offset = start.offset
+        let pos = this.fromOffset(offset)
         line = pos.line
         column = pos.col
       } else {
         line = start.line
         column = start.column
+        offset = this.fromLineAndColumn(line, column)
       }
       if (typeof end.offset === 'number') {
-        let pos = this.fromOffset(end.offset)
+        endOffset = end.offset
+        let pos = this.fromOffset(endOffset)
         endLine = pos.line
         endColumn = pos.col
       } else {
         endLine = end.line
         endColumn = end.column
+        endOffset = this.fromLineAndColumn(end.line, end.column)
       }
     } else if (!column) {
-      let pos = this.fromOffset(line)
+      offset = line
+      let pos = this.fromOffset(offset)
       line = pos.line
       column = pos.col
+    } else {
+      offset = this.fromLineAndColumn(line, column)
     }
 
     let origin = this.origin(line, column, endLine, endColumn)
@@ -120,7 +142,7 @@ class Input {
       )
     }
 
-    result.input = { column, endColumn, endLine, line, source: this.css }
+    result.input = { column, endColumn, endLine, endOffset, line, offset, source: this.css }
     if (this.file) {
       if (pathToFileURL) {
         result.input.url = pathToFileURL(this.file).toString()
@@ -131,23 +153,15 @@ class Input {
     return result
   }
 
-  fromOffset(offset) {
-    let lastLine, lineToIndex
-    if (!this[fromOffsetCache]) {
-      let lines = this.css.split('\n')
-      lineToIndex = new Array(lines.length)
-      let prevIndex = 0
-
-      for (let i = 0, l = lines.length; i < l; i++) {
-        lineToIndex[i] = prevIndex
-        prevIndex += lines[i].length + 1
-      }
+  fromLineAndColumn(line, column) {
+    let lineToIndex = getLineToIndex(this)
+    let index = lineToIndex[line - 1]
+    return index + column - 1
+  }
 
-      this[fromOffsetCache] = lineToIndex
-    } else {
-      lineToIndex = this[fromOffsetCache]
-    }
-    lastLine = lineToIndex[lineToIndex.length - 1]
+  fromOffset(offset) {
+    let lineToIndex = getLineToIndex(this)
+    let lastLine = lineToIndex[lineToIndex.length - 1]
 
     let min = 0
     if (offset >= lastLine) {
diff --git lib/node.d.ts lib/node.d.ts
index aa7229f83..a09fe4dda 100644
--- lib/node.d.ts
+++ lib/node.d.ts
@@ -1,5 +1,4 @@
 import AtRule = require('./at-rule.js')
-
 import { AtRuleProps } from './at-rule.js'
 import Comment, { CommentProps } from './comment.js'
 import Container, { NewChild } from './container.js'
@@ -66,6 +65,22 @@ declare namespace Node {
     /**
      * The inclusive ending position for the source
      * code of a node.
+     *
+     * However, `end.offset` of a non `Root` node is the exclusive position.
+     * See https://github.com/postcss/postcss/pull/1879 for details.
+     *
+     * ```js
+     * const root = postcss.parse('a { color: black }')
+     * const a = root.first
+     * const color = a.first
+     *
+     * // The offset of `Root` node is the inclusive position
+     * css.source.end   // { line: 1, column: 19, offset: 18 }
+     *
+     * // The offset of non `Root` node is the exclusive position
+     * a.source.end     // { line: 1, column: 18, offset: 18 }
+     * color.source.end // { line: 1, column: 16, offset: 16 }
+     * ```
      */
     end?: Position
 
@@ -424,7 +439,7 @@ declare abstract class Node_ {
    * @return Range.
    */
   rangeBy(
-    opts?: Pick<WarningOptions, 'endIndex' | 'index' | 'word'>
+    opts?: Pick<WarningOptions, 'end' | 'endIndex' | 'index' | 'start' | 'word'>
   ): Node.Range
 
   /**
diff --git lib/node.js lib/node.js
index 2b865ba37..b403b7136 100644
--- lib/node.js
+++ lib/node.js
@@ -34,11 +34,8 @@ function cloneNode(obj, parent) {
 
 function sourceOffset(inputCSS, position) {
   // Not all custom syntaxes support `offset` in `source.start` and `source.end`
-  if (
-    position &&
-    typeof position.offset !== 'undefined'
-  ) {
-    return position.offset;
+  if (position && typeof position.offset !== 'undefined') {
+    return position.offset
   }
 
   let column = 1
@@ -208,14 +205,15 @@ class Node {
     return this.parent.nodes[index + 1]
   }
 
-  positionBy(opts) {
+  positionBy(opts = {}) {
     let pos = this.source.start
     if (opts.index) {
       pos = this.positionInside(opts.index)
     } else if (opts.word) {
-      let inputString = ('document' in this.source.input)
-        ? this.source.input.document
-        : this.source.input.css
+      let inputString =
+        'document' in this.source.input
+          ? this.source.input.document
+          : this.source.input.css
       let stringRepresentation = inputString.slice(
         sourceOffset(inputString, this.source.start),
         sourceOffset(inputString, this.source.end)
@@ -229,9 +227,10 @@ class Node {
   positionInside(index) {
     let column = this.source.start.column
     let line = this.source.start.line
-    let inputString = ('document' in this.source.input)
-      ? this.source.input.document
-      : this.source.input.css
+    let inputString =
+      'document' in this.source.input
+        ? this.source.input.document
+        : this.source.input.css
     let offset = sourceOffset(inputString, this.source.start)
     let end = offset + index
 
@@ -244,7 +243,7 @@ class Node {
       }
     }
 
-    return { column, line }
+    return { column, line, offset: end }
   }
 
   prev() {
@@ -253,25 +252,36 @@ class Node {
     return this.parent.nodes[index - 1]
   }
 
-  rangeBy(opts) {
+  rangeBy(opts = {}) {
+    let inputString =
+      'document' in this.source.input
+        ? this.source.input.document
+        : this.source.input.css
     let start = {
       column: this.source.start.column,
-      line: this.source.start.line
+      line: this.source.start.line,
+      offset: sourceOffset(inputString, this.source.start)
     }
     let end = this.source.end
       ? {
           column: this.source.end.column + 1,
-          line: this.source.end.line
+          line: this.source.end.line,
+          offset:
+            typeof this.source.end.offset === 'number'
+              ? // `source.end.offset` is exclusive, so we don't need to add 1
+                this.source.end.offset
+              : // Since line/column in this.source.end is inclusive,
+                // the `sourceOffset(... , this.source.end)` returns an inclusive offset.
+                // So, we add 1 to convert it to exclusive.
+                sourceOffset(inputString, this.source.end) + 1
         }
       : {
           column: start.column + 1,
-          line: start.line
+          line: start.line,
+          offset: start.offset + 1
         }
 
     if (opts.word) {
-      let inputString = ('document' in this.source.input)
-        ? this.source.input.document
-        : this.source.input.css
       let stringRepresentation = inputString.slice(
         sourceOffset(inputString, this.source.start),
         sourceOffset(inputString, this.source.end)
@@ -279,15 +289,14 @@ class Node {
       let index = stringRepresentation.indexOf(opts.word)
       if (index !== -1) {
         start = this.positionInside(index)
-        end = this.positionInside(
-          index + opts.word.length,
-        )
+        end = this.positionInside(index + opts.word.length)
       }
     } else {
       if (opts.start) {
         start = {
           column: opts.start.column,
-          line: opts.start.line
+          line: opts.start.line,
+          offset: sourceOffset(inputString, opts.start)
         }
       } else if (opts.index) {
         start = this.positionInside(opts.index)
@@ -296,7 +305,8 @@ class Node {
       if (opts.end) {
         end = {
           column: opts.end.column,
-          line: opts.end.line
+          line: opts.end.line,
+          offset: sourceOffset(inputString, opts.end)
         }
       } else if (typeof opts.endIndex === 'number') {
         end = this.positionInside(opts.endIndex)
@@ -309,7 +319,11 @@ class Node {
       end.line < start.line ||
       (end.line === start.line && end.column <= start.column)
     ) {
-      end = { column: start.column + 1, line: start.line }
+      end = {
+        column: start.column + 1,
+        line: start.line,
+        offset: start.offset + 1
+      }
     }
 
     return { end, start }
@@ -384,6 +398,7 @@ class Node {
       } else if (typeof value === 'object' && value.toJSON) {
         fixed[name] = value.toJSON(null, inputs)
       } else if (name === 'source') {
+        if (value == null) continue
         let inputId = inputs.get(value.input)
         if (inputId == null) {
           inputId = inputsNextIndex
@@ -423,7 +438,7 @@ class Node {
     return result
   }
 
-  warn(result, text, opts) {
+  warn(result, text, opts = {}) {
     let data = { node: this }
     for (let i in opts) data[i] = opts[i]
     return result.warn(text, data)
diff --git lib/processor.js lib/processor.js
index c38be5326..68eb1f2c4 100644
--- lib/processor.js
+++ lib/processor.js
@@ -7,7 +7,7 @@ let Root = require('./root')
 
 class Processor {
   constructor(plugins = []) {
-    this.version = '8.5.3'
+    this.version = '8.5.4'
     this.plugins = this.normalize(plugins)
   }
 
diff --git lib/result.js lib/result.js
index 4ab2a8fc2..c6af4e8ca 100644
--- lib/result.js
+++ lib/result.js
@@ -12,7 +12,7 @@ class Result {
     this.messages = []
     this.root = root
     this.opts = opts
-    this.css = undefined
+    this.css = ''
     this.map = undefined
   }
 
diff --git lib/stringifier.d.ts lib/stringifier.d.ts
index f707a6aa3..b5a6f86fe 100644
--- lib/stringifier.d.ts
+++ lib/stringifier.d.ts
@@ -25,7 +25,7 @@ declare class Stringifier_ {
   comment(node: Comment): void
   decl(node: Declaration, semicolon?: boolean): void
   document(node: Document): void
-  raw(node: AnyNode, own: null | string, detect?: string): string
+  raw(node: AnyNode, own: null | string, detect?: string): boolean | string
   rawBeforeClose(root: Root): string | undefined
   rawBeforeComment(root: Root, node: Comment): string | undefined
   rawBeforeDecl(root: Root, node: Declaration): string | undefined
@@ -35,7 +35,7 @@ declare class Stringifier_ {
   rawEmptyBody(root: Root): string | undefined
   rawIndent(root: Root): string | undefined
   rawSemicolon(root: Root): boolean | undefined
-  rawValue(node: AnyNode, prop: string): string
+  rawValue(node: AnyNode, prop: string): number | string
   root(node: Root): void
   rule(node: Rule): void
   stringify(node: AnyNode, semicolon?: boolean): void
diff --git package.json package.json
old mode 100755
new mode 100644
index b194b4d3d..312b5b341
--- package.json
+++ package.json
@@ -1,6 +1,6 @@
 {
   "name": "postcss",
-  "version": "8.5.3",
+  "version": "8.5.4",
   "description": "Tool for transforming styles with JS plugins",
   "engines": {
     "node": "^10 || ^12 || >=14"
@@ -85,27 +85,27 @@
     "url": "https://github.com/postcss/postcss/issues"
   },
   "dependencies": {
-    "nanoid": "^3.3.8",
+    "nanoid": "^3.3.11",
     "picocolors": "^1.1.1",
     "source-map-js": "^1.2.1"
   },
   "devDependencies": {
-    "@logux/eslint-config": "^54.4.0",
+    "@logux/eslint-config": "^55.2.1",
     "@size-limit/preset-small-lib": "^11.2.0",
-    "@types/node": "^22.13.4",
+    "@types/node": "^22.15.24",
     "c8": "^10.1.3",
-    "check-dts": "^0.8.2",
-    "clean-publish": "^5.1.0",
+    "check-dts": "^0.9.0",
+    "clean-publish": "^5.2.1",
     "concat-with-sourcemaps": "^1.1.0",
-    "eslint": "^9.20.1",
+    "eslint": "^9.27.0",
     "nanodelay": "^1.0.8",
     "nanospy": "^1.0.0",
     "postcss-parser-tests": "^8.9.0",
-    "simple-git-hooks": "^2.11.1",
+    "simple-git-hooks": "^2.13.0",
     "size-limit": "^11.2.0",
     "strip-ansi": "^6.0.1",
     "ts-node": "^10.9.2",
-    "typescript": "^5.7.3",
+    "typescript": "^5.8.3",
     "uvu": "^0.5.6"
   },
   "c8": {
@@ -138,7 +138,7 @@
   "size-limit": [
     {
       "path": "lib/postcss.js",
-      "limit": "15 KB"
+      "limit": "16 KB"
     }
   ],
   "clean-publish": {
diff --git pnpm-lock.yaml pnpm-lock.yaml
index c1041aa32..f4a009924 100644
--- pnpm-lock.yaml
+++ pnpm-lock.yaml
@@ -9,8 +9,8 @@ importers:
   .:
     dependencies:
       nanoid:
-        specifier: ^3.3.8
-        version: 3.3.8
+        specifier: ^3.3.11
+        version: 3.3.11
       picocolors:
         specifier: ^1.1.1
         version: 1.1.1
@@ -19,29 +19,29 @@ importers:
         version: 1.2.1
     devDependencies:
       '@logux/eslint-config':
-        specifier: ^54.4.0
-        version: 54.4.0(@typescript-eslint/[email protected]([email protected]([email protected]))([email protected]))([email protected]([email protected]))([email protected])
+        specifier: ^55.2.1
+        version: 55.2.1([email protected]([email protected]))([email protected])
       '@size-limit/preset-small-lib':
         specifier: ^11.2.0
         version: 11.2.0([email protected])
       '@types/node':
-        specifier: ^22.13.4
-        version: 22.13.4
+        specifier: ^22.15.24
+        version: 22.15.24
       c8:
         specifier: ^10.1.3
         version: 10.1.3
       check-dts:
-        specifier: ^0.8.2
-        version: 0.8.2([email protected])
+        specifier: ^0.9.0
+        version: 0.9.0([email protected])
       clean-publish:
-        specifier: ^5.1.0
-        version: 5.1.0
+        specifier: ^5.2.1
+        version: 5.2.1
       concat-with-sourcemaps:
         specifier: ^1.1.0
         version: 1.1.0
       eslint:
-        specifier: ^9.20.1
-        version: 9.20.1([email protected])
+        specifier: ^9.27.0
+        version: 9.27.0([email protected])
       nanodelay:
         specifier: ^1.0.8
         version: 1.0.8
@@ -52,8 +52,8 @@ importers:
         specifier: ^8.9.0
         version: 8.9.0
       simple-git-hooks:
-        specifier: ^2.11.1
-        version: 2.11.1
+        specifier: ^2.13.0
+        version: 2.13.0
       size-limit:
         specifier: ^11.2.0
         version: 11.2.0
@@ -62,10 +62,10 @@ importers:
         version: 6.0.1
       ts-node:
         specifier: ^10.9.2
-        version: 10.9.2(@types/[email protected])([email protected])
+        version: 10.9.2(@types/[email protected])([email protected])
       typescript:
-        specifier: ^5.7.3
-        version: 5.7.3
+        specifier: ^5.8.3
+        version: 5.8.3
       uvu:
         specifier: ^0.5.6
         version: 0.5.6
@@ -80,158 +80,167 @@ packages:
     resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==}
     engines: {node: '>=12'}
 
-  '@esbuild/[email protected]':
-    resolution: {integrity: sha512-O7vun9Sf8DFjH2UtqK8Ku3LkquL9SZL8OLY1T5NZkA34+wG3OQF7cl4Ql8vdNzM6fzBbYfLaiRLIOZ+2FOCgBQ==}
+  '@emnapi/[email protected]':
+    resolution: {integrity: sha512-4m62DuCE07lw01soJwPiBGC0nAww0Q+RY70VZ+n49yDIO13yyinhbWCeNnaob0lakDtWQzSdtNWzJeOJt2ma+g==}
+
+  '@emnapi/[email protected]':
+    resolution: {integrity: sha512-pBPWdu6MLKROBX05wSNKcNb++m5Er+KQ9QkB+WVM+pW2Kx9hoSrVTnu3BdkI5eBLZoKu/J6mW/B6i6bJB2ytXQ==}
+
+  '@emnapi/[email protected]':
+    resolution: {integrity: sha512-5n3nTJblwRi8LlXkJ9eBzu+kZR8Yxcc7ubakyQTFzPMtIhFpUBRbsnc2Dv88IZDIbCDlBiWrknhB4Lsz7mg6BA==}
+
+  '@esbuild/[email protected]':
+    resolution: {integrity: sha512-9o3TMmpmftaCMepOdA5k/yDw8SfInyzWWTjYTFCX3kPSDJMROQTb8jg+h9Cnwnmm1vOzvxN7gIfB5V2ewpjtGA==}
     engines: {node: '>=18'}
     cpu: [ppc64]
     os: [aix]
 
-  '@esbuild/[email protected]':
-    resolution: {integrity: sha512-grvv8WncGjDSyUBjN9yHXNt+cq0snxXbDxy5pJtzMKGmmpPxeAmAhWxXI+01lU5rwZomDgD3kJwulEnhTRUd6g==}
+  '@esbuild/[email protected]':
+    resolution: {integrity: sha512-VGzGhj4lJO+TVGV1v8ntCZWJktV7SGCs3Pn1GRWI1SBFtRALoomm8k5E9Pmwg3HOAal2VDc2F9+PM/rEY6oIDg==}
     engines: {node: '>=18'}
     cpu: [arm64]
     os: [android]
 
-  '@esbuild/[email protected]':
-    resolution: {integrity: sha512-PTyWCYYiU0+1eJKmw21lWtC+d08JDZPQ5g+kFyxP0V+es6VPPSUhM6zk8iImp2jbV6GwjX4pap0JFbUQN65X1g==}
+  '@esbuild/[email protected]':
+    resolution: {integrity: sha512-AdJKSPeEHgi7/ZhuIPtcQKr5RQdo6OO2IL87JkianiMYMPbCtot9fxPbrMiBADOWWm3T2si9stAiVsGbTQFkbA==}
     engines: {node: '>=18'}
     cpu: [arm]
     os: [android]
 
-  '@esbuild/[email protected]':
-    resolution: {integrity: sha512-m/ix7SfKG5buCnxasr52+LI78SQ+wgdENi9CqyCXwjVR2X4Jkz+BpC3le3AoBPYTC9NHklwngVXvbJ9/Akhrfg==}
+  '@esbuild/[email protected]':
+    resolution: {integrity: sha512-D2GyJT1kjvO//drbRT3Hib9XPwQeWd9vZoBJn+bu/lVsOZ13cqNdDeqIF/xQ5/VmWvMduP6AmXvylO/PIc2isw==}
     engines: {node: '>=18'}
     cpu: [x64]
     os: [android]
 
-  '@esbuild/[email protected]':
-    resolution: {integrity: sha512-mVwdUb5SRkPayVadIOI78K7aAnPamoeFR2bT5nszFUZ9P8UpK4ratOdYbZZXYSqPKMHfS1wdHCJk1P1EZpRdvw==}
+  '@esbuild/[email protected]':
+    resolution: {integrity: sha512-GtaBgammVvdF7aPIgH2jxMDdivezgFu6iKpmT+48+F8Hhg5J/sfnDieg0aeG/jfSvkYQU2/pceFPDKlqZzwnfQ==}
     engines: {node: '>=18'}
     cpu: [arm64]
     os: [darwin]
 
-  '@esbuild/[email protected]':
-    resolution: {integrity: sha512-DgDaYsPWFTS4S3nWpFcMn/33ZZwAAeAFKNHNa1QN0rI4pUjgqf0f7ONmXf6d22tqTY+H9FNdgeaAa+YIFUn2Rg==}
+  '@esbuild/[email protected]':
+    resolution: {integrity: sha512-1iT4FVL0dJ76/q1wd7XDsXrSW+oLoquptvh4CLR4kITDtqi2e/xwXwdCVH8hVHU43wgJdsq7Gxuzcs6Iq/7bxQ==}
     engines: {node: '>=18'}
     cpu: [x64]
     os: [darwin]
 
-  '@esbuild/[email protected]':
-    resolution: {integrity: sha512-VN4ocxy6dxefN1MepBx/iD1dH5K8qNtNe227I0mnTRjry8tj5MRk4zprLEdG8WPyAPb93/e4pSgi1SoHdgOa4w==}
+  '@esbuild/[email protected]':
+    resolution: {integrity: sha512-nk4tGP3JThz4La38Uy/gzyXtpkPW8zSAmoUhK9xKKXdBCzKODMc2adkB2+8om9BDYugz+uGV7sLmpTYzvmz6Sw==}
     engines: {node: '>=18'}
     cpu: [arm64]
     os: [freebsd]
 
-  '@esbuild/[email protected]':
-    resolution: {integrity: sha512-mrSgt7lCh07FY+hDD1TxiTyIHyttn6vnjesnPoVDNmDfOmggTLXRv8Id5fNZey1gl/V2dyVK1VXXqVsQIiAk+A==}
+  '@esbuild/[email protected]':
+    resolution: {integrity: sha512-PrikaNjiXdR2laW6OIjlbeuCPrPaAl0IwPIaRv+SMV8CiM8i2LqVUHFC1+8eORgWyY7yhQY+2U2fA55mBzReaw==}
     engines: {node: '>=18'}
     cpu: [x64]
     os: [freebsd]
 
-  '@esbuild/[email protected]':
-    resolution: {integrity: sha512-9QAQjTWNDM/Vk2bgBl17yWuZxZNQIF0OUUuPZRKoDtqF2k4EtYbpyiG5/Dk7nqeK6kIJWPYldkOcBqjXjrUlmg==}
+  '@esbuild/[email protected]':
+    resolution: {integrity: sha512-Z9kfb1v6ZlGbWj8EJk9T6czVEjjq2ntSYLY2cw6pAZl4oKtfgQuS4HOq41M/BcoLPzrUbNd+R4BXFyH//nHxVg==}
     engines: {node: '>=18'}
     cpu: [arm64]
     os: [linux]
 
-  '@esbuild/[email protected]':
-    resolution: {integrity: sha512-vkB3IYj2IDo3g9xX7HqhPYxVkNQe8qTK55fraQyTzTX/fxaDtXiEnavv9geOsonh2Fd2RMB+i5cbhu2zMNWJwg==}
+  '@esbuild/[email protected]':
+    resolution: {integrity: sha512-cPzojwW2okgh7ZlRpcBEtsX7WBuqbLrNXqLU89GxWbNt6uIg78ET82qifUy3W6OVww6ZWobWub5oqZOVtwolfw==}
     engines: {node: '>=18'}
     cpu: [arm]
     os: [linux]
 
-  '@esbuild/[email protected]':
-    resolution: {integrity: sha512-43ET5bHbphBegyeqLb7I1eYn2P/JYGNmzzdidq/w0T8E2SsYL1U6un2NFROFRg1JZLTzdCoRomg8Rvf9M6W6Gg==}
+  '@esbuild/[email protected]':
+    resolution: {integrity: sha512-sQ7l00M8bSv36GLV95BVAdhJ2QsIbCuCjh/uYrWiMQSUuV+LpXwIqhgJDcvMTj+VsQmqAHL2yYaasENvJ7CDKA==}
     engines: {node: '>=18'}
     cpu: [ia32]
     os: [linux]
 
-  '@esbuild/[email protected]':
-    resolution: {integrity: sha512-fC95c/xyNFueMhClxJmeRIj2yrSMdDfmqJnyOY4ZqsALkDrrKJfIg5NTMSzVBr5YW1jf+l7/cndBfP3MSDpoHw==}
+  '@esbuild/[email protected]':
+    resolution: {integrity: sha512-0ur7ae16hDUC4OL5iEnDb0tZHDxYmuQyhKhsPBV8f99f6Z9KQM02g33f93rNH5A30agMS46u2HP6qTdEt6Q1kg==}
     engines: {node: '>=18'}
     cpu: [loong64]
     os: [linux]
 
-  '@esbuild/[email protected]':
-    resolution: {integrity: sha512-nkAMFju7KDW73T1DdH7glcyIptm95a7Le8irTQNO/qtkoyypZAnjchQgooFUDQhNAy4iu08N79W4T4pMBwhPwQ==}
+  '@esbuild/[email protected]':
+    resolution: {integrity: sha512-kB/66P1OsHO5zLz0i6X0RxlQ+3cu0mkxS3TKFvkb5lin6uwZ/ttOkP3Z8lfR9mJOBk14ZwZ9182SIIWFGNmqmg==}
     engines: {node: '>=18'}
     cpu: [mips64el]
     os: [linux]
 
-  '@esbuild/[email protected]':
-    resolution: {integrity: sha512-NhyOejdhRGS8Iwv+KKR2zTq2PpysF9XqY+Zk77vQHqNbo/PwZCzB5/h7VGuREZm1fixhs4Q/qWRSi5zmAiO4Fw==}
+  '@esbuild/[email protected]':
+    resolution: {integrity: sha512-UZCmJ7r9X2fe2D6jBmkLBMQetXPXIsZjQJCjgwpVDz+YMcS6oFR27alkgGv3Oqkv07bxdvw7fyB71/olceJhkQ==}
     engines: {node: '>=18'}
     cpu: [ppc64]
     os: [linux]
 
-  '@esbuild/[email protected]':
-    resolution: {integrity: sha512-5S/rbP5OY+GHLC5qXp1y/Mx//e92L1YDqkiBbO9TQOvuFXM+iDqUNG5XopAnXoRH3FjIUDkeGcY1cgNvnXp/kA==}
+  '@esbuild/[email protected]':
+    resolution: {integrity: sha512-kTxwu4mLyeOlsVIFPfQo+fQJAV9mh24xL+y+Bm6ej067sYANjyEw1dNHmvoqxJUCMnkBdKpvOn0Ahql6+4VyeA==}
     engines: {node: '>=18'}
     cpu: [riscv64]
     os: [linux]
 
-  '@esbuild/[email protected]':
-    resolution: {integrity: sha512-XM2BFsEBz0Fw37V0zU4CXfcfuACMrppsMFKdYY2WuTS3yi8O1nFOhil/xhKTmE1nPmVyvQJjJivgDT+xh8pXJA==}
+  '@esbuild/[email protected]':
+    resolution: {integrity: sha512-K2dSKTKfmdh78uJ3NcWFiqyRrimfdinS5ErLSn3vluHNeHVnBAFWC8a4X5N+7FgVE1EjXS1QDZbpqZBjfrqMTQ==}
     engines: {node: '>=18'}
     cpu: [s390x]
     os: [linux]
 
-  '@esbuild/[email protected]':
-    resolution: {integrity: sha512-9yl91rHw/cpwMCNytUDxwj2XjFpxML0y9HAOH9pNVQDpQrBxHy01Dx+vaMu0N1CKa/RzBD2hB4u//nfc+Sd3Cw==}
+  '@esbuild/[email protected]':
+    resolution: {integrity: sha512-uhj8N2obKTE6pSZ+aMUbqq+1nXxNjZIIjCjGLfsWvVpy7gKCOL6rsY1MhRh9zLtUtAI7vpgLMK6DxjO8Qm9lJw==}
     engines: {node: '>=18'}
     cpu: [x64]
     os: [linux]
 
-  '@esbuild/[email protected]':
-    resolution: {integrity: sha512-RuG4PSMPFfrkH6UwCAqBzauBWTygTvb1nxWasEJooGSJ/NwRw7b2HOwyRTQIU97Hq37l3npXoZGYMy3b3xYvPw==}
+  '@esbuild/[email protected]':
+    resolution: {integrity: sha512-pwHtMP9viAy1oHPvgxtOv+OkduK5ugofNTVDilIzBLpoWAM16r7b/mxBvfpuQDpRQFMfuVr5aLcn4yveGvBZvw==}
     engines: {node: '>=18'}
     cpu: [arm64]
     os: [netbsd]
 
-  '@esbuild/[email protected]':
-    resolution: {integrity: sha512-jl+qisSB5jk01N5f7sPCsBENCOlPiS/xptD5yxOx2oqQfyourJwIKLRA2yqWdifj3owQZCL2sn6o08dBzZGQzA==}
+  '@esbuild/[email protected]':
+    resolution: {integrity: sha512-WOb5fKrvVTRMfWFNCroYWWklbnXH0Q5rZppjq0vQIdlsQKuw6mdSihwSo4RV/YdQ5UCKKvBy7/0ZZYLBZKIbwQ==}
     engines: {node: '>=18'}
     cpu: [x64]
     os: [netbsd]
 
-  '@esbuild/[email protected]':
-    resolution: {integrity: sha512-21sUNbq2r84YE+SJDfaQRvdgznTD8Xc0oc3p3iW/a1EVWeNj/SdUCbm5U0itZPQYRuRTW20fPMWMpcrciH2EJw==}
+  '@esbuild/[email protected]':
+    resolution: {integrity: sha512-7A208+uQKgTxHd0G0uqZO8UjK2R0DDb4fDmERtARjSHWxqMTye4Erz4zZafx7Di9Cv+lNHYuncAkiGFySoD+Mw==}
     engines: {node: '>=18'}
     cpu: [arm64]
     os: [openbsd]
 
-  '@esbuild/[email protected]':
-    resolution: {integrity: sha512-2gwwriSMPcCFRlPlKx3zLQhfN/2WjJ2NSlg5TKLQOJdV0mSxIcYNTMhk3H3ulL/cak+Xj0lY1Ym9ysDV1igceg==}
+  '@esbuild/[email protected]':
+    resolution: {integrity: sha512-G4hE405ErTWraiZ8UiSoesH8DaCsMm0Cay4fsFWOOUcz8b8rC6uCvnagr+gnioEjWn0wC+o1/TAHt+It+MpIMg==}
     engines: {node: '>=18'}
     cpu: [x64]
     os: [openbsd]
 
-  '@esbuild/[email protected]':
-    resolution: {integrity: sha512-bxI7ThgLzPrPz484/S9jLlvUAHYMzy6I0XiU1ZMeAEOBcS0VePBFxh1JjTQt3Xiat5b6Oh4x7UC7IwKQKIJRIg==}
+  '@esbuild/[email protected]':
+    resolution: {integrity: sha512-l+azKShMy7FxzY0Rj4RCt5VD/q8mG/e+mDivgspo+yL8zW7qEwctQ6YqKX34DTEleFAvCIUviCFX1SDZRSyMQA==}
     engines: {node: '>=18'}
     cpu: [x64]
     os: [sunos]
 
-  '@esbuild/[email protected]':
-    resolution: {integrity: sha512-ZUAc2YK6JW89xTbXvftxdnYy3m4iHIkDtK3CLce8wg8M2L+YZhIvO1DKpxrd0Yr59AeNNkTiic9YLf6FTtXWMw==}
+  '@esbuild/[email protected]':
+    resolution: {integrity: sha512-O2S7SNZzdcFG7eFKgvwUEZ2VG9D/sn/eIiz8XRZ1Q/DO5a3s76Xv0mdBzVM5j5R639lXQmPmSo0iRpHqUUrsxw==}
     engines: {node: '>=18'}
     cpu: [arm64]
     os: [win32]
 
-  '@esbuild/[email protected]':
-    resolution: {integrity: sha512-eSNxISBu8XweVEWG31/JzjkIGbGIJN/TrRoiSVZwZ6pkC6VX4Im/WV2cz559/TXLcYbcrDN8JtKgd9DJVIo8GA==}
+  '@esbuild/[email protected]':
+    resolution: {integrity: sha512-onOJ02pqs9h1iMJ1PQphR+VZv8qBMQ77Klcsqv9CNW2w6yLqoURLcgERAIurY6QE63bbLuqgP9ATqajFLK5AMQ==}
     engines: {node: '>=18'}
     cpu: [ia32]
     os: [win32]
 
-  '@esbuild/[email protected]':
-    resolution: {integrity: sha512-ZENoHJBxA20C2zFzh6AI4fT6RraMzjYw4xKWemRTRmRVtN9c5DcH9r/f2ihEkMjOW5eGgrwCslG/+Y/3bL+DHQ==}
+  '@esbuild/[email protected]':
+    resolution: {integrity: sha512-TXv6YnJ8ZMVdX+SXWVBo/0p8LTcrUYngpWjvm91TMjjBQii7Oz11Lw5lbDV5Y0TzuhSJHwiH4hEtC1I42mMS0g==}
     engines: {node: '>=18'}
     cpu: [x64]
     os: [win32]
 
-  '@eslint-community/[email protected]':
-    resolution: {integrity: sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==}
+  '@eslint-community/[email protected]':
+    resolution: {integrity: sha512-dyybb3AcajC7uha6CvhdVRJqaKyn7w2YKqKyAN37NKYgZT36w+iRb0Dymmc5qEJ549c/S31cMMSFd75bteCpCw==}
     engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
     peerDependencies:
       eslint: ^6.0.0 || ^7.0.0 || >=8.0.0
@@ -240,28 +249,32 @@ packages:
     resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==}
     engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0}
 
-  '@eslint/[email protected]':
-    resolution: {integrity: sha512-GNKqxfHG2ySmJOBSHg7LxeUx4xpuCoFjacmlCoYWEbaPXLwvfIjixRI12xCQZeULksQb23uiA8F40w5TojpV7w==}
+  '@eslint/[email protected]':
+    resolution: {integrity: sha512-fxlS1kkIjx8+vy2SjuCB94q3htSNrufYTXubwiBFeaQHbH6Ipi43gFJq2zCMt6PHhImH3Xmr0NksKDvchWlpQQ==}
+    engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+  '@eslint/[email protected]':
+    resolution: {integrity: sha512-+GPzk8PlG0sPpzdU5ZvIRMPidzAnZDl/s9L+y13iodqvb8leL53bTannOrQ/Im7UkpsmFU5Ily5U60LWixnmLg==}
     engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
 
-  '@eslint/[email protected]':
-    resolution: {integrity: sha512-DWUB2pksgNEb6Bz2fggIy1wh6fGgZP4Xyy/Mt0QZPiloKKXerbqq9D3SBQTlCRYOrcRPu4vuz+CGjwdfqxnoWA==}
+  '@eslint/[email protected]':
+    resolution: {integrity: sha512-qIbV0/JZr7iSDjqAc60IqbLdsj9GDt16xQtWD+B78d/HAlvysGdZZ6rpJHGAc2T0FQx1X6thsSPdnoiGKdNtdg==}
     engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
 
-  '@eslint/[email protected]':
-    resolution: {integrity: sha512-grOjVNN8P3hjJn/eIETF1wwd12DdnwFDoyceUJLYYdkpbwq3nLi+4fqrTAONx7XDALqlL220wC/RHSC/QTI/0w==}
+  '@eslint/[email protected]':
+    resolution: {integrity: sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==}
     engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
 
-  '@eslint/[email protected]':
-    resolution: {integrity: sha512-iZA07H9io9Wn836aVTytRaNqh00Sad+EamwOVJT12GTLw1VGMFV/4JaME+JjLtr9fiGaoWgYnS54wrfWsSs4oQ==}
+  '@eslint/[email protected]':
+    resolution: {integrity: sha512-G5JD9Tu5HJEu4z2Uo4aHY2sLV64B7CDMXxFzqzjl3NKd6RVzSXNoE80jk7Y0lJkTTkjiIhBAqmlYwjuBY3tvpA==}
     engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
 
   '@eslint/[email protected]':
     resolution: {integrity: sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==}
     engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
 
-  '@eslint/[email protected]':
-    resolution: {integrity: sha512-+0TjwR1eAUdZtvv/ir1mGX+v0tUoR3VEPB8Up0LLJC+whRW0GgBBtpbOkg/a/U4Dxa6l5a3l9AJ1aWIQVyoWJA==}
+  '@eslint/[email protected]':
+    resolution: {integrity: sha512-0J+zgWxHN+xXONWIyPWKFMgVuJoZuGiIFu8yxk7RJjxkzpGmyja5wRFqZIVtjDVOQpV+Rw0iOAjYPE2eQyjr0w==}
     engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
 
   '@humanfs/[email protected]':
@@ -280,8 +293,8 @@ packages:
     resolution: {integrity: sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==}
     engines: {node: '>=18.18'}
 
-  '@humanwhocodes/[email protected]':
-    resolution: {integrity: sha512-c7hNEllBlenFTHBky65mhq8WD2kbN9Q6gk0bTk8lSBvc554jpXSkST1iePudpt7+A/AQvuHs9EMqjHDXMY1lrA==}
+  '@humanwhocodes/[email protected]':
+    resolution: {integrity: sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==}
     engines: {node: '>=18.18'}
 
   '@isaacs/[email protected]':
@@ -305,18 +318,24 @@ packages:
   '@jridgewell/[email protected]':
     resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==}
 
-  '@logux/[email protected]':
-    resolution: {integrity: sha512-J7jgHYsFrrK/vnNoKdz2X5R4gnDYpvRCOeC+LvAsYzDC0FWavHjiqBAtLq7WlzsR0oOYGnEcS6tSOdHGa1z8Mg==}
+  '@logux/[email protected]':
+    resolution: {integrity: sha512-lwSB1tkMeiHLZIduvt5273gA1akONIm+aMIwy7nnJngvcv3KuDWCi0EXVkeSuDMZamY6LAViF7v5J/Z1xWwBqg==}
     engines: {node: '>=18.0.0'}
     peerDependencies:
       eslint: ^8.57.0 || ^9.0.0
-      eslint-plugin-svelte: ^2.35.1
+      eslint-plugin-svelte: ^3.0.0
       svelte: ^4.2.12 || ^5.0.0
+      svelte-eslint-parser: ^1.0.0
     peerDependenciesMeta:
       eslint-plugin-svelte:
         optional: true
       svelte:
         optional: true
+      svelte-eslint-parser:
+        optional: true
+
+  '@napi-rs/[email protected]':
+    resolution: {integrity: sha512-bCsCyeZEwVErsGmyPNSzwfwFn4OdxBj0mmv6hOFucB/k81Ojdu68RbZdxYsRQUPc9l6SU5F/cG+bXgWs3oUgsQ==}
 
   '@nodelib/[email protected]':
     resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==}
@@ -334,9 +353,6 @@ packages:
     resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==}
     engines: {node: '>=14'}
 
-  '@rtsao/[email protected]':
-    resolution: {integrity: sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==}
-
   '@size-limit/[email protected]':
     resolution: {integrity: sha512-vSg9H0WxGQPRzDnBzeDyD9XT0Zdq0L+AI3+77/JhxznbSCMJMMr8ndaWVQRhOsixl97N0oD4pRFw2+R1Lcvi6A==}
     engines: {node: ^18.0.0 || >=20.0.0}
@@ -366,8 +382,11 @@ packages:
   '@tsconfig/[email protected]':
     resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==}
 
-  '@types/[email protected]':
-    resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==}
+  '@tybys/[email protected]':
+    resolution: {integrity: sha512-6+7nlbMVX/PVDCwaIQ8nTOPveOcFLSt8GcXdx8hD0bt39uWxYT88uXzqTd4fTvqta7oeUJqudepapKNt2DYJFw==}
+
+  '@types/[email protected]':
+    resolution: {integrity: sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==}
 
   '@types/[email protected]':
     resolution: {integrity: sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==}
@@ -375,62 +394,154 @@ packages:
   '@types/[email protected]':
     resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==}
 
-  '@types/[email protected]':
-    resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==}
-
-  '@types/[email protected]':
-    resolution: {integrity: sha512-ywP2X0DYtX3y08eFVx5fNIw7/uIv8hYUKgXoK8oayJlLnKcRfEYCxWMVE1XagUdVtCJlZT1AU4LXEABW+L1Peg==}
+  '@types/[email protected]':
+    resolution: {integrity: sha512-w9CZGm9RDjzTh/D+hFwlBJ3ziUaVw7oufKA3vOFSOZlzmW9AkZnfjPb+DLnrV6qtgL/LNmP0/2zBNCFHL3F0ng==}
 
   '@types/[email protected]':
     resolution: {integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==}
 
-  '@typescript-eslint/[email protected]':
-    resolution: {integrity: sha512-ll1StnKtBigWIGqvYDVuDmXJHVH4zLVot1yQ4fJtLpL7qacwkxJc1T0bptqw+miBQ/QfUbhl1TcQ4accW5KUyA==}
+  '@typescript-eslint/[email protected]':
+    resolution: {integrity: sha512-CACyQuqSHt7ma3Ns601xykeBK/rDeZa3w6IS6UtMQbixO5DWy+8TilKkviGDH6jtWCo8FGRKEK5cLLkPvEammQ==}
     engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
     peerDependencies:
-      '@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0
+      '@typescript-eslint/parser': ^8.33.0
       eslint: ^8.57.0 || ^9.0.0
-      typescript: '>=4.8.4 <5.8.0'
+      typescript: '>=4.8.4 <5.9.0'
 
-  '@typescript-eslint/[email protected]':
-    resolution: {integrity: sha512-Tqoa05bu+t5s8CTZFaGpCH2ub3QeT9YDkXbPd3uQ4SfsLoh1/vv2GEYAioPoxCWJJNsenXlC88tRjwoHNts1oQ==}
+  '@typescript-eslint/[email protected]':
+    resolution: {integrity: sha512-JaehZvf6m0yqYp34+RVnihBAChkqeH+tqqhS0GuX1qgPpwLvmTPheKEs6OeCK6hVJgXZHJ2vbjnC9j119auStQ==}
     engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
     peerDependencies:
       eslint: ^8.57.0 || ^9.0.0
-      typescript: '>=4.8.4 <5.8.0'
+      typescript: '>=4.8.4 <5.9.0'
+
+  '@typescript-eslint/[email protected]':
+    resolution: {integrity: sha512-d1hz0u9l6N+u/gcrk6s6gYdl7/+pp8yHheRTqP6X5hVDKALEaTn8WfGiit7G511yueBEL3OpOEpD+3/MBdoN+A==}
+    engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
 
-  '@typescript-eslint/[email protected]':
-    resolution: {integrity: sha512-OdQr6BNBzwRjNEXMQyaGyZzgg7wzjYKfX2ZBV3E04hUCBDv3GQCHiz9RpqdUIiVrMgJGkXm3tcEh4vFSHreS2Q==}
+  '@typescript-eslint/[email protected]':
+    resolution: {integrity: sha512-LMi/oqrzpqxyO72ltP+dBSP6V0xiUb4saY7WLtxSfiNEBI8m321LLVFU9/QDJxjDQG9/tjSqKz/E3380TEqSTw==}
     engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
 
-  '@typescript-eslint/[email protected]':
-    resolution: {integrity: sha512-/Do9fmNgCsQ+K4rCz0STI7lYB4phTtEXqqCAs3gZW0pnK7lWNkvWd5iW545GSmApm4AzmQXmSqXPO565B4WVrw==}
+  '@typescript-eslint/[email protected]':
+    resolution: {integrity: sha512-sTkETlbqhEoiFmGr1gsdq5HyVbSOF0145SYDJ/EQmXHtKViCaGvnyLqWFFHtEXoS0J1yU8Wyou2UGmgW88fEug==}
+    engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+    peerDependencies:
+      typescript: '>=4.8.4 <5.9.0'
+
+  '@typescript-eslint/[email protected]':
+    resolution: {integrity: sha512-lScnHNCBqL1QayuSrWeqAL5GmqNdVUQAAMTaCwdYEdWfIrSrOGzyLGRCHXcCixa5NK6i5l0AfSO2oBSjCjf4XQ==}
     engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
     peerDependencies:
       eslint: ^8.57.0 || ^9.0.0
-      typescript: '>=4.8.4 <5.8.0'
+      typescript: '>=4.8.4 <5.9.0'
 
-  '@typescript-eslint/[email protected]':
-    resolution: {integrity: sha512-9kqJ+2DkUXiuhoiYIUvIYjGcwle8pcPpdlfkemGvTObzgmYfJ5d0Qm6jwb4NBXP9W1I5tss0VIAnWFumz3mC5A==}
+  '@typescript-eslint/[email protected]':
+    resolution: {integrity: sha512-DKuXOKpM5IDT1FA2g9x9x1Ug81YuKrzf4mYX8FAVSNu5Wo/LELHWQyM1pQaDkI42bX15PWl0vNPt1uGiIFUOpg==}
     engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
 
-  '@typescript-eslint/[email protected]':
-    resolution: {integrity: sha512-UPyy4MJ/0RE648DSKQe9g0VDSehPINiejjA6ElqnFaFIhI6ZEiZAkUI0D5MCk0bQcTf/LVqZStvQ6K4lPn/BRg==}
+  '@typescript-eslint/[email protected]':
+    resolution: {integrity: sha512-vegY4FQoB6jL97Tu/lWRsAiUUp8qJTqzAmENH2k59SJhw0Th1oszb9Idq/FyyONLuNqT1OADJPXfyUNOR8SzAQ==}
     engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
     peerDependencies:
-      typescript: '>=4.8.4 <5.8.0'
+      typescript: '>=4.8.4 <5.9.0'
 
-  '@typescript-eslint/[email protected]':
-    resolution: {integrity: sha512-OOcg3PMMQx9EXspId5iktsI3eMaXVwlhC8BvNnX6B5w9a4dVgpkQZuU8Hy67TolKcl+iFWq0XX+jbDGN4xWxjQ==}
+  '@typescript-eslint/[email protected]':
+    resolution: {integrity: sha512-lPFuQaLA9aSNa7D5u2EpRiqdAUhzShwGg/nhpBlc4GR6kcTABttCuyjFs8BcEZ8VWrjCBof/bePhP3Q3fS+Yrw==}
     engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
     peerDependencies:
       eslint: ^8.57.0 || ^9.0.0
-      typescript: '>=4.8.4 <5.8.0'
+      typescript: '>=4.8.4 <5.9.0'
 
-  '@typescript-eslint/[email protected]':
-    resolution: {integrity: sha512-EwVHlp5l+2vp8CoqJm9KikPZgi3gbdZAtabKT9KPShGeOcJhsv4Zdo3oc8T8I0uKEmYoU4ItyxbptjF08enaxg==}
+  '@typescript-eslint/[email protected]':
+    resolution: {integrity: sha512-7RW7CMYoskiz5OOGAWjJFxgb7c5UNjTG292gYhWeOAcFmYCtVCSqjqSBj5zMhxbXo2JOW95YYrUWJfU0zrpaGQ==}
     engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
 
+  '@unrs/[email protected]':
+    resolution: {integrity: sha512-3sRvuOUJPnr55HM6SXQhYiWB4QZtVDFtJT7xu1asdXxuR4C3wHX6ORp3byP3DIMwOFbNrcPSPcDzvdikS/pMqA==}
+    cpu: [arm64]
+    os: [darwin]
+
+  '@unrs/[email protected]':
+    resolution: {integrity: sha512-Xh3eNqnJOuIbaGv5QynH12Vf9mRPdHkiJlbisAUt7oywCwAcLTz+g9KP4Bww9m9b2//+xrew52dIZa56VRrl+w==}
+    cpu: [x64]
+    os: [darwin]
+
+  '@unrs/[email protected]':
+    resolution: {integrity: sha512-FC5vAxd0GD4CqPDuSooesyXTiCJY9V7ow72u8sIXdf3v8NWj6ceNG9cPE0GFUQUk++tqf+Yp01W79BBvQ31lEA==}
+    cpu: [x64]
+    os: [freebsd]
+
+  '@unrs/[email protected]':
+    resolution: {integrity: sha512-oSNFKV3j/VeCkl1cQP6KpDevAWtEfEIA6nkEN56etQgG6gLSEndJahvV1RDRKE18VSgKkXtYtFr3WM9L3Zlo1g==}
+    cpu: [arm]
+    os: [linux]
+
+  '@unrs/[email protected]':
+    resolution: {integrity: sha512-bqP4jd4luBxEKOXjo4zGcmEtJephzA/AqtXf1LcO7YwtesDgPMAedJNZt2DJIgGc4JT99Prx5JLkPzoGYQZJ/w==}
+    cpu: [arm]
+    os: [linux]
+
+  '@unrs/[email protected]':
+    resolution: {integrity: sha512-dKA6SesiVtGYADa8rJrWraoyfyna5I68hJI0Ge+y2bEVTKh2ObghwaLcgv0OR0Fo4XimpioB6FpvGezrvMJX4g==}
+    cpu: [arm64]
+    os: [linux]
+
+  '@unrs/[email protected]':
+    resolution: {integrity: sha512-m6t6ylCxusfcXTszyxtkel1CRZZrB7LAd/TP48iggmNdE7+a1YByLr226TCBz0rJz7oxNnwUVw6ICHyV7zwVLA==}
+    cpu: [arm64]
+    os: [linux]
+
+  '@unrs/[email protected]':
+    resolution: {integrity: sha512-Km4qNXKDHIFbFXhETEoRCtIIsyUldSZ3KU7zr/Id+MvBMyTsXZ5AMCVnbKEcoaLf7AjBnwbEFHnqGUOXKnS88g==}
+    cpu: [ppc64]
+    os: [linux]
+
+  '@unrs/[email protected]':
+    resolution: {integrity: sha512-pDBwW3n2RUD7VN1OSh1/MM/yYA7QyrbonNZcFhW79lpZFIekzIjYL83V2rZ1Lo0KYaI4iejwQTFOZoT7fRwPjw==}
+    cpu: [riscv64]
+    os: [linux]
+
+  '@unrs/[email protected]':
+    resolution: {integrity: sha512-0IQeRiDD8OHpj/ekf36ePRqd7i7X4k/SCcv9+XBJ5VNHKSuStsMRTVhMstRS3JSU7/c0R7OlZmj96vtpTSSazg==}
+    cpu: [riscv64]
+    os: [linux]
+
+  '@unrs/[email protected]':
+    resolution: {integrity: sha512-d0LCgzLsdsqYz4fxvBSZyo6TZZab6oUvGmfTtdwk/P9KCrpge8swsLvzK2cJVLHMSreyV6iknVBlBFNIkd9tgQ==}
+    cpu: [s390x]
+    os: [linux]
+
+  '@unrs/[email protected]':
+    resolution: {integrity: sha512-cbspezCWjpslXCnij/4cWXoJj9l39mqL09/QltGqS8yfNmOk+U3E4IQiiqaNTeg+c9VJFCSx10MvBx49usUMFg==}
+    cpu: [x64]
+    os: [linux]
+
+  '@unrs/[email protected]':
+    resolution: {integrity: sha512-Q04EorD1iwqNs9x/OywI/DPUUGvWmgx5zQ/TnD0eFokDsDMtgsaRgcuNA3dc84F6lZC08dqmj1zdXddPfkC0YQ==}
+    cpu: [x64]
+    os: [linux]
+
+  '@unrs/[email protected]':
+    resolution: {integrity: sha512-N70EZMr7LtYGkfqKHFSVAjJ/ZkNaWg+7qa4irCr91PHbeo9K0WtLXFcAqLoMXy9AU1HU8wXszu2QPFnM8Q9MMQ==}
+    engines: {node: '>=14.0.0'}
+    cpu: [wasm32]
+
+  '@unrs/[email protected]':
+    resolution: {integrity: sha512-jL52Di0GqihzIknxMpEFh+BKS5V99Suuai3XlrMwOg8NPM1aQYEHIJID3Nua0+MomcAmEX+Zj4db8yPjTYSljA==}
+    cpu: [arm64]
+    os: [win32]
+
+  '@unrs/[email protected]':
+    resolution: {integrity: sha512-ZFiuMqGqh0oeq3aaMGKI8rZ2A3+2H8RTWTjnZkRCC5L3aE0pqhHB2q/7BGU7lEvWVv4mpvV/HvGBDPdyf6fB5w==}
+    cpu: [ia32]
+    os: [win32]
+
+  '@unrs/[email protected]':
+    resolution: {integrity: sha512-jHIsTNlnZrY3uPUJ12sSy6t20Li6FJkOlI/eoTpO8cgQGh/EfbEwdiJto9V85RYR05GpPgdnClfT+loU2WpoNA==}
+    cpu: [x64]
+    os: [win32]
+
   [email protected]:
     resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==}
     peerDependencies:
@@ -440,8 +551,8 @@ packages:
     resolution: {integrity: sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==}
     engines: {node: '>=0.4.0'}
 
-  [email protected]:
-    resolution: {integrity: sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==}
+  [email protected]:
+    resolution: {integrity: sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==}
     engines: {node: '>=0.4.0'}
     hasBin: true
 
@@ -470,38 +581,6 @@ packages:
   [email protected]:
     resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==}
 
-  [email protected]:
-    resolution: {integrity: sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==}
-    engines: {node: '>= 0.4'}
-
-  [email protected]:
-    resolution: {integrity: sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==}
-    engines: {node: '>= 0.4'}
-
-  [email protected]:
-    resolution: {integrity: sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==}
-    engines: {node: '>= 0.4'}
-
-  [email protected]:
-    resolution: {integrity: sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg==}
-    engines: {node: '>= 0.4'}
-
-  [email protected]:
-    resolution: {integrity: sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg==}
-    engines: {node: '>= 0.4'}
-
-  [email protected]:
-    resolution: {integrity: sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==}
-    engines: {node: '>= 0.4'}
-
-  [email protected]:
-    resolution: {integrity: sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==}
-    engines: {node: '>= 0.4'}
-
-  [email protected]:
-    resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==}
-    engines: {node: '>= 0.4'}
-
   [email protected]:
     resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
 
@@ -529,18 +608,6 @@ packages:
       monocart-coverage-reports:
         optional: true
 
-  [email protected]:
-    resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==}
-    engines: {node: '>= 0.4'}
-
-  [email protected]:
-    resolution: {integrity: sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==}
-    engines: {node: '>= 0.4'}
-
-  [email protected]:
-    resolution: {integrity: sha512-YTd+6wGlNlPxSuri7Y6X8tY2dmm12UMH66RpKMhiX6rsk5wXXnYgbUcOt8kiS31/AjfoTOvCsE+w8nZQLQnzHA==}
-    engines: {node: '>= 0.4'}
-
   [email protected]:
     resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==}
     engines: {node: '>=6'}
@@ -549,8 +616,8 @@ packages:
     resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==}
     engines: {node: '>=10'}
 
-  [email protected]:
-    resolution: {integrity: sha512-+G9GREoEYIS/mLleQCIcsUdX6AyrURr8UENN3PzzBIe/mO2dKN/eNxsLu2atNrkjkY7ri1Gn5rjiy44IFgFxCw==}
+  [email protected]:
+    resolution: {integrity: sha512-xAs/RKFiB1dHEFPK3+ACk0f2WdngQywmghiPsKJF2JmrsOHCQAfcqkD7C52V3FjwPtU5s8sdTJwX4pLP/66+Bw==}
     engines: {node: '>=18.0.0'}
     hasBin: true
     peerDependencies:
@@ -560,8 +627,8 @@ packages:
     resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==}
     engines: {node: '>= 14.16.0'}
 
-  [email protected]:
-    resolution: {integrity: sha512-Gbz8x7sL/sn0j+2B+yYEumD17WmPT6pHLN+A5nhcd0Sdh86EYblQleU+dUIICXVFalFMFBdW2aGynrVJ6k1u4Q==}
+  [email protected]:
+    resolution: {integrity: sha512-NbVdbx/1NRxaD7nB7v6cPUGB2oVSV1QPwqswvI3W6Ii2A1gcPw6EnDV+xNcUTz6jc8e0bFr6Q08Mc0kSIc6DqQ==}
     engines: {node: '>= 18.0.0'}
     hasBin: true
 
@@ -576,6 +643,10 @@ packages:
   [email protected]:
     resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
 
+  [email protected]:
+    resolution: {integrity: sha512-buhp5kePrmda3vhc5B9t7pUQXAb2Tnd0qgpkIhPhkHXxJpiPJ11H0ZEU0oBpJ2QztSbzG/ZxMj/CHsYJqRHmyg==}
+    engines: {node: '>= 12.0.0'}
+
   [email protected]:
     resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==}
 
@@ -592,18 +663,6 @@ packages:
     resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==}
     engines: {node: '>= 8'}
 
-  [email protected]:
-    resolution: {integrity: sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==}
-    engines: {node: '>= 0.4'}
-
-  [email protected]:
-    resolution: {integrity: sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==}
-    engines: {node: '>= 0.4'}
-
-  [email protected]:
-    resolution: {integrity: sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==}
-    engines: {node: '>= 0.4'}
-
   [email protected]:
     resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==}
     peerDependencies:
@@ -612,8 +671,8 @@ packages:
       supports-color:
         optional: true
 
-  [email protected]:
-    resolution: {integrity: sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==}
+  [email protected]:
+    resolution: {integrity: sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==}
     engines: {node: '>=6.0'}
     peerDependencies:
       supports-color: '*'
@@ -624,14 +683,6 @@ packages:
   [email protected]:
     resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==}
 
-  [email protected]:
-    resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==}
-    engines: {node: '>= 0.4'}
-
-  [email protected]:
-    resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==}
-    engines: {node: '>= 0.4'}
-
   [email protected]:
     resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==}
     engines: {node: '>=6'}
@@ -644,14 +695,6 @@ packages:
     resolution: {integrity: sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==}
     engines: {node: '>=0.3.1'}
 
-  [email protected]:
-    resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==}
-    engines: {node: '>=0.10.0'}
-
-  [email protected]:
-    resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==}
-    engines: {node: '>= 0.4'}
-
   [email protected]:
     resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==}
 
@@ -665,36 +708,8 @@ packages:
     resolution: {integrity: sha512-ZSW3ma5GkcQBIpwZTSRAI8N71Uuwgs93IezB7mf7R60tC8ZbJideoDNKjHn2O9KIlx6rkGTTEk1xUCK2E1Y2Yg==}
     engines: {node: '>=10.13.0'}
 
-  [email protected]:
-    resolution: {integrity: sha512-py07lI0wjxAC/DcfK1S6G7iANonniZwTISvdPzk9hzeH0IZIshbuuFxLIU96OyF89Yb9hiqWn8M/bY83KY5vzA==}
-    engines: {node: '>= 0.4'}
-
-  [email protected]:
-    resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==}
-    engines: {node: '>= 0.4'}
-
-  [email protected]:
-    resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==}
-    engines: {node: '>= 0.4'}
-
-  [email protected]:
-    resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==}
-    engines: {node: '>= 0.4'}
-
-  [email protected]:
-    resolution: {integrity: sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==}
-    engines: {node: '>= 0.4'}
-
-  [email protected]:
-    resolution: {integrity: sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw==}
-    engines: {node: '>= 0.4'}
-
-  [email protected]:
-    resolution: {integrity: sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==}
-    engines: {node: '>= 0.4'}
-
-  [email protected]:
-    resolution: {integrity: sha512-BXq5mqc8ltbaN34cDqWuYKyNhX8D/Z0J1xdtdQ8UcIIIyJyz+ZMKUt58tF3SrZ85jcfN/PZYhjR5uDQAYNVbuw==}
+  [email protected]:
+    resolution: {integrity: sha512-P8OtKZRv/5J5hhz0cUAdu/cLuPIKXpQl1R9pZtvmHWQvrAUVd0UNIPT4IB4W3rNOqVO0rlqHmCIbSwxh/c9yUQ==}
     engines: {node: '>=18'}
     hasBin: true
 
@@ -712,66 +727,41 @@ packages:
     peerDependencies:
       eslint: '>=6.0.0'
 
-  [email protected]:
-    resolution: {integrity: sha512-IwHwmaBNtDK4zDHQukFDW5u/aTb8+meQWZvNFWkiGmbWjD6bqyuSSBxxXKkCftCUzc1zwCH2m/baCNDLGmuO5Q==}
-    engines: {node: '>=12.0.0'}
+  [email protected]:
+    resolution: {integrity: sha512-/e2ZNPDLCrU8niIy0pddcvXuoO2YrKjf3NAIX+60mHJBT4yv7mqCqvVdyCW2E720e25e4S/1OSVef4U6efGLFg==}
+    engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0}
     peerDependencies:
-      eslint: ^8.0.1
-      eslint-plugin-import: ^2.25.2
-      eslint-plugin-n: '^15.0.0 || ^16.0.0 '
-      eslint-plugin-promise: ^6.0.0
+      unrs-resolver: ^1.0.0
+    peerDependenciesMeta:
+      unrs-resolver:
+        optional: true
 
   [email protected]:
     resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==}
 
-  [email protected]:
-    resolution: {integrity: sha512-wALZ0HFoytlyh/1+4wuZ9FJCD/leWHQzzrxJ8+rebyReSLk7LApMyd3WJaLVoN+D5+WIdJyDK1c6JnE65V4Zyg==}
-    engines: {node: '>=4'}
-    peerDependencies:
-      '@typescript-eslint/parser': '*'
-      eslint: '*'
-      eslint-import-resolver-node: '*'
-      eslint-import-resolver-typescript: '*'
-      eslint-import-resolver-webpack: '*'
-    peerDependenciesMeta:
-      '@typescript-eslint/parser':
-        optional: true
-      eslint:
-        optional: true
-      eslint-import-resolver-node:
-        optional: true
-      eslint-import-resolver-typescript:
-        optional: true
-      eslint-import-resolver-webpack:
-        optional: true
-
   [email protected]:
     resolution: {integrity: sha512-7Ds8+wAAoV3T+LAKeu39Y5BzXCrGKrcISfgKEqTS4BDN8SFEDQd0S43jiQ8vIa3wUKD07qitZdfzlenSi8/0qQ==}
     engines: {node: ^14.18.0 || >=16.0.0}
     peerDependencies:
       eslint: '>=8'
 
-  [email protected]:
-    resolution: {integrity: sha512-ixmkI62Rbc2/w8Vfxyh1jQRTdRTF52VxwRVHl/ykPAmqG+Nb7/kNn+byLP0LxPgI7zWA16Jt82SybJInmMia3A==}
-    engines: {node: '>=4'}
+  [email protected]:
+    resolution: {integrity: sha512-CDewJDEeYQhm94KGCDYiuwU1SdaWc/vh+SziSKkF7kichAqAFnQYtSYUvSwSBbiBjYLxV5uUxocxxQobRI9YXA==}
+    engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
     peerDependencies:
-      '@typescript-eslint/parser': '*'
-      eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9
-    peerDependenciesMeta:
-      '@typescript-eslint/parser':
-        optional: true
+      eslint: ^8.57.0 || ^9.0.0
 
-  [email protected]:
-    resolution: {integrity: sha512-KFw7x02hZZkBdbZEFQduRGH4VkIH4MW97ClsbAM4Y4E6KguBJWGfWG1P4HEIpZk2bkoWf0bojpnjNAhYQP8beA==}
+  [email protected]:
+    resolution: {integrity: sha512-hvZ/HusueqTJ7VDLoCpjN0hx4N4+jHIWTXD4TMLHy9F23XkDagR9v+xQWRWR57yY55GPF8NnD4ox9iGTxirY8A==}
     engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
     peerDependencies:
       eslint: '>=8.23.0'
 
-  [email protected]:
-    resolution: {integrity: sha512-76lDfJnonOcXGW3bEXuqhEGId0LrOlvIE1yLHvK/eKMMPOc0b43KchAIR2Bdbqlg+LPXU5/Q+UzuzkO+cWHT6w==}
+  [email protected]:
+    resolution: {integrity: sha512-dsPwXwV7IrG26PJ+h1crQ1f5kxay/gQAU0NJnbVTQc91l5Mz9kPjyIZ7fXgie+QSgi8a+0TwGbfaJx+GIhzuoQ==}
     engines: {node: ^18.0.0 || >=20.0.0}
     peerDependencies:
-      eslint: '>=8.0.0'
+      eslint: '>=8.45.0'
 
   [email protected]:
     resolution: {integrity: sha512-X4ep5PMO1320HKaNC9DM5+p6XvOhwv+RcqGjhv3aiw9iAtHhiFtdIUB5l0Zya0iM22ys2BGKzrNI9Xpw/ZHooQ==}
@@ -783,8 +773,8 @@ packages:
     peerDependencies:
       eslint: ^7.0.0 || ^8.0.0 || ^9.0.0
 
-  [email protected]:
-    resolution: {integrity: sha512-PHlWUfG6lvPc3yvP5A4PNyBL1W8fkDUccmI21JUu/+GKZBoH/W5u6usENXUrWFRsyoW5ACUjFGgAFQp5gUlb/A==}
+  [email protected]:
+    resolution: {integrity: sha512-pUNxi75F8MJ/GdeKtVLSbYg4ZI34J6C0C7sbL4YOp2exGwen7ZsuBqKzUhXd0qMQ362yET3z+uPwKeg/0C2XCQ==}
     engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
 
   [email protected]:
@@ -795,8 +785,8 @@ packages:
     resolution: {integrity: sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==}
     engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
 
-  [email protected]:
-    resolution: {integrity: sha512-m1mM33o6dBUjxl2qb6wv6nGNwCAsns1eKtaQ4l/NPHeTvhiUPbtdfMyktxN4B3fgHIgsYh1VT3V9txblpQHq+g==}
+  [email protected]:
+    resolution: {integrity: sha512-ixRawFQuMB9DZ7fjU3iGGganFDp3+45bPOdaRurcFHSXO1e/sYwUX/FtQZpLZJR6SjMoJH8hR2pPEAfDyCoU2Q==}
     engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
     hasBin: true
     peerDependencies:
@@ -838,11 +828,11 @@ packages:
   [email protected]:
     resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==}
 
-  [email protected]:
-    resolution: {integrity: sha512-7SFSRCNjBQIZH/xZR3iy5iQYR8aGBE0h3VG6/cwlbrpdciNYBMotQav8c1XI3HjHH+NikUpP53nPdlZSdWmFzA==}
+  [email protected]:
+    resolution: {integrity: sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==}
 
-  [email protected]:
-    resolution: {integrity: sha512-PMXmW2y1hDDfTSRc9gaXIuCCRpuoz3Kaz8cUelp3smouvfT632ozg2vrT6lJsHKKOF59YLbOGfAWGUcKEfRMQw==}
+  [email protected]:
+    resolution: {integrity: sha512-4BG7puHpVsIYxZUbiUE3RqGloLaSSwzYie5jvasC4LWuBWzZawynvYouhjbQKw2JuIGYdm0DzIxl8iVidKlUEw==}
     peerDependencies:
       picomatch: ^3 || ^4
     peerDependenciesMeta:
@@ -868,42 +858,19 @@ packages:
   [email protected]:
     resolution: {integrity: sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==}
 
-  [email protected]:
-    resolution: {integrity: sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==}
-    engines: {node: '>= 0.4'}
-
-  [email protected]:
-    resolution: {integrity: sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==}
+  [email protected]:
+    resolution: {integrity: sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==}
     engines: {node: '>=14'}
 
   [email protected]:
     resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==}
 
-  [email protected]:
-    resolution: {integrity: sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==}
-    engines: {node: '>= 0.4'}
-
-  [email protected]:
-    resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==}
-
   [email protected]:
     resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==}
     engines: {node: 6.* || 8.* || >= 10.*}
 
-  [email protected]:
-    resolution: {integrity: sha512-VW6Pxhsrk0KAOqs3WEd0klDiF/+V7gQOpAvY1jVU/LHmaD/kQO4523aiJuikX/QAKYiW6x8Jh+RJej1almdtCA==}
-    engines: {node: '>= 0.4'}
-
-  [email protected]:
-    resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==}
-    engines: {node: '>= 0.4'}
-
-  [email protected]:
-    resolution: {integrity: sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==}
-    engines: {node: '>= 0.4'}
-
-  [email protected]:
-    resolution: {integrity: sha512-kGzZ3LWWQcGIAmg6iWvXn0ei6WDtV26wzHRMwDSzmAbcXrTEXxHy6IehI6/4eT6VRKyMP1eF1VqwrVUmE/LR7A==}
+  [email protected]:
+    resolution: {integrity: sha512-auHyJ4AgMz7vgS8Hp3N6HXSmlMdUyhSUrfBF16w153rxtLIEOE+HGqaBppczZvnHLqQJfiHotCYpNhl0lUROFQ==}
 
   [email protected]:
     resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==}
@@ -925,13 +892,9 @@ packages:
     resolution: {integrity: sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg==}
     engines: {node: '>=18'}
 
-  [email protected]:
-    resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==}
-    engines: {node: '>= 0.4'}
-
-  [email protected]:
-    resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==}
-    engines: {node: '>= 0.4'}
+  [email protected]:
+    resolution: {integrity: sha512-O+7l9tPdHCU320IigZZPj5zmRCFG9xHmx9cU8FqU2Rp+JN714seHV+2S9+JslCpY4gJwU2vOGox0wzgae/MCEg==}
+    engines: {node: '>=18'}
 
   [email protected]:
     resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==}
@@ -939,29 +902,10 @@ packages:
   [email protected]:
     resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUr,KXCOVaFq9x1kgag==}
 
-  [email protected]:
-    resolution: {integrity: sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==}
-    engines: {node: '>= 0.4'}
-
   [email protected]:
     resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==}
     engines: {node: '>=8'}
 
-  [email protected]:
-    resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==}
-
-  [email protected]:
-    resolution: {integrity: sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==}
-    engines: {node: '>= 0.4'}
-
-  [email protected]:
-    resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==}
-    engines: {node: '>= 0.4'}
-
-  [email protected]:
-    resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==}
-    engines: {node: '>= 0.4'}
-
   [email protected]:
     resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==}
     engines: {node: '>= 0.4'}
@@ -973,6 +917,10 @@ packages:
     resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==}
     engines: {node: '>= 4'}
 
+  [email protected]:
+    resolution: {integrity: sha512-gJzzk+PQNznz8ysRrC0aOkBNVRBDtE1n53IqyqEf3PXrYwomFs5q4pGMizBMJF+ykh03insJ27hB8gSrD2Hn8A==}
+    engines: {node: '>= 4'}
+
   [email protected]:
     resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==}
     engines: {node: '>=6'}
@@ -981,113 +929,26 @@ packages:
     resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==}
     engines: {node: '>=0.8.19'}
 
-  [email protected]:
-    resolution: {integrity: sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==}
-    engines: {node: '>= 0.4'}
-
-  [email protected]:
-    resolution: {integrity: sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==}
-    engines: {node: '>= 0.4'}
-
-  [email protected]:
-    resolution: {integrity: sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==}
-    engines: {node: '>= 0.4'}
-
-  [email protected]:
-    resolution: {integrity: sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==}
-    engines: {node: '>= 0.4'}
-
-  [email protected]:
-    resolution: {integrity: sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==}
-    engines: {node: '>= 0.4'}
-
-  [email protected]:
-    resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==}
-    engines: {node: '>= 0.4'}
-
   [email protected]:
     resolution: {integrity: sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==}
     engines: {node: '>= 0.4'}
 
-  [email protected]:
-    resolution: {integrity: sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==}
-    engines: {node: '>= 0.4'}
-
-  [email protected]:
-    resolution: {integrity: sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==}
-    engines: {node: '>= 0.4'}
-
   [email protected]:
     resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==}
     engines: {node: '>=0.10.0'}
 
-  [email protected]:
-    resolution: {integrity: sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==}
-    engines: {node: '>= 0.4'}
-
   [email protected]:
     resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==}
     engines: {node: '>=8'}
 
-  [email protected]:
-    resolution: {integrity: sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==}
-    engines: {node: '>= 0.4'}
-
   [email protected]:
     resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==}
     engines: {node: '>=0.10.0'}
 
-  [email protected]:
-    resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==}
-    engines: {node: '>= 0.4'}
-
-  [email protected]:
-    resolution: {integrity: sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==}
-    engines: {node: '>= 0.4'}
-
   [email protected]:
     resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==}
     engines: {node: '>=0.12.0'}
 
-  [email protected]:
-    resolution: {integrity: sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==}
-    engines: {node: '>= 0.4'}
-
-  [email protected]:
-    resolution: {integrity: sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==}
-    engines: {node: '>= 0.4'}
-
-  [email protected]:
-    resolution: {integrity: sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==}
-    engines: {node: '>= 0.4'}
-
-  [email protected]:
-    resolution: {integrity: sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==}
-    engines: {node: '>= 0.4'}
-
-  [email protected]:
-    resolution: {integrity: sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==}
-    engines: {node: '>= 0.4'}
-
-  [email protected]:
-    resolution: {integrity: sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==}
-    engines: {node: '>= 0.4'}
-
-  [email protected]:
-    resolution: {integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==}
-    engines: {node: '>= 0.4'}
-
-  [email protected]:
-    resolution: {integrity: sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==}
-    engines: {node: '>= 0.4'}
-
-  [email protected]:
-    resolution: {integrity: sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==}
-    engines: {node: '>= 0.4'}
-
-  [email protected]:
-    resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==}
-
   [email protected]:
     resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==}
 
@@ -1123,10 +984,6 @@ packages:
   [email protected]:
     resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==}
 
-  [email protected]:
-    resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==}
-    hasBin: true
-
   [email protected]:
     resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==}
 
@@ -1159,10 +1016,6 @@ packages:
   [email protected]:
     resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==}
 
-  [email protected]:
-    resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==}
-    engines: {node: '>= 0.4'}
-
   [email protected]:
     resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==}
     engines: {node: '>= 8'}
@@ -1171,6 +1024,10 @@ packages:
     resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==}
     engines: {node: '>=8.6'}
 
+  [email protected]:
+    resolution: {integrity: sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ==}
+    engines: {node: 20 || >=22}
+
   [email protected]:
     resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==}
 
@@ -1178,9 +1035,6 @@ packages:
     resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==}
     engines: {node: '>=16 || 14 >=14.17'}
 
-  [email protected]:
-    resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==}
-
   [email protected]:
     resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==}
     engines: {node: '>=16 || 14 >=14.17'}
@@ -1195,13 +1049,13 @@ packages:
   [email protected]:
     resolution: {integrity: sha512-mfVn7t26m4mVoUuWdUevZccq0saIh5T4Lu3cAzbZ6j03yc4sIDwM3Dof0LS70YwflPZtGJ92BGhNYV862wXRvg==}
 
-  [email protected]:
-    resolution: {integrity: sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==}
+  [email protected]:
+    resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==}
     engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
     hasBin: true
 
-  [email protected]:
-    resolution: {integrity: sha512-zDAl/llz8Ue/EblwSYwdxGBYfj46IM1dhjVi8dyp9LQffoIGxJEAHj2oeZ4uNcgycSRcQ83CnfcZqEJzVDLcDw==}
+  [email protected]:
+    resolution: {integrity: sha512-Ir/+ZpE9fDsNH0hQ3C68uyThDXzYcim2EqcZ8zn8Chtt1iylPT9xXJB0kPCnqzgcEGikO9RxSrh63MsmVCU7Fw==}
     engines: {node: ^18 || >=20}
     hasBin: true
 
@@ -1212,6 +1066,11 @@ packages:
     resolution: {integrity: sha512-wvmmALNstRRhLhy7RV11NCRY2k1zxstImiju4VyyKNNRIKDVjyBtmEd/Q4G82/3dN4VSTe+0PRR3DUAASSbEEQ==}
     engines: {node: ^8.0.0 || ^10.0.0 || ^12.0.0 || ^14.0.0 || ^16.0.0 || ^18.0.0 || >=20.0.0}
 
+  [email protected]:
+    resolution: {integrity: sha512-ZEzHJwBhZ8qQSbknHqYcdtQVr8zUgGyM/q6h6qAyhtyVMNrSgDhrC4disf03dYW0e+czXyLnZINnCTEkWy0eJg==}
+    engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0}
+    hasBin: true
+
   [email protected]:
     resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==}
 
@@ -1219,38 +1078,10 @@ packages:
     resolution: {integrity: sha512-kKHJhxwpR/Okycz4HhQKKlhWe4ASEfPgkSWNmKFHd7+ezuQlxkA5cM3+XkBPvm1gmHen3w53qsYAv+8GwRrBlg==}
     engines: {node: '>=18'}
 
-  [email protected]:
-    resolution: {integrity: sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==}
-    engines: {node: '>= 0.4'}
-
-  [email protected]:
-    resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==}
-    engines: {node: '>= 0.4'}
-
-  [email protected]:
-    resolution: {integrity: sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==}
-    engines: {node: '>= 0.4'}
-
-  [email protected]:
-    resolution: {integrity: sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==}
-    engines: {node: '>= 0.4'}
-
-  [email protected]:
-    resolution: {integrity: sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==}
-    engines: {node: '>= 0.4'}
-
-  [email protected]:
-    resolution: {integrity: sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==}
-    engines: {node: '>= 0.4'}
-
   [email protected]:
     resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==}
     engines: {node: '>= 0.8.0'}
 
-  [email protected]:
-    resolution: {integrity: sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==}
-    engines: {node: '>= 0.4'}
-
   [email protected]:
     resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==}
     engines: {node: '>=10'}
@@ -1292,10 +1123,6 @@ packages:
     resolution: {integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==}
     engines: {node: '>=12'}
 
-  [email protected]:
-    resolution: {integrity: sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==}
-    engines: {node: '>= 0.4'}
-
   [email protected]:
     resolution: {integrity: sha512-WGbGB0FMGoaaBz5AVLXscO76ibgm1ZjBD2weWHhFQSrQ8HyVhNqZDLZSVejIZSd7pQ7SX73EUTHZjx3Jbg60zw==}
 
@@ -1314,14 +1141,6 @@ packages:
     resolution: {integrity: sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==}
     engines: {node: '>= 14.18.0'}
 
-  [email protected]:
-    resolution: {integrity: sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==}
-    engines: {node: '>= 0.4'}
-
-  [email protected]:
-    resolution: {integrity: sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==}
-    engines: {node: '>= 0.4'}
-
   [email protected]:
     resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==}
     engines: {node: '>=0.10.0'}
@@ -1342,8 +1161,8 @@ packages:
     engines: {node: '>= 0.4'}
     hasBin: true
 
-  [email protected]:
-    resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==}
+  [email protected]:
+    resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==}
     engines: {iojs: '>=1.0.0', node: '>=0.10.0'}
 
   [email protected]:
@@ -1353,39 +1172,11 @@ packages:
     resolution: {integrity: sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==}
     engines: {node: '>=6'}
 
-  [email protected]:
-    resolution: {integrity: sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==}
-    engines: {node: '>=0.4'}
-
-  [email protected]:
-    resolution: {integrity: sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==}
-    engines: {node: '>= 0.4'}
-
-  [email protected]:
-    resolution: {integrity: sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==}
-    engines: {node: '>= 0.4'}
-
-  [email protected]:
-    resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==}
-    hasBin: true
-
-  [email protected]:
-    resolution: {integrity: sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==}
+  [email protected]:
+    resolution: {integrity: sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==}
     engines: {node: '>=10'}
     hasBin: true
 
-  [email protected]:
-    resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==}
-    engines: {node: '>= 0.4'}
-
-  [email protected]:
-    resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==}
-    engines: {node: '>= 0.4'}
-
-  [email protected]:
-    resolution: {integrity: sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==}
-    engines: {node: '>= 0.4'}
-
   [email protected]:
     resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==}
     engines: {node: '>=8'}
@@ -1394,28 +1185,12 @@ packages:
     resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==}
     engines: {node: '>=8'}
 
-  [email protected]:
-    resolution: {integrity: sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==}
-    engines: {node: '>= 0.4'}
-
-  [email protected]:
-    resolution: {integrity: sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==}
-    engines: {node: '>= 0.4'}
-
-  [email protected]:
-    resolution: {integrity: sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==}
-    engines: {node: '>= 0.4'}
-
-  [email protected]:
-    resolution: {integrity: sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==}
-    engines: {node: '>= 0.4'}
-
   [email protected]:
     resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==}
     engines: {node: '>=14'}
 
-  [email protected]:
-    resolution: {integrity: sha512-tgqwPUMDcNDhuf1Xf6KTUsyeqGdgKMhzaH4PAZZuzguOgTl5uuyeYe/8mWgAr6IBxB5V06uqEf6Dy37gIWDtDg==}
+  [email protected]:
+    resolution: {integrity: sha512-N+goiLxlkHJlyaYEglFypzVNMaNplPAk5syu0+OPp/Bk6dwVoXF6FfOw2vO0Dp+JHsBaI+w6cm8TnFl2Hw6tDA==}
     hasBin: true
 
   [email protected]:
@@ -1431,6 +1206,9 @@ packages:
     resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==}
     engines: {node: '>=0.10.0'}
 
+  [email protected]:
+    resolution: {integrity: sha512-+L3ccpzibovGXFK+Ap/f8LOS0ahMrHTf3xu7mMLSpEGU0EO9ucaysSylKo9eRDFNhWve/y275iPmIZ4z39a9iA==}
+
   [email protected]:
     resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==}
     engines: {node: '>=8'}
@@ -1439,18 +1217,6 @@ packages:
     resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==}
     engines: {node: '>=12'}
 
-  [email protected]:
-    resolution: {integrity: sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==}
-    engines: {node: '>= 0.4'}
-
-  [email protected]:
-    resolution: {integrity: sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==}
-    engines: {node: '>= 0.4'}
-
-  [email protected]:
-    resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==}
-    engines: {node: '>= 0.4'}
-
   [email protected]:
     resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==}
     engines: {node: '>=8'}
@@ -1459,10 +1225,6 @@ packages:
     resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==}
     engines: {node: '>=12'}
 
-  [email protected]:
-    resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==}
-    engines: {node: '>=4'}
-
   [email protected]:
     resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==}
     engines: {node: '>=8'}
@@ -1475,24 +1237,24 @@ packages:
     resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==}
     engines: {node: '>= 0.4'}
 
-  [email protected]:
-    resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==}
+  [email protected]:
+    resolution: {integrity: sha512-Re10+NauLTMCudc7T5WLFLAwDhQ0JWdrMK+9B2M8zR5hRExKmsRDCBA7/aV/pNJFltmBFO5BAMlQFi/vq3nKOg==}
     engines: {node: '>=6'}
 
   [email protected]:
     resolution: {integrity: sha512-pFYqmTw68LXVjeWJMST4+borgQP2AyMNbg1BpZh9LbyhUeNkeaPF9gzfPGUAnSMV3qPYdWUwDIjjCLiSDOl7vg==}
     engines: {node: '>=18'}
 
-  [email protected]:
-    resolution: {integrity: sha512-32TmKeeKUahv0Go8WmQgiEp9Y21NuxjwjqiRC1nrUB51YacfSwuB44xgXD+HdIppmMRgjQNPdrHyA6vIybYZ+g==}
+  [email protected]:
+    resolution: {integrity: sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ==}
     engines: {node: '>=12.0.0'}
 
   [email protected]:
     resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
     engines: {node: '>=8.0'}
 
-  [email protected]:
-    resolution: {integrity: sha512-dnlgjFSVetynI8nzgJ+qF62efpglpWRk8isUEWZGWlJYySCTD6aKvbUDu+zbPeDakk3bg5H4XpitHukgfL1m9w==}
+  [email protected]:
+    resolution: {integrity: sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ==}
     engines: {node: '>=18.12'}
     peerDependencies:
       typescript: '>=4.8.4'
@@ -1511,51 +1273,34 @@ packages:
       '@swc/wasm':
         optional: true
 
-  [email protected]:
-    resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==}
+  [email protected]:
+    resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==}
 
   [email protected]:
     resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==}
     engines: {node: '>= 0.8.0'}
 
-  [email protected]:
-    resolution: {integrity: sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==}
-    engines: {node: '>= 0.4'}
-
-  [email protected]:
-    resolution: {integrity: sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==}
-    engines: {node: '>= 0.4'}
-
-  [email protected]:
-    resolution: {integrity: sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==}
-    engines: {node: '>= 0.4'}
-
-  [email protected]:
-    resolution: {integrity: sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==}
-    engines: {node: '>= 0.4'}
-
-  [email protected]:
-    resolution: {integrity: sha512-cw3rEdzDqBs70TIcb0Gdzbt6h11BSs2pS0yaq7hDWDBtCCSei1pPSUXE9qUdQ/Wm9NgFg8mKtMt1b8fTHIl1jA==}
+  [email protected]:
+    resolution: {integrity: sha512-5YmNhF24ylCsvdNW2oJwMzTbaeO4bg90KeGtMjUw0AGtHksgEPLRTUil+coHwCfiu4QjVJFnjp94DmU6zV7DhQ==}
     engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
     peerDependencies:
       eslint: ^8.57.0 || ^9.0.0
-      typescript: '>=4.8.4 <5.8.0'
+      typescript: '>=4.8.4 <5.9.0'
 
-  [email protected]:
-    resolution: {integrity: sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==}
+  [email protected]:
+    resolution: {integrity: sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==}
     engines: {node: '>=14.17'}
     hasBin: true
 
-  [email protected]:
-    resolution: {integrity: sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==}
-    engines: {node: '>= 0.4'}
-
-  [email protected]:
-    resolution: {integrity: sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==}
+  [email protected]:
+    resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==}
 
   [email protected]:
     resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==}
 
+  [email protected]:
+    resolution: {integrity: sha512-KAJIrBeQXgI6futKlN0aZOG1aViGX1X37EFUYqcBWTPVatjeqoydHITsNuxUe6CRo/UTdwMvteSf4A7R4cAlxA==}
+
   [email protected]:
     resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==}
 
@@ -1580,22 +1325,6 @@ packages:
   [email protected]:
     resolution: {integrity: sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==}
 
-  [email protected]:
-    resolution: {integrity: sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==}
-    engines: {node: '>= 0.4'}
-
-  [email protected]:
-    resolution: {integrity: sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==}
-    engines: {node: '>= 0.4'}
-
-  [email protected]:
-    resolution: {integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==}
-    engines: {node: '>= 0.4'}
-
-  [email protected]:
-    resolution: {integrity: sha512-qEcY+KJYlWyLH9vNbsr6/5j59AXk5ni5aakf8ldzBvGde6Iz4sxZGkJyWSAueTG7QhOvNRYb1lDdFmL5Td0QKA==}
-    engines: {node: '>= 0.4'}
-
   [email protected]:
     resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==}
     engines: {node: '>= 8'}
@@ -1641,104 +1370,122 @@ snapshots:
     dependencies:
       '@jridgewell/trace-mapping': 0.3.9
 
-  '@esbuild/[email protected]':
+  '@emnapi/[email protected]':
+    dependencies:
+      '@emnapi/wasi-threads': 1.0.2
+      tslib: 2.8.1
+    optional: true
+
+  '@emnapi/[email protected]':
+    dependencies:
+      tslib: 2.8.1
+    optional: true
+
+  '@emnapi/[email protected]':
+    dependencies:
+      tslib: 2.8.1
+    optional: true
+
+  '@esbuild/[email protected]':
     optional: true
 
-  '@esbuild/[email protected]':
+  '@esbuild/[email protected]':
     optional: true
 
-  '@esbuild/[email protected]':
+  '@esbuild/[email protected]':
     optional: true
 
-  '@esbuild/[email protected]':
+  '@esbuild/[email protected]':
     optional: true
 
-  '@esbuild/[email protected]':
+  '@esbuild/[email protected]':
     optional: true
 
-  '@esbuild/[email protected]':
+  '@esbuild/[email protected]':
     optional: true
 
-  '@esbuild/[email protected]':
+  '@esbuild/[email protected]':
     optional: true
 
-  '@esbuild/[email protected]':
+  '@esbuild/[email protected]':
     optional: true
 
-  '@esbuild/[email protected]':
+  '@esbuild/[email protected]':
     optional: true
 
-  '@esbuild/[email protected]':
+  '@esbuild/[email protected]':
     optional: true
 
-  '@esbuild/[email protected]':
+  '@esbuild/[email protected]':
     optional: true
 
-  '@esbuild/[email protected]':
+  '@esbuild/[email protected]':
     optional: true
 
-  '@esbuild/[email protected]':
+  '@esbuild/[email protected]':
     optional: true
 
-  '@esbuild/[email protected]':
+  '@esbuild/[email protected]':
     optional: true
 
-  '@esbuild/[email protected]':
+  '@esbuild/[email protected]':
     optional: true
 
-  '@esbuild/[email protected]':
+  '@esbuild/[email protected]':
     optional: true
 
-  '@esbuild/[email protected]':
+  '@esbuild/[email protected]':
     optional: true
 
-  '@esbuild/[email protected]':
+  '@esbuild/[email protected]':
     optional: true
 
-  '@esbuild/[email protected]':
+  '@esbuild/[email protected]':
     optional: true
 
-  '@esbuild/[email protected]':
+  '@esbuild/[email protected]':
     optional: true
 
-  '@esbuild/[email protected]':
+  '@esbuild/[email protected]':
     optional: true
 
-  '@esbuild/[email protected]':
+  '@esbuild/[email protected]':
     optional: true
 
-  '@esbuild/[email protected]':
+  '@esbuild/[email protected]':
     optional: true
 
-  '@esbuild/[email protected]':
+  '@esbuild/[email protected]':
     optional: true
 
-  '@esbuild/[email protected]':
+  '@esbuild/[email protected]':
     optional: true
 
-  '@eslint-community/[email protected]([email protected]([email protected]))':
+  '@eslint-community/[email protected]([email protected]([email protected]))':
     dependencies:
-      eslint: 9.20.1([email protected])
+      eslint: 9.27.0([email protected])
       eslint-visitor-keys: 3.4.3
 
   '@eslint-community/[email protected]': {}
 
-  '@eslint/[email protected]':
+  '@eslint/[email protected]':
     dependencies:
       '@eslint/object-schema': 2.1.6
-      debug: 4.4.0
+      debug: 4.4.1
       minimatch: 3.1.2
     transitivePeerDependencies:
       - supports-color
 
-  '@eslint/[email protected]':
+  '@eslint/[email protected]': {}
+
+  '@eslint/[email protected]':
     dependencies:
       '@types/json-schema': 7.0.15
 
-  '@eslint/[email protected]':
+  '@eslint/[email protected]':
     dependencies:
       ajv: 6.12.6
-      debug: 4.4.0
+      debug: 4.4.1
       espree: 10.3.0
       globals: 14.0.0
       ignore: 5.3.2
@@ -1749,13 +1496,13 @@ snapshots:
     transitivePeerDependencies:
       - supports-color
 
-  '@eslint/[email protected]': {}
+  '@eslint/[email protected]': {}
 
   '@eslint/[email protected]': {}
 
-  '@eslint/[email protected]':
+  '@eslint/[email protected]':
     dependencies:
-      '@eslint/core': 0.11.0
+      '@eslint/core': 0.14.0
       levn: 0.4.1
 
   '@humanfs/[email protected]': {}
@@ -1769,7 +1516,7 @@ snapshots:
 
   '@humanwhocodes/[email protected]': {}
 
-  '@humanwhocodes/[email protected]': {}
+  '@humanwhocodes/[email protected]': {}
 
   '@isaacs/[email protected]':
     dependencies:
@@ -1796,24 +1543,28 @@ snapshots:
       '@jridgewell/resolve-uri': 3.1.2
       '@jridgewell/sourcemap-codec': 1.5.0
 
-  '@logux/[email protected](@typescript-eslint/[email protected]([email protected]([email protected]))([email protected]))([email protected]([email protected]))([email protected])':
+  '@logux/[email protected]([email protected]([email protected]))([email protected])':
     dependencies:
-      '@eslint/eslintrc': 3.2.0
-      eslint: 9.20.1([email protected])
-      eslint-config-standard: 17.1.0([email protected](@typescript-eslint/[email protected]([email protected]([email protected]))([email protected]))([email protected]([email protected])))([email protected]([email protected]([email protected])))([email protected]([email protected]([email protected])))([email protected]([email protected]))
-      eslint-plugin-import: 2.31.0(@typescript-eslint/[email protected]([email protected]([email protected]))([email protected]))([email protected]([email protected]))
-      eslint-plugin-n: 17.15.1([email protected]([email protected]))
-      eslint-plugin-perfectionist: 4.9.0([email protected]([email protected]))([email protected])
+      '@eslint/eslintrc': 3.3.1
+      eslint: 9.27.0([email protected])
+      eslint-plugin-import-x: 4.13.3([email protected]([email protected]))([email protected])
+      eslint-plugin-n: 17.18.0([email protected]([email protected]))
+      eslint-plugin-perfectionist: 4.13.0([email protected]([email protected]))([email protected])
       eslint-plugin-prefer-let: 4.0.0
-      eslint-plugin-promise: 7.2.1([email protected]([email protected]))
-      typescript-eslint: 8.24.1([email protected]([email protected]))([email protected])
+      eslint-plugin-promise: 7.2.1([email protected]([email protected]))
+      globals: 16.2.0
+      typescript-eslint: 8.33.0([email protected]([email protected]))([email protected])
     transitivePeerDependencies:
-      - '@typescript-eslint/parser'
-      - eslint-import-resolver-typescript
-      - eslint-import-resolver-webpack
       - supports-color
       - typescript
 
+  '@napi-rs/[email protected]':
+    dependencies:
+      '@emnapi/core': 1.4.3
+      '@emnapi/runtime': 1.4.3
+      '@tybys/wasm-util': 0.9.0
+    optional: true
+
   '@nodelib/[email protected]':
     dependencies:
       '@nodelib/fs.stat': 2.0.5
@@ -1824,17 +1575,15 @@ snapshots:
   '@nodelib/[email protected]':
     dependencies:
       '@nodelib/fs.scandir': 2.1.5
-      fastq: 1.19.0
+      fastq: 1.19.1
 
   '@pkgjs/[email protected]':
     optional: true
 
-  '@rtsao/[email protected]': {}
-
   '@size-limit/[email protected]([email protected])':
     dependencies:
-      esbuild: 0.25.0
-      nanoid: 5.1.0
+      esbuild: 0.25.5
+      nanoid: 5.1.5
       size-limit: 11.2.0
 
   '@size-limit/[email protected]([email protected])':
@@ -1855,106 +1604,177 @@ snapshots:
 
   '@tsconfig/[email protected]': {}
 
-  '@types/[email protected]': {}
+  '@tybys/[email protected]':
+    dependencies:
+      tslib: 2.8.1
+    optional: true
+
+  '@types/[email protected]': {}
 
   '@types/[email protected]': {}
 
   '@types/[email protected]': {}
 
-  '@types/[email protected]': {}
-
-  '@types/[email protected]':
+  '@types/[email protected]':
     dependencies:
-      undici-types: 6.20.0
+      undici-types: 6.21.0
 
   '@types/[email protected]': {}
 
-  '@typescript-eslint/[email protected](@typescript-eslint/[email protected]([email protected]([email protected]))([email protected]))([email protected]([email protected]))([email protected])':
+  '@typescript-eslint/[email protected](@typescript-eslint/[email protected]([email protected]([email protected]))([email protected]))([email protected]([email protected]))([email protected])':
     dependencies:
       '@eslint-community/regexpp': 4.12.1
-      '@typescript-eslint/parser': 8.24.1([email protected]([email protected]))([email protected])
-      '@typescript-eslint/scope-manager': 8.24.1
-      '@typescript-eslint/type-utils': 8.24.1([email protected]([email protected]))([email protected])
-      '@typescript-eslint/utils': 8.24.1([email protected]([email protected]))([email protected])
-      '@typescript-eslint/visitor-keys': 8.24.1
-      eslint: 9.20.1([email protected])
+      '@typescript-eslint/parser': 8.33.0([email protected]([email protected]))([email protected])
+      '@typescript-eslint/scope-manager': 8.33.0
+      '@typescript-eslint/type-utils': 8.33.0([email protected]([email protected]))([email protected])
+      '@typescript-eslint/utils': 8.33.0([email protected]([email protected]))([email protected])
+      '@typescript-eslint/visitor-keys': 8.33.0
+      eslint: 9.27.0([email protected])
       graphemer: 1.4.0
-      ignore: 5.3.2
+      ignore: 7.0.4
       natural-compare: 1.4.0
-      ts-api-utils: 2.0.1([email protected])
-      typescript: 5.7.3
+      ts-api-utils: 2.1.0([email protected])
+      typescript: 5.8.3
+    transitivePeerDependencies:
+      - supports-color
+
+  '@typescript-eslint/[email protected]([email protected]([email protected]))([email protected])':
+    dependencies:
+      '@typescript-eslint/scope-manager': 8.33.0
+      '@typescript-eslint/types': 8.33.0
+      '@typescript-eslint/typescript-estree': 8.33.0([email protected])
+      '@typescript-eslint/visitor-keys': 8.33.0
+      debug: 4.4.1
+      eslint: 9.27.0([email protected])
+      typescript: 5.8.3
     transitivePeerDependencies:
       - supports-color
 
-  '@typescript-eslint/[email protected]([email protected]([email protected]))([email protected])':
+  '@typescript-eslint/[email protected]([email protected])':
     dependencies:
-      '@typescript-eslint/scope-manager': 8.24.1
-      '@typescript-eslint/types': 8.24.1
-      '@typescript-eslint/typescript-estree': 8.24.1([email protected])
-      '@typescript-eslint/visitor-keys': 8.24.1
-      debug: 4.4.0
-      eslint: 9.20.1([email protected])
-      typescript: 5.7.3
+      '@typescript-eslint/tsconfig-utils': 8.33.0([email protected])
+      '@typescript-eslint/types': 8.33.0
+      debug: 4.4.1
     transitivePeerDependencies:
       - supports-color
+      - typescript
 
-  '@typescript-eslint/[email protected]':
+  '@typescript-eslint/[email protected]':
     dependencies:
-      '@typescript-eslint/types': 8.24.1
-      '@typescript-eslint/visitor-keys': 8.24.1
+      '@typescript-eslint/types': 8.33.0
+      '@typescript-eslint/visitor-keys': 8.33.0
 
-  '@typescript-eslint/[email protected]([email protected]([email protected]))([email protected])':
+  '@typescript-eslint/[email protected]([email protected])':
     dependencies:
-      '@typescript-eslint/typescript-estree': 8.24.1([email protected])
-      '@typescript-eslint/utils': 8.24.1([email protected]([email protected]))([email protected])
-      debug: 4.4.0
-      eslint: 9.20.1([email protected])
-      ts-api-utils: 2.0.1([email protected])
-      typescript: 5.7.3
+      typescript: 5.8.3
+
+  '@typescript-eslint/[email protected]([email protected]([email protected]))([email protected])':
+    dependencies:
+      '@typescript-eslint/typescript-estree': 8.33.0([email protected])
+      '@typescript-eslint/utils': 8.33.0([email protected]([email protected]))([email protected])
+      debug: 4.4.1
+      eslint: 9.27.0([email protected])
+      ts-api-utils: 2.1.0([email protected])
+      typescript: 5.8.3
     transitivePeerDependencies:
       - supports-color
 
-  '@typescript-eslint/[email protected]': {}
+  '@typescript-eslint/[email protected]': {}
 
-  '@typescript-eslint/[email protected]([email protected])':
+  '@typescript-eslint/[email protected]([email protected])':
     dependencies:
-      '@typescript-eslint/types': 8.24.1
-      '@typescript-eslint/visitor-keys': 8.24.1
-      debug: 4.4.0
+      '@typescript-eslint/project-service': 8.33.0([email protected])
+      '@typescript-eslint/tsconfig-utils': 8.33.0([email protected])
+      '@typescript-eslint/types': 8.33.0
+      '@typescript-eslint/visitor-keys': 8.33.0
+      debug: 4.4.1
       fast-glob: 3.3.3
       is-glob: 4.0.3
       minimatch: 9.0.5
-      semver: 7.7.1
-      ts-api-utils: 2.0.1([email protected])
-      typescript: 5.7.3
+      semver: 7.7.2
+      ts-api-utils: 2.1.0([email protected])
+      typescript: 5.8.3
     transitivePeerDependencies:
       - supports-color
 
-  '@typescript-eslint/[email protected]([email protected]([email protected]))([email protected])':
+  '@typescript-eslint/[email protected]([email protected]([email protected]))([email protected])':
     dependencies:
-      '@eslint-community/eslint-utils': 4.4.1([email protected]([email protected]))
-      '@typescript-eslint/scope-manager': 8.24.1
-      '@typescript-eslint/types': 8.24.1
-      '@typescript-eslint/typescript-estree': 8.24.1([email protected])
-      eslint: 9.20.1([email protected])
-      typescript: 5.7.3
+      '@eslint-community/eslint-utils': 4.7.0([email protected]([email protected]))
+      '@typescript-eslint/scope-manager': 8.33.0
+      '@typescript-eslint/types': 8.33.0
+      '@typescript-eslint/typescript-estree': 8.33.0([email protected])
+      eslint: 9.27.0([email protected])
+      typescript: 5.8.3
     transitivePeerDependencies:
       - supports-color
 
-  '@typescript-eslint/[email protected]':
+  '@typescript-eslint/[email protected]':
     dependencies:
-      '@typescript-eslint/types': 8.24.1
+      '@typescript-eslint/types': 8.33.0
       eslint-visitor-keys: 4.2.0
 
-  [email protected]([email protected]):
+  '@unrs/[email protected]':
+    optional: true
+
+  '@unrs/[email protected]':
+    optional: true
+
+  '@unrs/[email protected]':
+    optional: true
+
+  '@unrs/[email protected]':
+    optional: true
+
+  '@unrs/[email protected]':
+    optional: true
+
+  '@unrs/[email protected]':
+    optional: true
+
+  '@unrs/[email protected]':
+    optional: true
+
+  '@unrs/[email protected]':
+    optional: true
+
+  '@unrs/[email protected]':
+    optional: true
+
+  '@unrs/[email protected]':
+    optional: true
+
+  '@unrs/[email protected]':
+    optional: true
+
+  '@unrs/[email protected]':
+    optional: true
+
+  '@unrs/[email protected]':
+    optional: true
+
+  '@unrs/[email protected]':
+    dependencies:
+      '@napi-rs/wasm-runtime': 0.2.10
+    optional: true
+
+  '@unrs/[email protected]':
+    optional: true
+
+  '@unrs/[email protected]':
+    optional: true
+
+  '@unrs/[email protected]':
+    optional: true
+
+  [email protected]([email protected]):
     dependencies:
-      acorn: 8.14.0
+      acorn: 8.14.1
 
   [email protected]:
     dependencies:
-      acorn: 8.14.0
+      acorn: 8.14.1
 
-  [email protected]: {}
+  [email protected]: {}
 
   [email protected]:
     dependencies:
@@ -1977,59 +1797,6 @@ snapshots:
 
   [email protected]: {}
 
-  [email protected]:
-    dependencies:
-      call-bound: 1.0.3
-      is-array-buffer: 3.0.5
-
-  [email protected]:
-    dependencies:
-      call-bind: 1.0.8
-      define-properties: 1.2.1
-      es-abstract: 1.23.9
-      es-object-atoms: 1.1.1
-      get-intrinsic: 1.2.7
-      is-string: 1.1.1
-
-  [email protected]:
-    dependencies:
-      call-bind: 1.0.8
-      define-properties: 1.2.1
-      es-abstract: 1.23.9
-      es-errors: 1.3.0
-      es-object-atoms: 1.1.1
-      es-shim-unscopables: 1.1.0
-
-  [email protected]:
-    dependencies:
-      call-bind: 1.0.8
-      define-properties: 1.2.1
-      es-abstract: 1.23.9
-      es-shim-unscopables: 1.1.0
-
-  [email protected]:
-    dependencies:
-      call-bind: 1.0.8
-      define-properties: 1.2.1
-      es-abstract: 1.23.9
-      es-shim-unscopables: 1.1.0
-
-  [email protected]:
-    dependencies:
-      array-buffer-byte-length: 1.0.2
-      call-bind: 1.0.8
-      define-properties: 1.2.1
-      es-abstract: 1.23.9
-      es-errors: 1.3.0
-      get-intrinsic: 1.2.7
-      is-array-buffer: 3.0.5
-
-  [email protected]: {}
-
-  [email protected]:
-    dependencies:
-      possible-typed-array-names: 1.1.0
-
   [email protected]: {}
 
   [email protected]:
@@ -2052,7 +1819,7 @@ snapshots:
       '@bcoe/v8-coverage': 1.0.2
       '@istanbuljs/schema': 0.1.3
       find-up: 5.0.0
-      foreground-child: 3.3.0
+      foreground-child: 3.3.1
       istanbul-lib-coverage: 3.2.2
       istanbul-lib-report: 3.0.1
       istanbul-reports: 3.1.7
@@ -2061,23 +1828,6 @@ snapshots:
       yargs: 17.7.2
       yargs-parser: 21.1.1
 
-  [email protected]:
-    dependencies:
-      es-errors: 1.3.0
-      function-bind: 1.1.2
-
-  [email protected]:
-    dependencies:
-      call-bind-apply-helpers: 1.0.2
-      es-define-property: 1.0.1
-      get-intrinsic: 1.2.7
-      set-function-length: 1.2.2
-
-  [email protected]:
-    dependencies:
-      call-bind-apply-helpers: 1.0.2
-      get-intrinsic: 1.2.7
-
   [email protected]: {}
 
   [email protected]:
@@ -2085,19 +1835,19 @@ snapshots:
       ansi-styles: 4.3.0
       supports-color: 7.2.0
 
-  [email protected]([email protected]):
+  [email protected]([email protected]):
     dependencies:
       fast-glob: 3.3.3
       nanospinner: 1.2.2
       picocolors: 1.1.1
-      typescript: 5.7.3
+      typescript: 5.8.3
       vfile-location: 5.0.3
 
   [email protected]:
     dependencies:
       readdirp: 4.1.2
 
-  [email protected]:
+  [email protected]:
     dependencies:
       cross-spawn: 7.0.6
       fast-glob: 3.3.3
@@ -2116,6 +1866,8 @@ snapshots:
 
   [email protected]: {}
 
+  [email protected]: {}
+
   [email protected]: {}
 
   [email protected]:
@@ -2132,62 +1884,22 @@ snapshots:
       shebang-command: 2.0.0
       which: 2.0.2
 
-  [email protected]:
-    dependencies:
-      call-bound: 1.0.3
-      es-errors: 1.3.0
-      is-data-view: 1.0.2
-
-  [email protected]:
-    dependencies:
-      call-bound: 1.0.3
-      es-errors: 1.3.0
-      is-data-view: 1.0.2
-
-  [email protected]:
-    dependencies:
-      call-bound: 1.0.3
-      es-errors: 1.3.0
-      is-data-view: 1.0.2
-
   [email protected]:
     dependencies:
       ms: 2.1.3
 
-  [email protected]:
+  [email protected]:
     dependencies:
       ms: 2.1.3
 
   [email protected]: {}
 
-  [email protected]:
-    dependencies:
-      es-define-property: 1.0.1
-      es-errors: 1.3.0
-      gopd: 1.2.0
-
-  [email protected]:
-    dependencies:
-      define-data-property: 1.1.4
-      has-property-descriptors: 1.0.2
-      object-keys: 1.1.1
-
   [email protected]: {}
 
   [email protected]: {}
 
   [email protected]: {}
 
-  [email protected]:
-    dependencies:
-      esutils: 2.0.3
-
-  [email protected]:
-    dependencies:
-      call-bind-apply-helpers: 1.0.2
-      es-errors: 1.3.0
-      gopd: 1.2.0
-
   [email protected]: {}
 
   [email protected]: {}
@@ -2197,130 +1909,51 @@ snapshots:
   [email protected]:
     dependencies:
       graceful-fs: 4.2.11
-      tapable: 2.2.1
-
-  [email protected]:
-    dependencies:
-      array-buffer-byte-length: 1.0.2
-      arraybuffer.prototype.slice: 1.0.4
-      available-typed-arrays: 1.0.7
-      call-bind: 1.0.8
-      call-bound: 1.0.3
-      data-view-buffer: 1.0.2
-      data-view-byte-length: 1.0.2
-      data-view-byte-offset: 1.0.1
-      es-define-property: 1.0.1
-      es-errors: 1.3.0
-      es-object-atoms: 1.1.1
-      es-set-tostringtag: 2.1.0
-      es-to-primitive: 1.3.0
-      function.prototype.name: 1.1.8
-      get-intrinsic: 1.2.7
-      get-proto: 1.0.1
-      get-symbol-description: 1.1.0
-      globalthis: 1.0.4
-      gopd: 1.2.0
-      has-property-descriptors: 1.0.2
-      has-proto: 1.2.0
-      has-symbols: 1.1.0
-      hasown: 2.0.2
-      internal-slot: 1.1.0
-      is-array-buffer: 3.0.5
-      is-callable: 1.2.7
-      is-data-view: 1.0.2
-      is-regex: 1.2.1
-      is-shared-array-buffer: 1.0.4
-      is-string: 1.1.1
-      is-typed-array: 1.1.15
-      is-weakref: 1.1.1
-      math-intrinsics: 1.1.0
-      object-inspect: 1.13.4
-      object-keys: 1.1.1
-      object.assign: 4.1.7
-      own-keys: 1.0.1
-      regexp.prototype.flags: 1.5.4
-      safe-array-concat: 1.1.3
-      safe-push-apply: 1.0.0
-      safe-regex-test: 1.1.0
-      set-proto: 1.0.0
-      string.prototype.trim: 1.2.10
-      string.prototype.trimend: 1.0.9
-      string.prototype.trimstart: 1.0.8
-      typed-array-buffer: 1.0.3
-      typed-array-byte-length: 1.0.3
-      typed-array-byte-offset: 1.0.4
-      typed-array-length: 1.0.7
-      unbox-primitive: 1.1.0
-      which-typed-array: 1.1.18
-
-  [email protected]: {}
-
-  [email protected]: {}
-
-  [email protected]:
-    dependencies:
-      es-errors: 1.3.0
-
-  [email protected]:
-    dependencies:
-      es-errors: 1.3.0
-      get-intrinsic: 1.2.7
-      has-tostringtag: 1.0.2
-      hasown: 2.0.2
-
-  [email protected]:
-    dependencies:
-      hasown: 2.0.2
+      tapable: 2.2.2
 
-  [email protected]:
-    dependencies:
-      is-callable: 1.2.7
-      is-date-object: 1.1.0
-      is-symbol: 1.1.1
-
-  [email protected]:
+  [email protected]:
     optionalDependencies:
-      '@esbuild/aix-ppc64': 0.25.0
-      '@esbuild/android-arm': 0.25.0
-      '@esbuild/android-arm64': 0.25.0
-      '@esbuild/android-x64': 0.25.0
-      '@esbuild/darwin-arm64': 0.25.0
-      '@esbuild/darwin-x64': 0.25.0
-      '@esbuild/freebsd-arm64': 0.25.0
-      '@esbuild/freebsd-x64': 0.25.0
-      '@esbuild/linux-arm': 0.25.0
-      '@esbuild/linux-arm64': 0.25.0
-      '@esbuild/linux-ia32': 0.25.0
-      '@esbuild/linux-loong64': 0.25.0
-      '@esbuild/linux-mips64el': 0.25.0
-      '@esbuild/linux-ppc64': 0.25.0
-      '@esbuild/linux-riscv64': 0.25.0
-      '@esbuild/linux-s390x': 0.25.0
-      '@esbuild/linux-x64': 0.25.0
-      '@esbuild/netbsd-arm64': 0.25.0
-      '@esbuild/netbsd-x64': 0.25.0
-      '@esbuild/openbsd-arm64': 0.25.0
-      '@esbuild/openbsd-x64': 0.25.0
-      '@esbuild/sunos-x64': 0.25.0
-      '@esbuild/win32-arm64': 0.25.0
-      '@esbuild/win32-ia32': 0.25.0
-      '@esbuild/win32-x64': 0.25.0
+      '@esbuild/aix-ppc64': 0.25.5
+      '@esbuild/android-arm': 0.25.5
+      '@esbuild/android-arm64': 0.25.5
+      '@esbuild/android-x64': 0.25.5
+      '@esbuild/darwin-arm64': 0.25.5
+      '@esbuild/darwin-x64': 0.25.5
+      '@esbuild/freebsd-arm64': 0.25.5
+      '@esbuild/freebsd-x64': 0.25.5
+      '@esbuild/linux-arm': 0.25.5
+      '@esbuild/linux-arm64': 0.25.5
+      '@esbuild/linux-ia32': 0.25.5
+      '@esbuild/linux-loong64': 0.25.5
+      '@esbuild/linux-mips64el': 0.25.5
+      '@esbuild/linux-ppc64': 0.25.5
+      '@esbuild/linux-riscv64': 0.25.5
+      '@esbuild/linux-s390x': 0.25.5
+      '@esbuild/linux-x64': 0.25.5
+      '@esbuild/netbsd-arm64': 0.25.5
+      '@esbuild/netbsd-x64': 0.25.5
+      '@esbuild/openbsd-arm64': 0.25.5
+      '@esbuild/openbsd-x64': 0.25.5
+      '@esbuild/sunos-x64': 0.25.5
+      '@esbuild/win32-arm64': 0.25.5
+      '@esbuild/win32-ia32': 0.25.5
+      '@esbuild/win32-x64': 0.25.5
 
   [email protected]: {}
 
   [email protected]: {}
 
-  [email protected]([email protected]([email protected])):
+  [email protected]([email protected]([email protected])):
     dependencies:
-      eslint: 9.20.1([email protected])
-      semver: 7.7.1
+      eslint: 9.27.0([email protected])
+      semver: 7.7.2
 
-  [email protected]([email protected](@typescript-eslint/[email protected]([email protected]([email protected]))([email protected]))([email protected]([email protected])))([email protected]([email protected]([email protected])))([email protected]([email protected]([email protected])))([email protected]([email protected])):
+  [email protected]([email protected]):
     dependencies:
-      eslint: 9.20.1([email protected])
-      eslint-plugin-import: 2.31.0(@typescript-eslint/[email protected]([email protected]([email protected]))([email protected]))([email protected]([email protected]))
-      eslint-plugin-n: 17.15.1([email protected]([email protected]))
-      eslint-plugin-promise: 7.2.1([email protected]([email protected]))
+      get-tsconfig: 4.10.1
+      stable-hash: 0.0.5
+    optionalDependencies:
+      unrs-resolver: 1.7.7
 
   [email protected]:
     dependencies:
@@ -2330,69 +1963,48 @@ snapshots:
     transitivePeerDependencies:
       - supports-color
 
-  [email protected](@typescript-eslint/[email protected]([email protected]([email protected]))([email protected]))([email protected])([email protected]([email protected])):
-    dependencies:
-      debug: 3.2.7
-    optionalDependencies:
-      '@typescript-eslint/parser': 8.24.1([email protected]([email protected]))([email protected])
-      eslint: 9.20.1([email protected])
-      eslint-import-resolver-node: 0.3.9
-    transitivePeerDependencies:
-      - supports-color
-
-  [email protected]([email protected]([email protected])):
+  [email protected]([email protected]([email protected])):
     dependencies:
-      '@eslint-community/eslint-utils': 4.4.1([email protected]([email protected]))
+      '@eslint-community/eslint-utils': 4.7.0([email protected]([email protected]))
       '@eslint-community/regexpp': 4.12.1
-      eslint: 9.20.1([email protected])
-      eslint-compat-utils: 0.5.1([email protected]([email protected]))
+      eslint: 9.27.0([email protected])
+      eslint-compat-utils: 0.5.1([email protected]([email protected]))
 
-  [email protected](@typescript-eslint/[email protected]([email protected]([email protected]))([email protected]))([email protected]([email protected])):
+  [email protected]([email protected]([email protected]))([email protected]):
     dependencies:
-      '@rtsao/scc': 1.1.0
-      array-includes: 3.1.8
-      array.prototype.findlastindex: 1.2.5
-      array.prototype.flat: 1.3.3
-      array.prototype.flatmap: 1.3.3
-      debug: 3.2.7
-      doctrine: 2.1.0
-      eslint: 9.20.1([email protected])
+      '@typescript-eslint/utils': 8.33.0([email protected]([email protected]))([email protected])
+      comment-parser: 1.4.1
+      debug: 4.4.1
+      eslint: 9.27.0([email protected])
+      eslint-import-context: 0.1.6([email protected])
       eslint-import-resolver-node: 0.3.9
-      eslint-module-utils: 2.12.0(@typescript-eslint/[email protected]([email protected]([email protected]))([email protected]))([email protected])([email protected]([email protected]))
-      hasown: 2.0.2
-      is-core-module: 2.16.1
       is-glob: 4.0.3
-      minimatch: 3.1.2
-      object.fromentries: 2.0.8
-      object.groupby: 1.0.3
-      object.values: 1.2.1
-      semver: 6.3.1
-      string.prototype.trimend: 1.0.9
-      tsconfig-paths: 3.15.0
-    optionalDependencies:
-      '@typescript-eslint/parser': 8.24.1([email protected]([email protected]))([email protected])
+      minimatch: 10.0.1
+      semver: 7.7.2
+      stable-hash: 0.0.5
+      tslib: 2.8.1
+      unrs-resolver: 1.7.7
     transitivePeerDependencies:
-      - eslint-import-resolver-typescript
-      - eslint-import-resolver-webpack
       - supports-color
+      - typescript
 
-  [email protected]([email protected]([email protected])):
+  [email protected]([email protected]([email protected])):
     dependencies:
-      '@eslint-community/eslint-utils': 4.4.1([email protected]([email protected]))
+      '@eslint-community/eslint-utils': 4.7.0([email protected]([email protected]))
       enhanced-resolve: 5.18.1
-      eslint: 9.20.1([email protected])
-      eslint-plugin-es-x: 7.8.0([email protected]([email protected]))
-      get-tsconfig: 4.10.0
+      eslint: 9.27.0([email protected])
+      eslint-plugin-es-x: 7.8.0([email protected]([email protected]))
+      get-tsconfig: 4.10.1
       globals: 15.15.0
       ignore: 5.3.2
       minimatch: 9.0.5
-      semver: 7.7.1
+      semver: 7.7.2
 
-  [email protected]([email protected]([email protected]))([email protected]):
+  [email protected]([email protected]([email protected]))([email protected]):
     dependencies:
-      '@typescript-eslint/types': 8.24.1
-      '@typescript-eslint/utils': 8.24.1([email protected]([email protected]))([email protected])
-      eslint: 9.20.1([email protected])
+      '@typescript-eslint/types': 8.33.0
+      '@typescript-eslint/utils': 8.33.0([email protected]([email protected]))([email protected])
+      eslint: 9.27.0([email protected])
       natural-orderby: 5.0.0
     transitivePeerDependencies:
       - supports-color
@@ -2402,12 +2014,12 @@ snapshots:
     dependencies:
       requireindex: 1.2.0
 
-  [email protected]([email protected]([email protected])):
+  [email protected]([email protected]([email protected])):
     dependencies:
-      '@eslint-community/eslint-utils': 4.4.1([email protected]([email protected]))
-      eslint: 9.20.1([email protected])
+      '@eslint-community/eslint-utils': 4.7.0([email protected]([email protected]))
+      eslint: 9.27.0([email protected])
 
-  [email protected]:
+  [email protected]:
     dependencies:
       esrecurse: 4.3.0
       estraverse: 5.3.0
@@ -2416,26 +2028,27 @@ snapshots:
 
   [email protected]: {}
 
-  [email protected]([email protected]):
+  [email protected]([email protected]):
     dependencies:
-      '@eslint-community/eslint-utils': 4.4.1([email protected]([email protected]))
+      '@eslint-community/eslint-utils': 4.7.0([email protected]([email protected]))
       '@eslint-community/regexpp': 4.12.1
-      '@eslint/config-array': 0.19.2
-      '@eslint/core': 0.11.0
-      '@eslint/eslintrc': 3.2.0
-      '@eslint/js': 9.20.0
-      '@eslint/plugin-kit': 0.2.6
+      '@eslint/config-array': 0.20.0
+      '@eslint/config-helpers': 0.2.2
+      '@eslint/core': 0.14.0
+      '@eslint/eslintrc': 3.3.1
+      '@eslint/js': 9.27.0
+      '@eslint/plugin-kit': 0.3.1
       '@humanfs/node': 0.16.6
       '@humanwhocodes/module-importer': 1.0.1
-      '@humanwhocodes/retry': 0.4.1
-      '@types/estree': 1.0.6
+      '@humanwhocodes/retry': 0.4.3
+      '@types/estree': 1.0.7
       '@types/json-schema': 7.0.15
       ajv: 6.12.6
       chalk: 4.1.2
       cross-spawn: 7.0.6
-      debug: 4.4.0
+      debug: 4.4.1
       escape-string-regexp: 4.0.0
-      eslint-scope: 8.2.0
+      eslint-scope: 8.3.0
       eslint-visitor-keys: 4.2.0
       espree: 10.3.0
       esquery: 1.6.0
@@ -2459,8 +2072,8 @@ snapshots:
 
   [email protected]:
     dependencies:
-      acorn: 8.14.0
-      acorn-jsx: 5.3.2([email protected])
+      acorn: 8.14.1
+      acorn-jsx: 5.3.2([email protected])
       eslint-visitor-keys: 4.2.0
 
   [email protected]:
@@ -2489,11 +2102,11 @@ snapshots:
 
   [email protected]: {}
 
-  [email protected]:
+  [email protected]:
     dependencies:
-      reusify: 1.0.4
+      reusify: 1.1.0
 
-  [email protected]([email protected]):
+  [email protected]([email protected]):
     optionalDependencies:
       picomatch: 4.0.2
 
@@ -2517,55 +2130,16 @@ snapshots:
 
   [email protected]: {}
 
-  [email protected]:
-    dependencies:
-      is-callable: 1.2.7
-
-  [email protected]:
+  [email protected]:
     dependencies:
       cross-spawn: 7.0.6
       signal-exit: 4.1.0
 
   [email protected]: {}
 
-  [email protected]:
-    dependencies:
-      call-bind: 1.0.8
-      call-bound: 1.0.3
-      define-properties: 1.2.1
-      functions-have-names: 1.2.3
-      hasown: 2.0.2
-      is-callable: 1.2.7
-
-  [email protected]: {}
-
   [email protected]: {}
 
-  [email protected]:
-    dependencies:
-      call-bind-apply-helpers: 1.0.2
-      es-define-property: 1.0.1
-      es-errors: 1.3.0
-      es-object-atoms: 1.1.1
-      function-bind: 1.1.2
-      get-proto: 1.0.1
-      gopd: 1.2.0
-      has-symbols: 1.1.0
-      hasown: 2.0.2
-      math-intrinsics: 1.1.0
-
-  [email protected]:
-    dependencies:
-      dunder-proto: 1.0.1
-      es-object-atoms: 1.1.1
-
-  [email protected]:
-    dependencies:
-      call-bound: 1.0.3
-      es-errors: 1.3.0
-      get-intrinsic: 1.2.7
-
-  [email protected]:
+  [email protected]:
     dependencies:
       resolve-pkg-maps: 1.0.0
 
@@ -2579,7 +2153,7 @@ snapshots:
 
   [email protected]:
     dependencies:
-      foreground-child: 3.3.0
+      foreground-child: 3.3.1
       jackspeak: 3.4.3
       minimatch: 9.0.5
       minipass: 7.1.2
@@ -2590,35 +2164,14 @@ snapshots:
 
   [email protected]: {}
 
-  [email protected]:
-    dependencies:
-      define-properties: 1.2.1
-      gopd: 1.2.0
-
-  [email protected]: {}
+  [email protected]: {}
 
   [email protected]: {}
 
   [email protected]: {}
 
-  [email protected]: {}
-
   [email protected]: {}
 
-  [email protected]:
-    dependencies:
-      es-define-property: 1.0.1
-
-  [email protected]:
-    dependencies:
-      dunder-proto: 1.0.1
-
-  [email protected]: {}
-
-  [email protected]:
-    dependencies:
-      has-symbols: 1.1.0
-
   [email protected]:
     dependencies:
       function-bind: 1.1.2
@@ -2627,6 +2180,8 @@ snapshots:
 
   [email protected]: {}
 
+  [email protected]: {}
+
   [email protected]:
     dependencies:
       parent-module: 1.0.1
@@ -2634,121 +2189,20 @@ snapshots:
 
   [email protected]: {}
 
-  [email protected]:
-    dependencies:
-      es-errors: 1.3.0
-      hasown: 2.0.2
-      side-channel: 1.1.0
-
-  [email protected]:
-    dependencies:
-      call-bind: 1.0.8
-      call-bound: 1.0.3
-      get-intrinsic: 1.2.7
-
-  [email protected]:
-    dependencies:
-      async-function: 1.0.0
-      call-bound: 1.0.3
-      get-proto: 1.0.1
-      has-tostringtag: 1.0.2
-      safe-regex-test: 1.1.0
-
-  [email protected]:
-    dependencies:
-      has-bigints: 1.1.0
-
-  [email protected]:
-    dependencies:
-      call-bound: 1.0.3
-      has-tostringtag: 1.0.2
-
-  [email protected]: {}
-
   [email protected]:
     dependencies:
       hasown: 2.0.2
 
-  [email protected]:
-    dependencies:
-      call-bound: 1.0.3
-      get-intrinsic: 1.2.7
-      is-typed-array: 1.1.15
-
-  [email protected]:
-    dependencies:
-      call-bound: 1.0.3
-      has-tostringtag: 1.0.2
-
   [email protected]: {}
 
-  [email protected]:
-    dependencies:
-      call-bound: 1.0.3
-
   [email protected]: {}
 
-  [email protected]:
-    dependencies:
-      call-bound: 1.0.3
-      get-proto: 1.0.1
-      has-tostringtag: 1.0.2
-      safe-regex-test: 1.1.0
-
   [email protected]:
     dependencies:
       is-extglob: 2.1.1
 
-  [email protected]: {}
-
-  [email protected]:
-    dependencies:
-      call-bound: 1.0.3
-      has-tostringtag: 1.0.2
-
   [email protected]: {}
 
-  [email protected]:
-    dependencies:
-      call-bound: 1.0.3
-      gopd: 1.2.0
-      has-tostringtag: 1.0.2
-      hasown: 2.0.2
-
-  [email protected]: {}
-
-  [email protected]:
-    dependencies:
-      call-bound: 1.0.3
-
-  [email protected]:
-    dependencies:
-      call-bound: 1.0.3
-      has-tostringtag: 1.0.2
-
-  [email protected]:
-    dependencies:
-      call-bound: 1.0.3
-      has-symbols: 1.1.0
-      safe-regex-test: 1.1.0
-
-  [email protected]:
-    dependencies:
-      which-typed-array: 1.1.18
-
-  [email protected]: {}
-
-  [email protected]:
-    dependencies:
-      call-bound: 1.0.3
-
-  [email protected]:
-    dependencies:
-      call-bound: 1.0.3
-      get-intrinsic: 1.2.7
-
-  [email protected]: {}
-
   [email protected]: {}
 
   [email protected]: {}
@@ -2782,10 +2236,6 @@ snapshots:
 
   [email protected]: {}
 
-  [email protected]:
-    dependencies:
-      minimist: 1.2.8
-
   [email protected]:
     dependencies:
       json-buffer: 3.0.1
@@ -2809,12 +2259,10 @@ snapshots:
 
   [email protected]:
     dependencies:
-      semver: 7.7.1
+      semver: 7.7.2
 
   [email protected]: {}
 
-  [email protected]: {}
-
   [email protected]: {}
 
   [email protected]:
@@ -2822,6 +2270,10 @@ snapshots:
       braces: 3.0.3
       picomatch: 2.3.1
 
+  [email protected]:
+    dependencies:
+      brace-expansion: 2.0.1
+
   [email protected]:
     dependencies:
       brace-expansion: 1.1.11
@@ -2830,8 +2282,6 @@ snapshots:
     dependencies:
       brace-expansion: 2.0.1
 
-  [email protected]: {}
-
   [email protected]: {}
 
   [email protected]: {}
@@ -2840,9 +2290,9 @@ snapshots:
 
   [email protected]: {}
 
-  [email protected]: {}
+  [email protected]: {}
 
-  [email protected]: {}
+  [email protected]: {}
 
   [email protected]:
     dependencies:
@@ -2850,43 +2300,12 @@ snapshots:
 
   [email protected]: {}
 
+  [email protected]: {}
+
   [email protected]: {}
 
   [email protected]: {}
 
-  [email protected]: {}
-
-  [email protected]: {}
-
-  [email protected]:
-    dependencies:
-      call-bind: 1.0.8
-      call-bound: 1.0.3
-      define-properties: 1.2.1
-      es-object-atoms: 1.1.1
-      has-symbols: 1.1.0
-      object-keys: 1.1.1
-
-  [email protected]:
-    dependencies:
-      call-bind: 1.0.8
-      define-properties: 1.2.1
-      es-abstract: 1.23.9
-      es-object-atoms: 1.1.1
-
-  [email protected]:
-    dependencies:
-      call-bind: 1.0.8
-      define-properties: 1.2.1
-      es-abstract: 1.23.9
-
-  [email protected]:
-    dependencies:
-      call-bind: 1.0.8
-      call-bound: 1.0.3
-      define-properties: 1.2.1
-      es-object-atoms: 1.1.1
-
   [email protected]:
     dependencies:
       deep-is: 0.1.4
@@ -2896,12 +2315,6 @@ snapshots:
       type-check: 0.4.0
       word-wrap: 1.2.5
 
-  [email protected]:
-    dependencies:
-      get-intrinsic: 1.2.7
-      object-keys: 1.1.1
-      safe-push-apply: 1.0.0
-
   [email protected]:
     dependencies:
       yocto-queue: 0.1.0
@@ -2933,8 +2346,6 @@ snapshots:
 
   [email protected]: {}
 
-  [email protected]: {}
-
   [email protected]:
     dependencies:
       picocolors: 1.1.1
@@ -2947,26 +2358,6 @@ snapshots:
 
   [email protected]: {}
 
-  [email protected]:
-    dependencies:
-      call-bind: 1.0.8
-      define-properties: 1.2.1
-      es-abstract: 1.23.9
-      es-errors: 1.3.0
-      es-object-atoms: 1.1.1
-      get-intrinsic: 1.2.7
-      get-proto: 1.0.1
-      which-builtin-type: 1.2.1
-
-  [email protected]:
-    dependencies:
-      call-bind: 1.0.8
-      define-properties: 1.2.1
-      es-errors: 1.3.0
-      get-proto: 1.0.1
-      gopd: 1.2.0
-      set-function-name: 2.0.2
-
   [email protected]: {}
 
   [email protected]: {}
@@ -2981,7 +2372,7 @@ snapshots:
       path-parse: 1.0.7
       supports-preserve-symlinks-flag: 1.0.0
 
-  [email protected]: {}
+  [email protected]: {}
 
   [email protected]:
     dependencies:
@@ -2991,50 +2382,7 @@ snapshots:
     dependencies:
       mri: 1.2.0
 
-  [email protected]:
-    dependencies:
-      call-bind: 1.0.8
-      call-bound: 1.0.3
-      get-intrinsic: 1.2.7
-      has-symbols: 1.1.0
-      isarray: 2.0.5
-
-  [email protected]:
-    dependencies:
-      es-errors: 1.3.0
-      isarray: 2.0.5
-
-  [email protected]:
-    dependencies:
-      call-bound: 1.0.3
-      es-errors: 1.3.0
-      is-regex: 1.2.1
-
-  [email protected]: {}
-
-  [email protected]: {}
-
-  [email protected]:
-    dependencies:
-      define-data-property: 1.1.4
-      es-errors: 1.3.0
-      function-bind: 1.1.2
-      get-intrinsic: 1.2.7
-      gopd: 1.2.0
-      has-property-descriptors: 1.0.2
-
-  [email protected]:
-    dependencies:
-      define-data-property: 1.1.4
-      es-errors: 1.3.0
-      functions-have-names: 1.2.3
-      has-property-descriptors: 1.0.2
-
-  [email protected]:
-    dependencies:
-      dunder-proto: 1.0.1
-      es-errors: 1.3.0
-      es-object-atoms: 1.1.1
+  [email protected]: {}
 
   [email protected]:
     dependencies:
@@ -3042,37 +2390,9 @@ snapshots:
 
   [email protected]: {}
 
-  [email protected]:
-    dependencies:
-      es-errors: 1.3.0
-      object-inspect: 1.13.4
-
-  [email protected]:
-    dependencies:
-      call-bound: 1.0.3
-      es-errors: 1.3.0
-      get-intrinsic: 1.2.7
-      object-inspect: 1.13.4
-
-  [email protected]:
-    dependencies:
-      call-bound: 1.0.3
-      es-errors: 1.3.0
-      get-intrinsic: 1.2.7
-      object-inspect: 1.13.4
-      side-channel-map: 1.0.1
-
-  [email protected]:
-    dependencies:
-      es-errors: 1.3.0
-      object-inspect: 1.13.4
-      side-channel-list: 1.0.0
-      side-channel-map: 1.0.1
-      side-channel-weakmap: 1.0.2
-
   [email protected]: {}
 
-  [email protected]: {}
+  [email protected]: {}
 
   [email protected]:
     dependencies:
@@ -3082,12 +2402,14 @@ snapshots:
       lilconfig: 3.1.3
       nanos,pinner: 1.2.2
       picocolors: 1.1.1
-      tinyglobby: 0.2.11
+      tinyglobby: 0.2.14
 
   [email protected]: {}
 
   [email protected]: {}
 
+  [email protected]: {}
+
   [email protected]:
     dependencies:
       emoji-regex: 8.0.0
@@ -3100,29 +2422,6 @@ snapshots:
       emoji-regex: 9.2.2
       strip-ansi: 7.1.0
 
-  [email protected]:
-    dependencies:
-      call-bind: 1.0.8
-      call-bound: 1.0.3
-      define-data-property: 1.1.4
-      define-properties: 1.2.1
-      es-abstract: 1.23.9
-      es-object-atoms: 1.1.1
-      has-property-descriptors: 1.0.2
-
-  [email protected]:
-    dependencies:
-      call-bind: 1.0.8
-      call-bound: 1.0.3
-      define-properties: 1.2.1
-      es-object-atoms: 1.1.1
-
-  [email protected]:
-    dependencies:
-      call-bind: 1.0.8
-      define-properties: 1.2.1
-      es-object-atoms: 1.1.1
-
   [email protected]:
     dependencies:
       ansi-regex: 5.0.1
@@ -3131,8 +2430,6 @@ snapshots:
     dependencies:
       ansi-regex: 6.1.0
 
-  [email protected]: {}
-
   [email protected]: {}
 
   [email protected]:
@@ -3141,7 +2438,7 @@ snapshots:
 
   [email protected]: {}
 
-  [email protected]: {}
+  [email protected]: {}
 
   [email protected]:
     dependencies:
@@ -3149,106 +2446,83 @@ snapshots:
       glob: 10.4.5
       minimatch: 9.0.5
 
-  [email protected]:
+  [email protected]:
     dependencies:
-      fdir: 6.4.3([email protected])
+      fdir: 6.4.5([email protected])
       picomatch: 4.0.2
 
   [email protected]:
     dependencies:
       is-number: 7.0.0
 
-  [email protected]([email protected]):
+  [email protected]([email protected]):
     dependencies:
-      typescript: 5.7.3
+      typescript: 5.8.3
 
-  [email protected](@types/[email protected])([email protected]):
+  [email protected](@types/[email protected])([email protected]):
     dependencies:
       '@cspotcode/source-map-support': 0.8.1
       '@tsconfig/node10': 1.0.11
       '@tsconfig/node12': 1.0.11
       '@tsconfig/node14': 1.0.3
       '@tsconfig/node16': 1.0.4
-      '@types/node': 22.13.4
-      acorn: 8.14.0
+      '@types/node': 22.15.24
+      acorn: 8.14.1
       acorn-walk: 8.3.4
       arg: 4.1.3
       create-require: 1.1.1
       diff: 4.0.2
       make-error: 1.3.6
-      typescript: 5.7.3
+      typescript: 5.8.3
       v8-compile-cache-lib: 3.0.1
       yn: 3.1.1
 
-  [email protected]:
-    dependencies:
-      '@types/json5': 0.0.29
-      json5: 1.0.2
-      minimist: 1.2.8
-      strip-bom: 3.0.0
+  [email protected]: {}
 
   [email protected]:
     dependencies:
       prelude-ls: 1.2.1
 
-  [email protected]:
-    dependencies:
-      call-bound: 1.0.3
-      es-errors: 1.3.0
-      is-typed-array: 1.1.15
-
-  [email protected]:
-    dependencies:
-      call-bind: 1.0.8
-      for-each: 0.3.5
-      gopd: 1.2.0
-      has-proto: 1.2.0
-      is-typed-array: 1.1.15
-
-  [email protected]:
-    dependencies:
-      available-typed-arrays: 1.0.7
-      call-bind: 1.0.8
-      for-each: 0.3.5
-      gopd: 1.2.0
-      has-proto: 1.2.0
-      is-typed-array: 1.1.15
-      reflect.getprototypeof: 1.0.10
-
-  [email protected]:
+  [email protected]([email protected]([email protected]))([email protected]):
     dependencies:
-      call-bind: 1.0.8
-      for-each: 0.3.5
-      gopd: 1.2.0
-      is-typed-array: 1.1.15
-      possible-typed-array-names: 1.1.0
-      reflect.getprototypeof: 1.0.10
-
-  [email protected]([email protected]([email protected]))([email protected]):
-    dependencies:
-      '@typescript-eslint/eslint-plugin': 8.24.1(@typescript-eslint/[email protected]([email protected]([email protected]))([email protected]))([email protected]([email protected]))([email protected])
-      '@typescript-eslint/parser': 8.24.1([email protected]([email protected]))([email protected])
-      '@typescript-eslint/utils': 8.24.1([email protected]([email protected]))([email protected])
-      eslint: 9.20.1([email protected])
-      typescript: 5.7.3
+      '@typescript-eslint/eslint-plugin': 8.33.0(@typescript-eslint/[email protected]([email protected]([email protected]))([email protected]))([email protected]([email protected]))([email protected])
+      '@typescript-eslint/parser': 8.33.0([email protected]([email protected]))([email protected])
+      '@typescript-eslint/utils': 8.33.0([email protected]([email protected]))([email protected])
+      eslint: 9.27.0([email protected])
+      typescript: 5.8.3
     transitivePeerDependencies:
       - supports-color
 
-  [email protected]: {}
-
-  [email protected]:
-    dependencies:
-      call-bound: 1.0.3
-      has-bigints: 1.1.0
-      has-symbols: 1.1.0
-      which-boxed-primitive: 1.1.1
+  [email protected]: {}
 
-  [email protected]: {}
+  [email protected]: {}
 
   [email protected]:
     dependencies:
       '@types/unist': 3.0.3
 
+  [email protected]:
+    dependencies:
+      napi-postinstall: 0.2.4
+    optionalDependencies:
+      '@unrs/resolver-binding-darwin-arm64': 1.7.7
+      '@unrs/resolver-binding-darwin-x64': 1.7.7
+      '@unrs/resolver-binding-freebsd-x64': 1.7.7
+      '@unrs/resolver-binding-linux-arm-gnueabihf': 1.7.7
+      '@unrs/resolver-binding-linux-arm-musleabihf': 1.7.7
+      '@unrs/resolver-binding-linux-arm64-gnu': 1.7.7
+      '@unrs/resolver-binding-linux-arm64-musl': 1.7.7
+      '@unrs/resolver-binding-linux-ppc64-gnu': 1.7.7
+      '@unrs/resolver-binding-linux-riscv64-gnu': 1.7.7
+      '@unrs/resolver-binding-linux-riscv64-musl': 1.7.7
+      '@unrs/resolver-binding-linux-s390x-gnu': 1.7.7
+      '@unrs/resolver-binding-linux-x64-gnu': 1.7.7
+      '@unrs/resolver-binding-linux-x64-musl': 1.7.7
+      '@unrs/resolver-binding-wasm32-wasi': 1.7.7
+      '@unrs/resolver-binding-win32-arm64-msvc': 1.7.7
+      '@unrs/resolver-binding-win32-ia32-msvc': 1.7.7
+      '@unrs/resolver-binding-win32-x64-msvc': 1.7.7
+
   [email protected]:
     dependencies:
       punycode: 2.3.1
@@ -3283,46 +2557,6 @@ snapshots:
       '@types/unist': 3.0.3
       vfile-message: 4.0.2
 
-  [email protected]:
-    dependencies:
-      is-bigint: 1.1.0
-      is-boolean-object: 1.2.2
-      is-number-object: 1.1.1
-      is-string: 1.1.1
-      is-symbol: 1.1.1
-
-  [email protected]:
-    dependencies:
-      call-bound: 1.0.3
-      function.prototype.name: 1.1.8
-      has-tostringtag: 1.0.2
-      is-async-function: 2.1.1
-      is-date-object: 1.1.0
-      is-finalizationregistry: 1.1.1
-      is-generator-function: 1.1.0
-      is-regex: 1.2.1
-      is-weakref: 1.1.1
-      isarray: 2.0.5
-      which-boxed-primitive: 1.1.1
-      which-collection: 1.0.2
-      which-typed-array: 1.1.18
-
-  [email protected]:
-    dependencies:
-      is-map: 2.0.3
-      is-set: 2.0.3
-      is-weakmap: 2.0.2
-      is-weakset: 2.0.4
-
-  [email protected]:
-    dependencies:
-      available-typed-arrays: 1.0.7
-      call-bind: 1.0.8
-      call-bound: 1.0.3
-      for-each: 0.3.5
-      gopd: 1.2.0
-      has-tostringtag: 1.0.2
-
   [email protected]:
     dependencies:
       isexe: 2.0.0
diff --git test/css-syntax-error.test.ts test/css-syntax-error.test.ts
index 8e1e9beaa..0467896c1 100755
--- test/css-syntax-error.test.ts
+++ test/css-syntax-error.test.ts
@@ -55,13 +55,17 @@ test('saves source', () => {
   is(error.reason, 'Unclosed string')
   is(error.line, 2)
   is(error.column, 12)
+  is(error.endLine, undefined)
+  is(error.endColumn, undefined)
   is(error.source, 'a {\n  content: "\n}')
 
   equal(error.input, {
     column: error.column,
     endColumn: error.endColumn,
     endLine: error.endLine,
+    endOffset: undefined,
     line: error.line,
+    offset: 15,
     source: error.source
   })
 })
@@ -83,7 +87,9 @@ test('saves source with ranges', () => {
     column: error.column,
     endColumn: error.endColumn,
     endLine: error.endLine,
+    endOffset: 7,
     line: error.line,
+    offset: 0,
     source: error.source
   })
 })
@@ -109,7 +115,9 @@ test('saves source with ranges', () => {
     column: error.column,
     endColumn: error.endColumn,
     endLine: error.endLine,
+    endOffset: 7,
     line: error.line,
+    offset: 0,
     source: error.source
   })
 })
@@ -131,7 +139,9 @@ test('saves source with ranges', () => {
     column: error.column,
     endColumn: error.endColumn,
     endLine: error.endLine,
+    endOffset: 7,
     line: error.line,
+    offset: 0,
     source: error.source
   })
 })
@@ -285,14 +295,19 @@ test('uses source map', () => {
 
   is(error.file, join(__dirname, 'b.css'))
   is(error.line, 2)
+  is(error.column, 0) // Is this correct?
+  is(error.endLine, undefined)
+  is(error.endColumn, undefined)
   type(error.source, 'undefined')
 
   equal(error.input, {
     column: 1,
     endColumn: error.endColumn,
     endLine: error.endLine,
+    endOffset: undefined,
     file: join(__dirname, 'build', 'all.css'),
     line: 3,
+    offset: 7,
     source: 'a { }\n\nb {\n',
     url: urlOf(join('build', 'all.css'))
   })
@@ -314,14 +329,19 @@ test('works with path in sources', () => {
 
   is(error.file, join(__dirname, 'b.css'))
   is(error.line, 2)
+  is(error.column, 0) // Is this correct?
+  is(error.endLine, undefined)
+  is(error.endColumn, undefined)
   type(error.source, 'undefined')
 
   equal(error.input, {
     column: 1,
     endColumn: error.endColumn,
     endLine: error.endLine,
+    endOffset: undefined,
     file: join(__dirname, 'build', 'all.css'),
     line: 3,
+    offset: 7,
     source: 'a { }\n\nb {\n',
     url: pathToFileURL(pathOf(join('build', 'all.css'))).toString()
   })
diff --git a/test/input.test.ts b/test/input.test.ts
new file mode 100644
index 000000000..85a5ecb79
--- /dev/null
+++ test/input.test.ts
@@ -0,0 +1,20 @@
+import { test } from 'uvu'
+import { equal, is } from 'uvu/assert'
+
+import { Input } from '../lib/postcss.js'
+
+test('fromLineAndColumn() returns offset', () => {
+  let input = new Input('a {\n}')
+  is(input.fromLineAndColumn(1, 1), 0)
+  is(input.fromLineAndColumn(1, 3), 2)
+  is(input.fromLineAndColumn(2, 1), 4)
+  is(input.fromLineAndColumn(2, 2), 5)
+})
+
+test('fromOffset() returns line and column', () => {
+  let input = new Input('a {\n}')
+  equal(input.fromOffset(0), { col: 1, line: 1 })
+  equal(input.fromOffset(2), { col: 3, line: 1 })
+  equal(input.fromOffset(4), { col: 1, line: 2 })
+  equal(input.fromOffset(5), { col: 2, line: 2 })
+})
diff --git test/location.test.ts test/location.test.ts
index e74c895f0..6c41aeffd 100644
--- test/location.test.ts
+++ test/location.test.ts
@@ -16,6 +16,23 @@ function checkOffset(source: string, node: Node, expected: string): void {
   equal(source.slice(start, end), expected)
 }
 
+test('root', () => {
+  let source = '.a{}'
+  let css = parse(source)
+
+  checkOffset(source, css, '.a{}')
+  equal(css.source!.start, {
+    column: 1,
+    line: 1,
+    offset: 0
+  })
+  equal(css.source!.end, {
+    column: 5,
+    line: 1,
+    offset: 4
+  })
+})
+
 test('rule', () => {
   let source = '.a{}'
   let css = parse(source)
diff --git test/no-work-result.test.ts test/no-work-result.test.ts
index b83c18c45..4fa71796a 100644
--- test/no-work-result.test.ts
+++ test/no-work-result.test.ts
@@ -1,5 +1,3 @@
-import postcss = require('../lib/postcss.js')
-import stringify = require('../lib/stringify.js')
 import { spy } from 'nanospy'
 import { SourceMapGenerator } from 'source-map-js'
 import { test } from 'uvu'
@@ -7,7 +5,9 @@ import { equal, instance, is, not, throws, type } from 'uvu/assert'
 
 import NoWorkResult from '../lib/no-work-result.js'
 import parse from '../lib/parse.js'
+import postcss = require('../lib/postcss.js')
 import Processor from '../lib/processor.js'
+import stringify = require('../lib/stringify.js')
 
 let processor = new Processor()
 
diff --git test/node.test.ts test/node.test.ts
index b8f3a7b4d..03e3b3dd4 100755
--- test/node.test.ts
+++ test/node.test.ts
@@ -395,21 +395,21 @@ test('positionInside() returns position when node starts mid-line', () => {
   let css = parse('a {  one: X  }')
   let a = css.first as Rule
   let one = a.first as Declaration
-  equal(one.positionInside(6), { column: 12, line: 1 })
+  equal(one.positionInside(6), { column: 12, line: 1, offset: 11 })
 })
 
 test('positionInside() returns position when before contains newline', () => {
   let css = parse('a {\n  one: X}')
   let a = css.first as Rule
   let one = a.first as Declaration
-  equal(one.positionInside(6), { column: 9, line: 2 })
+  equal(one.positionInside(6), { column: 9, line: 2, offset: 12 })
 })
 
 test('positionInside() returns position when node contains newlines', () => {
   let css = parse('a {\n\tone: 1\n\t\tX\n3}')
   let a = css.first as Rule
   let one = a.first as Declaration
-  equal(one.positionInside(10), { column: 4, line: 3 })
+  equal(one.positionInside(10), { column: 4, line: 3, offset: 15 })
 })
 
 test('positionInside() returns position after AST mutations', () => {
@@ -418,13 +418,13 @@ test('positionInside() returns position after AST mutations', () => {
   let one = a.first as Declaration
   let two = one.next() as Declaration
 
-  equal(a.positionInside(15), { column: 3, line: 3 })
-  equal(two.positionInside(1), { column: 3, line: 3 })
+  equal(a.positionInside(15), { column: 3, line: 3, offset: 15 })
+  equal(two.positionInside(1), { column: 3, line: 3, offset: 15 })
 
   one.remove()
 
-  equal(a.positionInside(15), { column: 3, line: 3 })
-  equal(two.positionInside(1), { column: 3, line: 3 })
+  equal(a.positionInside(15), { column: 3, line: 3, offset: 15 })
+  equal(two.positionInside(1), { column: 3, line: 3, offset: 15 })
 })
 
 test('positionInside() supports multi-root documents', () => {
@@ -449,17 +449,63 @@ test('positionInside() supports multi-root documents', () => {
     }
   }
 
-  equal(a.positionInside(0), { column: 8, line: 1 })
-  equal(a.positionInside(1), { column: 9, line: 1 })
+  equal(a.positionInside(0), { column: 8, line: 1, offset: 7 })
+  equal(a.positionInside(1), { column: 9, line: 1, offset: 8 })
+})
+
+test('positionBy() returns position', () => {
+  let css = parse('a {  one: X  }')
+  let a = css.first as Rule
+  let one = a.first as Declaration
+  equal(one.positionBy(), { column: 6, line: 1, offset: 5 })
+  equal(a.positionBy(), { column: 1, line: 1, offset: 0 })
+})
+
+test('positionBy() returns position after AST mutations', () => {
+  let css = parse('a {\n\tone: 1;\n\ttwo: 2;}')
+  let a = css.first as Rule
+  let one = a.first as Declaration
+  let two = one.next() as Declaration
+
+  equal(a.positionBy(), { column: 1, line: 1, offset: 0 })
+  equal(two.positionBy(), { column: 2, line: 3, offset: 14 })
+
+  one.remove()
+
+  equal(a.positionBy(), { column: 1, line: 1, offset: 0 })
+  equal(two.positionBy(), { column: 2, line: 3, offset: 14 })
+})
+
+test('positionBy() returns position', () => {
+  let css = parse('a {  one: X  }')
+  let a = css.first as Rule
+  let one = a.first as Declaration
+  equal(one.positionBy(), { column: 6, line: 1, offset: 5 })
+  equal(a.positionBy(), { column: 1, line: 1, offset: 0 })
+})
+
+test('positionBy() returns position after AST mutations', () => {
+  let css = parse('a {\n\tone: 1;\n\ttwo: 2;}')
+  let a = css.first as Rule
+  let one = a.first as Declaration
+  let two = one.next() as Declaration
+
+  equal(a.positionBy(), { column: 1, line: 1, offset: 0 })
+  equal(two.positionBy(), { column: 2, line: 3, offset: 14 })
+
+  one.remove()
+
+  equal(a.positionBy(), { column: 1, line: 1, offset: 0 })
+  equal(two.positionBy(), { column: 2, line: 3, offset: 14 })
 })
 
 test('positionBy() returns position for word', () => {
   let css = parse('a {  one: X  }')
   let a = css.first as Rule
   let one = a.first as Declaration
-  equal(one.positionBy({ word: 'one' }), { column: 6, line: 1 })
-  equal(one.positionBy({ word: 'X' }), { column: 11, line: 1 })
-  equal(a.positionBy({ word: '}' }), { column: 14, line: 1 })
+  equal(one.positionBy({ word: 'one' }), { column: 6, line: 1, offset: 5 })
+  equal(one.positionBy({ word: 'X' }), { column: 11, line: 1, offset: 10 })
+  equal(a.positionBy({ word: '}' }), { column: 14, line: 1, offset: 13 })
 })
 
 test('positionBy() returns position for word after AST mutations', () => {
@@ -468,20 +514,20 @@ test('positionBy() returns position for word after AST mutations', () => {
   let one = a.first as Declaration
   let two = one.next() as Declaration
 
-  equal(a.positionBy({ word: 'two' }), { column: 2, line: 3 })
-  equal(two.positionBy({ word: 'two' }), { column: 2, line: 3 })
+  equal(a.positionBy({ word: 'two' }), { column: 2, line: 3, offset: 14 })
+  equal(two.positionBy({ word: 'two' }), { column: 2, line: 3, offset: 14 })
 
   one.remove()
 
-  equal(a.positionBy({ word: 'two' }), { column: 2, line: 3 })
-  equal(two.positionBy({ word: 'two' }), { column: 2, line: 3 })
+  equal(a.positionBy({ word: 'two' }), { column: 2, line: 3, offset: 14 })
+  equal(two.positionBy({ word: 'two' }), { column: 2, line: 3, offset: 14 })
 })
 
 test('positionBy() returns position for index', () => {
   let css = parse('a {  one: X  }')
   let a = css.first as Rule
   let one = a.first as Declaration
-  equal(one.positionBy({ index: 1 }), { column: 7, line: 1 })
+  equal(one.positionBy({ index: 1 }), { column: 7, line: 1, offset: 6 })
 })
 
 test('positionBy() returns position for index after AST mutations', () => {
@@ -490,13 +536,13 @@ test('positionBy() returns position for index after AST mutations', () => {
   let one = a.first as Declaration
   let two = one.next() as Declaration
 
-  equal(a.positionBy({ index: 15 }), { column: 3, line: 3 })
-  equal(two.positionBy({ index: 1 }), { column: 3, line: 3 })
+  equal(a.positionBy({ index: 15 }), { column: 3, line: 3, offset: 15 })
+  equal(two.positionBy({ index: 1 }), { column: 3, line: 3, offset: 15 })
 
   one.remove()
 
-  equal(a.positionBy({ index: 15 }), { column: 3, line: 3 })
-  equal(two.positionBy({ index: 1 }), { column: 3, line: 3 })
+  equal(a.positionBy({ index: 15 }), { column: 3, line: 3, offset: 15 })
+  equal(two.positionBy({ index: 1 }), { column: 3, line: 3, offset: 15 })
 })
 
 test('positionBy() supports multi-root documents', () => {
@@ -523,8 +569,114 @@ test('positionBy() supports multi-root documents', () => {
 
   // `offset` is present because the `0` index returns `source.start`
   equal(a.positionBy({ index: 0 }), { column: 8, line: 1, offset: 7 })
-  equal(a.positionBy({ index: 1 }), { column: 9, line: 1 })
-  equal(a.positionBy({ word: 'a' }), { column: 8, line: 1 })
+  equal(a.positionBy({ index: 1 }), { column: 9, line: 1, offset: 8 })
+  equal(a.positionBy({ word: 'a' }), { column: 8, line: 1, offset: 7 })
+})
+
+test('rangeBy() returns range', () => {
+  let css = parse('a {  one: X  }')
+  let a = css.first as Rule
+  let one = a.first as Declaration
+  equal(one.rangeBy(), {
+    end: { column: 12, line: 1, offset: 11 },
+    start: { column: 6, line: 1, offset: 5 }
+  })
+})
+
+test('rangeBy() returns range when offsets are missing', () => {
+  let css = parse('a {  one: X  }')
+  let a = css.first as Rule
+  let one = a.first as Declaration
+
+  // @ts-expect-error Testing non-standard AST
+  if (one.source?.start) delete one.source.start.offset
+  // @ts-expect-error Testing non-standard AST
+  if (one.source?.end) delete one.source.end.offset
+
+  equal(one.rangeBy(), {
+    end: { column: 12, line: 1, offset: 11 },
+    start: { column: 6, line: 1, offset: 5 }
+  })
+})
+
+test('rangeBy() returns range for empty object even after AST mutations', () => {
+  let css = parse('a {\n\tone: 1;\n\ttwo: 2;}')
+  let a = css.first as Rule
+  let one = a.first as Declaration
+  let two = one.next() as Declaration
+
+  equal(a.rangeBy(), {
+    end: { column: 10, line: 3, offset: 22 },
+    start: { column: 1, line: 1, offset: 0 }
+  })
+  equal(two.rangeBy(), {
+    end: { column: 9, line: 3, offset: 21 },
+    start: { column: 2, line: 3, offset: 14 }
+  })
+
+  one.remove()
+
+  equal(a.rangeBy(), {
+    end: { column: 10, line: 3, offset: 22 },
+    start: { column: 1, line: 1, offset: 0 }
+  })
+  equal(two.rangeBy(), {
+    end: { column: 9, line: 3, offset: 21 },
+    start: { column: 2, line: 3, offset: 14 }
+  })
+})
+
+test('rangeBy() returns range', () => {
+  let css = parse('a {  one: X  }')
+  let a = css.first as Rule
+  let one = a.first as Declaration
+  equal(one.rangeBy(), {
+    end: { column: 12, line: 1, offset: 11 },
+    start: { column: 6, line: 1, offset: 5 }
+  })
+})
+
+test('rangeBy() returns range when offsets are missing', () => {
+  let css = parse('a {  one: X  }')
+  let a = css.first as Rule
+  let one = a.first as Declaration
+
+  // @ts-expect-error Testing non-standard AST
+  if (one.source?.start) delete one.source.start.offset
+  // @ts-expect-error Testing non-standard AST
+  if (one.source?.end) delete one.source.end.offset
+
+  equal(one.rangeBy(), {
+    end: { column: 12, line: 1, offset: 11 },
+    start: { column: 6, line: 1, offset: 5 }
+  })
+})
+
+test('rangeBy() returns range for empty object even after AST mutations', () => {
+  let css = parse('a {\n\tone: 1;\n\ttwo: 2;}')
+  let a = css.first as Rule
+  let one = a.first as Declaration
+  let two = one.next() as Declaration
+
+  equal(a.rangeBy(), {
+    end: { column: 10, line: 3, offset: 22 },
+    start: { column: 1, line: 1, offset: 0 }
+  })
+  equal(two.rangeBy(), {
+    end: { column: 9, line: 3, offset: 21 },
+    start: { column: 2, line: 3, offset: 14 }
+  })
+
+  one.remove()
+
+  equal(a.rangeBy(), {
+    end: { column: 10, line: 3, offset: 22 },
+    start: { column: 1, line: 1, offset: 0 }
+  })
+  equal(two.rangeBy(), {
+    end: { column: 9, line: 3, offset: 21 },
+    start: { column: 2, line: 3, offset: 14 }
+  })
 })
 
 test('rangeBy() returns range for word', () => {
@@ -532,8 +684,8 @@ test('rangeBy() returns range for word', () => {
   let a = css.first as Rule
   let one = a.first as Declaration
   equal(one.rangeBy({ word: 'one' }), {
-    end: { column: 9, line: 1 },
-    start: { column: 6, line: 1 }
+    end: { column: 9, line: 1, offset: 8 },
+    start: { column: 6, line: 1, offset: 5 }
   })
 })
 
@@ -548,8 +700,8 @@ test('rangeBy() returns range for word when offsets are missing', () => {
   if (one.source?.end) delete one.source.end.offset
 
   equal(one.rangeBy({ word: 'one' }), {
-    end: { column: 9, line: 1 },
-    start: { column: 6, line: 1 }
+    end: { column: 9, line: 1, offset: 8 },
+    start: { column: 6, line: 1, offset: 5 }
   })
 })
 
@@ -560,23 +712,23 @@ test('rangeBy() returns range for word even after AST mutations', () => {
   let two = one.next() as Declaration
 
   equal(a.rangeBy({ word: 'two' }), {
-    end: { column: 5, line: 3 },
-    start: { column: 2, line: 3 }
+    end: { column: 5, line: 3, offset: 17 },
+    start: { column: 2, line: 3, offset: 14 }
   })
   equal(two.rangeBy({ word: 'two' }), {
-    end: { column: 5, line: 3 },
-    start: { column: 2, line: 3 }
+    end: { column: 5, line: 3, offset: 17 },
+    start: { column: 2, line: 3, offset: 14 }
   })
 
   one.remove()
 
   equal(a.rangeBy({ word: 'two' }), {
-    end: { column: 5, line: 3 },
-    start: { column: 2, line: 3 }
+    end: { column: 5, line: 3, offset: 17 },
+    start: { column: 2, line: 3, offset: 14 }
   })
   equal(two.rangeBy({ word: 'two' }), {
-    end: { column: 5, line: 3 },
-    start: { column: 2, line: 3 }
+    end: { column: 5, line: 3, offset: 17 },
+    start: { column: 2, line: 3, offset: 14 }
   })
 })
 
@@ -596,23 +748,76 @@ test('rangeBy() returns range for word even after AST mutations when offsets are
   if (two.source?.end) delete two.source.end.offset
 
   equal(a.rangeBy({ word: 'two' }), {
-    end: { column: 5, line: 3 },
-    start: { column: 2, line: 3 }
+    end: { column: 5, line: 3, offset: 17, },
+    start: { column: 2, line: 3, offset: 14 }
   })
   equal(two.rangeBy({ word: 'two' }), {
-    end: { column: 5, line: 3 },
-    start: { column: 2, line: 3 }
+    end: { column: 5, line: 3, offset: 17, },
+    start: { column: 2, line: 3, offset: 14 }
   })
 
   one.remove()
 
   equal(a.rangeBy({ word: 'two' }), {
-    end: { column: 5, line: 3 },
-    start: { column: 2, line: 3 }
+    end: { column: 5, line: 3, offset: 17, },
+    start: { column: 2, line: 3, offset: 14 }
   })
   equal(two.rangeBy({ word: 'two' }), {
-    end: { column: 5, line: 3 },
-    start: { column: 2, line: 3 }
+    end: { column: 5, line: 3, offset: 17 },
+    start: { column: 2, line: 3, offset: 14 }
+  })
+})
+
+test('rangeBy() returns range for start and end', () => {
+  let css = parse('a {  one: X  }')
+  let a = css.first as Rule
+  let one = a.first as Declaration
+  equal(one.rangeBy({ end: { column: 9, line: 1 }, start: { column: 7, line: 1 } }), {
+    end: { column: 9, line: 1, offset: 8 },
+    start: { column: 7, line: 1, offset: 6 }
+  })
+})
+
+test('rangeBy() returns range for start and end when offsets are missing', () => {
+  let css = parse('a {  one: X  }')
+  let a = css.first as Rule
+  let one = a.first as Declaration
+
+  // @ts-expect-error Testing non-standard AST
+  if (one.source?.start) delete one.source.start.offset
+  // @ts-expect-error Testing non-standard AST
+  if (one.source?.end) delete one.source.end.offset
+
+  equal(one.rangeBy({ end: { column: 9, line: 1 }, start: { column: 7, line: 1 } }), {
+    end: { column: 9, line: 1, offset: 8 },
+    start: { column: 7, line: 1, offset: 6 }
+  })
+})
+
+test('rangeBy() returns range for start and end after AST mutations', () => {
+  let css = parse('a {\n\tone: 1;\n\ttwo: 2;}')
+  let a = css.first as Rule
+  let one = a.first as Declaration
+  let two = one.next() as Declaration
+
+  equal(a.rangeBy({ end: { column: 5, line: 3 }, start: { column: 3, line: 3 } }), {
+    end: { column: 5, line: 3, offset: 17 },
+    start: { column: 3, line: 3, offset: 15 }
+  })
+  equal(two.rangeBy({ end: { column: 5, line: 3 }, start: { column: 3, line: 3 } }), {
+    end: { column: 5, line: 3, offset: 17 },
+    start: { column: 3, line: 3, offset: 15 }
+  })
+
+  one.remove()
+
+  equal(a.rangeBy({ end: { column: 5, line: 3 }, start: { column: 3, line: 3 } }), {
+    end: { column: 5, line: 3, offset: 17 },
+    start: { column: 3, line: 3, offset: 15 }
+  })
+  equal(two.rangeBy({ end: { column: 5, line: 3 }, start: { column: 3, line: 3 } }), {
+    end: { column: 5, line: 3, offset: 17 },
+    start: { column: 3, line: 3, offset: 15 }
   })
 })
 
@@ -621,8 +826,8 @@ test('rangeBy() returns range for index and endIndex', () => {
   let a = css.first as Rule
   let one = a.first as Declaration
   equal(one.rangeBy({ endIndex: 3, index: 1 }), {
-    end: { column: 9, line: 1 },
-    start: { column: 7, line: 1 }
+    end: { column: 9, line: 1, offset: 8 },
+    start: { column: 7, line: 1, offset: 6 }
   })
 })
 
@@ -637,8 +842,8 @@ test('rangeBy() returns range for index and endIndex when offsets are missing',
   if (one.source?.end) delete one.source.end.offset
 
   equal(one.rangeBy({ endIndex: 3, index: 1 }), {
-    end: { column: 9, line: 1 },
-    start: { column: 7, line: 1 }
+    end: { column: 9, line: 1, offset: 8 },
+    start: { column: 7, line: 1, offset: 6 }
   })
 })
 
@@ -649,23 +854,23 @@ test('rangeBy() returns range for index and endIndex after AST mutations', () =>
   let two = one.next() as Declaration
 
   equal(a.rangeBy({ endIndex: 17, index: 15 }), {
-    end: { column: 5, line: 3 },
-    start: { column: 3, line: 3 }
+    end: { column: 5, line: 3, offset: 17 },
+    start: { column: 3, line: 3, offset: 15 }
   })
   equal(two.rangeBy({ endIndex: 3, index: 1 }), {
-    end: { column: 5, line: 3 },
-    start: { column: 3, line: 3 }
+    end: { column: 5, line: 3, offset: 17 },
+    start: { column: 3, line: 3, offset: 15 }
   })
 
   one.remove()
 
   equal(a.rangeBy({ endIndex: 17, index: 15 }), {
-    end: { column: 5, line: 3 },
-    start: { column: 3, line: 3 }
+    end: { column: 5, line: 3, offset: 17 },
+    start: { column: 3, line: 3, offset: 15 }
   })
   equal(two.rangeBy({ endIndex: 3, index: 1 }), {
-    end: { column: 5, line: 3 },
-    start: { column: 3, line: 3 }
+    end: { column: 5, line: 3, offset: 17 },
+    start: { column: 3, line: 3, offset: 15 }
   })
 })
 
@@ -692,13 +897,13 @@ test('rangeBy() supports multi-root documents', () => {
   }
 
   equal(a.rangeBy({ endIndex: 1, index: 0 }), {
-    end: { column: 9, line: 1 },
-    start: { column: 8, line: 1 }
+    end: { column: 9, line: 1, offset: 8 },
+    start: { column: 8, line: 1, offset: 7 }
   })
 
   equal(a.rangeBy({ word: 'a' }), {
-    end: { column: 9, line: 1 },
-    start: { column: 8, line: 1 }
+    end: { column: 9, line: 1, offset: 8 },
+    start: { column: 8, line: 1, offset: 7 }
   })
 })
 
diff --git test/postcss.test.ts test/postcss.test.ts
index 7c3325197..fddd982fe 100755
--- test/postcss.test.ts
+++ test/postcss.test.ts
@@ -1,8 +1,8 @@
-import postcss = require('../lib/postcss.js')
 import { restoreAll, spyOn } from 'nanospy'
 import { test } from 'uvu'
 import { equal, is, match, throws, type } from 'uvu/assert'
 
+import postcss = require('../lib/postcss.js')
 import postcssDefault, { PluginCreator, Root } from '../lib/postcss.js'
 import Processor from '../lib/processor.js'
 
diff --git tsconfig.json tsconfig.json
index 8341d6de1..808df78e8 100644
--- tsconfig.json
+++ tsconfig.json
@@ -5,5 +5,6 @@
     "module": "commonjs",
     "strict": true,
     "noEmit": true
-  }
+  },
+  "exclude": ["**/errors.ts"]
 }

Description

This PR primarily updates dependencies and makes several improvements to the PostCSS codebase:

  • Updates eslint and related dependencies to newer versions
  • Enhances position tracking in the AST by adding offset information to position objects
  • Improves the Input class with better offset-to-position conversion methods
  • Adds the fromLineAndColumn method to convert line/column to offset
  • Refactors position-related methods to include offset information in their return values
  • Updates documentation with new plugin references and fixes grammar issues
Changes

Changes

CHANGELOG.md

  • Added entry for version 8.5.4 noting a Parcel compatibility fix

README.md

  • Fixed grammar in description of Autoprefixer and Stylelint plugins
  • Added reference to new VS Code extension smallcase.postcssense

docs/plugins.md

  • Added several new plugin entries including postcss-auto-var-fallback and postcss-fontsource-url
  • Reorganized some plugin descriptions for better clarity

lib/input.d.ts & lib/input.js

  • Added endOffset and offset properties to position tracking
  • Added fromLineAndColumn() method to convert line/column coordinates to byte offsets
  • Improved caching mechanism for line-to-index mapping
  • Enhanced error reporting with both position and offset information

lib/node.d.ts & lib/node.js

  • Enhanced position tracking by adding offset information to all position-related methods
  • Updated positionBy(), positionInside(), and rangeBy() methods to include offset data
  • Improved AST serialization to handle null source values properly
  • Better documentation of offset behavior differences between Root and non-Root nodes

lib/processor.js

  • Version bump to 8.5.4

lib/result.js

  • Changed default CSS value from undefined to empty string

package.json & pnpm-lock.yaml

  • Updated numerous dependencies including:
    • eslint from 9.20.1 to 9.27.0
    • typescript from 5.7.3 to 5.8.3
    • nanoid from 3.3.8 to 3.3.11
    • Various @typescript-eslint packages
  • Increased size limit from 15KB to 16KB

Test files

  • Added comprehensive tests for new offset functionality
  • Updated existing tests to verify offset information is correctly included
  • Added tests for the new fromLineAndColumn() method
sequenceDiagram
    participant Parser as CSS Parser
    participant Input as Input Class
    participant Node as AST Node
    participant Position as Position Tracking

    Parser->>Input: Parse CSS with position info
    Input->>Position: Track line/column/offset mappings
    Input->>Node: Create AST nodes with enhanced positions
    Node->>Position: positionBy() / rangeBy() calls
    Position->>Input: fromLineAndColumn() for offset conversion
    Input-->>Position: Return offset information
    Position-->>Node: Enhanced position data with offsets
    Node-->>Parser: Complete AST with full position tracking
Loading

Copy link
Contributor Author

renovate bot commented Jun 16, 2025

Renovate Ignore Notification

Because you closed this PR without merging, Renovate will ignore this update (8.5.4). You will get a PR once a newer version is released. To ignore this dependency forever, add it to the ignoreDeps array of your Renovate config.

If you accidentally closed this PR, or if you changed your mind: rename this PR to get a fresh replacement PR.

@renovate renovate bot deleted the renovate/postcss-8-x branch June 16, 2025 11:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant