{ "$schema": "./node_modules/oxlint/configuration_schema.json", "categories": {}, "env": { "es2022": true }, "globals": {}, "ignorePatterns": [ "node_modules/**", "build/**", "dist/**", "out/**", "local/**", "tests/**", ".yarn/**", ".gitignore", "scripts/cloudflare-worker.js", "src/main/integration/nutstore/sso/lib/**", "src/main/integration/cherryai/index.js", "src/main/integration/nutstore/sso/lib/**", "src/renderer/src/ui/**", "packages/**/dist", "eslint.config.mjs" ], "overrides": [ { "env": { "node": true }, "files": ["src/main/**", "resources/scripts/**", "scripts/**", "playwright.config.ts", "electron.vite.config.ts"] }, { "env": { "browser": true }, "files": [ "src/renderer/**/*.{ts,tsx}", "packages/aiCore/**", "packages/extension-table-plus/**" ] }, { "env": { "node": true, "vitest": true }, "files": ["**/__tests__/*.test.{ts,tsx}", "tests/**"] }, { "env": { "browser": true, "node": true }, "files": ["src/preload/**"] }, { "files": ["packages/ai-sdk-provider/**"], "globals": { "fetch": "readonly" } } ], "plugins": ["unicorn", "typescript", "oxc", "import"], "rules": { "no-array-constructor": "off", "no-caller": "warn", "no-eval": "warn", "no-fallthrough": "warn", "no-unassigned-vars": "warn", "no-unused-expressions": "off", "no-unused-vars": ["warn", { "caughtErrors": "none" }], "no-useless-rename": "warn", "oxc/bad-array-method-on-arguments": "warn", "oxc/bad-char-at-comparison": "warn", "oxc/bad-comparison-sequence": "warn", "oxc/bad-min-max-func": "warn", "oxc/bad-object-literal-comparison": "warn", "oxc/bad-replace-all-arg": "warn", "oxc/const-comparisons": "warn", "oxc/double-comparisons": "warn", "oxc/erasing-op": "warn", "oxc/missing-throw": "warn", "oxc/number-arg-out-of-range": "warn", "oxc/only-used-in-recursion": "off", "oxc/uninvoked-array-callback": "warn", "typescript/await-thenable": "warn", "typescript/consistent-type-imports": "error", "typescript/no-array-constructor": "error", "typescript/no-array-delete": "warn", "typescript/no-base-to-string": "warn", "typescript/no-duplicate-enum-values": "error", "typescript/no-duplicate-type-constituents": "warn", "typescript/no-empty-object-type": "off", "typescript/no-explicit-any": "off", "typescript/no-extra-non-null-assertion": "error", "typescript/no-floating-promises": "warn", "typescript/no-for-in-array": "warn", "typescript/no-implied-eval": "warn", "typescript/no-meaningless-void-operator": "warn", "typescript/no-misused-new": "error", "typescript/no-misused-spread": "warn", "typescript/no-namespace": "error", "typescript/no-non-null-asserted-optional-chain": "off", "typescript/no-redundant-type-constituents": "warn", "typescript/no-require-imports": "off", "typescript/no-this-alias": "error", "typescript/no-unnecessary-parameter-property-assignment": "warn", "typescript/no-unnecessary-type-constraint": "error", "typescript/no-unsafe-declaration-merging": "error", "typescript/no-unsafe-function-type": "error", "typescript/no-unsafe-unary-minus": "warn", "typescript/no-useless-empty-export": "warn", "typescript/no-wrapper-object-types": "error", "typescript/prefer-as-const": "error", "typescript/prefer-namespace-keyword": "error", "typescript/require-array-sort-compare": "warn", "typescript/restrict-template-expressions": "warn", "typescript/triple-slash-reference": "error", "typescript/unbound-method": "warn", "unicorn/no-await-in-promise-methods": "warn", "unicorn/no-empty-file": "off", "unicorn/no-invalid-fetch-options": "warn", "unicorn/no-invalid-remove-event-listener": "warn", "unicorn/no-new-array": "off", "unicorn/no-single-promise-in-promise-methods": "warn", "unicorn/no-thenable": "off", "unicorn/no-unnecessary-await": "warn", "unicorn/no-useless-fallback-in-spread": "warn", "unicorn/no-useless-length-check": "warn", "unicorn/no-useless-spread": "off", "unicorn/prefer-set-size": "warn", "unicorn/prefer-string-starts-ends-with": "warn" }, "settings": { "jsdoc": { "augmentsExtendsReplacesDocs": false, "exemptDestructuredRootsFromChecks": false, "ignoreInternal": false, "ignorePrivate": false, "ignoreReplacesDocs": true, "implementsReplacesDocs": false, "overrideReplacesDocs": true, "tagNamePreference": {} }, "jsx-a11y": { "attributes": {}, "components": {}, "polymorphicPropName": null }, "next": { "rootDir": [] }, "react": { "formComponents": [], "linkComponents": [] } } }