@shun-shobon/style-guide 1.1.0 → 1.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -3877,7 +3877,6 @@ type QwikPreferClasslist = [] | [
3877
3877
  type QwikValidLexicalScope = [] | [
3878
3878
  {
3879
3879
  allowAny?: boolean;
3880
- [k: string]: unknown | undefined;
3881
3880
  }
3882
3881
  ];
3883
3882
  type ReactBooleanPropNaming = [] | [
@@ -585,7 +585,6 @@ async function typescript(options = {}) {
585
585
  name: "shun-shobon/typescript/rules",
586
586
  files: [GLOB_SRC, ...componentExts.map((ext) => `**/*.${ext}`)],
587
587
  languageOptions: {
588
- // @ts-expect-error: This is valid
589
588
  parser: parserTypeScript,
590
589
  parserOptions: {
591
590
  projectService: {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/eslint/globs.ts","../../src/eslint/utils.ts","../../src/eslint/configs/astro.ts","../../src/eslint/configs/base.ts","../../src/eslint/configs/disable-type-checked.ts","../../src/eslint/plugins.ts","../../src/eslint/configs/import-sort.ts","../../src/eslint/configs/imports.ts","../../src/eslint/configs/javascript.ts","../../src/eslint/configs/jsx-a11y.ts","../../src/eslint/configs/next.ts","../../src/eslint/configs/node.ts","../../src/eslint/configs/qwik.ts","../../src/eslint/configs/react.ts","../../src/eslint/configs/regexp.ts","../../src/eslint/configs/storybook.ts","../../src/eslint/configs/typescript.ts","../../src/eslint/configs/unicorn.ts","../../src/eslint/factory.ts"],"sourcesContent":["export const GLOB_SRC_EXT = \"?([cm])[jt]s?(x)\";\nexport const GLOB_SRC = `**/*.${GLOB_SRC_EXT}`;\n\nexport const GLOB_JS_EXT = \"?([cm])js\";\nexport const GLOB_JS = `**/*.${GLOB_JS_EXT}`;\n\nexport const GLOB_JSX_EXT = \"?([cm])jsx\";\nexport const GLOB_JSX = `**/*.${GLOB_JSX_EXT}`;\n\nexport const GLOB_TS_EXT = \"?([cm])ts\";\nexport const GLOB_TS = `**/*.${GLOB_TS_EXT}`;\n\nexport const GLOB_TSX_EXT = \"?([cm])tsx\";\nexport const GLOB_TSX = `**/*.${GLOB_TSX_EXT}`;\n\nexport const GLOB_DTS_EXT = \"?([cm])d.ts\";\nexport const GLOB_DTS = `**/*.${GLOB_DTS_EXT}`;\n\nexport const GLOB_STORYBOOK_EXT = `@(stories|story).${GLOB_TSX_EXT}`;\nexport const GLOB_STORYBOOK = `**/*.${GLOB_STORYBOOK_EXT}`;\n\nexport const GLOB_STORYBOOK_CONFIG = `**/.storybook/main.${GLOB_SRC_EXT}`;\n\nexport const GLOB_ASTRO_EXT = \"astro\";\nexport const GLOB_ASTRO = `**/*.${GLOB_ASTRO_EXT}`;\n","import type { Awaitable, Rules } from \"./types\";\n\nexport async function interopDefault<T>(\n\tmodule: Awaitable<T>,\n): Promise<T extends { default: infer U } ? U : T> {\n\tconst resolved = await module;\n\n\t// eslint-disable-next-line typescript/no-unsafe-return, typescript/no-unsafe-member-access, typescript/no-explicit-any\n\treturn (resolved as any).default ?? resolved;\n}\n\nexport function renameRules(\n\t// eslint-disable-next-line typescript/no-explicit-any\n\trules: Record<string, any>,\n\tfrom: string,\n\tto: string,\n): Rules {\n\treturn Object.fromEntries(\n\t\tObject.entries(rules).map(([key, value]) => [\n\t\t\tkey.startsWith(from) ? `${to}${key.slice(from.length)}` : key,\n\t\t\tvalue,\n\t\t]),\n\t);\n}\n","import { GLOB_ASTRO } from \"../globs\";\nimport type { ConfigItem, OptionsHasTypeScript, Rules } from \"../types\";\nimport { interopDefault } from \"../utils\";\n\nexport async function astro(\n\toptions: OptionsHasTypeScript = {},\n): Promise<ConfigItem[]> {\n\tconst { typescript = true } = options;\n\n\tconst [pluginAstro, parserAstro] = await Promise.all([\n\t\tinteropDefault(import(\"eslint-plugin-astro\")),\n\t\tinteropDefault(import(\"astro-eslint-parser\")),\n\t]);\n\n\treturn [\n\t\t{\n\t\t\tname: \"shun-shobon/astro/plugins\",\n\t\t\tplugins: {\n\t\t\t\tastro: pluginAstro,\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"shun-shobon/astro/rules\",\n\t\t\tfiles: [GLOB_ASTRO],\n\t\t\tlanguageOptions: {\n\t\t\t\tparser: parserAstro,\n\t\t\t\tparserOptions: {\n\t\t\t\t\tparser: typescript\n\t\t\t\t\t\t? await interopDefault(import(\"@typescript-eslint/parser\"))\n\t\t\t\t\t\t: undefined,\n\t\t\t\t\textraFileExtensions: [\".astro\"],\n\t\t\t\t},\n\t\t\t\tglobals: {\n\t\t\t\t\tAstro: \"readonly\",\n\t\t\t\t\tFragment: \"readonly\",\n\t\t\t\t},\n\t\t\t},\n\n\t\t\tprocessor:\n\t\t\t\tpluginAstro.processors[typescript ? \"client-side-ts\" : \"astro\"],\n\t\t\trules: {\n\t\t\t\t// Astroの推奨ルールを有効化\n\t\t\t\t...(pluginAstro.configs.recommended.at(-1)!.rules as Rules),\n\n\t\t\t\t// Astroのjsx-a11yの拡張ルール(strict)を有効化\n\t\t\t\t...(pluginAstro.configs[\"jsx-a11y-strict\"].at(-1)!.rules as Rules),\n\n\t\t\t\t// 曖昧なリンクのテキストを許可しない\n\t\t\t\t\"astro/jsx-a11y/anchor-ambiguous-text\": \"error\",\n\n\t\t\t\t// インタラクティブな要素にラベルが付いていないことを許可しない\n\t\t\t\t\"astro/jsx-a11y/control-has-associated-label\": \"error\",\n\n\t\t\t\t// html要素にlang属性が付与されていないことを許可しない\n\t\t\t\t\"astro/jsx-a11y/lang\": \"error\",\n\n\t\t\t\t// フォーカス可能な要素に `aria-hidden` 属性を付与することを許可しない\n\t\t\t\t\"astro/jsx-a11y/no-aria-hidden-on-focusable\": \"error\",\n\t\t\t},\n\t\t},\n\t];\n}\n","import type { ConfigItem } from \"../types\";\n\nexport function base(): ConfigItem[] {\n\treturn [\n\t\t{\n\t\t\tname: \"shun-shobon/base/setup\",\n\t\t\tlinterOptions: {\n\t\t\t\treportUnusedDisableDirectives: true,\n\t\t\t},\n\t\t},\n\t];\n}\n","import type { ConfigItem, OptionsDisableTypeCheckedFiles } from \"../types\";\nimport { interopDefault, renameRules } from \"../utils\";\n\nexport async function disableTypeChecked(\n\toptions: OptionsDisableTypeCheckedFiles = {},\n): Promise<ConfigItem[]> {\n\tconst { disableTypeCheckedFiles = [] } = options;\n\n\tconst { configs: configsTypeScript } = await interopDefault(\n\t\timport(\"typescript-eslint\"),\n\t);\n\n\treturn [\n\t\t{\n\t\t\tname: \"shun-shobon/disableTypeChecked/rules\",\n\t\t\tfiles: disableTypeCheckedFiles,\n\t\t\tlanguageOptions: {\n\t\t\t\tparserOptions: {\n\t\t\t\t\tprojectService: false,\n\t\t\t\t},\n\t\t\t},\n\t\t\trules: {\n\t\t\t\t...renameRules(\n\t\t\t\t\tconfigsTypeScript.disableTypeChecked.rules!,\n\t\t\t\t\t\"@typescript-eslint/\",\n\t\t\t\t\t\"typescript/\",\n\t\t\t\t),\n\t\t\t},\n\t\t},\n\t];\n}\n","// eslint-disable-next-line typescript/ban-ts-comment\n// @ts-nocheck\n\nexport { default as configJs } from \"@eslint/js\";\nexport { default as pluginImport } from \"eslint-plugin-import-x\";\nexport { default as pluginJsxA11y } from \"eslint-plugin-jsx-a11y\";\nexport { default as pluginNode } from \"eslint-plugin-n\";\nexport { default as pluginRegexp } from \"eslint-plugin-regexp\";\nexport { default as pluginImportSort } from \"eslint-plugin-simple-import-sort\";\nexport { default as pluginUnicorn } from \"eslint-plugin-unicorn\";\n","import { pluginImportSort } from \"../plugins\";\nimport type { ConfigItem } from \"../types\";\n\nexport function importSort(): ConfigItem[] {\n\treturn [\n\t\t{\n\t\t\tname: \"shun-shobon/importSort/setup\",\n\t\t\tplugins: {\n\t\t\t\t\"import-sort\": pluginImportSort,\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"shun-shobon/importSort/rules\",\n\t\t\trules: {\n\t\t\t\t// importをソートする\n\t\t\t\t\"import-sort/imports\": \"warn\",\n\n\t\t\t\t// exportをソートする\n\t\t\t\t\"import-sort/exports\": \"warn\",\n\t\t\t},\n\t\t},\n\t];\n}\n","import { pluginImport } from \"../plugins\";\nimport type { ConfigItem, OptionsHasTypeScript } from \"../types\";\nimport { renameRules } from \"../utils\";\n\nexport function imports(options: OptionsHasTypeScript): ConfigItem[] {\n\tconst { typescript = false } = options;\n\n\treturn [\n\t\t{\n\t\t\tname: \"shun-shobon/imports/setup\",\n\t\t\tplugins: {\n\t\t\t\timport: pluginImport,\n\t\t\t},\n\t\t\tsettings: {\n\t\t\t\t\"import-x/parsers\": {\n\t\t\t\t\tespree: [\".js\", \".cjs\", \".mjs\", \".jsx\"],\n\t\t\t\t\t...(typescript\n\t\t\t\t\t\t? { \"@typescript-eslint/parser\": [\".ts\", \".mts\", \".cts\", \".tsx\"] }\n\t\t\t\t\t\t: {}),\n\t\t\t\t},\n\t\t\t\t\"import-x/extensions\": [\n\t\t\t\t\t\".js\",\n\t\t\t\t\t\".jsx\",\n\t\t\t\t\t...(typescript ? [\".ts\", \".tsx\", \".d.ts\"] : []),\n\t\t\t\t],\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"shun-shobon/imports/rules\",\n\t\t\trules: {\n\t\t\t\t...renameRules(\n\t\t\t\t\tpluginImport.configs.recommended.rules,\n\t\t\t\t\t\"import-x/\",\n\t\t\t\t\t\"import/\",\n\t\t\t\t),\n\n\t\t\t\t// import先のモジュールが存在するかチェックしない\n\t\t\t\t// TSの型チェックで十分なため\n\t\t\t\t\"import/namespace\": \"off\",\n\t\t\t\t\"import/no-unresolved\": \"off\",\n\t\t\t\t\"import/named\": \"off\",\n\n\t\t\t\t// type import時に`import type { foo } from \"foo\"`を強制\n\t\t\t\t\"import/consistent-type-specifier-style\": [\"warn\", \"prefer-top-level\"],\n\n\t\t\t\t// import文を一番上に書くのを強制\n\t\t\t\t\"import/first\": \"error\",\n\n\t\t\t\t// 同じパスからのimportをまとめる\n\t\t\t\t\"import/no-duplicates\": \"warn\",\n\n\t\t\t\t// default import時に`{ default as foo } from \"foo\"`と書くのを警告\n\t\t\t\t\"import/no-named-default\": \"warn\",\n\n\t\t\t\t// import文のパスを簡略化する\n\t\t\t\t\"import/no-useless-path-segments\": [\"warn\", { noUselessIndex: true }],\n\n\t\t\t\t// 自分自身をimportするのを禁止\n\t\t\t\t\"import/no-self-import\": \"error\",\n\t\t\t},\n\t\t},\n\t];\n}\n","import globals from \"globals\";\n\nimport { configJs } from \"../plugins\";\nimport type { ConfigItem } from \"../types\";\n\nexport function javascript(): ConfigItem[] {\n\treturn [\n\t\t{\n\t\t\tname: \"shun-shobon/javascript/rules\",\n\t\t\tlanguageOptions: {\n\t\t\t\tecmaVersion: \"latest\",\n\t\t\t\tsourceType: \"module\",\n\t\t\t\tglobals: {\n\t\t\t\t\t...globals.es2021,\n\t\t\t\t\t...globals.browser,\n\t\t\t\t\t...globals.node,\n\t\t\t\t},\n\t\t\t\tparserOptions: {\n\t\t\t\t\tecmaFeatures: {\n\t\t\t\t\t\tjax: true,\n\t\t\t\t\t},\n\t\t\t\t\tecmaVersion: \"latest\",\n\t\t\t\t\tsourceType: \"module\",\n\t\t\t\t},\n\t\t\t},\n\t\t\trules: {\n\t\t\t\t...configJs.configs.recommended.rules,\n\n\t\t\t\t// Arrayの関数に`return`を忘れないようにする\n\t\t\t\t\"array-callback-return\": \"error\",\n\n\t\t\t\t// 常にtrue/falseになる式や短絡評価されない式を警告\n\t\t\t\t\"no-constant-binary-expression\": \"warn\",\n\n\t\t\t\t// コンストラクタの戻り値を許可しない\n\t\t\t\t\"no-constructor-return\": \"error\",\n\n\t\t\t\t// Symbol/BigIntでnewしない\n\t\t\t\t\"no-new-native-nonconstructor\": \"error\",\n\n\t\t\t\t// `Promise`のコンストラクタの戻り値を許可しない\n\t\t\t\t\"no-promise-executor-return\": \"error\",\n\n\t\t\t\t// 自分自身を比較する式を許可しない\n\t\t\t\t// NaNチェックは`Number.isNaN()`を使う\n\t\t\t\t\"no-self-compare\": \"error\",\n\n\t\t\t\t// ループの条件式の変数をループ内で変更していない場合に警告\n\t\t\t\t\"no-unmodified-loop-condition\": \"warn\",\n\n\t\t\t\t// 条件式が常にtrue/falseになる場合を警告\n\t\t\t\t// ただし、ループ内の条件式は除外\n\t\t\t\t\"no-constant-condition\": [\"error\", { checkLoops: false }],\n\n\t\t\t\t// 1回しかループしないループを警告\n\t\t\t\t\"no-unreachable-loop\": \"warn\",\n\n\t\t\t\t// 未使用のプライベートクラスメンバーを警告\n\t\t\t\t\"no-unused-private-class-members\": \"warn\",\n\n\t\t\t\t// `_`から始まる変数名以外の未使用変数を警告\n\t\t\t\t\"no-unused-vars\": [\n\t\t\t\t\t\"warn\",\n\t\t\t\t\t{\n\t\t\t\t\t\tvarsIgnorePattern: \"^_\",\n\t\t\t\t\t\targsIgnorePattern: \"^_\",\n\t\t\t\t\t},\n\t\t\t\t],\n\n\t\t\t\t// 競合が発生する可能性のある値の代入を許可しない\n\t\t\t\t\"require-atomic-updates\": \"error\",\n\n\t\t\t\t// 循環的複雑度を15以上を警告\n\t\t\t\t\"complexity\": [\"warn\", 15],\n\n\t\t\t\t// switch文のデフォルトケースを最後にする\n\t\t\t\t\"default-case-last\": \"error\",\n\n\t\t\t\t// デフォルト引数を最後にする\n\t\t\t\t\"default-param-last\": \"error\",\n\n\t\t\t\t// nullチェックを除いて厳密でない等価演算子を許可しない\n\t\t\t\t\"eqeqeq\": [\"error\", \"always\", { null: \"ignore\" }],\n\n\t\t\t\t// getter/setterをグループ化\n\t\t\t\t\"grouped-accessor-pairs\": [\"error\", \"setBeforeGet\"],\n\n\t\t\t\t// `console.log()`/`alert`を警告\n\t\t\t\t\"no-alert\": \"warn\",\n\t\t\t\t\"no-console\": [\"warn\", { allow: [\"warn\", \"error\"] }],\n\n\t\t\t\t// `else { return }`を警告\n\t\t\t\t\"no-else-return\": \"warn\",\n\n\t\t\t\t// `!!`や`~`を使った短縮型変換を許可しない\n\t\t\t\t\"no-implicit-coercion\": \"error\",\n\n\t\t\t\t// 不要なifのネストを許可しない\n\t\t\t\t\"no-lonely-if\": \"error\",\n\n\t\t\t\t// 複数の代入を許可しない\n\t\t\t\t\"no-multi-assign\": \"error\",\n\n\t\t\t\t// 複数行文字列を警告\n\t\t\t\t\"no-multi-str\": \"warn\",\n\n\t\t\t\t// `Function`/`Object`/`String`/`Number`/`Boolean`のコンストラクタを許可しない\n\t\t\t\t\"no-new-func\": \"error\",\n\t\t\t\t\"no-new-wrappers\": \"error\",\n\n\t\t\t\t// 関数の引数を再代入することを許可しない\n\t\t\t\t\"no-param-reassign\": \"error\",\n\n\t\t\t\t// インクリメント/デクリメント演算子を許可しない\n\t\t\t\t\"no-plusplus\": \"error\",\n\n\t\t\t\t// `throw` に文字列を渡さない\n\t\t\t\t\"no-throw-literal\": \"error\",\n\n\t\t\t\t// 不要な三項演算子を警告\n\t\t\t\t\"no-unneeded-ternary\": \"warn\",\n\n\t\t\t\t// 未使用の式を警告\n\t\t\t\t\"no-unused-expressions\": \"warn\",\n\n\t\t\t\t// 意味の無いコンストラクタを警告\n\t\t\t\t\"no-useless-constructor\": \"warn\",\n\n\t\t\t\t// 意味の無い`return`を警告\n\t\t\t\t\"no-useless-return\": \"warn\",\n\n\t\t\t\t// `var`を許可しない\n\t\t\t\t\"no-var\": \"error\",\n\n\t\t\t\t// オブジェクトのショートハンド記法を使用していない場合は警告\n\t\t\t\t\"object-shorthand\": \"warn\",\n\n\t\t\t\t// 演算子のショートハンド記法を使用していない場合は警告\n\t\t\t\t\"operator-assignment\": \"warn\",\n\n\t\t\t\t// コールバック関数をアロー関数にする\n\t\t\t\t\"prefer-arrow-callback\": \"warn\",\n\n\t\t\t\t// `const`を使用する\n\t\t\t\t\"prefer-const\": \"warn\",\n\n\t\t\t\t// 名前付きキャプチャグループを使用する\n\t\t\t\t\"prefer-named-capture-group\": \"warn\",\n\n\t\t\t\t// `Number.parseInt()`を使用する\n\t\t\t\t\"prefer-numeric-literals\": \"error\",\n\n\t\t\t\t// `hasOwnProperty`の使用を許可しない\n\t\t\t\t\"prefer-object-has-own\": \"error\",\n\n\t\t\t\t// スプレッド構文を使用する\n\t\t\t\t\"prefer-object-spread\": \"warn\",\n\n\t\t\t\t// `Promise`の`reject`には`Error`オブジェクトを渡す\n\t\t\t\t\"prefer-promise-reject-errors\": \"error\",\n\n\t\t\t\t// なるべく正規表現リテラルを使用する\n\t\t\t\t\"prefer-regex-literals\": \"warn\",\n\n\t\t\t\t// `arguments`/`.apply()`の代わりに`...args`を使用する\n\t\t\t\t\"prefer-rest-params\": \"warn\",\n\t\t\t\t\"prefer-spread\": \"warn\",\n\n\t\t\t\t// `parseInt`には基数を渡す\n\t\t\t\t\"radix\": \"error\",\n\n\t\t\t\t// 正規表現のユニコードフラグを使用する\n\t\t\t\t\"require-unicode-regexp\": \"warn\",\n\n\t\t\t\t// シンボルに名前を付ける\n\t\t\t\t\"symbol-description\": \"warn\",\n\t\t\t},\n\t\t},\n\t];\n}\n","import { pluginJsxA11y } from \"../plugins\";\nimport type { ConfigItem } from \"../types\";\n\nexport function jsxA11y(): ConfigItem[] {\n\treturn [\n\t\t{\n\t\t\tname: \"shun-shobon/jsxA11y/setup\",\n\t\t\tplugins: {\n\t\t\t\t// eslint-disable-next-line typescript/no-unsafe-assignment\n\t\t\t\t\"jsx-a11y\": pluginJsxA11y,\n\t\t\t},\n\t\t\tsettings: {\n\t\t\t\t\"jsx-a11y\": {\n\t\t\t\t\tpolymorphicPropName: \"as\",\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t];\n}\n","import { GLOB_SRC } from \"../globs\";\nimport type { ConfigItem } from \"../types\";\nimport { interopDefault, renameRules } from \"../utils\";\n\nexport async function next(): Promise<ConfigItem[]> {\n\tconst pluginNext = await interopDefault(import(\"@next/eslint-plugin-next\"));\n\n\treturn [\n\t\t{\n\t\t\tname: \"shun-shobon/next/setup\",\n\t\t\tplugins: {\n\t\t\t\tnext: pluginNext,\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"shun-shobon/next/rules\",\n\t\t\tfiles: [GLOB_SRC],\n\t\t\trules: {\n\t\t\t\t// Next.jsの推奨ルールを有効化\n\t\t\t\t...renameRules(\n\t\t\t\t\tpluginNext.configs.recommended.rules,\n\t\t\t\t\t\"@next/next/\",\n\t\t\t\t\t\"next/\",\n\t\t\t\t),\n\n\t\t\t\t// Next.jsの更に厳格なルールを有効化\n\t\t\t\t...renameRules(\n\t\t\t\t\tpluginNext.configs[\"core-web-vitals\"].rules,\n\t\t\t\t\t\"@next/next/\",\n\t\t\t\t\t\"next/\",\n\t\t\t\t),\n\n\t\t\t\t// `img`要素を使う場合もあるので無効化\n\t\t\t\t\"next/no-img-element\": \"off\",\n\t\t\t},\n\t\t},\n\t];\n}\n","import { pluginNode } from \"../plugins\";\nimport type { ConfigItem } from \"../types\";\n\nexport function node(): ConfigItem[] {\n\treturn [\n\t\t{\n\t\t\tname: \"shun-shobon/node/setup\",\n\t\t\tplugins: {\n\t\t\t\tnode: pluginNode,\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"shun-shobon/node/rules\",\n\t\t\trules: {\n\t\t\t\t\"node/no-deprecated-api\": \"error\",\n\t\t\t\t\"node/no-exports-assign\": \"error\",\n\t\t\t\t\"node/no-path-concat\": \"error\",\n\t\t\t\t\"node/no-process-exit\": \"error\",\n\t\t\t\t\"node/no-unpublished-bin\": \"error\",\n\t\t\t\t\"node/no-sync\": \"error\",\n\t\t\t\t\"node/process-exit-as-throw\": \"error\",\n\n\t\t\t\t\"node/prefer-global/console\": \"error\",\n\t\t\t\t\"node/prefer-global/text-decoder\": \"error\",\n\t\t\t\t\"node/prefer-global/text-encoder\": \"error\",\n\t\t\t\t\"node/prefer-global/url\": \"error\",\n\t\t\t\t\"node/prefer-global/url-search-params\": \"error\",\n\n\t\t\t\t\"node/prefer-promises/dns\": \"error\",\n\t\t\t\t\"node/prefer-promises/fs\": \"error\",\n\t\t\t},\n\t\t},\n\t];\n}\n","import { GLOB_JSX, GLOB_TSX } from \"../globs\";\nimport type { ConfigItem, Rules } from \"../types\";\nimport { interopDefault } from \"../utils\";\n\nexport async function qwik(): Promise<ConfigItem[]> {\n\t// @ts-expect-error: This package doesn't have types\n\t// eslint-disable-next-line typescript/no-unsafe-assignment\n\tconst pluginQwik = await interopDefault(import(\"eslint-plugin-qwik\"));\n\n\treturn [\n\t\t{\n\t\t\tname: \"shun-shobon/qwik/setup\",\n\t\t\tplugins: {\n\t\t\t\t// eslint-disable-next-line typescript/no-unsafe-assignment\n\t\t\t\tqwik: pluginQwik,\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"shun-shobon/qwik/rules\",\n\t\t\tfiles: [GLOB_JSX, GLOB_TSX],\n\t\t\trules: {\n\t\t\t\t// qwikの推奨ルールを有効化\n\t\t\t\t// eslint-disable-next-line typescript/no-unsafe-member-access\n\t\t\t\t...(pluginQwik.configs.recommended.rules as Rules),\n\n\t\t\t\t// qwikの厳格ルールを有効化\n\t\t\t\t// eslint-disable-next-line typescript/no-unsafe-member-access\n\t\t\t\t...(pluginQwik.configs.strict.rules as Rules),\n\t\t\t},\n\t\t},\n\t];\n}\n","import { GLOB_JSX, GLOB_TSX } from \"../globs\";\nimport { pluginJsxA11y } from \"../plugins\";\nimport type { ConfigItem, OptionsHasTypeScript, Rules } from \"../types\";\nimport { interopDefault } from \"../utils\";\n\nexport async function react(\n\toptions: OptionsHasTypeScript = {},\n): Promise<ConfigItem[]> {\n\tconst { typescript = false } = options;\n\n\tconst [pluginReact, pluginReactHooks] = await Promise.all([\n\t\tinteropDefault(import(\"eslint-plugin-react\")),\n\t\tinteropDefault(import(\"eslint-plugin-react-hooks\")),\n\t]);\n\n\treturn [\n\t\t{\n\t\t\tname: \"shun-shobon/react/setup\",\n\t\t\tplugins: {\n\t\t\t\t\"react\": pluginReact,\n\n\t\t\t\t\"react-hooks\": pluginReactHooks,\n\t\t\t},\n\t\t\tsettings: {\n\t\t\t\treact: {\n\t\t\t\t\tversion: \"detect\",\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"shun-shobon/react/rules\",\n\t\t\tfiles: [GLOB_JSX, GLOB_TSX],\n\t\t\trules: {\n\t\t\t\t// reactの推奨ルールを有効化\n\t\t\t\t...(pluginReact.configs.recommended.rules as Rules),\n\n\t\t\t\t// React v17以降のJSX Runtimeを使う場合の不要なルールを無効化\n\t\t\t\t...(pluginReact.configs[\"jsx-runtime\"].rules as Rules),\n\n\t\t\t\t// React Hooksの推奨ルールを有効化\n\t\t\t\t...(pluginReactHooks.configs.recommended.rules as Rules),\n\n\t\t\t\t// JSX A11yの厳格なルールを有効化\n\t\t\t\t// eslint-disable-next-line typescript/no-unsafe-member-access\n\t\t\t\t...(pluginJsxA11y.configs.strict.rules as Rules),\n\n\t\t\t\t// その他必要なものを有効化\n\n\t\t\t\t// `onClick`などのイベントハンドラーの命名規則をチェック\n\t\t\t\t\"react/jsx-handler-names\": \"warn\",\n\n\t\t\t\t// ContextのProviderに即値を渡さないようにする\n\t\t\t\t// 即値で渡すと、Providerが含まれるコンポーネントの再描画時に新しい値が渡されてしまい、再描画が発生する\n\t\t\t\t\"react/jsx-no-constructed-context-values\": \"warn\",\n\n\t\t\t\t// `React.Fragment`を省略可能な場合は省略する\n\t\t\t\t// ただし、フラグメントのみの場合は許可する\n\t\t\t\t\"react/jsx-no-useless-fragment\": [\"warn\", { allowExpressions: true }],\n\n\t\t\t\t// rel 属性の値をチェック\n\t\t\t\t\"react/no-invalid-html-attribute\": \"warn\",\n\n\t\t\t\t// propsのデフォルト値としてobjectやarrayのリテラルを使用しないようにする\n\t\t\t\t// 使用してしまうと、再描画が発生する可能性がある\n\t\t\t\t\"react/no-object-type-as-default-prop\": \"warn\",\n\n\t\t\t\t// コンポーネント内でコンポーネントを定義するのを許可しない\n\t\t\t\t\"react/no-unstable-nested-components\": \"error\",\n\n\t\t\t\t...(typescript\n\t\t\t\t\t? {\n\t\t\t\t\t\t\t// TypeScriptの型チェックで検出できるものは無効化\n\n\t\t\t\t\t\t\t// propTypesはTSで代替できるので無効化\n\t\t\t\t\t\t\t\"react/prop-types\": \"off\",\n\n\t\t\t\t\t\t\t// HTMLの属性名として認識されていない属性名を許可\n\t\t\t\t\t\t\t// TSで型チェックしているので不要\n\t\t\t\t\t\t\t\"react/no-unknown-property\": \"off\",\n\t\t\t\t\t\t}\n\t\t\t\t\t: {}),\n\n\t\t\t\t// 曖昧なリンクのテキストを許可しない\n\t\t\t\t\"jsx-a11y/anchor-ambiguous-text\": \"error\",\n\n\t\t\t\t// インタラクティブな要素にラベルが付いていないことを許可しない\n\t\t\t\t\"jsx-a11y/control-has-associated-label\": \"error\",\n\n\t\t\t\t// html要素にlang属性が付与されていないことを許可しない\n\t\t\t\t\"jsx-a11y/lang\": \"error\",\n\n\t\t\t\t// フォーカス可能な要素に `aria-hidden` 属性を付与することを許可しない\n\t\t\t\t\"jsx-a11y/no-aria-hidden-on-focusable\": \"error\",\n\t\t\t},\n\t\t},\n\t];\n}\n","import { pluginRegexp } from \"../plugins\";\nimport type { ConfigItem } from \"../types\";\n\nexport function regexp(): ConfigItem[] {\n\treturn [\n\t\t{\n\t\t\tname: \"shun-shobon/regexp/setup\",\n\t\t\tplugins: {\n\t\t\t\tregexp: pluginRegexp,\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"shun-shobon/regexp/rules\",\n\t\t\trules: {\n\t\t\t\t// 推奨ルールを使用\n\t\t\t\t...pluginRegexp.configs[\"flat/recommended\"].rules,\n\t\t\t},\n\t\t},\n\t];\n}\n","import { GLOB_STORYBOOK, GLOB_STORYBOOK_CONFIG } from \"../globs\";\nimport type { ConfigItem } from \"../types\";\nimport { interopDefault } from \"../utils\";\n\nexport async function storybook(): Promise<ConfigItem[]> {\n\tconst pluginStorybook = await interopDefault(\n\t\timport(\"eslint-plugin-storybook\"),\n\t);\n\n\treturn [\n\t\t{\n\t\t\tname: \"shun-shobon/storybook/setup\",\n\t\t\tplugins: {\n\t\t\t\tstorybook: pluginStorybook,\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"shun-shobon/storybook/rules\",\n\t\t\tfiles: [GLOB_STORYBOOK],\n\t\t\trules: {\n\t\t\t\t// Storybookの推奨ルールから拝借\n\t\t\t\t\"import/no-anonymous-default-export\": \"off\",\n\t\t\t\t\"storybook/await-interactions\": \"error\",\n\t\t\t\t\"storybook/context-in-play-function\": \"error\",\n\t\t\t\t\"storybook/default-exports\": \"error\",\n\t\t\t\t\"storybook/hierarchy-separator\": \"warn\",\n\t\t\t\t\"storybook/no-redundant-story-name\": \"warn\",\n\t\t\t\t\"storybook/prefer-pascal-case\": \"warn\",\n\t\t\t\t\"storybook/story-exports\": \"error\",\n\t\t\t\t\"storybook/use-storybook-expect\": \"error\",\n\t\t\t\t\"storybook/use-storybook-testing-library\": \"error\",\n\t\t\t},\n\t\t},\n\t\t// Storybookの設定ファイルへのルール\n\t\t{\n\t\t\tname: \"shun-shobon/storybook/config-rules\",\n\t\t\tfiles: [GLOB_STORYBOOK_CONFIG],\n\t\t\trules: {\n\t\t\t\t\"storybook/no-uninstalled-addons\": \"error\",\n\t\t\t},\n\t\t},\n\t];\n}\n","import { GLOB_DTS, GLOB_SRC, GLOB_TS, GLOB_TSX } from \"../globs\";\nimport type { ConfigItem, OptionsComponentExts, Rules } from \"../types\";\nimport { renameRules } from \"../utils\";\n\nexport async function typescript(\n\toptions: OptionsComponentExts = {},\n): Promise<ConfigItem[]> {\n\tconst { componentExts = [] } = options;\n\n\tconst {\n\t\tplugin: pluginTypeScript,\n\t\tparser: parserTypeScript,\n\t\tconfigs: configsTypeScript,\n\t} = await import(\"typescript-eslint\");\n\n\treturn [\n\t\t{\n\t\t\tname: \"shun-shobon/typescript/setup\",\n\t\t\tplugins: {\n\t\t\t\ttypescript: pluginTypeScript,\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"shun-shobon/typescript/rules\",\n\t\t\tfiles: [GLOB_SRC, ...componentExts.map((ext) => `**/*.${ext}`)],\n\t\t\tlanguageOptions: {\n\t\t\t\t// @ts-expect-error: This is valid\n\t\t\t\tparser: parserTypeScript,\n\t\t\t\tparserOptions: {\n\t\t\t\t\tprojectService: {\n\t\t\t\t\t\tallowDefaultProject: [\"./*.js\"],\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\trules: {\n\t\t\t\t// 厳密なルール + 型チェックのルールを有効化\n\t\t\t\t...renameRules(\n\t\t\t\t\tconfigsTypeScript.strictTypeChecked.at(-1)!.rules!,\n\t\t\t\t\t\"@typescript-eslint/\",\n\t\t\t\t\t\"typescript/\",\n\t\t\t\t),\n\n\t\t\t\t// コーディング規約 + 型チェックのルールを有効化\n\t\t\t\t...renameRules(\n\t\t\t\t\tconfigsTypeScript.stylisticTypeChecked.at(-1)!.rules!,\n\t\t\t\t\t\"@typescript-eslint/\",\n\t\t\t\t\t\"typescript/\",\n\t\t\t\t),\n\n\t\t\t\t// exportされている関数は型の明示を必須にする\n\t\t\t\t\"typescript/explicit-module-boundary-types\": \"warn\",\n\n\t\t\t\t// 型をexportする際に`type`の付与を必須にする\n\t\t\t\t\"typescript/consistent-type-exports\": [\n\t\t\t\t\t\"error\",\n\t\t\t\t\t{\n\t\t\t\t\t\tfixMixedExportsWithInlineTypeSpecifier: true,\n\t\t\t\t\t},\n\t\t\t\t],\n\n\t\t\t\t// 型をimportする際に`type`の付与を必須にする\n\t\t\t\t\"typescript/consistent-type-imports\": \"error\",\n\n\t\t\t\t// `_`から始まる変数名以外の未使用変数を警告\n\t\t\t\t\"typescript/no-unused-vars\": [\n\t\t\t\t\t\"warn\",\n\t\t\t\t\t{\n\t\t\t\t\t\tvarsIgnorePattern: \"^_\",\n\t\t\t\t\t\targsIgnorePattern: \"^_\",\n\t\t\t\t\t},\n\t\t\t\t],\n\n\t\t\t\t// 副作用の可能性のあるtype importを警告\n\t\t\t\t\"typescript/no-import-type-side-effects\": \"warn\",\n\n\t\t\t\t// なるべくreadonlyを付与する\n\t\t\t\t\"typescript/prefer-readonly\": \"warn\",\n\n\t\t\t\t// `Promise`を返す関数は`async`を付与する\n\t\t\t\t\"typescript/promise-function-async\": \"error\",\n\n\t\t\t\t// ソートでは必ず比較関数を渡す\n\t\t\t\t\"typescript/require-array-sort-compare\": \"error\",\n\n\t\t\t\t// `return await`を使う\n\t\t\t\t// 一貫性のためと、awaitが無くなったときにasyncを外すのは面倒なため\n\t\t\t\t// また、スタックトレースが読みやすくなる\n\t\t\t\t\"typescript/return-await\": [\"warn\", \"always\"],\n\n\t\t\t\t\"typescript/no-unnecessary-condition\": [\n\t\t\t\t\t\"warn\",\n\t\t\t\t\t{ allowConstantLoopConditions: true },\n\t\t\t\t],\n\n\t\t\t\t// null assertion `!` を許可\n\t\t\t\t\"typescript/no-non-null-assertion\": \"off\",\n\n\t\t\t\t// template stringへの変数埋め込みの制限をstrictよりも緩和\n\t\t\t\t\"typescript/restrict-template-expressions\": [\n\t\t\t\t\t\"error\",\n\t\t\t\t\t{\n\t\t\t\t\t\tallowAny: true,\n\t\t\t\t\t\tallowBoolean: false,\n\t\t\t\t\t\tallowNullish: false,\n\t\t\t\t\t\tallowNumber: true,\n\t\t\t\t\t\tallowRegExp: false,\n\t\t\t\t\t\tallowNever: false,\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"shun-shobon/typescript/disables/eslint-recommended\",\n\t\t\tfiles: [GLOB_TS, GLOB_TSX, ...componentExts.map((ext) => `**/*.${ext}`)],\n\t\t\trules: {\n\t\t\t\t// ESLintの推奨ルールからTypeScriptで検証可能なものを無効化\n\t\t\t\t...(configsTypeScript.eslintRecommended.rules as Rules),\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"shun-shobon/typescript/disables/dts\",\n\t\t\tfiles: [GLOB_DTS],\n\t\t\trules: {\n\t\t\t\t// `import`の重複を許可\n\t\t\t\t\"import/no-duplicates\": \"off\",\n\n\t\t\t\t// `///`での参照を許可\n\t\t\t\t\"typescript/triple-slash-reference\": \"off\",\n\t\t\t},\n\t\t},\n\t];\n}\n","import type { Rules } from \"eslint-define-config\";\n\nimport { pluginUnicorn } from \"../plugins\";\nimport type { ConfigItem } from \"../types\";\n\nexport function unicorn(): ConfigItem[] {\n\treturn [\n\t\t{\n\t\t\tname: \"shun-shobon/unicorn/setup\",\n\t\t\tplugins: {\n\t\t\t\tunicorn: pluginUnicorn,\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"shun-shobon/unicorn/rules\",\n\t\t\trules: {\n\t\t\t\t...(pluginUnicorn.configs.recommended.rules as Rules),\n\n\t\t\t\t// Prettierで整形できるルールは無効化\n\t\t\t\t\"unicorn/empty-brace-spaces\": \"off\",\n\t\t\t\t\"unicorn/no-nested-ternary\": \"off\",\n\t\t\t\t\"unicorn/number-literal-case\": \"off\",\n\n\t\t\t\t// unicornの推奨ルールから不要なものを無効化\n\n\t\t\t\t// コンポーネント内の関数など、スコープを小さくしておきたい場合があるので無効化\n\t\t\t\t\"unicorn/consistent-function-scoping\": \"off\",\n\n\t\t\t\t// ファイルの名前はコンポーネントなどで形式が変化するため無効化\n\t\t\t\t\"unicorn/filename-case\": \"off\",\n\n\t\t\t\t// 直接関数を渡したほうが簡潔に書ける場合があるので無効化\n\t\t\t\t\"unicorn/no-array-callback-reference\": \"off\",\n\n\t\t\t\t// `.forEach()`のほうが簡潔に書ける場合があるので無効化\n\t\t\t\t\"unicorn/no-array-for-each\": \"off\",\n\n\t\t\t\t// `.reduce()`/`.reduceRight()`は使ったほうが簡潔に書ける場合があるので無効化\n\t\t\t\t\"unicorn/no-array-reduce\": \"off\",\n\n\t\t\t\t// 否定形の方が簡潔に書ける場合があるので無効化\n\t\t\t\t\"unicorn/no-negated-condition\": \"off\",\n\n\t\t\t\t// nullも使う場合があるので無効化\n\t\t\t\t\"unicorn/no-null\": \"off\",\n\n\t\t\t\t// undefinedを使いたい場合があるので無効化\n\t\t\t\t\"unicorn/no-useless-undefined\": \"off\",\n\n\t\t\t\t// CommonJSを使う場合もあるため無効化\n\t\t\t\t\"unicorn/prefer-module\": \"off\",\n\n\t\t\t\t// `[...array].map()`は~~ダサい~~ので無効化\n\t\t\t\t\"unicorn/prefer-spread\": \"off\",\n\n\t\t\t\t// 略語の方が簡潔に書ける場合があるので無効化\n\t\t\t\t\"unicorn/prevent-abbreviations\": \"off\",\n\n\t\t\t\t// switch文のcase節を常にブロックにするのは冗長なので必要なときのみブロックにする\n\t\t\t\t\"unicorn/switch-case-braces\": [\"warn\", \"avoid\"],\n\t\t\t},\n\t\t},\n\t];\n}\n","import { isPackageExists } from \"local-pkg\";\n\nimport {\n\tastro,\n\tbase,\n\tdisableTypeChecked,\n\timports,\n\timportSort,\n\tjavascript,\n\tjsxA11y,\n\tnext,\n\tnode,\n\tqwik,\n\treact,\n\tregexp,\n\tstorybook,\n\ttypescript,\n\tunicorn,\n} from \"./configs\";\nimport { GLOB_ASTRO, GLOB_ASTRO_EXT, GLOB_JS, GLOB_JSX } from \"./globs\";\nimport type { Awaitable, ConfigItem, OptionsConfig } from \"./types\";\nimport { interopDefault } from \"./utils\";\n\n// eslint-disable-next-line complexity\nexport async function shun_shobon(\n\toptions: OptionsConfig = {},\n\t...userConfigs: ConfigItem[]\n): Promise<ConfigItem[]> {\n\tconst {\n\t\tgitignore: enableGitignore = true,\n\t\tignores: userIgnores = [],\n\t\ttypescript: enableTypescript = isPackageExists(\"typescript\"),\n\t\treact: enableReact = isPackageExists(\"react\"),\n\t\tnext: enableNext = isPackageExists(\"next\"),\n\t\tqwik: enableQwik = isPackageExists(\"@builder.io/qwik\"),\n\t\tastro: enableAstro = isPackageExists(\"astro\"),\n\t\tstorybook: enableStorybook = isPackageExists(\"storybook\"),\n\t\tcomponentExts = [],\n\t\tdisableTypeCheckedFiles = [],\n\t} = options;\n\n\tconst configQueue: Awaitable<ConfigItem[]>[] = [];\n\n\tif (enableGitignore) {\n\t\tconfigQueue.push(\n\t\t\tinteropDefault(import(\"eslint-config-flat-gitignore\")).then(\n\t\t\t\t(gitignore) => [\n\t\t\t\t\tgitignore(\n\t\t\t\t\t\ttypeof enableGitignore !== \"boolean\"\n\t\t\t\t\t\t\t? { name: \"shun-shobon/gitignore/setup\", ...enableGitignore }\n\t\t\t\t\t\t\t: { name: \"shun-shobon/gitignore/setup\" },\n\t\t\t\t\t),\n\t\t\t\t],\n\t\t\t),\n\t\t);\n\t}\n\n\t// Preprocess\n\tif (enableAstro) {\n\t\tcomponentExts.push(GLOB_ASTRO_EXT);\n\t\tdisableTypeCheckedFiles.push(GLOB_ASTRO);\n\t}\n\n\t// Process\n\t// basic configs\n\tconfigQueue.push(\n\t\tbase(),\n\t\tjavascript(),\n\t\timports({ typescript: enableTypescript }),\n\t\timportSort(),\n\t\tunicorn(),\n\t\tregexp(),\n\t\tnode(),\n\t\tjsxA11y(),\n\t);\n\tif (enableTypescript) {\n\t\tconfigQueue.push(\n\t\t\ttypescript({\n\t\t\t\tcomponentExts,\n\t\t\t}),\n\t\t);\n\t\tdisableTypeCheckedFiles.push(GLOB_JS, GLOB_JSX);\n\t}\n\tif (enableReact) {\n\t\tconfigQueue.push(\n\t\t\treact({\n\t\t\t\ttypescript: enableTypescript,\n\t\t\t}),\n\t\t);\n\t}\n\tif (enableNext) {\n\t\tconfigQueue.push(next());\n\t}\n\tif (enableQwik) {\n\t\tconfigQueue.push(qwik());\n\t}\n\tif (enableAstro) {\n\t\tconfigQueue.push(\n\t\t\tastro({\n\t\t\t\ttypescript: enableTypescript,\n\t\t\t}),\n\t\t);\n\t}\n\tif (enableStorybook) {\n\t\tconfigQueue.push(storybook());\n\t}\n\n\t// Postprocess\n\tif (enableTypescript) {\n\t\tconfigQueue.push(disableTypeChecked({ disableTypeCheckedFiles }));\n\t}\n\n\tconst ignores = [...userIgnores, \"**/.yarn/**\"];\n\tconfigQueue.push([\n\t\t{\n\t\t\tignores,\n\t\t},\n\t]);\n\n\tconst configs = await Promise.all(configQueue).then((configs) =>\n\t\tconfigs.flat(),\n\t);\n\n\treturn [...configs, ...userConfigs];\n}\n"],"mappings":"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","names":["typescript","default","default","typescript","default","default","default","default","typescript","default","default","default","configs"]}
1
+ {"version":3,"sources":["../../src/eslint/globs.ts","../../src/eslint/utils.ts","../../src/eslint/configs/astro.ts","../../src/eslint/configs/base.ts","../../src/eslint/configs/disable-type-checked.ts","../../src/eslint/plugins.ts","../../src/eslint/configs/import-sort.ts","../../src/eslint/configs/imports.ts","../../src/eslint/configs/javascript.ts","../../src/eslint/configs/jsx-a11y.ts","../../src/eslint/configs/next.ts","../../src/eslint/configs/node.ts","../../src/eslint/configs/qwik.ts","../../src/eslint/configs/react.ts","../../src/eslint/configs/regexp.ts","../../src/eslint/configs/storybook.ts","../../src/eslint/configs/typescript.ts","../../src/eslint/configs/unicorn.ts","../../src/eslint/factory.ts"],"sourcesContent":["export const GLOB_SRC_EXT = \"?([cm])[jt]s?(x)\";\nexport const GLOB_SRC = `**/*.${GLOB_SRC_EXT}`;\n\nexport const GLOB_JS_EXT = \"?([cm])js\";\nexport const GLOB_JS = `**/*.${GLOB_JS_EXT}`;\n\nexport const GLOB_JSX_EXT = \"?([cm])jsx\";\nexport const GLOB_JSX = `**/*.${GLOB_JSX_EXT}`;\n\nexport const GLOB_TS_EXT = \"?([cm])ts\";\nexport const GLOB_TS = `**/*.${GLOB_TS_EXT}`;\n\nexport const GLOB_TSX_EXT = \"?([cm])tsx\";\nexport const GLOB_TSX = `**/*.${GLOB_TSX_EXT}`;\n\nexport const GLOB_DTS_EXT = \"?([cm])d.ts\";\nexport const GLOB_DTS = `**/*.${GLOB_DTS_EXT}`;\n\nexport const GLOB_STORYBOOK_EXT = `@(stories|story).${GLOB_TSX_EXT}`;\nexport const GLOB_STORYBOOK = `**/*.${GLOB_STORYBOOK_EXT}`;\n\nexport const GLOB_STORYBOOK_CONFIG = `**/.storybook/main.${GLOB_SRC_EXT}`;\n\nexport const GLOB_ASTRO_EXT = \"astro\";\nexport const GLOB_ASTRO = `**/*.${GLOB_ASTRO_EXT}`;\n","import type { Awaitable, Rules } from \"./types\";\n\nexport async function interopDefault<T>(\n\tmodule: Awaitable<T>,\n): Promise<T extends { default: infer U } ? U : T> {\n\tconst resolved = await module;\n\n\t// eslint-disable-next-line typescript/no-unsafe-return, typescript/no-unsafe-member-access, typescript/no-explicit-any\n\treturn (resolved as any).default ?? resolved;\n}\n\nexport function renameRules(\n\t// eslint-disable-next-line typescript/no-explicit-any\n\trules: Record<string, any>,\n\tfrom: string,\n\tto: string,\n): Rules {\n\treturn Object.fromEntries(\n\t\tObject.entries(rules).map(([key, value]) => [\n\t\t\tkey.startsWith(from) ? `${to}${key.slice(from.length)}` : key,\n\t\t\tvalue,\n\t\t]),\n\t);\n}\n","import { GLOB_ASTRO } from \"../globs\";\nimport type { ConfigItem, OptionsHasTypeScript, Rules } from \"../types\";\nimport { interopDefault } from \"../utils\";\n\nexport async function astro(\n\toptions: OptionsHasTypeScript = {},\n): Promise<ConfigItem[]> {\n\tconst { typescript = true } = options;\n\n\tconst [pluginAstro, parserAstro] = await Promise.all([\n\t\tinteropDefault(import(\"eslint-plugin-astro\")),\n\t\tinteropDefault(import(\"astro-eslint-parser\")),\n\t]);\n\n\treturn [\n\t\t{\n\t\t\tname: \"shun-shobon/astro/plugins\",\n\t\t\tplugins: {\n\t\t\t\tastro: pluginAstro,\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"shun-shobon/astro/rules\",\n\t\t\tfiles: [GLOB_ASTRO],\n\t\t\tlanguageOptions: {\n\t\t\t\tparser: parserAstro,\n\t\t\t\tparserOptions: {\n\t\t\t\t\tparser: typescript\n\t\t\t\t\t\t? await interopDefault(import(\"@typescript-eslint/parser\"))\n\t\t\t\t\t\t: undefined,\n\t\t\t\t\textraFileExtensions: [\".astro\"],\n\t\t\t\t},\n\t\t\t\tglobals: {\n\t\t\t\t\tAstro: \"readonly\",\n\t\t\t\t\tFragment: \"readonly\",\n\t\t\t\t},\n\t\t\t},\n\n\t\t\tprocessor:\n\t\t\t\tpluginAstro.processors[typescript ? \"client-side-ts\" : \"astro\"],\n\t\t\trules: {\n\t\t\t\t// Astroの推奨ルールを有効化\n\t\t\t\t...(pluginAstro.configs.recommended.at(-1)!.rules as Rules),\n\n\t\t\t\t// Astroのjsx-a11yの拡張ルール(strict)を有効化\n\t\t\t\t...(pluginAstro.configs[\"jsx-a11y-strict\"].at(-1)!.rules as Rules),\n\n\t\t\t\t// 曖昧なリンクのテキストを許可しない\n\t\t\t\t\"astro/jsx-a11y/anchor-ambiguous-text\": \"error\",\n\n\t\t\t\t// インタラクティブな要素にラベルが付いていないことを許可しない\n\t\t\t\t\"astro/jsx-a11y/control-has-associated-label\": \"error\",\n\n\t\t\t\t// html要素にlang属性が付与されていないことを許可しない\n\t\t\t\t\"astro/jsx-a11y/lang\": \"error\",\n\n\t\t\t\t// フォーカス可能な要素に `aria-hidden` 属性を付与することを許可しない\n\t\t\t\t\"astro/jsx-a11y/no-aria-hidden-on-focusable\": \"error\",\n\t\t\t},\n\t\t},\n\t];\n}\n","import type { ConfigItem } from \"../types\";\n\nexport function base(): ConfigItem[] {\n\treturn [\n\t\t{\n\t\t\tname: \"shun-shobon/base/setup\",\n\t\t\tlinterOptions: {\n\t\t\t\treportUnusedDisableDirectives: true,\n\t\t\t},\n\t\t},\n\t];\n}\n","import type { ConfigItem, OptionsDisableTypeCheckedFiles } from \"../types\";\nimport { interopDefault, renameRules } from \"../utils\";\n\nexport async function disableTypeChecked(\n\toptions: OptionsDisableTypeCheckedFiles = {},\n): Promise<ConfigItem[]> {\n\tconst { disableTypeCheckedFiles = [] } = options;\n\n\tconst { configs: configsTypeScript } = await interopDefault(\n\t\timport(\"typescript-eslint\"),\n\t);\n\n\treturn [\n\t\t{\n\t\t\tname: \"shun-shobon/disableTypeChecked/rules\",\n\t\t\tfiles: disableTypeCheckedFiles,\n\t\t\tlanguageOptions: {\n\t\t\t\tparserOptions: {\n\t\t\t\t\tprojectService: false,\n\t\t\t\t},\n\t\t\t},\n\t\t\trules: {\n\t\t\t\t...renameRules(\n\t\t\t\t\tconfigsTypeScript.disableTypeChecked.rules!,\n\t\t\t\t\t\"@typescript-eslint/\",\n\t\t\t\t\t\"typescript/\",\n\t\t\t\t),\n\t\t\t},\n\t\t},\n\t];\n}\n","// eslint-disable-next-line typescript/ban-ts-comment\n// @ts-nocheck\n\nexport { default as configJs } from \"@eslint/js\";\nexport { default as pluginImport } from \"eslint-plugin-import-x\";\nexport { default as pluginJsxA11y } from \"eslint-plugin-jsx-a11y\";\nexport { default as pluginNode } from \"eslint-plugin-n\";\nexport { default as pluginRegexp } from \"eslint-plugin-regexp\";\nexport { default as pluginImportSort } from \"eslint-plugin-simple-import-sort\";\nexport { default as pluginUnicorn } from \"eslint-plugin-unicorn\";\n","import { pluginImportSort } from \"../plugins\";\nimport type { ConfigItem } from \"../types\";\n\nexport function importSort(): ConfigItem[] {\n\treturn [\n\t\t{\n\t\t\tname: \"shun-shobon/importSort/setup\",\n\t\t\tplugins: {\n\t\t\t\t\"import-sort\": pluginImportSort,\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"shun-shobon/importSort/rules\",\n\t\t\trules: {\n\t\t\t\t// importをソートする\n\t\t\t\t\"import-sort/imports\": \"warn\",\n\n\t\t\t\t// exportをソートする\n\t\t\t\t\"import-sort/exports\": \"warn\",\n\t\t\t},\n\t\t},\n\t];\n}\n","import { pluginImport } from \"../plugins\";\nimport type { ConfigItem, OptionsHasTypeScript } from \"../types\";\nimport { renameRules } from \"../utils\";\n\nexport function imports(options: OptionsHasTypeScript): ConfigItem[] {\n\tconst { typescript = false } = options;\n\n\treturn [\n\t\t{\n\t\t\tname: \"shun-shobon/imports/setup\",\n\t\t\tplugins: {\n\t\t\t\timport: pluginImport,\n\t\t\t},\n\t\t\tsettings: {\n\t\t\t\t\"import-x/parsers\": {\n\t\t\t\t\tespree: [\".js\", \".cjs\", \".mjs\", \".jsx\"],\n\t\t\t\t\t...(typescript\n\t\t\t\t\t\t? { \"@typescript-eslint/parser\": [\".ts\", \".mts\", \".cts\", \".tsx\"] }\n\t\t\t\t\t\t: {}),\n\t\t\t\t},\n\t\t\t\t\"import-x/extensions\": [\n\t\t\t\t\t\".js\",\n\t\t\t\t\t\".jsx\",\n\t\t\t\t\t...(typescript ? [\".ts\", \".tsx\", \".d.ts\"] : []),\n\t\t\t\t],\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"shun-shobon/imports/rules\",\n\t\t\trules: {\n\t\t\t\t...renameRules(\n\t\t\t\t\tpluginImport.configs.recommended.rules,\n\t\t\t\t\t\"import-x/\",\n\t\t\t\t\t\"import/\",\n\t\t\t\t),\n\n\t\t\t\t// import先のモジュールが存在するかチェックしない\n\t\t\t\t// TSの型チェックで十分なため\n\t\t\t\t\"import/namespace\": \"off\",\n\t\t\t\t\"import/no-unresolved\": \"off\",\n\t\t\t\t\"import/named\": \"off\",\n\n\t\t\t\t// type import時に`import type { foo } from \"foo\"`を強制\n\t\t\t\t\"import/consistent-type-specifier-style\": [\"warn\", \"prefer-top-level\"],\n\n\t\t\t\t// import文を一番上に書くのを強制\n\t\t\t\t\"import/first\": \"error\",\n\n\t\t\t\t// 同じパスからのimportをまとめる\n\t\t\t\t\"import/no-duplicates\": \"warn\",\n\n\t\t\t\t// default import時に`{ default as foo } from \"foo\"`と書くのを警告\n\t\t\t\t\"import/no-named-default\": \"warn\",\n\n\t\t\t\t// import文のパスを簡略化する\n\t\t\t\t\"import/no-useless-path-segments\": [\"warn\", { noUselessIndex: true }],\n\n\t\t\t\t// 自分自身をimportするのを禁止\n\t\t\t\t\"import/no-self-import\": \"error\",\n\t\t\t},\n\t\t},\n\t];\n}\n","import globals from \"globals\";\n\nimport { configJs } from \"../plugins\";\nimport type { ConfigItem } from \"../types\";\n\nexport function javascript(): ConfigItem[] {\n\treturn [\n\t\t{\n\t\t\tname: \"shun-shobon/javascript/rules\",\n\t\t\tlanguageOptions: {\n\t\t\t\tecmaVersion: \"latest\",\n\t\t\t\tsourceType: \"module\",\n\t\t\t\tglobals: {\n\t\t\t\t\t...globals.es2021,\n\t\t\t\t\t...globals.browser,\n\t\t\t\t\t...globals.node,\n\t\t\t\t},\n\t\t\t\tparserOptions: {\n\t\t\t\t\tecmaFeatures: {\n\t\t\t\t\t\tjax: true,\n\t\t\t\t\t},\n\t\t\t\t\tecmaVersion: \"latest\",\n\t\t\t\t\tsourceType: \"module\",\n\t\t\t\t},\n\t\t\t},\n\t\t\trules: {\n\t\t\t\t...configJs.configs.recommended.rules,\n\n\t\t\t\t// Arrayの関数に`return`を忘れないようにする\n\t\t\t\t\"array-callback-return\": \"error\",\n\n\t\t\t\t// 常にtrue/falseになる式や短絡評価されない式を警告\n\t\t\t\t\"no-constant-binary-expression\": \"warn\",\n\n\t\t\t\t// コンストラクタの戻り値を許可しない\n\t\t\t\t\"no-constructor-return\": \"error\",\n\n\t\t\t\t// Symbol/BigIntでnewしない\n\t\t\t\t\"no-new-native-nonconstructor\": \"error\",\n\n\t\t\t\t// `Promise`のコンストラクタの戻り値を許可しない\n\t\t\t\t\"no-promise-executor-return\": \"error\",\n\n\t\t\t\t// 自分自身を比較する式を許可しない\n\t\t\t\t// NaNチェックは`Number.isNaN()`を使う\n\t\t\t\t\"no-self-compare\": \"error\",\n\n\t\t\t\t// ループの条件式の変数をループ内で変更していない場合に警告\n\t\t\t\t\"no-unmodified-loop-condition\": \"warn\",\n\n\t\t\t\t// 条件式が常にtrue/falseになる場合を警告\n\t\t\t\t// ただし、ループ内の条件式は除外\n\t\t\t\t\"no-constant-condition\": [\"error\", { checkLoops: false }],\n\n\t\t\t\t// 1回しかループしないループを警告\n\t\t\t\t\"no-unreachable-loop\": \"warn\",\n\n\t\t\t\t// 未使用のプライベートクラスメンバーを警告\n\t\t\t\t\"no-unused-private-class-members\": \"warn\",\n\n\t\t\t\t// `_`から始まる変数名以外の未使用変数を警告\n\t\t\t\t\"no-unused-vars\": [\n\t\t\t\t\t\"warn\",\n\t\t\t\t\t{\n\t\t\t\t\t\tvarsIgnorePattern: \"^_\",\n\t\t\t\t\t\targsIgnorePattern: \"^_\",\n\t\t\t\t\t},\n\t\t\t\t],\n\n\t\t\t\t// 競合が発生する可能性のある値の代入を許可しない\n\t\t\t\t\"require-atomic-updates\": \"error\",\n\n\t\t\t\t// 循環的複雑度を15以上を警告\n\t\t\t\t\"complexity\": [\"warn\", 15],\n\n\t\t\t\t// switch文のデフォルトケースを最後にする\n\t\t\t\t\"default-case-last\": \"error\",\n\n\t\t\t\t// デフォルト引数を最後にする\n\t\t\t\t\"default-param-last\": \"error\",\n\n\t\t\t\t// nullチェックを除いて厳密でない等価演算子を許可しない\n\t\t\t\t\"eqeqeq\": [\"error\", \"always\", { null: \"ignore\" }],\n\n\t\t\t\t// getter/setterをグループ化\n\t\t\t\t\"grouped-accessor-pairs\": [\"error\", \"setBeforeGet\"],\n\n\t\t\t\t// `console.log()`/`alert`を警告\n\t\t\t\t\"no-alert\": \"warn\",\n\t\t\t\t\"no-console\": [\"warn\", { allow: [\"warn\", \"error\"] }],\n\n\t\t\t\t// `else { return }`を警告\n\t\t\t\t\"no-else-return\": \"warn\",\n\n\t\t\t\t// `!!`や`~`を使った短縮型変換を許可しない\n\t\t\t\t\"no-implicit-coercion\": \"error\",\n\n\t\t\t\t// 不要なifのネストを許可しない\n\t\t\t\t\"no-lonely-if\": \"error\",\n\n\t\t\t\t// 複数の代入を許可しない\n\t\t\t\t\"no-multi-assign\": \"error\",\n\n\t\t\t\t// 複数行文字列を警告\n\t\t\t\t\"no-multi-str\": \"warn\",\n\n\t\t\t\t// `Function`/`Object`/`String`/`Number`/`Boolean`のコンストラクタを許可しない\n\t\t\t\t\"no-new-func\": \"error\",\n\t\t\t\t\"no-new-wrappers\": \"error\",\n\n\t\t\t\t// 関数の引数を再代入することを許可しない\n\t\t\t\t\"no-param-reassign\": \"error\",\n\n\t\t\t\t// インクリメント/デクリメント演算子を許可しない\n\t\t\t\t\"no-plusplus\": \"error\",\n\n\t\t\t\t// `throw` に文字列を渡さない\n\t\t\t\t\"no-throw-literal\": \"error\",\n\n\t\t\t\t// 不要な三項演算子を警告\n\t\t\t\t\"no-unneeded-ternary\": \"warn\",\n\n\t\t\t\t// 未使用の式を警告\n\t\t\t\t\"no-unused-expressions\": \"warn\",\n\n\t\t\t\t// 意味の無いコンストラクタを警告\n\t\t\t\t\"no-useless-constructor\": \"warn\",\n\n\t\t\t\t// 意味の無い`return`を警告\n\t\t\t\t\"no-useless-return\": \"warn\",\n\n\t\t\t\t// `var`を許可しない\n\t\t\t\t\"no-var\": \"error\",\n\n\t\t\t\t// オブジェクトのショートハンド記法を使用していない場合は警告\n\t\t\t\t\"object-shorthand\": \"warn\",\n\n\t\t\t\t// 演算子のショートハンド記法を使用していない場合は警告\n\t\t\t\t\"operator-assignment\": \"warn\",\n\n\t\t\t\t// コールバック関数をアロー関数にする\n\t\t\t\t\"prefer-arrow-callback\": \"warn\",\n\n\t\t\t\t// `const`を使用する\n\t\t\t\t\"prefer-const\": \"warn\",\n\n\t\t\t\t// 名前付きキャプチャグループを使用する\n\t\t\t\t\"prefer-named-capture-group\": \"warn\",\n\n\t\t\t\t// `Number.parseInt()`を使用する\n\t\t\t\t\"prefer-numeric-literals\": \"error\",\n\n\t\t\t\t// `hasOwnProperty`の使用を許可しない\n\t\t\t\t\"prefer-object-has-own\": \"error\",\n\n\t\t\t\t// スプレッド構文を使用する\n\t\t\t\t\"prefer-object-spread\": \"warn\",\n\n\t\t\t\t// `Promise`の`reject`には`Error`オブジェクトを渡す\n\t\t\t\t\"prefer-promise-reject-errors\": \"error\",\n\n\t\t\t\t// なるべく正規表現リテラルを使用する\n\t\t\t\t\"prefer-regex-literals\": \"warn\",\n\n\t\t\t\t// `arguments`/`.apply()`の代わりに`...args`を使用する\n\t\t\t\t\"prefer-rest-params\": \"warn\",\n\t\t\t\t\"prefer-spread\": \"warn\",\n\n\t\t\t\t// `parseInt`には基数を渡す\n\t\t\t\t\"radix\": \"error\",\n\n\t\t\t\t// 正規表現のユニコードフラグを使用する\n\t\t\t\t\"require-unicode-regexp\": \"warn\",\n\n\t\t\t\t// シンボルに名前を付ける\n\t\t\t\t\"symbol-description\": \"warn\",\n\t\t\t},\n\t\t},\n\t];\n}\n","import { pluginJsxA11y } from \"../plugins\";\nimport type { ConfigItem } from \"../types\";\n\nexport function jsxA11y(): ConfigItem[] {\n\treturn [\n\t\t{\n\t\t\tname: \"shun-shobon/jsxA11y/setup\",\n\t\t\tplugins: {\n\t\t\t\t// eslint-disable-next-line typescript/no-unsafe-assignment\n\t\t\t\t\"jsx-a11y\": pluginJsxA11y,\n\t\t\t},\n\t\t\tsettings: {\n\t\t\t\t\"jsx-a11y\": {\n\t\t\t\t\tpolymorphicPropName: \"as\",\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t];\n}\n","import { GLOB_SRC } from \"../globs\";\nimport type { ConfigItem } from \"../types\";\nimport { interopDefault, renameRules } from \"../utils\";\n\nexport async function next(): Promise<ConfigItem[]> {\n\tconst pluginNext = await interopDefault(import(\"@next/eslint-plugin-next\"));\n\n\treturn [\n\t\t{\n\t\t\tname: \"shun-shobon/next/setup\",\n\t\t\tplugins: {\n\t\t\t\tnext: pluginNext,\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"shun-shobon/next/rules\",\n\t\t\tfiles: [GLOB_SRC],\n\t\t\trules: {\n\t\t\t\t// Next.jsの推奨ルールを有効化\n\t\t\t\t...renameRules(\n\t\t\t\t\tpluginNext.configs.recommended.rules,\n\t\t\t\t\t\"@next/next/\",\n\t\t\t\t\t\"next/\",\n\t\t\t\t),\n\n\t\t\t\t// Next.jsの更に厳格なルールを有効化\n\t\t\t\t...renameRules(\n\t\t\t\t\tpluginNext.configs[\"core-web-vitals\"].rules,\n\t\t\t\t\t\"@next/next/\",\n\t\t\t\t\t\"next/\",\n\t\t\t\t),\n\n\t\t\t\t// `img`要素を使う場合もあるので無効化\n\t\t\t\t\"next/no-img-element\": \"off\",\n\t\t\t},\n\t\t},\n\t];\n}\n","import { pluginNode } from \"../plugins\";\nimport type { ConfigItem } from \"../types\";\n\nexport function node(): ConfigItem[] {\n\treturn [\n\t\t{\n\t\t\tname: \"shun-shobon/node/setup\",\n\t\t\tplugins: {\n\t\t\t\tnode: pluginNode,\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"shun-shobon/node/rules\",\n\t\t\trules: {\n\t\t\t\t\"node/no-deprecated-api\": \"error\",\n\t\t\t\t\"node/no-exports-assign\": \"error\",\n\t\t\t\t\"node/no-path-concat\": \"error\",\n\t\t\t\t\"node/no-process-exit\": \"error\",\n\t\t\t\t\"node/no-unpublished-bin\": \"error\",\n\t\t\t\t\"node/no-sync\": \"error\",\n\t\t\t\t\"node/process-exit-as-throw\": \"error\",\n\n\t\t\t\t\"node/prefer-global/console\": \"error\",\n\t\t\t\t\"node/prefer-global/text-decoder\": \"error\",\n\t\t\t\t\"node/prefer-global/text-encoder\": \"error\",\n\t\t\t\t\"node/prefer-global/url\": \"error\",\n\t\t\t\t\"node/prefer-global/url-search-params\": \"error\",\n\n\t\t\t\t\"node/prefer-promises/dns\": \"error\",\n\t\t\t\t\"node/prefer-promises/fs\": \"error\",\n\t\t\t},\n\t\t},\n\t];\n}\n","import { GLOB_JSX, GLOB_TSX } from \"../globs\";\nimport type { ConfigItem, Rules } from \"../types\";\nimport { interopDefault } from \"../utils\";\n\nexport async function qwik(): Promise<ConfigItem[]> {\n\t// @ts-expect-error: This package doesn't have types\n\t// eslint-disable-next-line typescript/no-unsafe-assignment\n\tconst pluginQwik = await interopDefault(import(\"eslint-plugin-qwik\"));\n\n\treturn [\n\t\t{\n\t\t\tname: \"shun-shobon/qwik/setup\",\n\t\t\tplugins: {\n\t\t\t\t// eslint-disable-next-line typescript/no-unsafe-assignment\n\t\t\t\tqwik: pluginQwik,\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"shun-shobon/qwik/rules\",\n\t\t\tfiles: [GLOB_JSX, GLOB_TSX],\n\t\t\trules: {\n\t\t\t\t// qwikの推奨ルールを有効化\n\t\t\t\t// eslint-disable-next-line typescript/no-unsafe-member-access\n\t\t\t\t...(pluginQwik.configs.recommended.rules as Rules),\n\n\t\t\t\t// qwikの厳格ルールを有効化\n\t\t\t\t// eslint-disable-next-line typescript/no-unsafe-member-access\n\t\t\t\t...(pluginQwik.configs.strict.rules as Rules),\n\t\t\t},\n\t\t},\n\t];\n}\n","import { GLOB_JSX, GLOB_TSX } from \"../globs\";\nimport { pluginJsxA11y } from \"../plugins\";\nimport type { ConfigItem, OptionsHasTypeScript, Rules } from \"../types\";\nimport { interopDefault } from \"../utils\";\n\nexport async function react(\n\toptions: OptionsHasTypeScript = {},\n): Promise<ConfigItem[]> {\n\tconst { typescript = false } = options;\n\n\tconst [pluginReact, pluginReactHooks] = await Promise.all([\n\t\tinteropDefault(import(\"eslint-plugin-react\")),\n\t\tinteropDefault(import(\"eslint-plugin-react-hooks\")),\n\t]);\n\n\treturn [\n\t\t{\n\t\t\tname: \"shun-shobon/react/setup\",\n\t\t\tplugins: {\n\t\t\t\t\"react\": pluginReact,\n\n\t\t\t\t\"react-hooks\": pluginReactHooks,\n\t\t\t},\n\t\t\tsettings: {\n\t\t\t\treact: {\n\t\t\t\t\tversion: \"detect\",\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"shun-shobon/react/rules\",\n\t\t\tfiles: [GLOB_JSX, GLOB_TSX],\n\t\t\trules: {\n\t\t\t\t// reactの推奨ルールを有効化\n\t\t\t\t...(pluginReact.configs.recommended.rules as Rules),\n\n\t\t\t\t// React v17以降のJSX Runtimeを使う場合の不要なルールを無効化\n\t\t\t\t...(pluginReact.configs[\"jsx-runtime\"].rules as Rules),\n\n\t\t\t\t// React Hooksの推奨ルールを有効化\n\t\t\t\t...(pluginReactHooks.configs.recommended.rules as Rules),\n\n\t\t\t\t// JSX A11yの厳格なルールを有効化\n\t\t\t\t// eslint-disable-next-line typescript/no-unsafe-member-access\n\t\t\t\t...(pluginJsxA11y.configs.strict.rules as Rules),\n\n\t\t\t\t// その他必要なものを有効化\n\n\t\t\t\t// `onClick`などのイベントハンドラーの命名規則をチェック\n\t\t\t\t\"react/jsx-handler-names\": \"warn\",\n\n\t\t\t\t// ContextのProviderに即値を渡さないようにする\n\t\t\t\t// 即値で渡すと、Providerが含まれるコンポーネントの再描画時に新しい値が渡されてしまい、再描画が発生する\n\t\t\t\t\"react/jsx-no-constructed-context-values\": \"warn\",\n\n\t\t\t\t// `React.Fragment`を省略可能な場合は省略する\n\t\t\t\t// ただし、フラグメントのみの場合は許可する\n\t\t\t\t\"react/jsx-no-useless-fragment\": [\"warn\", { allowExpressions: true }],\n\n\t\t\t\t// rel 属性の値をチェック\n\t\t\t\t\"react/no-invalid-html-attribute\": \"warn\",\n\n\t\t\t\t// propsのデフォルト値としてobjectやarrayのリテラルを使用しないようにする\n\t\t\t\t// 使用してしまうと、再描画が発生する可能性がある\n\t\t\t\t\"react/no-object-type-as-default-prop\": \"warn\",\n\n\t\t\t\t// コンポーネント内でコンポーネントを定義するのを許可しない\n\t\t\t\t\"react/no-unstable-nested-components\": \"error\",\n\n\t\t\t\t...(typescript\n\t\t\t\t\t? {\n\t\t\t\t\t\t\t// TypeScriptの型チェックで検出できるものは無効化\n\n\t\t\t\t\t\t\t// propTypesはTSで代替できるので無効化\n\t\t\t\t\t\t\t\"react/prop-types\": \"off\",\n\n\t\t\t\t\t\t\t// HTMLの属性名として認識されていない属性名を許可\n\t\t\t\t\t\t\t// TSで型チェックしているので不要\n\t\t\t\t\t\t\t\"react/no-unknown-property\": \"off\",\n\t\t\t\t\t\t}\n\t\t\t\t\t: {}),\n\n\t\t\t\t// 曖昧なリンクのテキストを許可しない\n\t\t\t\t\"jsx-a11y/anchor-ambiguous-text\": \"error\",\n\n\t\t\t\t// インタラクティブな要素にラベルが付いていないことを許可しない\n\t\t\t\t\"jsx-a11y/control-has-associated-label\": \"error\",\n\n\t\t\t\t// html要素にlang属性が付与されていないことを許可しない\n\t\t\t\t\"jsx-a11y/lang\": \"error\",\n\n\t\t\t\t// フォーカス可能な要素に `aria-hidden` 属性を付与することを許可しない\n\t\t\t\t\"jsx-a11y/no-aria-hidden-on-focusable\": \"error\",\n\t\t\t},\n\t\t},\n\t];\n}\n","import { pluginRegexp } from \"../plugins\";\nimport type { ConfigItem } from \"../types\";\n\nexport function regexp(): ConfigItem[] {\n\treturn [\n\t\t{\n\t\t\tname: \"shun-shobon/regexp/setup\",\n\t\t\tplugins: {\n\t\t\t\tregexp: pluginRegexp,\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"shun-shobon/regexp/rules\",\n\t\t\trules: {\n\t\t\t\t// 推奨ルールを使用\n\t\t\t\t...pluginRegexp.configs[\"flat/recommended\"].rules,\n\t\t\t},\n\t\t},\n\t];\n}\n","import { GLOB_STORYBOOK, GLOB_STORYBOOK_CONFIG } from \"../globs\";\nimport type { ConfigItem } from \"../types\";\nimport { interopDefault } from \"../utils\";\n\nexport async function storybook(): Promise<ConfigItem[]> {\n\tconst pluginStorybook = await interopDefault(\n\t\timport(\"eslint-plugin-storybook\"),\n\t);\n\n\treturn [\n\t\t{\n\t\t\tname: \"shun-shobon/storybook/setup\",\n\t\t\tplugins: {\n\t\t\t\tstorybook: pluginStorybook,\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"shun-shobon/storybook/rules\",\n\t\t\tfiles: [GLOB_STORYBOOK],\n\t\t\trules: {\n\t\t\t\t// Storybookの推奨ルールから拝借\n\t\t\t\t\"import/no-anonymous-default-export\": \"off\",\n\t\t\t\t\"storybook/await-interactions\": \"error\",\n\t\t\t\t\"storybook/context-in-play-function\": \"error\",\n\t\t\t\t\"storybook/default-exports\": \"error\",\n\t\t\t\t\"storybook/hierarchy-separator\": \"warn\",\n\t\t\t\t\"storybook/no-redundant-story-name\": \"warn\",\n\t\t\t\t\"storybook/prefer-pascal-case\": \"warn\",\n\t\t\t\t\"storybook/story-exports\": \"error\",\n\t\t\t\t\"storybook/use-storybook-expect\": \"error\",\n\t\t\t\t\"storybook/use-storybook-testing-library\": \"error\",\n\t\t\t},\n\t\t},\n\t\t// Storybookの設定ファイルへのルール\n\t\t{\n\t\t\tname: \"shun-shobon/storybook/config-rules\",\n\t\t\tfiles: [GLOB_STORYBOOK_CONFIG],\n\t\t\trules: {\n\t\t\t\t\"storybook/no-uninstalled-addons\": \"error\",\n\t\t\t},\n\t\t},\n\t];\n}\n","import { GLOB_DTS, GLOB_SRC, GLOB_TS, GLOB_TSX } from \"../globs\";\nimport type { ConfigItem, OptionsComponentExts, Rules } from \"../types\";\nimport { renameRules } from \"../utils\";\n\nexport async function typescript(\n\toptions: OptionsComponentExts = {},\n): Promise<ConfigItem[]> {\n\tconst { componentExts = [] } = options;\n\n\tconst {\n\t\tplugin: pluginTypeScript,\n\t\tparser: parserTypeScript,\n\t\tconfigs: configsTypeScript,\n\t} = await import(\"typescript-eslint\");\n\n\treturn [\n\t\t{\n\t\t\tname: \"shun-shobon/typescript/setup\",\n\t\t\tplugins: {\n\t\t\t\ttypescript: pluginTypeScript,\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"shun-shobon/typescript/rules\",\n\t\t\tfiles: [GLOB_SRC, ...componentExts.map((ext) => `**/*.${ext}`)],\n\t\t\tlanguageOptions: {\n\t\t\t\tparser: parserTypeScript,\n\t\t\t\tparserOptions: {\n\t\t\t\t\tprojectService: {\n\t\t\t\t\t\tallowDefaultProject: [\"./*.js\"],\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\trules: {\n\t\t\t\t// 厳密なルール + 型チェックのルールを有効化\n\t\t\t\t...renameRules(\n\t\t\t\t\tconfigsTypeScript.strictTypeChecked.at(-1)!.rules!,\n\t\t\t\t\t\"@typescript-eslint/\",\n\t\t\t\t\t\"typescript/\",\n\t\t\t\t),\n\n\t\t\t\t// コーディング規約 + 型チェックのルールを有効化\n\t\t\t\t...renameRules(\n\t\t\t\t\tconfigsTypeScript.stylisticTypeChecked.at(-1)!.rules!,\n\t\t\t\t\t\"@typescript-eslint/\",\n\t\t\t\t\t\"typescript/\",\n\t\t\t\t),\n\n\t\t\t\t// exportされている関数は型の明示を必須にする\n\t\t\t\t\"typescript/explicit-module-boundary-types\": \"warn\",\n\n\t\t\t\t// 型をexportする際に`type`の付与を必須にする\n\t\t\t\t\"typescript/consistent-type-exports\": [\n\t\t\t\t\t\"error\",\n\t\t\t\t\t{\n\t\t\t\t\t\tfixMixedExportsWithInlineTypeSpecifier: true,\n\t\t\t\t\t},\n\t\t\t\t],\n\n\t\t\t\t// 型をimportする際に`type`の付与を必須にする\n\t\t\t\t\"typescript/consistent-type-imports\": \"error\",\n\n\t\t\t\t// `_`から始まる変数名以外の未使用変数を警告\n\t\t\t\t\"typescript/no-unused-vars\": [\n\t\t\t\t\t\"warn\",\n\t\t\t\t\t{\n\t\t\t\t\t\tvarsIgnorePattern: \"^_\",\n\t\t\t\t\t\targsIgnorePattern: \"^_\",\n\t\t\t\t\t},\n\t\t\t\t],\n\n\t\t\t\t// 副作用の可能性のあるtype importを警告\n\t\t\t\t\"typescript/no-import-type-side-effects\": \"warn\",\n\n\t\t\t\t// なるべくreadonlyを付与する\n\t\t\t\t\"typescript/prefer-readonly\": \"warn\",\n\n\t\t\t\t// `Promise`を返す関数は`async`を付与する\n\t\t\t\t\"typescript/promise-function-async\": \"error\",\n\n\t\t\t\t// ソートでは必ず比較関数を渡す\n\t\t\t\t\"typescript/require-array-sort-compare\": \"error\",\n\n\t\t\t\t// `return await`を使う\n\t\t\t\t// 一貫性のためと、awaitが無くなったときにasyncを外すのは面倒なため\n\t\t\t\t// また、スタックトレースが読みやすくなる\n\t\t\t\t\"typescript/return-await\": [\"warn\", \"always\"],\n\n\t\t\t\t\"typescript/no-unnecessary-condition\": [\n\t\t\t\t\t\"warn\",\n\t\t\t\t\t{ allowConstantLoopConditions: true },\n\t\t\t\t],\n\n\t\t\t\t// null assertion `!` を許可\n\t\t\t\t\"typescript/no-non-null-assertion\": \"off\",\n\n\t\t\t\t// template stringへの変数埋め込みの制限をstrictよりも緩和\n\t\t\t\t\"typescript/restrict-template-expressions\": [\n\t\t\t\t\t\"error\",\n\t\t\t\t\t{\n\t\t\t\t\t\tallowAny: true,\n\t\t\t\t\t\tallowBoolean: false,\n\t\t\t\t\t\tallowNullish: false,\n\t\t\t\t\t\tallowNumber: true,\n\t\t\t\t\t\tallowRegExp: false,\n\t\t\t\t\t\tallowNever: false,\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"shun-shobon/typescript/disables/eslint-recommended\",\n\t\t\tfiles: [GLOB_TS, GLOB_TSX, ...componentExts.map((ext) => `**/*.${ext}`)],\n\t\t\trules: {\n\t\t\t\t// ESLintの推奨ルールからTypeScriptで検証可能なものを無効化\n\t\t\t\t...(configsTypeScript.eslintRecommended.rules as Rules),\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"shun-shobon/typescript/disables/dts\",\n\t\t\tfiles: [GLOB_DTS],\n\t\t\trules: {\n\t\t\t\t// `import`の重複を許可\n\t\t\t\t\"import/no-duplicates\": \"off\",\n\n\t\t\t\t// `///`での参照を許可\n\t\t\t\t\"typescript/triple-slash-reference\": \"off\",\n\t\t\t},\n\t\t},\n\t];\n}\n","import { pluginUnicorn } from \"../plugins\";\nimport type { ConfigItem, Rules } from \"../types\";\n\nexport function unicorn(): ConfigItem[] {\n\treturn [\n\t\t{\n\t\t\tname: \"shun-shobon/unicorn/setup\",\n\t\t\tplugins: {\n\t\t\t\tunicorn: pluginUnicorn,\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tname: \"shun-shobon/unicorn/rules\",\n\t\t\trules: {\n\t\t\t\t...(pluginUnicorn.configs.recommended.rules as Rules),\n\n\t\t\t\t// Prettierで整形できるルールは無効化\n\t\t\t\t\"unicorn/empty-brace-spaces\": \"off\",\n\t\t\t\t\"unicorn/no-nested-ternary\": \"off\",\n\t\t\t\t\"unicorn/number-literal-case\": \"off\",\n\n\t\t\t\t// unicornの推奨ルールから不要なものを無効化\n\n\t\t\t\t// コンポーネント内の関数など、スコープを小さくしておきたい場合があるので無効化\n\t\t\t\t\"unicorn/consistent-function-scoping\": \"off\",\n\n\t\t\t\t// ファイルの名前はコンポーネントなどで形式が変化するため無効化\n\t\t\t\t\"unicorn/filename-case\": \"off\",\n\n\t\t\t\t// 直接関数を渡したほうが簡潔に書ける場合があるので無効化\n\t\t\t\t\"unicorn/no-array-callback-reference\": \"off\",\n\n\t\t\t\t// `.forEach()`のほうが簡潔に書ける場合があるので無効化\n\t\t\t\t\"unicorn/no-array-for-each\": \"off\",\n\n\t\t\t\t// `.reduce()`/`.reduceRight()`は使ったほうが簡潔に書ける場合があるので無効化\n\t\t\t\t\"unicorn/no-array-reduce\": \"off\",\n\n\t\t\t\t// 否定形の方が簡潔に書ける場合があるので無効化\n\t\t\t\t\"unicorn/no-negated-condition\": \"off\",\n\n\t\t\t\t// nullも使う場合があるので無効化\n\t\t\t\t\"unicorn/no-null\": \"off\",\n\n\t\t\t\t// undefinedを使いたい場合があるので無効化\n\t\t\t\t\"unicorn/no-useless-undefined\": \"off\",\n\n\t\t\t\t// CommonJSを使う場合もあるため無効化\n\t\t\t\t\"unicorn/prefer-module\": \"off\",\n\n\t\t\t\t// `[...array].map()`は~~ダサい~~ので無効化\n\t\t\t\t\"unicorn/prefer-spread\": \"off\",\n\n\t\t\t\t// 略語の方が簡潔に書ける場合があるので無効化\n\t\t\t\t\"unicorn/prevent-abbreviations\": \"off\",\n\n\t\t\t\t// switch文のcase節を常にブロックにするのは冗長なので必要なときのみブロックにする\n\t\t\t\t\"unicorn/switch-case-braces\": [\"warn\", \"avoid\"],\n\t\t\t},\n\t\t},\n\t];\n}\n","import { isPackageExists } from \"local-pkg\";\n\nimport {\n\tastro,\n\tbase,\n\tdisableTypeChecked,\n\timports,\n\timportSort,\n\tjavascript,\n\tjsxA11y,\n\tnext,\n\tnode,\n\tqwik,\n\treact,\n\tregexp,\n\tstorybook,\n\ttypescript,\n\tunicorn,\n} from \"./configs\";\nimport { GLOB_ASTRO, GLOB_ASTRO_EXT, GLOB_JS, GLOB_JSX } from \"./globs\";\nimport type { Awaitable, ConfigItem, OptionsConfig } from \"./types\";\nimport { interopDefault } from \"./utils\";\n\n// eslint-disable-next-line complexity\nexport async function shun_shobon(\n\toptions: OptionsConfig = {},\n\t...userConfigs: ConfigItem[]\n): Promise<ConfigItem[]> {\n\tconst {\n\t\tgitignore: enableGitignore = true,\n\t\tignores: userIgnores = [],\n\t\ttypescript: enableTypescript = isPackageExists(\"typescript\"),\n\t\treact: enableReact = isPackageExists(\"react\"),\n\t\tnext: enableNext = isPackageExists(\"next\"),\n\t\tqwik: enableQwik = isPackageExists(\"@builder.io/qwik\"),\n\t\tastro: enableAstro = isPackageExists(\"astro\"),\n\t\tstorybook: enableStorybook = isPackageExists(\"storybook\"),\n\t\tcomponentExts = [],\n\t\tdisableTypeCheckedFiles = [],\n\t} = options;\n\n\tconst configQueue: Awaitable<ConfigItem[]>[] = [];\n\n\tif (enableGitignore) {\n\t\tconfigQueue.push(\n\t\t\tinteropDefault(import(\"eslint-config-flat-gitignore\")).then(\n\t\t\t\t(gitignore) => [\n\t\t\t\t\tgitignore(\n\t\t\t\t\t\ttypeof enableGitignore !== \"boolean\"\n\t\t\t\t\t\t\t? { name: \"shun-shobon/gitignore/setup\", ...enableGitignore }\n\t\t\t\t\t\t\t: { name: \"shun-shobon/gitignore/setup\" },\n\t\t\t\t\t),\n\t\t\t\t],\n\t\t\t),\n\t\t);\n\t}\n\n\t// Preprocess\n\tif (enableAstro) {\n\t\tcomponentExts.push(GLOB_ASTRO_EXT);\n\t\tdisableTypeCheckedFiles.push(GLOB_ASTRO);\n\t}\n\n\t// Process\n\t// basic configs\n\tconfigQueue.push(\n\t\tbase(),\n\t\tjavascript(),\n\t\timports({ typescript: enableTypescript }),\n\t\timportSort(),\n\t\tunicorn(),\n\t\tregexp(),\n\t\tnode(),\n\t\tjsxA11y(),\n\t);\n\tif (enableTypescript) {\n\t\tconfigQueue.push(\n\t\t\ttypescript({\n\t\t\t\tcomponentExts,\n\t\t\t}),\n\t\t);\n\t\tdisableTypeCheckedFiles.push(GLOB_JS, GLOB_JSX);\n\t}\n\tif (enableReact) {\n\t\tconfigQueue.push(\n\t\t\treact({\n\t\t\t\ttypescript: enableTypescript,\n\t\t\t}),\n\t\t);\n\t}\n\tif (enableNext) {\n\t\tconfigQueue.push(next());\n\t}\n\tif (enableQwik) {\n\t\tconfigQueue.push(qwik());\n\t}\n\tif (enableAstro) {\n\t\tconfigQueue.push(\n\t\t\tastro({\n\t\t\t\ttypescript: enableTypescript,\n\t\t\t}),\n\t\t);\n\t}\n\tif (enableStorybook) {\n\t\tconfigQueue.push(storybook());\n\t}\n\n\t// Postprocess\n\tif (enableTypescript) {\n\t\tconfigQueue.push(disableTypeChecked({ disableTypeCheckedFiles }));\n\t}\n\n\tconst ignores = [...userIgnores, \"**/.yarn/**\"];\n\tconfigQueue.push([\n\t\t{\n\t\t\tignores,\n\t\t},\n\t]);\n\n\tconst configs = await Promise.all(configQueue).then((configs) =>\n\t\tconfigs.flat(),\n\t);\n\n\treturn [...configs, ...userConfigs];\n}\n"],"mappings":"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","names":["typescript","default","default","typescript","default","default","default","default","typescript","default","default","default","configs"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@shun-shobon/style-guide",
3
- "version": "1.1.0",
3
+ "version": "1.1.1",
4
4
  "type": "module",
5
5
  "description": "shun-shobon's engineering style guide",
6
6
  "repository": {
@@ -36,40 +36,39 @@
36
36
  }
37
37
  },
38
38
  "dependencies": {
39
- "@eslint/js": "9.32.0",
40
- "@next/eslint-plugin-next": "15.4.5",
41
- "@typescript-eslint/parser": "8.38.0",
39
+ "@eslint/js": "9.34.0",
40
+ "@next/eslint-plugin-next": "15.5.2",
41
+ "@typescript-eslint/parser": "8.41.0",
42
42
  "astro-eslint-parser": "1.2.2",
43
43
  "eslint-config-flat-gitignore": "2.1.0",
44
- "eslint-define-config": "2.1.0",
45
44
  "eslint-import-resolver-typescript": "4.4.4",
46
45
  "eslint-plugin-astro": "1.3.1",
47
46
  "eslint-plugin-import-x": "4.16.1",
48
47
  "eslint-plugin-jsx-a11y": "6.10.2",
49
48
  "eslint-plugin-n": "17.21.3",
50
- "eslint-plugin-qwik": "1.15.0",
49
+ "eslint-plugin-qwik": "1.16.0",
51
50
  "eslint-plugin-react": "7.37.5",
52
51
  "eslint-plugin-react-hooks": "5.2.0",
53
- "eslint-plugin-regexp": "2.9.0",
52
+ "eslint-plugin-regexp": "2.10.0",
54
53
  "eslint-plugin-simple-import-sort": "12.1.1",
55
- "eslint-plugin-storybook": "9.0.18",
54
+ "eslint-plugin-storybook": "9.1.3",
56
55
  "eslint-plugin-unicorn": "60.0.0",
57
56
  "globals": "16.3.0",
58
- "local-pkg": "1.1.1",
57
+ "local-pkg": "1.1.2",
59
58
  "prettier-plugin-astro": "0.14.1",
60
59
  "prettier-plugin-jsdoc": "1.3.3",
61
60
  "prettier-plugin-pkg": "0.21.2",
62
61
  "prettier-plugin-tailwindcss": "0.6.14",
63
- "typescript-eslint": "8.38.0"
62
+ "typescript-eslint": "8.41.0"
64
63
  },
65
64
  "devDependencies": {
66
- "@changesets/cli": "2.29.5",
67
- "@types/node": "22.17.0",
68
- "eslint": "9.32.0",
65
+ "@changesets/cli": "2.29.6",
66
+ "@types/node": "22.18.0",
67
+ "eslint": "9.34.0",
69
68
  "eslint-typegen": "2.3.0",
70
69
  "prettier": "3.6.2",
71
70
  "tsup": "8.5.0",
72
- "typescript": "5.8.3"
71
+ "typescript": "5.9.2"
73
72
  },
74
73
  "publishConfig": {
75
74
  "access": "public"
@@ -82,6 +81,7 @@
82
81
  "lint": "eslint",
83
82
  "lint:fix": "eslint --fix",
84
83
  "release": "pnpm build && changeset publish",
84
+ "typecheck": "tsc --noEmit",
85
85
  "typegen": "node --experimental-transform-types scripts/typegen.ts",
86
86
  "version-package": "changeset version && pnpm format"
87
87
  }