{"_id":"@anyions/shared-eslint-config","_rev":"3-72da1fce678082e89abb14fea755fd82","name":"@anyions/shared-eslint-config","dist-tags":{"latest":"1.0.2"},"versions":{"1.0.0":{"name":"@anyions/shared-eslint-config","type":"module","version":"1.0.0","description":"AnyIons' shared eslint config presets with prettier","author":{"name":"AnyIons","email":"anyions@hotmail.com","url":"https://github.com/anyions"},"license":"MIT","homepage":"https://github.com/anyions/shared-eslint-config","repository":{"url":"git+https://github.com/anyions/shared-eslint-config.git"},"bugs":{"url":"https://github.com/anyions/shared-eslint-config/issues"},"keywords":["eslint","eslint-config","eslint-config-vue","eslint-config-typescript","prettier"],"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"main":"dist/index.cjs","module":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=14"},"peerDependencies":{"@typescript-eslint/eslint-plugin":"7.8.0","@typescript-eslint/parser":"7.8.0","@unocss/eslint-config":"^0.59.4","eslint":"9.2.0","eslint-config-flat-gitignore":"^0.1.5","eslint-config-prettier":"9.1.0","eslint-flat-config-utils":"^0.2.4","eslint-plugin-eslint-comments":"^3.2.0","eslint-plugin-import-x":"0.5.0","eslint-plugin-n":"17.4.0","eslint-plugin-perfectionist":"^2.10.0","eslint-plugin-prettier":"5.1.3","eslint-plugin-unicorn":"52.0.0","eslint-plugin-unused-imports":"^3.2.0","eslint-plugin-vue":"^9.25.0","globals":"15.1.0","prettier":"^3.2.5","prettier-plugin-json-sort":"^0.0.2","vue-eslint-parser":"9.4.2"},"dependencies":{"@typescript-eslint/eslint-plugin":"7.8.0","@typescript-eslint/parser":"7.8.0","@unocss/eslint-config":"^0.59.4","eslint-config-flat-gitignore":"^0.1.5","eslint-config-prettier":"9.1.0","eslint-flat-config-utils":"^0.2.4","eslint-plugin-eslint-comments":"^3.2.0","eslint-plugin-import-x":"0.5.0","eslint-plugin-n":"17.4.0","eslint-plugin-perfectionist":"^2.10.0","eslint-plugin-prettier":"5.1.3","eslint-plugin-unicorn":"52.0.0","eslint-plugin-unused-imports":"^3.2.0","eslint-plugin-vue":"^9.25.0","globals":"15.1.0","prettier-plugin-json-sort":"^0.0.2","vue-eslint-parser":"9.4.2"},"devDependencies":{"@types/eslint":"8.56.10","@types/eslint-config-prettier":"6.11.3","@types/node":"20.12.10","bumpp":"^9.4.1","eslint":"9.2.0","prettier":"^3.2.5","rimraf":"^5.0.5","tsup":"8.0.2","typescript":"5.4.5"},"scripts":{"build":"tsup --format esm,cjs --clean --dts","clean":"pnpm rimraf node_modules dist","lint":"pnpm eslint .","lint:fix":"eslint . --cache --max-warnings 0 --fix","typecheck":"tsc --noEmit --skipLibCheck"},"_id":"@anyions/shared-eslint-config@1.0.0","_integrity":"sha512-O/Nk16KA5gMQfBI4ZMYJMvva+p33w5XN6RNOGbO5TWCtOJ20t80hfvXMAktfBX6xLBtOduS2DF/RsuQkUME0eg==","_resolved":"/private/var/folders/z0/lmj1r6vd4l57qpvgrbfr14600000gr/T/43ba235b3f2b0857438917de025a2992/anyions-shared-eslint-config-1.0.0.tgz","_from":"file:anyions-shared-eslint-config-1.0.0.tgz","_nodeVersion":"21.7.3","_npmVersion":"10.5.0","dist":{"integrity":"sha512-O/Nk16KA5gMQfBI4ZMYJMvva+p33w5XN6RNOGbO5TWCtOJ20t80hfvXMAktfBX6xLBtOduS2DF/RsuQkUME0eg==","shasum":"9ca35bfb36a147e9175ed05c8f891eb390f7ffed","tarball":"https://registry.npmjs.org/@anyions/shared-eslint-config/-/shared-eslint-config-1.0.0.tgz","fileCount":7,"unpackedSize":71703,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIC8Fpt4a7/320v7U0nTQJoQxnP+ahUfPZDF9JDqWzkCfAiAKz888Hd8isIwnPkUUUINmwH6h2qgpSrEu/MvqJlMXQw=="}]},"_npmUser":{"name":"anyions","email":"anyions@hotmail.com"},"directories":{},"maintainers":[{"name":"anyions","email":"anyions@hotmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/shared-eslint-config_1.0.0_1715266173599_0.21153380287336065"},"_hasShrinkwrap":false,"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"1.0.1":{"name":"@anyions/shared-eslint-config","type":"module","version":"1.0.1","description":"AnyIons' shared eslint config presets with prettier","author":{"name":"AnyIons","email":"anyions@hotmail.com","url":"https://github.com/anyions"},"license":"MIT","homepage":"https://github.com/anyions/shared-eslint-config","repository":{"url":"git+https://github.com/anyions/shared-eslint-config.git"},"bugs":{"url":"https://github.com/anyions/shared-eslint-config/issues"},"keywords":["eslint","eslint-config","eslint-config-vue","eslint-config-typescript","eslint-config-prettier","eslint-config-unocss","prettier"],"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"main":"dist/index.cjs","module":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=14"},"scripts":{"build":"tsup --format esm,cjs --clean --dts","bump":"bumpp && npm -r publish --access=public","clean":"pnpm rimraf node_modules dist","lint":"pnpm eslint .","lint:fix":"eslint . --cache --max-warnings 0 --fix","typecheck":"tsc --noEmit --skipLibCheck"},"peerDependencies":{"@typescript-eslint/eslint-plugin":"7.8.0","@typescript-eslint/parser":"7.8.0","@unocss/eslint-config":"^0.59.4","eslint-config-flat-gitignore":"^0.1.5","eslint-config-prettier":"9.1.0","eslint-flat-config-utils":"^0.2.4","eslint-plugin-eslint-comments":"^3.2.0","eslint-plugin-import-x":"0.5.0","eslint-plugin-jsdoc":"^48.2.4","eslint-plugin-jsonc":"^2.15.1","eslint-plugin-n":"17.4.0","eslint-plugin-perfectionist":"^2.10.0","eslint-plugin-prettier":"5.1.3","eslint-plugin-unicorn":"52.0.0","eslint-plugin-unused-imports":"^3.2.0","eslint-plugin-vue":"^9.25.0","globals":"15.1.0","jsonc-eslint-parser":"^2.4.0","prettier":"^3.2.5","vue-eslint-parser":"9.4.2"},"dependencies":{"@typescript-eslint/eslint-plugin":"7.8.0","@typescript-eslint/parser":"7.8.0","@unocss/eslint-config":"^0.59.4","eslint-config-flat-gitignore":"^0.1.5","eslint-config-prettier":"9.1.0","eslint-flat-config-utils":"^0.2.4","eslint-plugin-eslint-comments":"^3.2.0","eslint-plugin-import-x":"0.5.0","eslint-plugin-jsdoc":"^48.2.4","eslint-plugin-jsonc":"^2.15.1","eslint-plugin-n":"17.4.0","eslint-plugin-perfectionist":"^2.10.0","eslint-plugin-prettier":"5.1.3","eslint-plugin-unicorn":"52.0.0","eslint-plugin-unused-imports":"^3.2.0","eslint-plugin-vue":"^9.25.0","globals":"15.1.0","jsonc-eslint-parser":"^2.4.0","vue-eslint-parser":"9.4.2"},"devDependencies":{"@types/eslint":"8.56.10","@types/eslint-config-prettier":"6.11.3","@types/node":"20.12.10","bumpp":"^9.4.1","eslint":"9.2.0","prettier":"^3.2.5","rimraf":"^5.0.5","tsup":"8.0.2","typescript":"5.4.5"},"_id":"@anyions/shared-eslint-config@1.0.1","gitHead":"3eda9d73df36fc4c76202e047e546819d62b41df","_nodeVersion":"21.7.3","_npmVersion":"10.5.0","dist":{"integrity":"sha512-Aba3ULE4ejPq1E52sizeUdSTMxubtEwluxgtJi601XWDSXzkHcn1N3z8d6liR/fcXlflH39V0Y2FUfadnKqASQ==","shasum":"13c9449ede0587c7e22db1e16db523ca6ce325b5","tarball":"https://registry.npmjs.org/@anyions/shared-eslint-config/-/shared-eslint-config-1.0.1.tgz","fileCount":7,"unpackedSize":90777,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGXEAN+Nu0fltqRQV1xDYSZ8+8XJ2WBqLtHPylEqVZZ5AiEA51kz3zIDTFoRbEzY1CuP/Tha5sFSsdTpJxfoAc3CkW0="}]},"_npmUser":{"name":"anyions","email":"anyions@hotmail.com"},"directories":{},"maintainers":[{"name":"anyions","email":"anyions@hotmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/shared-eslint-config_1.0.1_1715326509389_0.9003287154268333"},"_hasShrinkwrap":false,"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"1.0.2":{"name":"@anyions/shared-eslint-config","type":"module","version":"1.0.2","description":"AnyIons' shared eslint config presets with prettier","author":{"name":"AnyIons","email":"anyions@hotmail.com","url":"https://github.com/anyions"},"license":"MIT","homepage":"https://github.com/anyions/shared-eslint-config","repository":{"url":"git+https://github.com/anyions/shared-eslint-config.git"},"bugs":{"url":"https://github.com/anyions/shared-eslint-config/issues"},"keywords":["eslint","eslint-config","eslint-config-vue","eslint-config-typescript","eslint-config-prettier","eslint-config-unocss","prettier"],"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"main":"dist/index.cjs","module":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=14"},"scripts":{"build":"tsup --format esm,cjs --clean --dts","bump":"bumpp && npm -r publish --access=public","clean":"pnpm rimraf node_modules dist","lint":"pnpm eslint .","lint:fix":"eslint . --cache --max-warnings 0 --fix","typecheck":"tsc --noEmit --skipLibCheck"},"peerDependencies":{"@anyions/node-pkg":"^1.0.2","@typescript-eslint/eslint-plugin":"7.8.0","@typescript-eslint/parser":"7.8.0","@unocss/eslint-config":"^0.59.4","eslint":"9.2.0","eslint-config-flat-gitignore":"^0.1.5","eslint-config-prettier":"9.1.0","eslint-plugin-eslint-comments":"^3.2.0","eslint-plugin-import-x":"0.5.0","eslint-plugin-jsdoc":"^48.2.4","eslint-plugin-jsonc":"^2.15.1","eslint-plugin-markdown":"^5.0.0","eslint-plugin-n":"17.4.0","eslint-plugin-perfectionist":"^2.10.0","eslint-plugin-prettier":"5.1.3","eslint-plugin-unicorn":"52.0.0","eslint-plugin-unused-imports":"^3.2.0","eslint-plugin-vue":"^9.25.0","globals":"15.1.0","jsonc-eslint-parser":"^2.4.0","prettier":"^3.2.5","vue-eslint-parser":"9.4.2"},"dependencies":{"@anyions/node-pkg":"^1.0.2","@typescript-eslint/eslint-plugin":"7.8.0","@typescript-eslint/parser":"7.8.0","@unocss/eslint-config":"^0.59.4","eslint-config-flat-gitignore":"^0.1.5","eslint-config-prettier":"9.1.0","eslint-plugin-eslint-comments":"^3.2.0","eslint-plugin-import-x":"0.5.0","eslint-plugin-jsdoc":"^48.2.4","eslint-plugin-jsonc":"^2.15.1","eslint-plugin-markdown":"^5.0.0","eslint-plugin-n":"17.4.0","eslint-plugin-perfectionist":"^2.10.0","eslint-plugin-prettier":"5.1.3","eslint-plugin-unicorn":"52.0.0","eslint-plugin-unused-imports":"^3.2.0","eslint-plugin-vue":"^9.25.0","globals":"15.1.0","jsonc-eslint-parser":"^2.4.0","vue-eslint-parser":"9.4.2"},"devDependencies":{"@types/eslint":"8.56.10","@types/eslint-config-prettier":"6.11.3","@types/node":"20.12.10","bumpp":"^9.4.1","eslint":"9.2.0","prettier":"^3.2.5","rimraf":"^5.0.5","tsup":"8.0.2","typescript":"5.4.5"},"_id":"@anyions/shared-eslint-config@1.0.2","gitHead":"7976e82c98ea2434bd68d1c7912c8fdb93bce959","_nodeVersion":"21.7.3","_npmVersion":"10.5.0","dist":{"integrity":"sha512-6AoZKv7cCSCTs0rd4oZVpqYMhNDHyg6KI5SewmfCM0VicdeYjzhcUxU5oHN2CC30ktlXB/uWvI9KGwqR9g00Zg==","shasum":"4eed3cdf2681e9e44e1002dbf329ead836d556fb","tarball":"https://registry.npmjs.org/@anyions/shared-eslint-config/-/shared-eslint-config-1.0.2.tgz","fileCount":7,"unpackedSize":118240,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD3l39qBh1IO1Spds3NtdIhAwdazcAaVUuGn8x6io8hRgIgTn/v90zjq5BWh2psZdQjke32xVEdH/uiA/SMzn2Ziug="}]},"_npmUser":{"name":"anyions","email":"anyions@hotmail.com"},"directories":{},"maintainers":[{"name":"anyions","email":"anyions@hotmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/shared-eslint-config_1.0.2_1715503339571_0.3264214591709347"},"_hasShrinkwrap":false,"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."}},"time":{"created":"2024-05-09T14:49:33.483Z","1.0.0":"2024-05-09T14:49:33.796Z","modified":"2024-05-13T06:00:56.299Z","1.0.1":"2024-05-10T07:35:09.532Z","1.0.2":"2024-05-12T08:42:19.729Z"},"maintainers":[{"name":"anyions","email":"anyions@hotmail.com"}],"description":"AnyIons' shared eslint config presets with prettier","homepage":"https://github.com/anyions/shared-eslint-config","keywords":["eslint","eslint-config","eslint-config-vue","eslint-config-typescript","eslint-config-prettier","eslint-config-unocss","prettier"],"repository":{"url":"git+https://github.com/anyions/shared-eslint-config.git"},"author":{"name":"AnyIons","email":"anyions@hotmail.com","url":"https://github.com/anyions"},"bugs":{"url":"https://github.com/anyions/shared-eslint-config/issues"},"license":"MIT","readme":"# @anyions/shared-eslint-config\n\n[![NPM version](https://img.shields.io/npm/v/@anyions/shared-eslint-config?color=a1b858&label=)](https://www.npmjs.com/package/@anyions/shared-eslint-config) ![NPM License](https://img.shields.io/npm/l/%40anyions%2Fshared-eslint-config) ![Static Badge](https://img.shields.io/badge/author-AnyIons-blue)\n\n**AnyIons' shared ESLint flat config presets with prettier.**\n\n- Default ESLint flat config for JavaScript, TypeScript, Vue and UnoCSS.\n- Use ESlint and Prettier to format HTML, CSS, LESS, SCSS, JSON, JSONC, Markdown.\n\n## Install\n\n```bash\nnpm i @anyions/shared-eslint-config\n```\n\n## Usage\n\n### ESLint config file\n\n- With [`\"type\": \"module\"`](https://nodejs.org/api/packages.html#type) in `package.json`\n\n- Create config file `eslint.config.js`\n\n- Import config from `@anyions/shared-eslint-config`\n\n```js\nimport { defineConfig } from '@anyions/eslint-config'\n\nexport default defineConfig(\n  {\n    // user options\n  },\n  // From the second arguments they are ESLint flat configs\n  // you can have multiple configs\n  {\n    files: ['**/*.ts'],\n    rules: {}\n  },\n  {\n    rules: {}\n  }\n)\n```\n\n> [!NOTE]  \n> See [Options](#options) for more details.\n\n### ESLint settings in VSCode\n\n```json\n{\n  \"editor.codeActionsOnSave\": {\n    \"source.fixAll.eslint\": \"explicit\",\n    \"source.organizeImports\": \"never\"\n  },\n  \"eslint.experimental.useFlatConfig\": true,\n  \"editor.formatOnSave\": true,\n  \"eslint.format.enable\": true,\n  \"eslint.ignoreUntitled\": true,\n  \"eslint.validate\": [\n    // add the languages you want to lint\n    \"html\",\n    \"css\",\n    \"json\",\n    \"jsonc\",\n    \"json5\",\n    \"markdown\",\n    \"yaml\",\n    \"yml\"\n  ],\n  \"prettier.enable\": false\n}\n```\n\n### Scripts in package.json\n\n```json\n{\n  \"scripts\": {\n    \"lint\": \"eslint .\"\n    \"lint:fix\": \"eslint . --cache --max-warnings 0 --fix\",\n  }\n}\n```\n\n## Options\n\n````ts\ninterface OptionsPrettier {\n  /**\n   * Default prettier rules\n   *\n   * @default\n   * ```json\n   * {\n   *   \"printWidth\": 120,\n   *   \"tabWidth\": 2,\n   *   \"useTabs\": false,\n   *   \"semi\": false,\n   *   \"vueIndentScriptAndStyle\": true,\n   *   \"singleQuote\": true,\n   *   \"quoteProps\": \"as-needed\",\n   *   \"bracketSpacing\": true,\n   *   \"trailingComma\": \"none\",\n   *   \"jsxSingleQuote\": true,\n   *   \"arrowParens\": \"always\",\n   *   \"proseWrap\": \"never\",\n   *   \"htmlWhitespaceSensitivity\": \"strict\",\n   *   \"endOfLine\": \"lf\",\n   *   \"rangeStart\": 0\n   * }\n   * ```\n   */\n  rules: PrettierRules\n  /**\n   * @default\n   * {\n   *  \"html\": true,\n   *  \"css\": true,\n   *  \"json\": true,\n   *  \"markdown\": true,\n   *  \"yaml\": false\n   * }\n   */\n  formatters: {\n    html?: boolean\n    css?: boolean\n    json?: boolean\n    markdown?: boolean\n    yaml?: false\n  }\n}\n\nexport interface OptionsComponentExts {\n  /**\n   * Additional extensions for components.\n   *\n   * @example ['vue', 'ts']\n   * @default []\n   */\n  componentExts?: string[]\n}\n\nexport interface OptionsOverrides {\n  files?: string[]\n  overrides?: FlatConfigItem['rules']\n}\n\nexport interface OptionsMarkdown extends OptionsOverrides, OptionsComponentExts {}\n\nexport interface OptionsTypeScript extends OptionsOverrides, OptionsComponentExts {\n  tsconfigPath?: string | string[]\n  parserOptions?: Partial<ParserOptions>\n  filesTypeAware?: string[]\n}\n\nexport interface OptionsUnoCSS extends OptionsOverrides {\n  /**\n   * Enable attributify support.\n   * @default true\n   */\n  attributify?: boolean\n  /**\n   * Enable strict mode by throwing errors about blocklisted classes.\n   * @default false\n   */\n  strict?: boolean\n}\n\nexport interface UserOptions {\n  /**\n   * The current working directory\n   *\n   * @default process.cwd()\n   */\n  cwd?: string\n  /**\n   * The globs to ignore lint\n   *\n   * @default []\n   */\n  ignores?: string[]\n  /**\n   * Enable flat git/eslint ignore support.\n   *\n   * Path to `.gitignore` files\n   * By defult, will use `'.gitignore'` and '.eslintignore' automation.\n   *\n   * @see https://github.com/antfu/eslint-config-flat-gitignore\n   *\n   * @default ['.gitignore', '.eslintignore']\n   */\n  flatignore?: string[]\n  /**\n   * Whether to use prettier to format files\n   * If true, will use default prettier options\n   * You can use `.prettierrc` to override the default prettier rules\n   *\n   * @see OptionsPrettier\n   * @default true\n   */\n  prettier?: boolean | OptionsPrettier\n  /**\n   * Javascript override rules.\n   */\n  javascript?: OptionsOverrides\n  /**\n   * Enable TypeScript support.\n   *\n   * @default auto-detect based on the dependencies\n   */\n  typescript?: boolean | OptionsTypeScript\n  /**\n   * Enable unocss rules.\n   *\n   * @default false\n   */\n  unocss?: boolean | OptionsUnoCSS\n  /**\n   * Enable Vue support.\n   *\n   * @default auto-detect based on the dependencies\n   */\n  vue?: boolean | OptionsOverrides\n  /**\n   * Enable linting for **code snippets** in Markdown.\n   *\n   * To format Markdown content, need enable `formatters.markdown`.\n   *\n   * @default true\n   */\n  markdown?: boolean | OptionsMarkdown\n  /**\n   * Enable JSONC support.\n   *\n   * @default true\n   */\n  jsonc?: boolean | OptionsOverrides\n}\n````\n\n## Thanks\n\n**Inspired by the following projects:**\n\n- [Antfu's eslint-config](https://github.com/antfu/eslint-config)\n- [SoybeanJS's eslint-config](https://github.com/soybeanjs/eslint-config)\n\n## License\n\n[MIT](./LICENSE) License © 2020 [AnyIons](https://github.com/anyions)\n","readmeFilename":"README.md"}