{
	"$schema": "./node_modules/oxlint/configuration_schema.json",
	"plugins": ["typescript", "import", "unicorn", "promise"],
	"jsPlugins": ["@e18e/eslint-plugin"],
	"categories": {
		"correctness": "error",
		"suspicious": "warn",
		"perf": "warn"
	},
	"rules": {
		"no-await-in-loop": "off",
		"no-unused-vars": [
			"warn",
			{
				"argsIgnorePattern": "^_",
				"varsIgnorePattern": "^_"
			}
		],
		"unicorn/filename-case": "off",
		"unicorn/prevent-abbreviations": "off",
		"unicorn/no-null": "off",
		"unicorn/prefer-add-event-listener": "off",
		"typescript/no-unsafe-type-assertion": "warn",
		"typescript/unbound-method": "off",
		"typescript/no-unnecessary-boolean-literal-compare": "off",
		"import/no-named-as-default": "off",
		"import/no-unassigned-import": [
			"warn",
			{
				"allow": ["**/*.css", "@testing-library/react", "vitest-browser-react"]
			}
		],
		"e18e/prefer-array-at": "error",
		"e18e/prefer-array-fill": "error",
		"e18e/prefer-includes": "error",
		"e18e/prefer-array-to-reversed": "error",
		"e18e/prefer-array-to-sorted": "error",
		"e18e/prefer-array-to-spliced": "error",
		"e18e/prefer-nullish-coalescing": "error",
		"e18e/prefer-object-has-own": "error",
		"e18e/prefer-spread-syntax": "error",
		"e18e/prefer-url-canparse": "error",
		"e18e/ban-dependencies": "error",
		"e18e/prefer-array-from-map": "error",
		"e18e/prefer-timer-args": "error",
		"e18e/prefer-date-now": "error",
		"e18e/prefer-regex-test": "error",
		"e18e/prefer-array-some": "error",
		"e18e/prefer-static-regex": "error"
	},
	"overrides": [
		{
			"files": ["**/*.test.ts", "**/*.test.tsx", "**/tests/**/*.ts", "**/tests/**/*.tsx"],
			"rules": {
				"typescript/no-unsafe-type-assertion": "off",
				"typescript/no-unnecessary-type-assertion": "off",
				"unicorn/consistent-function-scoping": "off",
				"e18e(prefer-static-regex)": "off"
			}
		},
		{
			"files": [
				"**/database/repositories/content.ts",
				"**/database/repositories/comment.ts",
				"**/database/repositories/user.ts",
				"**/mcp/server.ts",
				"**/client/index.ts",
				"**/client/transport.ts",
				"**/client/portable-text.ts",
				"**/cli/**/*.ts",
				"**/api/handlers/api-tokens.ts",
				"**/api/handlers/device-flow.ts",
				"**/api/handlers/oauth-authorization.ts",
				"**/api/handlers/comments.ts",
				"**/routes/api/oauth/token.ts",
				"**/routes/api/comments/**/*.ts",
				"**/routes/api/admin/comments/**/*.ts",
				"**/routes/api/plugins/**/*.ts",
				"**/plugins/hooks.ts",
				"**/plugins/context.ts",
				"**/plugins/cron.ts",
				"**/plugins/define-plugin.ts",
				"**/plugins/request-meta.ts",
				"**/seed/load.ts",
				"**/comments/notifications.ts",
				"**/astro/integration/index.ts",
				"packages/plugins/**/*.ts",
				"packages/plugins/**/*.tsx",
				"packages/blocks/**/*.tsx",
				"packages/admin/**/*.tsx"
			],
			"rules": {
				"typescript/no-unsafe-type-assertion": "off"
			}
		}
	],
	"ignorePatterns": [
		"**/dist/**",
		"**/node_modules/**",
		"**/*.d.ts",
		"skills/**/scaffold/**",
		".opencode/skills/**/scaffold/**",
		".claude/skills/**/scaffold/**"
	]
}
