{
  "extends": [
    "airbnb-base",
    "plugin:prettier/recommended",
    "plugin:yml/recommended"
  ],
  "root": true,
  "env": {
    "browser": true,
    "es6": true,
    "node": true
  },
  "parserOptions": {
    "ecmaVersion": 2020
  },
  "plugins": [
    "jsdoc"
  ],
  "globals": {
    "Drupal": true,
    "drupalSettings": true,
    "drupalTranslations": true,
    "jQuery": true,
    "_": true,
    "Cookies": true,
    "Backbone": true,
    "htmx": true,
    "loadjs": true,
    "Shepherd": true,
    "Sortable": true,
    "once": true,
    "CKEditor5": true,
    "tabbable": true,
    "transliterate": true,
    "bodyScrollLock" : true,
    "FloatingUIDOM": true
  },
  "rules": {
    "prettier/prettier": "error",
    "consistent-return": ["off"],
    "no-underscore-dangle": ["off"],
    "max-nested-callbacks": ["warn", 3],
    "import/no-mutable-exports": ["warn"],
    "no-plusplus": ["warn", {
      "allowForLoopAfterthoughts": true
    }],
    "no-param-reassign": ["off"],
    "no-prototype-builtins": ["off"],
    "jsdoc/require-returns": ["off"],
    "jsdoc/require-returns-type": ["warn"],
    "jsdoc/require-returns-description": ["warn"],
    "jsdoc/require-returns-check": ["warn"],
    "jsdoc/require-param": ["warn"],
    "jsdoc/require-param-type": ["warn"],
    "jsdoc/require-param-description": ["warn"],
    "jsdoc/check-param-names": ["warn"],
    "jsdoc/valid-types": ["warn"],
    "jsdoc/require-param-name": ["warn"],
    "jsdoc/check-tag-names": ["warn"],
    "no-unused-vars": ["warn"],
    "operator-linebreak": ["error", "after", { "overrides": { "?": "ignore", ":": "ignore" } }],
    "yml/indent": ["error", 2]
  },
  "settings": {
    "jsdoc": {
      "tagNamePreference": {
        "returns": "return",
        "property": "prop"
      }
    }
  }
}
