cypress 15.16.0 → 15.18.0

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/dist/bin/cypress CHANGED
@@ -1,8 +1,8 @@
1
1
  #!/usr/bin/env node
2
2
  'use strict';
3
3
 
4
- var cli = require('../cli-B97CK6L9.js');
5
- require('../xvfb-SgoMy1_9.js');
4
+ var cli = require('../cli-B5v_kZB5.js');
5
+ require('../xvfb-CqCqXRC-.js');
6
6
  require('os');
7
7
  require('bluebird');
8
8
  require('@cypress/xvfb');
@@ -32,7 +32,7 @@ require('commander');
32
32
  require('cli-table3');
33
33
  require('dayjs');
34
34
  require('dayjs/plugin/relativeTime');
35
- require('../spawn-BZQfzolX.js');
35
+ require('../spawn-Cnrq9zm4.js');
36
36
  require('child_process');
37
37
  require('listr2');
38
38
  require('readline');
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var xvfb = require('./xvfb-SgoMy1_9.js');
3
+ var xvfb = require('./xvfb-CqCqXRC-.js');
4
4
  var _ = require('lodash');
5
5
  var commander = require('commander');
6
6
  var commonTags = require('common-tags');
@@ -13,7 +13,7 @@ var dayjs = require('dayjs');
13
13
  var relativeTime = require('dayjs/plugin/relativeTime');
14
14
  var chalk = require('chalk');
15
15
  var Bluebird = require('bluebird');
16
- var spawn = require('./spawn-BZQfzolX.js');
16
+ var spawn = require('./spawn-Cnrq9zm4.js');
17
17
  var os = require('os');
18
18
  var listr2 = require('listr2');
19
19
  var timers = require('timers/promises');
@@ -638,22 +638,6 @@ const alreadyInstalledMsg = () => {
638
638
  }
639
639
  };
640
640
  const displayCompletionMsg = () => {
641
- // check here to see if we are globally installed
642
- if (xvfb.util.isInstalledGlobally()) {
643
- // if we are display a warning
644
- xvfb.loggerModule.log();
645
- xvfb.loggerModule.warn(commonTags.stripIndent `
646
- ${logSymbols.warning} Warning: It looks like you\'ve installed Cypress globally.
647
-
648
- The recommended way to install Cypress is as a devDependency per project.
649
-
650
- You should probably run these commands:
651
-
652
- - ${chalk.cyan('npm uninstall -g cypress')}
653
- - ${chalk.cyan('npm install --save-dev cypress')}
654
- `);
655
- return;
656
- }
657
641
  xvfb.loggerModule.log();
658
642
  xvfb.loggerModule.log('You can now open Cypress by running one of the following, depending on your package manager:');
659
643
  xvfb.loggerModule.log();
@@ -1575,6 +1559,8 @@ const descriptions = {
1575
1559
  group: 'a named group for recorded runs in Cypress Cloud',
1576
1560
  headed: 'displays the browser instead of running headlessly',
1577
1561
  headless: 'hide the browser instead of running headed (default for cypress run)',
1562
+ inspect: 'enable the Node.js inspector to debug the Cypress development process. only available when used with --dev',
1563
+ inspectBrk: 'enable the Node.js inspector and break before the Cypress development process starts. only available when used with --dev',
1578
1564
  key: 'your secret Record Key. you can omit this if you set a CYPRESS_RECORD_KEY environment variable.',
1579
1565
  parallel: 'enables concurrent runs and automatic load balancing of specs across multiple machines or processes',
1580
1566
  passWithNoTests: 'pass when no tests are found',
@@ -1703,8 +1689,7 @@ const addCypressRunCommand = (program) => {
1703
1689
  .option('--no-runner-ui', text('noRunnerUi'))
1704
1690
  .option('-o, --reporter-options <reporter-options>', text('reporterOptions'))
1705
1691
  .option('-s, --spec <spec>', text('spec'))
1706
- .option('-t, --tag <tag>', text('tag'))
1707
- .option('--dev', text('dev'), coerceFalse);
1692
+ .option('-t, --tag <tag>', text('tag'));
1708
1693
  };
1709
1694
  const addCypressOpenCommand = (program) => {
1710
1695
  return program
@@ -1721,14 +1706,24 @@ const addCypressOpenCommand = (program) => {
1721
1706
  .option('-x, --expose <expose>', text('expose'))
1722
1707
  .option('--global', text('global'))
1723
1708
  .option('-p, --port <port>', text('port'))
1724
- .option('-P, --project <project-path>', text('project'))
1725
- .option('--dev', text('dev'), coerceFalse);
1709
+ .option('-P, --project <project-path>', text('project'));
1710
+ };
1711
+ // `--dev`, `--inspect` and `--inspect-brk` are internal flags used when
1712
+ // developing Cypress itself. They are intentionally hidden from the public
1713
+ // `--help` output and only registered when `--dev` is actually passed, so that
1714
+ // released versions don't advertise flags that error for end users.
1715
+ // See https://github.com/cypress-io/cypress/issues/21320
1716
+ const maybeAddDevFlag = (program, args) => {
1717
+ if (args.includes('--dev')) {
1718
+ return program.option('--dev', text('dev'), coerceFalse);
1719
+ }
1720
+ return program;
1726
1721
  };
1727
- const maybeAddInspectFlags = (program) => {
1728
- if (process.argv.includes('--dev')) {
1722
+ const maybeAddInspectFlags = (program, args) => {
1723
+ if (args.includes('--dev')) {
1729
1724
  return program
1730
- .option('--inspect', 'Node option')
1731
- .option('--inspect-brk', 'Node option');
1725
+ .option('--inspect', text('inspect'))
1726
+ .option('--inspect-brk', text('inspectBrk'));
1732
1727
  }
1733
1728
  return program;
1734
1729
  };
@@ -1769,7 +1764,7 @@ const cliModule = {
1769
1764
  cliArgs.unshift(null, null);
1770
1765
  debug('creating program parser');
1771
1766
  const program = createProgram();
1772
- maybeAddInspectFlags(addCypressRunCommand(program))
1767
+ maybeAddInspectFlags(maybeAddDevFlag(addCypressRunCommand(program), cliArgs), cliArgs)
1773
1768
  .action((...fnArgs) => {
1774
1769
  debug('parsed Cypress run %o', fnArgs);
1775
1770
  const options = parseVariableOpts(fnArgs, cliArgs);
@@ -1801,7 +1796,7 @@ const cliModule = {
1801
1796
  cliArgs.unshift(null, null);
1802
1797
  debug('creating program parser');
1803
1798
  const program = createProgram();
1804
- maybeAddInspectFlags(addCypressOpenCommand(program))
1799
+ maybeAddInspectFlags(maybeAddDevFlag(addCypressOpenCommand(program), cliArgs), cliArgs)
1805
1800
  .action((...fnArgs) => {
1806
1801
  debug('parsed Cypress open %o', fnArgs);
1807
1802
  const options = parseVariableOpts(fnArgs, cliArgs);
@@ -1822,19 +1817,7 @@ const cliModule = {
1822
1817
  if (!args) {
1823
1818
  args = process.argv;
1824
1819
  }
1825
- const { CYPRESS_INTERNAL_ENV, CYPRESS_DOWNLOAD_USE_CA } = process.env;
1826
- if (process.env.CYPRESS_DOWNLOAD_USE_CA) {
1827
- let msg = `
1828
- ${logSymbols.warning} Warning: It looks like you're setting CYPRESS_DOWNLOAD_USE_CA=${CYPRESS_DOWNLOAD_USE_CA}
1829
-
1830
- The environment variable "CYPRESS_DOWNLOAD_USE_CA" is no longer required to be set.
1831
-
1832
- You can safely unset this environment variable.
1833
- `;
1834
- xvfb.loggerModule.log();
1835
- xvfb.loggerModule.warn(commonTags.stripIndent(msg));
1836
- xvfb.loggerModule.log();
1837
- }
1820
+ const { CYPRESS_INTERNAL_ENV } = process.env;
1838
1821
  if (!xvfb.util.isValidCypressInternalEnvValue(CYPRESS_INTERNAL_ENV)) {
1839
1822
  debug('invalid CYPRESS_INTERNAL_ENV value', CYPRESS_INTERNAL_ENV);
1840
1823
  return xvfb.exitWithError(xvfb.errors.invalidCypressEnv)(`CYPRESS_INTERNAL_ENV=${CYPRESS_INTERNAL_ENV}`);
@@ -1871,7 +1854,7 @@ const cliModule = {
1871
1854
  .option('-v, --version', text('version'))
1872
1855
  .command('version')
1873
1856
  .description(text('version')));
1874
- maybeAddInspectFlags(addCypressOpenCommand(program))
1857
+ maybeAddInspectFlags(maybeAddDevFlag(addCypressOpenCommand(program), args), args)
1875
1858
  .action((opts) => xvfb.__awaiter(this, void 0, void 0, function* () {
1876
1859
  debug('opening Cypress');
1877
1860
  try {
@@ -1882,7 +1865,7 @@ const cliModule = {
1882
1865
  xvfb.util.logErrorExit1(e);
1883
1866
  }
1884
1867
  }));
1885
- maybeAddInspectFlags(addCypressRunCommand(program))
1868
+ maybeAddInspectFlags(maybeAddDevFlag(addCypressRunCommand(program), args), args)
1886
1869
  .action((...fnArgs) => xvfb.__awaiter(this, void 0, void 0, function* () {
1887
1870
  debug('running Cypress with args %o', fnArgs);
1888
1871
  try {
@@ -1906,11 +1889,10 @@ const cliModule = {
1906
1889
  xvfb.util.logErrorExit1(e);
1907
1890
  }
1908
1891
  }));
1909
- program
1892
+ maybeAddDevFlag(program
1910
1893
  .command('verify')
1911
1894
  .usage('[options]')
1912
- .description('Verifies that Cypress is installed correctly and executable')
1913
- .option('--dev', text('dev'), coerceFalse)
1895
+ .description('Verifies that Cypress is installed correctly and executable'), args)
1914
1896
  .action((opts) => xvfb.__awaiter(this, void 0, void 0, function* () {
1915
1897
  const defaultOpts = { force: true, welcomeMessage: false };
1916
1898
  const parsedOpts = xvfb.util.parseOpts(opts);
@@ -1961,11 +1943,10 @@ const cliModule = {
1961
1943
  cacheModule[command]();
1962
1944
  });
1963
1945
  });
1964
- program
1946
+ maybeAddDevFlag(program
1965
1947
  .command('info')
1966
1948
  .usage('[command]')
1967
- .description('Prints Cypress and system information')
1968
- .option('--dev', text('dev'), coerceFalse)
1949
+ .description('Prints Cypress and system information'), args)
1969
1950
  .action((opts) => xvfb.__awaiter(this, void 0, void 0, function* () {
1970
1951
  try {
1971
1952
  const code = yield methods.start(opts);
package/dist/cli.js CHANGED
@@ -2,14 +2,14 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- require('./xvfb-SgoMy1_9.js');
5
+ require('./xvfb-CqCqXRC-.js');
6
6
  require('lodash');
7
7
  require('commander');
8
8
  require('common-tags');
9
9
  require('log-symbols');
10
10
  require('debug');
11
- var cli = require('./cli-B97CK6L9.js');
12
- require('./spawn-BZQfzolX.js');
11
+ var cli = require('./cli-B5v_kZB5.js');
12
+ require('./spawn-Cnrq9zm4.js');
13
13
  require('os');
14
14
  require('bluebird');
15
15
  require('@cypress/xvfb');
@@ -1,9 +1,9 @@
1
1
  'use strict';
2
2
 
3
- var xvfb = require('./xvfb-SgoMy1_9.js');
3
+ var xvfb = require('./xvfb-CqCqXRC-.js');
4
4
  var tmp = require('tmp');
5
5
  var fs = require('fs-extra');
6
- var cli$1 = require('./cli-B97CK6L9.js');
6
+ var cli$1 = require('./cli-B5v_kZB5.js');
7
7
 
8
8
  /**
9
9
  * Opens Cypress GUI
package/dist/cypress.js CHANGED
@@ -1,10 +1,10 @@
1
1
  'use strict';
2
2
 
3
- require('./xvfb-SgoMy1_9.js');
3
+ require('./xvfb-CqCqXRC-.js');
4
4
  require('tmp');
5
5
  require('fs-extra');
6
- require('./cli-B97CK6L9.js');
7
- var cypress = require('./cypress-DuMyFGfr.js');
6
+ require('./cli-B5v_kZB5.js');
7
+ var cypress = require('./cypress-B9M6be62.js');
8
8
  require('os');
9
9
  require('bluebird');
10
10
  require('@cypress/xvfb');
@@ -33,7 +33,7 @@ require('commander');
33
33
  require('cli-table3');
34
34
  require('dayjs');
35
35
  require('dayjs/plugin/relativeTime');
36
- require('./spawn-BZQfzolX.js');
36
+ require('./spawn-Cnrq9zm4.js');
37
37
  require('child_process');
38
38
  require('listr2');
39
39
  require('readline');
@@ -1,12 +1,12 @@
1
1
  'use strict';
2
2
 
3
- require('../xvfb-SgoMy1_9.js');
3
+ require('../xvfb-CqCqXRC-.js');
4
4
  require('lodash');
5
5
  require('os');
6
6
  require('child_process');
7
7
  require('path');
8
8
  require('debug');
9
- var spawn = require('../spawn-BZQfzolX.js');
9
+ var spawn = require('../spawn-Cnrq9zm4.js');
10
10
  require('readline');
11
11
  require('process');
12
12
  require('stream');
package/dist/exec/xvfb.js CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var xvfb = require('../xvfb-SgoMy1_9.js');
5
+ var xvfb = require('../xvfb-CqCqXRC-.js');
6
6
  require('os');
7
7
  require('bluebird');
8
8
  require('@cypress/xvfb');
package/dist/index.js CHANGED
@@ -2,12 +2,12 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var xvfb = require('./xvfb-SgoMy1_9.js');
5
+ var xvfb = require('./xvfb-CqCqXRC-.js');
6
6
  var minimist = require('minimist');
7
7
  var Debug = require('debug');
8
- var cli$1 = require('./cli-B97CK6L9.js');
9
- var spawn = require('./spawn-BZQfzolX.js');
10
- var cypress = require('./cypress-DuMyFGfr.js');
8
+ var cli$1 = require('./cli-B5v_kZB5.js');
9
+ var spawn = require('./spawn-Cnrq9zm4.js');
10
+ var cypress = require('./cypress-B9M6be62.js');
11
11
  require('os');
12
12
  require('bluebird');
13
13
  require('@cypress/xvfb');
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var xvfb = require('./xvfb-SgoMy1_9.js');
3
+ var xvfb = require('./xvfb-CqCqXRC-.js');
4
4
  var _ = require('lodash');
5
5
  var os = require('os');
6
6
  var cp = require('child_process');
@@ -1060,6 +1060,8 @@ var distExports = requireDist();
1060
1060
  const debug = Debug('cypress:cli');
1061
1061
  const debugElectron = Debug('cypress:electron');
1062
1062
  const debugStderr = Debug('cypress:internal-stderr');
1063
+ // Must match CYPRESS_OPEN_READY_MESSAGE in packages/server/lib/modes/interactive.ts
1064
+ const CYPRESS_OPEN_READY_MESSAGE = 'Cypress is ready';
1063
1065
  function isPlatform(platform) {
1064
1066
  return os.platform() === platform;
1065
1067
  }
@@ -1131,6 +1133,13 @@ function createSpawnFunction(executable, args, options) {
1131
1133
  debug('passing DISPLAY', process$1.env.DISPLAY);
1132
1134
  stdioOptions.env.DISPLAY = process$1.env.DISPLAY;
1133
1135
  }
1136
+ if (stdioOptions.detached) {
1137
+ // Ask interactive mode to print a ready sentinel on stdout; pipe stdio during
1138
+ // startup so errors are visible and we can detect it. Streams are destroyed
1139
+ // once it arrives so they don't keep the parent event loop alive.
1140
+ args.push('--emit-when-ready');
1141
+ stdioOptions.stdio = ['ignore', 'pipe', 'pipe'];
1142
+ }
1134
1143
  if (stdioOptions.env.ELECTRON_RUN_AS_NODE) {
1135
1144
  // Since we are running electron as node, we need to add an entry point file.
1136
1145
  startScriptPath = path.join(xvfb.stateModule.getBinaryPkgPath(path.dirname(executable)), '..', 'index.js');
@@ -1205,6 +1214,26 @@ function createSpawnFunction(executable, args, options) {
1205
1214
  });
1206
1215
  }
1207
1216
  }
1217
+ if (stdioOptions.detached) {
1218
+ child.stdout.on('data', (data) => {
1219
+ const str = data.toString();
1220
+ const readyMessageIndex = str.indexOf(CYPRESS_OPEN_READY_MESSAGE);
1221
+ const isReady = readyMessageIndex !== -1;
1222
+ if (isReady) {
1223
+ const outputBeforeReady = str.slice(0, readyMessageIndex);
1224
+ if (outputBeforeReady)
1225
+ process$1.stdout.write(outputBeforeReady);
1226
+ child.stdout.destroy();
1227
+ child.stderr.destroy();
1228
+ child.unref();
1229
+ resolve(0);
1230
+ return;
1231
+ }
1232
+ process$1.stdout.write(data);
1233
+ });
1234
+ child.stderr.pipe(process$1.stderr, { end: false });
1235
+ return;
1236
+ }
1208
1237
  // if stdio options is set to 'pipe', then
1209
1238
  // we should set up pipes:
1210
1239
  // process STDIN (read stream) => child STDIN (writeable)
@@ -1258,9 +1287,6 @@ function createSpawnFunction(executable, args, options) {
1258
1287
  }
1259
1288
  reject(err);
1260
1289
  });
1261
- if (stdioOptions.detached) {
1262
- child.unref();
1263
- }
1264
1290
  }));
1265
1291
  };
1266
1292
  }
@@ -907,19 +907,6 @@ const invalidConfigFile = {
907
907
  description: '`--config-file` cannot be false.',
908
908
  solution: 'Either pass a relative path to a valid Cypress config file or remove this option.',
909
909
  };
910
- /**
911
- * This error happens when CLI detects that the child Test Runner process
912
- * was killed with a signal, like SIGBUS
913
- * @see https://github.com/cypress-io/cypress/issues/5808
914
- * @param {'close'|'event'} eventName Child close event name
915
- * @param {string} signal Signal that closed the child process, like "SIGBUS"
916
- */
917
- const childProcessKilled = (eventName, signal) => {
918
- return {
919
- description: `The Test Runner unexpectedly exited via a ${chalk.cyan(eventName)} event with signal ${chalk.cyan(signal)}`,
920
- solution: solutionUnknown,
921
- };
922
- };
923
910
  const CYPRESS_RUN_BINARY = {
924
911
  notValid: (value) => {
925
912
  const properFormat = `**/${stateModule.getPlatformExecutable()}`;
@@ -1033,7 +1020,6 @@ const errors = {
1033
1020
  invalidCacheDirectory,
1034
1021
  CYPRESS_RUN_BINARY,
1035
1022
  smokeTestFailure,
1036
- childProcessKilled,
1037
1023
  incompatibleHeadlessFlags,
1038
1024
  invalidRunProjectPath,
1039
1025
  invalidTestingType,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cypress",
3
- "version": "15.16.0",
3
+ "version": "15.18.0",
4
4
  "main": "dist/index.js",
5
5
  "scripts": {
6
6
  "postinstall": "node dist/index.js --exec install",
@@ -138,8 +138,8 @@
138
138
  },
139
139
  "buildInfo": {
140
140
  "commitBranch": "develop",
141
- "commitSha": "22aaf2371462ec13f138fd96c11e8f9f885ed575",
142
- "commitDate": "2026-05-26T16:59:59.000Z",
141
+ "commitSha": "fa083dbc716f2fd1c50ba505ee9c400366c922f6",
142
+ "commitDate": "2026-06-23T12:40:08.000Z",
143
143
  "stable": true
144
144
  },
145
145
  "description": "Cypress is a next generation front end testing tool built for the modern web",
@@ -8,10 +8,13 @@
8
8
  "build": "rollup -c rollup.config.mjs",
9
9
  "postbuild": "node ../../scripts/sync-exported-npm-with-cli.js",
10
10
  "check-ts": "tsc --noEmit",
11
- "lint": "eslint --ext .js,.jsx,.ts,.tsx,.json, ."
11
+ "lint": "eslint"
12
12
  },
13
13
  "devDependencies": {
14
+ "@packages/eslint-config": "0.0.0-development",
14
15
  "@cypress/mount-utils": "0.0.0-development",
16
+ "eslint": "^9.31.0",
17
+ "jiti": "^2.4.2",
15
18
  "rollup": "3.29.5",
16
19
  "svelte": "^5.4.0",
17
20
  "typescript": "~5.4.5"
@@ -53,5 +56,8 @@
53
56
  "implicitDependencies": [
54
57
  "!cypress"
55
58
  ]
59
+ },
60
+ "lint-staged": {
61
+ "**/*.{js,jsx,ts,tsx}": "eslint --fix"
56
62
  }
57
63
  }
@@ -8,10 +8,13 @@
8
8
  "build": "rollup -c rollup.config.mjs",
9
9
  "postbuild": "node ../../scripts/sync-exported-npm-with-cli.js",
10
10
  "check-ts": "tsc --noEmit",
11
- "lint": "eslint --ext .js,.jsx,.ts,.tsx,.json, ."
11
+ "lint": "eslint"
12
12
  },
13
13
  "devDependencies": {
14
+ "@packages/eslint-config": "0.0.0-development",
14
15
  "@cypress/mount-utils": "0.0.0-development",
16
+ "eslint": "^9.31.0",
17
+ "jiti": "^2.4.2",
15
18
  "rollup": "3.29.5",
16
19
  "svelte": "^5.4.0",
17
20
  "typescript": "~5.4.5"
@@ -53,5 +56,8 @@
53
56
  "implicitDependencies": [
54
57
  "!cypress"
55
58
  ]
59
+ },
60
+ "lint-staged": {
61
+ "**/*.{js,jsx,ts,tsx}": "eslint --fix"
56
62
  }
57
63
  }
@@ -1486,6 +1486,22 @@ declare namespace Cypress {
1486
1486
  * cy.get('button').should('be.visible')
1487
1487
  */
1488
1488
  get<K extends keyof HTMLElementTagNameMap>(selector: K, options?: Partial<Loggable & Timeoutable & Withinable & Shadow>): Chainable<JQuery<HTMLElementTagNameMap[K]>>
1489
+ /**
1490
+ * Get aliased DOM elements, intercepts, spies, stubs, or wrapped values via `@` prefix.
1491
+ * Use the `S` type parameter to specify the type of the aliased subject.
1492
+ * @see https://on.cypress.io/get#Alias
1493
+ * @example
1494
+ * // Get the aliased 'todos' elements
1495
+ * cy.get('ul#todos').as('todos')
1496
+ * cy.get<JQuery<HTMLLIElement>>('@todos')
1497
+ *
1498
+ * // Alias a wrapped value and retrieve it with proper typing
1499
+ * cy.wrap({ name: 'Jane' }).as('user')
1500
+ * cy.get<{ name: string }>('@user').then((user) => {
1501
+ * // user is typed as { name: string }
1502
+ * })
1503
+ */
1504
+ get<S = any>(alias: `@${string}`, options?: Partial<Loggable & Timeoutable & Withinable & Shadow>): Chainable<S>
1489
1505
  /**
1490
1506
  * Get one or more DOM elements by selector.
1491
1507
  * The querying behavior of this command matches exactly how $(…) works in jQuery.
@@ -1496,17 +1512,6 @@ declare namespace Cypress {
1496
1512
  * cy.get('.dropdown-menu').click()
1497
1513
  */
1498
1514
  get<E extends Node = HTMLElement>(selector: string, options?: Partial<Loggable & Timeoutable & Withinable & Shadow>): Chainable<JQuery<E>>
1499
- /**
1500
- * Get one or more DOM elements by alias.
1501
- * @see https://on.cypress.io/get#Alias
1502
- * @example
1503
- * // Get the aliased 'todos' elements
1504
- * cy.get('ul#todos').as('todos')
1505
- * //...hack hack hack...
1506
- * //later retrieve the todos
1507
- * cy.get('@todos')
1508
- */
1509
- get<S = any>(alias: string, options?: Partial<Loggable & Timeoutable & Withinable & Shadow>): Chainable<S>
1510
1515
 
1511
1516
  /**
1512
1517
  * Get a browser cookie by its name.
@@ -3069,6 +3074,15 @@ declare namespace Cypress {
3069
3074
  * @see https://on.cypress.io/configuration#modifyObstructiveCode
3070
3075
  */
3071
3076
  modifyObstructiveCode: boolean
3077
+ /**
3078
+ * Whether Cypress will strip the `integrity` attribute from `<script>` and `<link>` elements
3079
+ * on first-party resources so they are not blocked by Subresource Integrity (SRI) enforcement
3080
+ * after the proxy rewrites them (under `modifyObstructiveCode`). Covers `integrity` set via
3081
+ * static HTML, a JavaScript string literal, or runtime DOM assignment. Third-party resources
3082
+ * are only rewritten — and have their SRI stripped — under `experimentalModifyObstructiveThirdPartyCode`.
3083
+ * @default false
3084
+ */
3085
+ removeSRIAttributes: boolean
3072
3086
  /**
3073
3087
  * Time, in milliseconds, to wait for an XHR request to go out in a [cy.wait()](https://on.cypress.io/wait) command
3074
3088
  * @default 5000
@@ -3228,7 +3242,8 @@ declare namespace Cypress {
3228
3242
  experimentalInteractiveRunEvents: boolean
3229
3243
  /**
3230
3244
  * Whether Cypress will search for and replace obstructive code in third party .js or .html files.
3231
- * NOTE: Setting this flag to true removes Subresource Integrity (SRI).
3245
+ * NOTE: Setting this flag to true removes Subresource Integrity (SRI) from third-party resources.
3246
+ * To strip SRI from first-party resources as well, use `removeSRIAttributes`.
3232
3247
  * Please see https://developer.mozilla.org/en-US/docs/Web/Security/Subresource_Integrity.
3233
3248
  * This option has no impact on experimentalSourceRewriting and is only used with the
3234
3249
  * non-experimental source rewriter.
@@ -3442,6 +3457,7 @@ declare namespace Cypress {
3442
3457
  >, Partial<Pick<ResolvedConfigOptions, 'baseUrl' | 'testIsolation'>> {
3443
3458
  browser?: IsBrowserMatcher | IsBrowserMatcher[]
3444
3459
  keystrokeDelay?: number
3460
+ expose?: Record<string, any>
3445
3461
  }
3446
3462
 
3447
3463
  interface TestConfigOverrides extends Partial<
@@ -3449,6 +3465,7 @@ declare namespace Cypress {
3449
3465
  >, Partial<Pick<ResolvedConfigOptions, 'baseUrl'>> {
3450
3466
  browser?: IsBrowserMatcher | IsBrowserMatcher[]
3451
3467
  keystrokeDelay?: number
3468
+ expose?: Record<string, any>
3452
3469
  }
3453
3470
 
3454
3471
  /**
@@ -548,7 +548,7 @@ declare global {
548
548
  })
549
549
  ```
550
550
  */
551
- wait<TRequest = any, TResponse = any>(alias: string, options?: Partial<WaitOptions>): Chainable<Interception<TRequest, TResponse>>
551
+ wait<TRequest = any, TResponse = any>(alias: `@${string}`, options?: Partial<WaitOptions>): Chainable<Interception<TRequest, TResponse>>
552
552
  /**
553
553
  * Wait for list of requests to complete.
554
554
  *
@@ -568,7 +568,7 @@ declare global {
568
568
  })
569
569
  ```
570
570
  */
571
- wait(aliases: string[], options?: Partial<WaitOptions>): Chainable<Interception[]>
571
+ wait(aliases: `@${string}`[], options?: Partial<WaitOptions>): Chainable<Interception[]>
572
572
  }
573
573
  }
574
574
  }
package/vue/package.json CHANGED
@@ -9,13 +9,16 @@
9
9
  "check-ts": "yarn tsd && vue-tsc --noEmit",
10
10
  "cy:open": "node ../../scripts/cypress.js open --component --project ${PWD}",
11
11
  "cy:run": "node ../../scripts/cypress.js run --component --project ${PWD}",
12
- "lint": "eslint --ext .js,.jsx,.ts,.tsx,.json,.vue .",
12
+ "lint": "eslint",
13
13
  "test": "yarn cy:run",
14
14
  "tsd": "yarn build && yarn tsc -p test-tsd/tsconfig.json",
15
15
  "watch": "yarn build --watch --watch.exclude ./dist/**/*"
16
16
  },
17
17
  "devDependencies": {
18
+ "@packages/eslint-config": "0.0.0-development",
18
19
  "@cypress/mount-utils": "0.0.0-development",
20
+ "eslint": "^9.31.0",
21
+ "jiti": "^2.4.2",
19
22
  "@vitejs/plugin-vue": "6.0.3",
20
23
  "@vue/compiler-sfc": "3.2.47",
21
24
  "@vue/test-utils": "2.4.6",
@@ -24,6 +27,7 @@
24
27
  "rollup": "3.29.5",
25
28
  "typescript": "~5.4.5",
26
29
  "vite": "6.3.5",
30
+ "vue-eslint-parser": "^10.0.0",
27
31
  "vue": "3.2.47",
28
32
  "vue-i18n": "9.14.5",
29
33
  "vue-router": "^4.0.0",
@@ -86,5 +90,8 @@
86
90
  ]
87
91
  }
88
92
  }
93
+ },
94
+ "lint-staged": {
95
+ "**/*.{js,jsx,ts,tsx,vue}": "eslint --fix"
89
96
  }
90
97
  }
@@ -9,13 +9,16 @@
9
9
  "check-ts": "yarn tsd && vue-tsc --noEmit",
10
10
  "cy:open": "node ../../scripts/cypress.js open --component --project ${PWD}",
11
11
  "cy:run": "node ../../scripts/cypress.js run --component --project ${PWD}",
12
- "lint": "eslint --ext .js,.jsx,.ts,.tsx,.json,.vue .",
12
+ "lint": "eslint",
13
13
  "test": "yarn cy:run",
14
14
  "tsd": "yarn build && yarn tsc -p test-tsd/tsconfig.json",
15
15
  "watch": "yarn build --watch --watch.exclude ./dist/**/*"
16
16
  },
17
17
  "devDependencies": {
18
+ "@packages/eslint-config": "0.0.0-development",
18
19
  "@cypress/mount-utils": "0.0.0-development",
20
+ "eslint": "^9.31.0",
21
+ "jiti": "^2.4.2",
19
22
  "@vitejs/plugin-vue": "6.0.3",
20
23
  "@vue/compiler-sfc": "3.2.47",
21
24
  "@vue/test-utils": "2.4.6",
@@ -24,6 +27,7 @@
24
27
  "rollup": "3.29.5",
25
28
  "typescript": "~5.4.5",
26
29
  "vite": "6.3.5",
30
+ "vue-eslint-parser": "^10.0.0",
27
31
  "vue": "3.2.47",
28
32
  "vue-i18n": "9.14.5",
29
33
  "vue-router": "^4.0.0",
@@ -86,5 +90,8 @@
86
90
  ]
87
91
  }
88
92
  }
93
+ },
94
+ "lint-staged": {
95
+ "**/*.{js,jsx,ts,tsx,vue}": "eslint --fix"
89
96
  }
90
97
  }