cypress 9.2.0 → 9.4.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -37,7 +37,7 @@ const xvfb = require('../exec/xvfb');
37
37
 
38
38
  const state = require('./state');
39
39
 
40
- const VERIFY_TEST_RUNNER_TIMEOUT_MS = process.env.CYPRESS_VERIFY_TIMEOUT || 30000;
40
+ const VERIFY_TEST_RUNNER_TIMEOUT_MS = +util.getEnv('CYPRESS_VERIFY_TIMEOUT') || 30000;
41
41
 
42
42
  const checkExecutable = binaryDir => {
43
43
  const executable = state.getPathToExecutable(binaryDir);
@@ -86,9 +86,9 @@ const runSmokeTest = (binaryDir, options) => {
86
86
 
87
87
  const needsXvfb = xvfb.isNeeded();
88
88
  debug('needs Xvfb?', needsXvfb);
89
- /**
90
- * Spawn Cypress running smoke test to check if all operating system
91
- * dependencies are good.
89
+ /**
90
+ * Spawn Cypress running smoke test to check if all operating system
91
+ * dependencies are good.
92
92
  */
93
93
 
94
94
  const spawn = linuxWithDisplayEnv => {
@@ -329,14 +329,14 @@ const start = (options = {}) => {
329
329
  };
330
330
 
331
331
  const isLinuxLike = () => os.platform() !== 'win32';
332
- /**
333
- * Returns true if running on a system where Electron needs "--no-sandbox" flag.
334
- * @see https://crbug.com/638180
335
- *
336
- * On Debian we had problems running in sandbox even for non-root users.
337
- * @see https://github.com/cypress-io/cypress/issues/5434
338
- * Seems there is a lot of discussion around this issue among Electron users
339
- * @see https://github.com/electron/electron/issues/17972
332
+ /**
333
+ * Returns true if running on a system where Electron needs "--no-sandbox" flag.
334
+ * @see https://crbug.com/638180
335
+ *
336
+ * On Debian we had problems running in sandbox even for non-root users.
337
+ * @see https://github.com/cypress-io/cypress/issues/5434
338
+ * Seems there is a lot of discussion around this issue among Electron users
339
+ * @see https://github.com/electron/electron/issues/17972
340
340
  */
341
341
 
342
342
 
package/lib/util.js CHANGED
@@ -42,21 +42,23 @@ const supportsColor = require('supports-color');
42
42
 
43
43
  const isInstalledGlobally = require('is-installed-globally');
44
44
 
45
- const pkg = require(path.join(__dirname, '..', 'package.json'));
46
-
47
45
  const logger = require('./logger');
48
46
 
49
47
  const debug = require('debug')('cypress:cli');
50
48
 
51
49
  const fs = require('./fs');
52
50
 
51
+ const semver = require('semver');
52
+
53
+ const pkg = require(path.join(__dirname, '..', 'package.json'));
54
+
53
55
  const issuesUrl = 'https://github.com/cypress-io/cypress/issues';
54
56
  const getosAsync = Promise.promisify(getos);
55
- /**
56
- * Returns SHA512 of a file
57
- *
58
- * Implementation lifted from https://github.com/sindresorhus/hasha
59
- * but without bringing that dependency (since hasha is Node v8+)
57
+ /**
58
+ * Returns SHA512 of a file
59
+ *
60
+ * Implementation lifted from https://github.com/sindresorhus/hasha
61
+ * but without bringing that dependency (since hasha is Node v8+)
60
62
  */
61
63
 
62
64
  const getFileChecksum = filename => {
@@ -90,21 +92,21 @@ const stringify = val => {
90
92
  function normalizeModuleOptions(options = {}) {
91
93
  return _.mapValues(options, stringify);
92
94
  }
93
- /**
94
- * Returns true if the platform is Linux. We do a lot of different
95
- * stuff on Linux (like Xvfb) and it helps to has readable code
95
+ /**
96
+ * Returns true if the platform is Linux. We do a lot of different
97
+ * stuff on Linux (like Xvfb) and it helps to has readable code
96
98
  */
97
99
 
98
100
 
99
101
  const isLinux = () => {
100
102
  return os.platform() === 'linux';
101
103
  };
102
- /**
103
- * If the DISPLAY variable is set incorrectly, when trying to spawn
104
- * Cypress executable we get an error like this:
105
- ```
106
- [1005:0509/184205.663837:WARNING:browser_main_loop.cc(258)] Gtk: cannot open display: 99
107
- ```
104
+ /**
105
+ * If the DISPLAY variable is set incorrectly, when trying to spawn
106
+ * Cypress executable we get an error like this:
107
+ ```
108
+ [1005:0509/184205.663837:WARNING:browser_main_loop.cc(258)] Gtk: cannot open display: 99
109
+ ```
108
110
  */
109
111
 
110
112
 
@@ -136,12 +138,12 @@ function stdoutLineMatches(expectedLine, stdout) {
136
138
  const lines = stdout.split('\n').map(val => val.trim());
137
139
  return lines.some(line => line === expectedLine);
138
140
  }
139
- /**
140
- * Confirms if given value is a valid CYPRESS_INTERNAL_ENV value. Undefined values
141
- * are valid, because the system can set the default one.
142
- *
143
- * @param {string} value
144
- * @example util.isValidCypressInternalEnvValue(process.env.CYPRESS_INTERNAL_ENV)
141
+ /**
142
+ * Confirms if given value is a valid CYPRESS_INTERNAL_ENV value. Undefined values
143
+ * are valid, because the system can set the default one.
144
+ *
145
+ * @param {string} value
146
+ * @example util.isValidCypressInternalEnvValue(process.env.CYPRESS_INTERNAL_ENV)
145
147
  */
146
148
 
147
149
 
@@ -155,21 +157,21 @@ function isValidCypressInternalEnvValue(value) {
155
157
  const names = ['development', 'test', 'staging', 'production'];
156
158
  return _.includes(names, value);
157
159
  }
158
- /**
159
- * Confirms if given value is a non-production CYPRESS_INTERNAL_ENV value.
160
- * Undefined values are valid, because the system can set the default one.
161
- *
162
- * @param {string} value
163
- * @example util.isNonProductionCypressInternalEnvValue(process.env.CYPRESS_INTERNAL_ENV)
160
+ /**
161
+ * Confirms if given value is a non-production CYPRESS_INTERNAL_ENV value.
162
+ * Undefined values are valid, because the system can set the default one.
163
+ *
164
+ * @param {string} value
165
+ * @example util.isNonProductionCypressInternalEnvValue(process.env.CYPRESS_INTERNAL_ENV)
164
166
  */
165
167
 
166
168
 
167
169
  function isNonProductionCypressInternalEnvValue(value) {
168
170
  return !_.isUndefined(value) && value !== 'production';
169
171
  }
170
- /**
171
- * Prints NODE_OPTIONS using debug() module, but only
172
- * if DEBUG=cypress... is set
172
+ /**
173
+ * Prints NODE_OPTIONS using debug() module, but only
174
+ * if DEBUG=cypress... is set
173
175
  */
174
176
 
175
177
 
@@ -184,19 +186,19 @@ function printNodeOptions(log = debug) {
184
186
  log('NODE_OPTIONS is not set');
185
187
  }
186
188
  }
187
- /**
188
- * Removes double quote characters
189
- * from the start and end of the given string IF they are both present
190
- *
191
- * @param {string} str Input string
192
- * @returns {string} Trimmed string or the original string if there are no double quotes around it.
193
- * @example
194
- ```
195
- dequote('"foo"')
196
- // returns string 'foo'
197
- dequote('foo')
198
- // returns string 'foo'
199
- ```
189
+ /**
190
+ * Removes double quote characters
191
+ * from the start and end of the given string IF they are both present
192
+ *
193
+ * @param {string} str Input string
194
+ * @returns {string} Trimmed string or the original string if there are no double quotes around it.
195
+ * @example
196
+ ```
197
+ dequote('"foo"')
198
+ // returns string 'foo'
199
+ dequote('foo')
200
+ // returns string 'foo'
201
+ ```
200
202
  */
201
203
 
202
204
 
@@ -232,9 +234,9 @@ const parseOpts = opts => {
232
234
  debug('parsed cli options %o', cleanOpts);
233
235
  return cleanOpts;
234
236
  };
235
- /**
236
- * Copy of packages/server/lib/browsers/utils.ts
237
- * because we need same functionality in CLI to show the path :(
237
+ /**
238
+ * Copy of packages/server/lib/browsers/utils.ts
239
+ * because we need same functionality in CLI to show the path :(
238
240
  */
239
241
 
240
242
 
@@ -267,17 +269,31 @@ const util = {
267
269
  .mapValues(value => {
268
270
  // stringify to 1 or 0
269
271
  return value ? '1' : '0';
270
- }).extend(util.getOriginalNodeOptions(options)).value();
272
+ }).extend(util.getOriginalNodeOptions()).value();
271
273
  },
272
274
 
273
- getOriginalNodeOptions(options) {
275
+ getOriginalNodeOptions() {
276
+ const opts = {};
277
+
274
278
  if (process.env.NODE_OPTIONS) {
275
- return {
276
- ORIGINAL_NODE_OPTIONS: process.env.NODE_OPTIONS
277
- };
279
+ opts.ORIGINAL_NODE_OPTIONS = process.env.NODE_OPTIONS;
280
+ } // https://github.com/cypress-io/cypress/issues/18914
281
+ // Node 17+ ships with OpenSSL 3 by default, so we may need the option
282
+ // --openssl-legacy-provider so that webpack@4 can use the legacy MD4 hash
283
+ // function. This option doesn't exist on Node <17 or when it is built
284
+ // against OpenSSL 1, so we have to detect Node's major version and check
285
+ // which version of OpenSSL it was built against before spawning the plugins
286
+ // process.
287
+ // To be removed when the Cypress binary pulls in the @cypress/webpack-batteries-included-preprocessor
288
+ // version that has been updated to webpack >= 5.61, which no longer relies on
289
+ // Node's builtin crypto.hash function.
290
+
291
+
292
+ if (process.versions && semver.satisfies(process.versions.node, '>=17.0.0') && process.versions.openssl.startsWith('3.')) {
293
+ opts.ORIGINAL_NODE_OPTIONS = `${opts.ORIGINAL_NODE_OPTIONS || ''} --openssl-legacy-provider`;
278
294
  }
279
295
 
280
- return {};
296
+ return opts;
281
297
  },
282
298
 
283
299
  getForceTty() {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cypress",
3
- "version": "9.2.0",
3
+ "version": "9.4.0",
4
4
  "main": "index.js",
5
5
  "scripts": {
6
6
  "postinstall": "node index.js --exec install",
@@ -10,16 +10,17 @@
10
10
  "@cypress/request": "^2.88.10",
11
11
  "@cypress/xvfb": "^1.2.4",
12
12
  "@types/node": "^14.14.31",
13
- "@types/sinonjs__fake-timers": "^6.0.2",
13
+ "@types/sinonjs__fake-timers": "8.1.1",
14
14
  "@types/sizzle": "^2.3.2",
15
15
  "arch": "^2.2.0",
16
16
  "blob-util": "^2.0.2",
17
- "bluebird": "3.7.2",
17
+ "bluebird": "^3.7.2",
18
+ "buffer": "^5.6.0",
18
19
  "cachedir": "^2.3.0",
19
20
  "chalk": "^4.1.0",
20
21
  "check-more-types": "^2.24.0",
21
22
  "cli-cursor": "^3.1.0",
22
- "cli-table3": "~0.6.0",
23
+ "cli-table3": "~0.6.1",
23
24
  "commander": "^5.1.0",
24
25
  "common-tags": "^1.8.0",
25
26
  "dayjs": "^1.10.4",
@@ -43,10 +44,10 @@
43
44
  "pretty-bytes": "^5.6.0",
44
45
  "proxy-from-env": "1.0.0",
45
46
  "request-progress": "^3.0.0",
47
+ "semver": "^7.3.2",
46
48
  "supports-color": "^8.1.1",
47
49
  "tmp": "~0.2.1",
48
50
  "untildify": "^4.0.0",
49
- "url": "^0.11.0",
50
51
  "yauzl": "^2.10.0"
51
52
  },
52
53
  "files": [
@@ -1949,8 +1949,8 @@ declare module "chai" {
1949
1949
  export = chai;
1950
1950
  }
1951
1951
 
1952
- // const a = 1; a.should(1); doesn't work with Cypress
1953
- // https://github.com/cypress-io/cypress/issues/16548
1954
- // interface Object {
1955
- // should: Chai.Assertion;
1956
- // }
1952
+ // const a = 1; a.should(1); doesn't work with Cypress
1953
+ // https://github.com/cypress-io/cypress/issues/16548
1954
+ // interface Object {
1955
+ // should: Chai.Assertion;
1956
+ // }
@@ -1,13 +1,13 @@
1
- // Shim definition to export a namespace. Cypress is actually a global module
2
- // so import/export isn't allowed there. We import here and define a global module
3
- // so that Cypress can get and use the Blob type
4
-
5
- // tslint:disable-next-line:no-implicit-dependencies
6
- import * as blobUtil from 'blob-util'
7
-
8
- export = BlobUtil
9
- export as namespace BlobUtil
10
-
11
- declare namespace BlobUtil {
12
- type BlobUtilStatic = typeof blobUtil
13
- }
1
+ // Shim definition to export a namespace. Cypress is actually a global module
2
+ // so import/export isn't allowed there. We import here and define a global module
3
+ // so that Cypress can get and use the Blob type
4
+
5
+ // tslint:disable-next-line:no-implicit-dependencies
6
+ import * as blobUtil from 'blob-util'
7
+
8
+ export = BlobUtil
9
+ export as namespace BlobUtil
10
+
11
+ declare namespace BlobUtil {
12
+ type BlobUtilStatic = typeof blobUtil
13
+ }
@@ -1,12 +1,12 @@
1
- // Shim definition to export a namespace. Cypress is actually a global module
2
- // so import/export isn't allowed there. We import here and define a global module
3
- // so that Cypress can get and use the Blob type
4
- import ImportedBluebird = require('./bluebird')
5
-
6
- export = Bluebird
7
- export as namespace Bluebird
8
-
9
- declare namespace Bluebird {
10
- type BluebirdStatic = typeof ImportedBluebird
11
- interface Promise<T> extends ImportedBluebird<T> {}
12
- }
1
+ // Shim definition to export a namespace. Cypress is actually a global module
2
+ // so import/export isn't allowed there. We import here and define a global module
3
+ // so that Cypress can get and use the Blob type
4
+ import ImportedBluebird = require('./bluebird')
5
+
6
+ export = Bluebird
7
+ export as namespace Bluebird
8
+
9
+ declare namespace Bluebird {
10
+ type BluebirdStatic = typeof ImportedBluebird
11
+ interface Promise<T> extends ImportedBluebird<T> {}
12
+ }
@@ -1,10 +1,10 @@
1
- // Shim definition to export a namespace. Cypress is actually a global module
2
- // so import/export isn't allowed there. We import here and define a global module
3
- /// <reference path="./chai/index.d.ts" />
4
- declare namespace Chai {
5
- interface Include {
6
- html(html: string): Assertion
7
- text(text: string): Assertion
8
- value(text: string): Assertion
9
- }
10
- }
1
+ // Shim definition to export a namespace. Cypress is actually a global module
2
+ // so import/export isn't allowed there. We import here and define a global module
3
+ /// <reference path="./chai/index.d.ts" />
4
+ declare namespace Chai {
5
+ interface Include {
6
+ html(html: string): Assertion
7
+ text(text: string): Assertion
8
+ value(text: string): Assertion
9
+ }
10
+ }
@@ -1,13 +1,13 @@
1
- /**
2
- * This file should be deleted as soon as the serever
3
- * TODO: delete this file when ResolvedDevServerConfig.server is converted to closeServer
4
- */
5
-
6
- /// <reference types="node" />
7
- import * as cyUtilsHttp from 'http'
8
- export = cyUtilsHttp
9
- /**
10
- * namespace created to bridge nodeJs.http typings so that
11
- * we can type http Server in CT
12
- */
13
- export as namespace cyUtilsHttp
1
+ /**
2
+ * This file should be deleted as soon as the serever
3
+ * TODO: delete this file when ResolvedDevServerConfig.server is converted to closeServer
4
+ */
5
+
6
+ /// <reference types="node" />
7
+ import * as cyUtilsHttp from 'http'
8
+ export = cyUtilsHttp
9
+ /**
10
+ * namespace created to bridge nodeJs.http typings so that
11
+ * we can type http Server in CT
12
+ */
13
+ export as namespace cyUtilsHttp
@@ -1,96 +1,96 @@
1
- // I was trying to avoid relying on "import" of actual module from "minimatch"
2
- // because it would not work in test project, and the only reliable way
3
- // to get around type errors finally was to copy the minimal minimatch function
4
- // definition from "minimatch/index.d.ts" here and just keep it in our code
5
-
6
- export = Minimatch
7
- export as namespace Minimatch
8
-
9
- interface MinimatchOptions {
10
- /**
11
- * Dump a ton of stuff to stderr.
12
- *
13
- * @default false
14
- */
15
- debug?: boolean
16
-
17
- /**
18
- * Do not expand {a,b} and {1..3} brace sets.
19
- *
20
- * @default false
21
- */
22
- nobrace?: boolean
23
-
24
- /**
25
- * Disable ** matching against multiple folder names.
26
- *
27
- * @default false
28
- */
29
- noglobstar?: boolean
30
-
31
- /**
32
- * Allow patterns to match filenames starting with a period,
33
- * even if the pattern does not explicitly have a period in that spot.
34
- *
35
- * @default false
36
- */
37
- dot?: boolean
38
-
39
- /**
40
- * Disable "extglob" style patterns like +(a|b).
41
- *
42
- * @default false
43
- */
44
- noext?: boolean
45
-
46
- /**
47
- * Perform a case-insensitive match.
48
- *
49
- * @default false
50
- */
51
- nocase?: boolean
52
-
53
- /**
54
- * When a match is not found by minimatch.match,
55
- * return a list containing the pattern itself if this option is set.
56
- * Otherwise, an empty list is returned if there are no matches.
57
- *
58
- * @default false
59
- */
60
- nonull?: boolean
61
-
62
- /**
63
- * If set, then patterns without slashes will be matched against
64
- * the basename of the path if it contains slashes.
65
- *
66
- * @default false
67
- */
68
- matchBase?: boolean
69
-
70
- /**
71
- * Suppress the behavior of treating #
72
- * at the start of a pattern as a comment.
73
- *
74
- * @default false
75
- */
76
- nocomment?: boolean
77
-
78
- /**
79
- * Suppress the behavior of treating a leading ! character as negation.
80
- *
81
- * @default false
82
- */
83
- nonegate?: boolean
84
-
85
- /**
86
- * Returns from negate expressions the same as if they were not negated.
87
- * (Ie, true on a hit, false on a miss.)
88
- *
89
- * @default false
90
- */
91
- flipNegate?: boolean
92
- }
93
-
94
- declare namespace Minimatch {
95
- function minimatch(target: string, pattern: string, options?: MinimatchOptions): boolean
96
- }
1
+ // I was trying to avoid relying on "import" of actual module from "minimatch"
2
+ // because it would not work in test project, and the only reliable way
3
+ // to get around type errors finally was to copy the minimal minimatch function
4
+ // definition from "minimatch/index.d.ts" here and just keep it in our code
5
+
6
+ export = Minimatch
7
+ export as namespace Minimatch
8
+
9
+ interface MinimatchOptions {
10
+ /**
11
+ * Dump a ton of stuff to stderr.
12
+ *
13
+ * @default false
14
+ */
15
+ debug?: boolean
16
+
17
+ /**
18
+ * Do not expand {a,b} and {1..3} brace sets.
19
+ *
20
+ * @default false
21
+ */
22
+ nobrace?: boolean
23
+
24
+ /**
25
+ * Disable ** matching against multiple folder names.
26
+ *
27
+ * @default false
28
+ */
29
+ noglobstar?: boolean
30
+
31
+ /**
32
+ * Allow patterns to match filenames starting with a period,
33
+ * even if the pattern does not explicitly have a period in that spot.
34
+ *
35
+ * @default false
36
+ */
37
+ dot?: boolean
38
+
39
+ /**
40
+ * Disable "extglob" style patterns like +(a|b).
41
+ *
42
+ * @default false
43
+ */
44
+ noext?: boolean
45
+
46
+ /**
47
+ * Perform a case-insensitive match.
48
+ *
49
+ * @default false
50
+ */
51
+ nocase?: boolean
52
+
53
+ /**
54
+ * When a match is not found by minimatch.match,
55
+ * return a list containing the pattern itself if this option is set.
56
+ * Otherwise, an empty list is returned if there are no matches.
57
+ *
58
+ * @default false
59
+ */
60
+ nonull?: boolean
61
+
62
+ /**
63
+ * If set, then patterns without slashes will be matched against
64
+ * the basename of the path if it contains slashes.
65
+ *
66
+ * @default false
67
+ */
68
+ matchBase?: boolean
69
+
70
+ /**
71
+ * Suppress the behavior of treating #
72
+ * at the start of a pattern as a comment.
73
+ *
74
+ * @default false
75
+ */
76
+ nocomment?: boolean
77
+
78
+ /**
79
+ * Suppress the behavior of treating a leading ! character as negation.
80
+ *
81
+ * @default false
82
+ */
83
+ nonegate?: boolean
84
+
85
+ /**
86
+ * Returns from negate expressions the same as if they were not negated.
87
+ * (Ie, true on a hit, false on a miss.)
88
+ *
89
+ * @default false
90
+ */
91
+ flipNegate?: boolean
92
+ }
93
+
94
+ declare namespace Minimatch {
95
+ function minimatch(target: string, pattern: string, options?: MinimatchOptions): boolean
96
+ }
@@ -1,29 +1,33 @@
1
- // Cypress, cy, Log inherits EventEmitter.
2
- type EventEmitter2 = import("eventemitter2").EventEmitter2
3
-
4
- interface EventEmitter extends EventEmitter2 {
5
- proxyTo: (cy: Cypress.cy) => null
6
- emitMap: (eventName: string, args: any[]) => Array<(...args: any[]) => any>
7
- emitThen: (eventName: string, args: any[]) => Bluebird.BluebirdStatic
8
- }
9
-
10
- // Copied from https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/types/node/events.d.ts
11
- // to avoid type conflict.
12
- interface NodeEventEmitter {
13
- addListener(event: string | symbol, listener: (...args: any[]) => void): this
14
- on(event: string | symbol, listener: (...args: any[]) => void): this
15
- once(event: string | symbol, listener: (...args: any[]) => void): this
16
- removeListener(event: string | symbol, listener: (...args: any[]) => void): this
17
- off(event: string | symbol, listener: (...args: any[]) => void): this
18
- removeAllListeners(event?: string | symbol): this
19
- setMaxListeners(n: number): this
20
- getMaxListeners(): number
21
- listeners(event: string | symbol): Array<(...args: any[]) => void>
22
- rawListeners(event: string | symbol): Array<(...args: any[]) => void>
23
- emit(event: string | symbol, ...args: any[]): boolean
24
- listenerCount(type: string | symbol): number
25
- // Added in Node 6...
26
- prependListener(event: string | symbol, listener: (...args: any[]) => void): this
27
- prependOnceListener(event: string | symbol, listener: (...args: any[]) => void): this
28
- eventNames(): Array<string | symbol>
29
- }
1
+ // Cypress, cy, Log inherits EventEmitter.
2
+ type EventEmitter2 = import("eventemitter2").EventEmitter2
3
+
4
+ interface EventEmitter extends EventEmitter2 {
5
+ proxyTo: (cy: Cypress.cy) => null
6
+ emitMap: (eventName: string, args: any[]) => Array<(...args: any[]) => any>
7
+ emitThen: (eventName: string, args: any[]) => Bluebird.BluebirdStatic
8
+ }
9
+
10
+ // Copied from https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/types/node/events.d.ts
11
+ // to avoid type conflict.
12
+ interface NodeEventEmitter {
13
+ addListener(event: string | symbol, listener: (...args: any[]) => void): this
14
+ on(event: string | symbol, listener: (...args: any[]) => void): this
15
+ once(event: string | symbol, listener: (...args: any[]) => void): this
16
+ removeListener(event: string | symbol, listener: (...args: any[]) => void): this
17
+ off(event: string | symbol, listener: (...args: any[]) => void): this
18
+ removeAllListeners(event?: string | symbol): this
19
+ setMaxListeners(n: number): this
20
+ getMaxListeners(): number
21
+ listeners(event: string | symbol): Array<(...args: any[]) => void>
22
+ rawListeners(event: string | symbol): Array<(...args: any[]) => void>
23
+ emit(event: string | symbol, ...args: any[]): boolean
24
+ listenerCount(type: string | symbol): number
25
+ // Added in Node 6...
26
+ prependListener(event: string | symbol, listener: (...args: any[]) => void): this
27
+ prependOnceListener(event: string | symbol, listener: (...args: any[]) => void): this
28
+ eventNames(): Array<string | symbol>
29
+ }
30
+
31
+ // We use the Buffer class for dealing with binary data, especially around the
32
+ // selectFile interface.
33
+ type BufferType = import("buffer/").Buffer
@@ -1,3 +1,3 @@
1
- // Cypress adds chai expect and assert to global
2
- declare const expect: Chai.ExpectStatic
3
- declare const assert: Chai.AssertStatic
1
+ // Cypress adds chai expect and assert to global
2
+ declare const expect: Chai.ExpectStatic
3
+ declare const assert: Chai.AssertStatic