diff --git a/bin/cli.mjs b/bin/cli.mjs
index ecbbecbf..ceea09d6 100755
--- a/bin/cli.mjs
+++ b/bin/cli.mjs
@@ -1,11 +1,12 @@
 #!/usr/bin/env node
 
 import process from 'node:process';
+
 import { Argument, Command, Option } from 'commander';
 
+import commands from './commands/index.mjs';
 import interactive from './commands/interactive.mjs';
 import list, { types } from './commands/list.mjs';
-import commands from './commands/index.mjs';
 import { errorWrap } from './utils.mjs';
 
 const program = new Command()
diff --git a/bin/commands/generate.mjs b/bin/commands/generate.mjs
index 92b68b68..03d80a79 100644
--- a/bin/commands/generate.mjs
+++ b/bin/commands/generate.mjs
@@ -7,12 +7,12 @@ import {
   DOC_NODE_CHANGELOG_URL,
   DOC_NODE_VERSION,
 } from '../../src/constants.mjs';
-import createGenerator from '../../src/generators.mjs';
 import { publicGenerators } from '../../src/generators/index.mjs';
-import createNodeReleases from '../../src/releases.mjs';
-import { loadAndParse } from '../utils.mjs';
+import createGenerator from '../../src/generators.mjs';
 import createLinter from '../../src/linter/index.mjs';
 import { getEnabledRules } from '../../src/linter/utils/rules.mjs';
+import createNodeReleases from '../../src/releases.mjs';
+import { loadAndParse } from '../utils.mjs';
 
 const availableGenerators = Object.keys(publicGenerators);
 
diff --git a/bin/commands/lint.mjs b/bin/commands/lint.mjs
index 5c0ae5f2..08298d81 100644
--- a/bin/commands/lint.mjs
+++ b/bin/commands/lint.mjs
@@ -3,8 +3,8 @@ import process from 'node:process';
 import createLinter from '../../src/linter/index.mjs';
 import reporters from '../../src/linter/reporters/index.mjs';
 import rules from '../../src/linter/rules/index.mjs';
-import { loadAndParse } from '../utils.mjs';
 import { getEnabledRules } from '../../src/linter/utils/rules.mjs';
+import { loadAndParse } from '../utils.mjs';
 
 const availableRules = Object.keys(rules);
 const availableReporters = Object.keys(reporters);
diff --git a/eslint.config.mjs b/eslint.config.mjs
index 7d008d7a..015a612a 100644
--- a/eslint.config.mjs
+++ b/eslint.config.mjs
@@ -1,16 +1,50 @@
 import pluginJs from '@eslint/js';
-import eslintConfigPrettier from 'eslint-config-prettier';
+import importX from 'eslint-plugin-import-x';
 import jsdoc from 'eslint-plugin-jsdoc';
 import globals from 'globals';
 
 export default [
-  // @see https://eslint.org/docs/latest/use/configure/configuration-files#specifying-files-and-ignores
+  pluginJs.configs.recommended,
+  importX.flatConfigs.recommended,
+  {
+    ignores: ['out/', 'src/generators/api-links/test/fixtures/'],
+  },
+  {
+    files: ['**/*.mjs'],
+    rules: {
+      'import-x/namespace': 'off',
+      'import-x/no-named-as-default': 'off',
+      'import-x/no-named-as-default-member': 'off',
+      'import-x/no-unresolved': 'off',
+      'import-x/order': [
+        'error',
+        {
+          groups: [
+            'builtin',
+            'external',
+            'internal',
+            ['sibling', 'parent'],
+            'index',
+            'unknown',
+          ],
+          'newlines-between': 'always',
+          alphabetize: {
+            order: 'asc',
+            caseInsensitive: true,
+          },
+        },
+      ],
+    },
+  },
   {
     files: ['src/**/*.mjs', 'bin/**/*.mjs'],
     plugins: {
       jsdoc: jsdoc,
     },
-    languageOptions: { globals: globals.node },
+    languageOptions: {
+      ecmaVersion: 'latest',
+      globals: { ...globals.nodeBuiltin },
+    },
     rules: {
       'jsdoc/check-alignment': 'error',
       'jsdoc/check-indentation': 'error',
@@ -39,15 +73,8 @@ export default [
       'jsdoc/require-param': 'off',
     },
   },
-  // @see https://eslint.org/docs/latest/use/configure/configuration-files#specifying-files-and-ignores
   {
     files: ['src/generators/legacy-html/assets/*.js'],
     languageOptions: { globals: { ...globals.browser } },
   },
-  // @see https://eslint.org/docs/latest/rules to learn more about these rules
-  pluginJs.configs.recommended,
-  eslintConfigPrettier,
-  {
-    ignores: ['src/generators/api-links/test/fixtures/**'],
-  },
 ];
diff --git a/package-lock.json b/package-lock.json
index 7870fcdb..d4af30aa 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -52,7 +52,7 @@
         "@types/mdast": "^4.0.4",
         "@types/node": "^22.15.3",
         "eslint": "^9.27.0",
-        "eslint-config-prettier": "^10.1.5",
+        "eslint-plugin-import-x": "^4.13.3",
         "eslint-plugin-jsdoc": "^50.6.17",
         "globals": "^16.2.0",
         "husky": "^9.1.7",
@@ -116,6 +116,40 @@
         "sisteransi": "^1.0.5"
       }
     },
+    "node_modules/@emnapi/core": {
+      "version": "1.4.3",
+      "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.4.3.tgz",
+      "integrity": "sha512-4m62DuCE07lw01soJwPiBGC0nAww0Q+RY70VZ+n49yDIO13yyinhbWCeNnaob0lakDtWQzSdtNWzJeOJt2ma+g==",
+      "dev": true,
+      "license": "MIT",
+      "optional": true,
+      "dependencies": {
+        "@emnapi/wasi-threads": "1.0.2",
+        "tslib": "^2.4.0"
+      }
+    },
+    "node_modules/@emnapi/runtime": {
+      "version": "1.4.3",
+      "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.4.3.tgz",
+      "integrity": "sha512-pBPWdu6MLKROBX05wSNKcNb++m5Er+KQ9QkB+WVM+pW2Kx9hoSrVTnu3BdkI5eBLZoKu/J6mW/B6i6bJB2ytXQ==",
+      "dev": true,
+      "license": "MIT",
+      "optional": true,
+      "dependencies": {
+        "tslib": "^2.4.0"
+      }
+    },
+    "node_modules/@emnapi/wasi-threads": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.0.2.tgz",
+      "integrity": "sha512-5n3nTJblwRi8LlXkJ9eBzu+kZR8Yxcc7ubakyQTFzPMtIhFpUBRbsnc2Dv88IZDIbCDlBiWrknhB4Lsz7mg6BA==",
+      "dev": true,
+      "license": "MIT",
+      "optional": true,
+      "dependencies": {
+        "tslib": "^2.4.0"
+      }
+    },
     "node_modules/@es-joy/jsdoccomment": {
       "version": "0.50.2",
       "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.50.2.tgz",
@@ -134,17 +168,20 @@
       }
     },
     "node_modules/@eslint-community/eslint-utils": {
-      "version": "4.4.0",
-      "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz",
-      "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==",
+      "version": "4.7.0",
+      "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.7.0.tgz",
+      "integrity": "sha512-dyybb3AcajC7uha6CvhdVRJqaKyn7w2YKqKyAN37NKYgZT36w+iRb0Dymmc5qEJ549c/S31cMMSFd75bteCpCw==",
       "dev": true,
       "license": "MIT",
       "dependencies": {
-        "eslint-visitor-keys": "^3.3.0"
+        "eslint-visitor-keys": "^3.4.3"
       },
       "engines": {
         "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
       },
+      "funding": {
+        "url": "https://opencollective.com/eslint"
+      },
       "peerDependencies": {
         "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0"
       }
@@ -443,6 +480,19 @@
         "node": ">= 10"
       }
     },
+    "node_modules/@napi-rs/wasm-runtime": {
+      "version": "0.2.10",
+      "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-0.2.10.tgz",
+      "integrity": "sha512-bCsCyeZEwVErsGmyPNSzwfwFn4OdxBj0mmv6hOFucB/k81Ojdu68RbZdxYsRQUPc9l6SU5F/cG+bXgWs3oUgsQ==",
+      "dev": true,
+      "license": "MIT",
+      "optional": true,
+      "dependencies": {
+        "@emnapi/core": "^1.4.3",
+        "@emnapi/runtime": "^1.4.3",
+        "@tybys/wasm-util": "^0.9.0"
+      }
+    },
     "node_modules/@node-core/rehype-shiki": {
       "version": "1.0.1-1815fa769361b836fa52cfab9c5bd4991f571c95",
       "resolved": "https://registry.npmjs.org/@node-core/rehype-shiki/-/rehype-shiki-1.0.1-1815fa769361b836fa52cfab9c5bd4991f571c95.tgz",
@@ -533,6 +583,44 @@
         "@types/hast": "^3.0.4"
       }
     },
+    "node_modules/@nodelib/fs.scandir": {
+      "version": "2.1.5",
+      "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
+      "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@nodelib/fs.stat": "2.0.5",
+        "run-parallel": "^1.1.9"
+      },
+      "engines": {
+        "node": ">= 8"
+      }
+    },
+    "node_modules/@nodelib/fs.stat": {
+      "version": "2.0.5",
+      "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
+      "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">= 8"
+      }
+    },
+    "node_modules/@nodelib/fs.walk": {
+      "version": "1.2.8",
+      "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz",
+      "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@nodelib/fs.scandir": "2.1.5",
+        "fastq": "^1.6.0"
+      },
+      "engines": {
+        "node": ">= 8"
+      }
+    },
     "node_modules/@orama/orama": {
       "version": "3.1.6",
       "resolved": "https://registry.npmjs.org/@orama/orama/-/orama-3.1.6.tgz",
@@ -631,6 +719,17 @@
       "integrity": "sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg==",
       "license": "MIT"
     },
+    "node_modules/@tybys/wasm-util": {
+      "version": "0.9.0",
+      "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.9.0.tgz",
+      "integrity": "sha512-6+7nlbMVX/PVDCwaIQ8nTOPveOcFLSt8GcXdx8hD0bt39uWxYT88uXzqTd4fTvqta7oeUJqudepapKNt2DYJFw==",
+      "dev": true,
+      "license": "MIT",
+      "optional": true,
+      "dependencies": {
+        "tslib": "^2.4.0"
+      }
+    },
     "node_modules/@types/debug": {
       "version": "4.1.12",
       "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.12.tgz",
@@ -701,6 +800,60 @@
       "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==",
       "license": "MIT"
     },
+    "node_modules/@typescript-eslint/project-service": {
+      "version": "8.33.0",
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.33.0.tgz",
+      "integrity": "sha512-d1hz0u9l6N+u/gcrk6s6gYdl7/+pp8yHheRTqP6X5hVDKALEaTn8WfGiit7G511yueBEL3OpOEpD+3/MBdoN+A==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@typescript-eslint/tsconfig-utils": "^8.33.0",
+        "@typescript-eslint/types": "^8.33.0",
+        "debug": "^4.3.4"
+      },
+      "engines": {
+        "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/typescript-eslint"
+      }
+    },
+    "node_modules/@typescript-eslint/scope-manager": {
+      "version": "8.33.0",
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.33.0.tgz",
+      "integrity": "sha512-LMi/oqrzpqxyO72ltP+dBSP6V0xiUb4saY7WLtxSfiNEBI8m321LLVFU9/QDJxjDQG9/tjSqKz/E3380TEqSTw==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@typescript-eslint/types": "8.33.0",
+        "@typescript-eslint/visitor-keys": "8.33.0"
+      },
+      "engines": {
+        "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/typescript-eslint"
+      }
+    },
+    "node_modules/@typescript-eslint/tsconfig-utils": {
+      "version": "8.33.0",
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.33.0.tgz",
+      "integrity": "sha512-sTkETlbqhEoiFmGr1gsdq5HyVbSOF0145SYDJ/EQmXHtKViCaGvnyLqWFFHtEXoS0J1yU8Wyou2UGmgW88fEug==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/typescript-eslint"
+      },
+      "peerDependencies": {
+        "typescript": ">=4.8.4 <5.9.0"
+      }
+    },
     "node_modules/@typescript-eslint/types": {
       "version": "8.33.0",
       "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.33.0.tgz",
@@ -715,12 +868,350 @@
         "url": "https://opencollective.com/typescript-eslint"
       }
     },
+    "node_modules/@typescript-eslint/typescript-estree": {
+      "version": "8.33.0",
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.33.0.tgz",
+      "integrity": "sha512-vegY4FQoB6jL97Tu/lWRsAiUUp8qJTqzAmENH2k59SJhw0Th1oszb9Idq/FyyONLuNqT1OADJPXfyUNOR8SzAQ==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@typescript-eslint/project-service": "8.33.0",
+        "@typescript-eslint/tsconfig-utils": "8.33.0",
+        "@typescript-eslint/types": "8.33.0",
+        "@typescript-eslint/visitor-keys": "8.33.0",
+        "debug": "^4.3.4",
+        "fast-glob": "^3.3.2",
+        "is-glob": "^4.0.3",
+        "minimatch": "^9.0.4",
+        "semver": "^7.6.0",
+        "ts-api-utils": "^2.1.0"
+      },
+      "engines": {
+        "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/typescript-eslint"
+      },
+      "peerDependencies": {
+        "typescript": ">=4.8.4 <5.9.0"
+      }
+    },
+    "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
+      "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "balanced-match": "^1.0.0"
+      }
+    },
+    "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": {
+      "version": "9.0.5",
+      "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
+      "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
+      "dev": true,
+      "license": "ISC",
+      "dependencies": {
+        "brace-expansion": "^2.0.1"
+      },
+      "engines": {
+        "node": ">=16 || 14 >=14.17"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/isaacs"
+      }
+    },
+    "node_modules/@typescript-eslint/utils": {
+      "version": "8.33.0",
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.33.0.tgz",
+      "integrity": "sha512-lPFuQaLA9aSNa7D5u2EpRiqdAUhzShwGg/nhpBlc4GR6kcTABttCuyjFs8BcEZ8VWrjCBof/bePhP3Q3fS+Yrw==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@eslint-community/eslint-utils": "^4.7.0",
+        "@typescript-eslint/scope-manager": "8.33.0",
+        "@typescript-eslint/types": "8.33.0",
+        "@typescript-eslint/typescript-estree": "8.33.0"
+      },
+      "engines": {
+        "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/typescript-eslint"
+      },
+      "peerDependencies": {
+        "eslint": "^8.57.0 || ^9.0.0",
+        "typescript": ">=4.8.4 <5.9.0"
+      }
+    },
+    "node_modules/@typescript-eslint/visitor-keys": {
+      "version": "8.33.0",
+      "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.33.0.tgz",
+      "integrity": "sha512-7RW7CMYoskiz5OOGAWjJFxgb7c5UNjTG292gYhWeOAcFmYCtVCSqjqSBj5zMhxbXo2JOW95YYrUWJfU0zrpaGQ==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@typescript-eslint/types": "8.33.0",
+        "eslint-visitor-keys": "^4.2.0"
+      },
+      "engines": {
+        "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/typescript-eslint"
+      }
+    },
     "node_modules/@ungap/structured-clone": {
       "version": "1.2.0",
       "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz",
       "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==",
       "license": "ISC"
     },
+    "node_modules/@unrs/resolver-binding-darwin-arm64": {
+      "version": "1.7.5",
+      "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-darwin-arm64/-/resolver-binding-darwin-arm64-1.7.5.tgz",
+      "integrity": "sha512-efMrMFYcAY+Bg3TjHS9TIxyLW7DCkbmWyaePXA/FTuNNgzUgM9ffBoeA+4g90DjHMUuGyIcM4+96w1RoxNP3Tw==",
+      "cpu": [
+        "arm64"
+      ],
+      "dev": true,
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "darwin"
+      ]
+    },
+    "node_modules/@unrs/resolver-binding-darwin-x64": {
+      "version": "1.7.5",
+      "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-darwin-x64/-/resolver-binding-darwin-x64-1.7.5.tgz",
+      "integrity": "sha512-K5Usy9LwmeLohtZGOC0IxhybYluGMrtBP/l73jVNKvuk240KmblE6lphSbydrocvEZEVfTfLmba8UeoSUfnh4A==",
+      "cpu": [
+        "x64"
+      ],
+      "dev": true,
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "darwin"
+      ]
+    },
+    "node_modules/@unrs/resolver-binding-freebsd-x64": {
+      "version": "1.7.5",
+      "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-freebsd-x64/-/resolver-binding-freebsd-x64-1.7.5.tgz",
+      "integrity": "sha512-4vur1vMwq/hOkruiR24shuatm56jZo098x8ETchIewX8RbSwyTqHjnnJZ1WTLX2Vkg9hgy4RQqFpLnrL6Xp/hQ==",
+      "cpu": [
+        "x64"
+      ],
+      "dev": true,
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "freebsd"
+      ]
+    },
+    "node_modules/@unrs/resolver-binding-linux-arm-gnueabihf": {
+      "version": "1.7.5",
+      "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm-gnueabihf/-/resolver-binding-linux-arm-gnueabihf-1.7.5.tgz",
+      "integrity": "sha512-/hD8IHDjlTUb1/ePHavsaHYRF8lMDh+14TXHmxC8cwqrBVoHIzGZV66z2VjBDpDUtmAutptOhfKBpRLv0O0ywA==",
+      "cpu": [
+        "arm"
+      ],
+      "dev": true,
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "linux"
+      ]
+    },
+    "node_modules/@unrs/resolver-binding-linux-arm-musleabihf": {
+      "version": "1.7.5",
+      "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm-musleabihf/-/resolver-binding-linux-arm-musleabihf-1.7.5.tgz",
+      "integrity": "sha512-UPrkyN5ziuT+uRATrwabvl8JZNMt1T/fN96bZVnK3E34lQLbku99biFEUHZgXh0knJzoSoAKWfyMyyrcv4Dqfg==",
+      "cpu": [
+        "arm"
+      ],
+      "dev": true,
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "linux"
+      ]
+    },
+    "node_modules/@unrs/resolver-binding-linux-arm64-gnu": {
+      "version": "1.7.5",
+      "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm64-gnu/-/resolver-binding-linux-arm64-gnu-1.7.5.tgz",
+      "integrity": "sha512-btpXWiZystUjfNviOWjf7gwjak0h1dSrzjDGn4b8OkSIMw3Gp4yYtOMZRXxUtaaZRdnOQHqRh9+39PyK6LXQbQ==",
+      "cpu": [
+        "arm64"
+      ],
+      "dev": true,
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "linux"
+      ]
+    },
+    "node_modules/@unrs/resolver-binding-linux-arm64-musl": {
+      "version": "1.7.5",
+      "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm64-musl/-/resolver-binding-linux-arm64-musl-1.7.5.tgz",
+      "integrity": "sha512-fzTDlm/RWRgHomLSabeV+/iKkAld+kUQaBJ2h0OveaV6+ZmZqEbdG9WDCe8U3/dax49mlPwZIvEnMZujzTPWCg==",
+      "cpu": [
+        "arm64"
+      ],
+      "dev": true,
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "linux"
+      ]
+    },
+    "node_modules/@unrs/resolver-binding-linux-ppc64-gnu": {
+      "version": "1.7.5",
+      "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-ppc64-gnu/-/resolver-binding-linux-ppc64-gnu-1.7.5.tgz",
+      "integrity": "sha512-i+9usBSko2DyFvB7iimhfDtIk9tWhg4sKh7kZC8JGfGMdhYWZ8a40VvgE/Xj8iDsX6ngVRsIsgsNCU9jPx86zw==",
+      "cpu": [
+        "ppc64"
+      ],
+      "dev": true,
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "linux"
+      ]
+    },
+    "node_modules/@unrs/resolver-binding-linux-riscv64-gnu": {
+      "version": "1.7.5",
+      "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-riscv64-gnu/-/resolver-binding-linux-riscv64-gnu-1.7.5.tgz",
+      "integrity": "sha512-gpdNeCckfTMOWyZ+AjB0KpgHE2aCCoGtKDSocKwU9RkfWpeVvpcokey5l1A68WXCDE33sonekbe8Wm4+E0z7VQ==",
+      "cpu": [
+        "riscv64"
+      ],
+      "dev": true,
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "linux"
+      ]
+    },
+    "node_modules/@unrs/resolver-binding-linux-riscv64-musl": {
+      "version": "1.7.5",
+      "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-riscv64-musl/-/resolver-binding-linux-riscv64-musl-1.7.5.tgz",
+      "integrity": "sha512-avni2nC47b0ZBCXL3lg6I3z9lyP1kKVYZXIyIsA/pcTra+Uuq0RgeWeEBc8IJ6DjGrpft7gWyyekrYK58VomGQ==",
+      "cpu": [
+        "riscv64"
+      ],
+      "dev": true,
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "linux"
+      ]
+    },
+    "node_modules/@unrs/resolver-binding-linux-s390x-gnu": {
+      "version": "1.7.5",
+      "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-s390x-gnu/-/resolver-binding-linux-s390x-gnu-1.7.5.tgz",
+      "integrity": "sha512-GLv1+kVnVluyG8KRIl176jIoExlhgl3ASZz+VGyQpv5EwD5FqOtZHFzsRJA3xXNQlnHj3iMO4SA/HX4dc6iOvA==",
+      "cpu": [
+        "s390x"
+      ],
+      "dev": true,
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "linux"
+      ]
+    },
+    "node_modules/@unrs/resolver-binding-linux-x64-gnu": {
+      "version": "1.7.5",
+      "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-x64-gnu/-/resolver-binding-linux-x64-gnu-1.7.5.tgz",
+      "integrity": "sha512-frsoBmP2ww2axFqZvIexnDF5UuO0exCZjrchM7uvPbNzZCaU+B43r6Y3ywEFsXXH6MbZNpw10Ntuwb9N0orfcg==",
+      "cpu": [
+        "x64"
+      ],
+      "dev": true,
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "linux"
+      ]
+    },
+    "node_modules/@unrs/resolver-binding-linux-x64-musl": {
+      "version": "1.7.5",
+      "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-x64-musl/-/resolver-binding-linux-x64-musl-1.7.5.tgz",
+      "integrity": "sha512-kdI20RI0k+XcA+vuW6KB/EJbzUvRfo8PsKy2DFlX1fhTVsEXaf21nkU9C3NdTwlTkl9YvvLGNTKoJDH7yn7K8w==",
+      "cpu": [
+        "x64"
+      ],
+      "dev": true,
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "linux"
+      ]
+    },
+    "node_modules/@unrs/resolver-binding-wasm32-wasi": {
+      "version": "1.7.5",
+      "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-wasm32-wasi/-/resolver-binding-wasm32-wasi-1.7.5.tgz",
+      "integrity": "sha512-6F+PAhfsokXDtLihQzomvVK0rYzSP/qkgJg4+R4RaCmE3pwFspLeyUi1Wd11hwP4FQQn5/5Yw9jraUMQpMPWCg==",
+      "cpu": [
+        "wasm32"
+      ],
+      "dev": true,
+      "license": "MIT",
+      "optional": true,
+      "dependencies": {
+        "@napi-rs/wasm-runtime": "^0.2.10"
+      },
+      "engines": {
+        "node": ">=14.0.0"
+      }
+    },
+    "node_modules/@unrs/resolver-binding-win32-arm64-msvc": {
+      "version": "1.7.5",
+      "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-arm64-msvc/-/resolver-binding-win32-arm64-msvc-1.7.5.tgz",
+      "integrity": "sha512-rZ1SRHK95gOqy7hQBcG2sxKMoKFRFAl8f+cGYayA3RRNidkY86uNsXZiWDGgIuelYXSudvAd9RElDib/Lkx7pQ==",
+      "cpu": [
+        "arm64"
+      ],
+      "dev": true,
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "win32"
+      ]
+    },
+    "node_modules/@unrs/resolver-binding-win32-ia32-msvc": {
+      "version": "1.7.5",
+      "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-ia32-msvc/-/resolver-binding-win32-ia32-msvc-1.7.5.tgz",
+      "integrity": "sha512-49JiW5JickDuC/VqSBlbZTqwX8sJBGBfodU/v4+vM8Eig63JOAK7bOtG8M8kxXRrkJIGhumba4cTf4QcWbMRcg==",
+      "cpu": [
+        "ia32"
+      ],
+      "dev": true,
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "win32"
+      ]
+    },
+    "node_modules/@unrs/resolver-binding-win32-x64-msvc": {
+      "version": "1.7.5",
+      "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-x64-msvc/-/resolver-binding-win32-x64-msvc-1.7.5.tgz",
+      "integrity": "sha512-69JcsNlbafX/FsafXswKb5M+jPXC9IRcNVz5SqEKH9+PA5jmJ6+fFyjFX1pipBRADGn+EuPhCeDcQl+CAxP+2g==",
+      "cpu": [
+        "x64"
+      ],
+      "dev": true,
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "win32"
+      ]
+    },
     "node_modules/acorn": {
       "version": "8.14.1",
       "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.1.tgz",
@@ -1128,9 +1619,10 @@
       "license": "MIT"
     },
     "node_modules/debug": {
-      "version": "4.4.0",
-      "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz",
-      "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==",
+      "version": "4.4.1",
+      "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz",
+      "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==",
+      "license": "MIT",
       "dependencies": {
         "ms": "^2.1.3"
       },
@@ -1357,20 +1849,106 @@
         }
       }
     },
-    "node_modules/eslint-config-prettier": {
-      "version": "10.1.5",
-      "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-10.1.5.tgz",
-      "integrity": "sha512-zc1UmCpNltmVY34vuLRV61r1K27sWuX39E+uyUnY8xS2Bex88VV9cugG+UZbRSRGtGyFboj+D8JODyme1plMpw==",
+    "node_modules/eslint-import-context": {
+      "version": "0.1.6",
+      "resolved": "https://registry.npmjs.org/eslint-import-context/-/eslint-import-context-0.1.6.tgz",
+      "integrity": "sha512-/e2ZNPDLCrU8niIy0pddcvXuoO2YrKjf3NAIX+60mHJBT4yv7mqCqvVdyCW2E720e25e4S/1OSVef4U6efGLFg==",
       "dev": true,
       "license": "MIT",
-      "bin": {
-        "eslint-config-prettier": "bin/cli.js"
+      "dependencies": {
+        "get-tsconfig": "^4.10.1",
+        "stable-hash": "^0.0.5"
+      },
+      "engines": {
+        "node": "^12.20.0 || ^14.18.0 || >=16.0.0"
+      },
+      "funding": {
+        "url": "https://opencollective.com/eslint-import-context"
+      },
+      "peerDependencies": {
+        "unrs-resolver": "^1.0.0"
+      },
+      "peerDependenciesMeta": {
+        "unrs-resolver": {
+          "optional": true
+        }
+      }
+    },
+    "node_modules/eslint-import-resolver-node": {
+      "version": "0.3.9",
+      "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz",
+      "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "debug": "^3.2.7",
+        "is-core-module": "^2.13.0",
+        "resolve": "^1.22.4"
+      }
+    },
+    "node_modules/eslint-import-resolver-node/node_modules/debug": {
+      "version": "3.2.7",
+      "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
+      "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "ms": "^2.1.1"
+      }
+    },
+    "node_modules/eslint-plugin-import-x": {
+      "version": "4.13.3",
+      "resolved": "https://registry.npmjs.org/eslint-plugin-import-x/-/eslint-plugin-import-x-4.13.3.tgz",
+      "integrity": "sha512-CDewJDEeYQhm94KGCDYiuwU1SdaWc/vh+SziSKkF7kichAqAFnQYtSYUvSwSBbiBjYLxV5uUxocxxQobRI9YXA==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@typescript-eslint/utils": "^8.32.1",
+        "comment-parser": "^1.4.1",
+        "debug": "^4.4.1",
+        "eslint-import-context": "^0.1.5",
+        "eslint-import-resolver-node": "^0.3.9",
+        "is-glob": "^4.0.3",
+        "minimatch": "^9.0.3 || ^10.0.1",
+        "semver": "^7.7.2",
+        "stable-hash": "^0.0.5",
+        "tslib": "^2.8.1",
+        "unrs-resolver": "^1.7.2"
+      },
+      "engines": {
+        "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
       },
       "funding": {
-        "url": "https://opencollective.com/eslint-config-prettier"
+        "url": "https://opencollective.com/eslint-plugin-import-x"
       },
       "peerDependencies": {
-        "eslint": ">=7.0.0"
+        "eslint": "^8.57.0 || ^9.0.0"
+      }
+    },
+    "node_modules/eslint-plugin-import-x/node_modules/brace-expansion": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
+      "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "balanced-match": "^1.0.0"
+      }
+    },
+    "node_modules/eslint-plugin-import-x/node_modules/minimatch": {
+      "version": "10.0.1",
+      "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.0.1.tgz",
+      "integrity": "sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ==",
+      "dev": true,
+      "license": "ISC",
+      "dependencies": {
+        "brace-expansion": "^2.0.1"
+      },
+      "engines": {
+        "node": "20 || >=22"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/isaacs"
       }
     },
     "node_modules/eslint-plugin-jsdoc": {
@@ -1608,6 +2186,36 @@
       "dev": true,
       "license": "MIT"
     },
+    "node_modules/fast-glob": {
+      "version": "3.3.3",
+      "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz",
+      "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "@nodelib/fs.stat": "^2.0.2",
+        "@nodelib/fs.walk": "^1.2.3",
+        "glob-parent": "^5.1.2",
+        "merge2": "^1.3.0",
+        "micromatch": "^4.0.8"
+      },
+      "engines": {
+        "node": ">=8.6.0"
+      }
+    },
+    "node_modules/fast-glob/node_modules/glob-parent": {
+      "version": "5.1.2",
+      "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
+      "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
+      "dev": true,
+      "license": "ISC",
+      "dependencies": {
+        "is-glob": "^4.0.1"
+      },
+      "engines": {
+        "node": ">= 6"
+      }
+    },
     "node_modules/fast-json-stable-stringify": {
       "version": "2.1.0",
       "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
@@ -1622,6 +2230,16 @@
       "dev": true,
       "license": "MIT"
     },
+    "node_modules/fastq": {
+      "version": "1.19.1",
+      "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.1.tgz",
+      "integrity": "sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==",
+      "dev": true,
+      "license": "ISC",
+      "dependencies": {
+        "reusify": "^1.0.4"
+      }
+    },
     "node_modules/file-entry-cache": {
       "version": "8.0.0",
       "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz",
@@ -1702,6 +2320,16 @@
         "url": "https://github.com/sponsors/isaacs"
       }
     },
+    "node_modules/function-bind": {
+      "version": "1.1.2",
+      "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
+      "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
+      "dev": true,
+      "license": "MIT",
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
     "node_modules/get-east-asian-width": {
       "version": "1.3.0",
       "resolved": "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.3.0.tgz",
@@ -1727,6 +2355,19 @@
         "url": "https://github.com/sponsors/sindresorhus"
       }
     },
+    "node_modules/get-tsconfig": {
+      "version": "4.10.1",
+      "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.10.1.tgz",
+      "integrity": "sha512-auHyJ4AgMz7vgS8Hp3N6HXSmlMdUyhSUrfBF16w153rxtLIEOE+HGqaBppczZvnHLqQJfiHotCYpNhl0lUROFQ==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "resolve-pkg-maps": "^1.0.0"
+      },
+      "funding": {
+        "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1"
+      }
+    },
     "node_modules/github-slugger": {
       "version": "2.0.0",
       "resolved": "https://registry.npmjs.org/github-slugger/-/github-slugger-2.0.0.tgz",
@@ -1816,6 +2457,19 @@
         "node": ">=8"
       }
     },
+    "node_modules/hasown": {
+      "version": "2.0.2",
+      "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz",
+      "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "function-bind": "^1.1.2"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      }
+    },
     "node_modules/hast-util-parse-selector": {
       "version": "4.0.0",
       "resolved": "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-4.0.0.tgz",
@@ -2054,6 +2708,22 @@
         "url": "https://github.com/sponsors/wooorm"
       }
     },
+    "node_modules/is-core-module": {
+      "version": "2.16.1",
+      "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz",
+      "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "hasown": "^2.0.2"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
     "node_modules/is-decimal": {
       "version": "2.0.1",
       "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-2.0.1.tgz",
@@ -2811,6 +3481,16 @@
       "dev": true,
       "license": "MIT"
     },
+    "node_modules/merge2": {
+      "version": "1.4.1",
+      "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
+      "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">= 8"
+      }
+    },
     "node_modules/micromark": {
       "version": "4.0.0",
       "resolved": "https://registry.npmjs.org/micromark/-/micromark-4.0.0.tgz",
@@ -3440,6 +4120,22 @@
       "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
       "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
     },
+    "node_modules/napi-postinstall": {
+      "version": "0.2.4",
+      "resolved": "https://registry.npmjs.org/napi-postinstall/-/napi-postinstall-0.2.4.tgz",
+      "integrity": "sha512-ZEzHJwBhZ8qQSbknHqYcdtQVr8zUgGyM/q6h6qAyhtyVMNrSgDhrC4disf03dYW0e+czXyLnZINnCTEkWy0eJg==",
+      "dev": true,
+      "license": "MIT",
+      "bin": {
+        "napi-postinstall": "lib/cli.js"
+      },
+      "engines": {
+        "node": "^12.20.0 || ^14.18.0 || >=16.0.0"
+      },
+      "funding": {
+        "url": "https://opencollective.com/napi-postinstall"
+      }
+    },
     "node_modules/natural-compare": {
       "version": "1.4.0",
       "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
@@ -3681,6 +4377,13 @@
         "node": ">=8"
       }
     },
+    "node_modules/path-parse": {
+      "version": "1.0.7",
+      "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
+      "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
+      "dev": true,
+      "license": "MIT"
+    },
     "node_modules/path-scurry": {
       "version": "2.0.0",
       "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.0.tgz",
@@ -3775,6 +4478,27 @@
         "node": ">=6"
       }
     },
+    "node_modules/queue-microtask": {
+      "version": "1.2.3",
+      "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
+      "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
+      "dev": true,
+      "funding": [
+        {
+          "type": "github",
+          "url": "https://github.com/sponsors/feross"
+        },
+        {
+          "type": "patreon",
+          "url": "https://www.patreon.com/feross"
+        },
+        {
+          "type": "consulting",
+          "url": "https://feross.org/support"
+        }
+      ],
+      "license": "MIT"
+    },
     "node_modules/reading-time": {
       "version": "1.5.0",
       "resolved": "https://registry.npmjs.org/reading-time/-/reading-time-1.5.0.tgz",
@@ -3958,6 +4682,27 @@
         "url": "https://opencollective.com/unified"
       }
     },
+    "node_modules/resolve": {
+      "version": "1.22.10",
+      "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz",
+      "integrity": "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "is-core-module": "^2.16.0",
+        "path-parse": "^1.0.7",
+        "supports-preserve-symlinks-flag": "^1.0.0"
+      },
+      "bin": {
+        "resolve": "bin/resolve"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
     "node_modules/resolve-from": {
       "version": "4.0.0",
       "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
@@ -3968,6 +4713,16 @@
         "node": ">=4"
       }
     },
+    "node_modules/resolve-pkg-maps": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz",
+      "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==",
+      "dev": true,
+      "license": "MIT",
+      "funding": {
+        "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1"
+      }
+    },
     "node_modules/restore-cursor": {
       "version": "5.1.0",
       "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-5.1.0.tgz",
@@ -3999,16 +4754,51 @@
         "url": "https://github.com/sponsors/sindresorhus"
       }
     },
+    "node_modules/reusify": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz",
+      "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "iojs": ">=1.0.0",
+        "node": ">=0.10.0"
+      }
+    },
     "node_modules/rfdc": {
       "version": "1.4.1",
       "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.4.1.tgz",
       "integrity": "sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==",
       "dev": true
     },
+    "node_modules/run-parallel": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
+      "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
+      "dev": true,
+      "funding": [
+        {
+          "type": "github",
+          "url": "https://github.com/sponsors/feross"
+        },
+        {
+          "type": "patreon",
+          "url": "https://www.patreon.com/feross"
+        },
+        {
+          "type": "consulting",
+          "url": "https://feross.org/support"
+        }
+      ],
+      "license": "MIT",
+      "dependencies": {
+        "queue-microtask": "^1.2.2"
+      }
+    },
     "node_modules/semver": {
-      "version": "7.7.1",
-      "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz",
-      "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==",
+      "version": "7.7.2",
+      "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz",
+      "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==",
       "license": "ISC",
       "bin": {
         "semver": "bin/semver.js"
@@ -4154,6 +4944,13 @@
       "dev": true,
       "license": "CC0-1.0"
     },
+    "node_modules/stable-hash": {
+      "version": "0.0.5",
+      "resolved": "https://registry.npmjs.org/stable-hash/-/stable-hash-0.0.5.tgz",
+      "integrity": "sha512-+L3ccpzibovGXFK+Ap/f8LOS0ahMrHTf3xu7mMLSpEGU0EO9ucaysSylKo9eRDFNhWve/y275iPmIZ4z39a9iA==",
+      "dev": true,
+      "license": "MIT"
+    },
     "node_modules/stack-utils": {
       "version": "2.0.6",
       "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz",
@@ -4363,6 +5160,19 @@
         "node": ">=8"
       }
     },
+    "node_modules/supports-preserve-symlinks-flag": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
+      "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
     "node_modules/terser": {
       "version": "5.31.6",
       "resolved": "https://registry.npmjs.org/terser/-/terser-5.31.6.tgz",
@@ -4420,10 +5230,23 @@
         "url": "https://github.com/sponsors/wooorm"
       }
     },
+    "node_modules/ts-api-utils": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.1.0.tgz",
+      "integrity": "sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ==",
+      "dev": true,
+      "license": "MIT",
+      "engines": {
+        "node": ">=18.12"
+      },
+      "peerDependencies": {
+        "typescript": ">=4.8.4"
+      }
+    },
     "node_modules/tslib": {
-      "version": "2.7.0",
-      "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.7.0.tgz",
-      "integrity": "sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==",
+      "version": "2.8.1",
+      "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz",
+      "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==",
       "license": "0BSD"
     },
     "node_modules/tunnel": {
@@ -4448,6 +5271,21 @@
         "node": ">= 0.8.0"
       }
     },
+    "node_modules/typescript": {
+      "version": "5.8.3",
+      "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.3.tgz",
+      "integrity": "sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==",
+      "dev": true,
+      "license": "Apache-2.0",
+      "peer": true,
+      "bin": {
+        "tsc": "bin/tsc",
+        "tsserver": "bin/tsserver"
+      },
+      "engines": {
+        "node": ">=14.17"
+      }
+    },
     "node_modules/undici": {
       "version": "5.29.0",
       "resolved": "https://registry.npmjs.org/undici/-/undici-5.29.0.tgz",
@@ -4655,6 +5493,39 @@
         "url": "https://opencollective.com/unified"
       }
     },
+    "node_modules/unrs-resolver": {
+      "version": "1.7.5",
+      "resolved": "https://registry.npmjs.org/unrs-resolver/-/unrs-resolver-1.7.5.tgz",
+      "integrity": "sha512-DnuJxogme0dCRIdH+yIwpaNLWfff9DqcpfDh4J8qca17rOnu6e3AfNzB8mnUzjv7EgayXQkwnt1A2vT8BM9ZHA==",
+      "dev": true,
+      "hasInstallScript": true,
+      "license": "MIT",
+      "dependencies": {
+        "napi-postinstall": "^0.2.2"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/JounQin"
+      },
+      "optionalDependencies": {
+        "@unrs/resolver-binding-darwin-arm64": "1.7.5",
+        "@unrs/resolver-binding-darwin-x64": "1.7.5",
+        "@unrs/resolver-binding-freebsd-x64": "1.7.5",
+        "@unrs/resolver-binding-linux-arm-gnueabihf": "1.7.5",
+        "@unrs/resolver-binding-linux-arm-musleabihf": "1.7.5",
+        "@unrs/resolver-binding-linux-arm64-gnu": "1.7.5",
+        "@unrs/resolver-binding-linux-arm64-musl": "1.7.5",
+        "@unrs/resolver-binding-linux-ppc64-gnu": "1.7.5",
+        "@unrs/resolver-binding-linux-riscv64-gnu": "1.7.5",
+        "@unrs/resolver-binding-linux-riscv64-musl": "1.7.5",
+        "@unrs/resolver-binding-linux-s390x-gnu": "1.7.5",
+        "@unrs/resolver-binding-linux-x64-gnu": "1.7.5",
+        "@unrs/resolver-binding-linux-x64-musl": "1.7.5",
+        "@unrs/resolver-binding-wasm32-wasi": "1.7.5",
+        "@unrs/resolver-binding-win32-arm64-msvc": "1.7.5",
+        "@unrs/resolver-binding-win32-ia32-msvc": "1.7.5",
+        "@unrs/resolver-binding-win32-x64-msvc": "1.7.5"
+      }
+    },
     "node_modules/uri-js": {
       "version": "4.4.1",
       "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
diff --git a/package.json b/package.json
index 895ac2ac..623aba33 100644
--- a/package.json
+++ b/package.json
@@ -29,7 +29,7 @@
     "@types/mdast": "^4.0.4",
     "@types/node": "^22.15.3",
     "eslint": "^9.27.0",
-    "eslint-config-prettier": "^10.1.5",
+    "eslint-plugin-import-x": "^4.13.3",
     "eslint-plugin-jsdoc": "^50.6.17",
     "globals": "^16.2.0",
     "husky": "^9.1.7",
diff --git a/shiki.config.mjs b/shiki.config.mjs
index 2bbc8f95..67a2c8ae 100644
--- a/shiki.config.mjs
+++ b/shiki.config.mjs
@@ -12,7 +12,6 @@ import powershellLanguage from 'shiki/langs/powershell.mjs';
 import shellScriptLanguage from 'shiki/langs/shellscript.mjs';
 import shellSessionLanguage from 'shiki/langs/shellsession.mjs';
 import typeScriptLanguage from 'shiki/langs/typescript.mjs';
-
 import lightTheme from 'shiki/themes/catppuccin-latte.mjs';
 import darkTheme from 'shiki/themes/catppuccin-mocha.mjs';
 
diff --git a/src/generators/addon-verify/index.mjs b/src/generators/addon-verify/index.mjs
index 450bf962..ae9b8b78 100644
--- a/src/generators/addon-verify/index.mjs
+++ b/src/generators/addon-verify/index.mjs
@@ -5,8 +5,8 @@ import { join } from 'node:path';
 
 import { visit } from 'unist-util-visit';
 
-import { generateFileList } from './utils/generateFileList.mjs';
 import { EXTRACT_CODE_FILENAME_COMMENT } from './constants.mjs';
+import { generateFileList } from './utils/generateFileList.mjs';
 import {
   generateSectionFolderName,
   isBuildableSection,
diff --git a/src/generators/api-links/index.mjs b/src/generators/api-links/index.mjs
index 93441450..95689be5 100644
--- a/src/generators/api-links/index.mjs
+++ b/src/generators/api-links/index.mjs
@@ -1,10 +1,11 @@
 'use strict';
 
-import { basename, join } from 'node:path';
 import { writeFile } from 'node:fs/promises';
+import { basename, join } from 'node:path';
+
+import { checkIndirectReferences } from './utils/checkIndirectReferences.mjs';
 import { extractExports } from './utils/extractExports.mjs';
 import { findDefinitions } from './utils/findDefinitions.mjs';
-import { checkIndirectReferences } from './utils/checkIndirectReferences.mjs';
 
 /**
  * This generator is responsible for mapping publicly accessible functions in
diff --git a/src/generators/api-links/test/fixtures.test.mjs b/src/generators/api-links/test/fixtures.test.mjs
index 028ea5a9..2284249a 100644
--- a/src/generators/api-links/test/fixtures.test.mjs
+++ b/src/generators/api-links/test/fixtures.test.mjs
@@ -1,6 +1,7 @@
-import { describe, it } from 'node:test';
 import { readdir } from 'node:fs/promises';
 import { basename, extname, join } from 'node:path';
+import { describe, it } from 'node:test';
+
 import astJs from '../../ast-js/index.mjs';
 import apiLinks from '../index.mjs';
 
diff --git a/src/generators/api-links/utils/extractExports.mjs b/src/generators/api-links/utils/extractExports.mjs
index a318c800..60746eca 100644
--- a/src/generators/api-links/utils/extractExports.mjs
+++ b/src/generators/api-links/utils/extractExports.mjs
@@ -1,6 +1,7 @@
 'use strict';
 
 import { visit } from 'estree-util-visit';
+
 import { CONSTRUCTOR_EXPRESSION } from '../constants.mjs';
 
 /**
diff --git a/src/generators/index.mjs b/src/generators/index.mjs
index f6e61891..7e3f3a73 100644
--- a/src/generators/index.mjs
+++ b/src/generators/index.mjs
@@ -1,17 +1,17 @@
 'use strict';
 
+import addonVerify from './addon-verify/index.mjs';
+import apiLinks from './api-links/index.mjs';
+import astJs from './ast-js/index.mjs';
 import jsonSimple from './json-simple/index.mjs';
+import jsxAst from './jsx-ast/index.mjs';
 import legacyHtml from './legacy-html/index.mjs';
 import legacyHtmlAll from './legacy-html-all/index.mjs';
-import manPage from './man-page/index.mjs';
 import legacyJson from './legacy-json/index.mjs';
 import legacyJsonAll from './legacy-json-all/index.mjs';
-import addonVerify from './addon-verify/index.mjs';
-import apiLinks from './api-links/index.mjs';
-import oramaDb from './orama-db/index.mjs';
-import astJs from './ast-js/index.mjs';
 import llmsTxt from './llms-txt/index.mjs';
-import jsxAst from './jsx-ast/index.mjs';
+import manPage from './man-page/index.mjs';
+import oramaDb from './orama-db/index.mjs';
 
 export const publicGenerators = {
   'json-simple': jsonSimple,
diff --git a/src/generators/jsx-ast/index.mjs b/src/generators/jsx-ast/index.mjs
index 15bbe268..2074e184 100644
--- a/src/generators/jsx-ast/index.mjs
+++ b/src/generators/jsx-ast/index.mjs
@@ -1,10 +1,10 @@
+import { buildSideBarDocPages } from './utils/buildBarProps.mjs';
+import buildContent from './utils/buildContent.mjs';
 import {
   getCompatibleVersions,
   groupNodesByModule,
 } from '../../utils/generators.mjs';
-import buildContent from './utils/buildContent.mjs';
 import { getRemarkRecma } from '../../utils/remark.mjs';
-import { buildSideBarDocPages } from './utils/buildBarProps.mjs';
 
 /**
  * This generator generates a JSX AST from an input MDAST
diff --git a/src/generators/jsx-ast/test/utils.test.mjs b/src/generators/jsx-ast/test/utils.test.mjs
index f98c0a4d..3ca31a30 100644
--- a/src/generators/jsx-ast/test/utils.test.mjs
+++ b/src/generators/jsx-ast/test/utils.test.mjs
@@ -1,15 +1,17 @@
-import test from 'node:test';
 import assert from 'node:assert/strict';
+import test from 'node:test';
+
+import remarkParse from 'remark-parse';
+import remarkStringify from 'remark-stringify';
+import { unified } from 'unified';
+
+import { AST_NODE_TYPES } from '../constants.mjs';
+import { createJSXElement } from '../utils/ast.mjs';
 import {
   buildSideBarDocPages,
   buildMetaBarProps,
 } from '../utils/buildBarProps.mjs';
 import buildContent from '../utils/buildContent.mjs';
-import { createJSXElement } from '../utils/ast.mjs';
-import { AST_NODE_TYPES } from '../constants.mjs';
-import { unified } from 'unified';
-import remarkParse from 'remark-parse';
-import remarkStringify from 'remark-stringify';
 
 const sampleEntry = {
   api: 'sample-api',
diff --git a/src/generators/jsx-ast/utils/ast.mjs b/src/generators/jsx-ast/utils/ast.mjs
index e144186d..a3135fe1 100644
--- a/src/generators/jsx-ast/utils/ast.mjs
+++ b/src/generators/jsx-ast/utils/ast.mjs
@@ -1,7 +1,8 @@
 'use strict';
 
-import { u as createTree } from 'unist-builder';
 import { valueToEstree } from 'estree-util-value-to-estree';
+import { u as createTree } from 'unist-builder';
+
 import { AST_NODE_TYPES } from '../constants.mjs';
 
 /**
diff --git a/src/generators/jsx-ast/utils/buildBarProps.mjs b/src/generators/jsx-ast/utils/buildBarProps.mjs
index 0238f381..cae3825e 100644
--- a/src/generators/jsx-ast/utils/buildBarProps.mjs
+++ b/src/generators/jsx-ast/utils/buildBarProps.mjs
@@ -1,5 +1,6 @@
 import readingTime from 'reading-time';
 import { visit } from 'unist-util-visit';
+
 import { DOC_API_BLOB_EDIT_BASE_URL } from '../../../constants.mjs';
 
 /**
diff --git a/src/generators/jsx-ast/utils/buildContent.mjs b/src/generators/jsx-ast/utils/buildContent.mjs
index 627c037f..8f1ac453 100644
--- a/src/generators/jsx-ast/utils/buildContent.mjs
+++ b/src/generators/jsx-ast/utils/buildContent.mjs
@@ -4,8 +4,12 @@ import { h as createElement } from 'hastscript';
 import { u as createTree } from 'unist-builder';
 import { SKIP, visit } from 'unist-util-visit';
 
-import createQueries from '../../../utils/queries/index.mjs';
 import { createJSXElement } from './ast.mjs';
+import { buildMetaBarProps } from './buildBarProps.mjs';
+import { DOC_NODE_BLOB_BASE_URL } from '../../../constants.mjs';
+import { enforceArray } from '../../../utils/array.mjs';
+import { sortChanges } from '../../../utils/generators.mjs';
+import createQueries from '../../../utils/queries/index.mjs';
 import {
   API_ICONS,
   AST_NODE_TYPES,
@@ -13,10 +17,6 @@ import {
   LIFECYCLE_LABELS,
   INTERNATIONALIZABLE,
 } from '../constants.mjs';
-import { DOC_NODE_BLOB_BASE_URL } from '../../../constants.mjs';
-import { sortChanges } from '../../../utils/generators.mjs';
-import { buildMetaBarProps } from './buildBarProps.mjs';
-import { enforceArray } from '../../../utils/array.mjs';
 /**
  * Creates a history of changes for an API element
  * @param {ApiDocMetadataEntry} entry - The metadata entry containing change information
diff --git a/src/generators/jsx-ast/utils/transformer.mjs b/src/generators/jsx-ast/utils/transformer.mjs
index 8f3df55a..70ef2e9a 100644
--- a/src/generators/jsx-ast/utils/transformer.mjs
+++ b/src/generators/jsx-ast/utils/transformer.mjs
@@ -1,4 +1,5 @@
 import { visit } from 'unist-util-visit';
+
 import { TYPE_TRANSFORMS, TAG_TRANSFORMS } from '../constants.mjs';
 
 /**
diff --git a/src/generators/legacy-html-all/index.mjs b/src/generators/legacy-html-all/index.mjs
index 77f8da7e..407416e5 100644
--- a/src/generators/legacy-html-all/index.mjs
+++ b/src/generators/legacy-html-all/index.mjs
@@ -5,11 +5,10 @@ import { join, resolve } from 'node:path';
 
 import { minify } from 'html-minifier-terser';
 
+import { getRemarkRehype } from '../../utils/remark.mjs';
 import dropdowns from '../legacy-html/utils/buildDropdowns.mjs';
 import tableOfContents from '../legacy-html/utils/tableOfContents.mjs';
 
-import { getRemarkRehype } from '../../utils/remark.mjs';
-
 /**
  * @typedef {{
  * api: string;
diff --git a/src/generators/legacy-html/index.mjs b/src/generators/legacy-html/index.mjs
index 77aefb6c..f3a4312b 100644
--- a/src/generators/legacy-html/index.mjs
+++ b/src/generators/legacy-html/index.mjs
@@ -8,7 +8,6 @@ import { minify } from 'html-minifier-terser';
 import buildContent from './utils/buildContent.mjs';
 import dropdowns from './utils/buildDropdowns.mjs';
 import tableOfContents from './utils/tableOfContents.mjs';
-
 import { groupNodesByModule } from '../../utils/generators.mjs';
 import { getRemarkRehype } from '../../utils/remark.mjs';
 
diff --git a/src/generators/legacy-html/utils/buildContent.mjs b/src/generators/legacy-html/utils/buildContent.mjs
index aed07aac..46c230b5 100644
--- a/src/generators/legacy-html/utils/buildContent.mjs
+++ b/src/generators/legacy-html/utils/buildContent.mjs
@@ -5,10 +5,8 @@ import { u as createTree } from 'unist-builder';
 import { SKIP, visit } from 'unist-util-visit';
 
 import buildExtraContent from './buildExtraContent.mjs';
-
-import createQueries from '../../../utils/queries/index.mjs';
-
 import { DOC_NODE_BLOB_BASE_URL } from '../../../constants.mjs';
+import createQueries from '../../../utils/queries/index.mjs';
 
 /**
  * Builds a Markdown heading for a given node
diff --git a/src/generators/legacy-html/utils/buildDropdowns.mjs b/src/generators/legacy-html/utils/buildDropdowns.mjs
index 0a45873f..87e62018 100644
--- a/src/generators/legacy-html/utils/buildDropdowns.mjs
+++ b/src/generators/legacy-html/utils/buildDropdowns.mjs
@@ -1,14 +1,13 @@
 'use strict';
 
-import {
-  getCompatibleVersions,
-  getVersionFromSemVer,
-} from '../../../utils/generators.mjs';
-
 import {
   DOC_API_BASE_URL_VERSION,
   DOC_API_BLOB_EDIT_BASE_URL,
 } from '../../../constants.mjs';
+import {
+  getCompatibleVersions,
+  getVersionFromSemVer,
+} from '../../../utils/generators.mjs';
 
 /**
  * Builds the Dropdown for the current Table of Contents
diff --git a/src/generators/legacy-json/index.mjs b/src/generators/legacy-json/index.mjs
index add7ff87..367e7c20 100644
--- a/src/generators/legacy-json/index.mjs
+++ b/src/generators/legacy-json/index.mjs
@@ -2,8 +2,9 @@
 
 import { writeFile } from 'node:fs/promises';
 import { join } from 'node:path';
-import { groupNodesByModule } from '../../utils/generators.mjs';
+
 import { createSectionBuilder } from './utils/buildSection.mjs';
+import { groupNodesByModule } from '../../utils/generators.mjs';
 
 /**
  * This generator is responsible for generating the legacy JSON files for the
diff --git a/src/generators/legacy-json/utils/buildSection.mjs b/src/generators/legacy-json/utils/buildSection.mjs
index e73f7c1a..f70c3de3 100644
--- a/src/generators/legacy-json/utils/buildSection.mjs
+++ b/src/generators/legacy-json/utils/buildSection.mjs
@@ -1,9 +1,9 @@
 import { buildHierarchy } from './buildHierarchy.mjs';
+import { parseList } from './parseList.mjs';
+import { enforceArray } from '../../../utils/array.mjs';
 import { getRemarkRehype } from '../../../utils/remark.mjs';
 import { transformNodesToString } from '../../../utils/unist.mjs';
-import { parseList } from './parseList.mjs';
 import { SECTION_TYPE_PLURALS, UNPROMOTED_KEYS } from '../constants.mjs';
-import { enforceArray } from '../../../utils/array.mjs';
 
 /**
  *
diff --git a/src/generators/man-page/index.mjs b/src/generators/man-page/index.mjs
index f0bd846f..7b4469a7 100644
--- a/src/generators/man-page/index.mjs
+++ b/src/generators/man-page/index.mjs
@@ -3,13 +3,12 @@
 import { writeFile, readFile } from 'node:fs/promises';
 import { join } from 'node:path';
 
+import { DOC_SLUG_ENVIRONMENT, DOC_SLUG_OPTIONS } from './constants.mjs';
 import {
   convertOptionToMandoc,
   convertEnvVarToMandoc,
 } from './utils/converter.mjs';
 
-import { DOC_SLUG_ENVIRONMENT, DOC_SLUG_OPTIONS } from './constants.mjs';
-
 /**
  * This generator generates a man page version of the CLI.md file.
  * See https://man.openbsd.org/mdoc.7 for the formatting.
diff --git a/src/index.mjs b/src/index.mjs
deleted file mode 100644
index da9a5fa5..00000000
--- a/src/index.mjs
+++ /dev/null
@@ -1,10 +0,0 @@
-export * as constants from './constants.mjs';
-export { default as generators } from './generators/index.mjs';
-export { default as createGenerator } from './generators.mjs';
-export * from './loaders/markdown.mjs';
-export * from './loaders/javascript.mjs';
-export { default as createMetadata } from './metadata.mjs';
-export * from './parsers/markdown.mjs';
-export * from './parsers/javascript.mjs';
-export { default as createQueries } from './queries.mjs';
-export { default as createNodeReleases } from './releases.mjs';
diff --git a/src/linter/rules/duplicate-stability-nodes.mjs b/src/linter/rules/duplicate-stability-nodes.mjs
index eea43613..8c32bbb1 100644
--- a/src/linter/rules/duplicate-stability-nodes.mjs
+++ b/src/linter/rules/duplicate-stability-nodes.mjs
@@ -1,8 +1,9 @@
 'use strict';
 
+import { visit } from 'unist-util-visit';
+
 import createQueries from '../../utils/queries/index.mjs';
 import { LINT_MESSAGES } from '../constants.mjs';
-import { visit } from 'unist-util-visit';
 
 /**
  * Checks if there are multiple stability nodes within a chain.
diff --git a/src/linter/rules/invalid-change-version.mjs b/src/linter/rules/invalid-change-version.mjs
index edd28584..d5f980c7 100644
--- a/src/linter/rules/invalid-change-version.mjs
+++ b/src/linter/rules/invalid-change-version.mjs
@@ -1,15 +1,16 @@
-import { valid, parse } from 'semver';
 import { env } from 'node:process';
+
+import { valid, parse } from 'semver';
 import { visit } from 'unist-util-visit';
 import yaml from 'yaml';
 
-import createQueries from '../../utils/queries/index.mjs';
+import { enforceArray } from '../../utils/array.mjs';
 import {
   extractYamlContent,
   normalizeYamlSyntax,
 } from '../../utils/parser/index.mjs';
+import createQueries from '../../utils/queries/index.mjs';
 import { LINT_MESSAGES } from '../constants.mjs';
-import { enforceArray } from '../../utils/array.mjs';
 
 const NODE_RELEASED_VERSIONS = env.NODE_RELEASED_VERSIONS?.split(',');
 
diff --git a/src/linter/tests/index.test.mjs b/src/linter/tests/index.test.mjs
index de4c9768..29831275 100644
--- a/src/linter/tests/index.test.mjs
+++ b/src/linter/tests/index.test.mjs
@@ -1,15 +1,16 @@
-import { describe, mock, it } from 'node:test';
 import assert from 'node:assert/strict';
+import { describe, mock, it } from 'node:test';
+
 import { VFile } from 'vfile';
 
-import createLinter from '../index.mjs';
-import { errorIssue, infoIssue, warnIssue } from './fixtures/issues.mjs';
 import createContext from '../context.mjs';
+import createLinter from '../index.mjs';
 import {
   errorDescriptor,
   infoDescriptor,
   warnDescriptor,
 } from './fixtures/descriptors.mjs';
+import { errorIssue, infoIssue, warnIssue } from './fixtures/issues.mjs';
 import { emptyTree } from './fixtures/tree.mjs';
 
 describe('createLinter', () => {
diff --git a/src/linter/tests/reporters/console.test.mjs b/src/linter/tests/reporters/console.test.mjs
index faa04235..1fe1209b 100644
--- a/src/linter/tests/reporters/console.test.mjs
+++ b/src/linter/tests/reporters/console.test.mjs
@@ -1,5 +1,6 @@
-import { describe, it } from 'node:test';
 import assert from 'node:assert';
+import { describe, it } from 'node:test';
+
 import reporter from '../../reporters/console.mjs';
 import { errorIssue, infoIssue, warnIssue } from '../fixtures/issues.mjs';
 
diff --git a/src/linter/tests/reporters/github.test.mjs b/src/linter/tests/reporters/github.test.mjs
index 5de47858..5a02a03d 100644
--- a/src/linter/tests/reporters/github.test.mjs
+++ b/src/linter/tests/reporters/github.test.mjs
@@ -1,6 +1,7 @@
+import assert from 'node:assert';
 import { describe, it } from 'node:test';
+
 import github from '../../reporters/github.mjs';
-import assert from 'node:assert';
 import { errorIssue, infoIssue, warnIssue } from '../fixtures/issues.mjs';
 
 describe('github', () => {
diff --git a/src/linter/tests/rules/duplicate-stability-nodes.test.mjs b/src/linter/tests/rules/duplicate-stability-nodes.test.mjs
index dc7ebe90..b3f4a010 100644
--- a/src/linter/tests/rules/duplicate-stability-nodes.test.mjs
+++ b/src/linter/tests/rules/duplicate-stability-nodes.test.mjs
@@ -1,7 +1,8 @@
-import { describe, it, mock } from 'node:test';
 import { deepStrictEqual, strictEqual } from 'node:assert';
-import { duplicateStabilityNodes } from '../../rules/duplicate-stability-nodes.mjs';
+import { describe, it, mock } from 'node:test';
+
 import { LINT_MESSAGES } from '../../constants.mjs';
+import { duplicateStabilityNodes } from '../../rules/duplicate-stability-nodes.mjs';
 
 // Mock data structure for creating test entries
 const createStabilityNode = (value, line = 1, column = 1) => ({
diff --git a/src/linter/tests/rules/invalid-change-version.test.mjs b/src/linter/tests/rules/invalid-change-version.test.mjs
index c51ad99e..bf9e1d60 100644
--- a/src/linter/tests/rules/invalid-change-version.test.mjs
+++ b/src/linter/tests/rules/invalid-change-version.test.mjs
@@ -1,11 +1,13 @@
-import { describe, it, mock } from 'node:test';
-import { invalidChangeVersion } from '../../rules/invalid-change-version.mjs';
 import { deepStrictEqual, strictEqual } from 'node:assert';
-import dedent from 'dedent';
 import { spawnSync } from 'node:child_process';
 import { execPath } from 'node:process';
+import { describe, it, mock } from 'node:test';
 import { fileURLToPath } from 'node:url';
 
+import dedent from 'dedent';
+
+import { invalidChangeVersion } from '../../rules/invalid-change-version.mjs';
+
 describe('invalidChangeVersion', () => {
   it('should not report if all change versions are non-empty', () => {
     const yamlContent = dedent`
diff --git a/src/loaders/javascript.mjs b/src/loaders/javascript.mjs
index 9a60be58..78fd2c45 100644
--- a/src/loaders/javascript.mjs
+++ b/src/loaders/javascript.mjs
@@ -2,8 +2,8 @@
 
 import { readFile } from 'node:fs/promises';
 import { extname } from 'node:path';
-import { globSync } from 'glob';
 
+import { globSync } from 'glob';
 import { VFile } from 'vfile';
 
 /**
diff --git a/src/loaders/markdown.mjs b/src/loaders/markdown.mjs
index ed1073c9..4c25ac9f 100644
--- a/src/loaders/markdown.mjs
+++ b/src/loaders/markdown.mjs
@@ -2,8 +2,8 @@
 
 import { readFile } from 'node:fs/promises';
 import { extname } from 'node:path';
-import { globSync } from 'glob';
 
+import { globSync } from 'glob';
 import { VFile } from 'vfile';
 
 /**
diff --git a/src/metadata.mjs b/src/metadata.mjs
index 472267c0..f4e204df 100644
--- a/src/metadata.mjs
+++ b/src/metadata.mjs
@@ -1,6 +1,7 @@
 'use strict';
 
 import { u as createTree } from 'unist-builder';
+
 import { sortChanges } from './utils/generators.mjs';
 
 /**
diff --git a/src/parsers/markdown.mjs b/src/parsers/markdown.mjs
index e0e7f229..08fac906 100644
--- a/src/parsers/markdown.mjs
+++ b/src/parsers/markdown.mjs
@@ -8,7 +8,6 @@ import { SKIP, visit } from 'unist-util-visit';
 
 import createMetadata from '../metadata.mjs';
 import createQueries from '../utils/queries/index.mjs';
-
 import { getRemark } from '../utils/remark.mjs';
 import { createNodeSlugger } from '../utils/slugger/index.mjs';
 
diff --git a/src/test/man-page.test.mjs b/src/test/man-page.test.mjs
index 3c349fbe..351f4534 100644
--- a/src/test/man-page.test.mjs
+++ b/src/test/man-page.test.mjs
@@ -1,12 +1,14 @@
 import { strictEqual } from 'node:assert';
 import { describe, it } from 'node:test';
+
+import { u } from 'unist-builder';
+
 import {
   convertNodeToMandoc,
   flagValueToMandoc,
   convertOptionToMandoc,
   convertEnvVarToMandoc,
 } from '../generators/man-page/utils/converter.mjs';
-import { u } from 'unist-builder';
 
 const textNode = text => u('text', text);
 
diff --git a/src/test/metadata.test.mjs b/src/test/metadata.test.mjs
index f1c86a3a..8cafb4ab 100644
--- a/src/test/metadata.test.mjs
+++ b/src/test/metadata.test.mjs
@@ -1,10 +1,11 @@
 import { strictEqual, deepStrictEqual } from 'node:assert';
 import { describe, it } from 'node:test';
+
 import GitHubSlugger from 'github-slugger';
+import { u } from 'unist-builder';
 import { VFile } from 'vfile';
 
 import createMetadata from '../metadata.mjs';
-import { u } from 'unist-builder';
 
 describe('createMetadata', () => {
   it('should set the heading correctly', () => {
diff --git a/src/threading/worker.mjs b/src/threading/worker.mjs
index 73bbc29a..ab107eac 100644
--- a/src/threading/worker.mjs
+++ b/src/threading/worker.mjs
@@ -1,4 +1,5 @@
 import { parentPort, workerData } from 'node:worker_threads';
+
 import { allGenerators } from '../generators/index.mjs';
 
 const { name, dependencyOutput, extra } = workerData;
diff --git a/src/utils/highlighter.mjs b/src/utils/highlighter.mjs
index 9ad32c8d..fd02ce09 100644
--- a/src/utils/highlighter.mjs
+++ b/src/utils/highlighter.mjs
@@ -1,12 +1,10 @@
 'use strict';
 
-import { h as createElement } from 'hastscript';
-
-import { toString } from 'hast-util-to-string';
-import { SKIP, visit } from 'unist-util-visit';
-
 import { createHighlighterCoreSync } from '@shikijs/core';
 import { createJavaScriptRegexEngine } from '@shikijs/engine-javascript';
+import { toString } from 'hast-util-to-string';
+import { h as createElement } from 'hastscript';
+import { SKIP, visit } from 'unist-util-visit';
 
 import shikiConfig from '../../shiki.config.mjs';
 
diff --git a/src/utils/queries/index.mjs b/src/utils/queries/index.mjs
index a5a38c20..6f8875e6 100644
--- a/src/utils/queries/index.mjs
+++ b/src/utils/queries/index.mjs
@@ -4,9 +4,6 @@ import { u as createTree } from 'unist-builder';
 import { SKIP } from 'unist-util-visit';
 
 import { DOC_API_STABILITY_SECTION_REF_URL } from './constants.mjs';
-
-import { transformNodesToString } from '../unist.mjs';
-
 import {
   extractYamlContent,
   parseHeadingIntoMetadata,
@@ -14,6 +11,7 @@ import {
   transformTypeToReferenceLink,
 } from '../parser/index.mjs';
 import { getRemark } from '../remark.mjs';
+import { transformNodesToString } from '../unist.mjs';
 
 /**
  * Creates an instance of the Query Manager, which allows to do multiple sort
diff --git a/src/utils/remark.mjs b/src/utils/remark.mjs
index 20cca2f6..b8c0ccf4 100644
--- a/src/utils/remark.mjs
+++ b/src/utils/remark.mjs
@@ -1,21 +1,18 @@
 'use strict';
 
-import { unified } from 'unified';
-
+import rehypeShikiji from '@node-core/rehype-shiki';
+import recmaJsx from 'recma-jsx';
+import rehypeRecma from 'rehype-recma';
+import rehypeStringify from 'rehype-stringify';
 import remarkGfm from 'remark-gfm';
 import remarkParse from 'remark-parse';
 import remarkRehype from 'remark-rehype';
 import remarkStringify from 'remark-stringify';
-
-import rehypeRecma from 'rehype-recma';
-import rehypeStringify from 'rehype-stringify';
-
-import recmaJsx from 'recma-jsx';
+import { unified } from 'unified';
 
 import syntaxHighlighter from './highlighter.mjs';
-import transformElements from '../generators/jsx-ast/utils/transformer.mjs';
 import { AST_NODE_TYPES } from '../generators/jsx-ast/constants.mjs';
-import rehypeShikiji from '@node-core/rehype-shiki';
+import transformElements from '../generators/jsx-ast/utils/transformer.mjs';
 
 /**
  * Retrieves an instance of Remark configured to parse GFM (GitHub Flavored Markdown)
diff --git a/src/utils/tests/queries.test.mjs b/src/utils/tests/queries.test.mjs
index 685c9178..a919c60a 100644
--- a/src/utils/tests/queries.test.mjs
+++ b/src/utils/tests/queries.test.mjs
@@ -1,5 +1,6 @@
 import { strictEqual, deepStrictEqual } from 'node:assert';
 import { describe, it } from 'node:test';
+
 import createQueries from '../queries/index.mjs';
 
 describe('createQueries', () => {