{
	"parserOptions": {
		"ecmaVersion": 2022
	},

	"env": {
		"node": true,
		"mocha": true,
		"es2021": true
	},

	"globals": {
		"snooze": true,
		"twyrEnv": true
	},

	"plugins": [
		"jsdoc",
		"node",
		"security",
		"security-node"
	],

	"extends": [
		"eslint:recommended",
		"plugin:node/recommended",
		"plugin:security/recommended",
		"plugin:security-node/recommended"
	],

	"rules": {
		"comma-dangle": 1,
		"no-cond-assign": 1,
		"no-console": 0,
		"no-constant-condition": 0,
		"no-control-regex": 0,
		"no-debugger": 2,
		"no-dupe-args": 2,
		"no-dupe-keys": 2,
		"no-duplicate-case": 2,
		"no-empty-character-class": 0,
		"no-empty": 1,
		"no-ex-assign": 2,
		"no-extra-boolean-cast": 0,
		"no-extra-parens": 0,
		"no-extra-semi": 1,
		"no-func-assign": 1,
		"no-inner-declarations": 1,
		"no-invalid-regexp": 2,
		"no-irregular-whitespace": 1,
		"no-negated-in-lhs": 1,
		"no-obj-calls": 1,
		"no-regex-spaces": 1,
		"no-sparse-arrays": 1,
		"no-unreachable": 2,
		"use-isnan": 0,
		"valid-jsdoc": 1,
		"valid-typeof": 1,
		"no-unexpected-multiline": 1,

		"accessor-pairs": 0,
		"block-scoped-var": 1,
		"complexity": ["warn", 100],
		"consistent-return": 1,
		"curly": ["warn", "multi", "consistent"],
		"default-case": 1,
		"dot-notation": 0,
		"dot-location": ["error", "property"],
		"eqeqeq": 1,
		"guard-for-in": 1,
		"no-alert": 1,
		"no-caller": 2,
		"no-div-regex": 0,
		"no-else-return": 0,
		"no-labels": 2,
		"no-eq-null": 0,
		"no-eval": 2,
		"no-extend-native": 2,
		"no-extra-bind": 1,
		"no-fallthrough": 1,
		"no-floating-decimal": 2,
		"no-implied-eval": 1,
		"no-iterator": 2,
		"no-lone-blocks": 1,
		"no-loop-func": 2,
		"no-multi-spaces": 1,
		"no-multi-str": 1,
		"no-native-reassign": 2,
		"no-new-func": 2,
		"no-new-wrappers": 2,
		"no-new": 2,
		"no-octal-escape": 1,
		"no-octal": 2,
		"no-param-reassign": 0,
		"no-process-env": 0,
		"no-proto": 2,
		"no-redeclare": 2,
		"no-return-assign": 2,
		"no-script-url": 1,
		"no-self-compare": 1,
		"no-sequences": 1,
		"no-throw-literal": 1,
		"no-unused-expressions": 2,
		"no-void": 1,
		"no-warning-comments": 0,
		"no-with": 1,
		"radix": 1,
		"vars-on-top": 1,
		"wrap-iife": 1,
		"yoda": 1,

		"require-atomic-updates": 0,
		"strict": ["error", "global"],

		"no-catch-shadow": 2,
		"no-delete-var": 0,
		"no-label-var": 2,
		"no-shadow": 2,
		"no-shadow-restricted-names": 2,
		"no-undef": 2,
		"no-undef-init": 0,
		"no-undefined": 0,
		"no-unused-vars": 2,
		"no-use-before-define": 2,

		"handle-callback-err": 2,
		"no-mixed-requires": 1,
		"no-new-require": 1,
		"no-path-concat": 1,
		"no-process-exit": 1,
		"no-restricted-modules": 0,
		"no-sync": 1,

		"array-bracket-spacing": 1,
		"brace-style": ["error", "stroustrup", { "allowSingleLine": true }],
		"camelcase": 1,
		"comma-spacing": 1,
		"comma-style": 1,
		"computed-property-spacing": 1,
		"consistent-this": 1,
		"eol-last": 1,
		"func-names": 0,
		"func-style": 1,
		"indent": 0,
		"key-spacing": 1,
		"keyword-spacing": ["warn", { "before": true, "after": true, "overrides": { "if": { "after": false }, "for": { "after": false }, "while": { "after": false }, "catch": { "after": false } } }],
		"lines-around-comment": 0,
		"linebreak-style": 1,
		"max-nested-callbacks": 1,
		"new-cap": 1,
		"new-parens": 1,
		"newline-after-var": 0,
		"no-array-constructor": 1,
		"no-continue": 0,
		"no-inline-comments": 1,
		"no-lonely-if": 1,
		"no-mixed-spaces-and-tabs": 1,
		"no-multiple-empty-lines": 1,
		"no-nested-ternary": 1,
		"no-new-object": 1,
		"no-spaced-func": 1,
		"no-ternary": 0,
		"no-trailing-spaces": 1,
		"no-underscore-dangle": 0,
		"no-mixed-operators": 1,
		"no-restricted-syntax": 1,
		"no-prototype-builtins": 1,
		"no-useless-escape": 1,
		"one-var": 0,
		"operator-assignment": 1,
		"operator-linebreak": 1,
		"padded-blocks": 0,
		"prefer-template": 1,
		"quote-props": 1,
		"quotes": ["warn", "single", { "avoidEscape": true, "allowTemplateLiterals": true }],
		"semi-spacing": 1,
		"semi": 1,
		"sort-vars": 1,
		"space-before-blocks": 1,
		"space-before-function-paren": 0,
		"space-in-parens": 1,
		"space-infix-ops": 1,
		"space-unary-ops": 1,
		"spaced-comment": 1,
		"wrap-regex": 1,
		"array-callback-return": 1,
		"object-curly-spacing": 0,
		"one-var-declaration-per-line": 1,

		"constructor-super": 1,
		"generator-star-spacing": 1,
		"no-this-before-super": 1,
		"no-var": 1,
		"object-shorthand": 0,
		"prefer-const": 1,

		"max-depth": 0,
		"max-len": 0,
		"max-params": 0,
		"max-statements": 0,
		"no-bitwise": 0,
		"no-plusplus": 0,

		"node/no-missing-require": ["error"],

		"jsdoc/check-param-names": 1,
		"jsdoc/check-tag-names": 0,
		"jsdoc/check-types": 1,
		"jsdoc/newline-after-description": 0,
		"jsdoc/require-description-complete-sentence": 0,
		"jsdoc/require-example": 0,
		"jsdoc/require-hyphen-before-param-description": 1,
		"jsdoc/require-param": 1,
		"jsdoc/require-param-description": 1,
		"jsdoc/require-param-type": 1,
		"jsdoc/require-returns-description": 1,
		"jsdoc/require-returns-type": 1
	}
}
