{
    "$schema": "https://www.schemastore.org/package.json",
    "name": "eslint-plugin-typefest",
    "version": "1.2.10",
    "private": false,
    "description": "ESLint rules for adopting type-fest and ts-extras conventions.",
    "keywords": [
        "eslint",
        "eslint-plugin",
        "eslintplugin",
        "type-fest",
        "ts-extras",
        "typescript"
    ],
    "homepage": "https://nick2bad4u.github.io/eslint-plugin-typefest/",
    "bugs": {
        "url": "https://github.com/Nick2bad4u/eslint-plugin-typefest/issues",
        "email": "20943337+Nick2bad4u@users.noreply.github.com"
    },
    "repository": {
        "type": "git",
        "url": "git+https://github.com/Nick2bad4u/eslint-plugin-typefest.git"
    },
    "license": "MIT",
    "author": "Nick2bad4u <20943337+Nick2bad4u@users.noreply.github.com> (https://github.com/Nick2bad4u)",
    "contributors": [
        {
            "name": "Nick2bad4u",
            "email": "20943337+Nick2bad4u@users.noreply.github.com",
            "url": "https://github.com/Nick2bad4u"
        }
    ],
    "sideEffects": false,
    "type": "module",
    "exports": {
        ".": {
            "import": {
                "types": "./dist/plugin.d.ts",
                "default": "./dist/plugin.js"
            },
            "require": {
                "types": "./dist/plugin.d.cts",
                "default": "./dist/plugin.cjs"
            },
            "default": "./dist/plugin.js"
        },
        "./package.json": "./package.json"
    },
    "main": "./dist/plugin.cjs",
    "types": "./dist/plugin.d.ts",
    "files": [
        "dist",
        "docs/rules/**",
        "CHANGELOG.md"
    ],
    "workspaces": [
        "docs/docusaurus"
    ],
    "scripts": {
        "prebench": "npm run build",
        "bench": "node benchmarks/run-eslint-stats.mjs",
        "prebench:compare": "npm run build",
        "bench:compare": "node benchmarks/run-eslint-stats.mjs --iterations=6 --warmup=2 --compare=coverage/benchmarks/eslint-stats.json",
        "prebench:eslint:stats": "npm run build",
        "bench:eslint:stats": "node benchmarks/run-eslint-stats.mjs",
        "prebench:eslint:timing": "npm run build",
        "bench:eslint:timing": "cross-env TIMING=all eslint --config benchmarks/eslint-timing.config.mjs --stats \"test/fixtures/typed/*.invalid.ts\"",
        "prebench:rule-benchmark": "npm run build",
        "bench:rule-benchmark": "eslint-rule-benchmark run",
        "prebench:ui": "npm run build",
        "bench:ui": "vitest bench --ui",
        "prebench:watch": "npm run build",
        "bench:watch": "vitest bench",
        "build": "tsc -b tsconfig.build.json --force && npm run build:types:cjs && npm run build:cjs",
        "build:cjs": "esbuild dist/plugin.js --bundle --format=cjs --platform=node --packages=external --sourcemap --outfile=dist/plugin.cjs --footer:js=\"module.exports = module.exports.default;\"",
        "build:clean": "node -e \"require('node:fs').rmSync('dist',{recursive:true,force:true})\"",
        "build:eslint-inspector": "npx -y @eslint/config-inspector@latest build --outDir \"docs/docusaurus/static/eslint-inspector\" --base \"/eslint-plugin-typefest/eslint-inspector/\"",
        "build:eslint-inspector:local": "npx @eslint/config-inspector",
        "build:stylelint-inspector": "npx -y stylelint-config-inspector@latest build --outDir \"docs/docusaurus/static/stylelint-inspector\" --base \"/eslint-plugin-typefest/stylelint-inspector/\"",
        "build:stylelint-inspector:local": "npx stylelint-config-inspector@latest",
        "build:types:cjs": "node -e \"require('node:fs').copyFileSync('dist/plugin.d.ts','dist/plugin.d.cts')\"",
        "changelog": "git-cliff --config cliff.toml --current",
        "changelog:generate": "git-cliff --config cliff.toml --output CHANGELOG.md",
        "changelog:preview": "git-cliff --config cliff.toml --unreleased",
        "changelog:release-notes": "git-cliff --config cliff.toml --current --strip all",
        "clean:cache": "del-cli dist coverage cache .cache .vite .turbo",
        "clean:cache:coverage": "del-cli coverage .coverage",
        "clean:cache:dist": "del-cli dist release",
        "clean:cache:eslint": "del-cli .cache/.eslintcache",
        "clean:cache:ncu": "del-cli .cache/.ncu-cache.json",
        "clean:cache:prettier": "del-cli .cache/.prettier-cache .prettier-cache .prettiercache",
        "clean:cache:stryker": "del-cli .stryker-tmp",
        "clean:cache:stylelint": "del-cli .cache/stylelintcache stylelintcache .stylelintcache",
        "clean:cache:temp": "del-cli \".temp/**\"",
        "clean:cache:typescript": "del-cli .cache/**.tsbuildinfo .cache/builds",
        "clean:cache:vite": "del-cli .cache/vite .cache/vitest .cache/vitest-zero-coverage .cache/vite-zero-coverage",
        "clean:database": "del-cli %appdata%/uptime-watcher/uptime-watcher.sqlite",
        "clean:docs": "del-cli docs/docusaurus/.docusaurus/** docs/docusaurus/build/** docs/docusaurus/site-docs/developer/api/**",
        "clean:docusaurus": "npm run clean:docs && npm run --workspace docs/docusaurus clear",
        "cognitive-complexity": "cognitive-complexity-ts --threshold 10",
        "precommit": "npm run sync:rules:write",
        "commit": "git-cz",
        "contrib": "all-contributors",
        "contrib:add": "all-contributors add",
        "contrib:check": "all-contributors check",
        "contrib:compare": "npm run contrib:check",
        "contrib:generate": "all-contributors generate",
        "coverage": "vitest run --coverage",
        "docs:api": "npm run --workspace docs/docusaurus docs:api",
        "docs:api:local": "npm run --workspace docs/docusaurus docs:api:local",
        "docs:build": "npm run --workspace docs/docusaurus build",
        "docs:build:local": "npm run --workspace docs/docusaurus build:local",
        "docs:check-links": "npm run docs:api && node ./scripts/check-doc-links.mjs",
        "docs:devtools:metadata": "node scripts/generate-devtools-workspace-metadata.mjs",
        "docs:serve": "npm run --workspace docs/docusaurus serve",
        "docs:start": "npm run --workspace docs/docusaurus start",
        "docs:start:devtools": "npm run docs:devtools:metadata && npm run docs:api:local && npm run --workspace docs/docusaurus start:devtools",
        "docs:toc": "remark docs --use remark-toc --output",
        "docs:typecheck": "npm run --workspace docs/docusaurus typecheck",
        "docs:typedoc": "npm run --workspace docs/docusaurus docs:api",
        "docs:typedoc:local": "npm run --workspace docs/docusaurus docs:api:local",
        "docs:validate-links": "remark docs --use remark-validate-links --frail",
        "knip": "cross-env NODE_OPTIONS=--max_old_space_size=4096 NODE_NO_WARNINGS=1 npx knip -c knip.config.ts --cache --cache-location .cache/knip --tsConfig tsconfig.json",
        "lint": "cross-env NODE_OPTIONS=--max_old_space_size=16384 eslint . --cache --cache-strategy content --cache-location .cache/.eslintcache",
        "lint:action": "npm run lint:actions",
        "lint:actions": "node scripts/lint-actionlint.mjs",
        "lint:all": "npm run lint && npm run typecheck && npm run lint:css && npm run lint:prettier && npm run lint:remark && npm run lint:package && npm run lint:secretlint && npm run lint:gitleaks && npm run lint:yaml && npm run lint:yamllint && npm run lint:actions && npm run lint:circular && npm run sync:rules:check",
        "lint:all:fix": "npm run lint:fix && npm run typecheck && npm run lint:css:fix && npm run lint:prettier:fix && npm run lint:remark && npm run lint:package && npm run lint:secretlint && npm run lint:gitleaks && npm run lint:yaml:fix && npm run lint:yamllint && npm run lint:actions && npm run lint:circular && npm run sync:rules:write",
        "lint:all:fix:quiet": "npm run lint:fix:quiet && npm run typecheck && npm run lint:css:fix && npm run lint:prettier:fix && npm run lint:remark && npm run lint:package && npm run lint:secretlint && npm run lint:gitleaks && npm run lint:yaml:fix && npm run lint:yamllint && npm run lint:actions && npm run lint:circular && npm run sync:rules:write",
        "lint:circular": "npm run madge:circular",
        "lint:compat:eslint9": "node scripts/eslint9-compat-smoke.mjs",
        "lint:config:build": "npm run build:eslint-inspector",
        "lint:config:inspect": "npx eslint --inspect-config",
        "lint:css": "stylelint --cache --config stylelint.config.mjs --cache-strategy content --cache-location .cache/stylelintcache src/ docs/ --custom-formatter stylelint-formatter-pretty && echo \"Stylelint done!\"",
        "lint:css:fix": "stylelint --cache --config stylelint.config.mjs --cache-strategy content --cache-location .cache/stylelintcache src/ docs/ --custom-formatter stylelint-formatter-pretty --fix && echo \"Stylelint done!\"",
        "lint:depcheck": "npm run knip -- --dependencies",
        "lint:deps": "npm run knip -- --dependencies",
        "lint:dupes": "jscpd src/ --config jscpd.json",
        "lint:dupes:all": "jscpd src/ --config jscpd.json --min-lines 3",
        "lint:dupes:skiplocal": "jscpd src/ --skipLocal --config jscpd.json",
        "lint:dupes:skiplocal:all": "jscpd src/ --skipLocal --config jscpd.json --min-lines 3",
        "lint:duplicates": "npm run lint:dupes",
        "lint:exports": "ts-unused-exports tsconfig.json src/plugin.ts --excludePathsFromReport=plugin.ts",
        "lint:fix": "cross-env NODE_OPTIONS=--max_old_space_size=16384 eslint . --cache --cache-strategy content --cache-location .cache/.eslintcache --fix",
        "lint:fix:quiet": "cross-env ESLINT_PROGRESS=off NODE_OPTIONS=--max_old_space_size=16384 eslint . --cache --cache-strategy content --cache-location .cache/.eslintcache --fix && echo \"Eslint fix done!\"",
        "lint:gitleaks": "gitleaks detect --config .gitleaks.toml --no-banner --redact --source .",
        "lint:grype": "grype . -c .grype.yaml --name eslint-plugin-typefest",
        "lint:knip": "npm run knip",
        "lint:knip:exports": "npm run knip -- --include exports,nsExports,classMembers,types,nsTypes,enumMembers,duplicates",
        "lint:knip:unused:exports": "npm run knip -- --dependencies --exports",
        "lint:leaves": "npm run madge:leaves",
        "lint:metrics": "npm run sloc",
        "lint:nocache": "cross-env NODE_OPTIONS=--max_old_space_size=16384 eslint .",
        "lint:node-version-files": "node scripts/sync-node-version-files.mjs --check",
        "lint:orphans": "npm run madge:orphans",
        "lint:package": "npm run lint:node-version-files && npm run lint:package-sort && npm run lint:packagelintrc && echo \"Package.json lint done!\"",
        "lint:package:strict": "npm run lint:node-version-files && npm run lint:package-sort && npm run lint:package-check:strict && npm run lint:packagelintrc && echo \"Package.json lint done!\"",
        "lint:package-check": "publint && attw --pack .",
        "lint:package-check:strict": "publint && attw --pack . --profile strict",
        "lint:package-sort": "sort-package-json \"./package.json\" \"./docs/docusaurus/package.json\"",
        "lint:package-sort-check": "sort-package-json --check \"./package.json\" \"./docs/docusaurus/package.json\"",
        "lint:packagelintrc": "npmPkgJsonLint . --config .npmpackagejsonlintrc.json",
        "lint:prettier": "prettier . --log-level warn --cache --cache-location=.cache/.prettier-cache --cache-strategy=content --check",
        "lint:prettier:fix": "prettier . --log-level warn --cache --cache-location=.cache/.prettier-cache --cache-strategy=content --write",
        "lint:publint": "publint",
        "lint:quiet": "cross-env ESLINT_PROGRESS=nofile NODE_OPTIONS=--max_old_space_size=16384 eslint . --cache --cache-strategy content --cache-location .cache/.eslintcache && echo \"Eslint done!\"",
        "lint:remark": "remark --rc-path .remarkrc.mjs --silently-ignore --ignore-path .remarkignore --frail \"*.{md,mdx}\" \"docs/**/*.{md,mdx}\" --quiet",
        "lint:remark:fix": "prettier --log-level warn --ignore-path prettierignore.remark --cache --cache-location=.cache/.prettier-cache --cache-strategy=content --no-error-on-unmatched-pattern --write \"*.{md,mdx}\" \"docs/**/*.{md,mdx}\" && npm run remark:fix",
        "lint:secretlint": "secretlint --secretlintrc .secretlintrc.cjs --secretlintignore .secretlintignore \"./*\" \".vscode/**\" \"assets/**\" \"src/**\" \"electron/**\" \"shared/**\" \"config/**\" \"scripts/**\" \"playwright/**\" \"storybook/**\" \".storybook\" \"tests/**\" \"benchmarks/**\" \".devin/**\" \"public/**\" \".github/**\" \"docs/Architecture/**\" \"docs/*\" \"docs/assets/**\" \"docs/Guides/**\" \"docs/Testing/**\" \"docs/TSDoc/**\" \"docs/docusaurus/src/**\" \"docs/docusaurus/static/**\" \"docs/docusaurus/blog/**\" \"docs/docusaurus/docs/**\" \"docs/docusaurus/docs/*\"",
        "lint:secrets": "detect-secrets scan",
        "lint:unused": "npm run knip -- --include unlisted,unresolved,duplicates",
        "lint:unused-deps": "npm run knip -- --dependencies",
        "lint:yaml": "cross-env NODE_OPTIONS=--max_old_space_size=16384 eslint --cache --cache-strategy content --cache-location .cache/.eslintcache \"**/*.{yml,yaml}\" && echo \"YAML lint done!\"",
        "lint:yaml:fix": "cross-env NODE_OPTIONS=--max_old_space_size=16384 eslint --cache --cache-strategy content --cache-location .cache/.eslintcache --fix \"**/*.{yml,yaml}\" && echo \"YAML lint (fix) done!\"",
        "lint:yamllint": "yamllint .",
        "madge:circular": "madge --circular --json --no-spinner --ts-config tsconfig.json --extensions ts,tsx,js,jsx,mjs,cjs,cts,mts ./src --exclude \"(^|[\\/])(test|dist|node_modules|cache|.cache|coverage|build|eslint-inspector|temp|.docusaurus)($|[\\/])|\\.css$\"",
        "madge:leaves": "madge --leaves --no-spinner --ts-config tsconfig.json --extensions ts,tsx,js,jsx,mjs,cjs,cts,mts ./src --exclude \"(^|[\\/])(test|dist|node_modules|cache|.cache|coverage|build|eslint-inspector|temp|.docusaurus)($|[\\/])|\\.css$\"",
        "madge:orphans": "madge --orphans --no-spinner --ts-config tsconfig.json --extensions ts,tsx,js,jsx,mjs,cjs,cts,mts ./src --exclude \"(^|[\\/])(test|dist|node_modules|cache|.cache|coverage|build|eslint-inspector|temp|.docusaurus)($|[\\/])|\\.css$\"",
        "open:coverage": "open-cli coverage/index.html",
        "prepublishOnly": "npm run release:check",
        "release:check": "npm run release:verify",
        "release:verify": "cross-env NODE_OPTIONS= npm run build && cross-env NODE_OPTIONS= npm run lint:nocache && cross-env NODE_OPTIONS= npm run typecheck && cross-env NODE_OPTIONS= VITEST_TYPECHECK=false npm run test && cross-env NODE_OPTIONS= npm run sync:rules:check && cross-env NODE_OPTIONS= npm run docs:check-links && cross-env NODE_OPTIONS= npm run lint:package:strict",
        "remark:fix": "remark --rc-path .remarkrc.mjs --silently-ignore --ignore-path .remarkignore --frail --quiet --output -- \"*.{md,mdx}\" \"docs/**/*.{md,mdx}\"",
        "remark:test-config": "remark --rc-path .remarkrc.mjs --silently-ignore --ignore-path .remarkignore --frail \"README.md\"",
        "size": "size-limit",
        "sync:node-version-files": "node scripts/sync-node-version-files.mjs",
        "sync:peer-eslint-range": "node scripts/sync-peer-eslint-range.mjs",
        "sync:presets-rules-matrix": "node scripts/sync-presets-rules-matrix.mjs",
        "sync:readme-rules-table": "node scripts/sync-readme-rules-table.mjs",
        "sync:readme-rules-table:update": "npm run build && cross-env TYPEFEST_UPDATE_GENERATED_DOCS=1 vitest run test/readme-rules-table-sync.test.ts -u",
        "sync:readme-rules-table:write": "node scripts/sync-readme-rules-table.mjs --write",
        "sync:rules:check": "npm run sync:readme-rules-table && npm run sync:presets-rules-matrix",
        "sync:rules:write": "npm run sync:readme-rules-table:write && npm run sync:presets-rules-matrix",
        "pretest": "npm run build",
        "test": "vitest run",
        "test:autofix:fixtures": "cross-env TYPEFEST_AUTOFIX_SMOKE=1 vitest run test/autofix-fixtures-all-rules-smoke.test.ts",
        "test:autofix:fixtures:typed": "cross-env TYPEFEST_AUTOFIX_SMOKE=1 TYPEFEST_AUTOFIX_FIXTURE_DIR=test/fixtures/typed vitest run test/autofix-fixtures-all-rules-smoke.test.ts",
        "test:ci": "cross-env CI=true vitest run --reporter=default",
        "test:coverage": "vitest run --coverage --reporter=default",
        "test:coverage:detailed": "vitest run --coverage --reporter=verbose",
        "test:coverage:minimal": "vitest run --coverage --reporter=dot",
        "test:coverage:open": "npm run test:coverage && npm run open:coverage",
        "test:coverage:quiet": "vitest run --coverage --reporter=default --silent",
        "test:coverage:verbose": "vitest run --coverage --reporter=verbose",
        "test:detailed": "vitest run --reporter=verbose",
        "test:minimal": "vitest run --reporter=dot",
        "test:open": "npm run test:coverage && npm run open:coverage",
        "test:quiet": "vitest run --reporter=default --silent",
        "test:serial": "cross-env MAX_THREADS=1 vitest run",
        "test:stryker": "stryker run --ignoreStatic --concurrency 12 --incrementalFile .cache/stryker/incremental-fast.json",
        "test:stryker:ci": "cross-env CI=true stryker run --ignoreStatic --concurrency 2 --incrementalFile .cache/stryker/incremental-fast-ci.json",
        "test:stryker:full": "stryker run --concurrency 12 --incrementalFile .cache/stryker/incremental-full.json",
        "test:stryker:full:ci": "cross-env CI=true stryker run --concurrency 2 --incrementalFile .cache/stryker/incremental-full-ci.json",
        "test:verbose": "vitest run --reporter=verbose",
        "test:watch": "vitest",
        "typecheck": "tsc -p tsconfig.json --noEmit && tsc -p tsconfig.build.json --noEmit && tsc -p tsconfig.eslint.json --noEmit && tsc -p tsconfig.js.json --noEmit && npm run --workspace docs/docusaurus typecheck",
        "typecheck:all": "npm run typecheck",
        "types:update": "typesync",
        "update-actions": "npx actions-up --yes --style sha",
        "update-deps": "npx ncu -i --install never && npm update --workspaces --force && npm install --force && npm run sync:peer-eslint-range && npm run sync:node-version-files && npm run sync:rules:write",
        "verify:readme-rules-table": "npm run build && npm run sync:rules:write"
    },
    "overrides": {
        "jsonc-eslint-parser": "$jsonc-eslint-parser"
    },
    "dependencies": {
        "@typescript-eslint/parser": "^8.61.1",
        "@typescript-eslint/type-utils": "^8.61.1",
        "@typescript-eslint/utils": "^8.61.1",
        "ts-extras": "^1.0.0",
        "type-fest": "^5.7.0"
    },
    "devDependencies": {
        "@arethetypeswrong/cli": "^0.18.3",
        "@csstools/stylelint-formatter-github": "^2.0.0",
        "@double-great/remark-lint-alt-text": "^1.1.1",
        "@eslint/config-inspector": "^3.0.4",
        "@microsoft/tsdoc-config": "^0.18.1",
        "@size-limit/file": "^12.1.0",
        "@stryker-ignorer/console-all": "^0.3.2",
        "@stryker-mutator/core": "^9.6.1",
        "@stryker-mutator/typescript-checker": "^9.6.1",
        "@stryker-mutator/vitest-runner": "^9.6.1",
        "@types/htmlhint": "^1.1.5",
        "@types/madge": "^5.0.3",
        "@types/node": "^25.9.3",
        "@types/sloc": "^0.2.3",
        "@typescript-eslint/rule-tester": "^8.61.1",
        "@vitest/coverage-v8": "^4.1.9",
        "@vitest/ui": "^4.1.9",
        "actionlint": "^2.0.6",
        "all-contributors-cli": "^6.26.1",
        "cognitive-complexity-ts": "^0.8.2",
        "commitlint": "^21.0.2",
        "commitlint-config-gitmoji": "^2.3.1",
        "cross-env": "^10.1.0",
        "del-cli": "^7.0.0",
        "detect-secrets": "^1.0.6",
        "esbuild": "^0.28.1",
        "eslint": "^10.5.0",
        "eslint-config-nick2bad4u": "^2.0.2",
        "eslint-formatter-unix": "^9.0.1",
        "eslint-rule-benchmark": "^0.8.0",
        "fast-check": "^4.8.0",
        "git-cliff": "^2.13.1",
        "gitleaks-config-nick2bad4u": "^1.0.2",
        "gitleaks-secret-scanner": "^2.1.1",
        "htmlhint": "^1.9.2",
        "jscpd": "^5.0.10",
        "knip": "^6.17.1",
        "leasot": "^14.4.0",
        "madge": "^8.0.0",
        "markdown-link-check": "^3.14.2",
        "npm": "^11.17.0",
        "npm-check-updates": "^22.2.3",
        "npm-package-json-lint": "^10.4.1",
        "npm-package-json-lint-config-nick2bad4u": "^1.0.3",
        "picocolors": "^1.1.1",
        "prettier": "^3.8.4",
        "prettier-config-nick2bad4u": "^1.0.17",
        "prettier-plugin-jsdoc-type": "^0.2.0",
        "publint": "^0.3.21",
        "rehype-katex": "^7.0.1",
        "remark": "^15.0.1",
        "remark-cli": "^12.0.1",
        "remark-config-nick2bad4u": "^1.0.8",
        "secretlint": "^13.0.2",
        "secretlint-config-nick2bad4u": "^1.1.0",
        "size-limit": "^12.1.0",
        "sloc": "^0.3.2",
        "sort-package-json": "^4.0.0",
        "stylelint": "^17.13.0",
        "stylelint-config-nick2bad4u": "^1.0.19",
        "ts-unused-exports": "^11.0.1",
        "tsdoc-config-nick2bad4u": "^1.0.5",
        "typedoc": "^0.28.19",
        "typedoc-config-nick2bad4u": "^2.0.0",
        "typescript": "^6.0.3",
        "typescript-eslint": "^8.61.1",
        "typesync": "^0.14.3",
        "vfile": "^6.0.3",
        "vite": "^8.0.16",
        "vite-tsconfig-paths": "^6.1.1",
        "vitest": "^4.1.9",
        "yamllint-config-nick2bad4u": "^1.0.2",
        "yamllint-js": "^0.2.4"
    },
    "peerDependencies": {
        "eslint": "^9.0.0 || ^10.5.0",
        "typescript": "^5.0.0 || ^6.0.2"
    },
    "packageManager": "npm@11.16.0",
    "engines": {
        "node": ">=22.0.0"
    },
    "devEngines": {
        "runtime": {
            "name": "node",
            "version": ">=22.0.0",
            "onFail": "error"
        },
        "packageManager": {
            "name": "npm",
            "version": ">=11.0.0",
            "onFail": "error"
        }
    },
    "publishConfig": {
        "provenance": true,
        "registry": "https://registry.npmjs.org/"
    },
    "readme": "README.md"
}
