{
  "globals": {
    "NodeJS": true,
    "$fetch": true
  },
  "plugins": ["jsdoc"],
  "extends": [
    "plugin:jsdoc/recommended",
    "@nuxtjs/eslint-config-typescript",
    "plugin:import/typescript"
  ],
  "rules": {
    "no-console": "off",
    "vue/one-component-per-file": "off",
    "vue/require-default-prop": "off",
    "jsdoc/require-jsdoc": "off",
    "jsdoc/require-param": "off",
    "jsdoc/require-returns": "off",
    "jsdoc/require-param-type": "off",
    "import/no-restricted-paths": ["error", {
      "zones": [
        {
          "target": "packages/nuxt3/src/!(core)/**/*",
          "from": "packages/nuxt3/src/core",
          "message": "core should not directly import from modules."
        },
        {
          "target": "packages/nuxt3/src/!(app)/**/*",
          "from": "packages/nuxt3/src/app",
          "message": "app should not directly import from modules."
        },
        {
          "target": "packages/nitro",
          "from": "packages/!(nitro)/**/*",
          "message": "nitro should not directly import other packages."
        }
      ]
    }]
  },
  "settings": {
    "jsdoc": {
      "tagNamePreference": {
        "warning": "warning",
        "note": "note"
      }
    }
  },
  "overrides": [
    {
      "files": ["*.vue"],
      "rules": {
        "@typescript-eslint/no-unused-vars": "off"
      }
    }
  ]
}
