diff --git a/package-lock.json b/package-lock.json
index 4a3a4529d..a1e3b5ba9 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -72,12 +72,12 @@
}
},
"@babel/generator": {
- "version": "7.9.4",
- "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.9.4.tgz",
- "integrity": "sha512-rjP8ahaDy/ouhrvCoU1E5mqaitWrxwuNGU+dy1EpaoK48jZay4MdkskKGIMHLZNewg8sAsqpGSREJwP0zH3YQA==",
+ "version": "7.9.5",
+ "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.9.5.tgz",
+ "integrity": "sha512-GbNIxVB3ZJe3tLeDm1HSn2AhuD/mVcyLDpgtLXa5tplmWrJdF/elxB56XNqCuD6szyNkDi6wuoKXln3QeBmCHQ==",
"dev": true,
"requires": {
- "@babel/types": "^7.9.0",
+ "@babel/types": "^7.9.5",
"jsesc": "^2.5.1",
"lodash": "^4.17.13",
"source-map": "^0.5.0"
@@ -92,14 +92,14 @@
}
},
"@babel/helper-function-name": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.8.3.tgz",
- "integrity": "sha512-BCxgX1BC2hD/oBlIFUgOCQDOPV8nSINxCwM3o93xP4P9Fq6aV5sgv2cOOITDMtCfQ+3PvHp3l689XZvAM9QyOA==",
+ "version": "7.9.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.9.5.tgz",
+ "integrity": "sha512-JVcQZeXM59Cd1qanDUxv9fgJpt3NeKUaqBqUEvfmQ+BCOKq2xUgaWZW2hr0dkbyJgezYuplEoh5knmrnS68efw==",
"dev": true,
"requires": {
"@babel/helper-get-function-arity": "^7.8.3",
"@babel/template": "^7.8.3",
- "@babel/types": "^7.8.3"
+ "@babel/types": "^7.9.5"
}
},
"@babel/helper-get-function-arity": {
@@ -185,9 +185,9 @@
}
},
"@babel/helper-validator-identifier": {
- "version": "7.9.0",
- "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.9.0.tgz",
- "integrity": "sha512-6G8bQKjOh+of4PV/ThDm/rRqlU7+IGoJuofpagU5GlEl29Vv0RGqqt86ZGRV8ZuSOY3o+8yXl5y782SMcG7SHw==",
+ "version": "7.9.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.9.5.tgz",
+ "integrity": "sha512-/8arLKUFq882w4tWGj9JYzRpAlZgiWUJ+dtteNTDqrRBz9Iguck9Rn3ykuBDoUwh2TO4tSAJlrxDUOXWklJe4g==",
"dev": true
},
"@babel/helpers": {
@@ -261,17 +261,17 @@
}
},
"@babel/traverse": {
- "version": "7.9.0",
- "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.9.0.tgz",
- "integrity": "sha512-jAZQj0+kn4WTHO5dUZkZKhbFrqZE7K5LAQ5JysMnmvGij+wOdr+8lWqPeW0BcF4wFwrEXXtdGO7wcV6YPJcf3w==",
+ "version": "7.9.5",
+ "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.9.5.tgz",
+ "integrity": "sha512-c4gH3jsvSuGUezlP6rzSJ6jf8fYjLj3hsMZRx/nX0h+fmHN0w+ekubRrHPqnMec0meycA2nwCsJ7dC8IPem2FQ==",
"dev": true,
"requires": {
"@babel/code-frame": "^7.8.3",
- "@babel/generator": "^7.9.0",
- "@babel/helper-function-name": "^7.8.3",
+ "@babel/generator": "^7.9.5",
+ "@babel/helper-function-name": "^7.9.5",
"@babel/helper-split-export-declaration": "^7.8.3",
"@babel/parser": "^7.9.0",
- "@babel/types": "^7.9.0",
+ "@babel/types": "^7.9.5",
"debug": "^4.1.0",
"globals": "^11.1.0",
"lodash": "^4.17.13"
@@ -300,12 +300,12 @@
}
},
"@babel/types": {
- "version": "7.9.0",
- "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.0.tgz",
- "integrity": "sha512-BS9JKfXkzzJl8RluW4JGknzpiUV7ZrvTayM6yfqLTVBEnFtyowVIOu6rqxRd5cVO6yGoWf4T8u8dgK9oB+GCng==",
+ "version": "7.9.5",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.5.tgz",
+ "integrity": "sha512-XjnvNqenk818r5zMaba+sLQjnbda31UfUURv3ei0qPQw4u+j2jMyJ5b11y8ZHYTRSI3NnInQkkkRT4fLqqPdHg==",
"dev": true,
"requires": {
- "@babel/helper-validator-identifier": "^7.9.0",
+ "@babel/helper-validator-identifier": "^7.9.5",
"lodash": "^4.17.13",
"to-fast-properties": "^2.0.0"
}
@@ -321,9 +321,9 @@
}
},
"@electron/get": {
- "version": "1.9.0",
- "resolved": "https://registry.npmjs.org/@electron/get/-/get-1.9.0.tgz",
- "integrity": "sha512-OBIKtF6ttIJotDXe4KJMUyTBO4xMii+mFjlA8R4CORuD4HvCUaCK3lPjhdTRCvuEv6gzWNbAvd9DNBv0v780lw==",
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/@electron/get/-/get-1.10.0.tgz",
+ "integrity": "sha512-hlueNXU51c3CwQjBw/i5fwt+VfQgSQVUTdicpCHkhEjNZaa4CXJ5W1GaxSwtLE2dvRmAHjpIjUMHTqJ53uojfg==",
"dev": true,
"requires": {
"debug": "^4.1.1",
@@ -507,6 +507,25 @@
"integrity": "sha512-on7+0FFpUH7+g5iLFkmk0oruqzE6uUnpKK0D6HM637aIvQ/mlXz33VlamsS4TSU6pifWSNIrUxrNKjAReU2Juw==",
"dev": true
},
+ "@stylelint/postcss-css-in-js": {
+ "version": "0.37.1",
+ "resolved": "https://registry.npmjs.org/@stylelint/postcss-css-in-js/-/postcss-css-in-js-0.37.1.tgz",
+ "integrity": "sha512-UMf2Rni3JGKi3ZwYRGMYJ5ipOA5ENJSKMtYA/pE1ZLURwdh7B5+z2r73RmWvub+N0UuH1Lo+TGfCgYwPvqpXNw==",
+ "dev": true,
+ "requires": {
+ "@babel/core": ">=7.9.0"
+ }
+ },
+ "@stylelint/postcss-markdown": {
+ "version": "0.36.1",
+ "resolved": "https://registry.npmjs.org/@stylelint/postcss-markdown/-/postcss-markdown-0.36.1.tgz",
+ "integrity": "sha512-iDxMBWk9nB2BPi1VFQ+Dc5+XpvODBHw2n3tYpaBZuEAFQlbtF9If0Qh5LTTwSi/XwdbJ2jt+0dis3i8omyggpw==",
+ "dev": true,
+ "requires": {
+ "remark": "^12.0.0",
+ "unist-util-find-all-after": "^3.0.1"
+ }
+ },
"@szmarczak/http-timer": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz",
@@ -628,26 +647,6 @@
"integrity": "sha512-FvUupuM3rlRsRtCN+fDudtmytGO6iHJuuRKS1Ss0pG5z8oX0diNEw94UEL7hgDbpN94rgaK5R7sWm6RrSkZuAQ==",
"dev": true
},
- "@types/vfile": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/@types/vfile/-/vfile-3.0.2.tgz",
- "integrity": "sha512-b3nLFGaGkJ9rzOcuXRfHkZMdjsawuDD0ENL9fzTophtBg8FJHSGbH7daXkEpcwy3v7Xol3pAvsmlYyFhR4pqJw==",
- "dev": true,
- "requires": {
- "@types/node": "*",
- "@types/unist": "*",
- "@types/vfile-message": "*"
- }
- },
- "@types/vfile-message": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/@types/vfile-message/-/vfile-message-2.0.0.tgz",
- "integrity": "sha512-GpTIuDpb9u4zIO165fUy9+fXcULdD8HFRNli04GehoMVbeNq7D6OBnqSmg3lxZnC+UvgUhEWKxdKiwYUkGltIw==",
- "dev": true,
- "requires": {
- "vfile-message": "*"
- }
- },
"@types/yargs": {
"version": "15.0.4",
"resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.4.tgz",
@@ -664,45 +663,45 @@
"dev": true
},
"@typescript-eslint/eslint-plugin": {
- "version": "2.27.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-2.27.0.tgz",
- "integrity": "sha512-/my+vVHRN7zYgcp0n4z5A6HAK7bvKGBiswaM5zIlOQczsxj/aiD7RcgD+dvVFuwFaGh5+kM7XA6Q6PN0bvb1tw==",
+ "version": "2.28.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-2.28.0.tgz",
+ "integrity": "sha512-w0Ugcq2iatloEabQP56BRWJowliXUP5Wv6f9fKzjJmDW81hOTBxRoJ4LoEOxRpz9gcY51Libytd2ba3yLmSOfg==",
"dev": true,
"requires": {
- "@typescript-eslint/experimental-utils": "2.27.0",
+ "@typescript-eslint/experimental-utils": "2.28.0",
"functional-red-black-tree": "^1.0.1",
"regexpp": "^3.0.0",
"tsutils": "^3.17.1"
}
},
"@typescript-eslint/experimental-utils": {
- "version": "2.27.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-2.27.0.tgz",
- "integrity": "sha512-vOsYzjwJlY6E0NJRXPTeCGqjv5OHgRU1kzxHKWJVPjDYGbPgLudBXjIlc+OD1hDBZ4l1DLbOc5VjofKahsu9Jw==",
+ "version": "2.28.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-2.28.0.tgz",
+ "integrity": "sha512-4SL9OWjvFbHumM/Zh/ZeEjUFxrYKtdCi7At4GyKTbQlrj1HcphIDXlje4Uu4cY+qzszR5NdVin4CCm6AXCjd6w==",
"dev": true,
"requires": {
"@types/json-schema": "^7.0.3",
- "@typescript-eslint/typescript-estree": "2.27.0",
+ "@typescript-eslint/typescript-estree": "2.28.0",
"eslint-scope": "^5.0.0",
"eslint-utils": "^2.0.0"
}
},
"@typescript-eslint/parser": {
- "version": "2.27.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-2.27.0.tgz",
- "integrity": "sha512-HFUXZY+EdwrJXZo31DW4IS1ujQW3krzlRjBrFRrJcMDh0zCu107/nRfhk/uBasO8m0NVDbBF5WZKcIUMRO7vPg==",
+ "version": "2.28.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-2.28.0.tgz",
+ "integrity": "sha512-RqPybRDquui9d+K86lL7iPqH6Dfp9461oyqvlXMNtap+PyqYbkY5dB7LawQjDzot99fqzvS0ZLZdfe+1Bt3Jgw==",
"dev": true,
"requires": {
"@types/eslint-visitor-keys": "^1.0.0",
- "@typescript-eslint/experimental-utils": "2.27.0",
- "@typescript-eslint/typescript-estree": "2.27.0",
+ "@typescript-eslint/experimental-utils": "2.28.0",
+ "@typescript-eslint/typescript-estree": "2.28.0",
"eslint-visitor-keys": "^1.1.0"
}
},
"@typescript-eslint/typescript-estree": {
- "version": "2.27.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-2.27.0.tgz",
- "integrity": "sha512-t2miCCJIb/FU8yArjAvxllxbTiyNqaXJag7UOpB5DVoM3+xnjeOngtqlJkLRnMtzaRcJhe3CIR9RmL40omubhg==",
+ "version": "2.28.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-2.28.0.tgz",
+ "integrity": "sha512-HDr8MP9wfwkiuqzRVkuM3BeDrOC4cKbO5a6BymZBHUt5y/2pL0BXD6I/C/ceq2IZoHWhcASk+5/zo+dwgu9V8Q==",
"dev": true,
"requires": {
"debug": "^4.1.1",
@@ -1466,9 +1465,9 @@
}
},
"caniuse-lite": {
- "version": "1.0.30001039",
- "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001039.tgz",
- "integrity": "sha512-SezbWCTT34eyFoWHgx8UWso7YtvtM7oosmFoXbCkdC6qJzRfBTeTgE9REtKtiuKXuMwWTZEvdnFNGAyVMorv8Q==",
+ "version": "1.0.30001041",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001041.tgz",
+ "integrity": "sha512-fqDtRCApddNrQuBxBS7kEiSGdBsgO4wiVw4G/IClfqzfhW45MbTumfN4cuUJGTM0YGFNn97DCXPJ683PS6zwvA==",
"dev": true
},
"ccount": {
@@ -1869,9 +1868,9 @@
}
},
"core-js": {
- "version": "3.6.4",
- "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.6.4.tgz",
- "integrity": "sha512-4paDGScNgZP2IXXilaffL9X7968RuvwlkK3xWtZRVqgd8SYNiVKRJvkFd1aqqEuPfN7E68ZHEp9hDj6lHj4Hyw==",
+ "version": "3.6.5",
+ "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.6.5.tgz",
+ "integrity": "sha512-vZVEEwZoIsI+vPEuoF9Iqf5H7/M3eeQqWlQnYa8FSKKePuYTf5MWnxb5SDAzCa60b3JBRS5g9b+Dq7b1y/RCrA==",
"dev": true,
"optional": true
},
@@ -2369,9 +2368,9 @@
"dev": true
},
"electron": {
- "version": "8.2.1",
- "resolved": "https://registry.npmjs.org/electron/-/electron-8.2.1.tgz",
- "integrity": "sha512-+1PispFqjyKj3VeOPbEKEl6LYxPW41OxHgh9CGN8KeGygsKDHSZuuG9rYc+b9NeeaAl+gnV9VO2JOe7BIzXyOg==",
+ "version": "8.2.2",
+ "resolved": "https://registry.npmjs.org/electron/-/electron-8.2.2.tgz",
+ "integrity": "sha512-GH4RCbpuzEn3XpTmsf+wLaJ2KOPSOoBJvQ0s6ftTLs5+IQEgKZvkdYCj8TCBNXFhss31RT3BUqoEQQUyZErK0A==",
"dev": true,
"requires": {
"@electron/get": "^1.0.1",
@@ -2380,9 +2379,9 @@
},
"dependencies": {
"@types/node": {
- "version": "12.12.34",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.34.tgz",
- "integrity": "sha512-BneGN0J9ke24lBRn44hVHNeDlrXRYF+VRp0HbSUNnEZahXGAysHZIqnf/hER6aabdBgzM4YOV4jrR8gj4Zfi0g==",
+ "version": "12.12.35",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.35.tgz",
+ "integrity": "sha512-ASYsaKecA7TUsDrqIGPNk3JeEox0z/0XR/WsJJ8BIX/9+SkMSImQXKWfU/yBrSyc7ZSE/NPqLu36Nur0miCFfQ==",
"dev": true
}
}
@@ -2651,12 +2650,12 @@
}
},
"electron-context-menu": {
- "version": "0.16.0",
- "resolved": "https://registry.npmjs.org/electron-context-menu/-/electron-context-menu-0.16.0.tgz",
- "integrity": "sha512-lGr1/nRlNGmU8THc0hl2dYEB5bwXJpsi7vCjjsnsNGJKPZZLY8nHY3xvtjdtwKocErvp1h8wUb19moWenzoGPw==",
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/electron-context-menu/-/electron-context-menu-1.0.0.tgz",
+ "integrity": "sha512-Vg20fMnUv/DQjcTg1F2pFVsufE+t5RhRDLbxMaPG5x7KOcevT7iWnNrenGPgAdPzezVMf/S2blin8jhUxJilcA==",
"requires": {
"cli-truncate": "^2.0.0",
- "electron-dl": "^1.2.0",
+ "electron-dl": "^3.0.0",
"electron-is-dev": "^1.0.1"
},
"dependencies": {
@@ -2696,16 +2695,6 @@
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
},
- "electron-dl": {
- "version": "1.14.0",
- "resolved": "https://registry.npmjs.org/electron-dl/-/electron-dl-1.14.0.tgz",
- "integrity": "sha512-4okyei42a1mLsvLK7hLrIfd20EQzB18nIlLTwBV992aMSmTGLUEFRTmO1MfSslGNrzD8nuPuy1l/VxO8so4lig==",
- "requires": {
- "ext-name": "^5.0.0",
- "pupa": "^1.0.0",
- "unused-filename": "^1.0.0"
- }
- },
"slice-ansi": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz",
@@ -2887,9 +2876,9 @@
}
},
"electron-to-chromium": {
- "version": "1.3.398",
- "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.398.tgz",
- "integrity": "sha512-BJjxuWLKFbM5axH3vES7HKMQgAknq9PZHBkMK/rEXUQG9i1Iw5R+6hGkm6GtsQSANjSUrh/a6m32nzCNDNo/+w==",
+ "version": "1.3.405",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.405.tgz",
+ "integrity": "sha512-D+xkP+hAQY/790DzImC8bI8QJLaArNG4b74bYvkhkK/fli51JmNyUYxwKLSl/8VPGkkXEqKCupSDD05/E5P72w==",
"dev": true
},
"electron-updater": {
@@ -4347,9 +4336,9 @@
},
"dependencies": {
"semver": {
- "version": "7.2.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.2.1.tgz",
- "integrity": "sha512-aHhm1pD02jXXkyIpq25qBZjr3CQgg8KST8uX0OWXch3xE6jw+1bfbWnCjzMwojsTquroUmKFHNzU6x26mEiRxw==",
+ "version": "7.3.2",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz",
+ "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==",
"dev": true,
"optional": true
}
@@ -4447,14 +4436,6 @@
"dev": true,
"requires": {
"minimist": "^1.2.5"
- },
- "dependencies": {
- "minimist": {
- "version": "1.2.5",
- "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
- "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==",
- "dev": true
- }
}
},
"got": {
@@ -4619,14 +4600,14 @@
"dev": true
},
"husky": {
- "version": "4.2.3",
- "resolved": "https://registry.npmjs.org/husky/-/husky-4.2.3.tgz",
- "integrity": "sha512-VxTsSTRwYveKXN4SaH1/FefRJYCtx+wx04sSVcOpD7N2zjoHxa+cEJ07Qg5NmV3HAK+IRKOyNVpi2YBIVccIfQ==",
+ "version": "4.2.5",
+ "resolved": "https://registry.npmjs.org/husky/-/husky-4.2.5.tgz",
+ "integrity": "sha512-SYZ95AjKcX7goYVZtVZF2i6XiZcHknw50iXvY7b0MiGoj5RwdgRQNEHdb+gPDPCXKlzwrybjFjkL6FOj8uRhZQ==",
"dev": true,
"requires": {
- "chalk": "^3.0.0",
+ "chalk": "^4.0.0",
"ci-info": "^2.0.0",
- "compare-versions": "^3.5.1",
+ "compare-versions": "^3.6.0",
"cosmiconfig": "^6.0.0",
"find-versions": "^3.2.0",
"opencollective-postinstall": "^2.0.2",
@@ -4647,9 +4628,9 @@
}
},
"chalk": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz",
- "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.0.0.tgz",
+ "integrity": "sha512-N9oWFcegS0sFr9oh1oz2d7Npos6vNoWW9HvtCg5N1KRFpUhaAhvTv5Y58g880fZaEYSNm3qDz8SU1UrGvp+n7A==",
"dev": true,
"requires": {
"ansi-styles": "^4.1.0",
@@ -5978,10 +5959,13 @@
"dev": true
},
"markdown-table": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-1.1.3.tgz",
- "integrity": "sha512-1RUZVgQlpJSPWYbFSpmudq5nHY1doEIv89gBtF0s4gW1GF2XorxcA/70M5vq7rLv0a6mhOUccRsqkwhwLCIQ2Q==",
- "dev": true
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-2.0.0.tgz",
+ "integrity": "sha512-Ezda85ToJUBhM6WGaG6veasyym+Tbs3cMAw/ZhOPqXiYsr0jgocBV3j3nx+4lk47plLlIqjwuTm/ywVI+zjJ/A==",
+ "dev": true,
+ "requires": {
+ "repeat-string": "^1.0.0"
+ }
},
"matcher": {
"version": "2.1.0",
@@ -6009,12 +5993,12 @@
"dev": true
},
"mdast-util-compact": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/mdast-util-compact/-/mdast-util-compact-1.0.4.tgz",
- "integrity": "sha512-3YDMQHI5vRiS2uygEFYaqckibpJtKq5Sj2c8JioeOQBU6INpKbdWzfyLqFFnDwEcEnRFIdMsguzs5pC1Jp4Isg==",
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/mdast-util-compact/-/mdast-util-compact-2.0.1.tgz",
+ "integrity": "sha512-7GlnT24gEwDrdAwEHrU4Vv5lLWrEer4KOkAiKT9nYstsTad7Oc1TwqT2zIMKRdZF7cTuaf+GA1E4Kv7jJh8mPA==",
"dev": true,
"requires": {
- "unist-util-visit": "^1.1.0"
+ "unist-util-visit": "^2.0.0"
}
},
"mem": {
@@ -6138,9 +6122,9 @@
}
},
"minimist": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
- "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
+ "version": "1.2.5",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
+ "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==",
"dev": true
},
"minimist-options": {
@@ -7066,9 +7050,9 @@
}
},
"parse-entities": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-1.2.2.tgz",
- "integrity": "sha512-NzfpbxW/NPrzZ/yYSoQxyqUZMZXIdCfE0OIN4ESsnptHJECoUk3FZktxNuzQf4tjt5UEopnxpYJbvYuxIFDdsg==",
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-2.0.0.tgz",
+ "integrity": "sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==",
"dev": true,
"requires": {
"character-entities": "^1.0.0",
@@ -7404,15 +7388,6 @@
"htmlparser2": "^3.10.0"
}
},
- "postcss-jsx": {
- "version": "0.36.4",
- "resolved": "https://registry.npmjs.org/postcss-jsx/-/postcss-jsx-0.36.4.tgz",
- "integrity": "sha512-jwO/7qWUvYuWYnpOb0+4bIIgJt7003pgU3P6nETBLaOyBXuTD55ho21xnals5nBrlpTIFodyd3/jBi6UO3dHvA==",
- "dev": true,
- "requires": {
- "@babel/core": ">=7.2.2"
- }
- },
"postcss-less": {
"version": "3.1.4",
"resolved": "https://registry.npmjs.org/postcss-less/-/postcss-less-3.1.4.tgz",
@@ -7422,16 +7397,6 @@
"postcss": "^7.0.14"
}
},
- "postcss-markdown": {
- "version": "0.36.0",
- "resolved": "https://registry.npmjs.org/postcss-markdown/-/postcss-markdown-0.36.0.tgz",
- "integrity": "sha512-rl7fs1r/LNSB2bWRhyZ+lM/0bwKv9fhl38/06gF6mKMo/NPnp55+K1dSTosSVjFZc0e1ppBlu+WT91ba0PMBfQ==",
- "dev": true,
- "requires": {
- "remark": "^10.0.1",
- "unist-util-find-all-after": "^1.0.2"
- }
- },
"postcss-media-query-parser": {
"version": "0.2.3",
"resolved": "https://registry.npmjs.org/postcss-media-query-parser/-/postcss-media-query-parser-0.2.3.tgz",
@@ -7609,11 +7574,6 @@
"resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
"integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A=="
},
- "pupa": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/pupa/-/pupa-1.0.0.tgz",
- "integrity": "sha1-mpVopa9+ZXuEYqbp1TKHQ1YM7/Y="
- },
"quick-lru": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-1.1.0.tgz",
@@ -7751,43 +7711,44 @@
}
},
"remark": {
- "version": "10.0.1",
- "resolved": "https://registry.npmjs.org/remark/-/remark-10.0.1.tgz",
- "integrity": "sha512-E6lMuoLIy2TyiokHprMjcWNJ5UxfGQjaMSMhV+f4idM625UjjK4j798+gPs5mfjzDE6vL0oFKVeZM6gZVSVrzQ==",
+ "version": "12.0.0",
+ "resolved": "https://registry.npmjs.org/remark/-/remark-12.0.0.tgz",
+ "integrity": "sha512-oX4lMIS0csgk8AEbzY0h2jdR0ngiCHOpwwpxjmRa5TqAkeknY+tkhjRJGZqnCmvyuWh55/0SW5WY3R3nn3PH9A==",
"dev": true,
"requires": {
- "remark-parse": "^6.0.0",
- "remark-stringify": "^6.0.0",
- "unified": "^7.0.0"
+ "remark-parse": "^8.0.0",
+ "remark-stringify": "^8.0.0",
+ "unified": "^9.0.0"
}
},
"remark-parse": {
- "version": "6.0.3",
- "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-6.0.3.tgz",
- "integrity": "sha512-QbDXWN4HfKTUC0hHa4teU463KclLAnwpn/FBn87j9cKYJWWawbiLgMfP2Q4XwhxxuuuOxHlw+pSN0OKuJwyVvg==",
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-8.0.0.tgz",
+ "integrity": "sha512-Ck14G1Ns/GEPXhSw6m1Uv28kMtVk63e59NyL+QlhBBwBdIUXROM6MPfBehPhW6TW2d73batMdZsKwuxl5i3tEA==",
"dev": true,
"requires": {
+ "ccount": "^1.0.0",
"collapse-white-space": "^1.0.2",
"is-alphabetical": "^1.0.0",
"is-decimal": "^1.0.0",
"is-whitespace-character": "^1.0.0",
"is-word-character": "^1.0.0",
"markdown-escapes": "^1.0.0",
- "parse-entities": "^1.1.0",
+ "parse-entities": "^2.0.0",
"repeat-string": "^1.5.4",
"state-toggle": "^1.0.0",
"trim": "0.0.1",
"trim-trailing-lines": "^1.0.0",
"unherit": "^1.0.4",
- "unist-util-remove-position": "^1.0.0",
- "vfile-location": "^2.0.0",
+ "unist-util-remove-position": "^2.0.0",
+ "vfile-location": "^3.0.0",
"xtend": "^4.0.1"
}
},
"remark-stringify": {
- "version": "6.0.4",
- "resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-6.0.4.tgz",
- "integrity": "sha512-eRWGdEPMVudijE/psbIDNcnJLRVx3xhfuEsTDGgH4GsFF91dVhw5nhmnBppafJ7+NWINW6C7ZwWbi30ImJzqWg==",
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-8.0.0.tgz",
+ "integrity": "sha512-cABVYVloFH+2ZI5bdqzoOmemcz/ZuhQSH6W6ZNYnLojAUUn3xtX7u+6BpnYp35qHoGr2NFBsERV14t4vCIeW8w==",
"dev": true,
"requires": {
"ccount": "^1.0.0",
@@ -7796,12 +7757,12 @@
"is-whitespace-character": "^1.0.0",
"longest-streak": "^2.0.1",
"markdown-escapes": "^1.0.0",
- "markdown-table": "^1.1.0",
- "mdast-util-compact": "^1.0.0",
- "parse-entities": "^1.0.2",
+ "markdown-table": "^2.0.0",
+ "mdast-util-compact": "^2.0.0",
+ "parse-entities": "^2.0.0",
"repeat-string": "^1.5.4",
"state-toggle": "^1.0.0",
- "stringify-entities": "^1.0.1",
+ "stringify-entities": "^3.0.0",
"unherit": "^1.0.4",
"xtend": "^4.0.1"
}
@@ -8483,14 +8444,15 @@
}
},
"stringify-entities": {
- "version": "1.3.2",
- "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-1.3.2.tgz",
- "integrity": "sha512-nrBAQClJAPN2p+uGCVJRPIPakKeKWZ9GtBCmormE7pWOSlHat7+x5A8gx85M7HM5Dt0BP3pP5RhVW77WdbJJ3A==",
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-3.0.0.tgz",
+ "integrity": "sha512-h7NJJIssprqlyjHT2eQt2W1F+MCcNmwPGlKb0bWEdET/3N44QN3QbUF/ueKCgAssyKRZ3Br9rQ7FcXjHr0qLHw==",
"dev": true,
"requires": {
"character-entities-html4": "^1.0.0",
"character-entities-legacy": "^1.0.0",
"is-alphanumerical": "^1.0.0",
+ "is-decimal": "^1.0.2",
"is-hexadecimal": "^1.0.0"
}
},
@@ -8547,14 +8509,16 @@
"dev": true
},
"stylelint": {
- "version": "13.3.0",
- "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-13.3.0.tgz",
- "integrity": "sha512-ehNzQu9JAbxuiNhUhmoyPgMjIdz7Fg1AxC5urPVhKotto/faF5GxwljSoLvQa6pB6yd+BVuofApWjWT/6/rBMQ==",
+ "version": "13.3.2",
+ "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-13.3.2.tgz",
+ "integrity": "sha512-kpO3/Gz2ZY40EWUwFYYkgpzhf8ZDUyKpcui5+pS0XKJBj/EMYmZpOJoL8IFAz2yApYeg91NVy5yAjE39hDzWvQ==",
"dev": true,
"requires": {
- "autoprefixer": "^9.7.5",
+ "@stylelint/postcss-css-in-js": "^0.37.1",
+ "@stylelint/postcss-markdown": "^0.36.1",
+ "autoprefixer": "^9.7.6",
"balanced-match": "^1.0.0",
- "chalk": "^3.0.0",
+ "chalk": "^4.0.0",
"cosmiconfig": "^6.0.0",
"debug": "^4.1.1",
"execall": "^2.0.0",
@@ -8577,14 +8541,12 @@
"normalize-selector": "^0.2.0",
"postcss": "^7.0.27",
"postcss-html": "^0.36.0",
- "postcss-jsx": "^0.36.4",
"postcss-less": "^3.1.4",
- "postcss-markdown": "^0.36.0",
"postcss-media-query-parser": "^0.2.3",
"postcss-reporter": "^6.0.1",
"postcss-resolve-nested-selector": "^0.1.1",
"postcss-safe-parser": "^4.0.2",
- "postcss-sass": "^0.4.2",
+ "postcss-sass": "^0.4.4",
"postcss-scss": "^2.0.0",
"postcss-selector-parser": "^6.0.2",
"postcss-syntax": "^0.36.2",
@@ -8636,9 +8598,9 @@
}
},
"chalk": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz",
- "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.0.0.tgz",
+ "integrity": "sha512-N9oWFcegS0sFr9oh1oz2d7Npos6vNoWW9HvtCg5N1KRFpUhaAhvTv5Y58g880fZaEYSNm3qDz8SU1UrGvp+n7A==",
"dev": true,
"requires": {
"ansi-styles": "^4.1.0",
@@ -9429,19 +9391,25 @@
}
},
"unified": {
- "version": "7.1.0",
- "resolved": "https://registry.npmjs.org/unified/-/unified-7.1.0.tgz",
- "integrity": "sha512-lbk82UOIGuCEsZhPj8rNAkXSDXd6p0QLzIuSsCdxrqnqU56St4eyOB+AlXsVgVeRmetPTYydIuvFfpDIed8mqw==",
+ "version": "9.0.0",
+ "resolved": "https://registry.npmjs.org/unified/-/unified-9.0.0.tgz",
+ "integrity": "sha512-ssFo33gljU3PdlWLjNp15Inqb77d6JnJSfyplGJPT/a+fNRNyCBeveBAYJdO5khKdF6WVHa/yYCC7Xl6BDwZUQ==",
"dev": true,
"requires": {
- "@types/unist": "^2.0.0",
- "@types/vfile": "^3.0.0",
"bail": "^1.0.0",
"extend": "^3.0.0",
- "is-plain-obj": "^1.1.0",
+ "is-buffer": "^2.0.0",
+ "is-plain-obj": "^2.0.0",
"trough": "^1.0.0",
- "vfile": "^3.0.0",
- "x-is-string": "^0.1.0"
+ "vfile": "^4.0.0"
+ },
+ "dependencies": {
+ "is-plain-obj": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz",
+ "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==",
+ "dev": true
+ }
}
},
"union-value": {
@@ -9472,27 +9440,27 @@
}
},
"unist-util-find-all-after": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/unist-util-find-all-after/-/unist-util-find-all-after-1.0.5.tgz",
- "integrity": "sha512-lWgIc3rrTMTlK1Y0hEuL+k+ApzFk78h+lsaa2gHf63Gp5Ww+mt11huDniuaoq1H+XMK2lIIjjPkncxXcDp3QDw==",
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/unist-util-find-all-after/-/unist-util-find-all-after-3.0.1.tgz",
+ "integrity": "sha512-0GICgc++sRJesLwEYDjFVJPJttBpVQaTNgc6Jw0Jhzvfs+jtKePEMu+uD+PqkRUrAvGQqwhpDwLGWo1PK8PDEw==",
"dev": true,
"requires": {
- "unist-util-is": "^3.0.0"
+ "unist-util-is": "^4.0.0"
}
},
"unist-util-is": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-3.0.0.tgz",
- "integrity": "sha512-sVZZX3+kspVNmLWBPAB6r+7D9ZgAFPNWm66f7YNb420RlQSbn+n8rG8dGZSkrER7ZIXGQYNm5pqC3v3HopH24A==",
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-4.0.2.tgz",
+ "integrity": "sha512-Ofx8uf6haexJwI1gxWMGg6I/dLnF2yE+KibhD3/diOqY2TinLcqHXCV6OI5gFVn3xQqDH+u0M625pfKwIwgBKQ==",
"dev": true
},
"unist-util-remove-position": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/unist-util-remove-position/-/unist-util-remove-position-1.1.4.tgz",
- "integrity": "sha512-tLqd653ArxJIPnKII6LMZwH+mb5q+n/GtXQZo6S6csPRs5zB0u79Yw8ouR3wTw8wxvdJFhpP6Y7jorWdCgLO0A==",
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/unist-util-remove-position/-/unist-util-remove-position-2.0.1.tgz",
+ "integrity": "sha512-fDZsLYIe2uT+oGFnuZmy73K6ZxOPG/Qcm+w7jbEjaFcJgbQ6cqjs/eSPzXhsmGpAsWPkqZM9pYjww5QTn3LHMA==",
"dev": true,
"requires": {
- "unist-util-visit": "^1.1.0"
+ "unist-util-visit": "^2.0.0"
}
},
"unist-util-stringify-position": {
@@ -9505,21 +9473,24 @@
}
},
"unist-util-visit": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-1.4.1.tgz",
- "integrity": "sha512-AvGNk7Bb//EmJZyhtRUnNMEpId/AZ5Ph/KUpTI09WHQuDZHKovQ1oEv3mfmKpWKtoMzyMC4GLBm1Zy5k12fjIw==",
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-2.0.2.tgz",
+ "integrity": "sha512-HoHNhGnKj6y+Sq+7ASo2zpVdfdRifhTgX2KTU3B/sO/TTlZchp7E3S4vjRzDJ7L60KmrCPsQkVK3lEF3cz36XQ==",
"dev": true,
"requires": {
- "unist-util-visit-parents": "^2.0.0"
+ "@types/unist": "^2.0.0",
+ "unist-util-is": "^4.0.0",
+ "unist-util-visit-parents": "^3.0.0"
}
},
"unist-util-visit-parents": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-2.1.2.tgz",
- "integrity": "sha512-DyN5vD4NE3aSeB+PXYNKxzGsfocxp6asDc2XXE3b0ekO2BaRUpBicbbUygfSvYfUz1IkmjFR1YF7dPklraMZ2g==",
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-3.0.2.tgz",
+ "integrity": "sha512-yJEfuZtzFpQmg1OSCyS9M5NJRrln/9FbYosH3iW0MG402QbdbaB8ZESwUv9RO6nRfLAKvWcMxCwdLWOov36x/g==",
"dev": true,
"requires": {
- "unist-util-is": "^3.0.0"
+ "@types/unist": "^2.0.0",
+ "unist-util-is": "^4.0.0"
}
},
"universalify": {
@@ -9567,15 +9538,6 @@
}
}
},
- "unused-filename": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/unused-filename/-/unused-filename-1.0.0.tgz",
- "integrity": "sha1-00CID3GuIRXrqhMlvvBcxmhEacY=",
- "requires": {
- "modify-filename": "^1.1.0",
- "path-exists": "^3.0.0"
- }
- },
"update-notifier": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-3.0.1.tgz",
@@ -9672,38 +9634,22 @@
}
},
"vfile": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/vfile/-/vfile-3.0.1.tgz",
- "integrity": "sha512-y7Y3gH9BsUSdD4KzHsuMaCzRjglXN0W2EcMf0gpvu6+SbsGhMje7xDc8AEoeXy6mIwCKMI6BkjMsRjzQbhMEjQ==",
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-4.1.0.tgz",
+ "integrity": "sha512-BaTPalregj++64xbGK6uIlsurN3BCRNM/P2Pg8HezlGzKd1O9PrwIac6bd9Pdx2uTb0QHoioZ+rXKolbVXEgJg==",
"dev": true,
"requires": {
+ "@types/unist": "^2.0.0",
"is-buffer": "^2.0.0",
"replace-ext": "1.0.0",
- "unist-util-stringify-position": "^1.0.0",
- "vfile-message": "^1.0.0"
- },
- "dependencies": {
- "unist-util-stringify-position": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-1.1.2.tgz",
- "integrity": "sha512-pNCVrk64LZv1kElr0N1wPiHEUoXNVFERp+mlTg/s9R5Lwg87f9bM/3sQB99w+N9D/qnM9ar3+AKDBwo/gm/iQQ==",
- "dev": true
- },
- "vfile-message": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-1.1.1.tgz",
- "integrity": "sha512-1WmsopSGhWt5laNir+633LszXvZ+Z/lxveBf6yhGsqnQIhlhzooZae7zV6YVM1Sdkw68dtAW3ow0pOdPANugvA==",
- "dev": true,
- "requires": {
- "unist-util-stringify-position": "^1.1.1"
- }
- }
+ "unist-util-stringify-position": "^2.0.0",
+ "vfile-message": "^2.0.0"
}
},
"vfile-location": {
- "version": "2.0.6",
- "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-2.0.6.tgz",
- "integrity": "sha512-sSFdyCP3G6Ka0CEmN83A2YCMKIieHx0EDaj5IDP4g1pa5ZJ4FJDvpO0WODLxo4LUX4oe52gmSCK7Jw4SBghqxA==",
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-3.0.1.tgz",
+ "integrity": "sha512-yYBO06eeN/Ki6Kh1QAkgzYpWT1d3Qln+ZCtSbJqFExPl1S3y2qqotJQXoh6qEvl/jDlgpUJolBn3PItVnnZRqQ==",
"dev": true
},
"vfile-message": {
@@ -10010,12 +9956,6 @@
}
}
},
- "x-is-string": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/x-is-string/-/x-is-string-0.1.0.tgz",
- "integrity": "sha1-R0tQhlrzpJqcRlfwWs0UVFj3fYI=",
- "dev": true
- },
"xdg-basedir": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-3.0.0.tgz",
diff --git a/package.json b/package.json
index d45e44d81..a38e1cc23 100644
--- a/package.json
+++ b/package.json
@@ -27,7 +27,7 @@
"dependencies": {
"@sindresorhus/do-not-disturb": "^1.1.0",
"electron-better-ipc": "^0.8.0",
- "electron-context-menu": "^0.16.0",
+ "electron-context-menu": "^1.0.0",
"electron-debug": "^3.0.1",
"electron-dl": "^3.0.0",
"electron-localshortcut": "^3.2.1",
@@ -47,15 +47,15 @@
"@types/electron-localshortcut": "^3.1.0",
"@types/facebook-locales": "^1.0.0",
"@types/lodash": "^4.14.149",
- "@typescript-eslint/eslint-plugin": "^2.27.0",
- "@typescript-eslint/parser": "^2.27.0",
+ "@typescript-eslint/eslint-plugin": "^2.28.0",
+ "@typescript-eslint/parser": "^2.28.0",
"del-cli": "^3.0.0",
- "electron": "^8.2.1",
+ "electron": "^8.2.2",
"electron-builder": "^22.4.1",
"eslint-config-xo-typescript": "^0.26.0",
- "husky": "^4.2.3",
+ "husky": "^4.2.5",
"np": "^5.2.1",
- "stylelint": "^13.3.0",
+ "stylelint": "^13.3.2",
"stylelint-config-xo": "^0.16.1",
"typescript": "^3.8.3",
"xo": "^0.25.4"
diff --git a/readme.md b/readme.md
index 3e7083be6..bc1023d32 100644
--- a/readme.md
+++ b/readme.md
@@ -149,6 +149,12 @@ Note that you can change the behavior of Caprine so that the app closes when the
+### Custom languages for spell-check *(Not for macOS)*
+
+Users can select supported languages from `Conversation` → `Spell Checker Language`.
+
+macOS detects the language automatically.
+
### Custom styles
Advanced users can modify the colors/styles of Caprine. Click the menu item `Caprine`/`File` → `Caprine Settings` → `Advanced` → `Custom Styles` and a CSS file will open up in your default editor.
diff --git a/source/config.ts b/source/config.ts
index 4207a4ec5..91414abd8 100644
--- a/source/config.ts
+++ b/source/config.ts
@@ -40,6 +40,7 @@ type StoreType = {
quitOnWindowClose: boolean;
keepMeSignedIn: boolean;
autoplayVideos: boolean;
+ spellCheckerLanguages: string[];
};
const schema: {[Key in keyof StoreType]: Store.Schema} = {
@@ -196,6 +197,13 @@ const schema: {[Key in keyof StoreType]: Store.Schema} = {
autoplayVideos: {
type: 'boolean',
default: true
+ },
+ spellCheckerLanguages: {
+ type: 'array',
+ items: {
+ type: 'string'
+ },
+ default: []
}
};
diff --git a/source/index.ts b/source/index.ts
index c75651fdb..23f1a56ad 100644
--- a/source/index.ts
+++ b/source/index.ts
@@ -309,6 +309,7 @@ function createMainWindow(): BrowserWindow {
preload: path.join(__dirname, 'browser.js'),
nativeWindowOpen: true,
contextIsolation: true,
+ spellcheck: true,
plugins: true
}
});
diff --git a/source/menu.ts b/source/menu.ts
index ee0ca8618..8e7e1dba9 100644
--- a/source/menu.ts
+++ b/source/menu.ts
@@ -10,6 +10,7 @@ import {
debugInfo
} from 'electron-util';
import config from './config';
+import getSpellCheckerLanguages from './spell-checker';
import {sendAction, showRestartDialog, getWindow, toggleTrayIcon, toggleLaunchMinimized} from './util';
import {generateSubmenu as generateEmojiSubmenu} from './emoji';
import {toggleMenuBarMode} from './menu-bar-mode';
@@ -505,6 +506,8 @@ Press Command/Ctrl+R in Caprine to see your changes.
}
];
+ const spellCheckerSubmenu: MenuItemConstructorOptions[] = getSpellCheckerLanguages();
+
const conversationSubmenu: MenuItemConstructorOptions[] = [
{
label: 'Mute Conversation',
@@ -598,6 +601,14 @@ Press Command/Ctrl+R in Caprine to see your changes.
click() {
sendAction('focus-text-input');
}
+ },
+ {
+ type: 'separator'
+ },
+ {
+ label: 'Spell Checker Language',
+ visible: !is.macos,
+ submenu: spellCheckerSubmenu
}
];
diff --git a/source/spell-checker.ts b/source/spell-checker.ts
new file mode 100644
index 000000000..8e1fde3dd
--- /dev/null
+++ b/source/spell-checker.ts
@@ -0,0 +1,111 @@
+import {session, MenuItemConstructorOptions} from 'electron';
+import config from './config';
+
+const languageToCode = new Map([
+ // All languages available in Electron's spellchecker
+ ['af', 'Afrikaans'],
+ ['bg', 'Bulgarian'],
+ ['ca', 'Catalan'],
+ ['cs', 'Czech'],
+ ['cy', 'Welsh'],
+ ['da', 'Danish '],
+ ['de', 'German'],
+ ['el', 'Greek'],
+ ['en', 'English'],
+ ['en-AU', 'English (Australia)'],
+ ['en-CA', 'English (Canada)'],
+ ['en-GB', 'English (United Kingdom)'],
+ ['en-US', 'English (United States)'],
+ ['es', 'Spanish'],
+ ['es-ES', 'Spanish'],
+ ['es-419', 'Spanish (Central and South America)'],
+ ['es-AR', 'Spanish (Argentina)'],
+ ['es-MX', 'Spanish (Mexico)'],
+ ['es-US', 'Spanish (United States)'],
+ ['et', 'Estonian'],
+ ['fa', 'Persian'],
+ ['fo', 'Faroese'],
+ ['fr', 'French'],
+ ['he', 'Hebrew'],
+ ['hi', 'Hindi'],
+ ['hr', 'Croatian'],
+ ['hu', 'Hungarian'],
+ ['hy', 'Armenian'],
+ ['id', 'Indonesian'],
+ ['it', 'Italian'],
+ ['ko', 'Korean'],
+ ['lt', 'Lithuanian'],
+ ['lv', 'Latvian'],
+ ['nb', 'Norwegian'],
+ ['nl', 'Dutch'],
+ ['pl', 'Polish'],
+ ['pt', 'Portuguese'],
+ ['pt-BR', 'Portuguese (Brazil)'],
+ ['pt-PT', 'Portuguese'],
+ ['ro', 'Moldovan'],
+ ['ru', 'Russian'],
+ ['sh', 'Serbo-Croatian'],
+ ['sk', 'Slovak'],
+ ['sl', 'Slovenian'],
+ ['sq', 'Albanian'],
+ ['sr', 'Serbian'],
+ ['sv', 'Swedish'],
+ ['ta', 'Tamil'],
+ ['tg', 'Tajik'],
+ ['tr', 'Turkish'],
+ ['uk', 'Ukrainian'],
+ ['vi', 'Vietnamese']
+]);
+
+function getSpellCheckerLanguages(): MenuItemConstructorOptions[] {
+ const availableLanguages = session.defaultSession.availableSpellCheckerLanguages;
+ const languageItem = new Array(availableLanguages.length);
+ let languagesChecked = config.get('spellCheckerLanguages');
+
+ for (const language of languagesChecked) {
+ if (!availableLanguages.includes(language)) {
+ // Remove it since it's not in the spell checker dictionary.
+ languagesChecked = languagesChecked.filter(currentLang => currentLang !== language);
+ config.set('spellCheckerLanguages', languagesChecked);
+ }
+ }
+
+ for (const language of availableLanguages) {
+ languageItem.push(
+ {
+ label: languageToCode.get(language) ?? languageToCode.get(language.split('-')[0]) ?? language,
+ type: 'checkbox',
+ checked: languagesChecked.includes(language),
+ click() {
+ const index = languagesChecked.indexOf(language);
+ if (index > -1) {
+ // Remove language
+ languagesChecked.splice(index, 1);
+ config.set('spellCheckerLanguages', languagesChecked);
+ } else {
+ // Add language
+ languagesChecked = languagesChecked.concat(language);
+ config.set('spellCheckerLanguages', languagesChecked);
+ }
+
+ session.defaultSession.setSpellCheckerLanguages(languagesChecked);
+ }
+ }
+ );
+ }
+
+ if (languageItem.length === 1) {
+ return [
+ {
+ label: 'System Default',
+ type: 'checkbox',
+ checked: true,
+ enabled: false
+ }
+ ];
+ }
+
+ return languageItem;
+}
+
+export default getSpellCheckerLanguages;