{
	"globals": {
		"app": true,
		"io": true,
		"socket": true,
		"ajaxify": true,
		"config": true,
		"utils": true,
		"overrides": true,
		"componentHandler": true,
		"bootbox": true,
		"Visibility": true,
		"Tinycon": true,
		"Promise": true
	},
	"env": {
		"jquery": true,
		"amd": true,
		"browser": true,
		"es6": true
	},
	"rules": {
		"comma-dangle": ["error", {
			"arrays": "always-multiline",
			"objects": "always-multiline",
			"imports": "always-multiline",
			"exports": "always-multiline",
			"functions": "never"
		}],
		"block-scoped-var": "off",
		"no-dupe-class-members": "off",
		"prefer-object-spread": "off",
		"prefer-reflect": "off",

		// ES6
		"prefer-rest-params": "off",
		"prefer-spread": "off",
		"prefer-arrow-callback": "off",
		"prefer-template": "off",
		"no-var": "off",
		"object-shorthand": "off",
		"vars-on-top": "off",
		"prefer-destructuring": "off",
		// identical to airbnb rule
		// except for allowing for..in, because for..of is unavailable on some clients
		"no-restricted-syntax": [
			"error",
			{
				"selector": "ForOfStatement",
				"message": "iterators/generators require regenerator-runtime, which is too heavyweight for this guide to allow them. Separately, loops should be avoided in favor of array iterations."
			},
			{
				"selector": "LabeledStatement",
				"message": "Labels are a form of GOTO; using them makes code confusing and hard to maintain and understand."
			},
			{
				"selector": "WithStatement",
				"message": "`with` is disallowed in strict mode because it makes code impossible to predict and optimize."
			}
		]
	},
	"parserOptions": {
		"ecmaVersion": 2018,
		"ecmaFeatures": {
			"classes": false,
			"defaultParams": false,
			"blockBindings": false,
			"forOf": false,
			"generators": false,
			"globalReturn": false,
			"jsx": false,
			"modules": false,
			"objectLiteralComputedProperties": false,
			"objectLiteralDuplicateProperties": false,
			"objectLiteralShorthandMethods": false,
			"objectLiteralShorthandProperties": false,
			"impliedStrict": false,
			"restParams": false,
			"superInFunctions": false
		}
	}
}
