diff --git a/.eslintrc b/.eslintrc index 7cf4fcf95d8..8d0b35aac58 100644 --- a/.eslintrc +++ b/.eslintrc @@ -1,140 +1,5 @@ { - "parserOptions": { - "sourceType": "module", - "ecmaVersion": 2017, - "ecmaFeatures": { - "experimentalObjectRestSpread" : true - } - }, - "env": { - "browser": true, - "commonjs": true, - "es6": true, - "node": true, - "jquery": true - }, - "rules": { - "no-multi-spaces": 2, - "no-eval": 2, - "no-extend-native": 2, - "no-multi-str": 2, - "no-use-before-define": 2, - "no-const-assign": 2, - "no-cond-assign": 2, - "no-constant-condition": 2, - "no-control-regex": 2, - "no-debugger": 2, - "no-delete-var": 2, - "no-dupe-keys": 2, - "no-dupe-args": 2, - "no-dupe-class-members": 2, - "no-duplicate-case": 2, - "no-empty": 2, - "no-empty-character-class": 2, - "no-ex-assign": 2, - "no-extra-boolean-cast": 2, - "no-extra-semi": 2, - "no-fallthrough": 2, - "no-func-assign": 2, - "no-inner-declarations": [2, "functions"], - "no-invalid-regexp": 2, - "no-irregular-whitespace": 2, - "no-mixed-operators": [2, { - "groups": [ - ["%", "**"], - ["%", "+"], - ["%", "-"], - ["%", "*"], - ["%", "/"], - ["**", "+"], - ["**", "-"], - ["**", "*"], - ["**", "/"], - ["&", "|", "^", "~", "<<", ">>", ">>>"], - ["==", "!=", "===", "!==", ">", ">=", "<", "<="], - ["&&", "||"], - ["in", "instanceof"] - ], - "allowSamePrecedence": false - }], - "no-mixed-spaces-and-tabs": 2, - "no-sparse-arrays": 2, - "no-negated-in-lhs": 2, - "no-obj-calls": 2, - "no-octal": 2, - "no-redeclare": 2, - "no-regex-spaces": 2, - "no-undef": 2, - "no-unreachable": 2, - "no-unused-vars": [2, { - "vars": "all", - "args": "after-used" - }], - "no-void": 2, - "no-var": 2, - "no-multiple-empty-lines": [2, { "max": 2 }], - "no-nested-ternary": 2, - "prefer-rest-params": 2, - "array-callback-return": 2, - "prefer-destructuring": [2, { - "VariableDeclarator": { - "array": false, - "object": true - }, - "AssignmentExpression": { - "array": false, - "object": false - } - }, { - "enforceForRenamedProperties": false - }], - "no-duplicate-imports": 2, - "arrow-parens": [2, "always"], - "quote-props": [2, "as-needed"], - "no-array-constructor": 2, - "arrow-spacing": 2, - "arrow-body-style": [2, "as-needed"], - "no-confusing-arrow": [2, { "allowParens": true }], - "dot-notation": 2, - "no-unneeded-ternary": 2, - "spaced-comment": 2, - "space-infix-ops": 2, - "array-bracket-spacing": [2, "never"], - "object-curly-spacing": [2, "always"], - "one-var": [2, "never"], - "no-lonely-if": 2, - "no-trailing-spaces": 2, - "complexity": [1, 31], - "space-in-parens": [2, "never"], - "space-before-function-paren": [2, "never"], - "space-before-blocks": [2, "always"], - "indent": [2, "tab", {"SwitchCase": 1}], - "eol-last": [2, "always"], - "comma-dangle": [2, "always-multiline"], - "keyword-spacing": 2, - "block-spacing": 2, - "brace-style": [2, "1tbs", { "allowSingleLine": true }], - "computed-property-spacing": 2, - "comma-spacing": 2, - "comma-style": 2, - "guard-for-in": 2, - "wrap-iife": 2, - "block-scoped-var": 2, - "curly": [2, "all"], - "eqeqeq": [2, "allow-null"], - "new-cap": [2, { - "capIsNewExceptions": ["Match.Optional", "Match.Maybe", "Match.OneOf", "Match.Where", "Match.ObjectIncluding", "Push.Configure", "SHA256"] - }], - "use-isnan": 2, - "valid-typeof": 2, - "linebreak-style": [2, "unix"], - "prefer-template": 2, - "template-curly-spacing": [2, "always"], - "quotes": [2, "single"], - "semi": [2, "always"], - "prefer-const": 2, - "object-shorthand": 2 - }, + "extends": ["@rocket.chat/eslint-config"], "globals": { "__meteor_runtime_config__" : false, "AccountBox" : false, diff --git a/package-lock.json b/package-lock.json index e867f1295c9..aff24e4d731 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "Rocket.Chat", - "version": "0.69.0-develop", + "version": "0.70.0-develop", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -198,6 +198,15 @@ "uuid": "3.2.1" } }, + "@rocket.chat/eslint-config": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@rocket.chat/eslint-config/-/eslint-config-0.1.2.tgz", + "integrity": "sha512-QhoSk8n77UMo889EtipRrCiJnayDYqxHDuD3TdL06SHnB8urZ1mCVBSf/ocsdV5TxevnE2TeZHDyjAQwvOvM0A==", + "dev": true, + "requires": { + "eslint-plugin-import": "2.14.0" + } + }, "@sindresorhus/is": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.7.0.tgz", @@ -3562,6 +3571,12 @@ "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=" }, + "contains-path": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/contains-path/-/contains-path-0.1.0.tgz", + "integrity": "sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo=", + "dev": true + }, "content-type": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", @@ -4882,6 +4897,113 @@ } } }, + "eslint-import-resolver-node": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.2.tgz", + "integrity": "sha512-sfmTqJfPSizWu4aymbPr4Iidp5yKm8yDkHp+Ir3YiTHiiDfxh69mOUsmiqW6RZ9zRXFaF64GtYmN7e+8GHBv6Q==", + "dev": true, + "requires": { + "debug": "2.6.9", + "resolve": "1.7.1" + } + }, + "eslint-module-utils": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.2.0.tgz", + "integrity": "sha1-snA2LNiLGkitMIl2zn+lTphBF0Y=", + "dev": true, + "requires": { + "debug": "2.6.9", + "pkg-dir": "1.0.0" + } + }, + "eslint-plugin-import": { + "version": "2.14.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.14.0.tgz", + "integrity": "sha512-FpuRtniD/AY6sXByma2Wr0TXvXJ4nA/2/04VPlfpmUDPOpOY264x+ILiwnrk/k4RINgDAyFZByxqPUbSQ5YE7g==", + "dev": true, + "requires": { + "contains-path": "0.1.0", + "debug": "2.6.9", + "doctrine": "1.5.0", + "eslint-import-resolver-node": "0.3.2", + "eslint-module-utils": "2.2.0", + "has": "1.0.2", + "lodash": "4.17.10", + "minimatch": "3.0.4", + "read-pkg-up": "2.0.0", + "resolve": "1.7.1" + }, + "dependencies": { + "doctrine": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz", + "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=", + "dev": true, + "requires": { + "esutils": "2.0.2", + "isarray": "1.0.0" + } + }, + "load-json-file": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", + "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "parse-json": "2.2.0", + "pify": "2.3.0", + "strip-bom": "3.0.0" + } + }, + "parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "dev": true, + "requires": { + "error-ex": "1.3.1" + } + }, + "path-type": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", + "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", + "dev": true, + "requires": { + "pify": "2.3.0" + } + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + }, + "read-pkg": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", + "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", + "dev": true, + "requires": { + "load-json-file": "2.0.0", + "normalize-package-data": "2.4.0", + "path-type": "2.0.0" + } + }, + "read-pkg-up": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", + "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", + "dev": true, + "requires": { + "find-up": "2.1.0", + "read-pkg": "2.0.0" + } + } + } + }, "eslint-scope": { "version": "3.7.1", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-3.7.1.tgz", @@ -8781,14 +8903,14 @@ "version": "https://github.com/meteor/less.js/tarball/8130849eb3d7f0ecf0ca8d0af7c4207b0442e3f6", "integrity": "sha512-514pMpzrABW11ploVaRcbHLf3MhollYYCJj9SyJmNT1O8ZeLCiIeqZ2SjZUM1uudohPlHgTRwmCZouzIJFJ7Jw==", "requires": { - "errno": "^0.1.1", - "graceful-fs": "^3.0.5", - "image-size": "~0.3.5", - "mime": "^1.2.11", - "mkdirp": "^0.5.0", - "promise": "^6.0.1", - "request": "^2.51.0", - "source-map": "^0.4.2" + "errno": "0.1.7", + "graceful-fs": "3.0.11", + "image-size": "0.3.5", + "mime": "1.6.0", + "mkdirp": "0.5.1", + "promise": "6.1.0", + "request": "2.87.0", + "source-map": "0.4.4" }, "dependencies": { "asap": { @@ -8803,7 +8925,7 @@ "integrity": "sha1-dhPHeKGv6mLyXGMKCG1/Osu92Bg=", "optional": true, "requires": { - "natives": "^1.1.0" + "natives": "1.1.4" } }, "image-size": { @@ -8824,7 +8946,7 @@ "integrity": "sha1-LOcp9rlLRcJoka0GAsXJDgTG7vY=", "optional": true, "requires": { - "asap": "~1.0.0" + "asap": "1.0.0" } }, "source-map": { @@ -8833,7 +8955,7 @@ "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", "optional": true, "requires": { - "amdefine": ">=0.0.4" + "amdefine": "1.0.1" } } } @@ -10444,6 +10566,36 @@ "pinkie": "2.0.4" } }, + "pkg-dir": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-1.0.0.tgz", + "integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=", + "dev": true, + "requires": { + "find-up": "1.1.2" + }, + "dependencies": { + "find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "dev": true, + "requires": { + "path-exists": "2.1.0", + "pinkie-promise": "2.0.1" + } + }, + "path-exists": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", + "dev": true, + "requires": { + "pinkie-promise": "2.0.1" + } + } + } + }, "pluralize": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-7.0.0.tgz", diff --git a/package.json b/package.json index b60d92ed816..8dad5663ade 100644 --- a/package.json +++ b/package.json @@ -89,6 +89,7 @@ }, "devDependencies": { "@octokit/rest": "^15.8.1", + "@rocket.chat/eslint-config": "^0.1.2", "autoprefixer": "^8.6.0", "babel-mocha-es6-compiler": "^0.1.0", "babel-plugin-array-includes": "^2.0.3",