diff options
author | Markus Hatvan <markus_hatvan@aon.at> | 2021-10-15 09:48:06 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-10-15 09:48:06 +0200 |
commit | 14d2364fc69e0222133115c55a36286986006098 (patch) | |
tree | 9e9b3c41ef742bbe87ca1632b292c67043051957 | |
parent | 5.6.3-nightly.34 [skip ci] (diff) | |
download | ferdium-app-14d2364fc69e0222133115c55a36286986006098.tar.gz ferdium-app-14d2364fc69e0222133115c55a36286986006098.tar.zst ferdium-app-14d2364fc69e0222133115c55a36286986006098.zip |
chore: update eslint setup (#2074)
67 files changed, 1065 insertions, 1030 deletions
diff --git a/.eslintrc.js b/.eslintrc.js index 491faff37..dd50364d0 100644 --- a/.eslintrc.js +++ b/.eslintrc.js | |||
@@ -9,8 +9,8 @@ module.exports = { | |||
9 | sourceType: 'module', | 9 | sourceType: 'module', |
10 | project: './tsconfig.json', | 10 | project: './tsconfig.json', |
11 | }, | 11 | }, |
12 | extends: ['eslint-config-airbnb', 'plugin:unicorn/recommended'], | 12 | extends: ['airbnb', 'plugin:unicorn/recommended', 'prettier'], |
13 | plugins: ['jest'], | 13 | plugins: ['jest', 'prettier'], |
14 | settings: { | 14 | settings: { |
15 | react: { | 15 | react: { |
16 | pragma: 'React', // Pragma to use, default to "React" | 16 | pragma: 'React', // Pragma to use, default to "React" |
@@ -18,14 +18,8 @@ module.exports = { | |||
18 | }, | 18 | }, |
19 | }, | 19 | }, |
20 | globals: { | 20 | globals: { |
21 | window: true, | 21 | // TODO: can be removed once adonisj migration is done |
22 | document: true, | ||
23 | FormData: true, | ||
24 | localStorage: true, | ||
25 | navigator: true, | ||
26 | Element: true, | ||
27 | use: true, | 22 | use: true, |
28 | FileReader: true, | ||
29 | }, | 23 | }, |
30 | env: { | 24 | env: { |
31 | browser: true, | 25 | browser: true, |
@@ -36,9 +30,9 @@ module.exports = { | |||
36 | overrides: [ | 30 | overrides: [ |
37 | { | 31 | { |
38 | files: ['**/*.ts', '**/*.tsx'], | 32 | files: ['**/*.ts', '**/*.tsx'], |
39 | extends: ['airbnb-typescript', 'plugin:unicorn/recommended'], | 33 | extends: ['airbnb-typescript', 'plugin:unicorn/recommended', 'prettier'], |
40 | parser: '@typescript-eslint/parser', | 34 | parser: '@typescript-eslint/parser', |
41 | plugins: ['@typescript-eslint'], | 35 | plugins: ['@typescript-eslint', 'jest', 'prettier'], |
42 | rules: { | 36 | rules: { |
43 | // eslint | 37 | // eslint |
44 | 'arrow-parens': 0, | 38 | 'arrow-parens': 0, |
@@ -121,6 +115,8 @@ module.exports = { | |||
121 | }, | 115 | }, |
122 | ], | 116 | ], |
123 | 'unicorn/consistent-destructuring': 0, | 117 | 'unicorn/consistent-destructuring': 0, |
118 | // eslint-plugin-prettier | ||
119 | 'prettier/prettier': 1, | ||
124 | }, | 120 | }, |
125 | }, | 121 | }, |
126 | ], | 122 | ], |
@@ -188,5 +184,7 @@ module.exports = { | |||
188 | }, | 184 | }, |
189 | ], | 185 | ], |
190 | 'unicorn/consistent-destructuring': 0, | 186 | 'unicorn/consistent-destructuring': 0, |
187 | // eslint-plugin-prettier | ||
188 | 'prettier/prettier': 1, | ||
191 | }, | 189 | }, |
192 | }; | 190 | }; |
diff --git a/package-lock.json b/package-lock.json index 4f49e3995..5d036e341 100644 --- a/package-lock.json +++ b/package-lock.json | |||
@@ -335,9 +335,9 @@ | |||
335 | } | 335 | } |
336 | }, | 336 | }, |
337 | "@babel/eslint-parser": { | 337 | "@babel/eslint-parser": { |
338 | "version": "7.15.7", | 338 | "version": "7.15.8", |
339 | "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.15.7.tgz", | 339 | "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.15.8.tgz", |
340 | "integrity": "sha512-yJkHyomClm6A2Xzb8pdAo4HzYMSXFn1O5zrCYvbFP0yQFvHueLedV8WiEno8yJOKStjUXzBZzJFeWQ7b3YMsqQ==", | 340 | "integrity": "sha512-fYP7QFngCvgxjUuw8O057SVH5jCXsbFFOoE77CFDcvzwBVgTOkMD/L4mIC5Ud1xf8chK/no2fRbSSn1wvNmKuQ==", |
341 | "dev": true, | 341 | "dev": true, |
342 | "requires": { | 342 | "requires": { |
343 | "eslint-scope": "^5.1.1", | 343 | "eslint-scope": "^5.1.1", |
@@ -3366,14 +3366,14 @@ | |||
3366 | } | 3366 | } |
3367 | }, | 3367 | }, |
3368 | "@eslint/eslintrc": { | 3368 | "@eslint/eslintrc": { |
3369 | "version": "0.4.3", | 3369 | "version": "1.0.3", |
3370 | "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.3.tgz", | 3370 | "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.0.3.tgz", |
3371 | "integrity": "sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==", | 3371 | "integrity": "sha512-DHI1wDPoKCBPoLZA3qDR91+3te/wDSc1YhKg3jR8NxKKRJq2hwHwcWv31cSwSYvIBrmbENoYMWcenW8uproQqg==", |
3372 | "dev": true, | 3372 | "dev": true, |
3373 | "requires": { | 3373 | "requires": { |
3374 | "ajv": "^6.12.4", | 3374 | "ajv": "^6.12.4", |
3375 | "debug": "^4.1.1", | 3375 | "debug": "^4.3.2", |
3376 | "espree": "^7.3.0", | 3376 | "espree": "^9.0.0", |
3377 | "globals": "^13.9.0", | 3377 | "globals": "^13.9.0", |
3378 | "ignore": "^4.0.6", | 3378 | "ignore": "^4.0.6", |
3379 | "import-fresh": "^3.2.1", | 3379 | "import-fresh": "^3.2.1", |
@@ -3392,9 +3392,9 @@ | |||
3392 | } | 3392 | } |
3393 | }, | 3393 | }, |
3394 | "globals": { | 3394 | "globals": { |
3395 | "version": "13.10.0", | 3395 | "version": "13.11.0", |
3396 | "resolved": "https://registry.npmjs.org/globals/-/globals-13.10.0.tgz", | 3396 | "resolved": "https://registry.npmjs.org/globals/-/globals-13.11.0.tgz", |
3397 | "integrity": "sha512-piHC3blgLGFjvOuMmWZX60f+na1lXFDhQXBf1UYp2fXPXqvEUbOhNwi6BsQ0bQishwedgnjkwv1d9zKf+MWw3g==", | 3397 | "integrity": "sha512-08/xrJ7wQjK9kkkRoI3OFUBbLx4f+6x3SGwcPvQ0QH6goFDrOU2oyAWrmh3dJezu65buo+HBMzAMQy6rovVC3g==", |
3398 | "dev": true, | 3398 | "dev": true, |
3399 | "requires": { | 3399 | "requires": { |
3400 | "type-fest": "^0.20.2" | 3400 | "type-fest": "^0.20.2" |
@@ -3673,9 +3673,9 @@ | |||
3673 | } | 3673 | } |
3674 | }, | 3674 | }, |
3675 | "@humanwhocodes/config-array": { | 3675 | "@humanwhocodes/config-array": { |
3676 | "version": "0.5.0", | 3676 | "version": "0.6.0", |
3677 | "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.5.0.tgz", | 3677 | "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.6.0.tgz", |
3678 | "integrity": "sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==", | 3678 | "integrity": "sha512-JQlEKbcgEUjBFhLIF4iqM7u/9lwgHRBcpHrmUNCALK0Q3amXN6lxdoXLnF0sm11E9VqTmBALR87IlUg1bZ8A9A==", |
3679 | "dev": true, | 3679 | "dev": true, |
3680 | "requires": { | 3680 | "requires": { |
3681 | "@humanwhocodes/object-schema": "^1.2.0", | 3681 | "@humanwhocodes/object-schema": "^1.2.0", |
@@ -7973,188 +7973,71 @@ | |||
7973 | "dev": true | 7973 | "dev": true |
7974 | }, | 7974 | }, |
7975 | "@typescript-eslint/eslint-plugin": { | 7975 | "@typescript-eslint/eslint-plugin": { |
7976 | "version": "4.31.2", | 7976 | "version": "5.0.0", |
7977 | "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.31.2.tgz", | 7977 | "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.0.0.tgz", |
7978 | "integrity": "sha512-w63SCQ4bIwWN/+3FxzpnWrDjQRXVEGiTt9tJTRptRXeFvdZc/wLiz3FQUwNQ2CVoRGI6KUWMNUj/pk63noUfcA==", | 7978 | "integrity": "sha512-T6V6fCD2U0YesOedvydTnrNtsC8E+c2QzpawIpDdlaObX0OX5dLo7tLU5c64FhTZvA1Xrdim+cXDI7NPsVx8Cg==", |
7979 | "dev": true, | 7979 | "dev": true, |
7980 | "requires": { | 7980 | "requires": { |
7981 | "@typescript-eslint/experimental-utils": "4.31.2", | 7981 | "@typescript-eslint/experimental-utils": "5.0.0", |
7982 | "@typescript-eslint/scope-manager": "4.31.2", | 7982 | "@typescript-eslint/scope-manager": "5.0.0", |
7983 | "debug": "^4.3.1", | 7983 | "debug": "^4.3.1", |
7984 | "functional-red-black-tree": "^1.0.1", | 7984 | "functional-red-black-tree": "^1.0.1", |
7985 | "ignore": "^5.1.8", | ||
7985 | "regexpp": "^3.1.0", | 7986 | "regexpp": "^3.1.0", |
7986 | "semver": "^7.3.5", | 7987 | "semver": "^7.3.5", |
7987 | "tsutils": "^3.21.0" | 7988 | "tsutils": "^3.21.0" |
7988 | }, | ||
7989 | "dependencies": { | ||
7990 | "@typescript-eslint/experimental-utils": { | ||
7991 | "version": "4.31.2", | ||
7992 | "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.31.2.tgz", | ||
7993 | "integrity": "sha512-3tm2T4nyA970yQ6R3JZV9l0yilE2FedYg8dcXrTar34zC9r6JB7WyBQbpIVongKPlhEMjhQ01qkwrzWy38Bk1Q==", | ||
7994 | "dev": true, | ||
7995 | "requires": { | ||
7996 | "@types/json-schema": "^7.0.7", | ||
7997 | "@typescript-eslint/scope-manager": "4.31.2", | ||
7998 | "@typescript-eslint/types": "4.31.2", | ||
7999 | "@typescript-eslint/typescript-estree": "4.31.2", | ||
8000 | "eslint-scope": "^5.1.1", | ||
8001 | "eslint-utils": "^3.0.0" | ||
8002 | } | ||
8003 | }, | ||
8004 | "@typescript-eslint/scope-manager": { | ||
8005 | "version": "4.31.2", | ||
8006 | "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.31.2.tgz", | ||
8007 | "integrity": "sha512-2JGwudpFoR/3Czq6mPpE8zBPYdHWFGL6lUNIGolbKQeSNv4EAiHaR5GVDQaLA0FwgcdcMtRk+SBJbFGL7+La5w==", | ||
8008 | "dev": true, | ||
8009 | "requires": { | ||
8010 | "@typescript-eslint/types": "4.31.2", | ||
8011 | "@typescript-eslint/visitor-keys": "4.31.2" | ||
8012 | } | ||
8013 | }, | ||
8014 | "@typescript-eslint/types": { | ||
8015 | "version": "4.31.2", | ||
8016 | "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.31.2.tgz", | ||
8017 | "integrity": "sha512-kWiTTBCTKEdBGrZKwFvOlGNcAsKGJSBc8xLvSjSppFO88AqGxGNYtF36EuEYG6XZ9vT0xX8RNiHbQUKglbSi1w==", | ||
8018 | "dev": true | ||
8019 | }, | ||
8020 | "@typescript-eslint/typescript-estree": { | ||
8021 | "version": "4.31.2", | ||
8022 | "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.31.2.tgz", | ||
8023 | "integrity": "sha512-ieBq8U9at6PvaC7/Z6oe8D3czeW5d//Fo1xkF/s9394VR0bg/UaMYPdARiWyKX+lLEjY3w/FNZJxitMsiWv+wA==", | ||
8024 | "dev": true, | ||
8025 | "requires": { | ||
8026 | "@typescript-eslint/types": "4.31.2", | ||
8027 | "@typescript-eslint/visitor-keys": "4.31.2", | ||
8028 | "debug": "^4.3.1", | ||
8029 | "globby": "^11.0.3", | ||
8030 | "is-glob": "^4.0.1", | ||
8031 | "semver": "^7.3.5", | ||
8032 | "tsutils": "^3.21.0" | ||
8033 | } | ||
8034 | }, | ||
8035 | "@typescript-eslint/visitor-keys": { | ||
8036 | "version": "4.31.2", | ||
8037 | "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.31.2.tgz", | ||
8038 | "integrity": "sha512-PrBId7EQq2Nibns7dd/ch6S6/M4/iwLM9McbgeEbCXfxdwRUNxJ4UNreJ6Gh3fI2GNKNrWnQxKL7oCPmngKBug==", | ||
8039 | "dev": true, | ||
8040 | "requires": { | ||
8041 | "@typescript-eslint/types": "4.31.2", | ||
8042 | "eslint-visitor-keys": "^2.0.0" | ||
8043 | } | ||
8044 | }, | ||
8045 | "is-glob": { | ||
8046 | "version": "4.0.1", | ||
8047 | "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", | ||
8048 | "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", | ||
8049 | "dev": true, | ||
8050 | "requires": { | ||
8051 | "is-extglob": "^2.1.1" | ||
8052 | } | ||
8053 | } | ||
8054 | } | 7989 | } |
8055 | }, | 7990 | }, |
8056 | "@typescript-eslint/experimental-utils": { | 7991 | "@typescript-eslint/experimental-utils": { |
8057 | "version": "4.28.5", | 7992 | "version": "5.0.0", |
8058 | "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.28.5.tgz", | 7993 | "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-5.0.0.tgz", |
8059 | "integrity": "sha512-bGPLCOJAa+j49hsynTaAtQIWg6uZd8VLiPcyDe4QPULsvQwLHGLSGKKcBN8/lBxIX14F74UEMK2zNDI8r0okwA==", | 7994 | "integrity": "sha512-Dnp4dFIsZcPawD6CT1p5NibNUQyGSEz80sULJZkyhyna8AEqArmfwMwJPbmKzWVo4PabqNVzHYlzmcdLQWk+pg==", |
8060 | "dev": true, | 7995 | "dev": true, |
8061 | "requires": { | 7996 | "requires": { |
8062 | "@types/json-schema": "^7.0.7", | 7997 | "@types/json-schema": "^7.0.7", |
8063 | "@typescript-eslint/scope-manager": "4.28.5", | 7998 | "@typescript-eslint/scope-manager": "5.0.0", |
8064 | "@typescript-eslint/types": "4.28.5", | 7999 | "@typescript-eslint/types": "5.0.0", |
8065 | "@typescript-eslint/typescript-estree": "4.28.5", | 8000 | "@typescript-eslint/typescript-estree": "5.0.0", |
8066 | "eslint-scope": "^5.1.1", | 8001 | "eslint-scope": "^5.1.1", |
8067 | "eslint-utils": "^3.0.0" | 8002 | "eslint-utils": "^3.0.0" |
8068 | } | 8003 | } |
8069 | }, | 8004 | }, |
8070 | "@typescript-eslint/parser": { | 8005 | "@typescript-eslint/parser": { |
8071 | "version": "4.31.2", | 8006 | "version": "5.0.0", |
8072 | "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.31.2.tgz", | 8007 | "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.0.0.tgz", |
8073 | "integrity": "sha512-EcdO0E7M/sv23S/rLvenHkb58l3XhuSZzKf6DBvLgHqOYdL6YFMYVtreGFWirxaU2mS1GYDby3Lyxco7X5+Vjw==", | 8008 | "integrity": "sha512-B6D5rmmQ14I1fdzs71eL3DAuvnPHTY/t7rQABrL9BLnx/H51Un8ox1xqYAchs0/V2trcoyxB1lMJLlrwrJCDgw==", |
8074 | "dev": true, | 8009 | "dev": true, |
8075 | "requires": { | 8010 | "requires": { |
8076 | "@typescript-eslint/scope-manager": "4.31.2", | 8011 | "@typescript-eslint/scope-manager": "5.0.0", |
8077 | "@typescript-eslint/types": "4.31.2", | 8012 | "@typescript-eslint/types": "5.0.0", |
8078 | "@typescript-eslint/typescript-estree": "4.31.2", | 8013 | "@typescript-eslint/typescript-estree": "5.0.0", |
8079 | "debug": "^4.3.1" | 8014 | "debug": "^4.3.1" |
8080 | }, | ||
8081 | "dependencies": { | ||
8082 | "@typescript-eslint/scope-manager": { | ||
8083 | "version": "4.31.2", | ||
8084 | "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.31.2.tgz", | ||
8085 | "integrity": "sha512-2JGwudpFoR/3Czq6mPpE8zBPYdHWFGL6lUNIGolbKQeSNv4EAiHaR5GVDQaLA0FwgcdcMtRk+SBJbFGL7+La5w==", | ||
8086 | "dev": true, | ||
8087 | "requires": { | ||
8088 | "@typescript-eslint/types": "4.31.2", | ||
8089 | "@typescript-eslint/visitor-keys": "4.31.2" | ||
8090 | } | ||
8091 | }, | ||
8092 | "@typescript-eslint/types": { | ||
8093 | "version": "4.31.2", | ||
8094 | "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.31.2.tgz", | ||
8095 | "integrity": "sha512-kWiTTBCTKEdBGrZKwFvOlGNcAsKGJSBc8xLvSjSppFO88AqGxGNYtF36EuEYG6XZ9vT0xX8RNiHbQUKglbSi1w==", | ||
8096 | "dev": true | ||
8097 | }, | ||
8098 | "@typescript-eslint/typescript-estree": { | ||
8099 | "version": "4.31.2", | ||
8100 | "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.31.2.tgz", | ||
8101 | "integrity": "sha512-ieBq8U9at6PvaC7/Z6oe8D3czeW5d//Fo1xkF/s9394VR0bg/UaMYPdARiWyKX+lLEjY3w/FNZJxitMsiWv+wA==", | ||
8102 | "dev": true, | ||
8103 | "requires": { | ||
8104 | "@typescript-eslint/types": "4.31.2", | ||
8105 | "@typescript-eslint/visitor-keys": "4.31.2", | ||
8106 | "debug": "^4.3.1", | ||
8107 | "globby": "^11.0.3", | ||
8108 | "is-glob": "^4.0.1", | ||
8109 | "semver": "^7.3.5", | ||
8110 | "tsutils": "^3.21.0" | ||
8111 | } | ||
8112 | }, | ||
8113 | "@typescript-eslint/visitor-keys": { | ||
8114 | "version": "4.31.2", | ||
8115 | "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.31.2.tgz", | ||
8116 | "integrity": "sha512-PrBId7EQq2Nibns7dd/ch6S6/M4/iwLM9McbgeEbCXfxdwRUNxJ4UNreJ6Gh3fI2GNKNrWnQxKL7oCPmngKBug==", | ||
8117 | "dev": true, | ||
8118 | "requires": { | ||
8119 | "@typescript-eslint/types": "4.31.2", | ||
8120 | "eslint-visitor-keys": "^2.0.0" | ||
8121 | } | ||
8122 | }, | ||
8123 | "is-glob": { | ||
8124 | "version": "4.0.1", | ||
8125 | "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", | ||
8126 | "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", | ||
8127 | "dev": true, | ||
8128 | "requires": { | ||
8129 | "is-extglob": "^2.1.1" | ||
8130 | } | ||
8131 | } | ||
8132 | } | 8015 | } |
8133 | }, | 8016 | }, |
8134 | "@typescript-eslint/scope-manager": { | 8017 | "@typescript-eslint/scope-manager": { |
8135 | "version": "4.28.5", | 8018 | "version": "5.0.0", |
8136 | "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.28.5.tgz", | 8019 | "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.0.0.tgz", |
8137 | "integrity": "sha512-PHLq6n9nTMrLYcVcIZ7v0VY1X7dK309NM8ya9oL/yG8syFINIMHxyr2GzGoBYUdv3NUfCOqtuqps0ZmcgnZTfQ==", | 8020 | "integrity": "sha512-5RFjdA/ain/MDUHYXdF173btOKncIrLuBmA9s6FJhzDrRAyVSA+70BHg0/MW6TE+UiKVyRtX91XpVS0gVNwVDQ==", |
8138 | "dev": true, | 8021 | "dev": true, |
8139 | "requires": { | 8022 | "requires": { |
8140 | "@typescript-eslint/types": "4.28.5", | 8023 | "@typescript-eslint/types": "5.0.0", |
8141 | "@typescript-eslint/visitor-keys": "4.28.5" | 8024 | "@typescript-eslint/visitor-keys": "5.0.0" |
8142 | } | 8025 | } |
8143 | }, | 8026 | }, |
8144 | "@typescript-eslint/types": { | 8027 | "@typescript-eslint/types": { |
8145 | "version": "4.28.5", | 8028 | "version": "5.0.0", |
8146 | "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.28.5.tgz", | 8029 | "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.0.0.tgz", |
8147 | "integrity": "sha512-MruOu4ZaDOLOhw4f/6iudyks/obuvvZUAHBDSW80Trnc5+ovmViLT2ZMDXhUV66ozcl6z0LJfKs1Usldgi/WCA==", | 8030 | "integrity": "sha512-dU/pKBUpehdEqYuvkojmlv0FtHuZnLXFBn16zsDmlFF3LXkOpkAQ2vrKc3BidIIve9EMH2zfTlxqw9XM0fFN5w==", |
8148 | "dev": true | 8031 | "dev": true |
8149 | }, | 8032 | }, |
8150 | "@typescript-eslint/typescript-estree": { | 8033 | "@typescript-eslint/typescript-estree": { |
8151 | "version": "4.28.5", | 8034 | "version": "5.0.0", |
8152 | "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.28.5.tgz", | 8035 | "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.0.0.tgz", |
8153 | "integrity": "sha512-FzJUKsBX8poCCdve7iV7ShirP8V+ys2t1fvamVeD1rWpiAnIm550a+BX/fmTHrjEpQJ7ZAn+Z7ZZwJjytk9rZw==", | 8036 | "integrity": "sha512-V/6w+PPQMhinWKSn+fCiX5jwvd1vRBm7AX7SJQXEGQtwtBvjMPjaU3YTQ1ik2UF1u96X7tsB96HMnulG3eLi9Q==", |
8154 | "dev": true, | 8037 | "dev": true, |
8155 | "requires": { | 8038 | "requires": { |
8156 | "@typescript-eslint/types": "4.28.5", | 8039 | "@typescript-eslint/types": "5.0.0", |
8157 | "@typescript-eslint/visitor-keys": "4.28.5", | 8040 | "@typescript-eslint/visitor-keys": "5.0.0", |
8158 | "debug": "^4.3.1", | 8041 | "debug": "^4.3.1", |
8159 | "globby": "^11.0.3", | 8042 | "globby": "^11.0.3", |
8160 | "is-glob": "^4.0.1", | 8043 | "is-glob": "^4.0.1", |
@@ -8163,9 +8046,9 @@ | |||
8163 | }, | 8046 | }, |
8164 | "dependencies": { | 8047 | "dependencies": { |
8165 | "is-glob": { | 8048 | "is-glob": { |
8166 | "version": "4.0.1", | 8049 | "version": "4.0.3", |
8167 | "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", | 8050 | "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", |
8168 | "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", | 8051 | "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", |
8169 | "dev": true, | 8052 | "dev": true, |
8170 | "requires": { | 8053 | "requires": { |
8171 | "is-extglob": "^2.1.1" | 8054 | "is-extglob": "^2.1.1" |
@@ -8174,13 +8057,21 @@ | |||
8174 | } | 8057 | } |
8175 | }, | 8058 | }, |
8176 | "@typescript-eslint/visitor-keys": { | 8059 | "@typescript-eslint/visitor-keys": { |
8177 | "version": "4.28.5", | 8060 | "version": "5.0.0", |
8178 | "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.28.5.tgz", | 8061 | "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.0.0.tgz", |
8179 | "integrity": "sha512-dva/7Rr+EkxNWdJWau26xU/0slnFlkh88v3TsyTgRS/IIYFi5iIfpCFM4ikw0vQTFUR9FYSSyqgK4w64gsgxhg==", | 8062 | "integrity": "sha512-yRyd2++o/IrJdyHuYMxyFyBhU762MRHQ/bAGQeTnN3pGikfh+nEmM61XTqaDH1XDp53afZ+waXrk0ZvenoZ6xw==", |
8180 | "dev": true, | 8063 | "dev": true, |
8181 | "requires": { | 8064 | "requires": { |
8182 | "@typescript-eslint/types": "4.28.5", | 8065 | "@typescript-eslint/types": "5.0.0", |
8183 | "eslint-visitor-keys": "^2.0.0" | 8066 | "eslint-visitor-keys": "^3.0.0" |
8067 | }, | ||
8068 | "dependencies": { | ||
8069 | "eslint-visitor-keys": { | ||
8070 | "version": "3.0.0", | ||
8071 | "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.0.0.tgz", | ||
8072 | "integrity": "sha512-mJOZa35trBTb3IyRmo8xmKBZlxf+N7OnUl4+ZhJHs/r+0770Wh/LEACE2pqMGMe27G/4y8P2bYGk4J70IC5k1Q==", | ||
8073 | "dev": true | ||
8074 | } | ||
8184 | } | 8075 | } |
8185 | }, | 8076 | }, |
8186 | "@ungap/promise-all-settled": { | 8077 | "@ungap/promise-all-settled": { |
@@ -9524,26 +9415,85 @@ | |||
9524 | "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" | 9415 | "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" |
9525 | }, | 9416 | }, |
9526 | "array.prototype.flat": { | 9417 | "array.prototype.flat": { |
9527 | "version": "1.2.4", | 9418 | "version": "1.2.5", |
9528 | "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.4.tgz", | 9419 | "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.5.tgz", |
9529 | "integrity": "sha512-4470Xi3GAPAjZqFcljX2xzckv1qeKPizoNkiS0+O4IoPR2ZNpcjE0pkhdihlDouK+x6QOast26B4Q/O9DJnwSg==", | 9420 | "integrity": "sha512-KaYU+S+ndVqyUnignHftkwc58o3uVU1jzczILJ1tN2YaIZpFIKBiP/x/j97E5MVPsaCloPbqWLB/8qCTVvT2qg==", |
9530 | "dev": true, | 9421 | "dev": true, |
9531 | "requires": { | 9422 | "requires": { |
9532 | "call-bind": "^1.0.0", | 9423 | "call-bind": "^1.0.2", |
9533 | "define-properties": "^1.1.3", | 9424 | "define-properties": "^1.1.3", |
9534 | "es-abstract": "^1.18.0-next.1" | 9425 | "es-abstract": "^1.19.0" |
9426 | }, | ||
9427 | "dependencies": { | ||
9428 | "es-abstract": { | ||
9429 | "version": "1.19.1", | ||
9430 | "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz", | ||
9431 | "integrity": "sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==", | ||
9432 | "dev": true, | ||
9433 | "requires": { | ||
9434 | "call-bind": "^1.0.2", | ||
9435 | "es-to-primitive": "^1.2.1", | ||
9436 | "function-bind": "^1.1.1", | ||
9437 | "get-intrinsic": "^1.1.1", | ||
9438 | "get-symbol-description": "^1.0.0", | ||
9439 | "has": "^1.0.3", | ||
9440 | "has-symbols": "^1.0.2", | ||
9441 | "internal-slot": "^1.0.3", | ||
9442 | "is-callable": "^1.2.4", | ||
9443 | "is-negative-zero": "^2.0.1", | ||
9444 | "is-regex": "^1.1.4", | ||
9445 | "is-shared-array-buffer": "^1.0.1", | ||
9446 | "is-string": "^1.0.7", | ||
9447 | "is-weakref": "^1.0.1", | ||
9448 | "object-inspect": "^1.11.0", | ||
9449 | "object-keys": "^1.1.1", | ||
9450 | "object.assign": "^4.1.2", | ||
9451 | "string.prototype.trimend": "^1.0.4", | ||
9452 | "string.prototype.trimstart": "^1.0.4", | ||
9453 | "unbox-primitive": "^1.0.1" | ||
9454 | } | ||
9455 | } | ||
9535 | } | 9456 | } |
9536 | }, | 9457 | }, |
9537 | "array.prototype.flatmap": { | 9458 | "array.prototype.flatmap": { |
9538 | "version": "1.2.4", | 9459 | "version": "1.2.5", |
9539 | "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.2.4.tgz", | 9460 | "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.2.5.tgz", |
9540 | "integrity": "sha512-r9Z0zYoxqHz60vvQbWEdXIEtCwHF0yxaWfno9qzXeNHvfyl3BZqygmGzb84dsubyaXLH4husF+NFgMSdpZhk2Q==", | 9461 | "integrity": "sha512-08u6rVyi1Lj7oqWbS9nUxliETrtIROT4XGTA4D/LWGten6E3ocm7cy9SIrmNHOL5XVbVuckUp3X6Xyg8/zpvHA==", |
9541 | "dev": true, | 9462 | "dev": true, |
9542 | "requires": { | 9463 | "requires": { |
9543 | "call-bind": "^1.0.0", | 9464 | "call-bind": "^1.0.0", |
9544 | "define-properties": "^1.1.3", | 9465 | "define-properties": "^1.1.3", |
9545 | "es-abstract": "^1.18.0-next.1", | 9466 | "es-abstract": "^1.19.0" |
9546 | "function-bind": "^1.1.1" | 9467 | }, |
9468 | "dependencies": { | ||
9469 | "es-abstract": { | ||
9470 | "version": "1.19.1", | ||
9471 | "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz", | ||
9472 | "integrity": "sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==", | ||
9473 | "dev": true, | ||
9474 | "requires": { | ||
9475 | "call-bind": "^1.0.2", | ||
9476 | "es-to-primitive": "^1.2.1", | ||
9477 | "function-bind": "^1.1.1", | ||
9478 | "get-intrinsic": "^1.1.1", | ||
9479 | "get-symbol-description": "^1.0.0", | ||
9480 | "has": "^1.0.3", | ||
9481 | "has-symbols": "^1.0.2", | ||
9482 | "internal-slot": "^1.0.3", | ||
9483 | "is-callable": "^1.2.4", | ||
9484 | "is-negative-zero": "^2.0.1", | ||
9485 | "is-regex": "^1.1.4", | ||
9486 | "is-shared-array-buffer": "^1.0.1", | ||
9487 | "is-string": "^1.0.7", | ||
9488 | "is-weakref": "^1.0.1", | ||
9489 | "object-inspect": "^1.11.0", | ||
9490 | "object-keys": "^1.1.1", | ||
9491 | "object.assign": "^4.1.2", | ||
9492 | "string.prototype.trimend": "^1.0.4", | ||
9493 | "string.prototype.trimstart": "^1.0.4", | ||
9494 | "unbox-primitive": "^1.0.1" | ||
9495 | } | ||
9496 | } | ||
9547 | } | 9497 | } |
9548 | }, | 9498 | }, |
9549 | "arrify": { | 9499 | "arrify": { |
@@ -9664,12 +9614,6 @@ | |||
9664 | "integrity": "sha1-9wtzXGvKGlycItmCw+Oef+ujva0=", | 9614 | "integrity": "sha1-9wtzXGvKGlycItmCw+Oef+ujva0=", |
9665 | "dev": true | 9615 | "dev": true |
9666 | }, | 9616 | }, |
9667 | "astral-regex": { | ||
9668 | "version": "2.0.0", | ||
9669 | "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", | ||
9670 | "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", | ||
9671 | "dev": true | ||
9672 | }, | ||
9673 | "async": { | 9617 | "async": { |
9674 | "version": "3.2.1", | 9618 | "version": "3.2.1", |
9675 | "resolved": "https://registry.npmjs.org/async/-/async-3.2.1.tgz", | 9619 | "resolved": "https://registry.npmjs.org/async/-/async-3.2.1.tgz", |
@@ -14708,37 +14652,36 @@ | |||
14708 | } | 14652 | } |
14709 | }, | 14653 | }, |
14710 | "eslint": { | 14654 | "eslint": { |
14711 | "version": "7.32.0", | 14655 | "version": "8.0.1", |
14712 | "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.32.0.tgz", | 14656 | "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.0.1.tgz", |
14713 | "integrity": "sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==", | 14657 | "integrity": "sha512-LsgcwZgQ72vZ+SMp4K6pAnk2yFDWL7Ti4pJaRvsZ0Hsw2h8ZjUIW38a9AFn2cZXdBMlScMFYYgsSp4ttFI/0bA==", |
14714 | "dev": true, | 14658 | "dev": true, |
14715 | "requires": { | 14659 | "requires": { |
14716 | "@babel/code-frame": "7.12.11", | 14660 | "@eslint/eslintrc": "^1.0.3", |
14717 | "@eslint/eslintrc": "^0.4.3", | 14661 | "@humanwhocodes/config-array": "^0.6.0", |
14718 | "@humanwhocodes/config-array": "^0.5.0", | ||
14719 | "ajv": "^6.10.0", | 14662 | "ajv": "^6.10.0", |
14720 | "chalk": "^4.0.0", | 14663 | "chalk": "^4.0.0", |
14721 | "cross-spawn": "^7.0.2", | 14664 | "cross-spawn": "^7.0.2", |
14722 | "debug": "^4.0.1", | 14665 | "debug": "^4.3.2", |
14723 | "doctrine": "^3.0.0", | 14666 | "doctrine": "^3.0.0", |
14724 | "enquirer": "^2.3.5", | 14667 | "enquirer": "^2.3.5", |
14725 | "escape-string-regexp": "^4.0.0", | 14668 | "escape-string-regexp": "^4.0.0", |
14726 | "eslint-scope": "^5.1.1", | 14669 | "eslint-scope": "^6.0.0", |
14727 | "eslint-utils": "^2.1.0", | 14670 | "eslint-utils": "^3.0.0", |
14728 | "eslint-visitor-keys": "^2.0.0", | 14671 | "eslint-visitor-keys": "^3.0.0", |
14729 | "espree": "^7.3.1", | 14672 | "espree": "^9.0.0", |
14730 | "esquery": "^1.4.0", | 14673 | "esquery": "^1.4.0", |
14731 | "esutils": "^2.0.2", | 14674 | "esutils": "^2.0.2", |
14732 | "fast-deep-equal": "^3.1.3", | 14675 | "fast-deep-equal": "^3.1.3", |
14733 | "file-entry-cache": "^6.0.1", | 14676 | "file-entry-cache": "^6.0.1", |
14734 | "functional-red-black-tree": "^1.0.1", | 14677 | "functional-red-black-tree": "^1.0.1", |
14735 | "glob-parent": "^5.1.2", | 14678 | "glob-parent": "^6.0.1", |
14736 | "globals": "^13.6.0", | 14679 | "globals": "^13.6.0", |
14737 | "ignore": "^4.0.6", | 14680 | "ignore": "^4.0.6", |
14738 | "import-fresh": "^3.0.0", | 14681 | "import-fresh": "^3.0.0", |
14739 | "imurmurhash": "^0.1.4", | 14682 | "imurmurhash": "^0.1.4", |
14740 | "is-glob": "^4.0.0", | 14683 | "is-glob": "^4.0.0", |
14741 | "js-yaml": "^3.13.1", | 14684 | "js-yaml": "^4.1.0", |
14742 | "json-stable-stringify-without-jsonify": "^1.0.1", | 14685 | "json-stable-stringify-without-jsonify": "^1.0.1", |
14743 | "levn": "^0.4.1", | 14686 | "levn": "^0.4.1", |
14744 | "lodash.merge": "^4.6.2", | 14687 | "lodash.merge": "^4.6.2", |
@@ -14746,24 +14689,14 @@ | |||
14746 | "natural-compare": "^1.4.0", | 14689 | "natural-compare": "^1.4.0", |
14747 | "optionator": "^0.9.1", | 14690 | "optionator": "^0.9.1", |
14748 | "progress": "^2.0.0", | 14691 | "progress": "^2.0.0", |
14749 | "regexpp": "^3.1.0", | 14692 | "regexpp": "^3.2.0", |
14750 | "semver": "^7.2.1", | 14693 | "semver": "^7.2.1", |
14751 | "strip-ansi": "^6.0.0", | 14694 | "strip-ansi": "^6.0.0", |
14752 | "strip-json-comments": "^3.1.0", | 14695 | "strip-json-comments": "^3.1.0", |
14753 | "table": "^6.0.9", | ||
14754 | "text-table": "^0.2.0", | 14696 | "text-table": "^0.2.0", |
14755 | "v8-compile-cache": "^2.0.3" | 14697 | "v8-compile-cache": "^2.0.3" |
14756 | }, | 14698 | }, |
14757 | "dependencies": { | 14699 | "dependencies": { |
14758 | "@babel/code-frame": { | ||
14759 | "version": "7.12.11", | ||
14760 | "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", | ||
14761 | "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", | ||
14762 | "dev": true, | ||
14763 | "requires": { | ||
14764 | "@babel/highlight": "^7.10.4" | ||
14765 | } | ||
14766 | }, | ||
14767 | "ansi-colors": { | 14700 | "ansi-colors": { |
14768 | "version": "4.1.1", | 14701 | "version": "4.1.1", |
14769 | "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", | 14702 | "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", |
@@ -14771,9 +14704,9 @@ | |||
14771 | "dev": true | 14704 | "dev": true |
14772 | }, | 14705 | }, |
14773 | "ansi-regex": { | 14706 | "ansi-regex": { |
14774 | "version": "5.0.0", | 14707 | "version": "5.0.1", |
14775 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", | 14708 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", |
14776 | "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", | 14709 | "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", |
14777 | "dev": true | 14710 | "dev": true |
14778 | }, | 14711 | }, |
14779 | "ansi-styles": { | 14712 | "ansi-styles": { |
@@ -14785,15 +14718,6 @@ | |||
14785 | "color-convert": "^2.0.1" | 14718 | "color-convert": "^2.0.1" |
14786 | } | 14719 | } |
14787 | }, | 14720 | }, |
14788 | "argparse": { | ||
14789 | "version": "1.0.10", | ||
14790 | "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", | ||
14791 | "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", | ||
14792 | "dev": true, | ||
14793 | "requires": { | ||
14794 | "sprintf-js": "~1.0.2" | ||
14795 | } | ||
14796 | }, | ||
14797 | "chalk": { | 14721 | "chalk": { |
14798 | "version": "4.1.2", | 14722 | "version": "4.1.2", |
14799 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", | 14723 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", |
@@ -14845,36 +14769,41 @@ | |||
14845 | "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", | 14769 | "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", |
14846 | "dev": true | 14770 | "dev": true |
14847 | }, | 14771 | }, |
14848 | "eslint-utils": { | 14772 | "eslint-scope": { |
14849 | "version": "2.1.0", | 14773 | "version": "6.0.0", |
14850 | "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", | 14774 | "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-6.0.0.tgz", |
14851 | "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", | 14775 | "integrity": "sha512-uRDL9MWmQCkaFus8RF5K9/L/2fn+80yoW3jkD53l4shjCh26fCtvJGasxjUqP5OT87SYTxCVA3BwTUzuELx9kA==", |
14852 | "dev": true, | 14776 | "dev": true, |
14853 | "requires": { | 14777 | "requires": { |
14854 | "eslint-visitor-keys": "^1.1.0" | 14778 | "esrecurse": "^4.3.0", |
14855 | }, | 14779 | "estraverse": "^5.2.0" |
14856 | "dependencies": { | ||
14857 | "eslint-visitor-keys": { | ||
14858 | "version": "1.3.0", | ||
14859 | "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", | ||
14860 | "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", | ||
14861 | "dev": true | ||
14862 | } | ||
14863 | } | 14780 | } |
14864 | }, | 14781 | }, |
14782 | "eslint-visitor-keys": { | ||
14783 | "version": "3.0.0", | ||
14784 | "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.0.0.tgz", | ||
14785 | "integrity": "sha512-mJOZa35trBTb3IyRmo8xmKBZlxf+N7OnUl4+ZhJHs/r+0770Wh/LEACE2pqMGMe27G/4y8P2bYGk4J70IC5k1Q==", | ||
14786 | "dev": true | ||
14787 | }, | ||
14788 | "estraverse": { | ||
14789 | "version": "5.2.0", | ||
14790 | "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", | ||
14791 | "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", | ||
14792 | "dev": true | ||
14793 | }, | ||
14865 | "glob-parent": { | 14794 | "glob-parent": { |
14866 | "version": "5.1.2", | 14795 | "version": "6.0.2", |
14867 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", | 14796 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", |
14868 | "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", | 14797 | "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", |
14869 | "dev": true, | 14798 | "dev": true, |
14870 | "requires": { | 14799 | "requires": { |
14871 | "is-glob": "^4.0.1" | 14800 | "is-glob": "^4.0.3" |
14872 | } | 14801 | } |
14873 | }, | 14802 | }, |
14874 | "globals": { | 14803 | "globals": { |
14875 | "version": "13.10.0", | 14804 | "version": "13.11.0", |
14876 | "resolved": "https://registry.npmjs.org/globals/-/globals-13.10.0.tgz", | 14805 | "resolved": "https://registry.npmjs.org/globals/-/globals-13.11.0.tgz", |
14877 | "integrity": "sha512-piHC3blgLGFjvOuMmWZX60f+na1lXFDhQXBf1UYp2fXPXqvEUbOhNwi6BsQ0bQishwedgnjkwv1d9zKf+MWw3g==", | 14806 | "integrity": "sha512-08/xrJ7wQjK9kkkRoI3OFUBbLx4f+6x3SGwcPvQ0QH6goFDrOU2oyAWrmh3dJezu65buo+HBMzAMQy6rovVC3g==", |
14878 | "dev": true, | 14807 | "dev": true, |
14879 | "requires": { | 14808 | "requires": { |
14880 | "type-fest": "^0.20.2" | 14809 | "type-fest": "^0.20.2" |
@@ -14893,24 +14822,14 @@ | |||
14893 | "dev": true | 14822 | "dev": true |
14894 | }, | 14823 | }, |
14895 | "is-glob": { | 14824 | "is-glob": { |
14896 | "version": "4.0.1", | 14825 | "version": "4.0.3", |
14897 | "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", | 14826 | "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", |
14898 | "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", | 14827 | "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", |
14899 | "dev": true, | 14828 | "dev": true, |
14900 | "requires": { | 14829 | "requires": { |
14901 | "is-extglob": "^2.1.1" | 14830 | "is-extglob": "^2.1.1" |
14902 | } | 14831 | } |
14903 | }, | 14832 | }, |
14904 | "js-yaml": { | ||
14905 | "version": "3.14.1", | ||
14906 | "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", | ||
14907 | "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", | ||
14908 | "dev": true, | ||
14909 | "requires": { | ||
14910 | "argparse": "^1.0.7", | ||
14911 | "esprima": "^4.0.0" | ||
14912 | } | ||
14913 | }, | ||
14914 | "path-key": { | 14833 | "path-key": { |
14915 | "version": "3.1.1", | 14834 | "version": "3.1.1", |
14916 | "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", | 14835 | "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", |
@@ -14933,12 +14852,12 @@ | |||
14933 | "dev": true | 14852 | "dev": true |
14934 | }, | 14853 | }, |
14935 | "strip-ansi": { | 14854 | "strip-ansi": { |
14936 | "version": "6.0.0", | 14855 | "version": "6.0.1", |
14937 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", | 14856 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", |
14938 | "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", | 14857 | "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", |
14939 | "dev": true, | 14858 | "dev": true, |
14940 | "requires": { | 14859 | "requires": { |
14941 | "ansi-regex": "^5.0.0" | 14860 | "ansi-regex": "^5.0.1" |
14942 | } | 14861 | } |
14943 | }, | 14862 | }, |
14944 | "strip-json-comments": { | 14863 | "strip-json-comments": { |
@@ -14996,10 +14915,13 @@ | |||
14996 | } | 14915 | } |
14997 | }, | 14916 | }, |
14998 | "eslint-config-airbnb-typescript": { | 14917 | "eslint-config-airbnb-typescript": { |
14999 | "version": "14.0.0", | 14918 | "version": "14.0.1", |
15000 | "resolved": "https://registry.npmjs.org/eslint-config-airbnb-typescript/-/eslint-config-airbnb-typescript-14.0.0.tgz", | 14919 | "resolved": "https://registry.npmjs.org/eslint-config-airbnb-typescript/-/eslint-config-airbnb-typescript-14.0.1.tgz", |
15001 | "integrity": "sha512-d2Nit2ByZARGRYK6tgSNl3nnmGZPyvsgbsKFcmm+nAhvT8VjVpifG5jI4tzObUUPb0sWw0E1oO/0pSpBD/pIuQ==", | 14920 | "integrity": "sha512-tF4GwC3sRrw8kEj4/yxX8F7AcLzj/1IESBnsCiFMplzYmxre459qm2z9DFkCpqBVQFSH6j2K4+VKVteX4m0GsQ==", |
15002 | "dev": true | 14921 | "dev": true, |
14922 | "requires": { | ||
14923 | "eslint-config-airbnb-base": "14.2.1" | ||
14924 | } | ||
15003 | }, | 14925 | }, |
15004 | "eslint-config-prettier": { | 14926 | "eslint-config-prettier": { |
15005 | "version": "8.3.0", | 14927 | "version": "8.3.0", |
@@ -15029,12 +14951,13 @@ | |||
15029 | } | 14951 | } |
15030 | }, | 14952 | }, |
15031 | "eslint-module-utils": { | 14953 | "eslint-module-utils": { |
15032 | "version": "2.6.2", | 14954 | "version": "2.7.1", |
15033 | "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.6.2.tgz", | 14955 | "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.1.tgz", |
15034 | "integrity": "sha512-QG8pcgThYOuqxupd06oYTZoNOGaUdTY1PqK+oS6ElF6vs4pBdk/aYxFVQQXzcrAqp9m7cl7lb2ubazX+g16k2Q==", | 14956 | "integrity": "sha512-fjoetBXQZq2tSTWZ9yWVl2KuFrTZZH3V+9iD1V1RfpDgxzJR+mPd/KZmMiA8gbPqdBzpNiEHOuT7IYEWxrH0zQ==", |
15035 | "dev": true, | 14957 | "dev": true, |
15036 | "requires": { | 14958 | "requires": { |
15037 | "debug": "^3.2.7", | 14959 | "debug": "^3.2.7", |
14960 | "find-up": "^2.1.0", | ||
15038 | "pkg-dir": "^2.0.0" | 14961 | "pkg-dir": "^2.0.0" |
15039 | }, | 14962 | }, |
15040 | "dependencies": { | 14963 | "dependencies": { |
@@ -15108,28 +15031,39 @@ | |||
15108 | } | 15031 | } |
15109 | }, | 15032 | }, |
15110 | "eslint-plugin-import": { | 15033 | "eslint-plugin-import": { |
15111 | "version": "2.24.2", | 15034 | "version": "2.25.2", |
15112 | "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.24.2.tgz", | 15035 | "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.25.2.tgz", |
15113 | "integrity": "sha512-hNVtyhiEtZmpsabL4neEj+6M5DCLgpYyG9nzJY8lZQeQXEn5UPW1DpUdsMHMXsq98dbNm7nt1w9ZMSVpfJdi8Q==", | 15036 | "integrity": "sha512-qCwQr9TYfoBHOFcVGKY9C9unq05uOxxdklmBXLVvcwo68y5Hta6/GzCZEMx2zQiu0woKNEER0LE7ZgaOfBU14g==", |
15114 | "dev": true, | 15037 | "dev": true, |
15115 | "requires": { | 15038 | "requires": { |
15116 | "array-includes": "^3.1.3", | 15039 | "array-includes": "^3.1.4", |
15117 | "array.prototype.flat": "^1.2.4", | 15040 | "array.prototype.flat": "^1.2.5", |
15118 | "debug": "^2.6.9", | 15041 | "debug": "^2.6.9", |
15119 | "doctrine": "^2.1.0", | 15042 | "doctrine": "^2.1.0", |
15120 | "eslint-import-resolver-node": "^0.3.6", | 15043 | "eslint-import-resolver-node": "^0.3.6", |
15121 | "eslint-module-utils": "^2.6.2", | 15044 | "eslint-module-utils": "^2.7.0", |
15122 | "find-up": "^2.0.0", | ||
15123 | "has": "^1.0.3", | 15045 | "has": "^1.0.3", |
15124 | "is-core-module": "^2.6.0", | 15046 | "is-core-module": "^2.7.0", |
15047 | "is-glob": "^4.0.3", | ||
15125 | "minimatch": "^3.0.4", | 15048 | "minimatch": "^3.0.4", |
15126 | "object.values": "^1.1.4", | 15049 | "object.values": "^1.1.5", |
15127 | "pkg-up": "^2.0.0", | ||
15128 | "read-pkg-up": "^3.0.0", | ||
15129 | "resolve": "^1.20.0", | 15050 | "resolve": "^1.20.0", |
15130 | "tsconfig-paths": "^3.11.0" | 15051 | "tsconfig-paths": "^3.11.0" |
15131 | }, | 15052 | }, |
15132 | "dependencies": { | 15053 | "dependencies": { |
15054 | "array-includes": { | ||
15055 | "version": "3.1.4", | ||
15056 | "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.4.tgz", | ||
15057 | "integrity": "sha512-ZTNSQkmWumEbiHO2GF4GmWxYVTiQyJy2XOTa15sdQSrvKn7l+180egQMqlrMOUMCyLMD7pmyQe4mMDUT6Behrw==", | ||
15058 | "dev": true, | ||
15059 | "requires": { | ||
15060 | "call-bind": "^1.0.2", | ||
15061 | "define-properties": "^1.1.3", | ||
15062 | "es-abstract": "^1.19.1", | ||
15063 | "get-intrinsic": "^1.1.1", | ||
15064 | "is-string": "^1.0.7" | ||
15065 | } | ||
15066 | }, | ||
15133 | "debug": { | 15067 | "debug": { |
15134 | "version": "2.6.9", | 15068 | "version": "2.6.9", |
15135 | "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", | 15069 | "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", |
@@ -15148,32 +15082,50 @@ | |||
15148 | "esutils": "^2.0.2" | 15082 | "esutils": "^2.0.2" |
15149 | } | 15083 | } |
15150 | }, | 15084 | }, |
15151 | "find-up": { | 15085 | "es-abstract": { |
15152 | "version": "2.1.0", | 15086 | "version": "1.19.1", |
15153 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", | 15087 | "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz", |
15154 | "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", | 15088 | "integrity": "sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==", |
15155 | "dev": true, | 15089 | "dev": true, |
15156 | "requires": { | 15090 | "requires": { |
15157 | "locate-path": "^2.0.0" | 15091 | "call-bind": "^1.0.2", |
15092 | "es-to-primitive": "^1.2.1", | ||
15093 | "function-bind": "^1.1.1", | ||
15094 | "get-intrinsic": "^1.1.1", | ||
15095 | "get-symbol-description": "^1.0.0", | ||
15096 | "has": "^1.0.3", | ||
15097 | "has-symbols": "^1.0.2", | ||
15098 | "internal-slot": "^1.0.3", | ||
15099 | "is-callable": "^1.2.4", | ||
15100 | "is-negative-zero": "^2.0.1", | ||
15101 | "is-regex": "^1.1.4", | ||
15102 | "is-shared-array-buffer": "^1.0.1", | ||
15103 | "is-string": "^1.0.7", | ||
15104 | "is-weakref": "^1.0.1", | ||
15105 | "object-inspect": "^1.11.0", | ||
15106 | "object-keys": "^1.1.1", | ||
15107 | "object.assign": "^4.1.2", | ||
15108 | "string.prototype.trimend": "^1.0.4", | ||
15109 | "string.prototype.trimstart": "^1.0.4", | ||
15110 | "unbox-primitive": "^1.0.1" | ||
15158 | } | 15111 | } |
15159 | }, | 15112 | }, |
15160 | "is-core-module": { | 15113 | "is-core-module": { |
15161 | "version": "2.6.0", | 15114 | "version": "2.8.0", |
15162 | "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.6.0.tgz", | 15115 | "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.0.tgz", |
15163 | "integrity": "sha512-wShG8vs60jKfPWpF2KZRaAtvt3a20OAn7+IJ6hLPECpSABLcKtFKTTI4ZtH5QcBruBHlq+WsdHWyz0BCZW7svQ==", | 15116 | "integrity": "sha512-vd15qHsaqrRL7dtH6QNuy0ndJmRDrS9HAM1CAiSifNUFv4x1a0CCVsj18hJ1mShxIG6T2i1sO78MkP56r0nYRw==", |
15164 | "dev": true, | 15117 | "dev": true, |
15165 | "requires": { | 15118 | "requires": { |
15166 | "has": "^1.0.3" | 15119 | "has": "^1.0.3" |
15167 | } | 15120 | } |
15168 | }, | 15121 | }, |
15169 | "locate-path": { | 15122 | "is-glob": { |
15170 | "version": "2.0.0", | 15123 | "version": "4.0.3", |
15171 | "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", | 15124 | "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", |
15172 | "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", | 15125 | "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", |
15173 | "dev": true, | 15126 | "dev": true, |
15174 | "requires": { | 15127 | "requires": { |
15175 | "p-locate": "^2.0.0", | 15128 | "is-extglob": "^2.1.1" |
15176 | "path-exists": "^3.0.0" | ||
15177 | } | 15129 | } |
15178 | }, | 15130 | }, |
15179 | "ms": { | 15131 | "ms": { |
@@ -15181,82 +15133,16 @@ | |||
15181 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", | 15133 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", |
15182 | "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", | 15134 | "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", |
15183 | "dev": true | 15135 | "dev": true |
15184 | }, | ||
15185 | "p-limit": { | ||
15186 | "version": "1.3.0", | ||
15187 | "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", | ||
15188 | "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", | ||
15189 | "dev": true, | ||
15190 | "requires": { | ||
15191 | "p-try": "^1.0.0" | ||
15192 | } | ||
15193 | }, | ||
15194 | "p-locate": { | ||
15195 | "version": "2.0.0", | ||
15196 | "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", | ||
15197 | "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", | ||
15198 | "dev": true, | ||
15199 | "requires": { | ||
15200 | "p-limit": "^1.1.0" | ||
15201 | } | ||
15202 | }, | ||
15203 | "p-try": { | ||
15204 | "version": "1.0.0", | ||
15205 | "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", | ||
15206 | "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", | ||
15207 | "dev": true | ||
15208 | }, | ||
15209 | "path-exists": { | ||
15210 | "version": "3.0.0", | ||
15211 | "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", | ||
15212 | "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", | ||
15213 | "dev": true | ||
15214 | }, | ||
15215 | "path-type": { | ||
15216 | "version": "3.0.0", | ||
15217 | "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", | ||
15218 | "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", | ||
15219 | "dev": true, | ||
15220 | "requires": { | ||
15221 | "pify": "^3.0.0" | ||
15222 | } | ||
15223 | }, | ||
15224 | "pify": { | ||
15225 | "version": "3.0.0", | ||
15226 | "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", | ||
15227 | "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", | ||
15228 | "dev": true | ||
15229 | }, | ||
15230 | "read-pkg": { | ||
15231 | "version": "3.0.0", | ||
15232 | "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", | ||
15233 | "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", | ||
15234 | "dev": true, | ||
15235 | "requires": { | ||
15236 | "load-json-file": "^4.0.0", | ||
15237 | "normalize-package-data": "^2.3.2", | ||
15238 | "path-type": "^3.0.0" | ||
15239 | } | ||
15240 | }, | ||
15241 | "read-pkg-up": { | ||
15242 | "version": "3.0.0", | ||
15243 | "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz", | ||
15244 | "integrity": "sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=", | ||
15245 | "dev": true, | ||
15246 | "requires": { | ||
15247 | "find-up": "^2.0.0", | ||
15248 | "read-pkg": "^3.0.0" | ||
15249 | } | ||
15250 | } | 15136 | } |
15251 | } | 15137 | } |
15252 | }, | 15138 | }, |
15253 | "eslint-plugin-jest": { | 15139 | "eslint-plugin-jest": { |
15254 | "version": "24.4.0", | 15140 | "version": "25.2.1", |
15255 | "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-24.4.0.tgz", | 15141 | "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-25.2.1.tgz", |
15256 | "integrity": "sha512-8qnt/hgtZ94E9dA6viqfViKBfkJwFHXgJmTWlMGDgunw1XJEGqm3eiPjDsTanM3/u/3Az82nyQM9GX7PM/QGmg==", | 15142 | "integrity": "sha512-fC6T95lqgWHsdVFd+f0kTHH32NxbIzIm1fJ/3kGaCFcQP1fJc5khV7DzUHjNQSTOHd5Toa7ccEBptab4uFqbNQ==", |
15257 | "dev": true, | 15143 | "dev": true, |
15258 | "requires": { | 15144 | "requires": { |
15259 | "@typescript-eslint/experimental-utils": "^4.0.1" | 15145 | "@typescript-eslint/experimental-utils": "^5.0.0" |
15260 | } | 15146 | } |
15261 | }, | 15147 | }, |
15262 | "eslint-plugin-jsx-a11y": { | 15148 | "eslint-plugin-jsx-a11y": { |
@@ -15296,23 +15182,24 @@ | |||
15296 | } | 15182 | } |
15297 | }, | 15183 | }, |
15298 | "eslint-plugin-react": { | 15184 | "eslint-plugin-react": { |
15299 | "version": "7.25.1", | 15185 | "version": "7.26.1", |
15300 | "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.25.1.tgz", | 15186 | "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.26.1.tgz", |
15301 | "integrity": "sha512-P4j9K1dHoFXxDNP05AtixcJEvIT6ht8FhYKsrkY0MPCPaUMYijhpWwNiRDZVtA8KFuZOkGSeft6QwH8KuVpJug==", | 15187 | "integrity": "sha512-Lug0+NOFXeOE+ORZ5pbsh6mSKjBKXDXItUD2sQoT+5Yl0eoT82DqnXeTMfUare4QVCn9QwXbfzO/dBLjLXwVjQ==", |
15302 | "dev": true, | 15188 | "dev": true, |
15303 | "requires": { | 15189 | "requires": { |
15304 | "array-includes": "^3.1.3", | 15190 | "array-includes": "^3.1.3", |
15305 | "array.prototype.flatmap": "^1.2.4", | 15191 | "array.prototype.flatmap": "^1.2.4", |
15306 | "doctrine": "^2.1.0", | 15192 | "doctrine": "^2.1.0", |
15307 | "estraverse": "^5.2.0", | 15193 | "estraverse": "^5.2.0", |
15308 | "has": "^1.0.3", | ||
15309 | "jsx-ast-utils": "^2.4.1 || ^3.0.0", | 15194 | "jsx-ast-utils": "^2.4.1 || ^3.0.0", |
15310 | "minimatch": "^3.0.4", | 15195 | "minimatch": "^3.0.4", |
15311 | "object.entries": "^1.1.4", | 15196 | "object.entries": "^1.1.4", |
15312 | "object.fromentries": "^2.0.4", | 15197 | "object.fromentries": "^2.0.4", |
15198 | "object.hasown": "^1.0.0", | ||
15313 | "object.values": "^1.1.4", | 15199 | "object.values": "^1.1.4", |
15314 | "prop-types": "^15.7.2", | 15200 | "prop-types": "^15.7.2", |
15315 | "resolve": "^2.0.0-next.3", | 15201 | "resolve": "^2.0.0-next.3", |
15202 | "semver": "^6.3.0", | ||
15316 | "string.prototype.matchall": "^4.0.5" | 15203 | "string.prototype.matchall": "^4.0.5" |
15317 | }, | 15204 | }, |
15318 | "dependencies": { | 15205 | "dependencies": { |
@@ -15340,6 +15227,12 @@ | |||
15340 | "is-core-module": "^2.2.0", | 15227 | "is-core-module": "^2.2.0", |
15341 | "path-parse": "^1.0.6" | 15228 | "path-parse": "^1.0.6" |
15342 | } | 15229 | } |
15230 | }, | ||
15231 | "semver": { | ||
15232 | "version": "6.3.0", | ||
15233 | "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", | ||
15234 | "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", | ||
15235 | "dev": true | ||
15343 | } | 15236 | } |
15344 | } | 15237 | } |
15345 | }, | 15238 | }, |
@@ -15350,9 +15243,9 @@ | |||
15350 | "dev": true | 15243 | "dev": true |
15351 | }, | 15244 | }, |
15352 | "eslint-plugin-unicorn": { | 15245 | "eslint-plugin-unicorn": { |
15353 | "version": "36.0.0", | 15246 | "version": "37.0.1", |
15354 | "resolved": "https://registry.npmjs.org/eslint-plugin-unicorn/-/eslint-plugin-unicorn-36.0.0.tgz", | 15247 | "resolved": "https://registry.npmjs.org/eslint-plugin-unicorn/-/eslint-plugin-unicorn-37.0.1.tgz", |
15355 | "integrity": "sha512-xxN2vSctGWnDW6aLElm/LKIwcrmk6mdiEcW55Uv5krcrVcIFSWMmEgc/hwpemYfZacKZ5npFERGNz4aThsp1AA==", | 15248 | "integrity": "sha512-E1jq5u9ojnadisJcPi+hMXTGSiIzkIUMDvWsBudsCGXvKUB2aNSU2TcfyW2/jAS5A4ryBXfzxLykMxX1EdluSQ==", |
15356 | "dev": true, | 15249 | "dev": true, |
15357 | "requires": { | 15250 | "requires": { |
15358 | "@babel/helper-validator-identifier": "^7.14.9", | 15251 | "@babel/helper-validator-identifier": "^7.14.9", |
@@ -15360,15 +15253,24 @@ | |||
15360 | "clean-regexp": "^1.0.0", | 15253 | "clean-regexp": "^1.0.0", |
15361 | "eslint-template-visitor": "^2.3.2", | 15254 | "eslint-template-visitor": "^2.3.2", |
15362 | "eslint-utils": "^3.0.0", | 15255 | "eslint-utils": "^3.0.0", |
15256 | "esquery": "^1.4.0", | ||
15257 | "indent-string": "4", | ||
15363 | "is-builtin-module": "^3.1.0", | 15258 | "is-builtin-module": "^3.1.0", |
15364 | "lodash": "^4.17.21", | 15259 | "lodash": "^4.17.21", |
15365 | "pluralize": "^8.0.0", | 15260 | "pluralize": "^8.0.0", |
15366 | "read-pkg-up": "^7.0.1", | 15261 | "read-pkg-up": "^7.0.1", |
15367 | "regexp-tree": "^0.1.23", | 15262 | "regexp-tree": "^0.1.23", |
15368 | "safe-regex": "^2.1.1", | 15263 | "safe-regex": "^2.1.1", |
15369 | "semver": "^7.3.5" | 15264 | "semver": "^7.3.5", |
15265 | "strip-indent": "^3.0.0" | ||
15370 | }, | 15266 | }, |
15371 | "dependencies": { | 15267 | "dependencies": { |
15268 | "indent-string": { | ||
15269 | "version": "4.0.0", | ||
15270 | "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", | ||
15271 | "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", | ||
15272 | "dev": true | ||
15273 | }, | ||
15372 | "pluralize": { | 15274 | "pluralize": { |
15373 | "version": "8.0.0", | 15275 | "version": "8.0.0", |
15374 | "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz", | 15276 | "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz", |
@@ -15425,20 +15327,26 @@ | |||
15425 | "dev": true | 15327 | "dev": true |
15426 | }, | 15328 | }, |
15427 | "espree": { | 15329 | "espree": { |
15428 | "version": "7.3.1", | 15330 | "version": "9.0.0", |
15429 | "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz", | 15331 | "resolved": "https://registry.npmjs.org/espree/-/espree-9.0.0.tgz", |
15430 | "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==", | 15332 | "integrity": "sha512-r5EQJcYZ2oaGbeR0jR0fFVijGOcwai07/690YRXLINuhmVeRY4UKSAsQPe/0BNuDgwP7Ophoc1PRsr2E3tkbdQ==", |
15431 | "dev": true, | 15333 | "dev": true, |
15432 | "requires": { | 15334 | "requires": { |
15433 | "acorn": "^7.4.0", | 15335 | "acorn": "^8.5.0", |
15434 | "acorn-jsx": "^5.3.1", | 15336 | "acorn-jsx": "^5.3.1", |
15435 | "eslint-visitor-keys": "^1.3.0" | 15337 | "eslint-visitor-keys": "^3.0.0" |
15436 | }, | 15338 | }, |
15437 | "dependencies": { | 15339 | "dependencies": { |
15340 | "acorn": { | ||
15341 | "version": "8.5.0", | ||
15342 | "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.5.0.tgz", | ||
15343 | "integrity": "sha512-yXbYeFy+jUuYd3/CDcg2NkIYE991XYX/bje7LmjJigUciaeO1JR4XxXgCIV1/Zc/dRuFEyw1L0pbA+qynJkW5Q==", | ||
15344 | "dev": true | ||
15345 | }, | ||
15438 | "eslint-visitor-keys": { | 15346 | "eslint-visitor-keys": { |
15439 | "version": "1.3.0", | 15347 | "version": "3.0.0", |
15440 | "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", | 15348 | "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.0.0.tgz", |
15441 | "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", | 15349 | "integrity": "sha512-mJOZa35trBTb3IyRmo8xmKBZlxf+N7OnUl4+ZhJHs/r+0770Wh/LEACE2pqMGMe27G/4y8P2bYGk4J70IC5k1Q==", |
15442 | "dev": true | 15350 | "dev": true |
15443 | } | 15351 | } |
15444 | } | 15352 | } |
@@ -16391,31 +16299,6 @@ | |||
16391 | "requires": { | 16299 | "requires": { |
16392 | "flatted": "^3.1.0", | 16300 | "flatted": "^3.1.0", |
16393 | "rimraf": "^3.0.2" | 16301 | "rimraf": "^3.0.2" |
16394 | }, | ||
16395 | "dependencies": { | ||
16396 | "glob": { | ||
16397 | "version": "7.1.7", | ||
16398 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", | ||
16399 | "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", | ||
16400 | "dev": true, | ||
16401 | "requires": { | ||
16402 | "fs.realpath": "^1.0.0", | ||
16403 | "inflight": "^1.0.4", | ||
16404 | "inherits": "2", | ||
16405 | "minimatch": "^3.0.4", | ||
16406 | "once": "^1.3.0", | ||
16407 | "path-is-absolute": "^1.0.0" | ||
16408 | } | ||
16409 | }, | ||
16410 | "rimraf": { | ||
16411 | "version": "3.0.2", | ||
16412 | "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", | ||
16413 | "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", | ||
16414 | "dev": true, | ||
16415 | "requires": { | ||
16416 | "glob": "^7.1.3" | ||
16417 | } | ||
16418 | } | ||
16419 | } | 16302 | } |
16420 | }, | 16303 | }, |
16421 | "flatted": { | 16304 | "flatted": { |
@@ -16879,6 +16762,16 @@ | |||
16879 | "pump": "^3.0.0" | 16762 | "pump": "^3.0.0" |
16880 | } | 16763 | } |
16881 | }, | 16764 | }, |
16765 | "get-symbol-description": { | ||
16766 | "version": "1.0.0", | ||
16767 | "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", | ||
16768 | "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", | ||
16769 | "dev": true, | ||
16770 | "requires": { | ||
16771 | "call-bind": "^1.0.2", | ||
16772 | "get-intrinsic": "^1.1.1" | ||
16773 | } | ||
16774 | }, | ||
16882 | "get-value": { | 16775 | "get-value": { |
16883 | "version": "2.0.6", | 16776 | "version": "2.0.6", |
16884 | "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", | 16777 | "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", |
@@ -19127,6 +19020,12 @@ | |||
19127 | "is-unc-path": "^1.0.0" | 19020 | "is-unc-path": "^1.0.0" |
19128 | } | 19021 | } |
19129 | }, | 19022 | }, |
19023 | "is-shared-array-buffer": { | ||
19024 | "version": "1.0.1", | ||
19025 | "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz", | ||
19026 | "integrity": "sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA==", | ||
19027 | "dev": true | ||
19028 | }, | ||
19130 | "is-ssh": { | 19029 | "is-ssh": { |
19131 | "version": "1.3.3", | 19030 | "version": "1.3.3", |
19132 | "resolved": "https://registry.npmjs.org/is-ssh/-/is-ssh-1.3.3.tgz", | 19031 | "resolved": "https://registry.npmjs.org/is-ssh/-/is-ssh-1.3.3.tgz", |
@@ -19199,6 +19098,15 @@ | |||
19199 | "integrity": "sha1-Kb8+/3Ab4tTTFdusw5vDn+j2Aao=", | 19098 | "integrity": "sha1-Kb8+/3Ab4tTTFdusw5vDn+j2Aao=", |
19200 | "dev": true | 19099 | "dev": true |
19201 | }, | 19100 | }, |
19101 | "is-weakref": { | ||
19102 | "version": "1.0.1", | ||
19103 | "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.1.tgz", | ||
19104 | "integrity": "sha512-b2jKc2pQZjaeFYWEf7ScFj+Be1I+PXmlu572Q8coTXZ+LD/QQZ7ShPMst8h16riVgyXTQwUsFEl74mDvc/3MHQ==", | ||
19105 | "dev": true, | ||
19106 | "requires": { | ||
19107 | "call-bind": "^1.0.0" | ||
19108 | } | ||
19109 | }, | ||
19202 | "is-windows": { | 19110 | "is-windows": { |
19203 | "version": "1.0.2", | 19111 | "version": "1.0.2", |
19204 | "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", | 19112 | "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", |
@@ -21830,12 +21738,6 @@ | |||
21830 | "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", | 21738 | "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", |
21831 | "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=" | 21739 | "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=" |
21832 | }, | 21740 | }, |
21833 | "lodash.clonedeep": { | ||
21834 | "version": "4.5.0", | ||
21835 | "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", | ||
21836 | "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=", | ||
21837 | "dev": true | ||
21838 | }, | ||
21839 | "lodash.debounce": { | 21741 | "lodash.debounce": { |
21840 | "version": "4.0.8", | 21742 | "version": "4.0.8", |
21841 | "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", | 21743 | "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", |
@@ -21924,12 +21826,6 @@ | |||
21924 | "lodash._reinterpolate": "^3.0.0" | 21826 | "lodash._reinterpolate": "^3.0.0" |
21925 | } | 21827 | } |
21926 | }, | 21828 | }, |
21927 | "lodash.truncate": { | ||
21928 | "version": "4.4.2", | ||
21929 | "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", | ||
21930 | "integrity": "sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM=", | ||
21931 | "dev": true | ||
21932 | }, | ||
21933 | "log-ok": { | 21829 | "log-ok": { |
21934 | "version": "0.1.1", | 21830 | "version": "0.1.1", |
21935 | "resolved": "https://registry.npmjs.org/log-ok/-/log-ok-0.1.1.tgz", | 21831 | "resolved": "https://registry.npmjs.org/log-ok/-/log-ok-0.1.1.tgz", |
@@ -24319,15 +24215,44 @@ | |||
24319 | } | 24215 | } |
24320 | }, | 24216 | }, |
24321 | "object.fromentries": { | 24217 | "object.fromentries": { |
24322 | "version": "2.0.4", | 24218 | "version": "2.0.5", |
24323 | "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.4.tgz", | 24219 | "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.5.tgz", |
24324 | "integrity": "sha512-EsFBshs5RUUpQEY1D4q/m59kMfz4YJvxuNCJcv/jWwOJr34EaVnG11ZrZa0UHB3wnzV1wx8m58T4hQL8IuNXlQ==", | 24220 | "integrity": "sha512-CAyG5mWQRRiBU57Re4FKoTBjXfDoNwdFVH2Y1tS9PqCsfUTymAohOkEMSG3aRNKmv4lV3O7p1et7c187q6bynw==", |
24325 | "dev": true, | 24221 | "dev": true, |
24326 | "requires": { | 24222 | "requires": { |
24327 | "call-bind": "^1.0.2", | 24223 | "call-bind": "^1.0.2", |
24328 | "define-properties": "^1.1.3", | 24224 | "define-properties": "^1.1.3", |
24329 | "es-abstract": "^1.18.0-next.2", | 24225 | "es-abstract": "^1.19.1" |
24330 | "has": "^1.0.3" | 24226 | }, |
24227 | "dependencies": { | ||
24228 | "es-abstract": { | ||
24229 | "version": "1.19.1", | ||
24230 | "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz", | ||
24231 | "integrity": "sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==", | ||
24232 | "dev": true, | ||
24233 | "requires": { | ||
24234 | "call-bind": "^1.0.2", | ||
24235 | "es-to-primitive": "^1.2.1", | ||
24236 | "function-bind": "^1.1.1", | ||
24237 | "get-intrinsic": "^1.1.1", | ||
24238 | "get-symbol-description": "^1.0.0", | ||
24239 | "has": "^1.0.3", | ||
24240 | "has-symbols": "^1.0.2", | ||
24241 | "internal-slot": "^1.0.3", | ||
24242 | "is-callable": "^1.2.4", | ||
24243 | "is-negative-zero": "^2.0.1", | ||
24244 | "is-regex": "^1.1.4", | ||
24245 | "is-shared-array-buffer": "^1.0.1", | ||
24246 | "is-string": "^1.0.7", | ||
24247 | "is-weakref": "^1.0.1", | ||
24248 | "object-inspect": "^1.11.0", | ||
24249 | "object-keys": "^1.1.1", | ||
24250 | "object.assign": "^4.1.2", | ||
24251 | "string.prototype.trimend": "^1.0.4", | ||
24252 | "string.prototype.trimstart": "^1.0.4", | ||
24253 | "unbox-primitive": "^1.0.1" | ||
24254 | } | ||
24255 | } | ||
24331 | } | 24256 | } |
24332 | }, | 24257 | }, |
24333 | "object.getownpropertydescriptors": { | 24258 | "object.getownpropertydescriptors": { |
@@ -24341,6 +24266,46 @@ | |||
24341 | "es-abstract": "^1.18.0-next.2" | 24266 | "es-abstract": "^1.18.0-next.2" |
24342 | } | 24267 | } |
24343 | }, | 24268 | }, |
24269 | "object.hasown": { | ||
24270 | "version": "1.1.0", | ||
24271 | "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.0.tgz", | ||
24272 | "integrity": "sha512-MhjYRfj3GBlhSkDHo6QmvgjRLXQ2zndabdf3nX0yTyZK9rPfxb6uRpAac8HXNLy1GpqWtZ81Qh4v3uOls2sRAg==", | ||
24273 | "dev": true, | ||
24274 | "requires": { | ||
24275 | "define-properties": "^1.1.3", | ||
24276 | "es-abstract": "^1.19.1" | ||
24277 | }, | ||
24278 | "dependencies": { | ||
24279 | "es-abstract": { | ||
24280 | "version": "1.19.1", | ||
24281 | "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz", | ||
24282 | "integrity": "sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==", | ||
24283 | "dev": true, | ||
24284 | "requires": { | ||
24285 | "call-bind": "^1.0.2", | ||
24286 | "es-to-primitive": "^1.2.1", | ||
24287 | "function-bind": "^1.1.1", | ||
24288 | "get-intrinsic": "^1.1.1", | ||
24289 | "get-symbol-description": "^1.0.0", | ||
24290 | "has": "^1.0.3", | ||
24291 | "has-symbols": "^1.0.2", | ||
24292 | "internal-slot": "^1.0.3", | ||
24293 | "is-callable": "^1.2.4", | ||
24294 | "is-negative-zero": "^2.0.1", | ||
24295 | "is-regex": "^1.1.4", | ||
24296 | "is-shared-array-buffer": "^1.0.1", | ||
24297 | "is-string": "^1.0.7", | ||
24298 | "is-weakref": "^1.0.1", | ||
24299 | "object-inspect": "^1.11.0", | ||
24300 | "object-keys": "^1.1.1", | ||
24301 | "object.assign": "^4.1.2", | ||
24302 | "string.prototype.trimend": "^1.0.4", | ||
24303 | "string.prototype.trimstart": "^1.0.4", | ||
24304 | "unbox-primitive": "^1.0.1" | ||
24305 | } | ||
24306 | } | ||
24307 | } | ||
24308 | }, | ||
24344 | "object.map": { | 24309 | "object.map": { |
24345 | "version": "1.0.1", | 24310 | "version": "1.0.1", |
24346 | "resolved": "https://registry.npmjs.org/object.map/-/object.map-1.0.1.tgz", | 24311 | "resolved": "https://registry.npmjs.org/object.map/-/object.map-1.0.1.tgz", |
@@ -24369,14 +24334,44 @@ | |||
24369 | } | 24334 | } |
24370 | }, | 24335 | }, |
24371 | "object.values": { | 24336 | "object.values": { |
24372 | "version": "1.1.4", | 24337 | "version": "1.1.5", |
24373 | "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.4.tgz", | 24338 | "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.5.tgz", |
24374 | "integrity": "sha512-TnGo7j4XSnKQoK3MfvkzqKCi0nVe/D9I9IjwTNYdb/fxYHpjrluHVOgw0AF6jrRFGMPHdfuidR09tIDiIvnaSg==", | 24339 | "integrity": "sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==", |
24375 | "dev": true, | 24340 | "dev": true, |
24376 | "requires": { | 24341 | "requires": { |
24377 | "call-bind": "^1.0.2", | 24342 | "call-bind": "^1.0.2", |
24378 | "define-properties": "^1.1.3", | 24343 | "define-properties": "^1.1.3", |
24379 | "es-abstract": "^1.18.2" | 24344 | "es-abstract": "^1.19.1" |
24345 | }, | ||
24346 | "dependencies": { | ||
24347 | "es-abstract": { | ||
24348 | "version": "1.19.1", | ||
24349 | "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz", | ||
24350 | "integrity": "sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==", | ||
24351 | "dev": true, | ||
24352 | "requires": { | ||
24353 | "call-bind": "^1.0.2", | ||
24354 | "es-to-primitive": "^1.2.1", | ||
24355 | "function-bind": "^1.1.1", | ||
24356 | "get-intrinsic": "^1.1.1", | ||
24357 | "get-symbol-description": "^1.0.0", | ||
24358 | "has": "^1.0.3", | ||
24359 | "has-symbols": "^1.0.2", | ||
24360 | "internal-slot": "^1.0.3", | ||
24361 | "is-callable": "^1.2.4", | ||
24362 | "is-negative-zero": "^2.0.1", | ||
24363 | "is-regex": "^1.1.4", | ||
24364 | "is-shared-array-buffer": "^1.0.1", | ||
24365 | "is-string": "^1.0.7", | ||
24366 | "is-weakref": "^1.0.1", | ||
24367 | "object-inspect": "^1.11.0", | ||
24368 | "object-keys": "^1.1.1", | ||
24369 | "object.assign": "^4.1.2", | ||
24370 | "string.prototype.trimend": "^1.0.4", | ||
24371 | "string.prototype.trimstart": "^1.0.4", | ||
24372 | "unbox-primitive": "^1.0.1" | ||
24373 | } | ||
24374 | } | ||
24380 | } | 24375 | } |
24381 | }, | 24376 | }, |
24382 | "obuf": { | 24377 | "obuf": { |
@@ -25133,66 +25128,6 @@ | |||
25133 | "find-up": "^3.0.0" | 25128 | "find-up": "^3.0.0" |
25134 | } | 25129 | } |
25135 | }, | 25130 | }, |
25136 | "pkg-up": { | ||
25137 | "version": "2.0.0", | ||
25138 | "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-2.0.0.tgz", | ||
25139 | "integrity": "sha1-yBmscoBZpGHKscOImivjxJoATX8=", | ||
25140 | "dev": true, | ||
25141 | "requires": { | ||
25142 | "find-up": "^2.1.0" | ||
25143 | }, | ||
25144 | "dependencies": { | ||
25145 | "find-up": { | ||
25146 | "version": "2.1.0", | ||
25147 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", | ||
25148 | "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", | ||
25149 | "dev": true, | ||
25150 | "requires": { | ||
25151 | "locate-path": "^2.0.0" | ||
25152 | } | ||
25153 | }, | ||
25154 | "locate-path": { | ||
25155 | "version": "2.0.0", | ||
25156 | "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", | ||
25157 | "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", | ||
25158 | "dev": true, | ||
25159 | "requires": { | ||
25160 | "p-locate": "^2.0.0", | ||
25161 | "path-exists": "^3.0.0" | ||
25162 | } | ||
25163 | }, | ||
25164 | "p-limit": { | ||
25165 | "version": "1.3.0", | ||
25166 | "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", | ||
25167 | "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", | ||
25168 | "dev": true, | ||
25169 | "requires": { | ||
25170 | "p-try": "^1.0.0" | ||
25171 | } | ||
25172 | }, | ||
25173 | "p-locate": { | ||
25174 | "version": "2.0.0", | ||
25175 | "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", | ||
25176 | "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", | ||
25177 | "dev": true, | ||
25178 | "requires": { | ||
25179 | "p-limit": "^1.1.0" | ||
25180 | } | ||
25181 | }, | ||
25182 | "p-try": { | ||
25183 | "version": "1.0.0", | ||
25184 | "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", | ||
25185 | "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", | ||
25186 | "dev": true | ||
25187 | }, | ||
25188 | "path-exists": { | ||
25189 | "version": "3.0.0", | ||
25190 | "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", | ||
25191 | "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", | ||
25192 | "dev": true | ||
25193 | } | ||
25194 | } | ||
25195 | }, | ||
25196 | "platform": { | 25131 | "platform": { |
25197 | "version": "1.3.6", | 25132 | "version": "1.3.6", |
25198 | "resolved": "https://registry.npmjs.org/platform/-/platform-1.3.6.tgz", | 25133 | "resolved": "https://registry.npmjs.org/platform/-/platform-1.3.6.tgz", |
@@ -26926,9 +26861,9 @@ | |||
26926 | } | 26861 | } |
26927 | }, | 26862 | }, |
26928 | "regexp-tree": { | 26863 | "regexp-tree": { |
26929 | "version": "0.1.23", | 26864 | "version": "0.1.24", |
26930 | "resolved": "https://registry.npmjs.org/regexp-tree/-/regexp-tree-0.1.23.tgz", | 26865 | "resolved": "https://registry.npmjs.org/regexp-tree/-/regexp-tree-0.1.24.tgz", |
26931 | "integrity": "sha512-+7HWfb4Bvu8Rs2eQTUIpX9I/PlQkYOuTNbRpKLJlQpSgwSkzFYh+pUj0gtvglnOZLKB6YgnIgRuJ2/IlpL48qw==", | 26866 | "integrity": "sha512-s2aEVuLhvnVJW6s/iPgEGK6R+/xngd2jNQ+xy4bXNDKxZKJH6jpPHY6kVeVv1IeLCHgswRj+Kl3ELaDjG6V1iw==", |
26932 | "dev": true | 26867 | "dev": true |
26933 | }, | 26868 | }, |
26934 | "regexp.prototype.flags": { | 26869 | "regexp.prototype.flags": { |
@@ -27142,12 +27077,6 @@ | |||
27142 | "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", | 27077 | "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", |
27143 | "dev": true | 27078 | "dev": true |
27144 | }, | 27079 | }, |
27145 | "require-from-string": { | ||
27146 | "version": "2.0.2", | ||
27147 | "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", | ||
27148 | "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", | ||
27149 | "dev": true | ||
27150 | }, | ||
27151 | "require-main-filename": { | 27080 | "require-main-filename": { |
27152 | "version": "1.0.1", | 27081 | "version": "1.0.1", |
27153 | "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", | 27082 | "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", |
@@ -28735,19 +28664,49 @@ | |||
28735 | } | 28664 | } |
28736 | }, | 28665 | }, |
28737 | "string.prototype.matchall": { | 28666 | "string.prototype.matchall": { |
28738 | "version": "4.0.5", | 28667 | "version": "4.0.6", |
28739 | "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.5.tgz", | 28668 | "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.6.tgz", |
28740 | "integrity": "sha512-Z5ZaXO0svs0M2xd/6By3qpeKpLKd9mO4v4q3oMEQrk8Ck4xOD5d5XeBOOjGrmVZZ/AHB1S0CgG4N5r1G9N3E2Q==", | 28669 | "integrity": "sha512-6WgDX8HmQqvEd7J+G6VtAahhsQIssiZ8zl7zKh1VDMFyL3hRTJP4FTNA3RbIp2TOQ9AYNDcc7e3fH0Qbup+DBg==", |
28741 | "dev": true, | 28670 | "dev": true, |
28742 | "requires": { | 28671 | "requires": { |
28743 | "call-bind": "^1.0.2", | 28672 | "call-bind": "^1.0.2", |
28744 | "define-properties": "^1.1.3", | 28673 | "define-properties": "^1.1.3", |
28745 | "es-abstract": "^1.18.2", | 28674 | "es-abstract": "^1.19.1", |
28746 | "get-intrinsic": "^1.1.1", | 28675 | "get-intrinsic": "^1.1.1", |
28747 | "has-symbols": "^1.0.2", | 28676 | "has-symbols": "^1.0.2", |
28748 | "internal-slot": "^1.0.3", | 28677 | "internal-slot": "^1.0.3", |
28749 | "regexp.prototype.flags": "^1.3.1", | 28678 | "regexp.prototype.flags": "^1.3.1", |
28750 | "side-channel": "^1.0.4" | 28679 | "side-channel": "^1.0.4" |
28680 | }, | ||
28681 | "dependencies": { | ||
28682 | "es-abstract": { | ||
28683 | "version": "1.19.1", | ||
28684 | "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz", | ||
28685 | "integrity": "sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==", | ||
28686 | "dev": true, | ||
28687 | "requires": { | ||
28688 | "call-bind": "^1.0.2", | ||
28689 | "es-to-primitive": "^1.2.1", | ||
28690 | "function-bind": "^1.1.1", | ||
28691 | "get-intrinsic": "^1.1.1", | ||
28692 | "get-symbol-description": "^1.0.0", | ||
28693 | "has": "^1.0.3", | ||
28694 | "has-symbols": "^1.0.2", | ||
28695 | "internal-slot": "^1.0.3", | ||
28696 | "is-callable": "^1.2.4", | ||
28697 | "is-negative-zero": "^2.0.1", | ||
28698 | "is-regex": "^1.1.4", | ||
28699 | "is-shared-array-buffer": "^1.0.1", | ||
28700 | "is-string": "^1.0.7", | ||
28701 | "is-weakref": "^1.0.1", | ||
28702 | "object-inspect": "^1.11.0", | ||
28703 | "object-keys": "^1.1.1", | ||
28704 | "object.assign": "^4.1.2", | ||
28705 | "string.prototype.trimend": "^1.0.4", | ||
28706 | "string.prototype.trimstart": "^1.0.4", | ||
28707 | "unbox-primitive": "^1.0.1" | ||
28708 | } | ||
28709 | } | ||
28751 | } | 28710 | } |
28752 | }, | 28711 | }, |
28753 | "string.prototype.trimend": { | 28712 | "string.prototype.trimend": { |
@@ -28918,107 +28877,6 @@ | |||
28918 | "acorn-node": "^1.2.0" | 28877 | "acorn-node": "^1.2.0" |
28919 | } | 28878 | } |
28920 | }, | 28879 | }, |
28921 | "table": { | ||
28922 | "version": "6.7.1", | ||
28923 | "resolved": "https://registry.npmjs.org/table/-/table-6.7.1.tgz", | ||
28924 | "integrity": "sha512-ZGum47Yi6KOOFDE8m223td53ath2enHcYLgOCjGr5ngu8bdIARQk6mN/wRMv4yMRcHnCSnHbCEha4sobQx5yWg==", | ||
28925 | "dev": true, | ||
28926 | "requires": { | ||
28927 | "ajv": "^8.0.1", | ||
28928 | "lodash.clonedeep": "^4.5.0", | ||
28929 | "lodash.truncate": "^4.4.2", | ||
28930 | "slice-ansi": "^4.0.0", | ||
28931 | "string-width": "^4.2.0", | ||
28932 | "strip-ansi": "^6.0.0" | ||
28933 | }, | ||
28934 | "dependencies": { | ||
28935 | "ajv": { | ||
28936 | "version": "8.6.2", | ||
28937 | "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.6.2.tgz", | ||
28938 | "integrity": "sha512-9807RlWAgT564wT+DjeyU5OFMPjmzxVobvDFmNAhY+5zD6A2ly3jDp6sgnfyDtlIQ+7H97oc/DGCzzfu9rjw9w==", | ||
28939 | "dev": true, | ||
28940 | "requires": { | ||
28941 | "fast-deep-equal": "^3.1.1", | ||
28942 | "json-schema-traverse": "^1.0.0", | ||
28943 | "require-from-string": "^2.0.2", | ||
28944 | "uri-js": "^4.2.2" | ||
28945 | } | ||
28946 | }, | ||
28947 | "ansi-regex": { | ||
28948 | "version": "5.0.0", | ||
28949 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", | ||
28950 | "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", | ||
28951 | "dev": true | ||
28952 | }, | ||
28953 | "ansi-styles": { | ||
28954 | "version": "4.3.0", | ||
28955 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", | ||
28956 | "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", | ||
28957 | "dev": true, | ||
28958 | "requires": { | ||
28959 | "color-convert": "^2.0.1" | ||
28960 | } | ||
28961 | }, | ||
28962 | "color-convert": { | ||
28963 | "version": "2.0.1", | ||
28964 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", | ||
28965 | "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", | ||
28966 | "dev": true, | ||
28967 | "requires": { | ||
28968 | "color-name": "~1.1.4" | ||
28969 | } | ||
28970 | }, | ||
28971 | "color-name": { | ||
28972 | "version": "1.1.4", | ||
28973 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", | ||
28974 | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", | ||
28975 | "dev": true | ||
28976 | }, | ||
28977 | "is-fullwidth-code-point": { | ||
28978 | "version": "3.0.0", | ||
28979 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", | ||
28980 | "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", | ||
28981 | "dev": true | ||
28982 | }, | ||
28983 | "json-schema-traverse": { | ||
28984 | "version": "1.0.0", | ||
28985 | "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", | ||
28986 | "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", | ||
28987 | "dev": true | ||
28988 | }, | ||
28989 | "slice-ansi": { | ||
28990 | "version": "4.0.0", | ||
28991 | "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", | ||
28992 | "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", | ||
28993 | "dev": true, | ||
28994 | "requires": { | ||
28995 | "ansi-styles": "^4.0.0", | ||
28996 | "astral-regex": "^2.0.0", | ||
28997 | "is-fullwidth-code-point": "^3.0.0" | ||
28998 | } | ||
28999 | }, | ||
29000 | "string-width": { | ||
29001 | "version": "4.2.2", | ||
29002 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", | ||
29003 | "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", | ||
29004 | "dev": true, | ||
29005 | "requires": { | ||
29006 | "emoji-regex": "^8.0.0", | ||
29007 | "is-fullwidth-code-point": "^3.0.0", | ||
29008 | "strip-ansi": "^6.0.0" | ||
29009 | } | ||
29010 | }, | ||
29011 | "strip-ansi": { | ||
29012 | "version": "6.0.0", | ||
29013 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", | ||
29014 | "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", | ||
29015 | "dev": true, | ||
29016 | "requires": { | ||
29017 | "ansi-regex": "^5.0.0" | ||
29018 | } | ||
29019 | } | ||
29020 | } | ||
29021 | }, | ||
29022 | "tapable": { | 28880 | "tapable": { |
29023 | "version": "1.1.3", | 28881 | "version": "1.1.3", |
29024 | "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", | 28882 | "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", |
diff --git a/package.json b/package.json index f818cc496..ce3368fe3 100644 --- a/package.json +++ b/package.json | |||
@@ -130,7 +130,7 @@ | |||
130 | "ws": "8.2.2" | 130 | "ws": "8.2.2" |
131 | }, | 131 | }, |
132 | "devDependencies": { | 132 | "devDependencies": { |
133 | "@babel/eslint-parser": "7.15.7", | 133 | "@babel/eslint-parser": "7.15.8", |
134 | "@babel/plugin-proposal-class-properties": "7.14.5", | 134 | "@babel/plugin-proposal-class-properties": "7.14.5", |
135 | "@babel/plugin-proposal-decorators": "7.15.4", | 135 | "@babel/plugin-proposal-decorators": "7.15.4", |
136 | "@babel/preset-env": "7.15.6", | 136 | "@babel/preset-env": "7.15.6", |
@@ -153,8 +153,8 @@ | |||
153 | "@types/tar": "4.0.5", | 153 | "@types/tar": "4.0.5", |
154 | "@types/uuid": "8.3.1", | 154 | "@types/uuid": "8.3.1", |
155 | "@types/validator": "13.6.3", | 155 | "@types/validator": "13.6.3", |
156 | "@typescript-eslint/eslint-plugin": "4.31.2", | 156 | "@typescript-eslint/eslint-plugin": "5.0.0", |
157 | "@typescript-eslint/parser": "4.31.2", | 157 | "@typescript-eslint/parser": "5.0.0", |
158 | "all-contributors-cli": "6.20.0", | 158 | "all-contributors-cli": "6.20.0", |
159 | "babel-plugin-formatjs": "10.3.9", | 159 | "babel-plugin-formatjs": "10.3.9", |
160 | "commitizen": "4.2.4", | 160 | "commitizen": "4.2.4", |
@@ -165,17 +165,17 @@ | |||
165 | "electron": "15.2.0", | 165 | "electron": "15.2.0", |
166 | "electron-builder": "22.14.5", | 166 | "electron-builder": "22.14.5", |
167 | "electron-notarize": "1.1.0", | 167 | "electron-notarize": "1.1.0", |
168 | "eslint": "7.32.0", | 168 | "eslint": "8.0.1", |
169 | "eslint-config-airbnb": "18.2.1", | 169 | "eslint-config-airbnb": "18.2.1", |
170 | "eslint-config-airbnb-typescript": "14.0.0", | 170 | "eslint-config-airbnb-typescript": "14.0.1", |
171 | "eslint-config-prettier": "8.3.0", | 171 | "eslint-config-prettier": "8.3.0", |
172 | "eslint-plugin-import": "2.24.2", | 172 | "eslint-plugin-import": "2.25.2", |
173 | "eslint-plugin-jest": "24.4.0", | 173 | "eslint-plugin-jest": "25.2.1", |
174 | "eslint-plugin-jsx-a11y": "6.4.1", | 174 | "eslint-plugin-jsx-a11y": "6.4.1", |
175 | "eslint-plugin-prettier": "4.0.0", | 175 | "eslint-plugin-prettier": "4.0.0", |
176 | "eslint-plugin-react": "7.25.1", | 176 | "eslint-plugin-react": "7.26.1", |
177 | "eslint-plugin-react-hooks": "4.2.0", | 177 | "eslint-plugin-react-hooks": "4.2.0", |
178 | "eslint-plugin-unicorn": "36.0.0", | 178 | "eslint-plugin-unicorn": "37.0.1", |
179 | "expect.js": "0.3.1", | 179 | "expect.js": "0.3.1", |
180 | "gulp": "4.0.2", | 180 | "gulp": "4.0.2", |
181 | "gulp-babel": "8.0.0", | 181 | "gulp-babel": "8.0.0", |
diff --git a/scripts/postinstall.ts b/scripts/postinstall.ts index 4fa71c35f..7205f6c46 100644 --- a/scripts/postinstall.ts +++ b/scripts/postinstall.ts | |||
@@ -1,6 +1,5 @@ | |||
1 | import { exec } from 'child_process'; | 1 | import { exec } from 'child_process'; |
2 | 2 | ||
3 | // eslint-disable-next-line no-console | ||
4 | const log = (err, stdout, stderr) => console.log(err || stdout || stderr); | 3 | const log = (err, stdout, stderr) => console.log(err || stdout || stderr); |
5 | 4 | ||
6 | if (!process.env.BUNDLING) { | 5 | if (!process.env.BUNDLING) { |
diff --git a/src/actions/user.ts b/src/actions/user.ts index 20d27ee53..15a9216bd 100644 --- a/src/actions/user.ts +++ b/src/actions/user.ts | |||
@@ -25,8 +25,10 @@ export default { | |||
25 | userData: PropTypes.object.isRequired, | 25 | userData: PropTypes.object.isRequired, |
26 | }, | 26 | }, |
27 | resetStatus: {}, | 27 | resetStatus: {}, |
28 | importLegacyServices: PropTypes.arrayOf(PropTypes.shape({ | 28 | importLegacyServices: PropTypes.arrayOf( |
29 | recipe: PropTypes.string.isRequired, | 29 | PropTypes.shape({ |
30 | })).isRequired, | 30 | recipe: PropTypes.string.isRequired, |
31 | }), | ||
32 | ).isRequired, | ||
31 | delete: {}, | 33 | delete: {}, |
32 | }; | 34 | }; |
diff --git a/src/components/layout/Sidebar.js b/src/components/layout/Sidebar.js index 76edcf2e1..fc33a3c58 100644 --- a/src/components/layout/Sidebar.js +++ b/src/components/layout/Sidebar.js | |||
@@ -177,7 +177,7 @@ class Sidebar extends Component { | |||
177 | > | 177 | > |
178 | <i className="mdi mdi-check-all" /> | 178 | <i className="mdi mdi-check-all" /> |
179 | </button> | 179 | </button> |
180 | ) : null} | 180 | ) : null} |
181 | {workspaceStore.isFeatureEnabled ? ( | 181 | {workspaceStore.isFeatureEnabled ? ( |
182 | <button | 182 | <button |
183 | type="button" | 183 | type="button" |
@@ -243,7 +243,7 @@ class Sidebar extends Component { | |||
243 | this.props.stores.app.updateStatusTypes.AVAILABLE || | 243 | this.props.stores.app.updateStatusTypes.AVAILABLE || |
244 | this.props.stores.app.updateStatus === | 244 | this.props.stores.app.updateStatus === |
245 | this.props.stores.app.updateStatusTypes.DOWNLOADED) && ( | 245 | this.props.stores.app.updateStatusTypes.DOWNLOADED) && ( |
246 | <span className="update-available">•</span> | 246 | <span className="update-available">•</span> |
247 | )} | 247 | )} |
248 | </button> | 248 | </button> |
249 | {this.state.tooltipEnabled && ( | 249 | {this.state.tooltipEnabled && ( |
diff --git a/src/components/services/content/ErrorHandlers/styles.ts b/src/components/services/content/ErrorHandlers/styles.ts index 72d62f5e3..9e2509ee5 100644 --- a/src/components/services/content/ErrorHandlers/styles.ts +++ b/src/components/services/content/ErrorHandlers/styles.ts | |||
@@ -1,4 +1,4 @@ | |||
1 | export default (theme) => ({ | 1 | export default theme => ({ |
2 | component: { | 2 | component: { |
3 | left: 0, | 3 | left: 0, |
4 | position: 'absolute', | 4 | position: 'absolute', |
diff --git a/src/components/services/content/ServiceView.js b/src/components/services/content/ServiceView.js index 8e44efc5f..1bc1fbf5f 100644 --- a/src/components/services/content/ServiceView.js +++ b/src/components/services/content/ServiceView.js | |||
@@ -123,7 +123,7 @@ class ServiceView extends Component { | |||
123 | service.isFirstLoad && | 123 | service.isFirstLoad && |
124 | !service.isServiceAccessRestricted && ( | 124 | !service.isServiceAccessRestricted && ( |
125 | <WebviewLoader loaded={false} name={service.name} /> | 125 | <WebviewLoader loaded={false} name={service.name} /> |
126 | )} | 126 | )} |
127 | {service.isError && ( | 127 | {service.isError && ( |
128 | <WebviewErrorHandler | 128 | <WebviewErrorHandler |
129 | name={service.recipe.name} | 129 | name={service.recipe.name} |
diff --git a/src/components/services/content/ServiceWebview.js b/src/components/services/content/ServiceWebview.js index b60ed3267..185d41175 100644 --- a/src/components/services/content/ServiceWebview.js +++ b/src/components/services/content/ServiceWebview.js | |||
@@ -24,12 +24,10 @@ class ServiceWebview extends Component { | |||
24 | super(props); | 24 | super(props); |
25 | 25 | ||
26 | reaction( | 26 | reaction( |
27 | () => ( | 27 | () => this.webview, |
28 | this.webview | ||
29 | ), | ||
30 | () => { | 28 | () => { |
31 | if (this.webview && this.webview.view) { | 29 | if (this.webview && this.webview.view) { |
32 | this.webview.view.addEventListener('console-message', (e) => { | 30 | this.webview.view.addEventListener('console-message', e => { |
33 | debug('Service logged a message:', e.message); | 31 | debug('Service logged a message:', e.message); |
34 | }); | 32 | }); |
35 | } | 33 | } |
@@ -55,20 +53,26 @@ class ServiceWebview extends Component { | |||
55 | }; | 53 | }; |
56 | 54 | ||
57 | render() { | 55 | render() { |
58 | const { | 56 | const { service, setWebviewReference, isSpellcheckerEnabled } = this.props; |
59 | service, | ||
60 | setWebviewReference, | ||
61 | isSpellcheckerEnabled, | ||
62 | } = this.props; | ||
63 | 57 | ||
64 | const preloadScript = join(__dirname, '..', '..', '..', 'webview', 'recipe.js'); | 58 | const preloadScript = join( |
59 | __dirname, | ||
60 | '..', | ||
61 | '..', | ||
62 | '..', | ||
63 | 'webview', | ||
64 | 'recipe.js', | ||
65 | ); | ||
65 | 66 | ||
66 | return ( | 67 | return ( |
67 | <ElectronWebView | 68 | <ElectronWebView |
68 | ref={(webview) => { | 69 | ref={webview => { |
69 | this.webview = webview; | 70 | this.webview = webview; |
70 | if (webview && webview.view) { | 71 | if (webview && webview.view) { |
71 | webview.view.addEventListener('did-stop-loading', this.refocusWebview); | 72 | webview.view.addEventListener( |
73 | 'did-stop-loading', | ||
74 | this.refocusWebview, | ||
75 | ); | ||
72 | } | 76 | } |
73 | }} | 77 | }} |
74 | autosize | 78 | autosize |
@@ -83,10 +87,14 @@ class ServiceWebview extends Component { | |||
83 | }} | 87 | }} |
84 | onUpdateTargetUrl={this.updateTargetUrl} | 88 | onUpdateTargetUrl={this.updateTargetUrl} |
85 | useragent={service.userAgent} | 89 | useragent={service.userAgent} |
86 | disablewebsecurity={service.recipe.disablewebsecurity ? true : undefined} | 90 | disablewebsecurity={ |
91 | service.recipe.disablewebsecurity ? true : undefined | ||
92 | } | ||
87 | allowpopups | 93 | allowpopups |
88 | nodeintegration | 94 | nodeintegration |
89 | webpreferences={`spellcheck=${isSpellcheckerEnabled ? 1 : 0}, contextIsolation=1, enableRemoteModule=1`} | 95 | webpreferences={`spellcheck=${ |
96 | isSpellcheckerEnabled ? 1 : 0 | ||
97 | }, contextIsolation=1, enableRemoteModule=1`} | ||
90 | /> | 98 | /> |
91 | ); | 99 | ); |
92 | } | 100 | } |
diff --git a/src/components/services/tabs/TabBarSortableList.js b/src/components/services/tabs/TabBarSortableList.js index 146cd93eb..69a12e982 100644 --- a/src/components/services/tabs/TabBarSortableList.js +++ b/src/components/services/tabs/TabBarSortableList.js | |||
@@ -22,7 +22,7 @@ class TabBarSortableList extends Component { | |||
22 | wakeUpService: PropTypes.func.isRequired, | 22 | wakeUpService: PropTypes.func.isRequired, |
23 | showMessageBadgeWhenMutedSetting: PropTypes.bool.isRequired, | 23 | showMessageBadgeWhenMutedSetting: PropTypes.bool.isRequired, |
24 | showMessageBadgesEvenWhenMuted: PropTypes.bool.isRequired, | 24 | showMessageBadgesEvenWhenMuted: PropTypes.bool.isRequired, |
25 | } | 25 | }; |
26 | 26 | ||
27 | render() { | 27 | render() { |
28 | const { | 28 | const { |
@@ -43,9 +43,7 @@ class TabBarSortableList extends Component { | |||
43 | } = this.props; | 43 | } = this.props; |
44 | 44 | ||
45 | return ( | 45 | return ( |
46 | <ul | 46 | <ul className="tabs"> |
47 | className="tabs" | ||
48 | > | ||
49 | {services.map((service, index) => ( | 47 | {services.map((service, index) => ( |
50 | <TabItem | 48 | <TabItem |
51 | key={service.id} | 49 | key={service.id} |
@@ -54,7 +52,9 @@ class TabBarSortableList extends Component { | |||
54 | index={index} | 52 | index={index} |
55 | shortcutIndex={index + 1} | 53 | shortcutIndex={index + 1} |
56 | reload={() => reload({ serviceId: service.id })} | 54 | reload={() => reload({ serviceId: service.id })} |
57 | toggleNotifications={() => toggleNotifications({ serviceId: service.id })} | 55 | toggleNotifications={() => |
56 | toggleNotifications({ serviceId: service.id }) | ||
57 | } | ||
58 | toggleAudio={() => toggleAudio({ serviceId: service.id })} | 58 | toggleAudio={() => toggleAudio({ serviceId: service.id })} |
59 | toggleDarkMode={() => toggleDarkMode({ serviceId: service.id })} | 59 | toggleDarkMode={() => toggleDarkMode({ serviceId: service.id })} |
60 | deleteService={() => deleteService({ serviceId: service.id })} | 60 | deleteService={() => deleteService({ serviceId: service.id })} |
diff --git a/src/components/settings/settings/EditSettingsForm.js b/src/components/settings/settings/EditSettingsForm.js index 40242858a..948e9ccd5 100644 --- a/src/components/settings/settings/EditSettingsForm.js +++ b/src/components/settings/settings/EditSettingsForm.js | |||
@@ -12,13 +12,17 @@ import ToggleRaw from '../../ui/ToggleRaw'; | |||
12 | import Select from '../../ui/Select'; | 12 | import Select from '../../ui/Select'; |
13 | import Input from '../../ui/Input'; | 13 | import Input from '../../ui/Input'; |
14 | 14 | ||
15 | import { DEFAULT_APP_SETTINGS, FRANZ_TRANSLATION, GITHUB_FRANZ_URL } from '../../../config'; | ||
16 | import { | 15 | import { |
17 | isMac, | 16 | DEFAULT_APP_SETTINGS, |
18 | isWindows, | 17 | FRANZ_TRANSLATION, |
19 | lockFerdiShortcutKey, | 18 | GITHUB_FRANZ_URL, |
20 | } from '../../../environment'; | 19 | } from '../../../config'; |
21 | import { ferdiVersion, userDataPath, userDataRecipesPath } from '../../../environment-remote'; | 20 | import { isMac, isWindows, lockFerdiShortcutKey } from '../../../environment'; |
21 | import { | ||
22 | ferdiVersion, | ||
23 | userDataPath, | ||
24 | userDataRecipesPath, | ||
25 | } from '../../../environment-remote'; | ||
22 | import { openPath } from '../../../helpers/url-helpers'; | 26 | import { openPath } from '../../../helpers/url-helpers'; |
23 | import globalMessages from '../../../i18n/globalMessages'; | 27 | import globalMessages from '../../../i18n/globalMessages'; |
24 | 28 | ||
diff --git a/src/components/ui/Modal/styles.ts b/src/components/ui/Modal/styles.ts index f32c075ce..c2bebf9bb 100644 --- a/src/components/ui/Modal/styles.ts +++ b/src/components/ui/Modal/styles.ts | |||
@@ -1,4 +1,4 @@ | |||
1 | export default (theme) => ({ | 1 | export default theme => ({ |
2 | component: { | 2 | component: { |
3 | zIndex: 500, | 3 | zIndex: 500, |
4 | position: 'absolute', | 4 | position: 'absolute', |
diff --git a/src/components/ui/ServiceIcon.js b/src/components/ui/ServiceIcon.js index 2e9312d27..f067f8955 100644 --- a/src/components/ui/ServiceIcon.js +++ b/src/components/ui/ServiceIcon.js | |||
@@ -6,7 +6,7 @@ import classnames from 'classnames'; | |||
6 | 6 | ||
7 | import ServiceModel from '../../models/Service'; | 7 | import ServiceModel from '../../models/Service'; |
8 | 8 | ||
9 | const styles = (theme) => ({ | 9 | const styles = theme => ({ |
10 | root: { | 10 | root: { |
11 | height: 'auto', | 11 | height: 'auto', |
12 | }, | 12 | }, |
@@ -24,7 +24,8 @@ const styles = (theme) => ({ | |||
24 | }, | 24 | }, |
25 | }); | 25 | }); |
26 | 26 | ||
27 | @injectSheet(styles) @observer | 27 | @injectSheet(styles) |
28 | @observer | ||
28 | class ServiceIcon extends Component { | 29 | class ServiceIcon extends Component { |
29 | static propTypes = { | 30 | static propTypes = { |
30 | classes: PropTypes.object.isRequired, | 31 | classes: PropTypes.object.isRequired, |
@@ -37,19 +38,10 @@ class ServiceIcon extends Component { | |||
37 | }; | 38 | }; |
38 | 39 | ||
39 | render() { | 40 | render() { |
40 | const { | 41 | const { classes, className, service } = this.props; |
41 | classes, | ||
42 | className, | ||
43 | service, | ||
44 | } = this.props; | ||
45 | 42 | ||
46 | return ( | 43 | return ( |
47 | <div | 44 | <div className={classnames([classes.root, className])}> |
48 | className={classnames([ | ||
49 | classes.root, | ||
50 | className, | ||
51 | ])} | ||
52 | > | ||
53 | <img | 45 | <img |
54 | src={service.icon} | 46 | src={service.icon} |
55 | className={classnames([ | 47 | className={classnames([ |
diff --git a/src/components/ui/WebviewLoader/styles.ts b/src/components/ui/WebviewLoader/styles.ts index 5d58011fe..dbd75db8a 100644 --- a/src/components/ui/WebviewLoader/styles.ts +++ b/src/components/ui/WebviewLoader/styles.ts | |||
@@ -1,4 +1,4 @@ | |||
1 | export default (theme) => ({ | 1 | export default theme => ({ |
2 | component: { | 2 | component: { |
3 | background: theme.colorWebviewLoaderBackground, | 3 | background: theme.colorWebviewLoaderBackground, |
4 | padding: 20, | 4 | padding: 20, |
diff --git a/src/components/util/ErrorBoundary/styles.js b/src/components/util/ErrorBoundary/styles.js index 51b36fdf3..0960546ff 100644 --- a/src/components/util/ErrorBoundary/styles.js +++ b/src/components/util/ErrorBoundary/styles.js | |||
@@ -1,4 +1,4 @@ | |||
1 | export default (theme) => ({ | 1 | export default theme => ({ |
2 | component: { | 2 | component: { |
3 | display: 'flex', | 3 | display: 'flex', |
4 | width: '100%', | 4 | width: '100%', |
diff --git a/src/containers/settings/EditSettingsScreen.js b/src/containers/settings/EditSettingsScreen.js index 889f3f87f..aea077a1e 100644 --- a/src/containers/settings/EditSettingsScreen.js +++ b/src/containers/settings/EditSettingsScreen.js | |||
@@ -297,7 +297,9 @@ class EditSettingsScreen extends Component { | |||
297 | scheduledDNDStart: settingsData.scheduledDNDStart, | 297 | scheduledDNDStart: settingsData.scheduledDNDStart, |
298 | scheduledDNDEnd: settingsData.scheduledDNDEnd, | 298 | scheduledDNDEnd: settingsData.scheduledDNDEnd, |
299 | enableGPUAcceleration: Boolean(settingsData.enableGPUAcceleration), | 299 | enableGPUAcceleration: Boolean(settingsData.enableGPUAcceleration), |
300 | enableGlobalHideShortcut: Boolean(settingsData.enableGlobalHideShortcut), | 300 | enableGlobalHideShortcut: Boolean( |
301 | settingsData.enableGlobalHideShortcut, | ||
302 | ), | ||
301 | showDisabledServices: Boolean(settingsData.showDisabledServices), | 303 | showDisabledServices: Boolean(settingsData.showDisabledServices), |
302 | darkMode: Boolean(settingsData.darkMode), | 304 | darkMode: Boolean(settingsData.darkMode), |
303 | adaptableDarkMode: Boolean(settingsData.adaptableDarkMode), | 305 | adaptableDarkMode: Boolean(settingsData.adaptableDarkMode), |
@@ -305,7 +307,9 @@ class EditSettingsScreen extends Component { | |||
305 | splitMode: Boolean(settingsData.splitMode), | 307 | splitMode: Boolean(settingsData.splitMode), |
306 | serviceRibbonWidth: Number(settingsData.serviceRibbonWidth), | 308 | serviceRibbonWidth: Number(settingsData.serviceRibbonWidth), |
307 | iconSize: Number(settingsData.iconSize), | 309 | iconSize: Number(settingsData.iconSize), |
308 | enableLongPressServiceHint: Boolean(settingsData.enableLongPressServiceHint), | 310 | enableLongPressServiceHint: Boolean( |
311 | settingsData.enableLongPressServiceHint, | ||
312 | ), | ||
309 | useVerticalStyle: Boolean(settingsData.useVerticalStyle), | 313 | useVerticalStyle: Boolean(settingsData.useVerticalStyle), |
310 | alwaysShowWorkspaces: Boolean(settingsData.alwaysShowWorkspaces), | 314 | alwaysShowWorkspaces: Boolean(settingsData.alwaysShowWorkspaces), |
311 | accentColor: settingsData.accentColor, | 315 | accentColor: settingsData.accentColor, |
diff --git a/src/containers/settings/RecipesScreen.js b/src/containers/settings/RecipesScreen.js index 832c2db10..7f55e54c5 100644 --- a/src/containers/settings/RecipesScreen.js +++ b/src/containers/settings/RecipesScreen.js | |||
@@ -130,21 +130,21 @@ class RecipesScreen extends Component { | |||
130 | 130 | ||
131 | const allRecipes = this.state.needle | 131 | const allRecipes = this.state.needle |
132 | ? this.prepareRecipes([ | 132 | ? this.prepareRecipes([ |
133 | // All search recipes from server | 133 | // All search recipes from server |
134 | ...recipePreviews.searchResults, | 134 | ...recipePreviews.searchResults, |
135 | // All search recipes from local recipes | 135 | // All search recipes from local recipes |
136 | ...this.createPreviews( | 136 | ...this.createPreviews( |
137 | this.customRecipes.filter( | 137 | this.customRecipes.filter( |
138 | service => | 138 | service => |
139 | service.name | 139 | service.name |
140 | .toLowerCase() | 140 | .toLowerCase() |
141 | .includes(this.state.needle.toLowerCase()) || | 141 | .includes(this.state.needle.toLowerCase()) || |
142 | (service.aliases || []).some(alias => | 142 | (service.aliases || []).some(alias => |
143 | alias.toLowerCase().includes(this.state.needle.toLowerCase()), | 143 | alias.toLowerCase().includes(this.state.needle.toLowerCase()), |
144 | ), | 144 | ), |
145 | ), | ||
145 | ), | 146 | ), |
146 | ), | 147 | ]).sort(this._sortByName) |
147 | ]).sort(this._sortByName) | ||
148 | : recipeFilter; | 148 | : recipeFilter; |
149 | 149 | ||
150 | const customWebsiteRecipe = recipePreviews.all.find( | 150 | const customWebsiteRecipe = recipePreviews.all.find( |
diff --git a/src/electron/exception.ts b/src/electron/exception.ts index 0065e2604..ada98d17b 100644 --- a/src/electron/exception.ts +++ b/src/electron/exception.ts | |||
@@ -1,4 +1,4 @@ | |||
1 | process.on('uncaughtException', (err) => { | 1 | process.on('uncaughtException', err => { |
2 | // handle the error safely | 2 | // handle the error safely |
3 | console.error(err); | 3 | console.error(err); |
4 | }); | 4 | }); |
diff --git a/src/electron/ipc-api/sessionStorage.ts b/src/electron/ipc-api/sessionStorage.ts index 3eda568a1..1ff0a51ea 100644 --- a/src/electron/ipc-api/sessionStorage.ts +++ b/src/electron/ipc-api/sessionStorage.ts | |||
@@ -6,7 +6,11 @@ const debug = require('debug')('Ferdi:ipcApi:sessionStorage'); | |||
6 | 6 | ||
7 | function deduceSession(serviceId: string | undefined | null): Session { | 7 | function deduceSession(serviceId: string | undefined | null): Session { |
8 | if (serviceId) { | 8 | if (serviceId) { |
9 | return session.fromPartition(serviceId === TODOS_PARTITION_ID ? TODOS_PARTITION_ID : `persist:service-${serviceId}`); | 9 | return session.fromPartition( |
10 | serviceId === TODOS_PARTITION_ID | ||
11 | ? TODOS_PARTITION_ID | ||
12 | : `persist:service-${serviceId}`, | ||
13 | ); | ||
10 | } | 14 | } |
11 | return session.defaultSession; | 15 | return session.defaultSession; |
12 | } | 16 | } |
diff --git a/src/enforce-macos-app-location.ts b/src/enforce-macos-app-location.ts index 0f858013d..0e6bf9ecc 100644 --- a/src/enforce-macos-app-location.ts +++ b/src/enforce-macos-app-location.ts | |||
@@ -12,11 +12,9 @@ export function enforceMacOSAppLocation() { | |||
12 | const clickedButtonIndex = api.dialog.showMessageBoxSync({ | 12 | const clickedButtonIndex = api.dialog.showMessageBoxSync({ |
13 | type: 'error', | 13 | type: 'error', |
14 | message: 'Move to Applications folder?', | 14 | message: 'Move to Applications folder?', |
15 | detail: 'Ferdi must live in the Applications folder to be able to run correctly.', | 15 | detail: |
16 | buttons: [ | 16 | 'Ferdi must live in the Applications folder to be able to run correctly.', |
17 | 'Move to Applications folder', | 17 | buttons: ['Move to Applications folder', 'Quit Ferdi'], |
18 | 'Quit Ferdi', | ||
19 | ], | ||
20 | defaultId: 0, | 18 | defaultId: 0, |
21 | cancelId: 1, | 19 | cancelId: 1, |
22 | }); | 20 | }); |
@@ -28,13 +26,13 @@ export function enforceMacOSAppLocation() { | |||
28 | 26 | ||
29 | api.app.moveToApplicationsFolder({ | 27 | api.app.moveToApplicationsFolder({ |
30 | conflictHandler: conflict => { | 28 | conflictHandler: conflict => { |
31 | if (conflict === 'existsAndRunning') { // Can't replace the active version of the app | 29 | if (conflict === 'existsAndRunning') { |
30 | // Can't replace the active version of the app | ||
32 | api.dialog.showMessageBoxSync({ | 31 | api.dialog.showMessageBoxSync({ |
33 | type: 'error', | 32 | type: 'error', |
34 | message: 'Another version of Ferdi is currently running. Quit it, then launch this version of the app again.', | 33 | message: |
35 | buttons: [ | 34 | 'Another version of Ferdi is currently running. Quit it, then launch this version of the app again.', |
36 | 'OK', | 35 | buttons: ['OK'], |
37 | ], | ||
38 | }); | 36 | }); |
39 | 37 | ||
40 | api.app.quit(); | 38 | api.app.quit(); |
diff --git a/src/environment-remote.ts b/src/environment-remote.ts index 192510f37..c87e89772 100644 --- a/src/environment-remote.ts +++ b/src/environment-remote.ts | |||
@@ -14,7 +14,13 @@ import { | |||
14 | LOCAL_TODOS_FRONTEND_URL, | 14 | LOCAL_TODOS_FRONTEND_URL, |
15 | PRODUCTION_TODOS_FRONTEND_URL, | 15 | PRODUCTION_TODOS_FRONTEND_URL, |
16 | } from './config'; | 16 | } from './config'; |
17 | import { chromeVersion, electronVersion, isWindows, nodeVersion, osArch } from './environment'; | 17 | import { |
18 | chromeVersion, | ||
19 | electronVersion, | ||
20 | isWindows, | ||
21 | nodeVersion, | ||
22 | osArch, | ||
23 | } from './environment'; | ||
18 | 24 | ||
19 | // @ts-expect-error Cannot find module './buildInfo.json' or its corresponding type declarations. | 25 | // @ts-expect-error Cannot find module './buildInfo.json' or its corresponding type declarations. |
20 | import * as buildInfo from './buildInfo.json'; | 26 | import * as buildInfo from './buildInfo.json'; |
@@ -28,14 +34,20 @@ if (process.env.FERDI_APPDATA_DIR != null) { | |||
28 | app.setPath('appData', process.env.FERDI_APPDATA_DIR); | 34 | app.setPath('appData', process.env.FERDI_APPDATA_DIR); |
29 | app.setPath('userData', app.getPath('appData')); | 35 | app.setPath('userData', app.getPath('appData')); |
30 | } else if (process.env.PORTABLE_EXECUTABLE_DIR != null) { | 36 | } else if (process.env.PORTABLE_EXECUTABLE_DIR != null) { |
31 | app.setPath('appData', join(process.env.PORTABLE_EXECUTABLE_DIR, `${app.name}AppData`)); | 37 | app.setPath( |
38 | 'appData', | ||
39 | join(process.env.PORTABLE_EXECUTABLE_DIR, `${app.name}AppData`), | ||
40 | ); | ||
32 | app.setPath('userData', join(app.getPath('appData'), `${app.name}AppData`)); | 41 | app.setPath('userData', join(app.getPath('appData'), `${app.name}AppData`)); |
33 | } else if (isWindows && process.env.APPDATA != null) { | 42 | } else if (isWindows && process.env.APPDATA != null) { |
34 | app.setPath('appData', process.env.APPDATA); | 43 | app.setPath('appData', process.env.APPDATA); |
35 | app.setPath('userData', join(app.getPath('appData'), app.name)); | 44 | app.setPath('userData', join(app.getPath('appData'), app.name)); |
36 | } | 45 | } |
37 | 46 | ||
38 | export const isDevMode = process.env.ELECTRON_IS_DEV !== undefined ? Number.parseInt(process.env.ELECTRON_IS_DEV, 10) === 1 : !app.isPackaged; | 47 | export const isDevMode = |
48 | process.env.ELECTRON_IS_DEV !== undefined | ||
49 | ? Number.parseInt(process.env.ELECTRON_IS_DEV, 10) === 1 | ||
50 | : !app.isPackaged; | ||
39 | if (isDevMode) { | 51 | if (isDevMode) { |
40 | app.setPath('userData', join(app.getPath('appData'), `${app.name}Dev`)); | 52 | app.setPath('userData', join(app.getPath('appData'), `${app.name}Dev`)); |
41 | } | 53 | } |
diff --git a/src/features/settingsWS/actions.ts b/src/features/settingsWS/actions.ts index 631670c8a..03a398eb5 100755 --- a/src/features/settingsWS/actions.ts +++ b/src/features/settingsWS/actions.ts | |||
@@ -1,10 +1,13 @@ | |||
1 | import PropTypes from 'prop-types'; | 1 | import PropTypes from 'prop-types'; |
2 | import { createActionsFromDefinitions } from '../../actions/lib/actions'; | 2 | import { createActionsFromDefinitions } from '../../actions/lib/actions'; |
3 | 3 | ||
4 | export const settingsWSActions = createActionsFromDefinitions({ | 4 | export const settingsWSActions = createActionsFromDefinitions( |
5 | greet: { | 5 | { |
6 | name: PropTypes.string.isRequired, | 6 | greet: { |
7 | name: PropTypes.string.isRequired, | ||
8 | }, | ||
7 | }, | 9 | }, |
8 | }, PropTypes.checkPropTypes); | 10 | PropTypes.checkPropTypes, |
11 | ); | ||
9 | 12 | ||
10 | export default settingsWSActions; | 13 | export default settingsWSActions; |
diff --git a/src/features/todos/components/TodosWebview.js b/src/features/todos/components/TodosWebview.js index b31c7d858..1d423544b 100644 --- a/src/features/todos/components/TodosWebview.js +++ b/src/features/todos/components/TodosWebview.js | |||
@@ -7,14 +7,15 @@ import classnames from 'classnames'; | |||
7 | 7 | ||
8 | import { TODOS_PARTITION_ID } from '../../../config'; | 8 | import { TODOS_PARTITION_ID } from '../../../config'; |
9 | 9 | ||
10 | const styles = (theme) => ({ | 10 | const styles = theme => ({ |
11 | root: { | 11 | root: { |
12 | background: theme.colorBackground, | 12 | background: theme.colorBackground, |
13 | position: 'relative', | 13 | position: 'relative', |
14 | borderLeft: [1, 'solid', theme.todos.todosLayer.borderLeftColor], | 14 | borderLeft: [1, 'solid', theme.todos.todosLayer.borderLeftColor], |
15 | zIndex: 300, | 15 | zIndex: 300, |
16 | 16 | ||
17 | transform: ({ isVisible, width, isTodosServiceActive }) => `translateX(${isVisible || isTodosServiceActive ? 0 : width}px)`, | 17 | transform: ({ isVisible, width, isTodosServiceActive }) => |
18 | `translateX(${isVisible || isTodosServiceActive ? 0 : width}px)`, | ||
18 | 19 | ||
19 | '& webview': { | 20 | '& webview': { |
20 | height: '100%', | 21 | height: '100%', |
@@ -79,7 +80,7 @@ class TodosWebview extends Component { | |||
79 | this.node.addEventListener('mouseleave', this.stopResize.bind(this)); | 80 | this.node.addEventListener('mouseleave', this.stopResize.bind(this)); |
80 | } | 81 | } |
81 | 82 | ||
82 | startResize = (event) => { | 83 | startResize = event => { |
83 | this.setState({ | 84 | this.setState({ |
84 | isDragging: true, | 85 | isDragging: true, |
85 | initialPos: event.clientX, | 86 | initialPos: event.clientX, |
@@ -126,7 +127,7 @@ class TodosWebview extends Component { | |||
126 | startListeningToIpcMessages() { | 127 | startListeningToIpcMessages() { |
127 | const { handleClientMessage } = this.props; | 128 | const { handleClientMessage } = this.props; |
128 | if (!this.webview) return; | 129 | if (!this.webview) return; |
129 | this.webview.addEventListener('ipc-message', (e) => { | 130 | this.webview.addEventListener('ipc-message', e => { |
130 | // console.log(e); | 131 | // console.log(e); |
131 | handleClientMessage({ channel: e.channel, message: e.args[0] }); | 132 | handleClientMessage({ channel: e.channel, message: e.args[0] }); |
132 | }); | 133 | }); |
@@ -159,7 +160,7 @@ class TodosWebview extends Component { | |||
159 | })} | 160 | })} |
160 | style={{ width: displayedWidth }} | 161 | style={{ width: displayedWidth }} |
161 | onMouseUp={() => this.stopResize()} | 162 | onMouseUp={() => this.stopResize()} |
162 | ref={(node) => { | 163 | ref={node => { |
163 | this.node = node; | 164 | this.node = node; |
164 | }} | 165 | }} |
165 | id="todos-panel" | 166 | id="todos-panel" |
@@ -170,7 +171,7 @@ class TodosWebview extends Component { | |||
170 | left: delta, | 171 | left: delta, |
171 | ...(isDragging ? { width: 600, marginLeft: -200 } : {}), | 172 | ...(isDragging ? { width: 600, marginLeft: -200 } : {}), |
172 | }} // This hack is required as resizing with webviews beneath behaves quite bad | 173 | }} // This hack is required as resizing with webviews beneath behaves quite bad |
173 | onMouseDown={(e) => this.startResize(e)} | 174 | onMouseDown={e => this.startResize(e)} |
174 | /> | 175 | /> |
175 | {isDragging && ( | 176 | {isDragging && ( |
176 | <div | 177 | <div |
@@ -188,7 +189,7 @@ class TodosWebview extends Component { | |||
188 | }} | 189 | }} |
189 | partition={TODOS_PARTITION_ID} | 190 | partition={TODOS_PARTITION_ID} |
190 | preload="./features/todos/preload.js" | 191 | preload="./features/todos/preload.js" |
191 | ref={(webview) => { | 192 | ref={webview => { |
192 | this.webview = webview ? webview.view : null; | 193 | this.webview = webview ? webview.view : null; |
193 | }} | 194 | }} |
194 | useragent={userAgent} | 195 | useragent={userAgent} |
diff --git a/src/features/todos/containers/TodosScreen.js b/src/features/todos/containers/TodosScreen.js index c2b6a5af4..536810d2d 100644 --- a/src/features/todos/containers/TodosScreen.js +++ b/src/features/todos/containers/TodosScreen.js | |||
@@ -10,24 +10,31 @@ import { TODOS_MIN_WIDTH } from '../../../config'; | |||
10 | import { todoActions } from '../actions'; | 10 | import { todoActions } from '../actions'; |
11 | import ServicesStore from '../../../stores/ServicesStore'; | 11 | import ServicesStore from '../../../stores/ServicesStore'; |
12 | 12 | ||
13 | @inject('stores', 'actions') @observer | 13 | @inject('stores', 'actions') |
14 | @observer | ||
14 | class TodosScreen extends Component { | 15 | class TodosScreen extends Component { |
15 | render() { | 16 | render() { |
16 | if (!todosStore || !todosStore.isFeatureActive || todosStore.isTodosPanelForceHidden) { | 17 | if ( |
18 | !todosStore || | ||
19 | !todosStore.isFeatureActive || | ||
20 | todosStore.isTodosPanelForceHidden | ||
21 | ) { | ||
17 | return null; | 22 | return null; |
18 | } | 23 | } |
19 | 24 | ||
20 | return ( | 25 | return ( |
21 | <ErrorBoundary> | 26 | <ErrorBoundary> |
22 | <TodosWebview | 27 | <TodosWebview |
23 | isTodosServiceActive={this.props.stores.services.isTodosServiceActive || false} | 28 | isTodosServiceActive={ |
29 | this.props.stores.services.isTodosServiceActive || false | ||
30 | } | ||
24 | isVisible={todosStore.isTodosPanelVisible} | 31 | isVisible={todosStore.isTodosPanelVisible} |
25 | togglePanel={todoActions.toggleTodosPanel} | 32 | togglePanel={todoActions.toggleTodosPanel} |
26 | handleClientMessage={todoActions.handleClientMessage} | 33 | handleClientMessage={todoActions.handleClientMessage} |
27 | setTodosWebview={(webview) => todoActions.setTodosWebview({ webview })} | 34 | setTodosWebview={webview => todoActions.setTodosWebview({ webview })} |
28 | width={todosStore.width} | 35 | width={todosStore.width} |
29 | minWidth={TODOS_MIN_WIDTH} | 36 | minWidth={TODOS_MIN_WIDTH} |
30 | resize={(width) => todoActions.resize({ width })} | 37 | resize={width => todoActions.resize({ width })} |
31 | userAgent={todosStore.userAgent} | 38 | userAgent={todosStore.userAgent} |
32 | todoUrl={todosStore.todoUrl} | 39 | todoUrl={todosStore.todoUrl} |
33 | isTodoUrlValid={todosStore.isTodoUrlValid} | 40 | isTodoUrlValid={todosStore.isTodoUrlValid} |
diff --git a/src/features/utils/ActionBinding.ts b/src/features/utils/ActionBinding.ts index 787166d44..16308fae4 100644 --- a/src/features/utils/ActionBinding.ts +++ b/src/features/utils/ActionBinding.ts | |||
@@ -24,6 +24,5 @@ export default class ActionBinding { | |||
24 | } | 24 | } |
25 | } | 25 | } |
26 | 26 | ||
27 | export const createActionBindings = (actions) => ( | 27 | export const createActionBindings = actions => |
28 | actions.map((a) => new ActionBinding(a)) | 28 | actions.map(a => new ActionBinding(a)); |
29 | ); | ||
diff --git a/src/features/utils/FeatureStore.test.js b/src/features/utils/FeatureStore.test.js index 92308bf52..1995431bd 100644 --- a/src/features/utils/FeatureStore.test.js +++ b/src/features/utils/FeatureStore.test.js | |||
@@ -5,9 +5,12 @@ import { createActionsFromDefinitions } from '../../actions/lib/actions'; | |||
5 | import { createActionBindings } from './ActionBinding'; | 5 | import { createActionBindings } from './ActionBinding'; |
6 | import { createReactions } from '../../stores/lib/Reaction'; | 6 | import { createReactions } from '../../stores/lib/Reaction'; |
7 | 7 | ||
8 | const actions = createActionsFromDefinitions({ | 8 | const actions = createActionsFromDefinitions( |
9 | countUp: {}, | 9 | { |
10 | }, PropTypes.checkPropTypes); | 10 | countUp: {}, |
11 | }, | ||
12 | PropTypes.checkPropTypes, | ||
13 | ); | ||
11 | 14 | ||
12 | class TestFeatureStore extends FeatureStore { | 15 | class TestFeatureStore extends FeatureStore { |
13 | @observable count = 0; | 16 | @observable count = 0; |
@@ -15,12 +18,10 @@ class TestFeatureStore extends FeatureStore { | |||
15 | reactionInvokedCount = 0; | 18 | reactionInvokedCount = 0; |
16 | 19 | ||
17 | start() { | 20 | start() { |
18 | this._registerActions(createActionBindings([ | 21 | this._registerActions( |
19 | [actions.countUp, this._countUp], | 22 | createActionBindings([[actions.countUp, this._countUp]]), |
20 | ])); | 23 | ); |
21 | this._registerReactions(createReactions([ | 24 | this._registerReactions(createReactions([this._countReaction])); |
22 | this._countReaction, | ||
23 | ])); | ||
24 | } | 25 | } |
25 | 26 | ||
26 | _countUp = () => { | 27 | _countUp = () => { |
@@ -29,7 +30,7 @@ class TestFeatureStore extends FeatureStore { | |||
29 | 30 | ||
30 | _countReaction = () => { | 31 | _countReaction = () => { |
31 | this.reactionInvokedCount += 1; | 32 | this.reactionInvokedCount += 1; |
32 | } | 33 | }; |
33 | } | 34 | } |
34 | 35 | ||
35 | describe('FeatureStore', () => { | 36 | describe('FeatureStore', () => { |
diff --git a/src/features/workspaces/components/WorkspaceDrawerItem.js b/src/features/workspaces/components/WorkspaceDrawerItem.js index 237f9488b..d3c9fa767 100644 --- a/src/features/workspaces/components/WorkspaceDrawerItem.js +++ b/src/features/workspaces/components/WorkspaceDrawerItem.js | |||
@@ -118,14 +118,12 @@ class WorkspaceDrawerItem extends Component { | |||
118 | isActive ? classes.isActiveItem : null, | 118 | isActive ? classes.isActiveItem : null, |
119 | ])} | 119 | ])} |
120 | onClick={onClick} | 120 | onClick={onClick} |
121 | onContextMenu={() => | 121 | onContextMenu={() => onContextMenuEditClick && contextMenu.popup()} |
122 | onContextMenuEditClick && contextMenu.popup() | ||
123 | } | ||
124 | data-tip={`${ | 122 | data-tip={`${ |
125 | shortcutIndex <= 9 | 123 | shortcutIndex <= 9 |
126 | ? `(${cmdOrCtrlShortcutKey(false)}+${altKey( | 124 | ? `(${cmdOrCtrlShortcutKey(false)}+${altKey( |
127 | false, | 125 | false, |
128 | )}+${shortcutIndex})` | 126 | )}+${shortcutIndex})` |
129 | : '' | 127 | : '' |
130 | }`} | 128 | }`} |
131 | > | 129 | > |
diff --git a/src/features/workspaces/components/WorkspacesDashboard.js b/src/features/workspaces/components/WorkspacesDashboard.js index 78b758e7d..8ab9174d3 100644 --- a/src/features/workspaces/components/WorkspacesDashboard.js +++ b/src/features/workspaces/components/WorkspacesDashboard.js | |||
@@ -40,7 +40,8 @@ const messages = defineMessages({ | |||
40 | }, | 40 | }, |
41 | workspaceFeatureInfo: { | 41 | workspaceFeatureInfo: { |
42 | id: 'settings.workspaces.workspaceFeatureInfo', | 42 | id: 'settings.workspaces.workspaceFeatureInfo', |
43 | defaultMessage: 'Ferdi Workspaces let you focus on what’s important right now. Set up different sets of services and easily switch between them at any time. You decide which services you need when and where, so we can help you stay on top of your game - or easily switch off from work whenever you want.', | 43 | defaultMessage: |
44 | 'Ferdi Workspaces let you focus on what’s important right now. Set up different sets of services and easily switch between them at any time. You decide which services you need when and where, so we can help you stay on top of your game - or easily switch off from work whenever you want.', | ||
44 | }, | 45 | }, |
45 | workspaceFeatureHeadline: { | 46 | workspaceFeatureHeadline: { |
46 | id: 'settings.workspaces.workspaceFeatureHeadline', | 47 | id: 'settings.workspaces.workspaceFeatureHeadline', |
diff --git a/src/features/workspaces/store.js b/src/features/workspaces/store.js index db2b69f99..0fa43b723 100644 --- a/src/features/workspaces/store.js +++ b/src/features/workspaces/store.js | |||
@@ -124,7 +124,7 @@ export default class WorkspacesStore extends FeatureStore { | |||
124 | this.isFeatureActive = false; | 124 | this.isFeatureActive = false; |
125 | } | 125 | } |
126 | 126 | ||
127 | filterServicesByActiveWorkspace = (services) => { | 127 | filterServicesByActiveWorkspace = services => { |
128 | const { activeWorkspace, isFeatureActive } = this; | 128 | const { activeWorkspace, isFeatureActive } = this; |
129 | if (isFeatureActive && activeWorkspace) { | 129 | if (isFeatureActive && activeWorkspace) { |
130 | return this.getWorkspaceServices(activeWorkspace); | 130 | return this.getWorkspaceServices(activeWorkspace); |
@@ -134,14 +134,14 @@ export default class WorkspacesStore extends FeatureStore { | |||
134 | 134 | ||
135 | getWorkspaceServices(workspace) { | 135 | getWorkspaceServices(workspace) { |
136 | const { services } = this.stores; | 136 | const { services } = this.stores; |
137 | return workspace.services.map((id) => services.one(id)).filter((s) => !!s); | 137 | return workspace.services.map(id => services.one(id)).filter(s => !!s); |
138 | } | 138 | } |
139 | 139 | ||
140 | // ========== PRIVATE METHODS ========= // | 140 | // ========== PRIVATE METHODS ========= // |
141 | 141 | ||
142 | _getWorkspaceById = (id) => this.workspaces.find((w) => w.id === id); | 142 | _getWorkspaceById = id => this.workspaces.find(w => w.id === id); |
143 | 143 | ||
144 | _updateSettings = (changes) => { | 144 | _updateSettings = changes => { |
145 | localStorage.setItem('workspaces', { | 145 | localStorage.setItem('workspaces', { |
146 | ...this.settings, | 146 | ...this.settings, |
147 | ...changes, | 147 | ...changes, |
@@ -191,9 +191,15 @@ export default class WorkspacesStore extends FeatureStore { | |||
191 | this.isSwitchingWorkspace = false; | 191 | this.isSwitchingWorkspace = false; |
192 | this.nextWorkspace = null; | 192 | this.nextWorkspace = null; |
193 | if (this.stores.settings.app.splitMode) { | 193 | if (this.stores.settings.app.splitMode) { |
194 | const serviceNames = new Set(this.getWorkspaceServices(workspace).map(service => service.name)); | 194 | const serviceNames = new Set( |
195 | for (const wrapper of document.querySelectorAll('.services__webview-wrapper')) { | 195 | this.getWorkspaceServices(workspace).map(service => service.name), |
196 | wrapper.style.display = serviceNames.has(wrapper.dataset.name) ? '' : 'none'; | 196 | ); |
197 | for (const wrapper of document.querySelectorAll( | ||
198 | '.services__webview-wrapper', | ||
199 | )) { | ||
200 | wrapper.style.display = serviceNames.has(wrapper.dataset.name) | ||
201 | ? '' | ||
202 | : 'none'; | ||
197 | } | 203 | } |
198 | } | 204 | } |
199 | }, 1000); | 205 | }, 1000); |
@@ -212,7 +218,9 @@ export default class WorkspacesStore extends FeatureStore { | |||
212 | setTimeout(() => { | 218 | setTimeout(() => { |
213 | this.isSwitchingWorkspace = false; | 219 | this.isSwitchingWorkspace = false; |
214 | if (this.stores.settings.app.splitMode) { | 220 | if (this.stores.settings.app.splitMode) { |
215 | for (const wrapper of document.querySelectorAll('.services__webview-wrapper')) { | 221 | for (const wrapper of document.querySelectorAll( |
222 | '.services__webview-wrapper', | ||
223 | )) { | ||
216 | wrapper.style.display = ''; | 224 | wrapper.style.display = ''; |
217 | } | 225 | } |
218 | } | 226 | } |
@@ -262,7 +270,8 @@ export default class WorkspacesStore extends FeatureStore { | |||
262 | const activeService = this.stores.services.active; | 270 | const activeService = this.stores.services.active; |
263 | const workspaceServices = this.getWorkspaceServices(this.activeWorkspace); | 271 | const workspaceServices = this.getWorkspaceServices(this.activeWorkspace); |
264 | if (workspaceServices.length <= 0) return; | 272 | if (workspaceServices.length <= 0) return; |
265 | const isActiveServiceInWorkspace = workspaceServices.includes(activeService); | 273 | const isActiveServiceInWorkspace = |
274 | workspaceServices.includes(activeService); | ||
266 | if (!isActiveServiceInWorkspace) { | 275 | if (!isActiveServiceInWorkspace) { |
267 | this.actions.service.setActive({ | 276 | this.actions.service.setActive({ |
268 | serviceId: workspaceServices[0].id, | 277 | serviceId: workspaceServices[0].id, |
@@ -288,8 +297,10 @@ export default class WorkspacesStore extends FeatureStore { | |||
288 | const isWorkspaceSettingsRoute = router.location.pathname.includes( | 297 | const isWorkspaceSettingsRoute = router.location.pathname.includes( |
289 | WORKSPACES_ROUTES.ROOT, | 298 | WORKSPACES_ROUTES.ROOT, |
290 | ); | 299 | ); |
291 | const isSwitchingToSettingsRoute = !this.isSettingsRouteActive && isWorkspaceSettingsRoute; | 300 | const isSwitchingToSettingsRoute = |
292 | const isLeavingSettingsRoute = !isWorkspaceSettingsRoute && this.isSettingsRouteActive; | 301 | !this.isSettingsRouteActive && isWorkspaceSettingsRoute; |
302 | const isLeavingSettingsRoute = | ||
303 | !isWorkspaceSettingsRoute && this.isSettingsRouteActive; | ||
293 | 304 | ||
294 | if (isSwitchingToSettingsRoute) { | 305 | if (isSwitchingToSettingsRoute) { |
295 | this.isSettingsRouteActive = true; | 306 | this.isSettingsRouteActive = true; |
@@ -300,8 +311,8 @@ export default class WorkspacesStore extends FeatureStore { | |||
300 | } else if (isLeavingSettingsRoute) { | 311 | } else if (isLeavingSettingsRoute) { |
301 | this.isSettingsRouteActive = false; | 312 | this.isSettingsRouteActive = false; |
302 | if ( | 313 | if ( |
303 | !this._wasDrawerOpenBeforeSettingsRoute | 314 | !this._wasDrawerOpenBeforeSettingsRoute && |
304 | && this.isWorkspaceDrawerOpen | 315 | this.isWorkspaceDrawerOpen |
305 | ) { | 316 | ) { |
306 | workspaceActions.toggleWorkspaceDrawer(); | 317 | workspaceActions.toggleWorkspaceDrawer(); |
307 | } | 318 | } |
@@ -311,14 +322,15 @@ export default class WorkspacesStore extends FeatureStore { | |||
311 | _cleanupInvalidServiceReferences = () => { | 322 | _cleanupInvalidServiceReferences = () => { |
312 | const { services } = this.stores; | 323 | const { services } = this.stores; |
313 | const { allServicesRequest } = services; | 324 | const { allServicesRequest } = services; |
314 | const servicesHaveBeenLoaded = allServicesRequest.wasExecuted && !allServicesRequest.isError; | 325 | const servicesHaveBeenLoaded = |
326 | allServicesRequest.wasExecuted && !allServicesRequest.isError; | ||
315 | // Loop through all workspaces and remove invalid service ids (locally) | 327 | // Loop through all workspaces and remove invalid service ids (locally) |
316 | for (const workspace of this.workspaces) { | 328 | for (const workspace of this.workspaces) { |
317 | for (const serviceId of workspace.services) { | 329 | for (const serviceId of workspace.services) { |
318 | if ( | 330 | if ( |
319 | servicesHaveBeenLoaded | 331 | servicesHaveBeenLoaded && |
320 | && !services.one(serviceId) | 332 | !services.one(serviceId) && |
321 | && serviceId !== KEEP_WS_LOADED_USID | 333 | serviceId !== KEEP_WS_LOADED_USID |
322 | ) { | 334 | ) { |
323 | workspace.services.remove(serviceId); | 335 | workspace.services.remove(serviceId); |
324 | } | 336 | } |
diff --git a/src/helpers/array-helpers.ts b/src/helpers/array-helpers.ts index ae5d8d99f..3f8806176 100644 --- a/src/helpers/array-helpers.ts +++ b/src/helpers/array-helpers.ts | |||
@@ -1,4 +1,5 @@ | |||
1 | export const shuffleArray = (arr: any[]) => arr | 1 | export const shuffleArray = (arr: any[]) => |
2 | .map((a) => [Math.random(), a]) | 2 | arr |
3 | .sort((a, b) => a[0] - b[0]) | 3 | .map(a => [Math.random(), a]) |
4 | .map((a) => a[1]); | 4 | .sort((a, b) => a[0] - b[0]) |
5 | .map(a => a[1]); | ||
diff --git a/src/helpers/async-helpers.ts b/src/helpers/async-helpers.ts index aae3c3928..6b1f24b5a 100644 --- a/src/helpers/async-helpers.ts +++ b/src/helpers/async-helpers.ts | |||
@@ -1,5 +1,3 @@ | |||
1 | /* eslint-disable import/prefer-default-export */ | ||
2 | |||
3 | export function sleep(ms: number = 0) { | 1 | export function sleep(ms: number = 0) { |
4 | return new Promise((r) => setTimeout(r, ms)); | 2 | return new Promise(r => setTimeout(r, ms)); |
5 | } | 3 | } |
diff --git a/src/helpers/routing-helpers.ts b/src/helpers/routing-helpers.ts index 18169f01b..46895aa6b 100644 --- a/src/helpers/routing-helpers.ts +++ b/src/helpers/routing-helpers.ts | |||
@@ -1,3 +1,4 @@ | |||
1 | import RouteParser from 'route-parser'; | 1 | import RouteParser from 'route-parser'; |
2 | 2 | ||
3 | export const matchRoute = (pattern: string, path: string) => new RouteParser(pattern).match(path); | 3 | export const matchRoute = (pattern: string, path: string) => |
4 | new RouteParser(pattern).match(path); | ||
diff --git a/src/helpers/schedule-helpers.ts b/src/helpers/schedule-helpers.ts index 55b7c1e6f..37caffd79 100644 --- a/src/helpers/schedule-helpers.ts +++ b/src/helpers/schedule-helpers.ts | |||
@@ -1,17 +1,9 @@ | |||
1 | /* eslint-disable import/prefer-default-export */ | ||
2 | |||
3 | export function isInTimeframe(start: string, end: string) { | 1 | export function isInTimeframe(start: string, end: string) { |
4 | const [ | 2 | const [startHourStr, startMinuteStr] = start.split(':'); |
5 | startHourStr, | ||
6 | startMinuteStr, | ||
7 | ] = start.split(':'); | ||
8 | const startHour = Number.parseInt(startHourStr, 10); | 3 | const startHour = Number.parseInt(startHourStr, 10); |
9 | const startMinute = Number.parseInt(startMinuteStr, 10); | 4 | const startMinute = Number.parseInt(startMinuteStr, 10); |
10 | 5 | ||
11 | const [ | 6 | const [endHourStr, endMinuteStr] = end.split(':'); |
12 | endHourStr, | ||
13 | endMinuteStr, | ||
14 | ] = end.split(':'); | ||
15 | const endHour = Number.parseInt(endHourStr, 10); | 7 | const endHour = Number.parseInt(endHourStr, 10); |
16 | const endMinute = Number.parseInt(endMinuteStr, 10); | 8 | const endMinute = Number.parseInt(endMinuteStr, 10); |
17 | 9 | ||
@@ -20,46 +12,31 @@ export function isInTimeframe(start: string, end: string) { | |||
20 | 12 | ||
21 | // Check if the end time is before the start time (scheduled overnight) | 13 | // Check if the end time is before the start time (scheduled overnight) |
22 | // as we need to change our checks based on this | 14 | // as we need to change our checks based on this |
23 | const endBeforeStart = (startHour > endHour || (startHour === endHour && startMinute > endMinute)); | 15 | const endBeforeStart = |
16 | startHour > endHour || (startHour === endHour && startMinute > endMinute); | ||
24 | 17 | ||
25 | if ( | 18 | if ( |
26 | // End is after start (e.g. 09:00-17:00) | 19 | // End is after start (e.g. 09:00-17:00) |
27 | !endBeforeStart | 20 | !endBeforeStart && |
28 | // Check if past start | 21 | // Check if past start |
29 | && ((currentHour > startHour | 22 | (currentHour > startHour || |
30 | || ( | 23 | (currentHour === startHour && currentMinute >= startMinute)) && |
31 | currentHour === startHour | 24 | // Check that not past end |
32 | && currentMinute >= startMinute | 25 | (currentHour < endHour || |
33 | ) | 26 | (currentHour === endHour && currentMinute < endMinute)) |
34 | ) | ||
35 | // Check that not past end | ||
36 | && (currentHour < endHour | ||
37 | || ( | ||
38 | currentHour === endHour | ||
39 | && currentMinute < endMinute | ||
40 | ) | ||
41 | )) | ||
42 | ) { | 27 | ) { |
43 | // We are in scheduled timeframe | 28 | // We are in scheduled timeframe |
44 | return true; | 29 | return true; |
45 | } | 30 | } |
46 | if ( | 31 | if ( |
47 | // End is before start (e.g. 17:00-09:00) | 32 | // End is before start (e.g. 17:00-09:00) |
48 | endBeforeStart | 33 | endBeforeStart && |
49 | // Check if past start | 34 | // Check if past start |
50 | && ((currentHour > startHour | 35 | (currentHour > startHour || |
51 | || ( | 36 | (currentHour === startHour && currentMinute >= startMinute) || |
52 | currentHour === startHour | ||
53 | && currentMinute >= startMinute | ||
54 | ) | ||
55 | ) | ||
56 | // Check that we are not past end | 37 | // Check that we are not past end |
57 | || (currentHour < endHour | 38 | currentHour < endHour || |
58 | || ( | 39 | (currentHour === endHour && currentMinute < endMinute)) |
59 | currentHour === endHour | ||
60 | && currentMinute < endMinute | ||
61 | ) | ||
62 | )) | ||
63 | ) { | 40 | ) { |
64 | // We are also in scheduled timeframe | 41 | // We are also in scheduled timeframe |
65 | return true; | 42 | return true; |
diff --git a/src/helpers/url-helpers.ts b/src/helpers/url-helpers.ts index 1e87ecabb..135f06cbf 100644 --- a/src/helpers/url-helpers.ts +++ b/src/helpers/url-helpers.ts | |||
@@ -29,7 +29,10 @@ export async function openPath(folderName: string) { | |||
29 | } | 29 | } |
30 | 30 | ||
31 | // TODO: Need to verify and fix/remove the skipping logic. Ideally, we should never skip this check | 31 | // TODO: Need to verify and fix/remove the skipping logic. Ideally, we should never skip this check |
32 | export function openExternalUrl(url: string | URL, skipValidityCheck: boolean = false) { | 32 | export function openExternalUrl( |
33 | url: string | URL, | ||
34 | skipValidityCheck: boolean = false, | ||
35 | ) { | ||
33 | debug('Open url:', url, 'with skipValidityCheck:', skipValidityCheck); | 36 | debug('Open url:', url, 'with skipValidityCheck:', skipValidityCheck); |
34 | if (skipValidityCheck || isValidExternalURL(url)) { | 37 | if (skipValidityCheck || isValidExternalURL(url)) { |
35 | shell.openExternal(url.toString()); | 38 | shell.openExternal(url.toString()); |
diff --git a/src/internal-server/app/Controllers/Http/RecipeController.js b/src/internal-server/app/Controllers/Http/RecipeController.js index d44839db1..1b0ac7035 100644 --- a/src/internal-server/app/Controllers/Http/RecipeController.js +++ b/src/internal-server/app/Controllers/Http/RecipeController.js | |||
@@ -56,7 +56,6 @@ class RecipeController { | |||
56 | let remoteResults = []; | 56 | let remoteResults = []; |
57 | // eslint-disable-next-line eqeqeq | 57 | // eslint-disable-next-line eqeqeq |
58 | if (Env.get('CONNECT_WITH_FRANZ') == 'true') { | 58 | if (Env.get('CONNECT_WITH_FRANZ') == 'true') { |
59 | // eslint-disable-line eqeqeq | ||
60 | remoteResults = JSON.parse( | 59 | remoteResults = JSON.parse( |
61 | await ( | 60 | await ( |
62 | await fetch( | 61 | await fetch( |
@@ -112,7 +111,6 @@ class RecipeController { | |||
112 | } | 111 | } |
113 | // eslint-disable-next-line eqeqeq | 112 | // eslint-disable-next-line eqeqeq |
114 | if (Env.get('CONNECT_WITH_FRANZ') == 'true') { | 113 | if (Env.get('CONNECT_WITH_FRANZ') == 'true') { |
115 | // eslint-disable-line eqeqeq | ||
116 | return response.redirect(`${RECIPES_URL}/download/${service}`); | 114 | return response.redirect(`${RECIPES_URL}/download/${service}`); |
117 | } | 115 | } |
118 | return response.status(400).send({ | 116 | return response.status(400).send({ |
diff --git a/src/internal-server/app/Controllers/Http/ServiceController.js b/src/internal-server/app/Controllers/Http/ServiceController.js index 133473b68..dedb5a12b 100644 --- a/src/internal-server/app/Controllers/Http/ServiceController.js +++ b/src/internal-server/app/Controllers/Http/ServiceController.js | |||
@@ -36,7 +36,7 @@ class ServiceController { | |||
36 | } while ( | 36 | } while ( |
37 | (await Service.query().where('serviceId', serviceId).fetch()).rows | 37 | (await Service.query().where('serviceId', serviceId).fetch()).rows |
38 | .length > 0 | 38 | .length > 0 |
39 | ); // eslint-disable-line no-await-in-loop | 39 | ); |
40 | 40 | ||
41 | await Service.create({ | 41 | await Service.create({ |
42 | serviceId, | 42 | serviceId, |
diff --git a/src/internal-server/app/Controllers/Http/UserController.js b/src/internal-server/app/Controllers/Http/UserController.js index 25b5277bd..2ecc8241c 100644 --- a/src/internal-server/app/Controllers/Http/UserController.js +++ b/src/internal-server/app/Controllers/Http/UserController.js | |||
@@ -171,7 +171,6 @@ class UserController { | |||
171 | return response.status(401).send(errorMessage); | 171 | return response.status(401).send(errorMessage); |
172 | } | 172 | } |
173 | 173 | ||
174 | // eslint-disable-next-line prefer-destructuring | ||
175 | token = content.token; | 174 | token = content.token; |
176 | } catch (error) { | 175 | } catch (error) { |
177 | return response.status(401).send({ | 176 | return response.status(401).send({ |
@@ -300,7 +299,7 @@ class UserController { | |||
300 | } while ( | 299 | } while ( |
301 | (await Workspace.query().where('workspaceId', newWorkspaceId).fetch()) | 300 | (await Workspace.query().where('workspaceId', newWorkspaceId).fetch()) |
302 | .rows.length > 0 | 301 | .rows.length > 0 |
303 | ); // eslint-disable-line no-await-in-loop | 302 | ); |
304 | 303 | ||
305 | if ( | 304 | if ( |
306 | workspace.services && | 305 | workspace.services && |
@@ -340,7 +339,7 @@ class UserController { | |||
340 | } while ( | 339 | } while ( |
341 | (await Service.query().where('serviceId', newServiceId).fetch()).rows | 340 | (await Service.query().where('serviceId', newServiceId).fetch()).rows |
342 | .length > 0 | 341 | .length > 0 |
343 | ); // eslint-disable-line no-await-in-loop | 342 | ); |
344 | 343 | ||
345 | // store the old serviceId as the key for future lookup | 344 | // store the old serviceId as the key for future lookup |
346 | serviceIdTranslation[service.serviceId] = newServiceId; | 345 | serviceIdTranslation[service.serviceId] = newServiceId; |
diff --git a/src/internal-server/app/Controllers/Http/WorkspaceController.js b/src/internal-server/app/Controllers/Http/WorkspaceController.js index 9d461135e..528721f13 100644 --- a/src/internal-server/app/Controllers/Http/WorkspaceController.js +++ b/src/internal-server/app/Controllers/Http/WorkspaceController.js | |||
@@ -27,7 +27,7 @@ class WorkspaceController { | |||
27 | } while ( | 27 | } while ( |
28 | (await Workspace.query().where('workspaceId', workspaceId).fetch()).rows | 28 | (await Workspace.query().where('workspaceId', workspaceId).fetch()).rows |
29 | .length > 0 | 29 | .length > 0 |
30 | ); // eslint-disable-line no-await-in-loop | 30 | ); |
31 | 31 | ||
32 | const order = (await Workspace.all()).rows.length; | 32 | const order = (await Workspace.all()).rows.length; |
33 | const { name } = data; | 33 | const { name } = data; |
diff --git a/src/internal-server/config/app.js b/src/internal-server/config/app.js index 0a1644932..379190734 100644 --- a/src/internal-server/config/app.js +++ b/src/internal-server/config/app.js | |||
@@ -2,7 +2,6 @@ | |||
2 | const Env = use('Env'); | 2 | const Env = use('Env'); |
3 | 3 | ||
4 | module.exports = { | 4 | module.exports = { |
5 | |||
6 | /* | 5 | /* |
7 | |-------------------------------------------------------------------------- | 6 | |-------------------------------------------------------------------------- |
8 | | Application Name | 7 | | Application Name |
diff --git a/src/internal-server/config/bodyParser.js b/src/internal-server/config/bodyParser.js index 8a5406f9e..ef2eedf40 100644 --- a/src/internal-server/config/bodyParser.js +++ b/src/internal-server/config/bodyParser.js | |||
@@ -58,9 +58,7 @@ module.exports = { | |||
58 | | | 58 | | |
59 | */ | 59 | */ |
60 | raw: { | 60 | raw: { |
61 | types: [ | 61 | types: ['text/*'], |
62 | 'text/*', | ||
63 | ], | ||
64 | }, | 62 | }, |
65 | 63 | ||
66 | /* | 64 | /* |
@@ -72,9 +70,7 @@ module.exports = { | |||
72 | | | 70 | | |
73 | */ | 71 | */ |
74 | form: { | 72 | form: { |
75 | types: [ | 73 | types: ['application/x-www-form-urlencoded'], |
76 | 'application/x-www-form-urlencoded', | ||
77 | ], | ||
78 | }, | 74 | }, |
79 | 75 | ||
80 | /* | 76 | /* |
@@ -86,9 +82,7 @@ module.exports = { | |||
86 | | | 82 | | |
87 | */ | 83 | */ |
88 | files: { | 84 | files: { |
89 | types: [ | 85 | types: ['multipart/form-data'], |
90 | 'multipart/form-data', | ||
91 | ], | ||
92 | 86 | ||
93 | /* | 87 | /* |
94 | |-------------------------------------------------------------------------- | 88 | |-------------------------------------------------------------------------- |
diff --git a/src/internal-server/database/migrations/1503250034279_user.js b/src/internal-server/database/migrations/1503250034279_user.js index 80b49020a..d502e4fa0 100644 --- a/src/internal-server/database/migrations/1503250034279_user.js +++ b/src/internal-server/database/migrations/1503250034279_user.js | |||
@@ -3,7 +3,7 @@ const Schema = use('Schema'); | |||
3 | 3 | ||
4 | class UserSchema extends Schema { | 4 | class UserSchema extends Schema { |
5 | up() { | 5 | up() { |
6 | this.create('users', (table) => { | 6 | this.create('users', table => { |
7 | table.increments(); | 7 | table.increments(); |
8 | table.json('settings'); | 8 | table.json('settings'); |
9 | table.timestamps(); | 9 | table.timestamps(); |
diff --git a/src/internal-server/database/migrations/1566385379883_service_schema.js b/src/internal-server/database/migrations/1566385379883_service_schema.js index d887ef193..d8087248f 100644 --- a/src/internal-server/database/migrations/1566385379883_service_schema.js +++ b/src/internal-server/database/migrations/1566385379883_service_schema.js | |||
@@ -3,7 +3,7 @@ const Schema = use('Schema'); | |||
3 | 3 | ||
4 | class ServiceSchema extends Schema { | 4 | class ServiceSchema extends Schema { |
5 | up() { | 5 | up() { |
6 | this.create('services', (table) => { | 6 | this.create('services', table => { |
7 | table.increments(); | 7 | table.increments(); |
8 | table.string('serviceId', 80).notNullable(); | 8 | table.string('serviceId', 80).notNullable(); |
9 | table.string('name', 80).notNullable(); | 9 | table.string('name', 80).notNullable(); |
diff --git a/src/internal-server/database/migrations/1566554231482_recipe_schema.js b/src/internal-server/database/migrations/1566554231482_recipe_schema.js index 514d57600..41bebdacb 100644 --- a/src/internal-server/database/migrations/1566554231482_recipe_schema.js +++ b/src/internal-server/database/migrations/1566554231482_recipe_schema.js | |||
@@ -3,7 +3,7 @@ const Schema = use('Schema'); | |||
3 | 3 | ||
4 | class RecipeSchema extends Schema { | 4 | class RecipeSchema extends Schema { |
5 | up() { | 5 | up() { |
6 | this.create('recipes', (table) => { | 6 | this.create('recipes', table => { |
7 | table.increments(); | 7 | table.increments(); |
8 | table.string('name', 80).notNullable(); | 8 | table.string('name', 80).notNullable(); |
9 | table.string('recipeId', 254).notNullable().unique(); | 9 | table.string('recipeId', 254).notNullable().unique(); |
diff --git a/src/internal-server/database/migrations/1566554359294_workspace_schema.js b/src/internal-server/database/migrations/1566554359294_workspace_schema.js index 421a406b5..3e5385f45 100644 --- a/src/internal-server/database/migrations/1566554359294_workspace_schema.js +++ b/src/internal-server/database/migrations/1566554359294_workspace_schema.js | |||
@@ -3,7 +3,7 @@ const Schema = use('Schema'); | |||
3 | 3 | ||
4 | class WorkspaceSchema extends Schema { | 4 | class WorkspaceSchema extends Schema { |
5 | up() { | 5 | up() { |
6 | this.create('workspaces', (table) => { | 6 | this.create('workspaces', table => { |
7 | table.increments(); | 7 | table.increments(); |
8 | table.string('workspaceId', 80).notNullable().unique(); | 8 | table.string('workspaceId', 80).notNullable().unique(); |
9 | table.string('name', 80).notNullable(); | 9 | table.string('name', 80).notNullable(); |
diff --git a/src/internal-server/start/app.js b/src/internal-server/start/app.js index 8b1a49f57..7ca544085 100644 --- a/src/internal-server/start/app.js +++ b/src/internal-server/start/app.js | |||
@@ -28,9 +28,7 @@ const providers = [ | |||
28 | | Providers for migrations, tests etc. | 28 | | Providers for migrations, tests etc. |
29 | | | 29 | | |
30 | */ | 30 | */ |
31 | const aceProviders = [ | 31 | const aceProviders = ['@adonisjs/lucid/providers/MigrationsProvider']; |
32 | '@adonisjs/lucid/providers/MigrationsProvider', | ||
33 | ]; | ||
34 | 32 | ||
35 | /* | 33 | /* |
36 | |-------------------------------------------------------------------------- | 34 | |-------------------------------------------------------------------------- |
@@ -57,5 +55,8 @@ const aliases = {}; | |||
57 | const commands = []; | 55 | const commands = []; |
58 | 56 | ||
59 | module.exports = { | 57 | module.exports = { |
60 | providers, aceProviders, aliases, commands, | 58 | providers, |
59 | aceProviders, | ||
60 | aliases, | ||
61 | commands, | ||
61 | }; | 62 | }; |
diff --git a/src/jsUtils.ts b/src/jsUtils.ts index b1baad7c5..d7ea4eb40 100644 --- a/src/jsUtils.ts +++ b/src/jsUtils.ts | |||
@@ -1,3 +1,14 @@ | |||
1 | export const ifUndefinedString = (source: string | undefined | null, defaultValue: string): string => (source !== undefined && source !== null ? source : defaultValue); | 1 | export const ifUndefinedString = ( |
2 | export const ifUndefinedBoolean = (source: boolean | undefined | null, defaultValue: boolean): boolean => Boolean(source !== undefined && source !== null ? source : defaultValue); | 2 | source: string | undefined | null, |
3 | export const ifUndefinedNumber = (source: number | undefined | null, defaultValue: number): number => Number(source !== undefined && source !== null ? source : defaultValue); | 3 | defaultValue: string, |
4 | ): string => (source !== undefined && source !== null ? source : defaultValue); | ||
5 | export const ifUndefinedBoolean = ( | ||
6 | source: boolean | undefined | null, | ||
7 | defaultValue: boolean, | ||
8 | ): boolean => | ||
9 | Boolean(source !== undefined && source !== null ? source : defaultValue); | ||
10 | export const ifUndefinedNumber = ( | ||
11 | source: number | undefined | null, | ||
12 | defaultValue: number, | ||
13 | ): number => | ||
14 | Number(source !== undefined && source !== null ? source : defaultValue); | ||
diff --git a/src/lib/Tray.js b/src/lib/Tray.js index 7360611cd..e7afc3552 100644 --- a/src/lib/Tray.js +++ b/src/lib/Tray.js | |||
@@ -1,5 +1,11 @@ | |||
1 | import { | 1 | import { |
2 | app, Menu, nativeImage, nativeTheme, systemPreferences, Tray, ipcMain, | 2 | app, |
3 | Menu, | ||
4 | nativeImage, | ||
5 | nativeTheme, | ||
6 | systemPreferences, | ||
7 | Tray, | ||
8 | ipcMain, | ||
3 | } from 'electron'; | 9 | } from 'electron'; |
4 | import { join } from 'path'; | 10 | import { join } from 'path'; |
5 | import macosVersion from 'macos-version'; | 11 | import macosVersion from 'macos-version'; |
@@ -65,7 +71,9 @@ export default class TrayIcon { | |||
65 | 71 | ||
66 | if (appSettings.type === 'app') { | 72 | if (appSettings.type === 'app') { |
67 | const { isAppMuted } = appSettings.data; | 73 | const { isAppMuted } = appSettings.data; |
68 | this.trayMenuTemplate[1].label = isAppMuted ? 'Enable Notifications && Audio' : 'Disable Notifications && Audio'; | 74 | this.trayMenuTemplate[1].label = isAppMuted |
75 | ? 'Enable Notifications && Audio' | ||
76 | : 'Disable Notifications && Audio'; | ||
69 | this.trayMenu = Menu.buildFromTemplate(this.trayMenuTemplate); | 77 | this.trayMenu = Menu.buildFromTemplate(this.trayMenuTemplate); |
70 | if (isLinux) { | 78 | if (isLinux) { |
71 | this.trayIcon.setContextMenu(this.trayMenu); | 79 | this.trayIcon.setContextMenu(this.trayMenu); |
@@ -108,9 +116,12 @@ export default class TrayIcon { | |||
108 | } | 116 | } |
109 | 117 | ||
110 | if (isMac) { | 118 | if (isMac) { |
111 | this.themeChangeSubscriberId = systemPreferences.subscribeNotification('AppleInterfaceThemeChangedNotification', () => { | 119 | this.themeChangeSubscriberId = systemPreferences.subscribeNotification( |
112 | this._refreshIcon(); | 120 | 'AppleInterfaceThemeChangedNotification', |
113 | }); | 121 | () => { |
122 | this._refreshIcon(); | ||
123 | }, | ||
124 | ); | ||
114 | } | 125 | } |
115 | } | 126 | } |
116 | 127 | ||
@@ -150,7 +161,8 @@ export default class TrayIcon { | |||
150 | _getAssetFromIndicator(indicator) { | 161 | _getAssetFromIndicator(indicator) { |
151 | if (indicator === '•') { | 162 | if (indicator === '•') { |
152 | return INDICATOR_TRAY_INDIRECT; | 163 | return INDICATOR_TRAY_INDIRECT; |
153 | } if (indicator !== 0) { | 164 | } |
165 | if (indicator !== 0) { | ||
154 | return INDICATOR_TRAY_UNREAD; | 166 | return INDICATOR_TRAY_UNREAD; |
155 | } | 167 | } |
156 | return INDICATOR_TRAY_PLAIN; | 168 | return INDICATOR_TRAY_PLAIN; |
@@ -159,11 +171,16 @@ export default class TrayIcon { | |||
159 | _refreshIcon() { | 171 | _refreshIcon() { |
160 | if (!this.trayIcon) return; | 172 | if (!this.trayIcon) return; |
161 | 173 | ||
162 | this.trayIcon.setImage(this._getAsset('tray', this._getAssetFromIndicator(this.indicator))); | 174 | this.trayIcon.setImage( |
175 | this._getAsset('tray', this._getAssetFromIndicator(this.indicator)), | ||
176 | ); | ||
163 | 177 | ||
164 | if (isMac) { | 178 | if (isMac) { |
165 | this.trayIcon.setPressedImage( | 179 | this.trayIcon.setPressedImage( |
166 | this._getAsset('tray', `${this._getAssetFromIndicator(this.indicator)}-active`), | 180 | this._getAsset( |
181 | 'tray', | ||
182 | `${this._getAssetFromIndicator(this.indicator)}-active`, | ||
183 | ), | ||
167 | ); | 184 | ); |
168 | } | 185 | } |
169 | } | 186 | } |
@@ -171,12 +188,24 @@ export default class TrayIcon { | |||
171 | _getAsset(type, asset) { | 188 | _getAsset(type, asset) { |
172 | let { platform } = process; | 189 | let { platform } = process; |
173 | 190 | ||
174 | if (isMac && (nativeTheme.shouldUseDarkColors || macosVersion.isGreaterThanOrEqualTo('11'))) { | 191 | if ( |
192 | isMac && | ||
193 | (nativeTheme.shouldUseDarkColors || | ||
194 | macosVersion.isGreaterThanOrEqualTo('11')) | ||
195 | ) { | ||
175 | platform = `${platform}-dark`; | 196 | platform = `${platform}-dark`; |
176 | } | 197 | } |
177 | 198 | ||
178 | return nativeImage.createFromPath(join( | 199 | return nativeImage.createFromPath( |
179 | __dirname, '..', 'assets', 'images', type, platform, `${asset}.${FILE_EXTENSION}`, | 200 | join( |
180 | )); | 201 | __dirname, |
202 | '..', | ||
203 | 'assets', | ||
204 | 'images', | ||
205 | type, | ||
206 | platform, | ||
207 | `${asset}.${FILE_EXTENSION}`, | ||
208 | ), | ||
209 | ); | ||
181 | } | 210 | } |
182 | } | 211 | } |
diff --git a/src/models/Recipe.ts b/src/models/Recipe.ts index 859c75df0..e45977f24 100644 --- a/src/models/Recipe.ts +++ b/src/models/Recipe.ts | |||
@@ -1,10 +1,7 @@ | |||
1 | import semver from 'semver'; | 1 | import semver from 'semver'; |
2 | import { pathExistsSync } from 'fs-extra'; | 2 | import { pathExistsSync } from 'fs-extra'; |
3 | import { join } from 'path'; | 3 | import { join } from 'path'; |
4 | import { | 4 | import { ifUndefinedString, ifUndefinedBoolean } from '../jsUtils'; |
5 | ifUndefinedString, | ||
6 | ifUndefinedBoolean, | ||
7 | } from '../jsUtils'; | ||
8 | 5 | ||
9 | interface IRecipe { | 6 | interface IRecipe { |
10 | id: string; | 7 | id: string; |
@@ -75,7 +72,8 @@ export default class Recipe { | |||
75 | 72 | ||
76 | message: string = ''; | 73 | message: string = ''; |
77 | 74 | ||
78 | allowFavoritesDelineationInUnreadCount: boolean = DEFAULT_RECIPE_SETTINGS.allowFavoritesDelineationInUnreadCount; | 75 | allowFavoritesDelineationInUnreadCount: boolean = |
76 | DEFAULT_RECIPE_SETTINGS.allowFavoritesDelineationInUnreadCount; | ||
79 | 77 | ||
80 | disablewebsecurity: boolean = DEFAULT_RECIPE_SETTINGS.disablewebsecurity; | 78 | disablewebsecurity: boolean = DEFAULT_RECIPE_SETTINGS.disablewebsecurity; |
81 | 79 | ||
@@ -98,7 +96,9 @@ export default class Recipe { | |||
98 | } | 96 | } |
99 | 97 | ||
100 | if (!semver.valid(data.version)) { | 98 | if (!semver.valid(data.version)) { |
101 | throw new Error(`Version ${data.version} of recipe '${data.name}' is not a valid semver version`); | 99 | throw new Error( |
100 | `Version ${data.version} of recipe '${data.name}' is not a valid semver version`, | ||
101 | ); | ||
102 | } | 102 | } |
103 | 103 | ||
104 | // from the recipe | 104 | // from the recipe |
@@ -106,19 +106,52 @@ export default class Recipe { | |||
106 | this.name = ifUndefinedString(data.name, this.name); | 106 | this.name = ifUndefinedString(data.name, this.name); |
107 | this.version = ifUndefinedString(data.version, this.version); | 107 | this.version = ifUndefinedString(data.version, this.version); |
108 | this.aliases = data.aliases || this.aliases; | 108 | this.aliases = data.aliases || this.aliases; |
109 | this.serviceURL = ifUndefinedString(data.config.serviceURL, this.serviceURL); | 109 | this.serviceURL = ifUndefinedString( |
110 | this.hasDirectMessages = ifUndefinedBoolean(data.config.hasDirectMessages, this.hasDirectMessages); | 110 | data.config.serviceURL, |
111 | this.hasIndirectMessages = ifUndefinedBoolean(data.config.hasIndirectMessages, this.hasIndirectMessages); | 111 | this.serviceURL, |
112 | this.hasNotificationSound = ifUndefinedBoolean(data.config.hasNotificationSound, this.hasNotificationSound); | 112 | ); |
113 | this.hasDirectMessages = ifUndefinedBoolean( | ||
114 | data.config.hasDirectMessages, | ||
115 | this.hasDirectMessages, | ||
116 | ); | ||
117 | this.hasIndirectMessages = ifUndefinedBoolean( | ||
118 | data.config.hasIndirectMessages, | ||
119 | this.hasIndirectMessages, | ||
120 | ); | ||
121 | this.hasNotificationSound = ifUndefinedBoolean( | ||
122 | data.config.hasNotificationSound, | ||
123 | this.hasNotificationSound, | ||
124 | ); | ||
113 | this.hasTeamId = ifUndefinedBoolean(data.config.hasTeamId, this.hasTeamId); | 125 | this.hasTeamId = ifUndefinedBoolean(data.config.hasTeamId, this.hasTeamId); |
114 | this.hasCustomUrl = ifUndefinedBoolean(data.config.hasCustomUrl, this.hasCustomUrl); | 126 | this.hasCustomUrl = ifUndefinedBoolean( |
115 | this.hasHostedOption = ifUndefinedBoolean(data.config.hasHostedOption, this.hasHostedOption); | 127 | data.config.hasCustomUrl, |
116 | this.urlInputPrefix = ifUndefinedString(data.config.urlInputPrefix, this.urlInputPrefix); | 128 | this.hasCustomUrl, |
117 | this.urlInputSuffix = ifUndefinedString(data.config.urlInputSuffix, this.urlInputSuffix); | 129 | ); |
118 | this.disablewebsecurity = ifUndefinedBoolean(data.config.disablewebsecurity, this.disablewebsecurity); | 130 | this.hasHostedOption = ifUndefinedBoolean( |
119 | this.autoHibernate = ifUndefinedBoolean(data.config.autoHibernate, this.autoHibernate); | 131 | data.config.hasHostedOption, |
132 | this.hasHostedOption, | ||
133 | ); | ||
134 | this.urlInputPrefix = ifUndefinedString( | ||
135 | data.config.urlInputPrefix, | ||
136 | this.urlInputPrefix, | ||
137 | ); | ||
138 | this.urlInputSuffix = ifUndefinedString( | ||
139 | data.config.urlInputSuffix, | ||
140 | this.urlInputSuffix, | ||
141 | ); | ||
142 | this.disablewebsecurity = ifUndefinedBoolean( | ||
143 | data.config.disablewebsecurity, | ||
144 | this.disablewebsecurity, | ||
145 | ); | ||
146 | this.autoHibernate = ifUndefinedBoolean( | ||
147 | data.config.autoHibernate, | ||
148 | this.autoHibernate, | ||
149 | ); | ||
120 | this.message = ifUndefinedString(data.config.message, this.message); | 150 | this.message = ifUndefinedString(data.config.message, this.message); |
121 | this.allowFavoritesDelineationInUnreadCount = ifUndefinedBoolean(data.config.allowFavoritesDelineationInUnreadCount, this.allowFavoritesDelineationInUnreadCount); | 151 | this.allowFavoritesDelineationInUnreadCount = ifUndefinedBoolean( |
152 | data.config.allowFavoritesDelineationInUnreadCount, | ||
153 | this.allowFavoritesDelineationInUnreadCount, | ||
154 | ); | ||
122 | 155 | ||
123 | // computed | 156 | // computed |
124 | this.path = data.path; | 157 | this.path = data.path; |
diff --git a/src/models/User.ts b/src/models/User.ts index a04d46d3c..571f1f847 100644 --- a/src/models/User.ts +++ b/src/models/User.ts | |||
@@ -59,7 +59,8 @@ export default class User { | |||
59 | this.beta = data.beta || this.beta; | 59 | this.beta = data.beta || this.beta; |
60 | this.locale = data.locale || this.locale; | 60 | this.locale = data.locale || this.locale; |
61 | 61 | ||
62 | this.isSubscriptionOwner = data.isSubscriptionOwner || this.isSubscriptionOwner; | 62 | this.isSubscriptionOwner = |
63 | data.isSubscriptionOwner || this.isSubscriptionOwner; | ||
63 | 64 | ||
64 | this.team = data.team || this.team; | 65 | this.team = data.team || this.team; |
65 | } | 66 | } |
diff --git a/src/models/UserAgent.js b/src/models/UserAgent.js index 33bf9d072..02ff97db1 100644 --- a/src/models/UserAgent.js +++ b/src/models/UserAgent.js | |||
@@ -63,8 +63,12 @@ export default class UserAgent { | |||
63 | } | 63 | } |
64 | 64 | ||
65 | @computed get userAgent() { | 65 | @computed get userAgent() { |
66 | return this.serviceUserAgentPref | 66 | return ( |
67 | || (this.chromelessUserAgent ? this.userAgentWithoutChromeVersion : this.defaultUserAgent); | 67 | this.serviceUserAgentPref || |
68 | (this.chromelessUserAgent | ||
69 | ? this.userAgentWithoutChromeVersion | ||
70 | : this.defaultUserAgent) | ||
71 | ); | ||
68 | } | 72 | } |
69 | 73 | ||
70 | @action setWebviewReference(webview) { | 74 | @action setWebviewReference(webview) { |
diff --git a/src/stores/RecipePreviewsStore.js b/src/stores/RecipePreviewsStore.js index f4e39306c..e01e8fc6f 100644 --- a/src/stores/RecipePreviewsStore.js +++ b/src/stores/RecipePreviewsStore.js | |||
@@ -5,9 +5,15 @@ import CachedRequest from './lib/CachedRequest'; | |||
5 | import Request from './lib/Request'; | 5 | import Request from './lib/Request'; |
6 | 6 | ||
7 | export default class RecipePreviewsStore extends Store { | 7 | export default class RecipePreviewsStore extends Store { |
8 | @observable allRecipePreviewsRequest = new CachedRequest(this.api.recipePreviews, 'all'); | 8 | @observable allRecipePreviewsRequest = new CachedRequest( |
9 | this.api.recipePreviews, | ||
10 | 'all', | ||
11 | ); | ||
9 | 12 | ||
10 | @observable searchRecipePreviewsRequest = new Request(this.api.recipePreviews, 'search'); | 13 | @observable searchRecipePreviewsRequest = new Request( |
14 | this.api.recipePreviews, | ||
15 | 'search', | ||
16 | ); | ||
11 | 17 | ||
12 | constructor(...args) { | 18 | constructor(...args) { |
13 | super(...args); | 19 | super(...args); |
@@ -25,7 +31,7 @@ export default class RecipePreviewsStore extends Store { | |||
25 | } | 31 | } |
26 | 32 | ||
27 | @computed get dev() { | 33 | @computed get dev() { |
28 | return this.stores.recipes.all.filter((r) => r.local); | 34 | return this.stores.recipes.all.filter(r => r.local); |
29 | } | 35 | } |
30 | 36 | ||
31 | // Actions | 37 | // Actions |
diff --git a/src/stores/ServicesStore.js b/src/stores/ServicesStore.js index e27567e8f..5ed9e3534 100644 --- a/src/stores/ServicesStore.js +++ b/src/stores/ServicesStore.js | |||
@@ -394,7 +394,7 @@ export default class ServicesStore extends Store { | |||
394 | } | 394 | } |
395 | 395 | ||
396 | // set default values for serviceData | 396 | // set default values for serviceData |
397 | // eslint-disable-next-line prefer-object-spread | 397 | |
398 | // TODO: How is this different from the defaults of the recipe in 'src/models/Recipe' file? | 398 | // TODO: How is this different from the defaults of the recipe in 'src/models/Recipe' file? |
399 | serviceData = { | 399 | serviceData = { |
400 | isEnabled: true, | 400 | isEnabled: true, |
diff --git a/src/stores/SettingsStore.js b/src/stores/SettingsStore.js index ec80fee7c..ac9356404 100644 --- a/src/stores/SettingsStore.js +++ b/src/stores/SettingsStore.js | |||
@@ -2,7 +2,11 @@ import { ipcRenderer } from 'electron'; | |||
2 | import { getCurrentWindow } from '@electron/remote'; | 2 | import { getCurrentWindow } from '@electron/remote'; |
3 | import { action, computed, observable, reaction } from 'mobx'; | 3 | import { action, computed, observable, reaction } from 'mobx'; |
4 | import localStorage from 'mobx-localstorage'; | 4 | import localStorage from 'mobx-localstorage'; |
5 | import { DEFAULT_APP_SETTINGS, FILE_SYSTEM_SETTINGS_TYPES, LOCAL_SERVER } from '../config'; | 5 | import { |
6 | DEFAULT_APP_SETTINGS, | ||
7 | FILE_SYSTEM_SETTINGS_TYPES, | ||
8 | LOCAL_SERVER, | ||
9 | } from '../config'; | ||
6 | import { hash } from '../helpers/password-helpers'; | 10 | import { hash } from '../helpers/password-helpers'; |
7 | import Request from './lib/Request'; | 11 | import Request from './lib/Request'; |
8 | import Store from './lib/Store'; | 12 | import Store from './lib/Store'; |
diff --git a/src/stores/UserStore.js b/src/stores/UserStore.js index 9f222d2d3..9a5d8cb30 100644 --- a/src/stores/UserStore.js +++ b/src/stores/UserStore.js | |||
@@ -273,13 +273,11 @@ export default class UserStore extends Store { | |||
273 | 273 | ||
274 | // Install recipes | 274 | // Install recipes |
275 | for (const recipe of recipes) { | 275 | for (const recipe of recipes) { |
276 | // eslint-disable-line no-unused-vars | ||
277 | // eslint-disable-next-line no-await-in-loop | 276 | // eslint-disable-next-line no-await-in-loop |
278 | await this.stores.recipes._install({ recipeId: recipe }); | 277 | await this.stores.recipes._install({ recipeId: recipe }); |
279 | } | 278 | } |
280 | 279 | ||
281 | for (const service of services) { | 280 | for (const service of services) { |
282 | // eslint-disable-line no-unused-vars | ||
283 | this.actions.service.createFromLegacyService({ | 281 | this.actions.service.createFromLegacyService({ |
284 | data: service, | 282 | data: service, |
285 | }); | 283 | }); |
diff --git a/src/stores/lib/Request.js b/src/stores/lib/Request.js index 39f32729a..65871ea17 100644 --- a/src/stores/lib/Request.js +++ b/src/stores/lib/Request.js | |||
@@ -38,42 +38,56 @@ export default class Request { | |||
38 | if (this._isWaitingForResponse) return this; | 38 | if (this._isWaitingForResponse) return this; |
39 | 39 | ||
40 | if (!this._api[this._method]) { | 40 | if (!this._api[this._method]) { |
41 | throw new Error(`Missing method <${this._method}> on api object:`, this._api); | 41 | throw new Error( |
42 | `Missing method <${this._method}> on api object:`, | ||
43 | this._api, | ||
44 | ); | ||
42 | } | 45 | } |
43 | 46 | ||
44 | // This timeout is necessary to avoid warnings from mobx | 47 | // This timeout is necessary to avoid warnings from mobx |
45 | // regarding triggering actions as side-effect of getters | 48 | // regarding triggering actions as side-effect of getters |
46 | setTimeout(action(() => { | 49 | setTimeout( |
47 | this.isExecuting = true; | 50 | action(() => { |
48 | }), 0); | 51 | this.isExecuting = true; |
52 | }), | ||
53 | 0, | ||
54 | ); | ||
49 | 55 | ||
50 | // Issue api call & save it as promise that is handled to update the results of the operation | 56 | // Issue api call & save it as promise that is handled to update the results of the operation |
51 | this._promise = new Promise((resolve, reject) => { | 57 | this._promise = new Promise((resolve, reject) => { |
52 | this._api[this._method](...callArgs) | 58 | this._api[this._method](...callArgs) |
53 | .then((result) => { | 59 | .then(result => { |
54 | setTimeout(action(() => { | 60 | setTimeout( |
55 | this.result = result; | 61 | action(() => { |
56 | if (this._currentApiCall) this._currentApiCall.result = result; | 62 | this.result = result; |
57 | this.isExecuting = false; | 63 | if (this._currentApiCall) this._currentApiCall.result = result; |
58 | this.isError = false; | 64 | this.isExecuting = false; |
59 | this.wasExecuted = true; | 65 | this.isError = false; |
60 | this._isWaitingForResponse = false; | 66 | this.wasExecuted = true; |
61 | this._triggerHooks(); | 67 | this._isWaitingForResponse = false; |
62 | resolve(result); | 68 | this._triggerHooks(); |
63 | }), 1); | 69 | resolve(result); |
70 | }), | ||
71 | 1, | ||
72 | ); | ||
64 | return result; | 73 | return result; |
65 | }) | 74 | }) |
66 | .catch(action((error) => { | 75 | .catch( |
67 | setTimeout(action(() => { | 76 | action(error => { |
68 | this.error = error; | 77 | setTimeout( |
69 | this.isExecuting = false; | 78 | action(() => { |
70 | this.isError = true; | 79 | this.error = error; |
71 | this.wasExecuted = true; | 80 | this.isExecuting = false; |
72 | this._isWaitingForResponse = false; | 81 | this.isError = true; |
73 | this._triggerHooks(); | 82 | this.wasExecuted = true; |
74 | reject(error); | 83 | this._isWaitingForResponse = false; |
75 | }), 1); | 84 | this._triggerHooks(); |
76 | })); | 85 | reject(error); |
86 | }), | ||
87 | 1, | ||
88 | ); | ||
89 | }), | ||
90 | ); | ||
77 | }); | 91 | }); |
78 | 92 | ||
79 | this._isWaitingForResponse = true; | 93 | this._isWaitingForResponse = true; |
@@ -89,7 +103,11 @@ export default class Request { | |||
89 | retry = () => this.reload(); | 103 | retry = () => this.reload(); |
90 | 104 | ||
91 | isExecutingWithArgs(...args) { | 105 | isExecutingWithArgs(...args) { |
92 | return this.isExecuting && this._currentApiCall && isEqual(this._currentApiCall.args, args); | 106 | return ( |
107 | this.isExecuting && | ||
108 | this._currentApiCall && | ||
109 | isEqual(this._currentApiCall.args, args) | ||
110 | ); | ||
93 | } | 111 | } |
94 | 112 | ||
95 | @computed get isExecutingFirstTime() { | 113 | @computed get isExecutingFirstTime() { |
@@ -97,12 +115,18 @@ export default class Request { | |||
97 | } | 115 | } |
98 | 116 | ||
99 | then(...args) { | 117 | then(...args) { |
100 | if (!this._promise) throw new Error('You have to call Request::execute before you can access it as promise'); | 118 | if (!this._promise) |
119 | throw new Error( | ||
120 | 'You have to call Request::execute before you can access it as promise', | ||
121 | ); | ||
101 | return this._promise.then(...args); | 122 | return this._promise.then(...args); |
102 | } | 123 | } |
103 | 124 | ||
104 | catch(...args) { | 125 | catch(...args) { |
105 | if (!this._promise) throw new Error('You have to call Request::execute before you can access it as promise'); | 126 | if (!this._promise) |
127 | throw new Error( | ||
128 | 'You have to call Request::execute before you can access it as promise', | ||
129 | ); | ||
106 | return this._promise.catch(...args); | 130 | return this._promise.catch(...args); |
107 | } | 131 | } |
108 | 132 | ||
diff --git a/src/stores/lib/Store.js b/src/stores/lib/Store.js index b39070ce8..a867c3a46 100644 --- a/src/stores/lib/Store.js +++ b/src/stores/lib/Store.js | |||
@@ -28,7 +28,8 @@ export default class Store { | |||
28 | } | 28 | } |
29 | 29 | ||
30 | registerReactions(reactions) { | 30 | registerReactions(reactions) { |
31 | for (const reaction of reactions) this._reactions.push(new Reaction(reaction)); | 31 | for (const reaction of reactions) |
32 | this._reactions.push(new Reaction(reaction)); | ||
32 | } | 33 | } |
33 | 34 | ||
34 | setup() {} | 35 | setup() {} |
diff --git a/src/webview/badge.ts b/src/webview/badge.ts index 8e8b66c0c..fb696723d 100644 --- a/src/webview/badge.ts +++ b/src/webview/badge.ts | |||
@@ -3,7 +3,7 @@ import { ipcRenderer } from 'electron'; | |||
3 | const debug = require('debug')('Ferdi:Plugin:BadgeHandler'); | 3 | const debug = require('debug')('Ferdi:Plugin:BadgeHandler'); |
4 | 4 | ||
5 | export class BadgeHandler { | 5 | export class BadgeHandler { |
6 | countCache: { direct: number; indirect: number; }; | 6 | countCache: { direct: number; indirect: number }; |
7 | 7 | ||
8 | constructor() { | 8 | constructor() { |
9 | this.countCache = { | 9 | this.countCache = { |
@@ -26,14 +26,19 @@ export class BadgeHandler { | |||
26 | return Math.max(adjustedNumber, 0); | 26 | return Math.max(adjustedNumber, 0); |
27 | } | 27 | } |
28 | 28 | ||
29 | setBadge(direct: string | number | undefined | null, indirect: string | number | undefined | null) { | 29 | setBadge( |
30 | direct: string | number | undefined | null, | ||
31 | indirect: string | number | undefined | null, | ||
32 | ) { | ||
30 | const count = { | 33 | const count = { |
31 | direct: this.safeParseInt(direct), | 34 | direct: this.safeParseInt(direct), |
32 | indirect: this.safeParseInt(indirect), | 35 | indirect: this.safeParseInt(indirect), |
33 | }; | 36 | }; |
34 | 37 | ||
35 | if (this.countCache.direct.toString() === count.direct.toString() | 38 | if ( |
36 | && this.countCache.indirect.toString() === count.indirect.toString()) { | 39 | this.countCache.direct.toString() === count.direct.toString() && |
40 | this.countCache.indirect.toString() === count.indirect.toString() | ||
41 | ) { | ||
37 | return; | 42 | return; |
38 | } | 43 | } |
39 | 44 | ||
diff --git a/src/webview/contextMenuBuilder.ts b/src/webview/contextMenuBuilder.ts index fda5fa8b8..7b8c6cb2d 100644 --- a/src/webview/contextMenuBuilder.ts +++ b/src/webview/contextMenuBuilder.ts | |||
@@ -6,7 +6,7 @@ | |||
6 | * | 6 | * |
7 | * Source: https://github.com/electron-userland/electron-spellchecker/blob/master/src/context-menu-builder.js | 7 | * Source: https://github.com/electron-userland/electron-spellchecker/blob/master/src/context-menu-builder.js |
8 | */ | 8 | */ |
9 | // eslint-disable-next-line no-unused-vars | 9 | |
10 | import { clipboard, ipcRenderer, nativeImage, WebContents } from 'electron'; | 10 | import { clipboard, ipcRenderer, nativeImage, WebContents } from 'electron'; |
11 | import { Menu, MenuItem } from '@electron/remote'; | 11 | import { Menu, MenuItem } from '@electron/remote'; |
12 | import { cmdOrCtrlShortcutKey, isMac } from '../environment'; | 12 | import { cmdOrCtrlShortcutKey, isMac } from '../environment'; |
@@ -311,7 +311,7 @@ export class ContextMenuBuilder { | |||
311 | menu.append( | 311 | menu.append( |
312 | new MenuItem({ | 312 | new MenuItem({ |
313 | label: suggestion, | 313 | label: suggestion, |
314 | // eslint-disable-next-line no-loop-func | 314 | |
315 | click: () => webContents.replaceMisspelling(suggestion), | 315 | click: () => webContents.replaceMisspelling(suggestion), |
316 | }), | 316 | }), |
317 | ); | 317 | ); |
diff --git a/src/webview/spellchecker.ts b/src/webview/spellchecker.ts index 468a1b4ae..ee70589d5 100644 --- a/src/webview/spellchecker.ts +++ b/src/webview/spellchecker.ts | |||
@@ -5,7 +5,11 @@ import { isMac } from '../environment'; | |||
5 | const debug = require('debug')('Ferdi:spellchecker'); | 5 | const debug = require('debug')('Ferdi:spellchecker'); |
6 | 6 | ||
7 | export function getSpellcheckerLocaleByFuzzyIdentifier(identifier: string) { | 7 | export function getSpellcheckerLocaleByFuzzyIdentifier(identifier: string) { |
8 | const locales = Object.keys(SPELLCHECKER_LOCALES).filter((key) => key.toLocaleLowerCase() === identifier.toLowerCase() || key.split('-')[0] === identifier.toLowerCase()); | 8 | const locales = Object.keys(SPELLCHECKER_LOCALES).filter( |
9 | key => | ||
10 | key.toLocaleLowerCase() === identifier.toLowerCase() || | ||
11 | key.split('-')[0] === identifier.toLowerCase(), | ||
12 | ); | ||
9 | 13 | ||
10 | return locales.length > 0 ? locales[0] : null; | 14 | return locales.length > 0 ? locales[0] : null; |
11 | } | 15 | } |
diff --git a/uidev/src/index.tsx b/uidev/src/index.tsx index c996d9f69..0f2003d24 100644 --- a/uidev/src/index.tsx +++ b/uidev/src/index.tsx | |||
@@ -1,8 +1,6 @@ | |||
1 | import { render } from 'react-dom'; | 1 | import { render } from 'react-dom'; |
2 | import { App } from './app'; | 2 | import { App } from './app'; |
3 | 3 | ||
4 | const app = () => ( | 4 | const app = () => <App />; |
5 | <App /> | ||
6 | ); | ||
7 | 5 | ||
8 | render(app(), document.querySelector('#root')); | 6 | render(app(), document.querySelector('#root')); |
diff --git a/uidev/src/stories/button.stories.tsx b/uidev/src/stories/button.stories.tsx index e948e8ca4..400063cea 100644 --- a/uidev/src/stories/button.stories.tsx +++ b/uidev/src/stories/button.stories.tsx | |||
@@ -32,117 +32,144 @@ const createStore = (args?: any) => observable({ ...defaultProps, ...args }); | |||
32 | const WithStoreButton = observer(({ store }: { store: any }) => ( | 32 | const WithStoreButton = observer(({ store }: { store: any }) => ( |
33 | <> | 33 | <> |
34 | <Button | 34 | <Button |
35 | {...({ ...defaultProps, ...store })} | 35 | {...{ ...defaultProps, ...store }} |
36 | onClick={!store.onClick ? () => { | 36 | onClick={ |
37 | store.busy = !store.busy; | 37 | !store.onClick |
38 | ? () => { | ||
39 | store.busy = !store.busy; | ||
38 | 40 | ||
39 | window.setTimeout(() => { | 41 | window.setTimeout(() => { |
40 | store.busy = !store.busy; | 42 | store.busy = !store.busy; |
41 | }, 1000); | 43 | }, 1000); |
42 | } : store.onClick} | 44 | } |
45 | : store.onClick | ||
46 | } | ||
43 | /> | 47 | /> |
44 | </> | 48 | </> |
45 | )); | 49 | )); |
46 | 50 | ||
47 | storiesOf('Button') | 51 | storiesOf('Button') |
48 | .add('Basic', () => ( | 52 | .add('Basic', () => <WithStoreButton store={createStore()} />) |
49 | <WithStoreButton store={createStore()} /> | ||
50 | )) | ||
51 | .add('Secondary', () => ( | 53 | .add('Secondary', () => ( |
52 | <WithStoreButton store={createStore({ | 54 | <WithStoreButton |
53 | buttonType: 'secondary', | 55 | store={createStore({ |
54 | })} | 56 | buttonType: 'secondary', |
57 | })} | ||
55 | /> | 58 | /> |
56 | )) | 59 | )) |
57 | .add('Success', () => ( | 60 | .add('Success', () => ( |
58 | <WithStoreButton store={createStore({ | 61 | <WithStoreButton |
59 | buttonType: 'success', | 62 | store={createStore({ |
60 | })} | 63 | buttonType: 'success', |
64 | })} | ||
61 | /> | 65 | /> |
62 | )) | 66 | )) |
63 | .add('Warning', () => ( | 67 | .add('Warning', () => ( |
64 | <WithStoreButton store={createStore({ | 68 | <WithStoreButton |
65 | buttonType: 'warning', | 69 | store={createStore({ |
66 | })} | 70 | buttonType: 'warning', |
71 | })} | ||
67 | /> | 72 | /> |
68 | )) | 73 | )) |
69 | .add('Danger', () => ( | 74 | .add('Danger', () => ( |
70 | <WithStoreButton store={createStore({ | 75 | <WithStoreButton |
71 | buttonType: 'danger', | 76 | store={createStore({ |
72 | })} | 77 | buttonType: 'danger', |
78 | })} | ||
73 | /> | 79 | /> |
74 | )) | 80 | )) |
75 | .add('Inverted', () => ( | 81 | .add('Inverted', () => ( |
76 | <WithStoreButton store={createStore({ | 82 | <WithStoreButton |
77 | buttonType: 'inverted', | 83 | store={createStore({ |
78 | })} | 84 | buttonType: 'inverted', |
85 | })} | ||
79 | /> | 86 | /> |
80 | )) | 87 | )) |
81 | .add('Full width', () => ( | 88 | .add('Full width', () => ( |
82 | <WithStoreButton store={createStore({ | 89 | <WithStoreButton |
83 | stretch: true, | 90 | store={createStore({ |
84 | })} | 91 | stretch: true, |
92 | })} | ||
85 | /> | 93 | /> |
86 | )) | 94 | )) |
87 | .add('Disabled', () => ( | 95 | .add('Disabled', () => ( |
88 | <WithStoreButton store={createStore({ | 96 | <WithStoreButton |
89 | disabled: true, | 97 | store={createStore({ |
90 | })} | 98 | disabled: true, |
99 | })} | ||
91 | /> | 100 | /> |
92 | )) | 101 | )) |
93 | .add('With loader', () => ( | 102 | .add('With loader', () => ( |
94 | <WithStoreButton store={createStore({ | 103 | <WithStoreButton |
95 | busy: true, | 104 | store={createStore({ |
96 | })} | 105 | busy: true, |
106 | })} | ||
97 | /> | 107 | /> |
98 | )) | 108 | )) |
99 | .add('With icon', () => ( | 109 | .add('With icon', () => ( |
100 | <WithStoreButton store={createStore({ | 110 | <WithStoreButton |
101 | icon: mdiInformation, | 111 | store={createStore({ |
102 | })} | 112 | icon: mdiInformation, |
113 | })} | ||
103 | /> | 114 | /> |
104 | )) | 115 | )) |
105 | .add('As link', () => ( | 116 | .add('As link', () => ( |
106 | <WithStoreButton store={createStore({ | 117 | <WithStoreButton |
107 | href: 'https://meetfranz.com', | 118 | store={createStore({ |
108 | })} | 119 | href: 'https://meetfranz.com', |
120 | })} | ||
109 | /> | 121 | /> |
110 | )) | 122 | )) |
111 | .add('As link (target=_blank)', () => ( | 123 | .add('As link (target=_blank)', () => ( |
112 | <WithStoreButton store={createStore({ | 124 | <WithStoreButton |
113 | href: 'https://meetfranz.com', | 125 | store={createStore({ |
114 | target: '_blank', | 126 | href: 'https://meetfranz.com', |
115 | })} | 127 | target: '_blank', |
128 | })} | ||
116 | /> | 129 | /> |
117 | )) | 130 | )) |
118 | .add('As link (with onClick)', () => ( | 131 | .add('As link (with onClick)', () => ( |
119 | <WithStoreButton store={createStore({ | 132 | <WithStoreButton |
120 | href: 'https://meetfranz.com', | 133 | store={createStore({ |
121 | onClick: (e: React.MouseEvent<HTMLAnchorElement>) => { | 134 | href: 'https://meetfranz.com', |
122 | e.preventDefault(); | 135 | onClick: (e: React.MouseEvent<HTMLAnchorElement>) => { |
123 | alert('Click event'); | 136 | e.preventDefault(); |
124 | }, | 137 | alert('Click event'); |
125 | })} | 138 | }, |
139 | })} | ||
126 | /> | 140 | /> |
127 | )) | 141 | )) |
128 | .add('Long multi-line button', () => ( | 142 | .add('Long multi-line button', () => ( |
129 | <WithStoreButton store={createStore({ | 143 | <WithStoreButton |
130 | label: 'But there is something that I must say to my people, who stand on the warm threshold which leads into the palace of justice: In the process of gaining our rightful place, we must not be guilty of wrongful deeds. Let us not seek to satisfy our thirst for freedom by drinking from the cup of bitterness and hatred. We must forever conduct our struggle on the high plane of dignity and discipline. We must not allow our creative protest to degenerate into physical violence. Again and again, we must rise to the majestic heights of meeting physical force with soul force.', | 144 | store={createStore({ |
131 | })} | 145 | label: |
146 | 'But there is something that I must say to my people, who stand on the warm threshold which leads into the palace of justice: In the process of gaining our rightful place, we must not be guilty of wrongful deeds. Let us not seek to satisfy our thirst for freedom by drinking from the cup of bitterness and hatred. We must forever conduct our struggle on the high plane of dignity and discipline. We must not allow our creative protest to degenerate into physical violence. Again and again, we must rise to the majestic heights of meeting physical force with soul force.', | ||
147 | })} | ||
132 | /> | 148 | /> |
133 | )) | 149 | )) |
134 | .add('Button with Input', injectSheet(styles)(observer(({ classes }: { classes: Classes }) => ( | 150 | .add( |
135 | <div className={classes.combinedElements}> | 151 | 'Button with Input', |
136 | <Input showLabel={false} className={classes.input} noMargin /> | 152 | injectSheet(styles)( |
137 | <WithStoreButton store={createStore({})} /> | 153 | observer(({ classes }: { classes: Classes }) => ( |
138 | </div> | 154 | <div className={classes.combinedElements}> |
139 | )))) | 155 | <Input showLabel={false} className={classes.input} noMargin /> |
140 | .add('Icon Button with Input', injectSheet(styles)(observer(({ classes }: { classes: Classes }) => ( | 156 | <WithStoreButton store={createStore({})} /> |
141 | <div className={classes.combinedElements}> | 157 | </div> |
142 | <Input showLabel={false} className={classes.input} noMargin /> | 158 | )), |
143 | <WithStoreButton store={createStore({ | 159 | ), |
144 | icon: mdiInformation, | 160 | ) |
145 | })} | 161 | .add( |
146 | /> | 162 | 'Icon Button with Input', |
147 | </div> | 163 | injectSheet(styles)( |
148 | )))); | 164 | observer(({ classes }: { classes: Classes }) => ( |
165 | <div className={classes.combinedElements}> | ||
166 | <Input showLabel={false} className={classes.input} noMargin /> | ||
167 | <WithStoreButton | ||
168 | store={createStore({ | ||
169 | icon: mdiInformation, | ||
170 | })} | ||
171 | /> | ||
172 | </div> | ||
173 | )), | ||
174 | ), | ||
175 | ); | ||
diff --git a/uidev/src/stories/headline.stories.tsx b/uidev/src/stories/headline.stories.tsx index 1f1ab2036..f6a95b1f4 100644 --- a/uidev/src/stories/headline.stories.tsx +++ b/uidev/src/stories/headline.stories.tsx | |||
@@ -38,12 +38,11 @@ import { storiesOf } from '../stores/stories'; | |||
38 | // </> | 38 | // </> |
39 | // )); | 39 | // )); |
40 | 40 | ||
41 | storiesOf('Typo') | 41 | storiesOf('Typo').add('Headlines', () => ( |
42 | .add('Headlines', () => ( | 42 | <> |
43 | <> | 43 | <H1>Welcome to the world of tomorrow</H1> |
44 | <H1>Welcome to the world of tomorrow</H1> | 44 | <H2>Welcome to the world of tomorrow</H2> |
45 | <H2>Welcome to the world of tomorrow</H2> | 45 | <H3>Welcome to the world of tomorrow</H3> |
46 | <H3>Welcome to the world of tomorrow</H3> | 46 | <H4>Welcome to the world of tomorrow</H4> |
47 | <H4>Welcome to the world of tomorrow</H4> | 47 | </> |
48 | </> | 48 | )); |
49 | )); | ||
diff --git a/uidev/src/stories/icon.stories.tsx b/uidev/src/stories/icon.stories.tsx index 12c08fd57..73ed1b927 100644 --- a/uidev/src/stories/icon.stories.tsx +++ b/uidev/src/stories/icon.stories.tsx | |||
@@ -3,11 +3,10 @@ import { mdiAccountCircle } from '@mdi/js'; | |||
3 | import { Icon } from '@meetfranz/ui'; | 3 | import { Icon } from '@meetfranz/ui'; |
4 | import { storiesOf } from '../stores/stories'; | 4 | import { storiesOf } from '../stores/stories'; |
5 | 5 | ||
6 | storiesOf('Icon') | 6 | storiesOf('Icon').add('Basic', () => ( |
7 | .add('Basic', () => ( | 7 | <> |
8 | <> | 8 | <Icon icon={mdiAccountCircle} /> |
9 | <Icon icon={mdiAccountCircle} /> | 9 | <Icon icon={mdiAccountCircle} size={2} /> |
10 | <Icon icon={mdiAccountCircle} size={2} /> | 10 | <Icon icon={mdiAccountCircle} size={3} /> |
11 | <Icon icon={mdiAccountCircle} size={3} /> | 11 | </> |
12 | </> | 12 | )); |
13 | )); | ||
diff --git a/uidev/src/stories/infobox.stories.tsx b/uidev/src/stories/infobox.stories.tsx index 166150606..b5f86e37d 100644 --- a/uidev/src/stories/infobox.stories.tsx +++ b/uidev/src/stories/infobox.stories.tsx | |||
@@ -14,30 +14,37 @@ interface IStoreArgs { | |||
14 | className?: string; | 14 | className?: string; |
15 | } | 15 | } |
16 | 16 | ||
17 | const createStore = (args?: IStoreArgs) => observable({ type: 'primary', | 17 | const createStore = (args?: IStoreArgs) => |
18 | observable({ | ||
19 | type: 'primary', | ||
18 | ctaOnClick: () => { | 20 | ctaOnClick: () => { |
19 | alert('on click handler'); | 21 | alert('on click handler'); |
20 | }, | 22 | }, |
21 | ...args }); | 23 | ...args, |
24 | }); | ||
22 | 25 | ||
23 | const WithStoreInfobox = observer(({ store, children }: { store: any, children: string | React.ReactNode }) => ( | 26 | const WithStoreInfobox = observer( |
24 | <> | 27 | ({ store, children }: { store: any; children: string | React.ReactNode }) => ( |
25 | <Infobox | 28 | <> |
26 | icon={store.icon} | 29 | <Infobox |
27 | ctaLabel={store.ctaLabel} | 30 | icon={store.icon} |
28 | type={store.type} | 31 | ctaLabel={store.ctaLabel} |
29 | ctaOnClick={store.ctaOnClick} | 32 | type={store.type} |
30 | dismissable={store.dismissable} | 33 | ctaOnClick={store.ctaOnClick} |
31 | className={store.className} | 34 | dismissable={store.dismissable} |
32 | > | 35 | className={store.className} |
33 | {children} | 36 | > |
34 | </Infobox> | 37 | {children} |
35 | </> | 38 | </Infobox> |
36 | )); | 39 | </> |
40 | ), | ||
41 | ); | ||
37 | 42 | ||
38 | storiesOf('Infobox') | 43 | storiesOf('Infobox') |
39 | .add('Basic', () => ( | 44 | .add('Basic', () => ( |
40 | <WithStoreInfobox store={createStore()}>Welcome to the world of tomorrow</WithStoreInfobox> | 45 | <WithStoreInfobox store={createStore()}> |
46 | Welcome to the world of tomorrow | ||
47 | </WithStoreInfobox> | ||
41 | )) | 48 | )) |
42 | .add('Icon + Dismissable', () => ( | 49 | .add('Icon + Dismissable', () => ( |
43 | <WithStoreInfobox | 50 | <WithStoreInfobox |
@@ -66,7 +73,10 @@ storiesOf('Infobox') | |||
66 | ctaLabel: 'Ok, hi!', | 73 | ctaLabel: 'Ok, hi!', |
67 | })} | 74 | })} |
68 | > | 75 | > |
69 | Ferdi is your messaging app / former Emperor of Austria and combines chat & messaging services into one application. Ferdi currently supports Slack, WhatsApp, WeChat, HipChat, Facebook Messenger, Telegram, Google Hangouts,GroupMe, Skype and many more. | 76 | Ferdi is your messaging app / former Emperor of Austria and combines chat |
77 | & messaging services into one application. Ferdi currently supports Slack, | ||
78 | WhatsApp, WeChat, HipChat, Facebook Messenger, Telegram, Google | ||
79 | Hangouts,GroupMe, Skype and many more. | ||
70 | </WithStoreInfobox> | 80 | </WithStoreInfobox> |
71 | )) | 81 | )) |
72 | .add('Secondary', () => ( | 82 | .add('Secondary', () => ( |
@@ -125,9 +135,10 @@ storiesOf('Infobox') | |||
125 | </WithStoreInfobox> | 135 | </WithStoreInfobox> |
126 | )) | 136 | )) |
127 | .add('With className', () => ( | 137 | .add('With className', () => ( |
128 | <WithStoreInfobox store={createStore({ | 138 | <WithStoreInfobox |
129 | className: 'franz-is-awesome', | 139 | store={createStore({ |
130 | })} | 140 | className: 'franz-is-awesome', |
141 | })} | ||
131 | > | 142 | > |
132 | Welcome to the world of tomorrow | 143 | Welcome to the world of tomorrow |
133 | </WithStoreInfobox> | 144 | </WithStoreInfobox> |
diff --git a/uidev/src/stories/loader.stories.tsx b/uidev/src/stories/loader.stories.tsx index ad38dffe8..bbe4d3421 100644 --- a/uidev/src/stories/loader.stories.tsx +++ b/uidev/src/stories/loader.stories.tsx | |||
@@ -1,9 +1,8 @@ | |||
1 | import { Loader } from '@meetfranz/ui'; | 1 | import { Loader } from '@meetfranz/ui'; |
2 | import { storiesOf } from '../stores/stories'; | 2 | import { storiesOf } from '../stores/stories'; |
3 | 3 | ||
4 | storiesOf('Loader') | 4 | storiesOf('Loader').add('Basic', () => ( |
5 | .add('Basic', () => ( | 5 | <> |
6 | <> | 6 | <Loader /> |
7 | <Loader /> | 7 | </> |
8 | </> | 8 | )); |
9 | )); | ||
diff --git a/uidev/src/withTheme/index.tsx b/uidev/src/withTheme/index.tsx index 5184ff340..0e39b4810 100644 --- a/uidev/src/withTheme/index.tsx +++ b/uidev/src/withTheme/index.tsx | |||
@@ -28,14 +28,22 @@ const styles = (theme: Theme) => ({ | |||
28 | }, | 28 | }, |
29 | }); | 29 | }); |
30 | 30 | ||
31 | const Container = injectSheet(styles)(({ name, classes, story }: { name: string, classes: Classes, story: React.ReactNode }) => ( | 31 | const Container = injectSheet(styles)( |
32 | <article> | 32 | ({ |
33 | <h1 className={classes.title}>{name}</h1> | 33 | name, |
34 | <div className={classes.container}> | 34 | classes, |
35 | {story} | 35 | story, |
36 | </div> | 36 | }: { |
37 | </article> | 37 | name: string; |
38 | )); | 38 | classes: Classes; |
39 | story: React.ReactNode; | ||
40 | }) => ( | ||
41 | <article> | ||
42 | <h1 className={classes.title}>{name}</h1> | ||
43 | <div className={classes.container}>{story}</div> | ||
44 | </article> | ||
45 | ), | ||
46 | ); | ||
39 | 47 | ||
40 | export const WithTheme = ({ children }: { children: React.ReactChild }) => ( | 48 | export const WithTheme = ({ children }: { children: React.ReactChild }) => ( |
41 | <> | 49 | <> |
@@ -43,6 +51,6 @@ export const WithTheme = ({ children }: { children: React.ReactChild }) => ( | |||
43 | <ThemeProvider key={key} theme={theme.variables}> | 51 | <ThemeProvider key={key} theme={theme.variables}> |
44 | <Container story={children} name={theme.name} /> | 52 | <Container story={children} name={theme.name} /> |
45 | </ThemeProvider> | 53 | </ThemeProvider> |
46 | ))} | 54 | ))} |
47 | </> | 55 | </> |
48 | ); | 56 | ); |
diff --git a/uidev/webpack.config.js b/uidev/webpack.config.js index 74ea870ef..faabac784 100644 --- a/uidev/webpack.config.js +++ b/uidev/webpack.config.js | |||
@@ -4,11 +4,13 @@ const HtmlWebpackPlugin = require('html-webpack-plugin'); | |||
4 | module.exports = { | 4 | module.exports = { |
5 | entry: './src/index.tsx', | 5 | entry: './src/index.tsx', |
6 | module: { | 6 | module: { |
7 | rules: [{ | 7 | rules: [ |
8 | test: /\.tsx?$/, | 8 | { |
9 | use: 'ts-loader', | 9 | test: /\.tsx?$/, |
10 | exclude: /node_modules/, | 10 | use: 'ts-loader', |
11 | }], | 11 | exclude: /node_modules/, |
12 | }, | ||
13 | ], | ||
12 | }, | 14 | }, |
13 | resolve: { | 15 | resolve: { |
14 | extensions: ['.tsx', '.ts', '.js'], | 16 | extensions: ['.tsx', '.ts', '.js'], |