summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar yakov116 <16872793+yakov116@users.noreply.github.com> 2021-04-08 22:10:15 -0400
committerGravatar GitHub <noreply@github.com> 2021-04-08 22:10:15 -0400
commit4ff98524e61389fb7628e5816bfcdaac4e0f0cc6 (patch)
treedacd4f21ea7286723530350d38cfe27bb846a568
parent8eaad7215a10ab2ffc18bcbf3759a83eb01a49aa (diff)
downloadrefined-github-4ff98524e61389fb7628e5816bfcdaac4e0f0cc6.tar.gz
refined-github-4ff98524e61389fb7628e5816bfcdaac4e0f0cc6.tar.zst
refined-github-4ff98524e61389fb7628e5816bfcdaac4e0f0cc6.zip
Lint (#4207)
-rw-r--r--contributing.md2
-rw-r--r--distribution/options.html4
-rw-r--r--package-lock.json378
-rw-r--r--package.json26
-rw-r--r--source/background.ts2
-rw-r--r--source/features/collapse-markdown-sections.tsx2
-rw-r--r--source/features/enable-file-links-in-compare-view.tsx5
-rw-r--r--source/features/first-published-tag-for-merged-pr.tsx2
-rw-r--r--source/features/link-to-changelog-file.tsx2
-rw-r--r--source/features/more-dropdown.css7
-rw-r--r--source/features/restore-file.tsx2
-rw-r--r--source/features/safer-destructive-actions.css6
-rw-r--r--source/features/table-input.tsx5
-rw-r--r--source/helpers/fetch-dom.ts3
-rw-r--r--source/options-storage.ts3
-rw-r--r--source/options.tsx1
16 files changed, 266 insertions, 184 deletions
diff --git a/contributing.md b/contributing.md
index 31abcc44..d1af2d27 100644
--- a/contributing.md
+++ b/contributing.md
@@ -10,7 +10,7 @@ Suggestions and pull requests are highly encouraged! Have a look at the [open is
- All the [latest DOM APIs](https://github.com/WebReflection/dom4#features) and JavaScript features are available because the extension only has to work in the latest Chrome and Firefox. 🎉
- Each JavaScript feature lives in its own file under [`source/features`](https://github.com/sindresorhus/refined-github/tree/main/source/features) and it's imported in [`source/refined-github.ts`](https://github.com/sindresorhus/refined-github/blob/main/source/refined-github.ts).
- See what a feature [looks like](https://github.com/sindresorhus/refined-github/blob/main/source/features/user-profile-follower-badge.tsx).
-- Follow [the styleguide](https://github.com/sindresorhus/refined-github/blob/main/readme.md#L70) that appears in the Readme's source to write readable descriptions.
+- Follow [the styleguide](https://github.com/sindresorhus/refined-github/blob/main/readme.md#L80) that appears in the Readme's source to write readable descriptions.
- Refined GitHub tries to integrate as best as possible, so [GitHub's own styleguide](https://primer.style/css) might come in useful.
## `features.add`
diff --git a/distribution/options.html b/distribution/options.html
index bd6c0602..24317960 100644
--- a/distribution/options.html
+++ b/distribution/options.html
@@ -18,10 +18,8 @@
<span id="validation"></span>
</label>
</p>
- <p>
- The token enables <a href="https://github.com/sindresorhus/refined-github/search?q=github-helpers+api" target="_blank">some features</a> to <strong>read</strong> data from public repositories
- </p>
<ul>
+ <li data-validation data-scope="valid_token">The token enables <a href="https://github.com/sindresorhus/refined-github/search?q=github-helpers+api" target="_blank">some features</a> to <strong>read</strong> data from public repositories
<li data-validation data-scope="public_repo">The <code>public_repo</code> scope lets them <strong>edit</strong> your public repositories
<li data-validation data-scope="repo">The <code>repo</code> scope lets them <strong>edit private</strong> repositories as well
<li data-validation data-scope="delete_repo">The <code>delete_repo</code> scope is only used by the <code>quick-repo-deletion</code> feature
diff --git a/package-lock.json b/package-lock.json
index 663c87e6..7879ea6b 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -6,7 +6,7 @@
"": {
"dependencies": {
"@cheap-glitch/mi-cron": "^1.0.1",
- "@primer/octicons-react": "^12.1.0",
+ "@primer/octicons-react": "^13.0.0",
"array-union": "^3.0.1",
"copy-text-to-clipboard": "^3.0.1",
"debounce-fn": "^5.0.0",
@@ -27,10 +27,10 @@
"mem": "^8.1.0",
"one-event": "^3.0.0",
"one-mutation": "^2.0.0",
- "onetime": "^5.1.2",
+ "onetime": "^6.0.0",
"push-form": "^0.8.0",
"regex-join": "^1.0.0",
- "select-dom": "^7.1.0",
+ "select-dom": "^7.1.1",
"selector-observer": "^2.1.6",
"shorten-repo-url": "^2.1.0",
"strip-indent": "^3.0.0",
@@ -48,37 +48,37 @@
"devDependencies": {
"@ava/typescript": "^1.1.1",
"@sindresorhus/tsconfig": "^0.9.0",
- "@types/chrome": "^0.0.133",
+ "@types/chrome": "^0.0.134",
"@types/codemirror": "^0.0.108",
"@types/copy-webpack-plugin": "^6.4.1",
"@types/firefox-webext-browser": "^82.0.0",
- "@types/jsdom": "^16.2.7",
+ "@types/jsdom": "^16.2.10",
"@types/mini-css-extract-plugin": "^1.4.1",
"@types/react": "^17.0.3",
"@types/terser-webpack-plugin": "^5.0.3",
"ava": "^3.15.0",
- "copy-webpack-plugin": "^8.1.0",
+ "copy-webpack-plugin": "^8.1.1",
"css-loader": "^5.2.0",
"daily-version": "^2.0.0",
"dot-json": "^1.2.2",
"esbuild-loader": "^2.11.0",
- "eslint-config-xo-react": "^0.24.0",
- "eslint-plugin-react": "^7.22.0",
+ "eslint-config-xo-react": "^0.25.0",
+ "eslint-plugin-react": "^7.23.2",
"eslint-plugin-react-hooks": "^4.2.0",
- "jsdom": "^16.5.1",
+ "jsdom": "^16.5.2",
"markdown-wasm": "^1.1.2",
- "mini-css-extract-plugin": "^1.4.0",
+ "mini-css-extract-plugin": "^1.4.1",
"npm-run-all": "^4.1.5",
"size-plugin": "^2.0.2",
"stylelint": "^13.12.0",
"stylelint-config-xo": "^0.20.0",
"terser-webpack-plugin": "^5.1.1",
"ts-node": "^9.1.1",
- "tslib": "^2.1.0",
+ "tslib": "^2.2.0",
"type-fest": "^0.21.3",
"typed-query-selector": "^2.4.1",
- "typescript": "^4.2.3",
- "webpack": "^5.30.0",
+ "typescript": "^4.2.4",
+ "webpack": "^5.31.0",
"webpack-cli": "^4.6.0",
"xo": "^0.38.2"
},
@@ -661,9 +661,9 @@
}
},
"node_modules/@primer/octicons-react": {
- "version": "12.1.0",
- "resolved": "https://registry.npmjs.org/@primer/octicons-react/-/octicons-react-12.1.0.tgz",
- "integrity": "sha512-eb/5Obsp6/pVkyzzGhobK6aPAkKqx6VleF/7HYeihGTYm3rGZc+prL/jhxD5Mo1P6U343YEkHjc2gKuvtENn1g==",
+ "version": "13.0.0",
+ "resolved": "https://registry.npmjs.org/@primer/octicons-react/-/octicons-react-13.0.0.tgz",
+ "integrity": "sha512-j5XppNRCvgaMZLPsVvvmp6GSh7P5pq6PUbsfLNBWi2Kz3KYDeoGDWbPr5MjoxFOGUn6Hjnt6qjHPRxahd11vLQ==",
"engines": {
"node": ">=8"
},
@@ -743,9 +743,9 @@
"dev": true
},
"node_modules/@types/chrome": {
- "version": "0.0.133",
- "resolved": "https://registry.npmjs.org/@types/chrome/-/chrome-0.0.133.tgz",
- "integrity": "sha512-G8uIUdaCTBILprQvQXBWGXZxjAWbkCkFQit17cdH3zYQEwU8f/etNl8+M7e8MRz9Xj8daHaVpysneMZMx8/ldQ==",
+ "version": "0.0.134",
+ "resolved": "https://registry.npmjs.org/@types/chrome/-/chrome-0.0.134.tgz",
+ "integrity": "sha512-NlYHk+a0Bq6kTvGT4s2w1G3UuDBeoZJYJL1wzmEIusBKYyDDtdl37kOz3Hzb/NEC2KNdnOBVoYLS2opQYsF1Vw==",
"dev": true,
"dependencies": {
"@types/filesystem": "*",
@@ -830,9 +830,9 @@
"integrity": "sha512-IG8AE1m2pWtPqQ7wXhFhy6Q59bwwnLwO36v5Rit2FrbXCIp8Sk8E2PfUCreyrdo17STwFSKDAkitVuVYbpEHvQ=="
},
"node_modules/@types/jsdom": {
- "version": "16.2.7",
- "resolved": "https://registry.npmjs.org/@types/jsdom/-/jsdom-16.2.7.tgz",
- "integrity": "sha512-jJ0QDvwZxAO+SninBaQdW6najEs1dCZ1uMsXFBTitwfAtz+0wfDZWd3GFEqkL4flD3IefB+VGBcrN9HbRdAdog==",
+ "version": "16.2.10",
+ "resolved": "https://registry.npmjs.org/@types/jsdom/-/jsdom-16.2.10.tgz",
+ "integrity": "sha512-q3aIjp3ehhVSXSbvNyuireAfvU2umRiZ2aLumyeZewCnoNaokrRDdTu5IvaeE9pzNtWHXrUnM9lb22Vl3W08EA==",
"dev": true,
"dependencies": {
"@types/node": "*",
@@ -3170,9 +3170,9 @@
}
},
"node_modules/copy-webpack-plugin": {
- "version": "8.1.0",
- "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-8.1.0.tgz",
- "integrity": "sha512-Soiq8kXI2AZkpw3dSp18u6oU2JonC7UKv3UdXsKOmT1A5QT46ku9+6c0Qy29JDbSavQJNN1/eKGpd3QNw+cZWg==",
+ "version": "8.1.1",
+ "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-8.1.1.tgz",
+ "integrity": "sha512-rYM2uzRxrLRpcyPqGceRBDpxxUV8vcDqIKxAUKfcnFpcrPxT5+XvhTxv7XLjo5AvEJFPdAE3zCogG2JVahqgSQ==",
"dev": true,
"dependencies": {
"fast-glob": "^3.2.5",
@@ -4387,9 +4387,9 @@
}
},
"node_modules/eslint-config-xo-react": {
- "version": "0.24.0",
- "resolved": "https://registry.npmjs.org/eslint-config-xo-react/-/eslint-config-xo-react-0.24.0.tgz",
- "integrity": "sha512-Hc6pHDJf8y71Uo1jwWJ85CaFGTPxHp26L+49H5jgALB1rTmmxMUA70sDv6qj3icPgSWbkiOvuHM6tis+ws3stQ==",
+ "version": "0.25.0",
+ "resolved": "https://registry.npmjs.org/eslint-config-xo-react/-/eslint-config-xo-react-0.25.0.tgz",
+ "integrity": "sha512-YpABFxnoATAYtxsZQChZEbOkWqzCtcQDRdiUqHhLgG7hzbAEzPDmsRUWnTP8oTVLVFWrbgdf913b8kQJaR1cBA==",
"dev": true,
"engines": {
"node": ">=10"
@@ -4984,22 +4984,23 @@
}
},
"node_modules/eslint-plugin-react": {
- "version": "7.22.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.22.0.tgz",
- "integrity": "sha512-p30tuX3VS+NWv9nQot9xIGAHBXR0+xJVaZriEsHoJrASGCJZDJ8JLNM0YqKqI0AKm6Uxaa1VUHoNEibxRCMQHA==",
+ "version": "7.23.2",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.23.2.tgz",
+ "integrity": "sha512-AfjgFQB+nYszudkxRkTFu0UR1zEQig0ArVMPloKhxwlwkzaw/fBiH0QWcBBhZONlXqQC51+nfqFrkn4EzHcGBw==",
"dev": true,
"dependencies": {
- "array-includes": "^3.1.1",
- "array.prototype.flatmap": "^1.2.3",
+ "array-includes": "^3.1.3",
+ "array.prototype.flatmap": "^1.2.4",
"doctrine": "^2.1.0",
"has": "^1.0.3",
"jsx-ast-utils": "^2.4.1 || ^3.0.0",
- "object.entries": "^1.1.2",
- "object.fromentries": "^2.0.2",
- "object.values": "^1.1.1",
+ "minimatch": "^3.0.4",
+ "object.entries": "^1.1.3",
+ "object.fromentries": "^2.0.4",
+ "object.values": "^1.1.3",
"prop-types": "^15.7.2",
- "resolve": "^1.18.1",
- "string.prototype.matchall": "^4.0.2"
+ "resolve": "^2.0.0-next.3",
+ "string.prototype.matchall": "^4.0.4"
},
"engines": {
"node": ">=4"
@@ -5032,6 +5033,19 @@
"node": ">=0.10.0"
}
},
+ "node_modules/eslint-plugin-react/node_modules/resolve": {
+ "version": "2.0.0-next.3",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.3.tgz",
+ "integrity": "sha512-W8LucSynKUIDu9ylraa7ueVZ7hc0uAgJBxVsQSKOXOyle8a93qXhcz+XAXZ8bIq2d6i4Ehddn6Evt+0/UwKk6Q==",
+ "dev": true,
+ "dependencies": {
+ "is-core-module": "^2.2.0",
+ "path-parse": "^1.0.6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/eslint-plugin-unicorn": {
"version": "28.0.2",
"resolved": "https://registry.npmjs.org/eslint-plugin-unicorn/-/eslint-plugin-unicorn-28.0.2.tgz",
@@ -5298,6 +5312,30 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/execa/node_modules/mimic-fn": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
+ "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/execa/node_modules/onetime": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz",
+ "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==",
+ "dev": true,
+ "dependencies": {
+ "mimic-fn": "^2.1.0"
+ },
+ "engines": {
+ "node": ">=6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/execall": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/execall/-/execall-2.0.0.tgz",
@@ -7333,13 +7371,13 @@
"dev": true
},
"node_modules/jsdom": {
- "version": "16.5.1",
- "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.5.1.tgz",
- "integrity": "sha512-pF73EOsJgwZekbDHEY5VO/yKXUkab/DuvrQB/ANVizbr6UAHJsDdHXuotZYwkJSGQl1JM+ivXaqY+XBDDL4TiA==",
+ "version": "16.5.2",
+ "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.5.2.tgz",
+ "integrity": "sha512-JxNtPt9C1ut85boCbJmffaQ06NBnzkQY/MWO3YxPW8IWS38A26z+B1oBvA9LwKrytewdfymnhi4UNH3/RAgZrg==",
"dev": true,
"dependencies": {
"abab": "^2.0.5",
- "acorn": "^8.0.5",
+ "acorn": "^8.1.0",
"acorn-globals": "^6.0.0",
"cssom": "^0.4.4",
"cssstyle": "^2.3.0",
@@ -7361,7 +7399,7 @@
"webidl-conversions": "^6.1.0",
"whatwg-encoding": "^1.0.5",
"whatwg-mimetype": "^2.3.0",
- "whatwg-url": "^8.0.0",
+ "whatwg-url": "^8.5.0",
"ws": "^7.4.4",
"xml-name-validator": "^3.0.0"
},
@@ -7661,12 +7699,6 @@
"integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==",
"dev": true
},
- "node_modules/lodash.sortby": {
- "version": "4.7.0",
- "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz",
- "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=",
- "dev": true
- },
"node_modules/log-symbols": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz",
@@ -8140,9 +8172,9 @@
}
},
"node_modules/mini-css-extract-plugin": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-1.4.0.tgz",
- "integrity": "sha512-DyQr5DhXXARKZoc4kwvCvD95kh69dUupfuKOmBUqZ4kBTmRaRZcU32lYu3cLd6nEGXhQ1l7LzZ3F/CjItaY6VQ==",
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-1.4.1.tgz",
+ "integrity": "sha512-COAGbpAsU0ioFzj+/RRfO5Qv177L1Z/XAx2EmCF33b8GDDqKygMffBTws2lit8iaPdrbKEY5P+zsseBUCREZWQ==",
"dev": true,
"dependencies": {
"loader-utils": "^2.0.0",
@@ -8919,25 +8951,28 @@
"integrity": "sha512-uxZBzkaGhKWy9bdj1peVBhgCP4abF1Rss6wIVzBi1VoaTVEMmFc3pp/hhkVKr5VL5SsmLanBy8i2mmTGQreVPQ=="
},
"node_modules/onetime": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz",
- "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==",
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz",
+ "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==",
"dependencies": {
- "mimic-fn": "^2.1.0"
+ "mimic-fn": "^4.0.0"
},
"engines": {
- "node": ">=6"
+ "node": ">=12"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/onetime/node_modules/mimic-fn": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
- "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz",
+ "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==",
"engines": {
- "node": ">=6"
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/open": {
@@ -10964,6 +10999,30 @@
"node": ">=8"
}
},
+ "node_modules/restore-cursor/node_modules/mimic-fn": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
+ "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/restore-cursor/node_modules/onetime": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz",
+ "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==",
+ "dev": true,
+ "dependencies": {
+ "mimic-fn": "^2.1.0"
+ },
+ "engines": {
+ "node": ">=6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/ret": {
"version": "0.1.15",
"resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz",
@@ -11083,11 +11142,11 @@
}
},
"node_modules/select-dom": {
- "version": "7.1.0",
- "resolved": "https://registry.npmjs.org/select-dom/-/select-dom-7.1.0.tgz",
- "integrity": "sha512-o4X3Jnb8CpHNPqLDtwxVLSfnvGOGv0OT/LUq5H2U07eV+bX9yv2FbeJlJZpMf/L9b3mXaTGHdQIKcNNKaqKQgg==",
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/select-dom/-/select-dom-7.1.1.tgz",
+ "integrity": "sha512-W4052AVb0TkSU8MgiNLiVio4WqCLpDSWPYz5RI6C5MoXfjo6b8p0v/Ld2iK9F/FO2FUqn6N0jFlBGyl2z5dzbA==",
"dependencies": {
- "typed-query-selector": "^2.2.3"
+ "typed-query-selector": "^2.4.1"
}
},
"node_modules/selector-observer": {
@@ -13091,9 +13150,9 @@
}
},
"node_modules/tslib": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz",
- "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==",
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.2.0.tgz",
+ "integrity": "sha512-gS9GVHRU+RGn5KQM2rllAlR3dU6m7AcpJKdtH8gFvQiC4Otgk98XnmMU+nZenHt/+VhnBPWwgrJsyrdcw6i23w==",
"dev": true
},
"node_modules/tsutils": {
@@ -13188,9 +13247,9 @@
}
},
"node_modules/typescript": {
- "version": "4.2.3",
- "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.2.3.tgz",
- "integrity": "sha512-qOcYwxaByStAWrBf4x0fibwZvMRG+r4cQoTjbPtUlrWjBHbmCAww1i448U0GJ+3cNNEtebDteo/cHOR3xJ4wEw==",
+ "version": "4.2.4",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.2.4.tgz",
+ "integrity": "sha512-V+evlYHZnQkaz8TRBuxTA92yZBPotr5H+WhQ7bD3hZUndx5tGOa1fuCgeSjxAzM1RiN5IzvadIXTVefuuwZCRg==",
"dev": true,
"bin": {
"tsc": "bin/tsc",
@@ -13779,9 +13838,9 @@
}
},
"node_modules/webpack": {
- "version": "5.30.0",
- "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.30.0.tgz",
- "integrity": "sha512-Zr9NIri5yzpfmaMea2lSMV1UygbW0zQsSlGLMgKUm63ACXg6alhd1u4v5UBSBjzYKXJN6BNMGVM7w165e7NxYA==",
+ "version": "5.31.0",
+ "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.31.0.tgz",
+ "integrity": "sha512-3fUfZT/FUuThWSSyL32Fsh7weUUfYP/Fjc/cGSbla5KiSo0GtI1JMssCRUopJTvmLjrw05R2q7rlLtiKdSzkzQ==",
"dev": true,
"dependencies": {
"@types/eslint-scope": "^3.7.0",
@@ -13929,12 +13988,12 @@
"dev": true
},
"node_modules/whatwg-url": {
- "version": "8.4.0",
- "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.4.0.tgz",
- "integrity": "sha512-vwTUFf6V4zhcPkWp/4CQPr1TW9Ml6SF4lVyaIMBdJw5i6qUUJ1QWM4Z6YYVkfka0OUIzVo/0aNtGVGk256IKWw==",
+ "version": "8.5.0",
+ "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.5.0.tgz",
+ "integrity": "sha512-fy+R77xWv0AiqfLl4nuGUlQ3/6b5uNfQ4WAbGQVMYshCTCCPK9psC1nWh3XHuxGVCtlcDDQPQW1csmmIQo+fwg==",
"dev": true,
"dependencies": {
- "lodash.sortby": "^4.7.0",
+ "lodash": "^4.7.0",
"tr46": "^2.0.2",
"webidl-conversions": "^6.1.0"
},
@@ -15085,9 +15144,9 @@
}
},
"@primer/octicons-react": {
- "version": "12.1.0",
- "resolved": "https://registry.npmjs.org/@primer/octicons-react/-/octicons-react-12.1.0.tgz",
- "integrity": "sha512-eb/5Obsp6/pVkyzzGhobK6aPAkKqx6VleF/7HYeihGTYm3rGZc+prL/jhxD5Mo1P6U343YEkHjc2gKuvtENn1g==",
+ "version": "13.0.0",
+ "resolved": "https://registry.npmjs.org/@primer/octicons-react/-/octicons-react-13.0.0.tgz",
+ "integrity": "sha512-j5XppNRCvgaMZLPsVvvmp6GSh7P5pq6PUbsfLNBWi2Kz3KYDeoGDWbPr5MjoxFOGUn6Hjnt6qjHPRxahd11vLQ==",
"requires": {}
},
"@sindresorhus/is": {
@@ -15142,9 +15201,9 @@
"dev": true
},
"@types/chrome": {
- "version": "0.0.133",
- "resolved": "https://registry.npmjs.org/@types/chrome/-/chrome-0.0.133.tgz",
- "integrity": "sha512-G8uIUdaCTBILprQvQXBWGXZxjAWbkCkFQit17cdH3zYQEwU8f/etNl8+M7e8MRz9Xj8daHaVpysneMZMx8/ldQ==",
+ "version": "0.0.134",
+ "resolved": "https://registry.npmjs.org/@types/chrome/-/chrome-0.0.134.tgz",
+ "integrity": "sha512-NlYHk+a0Bq6kTvGT4s2w1G3UuDBeoZJYJL1wzmEIusBKYyDDtdl37kOz3Hzb/NEC2KNdnOBVoYLS2opQYsF1Vw==",
"dev": true,
"requires": {
"@types/filesystem": "*",
@@ -15229,9 +15288,9 @@
"integrity": "sha512-IG8AE1m2pWtPqQ7wXhFhy6Q59bwwnLwO36v5Rit2FrbXCIp8Sk8E2PfUCreyrdo17STwFSKDAkitVuVYbpEHvQ=="
},
"@types/jsdom": {
- "version": "16.2.7",
- "resolved": "https://registry.npmjs.org/@types/jsdom/-/jsdom-16.2.7.tgz",
- "integrity": "sha512-jJ0QDvwZxAO+SninBaQdW6najEs1dCZ1uMsXFBTitwfAtz+0wfDZWd3GFEqkL4flD3IefB+VGBcrN9HbRdAdog==",
+ "version": "16.2.10",
+ "resolved": "https://registry.npmjs.org/@types/jsdom/-/jsdom-16.2.10.tgz",
+ "integrity": "sha512-q3aIjp3ehhVSXSbvNyuireAfvU2umRiZ2aLumyeZewCnoNaokrRDdTu5IvaeE9pzNtWHXrUnM9lb22Vl3W08EA==",
"dev": true,
"requires": {
"@types/node": "*",
@@ -17088,9 +17147,9 @@
"integrity": "sha512-rvVsHrpFcL4F2P8ihsoLdFHmd404+CMg71S756oRSeQgqk51U3kicGdnvfkrxva0xXH92SjGS62B0XIJsbh+9Q=="
},
"copy-webpack-plugin": {
- "version": "8.1.0",
- "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-8.1.0.tgz",
- "integrity": "sha512-Soiq8kXI2AZkpw3dSp18u6oU2JonC7UKv3UdXsKOmT1A5QT46ku9+6c0Qy29JDbSavQJNN1/eKGpd3QNw+cZWg==",
+ "version": "8.1.1",
+ "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-8.1.1.tgz",
+ "integrity": "sha512-rYM2uzRxrLRpcyPqGceRBDpxxUV8vcDqIKxAUKfcnFpcrPxT5+XvhTxv7XLjo5AvEJFPdAE3zCogG2JVahqgSQ==",
"dev": true,
"requires": {
"fast-glob": "^3.2.5",
@@ -18042,9 +18101,9 @@
}
},
"eslint-config-xo-react": {
- "version": "0.24.0",
- "resolved": "https://registry.npmjs.org/eslint-config-xo-react/-/eslint-config-xo-react-0.24.0.tgz",
- "integrity": "sha512-Hc6pHDJf8y71Uo1jwWJ85CaFGTPxHp26L+49H5jgALB1rTmmxMUA70sDv6qj3icPgSWbkiOvuHM6tis+ws3stQ==",
+ "version": "0.25.0",
+ "resolved": "https://registry.npmjs.org/eslint-config-xo-react/-/eslint-config-xo-react-0.25.0.tgz",
+ "integrity": "sha512-YpABFxnoATAYtxsZQChZEbOkWqzCtcQDRdiUqHhLgG7hzbAEzPDmsRUWnTP8oTVLVFWrbgdf913b8kQJaR1cBA==",
"dev": true,
"requires": {}
},
@@ -18491,22 +18550,23 @@
"dev": true
},
"eslint-plugin-react": {
- "version": "7.22.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.22.0.tgz",
- "integrity": "sha512-p30tuX3VS+NWv9nQot9xIGAHBXR0+xJVaZriEsHoJrASGCJZDJ8JLNM0YqKqI0AKm6Uxaa1VUHoNEibxRCMQHA==",
+ "version": "7.23.2",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.23.2.tgz",
+ "integrity": "sha512-AfjgFQB+nYszudkxRkTFu0UR1zEQig0ArVMPloKhxwlwkzaw/fBiH0QWcBBhZONlXqQC51+nfqFrkn4EzHcGBw==",
"dev": true,
"requires": {
- "array-includes": "^3.1.1",
- "array.prototype.flatmap": "^1.2.3",
+ "array-includes": "^3.1.3",
+ "array.prototype.flatmap": "^1.2.4",
"doctrine": "^2.1.0",
"has": "^1.0.3",
"jsx-ast-utils": "^2.4.1 || ^3.0.0",
- "object.entries": "^1.1.2",
- "object.fromentries": "^2.0.2",
- "object.values": "^1.1.1",
+ "minimatch": "^3.0.4",
+ "object.entries": "^1.1.3",
+ "object.fromentries": "^2.0.4",
+ "object.values": "^1.1.3",
"prop-types": "^15.7.2",
- "resolve": "^1.18.1",
- "string.prototype.matchall": "^4.0.2"
+ "resolve": "^2.0.0-next.3",
+ "string.prototype.matchall": "^4.0.4"
},
"dependencies": {
"doctrine": {
@@ -18517,6 +18577,16 @@
"requires": {
"esutils": "^2.0.2"
}
+ },
+ "resolve": {
+ "version": "2.0.0-next.3",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.3.tgz",
+ "integrity": "sha512-W8LucSynKUIDu9ylraa7ueVZ7hc0uAgJBxVsQSKOXOyle8a93qXhcz+XAXZ8bIq2d6i4Ehddn6Evt+0/UwKk6Q==",
+ "dev": true,
+ "requires": {
+ "is-core-module": "^2.2.0",
+ "path-parse": "^1.0.6"
+ }
}
}
},
@@ -18721,6 +18791,21 @@
"resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.0.tgz",
"integrity": "sha512-A1B3Bh1UmL0bidM/YX2NsCOTnGJePL9rO/M+Mw3m9f2gUpfokS0hi5Eah0WSUEWZdZhIZtMjkIYS7mDfOqNHbg==",
"dev": true
+ },
+ "mimic-fn": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
+ "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==",
+ "dev": true
+ },
+ "onetime": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz",
+ "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==",
+ "dev": true,
+ "requires": {
+ "mimic-fn": "^2.1.0"
+ }
}
}
},
@@ -20233,13 +20318,13 @@
"dev": true
},
"jsdom": {
- "version": "16.5.1",
- "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.5.1.tgz",
- "integrity": "sha512-pF73EOsJgwZekbDHEY5VO/yKXUkab/DuvrQB/ANVizbr6UAHJsDdHXuotZYwkJSGQl1JM+ivXaqY+XBDDL4TiA==",
+ "version": "16.5.2",
+ "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.5.2.tgz",
+ "integrity": "sha512-JxNtPt9C1ut85boCbJmffaQ06NBnzkQY/MWO3YxPW8IWS38A26z+B1oBvA9LwKrytewdfymnhi4UNH3/RAgZrg==",
"dev": true,
"requires": {
"abab": "^2.0.5",
- "acorn": "^8.0.5",
+ "acorn": "^8.1.0",
"acorn-globals": "^6.0.0",
"cssom": "^0.4.4",
"cssstyle": "^2.3.0",
@@ -20261,7 +20346,7 @@
"webidl-conversions": "^6.1.0",
"whatwg-encoding": "^1.0.5",
"whatwg-mimetype": "^2.3.0",
- "whatwg-url": "^8.0.0",
+ "whatwg-url": "^8.5.0",
"ws": "^7.4.4",
"xml-name-validator": "^3.0.0"
}
@@ -20497,12 +20582,6 @@
"integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==",
"dev": true
},
- "lodash.sortby": {
- "version": "4.7.0",
- "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz",
- "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=",
- "dev": true
- },
"log-symbols": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz",
@@ -20851,9 +20930,9 @@
"integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg=="
},
"mini-css-extract-plugin": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-1.4.0.tgz",
- "integrity": "sha512-DyQr5DhXXARKZoc4kwvCvD95kh69dUupfuKOmBUqZ4kBTmRaRZcU32lYu3cLd6nEGXhQ1l7LzZ3F/CjItaY6VQ==",
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-1.4.1.tgz",
+ "integrity": "sha512-COAGbpAsU0ioFzj+/RRfO5Qv177L1Z/XAx2EmCF33b8GDDqKygMffBTws2lit8iaPdrbKEY5P+zsseBUCREZWQ==",
"dev": true,
"requires": {
"loader-utils": "^2.0.0",
@@ -21476,17 +21555,17 @@
"integrity": "sha512-uxZBzkaGhKWy9bdj1peVBhgCP4abF1Rss6wIVzBi1VoaTVEMmFc3pp/hhkVKr5VL5SsmLanBy8i2mmTGQreVPQ=="
},
"onetime": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz",
- "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==",
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz",
+ "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==",
"requires": {
- "mimic-fn": "^2.1.0"
+ "mimic-fn": "^4.0.0"
},
"dependencies": {
"mimic-fn": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
- "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg=="
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz",
+ "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw=="
}
}
},
@@ -22995,6 +23074,23 @@
"requires": {
"onetime": "^5.1.0",
"signal-exit": "^3.0.2"
+ },
+ "dependencies": {
+ "mimic-fn": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
+ "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==",
+ "dev": true
+ },
+ "onetime": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz",
+ "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==",
+ "dev": true,
+ "requires": {
+ "mimic-fn": "^2.1.0"
+ }
+ }
}
},
"ret": {
@@ -23079,11 +23175,11 @@
}
},
"select-dom": {
- "version": "7.1.0",
- "resolved": "https://registry.npmjs.org/select-dom/-/select-dom-7.1.0.tgz",
- "integrity": "sha512-o4X3Jnb8CpHNPqLDtwxVLSfnvGOGv0OT/LUq5H2U07eV+bX9yv2FbeJlJZpMf/L9b3mXaTGHdQIKcNNKaqKQgg==",
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/select-dom/-/select-dom-7.1.1.tgz",
+ "integrity": "sha512-W4052AVb0TkSU8MgiNLiVio4WqCLpDSWPYz5RI6C5MoXfjo6b8p0v/Ld2iK9F/FO2FUqn6N0jFlBGyl2z5dzbA==",
"requires": {
- "typed-query-selector": "^2.2.3"
+ "typed-query-selector": "^2.4.1"
}
},
"selector-observer": {
@@ -24669,9 +24765,9 @@
}
},
"tslib": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz",
- "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==",
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.2.0.tgz",
+ "integrity": "sha512-gS9GVHRU+RGn5KQM2rllAlR3dU6m7AcpJKdtH8gFvQiC4Otgk98XnmMU+nZenHt/+VhnBPWwgrJsyrdcw6i23w==",
"dev": true
},
"tsutils": {
@@ -24747,9 +24843,9 @@
}
},
"typescript": {
- "version": "4.2.3",
- "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.2.3.tgz",
- "integrity": "sha512-qOcYwxaByStAWrBf4x0fibwZvMRG+r4cQoTjbPtUlrWjBHbmCAww1i448U0GJ+3cNNEtebDteo/cHOR3xJ4wEw==",
+ "version": "4.2.4",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.2.4.tgz",
+ "integrity": "sha512-V+evlYHZnQkaz8TRBuxTA92yZBPotr5H+WhQ7bD3hZUndx5tGOa1fuCgeSjxAzM1RiN5IzvadIXTVefuuwZCRg==",
"dev": true
},
"unbox-primitive": {
@@ -25255,9 +25351,9 @@
"dev": true
},
"webpack": {
- "version": "5.30.0",
- "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.30.0.tgz",
- "integrity": "sha512-Zr9NIri5yzpfmaMea2lSMV1UygbW0zQsSlGLMgKUm63ACXg6alhd1u4v5UBSBjzYKXJN6BNMGVM7w165e7NxYA==",
+ "version": "5.31.0",
+ "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.31.0.tgz",
+ "integrity": "sha512-3fUfZT/FUuThWSSyL32Fsh7weUUfYP/Fjc/cGSbla5KiSo0GtI1JMssCRUopJTvmLjrw05R2q7rlLtiKdSzkzQ==",
"dev": true,
"requires": {
"@types/eslint-scope": "^3.7.0",
@@ -25357,12 +25453,12 @@
"dev": true
},
"whatwg-url": {
- "version": "8.4.0",
- "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.4.0.tgz",
- "integrity": "sha512-vwTUFf6V4zhcPkWp/4CQPr1TW9Ml6SF4lVyaIMBdJw5i6qUUJ1QWM4Z6YYVkfka0OUIzVo/0aNtGVGk256IKWw==",
+ "version": "8.5.0",
+ "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.5.0.tgz",
+ "integrity": "sha512-fy+R77xWv0AiqfLl4nuGUlQ3/6b5uNfQ4WAbGQVMYshCTCCPK9psC1nWh3XHuxGVCtlcDDQPQW1csmmIQo+fwg==",
"dev": true,
"requires": {
- "lodash.sortby": "^4.7.0",
+ "lodash": "^4.7.0",
"tr46": "^2.0.2",
"webidl-conversions": "^6.1.0"
}
diff --git a/package.json b/package.json
index 29874b88..e1666c29 100644
--- a/package.json
+++ b/package.json
@@ -48,7 +48,7 @@
},
"dependencies": {
"@cheap-glitch/mi-cron": "^1.0.1",
- "@primer/octicons-react": "^12.1.0",
+ "@primer/octicons-react": "^13.0.0",
"array-union": "^3.0.1",
"copy-text-to-clipboard": "^3.0.1",
"debounce-fn": "^5.0.0",
@@ -69,10 +69,10 @@
"mem": "^8.1.0",
"one-event": "^3.0.0",
"one-mutation": "^2.0.0",
- "onetime": "^5.1.2",
+ "onetime": "^6.0.0",
"push-form": "^0.8.0",
"regex-join": "^1.0.0",
- "select-dom": "^7.1.0",
+ "select-dom": "^7.1.1",
"selector-observer": "^2.1.6",
"shorten-repo-url": "^2.1.0",
"strip-indent": "^3.0.0",
@@ -90,37 +90,37 @@
"devDependencies": {
"@ava/typescript": "^1.1.1",
"@sindresorhus/tsconfig": "^0.9.0",
- "@types/chrome": "^0.0.133",
+ "@types/chrome": "^0.0.134",
"@types/codemirror": "^0.0.108",
"@types/copy-webpack-plugin": "^6.4.1",
"@types/firefox-webext-browser": "^82.0.0",
- "@types/jsdom": "^16.2.7",
+ "@types/jsdom": "^16.2.10",
"@types/mini-css-extract-plugin": "^1.4.1",
"@types/react": "^17.0.3",
"@types/terser-webpack-plugin": "^5.0.3",
"ava": "^3.15.0",
- "copy-webpack-plugin": "^8.1.0",
+ "copy-webpack-plugin": "^8.1.1",
"css-loader": "^5.2.0",
"daily-version": "^2.0.0",
"dot-json": "^1.2.2",
"esbuild-loader": "^2.11.0",
- "eslint-config-xo-react": "^0.24.0",
- "eslint-plugin-react": "^7.22.0",
+ "eslint-config-xo-react": "^0.25.0",
+ "eslint-plugin-react": "^7.23.2",
"eslint-plugin-react-hooks": "^4.2.0",
- "jsdom": "^16.5.1",
+ "jsdom": "^16.5.2",
"markdown-wasm": "^1.1.2",
- "mini-css-extract-plugin": "^1.4.0",
+ "mini-css-extract-plugin": "^1.4.1",
"npm-run-all": "^4.1.5",
"size-plugin": "^2.0.2",
"stylelint": "^13.12.0",
"stylelint-config-xo": "^0.20.0",
"terser-webpack-plugin": "^5.1.1",
"ts-node": "^9.1.1",
- "tslib": "^2.1.0",
+ "tslib": "^2.2.0",
"type-fest": "^0.21.3",
"typed-query-selector": "^2.4.1",
- "typescript": "^4.2.3",
- "webpack": "^5.30.0",
+ "typescript": "^4.2.4",
+ "webpack": "^5.31.0",
"webpack-cli": "^4.6.0",
"xo": "^0.38.2"
},
diff --git a/source/background.ts b/source/background.ts
index f1fa00ec..e45cd740 100644
--- a/source/background.ts
+++ b/source/background.ts
@@ -3,7 +3,7 @@ import cache from 'webext-storage-cache'; // Also needed to regularly clear the
import addDomainPermissionToggle from 'webext-domain-permission-toggle';
import './options-storage';
-// GitHub Enterprise support
+// GHE support
addDomainPermissionToggle();
const messageHandlers = {
diff --git a/source/features/collapse-markdown-sections.tsx b/source/features/collapse-markdown-sections.tsx
index 97ebf8d1..e96b6116 100644
--- a/source/features/collapse-markdown-sections.tsx
+++ b/source/features/collapse-markdown-sections.tsx
@@ -37,7 +37,7 @@ function onHeadingClick(event: delegate.Event<MouseEvent, HTMLElement>): void {
function init(): void {
delegate(document, '.markdown-body > :is(h1, h2, h3, h4, h5, h6)', 'click', onHeadingClick);
- document.body.classList.add('.rgh-' + __filebasename);
+ document.body.classList.add('rgh-' + __filebasename);
}
void features.add(__filebasename, {
diff --git a/source/features/enable-file-links-in-compare-view.tsx b/source/features/enable-file-links-in-compare-view.tsx
index 2bf1edb8..36c6e243 100644
--- a/source/features/enable-file-links-in-compare-view.tsx
+++ b/source/features/enable-file-links-in-compare-view.tsx
@@ -60,8 +60,9 @@ void features.add(__filebasename, {
pageDetect.isPRCommit
],
exclude: [
- // Only enabled on Open/Draft PRs. Editing files doesn't make sense after a PR is closed/merged.
- () => !select.exists('.gh-header-meta [title$="Open"], .gh-header-meta [title$="Draft"]'),
+ // Editing files doesn't make sense after a PR is closed/merged
+ pageDetect.isClosedPR,
+ () => select('.head-ref')!.title === 'This repository has been deleted',
// If you're viewing changes from partial commits, ensure you're on the latest one.
() => select.exists('.js-commits-filtered') && !select.exists('[aria-label="You are viewing the latest commit"]')
],
diff --git a/source/features/first-published-tag-for-merged-pr.tsx b/source/features/first-published-tag-for-merged-pr.tsx
index 135bbc1a..b2defe10 100644
--- a/source/features/first-published-tag-for-merged-pr.tsx
+++ b/source/features/first-published-tag-for-merged-pr.tsx
@@ -10,7 +10,7 @@ import {buildRepoURL, getRepo} from '../github-helpers';
import onConversationHeaderUpdate from '../github-events/on-conversation-header-update';
const getFirstTag = cache.function(async (commit: string): Promise<string | undefined> => {
- const firstTag = await fetchDom<HTMLAnchorElement>(
+ const firstTag = await fetchDom(
buildRepoURL('branch_commits', commit),
'ul.branches-tag-list li:last-child a'
);
diff --git a/source/features/link-to-changelog-file.tsx b/source/features/link-to-changelog-file.tsx
index 6c57fb5a..9318c5cf 100644
--- a/source/features/link-to-changelog-file.tsx
+++ b/source/features/link-to-changelog-file.tsx
@@ -68,7 +68,7 @@ async function init(): Promise<void | false> {
style={{padding: '6px 16px'}}
role="button"
>
- <BookIcon className="text-blue mr-2"/>
+ <BookIcon className="text-blue color-text-link mr-2"/>
<span>Changelog</span>
</a>
);
diff --git a/source/features/more-dropdown.css b/source/features/more-dropdown.css
index cbac5ada..3787e19a 100644
--- a/source/features/more-dropdown.css
+++ b/source/features/more-dropdown.css
@@ -1,10 +1,3 @@
-/* Fix pre-existing items' positioning on GHE */
-.reponav-dropdown a.dropdown-item:not(.rgh-reponav-more)::before {
- content: '';
- display: inline-block;
- width: 16px;
-}
-
/* Always show the overflow menu button */
.rgh-has-more-dropdown .js-responsive-underlinenav-overflow {
visibility: visible !important;
diff --git a/source/features/restore-file.tsx b/source/features/restore-file.tsx
index f505b15d..0de3c764 100644
--- a/source/features/restore-file.tsx
+++ b/source/features/restore-file.tsx
@@ -57,7 +57,7 @@ async function commitFileContent(menuItem: Element, content: string, filePath: s
}
// This is either an `edit` or `create` form
- const form = (await fetchDom<HTMLFormElement>(pathname, '.js-blob-form'))!;
+ const form = (await fetchDom(pathname, 'form.js-blob-form'))!;
form.elements.value.value = content; // Restore content (`value` is the name of the file content field)
form.elements.message.value = (form.elements.message as HTMLInputElement).placeholder
.replace(/^Create|^Update/, 'Restore');
diff --git a/source/features/safer-destructive-actions.css b/source/features/safer-destructive-actions.css
index 3fe2ceb6..6998f50a 100644
--- a/source/features/safer-destructive-actions.css
+++ b/source/features/safer-destructive-actions.css
@@ -1,12 +1,6 @@
/* Move "close issue" and "cancel" buttons on authoring comments to the left */
/* ...in issue comment form */
-/* the legacy way (kept for GitHub Enterprise) */
-.form-actions .btn.js-comment-and-button {
- float: left;
-}
-
-/* the current github.com way */
#partial-new-comment-form-actions > .d-flex {
justify-content: space-between !important;
}
diff --git a/source/features/table-input.tsx b/source/features/table-input.tsx
index f2ec4f26..1079d69b 100644
--- a/source/features/table-input.tsx
+++ b/source/features/table-input.tsx
@@ -2,6 +2,7 @@ import './table-input.css';
import React from 'dom-chef';
import select from 'select-dom';
import delegate from 'delegate-it';
+import {TableIcon} from '@primer/octicons-react';
import * as pageDetect from 'github-url-detection';
import * as textFieldEdit from 'text-field-edit';
@@ -48,9 +49,7 @@ function init(): void {
className="tooltipped tooltipped-n"
aria-label="Add a table"
>
- <svg width="16" height="16" xmlns="http://www.w3.org/2000/svg" className="octicon">
- <path d="m2.75 1c-0.9665 0-1.75 0.7835-1.75 1.75v10.5c0 0.9665 0.7835 1.75 1.75 1.75h10.5c0.9665 0 1.75-0.7835 1.75-1.75v-10.5c0-0.9665-0.7835-1.75-1.75-1.75h-10.5zm0 1.5h4.5v4.75h-4.75v-4.5c0-0.13807 0.11193-0.25 0.25-0.25zm6 0h4.5c0.1381 0 0.25 0.11193 0.25 0.25v4.5h-4.75v-4.75zm-6.25 6.25h4.75v4.75h-4.5c-0.13807 0-0.25-0.1119-0.25-0.25v-4.5zm6.25 0h4.75v4.5c0 0.1381-0.1119 0.25-0.25 0.25h-4.5v-4.75z"/>
- </svg>
+ <TableIcon/>
</div>
</summary>
<details-menu className="select-menu-modal position-absolute left-0 hx_rsm-modal rgh-table-input" role="menu">
diff --git a/source/helpers/fetch-dom.ts b/source/helpers/fetch-dom.ts
index 9d901496..9de536ca 100644
--- a/source/helpers/fetch-dom.ts
+++ b/source/helpers/fetch-dom.ts
@@ -1,8 +1,9 @@
import mem from 'mem';
import domify from 'doma';
+import type {ParseSelector} from 'typed-query-selector/parser';
async function fetchDom(url: string): Promise<DocumentFragment>;
-async function fetchDom<TElement extends Element>(url: string, selector: string): Promise<TElement | undefined>;
+async function fetchDom<Selector extends string, TElement extends Element = ParseSelector<Selector>>(url: string, selector: Selector): Promise<TElement | undefined>;
async function fetchDom(url: string, selector?: string): Promise<Node | undefined> {
const absoluteURL = new URL(url, location.origin).toString(); // Firefox `fetch`es from the content script, so relative URLs fail
const response = await fetch(absoluteURL);
diff --git a/source/options-storage.ts b/source/options-storage.ts
index 291a8dff..2d950d1b 100644
--- a/source/options-storage.ts
+++ b/source/options-storage.ts
@@ -17,9 +17,8 @@ const defaults = Object.assign({
logging: false
}, Object.fromEntries(__features__.map(id => [`feature:${id}`, true])));
-// TODO[2021-10-01]: Drop classes `muted-link`, `link-gray`, `link-gray-dark`, `text-gray`, `text-gray-light`, `text-gray-dark`, `text-green`, `text-red` #4021
+// TODO[2021-10-01]: Drop classes `muted-link`, `link-gray`, `link-gray-dark`, `text-gray`, `text-gray-light`, `text-gray-dark`, `text-green`, `text-red` `text-blue` #4021
const migrations = [
- featureWasRenamed('pr-easy-toggle-files', 'easy-toggle-files'), // Merged in December
featureWasRenamed('cleanup-repo-filelist-actions', 'clean-repo-filelist-actions'), // Merged in February
featureWasRenamed('batch-open-conversations', 'open-all-conversations'), // Merged in March
diff --git a/source/options.tsx b/source/options.tsx
index 27414276..cb14365d 100644
--- a/source/options.tsx
+++ b/source/options.tsx
@@ -58,6 +58,7 @@ async function getTokenScopes(personalToken: string): Promise<string[]> {
}
const scopes = response.headers.get('X-OAuth-Scopes')!.split(', ');
+ scopes.push('valid_token');
if (scopes.includes('repo')) {
scopes.push('public_repo');
}