@anolilab/eslint-config 16.3.1 → 16.3.2

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.
package/CHANGELOG.md CHANGED
@@ -1,3 +1,9 @@
1
+ ## @anolilab/eslint-config [16.3.2](https://github.com/anolilab/javascript-style-guide/compare/@anolilab/eslint-config@16.3.1...@anolilab/eslint-config@16.3.2) (2025-10-02)
2
+
3
+ ### Bug Fixes
4
+
5
+ * update eslint-config to use pnpm preset ([60c7d0d](https://github.com/anolilab/javascript-style-guide/commit/60c7d0da251c548f35155465355582ea0a96d281))
6
+
1
7
  ## @anolilab/eslint-config [16.3.1](https://github.com/anolilab/javascript-style-guide/compare/@anolilab/eslint-config@16.3.0...@anolilab/eslint-config@16.3.1) (2025-10-02)
2
8
 
3
9
  ### Bug Fixes
package/dist/index.cjs CHANGED
@@ -5,7 +5,7 @@ Found eslint-plugin-tsdoc as dependency, disabling the jsdoc rules for *.ts and
5
5
  Following rules are disabled: jsonc/sort-keys for all package.json files.
6
6
  `),[...p.configs["flat/base"],{files:["**/*.json5"],name:"anolilab/jsonc/json5-rules",rules:p.configs["recommended-with-json5"].rules},{files:["**/*.jsonc"],name:"anolilab/jsonc/jsonc-rules",rules:p.configs["recommended-with-jsonc"].rules},{files:["**/*.json"],name:"anolilab/jsonc/json-rules",rules:p.configs["recommended-with-json"].rules},{files:["package.json","**/package.json"],name:"anolilab/jsonc/package.json-rules",rules:{"jsonc/sort-array-values":d?"off":["error",{order:{type:"asc"},pathPattern:"^files$"}],"jsonc/sort-keys":d?"off":["error",{order:["$schema","name","displayName","version","private","description","categories","keywords","homepage","bugs","repository","funding","license","qna","author","maintainers","contributors","publisher","sideEffects","type","imports","exports","main","svelte","umd:main","jsdelivr","unpkg","module","source","jsnext:main","browser","react-native","types","typesVersions","typings","style","example","examplestyle","assets","bin","man","directories","files","workspaces","binary","scripts","betterScripts","contributes","activationEvents","husky","simple-git-hooks","pre-commit","commitlint","lint-staged","nano-staged","config","nodemonConfig","browserify","babel","browserslist","xo","prettier","eslintConfig","eslintIgnore","npmpackagejsonlint","release","remarkConfig","stylelint","ava","jest","mocha","nyc","tap","oclif","resolutions","dependencies","devDependencies","dependenciesMeta","peerDependencies","peerDependenciesMeta","optionalDependencies","bundledDependencies","bundleDependencies","extensionPack","extensionDependencies","flat","packageManager","engines","engineStrict","volta","languageName","os","cpu","preferGlobal","publishConfig","icon","badges","galleryBanner","preview","markdown","pnpm"],pathPattern:"^$"},{order:{type:"asc"},pathPattern:"^(?:dev|peer|optional|bundled)?[Dd]ependencies(Meta)?$"},{order:{type:"asc"},pathPattern:"^(?:resolutions|overrides|pnpm.overrides)$"},{order:{type:"asc"},pathPattern:String.raw`^workspaces\.catalog$`},{order:{type:"asc"},pathPattern:String.raw`^workspaces\.catalogs\.[^.]+$`},{order:["types","import","require","default"],pathPattern:"^exports.*$"},{order:["applypatch-msg","pre-applypatch","post-applypatch","pre-commit","pre-merge-commit","prepare-commit-msg","commit-msg","post-commit","pre-rebase","post-checkout","post-merge","pre-push","pre-receive","update","post-receive","post-update","push-to-checkout","pre-auto-gc","post-rewrite","sendemail-validate","fsmonitor-watchman","p4-pre-submit","post-index-chang"],pathPattern:"^(?:gitHooks|husky|simple-git-hooks)$"},{order:["build","preinstall","install","postinstall","lint",{order:{type:"asc"}}],pathPattern:"^scripts$"}]}},{files:["**/tsconfig.json","**/tsconfig.*.json"],name:"anolilab/jsonc/tsconfig-json",rules:{"jsonc/sort-keys":["error",{order:["extends","compilerOptions","references","files","include","exclude"],pathPattern:"^$"},{order:["incremental","composite","tsBuildInfoFile","disableSourceOfProjectReferenceRedirect","disableSolutionSearching","disableReferencedProjectLoad","target","jsx","jsxFactory","jsxFragmentFactory","jsxImportSource","lib","moduleDetection","noLib","reactNamespace","useDefineForClassFields","emitDecoratorMetadata","experimentalDecorators","libReplacement","baseUrl","rootDir","rootDirs","customConditions","module","moduleResolution","moduleSuffixes","noResolve","paths","resolveJsonModule","resolvePackageJsonExports","resolvePackageJsonImports","typeRoots","types","allowArbitraryExtensions","allowImportingTsExtensions","allowUmdGlobalAccess","allowJs","checkJs","maxNodeModuleJsDepth","strict","strictBindCallApply","strictFunctionTypes","strictNullChecks","strictPropertyInitialization","allowUnreachableCode","allowUnusedLabels","alwaysStrict","exactOptionalPropertyTypes","noFallthroughCasesInSwitch","noImplicitAny","noImplicitOverride","noImplicitReturns","noImplicitThis","noPropertyAccessFromIndexSignature","noUncheckedIndexedAccess","noUnusedLocals","noUnusedParameters","useUnknownInCatchVariables","declaration","declarationDir","declarationMap","downlevelIteration","emitBOM","emitDeclarationOnly","importHelpers","importsNotUsedAsValues","inlineSourceMap","inlineSources","mapRoot","newLine","noEmit","noEmitHelpers","noEmitOnError","outDir","outFile","preserveConstEnums","preserveValueImports","removeComments","sourceMap","sourceRoot","stripInternal","allowSyntheticDefaultImports","esModuleInterop","forceConsistentCasingInFileNames","isolatedDeclarations","isolatedModules","preserveSymlinks","verbatimModuleSyntax","erasableSyntaxOnly","skipDefaultLibCheck","skipLibCheck"],pathPattern:"^compilerOptions$"}]}},...s?p.configs["flat/prettier"]:[],{files:["**/*.json","**/*.jsonc","**/*.json5"],rules:{...a?{"jsonc/array-bracket-spacing":["error","never"],"jsonc/comma-dangle":["error","never"],"jsonc/comma-style":["error","last"],"jsonc/indent":["error",i],"jsonc/key-spacing":["error",{afterColon:!0,beforeColon:!1}],"jsonc/object-curly-newline":["error",{consistent:!0,multiline:!0}],"jsonc/object-curly-spacing":["error","always"],"jsonc/object-property-newline":["error",{allowAllPropertiesOnSameLine:!0}],"jsonc/quote-props":"error","jsonc/quotes":"error"}:{},...r}}]},"jsonc"),lr=n.createConfig("jsx_and_tsx",async(e,r)=>{const{files:o=r,overrides:s}=e,t=await c(import("eslint-plugin-jsx-a11y"));return[{files:o,languageOptions:{parserOptions:{ecmaFeatures:{jsx:!0}}},name:"anolilab/jsx-a11y/setup",plugins:{"jsx-a11y":t},rules:{"jsx-a11y/accessible-emoji":"off","jsx-a11y/alt-text":["error",{area:[],elements:["img","object","area",'input[type="image"]'],img:[],'input[type="image"]':[],object:[]}],"jsx-a11y/anchor-has-content":["error",{components:[]}],"jsx-a11y/anchor-is-valid":["error",{aspects:["noHref","invalidHref","preferButton"],components:["A","LinkTo","Link"],specialLink:["to"]}],"jsx-a11y/aria-activedescendant-has-tabindex":"error","jsx-a11y/aria-props":"error","jsx-a11y/aria-proptypes":"error","jsx-a11y/aria-role":["error",{ignoreNonDOM:!1}],"jsx-a11y/aria-unsupported-elements":"error","jsx-a11y/autocomplete-valid":["off",{inputComponents:[]}],"jsx-a11y/click-events-have-key-events":"error","jsx-a11y/control-has-associated-label":["error",{controlComponents:[],depth:5,ignoreElements:["audio","canvas","embed","input","textarea","tr","video"],ignoreRoles:["grid","listbox","menu","menubar","radiogroup","row","tablist","toolbar","tree","treegrid"],labelAttributes:["label"]}],"jsx-a11y/heading-has-content":["error",{components:[""]}],"jsx-a11y/html-has-lang":"error","jsx-a11y/iframe-has-title":"error","jsx-a11y/img-redundant-alt":"error","jsx-a11y/interactive-supports-focus":"error","jsx-a11y/label-has-associated-control":["error",{assert:"both",controlComponents:[],depth:25,labelAttributes:[],labelComponents:[]}],"jsx-a11y/lang":"error","jsx-a11y/media-has-caption":["error",{audio:[],track:[],video:[]}],"jsx-a11y/mouse-events-have-key-events":"error","jsx-a11y/no-access-key":"error","jsx-a11y/no-autofocus":["error",{ignoreNonDOM:!0}],"jsx-a11y/no-distracting-elements":["error",{elements:["marquee","blink"]}],"jsx-a11y/no-interactive-element-to-noninteractive-role":["error",{tr:["none","presentation"]}],"jsx-a11y/no-noninteractive-element-interactions":["error",{handlers:["onClick","onMouseDown","onMouseUp","onKeyPress","onKeyDown","onKeyUp"]}],"jsx-a11y/no-noninteractive-element-to-interactive-role":["error",{li:["menuitem","option","row","tab","treeitem"],ol:["listbox","menu","menubar","radiogroup","tablist","tree","treegrid"],table:["grid"],td:["gridcell"],ul:["listbox","menu","menubar","radiogroup","tablist","tree","treegrid"]}],"jsx-a11y/no-noninteractive-tabindex":["error",{roles:["tabpanel"],tags:[]}],"jsx-a11y/no-onchange":"off","jsx-a11y/no-redundant-roles":"error","jsx-a11y/no-static-element-interactions":["error",{handlers:["onClick","onMouseDown","onMouseUp","onKeyPress","onKeyDown","onKeyUp"]}],"jsx-a11y/role-has-required-aria-props":"error","jsx-a11y/role-supports-aria-props":"error","jsx-a11y/scope":"error","jsx-a11y/tabindex-no-positive":"error",...s}}]}),cr=n.createConfig("markdown",async(e,r)=>{const{componentExts:o=[],files:s=r,overrides:t}=e,[a,i]=await Promise.all([c(import("typescript-eslint")),c(import("@eslint/markdown"))]),p=a.configs.disableTypeChecked.rules;return[{name:"anolilab/markdown/setup",plugins:{markdown:i}},{files:s,ignores:n.getFilesGlobs("markdown_in_markdown"),name:"anolilab/markdown/processor",processor:le.mergeProcessors([i.processors.markdown,le.processorPassThrough])},{files:s,languageOptions:{parser:F},name:"anolilab/markdown/parser",rules:i.configs.recommended[0].rules},{files:["**/*.md","**/*.md/**/*.?([cm])[jt]s?(x)","**/*.md/**/*.json",...o.map(d=>`**/*.md/**/*.${d}`)],languageOptions:{parserOptions:{ecmaFeatures:{impliedStrict:!0}}},name:"anolilab/markdown/disabled",rules:{"@stylistic/comma-dangle":"off","@stylistic/eol-last":"off","@stylistic/prefer-global/process":"off","@stylistic/quote-props":"off","@stylistic/semi":"off","@typescript-eslint/no-unused-expressions":"off","antfu/no-top-level-await":"off","import/newline-after-import":"off","no-alert":"off","no-console":"off","no-labels":"off","no-lone-blocks":"off","no-restricted-syntax":"off","no-undef":"off","no-unused-expressions":"off","no-unused-labels":"off","no-unused-vars":"off",...p,"no-for-of-array/no-for-of-array":"off","unicode-bom":"off","unicorn/prefer-module":"off","unicorn/prefer-string-raw":"off","unused-imports/no-unused-imports":"off","unused-imports/no-unused-vars":"off",...t}}]});var pr=Object.defineProperty,fr=j((e,r)=>pr(e,"name",{value:r,configurable:!0}),"s");const dr=fr(async e=>{const r=await c(import("eslint-plugin-no-secrets"));return[{files:["*","*/**"],ignores:["package.json","**/package.json","package-lock.json","**/package-lock.json","tsconfig.json","**/tsconfig.json"],languageOptions:{ecmaVersion:6},name:"anolilab/no-secrets",plugins:{"no-secrets":r},rules:{"no-secrets/no-secrets":"error",...e.overrides}}]},"noSecrets"),ur=n.createConfig("js",async(e,r)=>{const{files:o=r,overrides:s}=e,t=await c(import("eslint-plugin-no-unsanitized"));return[{files:o,name:"anolilab/no-unsanitized/setup",plugins:{"no-unsanitized":t},rules:{"no-unsanitized/method":"error","no-unsanitized/property":"error",...s}}]}),mr=n.createConfig("all",async(e,r)=>{const{files:o=r,overrides:s,packageJson:t}=e,a=await c(import("eslint-plugin-n")),i=t.engines?.node;return[{name:"anolilab/node/setup",plugins:{n:a}},{files:o,name:"anolilab/node/rules",rules:{...a.configs.recommended.rules,"global-require":"error","n/callback-return":"off","n/file-extension-in-import":"off","n/handle-callback-err":"off","n/no-extraneous-import":"off","n/no-extraneous-require":"off","n/no-missing-import":"off","n/no-missing-require":"off","n/no-mixed-requires":["error",{allowCall:!0,grouping:!0}],"n/no-new-require":"error","n/no-process-env":"off","n/no-process-exit":"off","n/no-restricted-modules":"off","n/no-sync":"off","n/no-unpublished-bin":"error","n/process-exit-as-throw":"error","no-buffer-constructor":"error","no-path-concat":"error",...i?{"n/no-unsupported-features/es-builtins":["error",{version:i}],"n/no-unsupported-features/es-syntax":["error",{ignores:["modules"],version:i}],"n/no-unsupported-features/node-builtins":["error",{version:i}]}:{},...s}}]}),gr=n.createConfig("all",async(e,r)=>{const{files:o=r,overrides:s,packageJson:t}=e,a=await c(import("eslint-plugin-perfectionist"));return m.hasPackageJsonAnyDependency(t,["eslint-plugin-typescript-sort-keys"])&&console.warn(`
7
7
  Please remove "eslint-plugin-typescript-sort-keys" from your package.json, it conflicts with "eslint-plugin-perfectionist".
8
- `),[{name:"anolilab/perfectionist/setup",plugins:{perfectionist:a}},{files:o,name:"anolilab/perfectionist/rules",rules:{...a.configs["recommended-natural"].rules,"perfectionist/sort-imports":"off","perfectionist/sort-modules":"off","perfectionist/sort-named-exports":"off","perfectionist/sort-named-imports":"off","perfectionist/sort-union-types":"off",...s}},{files:n.getFilesGlobs("ts"),name:"anolilab/perfectionist/typescript",rules:{"perfectionist/sort-classes":"off"}},{files:n.getFilesGlobs("postcss"),name:"anolilab/perfectionist/postcss",rules:{"perfectionist/sort-objects":"off"}}]}),yr=n.createConfig("e2e",async(e,r)=>{const{files:o=r,overrides:s}=e,t=await c(import("eslint-plugin-playwright"));return[{files:o,plugins:{playwright:t},rules:{...t.configs.recommended.rules,...s}}]}),hr=n.createConfig("all",async(e,r)=>{const{files:o=r,overrides:s}=e,t=await c(import("eslint-plugin-promise"));return[{files:o,name:"anolilab/promise/rules",plugins:{promise:t},rules:{...pe.fixupPluginRules(t.configs["flat/recommended"].rules),"promise/prefer-await-to-callbacks":"off","promise/prefer-await-to-then":"off",...s}}]}),te={allow:["__DEV__","__STORYBOOK_CLIENT_API__","__STORYBOOK_ADDONS_CHANNEL__","__STORYBOOK_STORY_STORE__"],allowAfterSuper:!1,allowAfterThis:!1,enforceInMethodNames:!0},ge={"array-bracket-newline":"off","array-bracket-spacing":"off","array-element-newline":"off",camelcase:["error",{ignoreDestructuring:!1,properties:"never"}],"capitalized-comments":["off","never",{block:{ignoreConsecutiveComments:!0,ignoreInlineComments:!0,ignorePattern:".*"},line:{ignoreConsecutiveComments:!0,ignoreInlineComments:!0,ignorePattern:".*"}}],"comma-style":"off","computed-property-spacing":"off","consistent-this":"off","default-param-last":["error"],"eol-last":"off","func-name-matching":["off","always",{considerPropertyDescriptor:!0,includeCommonJSModuleExports:!1}],"func-names":["error","as-needed"],"func-style":["error","expression"],"function-call-argument-newline":"off","function-paren-newline":"off","id-blacklist":"error","id-denylist":"off","id-length":"off","id-match":"off","implicit-arrow-linebreak":"off","jsx-quotes":"off","line-comment-position":"off","linebreak-style":"off","lines-around-directive":["error",{after:"always",before:"always"}],"max-depth":["off",4],"max-len":"off","max-lines":["off",{max:300,skipBlankLines:!0,skipComments:!0}],"max-lines-per-function":["off",{IIFEs:!0,max:50,skipBlankLines:!0,skipComments:!0}],"max-nested-callbacks":"off","max-params":["off",3],"max-statements":["off",10],"max-statements-per-line":"off","multiline-comment-style":"off","multiline-ternary":"off","new-cap":["error",{capIsNew:!1,capIsNewExceptions:["Immutable.Map","Immutable.Set","Immutable.List"],newIsCap:!0,newIsCapExceptions:[]}],"new-parens":"off","newline-after-var":"off","newline-before-return":"off","newline-per-chained-call":"off","no-array-constructor":"error","no-bitwise":"error","no-continue":"off","no-inline-comments":"off","no-lonely-if":"error","no-mixed-operators":["error",{allowSamePrecedence:!1,groups:[["%","**"],["%","+"],["%","-"],["%","*"],["%","/"],["/","*"],["&","|","<<",">>",">>>"],["==","!=","===","!=="],["&&","||"],["in","instanceof"]]}],"no-mixed-spaces-and-tabs":"off","no-multi-assign":["error"],"no-multiple-empty-lines":"off","no-negated-condition":"off","no-nested-ternary":"error","no-new-object":"error","no-plusplus":"error","no-restricted-syntax":["error",{message:"for..in loops iterate over the entire prototype chain, which is virtually never what you want. Use Object.{keys,values,entries}, and iterate over the resulting array.",selector:"ForInStatement"},{message:"Labels are a form of GOTO; using them makes code confusing and hard to maintain and understand.",selector:"LabeledStatement"},{message:"`with` is disallowed in strict mode because it makes code impossible to predict and optimize.",selector:"WithStatement"},{message:"`useMemo` with an empty dependency array can't provide a stable reference, use `useRef` instead.",selector:"CallExpression[callee.name=useMemo][arguments.1.type=ArrayExpression][arguments.1.elements.length=0]"},{message:"Use `.key` instead of `.keyCode`",selector:"MemberExpression > .property[type=Identifier][name=keyCode]"},{message:"Do not use full-width tilde. Use wave dash instead.",selector:":matches(Literal[value=/~/],TemplateElement[value.raw=/~/])"},{message:"Use `.toString()` instead of template literal if you want to convert a value to string.",selector:'TemplateLiteral[quasis.0.value.raw=""][quasis.1.tail=true][quasis.1.value.raw=""]'}],"no-spaced-func":"off","no-tabs":"off","no-ternary":"off","no-trailing-spaces":"off","no-underscore-dangle":["error",te],"no-unneeded-ternary":["error",{defaultAssignment:!1}],"no-whitespace-before-property":"off","nonblock-statement-body-position":"off","object-curly-newline":"off","object-curly-spacing":"off","object-property-newline":"off","one-var":["error","never"],"one-var-declaration-per-line":"off","operator-assignment":["error","always"],"operator-linebreak":"off","padded-blocks":"off","padding-line-between-statements":"off","prefer-exponentiation-operator":"error","prefer-object-spread":"error","quote-props":"off",quotes:"off","require-jsdoc":"off","rest-spread-spacing":"off",semi:"off","semi-spacing":"off","semi-style":"off","sort-keys":"off","sort-vars":"off","space-before-blocks":"off","space-before-function-paren":"off","space-in-parens":"off","space-infix-ops":"off","space-unary-ops":"off","spaced-comment":"off","switch-colon-spacing":"off","template-tag-spacing":"off","unicode-bom":["error","never"],"wrap-iife":"off","wrap-regex":"off","yield-star-spacing":"off"},br=n.createConfig("all",async(e,r)=>{const{files:o=r,prettier:s}=e;return[{files:o,name:"anolilab/style/rules",rules:{...ge,"quote-props":"off",...s?{"array-bracket-newline":"off","array-bracket-spacing":"off","array-element-newline":"off","arrow-parens":"off","arrow-spacing":"off","block-spacing":"off","brace-style":"off","comma-dangle":"off","comma-spacing":"off","comma-style":"off","computed-property-spacing":"off",curly:0,"dot-location":"off","eol-last":"off","func-call-spacing":"off","function-call-argument-newline":"off","function-paren-newline":"off","generator-star-spacing":"off","implicit-arrow-linebreak":"off",indent:"off","jsx-quotes":"off","key-spacing":"off","keyword-spacing":"off","linebreak-style":"off","lines-around-comment":0,"max-len":0,"max-statements-per-line":"off","multiline-ternary":"off","new-parens":"off","newline-per-chained-call":"off","no-confusing-arrow":0,"no-extra-parens":"off","no-extra-semi":"off","no-floating-decimal":"off","no-mixed-operators":0,"no-mixed-spaces-and-tabs":"off","no-multi-spaces":"off","no-multiple-empty-lines":"off","no-tabs":0,"no-trailing-spaces":"off","no-unexpected-multiline":0,"no-whitespace-before-property":"off","nonblock-statement-body-position":"off","object-curly-newline":"off","object-curly-spacing":"off","object-property-newline":"off","one-var-declaration-per-line":"off","operator-linebreak":"off","padded-blocks":"off",quotes:0,"rest-spread-spacing":"off",semi:"off","semi-spacing":"off","semi-style":"off","space-before-blocks":"off","space-before-function-paren":"off","space-in-parens":"off","space-unary-ops":"off","switch-colon-spacing":"off","template-curly-spacing":"off","template-tag-spacing":"off","wrap-iife":"off","wrap-regex":"off","yield-star-spacing":"off"}:{}}},{files:n.getFilesGlobs("ts"),name:"anolilab/style/ts-rules",rules:{"brace-style":"off",camelcase:"off","comma-dangle":"off","comma-spacing":"off","func-call-spacing":"off",indent:"off","keyword-spacing":"off","lines-between-class-members":"off","no-array-constructor":"off",quotes:"off",semi:"off","space-before-function-paren":"off"}}]}),xr=["vite"],wr=["@remix-run/node","@remix-run/react","@remix-run/serve","@remix-run/dev"],jr=["next"],vr=["@react-router/node","@react-router/react","@react-router/serve","@react-router/dev"],kr=n.createConfig("jsx_and_tsx",async(e,r)=>{const{files:o=r,filesTypeAware:s=n.getFilesGlobs("ts"),overrides:t,packageJson:a,prettier:i,reactCompiler:p,silent:d,stylistic:h=!0,tsconfigPath:b}=e,P=[...n.getFilesGlobs("astro"),...n.getFilesGlobs("markdown"),...n.getFilesGlobs("js"),...n.getFilesGlobs("jsx"),"**/*.json","**/*.jsonc",...e.ignoresTypeAware??[]];let{isTypeAware:O=!0}=e;O=O&&b!==void 0;const{indent:v=4}=typeof h=="boolean"?{}:h,U={"react-x/no-leaked-conditional-rendering":"error"},[L,$,_,T,E,D]=await Promise.all([c(import("@eslint-react/eslint-plugin")),c(import("eslint-plugin-react")),c(import("eslint-plugin-react-hooks")),c(import("eslint-plugin-react-refresh")),c(import("eslint-plugin-react-perf")),c(import("eslint-plugin-react-you-might-not-need-an-effect"))]),z=m.hasPackageJsonAnyDependency(a,xr),I=m.hasPackageJsonAnyDependency(a,wr),R=m.hasPackageJsonAnyDependency(a,jr),N=m.hasPackageJsonAnyDependency(a,vr),{plugins:w}=L.configs.all;let S=a.dependencies?.react??a.devDependencies?.react,A=!1;if(S!==void 0){const C=oe.parse(S);C!==null&&(S=`${C.major}.${C.minor}`,d||console.info(`
8
+ `),[{name:"anolilab/perfectionist/setup",plugins:{perfectionist:a}},{files:o,name:"anolilab/perfectionist/rules",rules:{...a.configs["recommended-natural"].rules,"perfectionist/sort-imports":"off","perfectionist/sort-modules":"off","perfectionist/sort-named-exports":"off","perfectionist/sort-named-imports":"off","perfectionist/sort-union-types":"off",...s}},{files:n.getFilesGlobs("ts"),name:"anolilab/perfectionist/typescript",rules:{"perfectionist/sort-classes":"off"}},{files:n.getFilesGlobs("postcss"),name:"anolilab/perfectionist/postcss",rules:{"perfectionist/sort-objects":"off"}}]}),yr=n.createConfig("e2e",async(e,r)=>{const{files:o=r,overrides:s}=e,t=await c(import("eslint-plugin-playwright"));return[{files:o,plugins:{playwright:t},rules:{...t.configs.recommended.rules,...s}}]}),hr=n.createConfig("all",async(e,r)=>{const{files:o=r,overrides:s}=e,t=await c(import("eslint-plugin-promise"));return[{files:o,name:"anolilab/promise/rules",plugins:{promise:t},rules:{...pe.fixupPluginRules(t?.configs["flat/recommended"].rules),"promise/prefer-await-to-callbacks":"off","promise/prefer-await-to-then":"off",...s}}]}),te={allow:["__DEV__","__STORYBOOK_CLIENT_API__","__STORYBOOK_ADDONS_CHANNEL__","__STORYBOOK_STORY_STORE__"],allowAfterSuper:!1,allowAfterThis:!1,enforceInMethodNames:!0},ge={"array-bracket-newline":"off","array-bracket-spacing":"off","array-element-newline":"off",camelcase:["error",{ignoreDestructuring:!1,properties:"never"}],"capitalized-comments":["off","never",{block:{ignoreConsecutiveComments:!0,ignoreInlineComments:!0,ignorePattern:".*"},line:{ignoreConsecutiveComments:!0,ignoreInlineComments:!0,ignorePattern:".*"}}],"comma-style":"off","computed-property-spacing":"off","consistent-this":"off","default-param-last":["error"],"eol-last":"off","func-name-matching":["off","always",{considerPropertyDescriptor:!0,includeCommonJSModuleExports:!1}],"func-names":["error","as-needed"],"func-style":["error","expression"],"function-call-argument-newline":"off","function-paren-newline":"off","id-blacklist":"error","id-denylist":"off","id-length":"off","id-match":"off","implicit-arrow-linebreak":"off","jsx-quotes":"off","line-comment-position":"off","linebreak-style":"off","lines-around-directive":["error",{after:"always",before:"always"}],"max-depth":["off",4],"max-len":"off","max-lines":["off",{max:300,skipBlankLines:!0,skipComments:!0}],"max-lines-per-function":["off",{IIFEs:!0,max:50,skipBlankLines:!0,skipComments:!0}],"max-nested-callbacks":"off","max-params":["off",3],"max-statements":["off",10],"max-statements-per-line":"off","multiline-comment-style":"off","multiline-ternary":"off","new-cap":["error",{capIsNew:!1,capIsNewExceptions:["Immutable.Map","Immutable.Set","Immutable.List"],newIsCap:!0,newIsCapExceptions:[]}],"new-parens":"off","newline-after-var":"off","newline-before-return":"off","newline-per-chained-call":"off","no-array-constructor":"error","no-bitwise":"error","no-continue":"off","no-inline-comments":"off","no-lonely-if":"error","no-mixed-operators":["error",{allowSamePrecedence:!1,groups:[["%","**"],["%","+"],["%","-"],["%","*"],["%","/"],["/","*"],["&","|","<<",">>",">>>"],["==","!=","===","!=="],["&&","||"],["in","instanceof"]]}],"no-mixed-spaces-and-tabs":"off","no-multi-assign":["error"],"no-multiple-empty-lines":"off","no-negated-condition":"off","no-nested-ternary":"error","no-new-object":"error","no-plusplus":"error","no-restricted-syntax":["error",{message:"for..in loops iterate over the entire prototype chain, which is virtually never what you want. Use Object.{keys,values,entries}, and iterate over the resulting array.",selector:"ForInStatement"},{message:"Labels are a form of GOTO; using them makes code confusing and hard to maintain and understand.",selector:"LabeledStatement"},{message:"`with` is disallowed in strict mode because it makes code impossible to predict and optimize.",selector:"WithStatement"},{message:"`useMemo` with an empty dependency array can't provide a stable reference, use `useRef` instead.",selector:"CallExpression[callee.name=useMemo][arguments.1.type=ArrayExpression][arguments.1.elements.length=0]"},{message:"Use `.key` instead of `.keyCode`",selector:"MemberExpression > .property[type=Identifier][name=keyCode]"},{message:"Do not use full-width tilde. Use wave dash instead.",selector:":matches(Literal[value=/~/],TemplateElement[value.raw=/~/])"},{message:"Use `.toString()` instead of template literal if you want to convert a value to string.",selector:'TemplateLiteral[quasis.0.value.raw=""][quasis.1.tail=true][quasis.1.value.raw=""]'}],"no-spaced-func":"off","no-tabs":"off","no-ternary":"off","no-trailing-spaces":"off","no-underscore-dangle":["error",te],"no-unneeded-ternary":["error",{defaultAssignment:!1}],"no-whitespace-before-property":"off","nonblock-statement-body-position":"off","object-curly-newline":"off","object-curly-spacing":"off","object-property-newline":"off","one-var":["error","never"],"one-var-declaration-per-line":"off","operator-assignment":["error","always"],"operator-linebreak":"off","padded-blocks":"off","padding-line-between-statements":"off","prefer-exponentiation-operator":"error","prefer-object-spread":"error","quote-props":"off",quotes:"off","require-jsdoc":"off","rest-spread-spacing":"off",semi:"off","semi-spacing":"off","semi-style":"off","sort-keys":"off","sort-vars":"off","space-before-blocks":"off","space-before-function-paren":"off","space-in-parens":"off","space-infix-ops":"off","space-unary-ops":"off","spaced-comment":"off","switch-colon-spacing":"off","template-tag-spacing":"off","unicode-bom":["error","never"],"wrap-iife":"off","wrap-regex":"off","yield-star-spacing":"off"},br=n.createConfig("all",async(e,r)=>{const{files:o=r,prettier:s}=e;return[{files:o,name:"anolilab/style/rules",rules:{...ge,"quote-props":"off",...s?{"array-bracket-newline":"off","array-bracket-spacing":"off","array-element-newline":"off","arrow-parens":"off","arrow-spacing":"off","block-spacing":"off","brace-style":"off","comma-dangle":"off","comma-spacing":"off","comma-style":"off","computed-property-spacing":"off",curly:0,"dot-location":"off","eol-last":"off","func-call-spacing":"off","function-call-argument-newline":"off","function-paren-newline":"off","generator-star-spacing":"off","implicit-arrow-linebreak":"off",indent:"off","jsx-quotes":"off","key-spacing":"off","keyword-spacing":"off","linebreak-style":"off","lines-around-comment":0,"max-len":0,"max-statements-per-line":"off","multiline-ternary":"off","new-parens":"off","newline-per-chained-call":"off","no-confusing-arrow":0,"no-extra-parens":"off","no-extra-semi":"off","no-floating-decimal":"off","no-mixed-operators":0,"no-mixed-spaces-and-tabs":"off","no-multi-spaces":"off","no-multiple-empty-lines":"off","no-tabs":0,"no-trailing-spaces":"off","no-unexpected-multiline":0,"no-whitespace-before-property":"off","nonblock-statement-body-position":"off","object-curly-newline":"off","object-curly-spacing":"off","object-property-newline":"off","one-var-declaration-per-line":"off","operator-linebreak":"off","padded-blocks":"off",quotes:0,"rest-spread-spacing":"off",semi:"off","semi-spacing":"off","semi-style":"off","space-before-blocks":"off","space-before-function-paren":"off","space-in-parens":"off","space-unary-ops":"off","switch-colon-spacing":"off","template-curly-spacing":"off","template-tag-spacing":"off","wrap-iife":"off","wrap-regex":"off","yield-star-spacing":"off"}:{}}},{files:n.getFilesGlobs("ts"),name:"anolilab/style/ts-rules",rules:{"brace-style":"off",camelcase:"off","comma-dangle":"off","comma-spacing":"off","func-call-spacing":"off",indent:"off","keyword-spacing":"off","lines-between-class-members":"off","no-array-constructor":"off",quotes:"off",semi:"off","space-before-function-paren":"off"}}]}),xr=["vite"],wr=["@remix-run/node","@remix-run/react","@remix-run/serve","@remix-run/dev"],jr=["next"],vr=["@react-router/node","@react-router/react","@react-router/serve","@react-router/dev"],kr=n.createConfig("jsx_and_tsx",async(e,r)=>{const{files:o=r,filesTypeAware:s=n.getFilesGlobs("ts"),overrides:t,packageJson:a,prettier:i,reactCompiler:p,silent:d,stylistic:h=!0,tsconfigPath:b}=e,P=[...n.getFilesGlobs("astro"),...n.getFilesGlobs("markdown"),...n.getFilesGlobs("js"),...n.getFilesGlobs("jsx"),"**/*.json","**/*.jsonc",...e.ignoresTypeAware??[]];let{isTypeAware:O=!0}=e;O=O&&b!==void 0;const{indent:v=4}=typeof h=="boolean"?{}:h,U={"react-x/no-leaked-conditional-rendering":"error"},[L,$,_,T,E,D]=await Promise.all([c(import("@eslint-react/eslint-plugin")),c(import("eslint-plugin-react")),c(import("eslint-plugin-react-hooks")),c(import("eslint-plugin-react-refresh")),c(import("eslint-plugin-react-perf")),c(import("eslint-plugin-react-you-might-not-need-an-effect"))]),z=m.hasPackageJsonAnyDependency(a,xr),I=m.hasPackageJsonAnyDependency(a,wr),R=m.hasPackageJsonAnyDependency(a,jr),N=m.hasPackageJsonAnyDependency(a,vr),{plugins:w}=L.configs.all;let S=a.dependencies?.react??a.devDependencies?.react,A=!1;if(S!==void 0){const C=oe.parse(S);C!==null&&(S=`${C.major}.${C.minor}`,d||console.info(`
9
9
  @anolilab/eslint-config found the version ${S} of react in your dependencies, this version ${S} will be used to setup the "eslint-plugin-react"
10
10
  `)),C?.major&&C.major>=19&&(A=!0)}let J=!1;if(b!==void 0){const C=_e.readTsConfig(b);C.compilerOptions!==void 0&&(C.compilerOptions.jsx==="react-jsx"||C.compilerOptions.jsx==="react-jsxdev")&&(J=!0,d||console.info(`@anolilab/eslint-config found react jsx-runtime.
11
11
 
package/dist/index.mjs CHANGED
@@ -7,7 +7,7 @@ Found eslint-plugin-tsdoc as dependency, disabling the jsdoc rules for *.ts and
7
7
  Following rules are disabled: jsonc/sort-keys for all package.json files.
8
8
  `),[...l.configs["flat/base"],{files:["**/*.json5"],name:"anolilab/jsonc/json5-rules",rules:l.configs["recommended-with-json5"].rules},{files:["**/*.jsonc"],name:"anolilab/jsonc/jsonc-rules",rules:l.configs["recommended-with-jsonc"].rules},{files:["**/*.json"],name:"anolilab/jsonc/json-rules",rules:l.configs["recommended-with-json"].rules},{files:["package.json","**/package.json"],name:"anolilab/jsonc/package.json-rules",rules:{"jsonc/sort-array-values":d?"off":["error",{order:{type:"asc"},pathPattern:"^files$"}],"jsonc/sort-keys":d?"off":["error",{order:["$schema","name","displayName","version","private","description","categories","keywords","homepage","bugs","repository","funding","license","qna","author","maintainers","contributors","publisher","sideEffects","type","imports","exports","main","svelte","umd:main","jsdelivr","unpkg","module","source","jsnext:main","browser","react-native","types","typesVersions","typings","style","example","examplestyle","assets","bin","man","directories","files","workspaces","binary","scripts","betterScripts","contributes","activationEvents","husky","simple-git-hooks","pre-commit","commitlint","lint-staged","nano-staged","config","nodemonConfig","browserify","babel","browserslist","xo","prettier","eslintConfig","eslintIgnore","npmpackagejsonlint","release","remarkConfig","stylelint","ava","jest","mocha","nyc","tap","oclif","resolutions","dependencies","devDependencies","dependenciesMeta","peerDependencies","peerDependenciesMeta","optionalDependencies","bundledDependencies","bundleDependencies","extensionPack","extensionDependencies","flat","packageManager","engines","engineStrict","volta","languageName","os","cpu","preferGlobal","publishConfig","icon","badges","galleryBanner","preview","markdown","pnpm"],pathPattern:"^$"},{order:{type:"asc"},pathPattern:"^(?:dev|peer|optional|bundled)?[Dd]ependencies(Meta)?$"},{order:{type:"asc"},pathPattern:"^(?:resolutions|overrides|pnpm.overrides)$"},{order:{type:"asc"},pathPattern:String.raw`^workspaces\.catalog$`},{order:{type:"asc"},pathPattern:String.raw`^workspaces\.catalogs\.[^.]+$`},{order:["types","import","require","default"],pathPattern:"^exports.*$"},{order:["applypatch-msg","pre-applypatch","post-applypatch","pre-commit","pre-merge-commit","prepare-commit-msg","commit-msg","post-commit","pre-rebase","post-checkout","post-merge","pre-push","pre-receive","update","post-receive","post-update","push-to-checkout","pre-auto-gc","post-rewrite","sendemail-validate","fsmonitor-watchman","p4-pre-submit","post-index-chang"],pathPattern:"^(?:gitHooks|husky|simple-git-hooks)$"},{order:["build","preinstall","install","postinstall","lint",{order:{type:"asc"}}],pathPattern:"^scripts$"}]}},{files:["**/tsconfig.json","**/tsconfig.*.json"],name:"anolilab/jsonc/tsconfig-json",rules:{"jsonc/sort-keys":["error",{order:["extends","compilerOptions","references","files","include","exclude"],pathPattern:"^$"},{order:["incremental","composite","tsBuildInfoFile","disableSourceOfProjectReferenceRedirect","disableSolutionSearching","disableReferencedProjectLoad","target","jsx","jsxFactory","jsxFragmentFactory","jsxImportSource","lib","moduleDetection","noLib","reactNamespace","useDefineForClassFields","emitDecoratorMetadata","experimentalDecorators","libReplacement","baseUrl","rootDir","rootDirs","customConditions","module","moduleResolution","moduleSuffixes","noResolve","paths","resolveJsonModule","resolvePackageJsonExports","resolvePackageJsonImports","typeRoots","types","allowArbitraryExtensions","allowImportingTsExtensions","allowUmdGlobalAccess","allowJs","checkJs","maxNodeModuleJsDepth","strict","strictBindCallApply","strictFunctionTypes","strictNullChecks","strictPropertyInitialization","allowUnreachableCode","allowUnusedLabels","alwaysStrict","exactOptionalPropertyTypes","noFallthroughCasesInSwitch","noImplicitAny","noImplicitOverride","noImplicitReturns","noImplicitThis","noPropertyAccessFromIndexSignature","noUncheckedIndexedAccess","noUnusedLocals","noUnusedParameters","useUnknownInCatchVariables","declaration","declarationDir","declarationMap","downlevelIteration","emitBOM","emitDeclarationOnly","importHelpers","importsNotUsedAsValues","inlineSourceMap","inlineSources","mapRoot","newLine","noEmit","noEmitHelpers","noEmitOnError","outDir","outFile","preserveConstEnums","preserveValueImports","removeComments","sourceMap","sourceRoot","stripInternal","allowSyntheticDefaultImports","esModuleInterop","forceConsistentCasingInFileNames","isolatedDeclarations","isolatedModules","preserveSymlinks","verbatimModuleSyntax","erasableSyntaxOnly","skipDefaultLibCheck","skipLibCheck"],pathPattern:"^compilerOptions$"}]}},...s?l.configs["flat/prettier"]:[],{files:["**/*.json","**/*.jsonc","**/*.json5"],rules:{...n?{"jsonc/array-bracket-spacing":["error","never"],"jsonc/comma-dangle":["error","never"],"jsonc/comma-style":["error","last"],"jsonc/indent":["error",a],"jsonc/key-spacing":["error",{afterColon:!0,beforeColon:!1}],"jsonc/object-curly-newline":["error",{consistent:!0,multiline:!0}],"jsonc/object-curly-spacing":["error","always"],"jsonc/object-property-newline":["error",{allowAllPropertiesOnSameLine:!0}],"jsonc/quote-props":"error","jsonc/quotes":"error"}:{},...r}}]},"jsonc"),sr=f("jsx_and_tsx",async(e,r)=>{const{files:o=r,overrides:s}=e,t=await i(import("eslint-plugin-jsx-a11y"));return[{files:o,languageOptions:{parserOptions:{ecmaFeatures:{jsx:!0}}},name:"anolilab/jsx-a11y/setup",plugins:{"jsx-a11y":t},rules:{"jsx-a11y/accessible-emoji":"off","jsx-a11y/alt-text":["error",{area:[],elements:["img","object","area",'input[type="image"]'],img:[],'input[type="image"]':[],object:[]}],"jsx-a11y/anchor-has-content":["error",{components:[]}],"jsx-a11y/anchor-is-valid":["error",{aspects:["noHref","invalidHref","preferButton"],components:["A","LinkTo","Link"],specialLink:["to"]}],"jsx-a11y/aria-activedescendant-has-tabindex":"error","jsx-a11y/aria-props":"error","jsx-a11y/aria-proptypes":"error","jsx-a11y/aria-role":["error",{ignoreNonDOM:!1}],"jsx-a11y/aria-unsupported-elements":"error","jsx-a11y/autocomplete-valid":["off",{inputComponents:[]}],"jsx-a11y/click-events-have-key-events":"error","jsx-a11y/control-has-associated-label":["error",{controlComponents:[],depth:5,ignoreElements:["audio","canvas","embed","input","textarea","tr","video"],ignoreRoles:["grid","listbox","menu","menubar","radiogroup","row","tablist","toolbar","tree","treegrid"],labelAttributes:["label"]}],"jsx-a11y/heading-has-content":["error",{components:[""]}],"jsx-a11y/html-has-lang":"error","jsx-a11y/iframe-has-title":"error","jsx-a11y/img-redundant-alt":"error","jsx-a11y/interactive-supports-focus":"error","jsx-a11y/label-has-associated-control":["error",{assert:"both",controlComponents:[],depth:25,labelAttributes:[],labelComponents:[]}],"jsx-a11y/lang":"error","jsx-a11y/media-has-caption":["error",{audio:[],track:[],video:[]}],"jsx-a11y/mouse-events-have-key-events":"error","jsx-a11y/no-access-key":"error","jsx-a11y/no-autofocus":["error",{ignoreNonDOM:!0}],"jsx-a11y/no-distracting-elements":["error",{elements:["marquee","blink"]}],"jsx-a11y/no-interactive-element-to-noninteractive-role":["error",{tr:["none","presentation"]}],"jsx-a11y/no-noninteractive-element-interactions":["error",{handlers:["onClick","onMouseDown","onMouseUp","onKeyPress","onKeyDown","onKeyUp"]}],"jsx-a11y/no-noninteractive-element-to-interactive-role":["error",{li:["menuitem","option","row","tab","treeitem"],ol:["listbox","menu","menubar","radiogroup","tablist","tree","treegrid"],table:["grid"],td:["gridcell"],ul:["listbox","menu","menubar","radiogroup","tablist","tree","treegrid"]}],"jsx-a11y/no-noninteractive-tabindex":["error",{roles:["tabpanel"],tags:[]}],"jsx-a11y/no-onchange":"off","jsx-a11y/no-redundant-roles":"error","jsx-a11y/no-static-element-interactions":["error",{handlers:["onClick","onMouseDown","onMouseUp","onKeyPress","onKeyDown","onKeyUp"]}],"jsx-a11y/role-has-required-aria-props":"error","jsx-a11y/role-supports-aria-props":"error","jsx-a11y/scope":"error","jsx-a11y/tabindex-no-positive":"error",...s}}]}),or=f("markdown",async(e,r)=>{const{componentExts:o=[],files:s=r,overrides:t}=e,[n,a]=await Promise.all([i(import("typescript-eslint")),i(import("@eslint/markdown"))]),l=n.configs.disableTypeChecked.rules;return[{name:"anolilab/markdown/setup",plugins:{markdown:a}},{files:s,ignores:p("markdown_in_markdown"),name:"anolilab/markdown/processor",processor:we([a.processors.markdown,je])},{files:s,languageOptions:{parser:E},name:"anolilab/markdown/parser",rules:a.configs.recommended[0].rules},{files:["**/*.md","**/*.md/**/*.?([cm])[jt]s?(x)","**/*.md/**/*.json",...o.map(d=>`**/*.md/**/*.${d}`)],languageOptions:{parserOptions:{ecmaFeatures:{impliedStrict:!0}}},name:"anolilab/markdown/disabled",rules:{"@stylistic/comma-dangle":"off","@stylistic/eol-last":"off","@stylistic/prefer-global/process":"off","@stylistic/quote-props":"off","@stylistic/semi":"off","@typescript-eslint/no-unused-expressions":"off","antfu/no-top-level-await":"off","import/newline-after-import":"off","no-alert":"off","no-console":"off","no-labels":"off","no-lone-blocks":"off","no-restricted-syntax":"off","no-undef":"off","no-unused-expressions":"off","no-unused-labels":"off","no-unused-vars":"off",...l,"no-for-of-array/no-for-of-array":"off","unicode-bom":"off","unicorn/prefer-module":"off","unicorn/prefer-string-raw":"off","unused-imports/no-unused-imports":"off","unused-imports/no-unused-vars":"off",...t}}]});var tr=Object.defineProperty,nr=v((e,r)=>tr(e,"name",{value:r,configurable:!0}),"s");const ar=nr(async e=>{const r=await i(import("eslint-plugin-no-secrets"));return[{files:["*","*/**"],ignores:["package.json","**/package.json","package-lock.json","**/package-lock.json","tsconfig.json","**/tsconfig.json"],languageOptions:{ecmaVersion:6},name:"anolilab/no-secrets",plugins:{"no-secrets":r},rules:{"no-secrets/no-secrets":"error",...e.overrides}}]},"noSecrets"),ir=f("js",async(e,r)=>{const{files:o=r,overrides:s}=e,t=await i(import("eslint-plugin-no-unsanitized"));return[{files:o,name:"anolilab/no-unsanitized/setup",plugins:{"no-unsanitized":t},rules:{"no-unsanitized/method":"error","no-unsanitized/property":"error",...s}}]}),lr=f("all",async(e,r)=>{const{files:o=r,overrides:s,packageJson:t}=e,n=await i(import("eslint-plugin-n")),a=t.engines?.node;return[{name:"anolilab/node/setup",plugins:{n}},{files:o,name:"anolilab/node/rules",rules:{...n.configs.recommended.rules,"global-require":"error","n/callback-return":"off","n/file-extension-in-import":"off","n/handle-callback-err":"off","n/no-extraneous-import":"off","n/no-extraneous-require":"off","n/no-missing-import":"off","n/no-missing-require":"off","n/no-mixed-requires":["error",{allowCall:!0,grouping:!0}],"n/no-new-require":"error","n/no-process-env":"off","n/no-process-exit":"off","n/no-restricted-modules":"off","n/no-sync":"off","n/no-unpublished-bin":"error","n/process-exit-as-throw":"error","no-buffer-constructor":"error","no-path-concat":"error",...a?{"n/no-unsupported-features/es-builtins":["error",{version:a}],"n/no-unsupported-features/es-syntax":["error",{ignores:["modules"],version:a}],"n/no-unsupported-features/node-builtins":["error",{version:a}]}:{},...s}}]}),cr=f("all",async(e,r)=>{const{files:o=r,overrides:s,packageJson:t}=e,n=await i(import("eslint-plugin-perfectionist"));return y(t,["eslint-plugin-typescript-sort-keys"])&&console.warn(`
9
9
  Please remove "eslint-plugin-typescript-sort-keys" from your package.json, it conflicts with "eslint-plugin-perfectionist".
10
- `),[{name:"anolilab/perfectionist/setup",plugins:{perfectionist:n}},{files:o,name:"anolilab/perfectionist/rules",rules:{...n.configs["recommended-natural"].rules,"perfectionist/sort-imports":"off","perfectionist/sort-modules":"off","perfectionist/sort-named-exports":"off","perfectionist/sort-named-imports":"off","perfectionist/sort-union-types":"off",...s}},{files:p("ts"),name:"anolilab/perfectionist/typescript",rules:{"perfectionist/sort-classes":"off"}},{files:p("postcss"),name:"anolilab/perfectionist/postcss",rules:{"perfectionist/sort-objects":"off"}}]}),pr=f("e2e",async(e,r)=>{const{files:o=r,overrides:s}=e,t=await i(import("eslint-plugin-playwright"));return[{files:o,plugins:{playwright:t},rules:{...t.configs.recommended.rules,...s}}]}),fr=f("all",async(e,r)=>{const{files:o=r,overrides:s}=e,t=await i(import("eslint-plugin-promise"));return[{files:o,name:"anolilab/promise/rules",plugins:{promise:t},rules:{...ae(t.configs["flat/recommended"].rules),"promise/prefer-await-to-callbacks":"off","promise/prefer-await-to-then":"off",...s}}]}),se={allow:["__DEV__","__STORYBOOK_CLIENT_API__","__STORYBOOK_ADDONS_CHANNEL__","__STORYBOOK_STORY_STORE__"],allowAfterSuper:!1,allowAfterThis:!1,enforceInMethodNames:!0},pe={"array-bracket-newline":"off","array-bracket-spacing":"off","array-element-newline":"off",camelcase:["error",{ignoreDestructuring:!1,properties:"never"}],"capitalized-comments":["off","never",{block:{ignoreConsecutiveComments:!0,ignoreInlineComments:!0,ignorePattern:".*"},line:{ignoreConsecutiveComments:!0,ignoreInlineComments:!0,ignorePattern:".*"}}],"comma-style":"off","computed-property-spacing":"off","consistent-this":"off","default-param-last":["error"],"eol-last":"off","func-name-matching":["off","always",{considerPropertyDescriptor:!0,includeCommonJSModuleExports:!1}],"func-names":["error","as-needed"],"func-style":["error","expression"],"function-call-argument-newline":"off","function-paren-newline":"off","id-blacklist":"error","id-denylist":"off","id-length":"off","id-match":"off","implicit-arrow-linebreak":"off","jsx-quotes":"off","line-comment-position":"off","linebreak-style":"off","lines-around-directive":["error",{after:"always",before:"always"}],"max-depth":["off",4],"max-len":"off","max-lines":["off",{max:300,skipBlankLines:!0,skipComments:!0}],"max-lines-per-function":["off",{IIFEs:!0,max:50,skipBlankLines:!0,skipComments:!0}],"max-nested-callbacks":"off","max-params":["off",3],"max-statements":["off",10],"max-statements-per-line":"off","multiline-comment-style":"off","multiline-ternary":"off","new-cap":["error",{capIsNew:!1,capIsNewExceptions:["Immutable.Map","Immutable.Set","Immutable.List"],newIsCap:!0,newIsCapExceptions:[]}],"new-parens":"off","newline-after-var":"off","newline-before-return":"off","newline-per-chained-call":"off","no-array-constructor":"error","no-bitwise":"error","no-continue":"off","no-inline-comments":"off","no-lonely-if":"error","no-mixed-operators":["error",{allowSamePrecedence:!1,groups:[["%","**"],["%","+"],["%","-"],["%","*"],["%","/"],["/","*"],["&","|","<<",">>",">>>"],["==","!=","===","!=="],["&&","||"],["in","instanceof"]]}],"no-mixed-spaces-and-tabs":"off","no-multi-assign":["error"],"no-multiple-empty-lines":"off","no-negated-condition":"off","no-nested-ternary":"error","no-new-object":"error","no-plusplus":"error","no-restricted-syntax":["error",{message:"for..in loops iterate over the entire prototype chain, which is virtually never what you want. Use Object.{keys,values,entries}, and iterate over the resulting array.",selector:"ForInStatement"},{message:"Labels are a form of GOTO; using them makes code confusing and hard to maintain and understand.",selector:"LabeledStatement"},{message:"`with` is disallowed in strict mode because it makes code impossible to predict and optimize.",selector:"WithStatement"},{message:"`useMemo` with an empty dependency array can't provide a stable reference, use `useRef` instead.",selector:"CallExpression[callee.name=useMemo][arguments.1.type=ArrayExpression][arguments.1.elements.length=0]"},{message:"Use `.key` instead of `.keyCode`",selector:"MemberExpression > .property[type=Identifier][name=keyCode]"},{message:"Do not use full-width tilde. Use wave dash instead.",selector:":matches(Literal[value=/~/],TemplateElement[value.raw=/~/])"},{message:"Use `.toString()` instead of template literal if you want to convert a value to string.",selector:'TemplateLiteral[quasis.0.value.raw=""][quasis.1.tail=true][quasis.1.value.raw=""]'}],"no-spaced-func":"off","no-tabs":"off","no-ternary":"off","no-trailing-spaces":"off","no-underscore-dangle":["error",se],"no-unneeded-ternary":["error",{defaultAssignment:!1}],"no-whitespace-before-property":"off","nonblock-statement-body-position":"off","object-curly-newline":"off","object-curly-spacing":"off","object-property-newline":"off","one-var":["error","never"],"one-var-declaration-per-line":"off","operator-assignment":["error","always"],"operator-linebreak":"off","padded-blocks":"off","padding-line-between-statements":"off","prefer-exponentiation-operator":"error","prefer-object-spread":"error","quote-props":"off",quotes:"off","require-jsdoc":"off","rest-spread-spacing":"off",semi:"off","semi-spacing":"off","semi-style":"off","sort-keys":"off","sort-vars":"off","space-before-blocks":"off","space-before-function-paren":"off","space-in-parens":"off","space-infix-ops":"off","space-unary-ops":"off","spaced-comment":"off","switch-colon-spacing":"off","template-tag-spacing":"off","unicode-bom":["error","never"],"wrap-iife":"off","wrap-regex":"off","yield-star-spacing":"off"},dr=f("all",async(e,r)=>{const{files:o=r,prettier:s}=e;return[{files:o,name:"anolilab/style/rules",rules:{...pe,"quote-props":"off",...s?{"array-bracket-newline":"off","array-bracket-spacing":"off","array-element-newline":"off","arrow-parens":"off","arrow-spacing":"off","block-spacing":"off","brace-style":"off","comma-dangle":"off","comma-spacing":"off","comma-style":"off","computed-property-spacing":"off",curly:0,"dot-location":"off","eol-last":"off","func-call-spacing":"off","function-call-argument-newline":"off","function-paren-newline":"off","generator-star-spacing":"off","implicit-arrow-linebreak":"off",indent:"off","jsx-quotes":"off","key-spacing":"off","keyword-spacing":"off","linebreak-style":"off","lines-around-comment":0,"max-len":0,"max-statements-per-line":"off","multiline-ternary":"off","new-parens":"off","newline-per-chained-call":"off","no-confusing-arrow":0,"no-extra-parens":"off","no-extra-semi":"off","no-floating-decimal":"off","no-mixed-operators":0,"no-mixed-spaces-and-tabs":"off","no-multi-spaces":"off","no-multiple-empty-lines":"off","no-tabs":0,"no-trailing-spaces":"off","no-unexpected-multiline":0,"no-whitespace-before-property":"off","nonblock-statement-body-position":"off","object-curly-newline":"off","object-curly-spacing":"off","object-property-newline":"off","one-var-declaration-per-line":"off","operator-linebreak":"off","padded-blocks":"off",quotes:0,"rest-spread-spacing":"off",semi:"off","semi-spacing":"off","semi-style":"off","space-before-blocks":"off","space-before-function-paren":"off","space-in-parens":"off","space-unary-ops":"off","switch-colon-spacing":"off","template-curly-spacing":"off","template-tag-spacing":"off","wrap-iife":"off","wrap-regex":"off","yield-star-spacing":"off"}:{}}},{files:p("ts"),name:"anolilab/style/ts-rules",rules:{"brace-style":"off",camelcase:"off","comma-dangle":"off","comma-spacing":"off","func-call-spacing":"off",indent:"off","keyword-spacing":"off","lines-between-class-members":"off","no-array-constructor":"off",quotes:"off",semi:"off","space-before-function-paren":"off"}}]}),ur=["vite"],mr=["@remix-run/node","@remix-run/react","@remix-run/serve","@remix-run/dev"],yr=["next"],gr=["@react-router/node","@react-router/react","@react-router/serve","@react-router/dev"],hr=f("jsx_and_tsx",async(e,r)=>{const{files:o=r,filesTypeAware:s=p("ts"),overrides:t,packageJson:n,prettier:a,reactCompiler:l,silent:d,stylistic:h=!0,tsconfigPath:b}=e,O=[...p("astro"),...p("markdown"),...p("js"),...p("jsx"),"**/*.json","**/*.jsonc",...e.ignoresTypeAware??[]];let{isTypeAware:C=!0}=e;C=C&&b!==void 0;const{indent:j=4}=typeof h=="boolean"?{}:h,U={"react-x/no-leaked-conditional-rendering":"error"},[L,R,S,T,F,_]=await Promise.all([i(import("@eslint-react/eslint-plugin")),i(import("eslint-plugin-react")),i(import("eslint-plugin-react-hooks")),i(import("eslint-plugin-react-refresh")),i(import("eslint-plugin-react-perf")),i(import("eslint-plugin-react-you-might-not-need-an-effect"))]),V=y(n,ur),N=y(n,mr),M=y(n,yr),A=y(n,gr),{plugins:w}=L.configs.all;let q=n.dependencies?.react??n.devDependencies?.react,I=!1;if(q!==void 0){const P=re(q);P!==null&&(q=`${P.major}.${P.minor}`,d||console.info(`
10
+ `),[{name:"anolilab/perfectionist/setup",plugins:{perfectionist:n}},{files:o,name:"anolilab/perfectionist/rules",rules:{...n.configs["recommended-natural"].rules,"perfectionist/sort-imports":"off","perfectionist/sort-modules":"off","perfectionist/sort-named-exports":"off","perfectionist/sort-named-imports":"off","perfectionist/sort-union-types":"off",...s}},{files:p("ts"),name:"anolilab/perfectionist/typescript",rules:{"perfectionist/sort-classes":"off"}},{files:p("postcss"),name:"anolilab/perfectionist/postcss",rules:{"perfectionist/sort-objects":"off"}}]}),pr=f("e2e",async(e,r)=>{const{files:o=r,overrides:s}=e,t=await i(import("eslint-plugin-playwright"));return[{files:o,plugins:{playwright:t},rules:{...t.configs.recommended.rules,...s}}]}),fr=f("all",async(e,r)=>{const{files:o=r,overrides:s}=e,t=await i(import("eslint-plugin-promise"));return[{files:o,name:"anolilab/promise/rules",plugins:{promise:t},rules:{...ae(t?.configs["flat/recommended"].rules),"promise/prefer-await-to-callbacks":"off","promise/prefer-await-to-then":"off",...s}}]}),se={allow:["__DEV__","__STORYBOOK_CLIENT_API__","__STORYBOOK_ADDONS_CHANNEL__","__STORYBOOK_STORY_STORE__"],allowAfterSuper:!1,allowAfterThis:!1,enforceInMethodNames:!0},pe={"array-bracket-newline":"off","array-bracket-spacing":"off","array-element-newline":"off",camelcase:["error",{ignoreDestructuring:!1,properties:"never"}],"capitalized-comments":["off","never",{block:{ignoreConsecutiveComments:!0,ignoreInlineComments:!0,ignorePattern:".*"},line:{ignoreConsecutiveComments:!0,ignoreInlineComments:!0,ignorePattern:".*"}}],"comma-style":"off","computed-property-spacing":"off","consistent-this":"off","default-param-last":["error"],"eol-last":"off","func-name-matching":["off","always",{considerPropertyDescriptor:!0,includeCommonJSModuleExports:!1}],"func-names":["error","as-needed"],"func-style":["error","expression"],"function-call-argument-newline":"off","function-paren-newline":"off","id-blacklist":"error","id-denylist":"off","id-length":"off","id-match":"off","implicit-arrow-linebreak":"off","jsx-quotes":"off","line-comment-position":"off","linebreak-style":"off","lines-around-directive":["error",{after:"always",before:"always"}],"max-depth":["off",4],"max-len":"off","max-lines":["off",{max:300,skipBlankLines:!0,skipComments:!0}],"max-lines-per-function":["off",{IIFEs:!0,max:50,skipBlankLines:!0,skipComments:!0}],"max-nested-callbacks":"off","max-params":["off",3],"max-statements":["off",10],"max-statements-per-line":"off","multiline-comment-style":"off","multiline-ternary":"off","new-cap":["error",{capIsNew:!1,capIsNewExceptions:["Immutable.Map","Immutable.Set","Immutable.List"],newIsCap:!0,newIsCapExceptions:[]}],"new-parens":"off","newline-after-var":"off","newline-before-return":"off","newline-per-chained-call":"off","no-array-constructor":"error","no-bitwise":"error","no-continue":"off","no-inline-comments":"off","no-lonely-if":"error","no-mixed-operators":["error",{allowSamePrecedence:!1,groups:[["%","**"],["%","+"],["%","-"],["%","*"],["%","/"],["/","*"],["&","|","<<",">>",">>>"],["==","!=","===","!=="],["&&","||"],["in","instanceof"]]}],"no-mixed-spaces-and-tabs":"off","no-multi-assign":["error"],"no-multiple-empty-lines":"off","no-negated-condition":"off","no-nested-ternary":"error","no-new-object":"error","no-plusplus":"error","no-restricted-syntax":["error",{message:"for..in loops iterate over the entire prototype chain, which is virtually never what you want. Use Object.{keys,values,entries}, and iterate over the resulting array.",selector:"ForInStatement"},{message:"Labels are a form of GOTO; using them makes code confusing and hard to maintain and understand.",selector:"LabeledStatement"},{message:"`with` is disallowed in strict mode because it makes code impossible to predict and optimize.",selector:"WithStatement"},{message:"`useMemo` with an empty dependency array can't provide a stable reference, use `useRef` instead.",selector:"CallExpression[callee.name=useMemo][arguments.1.type=ArrayExpression][arguments.1.elements.length=0]"},{message:"Use `.key` instead of `.keyCode`",selector:"MemberExpression > .property[type=Identifier][name=keyCode]"},{message:"Do not use full-width tilde. Use wave dash instead.",selector:":matches(Literal[value=/~/],TemplateElement[value.raw=/~/])"},{message:"Use `.toString()` instead of template literal if you want to convert a value to string.",selector:'TemplateLiteral[quasis.0.value.raw=""][quasis.1.tail=true][quasis.1.value.raw=""]'}],"no-spaced-func":"off","no-tabs":"off","no-ternary":"off","no-trailing-spaces":"off","no-underscore-dangle":["error",se],"no-unneeded-ternary":["error",{defaultAssignment:!1}],"no-whitespace-before-property":"off","nonblock-statement-body-position":"off","object-curly-newline":"off","object-curly-spacing":"off","object-property-newline":"off","one-var":["error","never"],"one-var-declaration-per-line":"off","operator-assignment":["error","always"],"operator-linebreak":"off","padded-blocks":"off","padding-line-between-statements":"off","prefer-exponentiation-operator":"error","prefer-object-spread":"error","quote-props":"off",quotes:"off","require-jsdoc":"off","rest-spread-spacing":"off",semi:"off","semi-spacing":"off","semi-style":"off","sort-keys":"off","sort-vars":"off","space-before-blocks":"off","space-before-function-paren":"off","space-in-parens":"off","space-infix-ops":"off","space-unary-ops":"off","spaced-comment":"off","switch-colon-spacing":"off","template-tag-spacing":"off","unicode-bom":["error","never"],"wrap-iife":"off","wrap-regex":"off","yield-star-spacing":"off"},dr=f("all",async(e,r)=>{const{files:o=r,prettier:s}=e;return[{files:o,name:"anolilab/style/rules",rules:{...pe,"quote-props":"off",...s?{"array-bracket-newline":"off","array-bracket-spacing":"off","array-element-newline":"off","arrow-parens":"off","arrow-spacing":"off","block-spacing":"off","brace-style":"off","comma-dangle":"off","comma-spacing":"off","comma-style":"off","computed-property-spacing":"off",curly:0,"dot-location":"off","eol-last":"off","func-call-spacing":"off","function-call-argument-newline":"off","function-paren-newline":"off","generator-star-spacing":"off","implicit-arrow-linebreak":"off",indent:"off","jsx-quotes":"off","key-spacing":"off","keyword-spacing":"off","linebreak-style":"off","lines-around-comment":0,"max-len":0,"max-statements-per-line":"off","multiline-ternary":"off","new-parens":"off","newline-per-chained-call":"off","no-confusing-arrow":0,"no-extra-parens":"off","no-extra-semi":"off","no-floating-decimal":"off","no-mixed-operators":0,"no-mixed-spaces-and-tabs":"off","no-multi-spaces":"off","no-multiple-empty-lines":"off","no-tabs":0,"no-trailing-spaces":"off","no-unexpected-multiline":0,"no-whitespace-before-property":"off","nonblock-statement-body-position":"off","object-curly-newline":"off","object-curly-spacing":"off","object-property-newline":"off","one-var-declaration-per-line":"off","operator-linebreak":"off","padded-blocks":"off",quotes:0,"rest-spread-spacing":"off",semi:"off","semi-spacing":"off","semi-style":"off","space-before-blocks":"off","space-before-function-paren":"off","space-in-parens":"off","space-unary-ops":"off","switch-colon-spacing":"off","template-curly-spacing":"off","template-tag-spacing":"off","wrap-iife":"off","wrap-regex":"off","yield-star-spacing":"off"}:{}}},{files:p("ts"),name:"anolilab/style/ts-rules",rules:{"brace-style":"off",camelcase:"off","comma-dangle":"off","comma-spacing":"off","func-call-spacing":"off",indent:"off","keyword-spacing":"off","lines-between-class-members":"off","no-array-constructor":"off",quotes:"off",semi:"off","space-before-function-paren":"off"}}]}),ur=["vite"],mr=["@remix-run/node","@remix-run/react","@remix-run/serve","@remix-run/dev"],yr=["next"],gr=["@react-router/node","@react-router/react","@react-router/serve","@react-router/dev"],hr=f("jsx_and_tsx",async(e,r)=>{const{files:o=r,filesTypeAware:s=p("ts"),overrides:t,packageJson:n,prettier:a,reactCompiler:l,silent:d,stylistic:h=!0,tsconfigPath:b}=e,O=[...p("astro"),...p("markdown"),...p("js"),...p("jsx"),"**/*.json","**/*.jsonc",...e.ignoresTypeAware??[]];let{isTypeAware:C=!0}=e;C=C&&b!==void 0;const{indent:j=4}=typeof h=="boolean"?{}:h,U={"react-x/no-leaked-conditional-rendering":"error"},[L,R,S,T,F,_]=await Promise.all([i(import("@eslint-react/eslint-plugin")),i(import("eslint-plugin-react")),i(import("eslint-plugin-react-hooks")),i(import("eslint-plugin-react-refresh")),i(import("eslint-plugin-react-perf")),i(import("eslint-plugin-react-you-might-not-need-an-effect"))]),V=y(n,ur),N=y(n,mr),M=y(n,yr),A=y(n,gr),{plugins:w}=L.configs.all;let q=n.dependencies?.react??n.devDependencies?.react,I=!1;if(q!==void 0){const P=re(q);P!==null&&(q=`${P.major}.${P.minor}`,d||console.info(`
11
11
  @anolilab/eslint-config found the version ${q} of react in your dependencies, this version ${q} will be used to setup the "eslint-plugin-react"
12
12
  `)),P?.major&&P.major>=19&&(I=!0)}let $=!1;if(b!==void 0){const P=ve(b);P.compilerOptions!==void 0&&(P.compilerOptions.jsx==="react-jsx"||P.compilerOptions.jsx==="react-jsxdev")&&($=!0,d||console.info(`@anolilab/eslint-config found react jsx-runtime.
13
13
 
package/package.json CHANGED
@@ -1,271 +1,271 @@
1
1
  {
2
- "name": "@anolilab/eslint-config",
3
- "version": "16.3.1",
4
- "description": "ESLint shareable config for the Anolilab JavaScript style guide.",
5
- "keywords": [
6
- "anolilab",
7
- "lint",
8
- "styleguide",
9
- "eslint",
10
- "eslintconfig",
11
- "eslint-config",
12
- "config",
13
- "javascript",
14
- "es2015",
15
- "es2016",
16
- "es2017",
17
- "es2018",
18
- "es2020",
19
- "globals",
20
- "eslint-import-resolver-node",
21
- "eslint-import-resolver-typescript",
22
- "eslint-plugin-antfu",
23
- "eslint-plugin-compat",
24
- "eslint-plugin-es",
25
- "eslint-plugin-es-x",
26
- "eslint-plugin-eslint-comments",
27
- "eslint-plugin-html",
28
- "eslint-plugin-i",
29
- "@tanstack/eslint-plugin-router",
30
- "eslint-plugin-jsonc",
31
- "eslint-markdown",
32
- "eslint-plugin-no-secrets",
33
- "eslint-plugin-no-use-extend-native",
34
- "eslint-plugin-promise",
35
- "eslint-plugin-regexp",
36
- "eslint-plugin-sonarjs",
37
- "eslint-plugin-toml",
38
- "eslint-plugin-unicorn",
39
- "eslint-plugin-yml",
40
- "eslint-plugin-playwright",
41
- "eslint-plugin-jsdoc",
42
- "eslint-plugin-jsx-a11y",
43
- "eslint-plugin-n",
44
- "eslint-plugin-no-unsanitized",
45
- "eslint-plugin-react",
46
- "eslint-plugin-react-hooks",
47
- "eslint-plugin-storybook",
48
- "eslint-plugin-tailwindcss",
49
- "eslint-plugin-testing-library",
50
- "eslint-plugin-tsdoc",
51
- "eslint-plugin-no-for-of-array",
52
- "eslint-plugin-you-dont-need-lodash-underscore"
53
- ],
54
- "homepage": "https://anolilab.com/nodejs/packages/eslint-config",
55
- "repository": {
56
- "type": "git",
57
- "url": "https://github.com/anolilab/javascript-style-guide.git",
58
- "directory": "packages/eslint-config"
2
+ "name": "@anolilab/eslint-config",
3
+ "version": "16.3.2",
4
+ "description": "ESLint shareable config for the Anolilab JavaScript style guide.",
5
+ "keywords": [
6
+ "anolilab",
7
+ "lint",
8
+ "styleguide",
9
+ "eslint",
10
+ "eslintconfig",
11
+ "eslint-config",
12
+ "config",
13
+ "javascript",
14
+ "es2015",
15
+ "es2016",
16
+ "es2017",
17
+ "es2018",
18
+ "es2020",
19
+ "globals",
20
+ "eslint-import-resolver-node",
21
+ "eslint-import-resolver-typescript",
22
+ "eslint-plugin-antfu",
23
+ "eslint-plugin-compat",
24
+ "eslint-plugin-es",
25
+ "eslint-plugin-es-x",
26
+ "eslint-plugin-eslint-comments",
27
+ "eslint-plugin-html",
28
+ "eslint-plugin-i",
29
+ "@tanstack/eslint-plugin-router",
30
+ "eslint-plugin-jsonc",
31
+ "eslint-markdown",
32
+ "eslint-plugin-no-secrets",
33
+ "eslint-plugin-no-use-extend-native",
34
+ "eslint-plugin-promise",
35
+ "eslint-plugin-regexp",
36
+ "eslint-plugin-sonarjs",
37
+ "eslint-plugin-toml",
38
+ "eslint-plugin-unicorn",
39
+ "eslint-plugin-yml",
40
+ "eslint-plugin-playwright",
41
+ "eslint-plugin-jsdoc",
42
+ "eslint-plugin-jsx-a11y",
43
+ "eslint-plugin-n",
44
+ "eslint-plugin-no-unsanitized",
45
+ "eslint-plugin-react",
46
+ "eslint-plugin-react-hooks",
47
+ "eslint-plugin-storybook",
48
+ "eslint-plugin-tailwindcss",
49
+ "eslint-plugin-testing-library",
50
+ "eslint-plugin-tsdoc",
51
+ "eslint-plugin-no-for-of-array",
52
+ "eslint-plugin-you-dont-need-lodash-underscore"
53
+ ],
54
+ "homepage": "https://anolilab.com/nodejs/packages/eslint-config",
55
+ "repository": {
56
+ "type": "git",
57
+ "url": "https://github.com/anolilab/javascript-style-guide.git",
58
+ "directory": "packages/eslint-config"
59
+ },
60
+ "funding": [
61
+ {
62
+ "type": "github",
63
+ "url": "https://github.com/sponsors/prisis"
59
64
  },
60
- "funding": [
61
- {
62
- "type": "github",
63
- "url": "https://github.com/sponsors/prisis"
64
- },
65
- {
66
- "type": "consulting",
67
- "url": "https://anolilab.com/support"
68
- }
69
- ],
70
- "license": "MIT",
71
- "author": {
72
- "name": "Daniel Bannert",
73
- "email": "d.bannert@anolilab.de"
65
+ {
66
+ "type": "consulting",
67
+ "url": "https://anolilab.com/support"
68
+ }
69
+ ],
70
+ "license": "MIT",
71
+ "author": {
72
+ "name": "Daniel Bannert",
73
+ "email": "d.bannert@anolilab.de"
74
+ },
75
+ "sideEffects": false,
76
+ "type": "module",
77
+ "exports": {
78
+ ".": {
79
+ "import": {
80
+ "types": "./dist/index.d.mts",
81
+ "default": "./dist/index.mjs"
82
+ },
83
+ "require": {
84
+ "types": "./dist/index.d.cts",
85
+ "default": "./dist/index.cjs"
86
+ }
87
+ },
88
+ "./package.json": "./package.json"
89
+ },
90
+ "main": "dist/index.cjs",
91
+ "module": "dist/index.mjs",
92
+ "types": "dist/index.d.ts",
93
+ "typesVersions": {
94
+ ">=5.0": {
95
+ ".": [
96
+ "./dist/index.d.ts"
97
+ ]
98
+ }
99
+ },
100
+ "files": [
101
+ "CHANGELOG.md",
102
+ "LICENSE.md",
103
+ "README.md",
104
+ "dist"
105
+ ],
106
+ "dependencies": {
107
+ "@eslint-community/eslint-plugin-eslint-comments": "^4.5.0",
108
+ "@eslint/compat": "^1.4.0",
109
+ "@eslint/js": "^9.36.0",
110
+ "@eslint/markdown": "^7.3.0",
111
+ "@html-eslint/eslint-plugin": "^0.47.0",
112
+ "@html-eslint/parser": "^0.47.0",
113
+ "@stylistic/eslint-plugin": "^5.4.0",
114
+ "@stylistic/eslint-plugin-ts": "^4.4.1",
115
+ "@typescript-eslint/parser": "^8.45.0",
116
+ "@typescript-eslint/types": "^8.45.0",
117
+ "@visulima/package": "^4.0.1",
118
+ "@visulima/tsconfig": "^1.2.0",
119
+ "@vitest/eslint-plugin": "^1.3.13",
120
+ "confusing-browser-globals": "^1.0.11",
121
+ "eslint-config-flat-gitignore": "^2.1.0",
122
+ "eslint-flat-config-utils": "^2.1.4",
123
+ "eslint-import-resolver-node": "^0.3.9",
124
+ "eslint-import-resolver-typescript": "^4.4.4",
125
+ "eslint-merge-processors": "^2.0.0",
126
+ "eslint-plugin-antfu": "^3.1.1",
127
+ "eslint-plugin-compat": "^6.0.2",
128
+ "eslint-plugin-erasable-syntax-only": "^0.3.1",
129
+ "eslint-plugin-es-x": "^9.1.0",
130
+ "eslint-plugin-html": "^8.1.3",
131
+ "eslint-plugin-import-x": "^4.16.1",
132
+ "eslint-plugin-jsdoc": "^60.7.1",
133
+ "eslint-plugin-jsonc": "^2.20.1",
134
+ "eslint-plugin-n": "^17.23.1",
135
+ "eslint-plugin-no-for-of-array": "^0.1.0",
136
+ "eslint-plugin-no-only-tests": "^3.3.0",
137
+ "eslint-plugin-no-secrets": "^2.2.1",
138
+ "eslint-plugin-no-unsanitized": "^4.1.4",
139
+ "eslint-plugin-perfectionist": "^4.15.0",
140
+ "eslint-plugin-promise": "^7.2.1",
141
+ "eslint-plugin-regexp": "^2.10.0",
142
+ "eslint-plugin-security": "^3.0.1",
143
+ "eslint-plugin-simple-import-sort": "^12.1.1",
144
+ "eslint-plugin-sonarjs": "^3.0.5",
145
+ "eslint-plugin-toml": "^0.12.0",
146
+ "eslint-plugin-unicorn": "^61.0.2",
147
+ "eslint-plugin-unused-imports": "^4.2.0",
148
+ "eslint-plugin-yml": "^1.18.0",
149
+ "globals": "^16.4.0",
150
+ "jsonc-eslint-parser": "^2.4.1",
151
+ "parse-gitignore": "^2.0.0",
152
+ "semver": "^7.7.2",
153
+ "toml-eslint-parser": "^0.10.0",
154
+ "typescript-eslint": "^8.45.0",
155
+ "yaml-eslint-parser": "^1.3.0"
156
+ },
157
+ "peerDependencies": {
158
+ "@eslint-react/eslint-plugin": "^2.0.5",
159
+ "@eslint/css": "^0.11.1",
160
+ "@tanstack/eslint-plugin-query": "^5.91.0",
161
+ "@tanstack/eslint-plugin-router": "^1.132.31",
162
+ "@unocss/eslint-plugin": "^66.5.2",
163
+ "astro-eslint-parser": "^1.2.2",
164
+ "eslint": ">=9.5.0",
165
+ "eslint-plugin-astro": "^1.3.1",
166
+ "eslint-plugin-format": ">=0.1.0",
167
+ "eslint-plugin-jsx-a11y": "^6.10.2",
168
+ "eslint-plugin-playwright": "^0.16.0 || ^0.18.0 || ^2.0.0",
169
+ "eslint-plugin-react": "^7.37.5",
170
+ "eslint-plugin-react-compiler": "^19.1.0-rc.2",
171
+ "eslint-plugin-react-hooks": "^6.1.0",
172
+ "eslint-plugin-react-perf": "^3.3.3",
173
+ "eslint-plugin-react-refresh": "^0.4.23",
174
+ "eslint-plugin-react-you-might-not-need-an-effect": "^0.5.5",
175
+ "eslint-plugin-storybook": "^9.1.10",
176
+ "eslint-plugin-tailwindcss": "^3.18.2",
177
+ "eslint-plugin-testing-library": "^7.11.0",
178
+ "eslint-plugin-tsdoc": "^0.4.0",
179
+ "eslint-plugin-validate-jsx-nesting": "^0.1.1",
180
+ "eslint-plugin-you-dont-need-lodash-underscore": "^6.14.0",
181
+ "eslint-plugin-zod": "^1.4.0",
182
+ "tailwind-csstree": "0.1.4"
183
+ },
184
+ "peerDependenciesMeta": {
185
+ "@eslint-react/eslint-plugin": {
186
+ "optional": true
187
+ },
188
+ "@eslint/css": {
189
+ "optional": true
190
+ },
191
+ "@tanstack/eslint-plugin-query": {
192
+ "optional": true
193
+ },
194
+ "@tanstack/eslint-plugin-router": {
195
+ "optional": true
196
+ },
197
+ "@unocss/eslint-plugin": {
198
+ "optional": true
199
+ },
200
+ "astro-eslint-parser": {
201
+ "optional": true
202
+ },
203
+ "eslint-plugin-astro": {
204
+ "optional": true
205
+ },
206
+ "eslint-plugin-format": {
207
+ "optional": true
208
+ },
209
+ "eslint-plugin-jsx-a11y": {
210
+ "optional": true
211
+ },
212
+ "eslint-plugin-n": {
213
+ "optional": true
214
+ },
215
+ "eslint-plugin-playwright": {
216
+ "optional": true
217
+ },
218
+ "eslint-plugin-react": {
219
+ "optional": true
220
+ },
221
+ "eslint-plugin-react-compiler": {
222
+ "optional": true
223
+ },
224
+ "eslint-plugin-react-hooks": {
225
+ "optional": true
226
+ },
227
+ "eslint-plugin-react-perf": {
228
+ "optional": true
229
+ },
230
+ "eslint-plugin-react-refresh": {
231
+ "optional": true
232
+ },
233
+ "eslint-plugin-react-you-might-not-need-an-effect": {
234
+ "optional": true
235
+ },
236
+ "eslint-plugin-storybook": {
237
+ "optional": true
238
+ },
239
+ "eslint-plugin-tailwindcss": {
240
+ "optional": true
74
241
  },
75
- "sideEffects": false,
76
- "type": "module",
77
- "exports": {
78
- ".": {
79
- "import": {
80
- "types": "./dist/index.d.mts",
81
- "default": "./dist/index.mjs"
82
- },
83
- "require": {
84
- "types": "./dist/index.d.cts",
85
- "default": "./dist/index.cjs"
86
- }
87
- },
88
- "./package.json": "./package.json"
242
+ "eslint-plugin-testing-library": {
243
+ "optional": true
89
244
  },
90
- "main": "dist/index.cjs",
91
- "module": "dist/index.mjs",
92
- "types": "dist/index.d.ts",
93
- "typesVersions": {
94
- ">=5.0": {
95
- ".": [
96
- "./dist/index.d.ts"
97
- ]
98
- }
245
+ "eslint-plugin-tsdoc": {
246
+ "optional": true
99
247
  },
100
- "files": [
101
- "CHANGELOG.md",
102
- "LICENSE.md",
103
- "README.md",
104
- "dist"
105
- ],
106
- "dependencies": {
107
- "@eslint-community/eslint-plugin-eslint-comments": "catalog:lint",
108
- "@eslint/compat": "catalog:lint",
109
- "@eslint/js": "catalog:lint",
110
- "@eslint/markdown": "catalog:lint",
111
- "@html-eslint/eslint-plugin": "catalog:lint",
112
- "@html-eslint/parser": "catalog:lint",
113
- "@stylistic/eslint-plugin": "catalog:lint",
114
- "@stylistic/eslint-plugin-ts": "catalog:lint",
115
- "@typescript-eslint/parser": "catalog:types",
116
- "@typescript-eslint/types": "catalog:types",
117
- "@visulima/package": "catalog:prod",
118
- "@visulima/tsconfig": "catalog:tsc",
119
- "@vitest/eslint-plugin": "catalog:lint",
120
- "confusing-browser-globals": "catalog:network",
121
- "eslint-config-flat-gitignore": "catalog:lint",
122
- "eslint-flat-config-utils": "catalog:lint",
123
- "eslint-import-resolver-node": "catalog:lint",
124
- "eslint-import-resolver-typescript": "catalog:lint",
125
- "eslint-merge-processors": "catalog:lint",
126
- "eslint-plugin-antfu": "catalog:lint",
127
- "eslint-plugin-compat": "catalog:lint",
128
- "eslint-plugin-erasable-syntax-only": "catalog:lint",
129
- "eslint-plugin-es-x": "catalog:lint",
130
- "eslint-plugin-html": "catalog:lint",
131
- "eslint-plugin-import-x": "catalog:lint",
132
- "eslint-plugin-jsdoc": "catalog:lint",
133
- "eslint-plugin-jsonc": "catalog:lint",
134
- "eslint-plugin-n": "catalog:lint",
135
- "eslint-plugin-no-for-of-array": "catalog:lint",
136
- "eslint-plugin-no-only-tests": "catalog:lint",
137
- "eslint-plugin-no-secrets": "catalog:lint",
138
- "eslint-plugin-no-unsanitized": "catalog:lint",
139
- "eslint-plugin-perfectionist": "catalog:lint",
140
- "eslint-plugin-promise": "catalog:lint",
141
- "eslint-plugin-regexp": "catalog:lint",
142
- "eslint-plugin-security": "catalog:lint",
143
- "eslint-plugin-simple-import-sort": "catalog:lint",
144
- "eslint-plugin-sonarjs": "catalog:lint",
145
- "eslint-plugin-toml": "catalog:lint",
146
- "eslint-plugin-unicorn": "catalog:lint",
147
- "eslint-plugin-unused-imports": "catalog:lint",
148
- "eslint-plugin-yml": "catalog:lint",
149
- "globals": "catalog:node",
150
- "jsonc-eslint-parser": "catalog:lint",
151
- "parse-gitignore": "catalog:prod",
152
- "semver": "catalog:utils",
153
- "toml-eslint-parser": "catalog:lint",
154
- "typescript-eslint": "catalog:lint",
155
- "yaml-eslint-parser": "catalog:lint"
248
+ "eslint-plugin-validate-jsx-nesting": {
249
+ "optional": true
156
250
  },
157
- "peerDependencies": {
158
- "@eslint-react/eslint-plugin": "catalog:lint",
159
- "@eslint/css": "catalog:lint",
160
- "@tanstack/eslint-plugin-query": "catalog:lint",
161
- "@tanstack/eslint-plugin-router": "catalog:lint",
162
- "@unocss/eslint-plugin": "catalog:lint",
163
- "astro-eslint-parser": "catalog:lint",
164
- "eslint": ">=9.5.0",
165
- "eslint-plugin-astro": "catalog:lint",
166
- "eslint-plugin-format": ">=0.1.0",
167
- "eslint-plugin-jsx-a11y": "catalog:lint",
168
- "eslint-plugin-playwright": "^0.16.0 || ^0.18.0 || ^2.0.0",
169
- "eslint-plugin-react": "catalog:lint",
170
- "eslint-plugin-react-compiler": "catalog:lint",
171
- "eslint-plugin-react-hooks": "catalog:lint",
172
- "eslint-plugin-react-perf": "catalog:lint",
173
- "eslint-plugin-react-refresh": "catalog:lint",
174
- "eslint-plugin-react-you-might-not-need-an-effect": "catalog:lint",
175
- "eslint-plugin-storybook": "catalog:lint",
176
- "eslint-plugin-tailwindcss": "catalog:lint",
177
- "eslint-plugin-testing-library": "catalog:lint",
178
- "eslint-plugin-tsdoc": "catalog:lint",
179
- "eslint-plugin-validate-jsx-nesting": "catalog:lint",
180
- "eslint-plugin-you-dont-need-lodash-underscore": "catalog:lint",
181
- "eslint-plugin-zod": "catalog:lint",
182
- "tailwind-csstree": "catalog:style"
251
+ "eslint-plugin-you-dont-need-lodash-underscore": {
252
+ "optional": true
183
253
  },
184
- "peerDependenciesMeta": {
185
- "@eslint-react/eslint-plugin": {
186
- "optional": true
187
- },
188
- "@eslint/css": {
189
- "optional": true
190
- },
191
- "@tanstack/eslint-plugin-query": {
192
- "optional": true
193
- },
194
- "@tanstack/eslint-plugin-router": {
195
- "optional": true
196
- },
197
- "@unocss/eslint-plugin": {
198
- "optional": true
199
- },
200
- "astro-eslint-parser": {
201
- "optional": true
202
- },
203
- "eslint-plugin-astro": {
204
- "optional": true
205
- },
206
- "eslint-plugin-format": {
207
- "optional": true
208
- },
209
- "eslint-plugin-jsx-a11y": {
210
- "optional": true
211
- },
212
- "eslint-plugin-n": {
213
- "optional": true
214
- },
215
- "eslint-plugin-playwright": {
216
- "optional": true
217
- },
218
- "eslint-plugin-react": {
219
- "optional": true
220
- },
221
- "eslint-plugin-react-compiler": {
222
- "optional": true
223
- },
224
- "eslint-plugin-react-hooks": {
225
- "optional": true
226
- },
227
- "eslint-plugin-react-perf": {
228
- "optional": true
229
- },
230
- "eslint-plugin-react-refresh": {
231
- "optional": true
232
- },
233
- "eslint-plugin-react-you-might-not-need-an-effect": {
234
- "optional": true
235
- },
236
- "eslint-plugin-storybook": {
237
- "optional": true
238
- },
239
- "eslint-plugin-tailwindcss": {
240
- "optional": true
241
- },
242
- "eslint-plugin-testing-library": {
243
- "optional": true
244
- },
245
- "eslint-plugin-tsdoc": {
246
- "optional": true
247
- },
248
- "eslint-plugin-validate-jsx-nesting": {
249
- "optional": true
250
- },
251
- "eslint-plugin-you-dont-need-lodash-underscore": {
252
- "optional": true
253
- },
254
- "eslint-plugin-zod": {
255
- "optional": true
256
- },
257
- "tailwind-csstree": {
258
- "optional": true
259
- },
260
- "typescript": {
261
- "optional": true
262
- }
254
+ "eslint-plugin-zod": {
255
+ "optional": true
263
256
  },
264
- "engines": {
265
- "node": ">=20.18.* <=24.*"
257
+ "tailwind-csstree": {
258
+ "optional": true
266
259
  },
267
- "publishConfig": {
268
- "access": "public",
269
- "provenance": true
260
+ "typescript": {
261
+ "optional": true
270
262
  }
271
- }
263
+ },
264
+ "engines": {
265
+ "node": ">=20.18.* <=24.*"
266
+ },
267
+ "publishConfig": {
268
+ "access": "public",
269
+ "provenance": true
270
+ }
271
+ }