From 0f14531f159a7062b3e152cbcf9dd08208cf3474 Mon Sep 17 00:00:00 2001 From: Aarni Halinen Date: Wed, 3 Jul 2019 00:17:58 +0300 Subject: [PATCH 1/9] Add ESLint --- .eslintrc.json | 89 +++++ package-lock.json | 837 ++++++++++++++++++++++++++++++++++++++++++++++ package.json | 13 + 3 files changed, 939 insertions(+) create mode 100644 .eslintrc.json diff --git a/.eslintrc.json b/.eslintrc.json new file mode 100644 index 0000000..7cfec58 --- /dev/null +++ b/.eslintrc.json @@ -0,0 +1,89 @@ +{ + "env": { + "browser": true, + "es6": true, + "node": true + }, + "extends": [ + "airbnb" + ], + "globals": { + "Atomics": "readonly", + "SharedArrayBuffer": "readonly" + }, + "parser": "@typescript-eslint/parser", + "parserOptions": { + "ecmaFeatures": { + "jsx": true + }, + "ecmaVersion": 2018, + "sourceType": "module", + "project": "./tsconfig.json" + }, + "plugins": [ + "react", + "@typescript-eslint" + ], + "rules": { + "arrow-body-style": "off", + "arrow-parens": "off", + "camelcase": "off", + "comma-dangle": [ + "error", + { + "arrays": "ignore", + "objects": "ignore", + "imports": "ignore", + "exports": "ignore", + "functions": "ignore" + } + ], + "consistent-return": "warn", + "dot-notation": "warn", + "global-require": "warn", + "max-len": [ + "off", + 160 + ], + "no-console": "off", + "no-extra-boolean-cast": "warn", + "no-param-reassign": "warn", + "no-shadow": "warn", + "no-unused-vars": "off", + "no-useless-constructor": "warn", + "quotes": [ + "error", + "double" + ], + "import/no-unresolved": "off", + "import/first": "off", + "import/order": "off", + "import/no-extraneous-dependencies": "off", + "import/newline-after-import": "off", + "import/prefer-default-export": "off", + "prefer-destructuring": "off", + "prefer-template": "off", + "object-curly-newline": "off", + "quote-props": "off", + "jsx-a11y/anchor-is-valid": "off", + "jsx-a11y/alt-text": "off", + "jsx-a11y/click-events-have-key-events": "off", + "jsx-a11y/iframe-has-title": "off", + "jsx-a11y/no-static-element-interactions": "off", + "jsx-a11y/label-has-associated-control": "off", + "jsx-a11y/label-has-for": "off", + "react/destructuring-assignment": "off", + "react/jsx-closing-bracket-location": "off", + "react/jsx-closing-tag-location": "off", + "react/jsx-curly-brace-presence": "off", + "react/jsx-first-prop-new-line": "off", + "react/jsx-filename-extension": "off", + "react/jsx-indent-props": "off", + "react/jsx-one-expression-per-line": "off", + "react/jsx-wrap-multilines": "off", + "react/no-access-state-in-setstate": "warn", + "react/prop-types": "off", + "react/prefer-stateless-function": "off", + "react/self-closing-comp": "off" + } +} diff --git a/package-lock.json b/package-lock.json index 0446eed..0d6c7f1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -293,6 +293,12 @@ "integrity": "sha1-4ByfjIXKg7YQMgxiJYsMkCat4Pc=", "dev": true }, + "@types/eslint-visitor-keys": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@types/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz", + "integrity": "sha512-OCutwjDZ4aFS6PB1UZ988C4YgwlBHJd6wCeQqaLdmadZ/7e+w79+hbMUFC1QXDNCmdyoRfAFdm0RypzwR+Qpag==", + "dev": true + }, "@types/estree": { "version": "0.0.39", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", @@ -392,6 +398,62 @@ "@types/unist": "*" } }, + "@typescript-eslint/eslint-plugin": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-1.11.0.tgz", + "integrity": "sha512-mXv9ccCou89C8/4avKHuPB2WkSZyY/XcTQUXd5LFZAcLw1I3mWYVjUu6eS9Ja0QkP/ClolbcW9tb3Ov/pMdcqw==", + "dev": true, + "requires": { + "@typescript-eslint/experimental-utils": "1.11.0", + "eslint-utils": "^1.3.1", + "functional-red-black-tree": "^1.0.1", + "regexpp": "^2.0.1", + "tsutils": "^3.7.0" + }, + "dependencies": { + "tsutils": { + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.14.0.tgz", + "integrity": "sha512-SmzGbB0l+8I0QwsPgjooFRaRvHLBLNYM8SeQ0k6rtNDru5sCGeLJcZdwilNndN+GysuFjF5EIYgN8GfFG6UeUw==", + "dev": true, + "requires": { + "tslib": "^1.8.1" + } + } + } + }, + "@typescript-eslint/experimental-utils": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-1.11.0.tgz", + "integrity": "sha512-7LbfaqF6B8oa8cp/315zxKk8FFzosRzzhF8Kn/ZRsRsnpm7Qcu25cR/9RnAQo5utZ2KIWVgaALr+ZmcbG47ruw==", + "dev": true, + "requires": { + "@typescript-eslint/typescript-estree": "1.11.0", + "eslint-scope": "^4.0.0" + } + }, + "@typescript-eslint/parser": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-1.11.0.tgz", + "integrity": "sha512-5xBExyXaxVyczrZvbRKEXvaTUFFq7gIM9BynXukXZE0zF3IQP/FxF4mPmmh3gJ9egafZFqByCpPTFm3dk4SY7Q==", + "dev": true, + "requires": { + "@types/eslint-visitor-keys": "^1.0.0", + "@typescript-eslint/experimental-utils": "1.11.0", + "@typescript-eslint/typescript-estree": "1.11.0", + "eslint-visitor-keys": "^1.0.0" + } + }, + "@typescript-eslint/typescript-estree": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-1.11.0.tgz", + "integrity": "sha512-fquUHF5tAx1sM2OeRCC7wVxFd1iMELWMGCzOSmJ3pLzArj9+kRixdlC4d5MncuzXpjEqc6045p3KwM0o/3FuUA==", + "dev": true, + "requires": { + "lodash.unescape": "4.0.1", + "semver": "5.5.0" + } + }, "@webassemblyjs/ast": { "version": "1.8.5", "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.8.5.tgz", @@ -623,6 +685,12 @@ "@types/estree": "^0.0.39" } }, + "acorn-jsx": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.0.1.tgz", + "integrity": "sha512-HJ7CfNHrfJLlNTzIEUTj43LNWGkqpRLxm3YjAlcD0ACydk9XynzYsCBHxut+iqt+1aBXkx9UP/w/ZqMr13XIzg==", + "dev": true + }, "ajv": { "version": "6.5.1", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.5.1.tgz", @@ -835,6 +903,16 @@ "sprintf-js": "~1.0.2" } }, + "aria-query": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-3.0.0.tgz", + "integrity": "sha1-ZbP8wcoRVajJrmTW7uKX8V1RM8w=", + "dev": true, + "requires": { + "ast-types-flow": "0.0.7", + "commander": "^2.11.0" + } + }, "arr-diff": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", @@ -883,6 +961,16 @@ "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=", "dev": true }, + "array-includes": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.0.3.tgz", + "integrity": "sha1-GEtI9i2S10UrsxsyMWXH+L0CJm0=", + "dev": true, + "requires": { + "define-properties": "^1.1.2", + "es-abstract": "^1.7.0" + } + }, "array-map": { "version": "0.0.0", "resolved": "https://registry.npmjs.org/array-map/-/array-map-0.0.0.tgz", @@ -990,6 +1078,12 @@ "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", "dev": true }, + "ast-types-flow": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz", + "integrity": "sha1-9wtzXGvKGlycItmCw+Oef+ujva0=", + "dev": true + }, "astral-regex": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", @@ -1120,6 +1214,15 @@ "is-buffer": "^1.1.5" } }, + "axobject-query": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-2.0.2.tgz", + "integrity": "sha512-MCeek8ZH7hKyO1rWUbKNQBbl4l2eY0ntk7OGi+q0RlafrCnfPxC06WZA+uebCfmYp4mNU9jRBP1AhGyf8+W3ww==", + "dev": true, + "requires": { + "ast-types-flow": "0.0.7" + } + }, "babel-cli": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-cli/-/babel-cli-6.26.0.tgz", @@ -3965,6 +4068,12 @@ "xdg-basedir": "^3.0.0" } }, + "confusing-browser-globals": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.7.tgz", + "integrity": "sha512-cgHI1azax5ATrZ8rJ+ODDML9Fvu67PimB6aNxBrc/QwSaDaM9eTfIEUHx3bBLJJ82ioSb+/5zfsMCCEJax3ByQ==", + "dev": true + }, "connect-history-api-fallback": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz", @@ -4014,6 +4123,12 @@ "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=", "dev": true }, + "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-disposition": { "version": "0.5.2", "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz", @@ -4396,6 +4511,12 @@ "es5-ext": "^0.10.9" } }, + "damerau-levenshtein": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.5.tgz", + "integrity": "sha512-CBCRqFnpu715iPmw1KrdOrzRqbdFwQTwAWyyyYS42+iAgHCuXZ+/TdMgQkUENPomxEz9z1BEzuQU2Xw0kUuAgA==", + "dev": true + }, "dashdash": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", @@ -4606,6 +4727,12 @@ "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", "dev": true }, + "deep-is": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", + "dev": true + }, "default-gateway": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-4.2.0.tgz", @@ -4811,6 +4938,15 @@ "buffer-indexof": "^1.0.0" } }, + "doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "requires": { + "esutils": "^2.0.2" + } + }, "dom-converter": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.1.4.tgz", @@ -5207,6 +5343,530 @@ "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", "dev": true }, + "eslint": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-6.0.1.tgz", + "integrity": "sha512-DyQRaMmORQ+JsWShYsSg4OPTjY56u1nCjAmICrE8vLWqyLKxhFXOthwMj1SA8xwfrv0CofLNVnqbfyhwCkaO0w==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "ajv": "^6.10.0", + "chalk": "^2.1.0", + "cross-spawn": "^6.0.5", + "debug": "^4.0.1", + "doctrine": "^3.0.0", + "eslint-scope": "^4.0.3", + "eslint-utils": "^1.3.1", + "eslint-visitor-keys": "^1.0.0", + "espree": "^6.0.0", + "esquery": "^1.0.1", + "esutils": "^2.0.2", + "file-entry-cache": "^5.0.1", + "functional-red-black-tree": "^1.0.1", + "glob-parent": "^3.1.0", + "globals": "^11.7.0", + "ignore": "^4.0.6", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "inquirer": "^6.2.2", + "is-glob": "^4.0.0", + "js-yaml": "^3.13.1", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.3.0", + "lodash": "^4.17.11", + "minimatch": "^3.0.4", + "mkdirp": "^0.5.1", + "natural-compare": "^1.4.0", + "optionator": "^0.8.2", + "progress": "^2.0.0", + "regexpp": "^2.0.1", + "semver": "^5.5.1", + "strip-ansi": "^4.0.0", + "strip-json-comments": "^2.0.1", + "table": "^5.2.3", + "text-table": "^0.2.0" + }, + "dependencies": { + "ajv": { + "version": "6.10.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.0.tgz", + "integrity": "sha512-nffhOpkymDECQyR0mnsUtoCE8RlX38G0rYP+wgLWFyZuUyuuojSSvi/+euOiQBIn63whYwYVIIH1TvE3tu4OEg==", + "dev": true, + "requires": { + "fast-deep-equal": "^2.0.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dev": true, + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "file-entry-cache": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz", + "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==", + "dev": true, + "requires": { + "flat-cache": "^2.0.1" + } + }, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, + "requires": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "requires": { + "is-extglob": "^2.1.0" + } + } + } + }, + "globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true + }, + "ignore": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "dev": true + }, + "import-fresh": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.1.0.tgz", + "integrity": "sha512-PpuksHKGt8rXfWEr9m9EHIpgyyaltBy8+eF6GJM0QCAxMgxCfucMF3mjecK2QsJr0amJW7gTqh5/wht0z2UhEQ==", + "dev": true, + "requires": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + } + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true + }, + "is-glob": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "dev": true + }, + "semver": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz", + "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==", + "dev": true + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + } + } + }, + "eslint-config-airbnb": { + "version": "17.1.1", + "resolved": "https://registry.npmjs.org/eslint-config-airbnb/-/eslint-config-airbnb-17.1.1.tgz", + "integrity": "sha512-xCu//8a/aWqagKljt+1/qAM62BYZeNq04HmdevG5yUGWpja0I/xhqd6GdLRch5oetEGFiJAnvtGuTEAese53Qg==", + "dev": true, + "requires": { + "eslint-config-airbnb-base": "^13.2.0", + "object.assign": "^4.1.0", + "object.entries": "^1.1.0" + } + }, + "eslint-config-airbnb-base": { + "version": "13.2.0", + "resolved": "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-13.2.0.tgz", + "integrity": "sha512-1mg/7eoB4AUeB0X1c/ho4vb2gYkNH8Trr/EgCT/aGmKhhG+F6vF5s8+iRBlWAzFIAphxIdp3YfEKgEl0f9Xg+w==", + "dev": true, + "requires": { + "confusing-browser-globals": "^1.0.5", + "object.assign": "^4.1.0", + "object.entries": "^1.1.0" + } + }, + "eslint-config-standard": { + "version": "12.0.0", + "resolved": "https://registry.npmjs.org/eslint-config-standard/-/eslint-config-standard-12.0.0.tgz", + "integrity": "sha512-COUz8FnXhqFitYj4DTqHzidjIL/t4mumGZto5c7DrBpvWoie+Sn3P4sLEzUGeYhRElWuFEf8K1S1EfvD1vixCQ==", + "dev": true + }, + "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.5.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + } + } + }, + "eslint-module-utils": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.4.0.tgz", + "integrity": "sha512-14tltLm38Eu3zS+mt0KvILC3q8jyIAH518MlG+HO0p+yK885Lb1UHTY/UgR91eOyGdmxAPb+OLoW4znqIT6Ndw==", + "dev": true, + "requires": { + "debug": "^2.6.8", + "pkg-dir": "^2.0.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + } + } + }, + "eslint-plugin-es": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-es/-/eslint-plugin-es-1.4.0.tgz", + "integrity": "sha512-XfFmgFdIUDgvaRAlaXUkxrRg5JSADoRC8IkKLc/cISeR3yHVMefFHQZpcyXXEUUPHfy5DwviBcrfqlyqEwlQVw==", + "dev": true, + "requires": { + "eslint-utils": "^1.3.0", + "regexpp": "^2.0.1" + } + }, + "eslint-plugin-import": { + "version": "2.18.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.18.0.tgz", + "integrity": "sha512-PZpAEC4gj/6DEMMoU2Df01C5c50r7zdGIN52Yfi7CvvWaYssG7Jt5R9nFG5gmqodxNOz9vQS87xk6Izdtpdrig==", + "dev": true, + "requires": { + "array-includes": "^3.0.3", + "contains-path": "^0.1.0", + "debug": "^2.6.9", + "doctrine": "1.5.0", + "eslint-import-resolver-node": "^0.3.2", + "eslint-module-utils": "^2.4.0", + "has": "^1.0.3", + "lodash": "^4.17.11", + "minimatch": "^3.0.4", + "read-pkg-up": "^2.0.0", + "resolve": "^1.11.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "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.2", + "parse-json": "^2.2.0", + "pify": "^2.0.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.2.0" + } + }, + "path-parse": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", + "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", + "dev": true + }, + "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.0.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.3.2", + "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.0.0", + "read-pkg": "^2.0.0" + } + }, + "resolve": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.11.1.tgz", + "integrity": "sha512-vIpgF6wfuJOZI7KKKSP+HmiKggadPQAdsp5HiC1mvqnfp0gF1vdwgBWZIdrVft9pgqoMFQN+R7BSWZiBxx+BBw==", + "dev": true, + "requires": { + "path-parse": "^1.0.6" + } + } + } + }, + "eslint-plugin-jsx-a11y": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.2.3.tgz", + "integrity": "sha512-CawzfGt9w83tyuVekn0GDPU9ytYtxyxyFZ3aSWROmnRRFQFT2BiPJd7jvRdzNDi6oLWaS2asMeYSNMjWTV4eNg==", + "dev": true, + "requires": { + "@babel/runtime": "^7.4.5", + "aria-query": "^3.0.0", + "array-includes": "^3.0.3", + "ast-types-flow": "^0.0.7", + "axobject-query": "^2.0.2", + "damerau-levenshtein": "^1.0.4", + "emoji-regex": "^7.0.2", + "has": "^1.0.3", + "jsx-ast-utils": "^2.2.1" + }, + "dependencies": { + "@babel/runtime": { + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.4.5.tgz", + "integrity": "sha512-TuI4qpWZP6lGOGIuGWtp9sPluqYICmbk8T/1vpSysqJxRPkudh/ofFWyqdcMsDf2s7KvDL4/YHgKyvcS3g9CJQ==", + "dev": true, + "requires": { + "regenerator-runtime": "^0.13.2" + } + }, + "regenerator-runtime": { + "version": "0.13.2", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.2.tgz", + "integrity": "sha512-S/TQAZJO+D3m9xeN1WTI8dLKBBiRgXBlTJvbWjCThHWZj9EvHK70Ff50/tYj2J/fvBY6JtFVwRuazHN2E7M9BA==", + "dev": true + } + } + }, + "eslint-plugin-node": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-node/-/eslint-plugin-node-9.1.0.tgz", + "integrity": "sha512-ZwQYGm6EoV2cfLpE1wxJWsfnKUIXfM/KM09/TlorkukgCAwmkgajEJnPCmyzoFPQQkmvo5DrW/nyKutNIw36Mw==", + "dev": true, + "requires": { + "eslint-plugin-es": "^1.4.0", + "eslint-utils": "^1.3.1", + "ignore": "^5.1.1", + "minimatch": "^3.0.4", + "resolve": "^1.10.1", + "semver": "^6.1.0" + }, + "dependencies": { + "ignore": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.2.tgz", + "integrity": "sha512-vdqWBp7MyzdmHkkRWV5nY+PfGRbYbahfuvsBCh277tq+w9zyNi7h5CYJCK0kmzti9kU+O/cB7sE8HvKv6aXAKQ==", + "dev": true + }, + "path-parse": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", + "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", + "dev": true + }, + "resolve": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.11.1.tgz", + "integrity": "sha512-vIpgF6wfuJOZI7KKKSP+HmiKggadPQAdsp5HiC1mvqnfp0gF1vdwgBWZIdrVft9pgqoMFQN+R7BSWZiBxx+BBw==", + "dev": true, + "requires": { + "path-parse": "^1.0.6" + } + }, + "semver": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.2.0.tgz", + "integrity": "sha512-jdFC1VdUGT/2Scgbimf7FSx9iJLXoqfglSF+gJeuNWVpiE37OIbc1jywR/GJyFdz3mnkz2/id0L0J/cr0izR5A==", + "dev": true + } + } + }, + "eslint-plugin-promise": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-4.2.1.tgz", + "integrity": "sha512-VoM09vT7bfA7D+upt+FjeBO5eHIJQBUWki1aPvB+vbNiHS3+oGIJGIeyBtKQTME6UPXXy3vV07OL1tHd3ANuDw==", + "dev": true + }, + "eslint-plugin-react": { + "version": "7.14.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.14.2.tgz", + "integrity": "sha512-jZdnKe3ip7FQOdjxks9XPN0pjUKZYq48OggNMd16Sk+8VXx6JOvXmlElxROCgp7tiUsTsze3jd78s/9AFJP2mA==", + "dev": true, + "requires": { + "array-includes": "^3.0.3", + "doctrine": "^2.1.0", + "has": "^1.0.3", + "jsx-ast-utils": "^2.1.0", + "object.entries": "^1.1.0", + "object.fromentries": "^2.0.0", + "object.values": "^1.1.0", + "prop-types": "^15.7.2", + "resolve": "^1.10.1" + }, + "dependencies": { + "doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "requires": { + "esutils": "^2.0.2" + } + }, + "loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dev": true, + "requires": { + "js-tokens": "^3.0.0 || ^4.0.0" + } + }, + "path-parse": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", + "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", + "dev": true + }, + "prop-types": { + "version": "15.7.2", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz", + "integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==", + "dev": true, + "requires": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.8.1" + } + }, + "resolve": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.11.1.tgz", + "integrity": "sha512-vIpgF6wfuJOZI7KKKSP+HmiKggadPQAdsp5HiC1mvqnfp0gF1vdwgBWZIdrVft9pgqoMFQN+R7BSWZiBxx+BBw==", + "dev": true, + "requires": { + "path-parse": "^1.0.6" + } + } + } + }, + "eslint-plugin-standard": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-standard/-/eslint-plugin-standard-4.0.0.tgz", + "integrity": "sha512-OwxJkR6TQiYMmt1EsNRMe5qG3GsbjlcOhbGUBY4LtavF9DsLaTcoR+j2Tdjqi23oUwKNUqX7qcn5fPStafMdlA==", + "dev": true + }, "eslint-scope": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz", @@ -5217,6 +5877,18 @@ "estraverse": "^4.1.1" } }, + "eslint-utils": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.3.1.tgz", + "integrity": "sha512-Z7YjnIldX+2XMcjr7ZkgEsOj/bREONV60qYeB/bjMAqqqZ4zxKyWX+BOUkdmRmA9riiIPVvo5x86m5elviOk0Q==", + "dev": true + }, + "eslint-visitor-keys": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz", + "integrity": "sha512-qzm/XxIbxm/FHyH341ZrbnMUpe+5Bocte9xkmFMzPMjRaZMcXww+MpBptFvtU+79L362nqiLhekCxCxDPaUMBQ==", + "dev": true + }, "esotope-hammerhead": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/esotope-hammerhead/-/esotope-hammerhead-0.2.1.tgz", @@ -5226,12 +5898,32 @@ "@types/estree": "^0.0.39" } }, + "espree": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-6.0.0.tgz", + "integrity": "sha512-lJvCS6YbCn3ImT3yKkPe0+tJ+mH6ljhGNjHQH9mRtiO6gjhVAOhVXW1yjnwqGwTkK3bGbye+hb00nFNmu0l/1Q==", + "dev": true, + "requires": { + "acorn": "^6.0.7", + "acorn-jsx": "^5.0.0", + "eslint-visitor-keys": "^1.0.0" + } + }, "esprima": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", "dev": true }, + "esquery": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.0.1.tgz", + "integrity": "sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA==", + "dev": true, + "requires": { + "estraverse": "^4.0.0" + } + }, "esrecurse": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz", @@ -7063,6 +7755,12 @@ "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", "dev": true }, + "functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", + "dev": true + }, "gauge": { "version": "2.7.4", "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", @@ -9681,6 +10379,12 @@ } } }, + "json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", + "dev": true + }, "json-stringify-safe": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", @@ -9732,6 +10436,16 @@ "verror": "1.10.0" } }, + "jsx-ast-utils": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-2.2.1.tgz", + "integrity": "sha512-v3FxCcAf20DayI+uxnCuw795+oOIkVu6EnJ1+kSzhqqTZHNkTZ7B66ZgLp4oLJ/gbA64cI0B7WRoHZMSRdyVRQ==", + "dev": true, + "requires": { + "array-includes": "^3.0.3", + "object.assign": "^4.1.0" + } + }, "kew": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/kew/-/kew-0.7.0.tgz", @@ -9798,6 +10512,16 @@ "integrity": "sha1-wuep93IJTe6dNCAq6KzORoeHVYA=", "dev": true }, + "levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "dev": true, + "requires": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + } + }, "liftoff": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/liftoff/-/liftoff-2.5.0.tgz", @@ -9934,6 +10658,12 @@ "resolved": "https://registry.npmjs.org/lodash.topath/-/lodash.topath-4.5.2.tgz", "integrity": "sha1-NhY1Hzu6YZlKCTGYlmC9AyVP0Ak=" }, + "lodash.unescape": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/lodash.unescape/-/lodash.unescape-4.0.1.tgz", + "integrity": "sha1-vyJJiGzlFM2hEvrpIYzcBlIR/Jw=", + "dev": true + }, "log-symbols": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz", @@ -10675,6 +11405,12 @@ "to-regex": "^3.0.1" } }, + "natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", + "dev": true + }, "negotiator": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz", @@ -11306,6 +12042,41 @@ } } }, + "object.entries": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.0.tgz", + "integrity": "sha512-l+H6EQ8qzGRxbkHOd5I/aHRhHDKoQXQ8g0BYt4uSweQU1/J6dZUOyWh9a2Vky35YCKjzmgxOzta2hH6kf9HuXA==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.12.0", + "function-bind": "^1.1.1", + "has": "^1.0.3" + }, + "dependencies": { + "define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "dev": true, + "requires": { + "object-keys": "^1.0.12" + } + } + } + }, + "object.fromentries": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.0.tgz", + "integrity": "sha512-9iLiI6H083uiqUuvzyY6qrlmc/Gz8hLQFOcb/Ri/0xXFkSNS3ctV+CbE6yM2+AnkYfOB3dGjdzC0wrMLIhQICA==", + "dev": true, + "requires": { + "define-properties": "^1.1.2", + "es-abstract": "^1.11.0", + "function-bind": "^1.1.1", + "has": "^1.0.1" + } + }, "object.getownpropertydescriptors": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz", @@ -11438,6 +12209,28 @@ "wordwrap": "~0.0.2" } }, + "optionator": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", + "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", + "dev": true, + "requires": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.4", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "wordwrap": "~1.0.0" + }, + "dependencies": { + "wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", + "dev": true + } + } + }, "optipng-bin": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/optipng-bin/-/optipng-bin-5.1.0.tgz", @@ -11706,6 +12499,23 @@ "no-case": "^2.2.0" } }, + "parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "requires": { + "callsites": "^3.0.0" + }, + "dependencies": { + "callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true + } + } + }, "parse-asn1": { "version": "5.1.4", "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.4.tgz", @@ -12509,6 +13319,12 @@ "integrity": "sha1-h/OPnxj3dKSrTIojL1xc6IcqnRU=", "dev": true }, + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", + "dev": true + }, "prepend-http": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", @@ -13283,6 +14099,12 @@ "safe-regex": "^1.1.0" } }, + "regexpp": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz", + "integrity": "sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==", + "dev": true + }, "regexpu-core": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz", @@ -16311,6 +17133,12 @@ "integrity": "sha1-5tZsVyzhWvJmcGrw/WELKoQd1EM=", "dev": true }, + "text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", + "dev": true + }, "throttleit": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/throttleit/-/throttleit-1.0.0.tgz", @@ -16630,6 +17458,15 @@ "dev": true, "optional": true }, + "type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "dev": true, + "requires": { + "prelude-ls": "~1.1.2" + } + }, "type-detect": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", diff --git a/package.json b/package.json index 6e6376c..5b703df 100644 --- a/package.json +++ b/package.json @@ -26,6 +26,8 @@ "lint": "npm run lint:ts && npm run lint:sass", "lint:ts": "tslint -p tsconfig.json --format stylish --exclude node_modules", "lint:ts:fix": "tslint -p tsconfig.json --format stylish --exclude node_modules --fix", + "lint:es": "eslint './src/**/*.ts*'", + "lint:es:fix": "eslint --fix './src/**/*.ts*'", "lint:sass": "stylelint ./src/**/**/*.scss ./src/**/*.scss ./src/*.scss", "start": "npm run start-dev", "start-dev": "webpack-dev-server --config=configs/webpack/dev.js", @@ -47,6 +49,8 @@ "@types/node": "^10.14.7", "@types/react": "^16.8.18", "@types/react-dom": "^16.8.4", + "@typescript-eslint/eslint-plugin": "^1.11.0", + "@typescript-eslint/parser": "^1.11.0", "awesome-typescript-loader": "^5.2.1", "babel-cli": "^6.26.0", "babel-core": "^6.26.3", @@ -59,6 +63,15 @@ "dotenv": "^6.2.0", "dotenv-webpack": "^1.7.0", "express": "^4.17.0", + "eslint": "^6.0.1", + "eslint-config-airbnb": "^17.1.1", + "eslint-config-standard": "^12.0.0", + "eslint-plugin-import": "^2.18.0", + "eslint-plugin-jsx-a11y": "^6.2.3", + "eslint-plugin-node": "^9.1.0", + "eslint-plugin-promise": "^4.2.1", + "eslint-plugin-react": "^7.14.2", + "eslint-plugin-standard": "^4.0.0", "favicons-webpack-plugin": "0.0.9", "file-loader": "^1.1.11", "fs-extra": "^6.0.1", From 03531b35ed047c40966e35ba5662ee6f837c5e99 Mon Sep 17 00:00:00 2001 From: Aarni Halinen Date: Wed, 3 Jul 2019 00:18:27 +0300 Subject: [PATCH 2/9] Style fixes --- src/components/Accordion/Accordion.tsx | 2 +- src/components/AdminHeader/AdminHeader.tsx | 5 +-- src/components/Button/Button.tsx | 2 +- src/components/Card/Card.tsx | 22 +++++------ .../DatetimeWidget/DatetimeWidget.tsx | 5 ++- src/components/Header/Header.tsx | 9 ++--- src/components/Icon/Icon.tsx | 22 ++++++----- src/components/InfoBox/InfoBox.tsx | 3 +- src/components/MainSection/MainSection.tsx | 1 + .../NavbarDropdownLink/NavbarDropdownLink.tsx | 6 +-- src/components/Navigation/Navigation.tsx | 5 +-- src/components/PageSection/PageSection.tsx | 2 +- .../SignupQuestionsWidget/OptionsWidget.tsx | 2 +- .../SignupQuestionsWidget/Question.tsx | 5 +-- .../SignupQuestionsWidget/QuestionList.tsx | 39 +++++++++---------- src/index.d.ts | 6 +-- src/pages/AdminFeedPage/AdminFeedPage.tsx | 1 - src/pages/ContactsPage/ContactsPage.tsx | 6 ++- src/pages/FeedCreatePage/FeedCreatePage.tsx | 20 +++++----- src/pages/GuildPage/GuildPage.tsx | 2 +- src/pages/InEnglishPage/index.ts | 1 + src/pages/NotFoundPage/NotFoundPage.tsx | 4 +- .../SignupCreatePage/SignupCreatePage.tsx | 22 +++++------ src/routes.tsx | 3 +- src/server/index.ts | 1 + tsconfig.json | 1 + 26 files changed, 99 insertions(+), 98 deletions(-) diff --git a/src/components/Accordion/Accordion.tsx b/src/components/Accordion/Accordion.tsx index d13e300..41db92c 100644 --- a/src/components/Accordion/Accordion.tsx +++ b/src/components/Accordion/Accordion.tsx @@ -35,7 +35,7 @@ class Accordion extends React.Component { const { isOpen } = this.state; return (
- diff --git a/src/components/AdminHeader/AdminHeader.tsx b/src/components/AdminHeader/AdminHeader.tsx index 92df2c2..d4bcc8a 100644 --- a/src/components/AdminHeader/AdminHeader.tsx +++ b/src/components/AdminHeader/AdminHeader.tsx @@ -1,5 +1,4 @@ -import * as React from "react"; -import { Fragment } from "react"; +import React, { Fragment, Component } from "react"; import { Link } from "react-router-dom"; // @ts-ignore import * as TitleImage from "../../assets/img/SIK_RGB_W_side.png"; @@ -8,7 +7,7 @@ import "./AdminHeader.scss"; export interface AdminHeaderProps { } export interface AdminHeaderState { } -class AdminHeader extends React.Component { +class AdminHeader extends Component { render() { return ( diff --git a/src/components/Button/Button.tsx b/src/components/Button/Button.tsx index 66ffaeb..353523d 100644 --- a/src/components/Button/Button.tsx +++ b/src/components/Button/Button.tsx @@ -21,7 +21,7 @@ export default class Button extends React.Component { const { type } = this.props; const className = `button ${buttonClassNames.get(type)}`; return ( - ); diff --git a/src/components/Card/Card.tsx b/src/components/Card/Card.tsx index 68b8d74..d64f578 100644 --- a/src/components/Card/Card.tsx +++ b/src/components/Card/Card.tsx @@ -16,7 +16,7 @@ export interface CardState { } class Card extends React.Component { render() { const { title, text, link, image, button } = this.props; - let options = { + const options = { day: "numeric", month: "numeric", year: "numeric", @@ -38,18 +38,16 @@ class Card extends React.Component {
{button}
); - } else { - return ( -
- {imageElem} -
{datetime}
-
{title}
-
{text}
- {button} -
- ); } - + return ( +
+ {imageElem} +
{datetime}
+
{title}
+
{text}
+ {button} +
+ ); } } diff --git a/src/components/DatetimeWidget/DatetimeWidget.tsx b/src/components/DatetimeWidget/DatetimeWidget.tsx index 13964cc..3bd0c3f 100644 --- a/src/components/DatetimeWidget/DatetimeWidget.tsx +++ b/src/components/DatetimeWidget/DatetimeWidget.tsx @@ -9,13 +9,14 @@ export interface DatetimeWidgetProps { required: boolean; disabled: boolean; } -export interface DatetimeWidgetState {} +export interface DatetimeWidgetState { } class DatetimeWidget extends React.Component { render() { const { value, onChange, onFocus, onBlur, required, disabled } = this.props; - let date, time; + let date; + let time; if (value && value.length !== 0) { let rest; [date, rest] = value.split("T"); diff --git a/src/components/Header/Header.tsx b/src/components/Header/Header.tsx index f9ce678..0971bd8 100644 --- a/src/components/Header/Header.tsx +++ b/src/components/Header/Header.tsx @@ -1,5 +1,4 @@ -import * as React from "react"; -import { Fragment } from "react"; +import React, { Fragment, Component } from "react"; import { Link } from "react-router-dom"; import "./Header.scss"; import NavbarDropdownLink from "../NavbarDropdownLink/NavbarDropdownLink"; @@ -8,12 +7,12 @@ import Navigation from "../Navigation"; // @ts-ignore import * as TitleImage from "../../assets/img/SIK_RGB_W_side.png"; -export interface HeaderProps {} +export interface HeaderProps { } export interface HeaderState { mobileMenuOpen: boolean; } -class Header extends React.Component { +class Header extends Component { constructor(props) { super(props); this.state = { @@ -48,7 +47,7 @@ class Header extends React.Component { Arkisto - + {/* Simo Höglund */} diff --git a/src/components/Icon/Icon.tsx b/src/components/Icon/Icon.tsx index a344bcd..59e3ebb 100644 --- a/src/components/Icon/Icon.tsx +++ b/src/components/Icon/Icon.tsx @@ -13,7 +13,7 @@ export interface IconProps { link?: string; onClick?: (event?: any) => void; } -export interface IconState {} +export interface IconState { } const nameToIcon = (name: IconType): JSX.Element => { if (name === IconType.Facebook) { @@ -25,7 +25,8 @@ const nameToIcon = (name: IconType): JSX.Element => { ); - } else if (name === IconType.Instagram) { + } + if (name === IconType.Instagram) { return ( { ); - } else if (name === IconType.LinkedIn) { + } + if (name === IconType.LinkedIn) { return ( { ); - } else if (name === IconType.HamburgerMenu) { + } + if (name === IconType.HamburgerMenu) { return ( { {elem} ); - } else { - return ( - - {elem} - - ); } + return ( + + {elem} + + ); } } diff --git a/src/components/InfoBox/InfoBox.tsx b/src/components/InfoBox/InfoBox.tsx index 06a2d0e..c395043 100644 --- a/src/components/InfoBox/InfoBox.tsx +++ b/src/components/InfoBox/InfoBox.tsx @@ -8,8 +8,9 @@ class InfoBox extends React.Component { constructor(props: InfoBoxProps) { super(props); } + render() { - const {children} = this.props; + const { children } = this.props; return (
{children} diff --git a/src/components/MainSection/MainSection.tsx b/src/components/MainSection/MainSection.tsx index 473a3e9..48fb711 100644 --- a/src/components/MainSection/MainSection.tsx +++ b/src/components/MainSection/MainSection.tsx @@ -9,6 +9,7 @@ class MainSection extends React.Component { - constructor(props) { super(props); this.state = { diff --git a/src/components/Navigation/Navigation.tsx b/src/components/Navigation/Navigation.tsx index ebbdfef..fbdb9d8 100644 --- a/src/components/Navigation/Navigation.tsx +++ b/src/components/Navigation/Navigation.tsx @@ -1,7 +1,6 @@ -import * as React from "react"; -import { Fragment } from "react"; +import React, { Fragment } from "react"; import "./Navigation.scss"; -import NavbarDropdownLink from "../NavbarDropdownLink/NavbarDropdownLink"; +import NavbarDropdownLink from "../NavbarDropdownLink/NavbarDropdownLink"; import NavbarChildLink from "../NavbarChildLink/NavbarChildLink"; import Icon from "../Icon"; import { IconType } from "../Icon/Icon"; diff --git a/src/components/PageSection/PageSection.tsx b/src/components/PageSection/PageSection.tsx index fc7cb7c..32714eb 100644 --- a/src/components/PageSection/PageSection.tsx +++ b/src/components/PageSection/PageSection.tsx @@ -5,7 +5,7 @@ import ColorDiv, { ColorDivProps } from "../ColorDiv/ColorDiv"; export interface PageSectionProps { center?: boolean; bottomBorder?: boolean; - cardSection?: boolean; // does section contain a grid of cards + cardSection?: boolean; // does section contain a grid of cards fullSize?: boolean; } export interface PageSectionState { } diff --git a/src/components/SignupQuestionsWidget/OptionsWidget.tsx b/src/components/SignupQuestionsWidget/OptionsWidget.tsx index 99933a1..8acf430 100644 --- a/src/components/SignupQuestionsWidget/OptionsWidget.tsx +++ b/src/components/SignupQuestionsWidget/OptionsWidget.tsx @@ -28,7 +28,7 @@ class OptionsWidget extends React.Component { return (
- + {children}
); diff --git a/src/components/SignupQuestionsWidget/QuestionList.tsx b/src/components/SignupQuestionsWidget/QuestionList.tsx index 657b55b..2dea3f3 100644 --- a/src/components/SignupQuestionsWidget/QuestionList.tsx +++ b/src/components/SignupQuestionsWidget/QuestionList.tsx @@ -1,5 +1,4 @@ -import * as React from "react"; -import { Fragment } from "react"; +import React, { Component } from "react"; import * as shortid from "shortid"; import { Draggable } from "react-beautiful-dnd"; import { Question, InputProps, optionTypes, SignupQuestionError } from "./index"; @@ -15,7 +14,7 @@ export interface QuestionListProps { } export interface QuestionListState { } -class QuestionList extends React.Component { +class QuestionList extends Component { renderTextWidget = ({ questions, value, index }: InputProps) => ( ) @@ -45,22 +44,22 @@ class QuestionList extends React.Component const typeSelectWidget = ; return ( - {(provided) => ( -
- ( +
- {nameWidget} - {typeSelectWidget} - {optionsWidget} - -
- )} + + {nameWidget} + {typeSelectWidget} + {optionsWidget} + +
+ )}
); }); @@ -71,8 +70,8 @@ class QuestionList extends React.Component return (
- { this.renderQuestions() } - { placeholder } + {this.renderQuestions()} + {placeholder}
); } diff --git a/src/index.d.ts b/src/index.d.ts index 999d0e9..06ff260 100644 --- a/src/index.d.ts +++ b/src/index.d.ts @@ -1,3 +1,3 @@ -declare module "*.jpeg" { export default '' as string; }; -declare module '*.css' { export default '' as string; }; -declare module '*.png' { export default '' as string; }; \ No newline at end of file +declare module "*.jpeg" { export default "" as string; } +declare module "*.css" { export default "" as string; } +declare module "*.png" { export default "" as string; } diff --git a/src/pages/AdminFeedPage/AdminFeedPage.tsx b/src/pages/AdminFeedPage/AdminFeedPage.tsx index 34d4135..fd897c4 100644 --- a/src/pages/AdminFeedPage/AdminFeedPage.tsx +++ b/src/pages/AdminFeedPage/AdminFeedPage.tsx @@ -103,7 +103,6 @@ class AdminFeedPage extends React.Component diff --git a/src/pages/ContactsPage/ContactsPage.tsx b/src/pages/ContactsPage/ContactsPage.tsx index bb9005b..49c3c21 100644 --- a/src/pages/ContactsPage/ContactsPage.tsx +++ b/src/pages/ContactsPage/ContactsPage.tsx @@ -5,6 +5,10 @@ import { ColorEnum } from "../../components/ColorDiv/ColorDiv"; import { StaticContext } from "../../server/StaticContext"; import PageLink from "../../components/PageLink/PageLink"; import Card from "../../components/Card"; +<<<<<<< HEAD +======= +import { BackgroundColor as PageSectionColor } from "../../components/PageSection/PageSection"; +>>>>>>> Style fixes import PageSection from "../../components/PageSection"; import HeroMainSection from "../../components/HeroMainSection"; import ContactCard from "../../components/ContactCard"; @@ -70,7 +74,7 @@ class ContactsPage extends React.Component

Aalto-yliopiston Sähköinsinöörikilta

lorem ipsum dolor est -

+

{contacts.map(contact => ( diff --git a/src/pages/FeedCreatePage/FeedCreatePage.tsx b/src/pages/FeedCreatePage/FeedCreatePage.tsx index 7f59d2d..7863d50 100644 --- a/src/pages/FeedCreatePage/FeedCreatePage.tsx +++ b/src/pages/FeedCreatePage/FeedCreatePage.tsx @@ -215,17 +215,17 @@ class FeedCreatePage extends React.Component

{title}

- { statusMessage &&
{ statusMessage }
} + {statusMessage &&
{statusMessage}
}
- { error &&
{error}
} + uiSchema={uiSchema} + formData={formData} + idPrefix="rjsf" + widgets={widgets} + onChange={this.onChange} + onSubmit={this.onSubmit} + onError={this.onError} + onFocus={this.onFocus} /> + {error &&
{error}
}
); } diff --git a/src/pages/GuildPage/GuildPage.tsx b/src/pages/GuildPage/GuildPage.tsx index ed09f2a..c3ab058 100644 --- a/src/pages/GuildPage/GuildPage.tsx +++ b/src/pages/GuildPage/GuildPage.tsx @@ -146,7 +146,7 @@ class GuildPage extends React.Component {

Kiltatoimintaa järjestää ja ylläpitää kilta-aktiivit, toimikunnat ja jaokset.

-
+
Miksi alkaa kilta-aktiiviksi?

diff --git a/src/pages/InEnglishPage/index.ts b/src/pages/InEnglishPage/index.ts index 0022fc0..8238ed1 100644 --- a/src/pages/InEnglishPage/index.ts +++ b/src/pages/InEnglishPage/index.ts @@ -1,2 +1,3 @@ import InEnglishPage from "./InEnglishPage"; + export default InEnglishPage; diff --git a/src/pages/NotFoundPage/NotFoundPage.tsx b/src/pages/NotFoundPage/NotFoundPage.tsx index faa725f..0108242 100644 --- a/src/pages/NotFoundPage/NotFoundPage.tsx +++ b/src/pages/NotFoundPage/NotFoundPage.tsx @@ -2,9 +2,9 @@ import * as React from "react"; import Helmet from "react-helmet"; import "./NotFoundPage.scss"; -export interface NotFoundPageProps {} +export interface NotFoundPageProps { } - class NotFoundPage extends React.Component { +class NotFoundPage extends React.Component { render() { return (

diff --git a/src/pages/SignupCreatePage/SignupCreatePage.tsx b/src/pages/SignupCreatePage/SignupCreatePage.tsx index e00b3d7..c893a0d 100644 --- a/src/pages/SignupCreatePage/SignupCreatePage.tsx +++ b/src/pages/SignupCreatePage/SignupCreatePage.tsx @@ -137,7 +137,7 @@ class SignupCreatePage extends React.Component

{title}

- { statusMessage &&
{ statusMessage }
} + {statusMessage &&
{statusMessage}
} - { error &&
{error}
} + uiSchema={uiSchema} + formData={formData} + idPrefix="rjsf" + widgets={widgets} + onChange={this.onChange} + onSubmit={this.onSubmit} + onError={this.onError} + onFocus={this.onFocus} /> + {error &&
{error}
}
); } diff --git a/src/routes.tsx b/src/routes.tsx index 46d5598..6494f6b 100644 --- a/src/routes.tsx +++ b/src/routes.tsx @@ -1,5 +1,4 @@ -import * as React from "react"; -import { Component, Fragment } from "react"; +import React, { Component, Fragment } from "react"; import { Switch, Route, Redirect } from "react-router-dom"; import Helmet from "react-helmet"; import FrontPage from "./pages/FrontPage"; diff --git a/src/server/index.ts b/src/server/index.ts index f6e604c..399059e 100644 --- a/src/server/index.ts +++ b/src/server/index.ts @@ -7,6 +7,7 @@ import * as helmet from "helmet"; import * as compression from "compression"; import * as dotenv from "dotenv"; + dotenv.config(); console.log(`API_URL: ${process.env.API_URL}`); diff --git a/tsconfig.json b/tsconfig.json index d6dfe84..b59b044 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,5 +1,6 @@ { "compilerOptions": { + "esModuleInterop": true, "outDir": "./dist/", "sourceMap": true, "noImplicitAny": false, From 734626f438fb471f3d872520c200ba65cf594014 Mon Sep 17 00:00:00 2001 From: Aarni Halinen Date: Wed, 3 Jul 2019 00:30:08 +0300 Subject: [PATCH 3/9] Remove esmodule interop --- src/components/AdminHeader/AdminHeader.tsx | 8 ++++---- src/components/Header/Header.tsx | 16 ++++++++-------- .../NavbarDropdownLink/NavbarDropdownLink.tsx | 6 +++--- src/components/Navigation/Navigation.tsx | 6 +++--- .../SignupQuestionsWidget/Question.tsx | 4 ++-- .../SignupQuestionsWidget/QuestionList.tsx | 4 ++-- src/routes.tsx | 8 ++++---- tsconfig.json | 1 - 8 files changed, 26 insertions(+), 27 deletions(-) diff --git a/src/components/AdminHeader/AdminHeader.tsx b/src/components/AdminHeader/AdminHeader.tsx index d4bcc8a..c19455e 100644 --- a/src/components/AdminHeader/AdminHeader.tsx +++ b/src/components/AdminHeader/AdminHeader.tsx @@ -1,4 +1,4 @@ -import React, { Fragment, Component } from "react"; +import * as React from "react"; import { Link } from "react-router-dom"; // @ts-ignore import * as TitleImage from "../../assets/img/SIK_RGB_W_side.png"; @@ -7,17 +7,17 @@ import "./AdminHeader.scss"; export interface AdminHeaderProps { } export interface AdminHeaderState { } -class AdminHeader extends Component { +class AdminHeader extends React.Component { render() { return ( - +
Admin panel
-
+ ); } } diff --git a/src/components/Header/Header.tsx b/src/components/Header/Header.tsx index 0971bd8..8401756 100644 --- a/src/components/Header/Header.tsx +++ b/src/components/Header/Header.tsx @@ -1,4 +1,4 @@ -import React, { Fragment, Component } from "react"; +import * as React from "react"; import { Link } from "react-router-dom"; import "./Header.scss"; import NavbarDropdownLink from "../NavbarDropdownLink/NavbarDropdownLink"; @@ -12,7 +12,7 @@ export interface HeaderState { mobileMenuOpen: boolean; } -class Header extends Component { +class Header extends React.Component { constructor(props) { super(props); this.state = { @@ -22,7 +22,7 @@ class Header extends Component { renderNavigationDesktopItems = () => { return ( - + Toiminta Fuksi @@ -34,13 +34,13 @@ class Header extends Component { {/* Simo Höglund */} - + ); } renderNavigationMobileItems = () => { return ( - + Toiminta Fuksi @@ -52,7 +52,7 @@ class Header extends Component { {/* Simo Höglund */} - + ); } @@ -68,7 +68,7 @@ class Header extends Component { const { mobileMenuOpen } = this.state; return ( - +
@@ -81,7 +81,7 @@ class Header extends Component { - + ); } } diff --git a/src/components/NavbarDropdownLink/NavbarDropdownLink.tsx b/src/components/NavbarDropdownLink/NavbarDropdownLink.tsx index 6c7e017..f6aebf7 100644 --- a/src/components/NavbarDropdownLink/NavbarDropdownLink.tsx +++ b/src/components/NavbarDropdownLink/NavbarDropdownLink.tsx @@ -1,4 +1,4 @@ -import React, { Fragment } from "react"; +import * as React from "react"; import "./NavbarDropdownLink.scss"; import DropDownBox from "../DropDownBox/DropDownBox"; import Anchor from "../Anchor"; @@ -53,12 +53,12 @@ class NavbarDropdownLink extends React.Component + {text} {children} - + ); } diff --git a/src/components/Navigation/Navigation.tsx b/src/components/Navigation/Navigation.tsx index fbdb9d8..0498e80 100644 --- a/src/components/Navigation/Navigation.tsx +++ b/src/components/Navigation/Navigation.tsx @@ -1,4 +1,4 @@ -import React, { Fragment } from "react"; +import * as React from "react"; import "./Navigation.scss"; import NavbarDropdownLink from "../NavbarDropdownLink/NavbarDropdownLink"; import NavbarChildLink from "../NavbarChildLink/NavbarChildLink"; @@ -30,7 +30,7 @@ class Navigation extends React.Component { const { menuOpen } = this.state; const { items } = this.props; return ( - +
{items}
@@ -42,7 +42,7 @@ class Navigation extends React.Component {
-
+ ); } } diff --git a/src/components/SignupQuestionsWidget/Question.tsx b/src/components/SignupQuestionsWidget/Question.tsx index b8b2c08..5aaa5db 100644 --- a/src/components/SignupQuestionsWidget/Question.tsx +++ b/src/components/SignupQuestionsWidget/Question.tsx @@ -1,11 +1,11 @@ -import React, { Component } from "react"; +import * as React from "react"; export interface QuestionProps { children: any; onRemove: () => any; } -class Question extends Component { +class Question extends React.Component { render() { const { children, onRemove } = this.props; diff --git a/src/components/SignupQuestionsWidget/QuestionList.tsx b/src/components/SignupQuestionsWidget/QuestionList.tsx index 2dea3f3..9ae47f3 100644 --- a/src/components/SignupQuestionsWidget/QuestionList.tsx +++ b/src/components/SignupQuestionsWidget/QuestionList.tsx @@ -1,4 +1,4 @@ -import React, { Component } from "react"; +import * as React from "react"; import * as shortid from "shortid"; import { Draggable } from "react-beautiful-dnd"; import { Question, InputProps, optionTypes, SignupQuestionError } from "./index"; @@ -14,7 +14,7 @@ export interface QuestionListProps { } export interface QuestionListState { } -class QuestionList extends Component { +class QuestionList extends React.Component { renderTextWidget = ({ questions, value, index }: InputProps) => ( ) diff --git a/src/routes.tsx b/src/routes.tsx index 6494f6b..9cb3d21 100644 --- a/src/routes.tsx +++ b/src/routes.tsx @@ -1,4 +1,4 @@ -import React, { Component, Fragment } from "react"; +import * as React from "react"; import { Switch, Route, Redirect } from "react-router-dom"; import Helmet from "react-helmet"; import FrontPage from "./pages/FrontPage"; @@ -68,10 +68,10 @@ const adminRoutes = [ { path: "/admin", page: AdminFrontPage }, ]; -class Routes extends Component { +class Routes extends React.Component { render() { return ( - + Aalto-yliopiston Sähköinsinoorikilta ry @@ -89,7 +89,7 @@ class Routes extends Component { {adminRoutes.map(r => )} - + ); } } diff --git a/tsconfig.json b/tsconfig.json index b59b044..d6dfe84 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,6 +1,5 @@ { "compilerOptions": { - "esModuleInterop": true, "outDir": "./dist/", "sourceMap": true, "noImplicitAny": false, From 2e511a9ccf4e9889a3ae61c18bf6d082495d87fc Mon Sep 17 00:00:00 2001 From: Aarni Halinen Date: Fri, 5 Jul 2019 00:10:45 +0300 Subject: [PATCH 4/9] Fix rebase shit --- src/pages/ContactsPage/ContactsPage.tsx | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/pages/ContactsPage/ContactsPage.tsx b/src/pages/ContactsPage/ContactsPage.tsx index 49c3c21..5acb731 100644 --- a/src/pages/ContactsPage/ContactsPage.tsx +++ b/src/pages/ContactsPage/ContactsPage.tsx @@ -5,10 +5,6 @@ import { ColorEnum } from "../../components/ColorDiv/ColorDiv"; import { StaticContext } from "../../server/StaticContext"; import PageLink from "../../components/PageLink/PageLink"; import Card from "../../components/Card"; -<<<<<<< HEAD -======= -import { BackgroundColor as PageSectionColor } from "../../components/PageSection/PageSection"; ->>>>>>> Style fixes import PageSection from "../../components/PageSection"; import HeroMainSection from "../../components/HeroMainSection"; import ContactCard from "../../components/ContactCard"; From f1fdcf585ab2fbca3ef8db4c811b1508b0747cd6 Mon Sep 17 00:00:00 2001 From: Aarni Halinen Date: Fri, 5 Jul 2019 00:19:08 +0300 Subject: [PATCH 5/9] Fix rebase style changes --- .eslintrc.json | 1 + src/components/ColorDiv/ColorDiv.tsx | 2 +- src/components/HeroAsideSection/HeroAsideSection.tsx | 2 +- src/pages/GuildPage/GuildPage.tsx | 4 ++-- 4 files changed, 5 insertions(+), 4 deletions(-) diff --git a/.eslintrc.json b/.eslintrc.json index 7cfec58..34963e6 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -41,6 +41,7 @@ "consistent-return": "warn", "dot-notation": "warn", "global-require": "warn", + "linebreak-style": "off", "max-len": [ "off", 160 diff --git a/src/components/ColorDiv/ColorDiv.tsx b/src/components/ColorDiv/ColorDiv.tsx index de07fb3..c7209aa 100644 --- a/src/components/ColorDiv/ColorDiv.tsx +++ b/src/components/ColorDiv/ColorDiv.tsx @@ -60,7 +60,7 @@ class ColorDiv extends React.Component { if (hoverColor !== undefined) classNames.push(getHoverColor(hoverColor)); if (backgroundHoverColor !== undefined) classNames.push(getBgHoverColor(backgroundHoverColor)); return ( -
+
{children}
); diff --git a/src/components/HeroAsideSection/HeroAsideSection.tsx b/src/components/HeroAsideSection/HeroAsideSection.tsx index 3693afb..d47f6ed 100644 --- a/src/components/HeroAsideSection/HeroAsideSection.tsx +++ b/src/components/HeroAsideSection/HeroAsideSection.tsx @@ -8,7 +8,7 @@ export interface HeroAsideSectionState { } class HeroAsideSection extends React.Component { render() { - const className = `hero-aside-section`; + const className = "hero-aside-section"; return (
diff --git a/src/pages/GuildPage/GuildPage.tsx b/src/pages/GuildPage/GuildPage.tsx index c3ab058..fd54614 100644 --- a/src/pages/GuildPage/GuildPage.tsx +++ b/src/pages/GuildPage/GuildPage.tsx @@ -94,7 +94,7 @@ class GuildPage extends React.Component { Teekkariuteen kuuluu olennaisena osana mukautuminen ajan vaatimuksiin. Jos asiat tehtäisiin aina vanhaa toistaen, ei voitaisi enää edes puhua teekkariudesta.

- +
Yliopiston jäsenedut @@ -168,7 +168,7 @@ class GuildPage extends React.Component { Killassa on todella monenlaisia tehtäviä. Olitpa koodaaja, urheilija tai ammattimainen juhlija, killasta löytyy tekemistä juuri sinulle. Toimikunnissa sitoudut toimintaan vuodeksi kerrallaan. Jaostoiminta mahdollistaa kiltatoiminnan kokeilun pienemmässä mittakaavassa. Tehtäväkuvaukset lorem ipsum dolor sit amet alla. Jos ei löydy sopivaa lorem ipsum dolor sit amet, voit perustaa myös oman.

- » Haluatko valtuustoon, hallitukseen tai toimariksi? + » Haluatko valtuustoon, hallitukseen tai toimariksi?

» Toimihenkilönä pääset edistämään opintoja From d82af50d37b608dd896182ca45bf4c3903f5835b Mon Sep 17 00:00:00 2001 From: Aarni Halinen Date: Fri, 5 Jul 2019 00:42:39 +0300 Subject: [PATCH 6/9] Tweak ESLint rules --- .eslintrc.json | 23 ++++++++++------------- src/pages/FrontPage/FrontPage.tsx | 4 ++-- 2 files changed, 12 insertions(+), 15 deletions(-) diff --git a/.eslintrc.json b/.eslintrc.json index 34963e6..18d2876 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -5,7 +5,7 @@ "node": true }, "extends": [ - "airbnb" + "eslint:recommended" ], "globals": { "Atomics": "readonly", @@ -25,9 +25,7 @@ "@typescript-eslint" ], "rules": { - "arrow-body-style": "off", - "arrow-parens": "off", - "camelcase": "off", + "arrow-parens": ["off", "always"], "comma-dangle": [ "error", { @@ -39,19 +37,22 @@ } ], "consistent-return": "warn", - "dot-notation": "warn", "global-require": "warn", "linebreak-style": "off", "max-len": [ "off", 160 ], - "no-console": "off", + "no-console": "warn", "no-extra-boolean-cast": "warn", - "no-param-reassign": "warn", + "no-param-reassign": "error", "no-shadow": "warn", - "no-unused-vars": "off", + "no-unused-vars": "warn", "no-useless-constructor": "warn", + "object-curly-newline": "error", + "prefer-destructuring": "warn", + "prefer-template": "error", + "quote-props": ["error", "consistent"], "quotes": [ "error", "double" @@ -62,10 +63,6 @@ "import/no-extraneous-dependencies": "off", "import/newline-after-import": "off", "import/prefer-default-export": "off", - "prefer-destructuring": "off", - "prefer-template": "off", - "object-curly-newline": "off", - "quote-props": "off", "jsx-a11y/anchor-is-valid": "off", "jsx-a11y/alt-text": "off", "jsx-a11y/click-events-have-key-events": "off", @@ -87,4 +84,4 @@ "react/prefer-stateless-function": "off", "react/self-closing-comp": "off" } -} +} \ No newline at end of file diff --git a/src/pages/FrontPage/FrontPage.tsx b/src/pages/FrontPage/FrontPage.tsx index 0a88046..7efaaea 100644 --- a/src/pages/FrontPage/FrontPage.tsx +++ b/src/pages/FrontPage/FrontPage.tsx @@ -143,7 +143,7 @@ class FrontPage extends React.Component { title={event.title} start_time={event.start_time} text={event.description} - link={"/events/" + event.id} + link={`/events/${event.id}`} image={BeerImage} button={