diff --git a/.buildkite/pipeline.yaml b/.buildkite/pipeline.yaml
new file mode 100644
index 0000000000..8b658be0bb
--- /dev/null
+++ b/.buildkite/pipeline.yaml
@@ -0,0 +1,33 @@
+steps:
+ - label: ":eslint: Lint"
+ command:
+ - "yarn install"
+ - "yarn lint"
+ plugins:
+ - docker#v3.0.1:
+ image: "node:10"
+
+ - label: ":karma: Tests"
+ agents:
+ # We use a medium sized instance instead of the normal small ones because
+ # webpack loves to gorge itself on resources.
+ queue: "medium"
+ command:
+ # Install chrome
+ - "echo '--- Installing Chrome'"
+ - "wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add -"
+ - "sh -c 'echo \"deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main\" >> /etc/apt/sources.list.d/google.list'"
+ - "apt-get update"
+ - "apt-get install -y google-chrome-stable"
+ # Run tests
+ - "echo '--- Fetching Dependencies'"
+ - "./scripts/fetch-develop.deps.sh --depth 1"
+ - "yarn install"
+ - "echo '+++ Running Tests'"
+ - "yarn test"
+ env:
+ CHROME_BIN: "/usr/bin/google-chrome-stable"
+ plugins:
+ - docker#v3.0.1:
+ image: "node:10"
+ propagate-environment: true
diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md
index ba4adf39f0..a2042975e1 100644
--- a/.github/ISSUE_TEMPLATE.md
+++ b/.github/ISSUE_TEMPLATE.md
@@ -43,4 +43,4 @@ For the web app:
For the desktop app:
- **OS**: Windows, macOS, Ubuntu, Arch Linux, etc?
-- **Version**: 0.x.y
+- **Version**: 1.x.y
diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md
index 6caffdb01b..ffca51c6d7 100644
--- a/.github/ISSUE_TEMPLATE/bug_report.md
+++ b/.github/ISSUE_TEMPLATE/bug_report.md
@@ -2,7 +2,7 @@
name: Bug report
about: Create a report to help us improve
title: ''
-labels: ''
+labels: bug
assignees: ''
---
@@ -52,4 +52,4 @@ For the web app:
For the desktop app:
- **OS**: Windows, macOS, Ubuntu, Arch Linux, etc?
-- **Version**: 0.x.y
+- **Version**: 1.x.y
diff --git a/.github/ISSUE_TEMPLATE/user-interface-or-usability-bug-report.md b/.github/ISSUE_TEMPLATE/user-interface-or-usability-bug-report.md
new file mode 100644
index 0000000000..df9cfe4f2e
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/user-interface-or-usability-bug-report.md
@@ -0,0 +1,57 @@
+---
+name: User Interface or Usability Bug report
+about: Please include screenshots in UI/UX bug reports
+title: ''
+labels: ''
+assignees: ''
+
+---
+
+
+
+
+
+
+
+### Description
+
+Describe here the problem that you are experiencing, or the feature you are requesting.
+
+### Steps to reproduce
+
+- For bugs, list the steps
+- that reproduce the bug
+- using hyphens as bullet points
+
+Describe how what happens differs from what you expected.
+
+Log: sent/not sent?
+
+
+
+### Version information
+
+
+
+- **Platform**: web (in-browser) or desktop?
+
+For the web app:
+
+- **Browser**: Chrome, Safari, Firefox? which version?
+- **OS**: Windows, macOS, Ubuntu, Arch Linux, etc?
+- **URL**: riot.im/develop / riot.im/app / somewhere else? If a private server, what version of riot-web?
+
+For the desktop app:
+
+- **OS**: Windows, macOS, Ubuntu, Arch Linux, etc?
+- **Version**: 1.x.y
diff --git a/.travis.yml b/.travis.yml
deleted file mode 100644
index 5149c81d81..0000000000
--- a/.travis.yml
+++ /dev/null
@@ -1,31 +0,0 @@
-# we need trusty for the chrome addon
-dist: trusty
-
-# we don't need sudo, so can run in a container, which makes startup much
-# quicker.
-#
-# unfortunately we do temporarily require sudo as a workaround for
-# https://github.com/travis-ci/travis-ci/issues/8836
-sudo: required
-
-language: node_js
-node_js:
- # make sure we work with a range of node versions.
- #
- # Current status of node versions: https://github.com/nodejs/LTS/
- # We don't work with node 6 because it doesn't support package-lock
- # files which we need to avoid the broken version of base-x
- - 8
- - 10
-addons:
- chrome: stable
-before_install:
- - curl -o- -L https://yarnpkg.com/install.sh | bash -s -- --version 1.13.0
- - export PATH=$HOME/.yarn/bin:$PATH
-install:
- # clone the deps with depth 1: we know we will only ever need that one
- # commit.
- - scripts/fetch-develop.deps.sh --depth 1 && yarn install
-script:
- - CHROME_BIN='/usr/bin/google-chrome-stable' yarn test
- - yarn lint
diff --git a/CHANGELOG.md b/CHANGELOG.md
index fd9256cb2d..7308b0fadc 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,38 @@
+Changes in [1.0.5](https://github.com/vector-im/riot-web/releases/tag/v1.0.5) (2019-03-21)
+==========================================================================================
+[Full Changelog](https://github.com/vector-im/riot-web/compare/v1.0.4...v1.0.5)
+
+ * Hotfix for [\#9205](https://github.com/vector-im/riot-web/issues/9205) disabling jump prevention for typing notifications, while we're reworking this functionally to enable it again soon.
+
+Changes in [1.0.4](https://github.com/vector-im/riot-web/releases/tag/v1.0.4) (2019-03-18)
+==========================================================================================
+[Full Changelog](https://github.com/vector-im/riot-web/compare/v1.0.4-rc.1...v1.0.4)
+
+ * No changes since rc.1
+
+Changes in [1.0.4-rc.1](https://github.com/vector-im/riot-web/releases/tag/v1.0.4-rc.1) (2019-03-13)
+====================================================================================================
+[Full Changelog](https://github.com/vector-im/riot-web/compare/v1.0.3...v1.0.4-rc.1)
+
+ * Update from Weblate
+ [\#9152](https://github.com/vector-im/riot-web/pull/9152)
+ * Use modern Yarn version on Travis CI
+ [\#9151](https://github.com/vector-im/riot-web/pull/9151)
+ * Switch to `yarn` for dependency management
+ [\#9132](https://github.com/vector-im/riot-web/pull/9132)
+ * Update from Weblate
+ [\#9104](https://github.com/vector-im/riot-web/pull/9104)
+ * Don't copy the 32 bit linux deb
+ [\#9075](https://github.com/vector-im/riot-web/pull/9075)
+ * Change olm dependency to normal dep
+ [\#9068](https://github.com/vector-im/riot-web/pull/9068)
+ * Add modular.im hosting link to electron app config
+ [\#9047](https://github.com/vector-im/riot-web/pull/9047)
+ * Nudge karma to 3.1.2
+ [\#8991](https://github.com/vector-im/riot-web/pull/8991)
+ * Add support for localConfig at $appData/config.json.
+ [\#8983](https://github.com/vector-im/riot-web/pull/8983)
+
Changes in [1.0.3](https://github.com/vector-im/riot-web/releases/tag/v1.0.3) (2019-03-06)
==========================================================================================
[Full Changelog](https://github.com/vector-im/riot-web/compare/v1.0.2...v1.0.3)
diff --git a/README.md b/README.md
index 764a24aa83..6578e55ef2 100644
--- a/README.md
+++ b/README.md
@@ -3,6 +3,10 @@ Riot
Riot (formerly known as Vector) is a Matrix web client built using the [Matrix React SDK](https://github.com/matrix-org/matrix-react-sdk).
+Riot is officially supported on the web in modern versions of Chrome, Firefox, and Safari. Other browsers may work, however
+official support is not provided. For accessing Riot on an Android or iOS device, check out [riot-android](https://github.com/vector-im/riot-android)
+and [riot-ios](https://github.com/vector-im/riot-ios) - riot-web does not support mobile devices.
+
Getting Started
===============
@@ -240,6 +244,18 @@ yarn global add nativefier
nativefier https://riot.im/app/
```
+Desktop app configuration
+=========================
+
+To run multiple instances of the desktop app for different accounts, you can launch the executable with the `--profile` argument followed by a unique identifier, e.g `riot-web --profile Work` for it to run a separate profile and not interfere with the default one.
+
+To change the config.json for the desktop app, create a config file which will be used to override values in the config which ships in the package:
++ `%APPDATA%\$NAME\config.json` on Windows
++ `$XDG_CONFIG_HOME\$NAME\config.json` or `~/.config/$NAME/config.json` on Linux
++ `~Library/Application Support/$NAME/config.json` on macOS
+
+In the paths above, `$NAME` is typically `Riot`, unless you use `--profile $PROFILE` in which case it becomes `Riot-$PROFILE`.
+
Development
===========
diff --git a/electron_app/package.json b/electron_app/package.json
index 81985294b9..158783bd40 100644
--- a/electron_app/package.json
+++ b/electron_app/package.json
@@ -2,7 +2,7 @@
"name": "riot-web",
"productName": "Riot",
"main": "src/electron-main.js",
- "version": "1.0.3",
+ "version": "1.0.5",
"description": "A feature-rich client for Matrix.org",
"author": "New Vector Ltd.",
"dependencies": {
diff --git a/electron_app/src/vectormenu.js b/electron_app/src/vectormenu.js
index ce35cf7c83..a8f998befc 100644
--- a/electron_app/src/vectormenu.js
+++ b/electron_app/src/vectormenu.js
@@ -57,8 +57,8 @@ const template = [
role: 'help',
submenu: [
{
- label: 'riot.im',
- click() { shell.openExternal('https://riot.im/'); },
+ label: 'Riot Help',
+ click() { shell.openExternal('https://about.riot.im/help'); },
},
],
},
diff --git a/karma.conf.js b/karma.conf.js
index 4cb9a72956..610541a566 100644
--- a/karma.conf.js
+++ b/karma.conf.js
@@ -138,10 +138,10 @@ module.exports = function (config) {
],
customLaunchers: {
- 'ChromeHeadless': {
+ 'VectorChromeHeadless': {
base: 'Chrome',
flags: [
- // '--no-sandbox',
+ '--no-sandbox',
// See https://chromium.googlesource.com/chromium/src/+/lkgr/headless/README.md
'--headless',
'--disable-gpu',
diff --git a/package.json b/package.json
index e2af18b57b..40ace117ff 100644
--- a/package.json
+++ b/package.json
@@ -2,7 +2,7 @@
"name": "riot-web",
"productName": "Riot",
"main": "electron_app/src/electron-main.js",
- "version": "1.0.3",
+ "version": "1.0.5",
"description": "A feature-rich client for Matrix.org",
"author": "New Vector Ltd.",
"repository": {
@@ -56,7 +56,7 @@
"lintall": "eslint src/ test/",
"clean": "rimraf lib webapp electron_app/dist",
"prepare": "yarn clean && yarn build:compile",
- "test": "karma start --single-run=true --autoWatch=false --browsers ChromeHeadless",
+ "test": "karma start --single-run=true --autoWatch=false --browsers VectorChromeHeadless",
"test-multi": "karma start"
},
"dependencies": {
@@ -70,8 +70,8 @@
"gemini-scrollbar": "github:matrix-org/gemini-scrollbar#b302279",
"gfm.css": "^1.1.2",
"highlight.js": "^9.13.1",
- "matrix-js-sdk": "1.0.1",
- "matrix-react-sdk": "1.0.3",
+ "matrix-js-sdk": "1.0.2",
+ "matrix-react-sdk": "1.0.5",
"modernizr": "^3.6.0",
"olm": "https://matrix.org/packages/npm/olm/olm-3.1.0-pre1.tgz",
"prop-types": "^15.6.2",
@@ -117,7 +117,7 @@
"html-webpack-plugin": "^3.2.0",
"json-loader": "^0.5.3",
"karma": "^3.1.2",
- "karma-chrome-launcher": "^0.2.3",
+ "karma-chrome-launcher": "^2.2.0",
"karma-cli": "^1.0.1",
"karma-junit-reporter": "^2.0.0",
"karma-logcapture-reporter": "0.0.1",
diff --git a/release.sh b/release.sh
index ff3e2ce6dc..33b3676f1b 100755
--- a/release.sh
+++ b/release.sh
@@ -41,7 +41,7 @@ tag="v${release}"
echo "electron yarn version"
cd electron_app
-yarn version --no-git-tag-version "$release"
+yarn version --no-git-tag-version --new-version "$release"
git commit package.json -m "$tag"
cd ..
diff --git a/scripts/fetch-develop.deps.sh b/scripts/fetch-develop.deps.sh
index 7fbb76f4ab..e741971842 100755
--- a/scripts/fetch-develop.deps.sh
+++ b/scripts/fetch-develop.deps.sh
@@ -6,7 +6,7 @@
# the branch the current checkout is on, use that branch. Otherwise,
# use develop.
-set -e
+set -ex
GIT_CLONE_ARGS=("$@")
[ -z "$defbranch" ] && defbranch="develop"
@@ -25,7 +25,7 @@ function clone() {
if [ -n "$branch" ]
then
echo "Trying to use $org/$repo#$branch"
- git clone https://github.com/$org/$repo.git $repo --branch $branch \
+ git clone git://github.com/$org/$repo.git $repo --branch $branch \
"${GIT_CLONE_ARGS[@]}"
return $?
fi
@@ -33,27 +33,39 @@ function clone() {
}
function dodep() {
- org=$1
- repo=$2
- rm -rf $repo
+ deforg=$1
+ defrepo=$2
+ rm -rf $defrepo
# Try the PR author's branch in case it exists on the deps as well.
# Try the target branch of the push or PR.
# Use the default branch as the last resort.
- if [[ "$TRAVIS" == true ]]; then
- clone $org $repo $TRAVIS_PULL_REQUEST_BRANCH ||
- clone $org $repo $TRAVIS_BRANCH ||
- clone $org $repo $defbranch ||
+ if [[ "$BUILDKITE" == true ]]; then
+ # If BUILDKITE_BRANCH is set, it will contain either:
+ # * "branch" when the author's branch and target branch are in the same repo
+ # * "author:branch" when the author's branch is in their fork
+ # We can split on `:` into an array to check.
+ BUILDKITE_BRANCH_ARRAY=(${BUILDKITE_BRANCH//:/ })
+ if [[ "${#BUILDKITE_BRANCH_ARRAY[@]}" == "2" ]]; then
+ prAuthor=${BUILDKITE_BRANCH_ARRAY[0]}
+ prBranch=${BUILDKITE_BRANCH_ARRAY[1]}
+ else
+ prAuthor=$deforg
+ prBranch=$BUILDKITE_BRANCH
+ fi
+ clone $prAuthor $defrepo $prBranch ||
+ clone $deforg $defrepo $BUILDKITE_PULL_REQUEST_BASE_BRANCH ||
+ clone $deforg $defrepo $defbranch ||
return $?
else
- clone $org $repo $ghprbSourceBranch ||
- clone $org $repo $GIT_BRANCH ||
- clone $org $repo `git rev-parse --abbrev-ref HEAD` ||
- clone $org $repo $defbranch ||
+ clone $deforg $defrepo $ghprbSourceBranch ||
+ clone $deforg $defrepo $GIT_BRANCH ||
+ clone $deforg $defrepo `git rev-parse --abbrev-ref HEAD` ||
+ clone $deforg $defrepo $defbranch ||
return $?
fi
- echo "$repo set to branch "`git -C "$repo" rev-parse --abbrev-ref HEAD`
+ echo "$defrepo set to branch "`git -C "$defrepo" rev-parse --abbrev-ref HEAD`
}
##############################
diff --git a/src/i18n/strings/en_US.json b/src/i18n/strings/en_US.json
index e5b060cf70..ce05de0f80 100644
--- a/src/i18n/strings/en_US.json
+++ b/src/i18n/strings/en_US.json
@@ -35,5 +35,12 @@
"Riot/Web & Desktop chat": "Riot/Web & Desktop chat",
"Riot/iOS & matrix-ios-sdk chat": "Riot/iOS & matrix-ios-sdk chat",
"You can use the custom server options to sign into other Matrix servers by specifying a different Home server URL.
This allows you to use Riot with an existing Matrix account on a different home server.
You can also set a custom identity server but you won't be able to invite users by email address, or be invited by email address yourself.": "You can use the custom server options to sign into other Matrix servers by specifying a different Home server URL.
This allows you to use Riot with an existing Matrix account on a different home server.
You can also set a custom identity server but you won't be able to invite users by email address, or be invited by email address yourself.",
- "Co-ordination for Riot translators": "Co-ordination for Riot translators"
+ "Co-ordination for Riot translators": "Co-ordination for Riot translators",
+ "You can use the custom server options to sign into other Matrix servers by specifying a different homeserver URL. This allows you to use Riot with an existing Matrix account on a different homeserver.": "You can use the custom server options to sign into other Matrix servers by specifying a different homeserver URL. This allows you to use Riot with an existing Matrix account on a different homeserver.",
+ "You can also set a custom identity server, but you won't be able to invite users by email address, or be invited by email address yourself.": "You can also set a custom identity server, but you won't be able to invite users by email address, or be invited by email address yourself.",
+ "Sign In": "Sign In",
+ "Create Account": "Create Account",
+ "Need help?": "Need help?",
+ "Explore rooms": "Explore rooms",
+ "Room Directory": "Room Directory"
}
diff --git a/src/i18n/strings/ga.json b/src/i18n/strings/ga.json
new file mode 100644
index 0000000000..dacb5c7083
--- /dev/null
+++ b/src/i18n/strings/ga.json
@@ -0,0 +1,21 @@
+{
+ "Riot Desktop on %(platformName)s": "Leagan gnáthríomhaire Riot ar %(platformName)s",
+ "Unknown device": "Gléas nár aithníodh",
+ "%(appName)s via %(browserName)s on %(osName)s": "%(appName)s trí %(browserName)s ar %(osName)s",
+ "You need to be using HTTPS to place a screen-sharing call.": "Ní mór HTTPS a úsáid chun glaoch ina dhéantar an scáileán a roinnt a chuir.",
+ "powered by Matrix": "á thiomáint le Matrix",
+ "Custom Server Options": "Socruithe do fhreastalaí saincheaptha",
+ "You can use the custom server options to sign into other Matrix servers by specifying a different homeserver URL. This allows you to use Riot with an existing Matrix account on a different homeserver.": "Is féidir na socruithe do fhreastalaí saincheaptha a úsáid chun síniú isteach le freastalaí Matrix eile tríd URL freastalaí ar leith a sholáthar. Cuirfidh sé seo ar do chumas Riot a úsáid le cuntas Matrix atá ar taifead ag freastalaí difriúil.",
+ "You can also set a custom identity server, but you won't be able to invite users by email address, or be invited by email address yourself.": "Freisin is féidir freastalaí aitheantais saincheaptha a úsáid, ach le seo ní bheidh tú in ann cuireadh a thabhairt do dhaoine tríd seoladh ríomhphoist a sholáthar, nó glacadh le cuireadh trí ríomhphoist ach an oiread.",
+ "Dismiss": "Cuir uait",
+ "Welcome to Riot.im": "Fáilte chuig Riot.im",
+ "Decentralised, encrypted chat & collaboration powered by [matrix]": "Meán comhrá agus comhoibriú neamhláraithe agus criptithe á thiomáint le [matrix]",
+ "Sign In": "Sínigh Isteach",
+ "Create Account": "Déan cuntas a chruthú",
+ "Need help?": "An bhfuil cabhair uait?",
+ "Chat with Riot Bot": "Labhair le Riot Bot",
+ "Explore rooms": "Breathnaigh thart ar na seomraí",
+ "Room Directory": "Eolaire na Seomraí",
+ "Search the room directory": "Cuardaigh eolaire na seomraí",
+ "Get started with some tips from Riot Bot!": "Tosaigh le nod ó Riot Bot!"
+}
diff --git a/yarn.lock b/yarn.lock
index 55e137cf2c..98880ba26f 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -5336,10 +5336,10 @@ jsx-ast-utils@^2.0.1:
dependencies:
array-includes "^3.0.3"
-karma-chrome-launcher@^0.2.3:
- version "0.2.3"
- resolved "https://registry.yarnpkg.com/karma-chrome-launcher/-/karma-chrome-launcher-0.2.3.tgz#4c6d700d163a9d34c618efd87918be49e7a4a8c9"
- integrity sha1-TG1wDRY6nTTGGO/YeRi+SeekqMk=
+karma-chrome-launcher@^2.2.0:
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/karma-chrome-launcher/-/karma-chrome-launcher-2.2.0.tgz#cf1b9d07136cc18fe239327d24654c3dbc368acf"
+ integrity sha512-uf/ZVpAabDBPvdPdveyk1EPgbnloPvFFGgmRhYLTDH7gEB4nZdSBk8yTU47w1g/drLSx5uMOkjKk7IWKfWg/+w==
dependencies:
fs-access "^1.0.0"
which "^1.2.1"
@@ -5732,10 +5732,10 @@ math-random@^1.0.1:
resolved "https://registry.yarnpkg.com/math-random/-/math-random-1.0.1.tgz#8b3aac588b8a66e4975e3cdea67f7bb329601fac"
integrity sha1-izqsWIuKZuSXXjzepn97sylgH6w=
-matrix-js-sdk@1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/matrix-js-sdk/-/matrix-js-sdk-1.0.1.tgz#783efc501e2521997869cfe8e719134d9e10a45c"
- integrity sha512-+ErnXHfkxOoRHUYbY/R+2ZHvPKdPCx/eoYjb2Oy7L9pBqCNllI0WRVsro6oqRJQs0krVP8blyIjWOJynWSw96g==
+matrix-js-sdk@1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/matrix-js-sdk/-/matrix-js-sdk-1.0.2.tgz#482d8d2076c7565cf7354722e96c9971e372182a"
+ integrity sha512-4WCBJFSoOLelHi7IUAcVxPQF+gTc/i9NUKZ77qwUfcZVED8VKTIyWZnwpeLgocK5gAOJV9fkAyO5mny9SkZaGg==
dependencies:
another-json "^0.2.0"
babel-runtime "^6.26.0"
@@ -5757,10 +5757,10 @@ matrix-mock-request@^1.2.2:
bluebird "^3.5.0"
expect "^1.20.2"
-matrix-react-sdk@1.0.3:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/matrix-react-sdk/-/matrix-react-sdk-1.0.3.tgz#e2d027a68e47461abcad779219b028eee9399a53"
- integrity sha512-Igc9ChLpRbN0E/bwA3HMhiYo2c21RA7dQ+eoZ9XEN6vh87ZJz0rUidqmAdvgZQycxW1lZWQ8Aj7/kefHeRswDA==
+matrix-react-sdk@1.0.4:
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/matrix-react-sdk/-/matrix-react-sdk-1.0.4.tgz#cf6ef3d68f29af8ba590ceea74b20979522ef9cb"
+ integrity sha512-7qpnyXNnGvO/i+TPMoYayI4rWy6+hxnpjInx5Odgkw7PhCiapiYRU4poQsgVnOomkihrUWxuksWUmnkGhJ6O+Q==
dependencies:
babel-plugin-syntax-dynamic-import "^6.18.0"
babel-runtime "^6.26.0"
@@ -5786,11 +5786,12 @@ matrix-react-sdk@1.0.3:
linkifyjs "^2.1.6"
lodash "^4.13.1"
lolex "2.3.2"
- matrix-js-sdk "1.0.1"
+ matrix-js-sdk "1.0.2"
optimist "^0.6.1"
pako "^1.0.5"
prop-types "^15.5.8"
qrcode-react "^0.1.16"
+ qs "^6.6.0"
querystring "^0.2.0"
react "^15.6.0"
react-addons-css-transition-group "15.3.2"
@@ -7113,6 +7114,11 @@ qs@6.5.2, qs@^6.5.2, qs@~6.5.2:
resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36"
integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==
+qs@^6.6.0:
+ version "6.6.0"
+ resolved "https://registry.yarnpkg.com/qs/-/qs-6.6.0.tgz#a99c0f69a8d26bf7ef012f871cdabb0aee4424c2"
+ integrity sha512-KIJqT9jQJDQx5h5uAVPimw6yVg2SekOKu959OCtktD3FjzbpvaPr8i4zzg07DOMz+igA4W/aNM7OV8H37pFYfA==
+
querystring-es3@^0.2.0:
version "0.2.1"
resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73"