{
  "$schema": "https://biomejs.dev/schemas/2.5.2/schema.json",
  "vcs": {
    "enabled": true,
    "clientKind": "git",
    "useIgnoreFile": false
  },
  "files": {
    "includes": [
      "**/*.ts",
      "**/*.tsx",
      "**/*.json",
      "**/*.jsonc",
      "!**/env.client.local.ts",
      "!**/env.client.debug.ts",
      "!**/env.client.develop.ts",
      "!**/env.client.main.ts",
      "!**/env.client.testing.ts",
      "!**/env.server.local.ts",
      "!**/env.server.develop.ts",
      "!**/env.server.main.ts",
      "!**/env.server.testing.ts",
      "!**/env.server.type.ts",
      "!apps/*/lib/cnst.ts",
      "!apps/*/lib/dict.ts",
      "!apps/*/lib/db.ts",
      "!apps/*/lib/srv.ts",
      "!apps/*/lib/st.ts",
      "!apps/*/lib/sig.ts",
      "!apps/*/lib/useClient.ts",
      "!apps/*/lib/useServer.ts",
      "!apps/*/client.ts",
      "!apps/*/server.ts",
      "!apps/*/lib/*/index.tsx",
      "!libs/*/lib/cnst.ts",
      "!libs/*/lib/dict.ts",
      "!libs/*/lib/db.ts",
      "!libs/*/lib/srv.ts",
      "!libs/*/lib/st.ts",
      "!libs/*/lib/sig.ts",
      "!libs/*/lib/useClient.ts",
      "!libs/*/lib/useServer.ts",
      "!libs/*/client.ts",
      "!libs/*/server.ts",
      "!libs/*/index.ts",
      "!libs/*/lib/*/index.tsx",
      "!infra/master/createRecords.ts",
      "!pkgs/contract/env.ts",
      "!!**/node_modules",
      "!!**/dist",
      "!!**/.akan",
      "!!**/dump",
      "!!**/local",
      "!!**/ios/DerivedData"
    ]
  },
  "formatter": {
    "enabled": true,
    "indentStyle": "space",
    "indentWidth": 2,
    "lineWidth": 120
  },
  "linter": {
    "enabled": true,
    "rules": {
      "preset": "recommended",
      "suspicious": {
        "noConsole": {
          "level": "error",
          "options": {
            "allow": ["assert", "error", "info", "warn"]
          }
        },
        "noArrayIndexKey": "off",
        "noShadowRestrictedNames": "off",
        "noUnnecessaryConditions": {
          "level": "error"
        }
      },
      "correctness": {
        "noUnusedFunctionParameters": "off",
        "noUnusedImports": {
          "level": "error",
          "fix": "safe"
        },
        "useParseIntRadix": "off",
        "useExhaustiveDependencies": "off",
        "useHookAtTopLevel": "off"
      },
      "nursery": {
        "useSortedClasses": {
          "level": "error",
          "fix": "safe",
          "options": {
            "attributes": ["classList"],
            "functions": ["clsx", "cva"]
          }
        }
      },
      "a11y": "off",
      "complexity": {
        "noStaticOnlyClass": "off"
      },
      "style": {
        "useTemplate": {
          "level": "warn",
          "fix": "safe"
        }
      }
    },
    "domains": {
      "project": "recommended",
      "react": "recommended",
      "test": "recommended",
      "types": "all"
    }
  },
  "javascript": {
    "parser": {
      "unsafeParameterDecoratorsEnabled": true
    },
    "formatter": {
      "quoteStyle": "double"
    }
  },
  "assist": {
    "enabled": true,
    "actions": {
      "source": {
        "organizeImports": "on"
      }
    }
  },
  "overrides": [
    {
      "includes": [
        "apps/**/*.ts",
        "apps/**/*.tsx",
        "libs/**/*.ts",
        "libs/**/*.tsx",
        "!**/*.test.ts",
        "!**/*.test.tsx",
        "!**/*.spec.ts",
        "!**/*.spec.tsx",
        "!**/*.constant.ts",
        "!**/common/**"
      ],
      "plugins": ["./node_modules/@akanjs/devkit/lint/no-throw-raw-error.grit"]
    },
    {
      "includes": ["**/page/**/*.ts", "**/page/**/*.tsx", "**/*.Unit.tsx", "**/*.View.tsx"],
      "plugins": [
        "./node_modules/@akanjs/devkit/lint/no-import-client-functions.grit",
        "./node_modules/@akanjs/devkit/lint/no-use-client-in-server.grit"
      ]
    },
    {
      "includes": ["**/page/**/*.ts", "**/page/**/*.tsx"],
      "plugins": ["./node_modules/@akanjs/devkit/lint/non-scalar-props-restricted.grit"]
    },
    {
      "includes": ["**/*.constant.ts", "**/*.document.ts", "**/*.service.ts", "**/*.store.ts"],
      "plugins": ["./node_modules/@akanjs/devkit/lint/no-js-private-class-method.grit"]
    },
    {
      "includes": ["**/*.signal.ts"],
      "plugins": ["./node_modules/@akanjs/devkit/lint/no-redeclare-predefined-endpoint.grit"]
    },
    {
      "includes": [
        "**/*.constant.ts",
        "**/*.dictionary.ts",
        "**/*.document.ts",
        "**/*.service.ts",
        "**/*.signal.ts",
        "**/*.store.ts",
        "**/*.Template.tsx",
        "**/*.Unit.tsx",
        "**/*.Util.tsx",
        "**/*.View.tsx",
        "**/*.Zone.tsx"
      ],
      "plugins": ["./node_modules/@akanjs/devkit/lint/no-deep-internal-import.grit"]
    },
    {
      "includes": [
        "**/page/**/*.ts",
        "**/page/**/*.tsx",
        "**/index.ts",
        "**/index.tsx",
        "**/cnst.ts",
        "**/db.ts",
        "**/dict.ts",
        "**/option.ts",
        "**/sig.ts",
        "**/srv.ts",
        "**/st.ts",
        "**/*.constant.ts",
        "**/*.dictionary.ts",
        "**/*.document.ts",
        "**/*.service.ts",
        "**/*.signal.ts",
        "**/*.signal.test.ts",
        "**/*.service.test.ts",
        "**/*.store.ts",
        "**/*.Template.tsx",
        "**/*.Unit.tsx",
        "**/*.Util.tsx",
        "**/*.View.tsx",
        "**/*.Zone.tsx"
      ],
      "plugins": ["./node_modules/@akanjs/devkit/lint/no-import-external-library.grit"]
    }
  ]
}
