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', () => {