diff --git a/.github/ISSUE_TEMPLATE/1-bug-report.yml b/.github/ISSUE_TEMPLATE/1-bug-report.yml
index dfdbbb9825..f889034b67 100644
--- a/.github/ISSUE_TEMPLATE/1-bug-report.yml
+++ b/.github/ISSUE_TEMPLATE/1-bug-report.yml
@@ -23,7 +23,7 @@ body:
id: reproduction
attributes:
label: Test code to reproduce
- description: Provide a failing test or repo we can run. You can fork [this repo](https://github.com/cypress-io/cypress-test-tiny), set up a failing test, then link to your fork.
+ description: Provide a failing test or repo we can run. You can fork [this repo](https://github.com/cypress-io/cypress-test-tiny), set up a failing test, then link to your fork. If you have never done this before, watch [this video](https://youtu.be/NnriKHmj5T8) for example.
placeholder: Here is my failing test code and the app code to run the tests on...
validations:
required: true
@@ -39,4 +39,4 @@ body:
id: other
attributes:
label: Other
- placeholder: Any other details?
\ No newline at end of file
+ placeholder: Any other details?
diff --git a/circle.yml b/circle.yml
index 938b0365e5..809c60669f 100644
--- a/circle.yml
+++ b/circle.yml
@@ -2127,15 +2127,19 @@ linux-workflow: &linux-workflow
requires:
- build
- system-tests-chrome:
+ context: test-runner:performance-tracking
requires:
- system-tests-node-modules-install
- system-tests-electron:
+ context: test-runner:performance-tracking
requires:
- system-tests-node-modules-install
- system-tests-firefox:
+ context: test-runner:performance-tracking
requires:
- system-tests-node-modules-install
- system-tests-non-root:
+ context: test-runner:performance-tracking
executor: non-root-docker-user
requires:
- system-tests-node-modules-install
diff --git a/guides/release-process.md b/guides/release-process.md
index fc1b95d186..86d342c092 100644
--- a/guides/release-process.md
+++ b/guides/release-process.md
@@ -67,7 +67,13 @@ of Cypress. You can see the progress of the test projects by opening the status

-Once the `develop` branch for all test projects are reliably passing with the new changes, publishing can proceed.
+#### :bangbang: Important :bangbang:
+
+The `linux x64`, `win32 x64`, and `darwin x64` artifacts produced by CI are all placed in the same directory on the CDN. The version that was built last will overwrite the other versions in the directory. Until work is done to complete [#19771](https://github.com/cypress-io/cypress/issues/19771), you must ensure that the `linux` workflow publishes its artifacts **after** the `windows`/`mac` workflows. To guarantee this, you can re-run the `create-build-artifacts` job for the `linux` workflow within CircleCI after the initial builds have completed.
+
+
+
+Once the `develop` branch for all test projects are reliably passing with the new changes and the `linux` binary is present at `https://cdn.cypress.io/beta/npm/X.Y.Z//cypress.tgz`, publishing can proceed.
### Steps to Publish a New Version
@@ -89,6 +95,7 @@ In the following instructions, "X.Y.Z" is used to denote the [next version of Cy

2. Scroll down past the changes to the comments. The first comment should be a `cypress-bot` comment that includes a line beginning `npm install ...`. Grab the `https://cdn.../npm/X.Y.Z//cypress.tgz` link.

+ - Make sure the linux binaries are present at that location. See [Before Publishing a New Version](#before-publishing-a-new-version).
- Publish to the npm registry straight from the URL:
```shell
@@ -107,6 +114,8 @@ In the following instructions, "X.Y.Z" is used to denote the [next version of Cy
- Run a quick, manual smoke test:
- `cypress open`
- Go into a project, run a quick test, make sure things look right
+ - Install the new version into an established project and run the tests there
+ - [cypress-realworld-app](https://github.com/cypress-io/cypress-realworld-app) uses yarn and represents a typical consumer implementation.
- Optionally, do more thorough tests:
- Trigger test projects from the command line (if you have the appropriate permissions)
diff --git a/packages/driver/cypress/e2e/commands/actions/selectFile.cy.js b/packages/driver/cypress/e2e/commands/actions/selectFile.cy.js
index a399a51a65..cf73e534ed 100644
--- a/packages/driver/cypress/e2e/commands/actions/selectFile.cy.js
+++ b/packages/driver/cypress/e2e/commands/actions/selectFile.cy.js
@@ -218,6 +218,10 @@ describe('src/cy/commands/actions/selectFile', () => {
cy.fixture('valid.json').as('myFixture')
cy.get('#basic').selectFile('@myFixture')
+ .then((input) => {
+ expect(input[0].files[0].name).to.eq('valid.json')
+ expect(input[0].files[0].type).to.eq('application/json')
+ })
.then(getFileContents)
.then((contents) => {
// Because json files are loaded as objects, they get reencoded before
@@ -232,6 +236,10 @@ describe('src/cy/commands/actions/selectFile', () => {
cy.readFile('cypress/fixtures/valid.json', { encoding: null }).as('myFile')
cy.get('#basic').selectFile('@myFile')
+ .then((input) => {
+ expect(input[0].files[0].name).to.eq('valid.json')
+ expect(input[0].files[0].type).to.eq('application/json')
+ })
.then(getFileContents)
.then((contents) => {
expect(contents[0]).to.eql(validJsonString)
@@ -251,6 +259,32 @@ describe('src/cy/commands/actions/selectFile', () => {
.then((input) => {
expect(input[0].files[0].name).to.eq('valid.json')
expect(input[0].files[1].name).to.eq('app.js')
+ expect(input[0].files[0].type).to.eq('application/json')
+ expect(input[0].files[1].type).to.eq('application/javascript')
+ })
+ })
+
+ it('allows users to override the inferred filenames and mimetypes', () => {
+ cy.fixture('valid.json').as('myFixture')
+
+ cy.get('#multiple').selectFile([{
+ contents: 'cypress/fixtures/valid.json',
+ fileName: '1.png',
+ },
+ {
+ contents: '@myFixture',
+ fileName: '2.png',
+ mimeType: 'text/plain',
+ }])
+ .then((input) => {
+ expect(input[0].files[0].name).to.eq('1.png')
+ expect(input[0].files[1].name).to.eq('2.png')
+ // The mimetype should be inferred from the user-supplied filename,
+ // rather than the actual path
+ expect(input[0].files[0].type).to.eq('image/png')
+ // And ever if they supply a filename, explicit mimetype
+ // should always take precedent.
+ expect(input[0].files[1].type).to.eq('text/plain')
})
})
})
diff --git a/packages/driver/src/cy/commands/actions/selectFile.ts b/packages/driver/src/cy/commands/actions/selectFile.ts
index f40cbda5bd..edbc7d4bad 100644
--- a/packages/driver/src/cy/commands/actions/selectFile.ts
+++ b/packages/driver/src/cy/commands/actions/selectFile.ts
@@ -142,6 +142,7 @@ export default (Commands, Cypress, cy, state, config) => {
}
return {
+ fileName: aliasObj.fileName,
...file,
contents: aliasObj.subject,
}
diff --git a/packages/driver/src/cy/commands/aliasing.ts b/packages/driver/src/cy/commands/aliasing.ts
index 9ba767057b..308dbec789 100644
--- a/packages/driver/src/cy/commands/aliasing.ts
+++ b/packages/driver/src/cy/commands/aliasing.ts
@@ -42,7 +42,9 @@ export default function (Commands, Cypress, cy, state) {
}
}
- cy.addAlias(ctx, { subject, command: prev, alias: str })
+ const fileName = prev.get('fileName')
+
+ cy.addAlias(ctx, { subject, command: prev, alias: str, fileName })
return subject
},
diff --git a/packages/driver/src/cy/commands/files.ts b/packages/driver/src/cy/commands/files.ts
index 5f0d2e8cb8..d88b1279e7 100644
--- a/packages/driver/src/cy/commands/files.ts
+++ b/packages/driver/src/cy/commands/files.ts
@@ -1,9 +1,10 @@
// @ts-nocheck
import _ from 'lodash'
+import { basename } from 'path'
import $errUtils from '../../cypress/error_utils'
-export default (Commands, Cypress, cy) => {
+export default (Commands, Cypress, cy, state) => {
Commands.addAll({
readFile (file, encoding, options = {}) {
let userOptions = options
@@ -78,6 +79,9 @@ export default (Commands, Cypress, cy) => {
contents = Buffer.from(contents)
}
+ // Add the filename as a symbol, in case we need it later (such as when storing an alias)
+ state('current').set('fileName', basename(filePath))
+
consoleProps['File Path'] = filePath
consoleProps['Contents'] = contents
diff --git a/packages/driver/src/cy/commands/fixtures.ts b/packages/driver/src/cy/commands/fixtures.ts
index 8af57b71fc..c4a84b40e4 100644
--- a/packages/driver/src/cy/commands/fixtures.ts
+++ b/packages/driver/src/cy/commands/fixtures.ts
@@ -2,6 +2,7 @@
import _ from 'lodash'
import Promise from 'bluebird'
+import { basename } from 'path'
import $errUtils from '../../cypress/error_utils'
@@ -84,6 +85,9 @@ export default (Commands, Cypress, cy, state, config) => {
// so it can just be returned next time
cache[fixture] = response
+ // Add the filename as a symbol, in case we need it later (such as when storing an alias)
+ state('current').set('fileName', basename(fixture))
+
// return the cloned response
return clone(response)
}).catch(Promise.TimeoutError, () => {
diff --git a/packages/server/package.json b/packages/server/package.json
index a1db2563c5..c3e5e70e11 100644
--- a/packages/server/package.json
+++ b/packages/server/package.json
@@ -151,6 +151,7 @@
"@types/chai-as-promised": "7.1.2",
"@types/chrome": "0.0.101",
"@types/http-proxy": "1.17.4",
+ "@types/node": "14.14.31",
"awesome-typescript-loader": "5.2.1",
"babel-loader": "8.1.0",
"body-parser": "1.19.0",
diff --git a/packages/socket/package.json b/packages/socket/package.json
index 2f24614659..62f43f6870 100644
--- a/packages/socket/package.json
+++ b/packages/socket/package.json
@@ -16,7 +16,7 @@
},
"dependencies": {
"circular-json": "0.5.9",
- "engine.io": "5.0.0",
+ "engine.io": "5.2.1",
"engine.io-parser": "4.0.2",
"socket.io": "4.0.1",
"socket.io-client": "4.0.1"
diff --git a/system-tests/lib/performance-reporter.js b/system-tests/lib/performance-reporter.js
new file mode 100644
index 0000000000..8200ae4eff
--- /dev/null
+++ b/system-tests/lib/performance-reporter.js
@@ -0,0 +1,82 @@
+const path = require('path')
+const chalk = require('chalk')
+const Libhoney = require('libhoney')
+
+const pkg = require('@packages/root')
+const ciProvider = require('@packages/server/lib/util/ci_provider')
+const { commitInfo } = require('@cypress/commit-info')
+
+class StatsdReporter {
+ constructor (runner) {
+ if (!process.env.HONEYCOMB_API_KEY) {
+ return
+ }
+
+ console.log(chalk.green('Reporting to honeycomb'))
+
+ let branch
+ let commitSha
+
+ this.honey = new Libhoney({
+ dataset: 'systemtest-performance',
+ writeKey: process.env.HONEYCOMB_API_KEY,
+ })
+
+ commitInfo().then((commitInformation) => {
+ const ciInformation = ciProvider.commitParams() || {}
+
+ branch = commitInformation.branch || ciInformation.branch
+ commitSha = commitInformation.sha || ciInformation.sha
+ })
+
+ runner.on('test', (test) => {
+ test.wallclockStart = Date.now()
+ })
+
+ runner.on('test end', (test) => {
+ // Skipped tests never get a 'start' event, but they still get 'test end' somehow.
+ if (!test.state || test.state === 'skipped') {
+ return
+ }
+
+ const title = test.titlePath().join(' / ')
+ // This regex pulls apart a string like `e2e async timeouts / failing1 [electron]`
+ // into `e2e async timeouts / failing1` and `electron`, letting us use the same
+ // test name for all browsers, with the browser as a separate field.
+ // The browser capture group is optional because some tests aren't browser specific,
+ // in which case it will be undefined and not passed as a field to honeycomb.
+ const [, testTitle, browser] = title.match(/(.+?)(?: \[([a-z]+)\])?$/)
+
+ const honeycombEvent = this.honey.newEvent()
+
+ honeycombEvent.timestamp = test.wallclockStart
+ honeycombEvent.add({
+ test: testTitle,
+ specFile: path.basename(test.file),
+ browser,
+ state: test.state,
+ err: test.err && test.err.message,
+ errStack: test.err && test.err.stack,
+ durationMs: Date.now() - test.wallclockStart,
+ mochaDurationMs: test.duration,
+ branch,
+ commitSha,
+ buildUrl: process.env.CIRCLE_BUILD_URL,
+ platform: process.platform,
+ arch: process.arch,
+ version: pkg.version,
+ })
+
+ honeycombEvent.send()
+ })
+ }
+
+ // If there is no done callback, then mocha-multi-reporter will kill the process without waiting for our honeycomb post to complete.
+ done (failures, callback) {
+ if (this.honey) {
+ this.honey.flush().then(callback)
+ }
+ }
+}
+
+module.exports = StatsdReporter
diff --git a/system-tests/lib/spec_helper.js b/system-tests/lib/spec_helper.js
index 59de215e96..92bc01fb44 100644
--- a/system-tests/lib/spec_helper.js
+++ b/system-tests/lib/spec_helper.js
@@ -101,6 +101,7 @@ beforeEach(function () {
nock.disableNetConnect()
nock.enableNetConnect(/localhost/)
+ nock.enableNetConnect(/api.honeycomb.io/)
// always clean up the cache
// before each test
diff --git a/system-tests/package.json b/system-tests/package.json
index f99f169ff2..df04910900 100644
--- a/system-tests/package.json
+++ b/system-tests/package.json
@@ -55,6 +55,7 @@
"human-interval": "1.0.0",
"image-size": "0.8.3",
"lazy-ass": "1.6.0",
+ "libhoney": "3.0.0",
"lodash": "^4.17.21",
"mocha": "7.1.0",
"mocha-banner": "1.1.2",
diff --git a/system-tests/scripts/mocha-reporter-config.json b/system-tests/scripts/mocha-reporter-config.json
new file mode 100644
index 0000000000..f7a0ee275a
--- /dev/null
+++ b/system-tests/scripts/mocha-reporter-config.json
@@ -0,0 +1,6 @@
+{
+ "reporterEnabled": "spec, mocha-junit-reporter, ../../system-tests/lib/performance-reporter.js",
+ "mochaJunitReporterReporterOptions": {
+ "mochaFile": "/tmp/cypress/junit/test-results.[hash].xml"
+ }
+}
diff --git a/system-tests/scripts/run.js b/system-tests/scripts/run.js
index 7cc217b41a..d89fefa78e 100644
--- a/system-tests/scripts/run.js
+++ b/system-tests/scripts/run.js
@@ -109,7 +109,7 @@ commandAndArguments.args.push(
'--reporter',
'mocha-multi-reporters',
'--reporter-options',
- 'configFile=../../mocha-reporter-config.json',
+ 'configFile=../../system-tests/scripts/mocha-reporter-config.json',
'--extension=js,ts',
// restore mocha 2.x behavior to force end process after spec run
'--exit',
diff --git a/yarn.lock b/yarn.lock
index 800357c02c..bd62672a72 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -10988,7 +10988,7 @@ agent-base@4, agent-base@^4.3.0:
dependencies:
es6-promisify "^5.0.0"
-agent-base@6, agent-base@^6.0.2:
+agent-base@6, agent-base@^6.0.0, agent-base@^6.0.2:
version "6.0.2"
resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77"
integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==
@@ -11934,6 +11934,13 @@ ast-types@0.9.6:
resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.9.6.tgz#102c9e9e9005d3e7e3829bf0c4fa24ee862ee9b9"
integrity sha1-ECyenpAF0+fjgpvwxPok7oYu6bk=
+ast-types@^0.13.2:
+ version "0.13.4"
+ resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.13.4.tgz#ee0d77b343263965ecc3fb62da16e7222b2b6782"
+ integrity sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==
+ dependencies:
+ tslib "^2.0.1"
+
astral-regex@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9"
@@ -14166,11 +14173,12 @@ bytes@3.0.0:
resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048"
integrity sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=
-bytes@3.1.0, bytes@^3.0.0:
+bytes@3.1.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6"
integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==
+<<<<<<< HEAD
c8@^7.10.0:
version "7.10.0"
resolved "https://registry.yarnpkg.com/c8/-/c8-7.10.0.tgz#c539ebb15d246b03b0c887165982c49293958a73"
@@ -14193,6 +14201,12 @@ cac@^6.7.2, cac@^6.7.3:
version "6.7.3"
resolved "https://registry.yarnpkg.com/cac/-/cac-6.7.3.tgz#10410b8611677990cc2e3c8b576d471c1d71b768"
integrity sha512-ECVqVZh74qgSuZG9YOt2OJPI3wGcf+EwwuF/XIOYqZBD0KZYLtgPWqFPxmDPQ6joxI1nOlvVgRV6VT53Ooyocg==
+=======
+bytes@3.1.1, bytes@^3.0.0:
+ version "3.1.1"
+ resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.1.tgz#3f018291cb4cbad9accb6e6970bca9c8889e879a"
+ integrity sha512-dWe4nWO/ruEOY7HkUJ5gFt1DCFV9zPRoJr8pV0/ASQermOZjtq8jMjOprC0Kd10GLN+l7xaUPvxzJFWtxGu8Fg==
+>>>>>>> develop
cacache@15.0.5:
version "15.0.5"
@@ -17362,7 +17376,7 @@ data-uri-to-buffer@2.0.1:
dependencies:
"@types/node" "^8.0.7"
-data-uri-to-buffer@3.0.1:
+data-uri-to-buffer@3, data-uri-to-buffer@3.0.1:
version "3.0.1"
resolved "https://registry.yarnpkg.com/data-uri-to-buffer/-/data-uri-to-buffer-3.0.1.tgz#594b8973938c5bc2c33046535785341abc4f3636"
integrity sha512-WboRycPNsVw3B3TL559F7kuBUM4d8CgMEvk6xEJlOp7OBPjt6G7z8WMWlD2rOFZLk6OYfFIUGsCOWzcQH9K2og==
@@ -17754,6 +17768,16 @@ defs@~1.1.0:
tryor "~0.1.2"
yargs "~3.27.0"
+degenerator@^3.0.1:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/degenerator/-/degenerator-3.0.1.tgz#7ef78ec0c8577a544477308ddf1d2d6e88d51f5b"
+ integrity sha512-LFsIFEeLPlKvAKXu7j3ssIG6RT0TbI7/GhsqrI0DnHASEQjXQ0LUSYcjJteGgRGmZbl1TnMSxpNQIAiJ7Du5TQ==
+ dependencies:
+ ast-types "^0.13.2"
+ escodegen "^1.8.1"
+ esprima "^4.0.0"
+ vm2 "^3.9.3"
+
del@3.0.0, del@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/del/-/del-3.0.0.tgz#53ecf699ffcbcb39637691ab13baf160819766e5"
@@ -18807,10 +18831,10 @@ engine.io-parser@~2.2.0:
blob "0.0.5"
has-binary2 "~1.0.2"
-engine.io@5.0.0, engine.io@~5.0.0:
- version "5.0.0"
- resolved "https://registry.npmjs.org/engine.io/-/engine.io-5.0.0.tgz#470dc94a8a4907fa4d2cd1fa6611426afcee61bf"
- integrity sha512-BATIdDV3H1SrE9/u2BAotvsmjJg0t1P4+vGedImSs1lkFAtQdvk4Ev1y4LDiPF7BPWgXWEG+NDY+nLvW3UrMWw==
+engine.io@5.2.1:
+ version "5.2.1"
+ resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-5.2.1.tgz#3f84baf13471d35a6f3284a4effcd04c2f73c8a1"
+ integrity sha512-hyNxjVgWp619QMfqi/+/6/LQF+ueOIWeVOza3TeyvxUGjeT9U/xPkkHW/NJNuhbStrxMujEoMadoc2EY7DDEnw==
dependencies:
accepts "~1.3.4"
base64id "2.0.0"
@@ -18832,6 +18856,19 @@ engine.io@~3.5.0:
engine.io-parser "~2.2.0"
ws "~7.4.2"
+engine.io@~5.0.0:
+ version "5.0.0"
+ resolved "https://registry.npmjs.org/engine.io/-/engine.io-5.0.0.tgz#470dc94a8a4907fa4d2cd1fa6611426afcee61bf"
+ integrity sha512-BATIdDV3H1SrE9/u2BAotvsmjJg0t1P4+vGedImSs1lkFAtQdvk4Ev1y4LDiPF7BPWgXWEG+NDY+nLvW3UrMWw==
+ dependencies:
+ accepts "~1.3.4"
+ base64id "2.0.0"
+ cookie "~0.4.1"
+ cors "~2.8.5"
+ debug "~4.3.1"
+ engine.io-parser "~4.0.0"
+ ws "~7.4.2"
+
enhanced-resolve@4.1.0:
version "4.1.0"
resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.1.0.tgz#41c7e0bfdfe74ac1ffe1e57ad6a5c6c9f3742a7f"
@@ -19226,7 +19263,7 @@ escodegen@1.8.x:
optionalDependencies:
source-map "~0.2.0"
-escodegen@^1.11.0, escodegen@^1.9.1:
+escodegen@^1.11.0, escodegen@^1.8.1, escodegen@^1.9.1:
version "1.14.3"
resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.14.3.tgz#4e7b81fba61581dc97582ed78cab7f0e8d63f503"
integrity sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==
@@ -20175,6 +20212,11 @@ extend@^3.0.0, extend@~3.0.2:
resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa"
integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==
+extend@~2.0.0:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/extend/-/extend-2.0.2.tgz#1b74985400171b85554894459c978de6ef453ab7"
+ integrity sha512-AgFD4VU+lVLP6vjnlNfF7OeInLTyeyckCNPEsuxz1vi786UuK/nk6ynPuhn/h+Ju9++TQyr5EpLRI14fc1QtTQ==
+
external-editor@^2.0.4:
version "2.2.0"
resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-2.2.0.tgz#045511cfd8d133f3846673d1047c154e214ad3d5"
@@ -20578,6 +20620,11 @@ file-uri-to-path@1.0.0:
resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd"
integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==
+file-uri-to-path@2:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-2.0.0.tgz#7b415aeba227d575851e0a5b0c640d7656403fba"
+ integrity sha512-hjPFI8oE/2iQPVe4gbrJ73Pp+Xfub2+WI2LlXDbsaJBwT5wuMh35WNWVYYTpnz895shtwfyutMFLFywpQAFdLg==
+
filelist@^1.0.1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/filelist/-/filelist-1.0.2.tgz#80202f21462d4d1c2e214119b1807c1bc0380e5b"
@@ -21463,6 +21510,14 @@ fsu@^1.0.2:
resolved "https://registry.yarnpkg.com/fsu/-/fsu-1.1.1.tgz#bd36d3579907c59d85b257a75b836aa9e0c31834"
integrity sha512-xQVsnjJ/5pQtcKh+KjUoZGzVWn4uNkchxTF6Lwjr4Gf7nQr8fmUfhKJ62zE77+xQg9xnxi5KUps7XGs+VC986A==
+ftp@^0.3.10:
+ version "0.3.10"
+ resolved "https://registry.yarnpkg.com/ftp/-/ftp-0.3.10.tgz#9197d861ad8142f3e63d5a83bfe4c59f7330885d"
+ integrity sha1-kZfYYa2BQvPmPVqDv+TFn3MwiF0=
+ dependencies:
+ readable-stream "1.1.x"
+ xregexp "2.0.0"
+
function-bind@^1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d"
@@ -21705,6 +21760,18 @@ get-stream@^6.0.0:
resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.0.tgz#3e0012cb6827319da2706e601a1583e8629a6718"
integrity sha512-A1B3Bh1UmL0bidM/YX2NsCOTnGJePL9rO/M+Mw3m9f2gUpfokS0hi5Eah0WSUEWZdZhIZtMjkIYS7mDfOqNHbg==
+get-uri@3:
+ version "3.0.2"
+ resolved "https://registry.yarnpkg.com/get-uri/-/get-uri-3.0.2.tgz#f0ef1356faabc70e1f9404fa3b66b2ba9bfc725c"
+ integrity sha512-+5s0SJbGoyiJTZZ2JTpFPLMPSch72KEqGOTvQsBqg0RBWvwhWUSYZFAtz3TPW0GXJuLBJPts1E241iHg+VRfhg==
+ dependencies:
+ "@tootallnate/once" "1"
+ data-uri-to-buffer "3"
+ debug "4"
+ file-uri-to-path "2"
+ fs-extra "^8.1.0"
+ ftp "^0.3.10"
+
get-value@^2.0.3, get-value@^2.0.6:
version "2.0.6"
resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28"
@@ -23305,16 +23372,27 @@ http-errors@1.7.3, http-errors@~1.7.2:
statuses ">= 1.5.0 < 2"
toidentifier "1.0.0"
+<<<<<<< HEAD
http-errors@1.8.0, http-errors@^1.6.3:
version "1.8.0"
resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.8.0.tgz#75d1bbe497e1044f51e4ee9e704a62f28d336507"
integrity sha512-4I8r0C5JDhT5VkvI47QktDW75rNlGVsUf/8hzjCC/wkWI/jdTRmBb9aI7erSG82r1bjKY3F6k28WnsVxB1C73A==
+=======
+http-errors@1.8.1, http-errors@^1.6.3:
+ version "1.8.1"
+ resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.8.1.tgz#7c3f28577cbc8a207388455dbd62295ed07bd68c"
+ integrity sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==
+>>>>>>> develop
dependencies:
depd "~1.1.2"
inherits "2.0.4"
setprototypeof "1.2.0"
statuses ">= 1.5.0 < 2"
+<<<<<<< HEAD
toidentifier "1.0.0"
+=======
+ toidentifier "1.0.1"
+>>>>>>> develop
http-errors@~1.6.2:
version "1.6.3"
@@ -23454,7 +23532,7 @@ https-proxy-agent@3.0.1:
agent-base "^4.3.0"
debug "^3.1.0"
-https-proxy-agent@5.0.0, https-proxy-agent@^5.0.0:
+https-proxy-agent@5, https-proxy-agent@5.0.0, https-proxy-agent@^5.0.0:
version "5.0.0"
resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz#e2a90542abb68a762e0a0850f6c9edadfd8506b2"
integrity sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==
@@ -26713,6 +26791,7 @@ launch-editor-middleware@^2.2.1:
dependencies:
launch-editor "^2.2.1"
+<<<<<<< HEAD
launch-editor@2.2.1:
version "2.2.1"
resolved "https://registry.yarnpkg.com/launch-editor/-/launch-editor-2.2.1.tgz#871b5a3ee39d6680fcc26d37930b6eeda89db0ca"
@@ -26721,6 +26800,8 @@ launch-editor@2.2.1:
chalk "^2.3.0"
shell-quote "^1.6.1"
+=======
+>>>>>>> develop
launch-editor@2.3.0, launch-editor@^2.2.1:
version "2.3.0"
resolved "https://registry.yarnpkg.com/launch-editor/-/launch-editor-2.3.0.tgz#23b2081403b7eeaae2918bda510f3535ccab0ee4"
@@ -27004,6 +27085,15 @@ libcipm@^4.0.8:
rimraf "^2.6.2"
worker-farm "^1.6.0"
+libhoney@3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/libhoney/-/libhoney-3.0.0.tgz#33cf6b24f54e15b8ad72a0d6a214805479e13099"
+ integrity sha512-aAvZblw2ad2iRXrLNk/CnOgQG2Zpt4uuCcVjeC+n/GMsMQRKOGxZ7whI7N4b0oa2aFjsNUQgfwv+xqVMUnO+Mg==
+ dependencies:
+ superagent "^6.1.0"
+ superagent-proxy "^3.0.0"
+ urljoin "^0.1.5"
+
libnpm@^3.0.1:
version "3.0.1"
resolved "https://registry.yarnpkg.com/libnpm/-/libnpm-3.0.1.tgz#0be11b4c9dd4d1ffd7d95c786e92e55d65be77a2"
@@ -29601,6 +29691,11 @@ nested-error-stacks@^2.0.0, nested-error-stacks@^2.1.0:
resolved "https://registry.yarnpkg.com/nested-error-stacks/-/nested-error-stacks-2.1.0.tgz#0fbdcf3e13fe4994781280524f8b96b0cdff9c61"
integrity sha512-AO81vsIO1k1sM4Zrd6Hu7regmJN1NSiAja10gc4bX3F0wd+9rQmcuHQaHVQCYIEC8iFXnE+mavh23GOt7wBgug==
+netmask@^2.0.1:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/netmask/-/netmask-2.0.2.tgz#8b01a07644065d536383835823bc52004ebac5e7"
+ integrity sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==
+
next-tick@~1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.0.0.tgz#ca86d1fe8828169b0120208e3dc8424b9db8342c"
@@ -31326,6 +31421,30 @@ p-waterfall@^1.0.0:
dependencies:
p-reduce "^1.0.0"
+pac-proxy-agent@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/pac-proxy-agent/-/pac-proxy-agent-5.0.0.tgz#b718f76475a6a5415c2efbe256c1c971c84f635e"
+ integrity sha512-CcFG3ZtnxO8McDigozwE3AqAw15zDvGH+OjXO4kzf7IkEKkQ4gxQ+3sdF50WmhQ4P/bVusXcqNE2S3XrNURwzQ==
+ dependencies:
+ "@tootallnate/once" "1"
+ agent-base "6"
+ debug "4"
+ get-uri "3"
+ http-proxy-agent "^4.0.1"
+ https-proxy-agent "5"
+ pac-resolver "^5.0.0"
+ raw-body "^2.2.0"
+ socks-proxy-agent "5"
+
+pac-resolver@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/pac-resolver/-/pac-resolver-5.0.0.tgz#1d717a127b3d7a9407a16d6e1b012b13b9ba8dc0"
+ integrity sha512-H+/A6KitiHNNW+bxBKREk2MCGSxljfqRX76NjummWEYIat7ldVXRU3dhRIE3iXZ0nvGBk6smv3nntxKkzRL8NA==
+ dependencies:
+ degenerator "^3.0.1"
+ ip "^1.1.5"
+ netmask "^2.0.1"
+
package-hash@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/package-hash/-/package-hash-4.0.0.tgz#3537f654665ec3cc38827387fc904c163c54f506"
@@ -33669,11 +33788,30 @@ proxy-addr@~2.0.5:
forwarded "~0.1.2"
ipaddr.js "1.9.1"
+proxy-agent@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/proxy-agent/-/proxy-agent-5.0.0.tgz#d31405c10d6e8431fde96cba7a0c027ce01d633b"
+ integrity sha512-gkH7BkvLVkSfX9Dk27W6TyNOWWZWRilRfk1XxGNWOYJ2TuedAv1yFpCaU9QSBmBe716XOTNpYNOzhysyw8xn7g==
+ dependencies:
+ agent-base "^6.0.0"
+ debug "4"
+ http-proxy-agent "^4.0.0"
+ https-proxy-agent "^5.0.0"
+ lru-cache "^5.1.1"
+ pac-proxy-agent "^5.0.0"
+ proxy-from-env "^1.0.0"
+ socks-proxy-agent "^5.0.0"
+
proxy-from-env@1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.0.0.tgz#33c50398f70ea7eb96d21f7b817630a55791c7ee"
integrity sha1-M8UDmPcOp+uW0h97gXYwpVeRx+4=
+proxy-from-env@^1.0.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2"
+ integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==
+
proxyquire@2.1.3:
version "2.1.3"
resolved "https://registry.yarnpkg.com/proxyquire/-/proxyquire-2.1.3.tgz#2049a7eefa10a9a953346a18e54aab2b4268df39"
@@ -34115,6 +34253,16 @@ raw-body@2.4.1, raw-body@^2.4.1:
iconv-lite "0.4.24"
unpipe "1.0.0"
+raw-body@^2.2.0:
+ version "2.4.2"
+ resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.2.tgz#baf3e9c21eebced59dd6533ac872b71f7b61cb32"
+ integrity sha512-RPMAFUJP19WIet/99ngh6Iv8fzAbqum4Li7AD6DtGaW2RpMB/11xDoalPiJMTbu6I3hkbMVkATvZrqb9EEqeeQ==
+ dependencies:
+ bytes "3.1.1"
+ http-errors "1.8.1"
+ iconv-lite "0.4.24"
+ unpipe "1.0.0"
+
raw-body@~1.1.0:
version "1.1.7"
resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-1.1.7.tgz#1d027c2bfa116acc6623bca8f00016572a87d425"
@@ -37710,6 +37858,15 @@ sockjs@^0.3.21:
uuid "^3.4.0"
websocket-driver "^0.7.4"
+socks-proxy-agent@5, socks-proxy-agent@^5.0.0:
+ version "5.0.1"
+ resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-5.0.1.tgz#032fb583048a29ebffec2e6a73fca0761f48177e"
+ integrity sha512-vZdmnjb9a2Tz6WEQVIurybSwElwPxMZaIc7PzqbJTrezcKNznv6giT7J7tZDZ1BojVaa1jvO/UiUdhDVB0ACoQ==
+ dependencies:
+ agent-base "^6.0.2"
+ debug "4"
+ socks "^2.3.3"
+
socks-proxy-agent@^4.0.0:
version "4.0.2"
resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-4.0.2.tgz#3c8991f3145b2799e70e11bd5fbc8b1963116386"
@@ -37718,15 +37875,6 @@ socks-proxy-agent@^4.0.0:
agent-base "~4.2.1"
socks "~2.3.2"
-socks-proxy-agent@^5.0.0:
- version "5.0.0"
- resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-5.0.0.tgz#7c0f364e7b1cf4a7a437e71253bed72e9004be60"
- integrity sha512-lEpa1zsWCChxiynk+lCycKuC502RxDWLKJZoIhnxrWNjLSDGYRFflHA1/228VkRcnv9TIb8w98derGbpKxJRgA==
- dependencies:
- agent-base "6"
- debug "4"
- socks "^2.3.3"
-
socks-proxy-agent@^6.0.0:
version "6.1.1"
resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-6.1.1.tgz#e664e8f1aaf4e1fb3df945f09e3d94f911137f87"
@@ -38854,7 +39002,15 @@ sumchecker@^3.0.1:
dependencies:
debug "^4.1.0"
-superagent@6.1.0:
+superagent-proxy@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/superagent-proxy/-/superagent-proxy-3.0.0.tgz#e1a17ccba25883599e18d2974020fe83ee7d95d1"
+ integrity sha512-wAlRInOeDFyd9pyonrkJspdRAxdLrcsZ6aSnS+8+nu4x1aXbz6FWSTT9M6Ibze+eG60szlL7JA8wEIV7bPWuyQ==
+ dependencies:
+ debug "^4.3.2"
+ proxy-agent "^5.0.0"
+
+superagent@6.1.0, superagent@^6.1.0:
version "6.1.0"
resolved "https://registry.yarnpkg.com/superagent/-/superagent-6.1.0.tgz#09f08807bc41108ef164cfb4be293cebd480f4a6"
integrity sha512-OUDHEssirmplo3F+1HWKUrUjvnQuA+nZI6i/JJBdXb5eq9IyEQwPyPpqND+SSsxf6TygpBEkUjISVRN4/VOpeg==
@@ -39806,6 +39962,11 @@ toidentifier@1.0.0:
resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553"
integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==
+toidentifier@1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35"
+ integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==
+
token-stream@1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/token-stream/-/token-stream-1.0.0.tgz#cc200eab2613f4166d27ff9afc7ca56d49df6eb4"
@@ -41009,6 +41170,13 @@ url@^0.11.0, url@~0.11.0:
punycode "1.3.2"
querystring "0.2.0"
+urljoin@^0.1.5:
+ version "0.1.5"
+ resolved "https://registry.yarnpkg.com/urljoin/-/urljoin-0.1.5.tgz#b25d2c6112c55ac9d50096a49a0f1fb7f4f53921"
+ integrity sha1-sl0sYRLFWsnVAJakmg8ft/T1OSE=
+ dependencies:
+ extend "~2.0.0"
+
use-callback-ref@^1.2.1, use-callback-ref@^1.2.3:
version "1.2.5"
resolved "https://registry.yarnpkg.com/use-callback-ref/-/use-callback-ref-1.2.5.tgz#6115ed242cfbaed5915499c0a9842ca2912f38a5"
@@ -41775,6 +41943,11 @@ vm-browserify@1.1.2, vm-browserify@^1.0.0, vm-browserify@^1.0.1:
resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.2.tgz#78641c488b8e6ca91a75f511e7a3b32a86e5dda0"
integrity sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==
+vm2@^3.9.3:
+ version "3.9.5"
+ resolved "https://registry.yarnpkg.com/vm2/-/vm2-3.9.5.tgz#5288044860b4bbace443101fcd3bddb2a0aa2496"
+ integrity sha512-LuCAHZN75H9tdrAiLFf030oW7nJV5xwNMuk1ymOZwopmuK3d2H4L1Kv4+GFHgarKiLfXXLFU+7LDABHnwOkWng==
+
void-elements@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/void-elements/-/void-elements-2.0.1.tgz#c066afb582bb1cb4128d60ea92392e94d5e9dbec"
@@ -43410,6 +43583,11 @@ xmlhttprequest-ssl@~1.5.4:
resolved "https://registry.yarnpkg.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz#c2876b06168aadc40e57d97e81191ac8f4398b3e"
integrity sha1-wodrBhaKrcQOV9l+gRkayPQ5iz4=
+xregexp@2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/xregexp/-/xregexp-2.0.0.tgz#52a63e56ca0b84a7f3a5f3d61872f126ad7a5943"
+ integrity sha1-UqY+VsoLhKfzpfPWGHLxJq16WUM=
+
xregexp@4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/xregexp/-/xregexp-4.0.0.tgz#e698189de49dd2a18cc5687b05e17c8e43943020"