summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--octicon-svg-loader.ts2
-rw-r--r--package-lock.json616
-rw-r--r--package.json32
-rw-r--r--source/features/action-used-by-link.tsx1
-rw-r--r--source/features/add-tag-to-commits.tsx1
-rw-r--r--source/features/batch-mark-files-as-viewed.tsx1
-rw-r--r--source/features/batch-open-issues.tsx1
-rw-r--r--source/features/bugs-tab.tsx5
-rw-r--r--source/features/bypass-checks.tsx1
-rw-r--r--source/features/ci-link.tsx3
-rw-r--r--source/features/clean-issue-filters.tsx3
-rw-r--r--source/features/clean-rich-text-editor.tsx1
-rw-r--r--source/features/clean-sidebar.tsx1
-rw-r--r--source/features/clear-pr-merge-commit-message.tsx1
-rw-r--r--source/features/clone-branch.tsx3
-rw-r--r--source/features/close-out-of-view-modals.tsx1
-rw-r--r--source/features/collapsible-content-button.tsx3
-rw-r--r--source/features/comment-fields-keyboard-shortcuts.tsx2
-rw-r--r--source/features/comments-time-machine-links.tsx1
-rw-r--r--source/features/conflict-marker.tsx1
-rw-r--r--source/features/copy-file.tsx1
-rw-r--r--source/features/copy-on-y.tsx1
-rw-r--r--source/features/create-release-shortcut.tsx1
-rw-r--r--source/features/cross-deleted-pr-branches.tsx3
-rw-r--r--source/features/cycle-lists-with-keyboard-shortcuts.tsx1
-rw-r--r--source/features/deep-reblame.tsx3
-rw-r--r--source/features/default-branch-button.tsx1
-rw-r--r--source/features/deprioritize-marketplace-link.tsx3
-rw-r--r--source/features/dim-bots.tsx1
-rw-r--r--source/features/discussion-links-on-repo-lists.tsx1
-rw-r--r--source/features/download-folder-button.tsx1
-rw-r--r--source/features/edit-comments-faster.tsx1
-rw-r--r--source/features/edit-files-faster.tsx3
-rw-r--r--source/features/edit-readme.tsx1
-rw-r--r--source/features/embed-gist-inline.tsx1
-rw-r--r--source/features/embed-gist-via-iframe.tsx1
-rw-r--r--source/features/expand-all-collapsed-code.tsx1
-rw-r--r--source/features/expand-all-hidden-comments.tsx1
-rw-r--r--source/features/extend-diff-expander.tsx1
-rw-r--r--source/features/extend-discussion-status-filters.tsx3
-rw-r--r--source/features/faster-pr-diff-options.tsx1
-rw-r--r--source/features/file-finder-buffer.tsx1
-rw-r--r--source/features/filter-comments-by-you.tsx1
-rw-r--r--source/features/fit-textareas.tsx3
-rw-r--r--source/features/fix-view-file-link-in-pr.tsx1
-rw-r--r--source/features/focus-confirmation-buttons.tsx1
-rw-r--r--source/features/follow-file-renames.tsx3
-rw-r--r--source/features/format-discussion-titles.tsx1
-rw-r--r--source/features/global-discussion-list-filters.tsx1
-rw-r--r--source/features/go-to-action-from-file.tsx1
-rw-r--r--source/features/hidden-review-comments-indicator.tsx3
-rw-r--r--source/features/hide-comments-faster.tsx1
-rw-r--r--source/features/hide-disabled-milestone-sorter.tsx1
-rw-r--r--source/features/hide-empty-meta.tsx1
-rw-r--r--source/features/hide-inactive-deployments.tsx1
-rw-r--r--source/features/hide-issue-list-autocomplete.tsx1
-rw-r--r--source/features/hide-own-stars.tsx1
-rw-r--r--source/features/hide-useless-comments.tsx1
-rw-r--r--source/features/hide-useless-newsfeed-events.tsx1
-rw-r--r--source/features/hide-watch-and-fork-count.tsx1
-rw-r--r--source/features/hide-zero-packages.tsx1
-rw-r--r--source/features/highest-rated-comment.tsx1
-rw-r--r--source/features/highlight-collaborators-and-own-discussions.tsx3
-rw-r--r--source/features/html-preview-link.tsx1
-rw-r--r--source/features/improve-shortcut-help.tsx1
-rw-r--r--source/features/indented-code-wrapping.tsx3
-rw-r--r--source/features/infinite-scroll.tsx1
-rw-r--r--source/features/latest-tag-button.tsx1
-rw-r--r--source/features/link-to-file-in-file-history.tsx1
-rw-r--r--source/features/link-to-prior-blame-line.tsx1
-rw-r--r--source/features/linkify-branch-references.tsx3
-rw-r--r--source/features/linkify-code.tsx1
-rw-r--r--source/features/linkify-commit-sha.tsx1
-rw-r--r--source/features/linkify-labels-on-dashboard.tsx3
-rw-r--r--source/features/linkify-notification-repository-header.tsx1
-rw-r--r--source/features/linkify-symbolic-links.tsx1
-rw-r--r--source/features/linkify-user-location.tsx3
-rw-r--r--source/features/list-prs-for-file.tsx5
-rw-r--r--source/features/mark-merge-commits-in-list.tsx1
-rw-r--r--source/features/mark-private-orgs.tsx5
-rw-r--r--source/features/minimize-upload-bar.tsx3
-rw-r--r--source/features/more-dropdown.tsx2
-rw-r--r--source/features/navigate-pages-with-arrow-keys.tsx1
-rw-r--r--source/features/one-key-formatting.tsx1
-rw-r--r--source/features/open-all-notifications.tsx3
-rw-r--r--source/features/open-ci-details-in-new-tab.tsx1
-rw-r--r--source/features/open-issue-to-latest-comment.tsx1
-rw-r--r--source/features/parse-backticks.tsx1
-rw-r--r--source/features/patch-diff-links.tsx1
-rw-r--r--source/features/pinned-issues-update-time.tsx1
-rw-r--r--source/features/pr-branch-auto-delete.tsx1
-rw-r--r--source/features/pr-branches.tsx3
-rw-r--r--source/features/pr-commit-lines-changed.tsx1
-rw-r--r--source/features/pr-filters.tsx3
-rw-r--r--source/features/preserve-file-finder-term.tsx1
-rw-r--r--source/features/preserve-whitespace-option-in-nav.tsx1
-rw-r--r--source/features/preview-hidden-comments.tsx1
-rw-r--r--source/features/previous-next-commit-buttons.tsx1
-rw-r--r--source/features/profile-gists-link.tsx1
-rw-r--r--source/features/profile-hotkey.tsx1
-rw-r--r--source/features/pull-request-hotkey.tsx1
-rw-r--r--source/features/quick-mention.tsx1
-rw-r--r--source/features/quick-review-buttons.tsx1
-rw-r--r--source/features/raw-file-link.tsx1
-rw-r--r--source/features/reactions-avatars.tsx3
-rw-r--r--source/features/recently-pushed-branches-enhancements.tsx1
-rw-r--r--source/features/release-download-count.tsx3
-rw-r--r--source/features/releases-tab.tsx5
-rw-r--r--source/features/reload-failed-proxied-images.tsx1
-rw-r--r--source/features/remove-checks-tab.tsx1
-rw-r--r--source/features/remove-projects-tab.tsx1
-rw-r--r--source/features/remove-upload-files-button.tsx1
-rw-r--r--source/features/repo-age.tsx3
-rw-r--r--source/features/repo-wide-file-finder.tsx1
-rw-r--r--source/features/resolve-conflicts.tsx1
-rw-r--r--source/features/revert-file.tsx1
-rw-r--r--source/features/selection-in-new-tab.tsx1
-rw-r--r--source/features/separate-draft-pr-button.tsx1
-rw-r--r--source/features/set-default-repositories-type-to-sources.tsx1
-rw-r--r--source/features/shorten-links.tsx1
-rw-r--r--source/features/show-followers-you-know.tsx3
-rw-r--r--source/features/show-names.tsx1
-rw-r--r--source/features/show-open-prs-of-forks.tsx1
-rw-r--r--source/features/show-user-top-repositories.tsx1
-rw-r--r--source/features/show-whitespace.tsx1
-rw-r--r--source/features/sort-issues-by-update-time.tsx1
-rw-r--r--source/features/sort-milestones-by-closest-due-date.tsx1
-rw-r--r--source/features/split-issue-pr-search-results.tsx1
-rw-r--r--source/features/star-repo-hotkey.tsx1
-rw-r--r--source/features/sticky-discussion-sidebar.tsx1
-rw-r--r--source/features/stop-redirecting-in-notification-bar.tsx1
-rw-r--r--source/features/submit-review-as-single-comment.tsx5
-rw-r--r--source/features/suggest-commit-title-limit.tsx1
-rw-r--r--source/features/swap-branches-on-compare.tsx1
-rw-r--r--source/features/sync-pr-commit-title.tsx1
-rw-r--r--source/features/tab-to-indent.tsx1
-rw-r--r--source/features/tag-changelog-link.tsx1
-rw-r--r--source/features/tags-dropdown.tsx1
-rw-r--r--source/features/toggle-everything-with-alt.tsx1
-rw-r--r--source/features/toggle-files-button.tsx1
-rw-r--r--source/features/trending-menu-item.tsx1
-rw-r--r--source/features/unwrap-useless-dropdowns.tsx1
-rw-r--r--source/features/update-pr-from-base-branch.tsx7
-rw-r--r--source/features/useful-not-found-page.tsx1
-rw-r--r--source/features/user-local-time.tsx13
-rw-r--r--source/features/user-profile-follower-badge.tsx1
-rw-r--r--source/features/view-markdown-source.tsx1
-rw-r--r--source/features/wait-for-build.tsx3
-rw-r--r--source/features/warn-pr-from-master.tsx1
-rw-r--r--source/features/warning-for-disallow-edits.tsx1
-rw-r--r--source/globals.d.ts5
-rw-r--r--source/libs/api.ts1
-rw-r--r--source/libs/dom-formatters.ts1
-rw-r--r--source/libs/dom-utils.ts1
-rw-r--r--source/libs/features.tsx7
-rw-r--r--source/libs/get-default-branch.ts1
-rw-r--r--source/libs/get-text-nodes.ts4
-rw-r--r--source/libs/group-buttons.tsx1
-rw-r--r--source/libs/on-file-list-update.ts2
-rw-r--r--source/libs/on-new-comments.ts2
-rw-r--r--source/libs/on-pr-merge-panel-open.ts2
-rw-r--r--source/libs/on-replaced-element.ts1
-rw-r--r--source/libs/pr-ci-status.ts1
-rw-r--r--source/options.tsx1
-rw-r--r--source/resolve-conflicts.ts2
-rw-r--r--test/search-query.ts1
-rw-r--r--test/utils.ts1
-rw-r--r--webpack.config.ts7
168 files changed, 563 insertions, 367 deletions
diff --git a/octicon-svg-loader.ts b/octicon-svg-loader.ts
index eac592f7..5931b845 100644
--- a/octicon-svg-loader.ts
+++ b/octicon-svg-loader.ts
@@ -1,7 +1,7 @@
import path from 'path';
import webpack from 'webpack';
-export default function (this: webpack.loader.LoaderContext, source: string): string {
+export default function svgLoader(this: webpack.loader.LoaderContext, source: string): string {
const iconName = path.basename(this.resourcePath, path.extname(this.resourcePath));
const svgWithClass = source.replace(
'<svg',
diff --git a/package-lock.json b/package-lock.json
index 73e44de6..2d871952 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -21,19 +21,19 @@
}
},
"@babel/core": {
- "version": "7.9.0",
- "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.9.0.tgz",
- "integrity": "sha512-kWc7L0fw1xwvI0zi8OKVBuxRVefwGOrKSQMvrQ3dW+bIIavBY3/NpXmpjMy7bQnLgwgzWQZ8TlM57YHpHNHz4w==",
+ "version": "7.9.6",
+ "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.9.6.tgz",
+ "integrity": "sha512-nD3deLvbsApbHAHttzIssYqgb883yU/d9roe4RZymBCDaZryMJDbptVpEpeQuRh4BJ+SYI8le9YGxKvFEvl1Wg==",
"dev": true,
"requires": {
"@babel/code-frame": "^7.8.3",
- "@babel/generator": "^7.9.0",
+ "@babel/generator": "^7.9.6",
"@babel/helper-module-transforms": "^7.9.0",
- "@babel/helpers": "^7.9.0",
- "@babel/parser": "^7.9.0",
+ "@babel/helpers": "^7.9.6",
+ "@babel/parser": "^7.9.6",
"@babel/template": "^7.8.6",
- "@babel/traverse": "^7.9.0",
- "@babel/types": "^7.9.0",
+ "@babel/traverse": "^7.9.6",
+ "@babel/types": "^7.9.6",
"convert-source-map": "^1.7.0",
"debug": "^4.1.0",
"gensync": "^1.0.0-beta.1",
@@ -62,23 +62,17 @@
}
},
"@babel/generator": {
- "version": "7.9.5",
- "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.9.5.tgz",
- "integrity": "sha512-GbNIxVB3ZJe3tLeDm1HSn2AhuD/mVcyLDpgtLXa5tplmWrJdF/elxB56XNqCuD6szyNkDi6wuoKXln3QeBmCHQ==",
+ "version": "7.9.6",
+ "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.9.6.tgz",
+ "integrity": "sha512-+htwWKJbH2bL72HRluF8zumBxzuX0ZZUFl3JLNyoUjM/Ho8wnVpPXM6aUz8cfKDqQ/h7zHqKt4xzJteUosckqQ==",
"dev": true,
"requires": {
- "@babel/types": "^7.9.5",
+ "@babel/types": "^7.9.6",
"jsesc": "^2.5.1",
"lodash": "^4.17.13",
"source-map": "^0.5.0"
},
"dependencies": {
- "jsesc": {
- "version": "2.5.2",
- "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz",
- "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==",
- "dev": true
- },
"source-map": {
"version": "0.5.7",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
@@ -150,15 +144,15 @@
}
},
"@babel/helper-replace-supers": {
- "version": "7.8.6",
- "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.8.6.tgz",
- "integrity": "sha512-PeMArdA4Sv/Wf4zXwBKPqVj7n9UF/xg6slNRtZW84FM7JpE1CbG8B612FyM4cxrf4fMAMGO0kR7voy1ForHHFA==",
+ "version": "7.9.6",
+ "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.9.6.tgz",
+ "integrity": "sha512-qX+chbxkbArLyCImk3bWV+jB5gTNU/rsze+JlcF6Nf8tVTigPJSI1o1oBow/9Resa1yehUO9lIipsmu9oG4RzA==",
"dev": true,
"requires": {
"@babel/helper-member-expression-to-functions": "^7.8.3",
"@babel/helper-optimise-call-expression": "^7.8.3",
- "@babel/traverse": "^7.8.6",
- "@babel/types": "^7.8.6"
+ "@babel/traverse": "^7.9.6",
+ "@babel/types": "^7.9.6"
}
},
"@babel/helper-simple-access": {
@@ -187,14 +181,14 @@
"dev": true
},
"@babel/helpers": {
- "version": "7.9.2",
- "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.9.2.tgz",
- "integrity": "sha512-JwLvzlXVPjO8eU9c/wF9/zOIN7X6h8DYf7mG4CiFRZRvZNKEF5dQ3H3V+ASkHoIB3mWhatgl5ONhyqHRI6MppA==",
+ "version": "7.9.6",
+ "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.9.6.tgz",
+ "integrity": "sha512-tI4bUbldloLcHWoRUMAj4g1bF313M/o6fBKhIsb3QnGVPwRm9JsNf/gqMkQ7zjqReABiffPV6RWj7hEglID5Iw==",
"dev": true,
"requires": {
"@babel/template": "^7.8.3",
- "@babel/traverse": "^7.9.0",
- "@babel/types": "^7.9.0"
+ "@babel/traverse": "^7.9.6",
+ "@babel/types": "^7.9.6"
}
},
"@babel/highlight": {
@@ -267,9 +261,9 @@
}
},
"@babel/parser": {
- "version": "7.9.4",
- "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.9.4.tgz",
- "integrity": "sha512-bC49otXX6N0/VYhgOMh4gnP26E9xnDZK3TmbNpxYzzz9BQLBosQwfyOe9/cXUU3txYhTzLCbcqd5c8y/OmCjHA==",
+ "version": "7.9.6",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.9.6.tgz",
+ "integrity": "sha512-AoeIEJn8vt+d/6+PXDRPaksYhnlbMIiejioBZvvMQsOjW/JYK6k/0dKnvvP3EhK5GfMBWDPtrxRtegWdAcdq9Q==",
"dev": true
},
"@babel/polyfill": {
@@ -283,9 +277,9 @@
}
},
"@babel/runtime": {
- "version": "7.9.2",
- "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.9.2.tgz",
- "integrity": "sha512-NE2DtOdufG7R5vnfQUTehdTfNycfUANEtCa9PssN9O/xmTzP4E08UI797ixaei6hBEVL9BI/PsdJS5x7mWoB9Q==",
+ "version": "7.9.6",
+ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.9.6.tgz",
+ "integrity": "sha512-64AF1xY3OAkFHqOb9s4jpgk1Mm5vDZ4L3acHvAml+53nO1XbXLuDodsVpO4OIUsmemlUHMxNdYMNJmsvOwLrvQ==",
"dev": true,
"requires": {
"regenerator-runtime": "^0.13.4"
@@ -313,17 +307,17 @@
}
},
"@babel/traverse": {
- "version": "7.9.5",
- "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.9.5.tgz",
- "integrity": "sha512-c4gH3jsvSuGUezlP6rzSJ6jf8fYjLj3hsMZRx/nX0h+fmHN0w+ekubRrHPqnMec0meycA2nwCsJ7dC8IPem2FQ==",
+ "version": "7.9.6",
+ "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.9.6.tgz",
+ "integrity": "sha512-b3rAHSjbxy6VEAvlxM8OV/0X4XrG72zoxme6q1MOoe2vd0bEc+TwayhuC1+Dfgqh1QEG+pj7atQqvUprHIccsg==",
"dev": true,
"requires": {
"@babel/code-frame": "^7.8.3",
- "@babel/generator": "^7.9.5",
+ "@babel/generator": "^7.9.6",
"@babel/helper-function-name": "^7.9.5",
"@babel/helper-split-export-declaration": "^7.8.3",
- "@babel/parser": "^7.9.0",
- "@babel/types": "^7.9.5",
+ "@babel/parser": "^7.9.6",
+ "@babel/types": "^7.9.6",
"debug": "^4.1.0",
"globals": "^11.1.0",
"lodash": "^4.17.13"
@@ -338,9 +332,9 @@
}
},
"@babel/types": {
- "version": "7.9.5",
- "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.5.tgz",
- "integrity": "sha512-XjnvNqenk818r5zMaba+sLQjnbda31UfUURv3ei0qPQw4u+j2jMyJ5b11y8ZHYTRSI3NnInQkkkRT4fLqqPdHg==",
+ "version": "7.9.6",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.6.tgz",
+ "integrity": "sha512-qxXzvBO//jO9ZnoasKF1uJzHd2+M6Q2ZPIVfnFps8JJvXy0ZBbwbNOmE6SGIY5XOY6d1Bo5lb9d9RJ8nv3WSeA==",
"dev": true,
"requires": {
"@babel/helper-validator-identifier": "^7.9.5",
@@ -433,6 +427,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",
@@ -668,26 +681,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/webpack": {
"version": "4.41.10",
"resolved": "https://registry.npmjs.org/@types/webpack/-/webpack-4.41.10.tgz",
@@ -714,12 +707,12 @@
}
},
"@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.31.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-2.31.0.tgz",
+ "integrity": "sha512-iIC0Pb8qDaoit+m80Ln/aaeu9zKQdOLF4SHcGLarSeY1gurW6aU4JsOPMjKQwXlw70MvWKZQc6S2NamA8SJ/gg==",
"dev": true,
"requires": {
- "@typescript-eslint/experimental-utils": "2.27.0",
+ "@typescript-eslint/experimental-utils": "2.31.0",
"functional-red-black-tree": "^1.0.1",
"regexpp": "^3.0.0",
"tsutils": "^3.17.1"
@@ -734,13 +727,13 @@
}
},
"@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.31.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-2.31.0.tgz",
+ "integrity": "sha512-MI6IWkutLYQYTQgZ48IVnRXmLR/0Q6oAyJgiOror74arUMh7EWjJkADfirZhRsUMHeLJ85U2iySDwHTSnNi9vA==",
"dev": true,
"requires": {
"@types/json-schema": "^7.0.3",
- "@typescript-eslint/typescript-estree": "2.27.0",
+ "@typescript-eslint/typescript-estree": "2.31.0",
"eslint-scope": "^5.0.0",
"eslint-utils": "^2.0.0"
},
@@ -757,21 +750,21 @@
}
},
"@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.31.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-2.31.0.tgz",
+ "integrity": "sha512-uph+w6xUOlyV2DLSC6o+fBDzZ5i7+3/TxAsH4h3eC64tlga57oMb96vVlXoMwjR/nN+xyWlsnxtbDkB46M2EPQ==",
"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.31.0",
+ "@typescript-eslint/typescript-estree": "2.31.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.31.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-2.31.0.tgz",
+ "integrity": "sha512-vxW149bXFXXuBrAak0eKHOzbcu9cvi6iNcJDzEtOkRwGHxJG15chiAQAwhLOsk+86p9GTr/TziYvw+H9kMaIgA==",
"dev": true,
"requires": {
"debug": "^4.1.1",
@@ -2074,6 +2067,12 @@
"integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=",
"dev": true
},
+ "at-least-node": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz",
+ "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==",
+ "dev": true
+ },
"atob": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz",
@@ -2636,13 +2635,13 @@
}
},
"browserslist": {
- "version": "4.11.1",
- "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.11.1.tgz",
- "integrity": "sha512-DCTr3kDrKEYNw6Jb9HFxVLQNaue8z+0ZfRBRjmCunKDEXEBajKDj2Y+Uelg+Pi29OnvaSGwjOsnRyNEkXzHg5g==",
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.12.0.tgz",
+ "integrity": "sha512-UH2GkcEDSI0k/lRkuDSzFl9ZZ87skSy9w2XAn1MsZnL+4c4rqbBd3e82UWHbYDpztABrPBhZsTEeuxVfHppqDg==",
"dev": true,
"requires": {
- "caniuse-lite": "^1.0.30001038",
- "electron-to-chromium": "^1.3.390",
+ "caniuse-lite": "^1.0.30001043",
+ "electron-to-chromium": "^1.3.413",
"node-releases": "^1.1.53",
"pkg-up": "^2.0.0"
}
@@ -2863,9 +2862,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.30001053",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001053.tgz",
+ "integrity": "sha512-HtV4wwIZl6GA4Oznse8aR274XUOYGZnQLcf/P8vHgmlfqSNelwD+id8CyHOceqLqt9yfKmo7DUZTh1EuS9pukg==",
"dev": true
},
"capture-stack-trace": {
@@ -4872,9 +4871,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.430",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.430.tgz",
+ "integrity": "sha512-HMDYkANGhx6vfbqpOf/hc6hWEmiOipOHGDeRDeUb3HLD3XIWpvKQxFgWf0tgHcr3aNv6I/8VPecplqmQsXoZSw==",
"dev": true
},
"element-ready": {
@@ -5297,9 +5296,9 @@
}
},
"eslint-config-prettier": {
- "version": "6.10.1",
- "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-6.10.1.tgz",
- "integrity": "sha512-svTy6zh1ecQojvpbJSgH3aei/Rt7C6i090l5f2WQ4aB05lYHeZIR1qL4wZyyILTbtmnbHP5Yn8MrsOJMGa8RkQ==",
+ "version": "6.11.0",
+ "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-6.11.0.tgz",
+ "integrity": "sha512-oB8cpLWSAjOVFEJhhyMZh6NOEOtBVziaqdDQ86+qhDHFbZXoRTM7pNSvFRfW/W/L/LrQ38C99J5CGuRBBzBsdA==",
"dev": true,
"requires": {
"get-stdin": "^6.0.0"
@@ -5329,9 +5328,9 @@
"dev": true
},
"eslint-config-xo-typescript": {
- "version": "0.26.0",
- "resolved": "https://registry.npmjs.org/eslint-config-xo-typescript/-/eslint-config-xo-typescript-0.26.0.tgz",
- "integrity": "sha512-0bBfXLQX5F7JgJx5HIrSx3bGZk2D8W0uhYXB0jv6L0ztmWl4yqfCn6J4zgjUqMCsahHIjyaafBWrnc6eVaETWg==",
+ "version": "0.28.0",
+ "resolved": "https://registry.npmjs.org/eslint-config-xo-typescript/-/eslint-config-xo-typescript-0.28.0.tgz",
+ "integrity": "sha512-q+mBhTikLjrPOszx6gezd6ZxrbrSHeBp/Z8gGgPowBYvBYG78llfQZxOcsbKN6aM8+S/OFAJP9bk5w/roLDFTA==",
"dev": true
},
"eslint-formatter-pretty": {
@@ -5498,9 +5497,9 @@
}
},
"eslint-plugin-ava": {
- "version": "10.2.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-ava/-/eslint-plugin-ava-10.2.0.tgz",
- "integrity": "sha512-1EP9Mn/pau+ZxwRPDspiioRD6GHCSz7RywTmqW01JTxXvX0vKEV0odfWe+QL+jXfmqd83SHHvDJfOvYcyzoxYA==",
+ "version": "10.3.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-ava/-/eslint-plugin-ava-10.3.0.tgz",
+ "integrity": "sha512-rNijYwBo+28ahXvifTx3IYzsNjtArAeyowBJ1Rd5dCtW7f0y5aSTBU7sXBpU5o5Eh5/FZvz3lSLVLac8ExYTtA==",
"dev": true,
"requires": {
"deep-strict-equal": "^0.2.0",
@@ -5508,6 +5507,7 @@
"espree": "^6.1.2",
"espurify": "^2.0.1",
"import-modules": "^2.0.0",
+ "micro-spelling-correcter": "^1.1.1",
"pkg-dir": "^4.2.0",
"resolve-from": "^5.0.0"
}
@@ -6037,9 +6037,9 @@
}
},
"eslint-plugin-no-use-extend-native": {
- "version": "0.4.1",
- "resolved": "https://registry.npmjs.org/eslint-plugin-no-use-extend-native/-/eslint-plugin-no-use-extend-native-0.4.1.tgz",
- "integrity": "sha512-tDkHM0kvxU0M2TpLRKGfFrpWXctFdTDY7VkiDTLYDaX90hMSJKkr/FiWThEXvKV0Dvffut2Z0B9Y7+h/k6suiA==",
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-no-use-extend-native/-/eslint-plugin-no-use-extend-native-0.5.0.tgz",
+ "integrity": "sha512-dBNjs8hor8rJgeXLH4HTut5eD3RGWf9JUsadIfuL7UosVQ/dnvOKwxEcRrXrFxrMZ8llUVWT+hOimxJABsAUzQ==",
"dev": true,
"requires": {
"is-get-set-prop": "^1.0.0",
@@ -6080,9 +6080,9 @@
}
},
"eslint-plugin-prettier": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-3.1.2.tgz",
- "integrity": "sha512-GlolCC9y3XZfv3RQfwGew7NnuFDKsfI4lbvRK+PIIo23SFH+LemGs4cKwzAaRa+Mdb+lQO/STaIayno8T5sJJA==",
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-3.1.3.tgz",
+ "integrity": "sha512-+HG5jmu/dN3ZV3T6eCD7a4BlAySdN7mLIbJYo0z1cFQuI+r2DiTJEFeF68ots93PsnrMxbzIZ2S/ieX+mkrBeQ==",
"dev": true,
"requires": {
"prettier-linter-helpers": "^1.0.0"
@@ -6132,30 +6132,40 @@
}
},
"eslint-plugin-react-hooks": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-3.0.0.tgz",
- "integrity": "sha512-EjxTHxjLKIBWFgDJdhKKzLh5q+vjTFrqNZX36uIxWS4OfyXe5DawqPj3U5qeJ1ngLwatjzQnmR0Lz0J0YH3kxw==",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.0.0.tgz",
+ "integrity": "sha512-YKBY+kilK5wrwIdQnCF395Ya6nDro3EAMoe+2xFkmyklyhF16fH83TrQOo9zbZIDxBsXFgBbywta/0JKRNFDkw==",
"dev": true
},
"eslint-plugin-unicorn": {
- "version": "17.2.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-unicorn/-/eslint-plugin-unicorn-17.2.0.tgz",
- "integrity": "sha512-0kYjrywf0kQxevFz571KrDfYMIRZ5Kq6dDgPU1EEBFeC181r+fAaPatBScWX+/hisKJ4+eCRFebxTeVylsSYmw==",
+ "version": "19.0.1",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-unicorn/-/eslint-plugin-unicorn-19.0.1.tgz",
+ "integrity": "sha512-fu0/h5mHXfBC6EkA3i2vCjsfC8j53+T9txGhNL4fpxJ+1JKsUKfv+tmXDgy0XnLHhFjnOZp4tRWJWbcykeIP2Q==",
"dev": true,
"requires": {
"ci-info": "^2.0.0",
"clean-regexp": "^1.0.0",
"eslint-ast-utils": "^1.1.0",
"eslint-template-visitor": "^1.1.0",
+ "eslint-utils": "^2.0.0",
"import-modules": "^2.0.0",
"lodash": "^4.17.15",
"read-pkg-up": "^7.0.1",
- "regexp-tree": "^0.1.20",
+ "regexp-tree": "^0.1.21",
"reserved-words": "^0.1.2",
"safe-regex": "^2.1.1",
- "semver": "^7.1.2"
+ "semver": "^7.1.3"
},
"dependencies": {
+ "eslint-utils": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.0.0.tgz",
+ "integrity": "sha512-0HCPuJv+7Wv1bACm8y5/ECVfYdfsAm9xmVb7saeFlxjPYALefjhbYoCkBjPdPzGH8wWyTpAez82Fh3VKYEZ8OA==",
+ "dev": true,
+ "requires": {
+ "eslint-visitor-keys": "^1.1.0"
+ }
+ },
"find-up": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
@@ -6258,9 +6268,9 @@
}
},
"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
},
"type-fest": {
@@ -6272,9 +6282,9 @@
}
},
"eslint-rule-docs": {
- "version": "1.1.185",
- "resolved": "https://registry.npmjs.org/eslint-rule-docs/-/eslint-rule-docs-1.1.185.tgz",
- "integrity": "sha512-1sea+uWAA76814hpwKb6IIXAx3catuivoYOlwgf96RFOhNfuE+LWsG7asIHUkAQ1Vx4SN/kfpU+lTXXnu1gg/w==",
+ "version": "1.1.189",
+ "resolved": "https://registry.npmjs.org/eslint-rule-docs/-/eslint-rule-docs-1.1.189.tgz",
+ "integrity": "sha512-26nV3Ef6J9xUjQhTjnUlB628AEXuQcRvXzUSQz04tTm1TSIUyBe2XaI8ODDxK68/42QifDBbdNuMFBtcHNDmGQ==",
"dev": true
},
"eslint-scope": {
@@ -8763,6 +8773,12 @@
}
}
},
+ "jsesc": {
+ "version": "2.5.2",
+ "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz",
+ "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==",
+ "dev": true
+ },
"json-buffer": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz",
@@ -9356,10 +9372,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"
+ }
},
"marky": {
"version": "1.2.1",
@@ -9414,12 +9433,12 @@
}
},
"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"
}
},
"mdn-browser-compat-data": {
@@ -9484,6 +9503,12 @@
"integrity": "sha512-2j4DAdlBOkiSZIsaXk4mTE3sRS02yBHAtfy127xRV3bQUFqXkjHCHLW6Scv7DwNRbIWNHH8zpnz9zMaKXIdvYw==",
"dev": true
},
+ "micro-spelling-correcter": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/micro-spelling-correcter/-/micro-spelling-correcter-1.1.1.tgz",
+ "integrity": "sha512-lkJ3Rj/mtjlRcHk6YyCbvZhyWTOzdBvTHsxMmZSk5jxN1YyVSQ+JETAom55mdzfcyDrY/49Z7UCW760BK30crg==",
+ "dev": true
+ },
"microevent.ts": {
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/microevent.ts/-/microevent.ts-0.1.1.tgz",
@@ -9977,9 +10002,9 @@
}
},
"node-releases": {
- "version": "1.1.53",
- "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.53.tgz",
- "integrity": "sha512-wp8zyQVwef2hpZ/dJH7SfSrIPD6YoJz6BDQDpGEkcA0s3LpAQoxBIYmfIq6QAhC1DhwsyCgTaTTcONwX8qzCuQ==",
+ "version": "1.1.55",
+ "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.55.tgz",
+ "integrity": "sha512-H3R3YR/8TjT5WPin/wOoHOUPHgvj8leuU/Keta/rwelEQN9pA/S2Dx8/se4pZ2LBxSd0nAGzsNzhqwa77v7F1w==",
"dev": true
},
"normalize-package-data": {
@@ -10563,9 +10588,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",
@@ -10993,15 +11018,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",
@@ -11011,16 +11027,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",
@@ -11227,9 +11233,9 @@
"dev": true
},
"prettier": {
- "version": "1.19.1",
- "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.19.1.tgz",
- "integrity": "sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew==",
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.0.4.tgz",
+ "integrity": "sha512-SVJIQ51spzFDvh4fIbCLvciiDMCrRhlN3mbZvv/+ycjvmF5E73bKdGfU8QDLNmjYJf+lsGnDBC4UUnvTe5OO0w==",
"dev": true
},
"prettier-linter-helpers": {
@@ -11698,43 +11704,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.2",
+ "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-8.0.2.tgz",
+ "integrity": "sha512-eMI6kMRjsAGpMXXBAywJwiwAse+KNpmt+BK55Oofy4KvBZEqUDj6mWbGLJZrujoPIPPxDXzn3T9baRlpsm2jnQ==",
"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",
@@ -11743,12 +11750,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"
}
@@ -12970,14 +12977,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.1",
+ "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-3.0.1.tgz",
+ "integrity": "sha512-Lsk3ISA2++eJYqBMPKcr/8eby1I6L0gP0NlxF8Zja6c05yr/yCYyb2c9PwXjd08Ib3If1vn1rbs1H5ZtVuOfvQ==",
"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"
}
},
@@ -13041,14 +13049,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.3",
+ "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-13.3.3.tgz",
+ "integrity": "sha512-j8Oio2T1YNiJc6iXDaPYd74Jg4zOa1bByNm/g9/Nvnq4tDPsIjMi46jhRZyPPktGPwjJ5FwcmCqIRlH6PVP8mA==",
"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",
@@ -13071,14 +13081,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",
@@ -13113,16 +13121,6 @@
"quick-lru": "^4.0.1"
}
},
- "chalk": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz",
- "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==",
- "dev": true,
- "requires": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- }
- },
"find-up": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
@@ -13173,22 +13171,22 @@
"dev": true
},
"meow": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/meow/-/meow-6.1.0.tgz",
- "integrity": "sha512-iIAoeI01v6pmSfObAAWFoITAA4GgiT45m4SmJgoxtZfvI0fyZwhV4d0lTwiUXvAKIPlma05Feb2Xngl52Mj5Cg==",
+ "version": "6.1.1",
+ "resolved": "https://registry.npmjs.org/meow/-/meow-6.1.1.tgz",
+ "integrity": "sha512-3YffViIt2QWgTy6Pale5QpopX/IvU3LPL03jOTqp6pGj3VjesdO/U8CuHMKpnQr4shCNCM5fd5XFFvIIl6JBHg==",
"dev": true,
"requires": {
"@types/minimist": "^1.2.0",
- "camelcase-keys": "^6.1.1",
+ "camelcase-keys": "^6.2.2",
"decamelize-keys": "^1.1.0",
- "hard-rejection": "^2.0.0",
- "minimist-options": "^4.0.1",
+ "hard-rejection": "^2.1.0",
+ "minimist-options": "^4.0.2",
"normalize-package-data": "^2.5.0",
- "read-pkg-up": "^7.0.0",
+ "read-pkg-up": "^7.0.1",
"redent": "^3.0.0",
"trim-newlines": "^3.0.0",
- "type-fest": "^0.8.1",
- "yargs-parser": "^18.1.1"
+ "type-fest": "^0.13.1",
+ "yargs-parser": "^18.1.3"
}
},
"minimist-options": {
@@ -13278,6 +13276,14 @@
"find-up": "^4.1.0",
"read-pkg": "^5.2.0",
"type-fest": "^0.8.1"
+ },
+ "dependencies": {
+ "type-fest": {
+ "version": "0.8.1",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz",
+ "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==",
+ "dev": true
+ }
}
},
"redent": {
@@ -13296,16 +13302,10 @@
"integrity": "sha512-C4+gOpvmxaSMKuEf9Qc134F1ZuOHVXKRbtEflf4NTtuuJDEIJ9p5PXsalL8SkeRw+qit1Mo+yuvMPAKwWg/1hA==",
"dev": true
},
- "type-fest": {
- "version": "0.8.1",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz",
- "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==",
- "dev": true
- },
"yargs-parser": {
- "version": "18.1.2",
- "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.2.tgz",
- "integrity": "sha512-hlIPNR3IzC1YuL1c2UwwDKpXlNFBqD1Fswwh1khz5+d8Cq/8yc/Mn0i+rQXduu8hcrFKvO7Eryk+09NecTQAAQ==",
+ "version": "18.1.3",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz",
+ "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==",
"dev": true,
"requires": {
"camelcase": "^5.0.0",
@@ -13315,13 +13315,13 @@
}
},
"stylelint-config-xo": {
- "version": "0.16.1",
- "resolved": "https://registry.npmjs.org/stylelint-config-xo/-/stylelint-config-xo-0.16.1.tgz",
- "integrity": "sha512-gLJYd+VLJKvJl1CGV7pFrEs6W0nGWvmlf/SYL+nw2qzjSC/WFKIdDS1xJlJdG1wTesF6+Hov7g8q9T8FfxQmDg==",
+ "version": "0.17.0",
+ "resolved": "https://registry.npmjs.org/stylelint-config-xo/-/stylelint-config-xo-0.17.0.tgz",
+ "integrity": "sha512-RLZ6/EnweT5VUsouIt604U/JPAOWa8p12nJzySixoEZGiLnv/YeLNeSG665ki87iDLrDy5qcn5BS35UlTv7CTg==",
"dev": true,
"requires": {
"stylelint-declaration-block-no-ignored-properties": "^2.2.0",
- "stylelint-order": "^3.1.1"
+ "stylelint-order": "^4.0.0"
}
},
"stylelint-declaration-block-no-ignored-properties": {
@@ -13334,13 +13334,13 @@
}
},
"stylelint-order": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/stylelint-order/-/stylelint-order-3.1.1.tgz",
- "integrity": "sha512-4gP/r8j/6JGZ/LL41b2sYtQqfwZl4VSqTp7WeIwI67v/OXNQ08dnn64BGXNwAUSgb2+YIvIOxQaMzqMyQMzoyQ==",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/stylelint-order/-/stylelint-order-4.0.0.tgz",
+ "integrity": "sha512-bXV0v+jfB0+JKsqIn3mLglg1Dj2QCYkFHNfL1c+rVMEmruZmW5LUqT/ARBERfBm8SFtCuXpEdatidw/3IkcoiA==",
"dev": true,
"requires": {
"lodash": "^4.17.15",
- "postcss": "^7.0.17",
+ "postcss": "^7.0.26",
"postcss-sorting": "^5.0.1"
}
},
@@ -14130,19 +14130,31 @@
}
},
"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-buffer": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.4.tgz",
+ "integrity": "sha512-Kq1rokWXOPXWuaMAqZiJW4XxsmD9zGx9q4aePabbn3qCRGedtH7Cm+zV8WETitMfu1wdh+Rvd6w5egwSngUX2A==",
+ "dev": true
+ },
+ "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": {
@@ -14191,27 +14203,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": {
@@ -14224,21 +14236,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": {
@@ -14469,15 +14484,16 @@
}
},
"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"
+ "unist-util-stringify-position": "^2.0.0",
+ "vfile-message": "^2.0.0"
},
"dependencies": {
"is-buffer": {
@@ -14485,28 +14501,13 @@
"resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.4.tgz",
"integrity": "sha512-Kq1rokWXOPXWuaMAqZiJW4XxsmD9zGx9q4aePabbn3qCRGedtH7Cm+zV8WETitMfu1wdh+Rvd6w5egwSngUX2A==",
"dev": true
- },
- "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"
- }
}
}
},
"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": {
@@ -16364,12 +16365,6 @@
"integrity": "sha512-HTDl9G9hbkNDk98naoR/cHDws7+EyYMOdL1BmjsZXRUjf7d+MficC4B7HLUPlSiho0vg+CWKrGIt/VJBd1xunQ==",
"dev": true
},
- "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": "4.0.0",
"resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz",
@@ -16405,33 +16400,33 @@
"dev": true
},
"xo": {
- "version": "0.28.3",
- "resolved": "https://registry.npmjs.org/xo/-/xo-0.28.3.tgz",
- "integrity": "sha512-HA1wqG9NI9CTHVZeNyLVVs2HGwdcCtxSKPwlIVpwuZTGzVkv5rCzqBhTGKpLX6aYZu6YkuCL2pvRVyZqYMtlCw==",
+ "version": "0.30.0",
+ "resolved": "https://registry.npmjs.org/xo/-/xo-0.30.0.tgz",
+ "integrity": "sha512-755dmXTIj8uHv0lUZmDrtQb98wdu6ryqgcy8jvXBZgABz+kHm12IlzRQP+bO+w1u6NqkQB0Nn0Bh6Uv+KhdYiA==",
"dev": true,
"requires": {
- "@typescript-eslint/eslint-plugin": "^2.23.0",
- "@typescript-eslint/parser": "^2.23.0",
+ "@typescript-eslint/eslint-plugin": "^2.29.0",
+ "@typescript-eslint/parser": "^2.29.0",
"arrify": "^2.0.1",
"cosmiconfig": "^6.0.0",
"debug": "^4.1.0",
"eslint": "^6.8.0",
- "eslint-config-prettier": "^6.10.0",
+ "eslint-config-prettier": "^6.11.0",
"eslint-config-xo": "^0.29.0",
- "eslint-config-xo-typescript": "^0.26.0",
+ "eslint-config-xo-typescript": "^0.28.0",
"eslint-formatter-pretty": "^3.0.1",
"eslint-import-resolver-webpack": "^0.12.1",
"eslint-plugin-ava": "^10.0.1",
"eslint-plugin-eslint-comments": "^3.1.2",
"eslint-plugin-import": "^2.20.1",
- "eslint-plugin-no-use-extend-native": "^0.4.1",
+ "eslint-plugin-no-use-extend-native": "^0.5.0",
"eslint-plugin-node": "^11.0.0",
- "eslint-plugin-prettier": "^3.1.2",
+ "eslint-plugin-prettier": "^3.1.3",
"eslint-plugin-promise": "^4.2.1",
- "eslint-plugin-unicorn": "^17.2.0",
+ "eslint-plugin-unicorn": "^19.0.0",
"find-cache-dir": "^3.3.1",
"find-up": "^4.1.0",
- "fs-extra": "^8.1.0",
+ "fs-extra": "^9.0.0",
"get-stdin": "^7.0.0",
"globby": "^9.0.0",
"has-flag": "^4.0.0",
@@ -16445,10 +16440,10 @@
"open-editor": "^2.0.1",
"p-reduce": "^2.1.0",
"path-exists": "^4.0.0",
- "prettier": "^1.15.2",
+ "prettier": "2.0.4",
"resolve-cwd": "^3.0.0",
"resolve-from": "^5.0.0",
- "semver": "^7.1.3",
+ "semver": "^7.3.2",
"slash": "^3.0.0",
"to-absolute-glob": "^2.0.2",
"typescript": "^3.0.0",
@@ -16596,14 +16591,15 @@
}
},
"fs-extra": {
- "version": "8.1.0",
- "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz",
- "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==",
+ "version": "9.0.0",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.0.0.tgz",
+ "integrity": "sha512-pmEYSk3vYsG/bF651KPUXZ+hvjpgWYw/Gc7W9NFUe3ZVLczKKWIij3IKpOrQcdw4TILtibFslZ0UmR8Vvzig4g==",
"dev": true,
"requires": {
+ "at-least-node": "^1.0.0",
"graceful-fs": "^4.2.0",
- "jsonfile": "^4.0.0",
- "universalify": "^0.1.0"
+ "jsonfile": "^6.0.1",
+ "universalify": "^1.0.0"
}
},
"get-stdin": {
@@ -16698,6 +16694,16 @@
"minimist": "^1.2.5"
}
},
+ "jsonfile": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.0.1.tgz",
+ "integrity": "sha512-jR2b5v7d2vIOust+w3wtFKZIfpC2pnRmFAhAC/BuweZFQR8qZzxH1OyrQ10HmdVYiXWkYUqPVsz91cG7EL2FBg==",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "^4.1.6",
+ "universalify": "^1.0.0"
+ }
+ },
"locate-path": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
@@ -16744,9 +16750,9 @@
"dev": true
},
"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
},
"to-regex-range": {
@@ -16758,6 +16764,12 @@
"is-number": "^3.0.0",
"repeat-string": "^1.6.1"
}
+ },
+ "universalify": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz",
+ "integrity": "sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug==",
+ "dev": true
}
}
},
@@ -16789,12 +16801,12 @@
"dev": true
},
"yaml": {
- "version": "1.8.3",
- "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.8.3.tgz",
- "integrity": "sha512-X/v7VDnK+sxbQ2Imq4Jt2PRUsRsP7UcpSl3Llg6+NRRqWLIvxkMFYtH1FmvwNGYRKKPa+EPA4qDBlI9WVG1UKw==",
+ "version": "1.9.2",
+ "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.9.2.tgz",
+ "integrity": "sha512-HPT7cGGI0DuRcsO51qC1j9O16Dh1mZ2bnXwsi0jrSpsLz0WxOLSLXfkABVl6bZO629py3CU+OMJtpNHDLB97kg==",
"dev": true,
"requires": {
- "@babel/runtime": "^7.8.7"
+ "@babel/runtime": "^7.9.2"
}
},
"yargs": {
diff --git a/package.json b/package.json
index 1c5a44f9..2e99ca90 100644
--- a/package.json
+++ b/package.json
@@ -69,7 +69,7 @@
"eslint": "^6.8.0",
"eslint-config-xo-react": "^0.23.0",
"eslint-plugin-react": "^7.19.0",
- "eslint-plugin-react-hooks": "^3.0.0",
+ "eslint-plugin-react-hooks": "^4.0.0",
"esm": "^3.2.25",
"fork-ts-checker-webpack-plugin": "^4.1.3",
"jsdom": "^16.2.2",
@@ -77,8 +77,8 @@
"npm-run-all": "^4.1.5",
"size-plugin": "^2.0.1",
"string-replace-loader": "^2.2.0",
- "stylelint": "^13.3.0",
- "stylelint-config-xo": "^0.16.1",
+ "stylelint": "^13.3.3",
+ "stylelint-config-xo": "^0.17.0",
"terser-webpack-plugin": "^2.3.5",
"ts-loader": "^7.0.1",
"ts-node": "^8.9.0",
@@ -88,7 +88,7 @@
"web-ext-submit": "^4.1.0",
"webpack": "^4.42.1",
"webpack-cli": "^3.3.11",
- "xo": "^0.28.3"
+ "xo": "^0.30.0"
},
"xo": {
"extends": "xo-react",
@@ -104,6 +104,8 @@
"rules": {
"@typescript-eslint/promise-function-async": "off",
"@typescript-eslint/no-empty-function": "off",
+ "@typescript-eslint/no-floating-promises": "off",
+ "@typescript-eslint/prefer-readonly-parameter-types": "off",
"no-alert": "off",
"react/function-component-definition": [
"error",
@@ -114,6 +116,24 @@
"react/jsx-first-prop-new-line": "error",
"react/jsx-key": "off",
"react/no-unknown-property": "off",
+ "import/order": [
+ "error",
+ {
+ "groups": [
+ [
+ "builtin",
+ "external"
+ ]
+ ],
+ "newlines-between": "always-and-inside-groups"
+ }
+ ],
+ "import/first": "error",
+ "import/newline-after-import": "error",
+ "import/no-anonymous-default-export": "error",
+ "import/no-commonjs": "error",
+ "import/no-named-default": "error",
+ "import/prefer-default-export": "error",
"import/extensions": [
"error",
"never",
@@ -122,8 +142,8 @@
}
],
"import/no-unassigned-import": "off",
- "unicorn/prevent-abbreviations": "error",
- "unicorn/string-content": "off"
+ "unicorn/no-fn-reference-in-iterator": "off",
+ "unicorn/prefer-set-has": "off"
},
"settings": {
"react": {
diff --git a/source/features/action-used-by-link.tsx b/source/features/action-used-by-link.tsx
index 0c2f1eba..feb8a77e 100644
--- a/source/features/action-used-by-link.tsx
+++ b/source/features/action-used-by-link.tsx
@@ -2,6 +2,7 @@ import React from 'dom-chef';
import select from 'select-dom';
import SearchIcon from 'octicon/search.svg';
import * as pageDetect from 'github-url-detection';
+
import features from '../libs/features';
function init(): void {
diff --git a/source/features/add-tag-to-commits.tsx b/source/features/add-tag-to-commits.tsx
index 25ee53af..e55222ea 100644
--- a/source/features/add-tag-to-commits.tsx
+++ b/source/features/add-tag-to-commits.tsx
@@ -3,6 +3,7 @@ import cache from 'webext-storage-cache';
import select from 'select-dom';
import TagIcon from 'octicon/tag.svg';
import * as pageDetect from 'github-url-detection';
+
import features from '../libs/features';
import * as api from '../libs/api';
import {getOwnerAndRepo, getRepoURL, getRepoGQL} from '../libs/utils';
diff --git a/source/features/batch-mark-files-as-viewed.tsx b/source/features/batch-mark-files-as-viewed.tsx
index 05f018a4..519b2412 100644
--- a/source/features/batch-mark-files-as-viewed.tsx
+++ b/source/features/batch-mark-files-as-viewed.tsx
@@ -1,6 +1,7 @@
import select from 'select-dom';
import delegate from 'delegate-it';
import * as pageDetect from 'github-url-detection';
+
import features from '../libs/features';
let previousFile: HTMLElement | undefined;
diff --git a/source/features/batch-open-issues.tsx b/source/features/batch-open-issues.tsx
index 68c3b83c..d188e268 100644
--- a/source/features/batch-open-issues.tsx
+++ b/source/features/batch-open-issues.tsx
@@ -3,6 +3,7 @@ import select from 'select-dom';
import delegate from 'delegate-it';
import elementReady from 'element-ready';
import * as pageDetect from 'github-url-detection';
+
import features from '../libs/features';
const confirmationRequiredCount = 10;
diff --git a/source/features/bugs-tab.tsx b/source/features/bugs-tab.tsx
index 63e03eec..f40b0f1d 100644
--- a/source/features/bugs-tab.tsx
+++ b/source/features/bugs-tab.tsx
@@ -1,11 +1,12 @@
import React from 'dom-chef';
import cache from 'webext-storage-cache';
import select from 'select-dom';
-import BugIcon from '@primer/octicons/build/svg/bug.svg';
import elementReady from 'element-ready';
import * as pageDetect from 'github-url-detection';
-import features from '../libs/features';
+import BugIcon from '@primer/octicons/build/svg/bug.svg';
+
import * as api from '../libs/api';
+import features from '../libs/features';
import SearchQuery from '../libs/search-query';
import {getRepoURL} from '../libs/utils';
diff --git a/source/features/bypass-checks.tsx b/source/features/bypass-checks.tsx
index 300dbd0a..b9a8d1c3 100644
--- a/source/features/bypass-checks.tsx
+++ b/source/features/bypass-checks.tsx
@@ -1,5 +1,6 @@
import select from 'select-dom';
import * as pageDetect from 'github-url-detection';
+
import features from '../libs/features';
import fetchDom from '../libs/fetch-dom';
diff --git a/source/features/ci-link.tsx b/source/features/ci-link.tsx
index 7ed6a78c..66abf994 100644
--- a/source/features/ci-link.tsx
+++ b/source/features/ci-link.tsx
@@ -1,13 +1,14 @@
import './ci-link.css';
import oneTime from 'onetime';
import * as pageDetect from 'github-url-detection';
+
import features from '../libs/features';
import fetchDom from '../libs/fetch-dom';
import {getRepoURL} from '../libs/utils';
import {appendBefore} from '../libs/dom-utils';
// Look for the CI icon in the latest 2 days of commits #2990
-export const getIcon = oneTime(fetchDom.bind(null,
+const getIcon = oneTime(fetchDom.bind(null,
`/${getRepoURL()}/commits`,
'.commit-group:nth-of-type(-n+2) .commit-build-statuses'
));
diff --git a/source/features/clean-issue-filters.tsx b/source/features/clean-issue-filters.tsx
index 4df75658..229bebd2 100644
--- a/source/features/clean-issue-filters.tsx
+++ b/source/features/clean-issue-filters.tsx
@@ -2,8 +2,9 @@ import select from 'select-dom';
import cache from 'webext-storage-cache';
import elementReady from 'element-ready';
import * as pageDetect from 'github-url-detection';
-import features from '../libs/features';
+
import * as api from '../libs/api';
+import features from '../libs/features';
import {getOwnerAndRepo, getRepoURL, getRepoGQL} from '../libs/utils';
const hasAnyProjects = cache.function(async (): Promise<boolean> => {
diff --git a/source/features/clean-rich-text-editor.tsx b/source/features/clean-rich-text-editor.tsx
index f69a8d86..68afbc72 100644
--- a/source/features/clean-rich-text-editor.tsx
+++ b/source/features/clean-rich-text-editor.tsx
@@ -1,6 +1,7 @@
import './clean-rich-text-editor.css';
import select from 'select-dom';
import * as pageDetect from 'github-url-detection';
+
import features from '../libs/features';
function hideButtons(): void {
diff --git a/source/features/clean-sidebar.tsx b/source/features/clean-sidebar.tsx
index 0bf031ae..5fd62bf6 100644
--- a/source/features/clean-sidebar.tsx
+++ b/source/features/clean-sidebar.tsx
@@ -3,6 +3,7 @@ import React from 'dom-chef';
import select from 'select-dom';
import oneTime from 'onetime';
import * as pageDetect from 'github-url-detection';
+
import features from '../libs/features';
import onReplacedElement from '../libs/on-replaced-element';
diff --git a/source/features/clear-pr-merge-commit-message.tsx b/source/features/clear-pr-merge-commit-message.tsx
index 529c0c89..8e62af65 100644
--- a/source/features/clear-pr-merge-commit-message.tsx
+++ b/source/features/clear-pr-merge-commit-message.tsx
@@ -1,5 +1,6 @@
import select from 'select-dom';
import * as pageDetect from 'github-url-detection';
+
import features from '../libs/features';
import onPrMergePanelOpen from '../libs/on-pr-merge-panel-open';
diff --git a/source/features/clone-branch.tsx b/source/features/clone-branch.tsx
index 52d92335..665464b7 100644
--- a/source/features/clone-branch.tsx
+++ b/source/features/clone-branch.tsx
@@ -1,9 +1,10 @@
import React from 'dom-chef';
import select from 'select-dom';
-import gitBranch from 'octicon/git-branch.svg';
import delegate from 'delegate-it';
+import gitBranch from 'octicon/git-branch.svg';
import * as textFieldEdit from 'text-field-edit';
import * as pageDetect from 'github-url-detection';
+
import * as api from '../libs/api';
import features from '../libs/features';
import LoadingIcon from '../libs/icon-loading';
diff --git a/source/features/close-out-of-view-modals.tsx b/source/features/close-out-of-view-modals.tsx
index d780d3e5..97133391 100644
--- a/source/features/close-out-of-view-modals.tsx
+++ b/source/features/close-out-of-view-modals.tsx
@@ -1,4 +1,5 @@
import delegate from 'delegate-it';
+
import features from '../libs/features';
import {logError} from '../libs/utils';
diff --git a/source/features/collapsible-content-button.tsx b/source/features/collapsible-content-button.tsx
index ad7f176c..f56c5171 100644
--- a/source/features/collapsible-content-button.tsx
+++ b/source/features/collapsible-content-button.tsx
@@ -2,8 +2,9 @@ import React from 'dom-chef';
import select from 'select-dom';
import delegate from 'delegate-it';
import FoldDownIcon from 'octicon/fold-down.svg';
-import * as pageDetect from 'github-url-detection';
import * as textFieldEdit from 'text-field-edit';
+import * as pageDetect from 'github-url-detection';
+
import features from '../libs/features';
// Wraps string in at least 2 \n on each side,
diff --git a/source/features/comment-fields-keyboard-shortcuts.tsx b/source/features/comment-fields-keyboard-shortcuts.tsx
index 6e5580b5..5ff1f112 100644
--- a/source/features/comment-fields-keyboard-shortcuts.tsx
+++ b/source/features/comment-fields-keyboard-shortcuts.tsx
@@ -1,7 +1,9 @@
import select from 'select-dom';
import delegate from 'delegate-it';
+
import features from '../libs/features';
+// eslint-disable-next-line import/prefer-default-export
export function listenToCommentFields(callback: delegate.EventHandler<KeyboardEvent, HTMLTextAreaElement>): void {
delegate<HTMLTextAreaElement, KeyboardEvent>(document, '.js-comment-field, #commit-description-textarea', 'keydown', event => {
const field = event.delegateTarget;
diff --git a/source/features/comments-time-machine-links.tsx b/source/features/comments-time-machine-links.tsx
index 0a5a3c7b..76d5dfd3 100644
--- a/source/features/comments-time-machine-links.tsx
+++ b/source/features/comments-time-machine-links.tsx
@@ -2,6 +2,7 @@ import React from 'dom-chef';
import select from 'select-dom';
import ClockIcon from 'octicon/clock.svg';
import * as pageDetect from 'github-url-detection';
+
import features from '../libs/features';
import {getRepoURL} from '../libs/utils';
import {appendBefore} from '../libs/dom-utils';
diff --git a/source/features/conflict-marker.tsx b/source/features/conflict-marker.tsx
index 5d17d6ab..0ef95cfc 100644
--- a/source/features/conflict-marker.tsx
+++ b/source/features/conflict-marker.tsx
@@ -3,6 +3,7 @@ import React from 'dom-chef';
import select from 'select-dom';
import AlertIcon from 'octicon/alert.svg';
import * as pageDetect from 'github-url-detection';
+
import * as api from '../libs/api';
import features from '../libs/features';
diff --git a/source/features/copy-file.tsx b/source/features/copy-file.tsx
index e65bc92a..735cf966 100644
--- a/source/features/copy-file.tsx
+++ b/source/features/copy-file.tsx
@@ -3,6 +3,7 @@ import select from 'select-dom';
import delegate from 'delegate-it';
import * as pageDetect from 'github-url-detection';
import copyToClipboard from 'copy-text-to-clipboard';
+
import features from '../libs/features';
function handleClick({delegateTarget: button}: delegate.Event<MouseEvent, HTMLButtonElement>): void {
diff --git a/source/features/copy-on-y.tsx b/source/features/copy-on-y.tsx
index 080d46b5..aab7f00c 100644
--- a/source/features/copy-on-y.tsx
+++ b/source/features/copy-on-y.tsx
@@ -1,6 +1,7 @@
import select from 'select-dom';
import * as pageDetect from 'github-url-detection';
import copyToClipboard from 'copy-text-to-clipboard';
+
import features from '../libs/features';
const handler = ({key, target}: KeyboardEvent): void => {
diff --git a/source/features/create-release-shortcut.tsx b/source/features/create-release-shortcut.tsx
index f49babf1..c8b40a2f 100644
--- a/source/features/create-release-shortcut.tsx
+++ b/source/features/create-release-shortcut.tsx
@@ -1,5 +1,6 @@
import select from 'select-dom';
import * as pageDetect from 'github-url-detection';
+
import features from '../libs/features';
function init(): void {
diff --git a/source/features/cross-deleted-pr-branches.tsx b/source/features/cross-deleted-pr-branches.tsx
index 8a7cca50..9cc36c2e 100644
--- a/source/features/cross-deleted-pr-branches.tsx
+++ b/source/features/cross-deleted-pr-branches.tsx
@@ -2,8 +2,9 @@ import './cross-deleted-pr-branches.css';
import React from 'dom-chef';
import select from 'select-dom';
import * as pageDetect from 'github-url-detection';
-import features from '../libs/features';
+
import {wrap} from '../libs/dom-utils';
+import features from '../libs/features';
function init(): void {
const lastBranchAction = select.last('.TimelineItem-body .user-select-contain > span:not(.base-ref)');
diff --git a/source/features/cycle-lists-with-keyboard-shortcuts.tsx b/source/features/cycle-lists-with-keyboard-shortcuts.tsx
index 36746d87..80f30409 100644
--- a/source/features/cycle-lists-with-keyboard-shortcuts.tsx
+++ b/source/features/cycle-lists-with-keyboard-shortcuts.tsx
@@ -1,6 +1,7 @@
import select from 'select-dom';
import delegate from 'delegate-it';
import * as pageDetect from 'github-url-detection';
+
import features from '../libs/features';
function init(): void {
diff --git a/source/features/deep-reblame.tsx b/source/features/deep-reblame.tsx
index 2276b5a8..24651461 100644
--- a/source/features/deep-reblame.tsx
+++ b/source/features/deep-reblame.tsx
@@ -2,9 +2,10 @@ import './deep-reblame.css';
import mem from 'mem';
import React from 'dom-chef';
import select from 'select-dom';
-import VersionIcon from 'octicon/versions.svg';
import delegate from 'delegate-it';
+import VersionIcon from 'octicon/versions.svg';
import * as pageDetect from 'github-url-detection';
+
import * as api from '../libs/api';
import features from '../libs/features';
import LoadingIcon from '../libs/icon-loading';
diff --git a/source/features/default-branch-button.tsx b/source/features/default-branch-button.tsx
index bc69c079..bde2713b 100644
--- a/source/features/default-branch-button.tsx
+++ b/source/features/default-branch-button.tsx
@@ -2,6 +2,7 @@ import React from 'dom-chef';
import elementReady from 'element-ready';
import * as pageDetect from 'github-url-detection';
import ChevronLeftIcon from 'octicon/chevron-left.svg';
+
import features from '../libs/features';
import {groupButtons} from '../libs/group-buttons';
import getDefaultBranch from '../libs/get-default-branch';
diff --git a/source/features/deprioritize-marketplace-link.tsx b/source/features/deprioritize-marketplace-link.tsx
index 9457a870..9a472d5f 100644
--- a/source/features/deprioritize-marketplace-link.tsx
+++ b/source/features/deprioritize-marketplace-link.tsx
@@ -1,8 +1,9 @@
import React from 'dom-chef';
import select from 'select-dom';
-import elementReady from 'element-ready';
import domLoaded from 'dom-loaded';
+import elementReady from 'element-ready';
import * as pageDetect from 'github-url-detection';
+
import features from '../libs/features';
async function init(): Promise<void> {
diff --git a/source/features/dim-bots.tsx b/source/features/dim-bots.tsx
index 441b476b..e8e098a7 100644
--- a/source/features/dim-bots.tsx
+++ b/source/features/dim-bots.tsx
@@ -1,6 +1,7 @@
import './dim-bots.css';
import select from 'select-dom';
import * as pageDetect from 'github-url-detection';
+
import features from '../libs/features';
function init(): void {
diff --git a/source/features/discussion-links-on-repo-lists.tsx b/source/features/discussion-links-on-repo-lists.tsx
index 7dd47cee..deabb086 100644
--- a/source/features/discussion-links-on-repo-lists.tsx
+++ b/source/features/discussion-links-on-repo-lists.tsx
@@ -3,6 +3,7 @@ import select from 'select-dom';
import IssueIcon from 'octicon/issue-opened.svg';
import * as pageDetect from 'github-url-detection';
import PullRequestIcon from 'octicon/git-pull-request.svg';
+
import features from '../libs/features';
import observeElement from '../libs/simplified-element-observer';
diff --git a/source/features/download-folder-button.tsx b/source/features/download-folder-button.tsx
index a691dd2b..ce3269b6 100644
--- a/source/features/download-folder-button.tsx
+++ b/source/features/download-folder-button.tsx
@@ -1,6 +1,7 @@
import React from 'dom-chef';
import select from 'select-dom';
import * as pageDetect from 'github-url-detection';
+
import features from '../libs/features';
function init(): void {
diff --git a/source/features/edit-comments-faster.tsx b/source/features/edit-comments-faster.tsx
index 04615b0b..5298a551 100644
--- a/source/features/edit-comments-faster.tsx
+++ b/source/features/edit-comments-faster.tsx
@@ -2,6 +2,7 @@ import React from 'dom-chef';
import select from 'select-dom';
import PencilIcon from 'octicon/pencil.svg';
import * as pageDetect from 'github-url-detection';
+
import features from '../libs/features';
function init(): void {
diff --git a/source/features/edit-files-faster.tsx b/source/features/edit-files-faster.tsx
index 036bec52..c20bd10b 100644
--- a/source/features/edit-files-faster.tsx
+++ b/source/features/edit-files-faster.tsx
@@ -3,8 +3,9 @@ import React from 'dom-chef';
import select from 'select-dom';
import PencilIcon from 'octicon/pencil.svg';
import * as pageDetect from 'github-url-detection';
-import features from '../libs/features';
+
import {wrap} from '../libs/dom-utils';
+import features from '../libs/features';
import getDefaultBranch from '../libs/get-default-branch';
import onFileListUpdate from '../libs/on-file-list-update';
diff --git a/source/features/edit-readme.tsx b/source/features/edit-readme.tsx
index b36b4770..c35eb0a3 100644
--- a/source/features/edit-readme.tsx
+++ b/source/features/edit-readme.tsx
@@ -2,6 +2,7 @@ import React from 'dom-chef';
import select from 'select-dom';
import PencilIcon from 'octicon/pencil.svg';
import * as pageDetect from 'github-url-detection';
+
import features from '../libs/features';
import getDefaultBranch from '../libs/get-default-branch';
diff --git a/source/features/embed-gist-inline.tsx b/source/features/embed-gist-inline.tsx
index 8399e10e..7b31fa02 100644
--- a/source/features/embed-gist-inline.tsx
+++ b/source/features/embed-gist-inline.tsx
@@ -2,6 +2,7 @@ import React from 'dom-chef';
import domify from 'doma';
import select from 'select-dom';
import * as pageDetect from 'github-url-detection';
+
import features from '../libs/features';
import {isFirefox} from '../libs/utils';
diff --git a/source/features/embed-gist-via-iframe.tsx b/source/features/embed-gist-via-iframe.tsx
index 997fa637..7385a86c 100644
--- a/source/features/embed-gist-via-iframe.tsx
+++ b/source/features/embed-gist-via-iframe.tsx
@@ -1,5 +1,6 @@
import select from 'select-dom';
import * as pageDetect from 'github-url-detection';
+
import features from '../libs/features';
function init(): void {
diff --git a/source/features/expand-all-collapsed-code.tsx b/source/features/expand-all-collapsed-code.tsx
index bdcdd8af..ca67d6ed 100644
--- a/source/features/expand-all-collapsed-code.tsx
+++ b/source/features/expand-all-collapsed-code.tsx
@@ -1,6 +1,7 @@
import select from 'select-dom';
import delegate from 'delegate-it';
import * as pageDetect from 'github-url-detection';
+
import features from '../libs/features';
const expanderSelector = '.js-expand.directional-expander';
diff --git a/source/features/expand-all-hidden-comments.tsx b/source/features/expand-all-hidden-comments.tsx
index 3d3291a3..03e604a2 100644
--- a/source/features/expand-all-hidden-comments.tsx
+++ b/source/features/expand-all-hidden-comments.tsx
@@ -1,5 +1,6 @@
import delegate from 'delegate-it';
import * as pageDetect from 'github-url-detection';
+
import features from '../libs/features';
import {looseParseInt} from '../libs/utils';
diff --git a/source/features/extend-diff-expander.tsx b/source/features/extend-diff-expander.tsx
index b2a1b881..4f57d3d3 100644
--- a/source/features/extend-diff-expander.tsx
+++ b/source/features/extend-diff-expander.tsx
@@ -2,6 +2,7 @@ import './extend-diff-expander.css';
import select from 'select-dom';
import delegate from 'delegate-it';
import * as pageDetect from 'github-url-detection';
+
import features from '../libs/features';
function expandDiff(event: delegate.Event): void {
diff --git a/source/features/extend-discussion-status-filters.tsx b/source/features/extend-discussion-status-filters.tsx
index 7b4f0f9a..178ea6e6 100644
--- a/source/features/extend-discussion-status-filters.tsx
+++ b/source/features/extend-discussion-status-filters.tsx
@@ -1,8 +1,9 @@
import React from 'dom-chef';
import select from 'select-dom';
-import CheckIcon from 'octicon/check.svg';
import elementReady from 'element-ready';
+import CheckIcon from 'octicon/check.svg';
import * as pageDetect from 'github-url-detection';
+
import features from '../libs/features';
import SearchQuery from '../libs/search-query';
diff --git a/source/features/faster-pr-diff-options.tsx b/source/features/faster-pr-diff-options.tsx
index a3c897af..383e4370 100644
--- a/source/features/faster-pr-diff-options.tsx
+++ b/source/features/faster-pr-diff-options.tsx
@@ -4,6 +4,7 @@ import DiffIcon from 'octicon/diff.svg';
import BookIcon from 'octicon/book.svg';
import CheckIcon from 'octicon/check.svg';
import * as pageDetect from 'github-url-detection';
+
import features from '../libs/features';
function createDiffStyleToggle(): DocumentFragment {
diff --git a/source/features/file-finder-buffer.tsx b/source/features/file-finder-buffer.tsx
index af7d5eee..19510693 100644
--- a/source/features/file-finder-buffer.tsx
+++ b/source/features/file-finder-buffer.tsx
@@ -2,6 +2,7 @@ import React from 'dom-chef';
import select from 'select-dom';
import onetime from 'onetime';
import * as pageDetect from 'github-url-detection';
+
import features from '../libs/features';
const getBufferField = onetime((): HTMLInputElement => (
diff --git a/source/features/filter-comments-by-you.tsx b/source/features/filter-comments-by-you.tsx
index 1047bf13..6017434d 100644
--- a/source/features/filter-comments-by-you.tsx
+++ b/source/features/filter-comments-by-you.tsx
@@ -1,5 +1,6 @@
import select from 'select-dom';
import * as pageDetect from 'github-url-detection';
+
import features from '../libs/features';
import {getUsername} from '../libs/utils';
import SearchQuery from '../libs/search-query';
diff --git a/source/features/fit-textareas.tsx b/source/features/fit-textareas.tsx
index 1a1d2891..e6f59a6c 100644
--- a/source/features/fit-textareas.tsx
+++ b/source/features/fit-textareas.tsx
@@ -1,8 +1,9 @@
import './fit-textareas.css';
import select from 'select-dom';
-import fitTextarea from 'fit-textarea';
import delegate from 'delegate-it';
+import fitTextarea from 'fit-textarea';
import * as pageDetect from 'github-url-detection';
+
import features from '../libs/features';
import onPrMergePanelOpen from '../libs/on-pr-merge-panel-open';
diff --git a/source/features/fix-view-file-link-in-pr.tsx b/source/features/fix-view-file-link-in-pr.tsx
index ef962a9a..6d7a722f 100644
--- a/source/features/fix-view-file-link-in-pr.tsx
+++ b/source/features/fix-view-file-link-in-pr.tsx
@@ -1,6 +1,7 @@
import select from 'select-dom';
import delegate from 'delegate-it';
import * as pageDetect from 'github-url-detection';
+
import features from '../libs/features';
function handleMenuOpening(event: delegate.Event): void {
diff --git a/source/features/focus-confirmation-buttons.tsx b/source/features/focus-confirmation-buttons.tsx
index 08eed993..167041a9 100644
--- a/source/features/focus-confirmation-buttons.tsx
+++ b/source/features/focus-confirmation-buttons.tsx
@@ -1,4 +1,5 @@
import select from 'select-dom';
+
import features from '../libs/features';
function init(): void {
diff --git a/source/features/follow-file-renames.tsx b/source/features/follow-file-renames.tsx
index f035aa90..8445d1f3 100644
--- a/source/features/follow-file-renames.tsx
+++ b/source/features/follow-file-renames.tsx
@@ -1,8 +1,9 @@
import React from 'dom-chef';
import select from 'select-dom';
import * as pageDetect from 'github-url-detection';
-import features from '../libs/features';
+
import * as api from '../libs/api';
+import features from '../libs/features';
import {getCleanPathname} from '../libs/utils';
interface File {
diff --git a/source/features/format-discussion-titles.tsx b/source/features/format-discussion-titles.tsx
index 8a896cfb..cfe73ff5 100644
--- a/source/features/format-discussion-titles.tsx
+++ b/source/features/format-discussion-titles.tsx
@@ -1,5 +1,6 @@
import select from 'select-dom';
import * as pageDetect from 'github-url-detection';
+
import features from '../libs/features';
import observeElement from '../libs/simplified-element-observer';
import * as domFormatters from '../libs/dom-formatters';
diff --git a/source/features/global-discussion-list-filters.tsx b/source/features/global-discussion-list-filters.tsx
index 0cd5d7fa..27865a3c 100644
--- a/source/features/global-discussion-list-filters.tsx
+++ b/source/features/global-discussion-list-filters.tsx
@@ -2,6 +2,7 @@ import './global-discussion-list-filters.css';
import React from 'dom-chef';
import select from 'select-dom';
import * as pageDetect from 'github-url-detection';
+
import features from '../libs/features';
import {getUsername} from '../libs/utils';
import SearchQuery from '../libs/search-query';
diff --git a/source/features/go-to-action-from-file.tsx b/source/features/go-to-action-from-file.tsx
index 87a881df..720b4b05 100644
--- a/source/features/go-to-action-from-file.tsx
+++ b/source/features/go-to-action-from-file.tsx
@@ -1,6 +1,7 @@
import React from 'dom-chef';
import select from 'select-dom';
import * as pageDetect from 'github-url-detection';
+
import features from '../libs/features';
import {getRepoURL, getRepoPath} from '../libs/utils';
diff --git a/source/features/hidden-review-comments-indicator.tsx b/source/features/hidden-review-comments-indicator.tsx
index ace269f9..86b16e08 100644
--- a/source/features/hidden-review-comments-indicator.tsx
+++ b/source/features/hidden-review-comments-indicator.tsx
@@ -2,9 +2,10 @@ import './hidden-review-comments-indicator.css';
import mem from 'mem';
import React from 'dom-chef';
import select from 'select-dom';
-import CommentIcon from 'octicon/comment.svg';
import delegate from 'delegate-it';
+import CommentIcon from 'octicon/comment.svg';
import * as pageDetect from 'github-url-detection';
+
import features from '../libs/features';
import anchorScroll from '../libs/anchor-scroll';
import onPrFileLoad from '../libs/on-pr-file-load';
diff --git a/source/features/hide-comments-faster.tsx b/source/features/hide-comments-faster.tsx
index f065453f..8af0b310 100644
--- a/source/features/hide-comments-faster.tsx
+++ b/source/features/hide-comments-faster.tsx
@@ -2,6 +2,7 @@ import React from 'dom-chef';
import select from 'select-dom';
import delegate from 'delegate-it';
import * as pageDetect from 'github-url-detection';
+
import features from '../libs/features';
function generateSubmenu(hideButton: Element): void {
diff --git a/source/features/hide-disabled-milestone-sorter.tsx b/source/features/hide-disabled-milestone-sorter.tsx
index 95bb0b0e..4902b19a 100644
--- a/source/features/hide-disabled-milestone-sorter.tsx
+++ b/source/features/hide-disabled-milestone-sorter.tsx
@@ -1,5 +1,6 @@
import select from 'select-dom';
import * as pageDetect from 'github-url-detection';
+
import features from '../libs/features';
import observeElement from '../libs/simplified-element-observer';
diff --git a/source/features/hide-empty-meta.tsx b/source/features/hide-empty-meta.tsx
index 3b31dfcc..2966d79f 100644
--- a/source/features/hide-empty-meta.tsx
+++ b/source/features/hide-empty-meta.tsx
@@ -1,5 +1,6 @@
import select from 'select-dom';
import * as pageDetect from 'github-url-detection';
+
import features from '../libs/features';
function init(): void {
diff --git a/source/features/hide-inactive-deployments.tsx b/source/features/hide-inactive-deployments.tsx
index 17eb6879..01442554 100644
--- a/source/features/hide-inactive-deployments.tsx
+++ b/source/features/hide-inactive-deployments.tsx
@@ -1,5 +1,6 @@
import select from 'select-dom';
import * as pageDetect from 'github-url-detection';
+
import features from '../libs/features';
import onNewComments from '../libs/on-new-comments';
diff --git a/source/features/hide-issue-list-autocomplete.tsx b/source/features/hide-issue-list-autocomplete.tsx
index 594304c2..3923a614 100644
--- a/source/features/hide-issue-list-autocomplete.tsx
+++ b/source/features/hide-issue-list-autocomplete.tsx
@@ -1,5 +1,6 @@
import select from 'select-dom';
import * as pageDetect from 'github-url-detection';
+
import features from '../libs/features';
function init(): void {
diff --git a/source/features/hide-own-stars.tsx b/source/features/hide-own-stars.tsx
index f3b5a7bb..d27a89a0 100644
--- a/source/features/hide-own-stars.tsx
+++ b/source/features/hide-own-stars.tsx
@@ -1,5 +1,6 @@
import select from 'select-dom';
import * as pageDetect from 'github-url-detection';
+
import features from '../libs/features';
import {getUsername} from '../libs/utils';
diff --git a/source/features/hide-useless-comments.tsx b/source/features/hide-useless-comments.tsx
index 07556acc..b96ec492 100644
--- a/source/features/hide-useless-comments.tsx
+++ b/source/features/hide-useless-comments.tsx
@@ -3,6 +3,7 @@ import React from 'dom-chef';
import select from 'select-dom';
import delegate from 'delegate-it';
import * as pageDetect from 'github-url-detection';
+
import features from '../libs/features';
function init(): void {
diff --git a/source/features/hide-useless-newsfeed-events.tsx b/source/features/hide-useless-newsfeed-events.tsx
index 13b750f6..cf000c78 100644
--- a/source/features/hide-useless-newsfeed-events.tsx
+++ b/source/features/hide-useless-newsfeed-events.tsx
@@ -1,5 +1,6 @@
import './hide-useless-newsfeed-events.css';
import * as pageDetect from 'github-url-detection';
+
import features from '../libs/features';
function init(): void {
diff --git a/source/features/hide-watch-and-fork-count.tsx b/source/features/hide-watch-and-fork-count.tsx
index 38874c03..0fe3a77b 100644
--- a/source/features/hide-watch-and-fork-count.tsx
+++ b/source/features/hide-watch-and-fork-count.tsx
@@ -1,5 +1,6 @@
import './hide-watch-and-fork-count.css';
import * as pageDetect from 'github-url-detection';
+
import features from '../libs/features';
function init(): void {
diff --git a/source/features/hide-zero-packages.tsx b/source/features/hide-zero-packages.tsx
index 750c111f..98911c94 100644
--- a/source/features/hide-zero-packages.tsx
+++ b/source/features/hide-zero-packages.tsx
@@ -1,5 +1,6 @@
import elementReady from 'element-ready';
import * as pageDetect from 'github-url-detection';
+
import features from '../libs/features';
async function init(): Promise<void> {
diff --git a/source/features/highest-rated-comment.tsx b/source/features/highest-rated-comment.tsx
index bec1b2c2..fb5531dd 100644
--- a/source/features/highest-rated-comment.tsx
+++ b/source/features/highest-rated-comment.tsx
@@ -3,6 +3,7 @@ import React from 'dom-chef';
import select from 'select-dom';
import ArrowDownIcon from 'octicon/arrow-down.svg';
import * as pageDetect from 'github-url-detection';
+
import features from '../libs/features';
import {looseParseInt} from '../libs/utils';
diff --git a/source/features/highlight-collaborators-and-own-discussions.tsx b/source/features/highlight-collaborators-and-own-discussions.tsx
index 998480f9..39647fda 100644
--- a/source/features/highlight-collaborators-and-own-discussions.tsx
+++ b/source/features/highlight-collaborators-and-own-discussions.tsx
@@ -1,9 +1,10 @@
import './highlight-collaborators-and-own-discussions.css';
import select from 'select-dom';
import * as pageDetect from 'github-url-detection';
+
import features from '../libs/features';
-import {getRepoURL, getUsername} from '../libs/utils';
import fetchDom from '../libs/fetch-dom';
+import {getRepoURL, getUsername} from '../libs/utils';
async function highlightCollaborators(): Promise<false | void> {
const authors = select.all('.js-issue-row [data-hovercard-type="user"]');
diff --git a/source/features/html-preview-link.tsx b/source/features/html-preview-link.tsx
index 7160627a..f7b1ec21 100644
--- a/source/features/html-preview-link.tsx
+++ b/source/features/html-preview-link.tsx
@@ -1,6 +1,7 @@
import React from 'dom-chef';
import select from 'select-dom';
import * as pageDetect from 'github-url-detection';
+
import features from '../libs/features';
const isSingleHTMLFile = (): boolean => pageDetect.isSingleFile() && (location.pathname.endsWith('.html') || location.pathname.endsWith('.htm'));
diff --git a/source/features/improve-shortcut-help.tsx b/source/features/improve-shortcut-help.tsx
index b0abdbd5..47c70d7d 100644
--- a/source/features/improve-shortcut-help.tsx
+++ b/source/features/improve-shortcut-help.tsx
@@ -1,6 +1,7 @@
import './improve-shortcut-help.css';
import React from 'dom-chef';
import select from 'select-dom';
+
import features from '../libs/features';
function splitKeys(keys: string): DocumentFragment[] {
diff --git a/source/features/indented-code-wrapping.tsx b/source/features/indented-code-wrapping.tsx
index f399623e..e7f66003 100644
--- a/source/features/indented-code-wrapping.tsx
+++ b/source/features/indented-code-wrapping.tsx
@@ -1,6 +1,7 @@
import './indented-code-wrapping.css';
import select from 'select-dom';
import * as pageDetect from 'github-url-detection';
+
import features from '../libs/features';
import onPrFileLoad from '../libs/on-pr-file-load';
import onNewComments from '../libs/on-new-comments';
@@ -15,7 +16,7 @@ function init(): void {
for (const table of tables) {
table.classList.add('rgh-softwrapped-code');
- const tabSize = parseInt(table.style.getPropertyValue('--tab-size') || document.documentElement.style.getPropertyValue('tab-size'), 10);
+ const tabSize = Number.parseInt(table.style.getPropertyValue('--tab-size') || document.documentElement.style.getPropertyValue('tab-size'), 10);
for (const line of select.all('.blob-code-inner:not(.blob-code-hunk)', table)) {
if (line.textContent!.length < 20) {
diff --git a/source/features/infinite-scroll.tsx b/source/features/infinite-scroll.tsx
index 7b58d774..e46b74b1 100644
--- a/source/features/infinite-scroll.tsx
+++ b/source/features/infinite-scroll.tsx
@@ -1,6 +1,7 @@
import select from 'select-dom';
import debounce from 'debounce-fn';
import * as pageDetect from 'github-url-detection';
+
import features from '../libs/features';
let button: HTMLButtonElement | undefined;
diff --git a/source/features/latest-tag-button.tsx b/source/features/latest-tag-button.tsx
index 281e8d8c..f196a470 100644
--- a/source/features/latest-tag-button.tsx
+++ b/source/features/latest-tag-button.tsx
@@ -5,6 +5,7 @@ import select from 'select-dom';
import TagIcon from 'octicon/tag.svg';
import elementReady from 'element-ready';
import * as pageDetect from 'github-url-detection';
+
import * as api from '../libs/api';
import features from '../libs/features';
import fetchDom from '../libs/fetch-dom';
diff --git a/source/features/link-to-file-in-file-history.tsx b/source/features/link-to-file-in-file-history.tsx
index f7fe9120..7fba88ec 100644
--- a/source/features/link-to-file-in-file-history.tsx
+++ b/source/features/link-to-file-in-file-history.tsx
@@ -2,6 +2,7 @@ import React from 'dom-chef';
import select from 'select-dom';
import FileIcon from 'octicon/file.svg';
import * as pageDetect from 'github-url-detection';
+
import features from '../libs/features';
import {groupSiblings} from '../libs/group-buttons';
diff --git a/source/features/link-to-prior-blame-line.tsx b/source/features/link-to-prior-blame-line.tsx
index b15ab005..a3df62fd 100644
--- a/source/features/link-to-prior-blame-line.tsx
+++ b/source/features/link-to-prior-blame-line.tsx
@@ -1,5 +1,6 @@
import select from 'select-dom';
import * as pageDetect from 'github-url-detection';
+
import features from '../libs/features';
function init(): void {
diff --git a/source/features/linkify-branch-references.tsx b/source/features/linkify-branch-references.tsx
index 2bbdf1c0..626effad 100644
--- a/source/features/linkify-branch-references.tsx
+++ b/source/features/linkify-branch-references.tsx
@@ -1,9 +1,10 @@
import React from 'dom-chef';
import elementReady from 'element-ready';
import * as pageDetect from 'github-url-detection';
+
+import {wrap} from '../libs/dom-utils';
import features from '../libs/features';
import {getRepoURL} from '../libs/utils';
-import {wrap} from '../libs/dom-utils';
async function init(): Promise<void> {
const element = await elementReady('.branch-name');
diff --git a/source/features/linkify-code.tsx b/source/features/linkify-code.tsx
index e65cb15d..792cefa7 100644
--- a/source/features/linkify-code.tsx
+++ b/source/features/linkify-code.tsx
@@ -1,5 +1,6 @@
import select from 'select-dom';
import * as pageDetect from 'github-url-detection';
+
import features from '../libs/features';
import {linkifiedURLClass, linkifyURLs, linkifyIssues} from '../libs/dom-formatters';
diff --git a/source/features/linkify-commit-sha.tsx b/source/features/linkify-commit-sha.tsx
index f4d73cd7..2f707b05 100644
--- a/source/features/linkify-commit-sha.tsx
+++ b/source/features/linkify-commit-sha.tsx
@@ -1,6 +1,7 @@
import React from 'dom-chef';
import select from 'select-dom';
import * as pageDetect from 'github-url-detection';
+
import {wrap} from '../libs/dom-utils';
import features from '../libs/features';
diff --git a/source/features/linkify-labels-on-dashboard.tsx b/source/features/linkify-labels-on-dashboard.tsx
index b8914aa8..8a34c186 100644
--- a/source/features/linkify-labels-on-dashboard.tsx
+++ b/source/features/linkify-labels-on-dashboard.tsx
@@ -1,8 +1,9 @@
import React from 'dom-chef';
import select from 'select-dom';
import * as pageDetect from 'github-url-detection';
-import features from '../libs/features';
+
import {wrap} from '../libs/dom-utils';
+import features from '../libs/features';
async function init(): Promise<void> {
for (const label of select.all('.js-recent-activity-container :not(a) > .IssueLabel')) {
diff --git a/source/features/linkify-notification-repository-header.tsx b/source/features/linkify-notification-repository-header.tsx
index 21c4885b..c546d30e 100644
--- a/source/features/linkify-notification-repository-header.tsx
+++ b/source/features/linkify-notification-repository-header.tsx
@@ -1,6 +1,7 @@
import React from 'dom-chef';
import select from 'select-dom';
import * as pageDetect from 'github-url-detection';
+
import features from '../libs/features';
function init(): void {
diff --git a/source/features/linkify-symbolic-links.tsx b/source/features/linkify-symbolic-links.tsx
index 6bf38163..f6e42a03 100644
--- a/source/features/linkify-symbolic-links.tsx
+++ b/source/features/linkify-symbolic-links.tsx
@@ -1,6 +1,7 @@
import React from 'dom-chef';
import select from 'select-dom';
import * as pageDetect from 'github-url-detection';
+
import {wrap} from '../libs/dom-utils';
import features from '../libs/features';
diff --git a/source/features/linkify-user-location.tsx b/source/features/linkify-user-location.tsx
index 87a7317f..6d07eeb1 100644
--- a/source/features/linkify-user-location.tsx
+++ b/source/features/linkify-user-location.tsx
@@ -1,7 +1,8 @@
import React from 'dom-chef';
import select from 'select-dom';
-import {wrap, isEditable} from '../libs/dom-utils';
+
import features from '../libs/features';
+import {wrap, isEditable} from '../libs/dom-utils';
function addLocation(baseElement: HTMLElement): void {
for (const {nextElementSibling, nextSibling} of select.all('.octicon-location', baseElement)) {
diff --git a/source/features/list-prs-for-file.tsx b/source/features/list-prs-for-file.tsx
index 085a75b8..da6257f3 100644
--- a/source/features/list-prs-for-file.tsx
+++ b/source/features/list-prs-for-file.tsx
@@ -1,12 +1,13 @@
import React from 'dom-chef';
-import select from 'select-dom';
import cache from 'webext-storage-cache';
+import select from 'select-dom';
import * as pageDetect from 'github-url-detection';
import PullRequestIcon from 'octicon/git-pull-request.svg';
+
import * as api from '../libs/api';
import features from '../libs/features';
-import {getRepoURL, getRepoGQL} from '../libs/utils';
import getDefaultBranch from '../libs/get-default-branch';
+import {getRepoURL, getRepoGQL} from '../libs/utils';
function getPRUrl(prNumber: number): string {
return `/${getRepoURL()}/pull/${prNumber}/files`;
diff --git a/source/features/mark-merge-commits-in-list.tsx b/source/features/mark-merge-commits-in-list.tsx
index 896b3510..6278ea98 100644
--- a/source/features/mark-merge-commits-in-list.tsx
+++ b/source/features/mark-merge-commits-in-list.tsx
@@ -3,6 +3,7 @@ import React from 'dom-chef';
import select from 'select-dom';
import * as pageDetect from 'github-url-detection';
import PullRequestIcon from 'octicon/git-pull-request.svg';
+
import * as api from '../libs/api';
import features from '../libs/features';
import {getRepoGQL} from '../libs/utils';
diff --git a/source/features/mark-private-orgs.tsx b/source/features/mark-private-orgs.tsx
index 37c01c98..0991e444 100644
--- a/source/features/mark-private-orgs.tsx
+++ b/source/features/mark-private-orgs.tsx
@@ -4,9 +4,10 @@ import cache from 'webext-storage-cache';
import select from 'select-dom';
import EyeClosedIcon from 'octicon/eye-closed.svg';
import * as pageDetect from 'github-url-detection';
-import {getUsername} from '../libs/utils';
-import features from '../libs/features';
+
import * as api from '../libs/api';
+import features from '../libs/features';
+import {getUsername} from '../libs/utils';
const getPublicOrganizationsNames = cache.function(async (username: string): Promise<string[]> => {
// API v4 seems to *require* `org:read` permission AND it includes private organizations as well, which defeats the purpose. There's no way to filter them.
diff --git a/source/features/minimize-upload-bar.tsx b/source/features/minimize-upload-bar.tsx
index 1a7b777b..6cdc003a 100644
--- a/source/features/minimize-upload-bar.tsx
+++ b/source/features/minimize-upload-bar.tsx
@@ -1,9 +1,10 @@
import './minimize-upload-bar.css';
import React from 'dom-chef';
import select from 'select-dom';
-import CloudUploadIcon from 'octicon/cloud-upload.svg';
import delegate from 'delegate-it';
import * as pageDetect from 'github-url-detection';
+import CloudUploadIcon from 'octicon/cloud-upload.svg';
+
import features from '../libs/features';
function addButton(): void {
diff --git a/source/features/more-dropdown.tsx b/source/features/more-dropdown.tsx
index 94315cd6..fbeb7116 100644
--- a/source/features/more-dropdown.tsx
+++ b/source/features/more-dropdown.tsx
@@ -10,8 +10,8 @@ import HistoryIcon from 'octicon/history.svg';
import PackageIcon from 'octicon/package.svg';
import features from '../libs/features';
-import {getRepoURL, getReference} from '../libs/utils';
import {appendBefore} from '../libs/dom-utils';
+import {getRepoURL, getReference} from '../libs/utils';
const repoUrl = getRepoURL();
diff --git a/source/features/navigate-pages-with-arrow-keys.tsx b/source/features/navigate-pages-with-arrow-keys.tsx
index 7f0a06f4..9d02397e 100644
--- a/source/features/navigate-pages-with-arrow-keys.tsx
+++ b/source/features/navigate-pages-with-arrow-keys.tsx
@@ -1,4 +1,5 @@
import select from 'select-dom';
+
import features from '../libs/features';
function init(): void {
diff --git a/source/features/one-key-formatting.tsx b/source/features/one-key-formatting.tsx
index 2f789d2d..e5f231e2 100644
--- a/source/features/one-key-formatting.tsx
+++ b/source/features/one-key-formatting.tsx
@@ -1,5 +1,6 @@
import delegate from 'delegate-it';
import * as textFieldEdit from 'text-field-edit';
+
import features from '../libs/features';
import {listenToCommentFields} from './comment-fields-keyboard-shortcuts';
diff --git a/source/features/open-all-notifications.tsx b/source/features/open-all-notifications.tsx
index 26089f50..f27e00a8 100644
--- a/source/features/open-all-notifications.tsx
+++ b/source/features/open-all-notifications.tsx
@@ -1,9 +1,10 @@
import './open-all-notifications.css';
import React from 'dom-chef';
import select from 'select-dom';
-import LinkExternalIcon from 'octicon/link-external.svg';
import delegate from 'delegate-it';
import * as pageDetect from 'github-url-detection';
+import LinkExternalIcon from 'octicon/link-external.svg';
+
import features from '../libs/features';
const confirmationRequiredCount = 10;
diff --git a/source/features/open-ci-details-in-new-tab.tsx b/source/features/open-ci-details-in-new-tab.tsx
index 2cdad6f6..8b96243e 100644
--- a/source/features/open-ci-details-in-new-tab.tsx
+++ b/source/features/open-ci-details-in-new-tab.tsx
@@ -1,5 +1,6 @@
import select from 'select-dom';
import * as pageDetect from 'github-url-detection';
+
import features from '../libs/features';
function init(): void {
diff --git a/source/features/open-issue-to-latest-comment.tsx b/source/features/open-issue-to-latest-comment.tsx
index 65a9eff4..6ef631fb 100644
--- a/source/features/open-issue-to-latest-comment.tsx
+++ b/source/features/open-issue-to-latest-comment.tsx
@@ -1,5 +1,6 @@
import select from 'select-dom';
import * as pageDetect from 'github-url-detection';
+
import features from '../libs/features';
function init(): void {
diff --git a/source/features/parse-backticks.tsx b/source/features/parse-backticks.tsx
index 7cd3deaa..5a56fff0 100644
--- a/source/features/parse-backticks.tsx
+++ b/source/features/parse-backticks.tsx
@@ -1,6 +1,7 @@
import './parse-backticks.css';
import select from 'select-dom';
import * as pageDetect from 'github-url-detection';
+
import features from '../libs/features';
import {parseBackticks} from '../libs/dom-formatters';
diff --git a/source/features/patch-diff-links.tsx b/source/features/patch-diff-links.tsx
index 4771be49..eb4aca1d 100644
--- a/source/features/patch-diff-links.tsx
+++ b/source/features/patch-diff-links.tsx
@@ -2,6 +2,7 @@ import './patch-diff-links.css';
import React from 'dom-chef';
import select from 'select-dom';
import * as pageDetect from 'github-url-detection';
+
import features from '../libs/features';
function init(): void {
diff --git a/source/features/pinned-issues-update-time.tsx b/source/features/pinned-issues-update-time.tsx
index ca756d01..e4074b5f 100644
--- a/source/features/pinned-issues-update-time.tsx
+++ b/source/features/pinned-issues-update-time.tsx
@@ -3,6 +3,7 @@ import cache from 'webext-storage-cache';
import select from 'select-dom';
import ClockIcon from 'octicon/clock.svg';
import * as pageDetect from 'github-url-detection';
+
import * as api from '../libs/api';
import features from '../libs/features';
import {getRepoGQL, getRepoURL, looseParseInt} from '../libs/utils';
diff --git a/source/features/pr-branch-auto-delete.tsx b/source/features/pr-branch-auto-delete.tsx
index fc16c7b3..6fbb2d47 100644
--- a/source/features/pr-branch-auto-delete.tsx
+++ b/source/features/pr-branch-auto-delete.tsx
@@ -1,6 +1,7 @@
import select from 'select-dom';
import delegate from 'delegate-it';
import * as pageDetect from 'github-url-detection';
+
import features from '../libs/features';
import observeElement from '../libs/simplified-element-observer';
diff --git a/source/features/pr-branches.tsx b/source/features/pr-branches.tsx
index 462fe653..3b59733e 100644
--- a/source/features/pr-branches.tsx
+++ b/source/features/pr-branches.tsx
@@ -2,8 +2,9 @@ import React from 'dom-chef';
import select from 'select-dom';
import * as pageDetect from 'github-url-detection';
import PullRequestIcon from 'octicon/git-pull-request.svg';
-import features from '../libs/features';
+
import * as api from '../libs/api';
+import features from '../libs/features';
import getDefaultBranch from '../libs/get-default-branch';
import {getOwnerAndRepo, getRepoGQL} from '../libs/utils';
diff --git a/source/features/pr-commit-lines-changed.tsx b/source/features/pr-commit-lines-changed.tsx
index b399afc6..42d38d93 100644
--- a/source/features/pr-commit-lines-changed.tsx
+++ b/source/features/pr-commit-lines-changed.tsx
@@ -3,6 +3,7 @@ import cache from 'webext-storage-cache';
import select from 'select-dom';
import elementReady from 'element-ready';
import * as pageDetect from 'github-url-detection';
+
import * as api from '../libs/api';
import features from '../libs/features';
import {getRepoGQL, pluralize} from '../libs/utils';
diff --git a/source/features/pr-filters.tsx b/source/features/pr-filters.tsx
index 8def9604..68b15ed8 100644
--- a/source/features/pr-filters.tsx
+++ b/source/features/pr-filters.tsx
@@ -5,8 +5,9 @@ import cache from 'webext-storage-cache';
import CheckIcon from 'octicon/check.svg';
import elementReady from 'element-ready';
import * as pageDetect from 'github-url-detection';
-import features from '../libs/features';
+
import * as api from '../libs/api';
+import features from '../libs/features';
import {getRepoGQL, getRepoURL} from '../libs/utils';
const reviewsFilterSelector = '#reviews-select-menu';
diff --git a/source/features/preserve-file-finder-term.tsx b/source/features/preserve-file-finder-term.tsx
index 0d583c8d..be6a85fb 100644
--- a/source/features/preserve-file-finder-term.tsx
+++ b/source/features/preserve-file-finder-term.tsx
@@ -1,6 +1,7 @@
import select from 'select-dom';
import elementReady from 'element-ready';
import * as pageDetect from 'github-url-detection';
+
import features from '../libs/features';
function unloadHandler(): void {
diff --git a/source/features/preserve-whitespace-option-in-nav.tsx b/source/features/preserve-whitespace-option-in-nav.tsx
index c224e7fd..0f408d42 100644
--- a/source/features/preserve-whitespace-option-in-nav.tsx
+++ b/source/features/preserve-whitespace-option-in-nav.tsx
@@ -1,5 +1,6 @@
import select from 'select-dom';
import * as pageDetect from 'github-url-detection';
+
import features from '../libs/features';
function init(): false | void {
diff --git a/source/features/preview-hidden-comments.tsx b/source/features/preview-hidden-comments.tsx
index 441aacd9..c16a8b4e 100644
--- a/source/features/preview-hidden-comments.tsx
+++ b/source/features/preview-hidden-comments.tsx
@@ -2,6 +2,7 @@ import './preview-hidden-comments.css';
import React from 'dom-chef';
import select from 'select-dom';
import * as pageDetect from 'github-url-detection';
+
import features from '../libs/features';
const allowedReasons = ['resolved', 'outdated', 'off-topic'];
diff --git a/source/features/previous-next-commit-buttons.tsx b/source/features/previous-next-commit-buttons.tsx
index b78fb3a6..30524f58 100644
--- a/source/features/previous-next-commit-buttons.tsx
+++ b/source/features/previous-next-commit-buttons.tsx
@@ -1,5 +1,6 @@
import select from 'select-dom';
import * as pageDetect from 'github-url-detection';
+
import features from '../libs/features';
function init(): false | void {
diff --git a/source/features/profile-gists-link.tsx b/source/features/profile-gists-link.tsx
index 5f124862..bf2c29aa 100644
--- a/source/features/profile-gists-link.tsx
+++ b/source/features/profile-gists-link.tsx
@@ -4,6 +4,7 @@ import cache from 'webext-storage-cache';
import select from 'select-dom';
import elementReady from 'element-ready';
import * as pageDetect from 'github-url-detection';
+
import * as api from '../libs/api';
import features from '../libs/features';
import {getCleanPathname} from '../libs/utils';
diff --git a/source/features/profile-hotkey.tsx b/source/features/profile-hotkey.tsx
index 2f527d9e..0eb8cf69 100644
--- a/source/features/profile-hotkey.tsx
+++ b/source/features/profile-hotkey.tsx
@@ -1,4 +1,5 @@
import select from 'select-dom';
+
import features from '../libs/features';
import {getUsername} from '../libs/utils';
diff --git a/source/features/pull-request-hotkey.tsx b/source/features/pull-request-hotkey.tsx
index 850dbc9d..d7e9d246 100644
--- a/source/features/pull-request-hotkey.tsx
+++ b/source/features/pull-request-hotkey.tsx
@@ -1,5 +1,6 @@
import select from 'select-dom';
import * as pageDetect from 'github-url-detection';
+
import features from '../libs/features';
function init(): void {
diff --git a/source/features/quick-mention.tsx b/source/features/quick-mention.tsx
index 0d1c2340..1cf79517 100644
--- a/source/features/quick-mention.tsx
+++ b/source/features/quick-mention.tsx
@@ -5,6 +5,7 @@ import delegate from 'delegate-it';
import ReplyIcon from 'octicon/reply.svg';
import * as pageDetect from 'github-url-detection';
import * as textFieldEdit from 'text-field-edit';
+
import features from '../libs/features';
import {getUsername} from '../libs/utils';
import onNewComments from '../libs/on-new-comments';
diff --git a/source/features/quick-review-buttons.tsx b/source/features/quick-review-buttons.tsx
index 033b8fc9..83dece99 100644
--- a/source/features/quick-review-buttons.tsx
+++ b/source/features/quick-review-buttons.tsx
@@ -2,6 +2,7 @@ import React from 'dom-chef';
import select from 'select-dom';
import delegate from 'delegate-it';
import * as pageDetect from 'github-url-detection';
+
import features from '../libs/features';
function init(): false | void {
diff --git a/source/features/raw-file-link.tsx b/source/features/raw-file-link.tsx
index 037c5b9f..560b6e0e 100644
--- a/source/features/raw-file-link.tsx
+++ b/source/features/raw-file-link.tsx
@@ -2,6 +2,7 @@ import React from 'dom-chef';
import select from 'select-dom';
import delegate from 'delegate-it';
import * as pageDetect from 'github-url-detection';
+
import features from '../libs/features';
function handleMenuOpening(event: delegate.Event): void {
diff --git a/source/features/reactions-avatars.tsx b/source/features/reactions-avatars.tsx
index 4cfeeb48..349a4144 100644
--- a/source/features/reactions-avatars.tsx
+++ b/source/features/reactions-avatars.tsx
@@ -2,9 +2,10 @@ import './reactions-avatars.css';
import React from 'dom-chef';
import select from 'select-dom';
import * as pageDetect from 'github-url-detection';
+
import features from '../libs/features';
-import {getUsername, flatZip, isFirefox} from '../libs/utils';
import onReplacedElement from '../libs/on-replaced-element';
+import {getUsername, flatZip, isFirefox} from '../libs/utils';
const arbitraryAvatarLimit = 36;
const approximateHeaderLength = 3; // Each button header takes about as much as 3 avatars
diff --git a/source/features/recently-pushed-branches-enhancements.tsx b/source/features/recently-pushed-branches-enhancements.tsx
index 4bfaa9a9..2082ba9d 100644
--- a/source/features/recently-pushed-branches-enhancements.tsx
+++ b/source/features/recently-pushed-branches-enhancements.tsx
@@ -2,6 +2,7 @@ import './recently-pushed-branches-enhancements.css';
import React from 'dom-chef';
import select from 'select-dom';
import * as pageDetect from 'github-url-detection';
+
import features from '../libs/features';
import {getRepoURL} from '../libs/utils';
diff --git a/source/features/release-download-count.tsx b/source/features/release-download-count.tsx
index a2d454ff..22749091 100644
--- a/source/features/release-download-count.tsx
+++ b/source/features/release-download-count.tsx
@@ -3,8 +3,9 @@ import React from 'dom-chef';
import select from 'select-dom';
import * as pageDetect from 'github-url-detection';
import CloudDownloadIcon from 'octicon/cloud-download.svg';
-import features from '../libs/features';
+
import * as api from '../libs/api';
+import features from '../libs/features';
import {getRepoGQL} from '../libs/utils';
interface Asset {
diff --git a/source/features/releases-tab.tsx b/source/features/releases-tab.tsx
index c68981f9..62ded936 100644
--- a/source/features/releases-tab.tsx
+++ b/source/features/releases-tab.tsx
@@ -1,9 +1,10 @@
-import cache from 'webext-storage-cache';
import React from 'dom-chef';
+import cache from 'webext-storage-cache';
import select from 'select-dom';
-import elementReady from 'element-ready';
import TagIcon from 'octicon/tag.svg';
+import elementReady from 'element-ready';
import * as pageDetect from 'github-url-detection';
+
import features from '../libs/features';
import * as api from '../libs/api';
import {appendBefore} from '../libs/dom-utils';
diff --git a/source/features/reload-failed-proxied-images.tsx b/source/features/reload-failed-proxied-images.tsx
index 1560edf5..7b340e38 100644
--- a/source/features/reload-failed-proxied-images.tsx
+++ b/source/features/reload-failed-proxied-images.tsx
@@ -1,6 +1,7 @@
import delay from 'delay';
import delegate from 'delegate-it';
import loadImage from 'image-promise';
+
import features from '../libs/features';
async function handleErroredImage({delegateTarget}: delegate.Event<ErrorEvent, HTMLImageElement>): Promise<void> {
diff --git a/source/features/remove-checks-tab.tsx b/source/features/remove-checks-tab.tsx
index f35224aa..ab857d69 100644
--- a/source/features/remove-checks-tab.tsx
+++ b/source/features/remove-checks-tab.tsx
@@ -4,6 +4,7 @@
import select from 'select-dom';
import * as pageDetect from 'github-url-detection';
+
import features from '../libs/features';
function init(): false | void {
diff --git a/source/features/remove-projects-tab.tsx b/source/features/remove-projects-tab.tsx
index 94179707..7102e46d 100644
--- a/source/features/remove-projects-tab.tsx
+++ b/source/features/remove-projects-tab.tsx
@@ -3,6 +3,7 @@ import select from 'select-dom';
import onetime from 'onetime';
import elementReady from 'element-ready';
import * as pageDetect from 'github-url-detection';
+
import features from '../libs/features';
const addNewProjectLink = onetime(() => {
diff --git a/source/features/remove-upload-files-button.tsx b/source/features/remove-upload-files-button.tsx
index aac65a97..a1aa5deb 100644
--- a/source/features/remove-upload-files-button.tsx
+++ b/source/features/remove-upload-files-button.tsx
@@ -1,5 +1,6 @@
import select from 'select-dom';
import * as pageDetect from 'github-url-detection';
+
import features from '../libs/features';
import {getRepoURL} from '../libs/utils';
diff --git a/source/features/repo-age.tsx b/source/features/repo-age.tsx
index 3cd5092d..a6791c19 100644
--- a/source/features/repo-age.tsx
+++ b/source/features/repo-age.tsx
@@ -1,10 +1,11 @@
import twas from 'twas';
-import React from 'dom-chef';
import cache from 'webext-storage-cache';
+import React from 'dom-chef';
import select from 'select-dom';
import RepoIcon from 'octicon/repo.svg';
import elementReady from 'element-ready';
import * as pageDetect from 'github-url-detection';
+
import features from '../libs/features';
import fetchDom from '../libs/fetch-dom';
import {getRepoURL, looseParseInt} from '../libs/utils';
diff --git a/source/features/repo-wide-file-finder.tsx b/source/features/repo-wide-file-finder.tsx
index f1fe5a9a..f29ebe06 100644
--- a/source/features/repo-wide-file-finder.tsx
+++ b/source/features/repo-wide-file-finder.tsx
@@ -1,6 +1,7 @@
import React from 'dom-chef';
import select from 'select-dom';
import * as pageDetect from 'github-url-detection';
+
import features from '../libs/features';
import {getRepoURL} from '../libs/utils';
import getDefaultBranch from '../libs/get-default-branch';
diff --git a/source/features/resolve-conflicts.tsx b/source/features/resolve-conflicts.tsx
index 4b08a052..b3751895 100644
--- a/source/features/resolve-conflicts.tsx
+++ b/source/features/resolve-conflicts.tsx
@@ -2,6 +2,7 @@ import './resolve-conflicts.css';
import React from 'dom-chef';
import elementReady from 'element-ready';
import * as pageDetect from 'github-url-detection';
+
import features from '../libs/features';
async function init(): Promise<void> {
diff --git a/source/features/revert-file.tsx b/source/features/revert-file.tsx
index 4423dcd1..f2e4ef94 100644
--- a/source/features/revert-file.tsx
+++ b/source/features/revert-file.tsx
@@ -3,6 +3,7 @@ import select from 'select-dom';
import onetime from 'onetime';
import delegate from 'delegate-it';
import * as pageDetect from 'github-url-detection';
+
import * as api from '../libs/api';
import features from '../libs/features';
import fetchDom from '../libs/fetch-dom';
diff --git a/source/features/selection-in-new-tab.tsx b/source/features/selection-in-new-tab.tsx
index 34028232..4daccf92 100644
--- a/source/features/selection-in-new-tab.tsx
+++ b/source/features/selection-in-new-tab.tsx
@@ -1,4 +1,5 @@
import select from 'select-dom';
+
import features from '../libs/features';
import {isEditable} from '../libs/dom-utils';
diff --git a/source/features/separate-draft-pr-button.tsx b/source/features/separate-draft-pr-button.tsx
index c5cc79ac..b8fc594f 100644
--- a/source/features/separate-draft-pr-button.tsx
+++ b/source/features/separate-draft-pr-button.tsx
@@ -1,6 +1,7 @@
import React from 'dom-chef';
import select from 'select-dom';
import * as pageDetect from 'github-url-detection';
+
import features from '../libs/features';
function init(): void | false {
diff --git a/source/features/set-default-repositories-type-to-sources.tsx b/source/features/set-default-repositories-type-to-sources.tsx
index 214f68e9..046d12c2 100644
--- a/source/features/set-default-repositories-type-to-sources.tsx
+++ b/source/features/set-default-repositories-type-to-sources.tsx
@@ -1,4 +1,5 @@
import select from 'select-dom';
+
import features from '../libs/features';
function init(): void {
diff --git a/source/features/shorten-links.tsx b/source/features/shorten-links.tsx
index 44a67404..bed088ed 100644
--- a/source/features/shorten-links.tsx
+++ b/source/features/shorten-links.tsx
@@ -1,6 +1,7 @@
import select from 'select-dom';
import {applyToLink} from 'shorten-repo-url';
import * as pageDetect from 'github-url-detection';
+
import features from '../libs/features';
import {linkifiedURLClass} from '../libs/dom-formatters';
diff --git a/source/features/show-followers-you-know.tsx b/source/features/show-followers-you-know.tsx
index c5f031e6..489da4b4 100644
--- a/source/features/show-followers-you-know.tsx
+++ b/source/features/show-followers-you-know.tsx
@@ -1,9 +1,10 @@
import React from 'dom-chef';
import select from 'select-dom';
import * as pageDetect from 'github-url-detection';
-import {getCleanPathname} from '../libs/utils';
+
import features from '../libs/features';
import fetchDom from '../libs/fetch-dom';
+import {getCleanPathname} from '../libs/utils';
const fetchStargazers = async (): Promise<HTMLImageElement[]> => {
const url = `/${getCleanPathname()}/followers/you_know`;
diff --git a/source/features/show-names.tsx b/source/features/show-names.tsx
index 270d9ce6..ea20fdfe 100644
--- a/source/features/show-names.tsx
+++ b/source/features/show-names.tsx
@@ -2,6 +2,7 @@ import './show-names.css';
import React from 'dom-chef';
import select from 'select-dom';
import * as pageDetect from 'github-url-detection';
+
import * as api from '../libs/api';
import features from '../libs/features';
import {getUsername, compareNames} from '../libs/utils';
diff --git a/source/features/show-open-prs-of-forks.tsx b/source/features/show-open-prs-of-forks.tsx
index beb0d466..0b2a91a7 100644
--- a/source/features/show-open-prs-of-forks.tsx
+++ b/source/features/show-open-prs-of-forks.tsx
@@ -3,6 +3,7 @@ import cache from 'webext-storage-cache';
import select from 'select-dom';
import elementReady from 'element-ready';
import * as pageDetect from 'github-url-detection';
+
import * as api from '../libs/api';
import features from '../libs/features';
import {getForkedRepo, getUsername, pluralize} from '../libs/utils';
diff --git a/source/features/show-user-top-repositories.tsx b/source/features/show-user-top-repositories.tsx
index 5a71bf1e..1a625e8f 100644
--- a/source/features/show-user-top-repositories.tsx
+++ b/source/features/show-user-top-repositories.tsx
@@ -1,6 +1,7 @@
import React from 'dom-chef';
import select from 'select-dom';
import * as pageDetect from 'github-url-detection';
+
import features from '../libs/features';
import {getCleanPathname} from '../libs/utils';
diff --git a/source/features/show-whitespace.tsx b/source/features/show-whitespace.tsx
index 56ca145b..2be1960b 100644
--- a/source/features/show-whitespace.tsx
+++ b/source/features/show-whitespace.tsx
@@ -2,6 +2,7 @@ import './show-whitespace.css';
import React from 'dom-chef';
import select from 'select-dom';
import * as pageDetect from 'github-url-detection';
+
import features from '../libs/features';
import getTextNodes from '../libs/get-text-nodes';
import onPrFileLoad from '../libs/on-pr-file-load';
diff --git a/source/features/sort-issues-by-update-time.tsx b/source/features/sort-issues-by-update-time.tsx
index 4e6117c5..a3294cb9 100644
--- a/source/features/sort-issues-by-update-time.tsx
+++ b/source/features/sort-issues-by-update-time.tsx
@@ -1,6 +1,7 @@
import select from 'select-dom';
import elementReady from 'element-ready';
import * as pageDetect from 'github-url-detection';
+
import features from '../libs/features';
import SearchQuery from '../libs/search-query';
diff --git a/source/features/sort-milestones-by-closest-due-date.tsx b/source/features/sort-milestones-by-closest-due-date.tsx
index a935368c..45f01b43 100644
--- a/source/features/sort-milestones-by-closest-due-date.tsx
+++ b/source/features/sort-milestones-by-closest-due-date.tsx
@@ -1,5 +1,6 @@
import select from 'select-dom';
import * as pageDetect from 'github-url-detection';
+
import features from '../libs/features';
function init(): void {
diff --git a/source/features/split-issue-pr-search-results.tsx b/source/features/split-issue-pr-search-results.tsx
index 84b29f31..412247dc 100644
--- a/source/features/split-issue-pr-search-results.tsx
+++ b/source/features/split-issue-pr-search-results.tsx
@@ -2,6 +2,7 @@ import './split-issue-pr-search-results.css';
import React from 'dom-chef';
import select from 'select-dom';
import * as pageDetect from 'github-url-detection';
+
import features from '../libs/features';
import SearchQuery from '../libs/search-query';
diff --git a/source/features/star-repo-hotkey.tsx b/source/features/star-repo-hotkey.tsx
index f4a33b8b..722f4361 100644
--- a/source/features/star-repo-hotkey.tsx
+++ b/source/features/star-repo-hotkey.tsx
@@ -1,5 +1,6 @@
import select from 'select-dom';
import * as pageDetect from 'github-url-detection';
+
import features from '../libs/features';
function init(): void {
diff --git a/source/features/sticky-discussion-sidebar.tsx b/source/features/sticky-discussion-sidebar.tsx
index abbf7738..d012babf 100644
--- a/source/features/sticky-discussion-sidebar.tsx
+++ b/source/features/sticky-discussion-sidebar.tsx
@@ -2,6 +2,7 @@ import './sticky-discussion-sidebar.css';
import select from 'select-dom';
import debounce from 'debounce-fn';
import * as pageDetect from 'github-url-detection';
+
import features from '../libs/features';
import onReplacedElement from '../libs/on-replaced-element';
diff --git a/source/features/stop-redirecting-in-notification-bar.tsx b/source/features/stop-redirecting-in-notification-bar.tsx
index a35777f9..98631a13 100644
--- a/source/features/stop-redirecting-in-notification-bar.tsx
+++ b/source/features/stop-redirecting-in-notification-bar.tsx
@@ -1,4 +1,5 @@
import delegate from 'delegate-it';
+
import features from '../libs/features';
const hasNotificationBar = (): boolean =>
diff --git a/source/features/submit-review-as-single-comment.tsx b/source/features/submit-review-as-single-comment.tsx
index ee7865ad..8f31f661 100644
--- a/source/features/submit-review-as-single-comment.tsx
+++ b/source/features/submit-review-as-single-comment.tsx
@@ -4,10 +4,11 @@ import onetime from 'onetime';
import delegate from 'delegate-it';
import * as pageDetect from 'github-url-detection';
import * as textFieldEdit from 'text-field-edit';
+
import features from '../libs/features';
-import {observeOneMutation} from '../libs/simplified-element-observer';
-import {logError} from '../libs/utils';
import oneEvent from '../libs/one-event';
+import {logError} from '../libs/utils';
+import {observeOneMutation} from '../libs/simplified-element-observer';
const pendingSelector = '.timeline-comment-label.is-pending';
diff --git a/source/features/suggest-commit-title-limit.tsx b/source/features/suggest-commit-title-limit.tsx
index 469dced3..4253f074 100644
--- a/source/features/suggest-commit-title-limit.tsx
+++ b/source/features/suggest-commit-title-limit.tsx
@@ -2,6 +2,7 @@ import './suggest-commit-title-limit.css';
import select from 'select-dom';
import delegate from 'delegate-it';
import * as pageDetect from 'github-url-detection';
+
import features from '../libs/features';
import onPrMergePanelOpen from '../libs/on-pr-merge-panel-open';
diff --git a/source/features/swap-branches-on-compare.tsx b/source/features/swap-branches-on-compare.tsx
index c6851ce1..69462b20 100644
--- a/source/features/swap-branches-on-compare.tsx
+++ b/source/features/swap-branches-on-compare.tsx
@@ -1,6 +1,7 @@
import React from 'dom-chef';
import select from 'select-dom';
import * as pageDetect from 'github-url-detection';
+
import {wrap} from '../libs/dom-utils';
import features from '../libs/features';
import {getRepoPath, getRepoURL} from '../libs/utils';
diff --git a/source/features/sync-pr-commit-title.tsx b/source/features/sync-pr-commit-title.tsx
index e2341122..38d98ce9 100644
--- a/source/features/sync-pr-commit-title.tsx
+++ b/source/features/sync-pr-commit-title.tsx
@@ -3,6 +3,7 @@ import select from 'select-dom';
import delegate from 'delegate-it';
import * as textFieldEdit from 'text-field-edit';
import * as pageDetect from 'github-url-detection';
+
import features from '../libs/features';
import {logError} from '../libs/utils';
import onPrMergePanelOpen from '../libs/on-pr-merge-panel-open';
diff --git a/source/features/tab-to-indent.tsx b/source/features/tab-to-indent.tsx
index fc552b76..b726d98d 100644
--- a/source/features/tab-to-indent.tsx
+++ b/source/features/tab-to-indent.tsx
@@ -1,4 +1,5 @@
import {eventHandler} from 'indent-textarea';
+
import features from '../libs/features';
import {listenToCommentFields} from './comment-fields-keyboard-shortcuts';
diff --git a/source/features/tag-changelog-link.tsx b/source/features/tag-changelog-link.tsx
index 1bff0b9f..f5ac35a1 100644
--- a/source/features/tag-changelog-link.tsx
+++ b/source/features/tag-changelog-link.tsx
@@ -3,6 +3,7 @@ import select from 'select-dom';
import DiffIcon from 'octicon/diff.svg';
import * as pageDetect from 'github-url-detection';
import tinyVersionCompare from 'tiny-version-compare';
+
import features from '../libs/features';
import fetchDom from '../libs/fetch-dom';
import {getRepoPath, getRepoURL, parseTag} from '../libs/utils';
diff --git a/source/features/tags-dropdown.tsx b/source/features/tags-dropdown.tsx
index e3724af0..0fb3673c 100644
--- a/source/features/tags-dropdown.tsx
+++ b/source/features/tags-dropdown.tsx
@@ -3,6 +3,7 @@ import React from 'dom-chef';
import select from 'select-dom';
import OctofaceIcon from 'octicon/octoface.svg';
import * as pageDetect from 'github-url-detection';
+
import features from '../libs/features';
import {getRepoURL} from '../libs/utils';
diff --git a/source/features/toggle-everything-with-alt.tsx b/source/features/toggle-everything-with-alt.tsx
index 2eaa63ea..1cab010b 100644
--- a/source/features/toggle-everything-with-alt.tsx
+++ b/source/features/toggle-everything-with-alt.tsx
@@ -2,6 +2,7 @@ import mem from 'mem';
import select from 'select-dom';
import delegate from 'delegate-it';
import * as pageDetect from 'github-url-detection';
+
import features from '../libs/features';
import anchorScroll from '../libs/anchor-scroll';
diff --git a/source/features/toggle-files-button.tsx b/source/features/toggle-files-button.tsx
index e1133640..e20f718a 100644
--- a/source/features/toggle-files-button.tsx
+++ b/source/features/toggle-files-button.tsx
@@ -4,6 +4,7 @@ import select from 'select-dom';
import delegate from 'delegate-it';
import * as pageDetect from 'github-url-detection';
import ChevronDownIcon from 'octicon/chevron-down.svg';
+
import features from '../libs/features';
import observeElement from '../libs/simplified-element-observer';
diff --git a/source/features/trending-menu-item.tsx b/source/features/trending-menu-item.tsx
index 83f43307..887d2b9c 100644
--- a/source/features/trending-menu-item.tsx
+++ b/source/features/trending-menu-item.tsx
@@ -1,6 +1,7 @@
import React from 'dom-chef';
import elementReady from 'element-ready';
import * as pageDetect from 'github-url-detection';
+
import features from '../libs/features';
async function init(): Promise<false | void> {
diff --git a/source/features/unwrap-useless-dropdowns.tsx b/source/features/unwrap-useless-dropdowns.tsx
index a429c14e..3bd1bf52 100644
--- a/source/features/unwrap-useless-dropdowns.tsx
+++ b/source/features/unwrap-useless-dropdowns.tsx
@@ -1,6 +1,7 @@
import select from 'select-dom';
import elementReady from 'element-ready';
import * as pageDetect from 'github-url-detection';
+
import features from '../libs/features';
// Replace dropdown while keeping its sizing/positioning classes
diff --git a/source/features/update-pr-from-base-branch.tsx b/source/features/update-pr-from-base-branch.tsx
index 945c962c..3148e9a0 100644
--- a/source/features/update-pr-from-base-branch.tsx
+++ b/source/features/update-pr-from-base-branch.tsx
@@ -1,10 +1,11 @@
import React from 'dom-chef';
import select from 'select-dom';
-import AlertIcon from 'octicon/alert.svg';
import delegate from 'delegate-it';
+import AlertIcon from 'octicon/alert.svg';
import * as pageDetect from 'github-url-detection';
-import features from '../libs/features';
+
import * as api from '../libs/api';
+import features from '../libs/features';
import observeElement from '../libs/simplified-element-observer';
import {getRepoURL, getDiscussionNumber} from '../libs/utils';
@@ -17,7 +18,7 @@ function getBranches(): {base: string; head: string} {
};
}
-export async function mergeBranches(): Promise<AnyObject> {
+async function mergeBranches(): Promise<AnyObject> {
return api.v3(`repos/${getRepoURL()}/pulls/${getDiscussionNumber()!}/update-branch`, {
method: 'PUT',
headers: {
diff --git a/source/features/useful-not-found-page.tsx b/source/features/useful-not-found-page.tsx
index 711f2954..66d0a264 100644
--- a/source/features/useful-not-found-page.tsx
+++ b/source/features/useful-not-found-page.tsx
@@ -1,6 +1,7 @@
import React from 'dom-chef';
import select from 'select-dom';
import * as pageDetect from 'github-url-detection';
+
import features from '../libs/features';
import {getCleanPathname} from '../libs/utils';
import getDefaultBranch from '../libs/get-default-branch';
diff --git a/source/features/user-local-time.tsx b/source/features/user-local-time.tsx
index 3e9eec49..d31389d2 100644
--- a/source/features/user-local-time.tsx
+++ b/source/features/user-local-time.tsx
@@ -1,13 +1,14 @@
/* eslint-disable no-await-in-loop */
-import cache from 'webext-storage-cache';
import React from 'dom-chef';
+import cache from 'webext-storage-cache';
import select from 'select-dom';
import ClockIcon from 'octicon/clock.svg';
-import features from '../libs/features';
+
import * as api from '../libs/api';
-import observeElement from '../libs/simplified-element-observer';
+import features from '../libs/features';
import {getUsername} from '../libs/utils';
+import observeElement from '../libs/simplified-element-observer';
interface Commit {
url: string;
@@ -75,8 +76,8 @@ const getLastCommitDate = cache.function(async (login: string): Promise<string |
function parseOffset(date: string): number {
const [, hourString, minuteString] = (/([-+]\d\d)(\d\d)$/).exec(date) ?? [];
- const hours = parseInt(hourString, 10);
- const minutes = parseInt(minuteString, 10);
+ const hours = Number.parseInt(hourString, 10);
+ const minutes = Number.parseInt(minuteString, 10);
return (hours * 60) + (hours < 0 ? -minutes : minutes);
}
@@ -112,7 +113,7 @@ function init(): void {
const diff = hovercard.offsetHeight - hovercardHeight;
if (diff > 0) {
const parent = hovercard.parentElement!;
- const top = parseInt(parent.style.top, 10);
+ const top = Number.parseInt(parent.style.top, 10);
parent.style.top = `${top - diff}px`;
}
}
diff --git a/source/features/user-profile-follower-badge.tsx b/source/features/user-profile-follower-badge.tsx
index 89e913f4..35f0cd78 100644
--- a/source/features/user-profile-follower-badge.tsx
+++ b/source/features/user-profile-follower-badge.tsx
@@ -3,6 +3,7 @@ import React from 'dom-chef';
import cache from 'webext-storage-cache';
import select from 'select-dom';
import * as pageDetect from 'github-url-detection';
+
import * as api from '../libs/api';
import features from '../libs/features';
import {getUsername, getCleanPathname} from '../libs/utils';
diff --git a/source/features/view-markdown-source.tsx b/source/features/view-markdown-source.tsx
index 824b2580..6ade73f5 100644
--- a/source/features/view-markdown-source.tsx
+++ b/source/features/view-markdown-source.tsx
@@ -5,6 +5,7 @@ import delegate from 'delegate-it';
import CodeIcon from 'octicon/code.svg';
import FileIcon from 'octicon/file.svg';
import * as pageDetect from 'github-url-detection';
+
import features from '../libs/features';
import fetchDom from '../libs/fetch-dom';
diff --git a/source/features/wait-for-build.tsx b/source/features/wait-for-build.tsx
index 234870ce..310590e8 100644
--- a/source/features/wait-for-build.tsx
+++ b/source/features/wait-for-build.tsx
@@ -2,9 +2,10 @@ import './wait-for-build.css';
import React from 'dom-chef';
import select from 'select-dom';
import onetime from 'onetime';
-import InfoIcon from 'octicon/info.svg';
import delegate from 'delegate-it';
+import InfoIcon from 'octicon/info.svg';
import * as pageDetect from 'github-url-detection';
+
import features from '../libs/features';
import * as prCiStatus from '../libs/pr-ci-status';
import onPrMergePanelOpen from '../libs/on-pr-merge-panel-open';
diff --git a/source/features/warn-pr-from-master.tsx b/source/features/warn-pr-from-master.tsx
index 30a615db..cdb2e212 100644
--- a/source/features/warn-pr-from-master.tsx
+++ b/source/features/warn-pr-from-master.tsx
@@ -1,6 +1,7 @@
import React from 'dom-chef';
import select from 'select-dom';
import * as pageDetect from 'github-url-detection';
+
import features from '../libs/features';
import getDefaultBranch from '../libs/get-default-branch';
diff --git a/source/features/warning-for-disallow-edits.tsx b/source/features/warning-for-disallow-edits.tsx
index 3dacfd6e..0c86d307 100644
--- a/source/features/warning-for-disallow-edits.tsx
+++ b/source/features/warning-for-disallow-edits.tsx
@@ -4,6 +4,7 @@ import select from 'select-dom';
import oneTime from 'onetime';
import delegate from 'delegate-it';
import * as pageDetect from 'github-url-detection';
+
import features from '../libs/features';
const getWarning = oneTime(() => (
diff --git a/source/globals.d.ts b/source/globals.d.ts
index abd8d34b..f921fa70 100644
--- a/source/globals.d.ts
+++ b/source/globals.d.ts
@@ -74,10 +74,13 @@ interface HTMLFormControlsCollection {
}
declare module '*.svg' {
- export default (): JSX.Element => JSX.Element;
+ const Icon = (): JSX.Element => JSX.Element;
+ export default Icon;
}
// Make `element.cloneNode()` preserve its type instead of returning Node
interface Node extends EventTarget {
+ // Not equivalent
+ // eslint-disable-next-line @typescript-eslint/method-signature-style
cloneNode(deep?: boolean): this;
}
diff --git a/source/libs/api.ts b/source/libs/api.ts
index f68cbd74..d5db849e 100644
--- a/source/libs/api.ts
+++ b/source/libs/api.ts
@@ -26,6 +26,7 @@ so the call will not throw an error but it will return as usual.
import mem from 'mem';
import {JsonObject, AsyncReturnType} from 'type-fest';
+
import optionsStorage from '../options-storage';
type JsonError = {
diff --git a/source/libs/dom-formatters.ts b/source/libs/dom-formatters.ts
index fd49aac2..9138be26 100644
--- a/source/libs/dom-formatters.ts
+++ b/source/libs/dom-formatters.ts
@@ -1,6 +1,7 @@
import zipTextNodes from 'zip-text-nodes';
import linkifyURLsCore from 'linkify-urls';
import linkifyIssuesCore from 'linkify-issues';
+
import getTextNodes from './get-text-nodes';
import {getOwnerAndRepo} from './utils';
import parseBackticksCore from './parse-backticks';
diff --git a/source/libs/dom-utils.ts b/source/libs/dom-utils.ts
index 8d7f0039..0a64bb44 100644
--- a/source/libs/dom-utils.ts
+++ b/source/libs/dom-utils.ts
@@ -1,4 +1,5 @@
import select from 'select-dom';
+
import {getScopedSelector} from './utils';
/**
diff --git a/source/libs/features.tsx b/source/libs/features.tsx
index 5c98801e..e65b504d 100644
--- a/source/libs/features.tsx
+++ b/source/libs/features.tsx
@@ -4,10 +4,11 @@ import domLoaded from 'dom-loaded';
import {Promisable} from 'type-fest';
import elementReady from 'element-ready';
import * as pageDetect from 'github-url-detection';
+
+import optionsStorage, {RGHOptions} from '../options-storage';
import {logError} from './utils';
import onNewComments from './on-new-comments';
import onNewsfeedLoad from './on-newsfeed-load';
-import optionsStorage, {RGHOptions} from '../options-storage';
type BooleanFunction = () => boolean;
type CallerFunction = (callback: VoidFunction) => void;
@@ -232,7 +233,9 @@ add(undefined, {
}
});
-export default {
+const features = {
add,
getShortcuts
};
+
+export default features;
diff --git a/source/libs/get-default-branch.ts b/source/libs/get-default-branch.ts
index 538a28bd..e5ddbaad 100644
--- a/source/libs/get-default-branch.ts
+++ b/source/libs/get-default-branch.ts
@@ -1,5 +1,6 @@
import select from 'select-dom';
import cache from 'webext-storage-cache';
+
import * as api from './api';
import {getRepoURL, getRepoGQL} from './utils';
diff --git a/source/libs/get-text-nodes.ts b/source/libs/get-text-nodes.ts
index 02803cd5..a34ddda8 100644
--- a/source/libs/get-text-nodes.ts
+++ b/source/libs/get-text-nodes.ts
@@ -1,4 +1,4 @@
-export default (element: Node): Text[] => {
+export default function getTextNodes(element: Node): Text[] {
const walker = document.createTreeWalker(element, NodeFilter.SHOW_TEXT);
const nodes: Text[] = [];
let node;
@@ -11,4 +11,4 @@ export default (element: Node): Text[] => {
} while (node);
return nodes;
-};
+}
diff --git a/source/libs/group-buttons.tsx b/source/libs/group-buttons.tsx
index 0b2181ab..c44b33d6 100644
--- a/source/libs/group-buttons.tsx
+++ b/source/libs/group-buttons.tsx
@@ -1,4 +1,5 @@
import React from 'dom-chef';
+
import {wrapAll} from './dom-utils';
// Wrap a list of elements with BtnGroup + ensure each has BtnGroup-item
diff --git a/source/libs/on-file-list-update.ts b/source/libs/on-file-list-update.ts
index 122090f1..70475328 100644
--- a/source/libs/on-file-list-update.ts
+++ b/source/libs/on-file-list-update.ts
@@ -1,6 +1,6 @@
import select from 'select-dom';
-export default function (callback: VoidFunction): void {
+export default function onFileListUpdate(callback: VoidFunction): void {
// Selector copied from https://github.com/sindresorhus/hide-files-on-github
const ajaxFiles = select('#files ~ include-fragment[src*="/file-list/"]');
if (ajaxFiles) {
diff --git a/source/libs/on-new-comments.ts b/source/libs/on-new-comments.ts
index 4220a73c..73cd4ed4 100644
--- a/source/libs/on-new-comments.ts
+++ b/source/libs/on-new-comments.ts
@@ -51,7 +51,7 @@ function addListeners(): void {
delegates.add(delegate(document, 'details.outdated-comment > include-fragment', 'load', run, true));
}
-export default function (callback: VoidFunction): void {
+export default function onNewComments(callback: VoidFunction): void {
addListeners();
handlers.add(callback);
}
diff --git a/source/libs/on-pr-merge-panel-open.ts b/source/libs/on-pr-merge-panel-open.ts
index c6642ffd..038bb8bf 100644
--- a/source/libs/on-pr-merge-panel-open.ts
+++ b/source/libs/on-pr-merge-panel-open.ts
@@ -13,7 +13,7 @@ const sessionResumeHandler = mem((callback: EventListener) => async (event: Even
callback(event);
});
-export default function (callback: EventListener): delegate.Subscription {
+export default function onPrMergePanelOpen(callback: EventListener): delegate.Subscription {
document.addEventListener(
'session:resume',
sessionResumeHandler(callback)
diff --git a/source/libs/on-replaced-element.ts b/source/libs/on-replaced-element.ts
index d26f551e..3ef75caf 100644
--- a/source/libs/on-replaced-element.ts
+++ b/source/libs/on-replaced-element.ts
@@ -1,4 +1,5 @@
import select from 'select-dom';
+
import onElementRemoval from './on-element-removal';
/**
diff --git a/source/libs/pr-ci-status.ts b/source/libs/pr-ci-status.ts
index 982c8df2..70617d6d 100644
--- a/source/libs/pr-ci-status.ts
+++ b/source/libs/pr-ci-status.ts
@@ -1,4 +1,5 @@
import select from 'select-dom';
+
import observeElement from './simplified-element-observer';
type CommitStatus = false | typeof SUCCESS | typeof FAILURE | typeof PENDING | typeof COMMIT_CHANGED;
diff --git a/source/options.tsx b/source/options.tsx
index 903d9085..bba5f1ba 100644
--- a/source/options.tsx
+++ b/source/options.tsx
@@ -6,6 +6,7 @@ import select from 'select-dom';
import fitTextarea from 'fit-textarea';
import {applyToLink} from 'shorten-repo-url';
import * as indentTextarea from 'indent-textarea';
+
import {getAllOptions} from './options-storage';
import * as domFormatters from './libs/dom-formatters';
diff --git a/source/resolve-conflicts.ts b/source/resolve-conflicts.ts
index 40303ebd..267b0236 100644
--- a/source/resolve-conflicts.ts
+++ b/source/resolve-conflicts.ts
@@ -3,7 +3,7 @@
declare namespace CodeMirror {
interface LineHandle {
widgets: unknown[];
- lineNo(): number;
+ lineNo: () => number;
}
}
diff --git a/test/search-query.ts b/test/search-query.ts
index b576c004..5f6b842b 100644
--- a/test/search-query.ts
+++ b/test/search-query.ts
@@ -1,4 +1,5 @@
import test from 'ava';
+
import './fixtures/globals';
import SearchQuery from '../source/libs/search-query';
diff --git a/test/utils.ts b/test/utils.ts
index 55151379..e137f3ac 100644
--- a/test/utils.ts
+++ b/test/utils.ts
@@ -1,4 +1,5 @@
import test from 'ava';
+
import './fixtures/globals';
import {
getDiscussionNumber,
diff --git a/webpack.config.ts b/webpack.config.ts
index a4c96ae8..36e60718 100644
--- a/webpack.config.ts
+++ b/webpack.config.ts
@@ -1,8 +1,9 @@
/// <reference types="./source/globals" />
import path from 'path';
-import stripIndent from 'strip-indent';
import {readdirSync, readFileSync} from 'fs';
+
+import stripIndent from 'strip-indent';
import webpack, {Configuration} from 'webpack';
import SizePlugin from 'size-plugin';
import TerserPlugin from 'terser-webpack-plugin';
@@ -99,10 +100,10 @@ const config: Configuration = {
new webpack.DefinePlugin({
// Passing `true` as the second argument makes these values dynamic — so every file change will update their value.
__featuresOptionDefaults__: webpack.DefinePlugin.runtimeValue(() => {
- return JSON.stringify(getFeatures().reduce((defaults, feature) => {
+ return JSON.stringify(getFeatures().reduce<AnyObject>((defaults, feature) => {
defaults[`feature:${feature}`] = true;
return defaults;
- }, {} as AnyObject));
+ }, {}));
// TODO: unignore after https://github.com/DefinitelyTyped/DefinitelyTyped/pull/42036
// @ts-ignore
}, true),