cypress 9.5.3 → 9.6.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/errors.js +7 -0
 - package/lib/exec/spawn.js +12 -2
 - package/lib/tasks/state.js +1 -1
 - package/lib/tasks/unzip.js +16 -7
 - package/package.json +3 -3
 - package/types/cypress.d.ts +82 -25
 
    
        package/lib/errors.js
    CHANGED
    
    | 
         @@ -58,6 +58,12 @@ const failedUnzip = { 
     | 
|
| 
       58 
58 
     | 
    
         
             
              description: 'The Cypress App could not be unzipped.',
         
     | 
| 
       59 
59 
     | 
    
         
             
              solution: genericErrorSolution
         
     | 
| 
       60 
60 
     | 
    
         
             
            };
         
     | 
| 
      
 61 
     | 
    
         
            +
            const failedUnzipWindowsMaxPathLength = {
         
     | 
| 
      
 62 
     | 
    
         
            +
              description: 'The Cypress App could not be unzipped.',
         
     | 
| 
      
 63 
     | 
    
         
            +
              solution: `This is most likely because the maximum path length is being exceeded on your system.
         
     | 
| 
      
 64 
     | 
    
         
            +
             
     | 
| 
      
 65 
     | 
    
         
            +
              Read here for solutions to this problem: https://on.cypress.io/win-max-path-length-error`
         
     | 
| 
      
 66 
     | 
    
         
            +
            };
         
     | 
| 
       61 
67 
     | 
    
         | 
| 
       62 
68 
     | 
    
         
             
            const missingApp = binaryDir => {
         
     | 
| 
       63 
69 
     | 
    
         
             
              return {
         
     | 
| 
         @@ -383,6 +389,7 @@ module.exports = { 
     | 
|
| 
       383 
389 
     | 
    
         
             
                unexpected,
         
     | 
| 
       384 
390 
     | 
    
         
             
                failedDownload,
         
     | 
| 
       385 
391 
     | 
    
         
             
                failedUnzip,
         
     | 
| 
      
 392 
     | 
    
         
            +
                failedUnzipWindowsMaxPathLength,
         
     | 
| 
       386 
393 
     | 
    
         
             
                invalidCypressEnv,
         
     | 
| 
       387 
394 
     | 
    
         
             
                invalidCacheDirectory,
         
     | 
| 
       388 
395 
     | 
    
         
             
                CYPRESS_RUN_BINARY,
         
     | 
    
        package/lib/exec/spawn.js
    CHANGED
    
    | 
         @@ -26,8 +26,18 @@ const errors = require('../errors'); 
     | 
|
| 
       26 
26 
     | 
    
         | 
| 
       27 
27 
     | 
    
         
             
            const isXlibOrLibudevRe = /^(?:Xlib|libudev)/;
         
     | 
| 
       28 
28 
     | 
    
         
             
            const isHighSierraWarningRe = /\*\*\* WARNING/;
         
     | 
| 
       29 
     | 
    
         
            -
            const isRenderWorkerRe = /\.RenderWorker-/;
         
     | 
| 
       30 
     | 
    
         
            -
             
     | 
| 
      
 29 
     | 
    
         
            +
            const isRenderWorkerRe = /\.RenderWorker-/; // Chromium (which Electron uses) always makes several attempts to connect to the system dbus.
         
     | 
| 
      
 30 
     | 
    
         
            +
            // This works fine in most desktop environments, but in a docker container, there is no dbus service
         
     | 
| 
      
 31 
     | 
    
         
            +
            // and Chromium emits several error lines, similar to these:
         
     | 
| 
      
 32 
     | 
    
         
            +
            // [1957:0406/160550.146820:ERROR:bus.cc(392)] Failed to connect to the bus: Failed to connect to socket /var/run/dbus/system_bus_socket: No such file or directory
         
     | 
| 
      
 33 
     | 
    
         
            +
            // [1957:0406/160550.147994:ERROR:bus.cc(392)] Failed to connect to the bus: Address does not contain a colon
         
     | 
| 
      
 34 
     | 
    
         
            +
            // These warnings are absolutely harmless. Failure to connect to dbus means that electron won't be able to access the user's
         
     | 
| 
      
 35 
     | 
    
         
            +
            // credential wallet (none exists in a docker container) and won't show up in the system tray (again, none exists).
         
     | 
| 
      
 36 
     | 
    
         
            +
            // Failure to connect is expected and normal here, but users frequently misidentify these errors as the cause of their problems.
         
     | 
| 
      
 37 
     | 
    
         
            +
            // https://github.com/cypress-io/cypress/issues/19299
         
     | 
| 
      
 38 
     | 
    
         
            +
             
     | 
| 
      
 39 
     | 
    
         
            +
            const isDbusWarning = /Failed to connect to the bus:/;
         
     | 
| 
      
 40 
     | 
    
         
            +
            const GARBAGE_WARNINGS = [isXlibOrLibudevRe, isHighSierraWarningRe, isRenderWorkerRe, isDbusWarning];
         
     | 
| 
       31 
41 
     | 
    
         | 
| 
       32 
42 
     | 
    
         
             
            const isGarbageLineWarning = str => {
         
     | 
| 
       33 
43 
     | 
    
         
             
              return _.some(GARBAGE_WARNINGS, re => {
         
     | 
    
        package/lib/tasks/state.js
    CHANGED
    
    | 
         @@ -81,7 +81,7 @@ const getBinaryDir = (version = util.pkgVersion()) => { 
     | 
|
| 
       81 
81 
     | 
    
         | 
| 
       82 
82 
     | 
    
         
             
            const getVersionDir = (version = util.pkgVersion(), buildInfo = util.pkgBuildInfo()) => {
         
     | 
| 
       83 
83 
     | 
    
         
             
              if (buildInfo && !buildInfo.stable) {
         
     | 
| 
       84 
     | 
    
         
            -
                version = ['beta', version, buildInfo.commitBranch, buildInfo.commitSha].join('-');
         
     | 
| 
      
 84 
     | 
    
         
            +
                version = ['beta', version, buildInfo.commitBranch, buildInfo.commitSha.slice(0, 8)].join('-');
         
     | 
| 
       85 
85 
     | 
    
         
             
              }
         
     | 
| 
       86 
86 
     | 
    
         | 
| 
       87 
87 
     | 
    
         
             
              return path.join(getCacheDir(), version);
         
     | 
    
        package/lib/tasks/unzip.js
    CHANGED
    
    | 
         @@ -188,7 +188,11 @@ const unzip = ({ 
     | 
|
| 
       188 
188 
     | 
    
         
             
              });
         
     | 
| 
       189 
189 
     | 
    
         
             
            };
         
     | 
| 
       190 
190 
     | 
    
         | 
| 
       191 
     | 
    
         
            -
             
     | 
| 
      
 191 
     | 
    
         
            +
            function isMaybeWindowsMaxPathLengthError(err) {
         
     | 
| 
      
 192 
     | 
    
         
            +
              return os.platform() === 'win32' && err.code === 'ENOENT' && err.syscall === 'realpath';
         
     | 
| 
      
 193 
     | 
    
         
            +
            }
         
     | 
| 
      
 194 
     | 
    
         
            +
             
     | 
| 
      
 195 
     | 
    
         
            +
            const start = async ({
         
     | 
| 
       192 
196 
     | 
    
         
             
              zipFilePath,
         
     | 
| 
       193 
197 
     | 
    
         
             
              installDir,
         
     | 
| 
       194 
198 
     | 
    
         
             
              progress
         
     | 
| 
         @@ -203,18 +207,23 @@ const start = ({ 
     | 
|
| 
       203 
207 
     | 
    
         
             
                };
         
     | 
| 
       204 
208 
     | 
    
         
             
              }
         
     | 
| 
       205 
209 
     | 
    
         | 
| 
       206 
     | 
    
         
            -
               
     | 
| 
       207 
     | 
    
         
            -
                 
     | 
| 
      
 210 
     | 
    
         
            +
              try {
         
     | 
| 
      
 211 
     | 
    
         
            +
                const installDirExists = await fs.pathExists(installDir);
         
     | 
| 
      
 212 
     | 
    
         
            +
             
     | 
| 
      
 213 
     | 
    
         
            +
                if (installDirExists) {
         
     | 
| 
       208 
214 
     | 
    
         
             
                  debug('removing existing unzipped binary', installDir);
         
     | 
| 
       209 
     | 
    
         
            -
                   
     | 
| 
      
 215 
     | 
    
         
            +
                  await fs.removeAsync(installDir);
         
     | 
| 
       210 
216 
     | 
    
         
             
                }
         
     | 
| 
       211 
     | 
    
         
            -
             
     | 
| 
       212 
     | 
    
         
            -
                 
     | 
| 
      
 217 
     | 
    
         
            +
             
     | 
| 
      
 218 
     | 
    
         
            +
                await unzip({
         
     | 
| 
       213 
219 
     | 
    
         
             
                  zipFilePath,
         
     | 
| 
       214 
220 
     | 
    
         
             
                  installDir,
         
     | 
| 
       215 
221 
     | 
    
         
             
                  progress
         
     | 
| 
       216 
222 
     | 
    
         
             
                });
         
     | 
| 
       217 
     | 
    
         
            -
              } 
     | 
| 
      
 223 
     | 
    
         
            +
              } catch (err) {
         
     | 
| 
      
 224 
     | 
    
         
            +
                const errorTemplate = isMaybeWindowsMaxPathLengthError(err) ? errors.failedUnzipWindowsMaxPathLength : errors.failedUnzip;
         
     | 
| 
      
 225 
     | 
    
         
            +
                await throwFormErrorText(errorTemplate)(err);
         
     | 
| 
      
 226 
     | 
    
         
            +
              }
         
     | 
| 
       218 
227 
     | 
    
         
             
            };
         
     | 
| 
       219 
228 
     | 
    
         | 
| 
       220 
229 
     | 
    
         
             
            module.exports = {
         
     | 
    
        package/package.json
    CHANGED
    
    | 
         @@ -1,6 +1,6 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            {
         
     | 
| 
       2 
2 
     | 
    
         
             
              "name": "cypress",
         
     | 
| 
       3 
     | 
    
         
            -
              "version": "9. 
     | 
| 
      
 3 
     | 
    
         
            +
              "version": "9.6.1",
         
     | 
| 
       4 
4 
     | 
    
         
             
              "main": "index.js",
         
     | 
| 
       5 
5 
     | 
    
         
             
              "scripts": {
         
     | 
| 
       6 
6 
     | 
    
         
             
                "postinstall": "node index.js --exec install",
         
     | 
| 
         @@ -66,8 +66,8 @@ 
     | 
|
| 
       66 
66 
     | 
    
         
             
              "types": "types",
         
     | 
| 
       67 
67 
     | 
    
         
             
              "buildInfo": {
         
     | 
| 
       68 
68 
     | 
    
         
             
                "commitBranch": "develop",
         
     | 
| 
       69 
     | 
    
         
            -
                "commitSha": " 
     | 
| 
       70 
     | 
    
         
            -
                "commitDate": "2022- 
     | 
| 
      
 69 
     | 
    
         
            +
                "commitSha": "37df3cab6430532b63b19586c4da9e5c0beec5cb",
         
     | 
| 
      
 70 
     | 
    
         
            +
                "commitDate": "2022-05-09T14:49:05.000Z",
         
     | 
| 
       71 
71 
     | 
    
         
             
                "stable": true
         
     | 
| 
       72 
72 
     | 
    
         
             
              },
         
     | 
| 
       73 
73 
     | 
    
         
             
              "description": "Cypress.io end to end testing tool",
         
     | 
    
        package/types/cypress.d.ts
    CHANGED
    
    | 
         @@ -10,10 +10,13 @@ declare namespace Cypress { 
     | 
|
| 
       10 
10 
     | 
    
         
             
              type PrevSubject = keyof PrevSubjectMap
         
     | 
| 
       11 
11 
     | 
    
         
             
              type TestingType = 'e2e' | 'component'
         
     | 
| 
       12 
12 
     | 
    
         
             
              type PluginConfig = (on: PluginEvents, config: PluginConfigOptions) => void | ConfigOptions | Promise<ConfigOptions>
         
     | 
| 
      
 13 
     | 
    
         
            +
              interface JQueryWithSelector<TElement = HTMLElement> extends JQuery<TElement> {
         
     | 
| 
      
 14 
     | 
    
         
            +
                selector?: string | null
         
     | 
| 
      
 15 
     | 
    
         
            +
              }
         
     | 
| 
       13 
16 
     | 
    
         | 
| 
       14 
17 
     | 
    
         
             
              interface PrevSubjectMap<O = unknown> {
         
     | 
| 
       15 
18 
     | 
    
         
             
                optional: O
         
     | 
| 
       16 
     | 
    
         
            -
                element:  
     | 
| 
      
 19 
     | 
    
         
            +
                element: JQueryWithSelector
         
     | 
| 
       17 
20 
     | 
    
         
             
                document: Document
         
     | 
| 
       18 
21 
     | 
    
         
             
                window: Window
         
     | 
| 
       19 
22 
     | 
    
         
             
              }
         
     | 
| 
         @@ -24,9 +27,15 @@ declare namespace Cypress { 
     | 
|
| 
       24 
27 
     | 
    
         
             
              interface CommandFn<T extends keyof ChainableMethods> {
         
     | 
| 
       25 
28 
     | 
    
         
             
                (this: Mocha.Context, ...args: Parameters<ChainableMethods[T]>): ReturnType<ChainableMethods[T]> | void
         
     | 
| 
       26 
29 
     | 
    
         
             
              }
         
     | 
| 
      
 30 
     | 
    
         
            +
              interface CommandFns {
         
     | 
| 
      
 31 
     | 
    
         
            +
                [name: string]: (this: Mocha.Context, ...args: any) => any
         
     | 
| 
      
 32 
     | 
    
         
            +
              }
         
     | 
| 
       27 
33 
     | 
    
         
             
              interface CommandFnWithSubject<T extends keyof ChainableMethods, S> {
         
     | 
| 
       28 
34 
     | 
    
         
             
                (this: Mocha.Context, prevSubject: S, ...args: Parameters<ChainableMethods[T]>): ReturnType<ChainableMethods[T]> | void
         
     | 
| 
       29 
35 
     | 
    
         
             
              }
         
     | 
| 
      
 36 
     | 
    
         
            +
              interface CommandFnsWithSubject<S> {
         
     | 
| 
      
 37 
     | 
    
         
            +
                [name: string]: (this: Mocha.Context, prevSubject: S, ...args: any) => any
         
     | 
| 
      
 38 
     | 
    
         
            +
              }
         
     | 
| 
       30 
39 
     | 
    
         
             
              interface CommandOriginalFn<T extends keyof ChainableMethods> extends CallableFunction {
         
     | 
| 
       31 
40 
     | 
    
         
             
                (...args: Parameters<ChainableMethods[T]>): ReturnType<ChainableMethods[T]>
         
     | 
| 
       32 
41 
     | 
    
         
             
              }
         
     | 
| 
         @@ -47,19 +56,6 @@ declare namespace Cypress { 
     | 
|
| 
       47 
56 
     | 
    
         
             
                password: string
         
     | 
| 
       48 
57 
     | 
    
         
             
              }
         
     | 
| 
       49 
58 
     | 
    
         | 
| 
       50 
     | 
    
         
            -
              interface RemoteState {
         
     | 
| 
       51 
     | 
    
         
            -
                auth?: {
         
     | 
| 
       52 
     | 
    
         
            -
                  username: string
         
     | 
| 
       53 
     | 
    
         
            -
                  password: string
         
     | 
| 
       54 
     | 
    
         
            -
                }
         
     | 
| 
       55 
     | 
    
         
            -
                domainName: string
         
     | 
| 
       56 
     | 
    
         
            -
                strategy: 'file' | 'http'
         
     | 
| 
       57 
     | 
    
         
            -
                origin: string
         
     | 
| 
       58 
     | 
    
         
            -
                fileServer: string
         
     | 
| 
       59 
     | 
    
         
            -
                props: Record<string, any>
         
     | 
| 
       60 
     | 
    
         
            -
                visiting: string
         
     | 
| 
       61 
     | 
    
         
            -
              }
         
     | 
| 
       62 
     | 
    
         
            -
             
     | 
| 
       63 
59 
     | 
    
         
             
              interface Backend {
         
     | 
| 
       64 
60 
     | 
    
         
             
                /**
         
     | 
| 
       65 
61 
     | 
    
         
             
                 * Firefox only: Force Cypress to run garbage collection routines.
         
     | 
| 
         @@ -461,12 +457,22 @@ declare namespace Cypress { 
     | 
|
| 
       461 
457 
     | 
    
         
             
                Commands: {
         
     | 
| 
       462 
458 
     | 
    
         
             
                  add<T extends keyof Chainable>(name: T, fn: CommandFn<T>): void
         
     | 
| 
       463 
459 
     | 
    
         
             
                  add<T extends keyof Chainable>(name: T, options: CommandOptions & {prevSubject: false}, fn: CommandFn<T>): void
         
     | 
| 
      
 460 
     | 
    
         
            +
                  add<T extends keyof Chainable, S = any>(name: T, options: CommandOptions & {prevSubject: true}, fn: CommandFnWithSubject<T, S>): void
         
     | 
| 
       464 
461 
     | 
    
         
             
                  add<T extends keyof Chainable, S extends PrevSubject>(
         
     | 
| 
       465 
     | 
    
         
            -
                      name: T, options: CommandOptions & { prevSubject:  
     | 
| 
      
 462 
     | 
    
         
            +
                      name: T, options: CommandOptions & { prevSubject: S | ['optional'] }, fn: CommandFnWithSubject<T, PrevSubjectMap[S]>,
         
     | 
| 
       466 
463 
     | 
    
         
             
                  ): void
         
     | 
| 
       467 
464 
     | 
    
         
             
                  add<T extends keyof Chainable, S extends PrevSubject>(
         
     | 
| 
       468 
465 
     | 
    
         
             
                      name: T, options: CommandOptions & { prevSubject: S[] }, fn: CommandFnWithSubject<T, PrevSubjectMap<void>[S]>,
         
     | 
| 
       469 
466 
     | 
    
         
             
                  ): void
         
     | 
| 
      
 467 
     | 
    
         
            +
                  addAll<T extends keyof Chainable>(fns: CommandFns): void
         
     | 
| 
      
 468 
     | 
    
         
            +
                  addAll<T extends keyof Chainable>(options: CommandOptions & {prevSubject: false}, fns: CommandFns): void
         
     | 
| 
      
 469 
     | 
    
         
            +
                  addAll<T extends keyof Chainable, S = any>(options: CommandOptions & { prevSubject: true }, fns: CommandFnsWithSubject<S>): void
         
     | 
| 
      
 470 
     | 
    
         
            +
                  addAll<T extends keyof Chainable, S extends PrevSubject>(
         
     | 
| 
      
 471 
     | 
    
         
            +
                      options: CommandOptions & { prevSubject: S | ['optional'] }, fns: CommandFnsWithSubject<PrevSubjectMap[S]>,
         
     | 
| 
      
 472 
     | 
    
         
            +
                  ): void
         
     | 
| 
      
 473 
     | 
    
         
            +
                  addAll<T extends keyof Chainable, S extends PrevSubject>(
         
     | 
| 
      
 474 
     | 
    
         
            +
                      options: CommandOptions & { prevSubject: S[] }, fns: CommandFnsWithSubject<PrevSubjectMap<void>[S]>,
         
     | 
| 
      
 475 
     | 
    
         
            +
                  ): void
         
     | 
| 
       470 
476 
     | 
    
         
             
                  overwrite<T extends keyof Chainable>(name: T, fn: CommandFnWithOriginalFn<T>): void
         
     | 
| 
       471 
477 
     | 
    
         
             
                  overwrite<T extends keyof Chainable, S extends PrevSubject>(name: T, fn: CommandFnWithOriginalFnAndSubject<T, PrevSubjectMap[S]>): void
         
     | 
| 
       472 
478 
     | 
    
         
             
                }
         
     | 
| 
         @@ -620,7 +626,7 @@ declare namespace Cypress { 
     | 
|
| 
       620 
626 
     | 
    
         
             
                 * Trigger action
         
     | 
| 
       621 
627 
     | 
    
         
             
                 * @private
         
     | 
| 
       622 
628 
     | 
    
         
             
                 */
         
     | 
| 
       623 
     | 
    
         
            -
                action: (action: string, ...args: any[]) => void
         
     | 
| 
      
 629 
     | 
    
         
            +
                action: (action: string, ...args: any[]) => any[] | void
         
     | 
| 
       624 
630 
     | 
    
         | 
| 
       625 
631 
     | 
    
         
             
                /**
         
     | 
| 
       626 
632 
     | 
    
         
             
                 * Load  files
         
     | 
| 
         @@ -1045,7 +1051,7 @@ declare namespace Cypress { 
     | 
|
| 
       1045 
1051 
     | 
    
         
             
                /**
         
     | 
| 
       1046 
1052 
     | 
    
         
             
                  * Save/Restore browser Cookies, LocalStorage, and SessionStorage data resulting from the supplied `setup` function.
         
     | 
| 
       1047 
1053 
     | 
    
         
             
                  *
         
     | 
| 
       1048 
     | 
    
         
            -
                  * Only available if the ` 
     | 
| 
      
 1054 
     | 
    
         
            +
                  * Only available if the `experimentalSessionAndOrigin` config option is enabled.
         
     | 
| 
       1049 
1055 
     | 
    
         
             
                  *
         
     | 
| 
       1050 
1056 
     | 
    
         
             
                  * @see https://on.cypress.io/session
         
     | 
| 
       1051 
1057 
     | 
    
         
             
                  */
         
     | 
| 
         @@ -1407,6 +1413,29 @@ declare namespace Cypress { 
     | 
|
| 
       1407 
1413 
     | 
    
         
             
                 */
         
     | 
| 
       1408 
1414 
     | 
    
         
             
                off: Actions
         
     | 
| 
       1409 
1415 
     | 
    
         | 
| 
      
 1416 
     | 
    
         
            +
                /**
         
     | 
| 
      
 1417 
     | 
    
         
            +
                 * Enables running Cypress commands in a secondary origin.
         
     | 
| 
      
 1418 
     | 
    
         
            +
                 * @see https://on.cypress.io/origin
         
     | 
| 
      
 1419 
     | 
    
         
            +
                 * @example
         
     | 
| 
      
 1420 
     | 
    
         
            +
                 *    cy.origin('example.com', () => {
         
     | 
| 
      
 1421 
     | 
    
         
            +
                 *      cy.get('h1').should('equal', 'Example Domain')
         
     | 
| 
      
 1422 
     | 
    
         
            +
                 *    })
         
     | 
| 
      
 1423 
     | 
    
         
            +
                 */
         
     | 
| 
      
 1424 
     | 
    
         
            +
                origin<T extends any>(urlOrDomain: string, fn: () => void): Chainable<T>
         
     | 
| 
      
 1425 
     | 
    
         
            +
             
     | 
| 
      
 1426 
     | 
    
         
            +
                /**
         
     | 
| 
      
 1427 
     | 
    
         
            +
                 * Enables running Cypress commands in a secondary origin.
         
     | 
| 
      
 1428 
     | 
    
         
            +
                 * @see https://on.cypress.io/origin
         
     | 
| 
      
 1429 
     | 
    
         
            +
                 * @example
         
     | 
| 
      
 1430 
     | 
    
         
            +
                 *    cy.origin('example.com', { args: { key: 'value', foo: 'foo' } }, ({ key, foo }) => {
         
     | 
| 
      
 1431 
     | 
    
         
            +
                 *      expect(key).to.equal('value')
         
     | 
| 
      
 1432 
     | 
    
         
            +
                 *      expect(foo).to.equal('foo')
         
     | 
| 
      
 1433 
     | 
    
         
            +
                 *    })
         
     | 
| 
      
 1434 
     | 
    
         
            +
                 */
         
     | 
| 
      
 1435 
     | 
    
         
            +
                origin<T, S extends any>(urlOrDomain: string, options: {
         
     | 
| 
      
 1436 
     | 
    
         
            +
                  args: T
         
     | 
| 
      
 1437 
     | 
    
         
            +
                }, fn: (args: T) => void): Chainable<S>
         
     | 
| 
      
 1438 
     | 
    
         
            +
             
     | 
| 
       1410 
1439 
     | 
    
         
             
                /**
         
     | 
| 
       1411 
1440 
     | 
    
         
             
                 * Get the parent DOM element of a set of DOM elements.
         
     | 
| 
       1412 
1441 
     | 
    
         
             
                 *
         
     | 
| 
         @@ -2341,7 +2370,7 @@ declare namespace Cypress { 
     | 
|
| 
       2341 
2370 
     | 
    
         
             
              type Agent<T extends sinon.SinonSpy> = SinonSpyAgent<T> & T
         
     | 
| 
       2342 
2371 
     | 
    
         | 
| 
       2343 
2372 
     | 
    
         
             
              interface CookieDefaults {
         
     | 
| 
       2344 
     | 
    
         
            -
                preserve: string | string[] | RegExp | ((cookie:  
     | 
| 
      
 2373 
     | 
    
         
            +
                preserve: string | string[] | RegExp | ((cookie: Cookie) => boolean)
         
     | 
| 
       2345 
2374 
     | 
    
         
             
              }
         
     | 
| 
       2346 
2375 
     | 
    
         | 
| 
       2347 
2376 
     | 
    
         
             
              interface Failable {
         
     | 
| 
         @@ -2500,7 +2529,7 @@ declare namespace Cypress { 
     | 
|
| 
       2500 
2529 
     | 
    
         
             
                action: 'select' | 'drag-drop'
         
     | 
| 
       2501 
2530 
     | 
    
         
             
              }
         
     | 
| 
       2502 
2531 
     | 
    
         | 
| 
       2503 
     | 
    
         
            -
              interface BlurOptions extends Loggable, Forceable { }
         
     | 
| 
      
 2532 
     | 
    
         
            +
              interface BlurOptions extends Loggable, Timeoutable, Forceable { }
         
     | 
| 
       2504 
2533 
     | 
    
         | 
| 
       2505 
2534 
     | 
    
         
             
              interface CheckOptions extends Loggable, Timeoutable, ActionableOptions {
         
     | 
| 
       2506 
2535 
     | 
    
         
             
                interval: number
         
     | 
| 
         @@ -2803,15 +2832,15 @@ declare namespace Cypress { 
     | 
|
| 
       2803 
2832 
     | 
    
         
             
                 */
         
     | 
| 
       2804 
2833 
     | 
    
         
             
                scrollBehavior: scrollBehaviorOptions
         
     | 
| 
       2805 
2834 
     | 
    
         
             
                /**
         
     | 
| 
       2806 
     | 
    
         
            -
                 *  
     | 
| 
      
 2835 
     | 
    
         
            +
                 * Allows listening to the `before:run`, `after:run`, `before:spec`, and `after:spec` events in the plugins file during interactive mode.
         
     | 
| 
       2807 
2836 
     | 
    
         
             
                 * @default false
         
     | 
| 
       2808 
2837 
     | 
    
         
             
                 */
         
     | 
| 
       2809 
     | 
    
         
            -
                 
     | 
| 
      
 2838 
     | 
    
         
            +
                experimentalInteractiveRunEvents: boolean
         
     | 
| 
       2810 
2839 
     | 
    
         
             
                /**
         
     | 
| 
       2811 
     | 
    
         
            -
                 *  
     | 
| 
      
 2840 
     | 
    
         
            +
                 * Enables cross-origin and improved session support, including the `cy.origin` and `cy.session` commands. See https://on.cypress.io/origin and https://on.cypress.io/session.
         
     | 
| 
       2812 
2841 
     | 
    
         
             
                 * @default false
         
     | 
| 
       2813 
2842 
     | 
    
         
             
                 */
         
     | 
| 
       2814 
     | 
    
         
            -
                 
     | 
| 
      
 2843 
     | 
    
         
            +
                experimentalSessionAndOrigin: boolean
         
     | 
| 
       2815 
2844 
     | 
    
         
             
                /**
         
     | 
| 
       2816 
2845 
     | 
    
         
             
                 * Generate and save commands directly to your test suite by interacting with your app as an end user would.
         
     | 
| 
       2817 
2846 
     | 
    
         
             
                 * @default false
         
     | 
| 
         @@ -2943,7 +2972,6 @@ declare namespace Cypress { 
     | 
|
| 
       2943 
2972 
     | 
    
         
             
                projectName: string
         
     | 
| 
       2944 
2973 
     | 
    
         
             
                projectRoot: string
         
     | 
| 
       2945 
2974 
     | 
    
         
             
                proxyUrl: string
         
     | 
| 
       2946 
     | 
    
         
            -
                remote: RemoteState
         
     | 
| 
       2947 
2975 
     | 
    
         
             
                report: boolean
         
     | 
| 
       2948 
2976 
     | 
    
         
             
                reporterRoute: string
         
     | 
| 
       2949 
2977 
     | 
    
         
             
                reporterUrl: string
         
     | 
| 
         @@ -5433,6 +5461,21 @@ declare namespace Cypress { 
     | 
|
| 
       5433 
5461 
     | 
    
         
             
                (action: 'task', tasks: Tasks): void
         
     | 
| 
       5434 
5462 
     | 
    
         
             
              }
         
     | 
| 
       5435 
5463 
     | 
    
         | 
| 
      
 5464 
     | 
    
         
            +
              interface CodeFrame {
         
     | 
| 
      
 5465 
     | 
    
         
            +
                frame: string
         
     | 
| 
      
 5466 
     | 
    
         
            +
                language: string
         
     | 
| 
      
 5467 
     | 
    
         
            +
                line: number
         
     | 
| 
      
 5468 
     | 
    
         
            +
                column: number
         
     | 
| 
      
 5469 
     | 
    
         
            +
                absoluteFile: string
         
     | 
| 
      
 5470 
     | 
    
         
            +
                originalFile: string
         
     | 
| 
      
 5471 
     | 
    
         
            +
                relativeFile: string
         
     | 
| 
      
 5472 
     | 
    
         
            +
              }
         
     | 
| 
      
 5473 
     | 
    
         
            +
             
     | 
| 
      
 5474 
     | 
    
         
            +
              interface CypressError extends Error {
         
     | 
| 
      
 5475 
     | 
    
         
            +
                docsUrl?: string
         
     | 
| 
      
 5476 
     | 
    
         
            +
                codeFrame?: CodeFrame
         
     | 
| 
      
 5477 
     | 
    
         
            +
              }
         
     | 
| 
      
 5478 
     | 
    
         
            +
             
     | 
| 
       5436 
5479 
     | 
    
         
             
              // for just a few events like "window:alert" it makes sense to allow passing cy.stub() or
         
     | 
| 
       5437 
5480 
     | 
    
         
             
              // a user callback function. Others probably only need a callback function.
         
     | 
| 
       5438 
5481 
     | 
    
         | 
| 
         @@ -5538,7 +5581,7 @@ declare namespace Cypress { 
     | 
|
| 
       5538 
5581 
     | 
    
         
             
                 *  This event exists because it's extremely useful for debugging purposes.
         
     | 
| 
       5539 
5582 
     | 
    
         
             
                 * @see https://on.cypress.io/catalog-of-events#App-Events
         
     | 
| 
       5540 
5583 
     | 
    
         
             
                 */
         
     | 
| 
       5541 
     | 
    
         
            -
                (action: 'fail', fn: (error:  
     | 
| 
      
 5584 
     | 
    
         
            +
                (action: 'fail', fn: (error: CypressError, mocha: Mocha.Runnable) => void): Cypress
         
     | 
| 
       5542 
5585 
     | 
    
         
             
                /**
         
     | 
| 
       5543 
5586 
     | 
    
         
             
                 * Fires whenever the viewport changes via a `cy.viewport()` or naturally when
         
     | 
| 
       5544 
5587 
     | 
    
         
             
                 * Cypress resets the viewport to the default between tests. Useful for debugging purposes.
         
     | 
| 
         @@ -5572,6 +5615,12 @@ declare namespace Cypress { 
     | 
|
| 
       5572 
5615 
     | 
    
         
             
                 * @see https://on.cypress.io/catalog-of-events#App-Events
         
     | 
| 
       5573 
5616 
     | 
    
         
             
                 */
         
     | 
| 
       5574 
5617 
     | 
    
         
             
                (action: 'command:end', fn: (command: CommandQueue) => void): Cypress
         
     | 
| 
      
 5618 
     | 
    
         
            +
                /**
         
     | 
| 
      
 5619 
     | 
    
         
            +
                 * Fires when a command is skipped, namely the `should` command.
         
     | 
| 
      
 5620 
     | 
    
         
            +
                 * Useful for debugging and understanding how commands are handled.
         
     | 
| 
      
 5621 
     | 
    
         
            +
                 * @see https://on.cypress.io/catalog-of-events#App-Events
         
     | 
| 
      
 5622 
     | 
    
         
            +
                 */
         
     | 
| 
      
 5623 
     | 
    
         
            +
                (action: 'skipped:command:end', fn: (command: CommandQueue) => void): Cypress
         
     | 
| 
       5575 
5624 
     | 
    
         
             
                /**
         
     | 
| 
       5576 
5625 
     | 
    
         
             
                 * Fires whenever a command begins its retrying routines.
         
     | 
| 
       5577 
5626 
     | 
    
         
             
                 * This is called on the trailing edge after Cypress has internally
         
     | 
| 
         @@ -5662,10 +5711,13 @@ declare namespace Cypress { 
     | 
|
| 
       5662 
5711 
     | 
    
         
             
              }
         
     | 
| 
       5663 
5712 
     | 
    
         | 
| 
       5664 
5713 
     | 
    
         
             
              interface EnqueuedCommand {
         
     | 
| 
      
 5714 
     | 
    
         
            +
                id: string
         
     | 
| 
       5665 
5715 
     | 
    
         
             
                name: string
         
     | 
| 
       5666 
5716 
     | 
    
         
             
                args: any[]
         
     | 
| 
       5667 
5717 
     | 
    
         
             
                type: string
         
     | 
| 
       5668 
5718 
     | 
    
         
             
                chainerId: string
         
     | 
| 
      
 5719 
     | 
    
         
            +
                injected: boolean
         
     | 
| 
      
 5720 
     | 
    
         
            +
                userInvocationStack?: string
         
     | 
| 
       5669 
5721 
     | 
    
         
             
                fn(...args: any[]): any
         
     | 
| 
       5670 
5722 
     | 
    
         
             
              }
         
     | 
| 
       5671 
5723 
     | 
    
         | 
| 
         @@ -5704,6 +5756,8 @@ declare namespace Cypress { 
     | 
|
| 
       5704 
5756 
     | 
    
         
             
              }
         
     | 
| 
       5705 
5757 
     | 
    
         | 
| 
       5706 
5758 
     | 
    
         
             
              interface LogConfig extends Timeoutable {
         
     | 
| 
      
 5759 
     | 
    
         
            +
                /** Unique id for the log, in the form of '<origin>-<number>' */
         
     | 
| 
      
 5760 
     | 
    
         
            +
                id: string
         
     | 
| 
       5707 
5761 
     | 
    
         
             
                /** The JQuery element for the command. This will highlight the command in the main window when debugging */
         
     | 
| 
       5708 
5762 
     | 
    
         
             
                $el: JQuery
         
     | 
| 
       5709 
5763 
     | 
    
         
             
                /** The scope of the log entry. If child, will appear nested below parents, prefixed with '-' */
         
     | 
| 
         @@ -5712,9 +5766,12 @@ declare namespace Cypress { 
     | 
|
| 
       5712 
5766 
     | 
    
         
             
                name: string
         
     | 
| 
       5713 
5767 
     | 
    
         
             
                /** Override *name* for display purposes only */
         
     | 
| 
       5714 
5768 
     | 
    
         
             
                displayName: string
         
     | 
| 
      
 5769 
     | 
    
         
            +
                /** additional information to include in the log */
         
     | 
| 
       5715 
5770 
     | 
    
         
             
                message: any
         
     | 
| 
       5716 
5771 
     | 
    
         
             
                /** Set to false if you want to control the finishing of the command in the log yourself */
         
     | 
| 
       5717 
5772 
     | 
    
         
             
                autoEnd: boolean
         
     | 
| 
      
 5773 
     | 
    
         
            +
                /** Set to true to immediately finish the log  */
         
     | 
| 
      
 5774 
     | 
    
         
            +
                end: boolean
         
     | 
| 
       5718 
5775 
     | 
    
         
             
                /** Return an object that will be printed in the dev tools console */
         
     | 
| 
       5719 
5776 
     | 
    
         
             
                consoleProps(): ObjectLike
         
     | 
| 
       5720 
5777 
     | 
    
         
             
              }
         
     |