{
  "globals": {
    "NodeJS": true,
    "$fetch": true
  },
  "plugins": [
    "jsdoc"
  ],
  "extends": [
    "plugin:jsdoc/recommended",
    "@nuxtjs/eslint-config-typescript",
    "plugin:import/typescript"
  ],
  "rules": {
    "unicorn/prefer-node-protocol": "error",
    "no-console": "off",
    "vue/multi-word-component-names": "off",
    "vue/one-component-per-file": "off",
    "vue/require-default-prop": "off",
    "vue/no-multiple-template-root": "off",
    "vue/no-v-model-argument": "off",
    "jsdoc/require-jsdoc": "off",
    "jsdoc/require-param": "off",
    "jsdoc/require-returns": "off",
    "jsdoc/require-param-type": "off",
    "no-redeclare": "off",
    "import/order": [
      "error",
      {
        "pathGroups": [
          {
            "pattern": "@nuxt/test-utils",
            "group": "external"
          }
        ]
      }
    ],
    "import/no-restricted-paths": [
      "error",
      {
        "zones": [
          {
            "from": "packages/nuxt/src/!(core)/**/*",
            "target": "packages/nuxt/src/core",
            "message": "core should not directly import from modules."
          },
          {
            "from": "packages/nuxt/src/!(app)/**/*",
            "target": "packages/nuxt/src/app",
            "message": "app should not directly import from modules."
          },
          {
            "from": "packages/nitro",
            "target": "packages/!(nitro)/**/*",
            "message": "nitro should not directly import other packages."
          }
        ]
      }
    ],
    "@typescript-eslint/consistent-type-imports": [
      "error",
      {
        "disallowTypeAnnotations": false
      }
    ],
    "@typescript-eslint/no-unused-vars": [
      "error",
      {
        "argsIgnorePattern": "^_",
        "varsIgnorePattern": "^_",
        "ignoreRestSiblings": true
      }
    ]
  },
  "settings": {
    "jsdoc": {
      "ignoreInternal": true,
      "tagNamePreference": {
        "warning": "warning",
        "note": "note"
      }
    }
  }
}