diff --git a/.eslintignore b/.eslintignore
index 907b3c5f0ac8..84a4d0703801 100644
--- a/.eslintignore
+++ b/.eslintignore
@@ -14,6 +14,21 @@
**/support/fixtures/projects/**/static/*
**/support/fixtures/projects/**/*.jsx
**/support/fixtures/projects/**/fail.js
+
+system-tests/fixtures/*
+!system-tests/projects
+system-tests/projects/**/_fixtures/*
+system-tests/projects/**/static/*
+system-tests/projects/**/*.jsx
+system-tests/projects/**/fail.js
+system-tests/lib/scaffold/plugins/index.js
+system-tests/lib/scaffold/support/index.js
+system-tests/lib/scaffold/support/commands.js
+system-tests/test/support/projects/e2e/cypress/
+system-tests/projects/e2e/cypress/integration/stdout_exit_early_failing_spec.js
+system-tests/projects/e2e/cypress/integration/typescript_syntax_error_spec.ts
+
+
**/test/fixtures
**/vendor
@@ -23,11 +38,7 @@ cli/types
packages/example
packages/extension/test/helpers/background.js
-packages/server/lib/scaffold/plugins/index.js
-packages/server/lib/scaffold/support/index.js
-packages/server/lib/scaffold/support/commands.js
-packages/server/test/support/fixtures/projects/e2e/cypress/integration/stdout_exit_early_failing_spec.js
-packages/server/test/support/fixtures/projects/e2e/cypress/integration/typescript_syntax_error_spec.ts
+integration/stdout_exit_early_failing_spec.js
npm/webpack-preprocessor/cypress/tests/e2e/compile-error.js
npm/webpack-preprocessor/examples/use-babelrc/cypress/integration/spec.js
diff --git a/.gitignore b/.gitignore
index a02bc6e2a0aa..bcf831bbbf04 100644
--- a/.gitignore
+++ b/.gitignore
@@ -40,6 +40,10 @@ packages/server/support
packages/server/test/support/fixtures/server/imgs
packages/server/test/support/fixtures/server/libs
+# from system-tests
+system-tests/.projects
+system-tests/fixtures/large-img
+
# from npm/react
/npm/react/bin/*
/npm/react/cypress/videos
@@ -335,7 +339,6 @@ $RECYCLE.BIN/
# Windows shortcuts
*.lnk
-/npm/react/bin/*
# End of https://www.gitignore.io/api/osx,git,node,windows,intellij,linux
# Circle cache artifacts
diff --git a/.vscode/extensions.json b/.vscode/extensions.json
new file mode 100644
index 000000000000..1fd5f170b61b
--- /dev/null
+++ b/.vscode/extensions.json
@@ -0,0 +1,35 @@
+{
+ // To see these extensions in VS Code:
+ // 1. Open the Command Palette (Ctrl+Shift+P)
+ // 2. Select "Extensions: Show Recommended Extensions"
+
+ // See https://go.microsoft.com/fwlink/?LinkId=827846 to learn about workspace recommendations.
+
+ // List of extensions which are recommended for Cypress contributors using VS Code:
+ "recommendations": [
+ // Name: ESLint
+ // Description: Integrates ESLint JavaScript into VS Code.
+ "dbaeumer.vscode-eslint",
+ // Name: GitHub linker
+ // Description: Create links to fragments of code in GitHub
+ "gimenete.github-linker",
+ // Name: GitLens — Git supercharged
+ // Description: Supercharge the Git capabilities built into Visual Studio Code — Visualize code authorship at a glance via Git blame annotations and code lens, seamlessly navigate and explore Git repositories, gain valuable insights via powerful comparison commands, and so much more
+ "eamodio.gitlens",
+ // Name: Terminals Manager
+ // Description: An extension for setting-up multiple terminals at once, or just running some commands
+ // There are several Terminals defined in `.vscode/terminals.json` that can be used via this plugin.
+ "fabiospampinato.vscode-terminals",
+ // Name: Test Utils
+ // Description: Add, remove, and move .only in tests
+ "chrisbreiding.test-utils",
+ // Name: Toggle Quotes
+ // Description: Toggle cycle " -> ' -> `
+ "britesnow.vscode-toggle-quotes",
+ ],
+
+ // List of extensions recommended by VS Code that should not be recommended for Cypress contributors using VS Code:
+ "unwantedRecommendations": [
+
+ ]
+}
\ No newline at end of file
diff --git a/.vscode/terminals.json b/.vscode/terminals.json
index bb5b56b9f05e..27f9a82ccf57 100644
--- a/.vscode/terminals.json
+++ b/.vscode/terminals.json
@@ -24,12 +24,20 @@
"command": "yarn cypress:run --project ../project"
},
{
- "name": "packages/server test-e2e",
+ "name": "cypress open (CT)",
+ "focus": true,
+ "onlySingle": true,
+ "execute": true,
+ "cwd": "[cwd]/packages/server-ct",
+ "command": "yarn cypress:open"
+ },
+ {
+ "name": "system-tests test",
"focus": true,
"onlySingle": true,
"execute": false,
- "cwd": "[cwd]/packages/server",
- "command": "yarn test-e2e [fileBasename]"
+ "cwd": "[cwd]/system-tests",
+ "command": "yarn test [fileBasename]"
},
{
"name": "packages/server test-watch",
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index fb3e31bdb00d..4431772b6d2d 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -396,6 +396,7 @@ By default, top level tasks will execute for all packages. However, most scripts
| `test-unit` | Run unit tests |
| `test-integration` | Run integration tests |
| `test-e2e` | Run end-to-end tests |
+| `test-system` | Run system tests |
| `test-watch` | Run unit tests and rebuild/rerun on file changes |
> Most of the time you will only want to run a task within a specific package; this can be done by providing the package name as a scope to the top level task.
@@ -428,7 +429,6 @@ Each package is responsible for building itself and testing itself and can do so
| `test` | Runs all tests once (this usually means running unit tests; via `yarn test-unit`) |
| `test-unit` | Run all unit tests within the package; `exit 0` if N/A |
| `test-integration` | Run all integration tests within the package; `exit 0` if N/A |
-| `test-e2e` | Run all e2e tests within the package; `exit 0` if N/A |
| `test-watch` | Run all unit tests in the package in watch mode |
#### Debugging
@@ -486,11 +486,11 @@ This is to ensure that links do not go dead in older versions of Cypress when th
For most packages there are typically unit and integration tests.
-Our true e2e tests are in [`packages/server`](packages/server), which test the full stack all together.
+Please refer to each packages' `README.md` which documents how to run tests. It is not feasible to try to run all of the tests together. We run our entire test fleet across over a dozen containers in CI.
-Additionally, we test the code by running it against various other example projects in CI. See CI badges and links at the top of this document.
+There are also a set of system tests in [`system-tests`](system-tests) which attempt to test the entire Cypress App as close to real world as possible. See the [`README`](system-tests/README.md) for more information.
-Please refer to each packages' `README.md` which documents how to run tests. It is not feasible to try to run all of the tests together. We run our entire test fleet across over a dozen containers in CI.
+Additionally, we test the code by running it against various other example projects in CI. See CI badges and links at the top of this document.
If you're curious how we manage all of these tests in CI check out our [`circle.yml`](circle.yml) file found in the root `cypress` directory.
diff --git a/README.md b/README.md
index e8de4bae170b..e4f75316dc14 100644
--- a/README.md
+++ b/README.md
@@ -1,5 +1,5 @@
-
+
Documentation |
diff --git a/browser-versions.json b/browser-versions.json
index cc7c3c376625..46882bd5b8bc 100644
--- a/browser-versions.json
+++ b/browser-versions.json
@@ -1,4 +1,4 @@
{
- "chrome:beta": "95.0.4638.40",
- "chrome:stable": "94.0.4606.71"
+ "chrome:beta": "96.0.4664.18",
+ "chrome:stable": "95.0.4638.54"
}
diff --git a/circle.yml b/circle.yml
index 300659ceaa5a..4de0c815fc6a 100644
--- a/circle.yml
+++ b/circle.yml
@@ -112,6 +112,7 @@ commands:
mkdir -p /tmp/node_modules_cache
mv ~/cypress/node_modules /tmp/node_modules_cache/root_node_modules
mv ~/cypress/cli/node_modules /tmp/node_modules_cache/cli_node_modules
+ mv ~/cypress/system-tests/node_modules /tmp/node_modules_cache/system-tests_node_modules
mv ~/cypress/globbed_node_modules /tmp/node_modules_cache/globbed_node_modules
build-and-persist:
@@ -142,6 +143,7 @@ commands:
if [[ -d "/tmp/node_modules_cache" ]]; then
mv /tmp/node_modules_cache/root_node_modules ~/cypress/node_modules
mv /tmp/node_modules_cache/cli_node_modules ~/cypress/cli/node_modules
+ mv /tmp/node_modules_cache/system-tests_node_modules ~/cypress/system-tests/node_modules
mv /tmp/node_modules_cache/globbed_node_modules ~/cypress/globbed_node_modules
rm -rf /tmp/node_modules_cache
fi
@@ -194,6 +196,7 @@ commands:
paths:
- node_modules
- cli/node_modules
+ - system-tests/node_modules
- globbed_node_modules
- unless:
condition: <>
@@ -417,7 +420,7 @@ commands:
path: ./packages/runner-ct/cypress/videos
- store-npm-logs
- run-e2e-tests:
+ run-system-tests:
parameters:
browser:
description: browser shortname to target
@@ -425,8 +428,9 @@ commands:
steps:
- restore_cached_workspace
- run:
+ name: Run system tests
command: |
- ALL_SPECS=`circleci tests glob "/root/cypress/packages/server/test/e2e/*spec*"`
+ ALL_SPECS=`circleci tests glob "/root/cypress/system-tests/test/*spec*"`
SPECS=
for file in $ALL_SPECS; do
# filter out non_root tests, they have their own stage
@@ -438,7 +442,7 @@ commands:
done
SPECS=`echo $SPECS | xargs -n 1 | circleci tests split --split-by=timings`
echo SPECS=$SPECS
- yarn workspace @packages/server test $SPECS --browser <>
+ yarn workspace @tooling/system-tests test:ci $SPECS --browser <>
- verify-mocha-results
- store_test_results:
path: /tmp/cypress
@@ -1080,37 +1084,37 @@ jobs:
path: /tmp/artifacts
- store-npm-logs
- server-e2e-tests-chrome:
+ system-tests-chrome:
<<: *defaults
resource_class: medium
parallelism: 8
steps:
- - run-e2e-tests:
+ - run-system-tests:
browser: chrome
- server-e2e-tests-electron:
+ system-tests-electron:
<<: *defaults
resource_class: medium
parallelism: 8
steps:
- - run-e2e-tests:
+ - run-system-tests:
browser: electron
- server-e2e-tests-firefox:
+ system-tests-firefox:
<<: *defaults
resource_class: medium
parallelism: 8
steps:
- - run-e2e-tests:
+ - run-system-tests:
browser: firefox
- server-e2e-tests-non-root:
+ system-tests-non-root:
<<: *defaults
resource_class: medium
steps:
- restore_cached_workspace
- run:
- command: yarn workspace @packages/server test ./test/e2e/non_root*spec* --browser electron
+ command: yarn workspace @tooling/system-tests test:ci "test/non_root*spec*" --browser electron
- verify-mocha-results
- store_test_results:
path: /tmp/cypress
@@ -2007,16 +2011,16 @@ linux-workflow: &linux-workflow
- server-performance-tests:
requires:
- build
- - server-e2e-tests-chrome:
+ - system-tests-chrome:
requires:
- build
- - server-e2e-tests-electron:
+ - system-tests-electron:
requires:
- build
- - server-e2e-tests-firefox:
+ - system-tests-firefox:
requires:
- build
- - server-e2e-tests-non-root:
+ - system-tests-non-root:
executor: non-root-docker-user
requires:
- build
@@ -2123,10 +2127,10 @@ linux-workflow: &linux-workflow
- driver-integration-tests-firefox
- driver-integration-tests-chrome
- driver-integration-tests-electron
- - server-e2e-tests-non-root
- - server-e2e-tests-firefox
- - server-e2e-tests-electron
- - server-e2e-tests-chrome
+ - system-tests-non-root
+ - system-tests-firefox
+ - system-tests-electron
+ - system-tests-chrome
- server-performance-tests
- server-integration-tests
- server-unit-tests
diff --git a/cli/package.json b/cli/package.json
index e63e144e9d29..4387fc409906 100644
--- a/cli/package.json
+++ b/cli/package.json
@@ -74,7 +74,7 @@
"@types/jquery": "3.3.31",
"@types/lodash": "4.14.168",
"@types/minimatch": "3.0.3",
- "@types/mocha": "5.2.7",
+ "@types/mocha": "8.0.3",
"@types/sinon": "7.5.1",
"@types/sinon-chai": "3.2.5",
"chai": "3.5.0",
diff --git a/cli/schema/cypress.schema.json b/cli/schema/cypress.schema.json
index 617664c1028d..7608f6a8b9ba 100644
--- a/cli/schema/cypress.schema.json
+++ b/cli/schema/cypress.schema.json
@@ -44,6 +44,11 @@
"default": null,
"description": "The reporter options used. Supported options depend on the reporter. See https://on.cypress.io/reporters#Reporter-Options"
},
+ "slowTestThreshold": {
+ "type": "number",
+ "default": 10000,
+ "description": "Slow test threshold in milliseconds. Only affects the visual output of some reporters. For example, the spec reporter will display the test time in yellow if over the threshold. See https://on.cypress.io/configuration#Timeouts"
+ },
"testFiles": {
"type": [
"string",
diff --git a/cli/scripts/post-install.js b/cli/scripts/post-install.js
index a632fe82946f..8439892c633c 100644
--- a/cli/scripts/post-install.js
+++ b/cli/scripts/post-install.js
@@ -5,6 +5,7 @@
const { includeTypes } = require('./utils')
const shell = require('shelljs')
+const fs = require('fs')
const { join } = require('path')
const resolvePkg = require('resolve-pkg')
@@ -72,3 +73,23 @@ shell.sed('-i', 'from \'sinon\';', 'from \'../sinon\';', sinonChaiFilename)
// copy experimental network stubbing type definitions
// so users can import: `import 'cypress/types/net-stubbing'`
shell.cp(resolvePkg('@packages/net-stubbing/lib/external-types.ts'), 'types/net-stubbing.ts')
+
+// https://github.com/cypress-io/cypress/issues/18069
+// To avoid type clashes, some files should be commented out entirely by patch-package
+// and uncommented here.
+
+const filesToUncomment = [
+ 'mocha/index.d.ts',
+ 'jquery/JQuery.d.ts',
+ 'jquery/legacy.d.ts',
+ 'jquery/misc.d.ts',
+]
+
+filesToUncomment.forEach((file) => {
+ const filePath = join(__dirname, '../types', file)
+ const str = fs.readFileSync(filePath).toString()
+
+ const result = str.split('\n').map((line) => line.substring(3)).join('\n')
+
+ fs.writeFileSync(filePath, result)
+})
diff --git a/cli/types/cy-bluebird.d.ts b/cli/types/cy-bluebird.d.ts
index c729bd79c026..fced75ab6956 100644
--- a/cli/types/cy-bluebird.d.ts
+++ b/cli/types/cy-bluebird.d.ts
@@ -1,11 +1,12 @@
// Shim definition to export a namespace. Cypress is actually a global module
// so import/export isn't allowed there. We import here and define a global module
// so that Cypress can get and use the Blob type
-import BluebirdStatic = require('./bluebird')
+import ImportedBluebird = require('./bluebird')
export = Bluebird
export as namespace Bluebird
declare namespace Bluebird {
- type BluebirdStatic = typeof BluebirdStatic
+ type BluebirdStatic = typeof ImportedBluebird
+ interface Promise extends ImportedBluebird {}
}
diff --git a/cli/types/cypress-npm-api.d.ts b/cli/types/cypress-npm-api.d.ts
index c60a34713812..9356702ccf00 100644
--- a/cli/types/cypress-npm-api.d.ts
+++ b/cli/types/cypress-npm-api.d.ts
@@ -91,6 +91,10 @@ declare namespace CypressCommandLine {
* Specify mocha reporter options
*/
reporterOptions: any
+ /**
+ * Slow test threshold in milliseconds. Only affects the visual output of some reporters. For example, the spec reporter will display the test time in yellow if over the threshold.
+ */
+ slowTestThreshold: number
/**
* Specify the specs to run
*/
diff --git a/cli/types/cypress.d.ts b/cli/types/cypress.d.ts
index 5dd65e6b0525..2cd7d647d8c2 100644
--- a/cli/types/cypress.d.ts
+++ b/cli/types/cypress.d.ts
@@ -170,6 +170,11 @@ declare namespace Cypress {
*/
interface ApplicationWindow { } // tslint:disable-line
+ /**
+ * The configuration for Cypress.
+ */
+ type Config = ResolvedConfigOptions & RuntimeConfigOptions
+
/**
* Several libraries are bundled with Cypress by default.
*
@@ -297,7 +302,7 @@ declare namespace Cypress {
/**
* Fire automation:request event for internal use.
*/
- automation(eventName: string, ...args: any[]): Promise
+ automation(eventName: string, ...args: any[]): Bluebird.Promise
/**
* Promise wrapper for certain internal tasks.
@@ -313,7 +318,7 @@ declare namespace Cypress {
// {defaultCommandTimeout: 10000, pageLoadTimeout: 30000, ...}
```
*/
- config(): ResolvedConfigOptions & RuntimeConfigOptions
+ config(): Config
/**
* Returns one configuration value.
* @see https://on.cypress.io/config
@@ -2572,6 +2577,11 @@ declare namespace Cypress {
* @default "spec"
*/
reporterOptions: { [key: string]: any }
+ /**
+ * Slow test threshold in milliseconds. Only affects the visual output of some reporters. For example, the spec reporter will display the test time in yellow if over the threshold.
+ * @default 10000
+ */
+ slowTestThreshold: number
/**
* Whether Cypress will watch and restart tests on test file changes
* @default true
diff --git a/lerna.json b/lerna.json
index e0eaa3cfb9ae..e541ef2d7385 100644
--- a/lerna.json
+++ b/lerna.json
@@ -3,7 +3,8 @@
"packages": [
"cli",
"packages/*",
- "npm/*"
+ "npm/*",
+ "system-tests"
],
"useWorkspaces": true,
"version": "0.0.0"
diff --git a/npm/create-cypress-tests/src/component-testing/babel/babelTransform.test.ts b/npm/create-cypress-tests/src/component-testing/babel/babelTransform.test.ts
index be1a39d12a66..5bc9e1ed33dc 100644
--- a/npm/create-cypress-tests/src/component-testing/babel/babelTransform.test.ts
+++ b/npm/create-cypress-tests/src/component-testing/babel/babelTransform.test.ts
@@ -1,3 +1,5 @@
+///
+
import * as babel from '@babel/core'
import { expect } from 'chai'
import { createTransformPluginsFileBabelPlugin } from './babelTransform'
diff --git a/npm/cypress-schematic/src/schematics/ng-add/index.spec.ts b/npm/cypress-schematic/src/schematics/ng-add/index.spec.ts
index 5adcc84af195..0bf90878cb31 100644
--- a/npm/cypress-schematic/src/schematics/ng-add/index.spec.ts
+++ b/npm/cypress-schematic/src/schematics/ng-add/index.spec.ts
@@ -1,3 +1,5 @@
+///
+
import { SchematicTestRunner, UnitTestTree } from '@angular-devkit/schematics/testing'
import { join, resolve } from 'path'
import { expect } from 'chai'
diff --git a/npm/react/plugins/craco/index.js b/npm/react/plugins/craco/index.js
index e86ff6e3d395..d1a90301d3bd 100644
--- a/npm/react/plugins/craco/index.js
+++ b/npm/react/plugins/craco/index.js
@@ -3,6 +3,8 @@ const { createWebpackDevConfig } = require('@craco/craco')
const { getLegacyDevServer } = require('../utils/legacy-setup-dev-server')
function devServer (cypressDevServerConfig, cracoConfig) {
+ process.env.FAST_REFRESH = 'false'
+
return startDevServer({
options: cypressDevServerConfig,
webpackConfig: createWebpackDevConfig(cracoConfig),
diff --git a/npm/webpack-preprocessor/index.ts b/npm/webpack-preprocessor/index.ts
index 88e3a51a17c9..c5d68fd3e977 100644
--- a/npm/webpack-preprocessor/index.ts
+++ b/npm/webpack-preprocessor/index.ts
@@ -268,6 +268,11 @@ const preprocessor: WebpackPreprocessor = (options: PreprocessorOptions = {}): F
const jsonStats = stats.toJson()
+ // these stats are really only useful for debugging
+ if (jsonStats.warnings.length > 0) {
+ debug(`warnings for ${outputPath} %o`, jsonStats.warnings)
+ }
+
if (stats.hasErrors()) {
err = new Error('Webpack Compilation Error')
@@ -279,17 +284,11 @@ const preprocessor: WebpackPreprocessor = (options: PreprocessorOptions = {}): F
err.message += `\n${errorsToAppend}`
- debug('stats had error(s)')
+ debug('stats had error(s) %o', jsonStats.errors)
return rejectWithErr(err)
}
- // these stats are really only useful for debugging
- if (jsonStats.warnings.length > 0) {
- debug(`warnings for ${outputPath}`)
- debug(jsonStats.warnings)
- }
-
debug('finished bundling', outputPath)
if (debugStats.enabled) {
/* eslint-disable-next-line no-console */
diff --git a/npm/webpack-preprocessor/test/e2e/helpers.js b/npm/webpack-preprocessor/test/e2e/helpers.js
index c7821acc0d09..0e6581f6c414 100644
--- a/npm/webpack-preprocessor/test/e2e/helpers.js
+++ b/npm/webpack-preprocessor/test/e2e/helpers.js
@@ -83,7 +83,7 @@ exports.runTest = async (options = {}) => {
VIDEO_COMPRESSION_THROTTLE: 120000,
// don't fail our own tests running from forked PR's
- CYPRESS_INTERNAL_E2E_TESTS: '1',
+ CYPRESS_INTERNAL_SYSTEM_TESTS: '1',
CYPRESS_ENV: 'test',
})
diff --git a/package.json b/package.json
index c576e930f5d0..41de4e44d1ac 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "cypress",
- "version": "8.6.0",
+ "version": "8.7.0",
"description": "Cypress.io end to end testing tool",
"private": true,
"scripts": {
@@ -49,12 +49,12 @@
"test": "yarn lerna exec yarn test --scope cypress --scope \"'@packages/{electron,extension,https-proxy,launcher,net-stubbing,network,proxy,rewriter,runner,runner-shared,socket}'\"",
"test-debug": "lerna exec yarn test-debug --ignore \"'@packages/{desktop-gui,driver,root,static,web-config}'\"",
"pretest-e2e": "yarn ensure-deps",
- "test-e2e": "lerna exec yarn test-e2e --ignore \"'@packages/{desktop-gui,driver,root,static,web-config}'\"",
"test-integration": "lerna exec yarn test-integration --ignore \"'@packages/{desktop-gui,driver,root,static,web-config}'\"",
"test-mocha": "mocha --reporter spec scripts/spec.js",
"test-mocha-snapshot": "mocha scripts/mocha-snapshot-spec.js",
"test-npm-package-release-script": "npx lerna exec --scope \"@cypress/*\" -- npx --no-install semantic-release --dry-run",
"test-s3-api": "node -r ./packages/ts/register scripts/binary/s3-api-demo.ts",
+ "test-system": "yarn workspace @tooling/system-tests test",
"test-scripts": "mocha -r packages/ts/register --reporter spec 'scripts/unit/**/*spec.js'",
"test-scripts-watch": "yarn test-scripts --watch --watch-extensions 'ts,js'",
"pretest-unit": "yarn ensure-deps",
@@ -90,7 +90,7 @@
"@types/glob": "7.1.1",
"@types/lodash": "4.14.168",
"@types/markdown-it": "0.0.9",
- "@types/mini-css-extract-plugin": "1.4.2",
+ "@types/mini-css-extract-plugin": "1.2.3",
"@types/mocha": "8.0.3",
"@types/node": "14.14.31",
"@types/prismjs": "1.16.0",
@@ -165,7 +165,7 @@
"mock-fs": "4.9.0",
"odiff-bin": "2.1.0",
"parse-github-repo-url": "1.4.1",
- "patch-package": "6.2.2",
+ "patch-package": "6.4.7",
"plist": "3.0.1",
"pluralize": "8.0.0",
"postinstall-postinstall": "2.0.0",
@@ -224,7 +224,8 @@
"packages": [
"cli",
"packages/*",
- "npm/*"
+ "npm/*",
+ "system-tests"
],
"nohoist": [
"**/@ffmpeg-installer",
@@ -246,6 +247,7 @@
"**/jquery": "3.1.1",
"**/pretty-format": "26.4.0",
"**/socket.io-parser": "4.0.4",
+ "**/ua-parser-js": "0.7.24",
"vue-template-compiler": "2.6.12"
}
}
diff --git a/packages/desktop-gui/src/main.scss.d.ts b/packages/desktop-gui/src/main.scss.d.ts
new file mode 100644
index 000000000000..132b232e8959
--- /dev/null
+++ b/packages/desktop-gui/src/main.scss.d.ts
@@ -0,0 +1,7 @@
+// This file is automatically generated.
+// Please do not change this file!
+interface CssExports {
+
+}
+export const cssExports: CssExports;
+export default cssExports;
diff --git a/packages/driver/cypress/integration/cypress/screenshot_spec.js b/packages/driver/cypress/integration/cypress/screenshot_spec.js
index c6c828d5ce6a..d2be62b8779b 100644
--- a/packages/driver/cypress/integration/cypress/screenshot_spec.js
+++ b/packages/driver/cypress/integration/cypress/screenshot_spec.js
@@ -3,6 +3,7 @@ const { Screenshot } = Cypress
const DEFAULTS = {
capture: 'fullPage',
scale: false,
+ overwrite: false,
disableTimersAndAnimations: true,
screenshotOnRunFailure: true,
blackout: [],
@@ -64,6 +65,14 @@ describe('src/cypress/screenshot', () => {
expect(Screenshot.getConfig().scale).to.equal(true)
})
+ it('sets overwrite if specified', () => {
+ Screenshot.defaults({
+ overwrite: true,
+ })
+
+ expect(Screenshot.getConfig().overwrite).to.equal(true)
+ })
+
it('sets disableTimersAndAnimations if specified', () => {
Screenshot.defaults({
disableTimersAndAnimations: false,
@@ -187,6 +196,20 @@ describe('src/cypress/screenshot', () => {
.and.eq('https://on.cypress.io/screenshot-api')
})
+ it('throws if overwrite is not a boolean', () => {
+ const fn = () => {
+ Screenshot.defaults({ overwrite: 'foo' })
+ }
+
+ expect(fn).to.throw()
+ .with.property('message')
+ .and.include('`Cypress.Screenshot.defaults()` `overwrite` option must be a boolean. You passed: `foo`')
+
+ expect(fn).to.throw()
+ .with.property('docsUrl')
+ .and.eq('https://on.cypress.io/screenshot-api')
+ })
+
it('throws if disableTimersAndAnimations is not a boolean', () => {
const fn = () => {
Screenshot.defaults({ disableTimersAndAnimations: 'foo' })
diff --git a/packages/driver/cypress/integration/cypress/selector_playground_spec.js b/packages/driver/cypress/integration/cypress/selector_playground_spec.js
index e45fabc4ddc9..dffc390dcb89 100644
--- a/packages/driver/cypress/integration/cypress/selector_playground_spec.js
+++ b/packages/driver/cypress/integration/cypress/selector_playground_spec.js
@@ -23,11 +23,50 @@ describe('src/cypress/selector_playground', () => {
})
it('sets selector:playground:priority if selectorPriority specified', () => {
+ const selectorPriority = [
+ 'data-1',
+ 'data-2',
+ 'id',
+ 'class',
+ 'tag',
+ 'attributes',
+ 'nth-child',
+ ]
+
SelectorPlayground.defaults({
- selectorPriority: ['foo'],
+ selectorPriority,
})
- expect(SelectorPlayground.getSelectorPriority()).to.eql(['foo'])
+ expect(SelectorPlayground.getSelectorPriority()).to.eql(selectorPriority)
+ })
+
+ it('throws if selectorPriority contains an unsupported priority', () => {
+ const fn = () => {
+ SelectorPlayground.defaults({
+ selectorPriority: [
+ 'id',
+ 'name',
+ ],
+ })
+ }
+
+ expect(fn).to.throw()
+ .with.property('message')
+ .and.include('`Cypress.SelectorPlayground.defaults()` called with invalid `selectorPriority` property. It must be one of: `data-*`, `id`, `class`, `tag`, `attributes`, `nth-child`. You passed: `name`')
+ })
+
+ it('throws if selectorPriority has an unsupported priority that contains a substring of a valid priority', () => {
+ const fn = () => {
+ SelectorPlayground.defaults({
+ selectorPriority: [
+ 'idIsNotValid',
+ ],
+ })
+ }
+
+ expect(fn).to.throw()
+ .with.property('message')
+ .and.include('`Cypress.SelectorPlayground.defaults()` called with invalid `selectorPriority` property. It must be one of: `data-*`, `id`, `class`, `tag`, `attributes`, `nth-child`. You passed: `idIsNotValid`')
})
it('sets selector:playground:on:element if onElement specified', () => {
diff --git a/packages/driver/cypress/integration/dom/visibility_spec.ts b/packages/driver/cypress/integration/dom/visibility_spec.ts
index 8c31ff19272a..cc04e297dde3 100644
--- a/packages/driver/cypress/integration/dom/visibility_spec.ts
+++ b/packages/driver/cypress/integration/dom/visibility_spec.ts
@@ -1,3 +1,4 @@
+// @ts-ignore
const { $, dom } = Cypress
describe('src/cypress/dom/visibility', () => {
diff --git a/packages/driver/index.d.ts b/packages/driver/index.d.ts
index 8bb8dc023219..10d847e97a11 100644
--- a/packages/driver/index.d.ts
+++ b/packages/driver/index.d.ts
@@ -1,6 +1,7 @@
///
-///
+///
+
export const $Cypress: Cypress.Cypress
-export const $: typeof JQuery
+export const $: JQuery
export default $Cypress
\ No newline at end of file
diff --git a/packages/driver/index.ts b/packages/driver/index.ts
index d72e4cf11f8d..27fb8194b253 100644
--- a/packages/driver/index.ts
+++ b/packages/driver/index.ts
@@ -1,3 +1,15 @@
+///
+///
+///
+
+///
+
+declare global {
+ interface Window {
+ Cypress: Cypress.Cypress
+ }
+}
+
import $Cypress from './src/main'
export default $Cypress
diff --git a/packages/driver/package.json b/packages/driver/package.json
index dbdf17053e24..265068e64c0b 100644
--- a/packages/driver/package.json
+++ b/packages/driver/package.json
@@ -26,8 +26,10 @@
"@sinonjs/fake-timers": "7.0.2",
"@types/chalk": "^2.2.0",
"@types/common-tags": "^1.8.0",
+ "@types/jquery.scrollto": "1.4.29",
"@types/lodash": "^4.14.168",
"@types/mocha": "^8.0.3",
+ "@types/underscore.string": "0.0.38",
"angular": "1.8.0",
"basic-auth": "2.0.1",
"blob-util": "2.0.2",
diff --git a/packages/driver/src/config/jquery.scrollto.ts b/packages/driver/src/config/jquery.scrollto.ts
index 83fcf25ba781..8568cfb76282 100644
--- a/packages/driver/src/config/jquery.scrollto.ts
+++ b/packages/driver/src/config/jquery.scrollto.ts
@@ -8,6 +8,8 @@
* @version 2.1.3
*/
+///
+
/** eslint-disable */
import $ from 'jquery'
@@ -109,7 +111,7 @@ export function scrollTo (target, duration, settings) {
let max = $scrollTo.max(elem, axis)
if (toff) { // jQuery / DOMElement
- attr[key] = toff[pos] + (win ? 0 : prev - $elem.offset()[pos])
+ attr[key] = toff[pos] + (win ? 0 : prev - $elem.offset()![pos])
// If it's a dom element, reduce the margin
if (settings.margin) {
@@ -192,18 +194,25 @@ function both (val) {
return isFunction(val) || $.isPlainObject(val) ? val : { top: val, left: val }
}
+// TODO: find the type of _last in the JQuery code.
+interface Tween extends JQuery.Tween {
+ _last: any
+}
+
// Add special hooks so that window scroll properties can be animated
$.Tween.propHooks.scrollLeft =
$.Tween.propHooks.scrollTop = {
get (t) {
return $(t.elem)[t.prop]()
},
- set (t) {
+ set (t: Tween) {
let curr = this.get(t)
// If interrupt is true and user scrolled, stop animating
if (t.options.interrupt && t._last && t._last !== curr) {
- return $(t.elem).stop()
+ $(t.elem).stop()
+
+ return
}
let next = Math.round(t.now)
diff --git a/packages/driver/src/config/lodash.ts b/packages/driver/src/config/lodash.ts
index 38bed62ce850..be1d1f94ed50 100644
--- a/packages/driver/src/config/lodash.ts
+++ b/packages/driver/src/config/lodash.ts
@@ -10,3 +10,12 @@ _.mixin({
})
export default _
+
+declare module 'lodash' {
+ interface LoDashStatic {
+ clean: typeof clean
+ count: typeof count
+ isBlank: typeof isBlank
+ toBoolean: typeof toBoolean
+ }
+}
diff --git a/packages/driver/src/cy/commands/actions/click.ts b/packages/driver/src/cy/commands/actions/click.ts
index 31554962924b..07bf7cd25c22 100644
--- a/packages/driver/src/cy/commands/actions/click.ts
+++ b/packages/driver/src/cy/commands/actions/click.ts
@@ -33,10 +33,21 @@ const formatMouseEvents = (events) => {
})
}
+// TODO: remove any, Function, Record
+type MouseActionOptions = {
+ subject: any
+ positionOrX: string | number
+ y: number
+ userOptions: Record
+ onReady: Function
+ onTable: Function
+ defaultOptions?: Record
+}
+
export default (Commands, Cypress, cy, state, config) => {
const { mouse, keyboard } = cy.devices
- const mouseAction = (eventName, { subject, positionOrX, y, userOptions, onReady, onTable, defaultOptions }) => {
+ const mouseAction = (eventName, { subject, positionOrX, y, userOptions, onReady, onTable, defaultOptions }: MouseActionOptions) => {
let position
let x
diff --git a/packages/driver/src/cy/commands/actions/focus.ts b/packages/driver/src/cy/commands/actions/focus.ts
index 2207ae937b01..5f5bc457a762 100644
--- a/packages/driver/src/cy/commands/actions/focus.ts
+++ b/packages/driver/src/cy/commands/actions/focus.ts
@@ -7,7 +7,8 @@ import $elements from '../../../dom/elements'
export default (Commands, Cypress, cy) => {
return Commands.addAll({ prevSubject: ['element', 'window'] }, {
- focus (subject, options = {}) {
+ // TODO: any -> Partial
+ focus (subject, options: any = {}) {
const userOptions = options
// we should throw errors by default!
@@ -84,7 +85,8 @@ export default (Commands, Cypress, cy) => {
return verifyAssertions()
},
- blur (subject, options = {}) {
+ // TODO: any -> Partial
+ blur (subject, options: any = {}) {
const userOptions = options
// we should throw errors by default!
diff --git a/packages/driver/src/cy/commands/actions/scroll.ts b/packages/driver/src/cy/commands/actions/scroll.ts
index 2d4d2cccc50d..48077d99b2eb 100644
--- a/packages/driver/src/cy/commands/actions/scroll.ts
+++ b/packages/driver/src/cy/commands/actions/scroll.ts
@@ -30,7 +30,8 @@ const isNaNOrInfinity = (item) => {
export default (Commands, Cypress, cy, state) => {
Commands.addAll({ prevSubject: 'element' }, {
- scrollIntoView (subject, options = {}) {
+ // TODO: any -> Partial
+ scrollIntoView (subject, options: any = {}) {
const userOptions = options
if (!_.isObject(userOptions)) {
@@ -114,6 +115,9 @@ export default (Commands, Cypress, cy, state) => {
const scrollIntoView = () => {
return new Promise((resolve, reject) => {
// scroll our axes
+ // TODO: done() came from jQuery animate(), specifically, EffectsOptions at misc.d.ts
+ // The type definition should be fixed at @types/jquery.scrollto.
+ // @ts-ignore
return $(options.$parent).scrollTo(options.$el, {
axis: options.axis,
easing: options.easing,
@@ -132,7 +136,7 @@ export default (Commands, Cypress, cy, state) => {
},
always () {
if (parentIsWin) {
- return delete options.$parent.contentWindow
+ delete options.$parent.contentWindow
}
},
})
@@ -153,7 +157,8 @@ export default (Commands, Cypress, cy, state) => {
})
Commands.addAll({ prevSubject: ['optional', 'element', 'window'] }, {
- scrollTo (subject, xOrPosition, yOrOptions, options = {}) {
+ // TODO: any -> Partial
+ scrollTo (subject, xOrPosition, yOrOptions, options: any = {}) {
let x; let y
let userOptions = options
@@ -168,7 +173,7 @@ export default (Commands, Cypress, cy, state) => {
y = yOrOptions
}
- let position = null
+ let position: string | null = null
// we may be '50%' or 'bottomCenter'
if (_.isString(xOrPosition)) {
@@ -293,7 +298,7 @@ export default (Commands, Cypress, cy, state) => {
$utils.filterOutOptions(options, { duration: 0, easing: 'swing' }),
)
- const messageArgs = []
+ const messageArgs: string[] = []
if (position) {
messageArgs.push(position)
@@ -306,12 +311,12 @@ export default (Commands, Cypress, cy, state) => {
messageArgs.push(deltaOptions)
}
- const log = {
+ const log: Record = {
message: messageArgs.join(', '),
timeout: options.timeout,
consoleProps () {
// merge into consoleProps without mutating it
- const obj = {}
+ const obj: Record = {}
if (position) {
obj.Position = position
@@ -357,10 +362,16 @@ export default (Commands, Cypress, cy, state) => {
const scrollTo = () => {
return new Promise((resolve, reject) => {
// scroll our axis'
+ // TODO: done() came from jQuery animate(), specifically, EffectsOptions at misc.d.ts
+ // The type definition should be fixed at @types/jquery.scrollto.
+ // @ts-ignore
$(options.$el).scrollTo({ left: x, top: y }, {
axis: options.axis,
easing: options.easing,
duration: options.duration,
+ // TODO: ensureScrollable option does not exist on jQuery or config/jquery.scrollto.ts.
+ // It can be removed.
+ // @ts-ignore
ensureScrollable: options.ensureScrollable,
done () {
return resolve(options.$el)
@@ -376,7 +387,7 @@ export default (Commands, Cypress, cy, state) => {
})
if (isWin) {
- return delete options.$el.contentWindow
+ delete options.$el.contentWindow
}
})
}
diff --git a/packages/driver/src/cy/commands/actions/select.ts b/packages/driver/src/cy/commands/actions/select.ts
index 36b2d455e494..ba5a47a409b0 100644
--- a/packages/driver/src/cy/commands/actions/select.ts
+++ b/packages/driver/src/cy/commands/actions/select.ts
@@ -10,7 +10,8 @@ const newLineRe = /\n/g
export default (Commands, Cypress, cy) => {
Commands.addAll({ prevSubject: 'element' }, {
- select (subject, valueOrTextOrIndex, options = {}) {
+ // TODO: any -> Partial
+ select (subject, valueOrTextOrIndex, options: any = {}) {
if (
!_.isNumber(valueOrTextOrIndex)
&& !_.isString(valueOrTextOrIndex)
@@ -35,7 +36,7 @@ export default (Commands, Cypress, cy) => {
force: false,
})
- const consoleProps = {}
+ const consoleProps: Record = {}
if (options.log) {
// figure out the options which actually change the behavior of clicks
@@ -80,7 +81,7 @@ export default (Commands, Cypress, cy) => {
}
// normalize valueOrTextOrIndex if its not an array
- valueOrTextOrIndex = [].concat(valueOrTextOrIndex).map((v) => {
+ valueOrTextOrIndex = [].concat(valueOrTextOrIndex).map((v: any) => {
if (_.isNumber(v) && (!_.isInteger(v) || v < 0)) {
$errUtils.throwErrByPath('select.invalid_number', { args: { index: v } })
}
@@ -108,8 +109,8 @@ export default (Commands, Cypress, cy) => {
$errUtils.throwErrByPath('select.disabled', { args: { node } })
}
- const values = []
- const optionEls = []
+ const values: string[] = []
+ const optionEls: JQuery[] = []
const optionsObjects = options.$el.find('option').map((index, el) => {
// push the value in values array if its
// found within the valueOrText
@@ -266,7 +267,7 @@ export default (Commands, Cypress, cy) => {
let selectedIndex = 0
_.each(optionEls, ($el) => {
- const index = _.findIndex(optionsObjects, (optionObject) => {
+ const index = _.findIndex(optionsObjects, (optionObject: any) => {
return $el.text() === optionObject.originalText
})
diff --git a/packages/driver/src/cy/commands/actions/submit.ts b/packages/driver/src/cy/commands/actions/submit.ts
index 4bc31414dd60..cbd61919c931 100644
--- a/packages/driver/src/cy/commands/actions/submit.ts
+++ b/packages/driver/src/cy/commands/actions/submit.ts
@@ -8,7 +8,8 @@ import $actionability from '../../actionability'
export default (Commands, Cypress, cy) => {
Commands.addAll({ prevSubject: 'element' }, {
- submit (subject, options = {}) {
+ // TODO: any -> Partial
+ submit (subject, options: any = {}) {
const userOptions = options
options = _.defaults({}, userOptions, {
diff --git a/packages/driver/src/cy/commands/local_storage.ts b/packages/driver/src/cy/commands/local_storage.ts
index a8eb60e13dc3..3c7b0ffe6055 100644
--- a/packages/driver/src/cy/commands/local_storage.ts
+++ b/packages/driver/src/cy/commands/local_storage.ts
@@ -33,7 +33,7 @@ export default (Commands, Cypress, cy, state) => {
})
Commands.addAll({
- clearLocalStorage (keys, options = {}) {
+ clearLocalStorage (keys, options: Partial = {}) {
if (_.isPlainObject(keys)) {
options = keys
keys = null
diff --git a/packages/driver/src/cy/commands/querying.ts b/packages/driver/src/cy/commands/querying.ts
index 0570ce896361..7d1b2092c503 100644
--- a/packages/driver/src/cy/commands/querying.ts
+++ b/packages/driver/src/cy/commands/querying.ts
@@ -10,7 +10,8 @@ import { getAliasedRequests, isDynamicAliasingPossible } from '../net-stubbing/a
export default (Commands, Cypress, cy, state) => {
Commands.addAll({
- focused (options = {}) {
+ // TODO: any -> Partial
+ focused (options: any = {}) {
const userOptions = options
options = _.defaults({}, userOptions, {
@@ -71,7 +72,8 @@ export default (Commands, Cypress, cy, state) => {
return resolveFocused()
},
- get (selector, options = {}) {
+ // TODO: any -> Partial
+ get (selector, options: any = {}) {
const userOptions = options
const ctx = this
@@ -92,7 +94,7 @@ export default (Commands, Cypress, cy, state) => {
options.includeShadowDom = resolveShadowDomInclusion(Cypress, userOptions.includeShadowDom)
let aliasObj
- const consoleProps = {}
+ const consoleProps: Record = {}
const start = (aliasType) => {
if (options.log === false) {
return
@@ -120,7 +122,7 @@ export default (Commands, Cypress, cy, state) => {
start(aliasType)
}
- const obj = {}
+ const obj: any = {}
if (aliasType === 'dom') {
_.extend(obj, {
@@ -226,7 +228,7 @@ export default (Commands, Cypress, cy, state) => {
// within our subject then filter out
// anything not currently in the DOM
if ($dom.isDetached(subject)) {
- subject = subject.filter((index, el) => $dom.isAttached(el))
+ subject = (subject as any).filter((index, el) => $dom.isAttached(el))
// if we have nothing left
// just go replay the commands
@@ -246,6 +248,8 @@ export default (Commands, Cypress, cy, state) => {
if ((err.type === 'length') && (err.actual < err.expected)) {
return replayFrom = true
}
+
+ return false
},
onRetry () {
if (replayFrom) {
@@ -347,7 +351,7 @@ export default (Commands, Cypress, cy, state) => {
if ($el.selector == null) {
$el.selector = selector
}
- } catch (err) {
+ } catch (err: any) {
// this is usually a sizzle error (invalid selector)
err.onFail = () => {
if (options.log === false) {
@@ -407,7 +411,8 @@ export default (Commands, Cypress, cy, state) => {
return resolveElements()
},
- root (options = {}) {
+ // TODO: any -> Partial
+ root (options: any = {}) {
const userOptions = options
options = _.defaults({}, userOptions, { log: true })
@@ -438,7 +443,8 @@ export default (Commands, Cypress, cy, state) => {
})
Commands.addAll({ prevSubject: ['optional', 'window', 'document', 'element'] }, {
- contains (subject, filter, text, options = {}) {
+ // TODO: any -> Partial
+ contains (subject, filter, text, options: any = {}) {
let userOptions = options
// nuke our subject if its present but not an element.
@@ -516,6 +522,8 @@ export default (Commands, Cypress, cy, state) => {
return `Expected to find content: '${text}' ${getPhrase()}but never did.`
}
+
+ return null
}
let consoleProps
@@ -583,6 +591,8 @@ export default (Commands, Cypress, cy, state) => {
default:
break
}
+
+ return null
},
})
})
@@ -697,7 +707,7 @@ export default (Commands, Cypress, cy, state) => {
options = _.defaults({}, userOptions, { log: true })
- const consoleProps = {
+ const consoleProps: Record = {
'Applied To': $dom.getElements(subject),
}
diff --git a/packages/driver/src/cy/commands/request.ts b/packages/driver/src/cy/commands/request.ts
index 599b36d34162..f40dcae64f8f 100644
--- a/packages/driver/src/cy/commands/request.ts
+++ b/packages/driver/src/cy/commands/request.ts
@@ -50,7 +50,7 @@ const whichAreOptional = (val, key) => {
return (val === null) && OPTIONAL_OPTS.includes(key)
}
-const needsFormSpecified = (options = {}) => {
+const needsFormSpecified = (options: any = {}) => {
const { body, json, headers } = options
// json isn't true, and we have an object body and the user
@@ -58,13 +58,19 @@ const needsFormSpecified = (options = {}) => {
return (json !== true) && _.isObject(body) && hasFormUrlEncodedContentTypeHeader(headers)
}
+interface BackendError {
+ backend: boolean
+ message?: string
+ stack?: any
+}
+
export default (Commands, Cypress, cy, state, config) => {
Commands.addAll({
// allow our signature to be similar to cy.route
// METHOD / URL / BODY
// or object literal with all expanded options
request (...args) {
- const o = {}
+ const o: any = {}
const userOptions = o
if (_.isObject(args[0])) {
@@ -297,7 +303,11 @@ export default (Commands, Cypress, cy, state, config) => {
// reset content-type
if (requestOpts.headers) {
- delete requestOpts.headers[Object.keys(requestOpts).find((key) => key.toLowerCase() === 'content-type')]
+ const contentTypeKey = Object.keys(requestOpts).find((key) => key.toLowerCase() === 'content-type')
+
+ if (contentTypeKey) {
+ delete requestOpts.headers[contentTypeKey]
+ }
} else {
requestOpts.headers = {}
}
@@ -308,7 +318,7 @@ export default (Commands, Cypress, cy, state, config) => {
// socket.io ignores FormData.
// So, we need to encode the data into base64 string format.
- const formBody = []
+ const formBody: string[] = []
requestOpts.body.forEach((value, key) => {
// HTTP line break style is \r\n.
@@ -373,7 +383,7 @@ export default (Commands, Cypress, cy, state, config) => {
timeout: options.timeout,
},
})
- }).catch({ backend: true }, (err) => {
+ }).catch({ backend: true }, (err: BackendError) => {
$errUtils.throwErrByPath('request.loading_failed', {
onFail: options._log,
args: {
diff --git a/packages/driver/src/cy/commands/screenshot.ts b/packages/driver/src/cy/commands/screenshot.ts
index 3b905426aaac..5ca9bcfff52d 100644
--- a/packages/driver/src/cy/commands/screenshot.ts
+++ b/packages/driver/src/cy/commands/screenshot.ts
@@ -18,10 +18,10 @@ const getViewportWidth = (state) => {
return Math.min(state('viewportWidth'), window.innerWidth)
}
-const automateScreenshot = (state, options = {}) => {
+const automateScreenshot = (state, options: TakeScreenshotOptions = {}) => {
const { runnable, timeout } = options
- const titles = []
+ const titles: string[] = []
// if this a hook then push both the current test title
// and our own hook title
@@ -150,7 +150,7 @@ const takeFullPageScreenshot = (state, automationOptions) => {
const resetScrollOverrides = scrollOverrides(win, doc)
- const docHeight = $(doc).height()
+ const docHeight = $(doc).height() as number
const viewportHeight = getViewportHeight(state)
const numScreenshots = Math.ceil(docHeight / viewportHeight)
@@ -279,7 +279,18 @@ const getBlackout = ({ capture, blackout }) => {
return isAppOnly({ capture }) ? blackout : []
}
-const takeScreenshot = (Cypress, state, screenshotConfig, options = {}) => {
+// TODO: anys should be removed.
+type TakeScreenshotOptions = {
+ name?: string
+ subject?: any
+ simple?: boolean
+ testFailure?: boolean
+ runnable?: any
+ log?: any
+ timeout?: number
+}
+
+const takeScreenshot = (Cypress, state, screenshotConfig, options: TakeScreenshotOptions = {}) => {
const {
capture,
padding,
@@ -294,7 +305,8 @@ const takeScreenshot = (Cypress, state, screenshotConfig, options = {}) => {
const startTime = new Date()
- const send = (event, props, resolve) => {
+ // TODO: is this ok to make `resolve` undefined?
+ const send = (event, props, resolve?) => {
Cypress.action(`cy:${event}`, props, resolve)
}
@@ -323,6 +335,8 @@ const takeScreenshot = (Cypress, state, screenshotConfig, options = {}) => {
if (disableTimersAndAnimations) {
return cy.pauseTimers(true)
}
+
+ return null
})
.then(() => {
return sendAsync('before:screenshot', getOptions(true))
@@ -336,6 +350,8 @@ const takeScreenshot = (Cypress, state, screenshotConfig, options = {}) => {
if (disableTimersAndAnimations) {
return cy.pauseTimers(false)
}
+
+ return null
})
}
@@ -424,7 +440,8 @@ export default function (Commands, Cypress, cy, state, config) {
})
Commands.addAll({ prevSubject: ['optional', 'element', 'window', 'document'] }, {
- screenshot (subject, name, options = {}) {
+ // TODO: any -> Partial
+ screenshot (subject, name, options: any = {}) {
let userOptions = options
if (_.isObject(name)) {
@@ -453,7 +470,7 @@ export default function (Commands, Cypress, cy, state, config) {
const isWin = $dom.isWindow(subject)
- let screenshotConfig = _.pick(options, 'capture', 'scale', 'disableTimersAndAnimations', 'overwrite', 'blackout', 'waitForCommandSynchronization', 'padding', 'clip', 'onBeforeScreenshot', 'onAfterScreenshot')
+ let screenshotConfig: any = _.pick(options, 'capture', 'scale', 'disableTimersAndAnimations', 'overwrite', 'blackout', 'waitForCommandSynchronization', 'padding', 'clip', 'onBeforeScreenshot', 'onAfterScreenshot')
screenshotConfig = $Screenshot.validate(screenshotConfig, 'screenshot', options._log)
screenshotConfig = _.extend($Screenshot.getConfig(), screenshotConfig)
diff --git a/packages/driver/src/cy/commands/task.ts b/packages/driver/src/cy/commands/task.ts
index 6dc06b52a3f8..ff07b7bf8d7e 100644
--- a/packages/driver/src/cy/commands/task.ts
+++ b/packages/driver/src/cy/commands/task.ts
@@ -7,7 +7,8 @@ import $stackUtils from '../../cypress/stack_utils'
export default (Commands, Cypress, cy) => {
Commands.addAll({
- task (task, arg, options = {}) {
+ // TODO: any -> Partial
+ task (task, arg, options: any = {}) {
const userOptions = options
options = _.defaults({}, userOptions, {
diff --git a/packages/driver/src/cy/commands/traversals.ts b/packages/driver/src/cy/commands/traversals.ts
index d36244eb3b22..096bdb31fbeb 100644
--- a/packages/driver/src/cy/commands/traversals.ts
+++ b/packages/driver/src/cy/commands/traversals.ts
@@ -87,6 +87,13 @@ const autoShadowTraversals = {
},
}
+type EachConsoleProps = {
+ Selector: string
+ 'Applied To': any
+ Yielded?: any
+ Elements?: number | undefined
+}
+
export default (Commands, Cypress, cy) => {
_.each(traversals, (traversal) => {
Commands.add(traversal, { prevSubject: ['element', 'document'] }, (subject, arg1, arg2, options) => {
@@ -110,7 +117,7 @@ export default (Commands, Cypress, cy) => {
return args.join(', ')
}
- const consoleProps = {
+ const consoleProps: EachConsoleProps = {
Selector: getSelector(),
'Applied To': $dom.getElements(subject),
}
@@ -166,7 +173,7 @@ export default (Commands, Cypress, cy) => {
// normalize the selector since jQuery won't have it
// or completely borks it
$el.selector = getSelector()
- } catch (e) {
+ } catch (e: any) {
e.onFail = () => {
return options._log.error(e)
}
diff --git a/packages/driver/src/cy/commands/waiting.ts b/packages/driver/src/cy/commands/waiting.ts
index 0290a0c32365..cfcbfafe5649 100644
--- a/packages/driver/src/cy/commands/waiting.ts
+++ b/packages/driver/src/cy/commands/waiting.ts
@@ -24,6 +24,12 @@ const throwErr = (arg) => {
$errUtils.throwErrByPath('wait.invalid_1st_arg', { args: { arg } })
}
+type Alias = {
+ name: string
+ cardinal: number
+ ordinal: number
+}
+
export default (Commands, Cypress, cy, state) => {
const waitNumber = (subject, ms, options) => {
// increase the timeout by the delta
@@ -83,7 +89,7 @@ export default (Commands, Cypress, cy, state) => {
return xhr
}
- const args = [alias, type, index, num, options]
+ const args: [any, any, any, any, any] = [alias, type, index, num, options]
return cy.retry(() => {
return checkForXhr.apply(window, args)
@@ -147,7 +153,7 @@ export default (Commands, Cypress, cy, state) => {
// because wait can reference an array of aliases
if (log) {
const referencesAlias = log.get('referencesAlias') || []
- const aliases = [].concat(referencesAlias)
+ const aliases: Array = [].concat(referencesAlias)
if (str) {
aliases.push({
@@ -279,7 +285,7 @@ export default (Commands, Cypress, cy, state) => {
}
options = _.defaults({}, options, { log: true })
- const args = [subject, msOrAlias, options]
+ const args: any = [subject, msOrAlias, options]
try {
if (_.isFinite(msOrAlias)) {
@@ -316,7 +322,7 @@ export default (Commands, Cypress, cy, state) => {
}
return throwErr(arg)
- } catch (err) {
+ } catch (err: any) {
if (err.name === 'CypressError') {
throw err
} else {
diff --git a/packages/driver/src/cy/commands/window.ts b/packages/driver/src/cy/commands/window.ts
index 3f3171bd0419..0ae8d7c226d8 100644
--- a/packages/driver/src/cy/commands/window.ts
+++ b/packages/driver/src/cy/commands/window.ts
@@ -26,15 +26,17 @@ const viewports = {
const validOrientations = ['landscape', 'portrait']
+type CurrentViewport = Pick
+
// NOTE: this is outside the function because its 'global' state to the
// cypress application and not local to the specific run. the last
// viewport set is always the 'current' viewport as opposed to the
// config. there was a bug where re-running tests without a hard
// refresh would cause viewport to hang
-let currentViewport = null
+let currentViewport: CurrentViewport | null = null
export default (Commands, Cypress, cy, state) => {
- const defaultViewport = _.pick(Cypress.config(), 'viewportWidth', 'viewportHeight')
+ const defaultViewport: CurrentViewport = _.pick(Cypress.config() as Cypress.Config, 'viewportWidth', 'viewportHeight')
// currentViewport could already be set due to previous runs
currentViewport = currentViewport || defaultViewport
@@ -57,7 +59,7 @@ export default (Commands, Cypress, cy, state) => {
state(viewport)
return new Promise((resolve) => {
- if (currentViewport.viewportWidth === width && currentViewport.viewportHeight === height) {
+ if (currentViewport!.viewportWidth === width && currentViewport!.viewportHeight === height) {
// noop if viewport won't change
return resolve(currentViewport)
}
@@ -76,7 +78,8 @@ export default (Commands, Cypress, cy, state) => {
}
Commands.addAll({
- title (options = {}) {
+ // TODO: any -> Partial
+ title (options: any = {}) {
const userOptions = options
options = _.defaults({}, userOptions, { log: true })
@@ -98,7 +101,8 @@ export default (Commands, Cypress, cy, state) => {
return resolveTitle()
},
- window (options = {}) {
+ // TODO: any -> Partial
+ window (options: any = {}) {
const userOptions = options
options = _.defaults({}, userOptions, { log: true })
@@ -140,7 +144,8 @@ export default (Commands, Cypress, cy, state) => {
return verifyAssertions()
},
- document (options = {}) {
+ // TODO: any -> Partial
+ document (options: any = {}) {
const userOptions = options
options = _.defaults({}, userOptions, { log: true })
@@ -183,7 +188,8 @@ export default (Commands, Cypress, cy, state) => {
return verifyAssertions()
},
- viewport (presetOrWidth, heightOrOrientation, options = {}) {
+ // TODO: any -> Partial
+ viewport (presetOrWidth, heightOrOrientation, options: any = {}) {
const userOptions = options
if (_.isObject(heightOrOrientation)) {
@@ -202,9 +208,12 @@ export default (Commands, Cypress, cy, state) => {
const isPreset = typeof presetOrWidth === 'string'
options._log = Cypress.log({
+ // TODO: timeout below should be removed
+ // because cy.viewport option doesn't support `timeout`
+ // @see https://docs.cypress.io/api/commands/viewport#Arguments
timeout: options.timeout,
consoleProps () {
- const obj = {}
+ const obj: Record = {}
if (isPreset) {
obj.Preset = presetOrWidth
diff --git a/packages/driver/src/cy/commands/xhr.ts b/packages/driver/src/cy/commands/xhr.ts
index b2b654ba3291..29cf190c4f00 100644
--- a/packages/driver/src/cy/commands/xhr.ts
+++ b/packages/driver/src/cy/commands/xhr.ts
@@ -5,10 +5,10 @@ import Promise from 'bluebird'
import $utils from '../../cypress/utils'
import $errUtils from '../../cypress/error_utils'
import $stackUtils from '../../cypress/stack_utils'
-import $Server from '../../cypress/server'
+import $Server, { Server } from '../../cypress/server'
import { $Location } from '../../cypress/location'
-let server = null
+let server: Server | null = null
const tryDecodeUri = (uri) => {
try {
@@ -85,6 +85,21 @@ const setResponse = (state, xhr) => {
return state('responses', responses)
}
+type XHRConsoleProps = {
+ Alias: string
+ Method: string
+ URL: string
+ 'Matched URL': string
+ Status: string
+ Duration: number
+ Stubbed: 'Yes' | 'No'
+ Request: object
+ Response: object
+ XHR: object
+ Note?: string
+ groups?: () => Array
+}
+
const startXhrServer = (cy, state, config) => {
const logs = {}
@@ -119,7 +134,7 @@ const startXhrServer = (cy, state, config) => {
event: true,
timeout: 0,
consoleProps: () => {
- const consoleObj = {
+ const consoleObj: XHRConsoleProps = {
Alias: alias,
Method: xhr.method,
URL: xhr.url,
diff --git a/packages/driver/src/cy/keyboard.ts b/packages/driver/src/cy/keyboard.ts
index 1df6537926e4..e9496d874f8e 100644
--- a/packages/driver/src/cy/keyboard.ts
+++ b/packages/driver/src/cy/keyboard.ts
@@ -6,7 +6,7 @@ import $errUtils from '../cypress/error_utils'
import { USKeyboard } from '../cypress/UsKeyboardLayout'
import $dom from '../dom'
import $document from '../dom/document'
-import $elements from '../dom/elements'
+import $elements, { HTMLTextLikeInputElement } from '../dom/elements'
// eslint-disable-next-line no-duplicate-imports
import type { HTMLTextLikeElement } from '../dom/elements'
import $selection from '../dom/selection'
@@ -803,7 +803,7 @@ export class Keyboard {
debug('setting element value', valToSet, activeEl)
return $elements.setNativeProp(
- activeEl as $elements.HTMLTextLikeInputElement,
+ activeEl as HTMLTextLikeInputElement,
'value',
valToSet,
)
diff --git a/packages/driver/src/cy/snapshots.ts b/packages/driver/src/cy/snapshots.ts
index cab8099ca1ad..cf88e171347c 100644
--- a/packages/driver/src/cy/snapshots.ts
+++ b/packages/driver/src/cy/snapshots.ts
@@ -87,7 +87,7 @@ export default {
padding: '20px',
width: dimensions('outerWidth'),
height: dimensions('outerHeight'),
- })
+ }) as JQuery
$iframes.eq(idx).replaceWith($placeholder)
const contents = `\
diff --git a/packages/driver/src/cypress/error_messages.ts b/packages/driver/src/cypress/error_messages.ts
index d4b06241c9fb..bdbc6350ce88 100644
--- a/packages/driver/src/cypress/error_messages.ts
+++ b/packages/driver/src/cypress/error_messages.ts
@@ -78,7 +78,7 @@ const getRedirects = (obj, phrase, listIndentSize) => {
const getHttpProps = (fields: { value: string, key: string }[] = []) => {
return _
.chain(fields)
- .reduce(formatProp, [])
+ .reduce(formatProp, [])
.join('\n')
.value()
}
@@ -1428,10 +1428,14 @@ export default {
message: '`Cypress.SelectorPlayground.defaults()` must be called with an object. You passed: `{{arg}}`',
docsUrl: 'https://on.cypress.io/selector-playground-api',
},
- defaults_invalid_priority: {
+ defaults_invalid_priority_type: {
message: '`Cypress.SelectorPlayground.defaults()` called with invalid `selectorPriority` property. It must be an array. You passed: `{{arg}}`',
docsUrl: 'https://on.cypress.io/selector-playground-api',
},
+ defaults_invalid_priority: {
+ message: '`Cypress.SelectorPlayground.defaults()` called with invalid `selectorPriority` property. It must be one of: `data-*`, `id`, `class`, `tag`, `attributes`, `nth-child`. You passed: `{{arg}}`. Consider using the `onElement` property if a specific selector is desired.',
+ docsUrl: 'https://on.cypress.io/selector-playground-api',
+ },
defaults_invalid_on_element: {
message: '`Cypress.SelectorPlayground.defaults()` called with invalid `onElement` property. It must be a function. You passed: `{{arg}}`',
docsUrl: 'https://on.cypress.io/selector-playground-api',
diff --git a/packages/driver/src/cypress/error_utils.ts b/packages/driver/src/cypress/error_utils.ts
index 1f4c143942b2..35daf3ed9aeb 100644
--- a/packages/driver/src/cypress/error_utils.ts
+++ b/packages/driver/src/cypress/error_utils.ts
@@ -79,7 +79,7 @@ const isSpecError = (spec, err) => {
return _.includes(err.stack, spec.relative)
}
-const mergeErrProps = (origErr, ...newProps) => {
+const mergeErrProps = (origErr: Error, ...newProps) => {
return _.extend(origErr, ...newProps)
}
@@ -262,6 +262,8 @@ export class InternalCypressError extends Error {
}
export class CypressError extends Error {
+ docsUrl?: string
+
constructor (message) {
super(message)
@@ -283,13 +285,13 @@ const getUserInvocationStackFromError = (err) => {
return err.userInvocationStack
}
-const internalErr = (err) => {
+const internalErr = (err): InternalCypressError => {
const newErr = new InternalCypressError(err.message)
return mergeErrProps(newErr, err)
}
-const cypressErr = (err) => {
+const cypressErr = (err): CypressError => {
const newErr = new CypressError(err.message)
return mergeErrProps(newErr, err)
@@ -339,7 +341,7 @@ const docsUrlByParents = (msgPath) => {
return docsUrlByParents(msgPath)
}
-const errByPath = (msgPath, args) => {
+const errByPath = (msgPath, args?) => {
let msgValue = _.get($errorMessages, msgPath)
if (!msgValue) {
diff --git a/packages/driver/src/cypress/mocha.ts b/packages/driver/src/cypress/mocha.ts
index 8b46babf1dde..9450c2f1a885 100644
--- a/packages/driver/src/cypress/mocha.ts
+++ b/packages/driver/src/cypress/mocha.ts
@@ -500,6 +500,8 @@ const create = (specWindow, Cypress, config) => {
const _mocha = createMocha(specWindow)
+ _mocha.slow(config('slowTestThreshold'))
+
const _runner = getRunner(_mocha)
_mocha.suite.file = Cypress.spec.relative
diff --git a/packages/driver/src/cypress/proxy-logging.ts b/packages/driver/src/cypress/proxy-logging.ts
index f9d1f4b5d07a..883f669ac4b8 100644
--- a/packages/driver/src/cypress/proxy-logging.ts
+++ b/packages/driver/src/cypress/proxy-logging.ts
@@ -1,3 +1,4 @@
+import _ from 'lodash'
import type { Interception, Route } from '@packages/net-stubbing/lib/types'
import type { BrowserPreRequest, BrowserResponseReceived, RequestError } from '@packages/proxy/lib/types'
import $errUtils from './error_utils'
diff --git a/packages/driver/src/cypress/resolvers.ts b/packages/driver/src/cypress/resolvers.ts
index cc745e564654..4ac5e3ba3a3d 100644
--- a/packages/driver/src/cypress/resolvers.ts
+++ b/packages/driver/src/cypress/resolvers.ts
@@ -1,5 +1,4 @@
import _ from 'lodash'
-import type $Cypress from '../..'
/**
* Fix property reads and writes that could potentially help the AUT to break out of its iframe.
@@ -9,7 +8,7 @@ import type $Cypress from '../..'
* @param accessedProp the property name being accessed (Symbol/number properties are not intercepted)
* @param value the right-hand side of an assignment operation (accessedObject.accessedProp = value)
*/
-export function resolveWindowReference (this: typeof $Cypress, currentWindow: Window, accessedObject: Window | any, accessedProp: string, value?: any) {
+export function resolveWindowReference (this: Cypress.Cypress, currentWindow: Window, accessedObject: Window | any, accessedProp: string, value?: any) {
const { dom, state } = this
const getTargetValue = () => {
diff --git a/packages/driver/src/cypress/runner.ts b/packages/driver/src/cypress/runner.ts
index 9fc0ce178b6f..97ee42be0692 100644
--- a/packages/driver/src/cypress/runner.ts
+++ b/packages/driver/src/cypress/runner.ts
@@ -21,7 +21,7 @@ const TEST_BEFORE_RUN_EVENT = 'runner:test:before:run'
const TEST_AFTER_RUN_EVENT = 'runner:test:after:run'
const RUNNABLE_LOGS = 'routes agents commands hooks'.split(' ')
-const RUNNABLE_PROPS = '_testConfig id order title _titlePath root hookName hookId err state failedFromHookId body speed type duration wallClockStartedAt wallClockDuration timings file originalTitle invocationDetails final currentRetry retries'.split(' ')
+const RUNNABLE_PROPS = '_testConfig id order title _titlePath root hookName hookId err state failedFromHookId body speed type duration wallClockStartedAt wallClockDuration timings file originalTitle invocationDetails final currentRetry retries _slow'.split(' ')
const debug = debugFn('cypress:driver:runner')
const debugErrors = debugFn('cypress:driver:errors')
@@ -581,6 +581,10 @@ const normalize = (runnable, tests, initialTests, onRunnable, onLogsById, getRun
wrappedRunnable._testConfig = cfg
}
+ if (cfg.slowTestThreshold) {
+ runnable.slow(cfg.slowTestThreshold)
+ }
+
wrappedRunnable._titlePath = runnable.titlePath()
}
diff --git a/packages/driver/src/cypress/screenshot.ts b/packages/driver/src/cypress/screenshot.ts
index 1cf06d85c491..43dfa207d11f 100644
--- a/packages/driver/src/cypress/screenshot.ts
+++ b/packages/driver/src/cypress/screenshot.ts
@@ -12,6 +12,7 @@ const _reset = () => {
disableTimersAndAnimations: true,
screenshotOnRunFailure: true,
blackout: [],
+ overwrite: false,
onBeforeScreenshot () {},
onAfterScreenshot () {},
}
diff --git a/packages/driver/src/cypress/selector_playground.ts b/packages/driver/src/cypress/selector_playground.ts
index 03f28192ac9f..60cf9e1446e7 100644
--- a/packages/driver/src/cypress/selector_playground.ts
+++ b/packages/driver/src/cypress/selector_playground.ts
@@ -6,7 +6,12 @@ import $errUtils from './error_utils'
const SELECTOR_PRIORITIES = 'data-cy data-test data-testid id class tag attributes nth-child'.split(' ')
-const reset = () => {
+type Defaults = {
+ onElement: Cypress.SelectorPlaygroundDefaultsOptions['onElement'] | null
+ selectorPriority: Cypress.SelectorPlaygroundDefaultsOptions['selectorPriority']
+}
+
+const reset = (): Defaults => {
return {
onElement: null,
selectorPriority: SELECTOR_PRIORITIES,
@@ -53,16 +58,25 @@ export default {
})
}
- const { selectorPriority: priority, onElement } = props
+ const { selectorPriority, onElement } = props
- if (priority) {
- if (!_.isArray(priority)) {
- $errUtils.throwErrByPath('selector_playground.defaults_invalid_priority', {
- args: { arg: $utils.stringify(priority) },
+ if (selectorPriority) {
+ if (!_.isArray(selectorPriority)) {
+ $errUtils.throwErrByPath('selector_playground.defaults_invalid_priority_type', {
+ args: { arg: $utils.stringify(selectorPriority) },
})
}
+ // Validate that the priority is one of: "data-*", "id", "class", "tag", "attributes", "nth-child"
+
+ selectorPriority.forEach((priority) => {
+ if (!/^(data\-.*|id|class|tag|attributes|nth\-child)$/.test(priority)) {
+ $errUtils.throwErrByPath('selector_playground.defaults_invalid_priority', {
+ args: { arg: priority },
+ })
+ }
+ })
- defaults.selectorPriority = priority
+ defaults.selectorPriority = selectorPriority
}
if (onElement) {
diff --git a/packages/driver/src/cypress/server.ts b/packages/driver/src/cypress/server.ts
index 2ccd3a289c7a..ffdd6908c7be 100644
--- a/packages/driver/src/cypress/server.ts
+++ b/packages/driver/src/cypress/server.ts
@@ -166,7 +166,15 @@ const defaults = (obj = {}) => {
return _.extend(serverDefaults, obj)
}
-const create = (options = {}) => {
+// TODO: Convert it to a class.
+// It's written in this way to bypass type failures.
+export type Server = {
+ restore: () => void
+ cancelPendingXhrs: () => any[]
+ bindTo: (win: Window) => void
+}
+
+const create = (options = {}): Server => {
options = _.defaults(options, serverDefaults)
const xhrs = {}
diff --git a/packages/driver/src/dom/coordinates.ts b/packages/driver/src/dom/coordinates.ts
index 9a8dd0031da7..4f2733046ec4 100644
--- a/packages/driver/src/dom/coordinates.ts
+++ b/packages/driver/src/dom/coordinates.ts
@@ -22,13 +22,44 @@ const getFirstValidSizedRect = (el) => {
}) || el.getBoundingClientRect() // otherwise fall back to the parent client rect
}
-/**
- * @param {JQuery | HTMLElement} $el
- */
-const getElementPositioning = ($el) => {
+type ElementPositioning = {
+ scrollTop: number
+ scrollLeft: number
+ width: number
+ height: number
+ fromElViewport: {
+ doc: Document
+ x?: number
+ y?: number
+ top: number
+ left: number
+ right: number
+ bottom: number
+ topCenter: number
+ leftCenter: number
+ }
+ fromElWindow: {
+ x?: number
+ y?: number
+ top: number
+ left: number
+ topCenter: number
+ leftCenter: number
+ }
+ fromAutWindow: {
+ x?: number
+ y?: number
+ top: number
+ left: number
+ topCenter: number
+ leftCenter: number
+ }
+}
+
+const getElementPositioning = ($el: JQuery | HTMLElement): ElementPositioning => {
let autFrame
- const el = $jquery.isJquery($el) ? $el[0] : $el
+ const el: HTMLElement = $jquery.isJquery($el) ? $el[0] : $el
const win = $window.getWindowByElement(el)
@@ -128,7 +159,12 @@ const getElementPositioning = ($el) => {
}
}
-const getCoordsByPosition = (left, top, xPosition = 'center', yPosition = 'center') => {
+const getCoordsByPosition = (
+ left: number,
+ top: number,
+ xPosition: 'left' | 'center' | 'right' = 'center',
+ yPosition: 'top' | 'center' | 'bottom' = 'center',
+) => {
const getLeft = () => {
/* eslint-disable default-case */
switch (xPosition) {
diff --git a/packages/driver/src/dom/elements/nativeProps.ts b/packages/driver/src/dom/elements/nativeProps.ts
index 11529595da20..fbc1094dffbb 100644
--- a/packages/driver/src/dom/elements/nativeProps.ts
+++ b/packages/driver/src/dom/elements/nativeProps.ts
@@ -18,7 +18,7 @@ const descriptor = any, opts: any) => any
state: State
+ pauseTimers: (shouldPause: boolean) => Cypress.Chainable
+ // TODO: this function refers to clearTimeout at cy/timeouts.ts, which doesn't have any argument.
+ // But in many cases like cy/commands/screenshot.ts, it's called with a timeout id string.
+ // We should decide whether calling with id is correct or not.
+ clearTimeout: (timeoutId?: string) => Cypress.Chainable
}
interface Cypress {
diff --git a/packages/extension/index.d.ts b/packages/extension/index.d.ts
new file mode 100644
index 000000000000..902c9e199556
--- /dev/null
+++ b/packages/extension/index.d.ts
@@ -0,0 +1,5 @@
+///
+
+declare const lib: typeof import('./lib/extension')
+
+export default lib
\ No newline at end of file
diff --git a/packages/net-stubbing/package.json b/packages/net-stubbing/package.json
index a52eabc79c2a..ce048b9c3ba9 100644
--- a/packages/net-stubbing/package.json
+++ b/packages/net-stubbing/package.json
@@ -18,7 +18,6 @@
"throttle": "^1.0.3"
},
"devDependencies": {
- "@types/mocha": "7.0.2",
"bin-up": "1.2.0",
"chai": "4.2.0",
"mocha": "7.1.2"
diff --git a/packages/reporter/src/commands/command-model.ts b/packages/reporter/src/commands/command-model.ts
index bd877bd18ea9..ec5ed9b21200 100644
--- a/packages/reporter/src/commands/command-model.ts
+++ b/packages/reporter/src/commands/command-model.ts
@@ -1,7 +1,7 @@
import _ from 'lodash'
import { action, computed, observable } from 'mobx'
-import Err from '../errors/err-model'
+import Err, { ErrProps } from '../errors/err-model'
import Instrument, { InstrumentProps } from '../instruments/instrument-model'
import type { TimeoutID } from '../lib/types'
@@ -20,7 +20,7 @@ interface RenderProps {
}
export interface CommandProps extends InstrumentProps {
- err?: Err
+ err?: ErrProps
event?: boolean
number?: number
numElements: number
diff --git a/packages/reporter/src/main-runner.scss.d.ts b/packages/reporter/src/main-runner.scss.d.ts
new file mode 100644
index 000000000000..132b232e8959
--- /dev/null
+++ b/packages/reporter/src/main-runner.scss.d.ts
@@ -0,0 +1,7 @@
+// This file is automatically generated.
+// Please do not change this file!
+interface CssExports {
+
+}
+export const cssExports: CssExports;
+export default cssExports;
diff --git a/packages/reporter/src/main.scss.d.ts b/packages/reporter/src/main.scss.d.ts
new file mode 100644
index 000000000000..132b232e8959
--- /dev/null
+++ b/packages/reporter/src/main.scss.d.ts
@@ -0,0 +1,7 @@
+// This file is automatically generated.
+// Please do not change this file!
+interface CssExports {
+
+}
+export const cssExports: CssExports;
+export default cssExports;
diff --git a/packages/reporter/src/test/test-model.ts b/packages/reporter/src/test/test-model.ts
index d46d45d277f4..2d9c4bc09b14 100644
--- a/packages/reporter/src/test/test-model.ts
+++ b/packages/reporter/src/test/test-model.ts
@@ -3,7 +3,7 @@ import { action, computed, observable } from 'mobx'
import { FileDetails } from '@packages/ui-components'
import Attempt from '../attempts/attempt-model'
-import Err from '../errors/err-model'
+import Err, { ErrProps } from '../errors/err-model'
import { HookProps } from '../hooks/hook-model'
import Runnable, { RunnableProps } from '../runnables/runnable-model'
import { CommandProps } from '../commands/command-model'
@@ -18,7 +18,7 @@ export type UpdateTestCallback = () => void
export interface TestProps extends RunnableProps {
state: TestState | null
- err?: Err
+ err?: ErrProps
isOpen?: boolean
agents?: Array
commands?: Array
diff --git a/packages/runner-ct/src/app/KeyboardHelper.scss.d.ts b/packages/runner-ct/src/app/KeyboardHelper.scss.d.ts
new file mode 100644
index 000000000000..132b232e8959
--- /dev/null
+++ b/packages/runner-ct/src/app/KeyboardHelper.scss.d.ts
@@ -0,0 +1,7 @@
+// This file is automatically generated.
+// Please do not change this file!
+interface CssExports {
+
+}
+export const cssExports: CssExports;
+export default cssExports;
diff --git a/packages/runner-ct/src/app/NoSpec.scss.d.ts b/packages/runner-ct/src/app/NoSpec.scss.d.ts
new file mode 100644
index 000000000000..132b232e8959
--- /dev/null
+++ b/packages/runner-ct/src/app/NoSpec.scss.d.ts
@@ -0,0 +1,7 @@
+// This file is automatically generated.
+// Please do not change this file!
+interface CssExports {
+
+}
+export const cssExports: CssExports;
+export default cssExports;
diff --git a/packages/runner-ct/src/app/ReporterHeader.module.scss.d.ts b/packages/runner-ct/src/app/ReporterHeader.module.scss.d.ts
new file mode 100644
index 000000000000..c353b869f4b7
--- /dev/null
+++ b/packages/runner-ct/src/app/ReporterHeader.module.scss.d.ts
@@ -0,0 +1,8 @@
+// This file is automatically generated.
+// Please do not change this file!
+interface CssExports {
+ 'ctReporterHeader': string;
+ 'display-none': string;
+}
+export const cssExports: CssExports;
+export default cssExports;
diff --git a/packages/runner-ct/src/app/RunnerCt.module.scss.d.ts b/packages/runner-ct/src/app/RunnerCt.module.scss.d.ts
new file mode 100644
index 000000000000..04a5f2212d01
--- /dev/null
+++ b/packages/runner-ct/src/app/RunnerCt.module.scss.d.ts
@@ -0,0 +1,27 @@
+// This file is automatically generated.
+// Please do not change this file!
+interface CssExports {
+ 'app': string;
+ 'appWrapper': string;
+ 'appWrapperScreenshotting': string;
+ 'ctDevtoolsContainer': string;
+ 'ctPluginToggleButton': string;
+ 'ctPlugins': string;
+ 'ctPluginsHeader': string;
+ 'ctPluginsName': string;
+ 'ctTogglePluginsSectionButton': string;
+ 'ctTogglePluginsSectionButtonOpen': string;
+ 'display-none': string;
+ 'folder': string;
+ 'largerIcon': string;
+ 'leftNav': string;
+ 'noSpecAut': string;
+ 'noSpecsDescription': string;
+ 'reporter': string;
+ 'runner': string;
+ 'runnerCt': string;
+ 'screenshotting': string;
+ 'size-container': string;
+}
+export const cssExports: CssExports;
+export default cssExports;
diff --git a/packages/runner-ct/src/app/RunnerCt.scss.d.ts b/packages/runner-ct/src/app/RunnerCt.scss.d.ts
new file mode 100644
index 000000000000..132b232e8959
--- /dev/null
+++ b/packages/runner-ct/src/app/RunnerCt.scss.d.ts
@@ -0,0 +1,7 @@
+// This file is automatically generated.
+// Please do not change this file!
+interface CssExports {
+
+}
+export const cssExports: CssExports;
+export default cssExports;
diff --git a/packages/runner-ct/src/iframe/iframes.scss.d.ts b/packages/runner-ct/src/iframe/iframes.scss.d.ts
new file mode 100644
index 000000000000..132b232e8959
--- /dev/null
+++ b/packages/runner-ct/src/iframe/iframes.scss.d.ts
@@ -0,0 +1,7 @@
+// This file is automatically generated.
+// Please do not change this file!
+interface CssExports {
+
+}
+export const cssExports: CssExports;
+export default cssExports;
diff --git a/packages/runner-ct/src/plugins/devtools-fallback.scss.d.ts b/packages/runner-ct/src/plugins/devtools-fallback.scss.d.ts
new file mode 100644
index 000000000000..132b232e8959
--- /dev/null
+++ b/packages/runner-ct/src/plugins/devtools-fallback.scss.d.ts
@@ -0,0 +1,7 @@
+// This file is automatically generated.
+// Please do not change this file!
+interface CssExports {
+
+}
+export const cssExports: CssExports;
+export default cssExports;
diff --git a/packages/runner-shared/src/header/index.tsx b/packages/runner-shared/src/header/index.tsx
index d7d0fd5f57d4..e524ec80e254 100644
--- a/packages/runner-shared/src/header/index.tsx
+++ b/packages/runner-shared/src/header/index.tsx
@@ -230,7 +230,7 @@ export class Header extends Component {
}
this.props.state.updateWindowDimensions({
- headerHeight: $(this.headerRef.current).outerHeight(),
+ headerHeight: $(this.headerRef.current).outerHeight() as number,
})
};
diff --git a/packages/runner-shared/src/message/message.scss.d.ts b/packages/runner-shared/src/message/message.scss.d.ts
new file mode 100644
index 000000000000..132b232e8959
--- /dev/null
+++ b/packages/runner-shared/src/message/message.scss.d.ts
@@ -0,0 +1,7 @@
+// This file is automatically generated.
+// Please do not change this file!
+interface CssExports {
+
+}
+export const cssExports: CssExports;
+export default cssExports;
diff --git a/packages/runner-shared/src/mobx.ts b/packages/runner-shared/src/mobx.ts
index bba94018f359..22d65446d781 100644
--- a/packages/runner-shared/src/mobx.ts
+++ b/packages/runner-shared/src/mobx.ts
@@ -1,5 +1,5 @@
import { observer } from 'mobx-react'
-import * as React from 'react'
+import type * as React from 'react'
/**
* Wraps MobX `observer` to properly add a component `displayName` for debugging purposes
diff --git a/packages/runner-shared/src/selector-playground/selector-playground.scss.d.ts b/packages/runner-shared/src/selector-playground/selector-playground.scss.d.ts
new file mode 100644
index 000000000000..132b232e8959
--- /dev/null
+++ b/packages/runner-shared/src/selector-playground/selector-playground.scss.d.ts
@@ -0,0 +1,7 @@
+// This file is automatically generated.
+// Please do not change this file!
+interface CssExports {
+
+}
+export const cssExports: CssExports;
+export default cssExports;
diff --git a/packages/runner-shared/src/snapshot-controls/snapshot-controls.scss.d.ts b/packages/runner-shared/src/snapshot-controls/snapshot-controls.scss.d.ts
new file mode 100644
index 000000000000..132b232e8959
--- /dev/null
+++ b/packages/runner-shared/src/snapshot-controls/snapshot-controls.scss.d.ts
@@ -0,0 +1,7 @@
+// This file is automatically generated.
+// Please do not change this file!
+interface CssExports {
+
+}
+export const cssExports: CssExports;
+export default cssExports;
diff --git a/packages/runner-shared/src/spec-list/SpecList.module.scss.d.ts b/packages/runner-shared/src/spec-list/SpecList.module.scss.d.ts
new file mode 100644
index 000000000000..1e69485e7a0d
--- /dev/null
+++ b/packages/runner-shared/src/spec-list/SpecList.module.scss.d.ts
@@ -0,0 +1,13 @@
+// This file is automatically generated.
+// Please do not change this file!
+interface CssExports {
+ 'a': string;
+ 'isClosed': string;
+ 'isSelected': string;
+ 'li': string;
+ 'nav': string;
+ 'searchInput': string;
+ 'ul': string;
+}
+export const cssExports: CssExports;
+export default cssExports;
diff --git a/packages/runner-shared/src/spec-list/SpecList.tsx b/packages/runner-shared/src/spec-list/SpecList.tsx
index d7e9c1a0bdaf..b4e1600b81c2 100644
--- a/packages/runner-shared/src/spec-list/SpecList.tsx
+++ b/packages/runner-shared/src/spec-list/SpecList.tsx
@@ -1,6 +1,6 @@
///
-import React, { useCallback, useMemo, useRef } from 'react'
+import React, { MutableRefObject, useCallback, useMemo, useRef } from 'react'
import cs from 'classnames'
import { throttle } from 'lodash'
import { SearchInput, FileTree, SpecificTreeNode, TreeFile, FileBase, TreeFolder, VirtualizedTreeRef } from '@cypress/design-system'
@@ -47,7 +47,7 @@ export const SpecList: React.FC = ({ searchRef, className, specs,
}
}, [searchRef])
- const onEnter = useCallback(() => fileTreeRef.current.focus(), [])
+ const onEnter = useCallback(() => fileTreeRef.current!.focus(), [])
const onVerticalArrowKey = useCallback((arrow: 'up' | 'down') => {
if (arrow === 'down') {
@@ -74,7 +74,7 @@ export const SpecList: React.FC = ({ searchRef, className, specs,
{/* TODO: Do we need any other rootDirectories? */}
}
files={matches}
rootDirectory="/"
emptyPlaceholder="No specs found"
diff --git a/packages/runner-shared/src/studio/assertions-menu.scss.d.ts b/packages/runner-shared/src/studio/assertions-menu.scss.d.ts
new file mode 100644
index 000000000000..132b232e8959
--- /dev/null
+++ b/packages/runner-shared/src/studio/assertions-menu.scss.d.ts
@@ -0,0 +1,7 @@
+// This file is automatically generated.
+// Please do not change this file!
+interface CssExports {
+
+}
+export const cssExports: CssExports;
+export default cssExports;
diff --git a/packages/runner-shared/src/studio/studio-modals.scss.d.ts b/packages/runner-shared/src/studio/studio-modals.scss.d.ts
new file mode 100644
index 000000000000..132b232e8959
--- /dev/null
+++ b/packages/runner-shared/src/studio/studio-modals.scss.d.ts
@@ -0,0 +1,7 @@
+// This file is automatically generated.
+// Please do not change this file!
+interface CssExports {
+
+}
+export const cssExports: CssExports;
+export default cssExports;
diff --git a/packages/runner-shared/src/styles.module.scss.d.ts b/packages/runner-shared/src/styles.module.scss.d.ts
new file mode 100644
index 000000000000..fd8bc08458a3
--- /dev/null
+++ b/packages/runner-shared/src/styles.module.scss.d.ts
@@ -0,0 +1,7 @@
+// This file is automatically generated.
+// Please do not change this file!
+interface CssExports {
+ 'specsList': string;
+}
+export const cssExports: CssExports;
+export default cssExports;
diff --git a/packages/runner/__snapshots__/retries.mochaEvents.spec.js b/packages/runner/__snapshots__/retries.mochaEvents.spec.js
index 1aa18e0448cf..58a4e7318da8 100644
--- a/packages/runner/__snapshots__/retries.mochaEvents.spec.js
+++ b/packages/runner/__snapshots__/retries.mochaEvents.spec.js
@@ -15,7 +15,8 @@ exports['src/cypress/runner retries mochaEvents simple retry #1'] = [
"root": true,
"type": "suite",
"file": "relative/path/to/spec.js",
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -28,7 +29,8 @@ exports['src/cypress/runner retries mochaEvents simple retry #1'] = [
"type": "suite",
"file": null,
"invocationDetails": "{Object 8}",
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -43,7 +45,8 @@ exports['src/cypress/runner retries mochaEvents simple retry #1'] = [
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -59,7 +62,8 @@ exports['src/cypress/runner retries mochaEvents simple retry #1'] = [
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -92,7 +96,8 @@ exports['src/cypress/runner retries mochaEvents simple retry #1'] = [
"invocationDetails": "{Object 8}",
"final": false,
"currentRetry": 0,
- "retries": 1
+ "retries": 1,
+ "_slow": 10000
},
{
"message": "[error message]",
@@ -133,7 +138,8 @@ exports['src/cypress/runner retries mochaEvents simple retry #1'] = [
"invocationDetails": "{Object 8}",
"final": false,
"currentRetry": 0,
- "retries": 1
+ "retries": 1,
+ "_slow": 10000
}
],
[
@@ -147,7 +153,8 @@ exports['src/cypress/runner retries mochaEvents simple retry #1'] = [
"wallClockStartedAt": "match.date",
"file": null,
"currentRetry": 1,
- "retries": 1
+ "retries": 1,
+ "_slow": 10000
}
],
[
@@ -171,7 +178,8 @@ exports['src/cypress/runner retries mochaEvents simple retry #1'] = [
"file": null,
"final": true,
"currentRetry": 1,
- "retries": 1
+ "retries": 1,
+ "_slow": 10000
}
],
[
@@ -195,7 +203,8 @@ exports['src/cypress/runner retries mochaEvents simple retry #1'] = [
"file": null,
"final": true,
"currentRetry": 1,
- "retries": 1
+ "retries": 1,
+ "_slow": 10000
}
],
[
@@ -208,7 +217,8 @@ exports['src/cypress/runner retries mochaEvents simple retry #1'] = [
"type": "suite",
"file": null,
"invocationDetails": "{Object 8}",
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -233,7 +243,8 @@ exports['src/cypress/runner retries mochaEvents simple retry #1'] = [
"file": null,
"final": true,
"currentRetry": 1,
- "retries": 1
+ "retries": 1,
+ "_slow": 10000
}
],
[
@@ -245,7 +256,8 @@ exports['src/cypress/runner retries mochaEvents simple retry #1'] = [
"root": true,
"type": "suite",
"file": "relative/path/to/spec.js",
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -274,7 +286,8 @@ exports['src/cypress/runner retries mochaEvents test retry with hooks #1'] = [
"root": true,
"type": "suite",
"file": "relative/path/to/spec.js",
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -287,7 +300,8 @@ exports['src/cypress/runner retries mochaEvents test retry with hooks #1'] = [
"type": "suite",
"file": null,
"invocationDetails": "{Object 8}",
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -303,7 +317,8 @@ exports['src/cypress/runner retries mochaEvents test retry with hooks #1'] = [
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -319,7 +334,8 @@ exports['src/cypress/runner retries mochaEvents test retry with hooks #1'] = [
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -336,7 +352,8 @@ exports['src/cypress/runner retries mochaEvents test retry with hooks #1'] = [
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -380,7 +397,8 @@ exports['src/cypress/runner retries mochaEvents test retry with hooks #1'] = [
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": 1
+ "retries": 1,
+ "_slow": 10000
}
],
[
@@ -396,7 +414,8 @@ exports['src/cypress/runner retries mochaEvents test retry with hooks #1'] = [
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -413,7 +432,8 @@ exports['src/cypress/runner retries mochaEvents test retry with hooks #1'] = [
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -467,7 +487,8 @@ exports['src/cypress/runner retries mochaEvents test retry with hooks #1'] = [
"invocationDetails": "{Object 8}",
"final": false,
"currentRetry": 0,
- "retries": 1
+ "retries": 1,
+ "_slow": 10000
},
{
"message": "[error message]",
@@ -490,7 +511,8 @@ exports['src/cypress/runner retries mochaEvents test retry with hooks #1'] = [
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -507,7 +529,8 @@ exports['src/cypress/runner retries mochaEvents test retry with hooks #1'] = [
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -562,7 +585,8 @@ exports['src/cypress/runner retries mochaEvents test retry with hooks #1'] = [
"invocationDetails": "{Object 8}",
"final": false,
"currentRetry": 0,
- "retries": 1
+ "retries": 1,
+ "_slow": 10000
}
],
[
@@ -579,7 +603,8 @@ exports['src/cypress/runner retries mochaEvents test retry with hooks #1'] = [
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -593,7 +618,8 @@ exports['src/cypress/runner retries mochaEvents test retry with hooks #1'] = [
"wallClockStartedAt": "match.date",
"file": null,
"currentRetry": 1,
- "retries": 1
+ "retries": 1,
+ "_slow": 10000
}
],
[
@@ -610,7 +636,8 @@ exports['src/cypress/runner retries mochaEvents test retry with hooks #1'] = [
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -627,7 +654,8 @@ exports['src/cypress/runner retries mochaEvents test retry with hooks #1'] = [
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -644,7 +672,8 @@ exports['src/cypress/runner retries mochaEvents test retry with hooks #1'] = [
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -660,7 +689,8 @@ exports['src/cypress/runner retries mochaEvents test retry with hooks #1'] = [
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -677,7 +707,8 @@ exports['src/cypress/runner retries mochaEvents test retry with hooks #1'] = [
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -722,7 +753,8 @@ exports['src/cypress/runner retries mochaEvents test retry with hooks #1'] = [
"file": null,
"final": true,
"currentRetry": 1,
- "retries": 1
+ "retries": 1,
+ "_slow": 10000
}
],
[
@@ -767,7 +799,8 @@ exports['src/cypress/runner retries mochaEvents test retry with hooks #1'] = [
"file": null,
"final": true,
"currentRetry": 1,
- "retries": 1
+ "retries": 1,
+ "_slow": 10000
}
],
[
@@ -780,7 +813,8 @@ exports['src/cypress/runner retries mochaEvents test retry with hooks #1'] = [
"type": "suite",
"file": null,
"invocationDetails": "{Object 8}",
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -826,7 +860,8 @@ exports['src/cypress/runner retries mochaEvents test retry with hooks #1'] = [
"file": null,
"final": true,
"currentRetry": 1,
- "retries": 1
+ "retries": 1,
+ "_slow": 10000
}
],
[
@@ -838,7 +873,8 @@ exports['src/cypress/runner retries mochaEvents test retry with hooks #1'] = [
"root": true,
"type": "suite",
"file": "relative/path/to/spec.js",
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -867,7 +903,8 @@ exports['src/cypress/runner retries mochaEvents test retry with [only] #1'] = [
"root": true,
"type": "suite",
"file": "relative/path/to/spec.js",
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -880,7 +917,8 @@ exports['src/cypress/runner retries mochaEvents test retry with [only] #1'] = [
"type": "suite",
"file": null,
"invocationDetails": "{Object 8}",
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -896,7 +934,8 @@ exports['src/cypress/runner retries mochaEvents test retry with [only] #1'] = [
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -912,7 +951,8 @@ exports['src/cypress/runner retries mochaEvents test retry with [only] #1'] = [
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -929,7 +969,8 @@ exports['src/cypress/runner retries mochaEvents test retry with [only] #1'] = [
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -973,7 +1014,8 @@ exports['src/cypress/runner retries mochaEvents test retry with [only] #1'] = [
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": 1
+ "retries": 1,
+ "_slow": 10000
}
],
[
@@ -989,7 +1031,8 @@ exports['src/cypress/runner retries mochaEvents test retry with [only] #1'] = [
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -1006,7 +1049,8 @@ exports['src/cypress/runner retries mochaEvents test retry with [only] #1'] = [
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -1060,7 +1104,8 @@ exports['src/cypress/runner retries mochaEvents test retry with [only] #1'] = [
"invocationDetails": "{Object 8}",
"final": false,
"currentRetry": 0,
- "retries": 1
+ "retries": 1,
+ "_slow": 10000
},
{
"message": "[error message]",
@@ -1083,7 +1128,8 @@ exports['src/cypress/runner retries mochaEvents test retry with [only] #1'] = [
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -1100,7 +1146,8 @@ exports['src/cypress/runner retries mochaEvents test retry with [only] #1'] = [
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -1155,7 +1202,8 @@ exports['src/cypress/runner retries mochaEvents test retry with [only] #1'] = [
"invocationDetails": "{Object 8}",
"final": false,
"currentRetry": 0,
- "retries": 1
+ "retries": 1,
+ "_slow": 10000
}
],
[
@@ -1172,7 +1220,8 @@ exports['src/cypress/runner retries mochaEvents test retry with [only] #1'] = [
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -1186,7 +1235,8 @@ exports['src/cypress/runner retries mochaEvents test retry with [only] #1'] = [
"wallClockStartedAt": "match.date",
"file": null,
"currentRetry": 1,
- "retries": 1
+ "retries": 1,
+ "_slow": 10000
}
],
[
@@ -1203,7 +1253,8 @@ exports['src/cypress/runner retries mochaEvents test retry with [only] #1'] = [
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -1220,7 +1271,8 @@ exports['src/cypress/runner retries mochaEvents test retry with [only] #1'] = [
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -1237,7 +1289,8 @@ exports['src/cypress/runner retries mochaEvents test retry with [only] #1'] = [
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -1253,7 +1306,8 @@ exports['src/cypress/runner retries mochaEvents test retry with [only] #1'] = [
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -1270,7 +1324,8 @@ exports['src/cypress/runner retries mochaEvents test retry with [only] #1'] = [
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -1315,7 +1370,8 @@ exports['src/cypress/runner retries mochaEvents test retry with [only] #1'] = [
"file": null,
"final": true,
"currentRetry": 1,
- "retries": 1
+ "retries": 1,
+ "_slow": 10000
}
],
[
@@ -1360,7 +1416,8 @@ exports['src/cypress/runner retries mochaEvents test retry with [only] #1'] = [
"file": null,
"final": true,
"currentRetry": 1,
- "retries": 1
+ "retries": 1,
+ "_slow": 10000
}
],
[
@@ -1373,7 +1430,8 @@ exports['src/cypress/runner retries mochaEvents test retry with [only] #1'] = [
"type": "suite",
"file": null,
"invocationDetails": "{Object 8}",
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -1419,7 +1477,8 @@ exports['src/cypress/runner retries mochaEvents test retry with [only] #1'] = [
"file": null,
"final": true,
"currentRetry": 1,
- "retries": 1
+ "retries": 1,
+ "_slow": 10000
}
],
[
@@ -1431,7 +1490,8 @@ exports['src/cypress/runner retries mochaEvents test retry with [only] #1'] = [
"root": true,
"type": "suite",
"file": "relative/path/to/spec.js",
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -1460,7 +1520,8 @@ exports['src/cypress/runner retries mochaEvents can retry from [beforeEach] #1']
"root": true,
"type": "suite",
"file": "relative/path/to/spec.js",
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -1473,7 +1534,8 @@ exports['src/cypress/runner retries mochaEvents can retry from [beforeEach] #1']
"type": "suite",
"file": null,
"invocationDetails": "{Object 8}",
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -1489,7 +1551,8 @@ exports['src/cypress/runner retries mochaEvents can retry from [beforeEach] #1']
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -1505,7 +1568,8 @@ exports['src/cypress/runner retries mochaEvents can retry from [beforeEach] #1']
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -1522,7 +1586,8 @@ exports['src/cypress/runner retries mochaEvents can retry from [beforeEach] #1']
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -1571,7 +1636,8 @@ exports['src/cypress/runner retries mochaEvents can retry from [beforeEach] #1']
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": 1
+ "retries": 1,
+ "_slow": 10000
}
],
[
@@ -1587,7 +1653,8 @@ exports['src/cypress/runner retries mochaEvents can retry from [beforeEach] #1']
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -1604,7 +1671,8 @@ exports['src/cypress/runner retries mochaEvents can retry from [beforeEach] #1']
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -1620,7 +1688,8 @@ exports['src/cypress/runner retries mochaEvents can retry from [beforeEach] #1']
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -1637,7 +1706,8 @@ exports['src/cypress/runner retries mochaEvents can retry from [beforeEach] #1']
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -1653,7 +1723,8 @@ exports['src/cypress/runner retries mochaEvents can retry from [beforeEach] #1']
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -1669,7 +1740,8 @@ exports['src/cypress/runner retries mochaEvents can retry from [beforeEach] #1']
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -1730,7 +1802,8 @@ exports['src/cypress/runner retries mochaEvents can retry from [beforeEach] #1']
"invocationDetails": "{Object 8}",
"final": false,
"currentRetry": 0,
- "retries": 1
+ "retries": 1,
+ "_slow": 10000
},
{
"message": "[error message]",
@@ -1753,7 +1826,8 @@ exports['src/cypress/runner retries mochaEvents can retry from [beforeEach] #1']
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -1770,7 +1844,8 @@ exports['src/cypress/runner retries mochaEvents can retry from [beforeEach] #1']
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -1832,7 +1907,8 @@ exports['src/cypress/runner retries mochaEvents can retry from [beforeEach] #1']
"invocationDetails": "{Object 8}",
"final": false,
"currentRetry": 0,
- "retries": 1
+ "retries": 1,
+ "_slow": 10000
}
],
[
@@ -1849,7 +1925,8 @@ exports['src/cypress/runner retries mochaEvents can retry from [beforeEach] #1']
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -1863,7 +1940,8 @@ exports['src/cypress/runner retries mochaEvents can retry from [beforeEach] #1']
"wallClockStartedAt": "match.date",
"file": null,
"currentRetry": 1,
- "retries": 1
+ "retries": 1,
+ "_slow": 10000
}
],
[
@@ -1880,7 +1958,8 @@ exports['src/cypress/runner retries mochaEvents can retry from [beforeEach] #1']
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -1897,7 +1976,8 @@ exports['src/cypress/runner retries mochaEvents can retry from [beforeEach] #1']
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -1914,7 +1994,8 @@ exports['src/cypress/runner retries mochaEvents can retry from [beforeEach] #1']
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -1930,7 +2011,8 @@ exports['src/cypress/runner retries mochaEvents can retry from [beforeEach] #1']
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -1947,7 +2029,8 @@ exports['src/cypress/runner retries mochaEvents can retry from [beforeEach] #1']
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -1964,7 +2047,8 @@ exports['src/cypress/runner retries mochaEvents can retry from [beforeEach] #1']
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -1981,7 +2065,8 @@ exports['src/cypress/runner retries mochaEvents can retry from [beforeEach] #1']
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -1997,7 +2082,8 @@ exports['src/cypress/runner retries mochaEvents can retry from [beforeEach] #1']
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -2014,7 +2100,8 @@ exports['src/cypress/runner retries mochaEvents can retry from [beforeEach] #1']
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -2069,7 +2156,8 @@ exports['src/cypress/runner retries mochaEvents can retry from [beforeEach] #1']
"file": null,
"final": true,
"currentRetry": 1,
- "retries": 1
+ "retries": 1,
+ "_slow": 10000
}
],
[
@@ -2124,7 +2212,8 @@ exports['src/cypress/runner retries mochaEvents can retry from [beforeEach] #1']
"file": null,
"final": true,
"currentRetry": 1,
- "retries": 1
+ "retries": 1,
+ "_slow": 10000
}
],
[
@@ -2137,7 +2226,8 @@ exports['src/cypress/runner retries mochaEvents can retry from [beforeEach] #1']
"type": "suite",
"file": null,
"invocationDetails": "{Object 8}",
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -2193,7 +2283,8 @@ exports['src/cypress/runner retries mochaEvents can retry from [beforeEach] #1']
"file": null,
"final": true,
"currentRetry": 1,
- "retries": 1
+ "retries": 1,
+ "_slow": 10000
}
],
[
@@ -2205,7 +2296,8 @@ exports['src/cypress/runner retries mochaEvents can retry from [beforeEach] #1']
"root": true,
"type": "suite",
"file": "relative/path/to/spec.js",
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -2234,7 +2326,8 @@ exports['src/cypress/runner retries mochaEvents can retry from [afterEach] #1']
"root": true,
"type": "suite",
"file": "relative/path/to/spec.js",
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -2247,7 +2340,8 @@ exports['src/cypress/runner retries mochaEvents can retry from [afterEach] #1']
"type": "suite",
"file": null,
"invocationDetails": "{Object 8}",
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -2263,7 +2357,8 @@ exports['src/cypress/runner retries mochaEvents can retry from [afterEach] #1']
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -2279,7 +2374,8 @@ exports['src/cypress/runner retries mochaEvents can retry from [afterEach] #1']
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -2296,7 +2392,8 @@ exports['src/cypress/runner retries mochaEvents can retry from [afterEach] #1']
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -2350,7 +2447,8 @@ exports['src/cypress/runner retries mochaEvents can retry from [afterEach] #1']
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": 2
+ "retries": 2,
+ "_slow": 10000
}
],
[
@@ -2366,7 +2464,8 @@ exports['src/cypress/runner retries mochaEvents can retry from [afterEach] #1']
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -2383,7 +2482,8 @@ exports['src/cypress/runner retries mochaEvents can retry from [afterEach] #1']
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -2399,7 +2499,8 @@ exports['src/cypress/runner retries mochaEvents can retry from [afterEach] #1']
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -2416,7 +2517,8 @@ exports['src/cypress/runner retries mochaEvents can retry from [afterEach] #1']
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -2432,7 +2534,8 @@ exports['src/cypress/runner retries mochaEvents can retry from [afterEach] #1']
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -2449,7 +2552,8 @@ exports['src/cypress/runner retries mochaEvents can retry from [afterEach] #1']
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -2465,7 +2569,8 @@ exports['src/cypress/runner retries mochaEvents can retry from [afterEach] #1']
"file": "relative/path/to/spec.js",
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -2531,7 +2636,8 @@ exports['src/cypress/runner retries mochaEvents can retry from [afterEach] #1']
"invocationDetails": "{Object 8}",
"final": false,
"currentRetry": 0,
- "retries": 2
+ "retries": 2,
+ "_slow": 10000
},
{
"message": "[error message]",
@@ -2562,7 +2668,8 @@ exports['src/cypress/runner retries mochaEvents can retry from [afterEach] #1']
"file": "relative/path/to/spec.js",
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -2629,7 +2736,8 @@ exports['src/cypress/runner retries mochaEvents can retry from [afterEach] #1']
"invocationDetails": "{Object 8}",
"final": false,
"currentRetry": 0,
- "retries": 2
+ "retries": 2,
+ "_slow": 10000
}
],
[
@@ -2646,7 +2754,8 @@ exports['src/cypress/runner retries mochaEvents can retry from [afterEach] #1']
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -2660,7 +2769,8 @@ exports['src/cypress/runner retries mochaEvents can retry from [afterEach] #1']
"wallClockStartedAt": "match.date",
"file": null,
"currentRetry": 1,
- "retries": 2
+ "retries": 2,
+ "_slow": 10000
}
],
[
@@ -2677,7 +2787,8 @@ exports['src/cypress/runner retries mochaEvents can retry from [afterEach] #1']
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -2694,7 +2805,8 @@ exports['src/cypress/runner retries mochaEvents can retry from [afterEach] #1']
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -2711,7 +2823,8 @@ exports['src/cypress/runner retries mochaEvents can retry from [afterEach] #1']
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -2728,7 +2841,8 @@ exports['src/cypress/runner retries mochaEvents can retry from [afterEach] #1']
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -2745,7 +2859,8 @@ exports['src/cypress/runner retries mochaEvents can retry from [afterEach] #1']
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -2769,7 +2884,8 @@ exports['src/cypress/runner retries mochaEvents can retry from [afterEach] #1']
"file": "relative/path/to/spec.js",
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -2786,7 +2902,8 @@ exports['src/cypress/runner retries mochaEvents can retry from [afterEach] #1']
"file": "relative/path/to/spec.js",
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -2834,7 +2951,8 @@ exports['src/cypress/runner retries mochaEvents can retry from [afterEach] #1']
"file": null,
"final": true,
"currentRetry": 1,
- "retries": 2
+ "retries": 2,
+ "_slow": 10000
}
],
[
@@ -2882,7 +3000,8 @@ exports['src/cypress/runner retries mochaEvents can retry from [afterEach] #1']
"file": null,
"final": true,
"currentRetry": 1,
- "retries": 2
+ "retries": 2,
+ "_slow": 10000
}
],
[
@@ -2931,7 +3050,8 @@ exports['src/cypress/runner retries mochaEvents can retry from [afterEach] #1']
"file": null,
"final": true,
"currentRetry": 1,
- "retries": 2
+ "retries": 2,
+ "_slow": 10000
}
],
[
@@ -2946,7 +3066,8 @@ exports['src/cypress/runner retries mochaEvents can retry from [afterEach] #1']
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -2963,7 +3084,8 @@ exports['src/cypress/runner retries mochaEvents can retry from [afterEach] #1']
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -2979,7 +3101,8 @@ exports['src/cypress/runner retries mochaEvents can retry from [afterEach] #1']
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -2996,7 +3119,8 @@ exports['src/cypress/runner retries mochaEvents can retry from [afterEach] #1']
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -3013,7 +3137,8 @@ exports['src/cypress/runner retries mochaEvents can retry from [afterEach] #1']
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -3030,7 +3155,8 @@ exports['src/cypress/runner retries mochaEvents can retry from [afterEach] #1']
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -3047,7 +3173,8 @@ exports['src/cypress/runner retries mochaEvents can retry from [afterEach] #1']
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -3064,7 +3191,8 @@ exports['src/cypress/runner retries mochaEvents can retry from [afterEach] #1']
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -3081,7 +3209,8 @@ exports['src/cypress/runner retries mochaEvents can retry from [afterEach] #1']
"file": "relative/path/to/spec.js",
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -3098,7 +3227,8 @@ exports['src/cypress/runner retries mochaEvents can retry from [afterEach] #1']
"file": "relative/path/to/spec.js",
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -3148,7 +3278,8 @@ exports['src/cypress/runner retries mochaEvents can retry from [afterEach] #1']
"invocationDetails": "{Object 8}",
"final": true,
"currentRetry": 0,
- "retries": 2
+ "retries": 2,
+ "_slow": 10000
}
],
[
@@ -3198,7 +3329,8 @@ exports['src/cypress/runner retries mochaEvents can retry from [afterEach] #1']
"invocationDetails": "{Object 8}",
"final": true,
"currentRetry": 0,
- "retries": 2
+ "retries": 2,
+ "_slow": 10000
}
],
[
@@ -3249,7 +3381,8 @@ exports['src/cypress/runner retries mochaEvents can retry from [afterEach] #1']
"invocationDetails": "{Object 8}",
"final": true,
"currentRetry": 0,
- "retries": 2
+ "retries": 2,
+ "_slow": 10000
}
],
[
@@ -3264,7 +3397,8 @@ exports['src/cypress/runner retries mochaEvents can retry from [afterEach] #1']
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -3281,7 +3415,8 @@ exports['src/cypress/runner retries mochaEvents can retry from [afterEach] #1']
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -3297,7 +3432,8 @@ exports['src/cypress/runner retries mochaEvents can retry from [afterEach] #1']
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -3314,7 +3450,8 @@ exports['src/cypress/runner retries mochaEvents can retry from [afterEach] #1']
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -3331,7 +3468,8 @@ exports['src/cypress/runner retries mochaEvents can retry from [afterEach] #1']
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -3348,7 +3486,8 @@ exports['src/cypress/runner retries mochaEvents can retry from [afterEach] #1']
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -3365,7 +3504,8 @@ exports['src/cypress/runner retries mochaEvents can retry from [afterEach] #1']
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -3382,7 +3522,8 @@ exports['src/cypress/runner retries mochaEvents can retry from [afterEach] #1']
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -3399,7 +3540,8 @@ exports['src/cypress/runner retries mochaEvents can retry from [afterEach] #1']
"file": "relative/path/to/spec.js",
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -3416,7 +3558,8 @@ exports['src/cypress/runner retries mochaEvents can retry from [afterEach] #1']
"file": "relative/path/to/spec.js",
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -3432,7 +3575,8 @@ exports['src/cypress/runner retries mochaEvents can retry from [afterEach] #1']
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -3449,7 +3593,8 @@ exports['src/cypress/runner retries mochaEvents can retry from [afterEach] #1']
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -3506,7 +3651,8 @@ exports['src/cypress/runner retries mochaEvents can retry from [afterEach] #1']
"invocationDetails": "{Object 8}",
"final": true,
"currentRetry": 0,
- "retries": 2
+ "retries": 2,
+ "_slow": 10000
}
],
[
@@ -3563,7 +3709,8 @@ exports['src/cypress/runner retries mochaEvents can retry from [afterEach] #1']
"invocationDetails": "{Object 8}",
"final": true,
"currentRetry": 0,
- "retries": 2
+ "retries": 2,
+ "_slow": 10000
}
],
[
@@ -3621,7 +3768,8 @@ exports['src/cypress/runner retries mochaEvents can retry from [afterEach] #1']
"invocationDetails": "{Object 8}",
"final": true,
"currentRetry": 0,
- "retries": 2
+ "retries": 2,
+ "_slow": 10000
}
],
[
@@ -3634,7 +3782,8 @@ exports['src/cypress/runner retries mochaEvents can retry from [afterEach] #1']
"type": "suite",
"file": null,
"invocationDetails": "{Object 8}",
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -3647,7 +3796,8 @@ exports['src/cypress/runner retries mochaEvents can retry from [afterEach] #1']
"type": "suite",
"file": null,
"invocationDetails": "{Object 8}",
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -3662,7 +3812,8 @@ exports['src/cypress/runner retries mochaEvents can retry from [afterEach] #1']
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -3678,7 +3829,8 @@ exports['src/cypress/runner retries mochaEvents can retry from [afterEach] #1']
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -3694,7 +3846,8 @@ exports['src/cypress/runner retries mochaEvents can retry from [afterEach] #1']
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -3741,7 +3894,8 @@ exports['src/cypress/runner retries mochaEvents can retry from [afterEach] #1']
"invocationDetails": "{Object 8}",
"final": false,
"currentRetry": 0,
- "retries": 2
+ "retries": 2,
+ "_slow": 10000
},
{
"message": "[error message]",
@@ -3772,7 +3926,8 @@ exports['src/cypress/runner retries mochaEvents can retry from [afterEach] #1']
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -3789,7 +3944,8 @@ exports['src/cypress/runner retries mochaEvents can retry from [afterEach] #1']
"file": "relative/path/to/spec.js",
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -3806,7 +3962,8 @@ exports['src/cypress/runner retries mochaEvents can retry from [afterEach] #1']
"file": "relative/path/to/spec.js",
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -3854,7 +4011,8 @@ exports['src/cypress/runner retries mochaEvents can retry from [afterEach] #1']
"invocationDetails": "{Object 8}",
"final": false,
"currentRetry": 0,
- "retries": 2
+ "retries": 2,
+ "_slow": 10000
}
],
[
@@ -3868,7 +4026,8 @@ exports['src/cypress/runner retries mochaEvents can retry from [afterEach] #1']
"wallClockStartedAt": "match.date",
"file": null,
"currentRetry": 1,
- "retries": 2
+ "retries": 2,
+ "_slow": 10000
}
],
[
@@ -3892,7 +4051,8 @@ exports['src/cypress/runner retries mochaEvents can retry from [afterEach] #1']
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -3937,7 +4097,8 @@ exports['src/cypress/runner retries mochaEvents can retry from [afterEach] #1']
"file": null,
"final": false,
"currentRetry": 1,
- "retries": 2
+ "retries": 2,
+ "_slow": 10000
},
{
"message": "[error message]",
@@ -3968,7 +4129,8 @@ exports['src/cypress/runner retries mochaEvents can retry from [afterEach] #1']
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -3985,7 +4147,8 @@ exports['src/cypress/runner retries mochaEvents can retry from [afterEach] #1']
"file": "relative/path/to/spec.js",
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -4002,7 +4165,8 @@ exports['src/cypress/runner retries mochaEvents can retry from [afterEach] #1']
"file": "relative/path/to/spec.js",
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -4048,7 +4212,8 @@ exports['src/cypress/runner retries mochaEvents can retry from [afterEach] #1']
"file": null,
"final": false,
"currentRetry": 1,
- "retries": 2
+ "retries": 2,
+ "_slow": 10000
}
],
[
@@ -4062,7 +4227,8 @@ exports['src/cypress/runner retries mochaEvents can retry from [afterEach] #1']
"wallClockStartedAt": "match.date",
"file": null,
"currentRetry": 2,
- "retries": 2
+ "retries": 2,
+ "_slow": 10000
}
],
[
@@ -4086,7 +4252,8 @@ exports['src/cypress/runner retries mochaEvents can retry from [afterEach] #1']
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -4103,7 +4270,8 @@ exports['src/cypress/runner retries mochaEvents can retry from [afterEach] #1']
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -4120,7 +4288,8 @@ exports['src/cypress/runner retries mochaEvents can retry from [afterEach] #1']
"file": "relative/path/to/spec.js",
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -4137,7 +4306,8 @@ exports['src/cypress/runner retries mochaEvents can retry from [afterEach] #1']
"file": "relative/path/to/spec.js",
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -4173,7 +4343,8 @@ exports['src/cypress/runner retries mochaEvents can retry from [afterEach] #1']
"file": null,
"final": true,
"currentRetry": 2,
- "retries": 2
+ "retries": 2,
+ "_slow": 10000
}
],
[
@@ -4209,7 +4380,8 @@ exports['src/cypress/runner retries mochaEvents can retry from [afterEach] #1']
"file": null,
"final": true,
"currentRetry": 2,
- "retries": 2
+ "retries": 2,
+ "_slow": 10000
}
],
[
@@ -4246,7 +4418,8 @@ exports['src/cypress/runner retries mochaEvents can retry from [afterEach] #1']
"file": null,
"final": true,
"currentRetry": 2,
- "retries": 2
+ "retries": 2,
+ "_slow": 10000
}
],
[
@@ -4259,7 +4432,8 @@ exports['src/cypress/runner retries mochaEvents can retry from [afterEach] #1']
"type": "suite",
"file": null,
"invocationDetails": "{Object 8}",
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -4272,7 +4446,8 @@ exports['src/cypress/runner retries mochaEvents can retry from [afterEach] #1']
"type": "suite",
"file": null,
"invocationDetails": "{Object 8}",
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -4287,7 +4462,8 @@ exports['src/cypress/runner retries mochaEvents can retry from [afterEach] #1']
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -4303,7 +4479,8 @@ exports['src/cypress/runner retries mochaEvents can retry from [afterEach] #1']
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -4320,7 +4497,8 @@ exports['src/cypress/runner retries mochaEvents can retry from [afterEach] #1']
"file": "relative/path/to/spec.js",
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -4337,7 +4515,8 @@ exports['src/cypress/runner retries mochaEvents can retry from [afterEach] #1']
"file": "relative/path/to/spec.js",
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -4370,7 +4549,8 @@ exports['src/cypress/runner retries mochaEvents can retry from [afterEach] #1']
"invocationDetails": "{Object 8}",
"final": true,
"currentRetry": 0,
- "retries": 2
+ "retries": 2,
+ "_slow": 10000
}
],
[
@@ -4403,7 +4583,8 @@ exports['src/cypress/runner retries mochaEvents can retry from [afterEach] #1']
"invocationDetails": "{Object 8}",
"final": true,
"currentRetry": 0,
- "retries": 2
+ "retries": 2,
+ "_slow": 10000
}
],
[
@@ -4416,7 +4597,8 @@ exports['src/cypress/runner retries mochaEvents can retry from [afterEach] #1']
"type": "suite",
"file": null,
"invocationDetails": "{Object 8}",
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -4450,7 +4632,8 @@ exports['src/cypress/runner retries mochaEvents can retry from [afterEach] #1']
"invocationDetails": "{Object 8}",
"final": true,
"currentRetry": 0,
- "retries": 2
+ "retries": 2,
+ "_slow": 10000
}
],
[
@@ -4462,7 +4645,8 @@ exports['src/cypress/runner retries mochaEvents can retry from [afterEach] #1']
"root": true,
"type": "suite",
"file": "relative/path/to/spec.js",
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -4491,7 +4675,8 @@ exports['src/cypress/runner retries mochaEvents cant retry from [before] #1'] =
"root": true,
"type": "suite",
"file": "relative/path/to/spec.js",
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -4504,7 +4689,8 @@ exports['src/cypress/runner retries mochaEvents cant retry from [before] #1'] =
"type": "suite",
"file": null,
"invocationDetails": "{Object 8}",
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -4520,7 +4706,8 @@ exports['src/cypress/runner retries mochaEvents cant retry from [before] #1'] =
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -4536,7 +4723,8 @@ exports['src/cypress/runner retries mochaEvents cant retry from [before] #1'] =
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -4562,7 +4750,8 @@ exports['src/cypress/runner retries mochaEvents cant retry from [before] #1'] =
"originalTitle": "\"before all\" hook",
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
},
{
"message": "[error message]",
@@ -4585,7 +4774,8 @@ exports['src/cypress/runner retries mochaEvents cant retry from [before] #1'] =
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -4602,7 +4792,8 @@ exports['src/cypress/runner retries mochaEvents cant retry from [before] #1'] =
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -4615,7 +4806,8 @@ exports['src/cypress/runner retries mochaEvents cant retry from [before] #1'] =
"type": "suite",
"file": null,
"invocationDetails": "{Object 8}",
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -4660,7 +4852,8 @@ exports['src/cypress/runner retries mochaEvents cant retry from [before] #1'] =
"invocationDetails": "{Object 8}",
"final": true,
"currentRetry": 0,
- "retries": 1
+ "retries": 1,
+ "_slow": 10000
}
],
[
@@ -4706,7 +4899,8 @@ exports['src/cypress/runner retries mochaEvents cant retry from [before] #1'] =
"invocationDetails": "{Object 8}",
"final": true,
"currentRetry": 0,
- "retries": 1
+ "retries": 1,
+ "_slow": 10000
}
],
[
@@ -4718,7 +4912,8 @@ exports['src/cypress/runner retries mochaEvents cant retry from [before] #1'] =
"root": true,
"type": "suite",
"file": "relative/path/to/spec.js",
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -4747,7 +4942,8 @@ exports['src/cypress/runner retries mochaEvents cant retry from [after] #1'] = [
"root": true,
"type": "suite",
"file": "relative/path/to/spec.js",
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -4760,7 +4956,8 @@ exports['src/cypress/runner retries mochaEvents cant retry from [after] #1'] = [
"type": "suite",
"file": null,
"invocationDetails": "{Object 8}",
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -4776,7 +4973,8 @@ exports['src/cypress/runner retries mochaEvents cant retry from [after] #1'] = [
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -4792,7 +4990,8 @@ exports['src/cypress/runner retries mochaEvents cant retry from [after] #1'] = [
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -4809,7 +5008,8 @@ exports['src/cypress/runner retries mochaEvents cant retry from [after] #1'] = [
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -4870,7 +5070,8 @@ exports['src/cypress/runner retries mochaEvents cant retry from [after] #1'] = [
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": 1
+ "retries": 1,
+ "_slow": 10000
}
],
[
@@ -4886,7 +5087,8 @@ exports['src/cypress/runner retries mochaEvents cant retry from [after] #1'] = [
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -4903,7 +5105,8 @@ exports['src/cypress/runner retries mochaEvents cant retry from [after] #1'] = [
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -4919,7 +5122,8 @@ exports['src/cypress/runner retries mochaEvents cant retry from [after] #1'] = [
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -4936,7 +5140,8 @@ exports['src/cypress/runner retries mochaEvents cant retry from [after] #1'] = [
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -4952,7 +5157,8 @@ exports['src/cypress/runner retries mochaEvents cant retry from [after] #1'] = [
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -4969,7 +5175,8 @@ exports['src/cypress/runner retries mochaEvents cant retry from [after] #1'] = [
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -4985,7 +5192,8 @@ exports['src/cypress/runner retries mochaEvents cant retry from [after] #1'] = [
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -5002,7 +5210,8 @@ exports['src/cypress/runner retries mochaEvents cant retry from [after] #1'] = [
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -5018,7 +5227,8 @@ exports['src/cypress/runner retries mochaEvents cant retry from [after] #1'] = [
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -5044,7 +5254,8 @@ exports['src/cypress/runner retries mochaEvents cant retry from [after] #1'] = [
"originalTitle": "\"after all\" hook",
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
},
{
"message": "[error message]",
@@ -5124,7 +5335,8 @@ exports['src/cypress/runner retries mochaEvents cant retry from [after] #1'] = [
"invocationDetails": "{Object 8}",
"final": true,
"currentRetry": 0,
- "retries": 1
+ "retries": 1,
+ "_slow": 10000
}
],
[
@@ -5137,7 +5349,8 @@ exports['src/cypress/runner retries mochaEvents cant retry from [after] #1'] = [
"type": "suite",
"file": null,
"invocationDetails": "{Object 8}",
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -5211,7 +5424,8 @@ exports['src/cypress/runner retries mochaEvents cant retry from [after] #1'] = [
"invocationDetails": "{Object 8}",
"final": true,
"currentRetry": 0,
- "retries": 1
+ "retries": 1,
+ "_slow": 10000
}
],
[
@@ -5223,7 +5437,8 @@ exports['src/cypress/runner retries mochaEvents cant retry from [after] #1'] = [
"root": true,
"type": "suite",
"file": "relative/path/to/spec.js",
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -5252,7 +5467,8 @@ exports['src/cypress/runner retries mochaEvents three tests with retry #1'] = [
"root": true,
"type": "suite",
"file": "relative/path/to/spec.js",
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -5265,7 +5481,8 @@ exports['src/cypress/runner retries mochaEvents three tests with retry #1'] = [
"type": "suite",
"file": null,
"invocationDetails": "{Object 8}",
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -5281,7 +5498,8 @@ exports['src/cypress/runner retries mochaEvents three tests with retry #1'] = [
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -5297,7 +5515,8 @@ exports['src/cypress/runner retries mochaEvents three tests with retry #1'] = [
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -5314,7 +5533,8 @@ exports['src/cypress/runner retries mochaEvents three tests with retry #1'] = [
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -5358,7 +5578,8 @@ exports['src/cypress/runner retries mochaEvents three tests with retry #1'] = [
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": 2
+ "retries": 2,
+ "_slow": 10000
}
],
[
@@ -5374,7 +5595,8 @@ exports['src/cypress/runner retries mochaEvents three tests with retry #1'] = [
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -5391,7 +5613,8 @@ exports['src/cypress/runner retries mochaEvents three tests with retry #1'] = [
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -5407,7 +5630,8 @@ exports['src/cypress/runner retries mochaEvents three tests with retry #1'] = [
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -5424,7 +5648,8 @@ exports['src/cypress/runner retries mochaEvents three tests with retry #1'] = [
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -5471,7 +5696,8 @@ exports['src/cypress/runner retries mochaEvents three tests with retry #1'] = [
"invocationDetails": "{Object 8}",
"final": true,
"currentRetry": 0,
- "retries": 2
+ "retries": 2,
+ "_slow": 10000
}
],
[
@@ -5518,7 +5744,8 @@ exports['src/cypress/runner retries mochaEvents three tests with retry #1'] = [
"invocationDetails": "{Object 8}",
"final": true,
"currentRetry": 0,
- "retries": 2
+ "retries": 2,
+ "_slow": 10000
}
],
[
@@ -5566,7 +5793,8 @@ exports['src/cypress/runner retries mochaEvents three tests with retry #1'] = [
"invocationDetails": "{Object 8}",
"final": true,
"currentRetry": 0,
- "retries": 2
+ "retries": 2,
+ "_slow": 10000
}
],
[
@@ -5581,7 +5809,8 @@ exports['src/cypress/runner retries mochaEvents three tests with retry #1'] = [
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -5598,7 +5827,8 @@ exports['src/cypress/runner retries mochaEvents three tests with retry #1'] = [
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -5614,7 +5844,8 @@ exports['src/cypress/runner retries mochaEvents three tests with retry #1'] = [
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -5631,7 +5862,8 @@ exports['src/cypress/runner retries mochaEvents three tests with retry #1'] = [
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -5678,7 +5910,8 @@ exports['src/cypress/runner retries mochaEvents three tests with retry #1'] = [
"invocationDetails": "{Object 8}",
"final": false,
"currentRetry": 0,
- "retries": 2
+ "retries": 2,
+ "_slow": 10000
},
{
"message": "[error message]",
@@ -5702,7 +5935,8 @@ exports['src/cypress/runner retries mochaEvents three tests with retry #1'] = [
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -5719,7 +5953,8 @@ exports['src/cypress/runner retries mochaEvents three tests with retry #1'] = [
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -5767,7 +6002,8 @@ exports['src/cypress/runner retries mochaEvents three tests with retry #1'] = [
"invocationDetails": "{Object 8}",
"final": false,
"currentRetry": 0,
- "retries": 2
+ "retries": 2,
+ "_slow": 10000
}
],
[
@@ -5784,7 +6020,8 @@ exports['src/cypress/runner retries mochaEvents three tests with retry #1'] = [
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -5798,7 +6035,8 @@ exports['src/cypress/runner retries mochaEvents three tests with retry #1'] = [
"wallClockStartedAt": "match.date",
"file": null,
"currentRetry": 1,
- "retries": 2
+ "retries": 2,
+ "_slow": 10000
}
],
[
@@ -5815,7 +6053,8 @@ exports['src/cypress/runner retries mochaEvents three tests with retry #1'] = [
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -5860,7 +6099,8 @@ exports['src/cypress/runner retries mochaEvents three tests with retry #1'] = [
"file": null,
"final": false,
"currentRetry": 1,
- "retries": 2
+ "retries": 2,
+ "_slow": 10000
},
{
"message": "[error message]",
@@ -5884,7 +6124,8 @@ exports['src/cypress/runner retries mochaEvents three tests with retry #1'] = [
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -5901,7 +6142,8 @@ exports['src/cypress/runner retries mochaEvents three tests with retry #1'] = [
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -5947,7 +6189,8 @@ exports['src/cypress/runner retries mochaEvents three tests with retry #1'] = [
"file": null,
"final": false,
"currentRetry": 1,
- "retries": 2
+ "retries": 2,
+ "_slow": 10000
}
],
[
@@ -5964,7 +6207,8 @@ exports['src/cypress/runner retries mochaEvents three tests with retry #1'] = [
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -5978,7 +6222,8 @@ exports['src/cypress/runner retries mochaEvents three tests with retry #1'] = [
"wallClockStartedAt": "match.date",
"file": null,
"currentRetry": 2,
- "retries": 2
+ "retries": 2,
+ "_slow": 10000
}
],
[
@@ -5995,7 +6240,8 @@ exports['src/cypress/runner retries mochaEvents three tests with retry #1'] = [
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -6012,7 +6258,8 @@ exports['src/cypress/runner retries mochaEvents three tests with retry #1'] = [
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -6029,7 +6276,8 @@ exports['src/cypress/runner retries mochaEvents three tests with retry #1'] = [
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -6067,7 +6315,8 @@ exports['src/cypress/runner retries mochaEvents three tests with retry #1'] = [
"file": null,
"final": true,
"currentRetry": 2,
- "retries": 2
+ "retries": 2,
+ "_slow": 10000
}
],
[
@@ -6105,7 +6354,8 @@ exports['src/cypress/runner retries mochaEvents three tests with retry #1'] = [
"file": null,
"final": true,
"currentRetry": 2,
- "retries": 2
+ "retries": 2,
+ "_slow": 10000
}
],
[
@@ -6144,7 +6394,8 @@ exports['src/cypress/runner retries mochaEvents three tests with retry #1'] = [
"file": null,
"final": true,
"currentRetry": 2,
- "retries": 2
+ "retries": 2,
+ "_slow": 10000
}
],
[
@@ -6159,7 +6410,8 @@ exports['src/cypress/runner retries mochaEvents three tests with retry #1'] = [
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -6176,7 +6428,8 @@ exports['src/cypress/runner retries mochaEvents three tests with retry #1'] = [
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -6192,7 +6445,8 @@ exports['src/cypress/runner retries mochaEvents three tests with retry #1'] = [
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -6209,7 +6463,8 @@ exports['src/cypress/runner retries mochaEvents three tests with retry #1'] = [
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -6226,7 +6481,8 @@ exports['src/cypress/runner retries mochaEvents three tests with retry #1'] = [
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -6243,7 +6499,8 @@ exports['src/cypress/runner retries mochaEvents three tests with retry #1'] = [
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -6259,7 +6516,8 @@ exports['src/cypress/runner retries mochaEvents three tests with retry #1'] = [
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -6276,7 +6534,8 @@ exports['src/cypress/runner retries mochaEvents three tests with retry #1'] = [
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -6323,7 +6582,8 @@ exports['src/cypress/runner retries mochaEvents three tests with retry #1'] = [
"invocationDetails": "{Object 8}",
"final": true,
"currentRetry": 0,
- "retries": 2
+ "retries": 2,
+ "_slow": 10000
}
],
[
@@ -6370,7 +6630,8 @@ exports['src/cypress/runner retries mochaEvents three tests with retry #1'] = [
"invocationDetails": "{Object 8}",
"final": true,
"currentRetry": 0,
- "retries": 2
+ "retries": 2,
+ "_slow": 10000
}
],
[
@@ -6383,7 +6644,8 @@ exports['src/cypress/runner retries mochaEvents three tests with retry #1'] = [
"type": "suite",
"file": null,
"invocationDetails": "{Object 8}",
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -6431,7 +6693,8 @@ exports['src/cypress/runner retries mochaEvents three tests with retry #1'] = [
"invocationDetails": "{Object 8}",
"final": true,
"currentRetry": 0,
- "retries": 2
+ "retries": 2,
+ "_slow": 10000
}
],
[
@@ -6443,7 +6706,8 @@ exports['src/cypress/runner retries mochaEvents three tests with retry #1'] = [
"root": true,
"type": "suite",
"file": "relative/path/to/spec.js",
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -6477,6 +6741,7 @@ exports['src/cypress/runner retries mochaEvents screenshots retry screenshot in
},
"scaled": false,
"blackout": [],
+ "overwrite": false,
"startTime": "match.string",
"current": 1,
"total": 1
@@ -6491,134 +6756,8 @@ exports['src/cypress/runner retries mochaEvents screenshots retry screenshot in
"scale": false,
"waitForCommandSynchronization": false,
"disableTimersAndAnimations": true,
- "blackout": []
-}
-
-exports['serialize state - retries'] = {
- "currentId": "r6",
- "tests": {
- "r3": {
- "id": "r3",
- "order": 1,
- "title": "test 1",
- "state": "passed",
- "body": "[body]",
- "type": "test",
- "duration": 1,
- "wallClockStartedAt": "1970-01-01T00:00:00.000Z",
- "wallClockDuration": 1,
- "timings": {
- "lifecycle": 1,
- "before all": [
- {
- "hookId": "h1",
- "fnDuration": 1,
- "afterFnDuration": 1
- }
- ],
- "before each": [
- {
- "hookId": "h2",
- "fnDuration": 1,
- "afterFnDuration": 1
- }
- ],
- "test": {
- "fnDuration": 1,
- "afterFnDuration": 1
- },
- "after each": [
- {
- "hookId": "h4",
- "fnDuration": 1,
- "afterFnDuration": 1
- }
- ],
- "after all": [
- {
- "hookId": "h3",
- "fnDuration": 1,
- "afterFnDuration": 1
- }
- ]
- },
- "file": null,
- "invocationDetails": "{Object 8}",
- "final": true,
- "currentRetry": 0,
- "retries": 1,
- "hooks": [],
- "prevAttempts": []
- },
- "r5": {
- "id": "r5",
- "title": "test 1",
- "state": "passed",
- "body": "[body]",
- "type": "test",
- "duration": 1,
- "wallClockStartedAt": "1970-01-01T00:00:00.000Z",
- "wallClockDuration": 1,
- "timings": {
- "lifecycle": 1,
- "test": {
- "fnDuration": 1,
- "afterFnDuration": 1
- }
- },
- "file": null,
- "final": true,
- "currentRetry": 1,
- "retries": 1,
- "prevAttempts": [
- {
- "id": "r5",
- "order": 2,
- "title": "test 1",
- "err": "{Object 9}",
- "state": "failed",
- "body": "[body]",
- "type": "test",
- "duration": 1,
- "wallClockStartedAt": "1970-01-01T00:00:00.000Z",
- "wallClockDuration": 1,
- "timings": {
- "lifecycle": 1,
- "test": {
- "fnDuration": 1,
- "afterFnDuration": 1
- }
- },
- "file": null,
- "invocationDetails": "{Object 8}",
- "final": false,
- "currentRetry": 0,
- "retries": 1,
- "hooks": []
- }
- ]
- }
- },
- "startTime": "1970-01-01T00:00:00.000Z",
- "emissions": {
- "started": {
- "r1": true,
- "r2": true,
- "r3": true,
- "r4": true,
- "r5": true,
- "r6": true
- },
- "ended": {
- "r3": true,
- "r2": true,
- "r5": true
- }
- },
- "passed": 2,
- "failed": 0,
- "pending": 0,
- "numLogs": 0
+ "blackout": [],
+ "overwrite": false
}
exports['src/cypress/runner retries mochaEvents cleanses errors before emitting does not try to serialize error with err.actual as DOM node #1'] = [
@@ -6638,7 +6777,8 @@ exports['src/cypress/runner retries mochaEvents cleanses errors before emitting
"root": true,
"type": "suite",
"file": "relative/path/to/spec.js",
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -6653,7 +6793,8 @@ exports['src/cypress/runner retries mochaEvents cleanses errors before emitting
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -6669,7 +6810,8 @@ exports['src/cypress/runner retries mochaEvents cleanses errors before emitting
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -6702,7 +6844,8 @@ exports['src/cypress/runner retries mochaEvents cleanses errors before emitting
"invocationDetails": "{Object 8}",
"final": false,
"currentRetry": 0,
- "retries": 2
+ "retries": 2,
+ "_slow": 10000
},
{
"message": "[error message]",
@@ -6743,7 +6886,8 @@ exports['src/cypress/runner retries mochaEvents cleanses errors before emitting
"invocationDetails": "{Object 8}",
"final": false,
"currentRetry": 0,
- "retries": 2
+ "retries": 2,
+ "_slow": 10000
}
],
[
@@ -6757,7 +6901,8 @@ exports['src/cypress/runner retries mochaEvents cleanses errors before emitting
"wallClockStartedAt": "match.date",
"file": null,
"currentRetry": 1,
- "retries": 2
+ "retries": 2,
+ "_slow": 10000
}
],
[
@@ -6788,7 +6933,8 @@ exports['src/cypress/runner retries mochaEvents cleanses errors before emitting
"file": null,
"final": false,
"currentRetry": 1,
- "retries": 2
+ "retries": 2,
+ "_slow": 10000
},
{
"message": "[error message]",
@@ -6827,7 +6973,8 @@ exports['src/cypress/runner retries mochaEvents cleanses errors before emitting
"file": null,
"final": false,
"currentRetry": 1,
- "retries": 2
+ "retries": 2,
+ "_slow": 10000
}
],
[
@@ -6841,7 +6988,8 @@ exports['src/cypress/runner retries mochaEvents cleanses errors before emitting
"wallClockStartedAt": "match.date",
"file": null,
"currentRetry": 2,
- "retries": 2
+ "retries": 2,
+ "_slow": 10000
}
],
[
@@ -6871,7 +7019,8 @@ exports['src/cypress/runner retries mochaEvents cleanses errors before emitting
},
"file": null,
"currentRetry": 2,
- "retries": 2
+ "retries": 2,
+ "_slow": 10000
},
{
"message": "[error message]",
@@ -6909,7 +7058,8 @@ exports['src/cypress/runner retries mochaEvents cleanses errors before emitting
"file": null,
"final": true,
"currentRetry": 2,
- "retries": 2
+ "retries": 2,
+ "_slow": 10000
}
],
[
@@ -6941,7 +7091,8 @@ exports['src/cypress/runner retries mochaEvents cleanses errors before emitting
"file": null,
"final": true,
"currentRetry": 2,
- "retries": 2
+ "retries": 2,
+ "_slow": 10000
}
],
[
@@ -6953,7 +7104,8 @@ exports['src/cypress/runner retries mochaEvents cleanses errors before emitting
"root": true,
"type": "suite",
"file": "relative/path/to/spec.js",
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -6964,3 +7116,28 @@ exports['src/cypress/runner retries mochaEvents cleanses errors before emitting
}
]
]
+
+exports['serialize state - retries'] = {
+ "currentId": "r6",
+ "tests": "{Object 2}",
+ "startTime": "1970-01-01T00:00:00.000Z",
+ "emissions": {
+ "started": {
+ "r1": true,
+ "r2": true,
+ "r3": true,
+ "r4": true,
+ "r5": true,
+ "r6": true
+ },
+ "ended": {
+ "r3": true,
+ "r2": true,
+ "r5": true
+ }
+ },
+ "passed": 2,
+ "failed": 0,
+ "pending": 0,
+ "numLogs": 0
+}
diff --git a/packages/runner/__snapshots__/runner.mochaEvents.spec.js b/packages/runner/__snapshots__/runner.mochaEvents.spec.js
index 610766f4043f..8aa18f1f22a7 100644
--- a/packages/runner/__snapshots__/runner.mochaEvents.spec.js
+++ b/packages/runner/__snapshots__/runner.mochaEvents.spec.js
@@ -15,7 +15,8 @@ exports['src/cypress/runner tests finish with correct state hook failures fail i
"root": true,
"type": "suite",
"file": "relative/path/to/spec.js",
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -28,7 +29,8 @@ exports['src/cypress/runner tests finish with correct state hook failures fail i
"type": "suite",
"file": null,
"invocationDetails": "{Object 8}",
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -44,7 +46,8 @@ exports['src/cypress/runner tests finish with correct state hook failures fail i
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -60,7 +63,8 @@ exports['src/cypress/runner tests finish with correct state hook failures fail i
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -86,7 +90,8 @@ exports['src/cypress/runner tests finish with correct state hook failures fail i
"originalTitle": "\"before all\" hook",
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
},
{
"message": "[error message]",
@@ -106,7 +111,8 @@ exports['src/cypress/runner tests finish with correct state hook failures fail i
"type": "suite",
"file": null,
"invocationDetails": "{Object 8}",
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -144,7 +150,8 @@ exports['src/cypress/runner tests finish with correct state hook failures fail i
"invocationDetails": "{Object 8}",
"final": true,
"currentRetry": 0,
- "retries": 0
+ "retries": 0,
+ "_slow": 10000
}
],
[
@@ -183,7 +190,8 @@ exports['src/cypress/runner tests finish with correct state hook failures fail i
"invocationDetails": "{Object 8}",
"final": true,
"currentRetry": 0,
- "retries": 0
+ "retries": 0,
+ "_slow": 10000
}
],
[
@@ -195,7 +203,8 @@ exports['src/cypress/runner tests finish with correct state hook failures fail i
"root": true,
"type": "suite",
"file": "relative/path/to/spec.js",
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -224,7 +233,8 @@ exports['src/cypress/runner tests finish with correct state hook failures fail i
"root": true,
"type": "suite",
"file": "relative/path/to/spec.js",
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -237,7 +247,8 @@ exports['src/cypress/runner tests finish with correct state hook failures fail i
"type": "suite",
"file": null,
"invocationDetails": "{Object 8}",
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -252,7 +263,8 @@ exports['src/cypress/runner tests finish with correct state hook failures fail i
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -268,7 +280,8 @@ exports['src/cypress/runner tests finish with correct state hook failures fail i
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -284,7 +297,8 @@ exports['src/cypress/runner tests finish with correct state hook failures fail i
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -310,7 +324,8 @@ exports['src/cypress/runner tests finish with correct state hook failures fail i
"originalTitle": "\"before each\" hook",
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
},
{
"message": "[error message]",
@@ -355,7 +370,8 @@ exports['src/cypress/runner tests finish with correct state hook failures fail i
"invocationDetails": "{Object 8}",
"final": true,
"currentRetry": 0,
- "retries": 0
+ "retries": 0,
+ "_slow": 10000
}
],
[
@@ -368,7 +384,8 @@ exports['src/cypress/runner tests finish with correct state hook failures fail i
"type": "suite",
"file": null,
"invocationDetails": "{Object 8}",
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -407,7 +424,8 @@ exports['src/cypress/runner tests finish with correct state hook failures fail i
"invocationDetails": "{Object 8}",
"final": true,
"currentRetry": 0,
- "retries": 0
+ "retries": 0,
+ "_slow": 10000
}
],
[
@@ -419,7 +437,8 @@ exports['src/cypress/runner tests finish with correct state hook failures fail i
"root": true,
"type": "suite",
"file": "relative/path/to/spec.js",
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -448,7 +467,8 @@ exports['src/cypress/runner tests finish with correct state hook failures fail i
"root": true,
"type": "suite",
"file": "relative/path/to/spec.js",
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -461,7 +481,8 @@ exports['src/cypress/runner tests finish with correct state hook failures fail i
"type": "suite",
"file": null,
"invocationDetails": "{Object 8}",
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -476,7 +497,8 @@ exports['src/cypress/runner tests finish with correct state hook failures fail i
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -492,7 +514,8 @@ exports['src/cypress/runner tests finish with correct state hook failures fail i
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -508,7 +531,8 @@ exports['src/cypress/runner tests finish with correct state hook failures fail i
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -534,7 +558,8 @@ exports['src/cypress/runner tests finish with correct state hook failures fail i
"originalTitle": "\"after each\" hook",
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
},
{
"message": "[error message]",
@@ -583,7 +608,8 @@ exports['src/cypress/runner tests finish with correct state hook failures fail i
"invocationDetails": "{Object 8}",
"final": true,
"currentRetry": 0,
- "retries": 0
+ "retries": 0,
+ "_slow": 10000
}
],
[
@@ -596,7 +622,8 @@ exports['src/cypress/runner tests finish with correct state hook failures fail i
"type": "suite",
"file": null,
"invocationDetails": "{Object 8}",
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -639,7 +666,8 @@ exports['src/cypress/runner tests finish with correct state hook failures fail i
"invocationDetails": "{Object 8}",
"final": true,
"currentRetry": 0,
- "retries": 0
+ "retries": 0,
+ "_slow": 10000
}
],
[
@@ -651,7 +679,8 @@ exports['src/cypress/runner tests finish with correct state hook failures fail i
"root": true,
"type": "suite",
"file": "relative/path/to/spec.js",
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -680,7 +709,8 @@ exports['src/cypress/runner tests finish with correct state hook failures fail i
"root": true,
"type": "suite",
"file": "relative/path/to/spec.js",
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -693,7 +723,8 @@ exports['src/cypress/runner tests finish with correct state hook failures fail i
"type": "suite",
"file": null,
"invocationDetails": "{Object 8}",
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -708,7 +739,8 @@ exports['src/cypress/runner tests finish with correct state hook failures fail i
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -724,7 +756,8 @@ exports['src/cypress/runner tests finish with correct state hook failures fail i
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -750,7 +783,8 @@ exports['src/cypress/runner tests finish with correct state hook failures fail i
"invocationDetails": "{Object 8}",
"final": true,
"currentRetry": 0,
- "retries": 0
+ "retries": 0,
+ "_slow": 10000
}
],
[
@@ -776,7 +810,8 @@ exports['src/cypress/runner tests finish with correct state hook failures fail i
"invocationDetails": "{Object 8}",
"final": true,
"currentRetry": 0,
- "retries": 0
+ "retries": 0,
+ "_slow": 10000
}
],
[
@@ -803,7 +838,8 @@ exports['src/cypress/runner tests finish with correct state hook failures fail i
"invocationDetails": "{Object 8}",
"final": true,
"currentRetry": 0,
- "retries": 0
+ "retries": 0,
+ "_slow": 10000
}
],
[
@@ -818,7 +854,8 @@ exports['src/cypress/runner tests finish with correct state hook failures fail i
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -834,7 +871,8 @@ exports['src/cypress/runner tests finish with correct state hook failures fail i
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -850,7 +888,8 @@ exports['src/cypress/runner tests finish with correct state hook failures fail i
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -876,7 +915,8 @@ exports['src/cypress/runner tests finish with correct state hook failures fail i
"originalTitle": "\"after all\" hook",
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
},
{
"message": "[error message]",
@@ -925,7 +965,8 @@ exports['src/cypress/runner tests finish with correct state hook failures fail i
"invocationDetails": "{Object 8}",
"final": true,
"currentRetry": 0,
- "retries": 0
+ "retries": 0,
+ "_slow": 10000
}
],
[
@@ -938,7 +979,8 @@ exports['src/cypress/runner tests finish with correct state hook failures fail i
"type": "suite",
"file": null,
"invocationDetails": "{Object 8}",
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -981,7 +1023,8 @@ exports['src/cypress/runner tests finish with correct state hook failures fail i
"invocationDetails": "{Object 8}",
"final": true,
"currentRetry": 0,
- "retries": 0
+ "retries": 0,
+ "_slow": 10000
}
],
[
@@ -993,7 +1036,8 @@ exports['src/cypress/runner tests finish with correct state hook failures fail i
"root": true,
"type": "suite",
"file": "relative/path/to/spec.js",
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -1022,7 +1066,8 @@ exports['src/cypress/runner tests finish with correct state mocha grep fail with
"root": true,
"type": "suite",
"file": "relative/path/to/spec.js",
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -1035,7 +1080,8 @@ exports['src/cypress/runner tests finish with correct state mocha grep fail with
"type": "suite",
"file": null,
"invocationDetails": "{Object 8}",
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -1051,7 +1097,8 @@ exports['src/cypress/runner tests finish with correct state mocha grep fail with
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -1067,7 +1114,8 @@ exports['src/cypress/runner tests finish with correct state mocha grep fail with
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -1084,7 +1132,8 @@ exports['src/cypress/runner tests finish with correct state mocha grep fail with
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -1135,7 +1184,8 @@ exports['src/cypress/runner tests finish with correct state mocha grep fail with
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": 0
+ "retries": 0,
+ "_slow": 10000
}
],
[
@@ -1151,7 +1201,8 @@ exports['src/cypress/runner tests finish with correct state mocha grep fail with
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -1168,7 +1219,8 @@ exports['src/cypress/runner tests finish with correct state mocha grep fail with
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -1228,7 +1280,8 @@ exports['src/cypress/runner tests finish with correct state mocha grep fail with
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": 0
+ "retries": 0,
+ "_slow": 10000
},
{
"message": "[error message]",
@@ -1251,7 +1304,8 @@ exports['src/cypress/runner tests finish with correct state mocha grep fail with
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -1268,7 +1322,8 @@ exports['src/cypress/runner tests finish with correct state mocha grep fail with
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -1284,7 +1339,8 @@ exports['src/cypress/runner tests finish with correct state mocha grep fail with
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -1301,7 +1357,8 @@ exports['src/cypress/runner tests finish with correct state mocha grep fail with
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -1362,7 +1419,8 @@ exports['src/cypress/runner tests finish with correct state mocha grep fail with
"invocationDetails": "{Object 8}",
"final": true,
"currentRetry": 0,
- "retries": 0
+ "retries": 0,
+ "_slow": 10000
}
],
[
@@ -1375,7 +1433,8 @@ exports['src/cypress/runner tests finish with correct state mocha grep fail with
"type": "suite",
"file": null,
"invocationDetails": "{Object 8}",
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -1437,7 +1496,8 @@ exports['src/cypress/runner tests finish with correct state mocha grep fail with
"invocationDetails": "{Object 8}",
"final": true,
"currentRetry": 0,
- "retries": 0
+ "retries": 0,
+ "_slow": 10000
}
],
[
@@ -1449,7 +1509,8 @@ exports['src/cypress/runner tests finish with correct state mocha grep fail with
"root": true,
"type": "suite",
"file": "relative/path/to/spec.js",
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -1478,7 +1539,8 @@ exports['src/cypress/runner tests finish with correct state mocha grep pass with
"root": true,
"type": "suite",
"file": "relative/path/to/spec.js",
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -1491,7 +1553,8 @@ exports['src/cypress/runner tests finish with correct state mocha grep pass with
"type": "suite",
"file": null,
"invocationDetails": "{Object 8}",
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -1507,7 +1570,8 @@ exports['src/cypress/runner tests finish with correct state mocha grep pass with
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -1523,7 +1587,8 @@ exports['src/cypress/runner tests finish with correct state mocha grep pass with
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -1540,7 +1605,8 @@ exports['src/cypress/runner tests finish with correct state mocha grep pass with
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -1591,7 +1657,8 @@ exports['src/cypress/runner tests finish with correct state mocha grep pass with
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": 0
+ "retries": 0,
+ "_slow": 10000
}
],
[
@@ -1607,7 +1674,8 @@ exports['src/cypress/runner tests finish with correct state mocha grep pass with
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -1624,7 +1692,8 @@ exports['src/cypress/runner tests finish with correct state mocha grep pass with
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -1640,7 +1709,8 @@ exports['src/cypress/runner tests finish with correct state mocha grep pass with
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -1657,7 +1727,8 @@ exports['src/cypress/runner tests finish with correct state mocha grep pass with
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -1673,7 +1744,8 @@ exports['src/cypress/runner tests finish with correct state mocha grep pass with
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -1690,7 +1762,8 @@ exports['src/cypress/runner tests finish with correct state mocha grep pass with
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -1744,7 +1817,8 @@ exports['src/cypress/runner tests finish with correct state mocha grep pass with
"invocationDetails": "{Object 8}",
"final": true,
"currentRetry": 0,
- "retries": 0
+ "retries": 0,
+ "_slow": 10000
}
],
[
@@ -1798,7 +1872,8 @@ exports['src/cypress/runner tests finish with correct state mocha grep pass with
"invocationDetails": "{Object 8}",
"final": true,
"currentRetry": 0,
- "retries": 0
+ "retries": 0,
+ "_slow": 10000
}
],
[
@@ -1811,7 +1886,8 @@ exports['src/cypress/runner tests finish with correct state mocha grep pass with
"type": "suite",
"file": null,
"invocationDetails": "{Object 8}",
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -1866,7 +1942,8 @@ exports['src/cypress/runner tests finish with correct state mocha grep pass with
"invocationDetails": "{Object 8}",
"final": true,
"currentRetry": 0,
- "retries": 0
+ "retries": 0,
+ "_slow": 10000
}
],
[
@@ -1878,7 +1955,8 @@ exports['src/cypress/runner tests finish with correct state mocha grep pass with
"root": true,
"type": "suite",
"file": "relative/path/to/spec.js",
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -1940,6 +2018,7 @@ exports['src/cypress/runner other specs screenshots screenshot after failed test
},
"scaled": true,
"blackout": [],
+ "overwrite": false,
"startTime": "1970-01-01T00:00:00.000Z"
}
]
@@ -1962,7 +2041,8 @@ exports['src/cypress/runner mocha events simple single test #1'] = [
"root": true,
"type": "suite",
"file": "relative/path/to/spec.js",
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -1975,7 +2055,8 @@ exports['src/cypress/runner mocha events simple single test #1'] = [
"type": "suite",
"file": null,
"invocationDetails": "{Object 8}",
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -1990,7 +2071,8 @@ exports['src/cypress/runner mocha events simple single test #1'] = [
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -2006,7 +2088,8 @@ exports['src/cypress/runner mocha events simple single test #1'] = [
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -2032,7 +2115,8 @@ exports['src/cypress/runner mocha events simple single test #1'] = [
"invocationDetails": "{Object 8}",
"final": true,
"currentRetry": 0,
- "retries": 0
+ "retries": 0,
+ "_slow": 10000
}
],
[
@@ -2058,7 +2142,8 @@ exports['src/cypress/runner mocha events simple single test #1'] = [
"invocationDetails": "{Object 8}",
"final": true,
"currentRetry": 0,
- "retries": 0
+ "retries": 0,
+ "_slow": 10000
}
],
[
@@ -2071,7 +2156,8 @@ exports['src/cypress/runner mocha events simple single test #1'] = [
"type": "suite",
"file": null,
"invocationDetails": "{Object 8}",
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -2098,7 +2184,8 @@ exports['src/cypress/runner mocha events simple single test #1'] = [
"invocationDetails": "{Object 8}",
"final": true,
"currentRetry": 0,
- "retries": 0
+ "retries": 0,
+ "_slow": 10000
}
],
[
@@ -2110,7 +2197,8 @@ exports['src/cypress/runner mocha events simple single test #1'] = [
"root": true,
"type": "suite",
"file": "relative/path/to/spec.js",
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -2139,7 +2227,8 @@ exports['src/cypress/runner mocha events simple three tests #1'] = [
"root": true,
"type": "suite",
"file": "relative/path/to/spec.js",
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -2152,7 +2241,8 @@ exports['src/cypress/runner mocha events simple three tests #1'] = [
"type": "suite",
"file": null,
"invocationDetails": "{Object 8}",
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -2168,7 +2258,8 @@ exports['src/cypress/runner mocha events simple three tests #1'] = [
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -2184,7 +2275,8 @@ exports['src/cypress/runner mocha events simple three tests #1'] = [
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -2201,7 +2293,8 @@ exports['src/cypress/runner mocha events simple three tests #1'] = [
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -2245,7 +2338,8 @@ exports['src/cypress/runner mocha events simple three tests #1'] = [
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": 0
+ "retries": 0,
+ "_slow": 10000
}
],
[
@@ -2261,7 +2355,8 @@ exports['src/cypress/runner mocha events simple three tests #1'] = [
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -2278,7 +2373,8 @@ exports['src/cypress/runner mocha events simple three tests #1'] = [
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -2294,7 +2390,8 @@ exports['src/cypress/runner mocha events simple three tests #1'] = [
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -2311,7 +2408,8 @@ exports['src/cypress/runner mocha events simple three tests #1'] = [
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -2358,7 +2456,8 @@ exports['src/cypress/runner mocha events simple three tests #1'] = [
"invocationDetails": "{Object 8}",
"final": true,
"currentRetry": 0,
- "retries": 0
+ "retries": 0,
+ "_slow": 10000
}
],
[
@@ -2405,7 +2504,8 @@ exports['src/cypress/runner mocha events simple three tests #1'] = [
"invocationDetails": "{Object 8}",
"final": true,
"currentRetry": 0,
- "retries": 0
+ "retries": 0,
+ "_slow": 10000
}
],
[
@@ -2453,7 +2553,8 @@ exports['src/cypress/runner mocha events simple three tests #1'] = [
"invocationDetails": "{Object 8}",
"final": true,
"currentRetry": 0,
- "retries": 0
+ "retries": 0,
+ "_slow": 10000
}
],
[
@@ -2468,7 +2569,8 @@ exports['src/cypress/runner mocha events simple three tests #1'] = [
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -2485,7 +2587,8 @@ exports['src/cypress/runner mocha events simple three tests #1'] = [
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -2501,7 +2604,8 @@ exports['src/cypress/runner mocha events simple three tests #1'] = [
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -2518,7 +2622,8 @@ exports['src/cypress/runner mocha events simple three tests #1'] = [
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -2535,7 +2640,8 @@ exports['src/cypress/runner mocha events simple three tests #1'] = [
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -2552,7 +2658,8 @@ exports['src/cypress/runner mocha events simple three tests #1'] = [
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -2592,7 +2699,8 @@ exports['src/cypress/runner mocha events simple three tests #1'] = [
"invocationDetails": "{Object 8}",
"final": true,
"currentRetry": 0,
- "retries": 0
+ "retries": 0,
+ "_slow": 10000
}
],
[
@@ -2632,7 +2740,8 @@ exports['src/cypress/runner mocha events simple three tests #1'] = [
"invocationDetails": "{Object 8}",
"final": true,
"currentRetry": 0,
- "retries": 0
+ "retries": 0,
+ "_slow": 10000
}
],
[
@@ -2673,7 +2782,8 @@ exports['src/cypress/runner mocha events simple three tests #1'] = [
"invocationDetails": "{Object 8}",
"final": true,
"currentRetry": 0,
- "retries": 0
+ "retries": 0,
+ "_slow": 10000
}
],
[
@@ -2688,7 +2798,8 @@ exports['src/cypress/runner mocha events simple three tests #1'] = [
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -2705,7 +2816,8 @@ exports['src/cypress/runner mocha events simple three tests #1'] = [
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -2721,7 +2833,8 @@ exports['src/cypress/runner mocha events simple three tests #1'] = [
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -2738,7 +2851,8 @@ exports['src/cypress/runner mocha events simple three tests #1'] = [
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -2755,7 +2869,8 @@ exports['src/cypress/runner mocha events simple three tests #1'] = [
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -2772,7 +2887,8 @@ exports['src/cypress/runner mocha events simple three tests #1'] = [
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -2788,7 +2904,8 @@ exports['src/cypress/runner mocha events simple three tests #1'] = [
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -2805,7 +2922,8 @@ exports['src/cypress/runner mocha events simple three tests #1'] = [
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -2852,7 +2970,8 @@ exports['src/cypress/runner mocha events simple three tests #1'] = [
"invocationDetails": "{Object 8}",
"final": true,
"currentRetry": 0,
- "retries": 0
+ "retries": 0,
+ "_slow": 10000
}
],
[
@@ -2899,7 +3018,8 @@ exports['src/cypress/runner mocha events simple three tests #1'] = [
"invocationDetails": "{Object 8}",
"final": true,
"currentRetry": 0,
- "retries": 0
+ "retries": 0,
+ "_slow": 10000
}
],
[
@@ -2912,7 +3032,8 @@ exports['src/cypress/runner mocha events simple three tests #1'] = [
"type": "suite",
"file": null,
"invocationDetails": "{Object 8}",
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -2960,7 +3081,8 @@ exports['src/cypress/runner mocha events simple three tests #1'] = [
"invocationDetails": "{Object 8}",
"final": true,
"currentRetry": 0,
- "retries": 0
+ "retries": 0,
+ "_slow": 10000
}
],
[
@@ -2972,7 +3094,8 @@ exports['src/cypress/runner mocha events simple three tests #1'] = [
"root": true,
"type": "suite",
"file": "relative/path/to/spec.js",
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
diff --git a/packages/runner/__snapshots__/studio.mochaEvents.spec.js b/packages/runner/__snapshots__/studio.mochaEvents.spec.js
index ebb6612843ce..7f02cccca6c6 100644
--- a/packages/runner/__snapshots__/studio.mochaEvents.spec.js
+++ b/packages/runner/__snapshots__/studio.mochaEvents.spec.js
@@ -15,7 +15,8 @@ exports['studio mocha events only runs a single test by id #1'] = [
"root": true,
"type": "suite",
"file": "relative/path/to/spec.js",
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -28,7 +29,8 @@ exports['studio mocha events only runs a single test by id #1'] = [
"type": "suite",
"file": null,
"invocationDetails": "{Object 8}",
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -43,7 +45,8 @@ exports['studio mocha events only runs a single test by id #1'] = [
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -59,7 +62,8 @@ exports['studio mocha events only runs a single test by id #1'] = [
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -85,7 +89,8 @@ exports['studio mocha events only runs a single test by id #1'] = [
"invocationDetails": "{Object 8}",
"final": true,
"currentRetry": 0,
- "retries": 0
+ "retries": 0,
+ "_slow": 10000
}
],
[
@@ -111,7 +116,8 @@ exports['studio mocha events only runs a single test by id #1'] = [
"invocationDetails": "{Object 8}",
"final": true,
"currentRetry": 0,
- "retries": 0
+ "retries": 0,
+ "_slow": 10000
}
],
[
@@ -124,7 +130,8 @@ exports['studio mocha events only runs a single test by id #1'] = [
"type": "suite",
"file": null,
"invocationDetails": "{Object 8}",
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -151,7 +158,8 @@ exports['studio mocha events only runs a single test by id #1'] = [
"invocationDetails": "{Object 8}",
"final": true,
"currentRetry": 0,
- "retries": 0
+ "retries": 0,
+ "_slow": 10000
}
],
[
@@ -163,7 +171,8 @@ exports['studio mocha events only runs a single test by id #1'] = [
"root": true,
"type": "suite",
"file": "relative/path/to/spec.js",
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -192,7 +201,8 @@ exports['studio mocha events creates a new test when adding to a suite #1'] = [
"root": true,
"type": "suite",
"file": "relative/path/to/spec.js",
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -205,7 +215,8 @@ exports['studio mocha events creates a new test when adding to a suite #1'] = [
"type": "suite",
"file": null,
"invocationDetails": "{Object 8}",
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -219,7 +230,8 @@ exports['studio mocha events creates a new test when adding to a suite #1'] = [
"type": "test",
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -234,7 +246,8 @@ exports['studio mocha events creates a new test when adding to a suite #1'] = [
"wallClockStartedAt": "match.date",
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -259,7 +272,8 @@ exports['studio mocha events creates a new test when adding to a suite #1'] = [
"invocationDetails": "{Object 8}",
"final": true,
"currentRetry": 0,
- "retries": 0
+ "retries": 0,
+ "_slow": 10000
}
],
[
@@ -284,7 +298,8 @@ exports['studio mocha events creates a new test when adding to a suite #1'] = [
"invocationDetails": "{Object 8}",
"final": true,
"currentRetry": 0,
- "retries": 0
+ "retries": 0,
+ "_slow": 10000
}
],
[
@@ -297,7 +312,8 @@ exports['studio mocha events creates a new test when adding to a suite #1'] = [
"type": "suite",
"file": null,
"invocationDetails": "{Object 8}",
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -323,7 +339,8 @@ exports['studio mocha events creates a new test when adding to a suite #1'] = [
"invocationDetails": "{Object 8}",
"final": true,
"currentRetry": 0,
- "retries": 0
+ "retries": 0,
+ "_slow": 10000
}
],
[
@@ -335,7 +352,156 @@ exports['studio mocha events creates a new test when adding to a suite #1'] = [
"root": true,
"type": "suite",
"file": "relative/path/to/spec.js",
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
+ }
+ ],
+ [
+ "mocha",
+ "end",
+ {
+ "end": "match.date"
+ }
+ ]
+]
+
+exports['studio mocha events can add new test to root runnable #1'] = [
+ [
+ "mocha",
+ "start",
+ {
+ "start": "match.date"
+ }
+ ],
+ [
+ "mocha",
+ "suite",
+ {
+ "id": "r1",
+ "title": "",
+ "root": true,
+ "type": "suite",
+ "file": "relative/path/to/spec.js",
+ "retries": -1,
+ "_slow": 10000
+ }
+ ],
+ [
+ "mocha",
+ "test",
+ {
+ "id": "r2",
+ "order": 1,
+ "title": "New Test",
+ "body": "[body]",
+ "type": "test",
+ "currentRetry": 0,
+ "retries": -1,
+ "_slow": 10000
+ }
+ ],
+ [
+ "mocha",
+ "test:before:run",
+ {
+ "id": "r2",
+ "order": 1,
+ "title": "New Test",
+ "body": "[body]",
+ "type": "test",
+ "wallClockStartedAt": "match.date",
+ "currentRetry": 0,
+ "retries": -1,
+ "_slow": 10000
+ }
+ ],
+ [
+ "mocha",
+ "pass",
+ {
+ "id": "r2",
+ "order": 1,
+ "title": "New Test",
+ "state": "passed",
+ "body": "[body]",
+ "type": "test",
+ "duration": "match.number",
+ "wallClockStartedAt": "match.date",
+ "timings": {
+ "lifecycle": "match.number",
+ "test": {
+ "fnDuration": "match.number",
+ "afterFnDuration": "match.number"
+ }
+ },
+ "final": true,
+ "currentRetry": 0,
+ "retries": 0,
+ "_slow": 10000
+ }
+ ],
+ [
+ "mocha",
+ "test end",
+ {
+ "id": "r2",
+ "order": 1,
+ "title": "New Test",
+ "state": "passed",
+ "body": "[body]",
+ "type": "test",
+ "duration": "match.number",
+ "wallClockStartedAt": "match.date",
+ "timings": {
+ "lifecycle": "match.number",
+ "test": {
+ "fnDuration": "match.number",
+ "afterFnDuration": "match.number"
+ }
+ },
+ "final": true,
+ "currentRetry": 0,
+ "retries": 0,
+ "_slow": 10000
+ }
+ ],
+ [
+ "mocha",
+ "test:after:run",
+ {
+ "id": "r2",
+ "order": 1,
+ "title": "New Test",
+ "state": "passed",
+ "body": "[body]",
+ "type": "test",
+ "duration": "match.number",
+ "wallClockStartedAt": "match.date",
+ "wallClockDuration": "match.number",
+ "timings": {
+ "lifecycle": "match.number",
+ "test": {
+ "fnDuration": "match.number",
+ "afterFnDuration": "match.number"
+ }
+ },
+ "final": true,
+ "currentRetry": 0,
+ "retries": 0,
+ "_slow": 10000
+ }
+ ],
+ [
+ "mocha",
+ "suite end",
+ {
+ "id": "r1",
+ "title": "",
+ "root": true,
+ "type": "suite",
+ "file": "relative/path/to/spec.js",
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -364,7 +530,8 @@ exports['studio mocha events hooks runs before hooks and test body but not after
"root": true,
"type": "suite",
"file": "relative/path/to/spec.js",
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -377,7 +544,8 @@ exports['studio mocha events hooks runs before hooks and test body but not after
"type": "suite",
"file": null,
"invocationDetails": "{Object 8}",
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -393,7 +561,8 @@ exports['studio mocha events hooks runs before hooks and test body but not after
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -409,7 +578,8 @@ exports['studio mocha events hooks runs before hooks and test body but not after
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -426,7 +596,8 @@ exports['studio mocha events hooks runs before hooks and test body but not after
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -463,7 +634,8 @@ exports['studio mocha events hooks runs before hooks and test body but not after
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": 0
+ "retries": 0,
+ "_slow": 10000
}
],
[
@@ -479,7 +651,8 @@ exports['studio mocha events hooks runs before hooks and test body but not after
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -496,7 +669,8 @@ exports['studio mocha events hooks runs before hooks and test body but not after
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -536,7 +710,8 @@ exports['studio mocha events hooks runs before hooks and test body but not after
"invocationDetails": "{Object 8}",
"final": true,
"currentRetry": 0,
- "retries": 0
+ "retries": 0,
+ "_slow": 10000
}
],
[
@@ -576,7 +751,8 @@ exports['studio mocha events hooks runs before hooks and test body but not after
"invocationDetails": "{Object 8}",
"final": true,
"currentRetry": 0,
- "retries": 0
+ "retries": 0,
+ "_slow": 10000
}
],
[
@@ -589,7 +765,8 @@ exports['studio mocha events hooks runs before hooks and test body but not after
"type": "suite",
"file": null,
"invocationDetails": "{Object 8}",
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -630,7 +807,8 @@ exports['studio mocha events hooks runs before hooks and test body but not after
"invocationDetails": "{Object 8}",
"final": true,
"currentRetry": 0,
- "retries": 0
+ "retries": 0,
+ "_slow": 10000
}
],
[
@@ -642,7 +820,8 @@ exports['studio mocha events hooks runs before hooks and test body but not after
"root": true,
"type": "suite",
"file": "relative/path/to/spec.js",
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -671,7 +850,8 @@ exports['studio mocha events hooks runs before hooks but not after hooks when ad
"root": true,
"type": "suite",
"file": "relative/path/to/spec.js",
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -684,7 +864,8 @@ exports['studio mocha events hooks runs before hooks but not after hooks when ad
"type": "suite",
"file": null,
"invocationDetails": "{Object 8}",
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -700,7 +881,8 @@ exports['studio mocha events hooks runs before hooks but not after hooks when ad
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -715,7 +897,8 @@ exports['studio mocha events hooks runs before hooks but not after hooks when ad
"wallClockStartedAt": "match.date",
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -732,7 +915,8 @@ exports['studio mocha events hooks runs before hooks but not after hooks when ad
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -768,7 +952,8 @@ exports['studio mocha events hooks runs before hooks but not after hooks when ad
},
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": 0
+ "retries": 0,
+ "_slow": 10000
}
],
[
@@ -784,7 +969,8 @@ exports['studio mocha events hooks runs before hooks but not after hooks when ad
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -801,7 +987,8 @@ exports['studio mocha events hooks runs before hooks but not after hooks when ad
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -840,7 +1027,8 @@ exports['studio mocha events hooks runs before hooks but not after hooks when ad
"invocationDetails": "{Object 8}",
"final": true,
"currentRetry": 0,
- "retries": 0
+ "retries": 0,
+ "_slow": 10000
}
],
[
@@ -879,7 +1067,8 @@ exports['studio mocha events hooks runs before hooks but not after hooks when ad
"invocationDetails": "{Object 8}",
"final": true,
"currentRetry": 0,
- "retries": 0
+ "retries": 0,
+ "_slow": 10000
}
],
[
@@ -892,7 +1081,8 @@ exports['studio mocha events hooks runs before hooks but not after hooks when ad
"type": "suite",
"file": null,
"invocationDetails": "{Object 8}",
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -932,7 +1122,8 @@ exports['studio mocha events hooks runs before hooks but not after hooks when ad
"invocationDetails": "{Object 8}",
"final": true,
"currentRetry": 0,
- "retries": 0
+ "retries": 0,
+ "_slow": 10000
}
],
[
@@ -944,7 +1135,8 @@ exports['studio mocha events hooks runs before hooks but not after hooks when ad
"root": true,
"type": "suite",
"file": "relative/path/to/spec.js",
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -973,7 +1165,8 @@ exports['studio mocha events only test can be extended #1'] = [
"root": true,
"type": "suite",
"file": "relative/path/to/spec.js",
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -986,7 +1179,8 @@ exports['studio mocha events only test can be extended #1'] = [
"type": "suite",
"file": null,
"invocationDetails": "{Object 8}",
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -999,7 +1193,8 @@ exports['studio mocha events only test can be extended #1'] = [
"type": "suite",
"file": null,
"invocationDetails": "{Object 8}",
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -1014,7 +1209,8 @@ exports['studio mocha events only test can be extended #1'] = [
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -1030,7 +1226,8 @@ exports['studio mocha events only test can be extended #1'] = [
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -1056,7 +1253,8 @@ exports['studio mocha events only test can be extended #1'] = [
"invocationDetails": "{Object 8}",
"final": true,
"currentRetry": 0,
- "retries": 0
+ "retries": 0,
+ "_slow": 10000
}
],
[
@@ -1082,7 +1280,8 @@ exports['studio mocha events only test can be extended #1'] = [
"invocationDetails": "{Object 8}",
"final": true,
"currentRetry": 0,
- "retries": 0
+ "retries": 0,
+ "_slow": 10000
}
],
[
@@ -1095,7 +1294,8 @@ exports['studio mocha events only test can be extended #1'] = [
"type": "suite",
"file": null,
"invocationDetails": "{Object 8}",
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -1108,7 +1308,8 @@ exports['studio mocha events only test can be extended #1'] = [
"type": "suite",
"file": null,
"invocationDetails": "{Object 8}",
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -1135,7 +1336,8 @@ exports['studio mocha events only test can be extended #1'] = [
"invocationDetails": "{Object 8}",
"final": true,
"currentRetry": 0,
- "retries": 0
+ "retries": 0,
+ "_slow": 10000
}
],
[
@@ -1147,7 +1349,8 @@ exports['studio mocha events only test can be extended #1'] = [
"root": true,
"type": "suite",
"file": "relative/path/to/spec.js",
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -1176,7 +1379,8 @@ exports['studio mocha events only test can be extended when there are multiple i
"root": true,
"type": "suite",
"file": "relative/path/to/spec.js",
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -1189,7 +1393,8 @@ exports['studio mocha events only test can be extended when there are multiple i
"type": "suite",
"file": null,
"invocationDetails": "{Object 8}",
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -1202,7 +1407,8 @@ exports['studio mocha events only test can be extended when there are multiple i
"type": "suite",
"file": null,
"invocationDetails": "{Object 8}",
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -1217,7 +1423,8 @@ exports['studio mocha events only test can be extended when there are multiple i
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -1233,7 +1440,8 @@ exports['studio mocha events only test can be extended when there are multiple i
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -1259,7 +1467,8 @@ exports['studio mocha events only test can be extended when there are multiple i
"invocationDetails": "{Object 8}",
"final": true,
"currentRetry": 0,
- "retries": 0
+ "retries": 0,
+ "_slow": 10000
}
],
[
@@ -1285,7 +1494,8 @@ exports['studio mocha events only test can be extended when there are multiple i
"invocationDetails": "{Object 8}",
"final": true,
"currentRetry": 0,
- "retries": 0
+ "retries": 0,
+ "_slow": 10000
}
],
[
@@ -1298,7 +1508,8 @@ exports['studio mocha events only test can be extended when there are multiple i
"type": "suite",
"file": null,
"invocationDetails": "{Object 8}",
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -1311,7 +1522,8 @@ exports['studio mocha events only test can be extended when there are multiple i
"type": "suite",
"file": null,
"invocationDetails": "{Object 8}",
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -1338,7 +1550,8 @@ exports['studio mocha events only test can be extended when there are multiple i
"invocationDetails": "{Object 8}",
"final": true,
"currentRetry": 0,
- "retries": 0
+ "retries": 0,
+ "_slow": 10000
}
],
[
@@ -1350,7 +1563,8 @@ exports['studio mocha events only test can be extended when there are multiple i
"root": true,
"type": "suite",
"file": "relative/path/to/spec.js",
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -1379,7 +1593,8 @@ exports['studio mocha events only test can extend a suite that contains an only
"root": true,
"type": "suite",
"file": "relative/path/to/spec.js",
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -1392,7 +1607,8 @@ exports['studio mocha events only test can extend a suite that contains an only
"type": "suite",
"file": null,
"invocationDetails": "{Object 8}",
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -1405,7 +1621,8 @@ exports['studio mocha events only test can extend a suite that contains an only
"type": "suite",
"file": null,
"invocationDetails": "{Object 8}",
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -1419,7 +1636,8 @@ exports['studio mocha events only test can extend a suite that contains an only
"type": "test",
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -1434,7 +1652,8 @@ exports['studio mocha events only test can extend a suite that contains an only
"wallClockStartedAt": "match.date",
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -1459,7 +1678,8 @@ exports['studio mocha events only test can extend a suite that contains an only
"invocationDetails": "{Object 8}",
"final": true,
"currentRetry": 0,
- "retries": 0
+ "retries": 0,
+ "_slow": 10000
}
],
[
@@ -1484,7 +1704,8 @@ exports['studio mocha events only test can extend a suite that contains an only
"invocationDetails": "{Object 8}",
"final": true,
"currentRetry": 0,
- "retries": 0
+ "retries": 0,
+ "_slow": 10000
}
],
[
@@ -1497,7 +1718,8 @@ exports['studio mocha events only test can extend a suite that contains an only
"type": "suite",
"file": null,
"invocationDetails": "{Object 8}",
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -1510,7 +1732,8 @@ exports['studio mocha events only test can extend a suite that contains an only
"type": "suite",
"file": null,
"invocationDetails": "{Object 8}",
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -1536,7 +1759,8 @@ exports['studio mocha events only test can extend a suite that contains an only
"invocationDetails": "{Object 8}",
"final": true,
"currentRetry": 0,
- "retries": 0
+ "retries": 0,
+ "_slow": 10000
}
],
[
@@ -1548,7 +1772,8 @@ exports['studio mocha events only test can extend a suite that contains an only
"root": true,
"type": "suite",
"file": "relative/path/to/spec.js",
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -1577,7 +1802,8 @@ exports['studio mocha events only suite can be added to #1'] = [
"root": true,
"type": "suite",
"file": "relative/path/to/spec.js",
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -1590,7 +1816,8 @@ exports['studio mocha events only suite can be added to #1'] = [
"type": "suite",
"file": null,
"invocationDetails": "{Object 8}",
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -1603,7 +1830,8 @@ exports['studio mocha events only suite can be added to #1'] = [
"type": "suite",
"file": null,
"invocationDetails": "{Object 8}",
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -1617,7 +1845,8 @@ exports['studio mocha events only suite can be added to #1'] = [
"type": "test",
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -1632,7 +1861,8 @@ exports['studio mocha events only suite can be added to #1'] = [
"wallClockStartedAt": "match.date",
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -1657,7 +1887,8 @@ exports['studio mocha events only suite can be added to #1'] = [
"invocationDetails": "{Object 8}",
"final": true,
"currentRetry": 0,
- "retries": 0
+ "retries": 0,
+ "_slow": 10000
}
],
[
@@ -1682,7 +1913,8 @@ exports['studio mocha events only suite can be added to #1'] = [
"invocationDetails": "{Object 8}",
"final": true,
"currentRetry": 0,
- "retries": 0
+ "retries": 0,
+ "_slow": 10000
}
],
[
@@ -1695,7 +1927,8 @@ exports['studio mocha events only suite can be added to #1'] = [
"type": "suite",
"file": null,
"invocationDetails": "{Object 8}",
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -1708,7 +1941,8 @@ exports['studio mocha events only suite can be added to #1'] = [
"type": "suite",
"file": null,
"invocationDetails": "{Object 8}",
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -1734,7 +1968,8 @@ exports['studio mocha events only suite can be added to #1'] = [
"invocationDetails": "{Object 8}",
"final": true,
"currentRetry": 0,
- "retries": 0
+ "retries": 0,
+ "_slow": 10000
}
],
[
@@ -1746,7 +1981,8 @@ exports['studio mocha events only suite can be added to #1'] = [
"root": true,
"type": "suite",
"file": "relative/path/to/spec.js",
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -1775,7 +2011,8 @@ exports['studio mocha events only suite can be added to when there are multiple
"root": true,
"type": "suite",
"file": "relative/path/to/spec.js",
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -1788,7 +2025,8 @@ exports['studio mocha events only suite can be added to when there are multiple
"type": "suite",
"file": null,
"invocationDetails": "{Object 8}",
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -1801,7 +2039,8 @@ exports['studio mocha events only suite can be added to when there are multiple
"type": "suite",
"file": null,
"invocationDetails": "{Object 8}",
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -1815,7 +2054,8 @@ exports['studio mocha events only suite can be added to when there are multiple
"type": "test",
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -1830,7 +2070,8 @@ exports['studio mocha events only suite can be added to when there are multiple
"wallClockStartedAt": "match.date",
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -1855,7 +2096,8 @@ exports['studio mocha events only suite can be added to when there are multiple
"invocationDetails": "{Object 8}",
"final": true,
"currentRetry": 0,
- "retries": 0
+ "retries": 0,
+ "_slow": 10000
}
],
[
@@ -1880,7 +2122,8 @@ exports['studio mocha events only suite can be added to when there are multiple
"invocationDetails": "{Object 8}",
"final": true,
"currentRetry": 0,
- "retries": 0
+ "retries": 0,
+ "_slow": 10000
}
],
[
@@ -1893,7 +2136,8 @@ exports['studio mocha events only suite can be added to when there are multiple
"type": "suite",
"file": null,
"invocationDetails": "{Object 8}",
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -1906,7 +2150,8 @@ exports['studio mocha events only suite can be added to when there are multiple
"type": "suite",
"file": null,
"invocationDetails": "{Object 8}",
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -1932,7 +2177,8 @@ exports['studio mocha events only suite can be added to when there are multiple
"invocationDetails": "{Object 8}",
"final": true,
"currentRetry": 0,
- "retries": 0
+ "retries": 0,
+ "_slow": 10000
}
],
[
@@ -1944,7 +2190,8 @@ exports['studio mocha events only suite can be added to when there are multiple
"root": true,
"type": "suite",
"file": "relative/path/to/spec.js",
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -1973,7 +2220,8 @@ exports['studio mocha events only suite can extend a test within an only suite #
"root": true,
"type": "suite",
"file": "relative/path/to/spec.js",
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -1986,7 +2234,8 @@ exports['studio mocha events only suite can extend a test within an only suite #
"type": "suite",
"file": null,
"invocationDetails": "{Object 8}",
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -1999,7 +2248,8 @@ exports['studio mocha events only suite can extend a test within an only suite #
"type": "suite",
"file": null,
"invocationDetails": "{Object 8}",
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -2014,7 +2264,8 @@ exports['studio mocha events only suite can extend a test within an only suite #
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -2030,7 +2281,8 @@ exports['studio mocha events only suite can extend a test within an only suite #
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -2056,7 +2308,8 @@ exports['studio mocha events only suite can extend a test within an only suite #
"invocationDetails": "{Object 8}",
"final": true,
"currentRetry": 0,
- "retries": 0
+ "retries": 0,
+ "_slow": 10000
}
],
[
@@ -2082,7 +2335,8 @@ exports['studio mocha events only suite can extend a test within an only suite #
"invocationDetails": "{Object 8}",
"final": true,
"currentRetry": 0,
- "retries": 0
+ "retries": 0,
+ "_slow": 10000
}
],
[
@@ -2095,7 +2349,8 @@ exports['studio mocha events only suite can extend a test within an only suite #
"type": "suite",
"file": null,
"invocationDetails": "{Object 8}",
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -2108,7 +2363,8 @@ exports['studio mocha events only suite can extend a test within an only suite #
"type": "suite",
"file": null,
"invocationDetails": "{Object 8}",
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -2135,7 +2391,8 @@ exports['studio mocha events only suite can extend a test within an only suite #
"invocationDetails": "{Object 8}",
"final": true,
"currentRetry": 0,
- "retries": 0
+ "retries": 0,
+ "_slow": 10000
}
],
[
@@ -2147,7 +2404,8 @@ exports['studio mocha events only suite can extend a test within an only suite #
"root": true,
"type": "suite",
"file": "relative/path/to/spec.js",
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -2176,7 +2434,8 @@ exports['studio mocha events only suite can extend a test within an only suite w
"root": true,
"type": "suite",
"file": "relative/path/to/spec.js",
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -2189,7 +2448,8 @@ exports['studio mocha events only suite can extend a test within an only suite w
"type": "suite",
"file": null,
"invocationDetails": "{Object 8}",
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -2202,7 +2462,8 @@ exports['studio mocha events only suite can extend a test within an only suite w
"type": "suite",
"file": null,
"invocationDetails": "{Object 8}",
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -2217,7 +2478,8 @@ exports['studio mocha events only suite can extend a test within an only suite w
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -2233,7 +2495,8 @@ exports['studio mocha events only suite can extend a test within an only suite w
"file": null,
"invocationDetails": "{Object 8}",
"currentRetry": 0,
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -2259,7 +2522,8 @@ exports['studio mocha events only suite can extend a test within an only suite w
"invocationDetails": "{Object 8}",
"final": true,
"currentRetry": 0,
- "retries": 0
+ "retries": 0,
+ "_slow": 10000
}
],
[
@@ -2285,7 +2549,8 @@ exports['studio mocha events only suite can extend a test within an only suite w
"invocationDetails": "{Object 8}",
"final": true,
"currentRetry": 0,
- "retries": 0
+ "retries": 0,
+ "_slow": 10000
}
],
[
@@ -2298,7 +2563,8 @@ exports['studio mocha events only suite can extend a test within an only suite w
"type": "suite",
"file": null,
"invocationDetails": "{Object 8}",
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -2311,7 +2577,8 @@ exports['studio mocha events only suite can extend a test within an only suite w
"type": "suite",
"file": null,
"invocationDetails": "{Object 8}",
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
@@ -2338,148 +2605,8 @@ exports['studio mocha events only suite can extend a test within an only suite w
"invocationDetails": "{Object 8}",
"final": true,
"currentRetry": 0,
- "retries": 0
- }
- ],
- [
- "mocha",
- "suite end",
- {
- "id": "r1",
- "title": "",
- "root": true,
- "type": "suite",
- "file": "relative/path/to/spec.js",
- "retries": -1
- }
- ],
- [
- "mocha",
- "end",
- {
- "end": "match.date"
- }
- ]
-]
-
-exports['studio mocha events can add new test to root runnable #1'] = [
- [
- "mocha",
- "start",
- {
- "start": "match.date"
- }
- ],
- [
- "mocha",
- "suite",
- {
- "id": "r1",
- "title": "",
- "root": true,
- "type": "suite",
- "file": "relative/path/to/spec.js",
- "retries": -1
- }
- ],
- [
- "mocha",
- "test",
- {
- "id": "r2",
- "order": 1,
- "title": "New Test",
- "body": "[body]",
- "type": "test",
- "currentRetry": 0,
- "retries": -1
- }
- ],
- [
- "mocha",
- "test:before:run",
- {
- "id": "r2",
- "order": 1,
- "title": "New Test",
- "body": "[body]",
- "type": "test",
- "wallClockStartedAt": "match.date",
- "currentRetry": 0,
- "retries": -1
- }
- ],
- [
- "mocha",
- "pass",
- {
- "id": "r2",
- "order": 1,
- "title": "New Test",
- "state": "passed",
- "body": "[body]",
- "type": "test",
- "duration": "match.number",
- "wallClockStartedAt": "match.date",
- "timings": {
- "lifecycle": "match.number",
- "test": {
- "fnDuration": "match.number",
- "afterFnDuration": "match.number"
- }
- },
- "final": true,
- "currentRetry": 0,
- "retries": 0
- }
- ],
- [
- "mocha",
- "test end",
- {
- "id": "r2",
- "order": 1,
- "title": "New Test",
- "state": "passed",
- "body": "[body]",
- "type": "test",
- "duration": "match.number",
- "wallClockStartedAt": "match.date",
- "timings": {
- "lifecycle": "match.number",
- "test": {
- "fnDuration": "match.number",
- "afterFnDuration": "match.number"
- }
- },
- "final": true,
- "currentRetry": 0,
- "retries": 0
- }
- ],
- [
- "mocha",
- "test:after:run",
- {
- "id": "r2",
- "order": 1,
- "title": "New Test",
- "state": "passed",
- "body": "[body]",
- "type": "test",
- "duration": "match.number",
- "wallClockStartedAt": "match.date",
- "wallClockDuration": "match.number",
- "timings": {
- "lifecycle": "match.number",
- "test": {
- "fnDuration": "match.number",
- "afterFnDuration": "match.number"
- }
- },
- "final": true,
- "currentRetry": 0,
- "retries": 0
+ "retries": 0,
+ "_slow": 10000
}
],
[
@@ -2491,7 +2618,8 @@ exports['studio mocha events can add new test to root runnable #1'] = [
"root": true,
"type": "suite",
"file": "relative/path/to/spec.js",
- "retries": -1
+ "retries": -1,
+ "_slow": 10000
}
],
[
diff --git a/packages/runner/cypress/fixtures/errors/exceptions_spec.js b/packages/runner/cypress/fixtures/errors/exceptions_spec.js
index ec61175d6b1c..605c9a5091f8 100644
--- a/packages/runner/cypress/fixtures/errors/exceptions_spec.js
+++ b/packages/runner/cypress/fixtures/errors/exceptions_spec.js
@@ -1,6 +1,6 @@
import './setup'
-const outsideError = require('../../../../server/test/support/fixtures/projects/todos/throws-error')
+const outsideError = require('@tooling/system-tests/projects/todos/throws-error')
describe('exception failures', () => {
it('in spec file', () => {
diff --git a/packages/runner/index.d.ts b/packages/runner/index.d.ts
index f310b6a35425..918d244cd9e7 100644
--- a/packages/runner/index.d.ts
+++ b/packages/runner/index.d.ts
@@ -5,3 +5,6 @@
///
///
///
+
+///
+///
diff --git a/packages/runner/src/main.scss.d.ts b/packages/runner/src/main.scss.d.ts
new file mode 100644
index 000000000000..132b232e8959
--- /dev/null
+++ b/packages/runner/src/main.scss.d.ts
@@ -0,0 +1,7 @@
+// This file is automatically generated.
+// Please do not change this file!
+interface CssExports {
+
+}
+export const cssExports: CssExports;
+export default cssExports;
diff --git a/packages/server/README.md b/packages/server/README.md
index 286f09925b1f..85c879d19829 100644
--- a/packages/server/README.md
+++ b/packages/server/README.md
@@ -39,7 +39,6 @@ yarn workspace @packages/server build-prod
* `yarn test-unit` executes unit tests in [`test/unit`](./test/unit)
* `yarn test-integration` executes integration tests in [`test/integration`](./test/integration)
* `yarn test-performance` executes performance tests in [`test/performance`](./test/performance)
-* `yarn test-e2e` executes the large (slow) end to end tests in [`test/e2e`](./test/e2e)
You can also use the `test-watch` command to rerun a test file whenever there is a change:
@@ -47,8 +46,6 @@ You can also use the `test-watch` command to rerun a test file whenever there is
yarn test-watch /test/path/to/spec.js
```
-When running e2e tests, some test projects output verbose logs. To see them run the test with `DEBUG=cypress:e2e` environment variable.
-
### Running individual unit tests
```bashtest-kitchensink
@@ -67,19 +64,9 @@ yarn test test/integration/cli_spec.js
yarn test-integration cli_spec ## shorthand, uses globbing to find spec
```
-### Running individual e2e tests
+### Running e2e/system tests
-```bash
-yarn test
-yarn test test/e2e/1_async_timeouts_spec.js
-## or
-yarn test-e2e async_timeouts ## shorthand, uses globbing to find spec
-```
-
-To keep the browser open after a spec run (for easier debugging and iterating on specs), you can pass the `--no-exit` flag to the e2e test command. Live reloading due to spec changes should also work:
-```sh
-yarn test test/e2e/go_spec.js --browser chrome --no-exit
-```
+> With the addition of Component Testing, `e2e` tests have been renamed to `system-tests` and moved to the [`system-tests`](../../system-tests) directory.
### Updating snaphots
@@ -88,5 +75,4 @@ Prepend `SNAPSHOT_UPDATE=1` to any test command. See [`snap-shot-it` instruction
```bash
SNAPSHOT_UPDATE=1 yarn test test/unit/api_spec.js
SNAPSHOT_UPDATE=1 yarn test test/integration/cli_spec.js
-SNAPSHOT_UPDATE=1 yarn test-e2e async_timeout
```
diff --git a/packages/server/index.d.ts b/packages/server/index.d.ts
index f1bb33865fe2..5b3c15366d63 100644
--- a/packages/server/index.d.ts
+++ b/packages/server/index.d.ts
@@ -4,6 +4,7 @@
///
///
///
+///
///
diff --git a/packages/server/lib/browsers/chrome.ts b/packages/server/lib/browsers/chrome.ts
index ff6dfc62745c..1de4b17b7d18 100644
--- a/packages/server/lib/browsers/chrome.ts
+++ b/packages/server/lib/browsers/chrome.ts
@@ -207,7 +207,7 @@ const _normalizeArgExtensions = function (extPath, args, pluginExtensions, brows
userExtensions = userExtensions.concat(pluginExtensions)
}
- const extensions = [].concat(userExtensions, extPath, pathToTheme)
+ const extensions = ([] as any).concat(userExtensions, extPath, pathToTheme)
args.push(LOAD_EXTENSION + _.compact(extensions).join(','))
diff --git a/packages/server/lib/config.ts b/packages/server/lib/config.ts
index 17aad0a1a06c..4edf8fedc133 100644
--- a/packages/server/lib/config.ts
+++ b/packages/server/lib/config.ts
@@ -17,7 +17,7 @@ import findSystemNode from './util/find_system_node'
const debug = Debug('cypress:server:config')
import { options, breakingOptions } from './config_options'
-import { getProcessEnvVars } from './util/config'
+import { getProcessEnvVars, CYPRESS_SPECIAL_ENV_VARS } from './util/config'
export const RESOLVED_FROM = ['plugin', 'env', 'default', 'runtime', 'config'] as const
@@ -32,18 +32,6 @@ export type ResolvedConfigurationOptions = Partial<{
[x in keyof Cypress.ResolvedConfigOptions]: ResolvedFromConfig
}>
-export const CYPRESS_ENV_PREFIX = 'CYPRESS_'
-
-export const CYPRESS_ENV_PREFIX_LENGTH = 'CYPRESS_'.length
-
-export const CYPRESS_RESERVED_ENV_VARS = [
- 'CYPRESS_INTERNAL_ENV',
-]
-
-export const CYPRESS_SPECIAL_ENV_VARS = [
- 'RECORD_KEY',
-]
-
const dashesOrUnderscoresRe = /^(_-)+/
// takes an array and creates an index object of [keyKey]: [valueKey]
@@ -269,6 +257,11 @@ export function mergeDefaults (config: Record = {}, options: Record
_.defaults(config, defaultValues)
+ // Default values can be functions, in which case they are evaluated
+ // at runtime - for example, slowTestThreshold where the default value
+ // varies between e2e and component testing.
+ config = _.mapValues(config, (value) => (typeof value === 'function' ? value(options) : value))
+
// split out our own app wide env from user env variables
// and delete envFile
config.env = parseEnv(config, options.env, resolved)
@@ -291,7 +284,7 @@ export function mergeDefaults (config: Record = {}, options: Record
config.numTestsKeptInMemory = 0
}
- config = setResolvedConfigValues(config, defaultValues, resolved)
+ config = setResolvedConfigValues(config, defaultValues, resolved, options)
if (config.port) {
config = setUrls(config)
@@ -316,10 +309,10 @@ export function mergeDefaults (config: Record = {}, options: Record
.then(_.partialRight(setNodeBinary, options.onWarning))
}
-export function setResolvedConfigValues (config, defaults, resolved) {
+export function setResolvedConfigValues (config, defaults, resolved, options) {
const obj = _.clone(config)
- obj.resolved = resolveConfigValues(config, defaults, resolved)
+ obj.resolved = resolveConfigValues(config, defaults, resolved, options)
debug('resolved config is %o', obj.resolved.browsers)
return obj
@@ -424,7 +417,7 @@ export function updateWithPluginValues (cfg, overrides) {
// combines the default configuration object with values specified in the
// configuration file like "cypress.json". Values in configuration file
// overwrite the defaults.
-export function resolveConfigValues (config, defaults, resolved = {}) {
+export function resolveConfigValues (config, defaults, resolved = {}, options = {}) {
// pick out only known configuration keys
return _
.chain(config)
@@ -448,7 +441,9 @@ export function resolveConfigValues (config, defaults, resolved = {}) {
return source(r)
}
- if (!(!_.isEqual(config[key], defaults[key]) && key !== 'browsers')) {
+ const defaultValue = typeof defaults[key] === 'function' ? defaults[key](options) : defaults[key]
+
+ if (!(!_.isEqual(config[key], defaultValue) && key !== 'browsers')) {
// "browsers" list is special, since it is dynamic by default
// and can only be ovewritten via plugins file
return source('default')
diff --git a/packages/server/lib/config_options.ts b/packages/server/lib/config_options.ts
index 2c02b10dada7..8a39f52b4b18 100644
--- a/packages/server/lib/config_options.ts
+++ b/packages/server/lib/config_options.ts
@@ -216,6 +216,10 @@ export const options = [
defaultValue: 'cypress/screenshots',
validation: v.isStringOrFalse,
isFolder: true,
+ }, {
+ name: 'slowTestThreshold',
+ defaultValue: (options: Record) => options.testingType === 'component' ? 250 : 10000,
+ validation: v.isNumber,
}, {
name: 'socketId',
defaultValue: null,
diff --git a/packages/server/lib/errors.js b/packages/server/lib/errors.js
index 8574c0bd1984..3191983ac81d 100644
--- a/packages/server/lib/errors.js
+++ b/packages/server/lib/errors.js
@@ -705,7 +705,7 @@ const getMsgByType = function (type, arg1 = {}, arg2, arg3) {
return stripIndent`
There is both a \`${arg2}\` and a \`${arg3}\` at the location below:
${arg1}
-
+
Cypress does not know which one to read for config. Please remove one of the two and try again.
`
case 'CONFIG_FILE_NOT_FOUND':
@@ -988,7 +988,7 @@ const getMsgByType = function (type, arg1 = {}, arg2, arg3) {
`
case 'CT_NO_DEV_START_EVENT':
return stripIndent`\
- To run component-testing, cypress needs the \`dev-server:start\` event.
+ To run component-testing, cypress needs the \`dev-server:start\` event.
Implement it by adding a \`on('dev-server:start', () => startDevServer())\` call in your pluginsFile.
${arg1 ?
diff --git a/packages/server/lib/modes/record.js b/packages/server/lib/modes/record.js
index cf38fe303ff0..7fae7dd0dcf9 100644
--- a/packages/server/lib/modes/record.js
+++ b/packages/server/lib/modes/record.js
@@ -32,7 +32,7 @@ const logException = (err) => {
// dont yell about any errors either
const runningInternalTests = () => {
- return env.get('CYPRESS_INTERNAL_E2E_TESTS') === '1'
+ return env.get('CYPRESS_INTERNAL_SYSTEM_TESTS') === '1'
}
const haveProjectIdAndKeyButNoRecordOption = (projectId, options) => {
diff --git a/packages/server/lib/modes/run.js b/packages/server/lib/modes/run.js
index 145847dffd99..fee65362da7a 100644
--- a/packages/server/lib/modes/run.js
+++ b/packages/server/lib/modes/run.js
@@ -608,9 +608,22 @@ const openProjectCreate = (projectRoot, socketId, args) => {
return openProject.create(projectRoot, args, options)
}
-const createAndOpenProject = async function (socketId, options) {
+async function checkAccess (folderPath) {
+ return fs.access(folderPath, fs.W_OK).catch((err) => {
+ if (['EACCES', 'EPERM'].includes(err.code)) {
+ // we cannot write due to folder permissions
+ return errors.warning('FOLDER_NOT_WRITABLE', folderPath)
+ }
+
+ throw err
+ })
+}
+
+const createAndOpenProject = async (socketId, options) => {
const { projectRoot, projectId } = options
+ await checkAccess(projectRoot)
+
return openProjectCreate(projectRoot, socketId, options)
.then((open_project) => open_project.getProject())
.then((project) => {
diff --git a/packages/server/lib/repl.js b/packages/server/lib/repl.js
deleted file mode 100644
index 9ad0e26ea63c..000000000000
--- a/packages/server/lib/repl.js
+++ /dev/null
@@ -1,54 +0,0 @@
-require('./environment')
-
-const _ = require('lodash')
-const path = require('path')
-const repl = require('repl')
-const history = require('repl.history')
-const browsers = require('./browsers')
-const Fixtures = require('../test/support/helpers/fixtures')
-
-const replServer = repl.start({
- prompt: '> ',
-})
-
-let setContext
-
-// preserve the repl history
-history(replServer, path.join(process.env.HOME, '.node_history'))
-
-const req = replServer.context.require
-
-const getObj = function () {
- const deploy = require('../deploy')
-
- return {
- lodash: _,
- deploy,
- darwin: deploy.getPlatform('darwin'),
- linux: deploy.getPlatform('linux'),
- Fixtures,
- browsers,
-
- reload () {
- let key
-
- for (key in require.cache) {
- delete require.cache[key]
- }
-
- for (key in req.cache) {
- delete req.cache[key]
- }
-
- return setContext()
- },
-
- r (file) {
- return require(file)
- },
- }
-};
-
-(setContext = () => {
- return _.extend(replServer.context, getObj())
-})()
diff --git a/packages/server/lib/reporter.js b/packages/server/lib/reporter.js
index f4b09fad4f2c..5c5b6135c87e 100644
--- a/packages/server/lib/reporter.js
+++ b/packages/server/lib/reporter.js
@@ -8,6 +8,7 @@ const Mocha = require('mocha-7.0.1')
const mochaReporters = require('mocha-7.0.1/lib/reporters')
const mochaCreateStatsCollector = require('mocha-7.0.1/lib/stats-collector')
const mochaColor = mochaReporters.Base.color
+const mochaSymbols = mochaReporters.Base.symbols
const debug = require('debug')('cypress:server:reporter')
const Promise = require('bluebird')
@@ -293,6 +294,34 @@ class Reporter {
reporterOptions: this.reporterOptions,
})
+ if (this.reporterName === 'spec') {
+ // Unfortunately the reporter doesn't expose its indentation logic, so we have to replicate it here
+ let indents = 0
+
+ this.runner.on('suite', function (suite) {
+ ++indents
+ })
+
+ this.runner.on('suite end', function () {
+ --indents
+ })
+
+ // Override the default reporter to always show test timing even for fast tests
+ // and display slow ones in yellow rather than red
+ this.runner._events.pass[2] = function (test) {
+ const durationColor = test.speed === 'slow' ? 'medium' : 'fast'
+ const fmt =
+ Array(indents).join(' ') +
+ mochaColor('checkmark', ` ${ mochaSymbols.ok}`) +
+ mochaColor('pass', ' %s') +
+ mochaColor(durationColor, ' (%dms)')
+
+ // Log: `✓ test title (300ms)` when a test passes
+ // eslint-disable-next-line no-console
+ console.log(fmt, test.title, test.duration)
+ }
+ }
+
this.runner.ignoreLeaks = true
}
diff --git a/packages/server/lib/scaffold.js b/packages/server/lib/scaffold.js
index 7f29e59608ef..a65510bd4f29 100644
--- a/packages/server/lib/scaffold.js
+++ b/packages/server/lib/scaffold.js
@@ -7,6 +7,7 @@ const { fs } = require('./util/fs')
const glob = require('./util/glob')
const cwd = require('./cwd')
const debug = require('debug')('cypress:server:scaffold')
+const errors = require('./errors')
const { isEmpty } = require('ramda')
const { isDefault } = require('./util/config')
@@ -232,7 +233,6 @@ module.exports = {
plugins (folder, config) {
debug(`plugins folder ${folder}`)
-
// skip if user has explicitly set pluginsFile
if (!config.pluginsFile || !isDefault(config, 'pluginsFile')) {
return Promise.resolve()
@@ -254,6 +254,12 @@ module.exports = {
return this._assertInFileTree(dest, config)
.then(() => {
return fs.copyAsync(src, dest)
+ }).catch((error) => {
+ if (error.code === 'EACCES') {
+ error = errors.get('ERROR_WRITING_FILE', dest, error)
+ }
+
+ throw error
})
},
diff --git a/packages/server/lib/util/config.ts b/packages/server/lib/util/config.ts
index 06bae0dbae87..0bb4c8e7eec5 100644
--- a/packages/server/lib/util/config.ts
+++ b/packages/server/lib/util/config.ts
@@ -1,11 +1,18 @@
import _ from 'lodash'
-import {
- CYPRESS_ENV_PREFIX,
- CYPRESS_ENV_PREFIX_LENGTH,
- CYPRESS_RESERVED_ENV_VARS,
-} from '../config'
import { coerce } from './coerce'
+export const CYPRESS_ENV_PREFIX = 'CYPRESS_'
+
+export const CYPRESS_ENV_PREFIX_LENGTH = 'CYPRESS_'.length
+
+export const CYPRESS_RESERVED_ENV_VARS = [
+ 'CYPRESS_INTERNAL_ENV',
+]
+
+export const CYPRESS_SPECIAL_ENV_VARS = [
+ 'RECORD_KEY',
+]
+
export const isDefault = (config: Record, prop: string) => {
return config.resolved[prop].from === 'default'
}
diff --git a/packages/server/lib/video_capture.ts b/packages/server/lib/video_capture.ts
index bccd7b4be876..27a0a8eaf3ce 100644
--- a/packages/server/lib/video_capture.ts
+++ b/packages/server/lib/video_capture.ts
@@ -297,6 +297,7 @@ export async function process (name, cname, videoCompression, ffmpegchaptersConf
const outputOptions = [
'-preset fast',
`-crf ${videoCompression}`,
+ '-pix_fmt yuv420p',
]
if (addChaptersMeta) {
diff --git a/packages/server/package.json b/packages/server/package.json
index 9988d819ff7b..2e9b5cd098a8 100644
--- a/packages/server/package.json
+++ b/packages/server/package.json
@@ -13,7 +13,6 @@
"repl": "node repl.js",
"start": "node ../../scripts/cypress open --dev --global",
"test": "node ./test/scripts/run.js",
- "test-e2e": "node ./test/scripts/run.js --glob-in-dir=test/e2e",
"test-integration": "node ./test/scripts/run.js --glob-in-dir=test/integration",
"test-performance": "node ./test/scripts/run.js --glob-in-dir=test/performance",
"test-unit": "node ./test/scripts/run.js --glob-in-dir=test/unit",
@@ -143,6 +142,7 @@
"@packages/root": "0.0.0-development",
"@packages/socket": "0.0.0-development",
"@packages/ts": "0.0.0-development",
+ "@tooling/system-tests": "0.0.0-development",
"@types/chai-as-promised": "7.1.2",
"@types/chrome": "0.0.101",
"@types/http-proxy": "1.17.4",
diff --git a/packages/server/repl.js b/packages/server/repl.js
deleted file mode 100644
index b7233d76d87f..000000000000
--- a/packages/server/repl.js
+++ /dev/null
@@ -1,2 +0,0 @@
-require('@packages/ts/register')
-require('./lib/repl')
diff --git a/packages/server/test/integration/cypress_spec.js b/packages/server/test/integration/cypress_spec.js
index 0fdb877aa463..7a4d14fff8e6 100644
--- a/packages/server/test/integration/cypress_spec.js
+++ b/packages/server/test/integration/cypress_spec.js
@@ -9,7 +9,7 @@ const http = require('http')
const Promise = require('bluebird')
const electron = require('electron')
const commitInfo = require('@cypress/commit-info')
-const Fixtures = require('../support/helpers/fixtures')
+const Fixtures = require('@tooling/system-tests/lib/fixtures')
const snapshot = require('snap-shot-it')
const stripAnsi = require('strip-ansi')
const debug = require('debug')('test')
@@ -108,6 +108,7 @@ describe('lib/cypress', () => {
require('mocha-banner').register()
beforeEach(function () {
+ process.chdir(previousCwd)
this.timeout(8000)
cache.__removeSync()
@@ -839,17 +840,18 @@ describe('lib/cypress', () => {
// also make sure we test the rest of the integration functionality
// for headed errors! <-- not unit tests, but integration tests!
it('logs error and exits when project folder has read permissions only and cannot write cypress.json', function () {
- // test disabled if running as root - root can write all things at all times
+ // test disabled if running as root (such as inside docker) - root can write all things at all times
if (process.geteuid() === 0) {
return
}
const permissionsPath = path.resolve('./permissions')
-
const cypressJson = path.join(permissionsPath, 'cypress.json')
- return fs.outputFileAsync(cypressJson, '{}')
+ return fs.mkdirAsync(permissionsPath)
.then(() => {
+ return fs.outputFileAsync(cypressJson, '{}')
+ }).then(() => {
// read only
return fs.chmodAsync(permissionsPath, '555')
}).then(() => {
@@ -857,9 +859,9 @@ describe('lib/cypress', () => {
}).then(() => {
return fs.chmodAsync(permissionsPath, '777')
}).then(() => {
- return fs.removeAsync(permissionsPath)
- }).then(() => {
- this.expectExitWithErr('ERROR_READING_FILE', path.join(permissionsPath, 'cypress.json'))
+ this.expectExitWithErr('ERROR_WRITING_FILE', permissionsPath)
+ }).finally(() => {
+ return fs.rmdir(permissionsPath, { recursive: true })
})
})
diff --git a/packages/server/test/integration/http_requests_spec.js b/packages/server/test/integration/http_requests_spec.js
index 96a4de7a4441..996aef1b44d8 100644
--- a/packages/server/test/integration/http_requests_spec.js
+++ b/packages/server/test/integration/http_requests_spec.js
@@ -30,7 +30,7 @@ const resolve = require(`${root}lib/util/resolve`)
const { fs } = require(`${root}lib/util/fs`)
const glob = require(`${root}lib/util/glob`)
const CacheBuster = require(`${root}lib/util/cache_buster`)
-const Fixtures = require(`${root}test/support/helpers/fixtures`)
+const Fixtures = require('@tooling/system-tests/lib/fixtures')
/**
* @type {import('@packages/resolve-dist')}
*/
diff --git a/packages/server/test/integration/plugins_spec.js b/packages/server/test/integration/plugins_spec.js
index b32418a05823..a15d4fd17e27 100644
--- a/packages/server/test/integration/plugins_spec.js
+++ b/packages/server/test/integration/plugins_spec.js
@@ -1,7 +1,7 @@
require('../spec_helper')
const plugins = require('../../lib/plugins')
-const Fixtures = require('../support/helpers/fixtures')
+const Fixtures = require('@tooling/system-tests/lib/fixtures')
const pluginsFile = Fixtures.projectPath('plugin-before-browser-launch-deprecation/cypress/plugins/index.js')
diff --git a/packages/server/test/integration/server_spec.js b/packages/server/test/integration/server_spec.js
index 9cad9400ec89..a495d8c9b8a5 100644
--- a/packages/server/test/integration/server_spec.js
+++ b/packages/server/test/integration/server_spec.js
@@ -10,7 +10,7 @@ const config = require(`${root}lib/config`)
const { ServerE2E } = require(`${root}lib/server-e2e`)
const { SocketE2E } = require(`${root}lib/socket-e2e`)
const { SpecsStore } = require(`${root}/lib/specs-store`)
-const Fixtures = require(`${root}test/support/helpers/fixtures`)
+const Fixtures = require('@tooling/system-tests/lib/fixtures')
const { createRoutes } = require(`${root}lib/routes`)
const s3StaticHtmlUrl = 'https://s3.amazonaws.com/internal-test-runner-assets.cypress.io/index.html'
diff --git a/packages/server/test/integration/websockets_spec.js b/packages/server/test/integration/websockets_spec.js
index 915ac4c9de58..645cf1a04559 100644
--- a/packages/server/test/integration/websockets_spec.js
+++ b/packages/server/test/integration/websockets_spec.js
@@ -12,7 +12,7 @@ const { ServerE2E } = require(`${root}lib/server-e2e`)
const { SocketE2E } = require(`${root}lib/socket-e2e`)
const { SpecsStore } = require(`${root}/lib/specs-store`)
const { Automation } = require(`${root}lib/automation`)
-const Fixtures = require(`${root}/test/support/helpers/fixtures`)
+const Fixtures = require('@tooling/system-tests/lib/fixtures')
const { createRoutes } = require(`${root}lib/routes`)
const cyPort = 12345
diff --git a/packages/server/test/performance/cy_visit_performance_spec.js b/packages/server/test/performance/cy_visit_performance_spec.js
index b57342092284..8d6c2c620d1a 100644
--- a/packages/server/test/performance/cy_visit_performance_spec.js
+++ b/packages/server/test/performance/cy_visit_performance_spec.js
@@ -1,10 +1,10 @@
-const e2e = require('../support/helpers/e2e').default
+const systemTests = require('@tooling/system-tests/lib/system-tests').default
// https://github.com/cypress-io/cypress/issues/4313
context('cy.visit performance tests', function () {
this.retries(3)
- e2e.setup({
+ systemTests.setup({
servers: {
port: 3434,
onServer (app) {
@@ -27,7 +27,7 @@ context('cy.visit performance tests', function () {
return stdout.replace(/^\d+%\s+of visits to [^\s]+ finished in less than.*$/gm, 'histogram line')
}
- e2e.it('passes', {
+ systemTests.it('passes', {
onStdout,
spec: 'fast_visit_spec.js',
snapshot: true,
diff --git a/packages/server/test/performance/proxy_performance_spec.js b/packages/server/test/performance/proxy_performance_spec.js
index 9762623d9bed..6a281b2a8e69 100644
--- a/packages/server/test/performance/proxy_performance_spec.js
+++ b/packages/server/test/performance/proxy_performance_spec.js
@@ -9,7 +9,7 @@ const { expect } = require('chai')
const debug = require('debug')('test:proxy-performance')
const DebuggingProxy = require('@cypress/debugging-proxy')
const HarCapturer = require('chrome-har-capturer')
-const performance = require('../support/helpers/performance')
+const performance = require('@tooling/system-tests/lib/performance')
const Promise = require('bluebird')
const sanitizeFilename = require('sanitize-filename')
const { createRoutes } = require(`${root}lib/routes`)
diff --git a/packages/server/test/support/fixtures/projects/system-node/cypress/integration/spec.js b/packages/server/test/support/fixtures/projects/system-node/cypress/integration/spec.js
deleted file mode 100644
index 26153f9bffc8..000000000000
--- a/packages/server/test/support/fixtures/projects/system-node/cypress/integration/spec.js
+++ /dev/null
@@ -1,5 +0,0 @@
-it('has expected resolvedNodePath and resolvedNodeVersion', () => {
- expect(Cypress.config('nodeVersion')).to.eq('system')
- expect(Cypress.config('resolvedNodePath')).to.eq(Cypress.env('expectedNodePath'))
- expect(Cypress.config('resolvedNodeVersion')).to.eq(Cypress.env('expectedNodeVersion'))
-})
diff --git a/packages/server/test/support/helpers/gzip.js b/packages/server/test/support/helpers/gzip.js
deleted file mode 100644
index 9fd00af03462..000000000000
--- a/packages/server/test/support/helpers/gzip.js
+++ /dev/null
@@ -1,15 +0,0 @@
-const fs = require('fs')
-const zlib = require('zlib')
-const path = require('path')
-
-const src = path.join('test/support/fixtures/projects/e2e/static/FiraSans-Regular.woff')
-const dest = path.join('test/support/fixtures/projects/e2e/static/FiraSans-Regular.woff.gz')
-
-fs.readFile(src, (err, buf) => {
- zlib.gzip(buf, (err, zipped) => {
- console.log(dest)
- fs.writeFile(dest, zipped, (err, bytes) => {
- console.log(err, bytes)
- })
- })
-})
diff --git a/packages/server/test/unit/browsers/browsers_spec.js b/packages/server/test/unit/browsers/browsers_spec.js
index 96235f1b1870..f6fa070ba35b 100644
--- a/packages/server/test/unit/browsers/browsers_spec.js
+++ b/packages/server/test/unit/browsers/browsers_spec.js
@@ -5,7 +5,7 @@ const utils = require(`${root}../lib/browsers/utils`)
const snapshot = require('snap-shot-it')
const normalizeBrowsers = (message) => {
- return message.replace(/(found are: ).*/, '$1chrome, firefox, electron')
+ return message.replace(/(found on your system are:)(?:\n- .*)*/, '$1\n- chrome\n- firefox\n- electron')
}
// When we added component testing mode, we added the option for electron to be omitted
diff --git a/packages/server/test/unit/cache_spec.js b/packages/server/test/unit/cache_spec.js
index b445df08dc85..8372b89770bf 100644
--- a/packages/server/test/unit/cache_spec.js
+++ b/packages/server/test/unit/cache_spec.js
@@ -4,7 +4,7 @@ require(`${root}lib/cwd`)
const Promise = require('bluebird')
const cache = require(`${root}lib/cache`)
const { fs } = require(`${root}lib/util/fs`)
-const Fixtures = require('../support/helpers/fixtures')
+const Fixtures = require('@tooling/system-tests/lib/fixtures')
describe('lib/cache', () => {
beforeEach(() => {
diff --git a/packages/server/test/unit/config_spec.js b/packages/server/test/unit/config_spec.js
index 0d35983df67d..6805ce8badb4 100644
--- a/packages/server/test/unit/config_spec.js
+++ b/packages/server/test/unit/config_spec.js
@@ -1,7 +1,6 @@
require('../spec_helper')
const _ = require('lodash')
-const path = require('path')
const R = require('ramda')
const debug = require('debug')('test')
const config = require(`${root}lib/config`)
@@ -9,6 +8,7 @@ const errors = require(`${root}lib/errors`)
const configUtil = require(`${root}lib/util/config`)
const findSystemNode = require(`${root}lib/util/find_system_node`)
const scaffold = require(`${root}lib/scaffold`)
+const Fixtures = require('@tooling/system-tests/lib/fixtures')
let settings = require(`${root}lib/util/settings`)
describe('lib/config', () => {
@@ -16,6 +16,8 @@ describe('lib/config', () => {
this.env = process.env
process.env = _.omit(process.env, 'CYPRESS_DEBUG')
+
+ Fixtures.scaffold()
})
afterEach(function () {
@@ -1077,6 +1079,14 @@ describe('lib/config', () => {
}
})
+ it('slowTestThreshold=10000 for e2e', function () {
+ return this.defaults('slowTestThreshold', 10000, {}, { testingType: 'e2e' })
+ })
+
+ it('slowTestThreshold=250 for component', function () {
+ return this.defaults('slowTestThreshold', 250, {}, { testingType: 'component' })
+ })
+
it('port=null', function () {
return this.defaults('port', null)
})
@@ -1460,6 +1470,7 @@ describe('lib/config', () => {
retries: { value: { runMode: 0, openMode: 0 }, from: 'default' },
screenshotOnRunFailure: { value: true, from: 'default' },
screenshotsFolder: { value: 'cypress/screenshots', from: 'default' },
+ slowTestThreshold: { value: 10000, from: 'default' },
supportFile: { value: 'cypress/support', from: 'default' },
taskTimeout: { value: 60000, from: 'default' },
testFiles: { value: '**/*.*', from: 'default' },
@@ -1566,6 +1577,7 @@ describe('lib/config', () => {
retries: { value: { runMode: 0, openMode: 0 }, from: 'default' },
screenshotOnRunFailure: { value: true, from: 'default' },
screenshotsFolder: { value: 'cypress/screenshots', from: 'default' },
+ slowTestThreshold: { value: 10000, from: 'default' },
supportFile: { value: 'cypress/support', from: 'default' },
taskTimeout: { value: 60000, from: 'default' },
testFiles: { value: '**/*.*', from: 'default' },
@@ -2037,7 +2049,7 @@ describe('lib/config', () => {
})
it('sets the supportFile to default index.js if it does not exist, support folder does not exist, and supportFile is the default', () => {
- const projectRoot = path.join(process.cwd(), 'test/support/fixtures/projects/no-scaffolding')
+ const projectRoot = Fixtures.projectPath('no-scaffolding')
const obj = config.setAbsolutePaths({
projectRoot,
@@ -2055,7 +2067,7 @@ describe('lib/config', () => {
})
it('sets the supportFile to false if it does not exist, support folder exists, and supportFile is the default', () => {
- const projectRoot = path.join(process.cwd(), 'test/support/fixtures/projects/empty-folders')
+ const projectRoot = Fixtures.projectPath('empty-folders')
const obj = config.setAbsolutePaths({
projectRoot,
@@ -2086,7 +2098,7 @@ describe('lib/config', () => {
})
it('sets the supportFile to index.ts if it exists (without ts require hook)', () => {
- const projectRoot = path.join(process.cwd(), 'test/support/fixtures/projects/ts-proj')
+ const projectRoot = Fixtures.projectPath('ts-proj')
const supportFolder = `${projectRoot}/cypress/support`
const supportFilename = `${supportFolder}/index.ts`
@@ -2113,7 +2125,7 @@ describe('lib/config', () => {
})
it('uses custom TS supportFile if it exists (without ts require hook)', () => {
- const projectRoot = path.join(process.cwd(), 'test/support/fixtures/projects/ts-proj-custom-names')
+ const projectRoot = Fixtures.projectPath('ts-proj-custom-names')
const supportFolder = `${projectRoot}/cypress`
const supportFilename = `${supportFolder}/support.ts`
@@ -2153,7 +2165,7 @@ describe('lib/config', () => {
})
it('sets the pluginsFile to default index.js if does not exist', () => {
- const projectRoot = path.join(process.cwd(), 'test/support/fixtures/projects/no-scaffolding')
+ const projectRoot = Fixtures.projectPath('no-scaffolding')
const obj = {
projectRoot,
@@ -2170,7 +2182,7 @@ describe('lib/config', () => {
})
it('sets the pluginsFile to index.ts if it exists', () => {
- const projectRoot = path.join(process.cwd(), 'test/support/fixtures/projects/ts-proj-with-module-esnext')
+ const projectRoot = Fixtures.projectPath('ts-proj-with-module-esnext')
const obj = {
projectRoot,
@@ -2187,7 +2199,7 @@ describe('lib/config', () => {
})
it('sets the pluginsFile to index.ts if it exists (without ts require hook)', () => {
- const projectRoot = path.join(process.cwd(), 'test/support/fixtures/projects/ts-proj-with-module-esnext')
+ const projectRoot = Fixtures.projectPath('ts-proj-with-module-esnext')
const pluginsFolder = `${projectRoot}/cypress/plugins`
const pluginsFilename = `${pluginsFolder}/index.ts`
@@ -2211,7 +2223,7 @@ describe('lib/config', () => {
})
it('set the pluginsFile to false if it does not exist, plugins folder exists, and pluginsFile is the default', () => {
- const projectRoot = path.join(process.cwd(), 'test/support/fixtures/projects/empty-folders')
+ const projectRoot = Fixtures.projectPath('empty-folders')
const obj = config.setAbsolutePaths({
projectRoot,
@@ -2242,7 +2254,7 @@ describe('lib/config', () => {
})
it('uses custom TS pluginsFile if it exists (without ts require hook)', () => {
- const projectRoot = path.join(process.cwd(), 'test/support/fixtures/projects/ts-proj-custom-names')
+ const projectRoot = Fixtures.projectPath('ts-proj-custom-names')
const pluginsFolder = `${projectRoot}/cypress`
const pluginsFile = `${pluginsFolder}/plugins.ts`
@@ -2410,25 +2422,3 @@ describe('lib/config', () => {
})
})
})
-
-describe('lib/util/config', () => {
- context('.isDefault', () => {
- it('returns true if value is default value', () => {
- settings = { baseUrl: null }
- const defaults = { baseUrl: null }
- const resolved = {}
- const merged = config.setResolvedConfigValues(settings, defaults, resolved)
-
- expect(configUtil.isDefault(merged, 'baseUrl')).to.be.true
- })
-
- it('returns false if value is not default value', () => {
- settings = { baseUrl: null }
- const defaults = { baseUrl: 'http://localhost:8080' }
- const resolved = {}
- const merged = config.setResolvedConfigValues(settings, defaults, resolved)
-
- expect(configUtil.isDefault(merged, 'baseUrl')).to.be.false
- })
- })
-})
diff --git a/packages/server/test/unit/files_spec.js b/packages/server/test/unit/files_spec.js
index de0a37dc69fc..7361badf75c8 100644
--- a/packages/server/test/unit/files_spec.js
+++ b/packages/server/test/unit/files_spec.js
@@ -2,7 +2,7 @@ require('../spec_helper')
const config = require(`${root}lib/config`)
const files = require(`${root}lib/files`)
-const FixturesHelper = require(`${root}/test/support/helpers/fixtures`)
+const FixturesHelper = require('@tooling/system-tests/lib/fixtures')
describe('lib/files', () => {
beforeEach(function () {
diff --git a/packages/server/test/unit/fixture_spec.js b/packages/server/test/unit/fixture_spec.js
index 3385534fd7ba..9046a19f395c 100644
--- a/packages/server/test/unit/fixture_spec.js
+++ b/packages/server/test/unit/fixture_spec.js
@@ -5,7 +5,7 @@ const Promise = require('bluebird')
const config = require(`${root}lib/config`)
const fixture = require(`${root}lib/fixture`)
const { fs } = require(`${root}lib/util/fs`)
-const FixturesHelper = require(`${root}/test/support/helpers/fixtures`)
+const FixturesHelper = require('@tooling/system-tests/lib/fixtures')
const os = require('os')
const eol = require('eol')
diff --git a/packages/server/test/unit/modes/run_spec.js b/packages/server/test/unit/modes/run_spec.js
index 1821baa7b33b..9f0e3f38600e 100644
--- a/packages/server/test/unit/modes/run_spec.js
+++ b/packages/server/test/unit/modes/run_spec.js
@@ -662,6 +662,7 @@ describe('lib/modes/run', () => {
sinon.stub(random, 'id').returns(1234)
sinon.stub(openProject, 'create').resolves(openProject)
sinon.stub(runMode, 'waitForSocketConnection').resolves()
+ sinon.stub(fs, 'access').resolves()
sinon.stub(runMode, 'waitForTestsToFinishRunning').resolves({
stats: { failures: 10 },
spec: {},
@@ -736,6 +737,7 @@ describe('lib/modes/run', () => {
sinon.stub(electron.app, 'on').withArgs('ready').yieldsAsync()
sinon.stub(user, 'ensureAuthToken')
+ sinon.stub(fs, 'access').resolves()
sinon.stub(random, 'id').returns(1234)
sinon.stub(openProject, 'create').resolves(openProject)
sinon.stub(system, 'info').resolves({ osName: 'osFoo', osVersion: 'fooVersion' })
diff --git a/packages/server/test/unit/open_project_spec.js b/packages/server/test/unit/open_project_spec.js
index 75671d1f2025..64c69f1d8d95 100644
--- a/packages/server/test/unit/open_project_spec.js
+++ b/packages/server/test/unit/open_project_spec.js
@@ -8,7 +8,7 @@ const ProjectBase = require(`${root}lib/project-base`).ProjectBase
const { openProject } = require('../../lib/open_project')
const preprocessor = require(`${root}lib/plugins/preprocessor`)
const runEvents = require(`${root}lib/plugins/run_events`)
-const Fixtures = require('../test/../support/helpers/fixtures')
+const Fixtures = require('@tooling/system-tests/lib/fixtures')
const todosPath = Fixtures.projectPath('todos')
diff --git a/packages/server/test/unit/plugins/child/run_plugins_spec.js b/packages/server/test/unit/plugins/child/run_plugins_spec.js
index 6323777f78ba..dbb7f91cdf5c 100644
--- a/packages/server/test/unit/plugins/child/run_plugins_spec.js
+++ b/packages/server/test/unit/plugins/child/run_plugins_spec.js
@@ -9,7 +9,7 @@ const task = require(`${root}../../lib/plugins/child/task`)
const util = require(`${root}../../lib/plugins/util`)
const resolve = require(`${root}../../lib/util/resolve`)
const browserUtils = require(`${root}../../lib/browsers/utils`)
-const Fixtures = require(`${root}../../test/support/helpers/fixtures`)
+const Fixtures = require('@tooling/system-tests/lib/fixtures')
const tsNodeUtil = require(`${root}../../lib/util/ts_node`)
const runPlugins = require(`${root}../../lib/plugins/child/run_plugins`)
diff --git a/packages/server/test/unit/plugins/preprocessor_spec.js b/packages/server/test/unit/plugins/preprocessor_spec.js
index 56098fda8976..c34697e577b1 100644
--- a/packages/server/test/unit/plugins/preprocessor_spec.js
+++ b/packages/server/test/unit/plugins/preprocessor_spec.js
@@ -1,6 +1,6 @@
require('../../spec_helper')
-const Fixtures = require('../../support/helpers/fixtures')
+const Fixtures = require('@tooling/system-tests/lib/fixtures')
const path = require('path')
const appData = require(`${root}../lib/util/app_data`)
diff --git a/packages/server/test/unit/project_spec.js b/packages/server/test/unit/project_spec.js
index d05e445fe43c..2387cd11115e 100644
--- a/packages/server/test/unit/project_spec.js
+++ b/packages/server/test/unit/project_spec.js
@@ -5,7 +5,7 @@ const path = require('path')
const commitInfo = require('@cypress/commit-info')
const chokidar = require('chokidar')
const pkg = require('@packages/root')
-const Fixtures = require('../support/helpers/fixtures')
+const Fixtures = require('@tooling/system-tests/lib/fixtures')
const { sinon } = require('../spec_helper')
const api = require(`${root}lib/api`)
const user = require(`${root}lib/user`)
diff --git a/packages/server/test/unit/project_utils_spec.ts b/packages/server/test/unit/project_utils_spec.ts
index dbf69ea14fd7..c8c1acedd5a7 100644
--- a/packages/server/test/unit/project_utils_spec.ts
+++ b/packages/server/test/unit/project_utils_spec.ts
@@ -3,7 +3,7 @@ import path from 'path'
import sinon from 'sinon'
import { fs } from '../../lib/util/fs'
import { getSpecUrl, checkSupportFile, getDefaultConfigFilePath } from '../../lib/project_utils'
-import Fixtures from '../support/helpers/fixtures'
+import Fixtures from '@tooling/system-tests/lib/fixtures'
const todosPath = Fixtures.projectPath('todos')
diff --git a/packages/server/test/unit/reporter_spec.js b/packages/server/test/unit/reporter_spec.js
index c84db90e43ce..5af7e89b044f 100644
--- a/packages/server/test/unit/reporter_spec.js
+++ b/packages/server/test/unit/reporter_spec.js
@@ -111,7 +111,6 @@ describe('lib/reporter', () => {
it('recursively creates suites for fullTitle', function () {
const args = this.reporter.parseArgs('fail', [this.testObj])
- console.log(args)
expect(args[0]).to.eq('fail')
const title = 'TodoMVC - React When page is initially opened should focus on the todo input field'
diff --git a/packages/server/test/unit/scaffold_spec.js b/packages/server/test/unit/scaffold_spec.js
index 4294cf0ef7ae..8001b3f3ca59 100644
--- a/packages/server/test/unit/scaffold_spec.js
+++ b/packages/server/test/unit/scaffold_spec.js
@@ -9,7 +9,7 @@ const ProjectBase = require(`${root}lib/project-base`).ProjectBase
const scaffold = require(`${root}lib/scaffold`)
const { fs } = require(`${root}lib/util/fs`)
const glob = require(`${root}lib/util/glob`)
-const Fixtures = require(`${root}/test/support/helpers/fixtures`)
+const Fixtures = require('@tooling/system-tests/lib/fixtures')
describe('lib/scaffold', () => {
beforeEach(() => {
diff --git a/packages/server/test/unit/screenshots_spec.js b/packages/server/test/unit/screenshots_spec.js
index 818d15ad72a8..2cebcfeefa45 100644
--- a/packages/server/test/unit/screenshots_spec.js
+++ b/packages/server/test/unit/screenshots_spec.js
@@ -6,7 +6,7 @@ const Jimp = require('jimp')
const { Buffer } = require('buffer')
const dataUriToBuffer = require('data-uri-to-buffer')
const sizeOf = require('image-size')
-const Fixtures = require('../support/helpers/fixtures')
+const Fixtures = require('@tooling/system-tests/lib/fixtures')
const config = require(`${root}lib/config`)
const screenshots = require(`${root}lib/screenshots`)
const { fs } = require(`${root}lib/util/fs`)
diff --git a/packages/server/test/unit/socket_spec.js b/packages/server/test/unit/socket_spec.js
index 6b537d6943a0..54f150dab74c 100644
--- a/packages/server/test/unit/socket_spec.js
+++ b/packages/server/test/unit/socket_spec.js
@@ -15,7 +15,7 @@ const exec = require(`${root}lib/exec`)
const preprocessor = require(`${root}lib/plugins/preprocessor`)
const { fs } = require(`${root}lib/util/fs`)
const open = require(`${root}lib/util/open`)
-const Fixtures = require(`${root}/test/support/helpers/fixtures`)
+const Fixtures = require('@tooling/system-tests/lib/fixtures')
const firefoxUtil = require(`${root}lib/browsers/firefox-util`).default
const { createRoutes } = require(`${root}lib/routes`)
diff --git a/packages/server/test/unit/args_spec.js b/packages/server/test/unit/util/args_spec.js
similarity index 99%
rename from packages/server/test/unit/args_spec.js
rename to packages/server/test/unit/util/args_spec.js
index 6b92bdddefb1..06309170e967 100644
--- a/packages/server/test/unit/args_spec.js
+++ b/packages/server/test/unit/util/args_spec.js
@@ -1,12 +1,12 @@
-require('../spec_helper')
+require('../../spec_helper')
const path = require('path')
const os = require('os')
const snapshot = require('snap-shot-it')
const stripAnsi = require('strip-ansi')
const minimist = require('minimist')
-const argsUtil = require(`${root}lib/util/args`)
-const getWindowsProxyUtil = require(`${root}lib/util/get-windows-proxy`)
+const argsUtil = require(`${root}../lib/util/args`)
+const getWindowsProxyUtil = require(`${root}../lib/util/get-windows-proxy`)
const cwd = process.cwd()
diff --git a/packages/server/test/unit/cache_buster_spec.js b/packages/server/test/unit/util/cache_buster_spec.js
similarity index 85%
rename from packages/server/test/unit/cache_buster_spec.js
rename to packages/server/test/unit/util/cache_buster_spec.js
index eb981877b1df..4c8ee580c128 100644
--- a/packages/server/test/unit/cache_buster_spec.js
+++ b/packages/server/test/unit/util/cache_buster_spec.js
@@ -1,6 +1,6 @@
-require('../spec_helper')
+require('../../spec_helper')
-const CacheBuster = require(`${root}lib/util/cache_buster`)
+const CacheBuster = require(`${root}../lib/util/cache_buster`)
describe('lib/cache_buster', () => {
context('#get', () => {
diff --git a/packages/server/test/unit/chrome_policy_check.js b/packages/server/test/unit/util/chrome_policy_check.js
similarity index 94%
rename from packages/server/test/unit/chrome_policy_check.js
rename to packages/server/test/unit/util/chrome_policy_check.js
index a576044ef6e6..449f39b681c5 100644
--- a/packages/server/test/unit/chrome_policy_check.js
+++ b/packages/server/test/unit/util/chrome_policy_check.js
@@ -1,8 +1,8 @@
-require('../spec_helper')
+require('../../spec_helper')
const _ = require('lodash')
const { stripIndent } = require('common-tags')
-const chromePolicyCheck = require(`${root}lib/util/chrome_policy_check`)
+const chromePolicyCheck = require(`${root}../lib/util/chrome_policy_check`)
describe('lib/util/chrome_policy_check', () => {
context('.getRunner returns a function', () => {
diff --git a/packages/server/test/unit/ci_provider_spec.js b/packages/server/test/unit/util/ci_provider_spec.js
similarity index 99%
rename from packages/server/test/unit/ci_provider_spec.js
rename to packages/server/test/unit/util/ci_provider_spec.js
index 5fbaf29d55da..77e2c1e12827 100644
--- a/packages/server/test/unit/ci_provider_spec.js
+++ b/packages/server/test/unit/util/ci_provider_spec.js
@@ -1,8 +1,8 @@
const mockedEnv = require('mocked-env')
-require('../spec_helper')
+require('../../spec_helper')
-const ciProvider = require(`${root}lib/util/ci_provider`)
+const ciProvider = require(`${root}../lib/util/ci_provider`)
const expectsName = (name) => {
expect(ciProvider.provider(), 'CI providers detected name').to.eq(name)
diff --git a/packages/server/test/unit/coerce_spec.js b/packages/server/test/unit/util/coerce_spec.js
similarity index 94%
rename from packages/server/test/unit/coerce_spec.js
rename to packages/server/test/unit/util/coerce_spec.js
index d1e33d7246c2..b6b58a7898d6 100644
--- a/packages/server/test/unit/coerce_spec.js
+++ b/packages/server/test/unit/util/coerce_spec.js
@@ -1,7 +1,7 @@
-require('../spec_helper')
+require('../../spec_helper')
-const { coerce } = require(`${root}lib/util/coerce`)
-const { getProcessEnvVars } = require(`${root}lib/util/config`)
+const { coerce } = require(`${root}../lib/util/coerce`)
+const { getProcessEnvVars } = require(`${root}../lib/util/config`)
describe('lib/util/coerce', () => {
beforeEach(function () {
diff --git a/packages/server/test/unit/util/config_spec.js b/packages/server/test/unit/util/config_spec.js
new file mode 100644
index 000000000000..aaa99ab53e32
--- /dev/null
+++ b/packages/server/test/unit/util/config_spec.js
@@ -0,0 +1,48 @@
+require('../../spec_helper')
+
+const configUtil = require(`${root}../lib/util/config`)
+
+describe('lib/util/config', () => {
+ context('.isDefault', () => {
+ it('returns true if value is default value', () => {
+ const options = {
+ resolved: {
+ baseUrl: { from: 'default' },
+ },
+ }
+
+ expect(configUtil.isDefault(options, 'baseUrl')).to.be.true
+ })
+
+ it('returns false if value is not default value', () => {
+ const options = {
+ resolved: {
+ baseUrl: { from: 'cli' },
+ },
+ }
+
+ expect(configUtil.isDefault(options, 'baseUrl')).to.be.false
+ })
+ })
+
+ context('.getProcessEnvVars', () => {
+ it('returns process envs prefixed with cypress', () => {
+ const envs = {
+ CYPRESS_BASE_URL: 'value',
+ RANDOM_ENV: 'ignored',
+ }
+
+ expect(configUtil.getProcessEnvVars(envs)).to.deep.eq({
+ BASE_URL: 'value',
+ })
+ })
+
+ it('does not return CYPRESS_RESERVED_ENV_VARS', () => {
+ const envs = {
+ CYPRESS_INTERNAL_ENV: 'value',
+ }
+
+ expect(configUtil.getProcessEnvVars(envs)).to.deep.eq({})
+ })
+ })
+})
diff --git a/packages/server/test/unit/duration_spec.js b/packages/server/test/unit/util/duration_spec.js
similarity index 88%
rename from packages/server/test/unit/duration_spec.js
rename to packages/server/test/unit/util/duration_spec.js
index 251b567ee188..6c23bc939fd0 100644
--- a/packages/server/test/unit/duration_spec.js
+++ b/packages/server/test/unit/util/duration_spec.js
@@ -1,6 +1,6 @@
-require('../spec_helper')
+require('../../spec_helper')
-const duration = require(`${root}lib/util/duration`)
+const duration = require(`${root}../lib/util/duration`)
describe('lib/util/duration', () => {
context('.format', () => {
diff --git a/packages/server/test/unit/ensure_url_spec.ts b/packages/server/test/unit/util/ensure_url_spec.ts
similarity index 95%
rename from packages/server/test/unit/ensure_url_spec.ts
rename to packages/server/test/unit/util/ensure_url_spec.ts
index b80aa01171aa..47c8af1904e1 100644
--- a/packages/server/test/unit/ensure_url_spec.ts
+++ b/packages/server/test/unit/util/ensure_url_spec.ts
@@ -1,7 +1,7 @@
-import '../spec_helper'
+import '../../spec_helper'
import { connect, agent } from '@packages/network'
-import { isListening } from '../../lib/util/ensure-url'
+import { isListening } from '../../../lib/util/ensure-url'
import sinon from 'sinon'
import nock from 'nock'
diff --git a/packages/server/test/unit/file_spec.js b/packages/server/test/unit/util/file_spec.js
similarity index 97%
rename from packages/server/test/unit/file_spec.js
rename to packages/server/test/unit/util/file_spec.js
index fded35dcebc5..f126b7238fd6 100644
--- a/packages/server/test/unit/file_spec.js
+++ b/packages/server/test/unit/util/file_spec.js
@@ -1,13 +1,13 @@
-require('../spec_helper')
+require('../../spec_helper')
const os = require('os')
const path = require('path')
const Promise = require('bluebird')
const lockFile = Promise.promisifyAll(require('lockfile'))
-const { fs } = require(`${root}lib/util/fs`)
-const env = require(`${root}lib/util/env`)
-const exit = require(`${root}lib/util/exit`)
-const FileUtil = require(`${root}lib/util/file`)
+const { fs } = require(`${root}../lib/util/fs`)
+const env = require(`${root}../lib/util/env`)
+const exit = require(`${root}../lib/util/exit`)
+const FileUtil = require(`${root}../lib/util/file`)
describe('lib/util/file', () => {
beforeEach(function () {
diff --git a/packages/server/test/unit/human_time_spec.js b/packages/server/test/unit/util/human_time_spec.js
similarity index 93%
rename from packages/server/test/unit/human_time_spec.js
rename to packages/server/test/unit/util/human_time_spec.js
index c61bd1148cda..d93710a31174 100644
--- a/packages/server/test/unit/human_time_spec.js
+++ b/packages/server/test/unit/util/human_time_spec.js
@@ -1,7 +1,7 @@
-require('../spec_helper')
+require('../../spec_helper')
const humanInterval = require('human-interval')
-const humanTime = require(`${root}lib/util/human_time`)
+const humanTime = require(`${root}../lib/util/human_time`)
describe('lib/util/human_time', () => {
context('.long', () => {
diff --git a/packages/server/test/unit/newlines_spec.ts b/packages/server/test/unit/util/newlines_spec.ts
similarity index 83%
rename from packages/server/test/unit/newlines_spec.ts
rename to packages/server/test/unit/util/newlines_spec.ts
index a3050923d0b4..a5f06ca4aa3c 100644
--- a/packages/server/test/unit/newlines_spec.ts
+++ b/packages/server/test/unit/util/newlines_spec.ts
@@ -1,6 +1,6 @@
-import '../spec_helper'
+import '../../spec_helper'
-import newlines from '../../lib/util/newlines'
+import newlines from '../../../lib/util/newlines'
describe('lib/util/newlines', function () {
it('inserts newline at each n char', function () {
diff --git a/packages/server/test/unit/open_spec.js b/packages/server/test/unit/util/open_spec.js
similarity index 92%
rename from packages/server/test/unit/open_spec.js
rename to packages/server/test/unit/util/open_spec.js
index d69a2c01c78a..05d9d1bb0a72 100644
--- a/packages/server/test/unit/open_spec.js
+++ b/packages/server/test/unit/util/open_spec.js
@@ -1,7 +1,7 @@
-require('../spec_helper')
+require('../../spec_helper')
const cp = require('child_process')
-const open = require(`${root}lib/util/open`)
+const open = require(`${root}../lib/util/open`)
const platform = (p) => {
return Object.defineProperty(process, 'platform', {
diff --git a/packages/server/test/unit/origin_spec.js b/packages/server/test/unit/util/origin_spec.js
similarity index 85%
rename from packages/server/test/unit/origin_spec.js
rename to packages/server/test/unit/util/origin_spec.js
index 15876e2d1541..e3ac7d15e27a 100644
--- a/packages/server/test/unit/origin_spec.js
+++ b/packages/server/test/unit/util/origin_spec.js
@@ -1,6 +1,6 @@
-require('../spec_helper')
+require('../../spec_helper')
-const origin = require(`${root}lib/util/origin`)
+const origin = require(`${root}../lib/util/origin`)
describe('lib/util/origin', () => {
beforeEach(function () {
diff --git a/packages/server/test/unit/path_helpers_spec.js b/packages/server/test/unit/util/path_helpers_spec.js
similarity index 84%
rename from packages/server/test/unit/path_helpers_spec.js
rename to packages/server/test/unit/util/path_helpers_spec.js
index 0704b9bbd960..86323723783d 100644
--- a/packages/server/test/unit/path_helpers_spec.js
+++ b/packages/server/test/unit/util/path_helpers_spec.js
@@ -1,6 +1,6 @@
-require('../spec_helper')
+require('../../spec_helper')
-const path_helpers = require(`${root}lib/util/path_helpers`)
+const path_helpers = require(`${root}../lib/util/path_helpers`)
describe('lib/util/path_helpers', () => {
context('checkIfResolveChangedRootFolder', () => {
diff --git a/packages/server/test/unit/profile_cleaner_spec.js b/packages/server/test/unit/util/profile_cleaner_spec.js
similarity index 92%
rename from packages/server/test/unit/profile_cleaner_spec.js
rename to packages/server/test/unit/util/profile_cleaner_spec.js
index 6fa33e71a952..b6af0812bc25 100644
--- a/packages/server/test/unit/profile_cleaner_spec.js
+++ b/packages/server/test/unit/util/profile_cleaner_spec.js
@@ -1,10 +1,10 @@
-require('../spec_helper')
+require('../../spec_helper')
const os = require('os')
const path = require('path')
-const { fs } = require(`${root}/lib/util/fs`)
-const findProcess = require(`${root}lib/util/find_process`)
-const profileCleaner = require(`${root}lib/util/profile_cleaner`)
+const { fs } = require(`${root}../lib/util/fs`)
+const findProcess = require(`${root}../lib/util/find_process`)
+const profileCleaner = require(`${root}../lib/util/profile_cleaner`)
const tmpDir = os.tmpdir()
const pidProfilesFolder = path.join(tmpDir, 'pid-profiles')
diff --git a/packages/server/test/unit/random_spec.js b/packages/server/test/unit/util/random_spec.js
similarity index 88%
rename from packages/server/test/unit/random_spec.js
rename to packages/server/test/unit/util/random_spec.js
index 4864243a7c58..7270577af187 100644
--- a/packages/server/test/unit/random_spec.js
+++ b/packages/server/test/unit/util/random_spec.js
@@ -1,7 +1,7 @@
-require('../spec_helper')
+require('../../spec_helper')
const randomstring = require('randomstring')
-const random = require(`${root}lib/util/random`)
+const random = require(`${root}../lib/util/random`)
context('.id', () => {
it('returns random.generate string with length 5 by default', () => {
diff --git a/packages/server/test/unit/routes_util_spec.js b/packages/server/test/unit/util/routes_spec.js
similarity index 93%
rename from packages/server/test/unit/routes_util_spec.js
rename to packages/server/test/unit/util/routes_spec.js
index bcf0e0c78346..f491b6125794 100644
--- a/packages/server/test/unit/routes_util_spec.js
+++ b/packages/server/test/unit/util/routes_spec.js
@@ -1,6 +1,6 @@
-require('../spec_helper')
+require('../../spec_helper')
-const { apiRoutes, onRoutes } = require(`${root}/lib/util/routes`)
+const { apiRoutes, onRoutes } = require(`${root}../lib/util/routes`)
describe('lib/util/routes', () => {
describe('api routes', () => {
diff --git a/packages/server/test/unit/util/spec_writer_spec.ts b/packages/server/test/unit/util/spec_writer_spec.ts
index a66737faf8c8..a66050d95624 100644
--- a/packages/server/test/unit/util/spec_writer_spec.ts
+++ b/packages/server/test/unit/util/spec_writer_spec.ts
@@ -5,7 +5,7 @@ import sinon from 'sinon'
import snapshot from 'snap-shot-it'
import { expect } from 'chai'
-import Fixtures from '../../support/helpers/fixtures'
+import Fixtures from '@tooling/system-tests/lib/fixtures'
import { fs } from '../../../lib/util/fs'
import {
generateCypressCommand,
@@ -19,10 +19,6 @@ import {
countStudioUsage,
} from '../../../lib/util/spec_writer'
-const mockSpec = Fixtures.get('projects/studio/cypress/integration/unwritten.spec.js')
-const emptyCommentsSpec = Fixtures.get('projects/studio/cypress/integration/empty-comments.spec.js')
-const writtenSpec = Fixtures.get('projects/studio/cypress/integration/written.spec.js')
-
const exampleTestCommands = [
{
selector: '.input',
@@ -46,10 +42,15 @@ const verifyOutput = (ast) => {
}
describe('lib/util/spec_writer', () => {
- let readFile
+ let readFile; let mockSpec; let emptyCommentsSpec; let writtenSpec
// recast doesn't play nicely with mockfs so we do it manually
beforeEach(() => {
+ Fixtures.scaffold()
+ mockSpec = fs.readFileSync(Fixtures.projectPath('studio/cypress/integration/unwritten.spec.js'))
+ emptyCommentsSpec = fs.readFileSync(Fixtures.projectPath('studio/cypress/integration/empty-comments.spec.js'))
+ writtenSpec = fs.readFileSync(Fixtures.projectPath('studio/cypress/integration/written.spec.js'))
+
readFile = sinon.stub(fs, 'readFile').resolves(mockSpec)
sinon.stub(fs, 'writeFile').callsFake((path, output) => {
snapshot(output)
diff --git a/packages/server/test/unit/specs_spec.js b/packages/server/test/unit/util/specs_spec.js
similarity index 96%
rename from packages/server/test/unit/specs_spec.js
rename to packages/server/test/unit/util/specs_spec.js
index bc65e6b2432c..582d0eeb3087 100644
--- a/packages/server/test/unit/specs_spec.js
+++ b/packages/server/test/unit/util/specs_spec.js
@@ -1,10 +1,10 @@
-require('../spec_helper')
+require('../../spec_helper')
const R = require('ramda')
const path = require('path')
-const config = require(`${root}lib/config`)
-const specsUtil = require(`${root}lib/util/specs`).default
-const FixturesHelper = require(`${root}/test/support/helpers/fixtures`)
+const config = require(`${root}../lib/config`)
+const specsUtil = require(`${root}../lib/util/specs`).default
+const FixturesHelper = require('@tooling/system-tests/lib/fixtures')
const debug = require('debug')('test')
describe('lib/util/specs', () => {
diff --git a/packages/server/test/unit/stream_buffer_spec.js b/packages/server/test/unit/util/stream_buffer_spec.js
similarity index 98%
rename from packages/server/test/unit/stream_buffer_spec.js
rename to packages/server/test/unit/util/stream_buffer_spec.js
index bfb5db3da574..c7ae9eea1b72 100644
--- a/packages/server/test/unit/stream_buffer_spec.js
+++ b/packages/server/test/unit/util/stream_buffer_spec.js
@@ -1,11 +1,11 @@
-require('../spec_helper')
+require('../../spec_helper')
const _ = require('lodash')
const fs = require('fs')
const stream = require('stream')
const Promise = require('bluebird')
const { concatStream } = require('@packages/network')
-const { streamBuffer } = require('../../lib/util/stream_buffer')
+const { streamBuffer } = require('../../../lib/util/stream_buffer')
function drain (stream) {
return new Promise((resolve) => {
diff --git a/packages/server/test/unit/suppress_warnings_spec.ts b/packages/server/test/unit/util/suppress_warnings_spec.ts
similarity index 87%
rename from packages/server/test/unit/suppress_warnings_spec.ts
rename to packages/server/test/unit/util/suppress_warnings_spec.ts
index 7509cf48dad3..bee28e6d04bb 100644
--- a/packages/server/test/unit/suppress_warnings_spec.ts
+++ b/packages/server/test/unit/util/suppress_warnings_spec.ts
@@ -1,4 +1,4 @@
-import '../spec_helper'
+import '../../spec_helper'
import { expect } from 'chai'
import execa from 'execa'
import proxyquire from 'proxyquire'
@@ -6,7 +6,7 @@ import proxyquire from 'proxyquire'
const ERROR_MESSAGE = 'Setting the NODE_TLS_REJECT_UNAUTHORIZED'
const TLS_CONNECT = `require('tls').connect().on('error', ()=>{});`
-const SUPPRESS_WARNING = `require('${__dirname}/../../lib/util/suppress_warnings').suppress();`
+const SUPPRESS_WARNING = `require('${__dirname}/../../../lib/util/suppress_warnings').suppress();`
describe('lib/util/suppress_warnings', function () {
it('tls.connect emits warning if NODE_TLS_REJECT_UNAUTHORIZED=0 and not suppressed', function () {
@@ -36,7 +36,7 @@ describe('lib/util/suppress_warnings', function () {
const emitWarning = sinon.spy(process, 'emitWarning')
// force typescript to always be non-requireable
- const { suppress } = proxyquire('../../lib/util/suppress_warnings', {})
+ const { suppress } = proxyquire('../../../lib/util/suppress_warnings', {})
suppress()
diff --git a/packages/server/test/unit/terminal_spec.js b/packages/server/test/unit/util/terminal_spec.js
similarity index 94%
rename from packages/server/test/unit/terminal_spec.js
rename to packages/server/test/unit/util/terminal_spec.js
index 73e51e7a2e9e..3d8e6da471a2 100644
--- a/packages/server/test/unit/terminal_spec.js
+++ b/packages/server/test/unit/util/terminal_spec.js
@@ -1,11 +1,11 @@
-require('../spec_helper')
+require('../../spec_helper')
const snapshot = require('snap-shot-it')
const stripAnsi = require('strip-ansi')
const widestLine = require('widest-line')
-const env = require(`${root}lib/util/env`)
-const terminal = require(`${root}lib/util/terminal`)
-const terminalSize = require(`${root}lib/util/terminal-size`)
+const env = require(`${root}../lib/util/env`)
+const terminal = require(`${root}../lib/util/terminal`)
+const terminalSize = require(`${root}../lib/util/terminal-size`)
const sanitizeSnapshot = (str) => {
return snapshot(stripAnsi(str))
diff --git a/packages/server/test/unit/trash_spec.js b/packages/server/test/unit/util/trash_spec.js
similarity index 96%
rename from packages/server/test/unit/trash_spec.js
rename to packages/server/test/unit/util/trash_spec.js
index a8d4aecb0e59..953657a2b828 100644
--- a/packages/server/test/unit/trash_spec.js
+++ b/packages/server/test/unit/util/trash_spec.js
@@ -1,9 +1,9 @@
-require('../spec_helper')
+require('../../spec_helper')
const fs = require('fs')
const os = require('os')
const path = require('path')
-const trash = require(`${root}lib/util/trash`)
+const trash = require(`${root}../lib/util/trash`)
const populateDirectories = function (basePath) {
fs.mkdirSync(basePath)
diff --git a/packages/server/test/unit/tty_spec.js b/packages/server/test/unit/util/tty_spec.js
similarity index 95%
rename from packages/server/test/unit/tty_spec.js
rename to packages/server/test/unit/util/tty_spec.js
index df66cc0493a6..277e9ff4bed2 100644
--- a/packages/server/test/unit/tty_spec.js
+++ b/packages/server/test/unit/util/tty_spec.js
@@ -1,8 +1,8 @@
-require('../spec_helper')
+require('../../spec_helper')
const tty = require('tty')
-const ttyUtil = require(`${root}lib/util/tty`)
-const terminalSize = require(`${root}lib/util/terminal-size`)
+const ttyUtil = require(`${root}../lib/util/tty`)
+const terminalSize = require(`${root}../lib/util/terminal-size`)
const ttys = [process.stdin.isTTY, process.stdout.isTTY, process.stderr.isTTY]
diff --git a/packages/ui-components/cypress/support/test-entry.scss.d.ts b/packages/ui-components/cypress/support/test-entry.scss.d.ts
new file mode 100644
index 000000000000..132b232e8959
--- /dev/null
+++ b/packages/ui-components/cypress/support/test-entry.scss.d.ts
@@ -0,0 +1,7 @@
+// This file is automatically generated.
+// Please do not change this file!
+interface CssExports {
+
+}
+export const cssExports: CssExports;
+export default cssExports;
diff --git a/packages/web-config/index.d.ts b/packages/web-config/index.d.ts
new file mode 100644
index 000000000000..1e7cc7cbe756
--- /dev/null
+++ b/packages/web-config/index.d.ts
@@ -0,0 +1,2 @@
+///
+///
\ No newline at end of file
diff --git a/packages/web-config/package.json b/packages/web-config/package.json
index 56ba8d3b5ce8..3ad09744f6e2 100644
--- a/packages/web-config/package.json
+++ b/packages/web-config/package.json
@@ -14,6 +14,7 @@
"@types/jsdom": "12.2.4",
"@types/mock-require": "2.0.0",
"@types/webpack": "4.41.0",
+ "@types/webpack-dev-server": "^4.0.0",
"ansi-escapes": "4.3.1",
"arraybuffer-loader": "1.0.8",
"autoprefixer": "9.7.4",
@@ -24,6 +25,7 @@
"clean-webpack-plugin": "2.0.2",
"copy-webpack-plugin": "5.1.2",
"css-loader": "2.1.1",
+ "css-modules-typescript-loader": "4.0.1",
"execa": "^5.0.0",
"extract-text-webpack-plugin": "4.0.0-beta.0",
"file-loader": "4.3.0",
diff --git a/packages/web-config/webpack.config.base.ts b/packages/web-config/webpack.config.base.ts
index cf636b6cc460..c7ba866e881e 100644
--- a/packages/web-config/webpack.config.base.ts
+++ b/packages/web-config/webpack.config.base.ts
@@ -65,6 +65,13 @@ function makeSassLoaders ({ modules }: { modules: boolean }): RuleSetRule {
exclude,
enforce: 'pre',
use: [
+ {
+ loader: require.resolve('css-modules-typescript-loader'),
+ options: {
+ modules: true,
+ mode: process.env.CI ? 'verify' : 'emit',
+ },
+ },
{
loader: require.resolve('css-loader'),
options: {
diff --git a/patches/@types+jquery+3.3.31.patch b/patches/@types+jquery+3.3.31.patch
new file mode 100644
index 000000000000..99e90137d8e9
--- /dev/null
+++ b/patches/@types+jquery+3.3.31.patch
@@ -0,0 +1,39622 @@
+diff --git a/node_modules/@types/jquery/JQuery.d.ts b/node_modules/@types/jquery/JQuery.d.ts
+index ed0147a..7542ce4 100644
+--- a/node_modules/@types/jquery/JQuery.d.ts
++++ b/node_modules/@types/jquery/JQuery.d.ts
+@@ -1,12942 +1,12942 @@
+-// tslint:disable:jsdoc-format
+-// tslint:disable:max-line-length
+-// tslint:disable:no-irregular-whitespace
++// // tslint:disable:jsdoc-format
++// // tslint:disable:max-line-length
++// // tslint:disable:no-irregular-whitespace
+
+-interface JQuery extends Iterable {
+- /**
+- * A string containing the jQuery version number.
+- * @see \`{@link https://api.jquery.com/jquery-2/#jquery1 }\`
+- * @since 1.0
+- * @example ````Determine if an object is a jQuery object
+-```javascript
+-var a = { what: "A regular JS object" },
+- b = $( "body" );
+-
+-if ( a.jquery ) { // Falsy, since it's undefined
+- alert( "a is a jQuery object!" );
+-}
+-
+-if ( b.jquery ) { // Truthy, since it's a string
+- alert( "b is a jQuery object!" );
+-}
+-```
+- * @example ````Get the current version of jQuery running on the page
+-```javascript
+-alert( "You are running jQuery version: " + $.fn.jquery );
+-```
+- */
+- jquery: string;
+- /**
+- * The number of elements in the jQuery object.
+- * @see \`{@link https://api.jquery.com/length/ }\`
+- * @since 1.0
+- * @example ````Count the divs. Click to add more.
+-```html
+-
+-
+-
+-
+- length demo
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-```
+- */
+- length: number;
+- /**
+- * Create a new jQuery object with elements added to the set of matched elements.
+- * @param selector A string representing a selector expression to find additional elements to add to the set of matched elements.
+- * @param context The point in the document at which the selector should begin matching; similar to the context
+- * argument of the $(selector, context) method.
+- * @see \`{@link https://api.jquery.com/add/ }\`
+- * @since 1.4
+- */
+- add(selector: JQuery.Selector, context: Element): this;
+- // TODO: The return type should reflect newly selected types.
+- /**
+- * Create a new jQuery object with elements added to the set of matched elements.
+- * @param selector_elements_html_selection _@param_ `selector_elements_html_selection`
+- *
+- * * `selector` — A string representing a selector expression to find additional elements to add to the set of matched elements.
+- * * `elements` — One or more elements to add to the set of matched elements.
+- * * `html` — An HTML fragment to add to the set of matched elements.
+- * * `selection` — An existing jQuery object to add to the set of matched elements.
+- * @see \`{@link https://api.jquery.com/add/ }\`
+- * @since 1.0
+- * @since 1.3.2
+- * @example ````Finds all divs and makes a border. Then adds all paragraphs to the jQuery object to set their backgrounds yellow.
+-```html
+-
+-
+-
+-
+- add demo
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-Added this... (notice no border)
+-
+-
+-
+-
+-
+-```
+- * @example ````Adds more elements, matched by the given expression, to the set of matched elements.
+-```html
+-
+-
+-
+-
+- add demo
+-
+-
+-
+-
+-Hello
+-Hello Again
+-
+-
+-
+-
+-
+-```
+- * @example ````Adds more elements, created on the fly, to the set of matched elements.
+-```html
+-
+-
+-
+-
+- add demo
+-
+-
+-
+-
+-Hello
+-
+-
+-
+-
+-
+-```
+- * @example ````Adds one or more Elements to the set of matched elements.
+-```html
+-
+-
+-
+-
+- add demo
+-
+-
+-
+-
+-Hello
+-Hello Again
+-
+-
+-
+-
+-
+-```
+- * @example ````Demonstrates how to add (or push) elements to an existing collection
+-```html
+-
+-
+-
+-
+- add demo
+-
+-
+-
+-
+-Hello
+-Hello Again
+-
+-
+-
+-
+-
+-```
+- */
+- add(selector_elements_html_selection: JQuery.Selector | JQuery.TypeOrArray | JQuery.htmlString | JQuery | JQuery.Node): this;
+- /**
+- * Add the previous set of elements on the stack to the current set, optionally filtered by a selector.
+- * @param selector A string containing a selector expression to match the current set of elements against.
+- * @see \`{@link https://api.jquery.com/addBack/ }\`
+- * @since 1.8
+- * @example ````The .addBack() method causes the previous set of DOM elements in the traversal stack to be added to the current set. In the first example, the top stack contains the set resulting from .find("p"). In the second example, .addBack() adds the previous set of elements on the stack — in this case $("div.after-addback") — to the current set, selecting both the div and its enclosed paragraphs.
+-```html
+-
+-
+-
+-
+- addBack demo
+-
+-
+-
+-
+-
+-
+-
Before addBack()
+-
+-
First Paragraph
+-
Second Paragraph
+-
+-
+-
+-
After addBack()
+-
+-
First Paragraph
+-
Second Paragraph
+-
+-
+-
+-
+-
+-
+-
+-```
+- */
+- addBack(selector?: JQuery.Selector): this;
+- /**
+- * Adds the specified class(es) to each element in the set of matched elements.
+- * @param className_function _@param_ `className_function`
+- *
+- * * `className` — One or more space-separated classes to be added to the class attribute of each matched element.
+- * * `function` — A function returning one or more space-separated class names to be added to the existing class
+- * name(s). Receives the index position of the element in the set and the existing class name(s) as
+- * arguments. Within the function, `this` refers to the current element in the set.
+- * @see \`{@link https://api.jquery.com/addClass/ }\`
+- * @since 1.0
+- * @since 1.4
+- * @since 3.3
+- * @example ````Add the class "selected" to the matched elements.
+-```html
+-
+-
+-
+-
+- addClass demo
+-
+-
+-
+-
+-
+-Hello
+-and
+-Goodbye
+-
+-
+-
+-
+-
+-```
+- * @example ````Add the classes "selected" and "highlight" to the matched elements.
+-```html
+-
+-
+-
+-
+- addClass demo
+-
+-
+-
+-
+-
+-Hello
+-and
+-Goodbye
+-
+-
+-
+-
+-
+-```
+- * @example ````Pass in a function to .addClass() to add the "green" class to a div that already has a "red" class.
+-```html
+-
+-
+-
+-
+- addClass demo
+-
+-
+-
+-
+-
+- This div should be white
+- This div will be green because it now has the "green" and "red" classes.
+- It would be red if the addClass function failed.
+- This div should be white
+- There are zero green divs
+-
+-
+-
+-
+-
+-```
+- */
+- addClass(className_function: JQuery.TypeOrArray | ((this: TElement, index: number, currentClassName: string) => string)): this;
+- /**
+- * Insert content, specified by the parameter, after each element in the set of matched elements.
+- * @param contents One or more additional DOM elements, text nodes, arrays of elements and text nodes, HTML strings, or
+- * jQuery objects to insert after each element in the set of matched elements.
+- * @see \`{@link https://api.jquery.com/after/ }\`
+- * @since 1.0
+- * @example ````Inserts some HTML after all paragraphs.
+-```html
+-
+-
+-
+-
+- after demo
+-
+-
+-
+-
+-
+-I would like to say:
+-
+-
+-
+-
+-
+-```
+- * @example ````Inserts a DOM element after all paragraphs.
+-```html
+-
+-
+-
+-
+- after demo
+-
+-
+-
+-
+-
+-I would like to say:
+-
+-
+-
+-
+-
+-```
+- * @example ````Inserts a jQuery object (similar to an Array of DOM Elements) after all paragraphs.
+-```html
+-
+-
+-
+-
+- after demo
+-
+-
+-
+-
+-
+-Hello
+-I would like to say:
+-
+-
+-
+-
+-
+-```
+- */
+- after(...contents: Array>>): this;
+- /**
+- * Insert content, specified by the parameter, after each element in the set of matched elements.
+- * @param function_functionーhtml _@param_ `function_functionーhtml`
+- *
+- * * `function` — A function that returns an HTML string, DOM element(s), text node(s), or jQuery object to insert
+- * after each element in the set of matched elements. Receives the index position of the element in the
+- * set as an argument. Within the function, `this` refers to the current element in the set.
+- * * `functionーhtml` — A function that returns an HTML string, DOM element(s), text node(s), or jQuery object to insert
+- * after each element in the set of matched elements. Receives the index position of the element in the
+- * set and the old HTML value of the element as arguments. Within the function, `this` refers to the
+- * current element in the set.
+- * @see \`{@link https://api.jquery.com/after/ }\`
+- * @since 1.4
+- * @since 1.10
+- */
+- after(function_functionーhtml: (this: TElement, index: number, html: string) => JQuery.htmlString | JQuery.TypeOrArray>): this;
+- /**
+- * Register a handler to be called when Ajax requests complete. This is an AjaxEvent.
+- * @param handler The function to be invoked.
+- * @see \`{@link https://api.jquery.com/ajaxComplete/ }\`
+- * @since 1.0
+- * @example ````Show a message when an Ajax request completes.
+-```javascript
+-$( document ).ajaxComplete(function( event, request, settings ) {
+- $( "#msg" ).append( "Request Complete. " );
+-});
+-```
+- */
+- ajaxComplete(handler: (this: Document,
+- event: JQuery.TriggeredEvent,
+- jqXHR: JQuery.jqXHR,
+- ajaxOptions: JQuery.AjaxSettings) => void | false): this;
+- /**
+- * Register a handler to be called when Ajax requests complete with an error. This is an Ajax Event.
+- * @param handler The function to be invoked.
+- * @see \`{@link https://api.jquery.com/ajaxError/ }\`
+- * @since 1.0
+- * @example ````Show a message when an Ajax request fails.
+-```javascript
+-$( document ).ajaxError(function( event, request, settings ) {
+- $( "#msg" ).append( "Error requesting page " + settings.url + " " );
+-});
+-```
+- */
+- ajaxError(handler: (this: Document,
+- event: JQuery.TriggeredEvent,
+- jqXHR: JQuery.jqXHR,
+- ajaxSettings: JQuery.AjaxSettings,
+- thrownError: string) => void | false): this;
+- /**
+- * Attach a function to be executed before an Ajax request is sent. This is an Ajax Event.
+- * @param handler The function to be invoked.
+- * @see \`{@link https://api.jquery.com/ajaxSend/ }\`
+- * @since 1.0
+- * @example ````Show a message before an Ajax request is sent.
+-```javascript
+-$( document ).ajaxSend(function( event, request, settings ) {
+- $( "#msg" ).append( "Starting request at " + settings.url + " " );
+-});
+-```
+- */
+- ajaxSend(handler: (this: Document,
+- event: JQuery.TriggeredEvent,
+- jqXHR: JQuery.jqXHR,
+- ajaxOptions: JQuery.AjaxSettings) => void | false): this;
+- /**
+- * Register a handler to be called when the first Ajax request begins. This is an Ajax Event.
+- * @param handler The function to be invoked.
+- * @see \`{@link https://api.jquery.com/ajaxStart/ }\`
+- * @since 1.0
+- * @example ````Show a loading message whenever an Ajax request starts (and none is already active).
+-```javascript
+-$( document ).ajaxStart(function() {
+- $( "#loading" ).show();
+-});
+-```
+- */
+- ajaxStart(handler: (this: Document) => void | false): this;
+- /**
+- * Register a handler to be called when all Ajax requests have completed. This is an Ajax Event.
+- * @param handler The function to be invoked.
+- * @see \`{@link https://api.jquery.com/ajaxStop/ }\`
+- * @since 1.0
+- * @example ````Hide a loading message after all the Ajax requests have stopped.
+-```javascript
+-$( document ).ajaxStop(function() {
+- $( "#loading" ).hide();
+-});
+-```
+- */
+- ajaxStop(handler: (this: Document) => void | false): this;
+- /**
+- * Attach a function to be executed whenever an Ajax request completes successfully. This is an Ajax Event.
+- * @param handler The function to be invoked.
+- * @see \`{@link https://api.jquery.com/ajaxSuccess/ }\`
+- * @since 1.0
+- * @example ````Show a message when an Ajax request completes successfully.
+-```javascript
+-$( document ).ajaxSuccess(function( event, request, settings ) {
+- $( "#msg" ).append( "Successful Request! " );
+-});
+-```
+- */
+- ajaxSuccess(handler: (this: Document,
+- event: JQuery.TriggeredEvent,
+- jqXHR: JQuery.jqXHR,
+- ajaxOptions: JQuery.AjaxSettings,
+- data: JQuery.PlainObject) => void | false): this;
+- /**
+- * Perform a custom animation of a set of CSS properties.
+- * @param properties An object of CSS properties and values that the animation will move toward.
+- * @param duration A string or number determining how long the animation will run.
+- * @param easing A string indicating which easing function to use for the transition.
+- * @param complete A function to call once the animation is complete, called once per matched element.
+- * @see \`{@link https://api.jquery.com/animate/ }\`
+- * @since 1.0
+- * @example ````An example of using an 'easing' function to provide a different style of animation. This will only work if you have a plugin that provides this easing function. Note, this code will do nothing unless the paragraph element is hidden.
+-```javascript
+-$( "p" ).animate({
+- opacity: "show"
+-}, "slow", "easein" );
+-```
+- * @example ````Animate all paragraphs and execute a callback function when the animation is complete. The first argument is an object of CSS properties, the second specifies that the animation should take 1000 milliseconds to complete, the third states the easing type, and the fourth argument is an anonymous callback function.
+-```javascript
+-$( "p" ).animate({
+- height: 200,
+- width: 400,
+- opacity: 0.5
+-}, 1000, "linear", function() {
+- alert( "all done" );
+-});
+-```
+- */
+- animate(properties: JQuery.PlainObject,
+- duration: JQuery.Duration,
+- easing: string,
+- complete?: (this: TElement) => void): this;
+- /**
+- * Perform a custom animation of a set of CSS properties.
+- * @param properties An object of CSS properties and values that the animation will move toward.
+- * @param duration_easing _@param_ `duration_easing`
+- *
+- * * `duration` — A string or number determining how long the animation will run.
+- * * `easing` — A string indicating which easing function to use for the transition.
+- * @param complete A function to call once the animation is complete, called once per matched element.
+- * @see \`{@link https://api.jquery.com/animate/ }\`
+- * @since 1.0
+- * @example ````Click the button to animate the div with a number of different properties.
+-```html
+-
+-
+-
+-
+- animate demo
+-
+-
+-
+-
+-
+-» Run
+-Hello!
+-
+-
+-
+-
+-
+-```
+- * @example ````Animates a div's left property with a relative value. Click several times on the buttons to see the relative animations queued up.
+-```html
+-
+-
+-
+-
+- animate demo
+-
+-
+-
+-
+-
+-«
+-»
+-
+-
+-
+-
+-
+-
+-```
+- * @example ````Animate all paragraphs to toggle both height and opacity, completing the animation within 600 milliseconds.
+-```javascript
+-$( "p" ).animate({
+- height: "toggle",
+- opacity: "toggle"
+-}, "slow" );
+-```
+- * @example ````Animate all paragraphs to a left style of 50 and opacity of 1 (opaque, visible), completing the animation within 500 milliseconds.
+-```javascript
+-$( "p" ).animate({
+- left: 50,
+- opacity: 1
+-}, 500 );
+-```
+- */
+- animate(properties: JQuery.PlainObject,
+- duration_easing: JQuery.Duration | string,
+- complete?: (this: TElement) => void): this;
+- /**
+- * Perform a custom animation of a set of CSS properties.
+- * @param properties An object of CSS properties and values that the animation will move toward.
+- * @param options A map of additional options to pass to the method.
+- * @see \`{@link https://api.jquery.com/animate/ }\`
+- * @since 1.0
+- * @example ````The first button shows how an unqueued animation works. It expands the div out to 90% width while the font-size is increasing. Once the font-size change is complete, the border animation will begin.
++// interface JQuery extends Iterable {
++// /**
++// * A string containing the jQuery version number.
++// * @see \`{@link https://api.jquery.com/jquery-2/#jquery1 }\`
++// * @since 1.0
++// * @example ````Determine if an object is a jQuery object
++// ```javascript
++// var a = { what: "A regular JS object" },
++// b = $( "body" );
++//
++// if ( a.jquery ) { // Falsy, since it's undefined
++// alert( "a is a jQuery object!" );
++// }
++//
++// if ( b.jquery ) { // Truthy, since it's a string
++// alert( "b is a jQuery object!" );
++// }
++// ```
++// * @example ````Get the current version of jQuery running on the page
++// ```javascript
++// alert( "You are running jQuery version: " + $.fn.jquery );
++// ```
++// */
++// jquery: string;
++// /**
++// * The number of elements in the jQuery object.
++// * @see \`{@link https://api.jquery.com/length/ }\`
++// * @since 1.0
++// * @example ````Count the divs. Click to add more.
++// ```html
++//
++//
++//
++//
++// length demo
++//
++//
++//
++//
++//
++//
++//
++//
++//
++//
++// ```
++// */
++// length: number;
++// /**
++// * Create a new jQuery object with elements added to the set of matched elements.
++// * @param selector A string representing a selector expression to find additional elements to add to the set of matched elements.
++// * @param context The point in the document at which the selector should begin matching; similar to the context
++// * argument of the $(selector, context) method.
++// * @see \`{@link https://api.jquery.com/add/ }\`
++// * @since 1.4
++// */
++// add(selector: JQuery.Selector, context: Element): this;
++// // TODO: The return type should reflect newly selected types.
++// /**
++// * Create a new jQuery object with elements added to the set of matched elements.
++// * @param selector_elements_html_selection _@param_ `selector_elements_html_selection`
++// *
++// * * `selector` — A string representing a selector expression to find additional elements to add to the set of matched elements.
++// * * `elements` — One or more elements to add to the set of matched elements.
++// * * `html` — An HTML fragment to add to the set of matched elements.
++// * * `selection` — An existing jQuery object to add to the set of matched elements.
++// * @see \`{@link https://api.jquery.com/add/ }\`
++// * @since 1.0
++// * @since 1.3.2
++// * @example ````Finds all divs and makes a border. Then adds all paragraphs to the jQuery object to set their backgrounds yellow.
++// ```html
++//
++//
++//
++//
++// add demo
++//
++//
++//
++//
++//
++//
++//
++//
++//
++//
++//
++//
++// Added this... (notice no border)
++//
++//
++//
++//
++//
++// ```
++// * @example ````Adds more elements, matched by the given expression, to the set of matched elements.
++// ```html
++//
++//
++//
++//
++// add demo
++//
++//
++//
++//
++// Hello
++// Hello Again
++//
++//
++//
++//
++//
++// ```
++// * @example ````Adds more elements, created on the fly, to the set of matched elements.
++// ```html
++//
++//
++//
++//
++// add demo
++//
++//
++//
++//
++// Hello
++//
++//
++//
++//
++//
++// ```
++// * @example ````Adds one or more Elements to the set of matched elements.
++// ```html
++//
++//
++//
++//
++// add demo
++//
++//
++//
++//
++// Hello
++// Hello Again
++//
++//
++//
++//
++//
++// ```
++// * @example ````Demonstrates how to add (or push) elements to an existing collection
++// ```html
++//
++//
++//
++//
++// add demo
++//
++//
++//
++//
++// Hello
++// Hello Again
++//
++//
++//
++//
++//
++// ```
++// */
++// add(selector_elements_html_selection: JQuery.Selector | JQuery.TypeOrArray | JQuery.htmlString | JQuery | JQuery.Node): this;
++// /**
++// * Add the previous set of elements on the stack to the current set, optionally filtered by a selector.
++// * @param selector A string containing a selector expression to match the current set of elements against.
++// * @see \`{@link https://api.jquery.com/addBack/ }\`
++// * @since 1.8
++// * @example ````The .addBack() method causes the previous set of DOM elements in the traversal stack to be added to the current set. In the first example, the top stack contains the set resulting from .find("p"). In the second example, .addBack() adds the previous set of elements on the stack — in this case $("div.after-addback") — to the current set, selecting both the div and its enclosed paragraphs.
++// ```html
++//
++//
++//
++//
++// addBack demo
++//
++//
++//
++//
++//
++//
++//
Before addBack()
++//
++//
First Paragraph
++//
Second Paragraph
++//
++//
++//
++//
After addBack()
++//
++//
First Paragraph
++//
Second Paragraph
++//
++//
++//
++//
++//
++//
++//
++// ```
++// */
++// addBack(selector?: JQuery.Selector): this;
++// /**
++// * Adds the specified class(es) to each element in the set of matched elements.
++// * @param className_function _@param_ `className_function`
++// *
++// * * `className` — One or more space-separated classes to be added to the class attribute of each matched element.
++// * * `function` — A function returning one or more space-separated class names to be added to the existing class
++// * name(s). Receives the index position of the element in the set and the existing class name(s) as
++// * arguments. Within the function, `this` refers to the current element in the set.
++// * @see \`{@link https://api.jquery.com/addClass/ }\`
++// * @since 1.0
++// * @since 1.4
++// * @since 3.3
++// * @example ````Add the class "selected" to the matched elements.
++// ```html
++//
++//
++//
++//
++// addClass demo
++//
++//
++//
++//
++//
++// Hello
++// and
++// Goodbye
++//
++//
++//
++//
++//
++// ```
++// * @example ````Add the classes "selected" and "highlight" to the matched elements.
++// ```html
++//
++//
++//
++//
++// addClass demo
++//
++//
++//
++//
++//
++// Hello
++// and
++// Goodbye
++//
++//
++//
++//
++//
++// ```
++// * @example ````Pass in a function to .addClass() to add the "green" class to a div that already has a "red" class.
++// ```html
++//
++//
++//
++//
++// addClass demo
++//
++//
++//
++//
++//
++// This div should be white
++// This div will be green because it now has the "green" and "red" classes.
++// It would be red if the addClass function failed.
++// This div should be white
++// There are zero green divs
++//
++//
++//
++//
++//
++// ```
++// */
++// addClass(className_function: JQuery.TypeOrArray | ((this: TElement, index: number, currentClassName: string) => string)): this;
++// /**
++// * Insert content, specified by the parameter, after each element in the set of matched elements.
++// * @param contents One or more additional DOM elements, text nodes, arrays of elements and text nodes, HTML strings, or
++// * jQuery objects to insert after each element in the set of matched elements.
++// * @see \`{@link https://api.jquery.com/after/ }\`
++// * @since 1.0
++// * @example ````Inserts some HTML after all paragraphs.
++// ```html
++//
++//
++//
++//
++// after demo
++//
++//
++//
++//
++//
++// I would like to say:
++//
++//
++//
++//
++//
++// ```
++// * @example ````Inserts a DOM element after all paragraphs.
++// ```html
++//
++//
++//
++//
++// after demo
++//
++//
++//
++//
++//
++// I would like to say:
++//
++//
++//
++//
++//
++// ```
++// * @example ````Inserts a jQuery object (similar to an Array of DOM Elements) after all paragraphs.
++// ```html
++//
++//
++//
++//
++// after demo
++//
++//
++//
++//
++//
++// Hello
++// I would like to say:
++//
++//
++//
++//
++//
++// ```
++// */
++// after(...contents: Array>>): this;
++// /**
++// * Insert content, specified by the parameter, after each element in the set of matched elements.
++// * @param function_functionーhtml _@param_ `function_functionーhtml`
++// *
++// * * `function` — A function that returns an HTML string, DOM element(s), text node(s), or jQuery object to insert
++// * after each element in the set of matched elements. Receives the index position of the element in the
++// * set as an argument. Within the function, `this` refers to the current element in the set.
++// * * `functionーhtml` — A function that returns an HTML string, DOM element(s), text node(s), or jQuery object to insert
++// * after each element in the set of matched elements. Receives the index position of the element in the
++// * set and the old HTML value of the element as arguments. Within the function, `this` refers to the
++// * current element in the set.
++// * @see \`{@link https://api.jquery.com/after/ }\`
++// * @since 1.4
++// * @since 1.10
++// */
++// after(function_functionーhtml: (this: TElement, index: number, html: string) => JQuery.htmlString | JQuery.TypeOrArray>): this;
++// /**
++// * Register a handler to be called when Ajax requests complete. This is an AjaxEvent.
++// * @param handler The function to be invoked.
++// * @see \`{@link https://api.jquery.com/ajaxComplete/ }\`
++// * @since 1.0
++// * @example ````Show a message when an Ajax request completes.
++// ```javascript
++// $( document ).ajaxComplete(function( event, request, settings ) {
++// $( "#msg" ).append( "Request Complete. " );
++// });
++// ```
++// */
++// ajaxComplete(handler: (this: Document,
++// event: JQuery.TriggeredEvent,
++// jqXHR: JQuery.jqXHR,
++// ajaxOptions: JQuery.AjaxSettings) => void | false): this;
++// /**
++// * Register a handler to be called when Ajax requests complete with an error. This is an Ajax Event.
++// * @param handler The function to be invoked.
++// * @see \`{@link https://api.jquery.com/ajaxError/ }\`
++// * @since 1.0
++// * @example ````Show a message when an Ajax request fails.
++// ```javascript
++// $( document ).ajaxError(function( event, request, settings ) {
++// $( "#msg" ).append( "Error requesting page " + settings.url + " " );
++// });
++// ```
++// */
++// ajaxError(handler: (this: Document,
++// event: JQuery.TriggeredEvent,
++// jqXHR: JQuery.jqXHR,
++// ajaxSettings: JQuery.AjaxSettings,
++// thrownError: string) => void | false): this;
++// /**
++// * Attach a function to be executed before an Ajax request is sent. This is an Ajax Event.
++// * @param handler The function to be invoked.
++// * @see \`{@link https://api.jquery.com/ajaxSend/ }\`
++// * @since 1.0
++// * @example ````Show a message before an Ajax request is sent.
++// ```javascript
++// $( document ).ajaxSend(function( event, request, settings ) {
++// $( "#msg" ).append( "Starting request at " + settings.url + " " );
++// });
++// ```
++// */
++// ajaxSend(handler: (this: Document,
++// event: JQuery.TriggeredEvent,
++// jqXHR: JQuery.jqXHR,
++// ajaxOptions: JQuery.AjaxSettings) => void | false): this;
++// /**
++// * Register a handler to be called when the first Ajax request begins. This is an Ajax Event.
++// * @param handler The function to be invoked.
++// * @see \`{@link https://api.jquery.com/ajaxStart/ }\`
++// * @since 1.0
++// * @example ````Show a loading message whenever an Ajax request starts (and none is already active).
++// ```javascript
++// $( document ).ajaxStart(function() {
++// $( "#loading" ).show();
++// });
++// ```
++// */
++// ajaxStart(handler: (this: Document) => void | false): this;
++// /**
++// * Register a handler to be called when all Ajax requests have completed. This is an Ajax Event.
++// * @param handler The function to be invoked.
++// * @see \`{@link https://api.jquery.com/ajaxStop/ }\`
++// * @since 1.0
++// * @example ````Hide a loading message after all the Ajax requests have stopped.
++// ```javascript
++// $( document ).ajaxStop(function() {
++// $( "#loading" ).hide();
++// });
++// ```
++// */
++// ajaxStop(handler: (this: Document) => void | false): this;
++// /**
++// * Attach a function to be executed whenever an Ajax request completes successfully. This is an Ajax Event.
++// * @param handler The function to be invoked.
++// * @see \`{@link https://api.jquery.com/ajaxSuccess/ }\`
++// * @since 1.0
++// * @example ````Show a message when an Ajax request completes successfully.
++// ```javascript
++// $( document ).ajaxSuccess(function( event, request, settings ) {
++// $( "#msg" ).append( "Successful Request! " );
++// });
++// ```
++// */
++// ajaxSuccess(handler: (this: Document,
++// event: JQuery.TriggeredEvent,
++// jqXHR: JQuery.jqXHR,
++// ajaxOptions: JQuery.AjaxSettings,
++// data: JQuery.PlainObject) => void | false): this;
++// /**
++// * Perform a custom animation of a set of CSS properties.
++// * @param properties An object of CSS properties and values that the animation will move toward.
++// * @param duration A string or number determining how long the animation will run.
++// * @param easing A string indicating which easing function to use for the transition.
++// * @param complete A function to call once the animation is complete, called once per matched element.
++// * @see \`{@link https://api.jquery.com/animate/ }\`
++// * @since 1.0
++// * @example ````An example of using an 'easing' function to provide a different style of animation. This will only work if you have a plugin that provides this easing function. Note, this code will do nothing unless the paragraph element is hidden.
++// ```javascript
++// $( "p" ).animate({
++// opacity: "show"
++// }, "slow", "easein" );
++// ```
++// * @example ````Animate all paragraphs and execute a callback function when the animation is complete. The first argument is an object of CSS properties, the second specifies that the animation should take 1000 milliseconds to complete, the third states the easing type, and the fourth argument is an anonymous callback function.
++// ```javascript
++// $( "p" ).animate({
++// height: 200,
++// width: 400,
++// opacity: 0.5
++// }, 1000, "linear", function() {
++// alert( "all done" );
++// });
++// ```
++// */
++// animate(properties: JQuery.PlainObject,
++// duration: JQuery.Duration,
++// easing: string,
++// complete?: (this: TElement) => void): this;
++// /**
++// * Perform a custom animation of a set of CSS properties.
++// * @param properties An object of CSS properties and values that the animation will move toward.
++// * @param duration_easing _@param_ `duration_easing`
++// *
++// * * `duration` — A string or number determining how long the animation will run.
++// * * `easing` — A string indicating which easing function to use for the transition.
++// * @param complete A function to call once the animation is complete, called once per matched element.
++// * @see \`{@link https://api.jquery.com/animate/ }\`
++// * @since 1.0
++// * @example ````Click the button to animate the div with a number of different properties.
++// ```html
++//
++//
++//
++//
++// animate demo
++//
++//
++//
++//
++//
++// » Run
++// Hello!
++//
++//
++//
++//
++//
++// ```
++// * @example ````Animates a div's left property with a relative value. Click several times on the buttons to see the relative animations queued up.
++// ```html
++//
++//
++//
++//
++// animate demo
++//
++//
++//
++//
++//
++// «
++// »
++//
++//
++//
++//
++//
++//
++// ```
++// * @example ````Animate all paragraphs to toggle both height and opacity, completing the animation within 600 milliseconds.
++// ```javascript
++// $( "p" ).animate({
++// height: "toggle",
++// opacity: "toggle"
++// }, "slow" );
++// ```
++// * @example ````Animate all paragraphs to a left style of 50 and opacity of 1 (opaque, visible), completing the animation within 500 milliseconds.
++// ```javascript
++// $( "p" ).animate({
++// left: 50,
++// opacity: 1
++// }, 500 );
++// ```
++// */
++// animate(properties: JQuery.PlainObject,
++// duration_easing: JQuery.Duration | string,
++// complete?: (this: TElement) => void): this;
++// /**
++// * Perform a custom animation of a set of CSS properties.
++// * @param properties An object of CSS properties and values that the animation will move toward.
++// * @param options A map of additional options to pass to the method.
++// * @see \`{@link https://api.jquery.com/animate/ }\`
++// * @since 1.0
++// * @example ````The first button shows how an unqueued animation works. It expands the div out to 90% width while the font-size is increasing. Once the font-size change is complete, the border animation will begin.
+
+-The second button starts a traditional chained animation, where each animation will start once the previous animation on the element has completed.
+-```html
+-
+-
+-
+-
+- animate demo
+-
+-
+-
+-
+-
+-» Animate Block1
+-» Animate Block2
+-» Animate Both
+-» Reset
+-Block1
+-Block2
+-
+-
+-
+-
+-
+-```
+- * @example ````Animates the first div's left property and synchronizes the remaining divs, using the step function to set their left properties at each stage of the animation.
+-```html
+-
+-
+-
+-
+- animate demo
+-
+-
+-
+-
+-
+-Run »
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-```
+- * @example ````Animate the left and opacity style properties of all paragraphs; run the animation outside the queue, so that it will automatically start without waiting for its turn.
+-```javascript
+-$( "p" ).animate({
+- left: "50px",
+- opacity: 1
+-}, {
+- duration: 500,
+- queue: false
+-});
+-```
+- * @example ````Animates all paragraphs to toggle both height and opacity, completing the animation within 600 milliseconds.
+-```javascript
+-$( "p" ).animate({
+- height: "toggle",
+- opacity: "toggle"
+-}, {
+- duration: "slow"
+-});
+-```
+- * @example ````Use an easing function to provide a different style of animation. This will only work if you have a plugin that provides this easing function.
+-```javascript
+-$( "p" ).animate({
+- opacity: "show"
+-}, {
+- duration: "slow",
+- easing: "easein"
+-});
+-```
+- */
+- animate(properties: JQuery.PlainObject,
+- options: JQuery.EffectsOptions): this;
+- /**
+- * Perform a custom animation of a set of CSS properties.
+- * @param properties An object of CSS properties and values that the animation will move toward.
+- * @param complete A function to call once the animation is complete, called once per matched element.
+- * @see \`{@link https://api.jquery.com/animate/ }\`
+- * @since 1.0
+- */
+- animate(properties: JQuery.PlainObject,
+- complete?: (this: TElement) => void): this;
+- /**
+- * Insert content, specified by the parameter, to the end of each element in the set of matched elements.
+- * @param contents One or more additional DOM elements, text nodes, arrays of elements and text nodes, HTML strings, or
+- * jQuery objects to insert at the end of each element in the set of matched elements.
+- * @see \`{@link https://api.jquery.com/append/ }\`
+- * @since 1.0
+- * @example ````Appends some HTML to all paragraphs.
+-```html
+-
+-
+-
+-
+- append demo
+-
+-
+-
+-
+-
+-I would like to say:
+-
+-
+-
+-
+-
+-```
+- * @example ````Appends an Element to all paragraphs.
+-```html
+-
+-
+-
+-
+- append demo
+-
+-
+-
+-
+-
+-I would like to say:
+-
+-
+-
+-
+-
+-```
+- * @example ````Appends a jQuery object (similar to an Array of DOM Elements) to all paragraphs.
+-```html
+-
+-
+-
+-
+- append demo
+-
+-
+-
+-
+-
+-Hello world!!!
+-I would like to say:
+-
+-
+-
+-
+-
+-```
+- */
+- append(...contents: Array>>): this;
+- /**
+- * Insert content, specified by the parameter, to the end of each element in the set of matched elements.
+- * @param funсtion A function that returns an HTML string, DOM element(s), text node(s), or jQuery object to insert at
+- * the end of each element in the set of matched elements. Receives the index position of the element
+- * in the set and the old HTML value of the element as arguments. Within the function, `this` refers to
+- * the current element in the set.
+- * @see \`{@link https://api.jquery.com/append/ }\`
+- * @since 1.4
+- */
+- append(funсtion: (this: TElement, index: number, html: string) => JQuery.htmlString | JQuery.TypeOrArray>): this;
+- /**
+- * Insert every element in the set of matched elements to the end of the target.
+- * @param target A selector, element, HTML string, array of elements, or jQuery object; the matched set of elements
+- * will be inserted at the end of the element(s) specified by this parameter.
+- * @see \`{@link https://api.jquery.com/appendTo/ }\`
+- * @since 1.0
+- * @example ````Append all spans to the element with the ID "foo" (Check append() documentation for more examples)
+-```html
+-
+-
+-
+-
+- appendTo demo
+-
+-
+-
+-
+-
+-I have nothing more to say...
+-
+-FOO!
+-
+-
+-
+-
+-
+-```
+- */
+- appendTo(target: JQuery.Selector | JQuery.htmlString | JQuery.TypeOrArray | JQuery): this;
+- /**
+- * Set one or more attributes for the set of matched elements.
+- * @param attributeName The name of the attribute to set.
+- * @param value_function _@param_ `value_function`
+- *
+- * * `value` — A value to set for the attribute. If `null`, the specified attribute will be removed (as in \`{@link removeAttr .removeAttr()}`).
+- * * `function` — A function returning the value to set. `this` is the current element. Receives the index position of
+- * the element in the set and the old attribute value as arguments.
+- * @see \`{@link https://api.jquery.com/attr/ }\`
+- * @since 1.0
+- * @since 1.1
+- * @example ````Set the id for divs based on the position in the page.
+-```html
+-
+-
+-
+-
+- attr demo
+-
+-
+-
+-
+-
+-Zero-th
+-First
+-Second
+-
+-
+-
+-
+-
+-```
+- * @example ````Set the src attribute from title attribute on the image.
+-```html
+-
+-
+-
+-
+- attr demo
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-```
+- */
+- attr(attributeName: string,
+- value_function: string | number | null | ((this: TElement, index: number, attr: string) => string | number | void | undefined)): this;
+- /**
+- * Set one or more attributes for the set of matched elements.
+- * @param attributes An object of attribute-value pairs to set.
+- * @see \`{@link https://api.jquery.com/attr/ }\`
+- * @since 1.0
+- * @example ````Set some attributes for all <img>s in the page.
+-```html
+-
+-
+-
+-
+- attr demo
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-Attribute of Ajax
+-
+-
+-
+-
+-
+-```
+- */
+- attr(attributes: JQuery.PlainObject): this;
+- /**
+- * Get the value of an attribute for the first element in the set of matched elements.
+- * @param attributeName The name of the attribute to get.
+- * @see \`{@link https://api.jquery.com/attr/ }\`
+- * @since 1.0
+- * @example ````Display the checked attribute and property of a checkbox as it changes.
+-```html
+-
+-
+-
+-
+- attr demo
+-
+-
+-
+-
+-
+-
+-Check me
+-
+-
+-
+-
+-
+-
+-```
+- * @example ````Find the title attribute of the first <em> in the page.
+-```html
+-
+-
+-
+-
+- attr demo
+-
+-
+-
+-
+-
+-Once there was a large dinosaur...
+-
+-The title of the emphasis is:
+-
+-
+-
+-
+-
+-```
+- */
+- attr(attributeName: string): string | undefined;
+- /**
+- * Insert content, specified by the parameter, before each element in the set of matched elements.
+- * @param contents One or more additional DOM elements, text nodes, arrays of elements and text nodes, HTML strings, or
+- * jQuery objects to insert before each element in the set of matched elements.
+- * @see \`{@link https://api.jquery.com/before/ }\`
+- * @since 1.0
+- * @example ````Inserts some HTML before all paragraphs.
+-```html
+-
+-
+-
+-
+- before demo
+-
+-
+-
+-
+-
+- is what I said...
+-
+-
+-
+-
+-
+-```
+- * @example ````Inserts a DOM element before all paragraphs.
+-```html
+-
+-
+-
+-
+- before demo
+-
+-
+-
+-
+-
+- is what I said...
+-
+-
+-
+-
+-
+-```
+- * @example ````Inserts a jQuery object (similar to an Array of DOM Elements) before all paragraphs.
+-```html
+-
+-
+-
+-
+- before demo
+-
+-
+-
+-
+-
+- is what I said...
Hello
+-
+-
+-
+-
+-
+-```
+- */
+- before(...contents: Array>>): this;
+- /**
+- * Insert content, specified by the parameter, before each element in the set of matched elements.
+- * @param function_functionーhtml _@param_ `function_functionーhtml`
+- *
+- * * `function` — A function that returns an HTML string, DOM element(s), text node(s), or jQuery object to insert
+- * before each element in the set of matched elements. Receives the index position of the element in
+- * the set as an argument. Within the function, `this` refers to the current element in the set.
+- * * `functionーhtml` — A function that returns an HTML string, DOM element(s), text node(s), or jQuery object to insert
+- * before each element in the set of matched elements. Receives the index position of the element in
+- * the set and the old HTML value of the element as arguments. Within the function, `this` refers to the
+- * current element in the set.
+- * @see \`{@link https://api.jquery.com/before/ }\`
+- * @since 1.4
+- * @since 1.10
+- */
+- before(function_functionーhtml: (this: TElement, index: number, html: string) => JQuery.htmlString | JQuery.TypeOrArray>): this;
+- // [bind() overloads] https://github.com/jquery/api.jquery.com/issues/1048
+- /**
+- * Attach a handler to an event for the elements.
+- * @param eventType A string containing one or more DOM event types, such as "click" or "submit," or custom event names.
+- * @param eventData An object containing data that will be passed to the event handler.
+- * @param handler A function to execute each time the event is triggered.
+- * @see \`{@link https://api.jquery.com/bind/ }\`
+- * @since 1.0
+- * @since 1.4.3
+- * @deprecated Deprecated since 3.0. Use \`{@link on }\`.
+- *
+- * **Cause**: These event binding methods have been deprecated in favor of the `.on()` and `.off()` methods which can handle both delegated and direct event binding. Although the older methods are still present in jQuery 3.0, they may be removed as early as the next major-version update.
+- *
+- * **Solution**: Change the method call to use `.on()` or `.off()`, the documentation for the old methods include specific instructions. In general, the `.bind()` and `.unbind()` methods can be renamed directly to `.on()` and `.off()` respectively since the argument orders are identical.
+- */
+- bind(
+- eventType: TType,
+- eventData: TData,
+- handler: JQuery.TypeEventHandler
+- ): this;
+- /**
+- * Attach a handler to an event for the elements.
+- * @param eventType A string containing one or more DOM event types, such as "click" or "submit," or custom event names.
+- * @param handler_preventBubble _@param_ `handler_preventBubble`
+- *
+- * * `handler` — A function to execute each time the event is triggered.
+- * * `preventBubble` — Setting the third argument to false will attach a function that prevents the default action from
+- * occurring and stops the event from bubbling. The default is `true`.
+- * @see \`{@link https://api.jquery.com/bind/ }\`
+- * @since 1.0
+- * @since 1.4.3
+- * @deprecated Deprecated since 3.0. Use \`{@link on }\`.
+- *
+- * **Cause**: These event binding methods have been deprecated in favor of the `.on()` and `.off()` methods which can handle both delegated and direct event binding. Although the older methods are still present in jQuery 3.0, they may be removed as early as the next major-version update.
+- *
+- * **Solution**: Change the method call to use `.on()` or `.off()`, the documentation for the old methods include specific instructions. In general, the `.bind()` and `.unbind()` methods can be renamed directly to `.on()` and `.off()` respectively since the argument orders are identical.
+- * @example ````Handle click and double-click for the paragraph. Note: the coordinates are window relative, so in this case relative to the demo iframe.
+-```html
+-
+-
+-
+-
+- bind demo
+-
+-
+-
+-
+-
+-Click or double click here.
+-
+-
+-
+-
+-
+-
+-```
+- * @example ````To display each paragraph's text in an alert box whenever it is clicked:
+-```javascript
+-$( "p" ).bind( "click", function() {
+- alert( $( this ).text() );
+-});
+-```
+- * @example ````Cancel a default action and prevent it from bubbling up by returning false:
+-```javascript
+-$( "form" ).bind( "submit", function() {
+- return false;
+-})
+-```
+- * @example ````Cancel only the default action by using the .preventDefault() method.
+-```javascript
+-$( "form" ).bind( "submit", function( event ) {
+- event.preventDefault();
+-});
+-```
+- * @example ````Stop an event from bubbling without preventing the default action by using the .stopPropagation() method.
+-```javascript
+-$( "form" ).bind( "submit", function( event ) {
+- event.stopPropagation();
+-});
+-```
+- * @example ````Bind custom events.
+-```html
+-
+-
+-
+-
+- bind demo
+-
+-
+-
+-
+-
+-Has an attached custom event.
+-Trigger custom event
+-
+-
+-
+-
+-
+-
+-```
+- */
+- bind(
+- eventType: TType,
+- handler_preventBubble: JQuery.TypeEventHandler |
+- false |
+- null |
+- undefined
+- ): this;
+- /**
+- * Attach a handler to an event for the elements.
+- * @param events An object containing one or more DOM event types and functions to execute for them.
+- * @see \`{@link https://api.jquery.com/bind/ }\`
+- * @since 1.4
+- * @deprecated Deprecated since 3.0. Use \`{@link on }\`.
+- *
+- * **Cause**: These event binding methods have been deprecated in favor of the `.on()` and `.off()` methods which can handle both delegated and direct event binding. Although the older methods are still present in jQuery 3.0, they may be removed as early as the next major-version update.
+- *
+- * **Solution**: Change the method call to use `.on()` or `.off()`, the documentation for the old methods include specific instructions. In general, the `.bind()` and `.unbind()` methods can be renamed directly to `.on()` and `.off()` respectively since the argument orders are identical.
+- * @example ````Bind multiple events simultaneously.
+-```javascript
+-$( "div.test" ).bind({
+- click: function() {
+- $( this ).addClass( "active" );
+- },
+- mouseenter: function() {
+- $( this ).addClass( "inside" );
+- },
+- mouseleave: function() {
+- $( this ).removeClass( "inside" );
+- }
+-});
+-```
+- */
+- bind(events: JQuery.TypeEventHandlers): this;
+- /**
+- * Bind an event handler to the "blur" JavaScript event, or trigger that event on an element.
+- * @param eventData An object containing data that will be passed to the event handler.
+- * @param handler A function to execute each time the event is triggered.
+- * @see \`{@link https://api.jquery.com/blur/ }\`
+- * @since 1.4.3
+- * @deprecated Deprecated since 3.3. Use \`{@link on }\` or \`{@link trigger }\`.
+- *
+- * **Cause**: The `.on()` and `.trigger()` methods can set an event handler or generate an event for any event type, and should be used instead of the shortcut methods. This message also applies to the other event shorthands, including: blur, focus, focusin, focusout, resize, scroll, dblclick, mousedown, mouseup, mousemove, mouseover, mouseout, mouseenter, mouseleave, change, select, submit, keydown, keypress, keyup, and contextmenu.
+- *
+- * **Solution**: Instead of `.click(fn)` use `.on("click", fn)`. Instead of `.click()` use `.trigger("click")`.
+- */
+- blur(eventData: TData,
+- handler: JQuery.TypeEventHandler): this;
+- /**
+- * Bind an event handler to the "blur" JavaScript event, or trigger that event on an element.
+- * @param handler A function to execute each time the event is triggered.
+- * @see \`{@link https://api.jquery.com/blur/ }\`
+- * @since 1.0
+- * @deprecated Deprecated since 3.3. Use \`{@link on }\` or \`{@link trigger }\`.
+- *
+- * **Cause**: The `.on()` and `.trigger()` methods can set an event handler or generate an event for any event type, and should be used instead of the shortcut methods. This message also applies to the other event shorthands, including: blur, focus, focusin, focusout, resize, scroll, dblclick, mousedown, mouseup, mousemove, mouseover, mouseout, mouseenter, mouseleave, change, select, submit, keydown, keypress, keyup, and contextmenu.
+- *
+- * **Solution**: Instead of `.click(fn)` use `.on("click", fn)`. Instead of `.click()` use `.trigger("click")`.
+- * @example ````To trigger the blur event on all paragraphs:
+-```javascript
+-$( "p" ).blur();
+-```
+- */
+- blur(handler?: JQuery.TypeEventHandler |
+- false): this;
+- /**
+- * Bind an event handler to the "change" JavaScript event, or trigger that event on an element.
+- * @param eventData An object containing data that will be passed to the event handler.
+- * @param handler A function to execute each time the event is triggered.
+- * @see \`{@link https://api.jquery.com/change/ }\`
+- * @since 1.4.3
+- * @deprecated Deprecated since 3.3. Use \`{@link on }\` or \`{@link trigger }\`.
+- *
+- * **Cause**: The `.on()` and `.trigger()` methods can set an event handler or generate an event for any event type, and should be used instead of the shortcut methods. This message also applies to the other event shorthands, including: blur, focus, focusin, focusout, resize, scroll, dblclick, mousedown, mouseup, mousemove, mouseover, mouseout, mouseenter, mouseleave, change, select, submit, keydown, keypress, keyup, and contextmenu.
+- *
+- * **Solution**: Instead of `.click(fn)` use `.on("click", fn)`. Instead of `.click()` use `.trigger("click")`.
+- */
+- change(eventData: TData,
+- handler: JQuery.TypeEventHandler): this;
+- /**
+- * Bind an event handler to the "change" JavaScript event, or trigger that event on an element.
+- * @param handler A function to execute each time the event is triggered.
+- * @see \`{@link https://api.jquery.com/change/ }\`
+- * @since 1.0
+- * @deprecated Deprecated since 3.3. Use \`{@link on }\` or \`{@link trigger }\`.
+- *
+- * **Cause**: The `.on()` and `.trigger()` methods can set an event handler or generate an event for any event type, and should be used instead of the shortcut methods. This message also applies to the other event shorthands, including: blur, focus, focusin, focusout, resize, scroll, dblclick, mousedown, mouseup, mousemove, mouseover, mouseout, mouseenter, mouseleave, change, select, submit, keydown, keypress, keyup, and contextmenu.
+- *
+- * **Solution**: Instead of `.click(fn)` use `.on("click", fn)`. Instead of `.click()` use `.trigger("click")`.
+- * @example ````Attaches a change event to the select that gets the text for each selected option and writes them in the div. It then triggers the event for the initial text draw.
+-```html
+-
+-
+-
+-
+- change demo
+-
+-
+-
+-
+-
+-
+- Chocolate
+- Candy
+- Taffy
+- Caramel
+- Fudge
+- Cookie
+-
+-
+-
+-
+-
+-
+-
+-```
+- * @example ````To add a validity test to all text input elements:
+-```javascript
+-$( "input[type='text']" ).change(function() {
+- // Check input( $( this ).val() ) for validity here
+-});
+-```
+- */
+- change(handler?: JQuery.TypeEventHandler |
+- false): this;
+- /**
+- * Get the children of each element in the set of matched elements, optionally filtered by a selector.
+- * @param selector A string containing a selector expression to match elements against.
+- * @see \`{@link https://api.jquery.com/children/ }\`
+- * @since 1.0
+- * @example ````Find all children of the clicked element.
+-```html
+-
+-
+-
+-
+- children demo
+-
+-
+-
+-
+-
+-
+-
+-
This is the way we
+- write the demo,
+-
+-
+-
+-
w rite the
demo, write
+- the demo,
+-
+-
+-
+- This the way we write the demo so
+- in
+-
+-
+-
+- t he m orning.
+- Found 0 children in TAG .
+-
+-
+-
+-
+-
+-
+-
+-```
+- * @example ````Find all children of each div.
+-```html
+-
+-
+-
+-
+- children demo
+-
+-
+-
+-
+-
+-Hello (this is a paragraph)
+-
+-Hello Again (this span is a child of the a div)
+-And Again (in another paragraph)
+-
+-And One Last Time (most text directly in a div)
+-
+-
+-
+-
+-
+-```
+- * @example ````Find all children with a class "selected" of each div.
+-```html
+-
+-
+-
+-
+- children demo
+-
+-
+-
+-
+-
+-
+-
Hello
+-
Hello Again
+-
And Again
+-
And One Last Time
+-
+-
+-
+-
+-
+-
+-```
+- */
+- children(selector?: JQuery.Selector): this;
+- /**
+- * Remove from the queue all items that have not yet been run.
+- * @param queueName A string containing the name of the queue. Defaults to fx, the standard effects queue.
+- * @see \`{@link https://api.jquery.com/clearQueue/ }\`
+- * @since 1.4
+- * @example ````Empty the queue.
+-```html
+-
+-
+-
+-
+- clearQueue demo
+-
+-
+-
+-
+-
+-Start
+-Stop
+-
+-
+-
+-
+-
+-
+-```
+- */
+- clearQueue(queueName?: string): this;
+- /**
+- * Bind an event handler to the "click" JavaScript event, or trigger that event on an element.
+- * @param eventData An object containing data that will be passed to the event handler.
+- * @param handler A function to execute each time the event is triggered.
+- * @see \`{@link https://api.jquery.com/click/ }\`
+- * @since 1.4.3
+- * @deprecated Deprecated since 3.3. Use \`{@link on }\` or \`{@link trigger }\`.
+- *
+- * **Cause**: The `.on()` and `.trigger()` methods can set an event handler or generate an event for any event type, and should be used instead of the shortcut methods. This message also applies to the other event shorthands, including: blur, focus, focusin, focusout, resize, scroll, dblclick, mousedown, mouseup, mousemove, mouseover, mouseout, mouseenter, mouseleave, change, select, submit, keydown, keypress, keyup, and contextmenu.
+- *
+- * **Solution**: Instead of `.click(fn)` use `.on("click", fn)`. Instead of `.click()` use `.trigger("click")`.
+- */
+- click(eventData: TData,
+- handler: JQuery.TypeEventHandler): this;
+- /**
+- * Bind an event handler to the "click" JavaScript event, or trigger that event on an element.
+- * @param handler A function to execute each time the event is triggered.
+- * @see \`{@link https://api.jquery.com/click/ }\`
+- * @since 1.0
+- * @deprecated Deprecated since 3.3. Use \`{@link on }\` or \`{@link trigger }\`.
+- *
+- * **Cause**: The `.on()` and `.trigger()` methods can set an event handler or generate an event for any event type, and should be used instead of the shortcut methods. This message also applies to the other event shorthands, including: blur, focus, focusin, focusout, resize, scroll, dblclick, mousedown, mouseup, mousemove, mouseover, mouseout, mouseenter, mouseleave, change, select, submit, keydown, keypress, keyup, and contextmenu.
+- *
+- * **Solution**: Instead of `.click(fn)` use `.on("click", fn)`. Instead of `.click()` use `.trigger("click")`.
+- * @example ````Hide paragraphs on a page when they are clicked:
+-```html
+-
+-
+-
+-
+- click demo
+-
+-
+-
+-
+-
+-First Paragraph
+-Second Paragraph
+-Yet one more Paragraph
+-
+-
+-
+-
+-
+-```
+- * @example ````Trigger the click event on all of the paragraphs on the page:
+-```javascript
+-$( "p" ).click();
+-```
+- */
+- click(handler?: JQuery.TypeEventHandler |
+- false): this;
+- /**
+- * Create a deep copy of the set of matched elements.
+- * @param withDataAndEvents A Boolean indicating whether event handlers and data should be copied along with the elements. The
+- * default value is false. *In jQuery 1.5.0 the default value was incorrectly true; it was changed back
+- * to false in 1.5.1 and up.
+- * @param deepWithDataAndEvents A Boolean indicating whether event handlers and data for all children of the cloned element should
+- * be copied. By default its value matches the first argument's value (which defaults to false).
+- * @see \`{@link https://api.jquery.com/clone/ }\`
+- * @since 1.0
+- * @since 1.5
+- * @example ````Clones all b elements (and selects the clones) and prepends them to all paragraphs.
+-```html
+-
+-
+-
+-
+- clone demo
+-
+-
+-
+-
+-Hello , how are you?
+-
+-
+-
+-
+-
+-```
+- */
+- clone(withDataAndEvents?: boolean, deepWithDataAndEvents?: boolean): this;
+- /**
+- * For each element in the set, get the first element that matches the selector by testing the element itself and traversing up through its ancestors in the DOM tree.
+- * @param selector A string containing a selector expression to match elements against.
+- * @param context A DOM element within which a matching element may be found.
+- * @see \`{@link https://api.jquery.com/closest/ }\`
+- * @since 1.4
+- */
+- closest(selector: JQuery.Selector, context: Element): this;
+- /**
+- * For each element in the set, get the first element that matches the selector by testing the element itself and traversing up through its ancestors in the DOM tree.
+- * @param selector_selection_element _@param_ `selector_selection_element`
+- *
+- * * `selector` — A string containing a selector expression to match elements against.
+- * * `selection` — A jQuery object to match elements against.
+- * * `element` — An element to match elements against.
+- * @see \`{@link https://api.jquery.com/closest/ }\`
+- * @since 1.3
+- * @since 1.6
+- * @example ````Show how event delegation can be done with closest. The closest list element toggles a yellow background when it or its descendent is clicked.
+-```html
+-
+-
+-
+-
+- closest demo
+-
+-
+-
+-
+-
+-
+- Click me!
+- You can also Click me!
+-
+-
+-
+-
+-
+-
+-```
+- * @example ````Pass a jQuery object to closest. The closest list element toggles a yellow background when it or its descendent is clicked.
+-```html
+-
+-
+-
+-
+- closest demo
+-
+-
+-
+-
+-
+-
+- Click me!
+- You can also Click me!
+-
+-
+-
+-
+-
+-
+-```
+- */
+- closest(selector_selection_element: JQuery.Selector | Element | JQuery): this;
+- /**
+- * Get the children of each element in the set of matched elements, including text and comment nodes.
+- * @see \`{@link https://api.jquery.com/contents/ }\`
+- * @since 1.2
+- * @example ````Find all the text nodes inside a paragraph and wrap them with a bold tag.
+-```html
+-
+-
+-
+-
+- contents demo
+-
+-
+-
+-
+-Hello John , how are you doing?
+-
+-
+-
+-
+-
+-```
+- * @example ````Change the background color of links inside of an iframe.
+-```html
+-
+-
+-
+-
+- contents demo
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-```
+- */
+- contents(): JQuery;
+- /**
+- * Bind an event handler to the "contextmenu" JavaScript event, or trigger that event on an element.
+- * @param eventData An object containing data that will be passed to the event handler.
+- * @param handler A function to execute each time the event is triggered.
+- * @see \`{@link https://api.jquery.com/contextmenu/ }\`
+- * @since 1.4.3
+- * @deprecated Deprecated since 3.3. Use \`{@link on }\` or \`{@link trigger }\`.
+- *
+- * **Cause**: The `.on()` and `.trigger()` methods can set an event handler or generate an event for any event type, and should be used instead of the shortcut methods. This message also applies to the other event shorthands, including: blur, focus, focusin, focusout, resize, scroll, dblclick, mousedown, mouseup, mousemove, mouseover, mouseout, mouseenter, mouseleave, change, select, submit, keydown, keypress, keyup, and contextmenu.
+- *
+- * **Solution**: Instead of `.click(fn)` use `.on("click", fn)`. Instead of `.click()` use `.trigger("click")`.
+- */
+- contextmenu(eventData: TData,
+- handler: JQuery.TypeEventHandler): this;
+- /**
+- * Bind an event handler to the "contextmenu" JavaScript event, or trigger that event on an element.
+- * @param handler A function to execute each time the event is triggered.
+- * @see \`{@link https://api.jquery.com/contextmenu/ }\`
+- * @since 1.0
+- * @deprecated Deprecated since 3.3. Use \`{@link on }\` or \`{@link trigger }\`.
+- *
+- * **Cause**: The `.on()` and `.trigger()` methods can set an event handler or generate an event for any event type, and should be used instead of the shortcut methods. This message also applies to the other event shorthands, including: blur, focus, focusin, focusout, resize, scroll, dblclick, mousedown, mouseup, mousemove, mouseover, mouseout, mouseenter, mouseleave, change, select, submit, keydown, keypress, keyup, and contextmenu.
+- *
+- * **Solution**: Instead of `.click(fn)` use `.on("click", fn)`. Instead of `.click()` use `.trigger("click")`.
+- * @example ````To show a "Hello World!" alert box when the contextmenu event is triggered on a paragraph on the page:
+-```javascript
+-$( "p" ).contextmenu(function() {
+- alert( "Hello World!" );
+-});
+-```
+- * @example ````Right click to toggle background color.
+-```html
+-
+-
+-
+-
+- contextmenu demo
+-
+-
+-
+-
+-
+-
+-Right click the block
+-
+-
+-
+-
+-
+-```
+- */
+- contextmenu(handler?: JQuery.TypeEventHandler |
+- false): this;
+- /**
+- * Set one or more CSS properties for the set of matched elements.
+- * @param propertyName A CSS property name.
+- * @param value_function _@param_ `value_function`
+- *
+- * * `value` — A value to set for the property.
+- * * `function` — A function returning the value to set. `this` is the current element. Receives the index position of
+- * the element in the set and the old value as arguments.
+- * @see \`{@link https://api.jquery.com/css/ }\`
+- * @since 1.0
+- * @since 1.4
+- * @example ````Change the color of any paragraph to red on mouseover event.
+-```html
+-
+-
+-
+-
+- css demo
+-
+-
+-
+-
+-
+- Just roll the mouse over me.
+-
+- Or me to see a color change.
+-
+-
+-
+-
+-
+-```
+- * @example ````Increase the width of #box by 200 pixels the first time it is clicked.
+-```html
+-
+-
+-
+-
+- css demo
+-
+-
+-
+-
+-
+-Click me to grow
+-
+-
+-
+-
+-
+-```
+- * @example ````Highlight a clicked word in the paragraph.
+-```html
+-
+-
+-
+-
+- css demo
+-
+-
+-
+-
+-
+-
+- Once upon a time there was a man
+- who lived in a pizza parlor. This
+- man just loved pizza and ate it all
+- the time. He went on to be the
+- happiest man in the world. The end.
+-
+-
+-
+-
+-
+-
+-```
+- */
+- css(propertyName: string,
+- value_function: string | number | ((this: TElement, index: number, value: string) => string | number | void | undefined)): this;
+- /**
+- * Set one or more CSS properties for the set of matched elements.
+- * @param properties An object of property-value pairs to set.
+- * @see \`{@link https://api.jquery.com/css/ }\`
+- * @since 1.0
+- * @example ````Change the font weight and background color on mouseenter and mouseleave.
+-```html
+-
+-
+-
+-
+- css demo
+-
+-
+-
+-
+-
+-Move the mouse over a paragraph.
+-Like this one or the one above.
+-
+-
+-
+-
+-
+-```
+- * @example ````Increase the size of a div when you click it.
+-```html
+-
+-
+-
+-
+- css demo
+-
+-
+-
+-
+-
+-click
+-click
+-
+-
+-
+-
+-
+-```
+- */
+- css(properties: JQuery.PlainObject string | number | void | undefined)>): this;
+- /**
+- * Get the computed style properties for the first element in the set of matched elements.
+- * @param propertyName A CSS property.
+- * @see \`{@link https://api.jquery.com/css/ }\`
+- * @since 1.0
+- * @example ````Get the background color of a clicked div.
+-```html
+-
+-
+-
+-
+- css demo
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-```
+- */
+- css(propertyName: string): string;
+- /**
+- * Get the computed style properties for the first element in the set of matched elements.
+- * @param propertyNames An array of one or more CSS properties.
+- * @see \`{@link https://api.jquery.com/css/ }\`
+- * @since 1.9
+- * @example ````Get the width, height, text color, and background color of a clicked div.
+-```html
+-
+-
+-
+-
+- css demo
+-
+-
+-
+-
+-
+-
+-1
+-2
+-3
+-4
+-
+-
+-
+-
+-
+-```
+- */
+- css(propertyNames: string[]): JQuery.PlainObject;
+- /**
+- * Store arbitrary data associated with the matched elements.
+- * @param key A string naming the piece of data to set.
+- * @param value The new data value; this can be any Javascript type except `undefined`.
+- * @see \`{@link https://api.jquery.com/data/ }\`
+- * @since 1.2.3
+- * @example ````Store then retrieve a value from the div element.
+-```html
+-
+-
+-
+-
+- data demo
+-
+-
+-
+-
+-
+-
+- The values stored were
+-
+- and
+-
+-
+-
+-
+-
+-
+-
+-```
+- */
+- data(key: string, value: string | number | boolean | symbol | object | null): this;
+- /**
+- * Store arbitrary data associated with the matched elements.
+- * @param obj An object of key-value pairs of data to update.
+- * @see \`{@link https://api.jquery.com/data/ }\`
+- * @since 1.4.3
+- */
+- data(obj: JQuery.PlainObject): this;
+- /**
+- * Return the value at the named data store for the first element in the jQuery collection, as set by data(name, value) or by an HTML5 data-* attribute.
+- * @param key Name of the data stored.
+- * @param value `undefined` is not recognized as a data value. Calls such as `.data( "name", undefined )`
+- * will return the jQuery object that it was called on, allowing for chaining.
+- * @see \`{@link https://api.jquery.com/data/ }\`
+- * @since 1.2.3
+- */
+- // `unified-signatures` is disabled so that behavior when passing `undefined` to `value` can be documented. Unifying the signatures
+- // results in potential confusion for users from an unexpected parameter.
+- // tslint:disable-next-line:unified-signatures
+- data(key: string, value: undefined): any;
+- /**
+- * Return the value at the named data store for the first element in the jQuery collection, as set by data(name, value) or by an HTML5 data-* attribute.
+- * @param key Name of the data stored.
+- * @see \`{@link https://api.jquery.com/data/ }\`
+- * @since 1.2.3
+- * @example ````Get the data named "blah" stored at for an element.
+-```html
+-
+-
+-
+-
+- data demo
+-
+-
+-
+-
+-
+-A div
+-Get "blah" from the div
+-Set "blah" to "hello"
+-Set "blah" to 86
+-Remove "blah" from the div
+-The "blah" value of this div is ?
+-
+-
+-
+-
+-
+-```
+- */
+- data(key: string): any;
+- /**
+- * Return the value at the named data store for the first element in the jQuery collection, as set by data(name, value) or by an HTML5 data-* attribute.
+- * @see \`{@link https://api.jquery.com/data/ }\`
+- * @since 1.4
+- */
+- data(): JQuery.PlainObject;
+- /**
+- * Bind an event handler to the "dblclick" JavaScript event, or trigger that event on an element.
+- * @param eventData An object containing data that will be passed to the event handler.
+- * @param handler A function to execute each time the event is triggered.
+- * @see \`{@link https://api.jquery.com/dblclick/ }\`
+- * @since 1.4.3
+- * @deprecated Deprecated since 3.3. Use \`{@link on }\` or \`{@link trigger }\`.
+- *
+- * **Cause**: The `.on()` and `.trigger()` methods can set an event handler or generate an event for any event type, and should be used instead of the shortcut methods. This message also applies to the other event shorthands, including: blur, focus, focusin, focusout, resize, scroll, dblclick, mousedown, mouseup, mousemove, mouseover, mouseout, mouseenter, mouseleave, change, select, submit, keydown, keypress, keyup, and contextmenu.
+- *
+- * **Solution**: Instead of `.click(fn)` use `.on("click", fn)`. Instead of `.click()` use `.trigger("click")`.
+- */
+- dblclick(eventData: TData,
+- handler: JQuery.TypeEventHandler): this;
+- /**
+- * Bind an event handler to the "dblclick" JavaScript event, or trigger that event on an element.
+- * @param handler A function to execute each time the event is triggered.
+- * @see \`{@link https://api.jquery.com/dblclick/ }\`
+- * @since 1.0
+- * @deprecated Deprecated since 3.3. Use \`{@link on }\` or \`{@link trigger }\`.
+- *
+- * **Cause**: The `.on()` and `.trigger()` methods can set an event handler or generate an event for any event type, and should be used instead of the shortcut methods. This message also applies to the other event shorthands, including: blur, focus, focusin, focusout, resize, scroll, dblclick, mousedown, mouseup, mousemove, mouseover, mouseout, mouseenter, mouseleave, change, select, submit, keydown, keypress, keyup, and contextmenu.
+- *
+- * **Solution**: Instead of `.click(fn)` use `.on("click", fn)`. Instead of `.click()` use `.trigger("click")`.
+- * @example ````To bind a "Hello World!" alert box to the dblclick event on every paragraph on the page:
+-```javascript
+-$( "p" ).dblclick(function() {
+- alert( "Hello World!" );
+-});
+-```
+- * @example ````Double click to toggle background color.
+-```html
+-
+-
+-
+-
+- dblclick demo
+-
+-
+-
+-
+-
+-
+-Double click the block
+-
+-
+-
+-
+-
+-```
+- */
+- dblclick(handler?: JQuery.TypeEventHandler |
+- false): this;
+- /**
+- * Set a timer to delay execution of subsequent items in the queue.
+- * @param duration An integer indicating the number of milliseconds to delay execution of the next item in the queue.
+- * @param queueName A string containing the name of the queue. Defaults to fx, the standard effects queue.
+- * @see \`{@link https://api.jquery.com/delay/ }\`
+- * @since 1.4
+- * @example ````Animate the hiding and showing of two divs, delaying the first before showing it.
+-```html
+-
+-
+-
+-
+- delay demo
+-
+-
+-
+-
+-
+-Run
+-
+-
+-
+-
+-
+-
+-
+-```
+- */
+- delay(duration: JQuery.Duration, queueName?: string): this;
+- /**
+- * Attach a handler to one or more events for all elements that match the selector, now or in the future, based on a specific set of root elements.
+- * @param selector A selector to filter the elements that trigger the event.
+- * @param eventType A string containing one or more space-separated JavaScript event types, such as "click" or
+- * "keydown," or custom event names.
+- * @param eventData An object containing data that will be passed to the event handler.
+- * @param handler A function to execute each time the event is triggered.
+- * @see \`{@link https://api.jquery.com/delegate/ }\`
+- * @since 1.4.2
+- * @deprecated Deprecated since 3.0. Use \`{@link on }\`.
+- *
+- * **Cause**: These event binding methods have been deprecated in favor of the `.on()` and `.off()` methods which can handle both delegated and direct event binding. Although the older methods are still present in jQuery 3.0, they may be removed as early as the next major-version update.
+- *
+- * **Solution**: Change the method call to use `.on()` or `.off()`, the documentation for the old methods include specific instructions. In general, the `.bind()` and `.unbind()` methods can be renamed directly to `.on()` and `.off()` respectively since the argument orders are identical.
+- */
+- delegate(
+- selector: JQuery.Selector,
+- eventType: TType,
+- eventData: TData,
+- handler: JQuery.TypeEventHandler
+- ): this;
+- /**
+- * Attach a handler to one or more events for all elements that match the selector, now or in the future, based on a specific set of root elements.
+- * @param selector A selector to filter the elements that trigger the event.
+- * @param eventType A string containing one or more space-separated JavaScript event types, such as "click" or
+- * "keydown," or custom event names.
+- * @param handler A function to execute each time the event is triggered.
+- * @see \`{@link https://api.jquery.com/delegate/ }\`
+- * @since 1.4.2
+- * @deprecated Deprecated since 3.0. Use \`{@link on }\`.
+- *
+- * **Cause**: These event binding methods have been deprecated in favor of the `.on()` and `.off()` methods which can handle both delegated and direct event binding. Although the older methods are still present in jQuery 3.0, they may be removed as early as the next major-version update.
+- *
+- * **Solution**: Change the method call to use `.on()` or `.off()`, the documentation for the old methods include specific instructions. In general, the `.bind()` and `.unbind()` methods can be renamed directly to `.on()` and `.off()` respectively since the argument orders are identical.
+- * @example ````Click a paragraph to add another. Note that .delegate() attaches a click event handler to all paragraphs - even new ones.
+-```html
+-
+-
+-
+-
+- delegate demo
+-
+-
+-
+-
+-
+-Click me!
+-
+-
+-
+-
+-
+-
+-
+-```
+- * @example ````To display each paragraph's text in an alert box whenever it is clicked:
+-```javascript
+-$( "body" ).delegate( "p", "click", function() {
+- alert( $( this ).text() );
+-});
+-```
+- * @example ````To cancel a default action and prevent it from bubbling up, return false:
+-```javascript
+-$( "body" ).delegate( "a", "click", function() {
+- return false;
+-});
+-```
+- * @example ````To cancel only the default action by using the preventDefault method.
+-```javascript
+-$( "body" ).delegate( "a", "click", function( event ) {
+- event.preventDefault();
+-});
+-```
+- * @example ````Can bind custom events too.
+-```html
+-
+-
+-
+-
+- delegate demo
+-
+-
+-
+-
+-
+-Has an attached custom event.
+-Trigger custom event
+-
+-
+-
+-
+-
+-
+-```
+- */
+- delegate(
+- selector: JQuery.Selector,
+- eventType: TType,
+- handler: JQuery.TypeEventHandler |
+- false
+- ): this;
+- /**
+- * Attach a handler to one or more events for all elements that match the selector, now or in the future, based on a specific set of root elements.
+- * @param selector A selector to filter the elements that trigger the event.
+- * @param events A plain object of one or more event types and functions to execute for them.
+- * @see \`{@link https://api.jquery.com/delegate/ }\`
+- * @since 1.4.3
+- * @deprecated Deprecated since 3.0. Use \`{@link on }\`.
+- *
+- * **Cause**: These event binding methods have been deprecated in favor of the `.on()` and `.off()` methods which can handle both delegated and direct event binding. Although the older methods are still present in jQuery 3.0, they may be removed as early as the next major-version update.
+- *
+- * **Solution**: Change the method call to use `.on()` or `.off()`, the documentation for the old methods include specific instructions. In general, the `.bind()` and `.unbind()` methods can be renamed directly to `.on()` and `.off()` respectively since the argument orders are identical.
+- */
+- delegate(selector: JQuery.Selector,
+- events: JQuery.TypeEventHandlers
+- ): this;
+- /**
+- * Execute the next function on the queue for the matched elements.
+- * @param queueName A string containing the name of the queue. Defaults to fx, the standard effects queue.
+- * @see \`{@link https://api.jquery.com/dequeue/ }\`
+- * @since 1.2
+- * @example ````Use dequeue to end a custom queue function which allows the queue to keep going.
+-```html
+-
+-
+-
+-
+- dequeue demo
+-
+-
+-
+-
+-
+-Start
+-
+-
+-
+-
+-
+-
+-```
+- */
+- dequeue(queueName?: string): this;
+- /**
+- * Remove the set of matched elements from the DOM.
+- * @param selector A selector expression that filters the set of matched elements to be removed.
+- * @see \`{@link https://api.jquery.com/detach/ }\`
+- * @since 1.4
+- * @example ````Detach all paragraphs from the DOM
+-```html
+-
+-
+-
+-
+- detach demo
+-
+-
+-
+-
+-
+-Hello
+-how are
+-you?
+-Attach/detach paragraphs
+-
+-
+-
+-
+-
+-```
+- */
+- detach(selector?: JQuery.Selector): this;
+- /**
+- * Iterate over a jQuery object, executing a function for each matched element.
+- * @param funсtion A function to execute for each matched element.
+- * @see \`{@link https://api.jquery.com/each/ }\`
+- * @since 1.0
+- * @example ````Iterate over three divs and sets their color property.
+-```html
+-
+-
+-
+-
+- each demo
+-
+-
+-
+-
+-
+-Click here
+-to iterate through
+-these divs.
+-
+-
+-
+-
+-
+-```
+- * @example ````To access a jQuery object instead of the regular DOM element, use $( this ). For example:
+-```html
+-
+-
+-
+-
+- each demo
+-
+-
+-
+-
+-
+-To do list: (click here to change)
+-
+- Eat
+- Sleep
+- Be merry
+-
+-
+-
+-
+-
+-
+-```
+- * @example ````Use return false to break out of each() loops early.
+-```html
+-
+-
+-
+-
+- each demo
+-
+-
+-
+-
+-
+-Change colors
+-
+-
+-
+-
+-
+-Stop here
+-
+-
+-
+-
+-
+-
+-
+-
+-```
+- */
+- each(funсtion: (this: TElement, index: number, element: TElement) => void | false): this;
+- /**
+- * Remove all child nodes of the set of matched elements from the DOM.
+- * @see \`{@link https://api.jquery.com/empty/ }\`
+- * @since 1.0
+- * @example ````Removes all child nodes (including text nodes) from all paragraphs
+-```html
+-
+-
+-
+-
+- empty demo
+-
+-
+-
+-
+-
+-
+- Hello, Person and person .
+-
+-
+-Call empty() on above paragraph
+-
+-
+-
+-
+-
+-```
+- */
+- empty(): this;
+- /**
+- * End the most recent filtering operation in the current chain and return the set of matched elements to its previous state.
+- * @see \`{@link https://api.jquery.com/end/ }\`
+- * @since 1.0
+- * @example ````Selects all paragraphs, finds span elements inside these, and reverts the selection back to the paragraphs.
+-```html
+-
+-
+-
+-
+- end demo
+-
+-
+-
+-
+-
+-
+- Hi there how are you doing ?
+-
+-
+-
+- This span is one of
+- several spans in this
+- sentence .
+-
+-
+-
+- Tags in jQuery object initially:
+-
+-
+-
+- Tags in jQuery object after find:
+-
+-
+-
+- Tags in jQuery object after end:
+-
+-
+-
+-
+-
+-
+-```
+- * @example ````Selects all paragraphs, finds span elements inside these, and reverts the selection back to the paragraphs.
+-```html
+-
+-
+-
+-
+- end demo
+-
+-
+-
+-
+-
+-Hello , how are you?
+-
+-
+-
+-
+-
+-```
+- */
+- end(): this;
+- /**
+- * Reduce the set of matched elements to the one at the specified index.
+- * @param index An integer indicating the 0-based position of the element.
+- * An integer indicating the position of the element, counting backwards from the last element in the set.
+- * @see \`{@link https://api.jquery.com/eq/ }\`
+- * @since 1.1.2
+- * @since 1.4
+- * @example ````Turn the div with index 2 blue by adding an appropriate class.
+-```html
+-
+-
+-
+-
+- eq demo
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-```
+- */
+- eq(index: number): this;
+- /**
+- * Merge the contents of an object onto the jQuery prototype to provide new jQuery instance methods.
+- * @param obj An object to merge onto the jQuery prototype.
+- * @see \`{@link https://api.jquery.com/jQuery.fn.extend/ }\`
+- * @since 1.0
+- * @example ````Add two methods to the jQuery prototype ($.fn) object and then use one of them.
+-```html
+-
+-
+-
+-
+- jQuery.fn.extend demo
+-
+-
+-
+-
+-
+- Foo
+- Bar
+-
+-
+-
+-
+-
+-```
+- */
+- extend(obj: object): this;
+- /**
+- * Display the matched elements by fading them to opaque.
+- * @param duration A string or number determining how long the animation will run.
+- * @param easing A string indicating which easing function to use for the transition.
+- * @param complete A function to call once the animation is complete, called once per matched element.
+- * @see \`{@link https://api.jquery.com/fadeIn/ }\`
+- * @since 1.4.3
+- */
+- fadeIn(duration: JQuery.Duration, easing: string, complete?: (this: TElement) => void): this;
+- /**
+- * Display the matched elements by fading them to opaque.
+- * @param duration_easing _@param_ `duration_easing`
+- *
+- * * `duration` — A string or number determining how long the animation will run.
+- * * `easing` — A string indicating which easing function to use for the transition.
+- * @param complete A function to call once the animation is complete, called once per matched element.
+- * @see \`{@link https://api.jquery.com/fadeIn/ }\`
+- * @since 1.0
+- * @since 1.4.3
+- * @example ````Fades a red block in over the text. Once the animation is done, it quickly fades in more text on top.
+-```html
+-
+-
+-
+-
+- fadeIn demo
+-
+-
+-
+-
+-
+-
+- Let it be known that the party of the first part
+- and the party of the second part are henceforth
+- and hereto directed to assess the allegations
+- for factual correctness... (click! )
+-
CENSORED!
+-
+-
+-
+-
+-
+-
+-```
+- */
+- fadeIn(duration_easing: JQuery.Duration | string, complete: (this: TElement) => void): this;
+- /**
+- * Display the matched elements by fading them to opaque.
+- * @param duration_easing_complete_options _@param_ `duration_easing_complete_options`
+- *
+- * * `duration` — A string or number determining how long the animation will run.
+- * * `easing` — A string indicating which easing function to use for the transition.
+- * * `complete` — A function to call once the animation is complete, called once per matched element.
+- * * `options` — A map of additional options to pass to the method.
+- * @see \`{@link https://api.jquery.com/fadeIn/ }\`
+- * @since 1.0
+- * @since 1.4.3
+- * @example ````Animates hidden divs to fade in one by one, completing each animation within 600 milliseconds.
+-```html
+-
+-
+-
+-
+- fadeIn demo
+-
+-
+-
+-
+-
+-Click here...
+-
+-
+-
+-
+-
+-
+-
+-
+-```
+- */
+- fadeIn(duration_easing_complete_options?: JQuery.Duration | string | ((this: TElement) => void) | JQuery.EffectsOptions): this;
+- /**
+- * Hide the matched elements by fading them to transparent.
+- * @param duration A string or number determining how long the animation will run.
+- * @param easing A string indicating which easing function to use for the transition.
+- * @param complete A function to call once the animation is complete, called once per matched element.
+- * @see \`{@link https://api.jquery.com/fadeOut/ }\`
+- * @since 1.4.3
+- * @example ````Fades out two divs, one with a "linear" easing and one with the default, "swing," easing.
+-```html
+-
+-
+-
+-
+- fadeOut demo
+-
+-
+-
+-
+-
+-fade out
+-show
+-
+-
+-
+-linear
+-swing
+-
+-
+-
+-
+-
+-```
+- */
+- fadeOut(duration: JQuery.Duration, easing: string, complete?: (this: TElement) => void): this;
+- /**
+- * Hide the matched elements by fading them to transparent.
+- * @param duration_easing _@param_ `duration_easing`
+- *
+- * * `duration` — A string or number determining how long the animation will run.
+- * * `easing` — A string indicating which easing function to use for the transition.
+- * @param complete A function to call once the animation is complete, called once per matched element.
+- * @see \`{@link https://api.jquery.com/fadeOut/ }\`
+- * @since 1.0
+- * @since 1.4.3
+- * @example ````Fades out spans in one section that you click on.
+-```html
+-
+-
+-
+-
+- fadeOut demo
+-
+-
+-
+-
+-
+-Find the modifiers -
+-
+- If you really want to go outside
+- in the cold then make sure to wear
+- your warm jacket given to you by
+- your favorite teacher.
+-
+-
+-
+-
+-
+-
+-```
+- */
+- fadeOut(duration_easing: JQuery.Duration | string, complete: (this: TElement) => void): this;
+- /**
+- * Hide the matched elements by fading them to transparent.
+- * @param duration_easing_complete_options _@param_ `duration_easing_complete_options`
+- *
+- * * `duration` — A string or number determining how long the animation will run.
+- * * `easing` — A string indicating which easing function to use for the transition.
+- * * `complete` — A function to call once the animation is complete, called once per matched element.
+- * * `options` — A map of additional options to pass to the method.
+- * @see \`{@link https://api.jquery.com/fadeOut/ }\`
+- * @since 1.0
+- * @since 1.4.3
+- * @example ````Animates all paragraphs to fade out, completing the animation within 600 milliseconds.
+-```html
+-
+-
+-
+-
+- fadeOut demo
+-
+-
+-
+-
+-
+-
+- If you click on this paragraph
+- you'll see it just fade away.
+-
+-
+-
+-
+-
+-
+-```
+- */
+- fadeOut(duration_easing_complete_options?: JQuery.Duration | string | ((this: TElement) => void) | JQuery.EffectsOptions): this;
+- /**
+- * Adjust the opacity of the matched elements.
+- * @param duration A string or number determining how long the animation will run.
+- * @param opacity A number between 0 and 1 denoting the target opacity.
+- * @param easing A string indicating which easing function to use for the transition.
+- * @param complete A function to call once the animation is complete, called once per matched element.
+- * @see \`{@link https://api.jquery.com/fadeTo/ }\`
+- * @since 1.4.3
+- */
+- fadeTo(duration: JQuery.Duration, opacity: number, easing: string, complete?: (this: TElement) => void): this;
+- /**
+- * Adjust the opacity of the matched elements.
+- * @param duration A string or number determining how long the animation will run.
+- * @param opacity A number between 0 and 1 denoting the target opacity.
+- * @param complete A function to call once the animation is complete, called once per matched element.
+- * @see \`{@link https://api.jquery.com/fadeTo/ }\`
+- * @since 1.0
+- * @example ````Animates first paragraph to fade to an opacity of 0.33 (33%, about one third visible), completing the animation within 600 milliseconds.
+-```html
+-
+-
+-
+-
+- fadeTo demo
+-
+-
+-
+-
+-
+-Click this paragraph to see it fade.
+-
+-
+-
+-Compare to this one that won't fade.
+-
+-
+-
+-
+-
+-
+-```
+- * @example ````Fade div to a random opacity on each click, completing the animation within 200 milliseconds.
+-```html
+-
+-
+-
+-
+- fadeTo demo
+-
+-
+-
+-
+-
+-And this is the library that John built...
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-```
+- * @example ````Find the right answer! The fade will take 250 milliseconds and change various styles when it completes.
+-```html
+-
+-
+-
+-
+- fadeTo demo
+-
+-
+-
+-
+-
+-Wrong
+-
+-Wrong
+-
+-Right!
+-
+-
+-
+-
+-
+-
+-```
+- */
+- fadeTo(duration: JQuery.Duration, opacity: number, complete?: (this: TElement) => void): this;
+- /**
+- * Display or hide the matched elements by animating their opacity.
+- * @param duration A string or number determining how long the animation will run.
+- * @param easing A string indicating which easing function to use for the transition.
+- * @param complete A function to call once the animation is complete, called once per matched element.
+- * @see \`{@link https://api.jquery.com/fadeToggle/ }\`
+- * @since 1.4.4
+- * @example ````Fades first paragraph in or out, completing the animation within 600 milliseconds and using a linear easing. Fades last paragraph in or out for 200 milliseconds, inserting a "finished" message upon completion.
+-```html
+-
+-
+-
+-
+- fadeToggle demo
+-
+-
+-
+-
+-fadeToggle p1
+-fadeToggle p2
+-This paragraph has a slow, linear fade.
+-This paragraph has a fast animation.
+-
+-
+-
+-
+-
+-
+-```
+- */
+- fadeToggle(duration: JQuery.Duration, easing: string, complete?: (this: TElement) => void): this;
+- /**
+- * Display or hide the matched elements by animating their opacity.
+- * @param duration_easing _@param_ `duration_easing`
+- *
+- * * `duration` — A string or number determining how long the animation will run.
+- * * `easing` — A string indicating which easing function to use for the transition.
+- * @param complete A function to call once the animation is complete, called once per matched element.
+- * @see \`{@link https://api.jquery.com/fadeToggle/ }\`
+- * @since 1.0
+- * @since 1.4.3
+- * @example ````Fades first paragraph in or out, completing the animation within 600 milliseconds and using a linear easing. Fades last paragraph in or out for 200 milliseconds, inserting a "finished" message upon completion.
+-```html
+-
+-
+-
+-
+- fadeToggle demo
+-
+-
+-
+-
+-fadeToggle p1
+-fadeToggle p2
+-This paragraph has a slow, linear fade.
+-This paragraph has a fast animation.
+-
+-
+-
+-
+-
+-
+-```
+- */
+- fadeToggle(duration_easing: JQuery.Duration | string, complete: (this: TElement) => void): this;
+- /**
+- * Display or hide the matched elements by animating their opacity.
+- * @param duration_easing_complete_options _@param_ `duration_easing_complete_options`
+- *
+- * * `duration` — A string or number determining how long the animation will run.
+- * * `easing` — A string indicating which easing function to use for the transition.
+- * * `complete` — A function to call once the animation is complete, called once per matched element.
+- * * `options` — A map of additional options to pass to the method.
+- * @see \`{@link https://api.jquery.com/fadeToggle/ }\`
+- * @since 1.0
+- * @since 1.4.3
+- */
+- fadeToggle(duration_easing_complete_options?: JQuery.Duration | string | ((this: TElement) => void) | JQuery.EffectsOptions): this;
+- /**
+- * Reduce the set of matched elements to those that match the selector or pass the function's test.
+- * @param selector_elements_selection_function _@param_ `selector_elements_selection_function`
+- *
+- * * `selector` — A string containing a selector expression to match the current set of elements against.
+- * * `elements` — One or more DOM elements to match the current set of elements against.
+- * * `selection` — An existing jQuery object to match the current set of elements against.
+- * * `function` — A function used as a test for each element in the set. this is the current DOM element.
+- * @see \`{@link https://api.jquery.com/filter/ }\`
+- * @since 1.0
+- * @since 1.4
+- * @example ````Change the color of all divs; then add a border to those with a "middle" class.
+-```html
+-
+-
+-
+-
+- filter demo
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-```
+- * @example ````Change the color of all divs; then add a border to the second one (index == 1) and the div with an id of "fourth."
+-```html
+-
+-
+-
+-
+- filter demo
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-```
+- * @example ````Select all divs and filter the selection with a DOM element, keeping only the one with an id of "unique".
+-```javascript
+-$( "div" ).filter( document.getElementById( "unique" ) );
+-```
+- * @example ````Select all divs and filter the selection with a jQuery object, keeping only the one with an id of "unique".
+-```javascript
+-$( "div" ).filter( $( "#unique" ) );
+-```
+- */
+- filter(selector_elements_selection_function:
+- JQuery.Selector |
+- JQuery.TypeOrArray |
+- JQuery |
+- ((this: TElement, index: number, element: TElement) => boolean)
+- ): this;
+- /**
+- * Get the descendants of each element in the current set of matched elements, filtered by a selector, jQuery object, or element.
+- * @param selector_element _@param_ `selector_element`
+- *
+- * * `selector` — A string containing a selector expression to match elements against.
+- * * `element` — An element or a jQuery object to match elements against.
+- * @see \`{@link https://api.jquery.com/find/ }\`
+- * @since 1.0
+- * @since 1.6
+- * @example ````Starts with all paragraphs and searches for descendant span elements, same as $( "p span" )
+-```html
+-
+-
+-
+-
+- find demo
+-
+-
+-
+-
+-Hello , how are you?
+-Me? I'm good .
+-
+-
+-
+-
+-
+-```
+- * @example ````A selection using a jQuery collection of all span tags. Only spans within p tags are changed to red while others are left blue.
+-```html
+-
+-
+-
+-
+- find demo
+-
+-
+-
+-
+-
+-Hello , how are you?
+-Me? I'm good .
+-Did you eat yet?
+-
+-
+-
+-
+-
+-```
+- * @example ````Add spans around each word then add a hover and italicize words with the letter t.
+-```html
+-
+-
+-
+-
+- find demo
+-
+-
+-
+-
+-
+-
+- When the day is short
+- find that which matters to you
+- or stop believing
+-
+-
+-
+-
+-
+-
+-```
+- */
+- find(selector_element: JQuery.Selector | Element | JQuery): this;
+- /**
+- * Stop the currently-running animation, remove all queued animations, and complete all animations for the matched elements.
+- * @param queue The name of the queue in which to stop animations.
+- * @see \`{@link https://api.jquery.com/finish/ }\`
+- * @since 1.9
+- * @example ````Click the Go button once to start the animation, and then click the other buttons to see how they affect the current and queued animations.
+-```html
+-
+-
+-
+-
+- finish demo
+-
+-
+-
+-
+-
+-
+-
+- Go
+-
+- .stop( true,true )
+- .clearQueue().finish()
+-
+- .stop( true, false )
+- .clearQueue().stop()
+-
+- .stop( false, false )
+- .stop()
+-
+- .stop( false, true )
+-
+- .finish()
+-
+-
+-
+-
+-
+-
+-```
+- */
+- finish(queue?: string): this;
+- /**
+- * Reduce the set of matched elements to the first in the set.
+- * @see \`{@link https://api.jquery.com/first/ }\`
+- * @since 1.4
+- * @example ````Highlight the first span in a paragraph.
+-```html
+-
+-
+-
+-
+- first demo
+-
+-
+-
+-
+-
+-
+- Look:
+- This is some text in a paragraph.
+- This is a note about it.
+-
+-
+-
+-
+-
+-
+-```
+- */
+- first(): this;
+- /**
+- * Bind an event handler to the "focus" JavaScript event, or trigger that event on an element.
+- * @param eventData An object containing data that will be passed to the event handler.
+- * @param handler A function to execute each time the event is triggered.
+- * @see \`{@link https://api.jquery.com/focus/ }\`
+- * @since 1.4.3
+- * @deprecated Deprecated since 3.3. Use \`{@link on }\` or \`{@link trigger }\`.
+- *
+- * **Cause**: The `.on()` and `.trigger()` methods can set an event handler or generate an event for any event type, and should be used instead of the shortcut methods. This message also applies to the other event shorthands, including: blur, focus, focusin, focusout, resize, scroll, dblclick, mousedown, mouseup, mousemove, mouseover, mouseout, mouseenter, mouseleave, change, select, submit, keydown, keypress, keyup, and contextmenu.
+- *
+- * **Solution**: Instead of `.click(fn)` use `.on("click", fn)`. Instead of `.click()` use `.trigger("click")`.
+- */
+- focus(eventData: TData,
+- handler: JQuery.TypeEventHandler): this;
+- /**
+- * Bind an event handler to the "focus" JavaScript event, or trigger that event on an element.
+- * @param handler A function to execute each time the event is triggered.
+- * @see \`{@link https://api.jquery.com/focus/ }\`
+- * @since 1.0
+- * @deprecated Deprecated since 3.3. Use \`{@link on }\` or \`{@link trigger }\`.
+- *
+- * **Cause**: The `.on()` and `.trigger()` methods can set an event handler or generate an event for any event type, and should be used instead of the shortcut methods. This message also applies to the other event shorthands, including: blur, focus, focusin, focusout, resize, scroll, dblclick, mousedown, mouseup, mousemove, mouseover, mouseout, mouseenter, mouseleave, change, select, submit, keydown, keypress, keyup, and contextmenu.
+- *
+- * **Solution**: Instead of `.click(fn)` use `.on("click", fn)`. Instead of `.click()` use `.trigger("click")`.
+- * @example ````Fire focus.
+-```html
+-
+-
+-
+-
+- focus demo
+-
+-
+-
+-
+-
+- focus fire
+- focus fire
+-
+-
+-
+-
+-
+-```
+- * @example ````To stop people from writing in text input boxes, try:
+-```javascript
+-$( "input[type=text]" ).focus(function() {
+- $( this ).blur();
+-});
+-```
+- * @example ````To focus on a login input box with id 'login' on page startup, try:
+-```javascript
+-$( document ).ready(function() {
+- $( "#login" ).focus();
+-});
+-```
+- */
+- focus(handler?: JQuery.TypeEventHandler |
+- false): this;
+- /**
+- * Bind an event handler to the "focusin" event.
+- * @param eventData An object containing data that will be passed to the event handler.
+- * @param handler A function to execute each time the event is triggered.
+- * @see \`{@link https://api.jquery.com/focusin/ }\`
+- * @since 1.4.3
+- * @deprecated Deprecated since 3.3. Use \`{@link on }\` or \`{@link trigger }\`.
+- *
+- * **Cause**: The `.on()` and `.trigger()` methods can set an event handler or generate an event for any event type, and should be used instead of the shortcut methods. This message also applies to the other event shorthands, including: blur, focus, focusin, focusout, resize, scroll, dblclick, mousedown, mouseup, mousemove, mouseover, mouseout, mouseenter, mouseleave, change, select, submit, keydown, keypress, keyup, and contextmenu.
+- *
+- * **Solution**: Instead of `.click(fn)` use `.on("click", fn)`. Instead of `.click()` use `.trigger("click")`.
+- */
+- focusin(eventData: TData,
+- handler: JQuery.TypeEventHandler): this;
+- /**
+- * Bind an event handler to the "focusin" event.
+- * @param handler A function to execute each time the event is triggered.
+- * @see \`{@link https://api.jquery.com/focusin/ }\`
+- * @since 1.4
+- * @deprecated Deprecated since 3.3. Use \`{@link on }\` or \`{@link trigger }\`.
+- *
+- * **Cause**: The `.on()` and `.trigger()` methods can set an event handler or generate an event for any event type, and should be used instead of the shortcut methods. This message also applies to the other event shorthands, including: blur, focus, focusin, focusout, resize, scroll, dblclick, mousedown, mouseup, mousemove, mouseover, mouseout, mouseenter, mouseleave, change, select, submit, keydown, keypress, keyup, and contextmenu.
+- *
+- * **Solution**: Instead of `.click(fn)` use `.on("click", fn)`. Instead of `.click()` use `.trigger("click")`.
+- * @example ````Watch for a focus to occur within the paragraphs on the page.
+-```html
+-
+-
+-
+-
+- focusin demo
+-
+-
+-
+-
+-
+- focusin fire
+- focusin fire
+-
+-
+-
+-
+-
+-```
+- */
+- focusin(handler?: JQuery.TypeEventHandler |
+- false): this;
+- /**
+- * Bind an event handler to the "focusout" JavaScript event.
+- * @param eventData An object containing data that will be passed to the event handler.
+- * @param handler A function to execute each time the event is triggered.
+- * @see \`{@link https://api.jquery.com/focusout/ }\`
+- * @since 1.4.3
+- * @deprecated Deprecated since 3.3. Use \`{@link on }\` or \`{@link trigger }\`.
+- *
+- * **Cause**: The `.on()` and `.trigger()` methods can set an event handler or generate an event for any event type, and should be used instead of the shortcut methods. This message also applies to the other event shorthands, including: blur, focus, focusin, focusout, resize, scroll, dblclick, mousedown, mouseup, mousemove, mouseover, mouseout, mouseenter, mouseleave, change, select, submit, keydown, keypress, keyup, and contextmenu.
+- *
+- * **Solution**: Instead of `.click(fn)` use `.on("click", fn)`. Instead of `.click()` use `.trigger("click")`.
+- */
+- focusout(eventData: TData,
+- handler: JQuery.TypeEventHandler): this;
+- /**
+- * Bind an event handler to the "focusout" JavaScript event.
+- * @param handler A function to execute each time the event is triggered.
+- * @see \`{@link https://api.jquery.com/focusout/ }\`
+- * @since 1.4
+- * @deprecated Deprecated since 3.3. Use \`{@link on }\` or \`{@link trigger }\`.
+- *
+- * **Cause**: The `.on()` and `.trigger()` methods can set an event handler or generate an event for any event type, and should be used instead of the shortcut methods. This message also applies to the other event shorthands, including: blur, focus, focusin, focusout, resize, scroll, dblclick, mousedown, mouseup, mousemove, mouseover, mouseout, mouseenter, mouseleave, change, select, submit, keydown, keypress, keyup, and contextmenu.
+- *
+- * **Solution**: Instead of `.click(fn)` use `.on("click", fn)`. Instead of `.click()` use `.trigger("click")`.
+- * @example ````Watch for a loss of focus to occur inside paragraphs and note the difference between the focusout count and the blur count. (The blur count does not change because those events do not bubble.)
+-```html
+-
+-
+-
+-
+- focusout demo
+-
+-
+-
+-
+-
+-
+-focusout fire
+-blur fire
+-
+-
+-
+-
+-
+-```
+- */
+- focusout(handler?: JQuery.TypeEventHandler |
+- false): this;
+- /**
+- * Retrieve one of the elements matched by the jQuery object.
+- * @param index A zero-based integer indicating which element to retrieve.
+- * @see \`{@link https://api.jquery.com/get/ }\`
+- * @since 1.0
+- * @example ````Display the tag name of the click element.
+-```html
+-
+-
+-
+-
+- get demo
+-
+-
+-
+-
+-
+-
+-In this paragraph is an important section
+-
+-
+-
+-
+-
+-
+-```
+- */
+- get(index: number): TElement;
+- /**
+- * Retrieve the elements matched by the jQuery object.
+- * @see \`{@link https://api.jquery.com/get/ }\`
+- * @since 1.0
+- * @example ````Select all divs in the document and return the DOM Elements as an Array; then use the built-in reverse() method to reverse that array.
+-```html
+-
+-
+-
+-
+- get demo
+-
+-
+-
+-
+-
+-Reversed -
+-
+-One
+-Two
+-Three
+-
+-
+-
+-
+-
+-```
+- */
+- get(): TElement[];
+- /**
+- * Reduce the set of matched elements to those that have a descendant that matches the selector or DOM element.
+- * @param selector_contained _@param_ `selector_contained`
+- *
+- * * `selector` — A string containing a selector expression to match elements against.
+- * * `contained` — A DOM element to match elements against.
+- * @see \`{@link https://api.jquery.com/has/ }\`
+- * @since 1.4
+- * @example ````Check if an element is inside another.
+-```html
+-
+-
+-
+-
+- has demo
+-
+-
+-
+-
+-
+-Does the UL contain an LI?
+-
+-
+-
+-
+-
+-```
+- */
+- has(selector_contained: string | Element): this;
+- /**
+- * Determine whether any of the matched elements are assigned the given class.
+- * @param className The class name to search for.
+- * @see \`{@link https://api.jquery.com/hasClass/ }\`
+- * @since 1.2
+- * @example ````Looks for the paragraph that contains 'selected' as a class.
+-```html
+-
+-
+-
+-
+- hasClass demo
+-
+-
+-
+-
+-
+-This paragraph is black and is the first paragraph.
+-This paragraph is red and is the second paragraph.
+-First paragraph has selected class:
+-Second paragraph has selected class:
+-At least one paragraph has selected class:
+-
+-
+-
+-
+-
+-```
+- */
+- hasClass(className: string): boolean;
+- /**
+- * Set the CSS height of every matched element.
+- * @param value_function _@param_ `value_function`
+- *
+- * * `value` — An integer representing the number of pixels, or an integer with an optional unit of measure
+- * appended (as a string).
+- * * `function` — A function returning the height to set. Receives the index position of the element in the set and
+- * the old height as arguments. Within the function, `this` refers to the current element in the set.
+- * @see \`{@link https://api.jquery.com/height/ }\`
+- * @since 1.0
+- * @since 1.4.1
+- * @example ````To set the height of each div on click to 30px plus a color change.
+-```html
+-
+-
+-
+-
+- height demo
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-```
+- */
+- height(value_function: string | number | ((this: TElement, index: number, height: number) => string | number)): this;
+- /**
+- * Get the current computed height for the first element in the set of matched elements.
+- * @see \`{@link https://api.jquery.com/height/ }\`
+- * @since 1.0
+- * @example ````Show various heights. Note the values are from the iframe so might be smaller than you expected. The yellow highlight shows the iframe body.
+-```html
+-
+-
+-
+-
+- height demo
+-
+-
+-
+-
+-
+-Get Paragraph Height
+-Get Document Height
+-Get Window Height
+-
+-
+-
+- Sample paragraph to test height
+-
+-
+-
+-
+-
+-
+-```
+- */
+- height(): number | undefined;
+- /**
+- * Hide the matched elements.
+- * @param duration A string or number determining how long the animation will run.
+- * @param easing A string indicating which easing function to use for the transition.
+- * @param complete A function to call once the animation is complete, called once per matched element.
+- * @see \`{@link https://api.jquery.com/hide/ }\`
+- * @since 1.4.3
+- */
+- hide(duration: JQuery.Duration, easing: string, complete: (this: TElement) => void): this;
+- /**
+- * Hide the matched elements.
+- * @param duration A string or number determining how long the animation will run.
+- * @param easing_complete _@param_ `easing_complete`
+- *
+- * * `easing` — A string indicating which easing function to use for the transition.
+- * * `complete` — A function to call once the animation is complete, called once per matched element.
+- * @see \`{@link https://api.jquery.com/hide/ }\`
+- * @since 1.0
+- * @since 1.4.3
+- * @example ````Animates all spans (words in this case) to hide fastly, completing each animation within 200 milliseconds. Once each animation is done, it starts the next one.
+-```html
+-
+-
+-
+-
+- hide demo
+-
+-
+-
+-
+-
+-Hide
+-Show
+-
+- Once upon a
+- time there were
+- three programmers...
+-
+-
+-
+-
+-
+-
+-```
+- * @example ````Hides the divs when clicked over 2 seconds, then removes the div element when its hidden. Try clicking on more than one box at a time.
+-```html
+-
+-
+-
+-
+- hide demo
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-```
+- */
+- hide(duration: JQuery.Duration, easing_complete: string | ((this: TElement) => void)): this;
+- /**
+- * Hide the matched elements.
+- * @param duration_complete_options _@param_ `duration_complete_options`
+- *
+- * * `duration` — A string or number determining how long the animation will run.
+- * * `complete` — A function to call once the animation is complete, called once per matched element.
+- * * `options` — A map of additional options to pass to the method.
+- * @see \`{@link https://api.jquery.com/hide/ }\`
+- * @since 1.0
+- * @example ````Hides all paragraphs then the link on click.
+-```html
+-
+-
+-
+-
+- hide demo
+-
+-
+-
+-
+-Hello
+-Click to hide me too
+-Here is another paragraph
+-
+-
+-
+-
+-
+-```
+- * @example ````Animates all shown paragraphs to hide slowly, completing the animation within 600 milliseconds.
+-```html
+-
+-
+-
+-
+- hide demo
+-
+-
+-
+-
+-
+-Hide 'em
+-Hiya
+-Such interesting text, eh?
+-
+-
+-
+-
+-
+-```
+- */
+- hide(duration_complete_options?: JQuery.Duration | ((this: TElement) => void) | JQuery.EffectsOptions): this;
+- /**
+- * Bind two handlers to the matched elements, to be executed when the mouse pointer enters and leaves the elements.
+- * @param handlerIn A function to execute when the mouse pointer enters the element.
+- * @param handlerOut A function to execute when the mouse pointer leaves the element.
+- * @see \`{@link https://api.jquery.com/hover/ }\`
+- * @since 1.0
+- * @deprecated Deprecated.
+- *
+- * **Cause**: The `.hover()` method is a shorthand for the use of the `mouseover`/`mouseout` events. It is often a poor user interface choice because it does not allow for any small amounts of delay between when the mouse enters or exits an area and when the event fires. This can make it quite difficult to use with UI widgets such as drop-down menus. For more information on the problems of hovering, see the \`{@link http://cherne.net/brian/resources/jquery.hoverIntent.html hoverIntent plugin}\`.
+- *
+- * **Solution**: Review uses of `.hover()` to determine if they are appropriate, and consider use of plugins such as `hoverIntent` as an alternative. The direct replacement for `.hover(fn1, fn2)`, is `.on("mouseenter", fn1).on("mouseleave", fn2)`.
+- * @example ````To add a special style to list items that are being hovered over, try:
+-```html
+-
+-
+-
+-
+- hover demo
+-
+-
+-
+-
+-
+-
+- Milk
+- Bread
+- Chips
+- Socks
+-
+-
+-
+-
+-
+-
+-```
+- * @example ````To add a special style to table cells that are being hovered over, try:
+-```javascript
+-$( "td" ).hover(
+- function() {
+- $( this ).addClass( "hover" );
+- }, function() {
+- $( this ).removeClass( "hover" );
+- }
+-);
+-```
+- * @example ````To unbind the above example use:
+-```javascript
+-$( "td" ).off( "mouseenter mouseleave" );
+-```
+- */
+- hover(handlerIn: JQuery.TypeEventHandler |
+- false,
+- handlerOut: JQuery.TypeEventHandler |
+- false): this;
+- /**
+- * Bind a single handler to the matched elements, to be executed when the mouse pointer enters or leaves the elements.
+- * @param handlerInOut A function to execute when the mouse pointer enters or leaves the element.
+- * @see \`{@link https://api.jquery.com/hover/ }\`
+- * @since 1.4
+- * @deprecated Deprecated.
+- *
+- * **Cause**: The `.hover()` method is a shorthand for the use of the `mouseover`/`mouseout` events. It is often a poor user interface choice because it does not allow for any small amounts of delay between when the mouse enters or exits an area and when the event fires. This can make it quite difficult to use with UI widgets such as drop-down menus. For more information on the problems of hovering, see the \`{@link http://cherne.net/brian/resources/jquery.hoverIntent.html hoverIntent plugin}\`.
+- *
+- * **Solution**: Review uses of `.hover()` to determine if they are appropriate, and consider use of plugins such as `hoverIntent` as an alternative. The direct replacement for `.hover(fn1, fn2)`, is `.on("mouseenter", fn1).on("mouseleave", fn2)`.
+- * @example ````Slide the next sibling LI up or down on hover, and toggle a class.
+-```html
+-
+-
+-
+-
+- hover demo
+-
+-
+-
+-
+-
+-
+- Milk
+- White
+- Carrots
+- Orange
+- Broccoli
+- Green
+-
+-
+-
+-
+-
+-
+-```
+- */
+- hover(handlerInOut: JQuery.TypeEventHandler |
+- false): this;
+- /**
+- * Set the HTML contents of each element in the set of matched elements.
+- * @param htmlString_function _@param_ `htmlString_function`
+- *
+- * * `htmlString` — A string of HTML to set as the content of each matched element.
+- * * `function` — A function returning the HTML content to set. Receives the index position of the element in the set
+- * and the old HTML value as arguments. jQuery empties the element before calling the function; use the
+- * oldhtml argument to reference the previous content. Within the function, `this` refers to the current
+- * element in the set.
+- * @see \`{@link https://api.jquery.com/html/ }\`
+- * @since 1.0
+- * @since 1.4
+- * @example ````Add some html to each div.
+-```html
+-
+-
+-
+-
+- html demo
+-
+-
+-
+-
+-
+-Hello
+-
+-
+-
+-
+-
+-
+-
+-
+-```
+- * @example ````Add some html to each div then immediately do further manipulations to the inserted html.
+-```html
+-
+-
+-
+-
+- html demo
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-```
+- */
+- html(htmlString_function: JQuery.htmlString |
+- JQuery.Node |
+- ((this: TElement, index: number, oldhtml: JQuery.htmlString) => JQuery.htmlString | JQuery.Node)): this;
+- /**
+- * Get the HTML contents of the first element in the set of matched elements.
+- * @see \`{@link https://api.jquery.com/html/ }\`
+- * @since 1.0
+- * @example ````Click a paragraph to convert it from html to text.
+-```html
+-
+-
+-
+-
+- html demo
+-
+-
+-
+-
+-
+-
+- Click to change the html
+-
+-
+- to a text node.
+-
+-
+- This button does nothing.
+-
+-
+-
+-
+-
+-
+-```
+- */
+- html(): string;
+- /**
+- * Search for a given element from among the matched elements.
+- * @param selector_element _@param_ `selector_element`
+- *
+- * * `selector` — A selector representing a jQuery collection in which to look for an element.
+- * * `element` — The DOM element or first element within the jQuery object to look for.
+- * @see \`{@link https://api.jquery.com/index/ }\`
+- * @since 1.0
+- * @since 1.4
+- * @example ````On click, returns the index (zero-based) of that div in the page.
+-```html
+-
+-
+-
+-
+- index demo
+-
+-
+-
+-
+-
+-Click a div!
+-First div
+-Second div
+-Third div
+-
+-
+-
+-
+-
+-```
+- * @example ````Returns the index for the element with ID bar.
+-```html
+-
+-
+-
+-
+- index demo
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-```
+- * @example ````Returns the index for the first item in the jQuery collection.
+-```html
+-
+-
+-
+-
+- index demo
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-```
+- * @example ````Returns the index for the element with ID bar in relation to all <li> elements.
+-```html
+-
+-
+-
+-
+- index demo
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-```
+- * @example ````Returns the index for the element with ID bar in relation to its siblings.
+-```html
+-
+-
+-
+-
+- index demo
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-```
+- * @example ````Returns -1, as there is no element with ID foobar.
+-```html
+-
+-
+-
+-
+- index demo
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-```
+- */
+- index(selector_element?: JQuery.Selector | Element | JQuery): number;
+- /**
+- * Set the CSS inner height of each element in the set of matched elements.
+- * @param value_function _@param_ `value_function`
+- *
+- * * `value` — A number representing the number of pixels, or a number along with an optional unit of measure
+- * appended (as a string).
+- * * `function` — A function returning the inner height (including padding but not border) to set. Receives the index
+- * position of the element in the set and the old inner height as arguments. Within the function, `this`
+- * refers to the current element in the set.
+- * @see \`{@link https://api.jquery.com/innerHeight/ }\`
+- * @since 1.8.0
+- * @example ````Change the inner height of each div the first time it is clicked (and change its color).
+-```html
+-
+-
+-
+-
+- innerHeight demo
+-
+-
+-
+-
+-
+-d
+-d
+-d
+-d
+-d
+-
+-
+-
+-
+-
+-```
+- */
+- innerHeight(value_function: string | number | ((this: TElement, index: number, height: number) => string | number)): this;
+- /**
+- * Get the current computed height for the first element in the set of matched elements, including padding but not border.
+- * @see \`{@link https://api.jquery.com/innerHeight/ }\`
+- * @since 1.2.6
+- * @example ````Get the innerHeight of a paragraph.
+-```html
+-
+-
+-
+-
+- innerHeight demo
+-
+-
+-
+-
+-
+-Hello
+-
+-
+-
+-
+-
+-
+-```
+- */
+- innerHeight(): number | undefined;
+- /**
+- * Set the CSS inner width of each element in the set of matched elements.
+- * @param value_function _@param_ `value_function`
+- *
+- * * `value` — A number representing the number of pixels, or a number along with an optional unit of measure
+- * appended (as a string).
+- * * `function` — A function returning the inner width (including padding but not border) to set. Receives the index
+- * position of the element in the set and the old inner width as arguments. Within the function, `this`
+- * refers to the current element in the set.
+- * @see \`{@link https://api.jquery.com/innerWidth/ }\`
+- * @since 1.8.0
+- * @example ````Change the inner width of each div the first time it is clicked (and change its color).
+-```html
+-
+-
+-
+-
+- innerWidth demo
+-
+-
+-
+-
+-
+-d
+-d
+-d
+-d
+-d
+-
+-
+-
+-
+-
+-```
+- */
+- innerWidth(value_function: string | number | ((this: TElement, index: number, width: number) => string | number)): this;
+- /**
+- * Get the current computed inner width for the first element in the set of matched elements, including padding but not border.
+- * @see \`{@link https://api.jquery.com/innerWidth/ }\`
+- * @since 1.2.6
+- * @example ````Get the innerWidth of a paragraph.
+-```html
+-
+-
+-
+-
+- innerWidth demo
+-
+-
+-
+-
+-
+-Hello
+-
+-
+-
+-
+-
+-
+-```
+- */
+- innerWidth(): number | undefined;
+- /**
+- * Insert every element in the set of matched elements after the target.
+- * @param target A selector, element, array of elements, HTML string, or jQuery object; the matched set of elements
+- * will be inserted after the element(s) specified by this parameter.
+- * @see \`{@link https://api.jquery.com/insertAfter/ }\`
+- * @since 1.0
+- * @example ````Insert all paragraphs after an element with id of "foo". Same as $( "#foo" ).after( "p" )
+-```html
+-
+-
+-
+-
+- insertAfter demo
+-
+-
+-
+-
+-
+- is what I said...
+-FOO!
+-
+-
+-
+-
+-
+-```
+- */
+- insertAfter(target: JQuery.Selector | JQuery.htmlString | JQuery.TypeOrArray | JQuery): this;
+- /**
+- * Insert every element in the set of matched elements before the target.
+- * @param target A selector, element, array of elements, HTML string, or jQuery object; the matched set of elements
+- * will be inserted before the element(s) specified by this parameter.
+- * @see \`{@link https://api.jquery.com/insertBefore/ }\`
+- * @since 1.0
+- * @example ````Insert all paragraphs before an element with id of "foo". Same as $( "#foo" ).before( "p" )
+-```html
+-
+-
+-
+-
+- insertBefore demo
+-
+-
+-
+-
+-
+-FOO!
+-I would like to say:
+-
+-
+-
+-
+-
+-```
+- */
+- insertBefore(target: JQuery.Selector | JQuery.htmlString | JQuery.TypeOrArray | JQuery): this;
+- /**
+- * Check the current matched set of elements against a selector, element, or jQuery object and return true if at least one of these elements matches the given arguments.
+- * @param selector_function_selection_elements _@param_ `selector_function_selection_elements`
+- *
+- * * `selector` — A string containing a selector expression to match elements against.
+- * * `function` — A function used as a test for every element in the set. It accepts two arguments, `index`, which is
+- * the element's index in the jQuery collection, and `element`, which is the DOM element. Within the
+- * function, `this` refers to the current DOM element.
+- * * `selection` — An existing jQuery object to match the current set of elements against.
+- * * `elements` — One or more elements to match the current set of elements against.
+- * @see \`{@link https://api.jquery.com/is/ }\`
+- * @since 1.0
+- * @since 1.6
+- * @example ````Shows a few ways is() can be used inside an event handler.
+-```html
+-
+-
+-
+-
+- is demo
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-Peter
+-
+-
+-
+-
+-
+-
+-
+-```
+- * @example ````Returns true, because the parent of the input is a form element.
+-```html
+-
+-
+-
+-
+- is demo
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-```
+- * @example ````Returns false, because the parent of the input is a p element.
+-```html
+-
+-
+-
+-
+- is demo
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-```
+- * @example ````Checks against an existing collection of alternating list elements. Blue, alternating list elements slide up while others turn red.
+-```html
+-
+-
+-
+-
+- is demo
+-
+-
+-
+-
+-
+-
+- Chrome
+- Safari
+- Firefox
+- Opera
+-
+-
+-
+-
+-
+-
+-```
+- * @example ````An alternate way to achieve the above example using an element rather than a jQuery object. Checks against an existing collection of alternating list elements. Blue, alternating list elements slide up while others turn red.
+-```html
+-
+-
+-
+-
+- is demo
+-
+-
+-
+-
+-
+-
+- Chrome
+- Safari
+- Firefox
+- Opera
+-
+-
+-
+-
+-
+-
+-```
+- */
+- is(selector_function_selection_elements: JQuery.Selector | JQuery.TypeOrArray | JQuery | ((this: TElement, index: number, element: TElement) => boolean)): boolean;
+- /**
+- * Bind an event handler to the "keydown" JavaScript event, or trigger that event on an element.
+- * @param eventData An object containing data that will be passed to the event handler.
+- * @param handler A function to execute each time the event is triggered.
+- * @see \`{@link https://api.jquery.com/keydown/ }\`
+- * @since 1.4.3
+- * @deprecated Deprecated since 3.3. Use \`{@link on }\` or \`{@link trigger }\`.
+- *
+- * **Cause**: The `.on()` and `.trigger()` methods can set an event handler or generate an event for any event type, and should be used instead of the shortcut methods. This message also applies to the other event shorthands, including: blur, focus, focusin, focusout, resize, scroll, dblclick, mousedown, mouseup, mousemove, mouseover, mouseout, mouseenter, mouseleave, change, select, submit, keydown, keypress, keyup, and contextmenu.
+- *
+- * **Solution**: Instead of `.click(fn)` use `.on("click", fn)`. Instead of `.click()` use `.trigger("click")`.
+- */
+- keydown(eventData: TData,
+- handler: JQuery.TypeEventHandler): this;
+- /**
+- * Bind an event handler to the "keydown" JavaScript event, or trigger that event on an element.
+- * @param handler A function to execute each time the event is triggered.
+- * @see \`{@link https://api.jquery.com/keydown/ }\`
+- * @since 1.0
+- * @deprecated Deprecated since 3.3. Use \`{@link on }\` or \`{@link trigger }\`.
+- *
+- * **Cause**: The `.on()` and `.trigger()` methods can set an event handler or generate an event for any event type, and should be used instead of the shortcut methods. This message also applies to the other event shorthands, including: blur, focus, focusin, focusout, resize, scroll, dblclick, mousedown, mouseup, mousemove, mouseover, mouseout, mouseenter, mouseleave, change, select, submit, keydown, keypress, keyup, and contextmenu.
+- *
+- * **Solution**: Instead of `.click(fn)` use `.on("click", fn)`. Instead of `.click()` use `.trigger("click")`.
+- * @example ````Show the event object for the keydown handler when a key is pressed in the input.
+-```html
+-
+-
+-
+-
+- keydown demo
+-
+-
+-
+-
+-
+-
+-
+- Trigger the handler
+-
+-
+-
+-
+-
+-
+-
+-```
+- */
+- keydown(handler?: JQuery.TypeEventHandler |
+- false): this;
+- /**
+- * Bind an event handler to the "keypress" JavaScript event, or trigger that event on an element.
+- * @param eventData An object containing data that will be passed to the event handler.
+- * @param handler A function to execute each time the event is triggered.
+- * @see \`{@link https://api.jquery.com/keypress/ }\`
+- * @since 1.4.3
+- * @deprecated Deprecated since 3.3. Use \`{@link on }\` or \`{@link trigger }\`.
+- *
+- * **Cause**: The `.on()` and `.trigger()` methods can set an event handler or generate an event for any event type, and should be used instead of the shortcut methods. This message also applies to the other event shorthands, including: blur, focus, focusin, focusout, resize, scroll, dblclick, mousedown, mouseup, mousemove, mouseover, mouseout, mouseenter, mouseleave, change, select, submit, keydown, keypress, keyup, and contextmenu.
+- *
+- * **Solution**: Instead of `.click(fn)` use `.on("click", fn)`. Instead of `.click()` use `.trigger("click")`.
+- */
+- keypress(eventData: TData,
+- handler: JQuery.TypeEventHandler): this;
+- /**
+- * Bind an event handler to the "keypress" JavaScript event, or trigger that event on an element.
+- * @param handler A function to execute each time the event is triggered.
+- * @see \`{@link https://api.jquery.com/keypress/ }\`
+- * @since 1.0
+- * @deprecated Deprecated since 3.3. Use \`{@link on }\` or \`{@link trigger }\`.
+- *
+- * **Cause**: The `.on()` and `.trigger()` methods can set an event handler or generate an event for any event type, and should be used instead of the shortcut methods. This message also applies to the other event shorthands, including: blur, focus, focusin, focusout, resize, scroll, dblclick, mousedown, mouseup, mousemove, mouseover, mouseout, mouseenter, mouseleave, change, select, submit, keydown, keypress, keyup, and contextmenu.
+- *
+- * **Solution**: Instead of `.click(fn)` use `.on("click", fn)`. Instead of `.click()` use `.trigger("click")`.
+- * @example ````Show the event object when a key is pressed in the input. Note: This demo relies on a simple $.print() plugin (https://api.jquery.com/resources/events.js) for the event object's output.
+-```html
+-
+-
+-
+-
+- keypress demo
+-
+-
+-
+-
+-
+-
+-
+- Trigger the handler
+-
+-
+-
+-
+-
+-
+-
+-```
+- */
+- keypress(handler?: JQuery.TypeEventHandler |
+- false): this;
+- /**
+- * Bind an event handler to the "keyup" JavaScript event, or trigger that event on an element.
+- * @param eventData An object containing data that will be passed to the event handler.
+- * @param handler A function to execute each time the event is triggered.
+- * @see \`{@link https://api.jquery.com/keyup/ }\`
+- * @since 1.4.3
+- * @deprecated Deprecated since 3.3. Use \`{@link on }\` or \`{@link trigger }\`.
+- *
+- * **Cause**: The `.on()` and `.trigger()` methods can set an event handler or generate an event for any event type, and should be used instead of the shortcut methods. This message also applies to the other event shorthands, including: blur, focus, focusin, focusout, resize, scroll, dblclick, mousedown, mouseup, mousemove, mouseover, mouseout, mouseenter, mouseleave, change, select, submit, keydown, keypress, keyup, and contextmenu.
+- *
+- * **Solution**: Instead of `.click(fn)` use `.on("click", fn)`. Instead of `.click()` use `.trigger("click")`.
+- */
+- keyup(eventData: TData,
+- handler: JQuery.TypeEventHandler): this;
+- /**
+- * Bind an event handler to the "keyup" JavaScript event, or trigger that event on an element.
+- * @param handler A function to execute each time the event is triggered.
+- * @see \`{@link https://api.jquery.com/keyup/ }\`
+- * @since 1.0
+- * @deprecated Deprecated since 3.3. Use \`{@link on }\` or \`{@link trigger }\`.
+- *
+- * **Cause**: The `.on()` and `.trigger()` methods can set an event handler or generate an event for any event type, and should be used instead of the shortcut methods. This message also applies to the other event shorthands, including: blur, focus, focusin, focusout, resize, scroll, dblclick, mousedown, mouseup, mousemove, mouseover, mouseout, mouseenter, mouseleave, change, select, submit, keydown, keypress, keyup, and contextmenu.
+- *
+- * **Solution**: Instead of `.click(fn)` use `.on("click", fn)`. Instead of `.click()` use `.trigger("click")`.
+- * @example ````Show the event object for the keyup handler (using a simple $.print plugin) when a key is released in the input.
+-```html
+-
+-
+-
+-
+- keyup demo
+-
+-
+-
+-
+-
+-
+-
+- Trigger the handler
+-
+-
+-
+-
+-
+-
+-
+-```
+- */
+- keyup(handler?: JQuery.TypeEventHandler |
+- false): this;
+- /**
+- * Reduce the set of matched elements to the final one in the set.
+- * @see \`{@link https://api.jquery.com/last/ }\`
+- * @since 1.4
+- * @example ````Highlight the last span in a paragraph.
+-```html
+-
+-
+-
+-
+- last demo
+-
+-
+-
+-
+-
+-Look: This is some text in a paragraph. This is a note about it.
+-
+-
+-
+-
+-
+-```
+- */
+- last(): this;
+- /**
+- * Load data from the server and place the returned HTML into the matched element.
+- * @param url A string containing the URL to which the request is sent.
+- * @param data A plain object or string that is sent to the server with the request.
+- * @param complete A callback function that is executed when the request completes.
+- * @see \`{@link https://api.jquery.com/load/ }\`
+- * @since 1.0
+- * @example ````Same as above, but will POST the additional parameters to the server and a callback that is executed when the server is finished responding.
+-```javascript
+-$( "#feeds" ).load( "feeds.php", { limit: 25 }, function() {
+- alert( "The last 25 entries in the feed have been loaded" );
+-});
+-```
+- */
+- load(url: string,
+- data: string | JQuery.PlainObject,
+- complete: (this: TElement, responseText: string, textStatus: JQuery.Ajax.TextStatus, jqXHR: JQuery.jqXHR) => void): this;
+- /**
+- * Load data from the server and place the returned HTML into the matched element.
+- * @param url A string containing the URL to which the request is sent.
+- * @param complete_data _@param_ `complete_data`
+- *
+- * * `complete` — A callback function that is executed when the request completes.
+- * * `data` — A plain object or string that is sent to the server with the request.
+- * @see \`{@link https://api.jquery.com/load/ }\`
+- * @since 1.0
+- * @example ````Load another page's list items into an ordered list.
+-```html
+-
+-
+-
+-
+- load demo
+-
+-
+-
+-
+-
+-Projects:
+-
+-
+-
+-
+-
+-
+-```
+- * @example ````Display a notice if the Ajax request encounters an error.
+-```html
+-
+-
+-
+-
+- load demo
+-
+-
+-
+-
+-
+-Successful Response (should be blank):
+-
+-Error Response:
+-
+-
+-
+-
+-
+-
+-```
+- * @example ````Load the feeds.html file into the div with the ID of feeds.
+-```javascript
+-$( "#feeds" ).load( "feeds.html" );
+-```
+- * @example ````pass arrays of data to the server.
+-```javascript
+-$( "#objectID" ).load( "test.php", { "choices[]": [ "Jon", "Susan" ] } );
+-```
+- */
+- load(url: string,
+- complete_data?: ((this: TElement, responseText: string, textStatus: JQuery.Ajax.TextStatus, jqXHR: JQuery.jqXHR) => void) | string | JQuery.PlainObject): this;
+- /**
+- * Pass each element in the current matched set through a function, producing a new jQuery object containing the return values.
+- * @param callback A function object that will be invoked for each element in the current set.
+- * @see \`{@link https://api.jquery.com/map/ }\`
+- * @since 1.2
+- * @example ````Build a list of all the values within a form.
+-```html
+-
+-
+-
+-
+- map demo
+-
+-
+-
+-
+-
+-Values:
+-
+-
+-
+-
+-
+-
+-```
+- * @example ````A contrived example to show some functionality.
+-```html
+-
+-
+-
+-
+- map demo
+-
+-
+-
+-
+-
+-
+- First
+- Second
+- Third
+- Fourth
+- Fifth
+-
+-
+-
+-
+-
+-
+-
+-```
+- * @example ````Equalize the heights of the divs.
+-```html
+-
+-
+-
+-
+- map demo
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-```
+- */
+- map(callback: (this: TElement, index: number, domElement: TElement) => JQuery.TypeOrArray | null | undefined): JQuery;
+- /**
+- * Bind an event handler to the "mousedown" JavaScript event, or trigger that event on an element.
+- * @param eventData An object containing data that will be passed to the event handler.
+- * @param handler A function to execute each time the event is triggered.
+- * @see \`{@link https://api.jquery.com/mousedown/ }\`
+- * @since 1.4.3
+- * @deprecated Deprecated since 3.3. Use \`{@link on }\` or \`{@link trigger }\`.
+- *
+- * **Cause**: The `.on()` and `.trigger()` methods can set an event handler or generate an event for any event type, and should be used instead of the shortcut methods. This message also applies to the other event shorthands, including: blur, focus, focusin, focusout, resize, scroll, dblclick, mousedown, mouseup, mousemove, mouseover, mouseout, mouseenter, mouseleave, change, select, submit, keydown, keypress, keyup, and contextmenu.
+- *
+- * **Solution**: Instead of `.click(fn)` use `.on("click", fn)`. Instead of `.click()` use `.trigger("click")`.
+- */
+- mousedown(eventData: TData,
+- handler: JQuery.TypeEventHandler): this;
+- /**
+- * Bind an event handler to the "mousedown" JavaScript event, or trigger that event on an element.
+- * @param handler A function to execute each time the event is triggered.
+- * @see \`{@link https://api.jquery.com/mousedown/ }\`
+- * @since 1.0
+- * @deprecated Deprecated since 3.3. Use \`{@link on }\` or \`{@link trigger }\`.
+- *
+- * **Cause**: The `.on()` and `.trigger()` methods can set an event handler or generate an event for any event type, and should be used instead of the shortcut methods. This message also applies to the other event shorthands, including: blur, focus, focusin, focusout, resize, scroll, dblclick, mousedown, mouseup, mousemove, mouseover, mouseout, mouseenter, mouseleave, change, select, submit, keydown, keypress, keyup, and contextmenu.
+- *
+- * **Solution**: Instead of `.click(fn)` use `.on("click", fn)`. Instead of `.click()` use `.trigger("click")`.
+- * @example ````Show texts when mouseup and mousedown event triggering.
+-```html
+-
+-
+-
+-
+- mousedown demo
+-
+-
+-
+-
+-Press mouse and release here.
+-
+-
+-
+-
+-
+-```
+- */
+- mousedown(handler?: JQuery.TypeEventHandler |
+- false): this;
+- /**
+- * Bind an event handler to be fired when the mouse enters an element, or trigger that handler on an element.
+- * @param eventData An object containing data that will be passed to the event handler.
+- * @param handler A function to execute each time the event is triggered.
+- * @see \`{@link https://api.jquery.com/mouseenter/ }\`
+- * @since 1.4.3
+- * @deprecated Deprecated since 3.3. Use \`{@link on }\` or \`{@link trigger }\`.
+- *
+- * **Cause**: The `.on()` and `.trigger()` methods can set an event handler or generate an event for any event type, and should be used instead of the shortcut methods. This message also applies to the other event shorthands, including: blur, focus, focusin, focusout, resize, scroll, dblclick, mousedown, mouseup, mousemove, mouseover, mouseout, mouseenter, mouseleave, change, select, submit, keydown, keypress, keyup, and contextmenu.
+- *
+- * **Solution**: Instead of `.click(fn)` use `.on("click", fn)`. Instead of `.click()` use `.trigger("click")`.
+- */
+- mouseenter(eventData: TData,
+- handler: JQuery.TypeEventHandler): this;
+- /**
+- * Bind an event handler to be fired when the mouse enters an element, or trigger that handler on an element.
+- * @param handler A function to execute each time the event is triggered.
+- * @see \`{@link https://api.jquery.com/mouseenter/ }\`
+- * @since 1.0
+- * @deprecated Deprecated since 3.3. Use \`{@link on }\` or \`{@link trigger }\`.
+- *
+- * **Cause**: The `.on()` and `.trigger()` methods can set an event handler or generate an event for any event type, and should be used instead of the shortcut methods. This message also applies to the other event shorthands, including: blur, focus, focusin, focusout, resize, scroll, dblclick, mousedown, mouseup, mousemove, mouseover, mouseout, mouseenter, mouseleave, change, select, submit, keydown, keypress, keyup, and contextmenu.
+- *
+- * **Solution**: Instead of `.click(fn)` use `.on("click", fn)`. Instead of `.click()` use `.trigger("click")`.
+- * @example ````Show texts when mouseenter and mouseout event triggering.
+- mouseover fires when the pointer moves into the child element as well, while mouseenter fires only when the pointer moves into the bound element.
+-```html
+-
+-
+-
+-
+- mouseenter demo
+-
+-
+-
+-
+-
+-
+-
move your mouse
+-
+-
0
+-
+-
+-
+-
move your mouse
+-
+-
0
+-
+-
+-
+-
+-
+-
+-```
+- */
+- mouseenter(handler?: JQuery.TypeEventHandler |
+- false): this;
+- /**
+- * Bind an event handler to be fired when the mouse leaves an element, or trigger that handler on an element.
+- * @param eventData An object containing data that will be passed to the event handler.
+- * @param handler A function to execute each time the event is triggered.
+- * @see \`{@link https://api.jquery.com/mouseleave/ }\`
+- * @since 1.4.3
+- * @deprecated Deprecated since 3.3. Use \`{@link on }\` or \`{@link trigger }\`.
+- *
+- * **Cause**: The `.on()` and `.trigger()` methods can set an event handler or generate an event for any event type, and should be used instead of the shortcut methods. This message also applies to the other event shorthands, including: blur, focus, focusin, focusout, resize, scroll, dblclick, mousedown, mouseup, mousemove, mouseover, mouseout, mouseenter, mouseleave, change, select, submit, keydown, keypress, keyup, and contextmenu.
+- *
+- * **Solution**: Instead of `.click(fn)` use `.on("click", fn)`. Instead of `.click()` use `.trigger("click")`.
+- */
+- mouseleave(eventData: TData,
+- handler: JQuery.TypeEventHandler): this;
+- /**
+- * Bind an event handler to be fired when the mouse leaves an element, or trigger that handler on an element.
+- * @param handler A function to execute each time the event is triggered.
+- * @see \`{@link https://api.jquery.com/mouseleave/ }\`
+- * @since 1.0
+- * @deprecated Deprecated since 3.3. Use \`{@link on }\` or \`{@link trigger }\`.
+- *
+- * **Cause**: The `.on()` and `.trigger()` methods can set an event handler or generate an event for any event type, and should be used instead of the shortcut methods. This message also applies to the other event shorthands, including: blur, focus, focusin, focusout, resize, scroll, dblclick, mousedown, mouseup, mousemove, mouseover, mouseout, mouseenter, mouseleave, change, select, submit, keydown, keypress, keyup, and contextmenu.
+- *
+- * **Solution**: Instead of `.click(fn)` use `.on("click", fn)`. Instead of `.click()` use `.trigger("click")`.
+- * @example ````Show number of times mouseout and mouseleave events are triggered. mouseout fires when the pointer moves out of child element as well, while mouseleave fires only when the pointer moves out of the bound element.
+-```html
+-
+-
+-
+-
+- mouseleave demo
+-
+-
+-
+-
+-
+-
+-
move your mouse
+-
+-
0
+-
+-
+-
move your mouse
+-
+-
0
+-
+-
+-
+-
+-
+-
+-```
+- */
+- mouseleave(handler?: JQuery.TypeEventHandler |
+- false): this;
+- /**
+- * Bind an event handler to the "mousemove" JavaScript event, or trigger that event on an element.
+- * @param eventData An object containing data that will be passed to the event handler.
+- * @param handler A function to execute each time the event is triggered.
+- * @see \`{@link https://api.jquery.com/mousemove/ }\`
+- * @since 1.4.3
+- * @deprecated Deprecated since 3.3. Use \`{@link on }\` or \`{@link trigger }\`.
+- *
+- * **Cause**: The `.on()` and `.trigger()` methods can set an event handler or generate an event for any event type, and should be used instead of the shortcut methods. This message also applies to the other event shorthands, including: blur, focus, focusin, focusout, resize, scroll, dblclick, mousedown, mouseup, mousemove, mouseover, mouseout, mouseenter, mouseleave, change, select, submit, keydown, keypress, keyup, and contextmenu.
+- *
+- * **Solution**: Instead of `.click(fn)` use `.on("click", fn)`. Instead of `.click()` use `.trigger("click")`.
+- */
+- mousemove(eventData: TData,
+- handler: JQuery.TypeEventHandler): this;
+- /**
+- * Bind an event handler to the "mousemove" JavaScript event, or trigger that event on an element.
+- * @param handler A function to execute each time the event is triggered.
+- * @see \`{@link https://api.jquery.com/mousemove/ }\`
+- * @since 1.0
+- * @deprecated Deprecated since 3.3. Use \`{@link on }\` or \`{@link trigger }\`.
+- *
+- * **Cause**: The `.on()` and `.trigger()` methods can set an event handler or generate an event for any event type, and should be used instead of the shortcut methods. This message also applies to the other event shorthands, including: blur, focus, focusin, focusout, resize, scroll, dblclick, mousedown, mouseup, mousemove, mouseover, mouseout, mouseenter, mouseleave, change, select, submit, keydown, keypress, keyup, and contextmenu.
+- *
+- * **Solution**: Instead of `.click(fn)` use `.on("click", fn)`. Instead of `.click()` use `.trigger("click")`.
+- * @example ````Show the mouse coordinates when the mouse is moved over the yellow div. Coordinates are relative to the window, which in this case is the iframe.
+-```html
+-
+-
+-
+-
+- mousemove demo
+-
+-
+-
+-
+-
+-
+- Move the mouse over the div.
+-
+-
+-
+-
+-
+-
+-
+-
+-```
+- */
+- mousemove(handler?: JQuery.TypeEventHandler |
+- false): this;
+- /**
+- * Bind an event handler to the "mouseout" JavaScript event, or trigger that event on an element.
+- * @param eventData An object containing data that will be passed to the event handler.
+- * @param handler A function to execute each time the event is triggered.
+- * @see \`{@link https://api.jquery.com/mouseout/ }\`
+- * @since 1.4.3
+- * @deprecated Deprecated since 3.3. Use \`{@link on }\` or \`{@link trigger }\`.
+- *
+- * **Cause**: The `.on()` and `.trigger()` methods can set an event handler or generate an event for any event type, and should be used instead of the shortcut methods. This message also applies to the other event shorthands, including: blur, focus, focusin, focusout, resize, scroll, dblclick, mousedown, mouseup, mousemove, mouseover, mouseout, mouseenter, mouseleave, change, select, submit, keydown, keypress, keyup, and contextmenu.
+- *
+- * **Solution**: Instead of `.click(fn)` use `.on("click", fn)`. Instead of `.click()` use `.trigger("click")`.
+- */
+- mouseout(eventData: TData,
+- handler: JQuery.TypeEventHandler): this;
+- /**
+- * Bind an event handler to the "mouseout" JavaScript event, or trigger that event on an element.
+- * @param handler A function to execute each time the event is triggered.
+- * @see \`{@link https://api.jquery.com/mouseout/ }\`
+- * @since 1.0
+- * @deprecated Deprecated since 3.3. Use \`{@link on }\` or \`{@link trigger }\`.
+- *
+- * **Cause**: The `.on()` and `.trigger()` methods can set an event handler or generate an event for any event type, and should be used instead of the shortcut methods. This message also applies to the other event shorthands, including: blur, focus, focusin, focusout, resize, scroll, dblclick, mousedown, mouseup, mousemove, mouseover, mouseout, mouseenter, mouseleave, change, select, submit, keydown, keypress, keyup, and contextmenu.
+- *
+- * **Solution**: Instead of `.click(fn)` use `.on("click", fn)`. Instead of `.click()` use `.trigger("click")`.
+- * @example ````Show the number of times mouseout and mouseleave events are triggered.
+- mouseout fires when the pointer moves out of the child element as well, while mouseleave fires only when the pointer moves out of the bound element.
+-```html
+-
+-
+-
+-
+- mouseout demo
+-
+-
+-
+-
+-
+-
+-
move your mouse
+-
+-
0
+-
+-
+-
+-
move your mouse
+-
+-
0
+-
+-
+-
+-
+-
+-
+-```
+- */
+- mouseout(handler?: JQuery.TypeEventHandler |
+- false): this;
+- /**
+- * Bind an event handler to the "mouseover" JavaScript event, or trigger that event on an element.
+- * @param eventData An object containing data that will be passed to the event handler.
+- * @param handler A function to execute each time the event is triggered.
+- * @see \`{@link https://api.jquery.com/mouseover/ }\`
+- * @since 1.4.3
+- * @deprecated Deprecated since 3.3. Use \`{@link on }\` or \`{@link trigger }\`.
+- *
+- * **Cause**: The `.on()` and `.trigger()` methods can set an event handler or generate an event for any event type, and should be used instead of the shortcut methods. This message also applies to the other event shorthands, including: blur, focus, focusin, focusout, resize, scroll, dblclick, mousedown, mouseup, mousemove, mouseover, mouseout, mouseenter, mouseleave, change, select, submit, keydown, keypress, keyup, and contextmenu.
+- *
+- * **Solution**: Instead of `.click(fn)` use `.on("click", fn)`. Instead of `.click()` use `.trigger("click")`.
+- */
+- mouseover(eventData: TData,
+- handler: JQuery.TypeEventHandler): this;
+- /**
+- * Bind an event handler to the "mouseover" JavaScript event, or trigger that event on an element.
+- * @param handler A function to execute each time the event is triggered.
+- * @see \`{@link https://api.jquery.com/mouseover/ }\`
+- * @since 1.0
+- * @deprecated Deprecated since 3.3. Use \`{@link on }\` or \`{@link trigger }\`.
+- *
+- * **Cause**: The `.on()` and `.trigger()` methods can set an event handler or generate an event for any event type, and should be used instead of the shortcut methods. This message also applies to the other event shorthands, including: blur, focus, focusin, focusout, resize, scroll, dblclick, mousedown, mouseup, mousemove, mouseover, mouseout, mouseenter, mouseleave, change, select, submit, keydown, keypress, keyup, and contextmenu.
+- *
+- * **Solution**: Instead of `.click(fn)` use `.on("click", fn)`. Instead of `.click()` use `.trigger("click")`.
+- * @example ````Show the number of times mouseover and mouseenter events are triggered.
+-mouseover fires when the pointer moves into the child element as well, while mouseenter fires only when the pointer moves into the bound element.
+-```html
+-
+-
+-
+-
+- mouseover demo
+-
+-
+-
+-
+-
+-
+-
move your mouse
+-
+-
+-
+-
+-
+-
move your mouse
+-
+-
+-
+-
+-
+-
+-
+-
+-```
+- */
+- mouseover(handler?: JQuery.TypeEventHandler |
+- false): this;
+- /**
+- * Bind an event handler to the "mouseup" JavaScript event, or trigger that event on an element.
+- * @param eventData An object containing data that will be passed to the event handler.
+- * @param handler A function to execute each time the event is triggered.
+- * @see \`{@link https://api.jquery.com/mouseup/ }\`
+- * @since 1.4.3
+- * @deprecated Deprecated since 3.3. Use \`{@link on }\` or \`{@link trigger }\`.
+- *
+- * **Cause**: The `.on()` and `.trigger()` methods can set an event handler or generate an event for any event type, and should be used instead of the shortcut methods. This message also applies to the other event shorthands, including: blur, focus, focusin, focusout, resize, scroll, dblclick, mousedown, mouseup, mousemove, mouseover, mouseout, mouseenter, mouseleave, change, select, submit, keydown, keypress, keyup, and contextmenu.
+- *
+- * **Solution**: Instead of `.click(fn)` use `.on("click", fn)`. Instead of `.click()` use `.trigger("click")`.
+- */
+- mouseup(eventData: TData,
+- handler: JQuery.TypeEventHandler): this;
+- /**
+- * Bind an event handler to the "mouseup" JavaScript event, or trigger that event on an element.
+- * @param handler A function to execute each time the event is triggered.
+- * @see \`{@link https://api.jquery.com/mouseup/ }\`
+- * @since 1.0
+- * @deprecated Deprecated since 3.3. Use \`{@link on }\` or \`{@link trigger }\`.
+- *
+- * **Cause**: The `.on()` and `.trigger()` methods can set an event handler or generate an event for any event type, and should be used instead of the shortcut methods. This message also applies to the other event shorthands, including: blur, focus, focusin, focusout, resize, scroll, dblclick, mousedown, mouseup, mousemove, mouseover, mouseout, mouseenter, mouseleave, change, select, submit, keydown, keypress, keyup, and contextmenu.
+- *
+- * **Solution**: Instead of `.click(fn)` use `.on("click", fn)`. Instead of `.click()` use `.trigger("click")`.
+- * @example ````Show texts when mouseup and mousedown event triggering.
+-```html
+-
+-
+-
+-
+- mouseup demo
+-
+-
+-
+-
+-Press mouse and release here.
+-
+-
+-
+-
+-
+-```
+- */
+- mouseup(handler?: JQuery.TypeEventHandler |
+- false): this;
+- /**
+- * Get the immediately following sibling of each element in the set of matched elements. If a selector is provided, it retrieves the next sibling only if it matches that selector.
+- * @param selector A string containing a selector expression to match elements against.
+- * @see \`{@link https://api.jquery.com/next/ }\`
+- * @since 1.0
+- * @example ````Find the very next sibling of each disabled button and change its text "this button is disabled".
+-```html
+-
+-
+-
+-
+- next demo
+-
+-
+-
+-
+-
+-First -
+-Second -
+-Third -
+-
+-
+-
+-
+-
+-```
+- * @example ````Find the very next sibling of each paragraph. Keep only the ones with a class "selected".
+-```html
+-
+-
+-
+-
+- next demo
+-
+-
+-
+-
+-Hello
+-Hello Again
+-And Again
+-
+-
+-
+-
+-
+-```
+- */
+- next(selector?: JQuery.Selector): this;
+- /**
+- * Get all following siblings of each element in the set of matched elements, optionally filtered by a selector.
+- * @param selector A string containing a selector expression to match elements against.
+- * @see \`{@link https://api.jquery.com/nextAll/ }\`
+- * @since 1.2
+- * @example ````Locate all the divs after the first and give them a class.
+-```html
+-
+-
+-
+-
+- nextAll demo
+-
+-
+-
+-
+-
+-first
+-
+-sibling
+-sibling
+-
+-
+-
+-
+-```
+- * @example ````Locate all the paragraphs after the second child in the body and give them a class.
+-```html
+-
+-
+-
+-
+- nextAll demo
+-
+-
+-
+-
+-
+-p
+-div
+-p
+-p
+-div
+-p
+-div
+-
+-
+-
+-
+-
+-```
+- */
+- nextAll(selector?: string): this;
+- /**
+- * Get all following siblings of each element up to but not including the element matched by the selector, DOM node, or jQuery object passed.
+- * @param selector_element _@param_ `selector_element`
+- *
+- * * `selector` — A string containing a selector expression to indicate where to stop matching following sibling elements.
+- * * `element` — A DOM node or jQuery object indicating where to stop matching following sibling elements.
+- * @param filter A string containing a selector expression to match elements against.
+- * @see \`{@link https://api.jquery.com/nextUntil/ }\`
+- * @since 1.4
+- * @since 1.6
+- * @example ````Find the siblings that follow <dt id="term-2"> up to the next <dt> and give them a red background color. Also, find <dd> siblings that follow <dt id="term-1"> up to <dt id="term-3"> and give them a green text color.
+-```html
+-
+-
+-
+-
+- nextUntil demo
+-
+-
+-
+-
+-
+- term 1
+- definition 1-a
+- definition 1-b
+- definition 1-c
+- definition 1-d
+- term 2
+- definition 2-a
+- definition 2-b
+- definition 2-c
+- term 3
+- definition 3-a
+- definition 3-b
+-
+-
+-
+-
+-
+-
+-```
+- */
+- nextUntil(selector_element?: JQuery.Selector | Element | JQuery, filter?: JQuery.Selector): this;
+- /**
+- * Remove elements from the set of matched elements.
+- * @param selector_function_selection _@param_ `selector_function_selection`
+- *
+- * * `selector` — A string containing a selector expression, a DOM element, or an array of elements to match against the set.
+- * * `function` — A function used as a test for each element in the set. It accepts two arguments, `index`, which is
+- * the element's index in the jQuery collection, and `element`, which is the DOM element. Within the
+- * function, `this` refers to the current DOM element.
+- * * `selection` — An existing jQuery object to match the current set of elements against.
+- * @see \`{@link https://api.jquery.com/not/ }\`
+- * @since 1.0
+- * @since 1.4
+- * @example ````Adds a border to divs that are not green or blue.
+-```html
+-
+-
+-
+-
+- not demo
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-```
+- * @example ````Removes the element with the ID "selected" from the set of all paragraphs.
+-```javascript
+-$( "p" ).not( $( "#selected" )[ 0 ] );
+-```
+- * @example ````Removes the element with the ID "selected" from the set of all paragraphs.
+-```javascript
+-$( "p" ).not( "#selected" );
+-```
+- * @example ````Removes all elements that match "div p.selected" from the total set of all paragraphs.
+-```javascript
+-$( "p" ).not( $( "div p.selected" ) );
+-```
+- */
+- not(selector_function_selection: JQuery.Selector | JQuery.TypeOrArray | JQuery | ((this: TElement, index: number, element: TElement) => boolean)): this;
+- /**
+- * Remove an event handler.
+- * @param events One or more space-separated event types and optional namespaces, or just namespaces, such as
+- * "click", "keydown.myPlugin", or ".myPlugin".
+- * @param selector A selector which should match the one originally passed to .on() when attaching event handlers.
+- * @param handler A function to execute each time the event is triggered.
+- * @see \`{@link https://api.jquery.com/off/ }\`
+- * @since 1.7
+- * @example ````Add and remove event handlers on the colored button.
+-```html
+-
+-
+-
+-
+- off demo
+-
+-
+-
+-
+-
+-Does nothing...
+-Add Click
+-Remove Click
+-Click!
+-
+-
+-
+-
+-
+-```
+- * @example ````Remove just one previously bound handler by passing it as the third argument:
+-```javascript
+-var foo = function() {
+- // Code to handle some kind of event
+-};
+-
+-// ... Now foo will be called when paragraphs are clicked ...
+-$( "body" ).on( "click", "p", foo );
+-
+-// ... Foo will no longer be called.
+-$( "body" ).off( "click", "p", foo );
+-```
+- */
+- off(
+- events: TType,
+- selector: JQuery.Selector,
+- handler: JQuery.TypeEventHandler |
+- false
+- ): this;
+- /**
+- * Remove an event handler.
+- * @param events One or more space-separated event types and optional namespaces, or just namespaces, such as
+- * "click", "keydown.myPlugin", or ".myPlugin".
+- * @param selector_handler _@param_ `selector_handler`
+- *
+- * * `selector` — A selector which should match the one originally passed to `.on()` when attaching event handlers.
+- * * `handler` — A handler function previously attached for the event(s), or the special value `false`.
+- * @see \`{@link https://api.jquery.com/off/ }\`
+- * @since 1.7
+- * @example ````Remove all delegated click handlers from all paragraphs:
+-```javascript
+-$( "p" ).off( "click", "**" );
+-```
+- * @example ````Unbind all delegated event handlers by their namespace:
+-```javascript
+-var validate = function() {
+- // Code to validate form entries
+-};
+-
+-// Delegate events under the ".validator" namespace
+-$( "form" ).on( "click.validator", "button", validate );
+-
+-$( "form" ).on( "keypress.validator", "input[type='text']", validate );
+-
+-// Remove event handlers in the ".validator" namespace
+-$( "form" ).off( ".validator" );
+-```
+- */
+- off(
+- events: TType,
+- selector_handler?: JQuery.Selector |
+- JQuery.TypeEventHandler |
+- false
+- ): this;
+- /**
+- * Remove an event handler.
+- * @param events An object where the string keys represent one or more space-separated event types and optional
+- * namespaces, and the values represent handler functions previously attached for the event(s).
+- * @param selector A selector which should match the one originally passed to .on() when attaching event handlers.
+- * @see \`{@link https://api.jquery.com/off/ }\`
+- * @since 1.7
+- */
+- off(events: JQuery.TypeEventHandlers,
+- selector?: JQuery.Selector): this;
+- /**
+- * Remove an event handler.
+- * @param event A jQuery.Event object.
+- * @see \`{@link https://api.jquery.com/off/ }\`
+- * @since 1.7
+- * @example ````Remove all event handlers from all paragraphs:
+-```javascript
+-$( "p" ).off();
+-```
+- */
+- off(event?: JQuery.TriggeredEvent): this;
+- /**
+- * Set the current coordinates of every element in the set of matched elements, relative to the document.
+- * @param coordinates_function _@param_ `coordinates_function`
+- *
+- * * `coordinates` — An object containing the properties `top` and `left`, which are numbers indicating the new top and
+- * left coordinates for the elements.
+- * * `function` — A function to return the coordinates to set. Receives the index of the element in the collection as
+- * the first argument and the current coordinates as the second argument. The function should return an
+- * object with the new `top` and `left` properties.
+- * @see \`{@link https://api.jquery.com/offset/ }\`
+- * @since 1.4
+- * @example ````Set the offset of the second paragraph:
+-```html
+-
+-
+-
+-
+- offset demo
+-
+-
+-
+-
+-
+-Hello
2nd Paragraph
+-
+-
+-
+-
+-
+-```
+- */
+- offset(coordinates_function: JQuery.CoordinatesPartial | ((this: TElement, index: number, coords: JQuery.Coordinates) => JQuery.CoordinatesPartial)): this;
+- /**
+- * Get the current coordinates of the first element in the set of matched elements, relative to the document.
+- * @see \`{@link https://api.jquery.com/offset/ }\`
+- * @since 1.2
+- * @example ````Access the offset of the second paragraph:
+-```html
+-
+-
+-
+-
+- offset demo
+-
+-
+-
+-
+-
+-Hello
2nd Paragraph
+-
+-
+-
+-
+-
+-```
+- * @example ````Click to see the offset.
+-```html
+-
+-
+-
+-
+- offset demo
+-
+-
+-
+-
+-
+-Click an element.
+-
+- This is the best way to find an offset.
+-
+-
+-
+-
+-
+-
+-
+-
+-```
+- */
+- offset(): JQuery.Coordinates | undefined;
+- /**
+- * Get the closest ancestor element that is positioned.
+- * @see \`{@link https://api.jquery.com/offsetParent/ }\`
+- * @since 1.2.6
+- * @example ````Find the offsetParent of item "A."
+-```html
+-
+-
+-
+-
+- offsetParent demo
+-
+-
+-
+-
+-
+- I
+- II
+-
+-
+- III
+-
+-
+-
+-
+-
+-
+-```
+- */
+- offsetParent(): this;
+- /**
+- * Attach an event handler function for one or more events to the selected elements.
+- * @param events One or more space-separated event types and optional namespaces, such as "click" or "keydown.myPlugin".
+- * @param selector A selector string to filter the descendants of the selected elements that trigger the event. If the
+- * selector is null or omitted, the event is always triggered when it reaches the selected element.
+- * @param data Data to be passed to the handler in event.data when an event is triggered.
+- * @param handler A function to execute when the event is triggered.
+- * @see \`{@link https://api.jquery.com/on/ }\`
+- * @since 1.7
+- */
+- on(
+- events: TType,
+- selector: JQuery.Selector,
+- data: TData,
+- handler: JQuery.TypeEventHandler
+- ): this;
+- /**
+- * Attach an event handler function for one or more events to the selected elements.
+- * @param events One or more space-separated event types and optional namespaces, such as "click" or "keydown.myPlugin".
+- * @param selector A selector string to filter the descendants of the selected elements that trigger the event. If the
+- * selector is null or omitted, the event is always triggered when it reaches the selected element.
+- * @param data Data to be passed to the handler in event.data when an event is triggered.
+- * @param handler A function to execute when the event is triggered.
+- * @see \`{@link https://api.jquery.com/on/ }\`
+- * @since 1.7
+- */
+- on(
+- events: TType,
+- selector: null | undefined,
+- data: TData,
+- handler: JQuery.TypeEventHandler
+- ): this;
+- /**
+- * Attach an event handler function for one or more events to the selected elements.
+- * @param events One or more space-separated event types and optional namespaces, such as "click" or "keydown.myPlugin".
+- * @param selector A selector string to filter the descendants of the selected elements that trigger the event. If the
+- * selector is null or omitted, the event is always triggered when it reaches the selected element.
+- * @param data Data to be passed to the handler in event.data when an event is triggered.
+- * @param handler A function to execute when the event is triggered.
+- * @see \`{@link https://api.jquery.com/on/ }\`
+- * @since 1.7
+- * @deprecated Deprecated. Use \`{@link JQuery.Event }\` in place of \`{@link JQueryEventObject }\`.
+- */
+- on(events: string,
+- selector: JQuery.Selector | null | undefined,
+- data: any,
+- handler: ((event: JQueryEventObject) => void)): this;
+- /**
+- * Attach an event handler function for one or more events to the selected elements.
+- * @param events One or more space-separated event types and optional namespaces, such as "click" or "keydown.myPlugin".
+- * @param selector A selector string to filter the descendants of the selected elements that trigger the event. If the
+- * selector is null or omitted, the event is always triggered when it reaches the selected element.
+- * @param handler A function to execute when the event is triggered. The value false is also allowed as a shorthand
+- * for a function that simply does return false.
+- * @see \`{@link https://api.jquery.com/on/ }\`
+- * @since 1.7
+- * @example ````Click any paragraph to add another after it. Note that .on() allows a click event on any paragraph--even new ones--since the event is handled by the ever-present body element after it bubbles to there.
+-```html
+-
+-
+-
+-
+- on demo
+-
+-
+-
+-
+-
+-Click me!
+-
+-
+-
+-
+-
+-
+-```
+- * @example ````Display each paragraph's text in an alert box whenever it is clicked:
+-```javascript
+-$( "body" ).on( "click", "p", function() {
+- alert( $( this ).text() );
+-});
+-```
+- * @example ````Cancel a link's default action using the .preventDefault() method:
+-```javascript
+-$( "body" ).on( "click", "a", function( event ) {
+- event.preventDefault();
+-});
+-```
+- */
+- on(
+- events: TType,
+- selector: JQuery.Selector,
+- handler: JQuery.TypeEventHandler |
+- false
+- ): this;
+- /**
+- * Attach an event handler function for one or more events to the selected elements.
+- * @param events One or more space-separated event types and optional namespaces, such as "click" or "keydown.myPlugin".
+- * @param data Data to be passed to the handler in event.data when an event is triggered.
+- * @param handler A function to execute when the event is triggered.
+- * @see \`{@link https://api.jquery.com/on/ }\`
+- * @since 1.7
+- * @example ````Pass data to the event handler, which is specified here by name:
+-```javascript
+-function myHandler( event ) {
+- alert( event.data.foo );
+-}
+-$( "p" ).on( "click", { foo: "bar" }, myHandler );
+-```
+- */
+- on(
+- events: TType,
+- data: TData,
+- handler: JQuery.TypeEventHandler
+- ): this;
+- /**
+- * Attach an event handler function for one or more events to the selected elements.
+- * @param events One or more space-separated event types and optional namespaces, such as "click" or "keydown.myPlugin".
+- * @param selector_data _@param_ `selector_data`
+- *
+- * * `selector` — A selector string to filter the descendants of the selected elements that trigger the event. If the
+- * selector is null or omitted, the event is always triggered when it reaches the selected element.
+- * * `data` — Data to be passed to the handler in event.data when an event is triggered.
+- * @param handler A function to execute when the event is triggered.
+- * @see \`{@link https://api.jquery.com/on/ }\`
+- * @since 1.7
+- * @deprecated Deprecated. Use \`{@link JQuery.Event }\` in place of \`{@link JQueryEventObject }\`.
+- * @example ````Click any paragraph to add another after it. Note that .on() allows a click event on any paragraph--even new ones--since the event is handled by the ever-present body element after it bubbles to there.
+-```html
+-
+-
+-
+-
+- on demo
+-
+-
+-
+-
+-
+-Click me!
+-
+-
+-
+-
+-
+-
+-```
+- * @example ````Display each paragraph's text in an alert box whenever it is clicked:
+-```javascript
+-$( "body" ).on( "click", "p", function() {
+- alert( $( this ).text() );
+-});
+-```
+- * @example ````Cancel a link's default action using the .preventDefault() method:
+-```javascript
+-$( "body" ).on( "click", "a", function( event ) {
+- event.preventDefault();
+-});
+-```
+- * @example ````Pass data to the event handler, which is specified here by name:
+-```javascript
+-function myHandler( event ) {
+- alert( event.data.foo );
+-}
+-$( "p" ).on( "click", { foo: "bar" }, myHandler );
+-```
+- */
+- on(events: string,
+- selector_data: any,
+- handler: ((event: JQueryEventObject) => void)): this;
+- /**
+- * Attach an event handler function for one or more events to the selected elements.
+- * @param events One or more space-separated event types and optional namespaces, such as "click" or "keydown.myPlugin".
+- * @param handler A function to execute when the event is triggered. The value false is also allowed as a shorthand
+- * for a function that simply does return false.
+- * @see \`{@link https://api.jquery.com/on/ }\`
+- * @since 1.7
+- * @example ````Display a paragraph's text in an alert when it is clicked:
+-```javascript
+-$( "p" ).on( "click", function() {
+- alert( $( this ).text() );
+-});
+-```
+- * @example ````Cancel a form submit action and prevent the event from bubbling up by returning false:
+-```javascript
+-$( "form" ).on( "submit", false );
+-```
+- * @example ````Cancel only the default action by using .preventDefault().
+-```javascript
+-$( "form" ).on( "submit", function( event ) {
+- event.preventDefault();
+-});
+-```
+- * @example ````Stop submit events from bubbling without preventing form submit, using .stopPropagation().
+-```javascript
+-$( "form" ).on( "submit", function( event ) {
+- event.stopPropagation();
+-});
+-```
+- * @example ````Pass data to the event handler using the second argument to .trigger()
+-```javascript
+-$( "div" ).on( "click", function( event, person ) {
+- alert( "Hello, " + person.name );
+-});
+-$( "div" ).trigger( "click", { name: "Jim" } );
+-```
+- * @example ````Use the the second argument of .trigger() to pass an array of data to the event handler
+-```javascript
+-$( "div" ).on( "click", function( event, salutation, name ) {
+- alert( salutation + ", " + name );
+-});
+-$( "div" ).trigger( "click", [ "Goodbye", "Jim" ] );
+-```
+- * @example ````Attach and trigger custom (non-browser) events.
+-```html
+-
+-
+-
+-
+- on demo
+-
+-
+-
+-
+-
+-Has an attached custom event.
+-Trigger custom event
+-
+-
+-
+-
+-
+-
+-```
+- * @example ````Attach multiple events—one on mouseenter and one on mouseleave to the same element:
+-```javascript
+-$( "#cart" ).on( "mouseenter mouseleave", function( event ) {
+- $( this ).toggleClass( "active" );
+-});
+-```
+- */
+- on(
+- events: TType,
+- handler: JQuery.TypeEventHandler |
+- false
+- ): this;
+- /**
+- * Attach an event handler function for one or more events to the selected elements.
+- * @param events One or more space-separated event types and optional namespaces, such as "click" or "keydown.myPlugin".
+- * @param handler A function to execute when the event is triggered.
+- * @see \`{@link https://api.jquery.com/on/ }\`
+- * @since 1.7
+- * @deprecated Deprecated. Use \`{@link JQuery.Event }\` in place of \`{@link JQueryEventObject }\`.
+- * @example ````Display a paragraph's text in an alert when it is clicked:
+-```javascript
+-$( "p" ).on( "click", function() {
+- alert( $( this ).text() );
+-});
+-```
+- * @example ````Cancel a form submit action and prevent the event from bubbling up by returning false:
+-```javascript
+-$( "form" ).on( "submit", false );
+-```
+- * @example ````Cancel only the default action by using .preventDefault().
+-```javascript
+-$( "form" ).on( "submit", function( event ) {
+- event.preventDefault();
+-});
+-```
+- * @example ````Stop submit events from bubbling without preventing form submit, using .stopPropagation().
+-```javascript
+-$( "form" ).on( "submit", function( event ) {
+- event.stopPropagation();
+-});
+-```
+- * @example ````Pass data to the event handler using the second argument to .trigger()
+-```javascript
+-$( "div" ).on( "click", function( event, person ) {
+- alert( "Hello, " + person.name );
+-});
+-$( "div" ).trigger( "click", { name: "Jim" } );
+-```
+- * @example ````Use the the second argument of .trigger() to pass an array of data to the event handler
+-```javascript
+-$( "div" ).on( "click", function( event, salutation, name ) {
+- alert( salutation + ", " + name );
+-});
+-$( "div" ).trigger( "click", [ "Goodbye", "Jim" ] );
+-```
+- * @example ````Attach and trigger custom (non-browser) events.
+-```html
+-
+-
+-
+-
+- on demo
+-
+-
+-
+-
+-
+-Has an attached custom event.
+-Trigger custom event
+-
+-
+-
+-
+-
+-
+-```
+- * @example ````Attach multiple events—one on mouseenter and one on mouseleave to the same element:
+-```javascript
+-$( "#cart" ).on( "mouseenter mouseleave", function( event ) {
+- $( this ).toggleClass( "active" );
+-});
+-```
+- */
+- on(events: string,
+- handler: ((event: JQueryEventObject) => void)): this;
+- /**
+- * Attach an event handler function for one or more events to the selected elements.
+- * @param events An object in which the string keys represent one or more space-separated event types and optional
+- * namespaces, and the values represent a handler function to be called for the event(s).
+- * @param selector A selector string to filter the descendants of the selected elements that will call the handler. If
+- * the selector is null or omitted, the handler is always called when it reaches the selected element.
+- * @param data Data to be passed to the handler in event.data when an event occurs.
+- * @see \`{@link https://api.jquery.com/on/ }\`
+- * @since 1.7
+- */
+- on(
+- events: JQuery.TypeEventHandlers,
+- selector: JQuery.Selector,
+- data: TData
+- ): this;
+- /**
+- * Attach an event handler function for one or more events to the selected elements.
+- * @param events An object in which the string keys represent one or more space-separated event types and optional
+- * namespaces, and the values represent a handler function to be called for the event(s).
+- * @param selector A selector string to filter the descendants of the selected elements that will call the handler. If
+- * the selector is null or omitted, the handler is always called when it reaches the selected element.
+- * @param data Data to be passed to the handler in event.data when an event occurs.
+- * @see \`{@link https://api.jquery.com/on/ }\`
+- * @since 1.7
+- */
+- on(
+- events: JQuery.TypeEventHandlers,
+- selector: null | undefined,
+- data: TData
+- ): this;
+- /**
+- * Attach an event handler function for one or more events to the selected elements.
+- * @param events An object in which the string keys represent one or more space-separated event types and optional
+- * namespaces, and the values represent a handler function to be called for the event(s).
+- * @param selector A selector string to filter the descendants of the selected elements that will call the handler. If
+- * the selector is null or omitted, the handler is always called when it reaches the selected element.
+- * @see \`{@link https://api.jquery.com/on/ }\`
+- * @since 1.7
+- */
+- on(events: JQuery.TypeEventHandlers,
+- selector: JQuery.Selector
+- ): this;
+- /**
+- * Attach an event handler function for one or more events to the selected elements.
+- * @param events An object in which the string keys represent one or more space-separated event types and optional
+- * namespaces, and the values represent a handler function to be called for the event(s).
+- * @param data Data to be passed to the handler in event.data when an event occurs.
+- * @see \`{@link https://api.jquery.com/on/ }\`
+- * @since 1.7
+- */
+- on(
+- events: JQuery.TypeEventHandlers,
+- data: TData
+- ): this;
+- /**
+- * Attach an event handler function for one or more events to the selected elements.
+- * @param events An object in which the string keys represent one or more space-separated event types and optional
+- * namespaces, and the values represent a handler function to be called for the event(s).
+- * @see \`{@link https://api.jquery.com/on/ }\`
+- * @since 1.7
+- * @example ````Attach multiple event handlers simultaneously using a plain object.
+-```html
+-
+-
+-
+-
+- on demo
+-
+-
+-
+-
+-
+-test div
+-
+-
+-
+-
+-
+-```
+- */
+- on(events: JQuery.TypeEventHandlers): this;
+- /**
+- * Attach a handler to an event for the elements. The handler is executed at most once per element per event type.
+- * @param events One or more space-separated event types and optional namespaces, such as "click" or "keydown.myPlugin".
+- * @param selector A selector string to filter the descendants of the selected elements that trigger the event. If the
+- * selector is null or omitted, the event is always triggered when it reaches the selected element.
+- * @param data Data to be passed to the handler in event.data when an event is triggered.
+- * @param handler A function to execute when the event is triggered.
+- * @see \`{@link https://api.jquery.com/one/ }\`
+- * @since 1.7
+- */
+- one(
+- events: TType,
+- selector: JQuery.Selector,
+- data: TData,
+- handler: JQuery.TypeEventHandler
+- ): this;
+- /**
+- * Attach a handler to an event for the elements. The handler is executed at most once per element per event type.
+- * @param events One or more space-separated event types and optional namespaces, such as "click" or "keydown.myPlugin".
+- * @param selector A selector string to filter the descendants of the selected elements that trigger the event. If the
+- * selector is null or omitted, the event is always triggered when it reaches the selected element.
+- * @param data Data to be passed to the handler in event.data when an event is triggered.
+- * @param handler A function to execute when the event is triggered.
+- * @see \`{@link https://api.jquery.com/one/ }\`
+- * @since 1.7
+- */
+- one(
+- events: TType,
+- selector: null | undefined,
+- data: TData,
+- handler: JQuery.TypeEventHandler
+- ): this;
+- /**
+- * Attach a handler to an event for the elements. The handler is executed at most once per element per event type.
+- * @param events One or more space-separated event types and optional namespaces, such as "click" or "keydown.myPlugin".
+- * @param selector A selector string to filter the descendants of the selected elements that trigger the event. If the
+- * selector is null or omitted, the event is always triggered when it reaches the selected element.
+- * @param handler A function to execute when the event is triggered. The value false is also allowed as a shorthand
+- * for a function that simply does return false.
+- * @see \`{@link https://api.jquery.com/one/ }\`
+- * @since 1.7
+- */
+- one(
+- events: TType,
+- selector: JQuery.Selector,
+- handler: JQuery.TypeEventHandler |
+- false
+- ): this;
+- /**
+- * Attach a handler to an event for the elements. The handler is executed at most once per element per event type.
+- * @param events One or more space-separated event types and optional namespaces, such as "click" or "keydown.myPlugin".
+- * @param data Data to be passed to the handler in event.data when an event is triggered.
+- * @param handler A function to execute when the event is triggered.
+- * @see \`{@link https://api.jquery.com/one/ }\`
+- * @since 1.7
+- */
+- one(
+- events: TType,
+- data: TData,
+- handler: JQuery.TypeEventHandler
+- ): this;
+- /**
+- * Attach a handler to an event for the elements. The handler is executed at most once per element per event type.
+- * @param events One or more space-separated event types and optional namespaces, such as "click" or "keydown.myPlugin".
+- * @param handler A function to execute when the event is triggered. The value false is also allowed as a shorthand
+- * for a function that simply does return false.
+- * @see \`{@link https://api.jquery.com/one/ }\`
+- * @since 1.7
+- * @example ````Tie a one-time click to each div.
+-```html
+-
+-
+-
+-
+- one demo
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-Click a green square...
+-
+-
+-
+-
+-
+-```
+- * @example ````To display the text of all paragraphs in an alert box the first time each of them is clicked:
+-```javascript
+-$( "p" ).one( "click", function() {
+- alert( $( this ).text() );
+-});
+-```
+- * @example ````Event handlers will trigger once per element per event type
+-```html
+-
+-
+-
+-
+- one demo
+-
+-
+-
+-
+-0
+-Hover/click me
+-
+-
+-
+-
+-
+-```
+- */
+- one(
+- events: TType,
+- handler: JQuery.TypeEventHandler|
+- false
+- ): this;
+- /**
+- * Attach a handler to an event for the elements. The handler is executed at most once per element per event type.
+- * @param events An object in which the string keys represent one or more space-separated event types and optional
+- * namespaces, and the values represent a handler function to be called for the event(s).
+- * @param selector A selector string to filter the descendants of the selected elements that will call the handler. If
+- * the selector is null or omitted, the handler is always called when it reaches the selected element.
+- * @param data Data to be passed to the handler in event.data when an event occurs.
+- * @see \`{@link https://api.jquery.com/one/ }\`
+- * @since 1.7
+- */
+- one(
+- events: JQuery.TypeEventHandlers,
+- selector: JQuery.Selector,
+- data: TData
+- ): this;
+- /**
+- * Attach a handler to an event for the elements. The handler is executed at most once per element per event type.
+- * @param events An object in which the string keys represent one or more space-separated event types and optional
+- * namespaces, and the values represent a handler function to be called for the event(s).
+- * @param selector A selector string to filter the descendants of the selected elements that will call the handler. If
+- * the selector is null or omitted, the handler is always called when it reaches the selected element.
+- * @param data Data to be passed to the handler in event.data when an event occurs.
+- * @see \`{@link https://api.jquery.com/one/ }\`
+- * @since 1.7
+- */
+- one(
+- events: JQuery.TypeEventHandlers,
+- selector: null | undefined,
+- data: TData
+- ): this;
+- /**
+- * Attach a handler to an event for the elements. The handler is executed at most once per element per event type.
+- * @param events An object in which the string keys represent one or more space-separated event types and optional
+- * namespaces, and the values represent a handler function to be called for the event(s).
+- * @param selector A selector string to filter the descendants of the selected elements that will call the handler. If
+- * the selector is null or omitted, the handler is always called when it reaches the selected element.
+- * @see \`{@link https://api.jquery.com/one/ }\`
+- * @since 1.7
+- */
+- one(events: JQuery.TypeEventHandlers,
+- selector: JQuery.Selector): this;
+- /**
+- * Attach a handler to an event for the elements. The handler is executed at most once per element per event type.
+- * @param events An object in which the string keys represent one or more space-separated event types and optional
+- * namespaces, and the values represent a handler function to be called for the event(s).
+- * @param data Data to be passed to the handler in event.data when an event occurs.
+- * @see \`{@link https://api.jquery.com/one/ }\`
+- * @since 1.7
+- */
+- one(
+- events: JQuery.TypeEventHandlers,
+- data: TData
+- ): this;
+- /**
+- * Attach a handler to an event for the elements. The handler is executed at most once per element per event type.
+- * @param events An object in which the string keys represent one or more space-separated event types and optional
+- * namespaces, and the values represent a handler function to be called for the event(s).
+- * @see \`{@link https://api.jquery.com/one/ }\`
+- * @since 1.7
+- */
+- one(events: JQuery.TypeEventHandlers): this;
+- /**
+- * Set the CSS outer height of each element in the set of matched elements.
+- * @param value_function _@param_ `value_function`
+- *
+- * * `value` — A number representing the number of pixels, or a number along with an optional unit of measure
+- * appended (as a string).
+- * * `function` — A function returning the outer height to set. Receives the index position of the element in the set
+- * and the old outer height as arguments. Within the function, `this` refers to the current element in
+- * the set.
+- * @see \`{@link https://api.jquery.com/outerHeight/ }\`
+- * @since 1.8.0
+- * @example ````Change the outer height of each div the first time it is clicked (and change its color).
+-```html
+-
+-
+-
+-
+- outerHeight demo
+-
+-
+-
+-
+-
+-d
+-d
+-d
+-d
+-d
+-
+-
+-
+-
+-
+-```
+- */
+- outerHeight(value_function: string | number | ((this: TElement, index: number, height: number) => string | number),
+- includeMargin?: boolean): this;
+- /**
+- * Get the current computed outer height (including padding, border, and optionally margin) for the first element in the set of matched elements.
+- * @param includeMargin A Boolean indicating whether to include the element's margin in the calculation.
+- * @see \`{@link https://api.jquery.com/outerHeight/ }\`
+- * @since 1.2.6
+- * @example ````Get the outerHeight of a paragraph.
+-```html
+-
+-
+-
+-
+- outerHeight demo
+-
+-
+-
+-
+-
+-Hello
+-
+-
+-
+-
+-
+-```
+- */
+- outerHeight(includeMargin?: boolean): number | undefined;
+- /**
+- * Set the CSS outer width of each element in the set of matched elements.
+- * @param value_function _@param_ `value_function`
+- *
+- * * `value` — A number representing the number of pixels, or a number along with an optional unit of measure
+- * appended (as a string).
+- * * `function` — A function returning the outer width to set. Receives the index position of the element in the set
+- * and the old outer width as arguments. Within the function, `this` refers to the current element in
+- * the set.
+- * @see \`{@link https://api.jquery.com/outerWidth/ }\`
+- * @since 1.8.0
+- * @example ````Change the outer width of each div the first time it is clicked (and change its color).
+-```html
+-
+-
+-
+-
+- outerWidth demo
+-
+-
+-
+-
+-
+-d
+-d
+-d
+-d
+-d
+-
+-
+-
+-
+-
+-```
+- */
+- outerWidth(value_function: string | number | ((this: TElement, index: number, width: number) => string | number),
+- includeMargin?: boolean): this;
+- /**
+- * Get the current computed outer width (including padding, border, and optionally margin) for the first element in the set of matched elements.
+- * @param includeMargin A Boolean indicating whether to include the element's margin in the calculation.
+- * @see \`{@link https://api.jquery.com/outerWidth/ }\`
+- * @since 1.2.6
+- * @example ````Get the outerWidth of a paragraph.
+-```html
+-
+-
+-
+-
+- outerWidth demo
+-
+-
+-
+-
+-
+-Hello
+-
+-
+-
+-
+-
+-```
+- */
+- outerWidth(includeMargin?: boolean): number | undefined;
+- /**
+- * Get the parent of each element in the current set of matched elements, optionally filtered by a selector.
+- * @param selector A string containing a selector expression to match elements against.
+- * @see \`{@link https://api.jquery.com/parent/ }\`
+- * @since 1.0
+- * @example ````Shows the parent of each element as (parent > child). Check the View Source to see the raw html.
+-```html
+-
+-
+-
+-
+- parent demo
+-
+-
+-
+-
+-
+-div,
+- span,
+- b
+-
+-
+-p,
+- span,
+- em
+-
+-
+-
+-div,
+- strong,
+- span,
+- em,
+- b,
+-
+-
+- b
+-
+-
+-
+-
+-
+-
+-```
+- * @example ````Find the parent element of each paragraph with a class "selected".
+-```html
+-
+-
+-
+-
+- parent demo
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-```
+- */
+- parent(selector?: JQuery.Selector): this;
+- /**
+- * Get the ancestors of each element in the current set of matched elements, optionally filtered by a selector.
+- * @param selector A string containing a selector expression to match elements against.
+- * @see \`{@link https://api.jquery.com/parents/ }\`
+- * @since 1.0
+- * @example ````Find all parent elements of each b.
+-```html
+-
+-
+-
+-
+- parents demo
+-
+-
+-
+-
+-
+-
+-
+-
+- My parents are:
+-
+-
+-
+-
+-
+-
+-
+-
+-```
+- * @example ````Click to find all unique div parent elements of each span.
+-```html
+-
+-
+-
+-
+- parents demo
+-
+-
+-
+-
+-
+-
+-
+-
Hello
+-
Hello Again
+-
+-
+- And Hello Again
+-
+-
+- Click Hellos to toggle their parents.
+-
+-
+-
+-
+-
+-```
+- */
+- parents(selector?: JQuery.Selector): this;
+- /**
+- * Get the ancestors of each element in the current set of matched elements, up to but not including the element matched by the selector, DOM node, or jQuery object.
+- * @param selector_element _@param_ `selector_element`
+- *
+- * * `selector` — A string containing a selector expression to indicate where to stop matching ancestor elements.
+- * * `element` — A DOM node or jQuery object indicating where to stop matching ancestor elements.
+- * @param filter A string containing a selector expression to match elements against.
+- * @see \`{@link https://api.jquery.com/parentsUntil/ }\`
+- * @since 1.4
+- * @since 1.6
+- * @example ````Find the ancestors of <li class="item-a"> up to <ul class="level-1"> and give them a red background color. Also, find ancestors of <li class="item-2"> that have a class of "yes" up to <ul class="level-1"> and give them a green border.
+-```html
+-
+-
+-
+-
+- parentsUntil demo
+-
+-
+-
+-
+-
+- I
+- II
+-
+-
+- III
+-
+-
+-
+-
+-
+-
+-```
+- */
+- parentsUntil(selector_element?: JQuery.Selector | Element | JQuery, filter?: JQuery.Selector): this;
+- /**
+- * Get the current coordinates of the first element in the set of matched elements, relative to the offset parent.
+- * @see \`{@link https://api.jquery.com/position/ }\`
+- * @since 1.2
+- * @example ````Access the position of the second paragraph:
+-```html
+-
+-
+-
+-
+- position demo
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-```
+- */
+- position(): JQuery.Coordinates;
+- /**
+- * Insert content, specified by the parameter, to the beginning of each element in the set of matched elements.
+- * @param contents One or more additional DOM elements, text nodes, arrays of elements and text nodes, HTML strings, or
+- * jQuery objects to insert at the beginning of each element in the set of matched elements.
+- * @see \`{@link https://api.jquery.com/prepend/ }\`
+- * @since 1.0
+- * @example ````Prepends some HTML to all paragraphs.
+-```html
+-
+-
+-
+-
+- prepend demo
+-
+-
+-
+-
+-
+-there, friend!
+-amigo!
+-
+-
+-
+-
+-
+-```
+- * @example ````Prepends a DOM Element to all paragraphs.
+-```html
+-
+-
+-
+-
+- prepend demo
+-
+-
+-
+-
+-
+-is what I'd say
+-is what I said
+-
+-
+-
+-
+-
+-```
+- * @example ````Prepends a jQuery object (similar to an Array of DOM Elements) to all paragraphs.
+-```html
+-
+-
+-
+-
+- prepend demo
+-
+-
+-
+-
+-
+- is what was said.
Hello
+-
+-
+-
+-
+-
+-```
+- */
+- prepend(...contents: Array>>): this;
+- /**
+- * Insert content, specified by the parameter, to the beginning of each element in the set of matched elements.
+- * @param funсtion A function that returns an HTML string, DOM element(s), text node(s), or jQuery object to insert at
+- * the beginning of each element in the set of matched elements. Receives the index position of the
+- * element in the set and the old HTML value of the element as arguments. Within the function, `this`
+- * refers to the current element in the set.
+- * @see \`{@link https://api.jquery.com/prepend/ }\`
+- * @since 1.4
+- */
+- prepend(funсtion: (this: TElement, index: number, html: string) => JQuery.htmlString | JQuery.TypeOrArray>): this;
+- /**
+- * Insert every element in the set of matched elements to the beginning of the target.
+- * @param target A selector, element, HTML string, array of elements, or jQuery object; the matched set of elements
+- * will be inserted at the beginning of the element(s) specified by this parameter.
+- * @see \`{@link https://api.jquery.com/prependTo/ }\`
+- * @since 1.0
+- * @example ````Prepend all spans to the element with the ID "foo" (Check .prepend() documentation for more examples)
+-```html
+-
+-
+-
+-
+- prependTo demo
+-
+-
+-
+-
+-
+-FOO!
+-I have something to say...
+-
+-
+-
+-
+-
+-```
+- */
+- prependTo(target: JQuery.Selector | JQuery.htmlString | JQuery.TypeOrArray | JQuery): this;
+- /**
+- * Get the immediately preceding sibling of each element in the set of matched elements. If a selector is provided, it retrieves the previous sibling only if it matches that selector.
+- * @param selector A string containing a selector expression to match elements against.
+- * @see \`{@link https://api.jquery.com/prev/ }\`
+- * @since 1.0
+- * @example ````Find the very previous sibling of each div.
+-```html
+-
+-
+-
+-
+- prev demo
+-
+-
+-
+-
+-
+-
+-
+-has child
+-
+-
+-
+-
+-
+-Go to Prev
+-
+-
+-
+-
+-
+-```
+- * @example ````For each paragraph, find the very previous sibling that has a class "selected".
+-```html
+-
+-
+-
+-
+- prev demo
+-
+-
+-
+-
+-Hello
+-Hello Again
+-And Again
+-
+-
+-
+-
+-
+-```
+- */
+- prev(selector?: JQuery.Selector): this;
+- /**
+- * Get all preceding siblings of each element in the set of matched elements, optionally filtered by a selector.
+- * @param selector A string containing a selector expression to match elements against.
+- * @see \`{@link https://api.jquery.com/prevAll/ }\`
+- * @since 1.2
+- * @example ````Locate all the divs preceding the last div and give them a class.
+-```html
+-
+-
+-
+-
+- prevAll demo
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-```
+- */
+- prevAll(selector?: JQuery.Selector): this;
+- /**
+- * Get all preceding siblings of each element up to but not including the element matched by the selector, DOM node, or jQuery object.
+- * @param selector_element _@param_ `selector_element`
+- *
+- * * `selector` — A string containing a selector expression to indicate where to stop matching preceding sibling elements.
+- * * `element` — A DOM node or jQuery object indicating where to stop matching preceding sibling elements.
+- * @param filter A string containing a selector expression to match elements against.
+- * @see \`{@link https://api.jquery.com/prevUntil/ }\`
+- * @since 1.4
+- * @since 1.6
+- * @example ````Find the siblings that precede <dt id="term-2"> up to the preceding <dt> and give them a red background color. Also, find previous <dd> siblings of <dt id="term-3"> up to <dt id="term-1"> and give them a green text color.
+-```html
+-
+-
+-
+-
+- prevUntil demo
+-
+-
+-
+-
+-
+- term 1
+- definition 1-a
+- definition 1-b
+- definition 1-c
+- definition 1-d
+-
+- term 2
+- definition 2-a
+- definition 2-b
+- definition 2-c
+-
+- term 3
+- definition 3-a
+- definition 3-b
+-
+-
+-
+-
+-
+-
+-```
+- */
+- prevUntil(selector_element?: JQuery.Selector | Element | JQuery, filter?: JQuery.Selector): this;
+- /**
+- * Return a Promise object to observe when all actions of a certain type bound to the collection, queued or not, have finished.
+- * @param type The type of queue that needs to be observed.
+- * @param target Object onto which the promise methods have to be attached
+- * @see \`{@link https://api.jquery.com/promise/ }\`
+- * @since 1.6
+- */
+- promise(type: string, target: T): T & JQuery.Promise;
+- /**
+- * Return a Promise object to observe when all actions of a certain type bound to the collection, queued or not, have finished.
+- * @param target Object onto which the promise methods have to be attached
+- * @see \`{@link https://api.jquery.com/promise/ }\`
+- * @since 1.6
+- */
+- promise(target: T): T & JQuery.Promise;
+- /**
+- * Return a Promise object to observe when all actions of a certain type bound to the collection, queued or not, have finished.
+- * @param type The type of queue that needs to be observed.
+- * @see \`{@link https://api.jquery.com/promise/ }\`
+- * @since 1.6
+- * @example ````Using .promise() on a collection with no active animation returns a resolved Promise:
+-```javascript
+-var div = $( "" );
+-
+-div.promise().done(function( arg1 ) {
+- // Will fire right away and alert "true"
+- alert( this === div && arg1 === div );
+-});
+-```
+- * @example ````Resolve the returned Promise when all animations have ended (including those initiated in the animation callback or added later on):
+-```html
+-
+-
+-
+-
+-
promise demo
+-
+-
+-
+-
+-
+-
Go
+-
Ready...
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-```
+- * @example ````Resolve the returned Promise using a $.when() statement (the .promise() method makes it possible to do this with jQuery collections):
+-```html
+-
+-
+-
+-
+-
promise demo
+-
+-
+-
+-
+-
+-
Go
+-
Ready...
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-```
+- */
+- promise(type?: string): JQuery.Promise
;
+- /**
+- * Set one or more properties for the set of matched elements.
+- * @param propertyName The name of the property to set.
+- * @param value_function _@param_ `value_function`
+- *
+- * * `value` — A value to set for the property.
+- * * `function` — A function returning the value to set. Receives the index position of the element in the set and the
+- * old property value as arguments. Within the function, the keyword `this` refers to the current element.
+- * @see \`{@link https://api.jquery.com/prop/ }\`
+- * @since 1.6
+- */
+- prop(propertyName: string,
+- value_function: string | number | boolean | symbol | object | null | undefined | ((this: TElement, index: number, oldPropertyValue: any) => any)): this;
+- /**
+- * Set one or more properties for the set of matched elements.
+- * @param properties An object of property-value pairs to set.
+- * @see \`{@link https://api.jquery.com/prop/ }\`
+- * @since 1.6
+- * @example ````Disable all checkboxes on the page.
+-```html
+-
+-
+-
+-
+- prop demo
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-```
+- */
+- prop(properties: JQuery.PlainObject): this;
+- /**
+- * Get the value of a property for the first element in the set of matched elements.
+- * @param propertyName The name of the property to get.
+- * @see \`{@link https://api.jquery.com/prop/ }\`
+- * @since 1.6
+- * @example ````Display the checked property and attribute of a checkbox as it changes.
+-```html
+-
+-
+-
+-
+- prop demo
+-
+-
+-
+-
+-
+-
+-Check me
+-
+-
+-
+-
+-
+-
+-```
+- */
+- prop(propertyName: string): any;
+- /**
+- * Add a collection of DOM elements onto the jQuery stack.
+- * @param elements An array of elements to push onto the stack and make into a new jQuery object.
+- * @param name The name of a jQuery method that generated the array of elements.
+- * @param args The arguments that were passed in to the jQuery method (for serialization).
+- * @see \`{@link https://api.jquery.com/pushStack/ }\`
+- * @since 1.3
+- */
+- pushStack(elements: ArrayLike, name: string, args: any[]): this;
+- /**
+- * Add a collection of DOM elements onto the jQuery stack.
+- * @param elements An array of elements to push onto the stack and make into a new jQuery object.
+- * @see \`{@link https://api.jquery.com/pushStack/ }\`
+- * @since 1.0
+- * @example ````Add some elements onto the jQuery stack, then pop back off again.
+-```javascript
+-jQuery([])
+- .pushStack( document.getElementsByTagName( "div" ) )
+- .remove()
+- .end();
+-```
+- */
+- pushStack(elements: ArrayLike): this;
+- /**
+- * Manipulate the queue of functions to be executed, once for each matched element.
+- * @param queueName A string containing the name of the queue. Defaults to fx, the standard effects queue.
+- * @param newQueue The new function to add to the queue, with a function to call that will dequeue the next item.
+- * An array of functions to replace the current queue contents.
+- * @see \`{@link https://api.jquery.com/queue/ }\`
+- * @since 1.2
+- * @example ````Set a queue array to delete the queue.
+-```html
+-
+-
+-
+-
+- queue demo
+-
+-
+-
+-
+-
+-Start
+-Stop
+-
+-
+-
+-
+-
+-
+-```
+- */
+- queue(queueName: string, newQueue: JQuery.TypeOrArray>): this;
+- /**
+- * Manipulate the queue of functions to be executed, once for each matched element.
+- * @param newQueue The new function to add to the queue, with a function to call that will dequeue the next item.
+- * An array of functions to replace the current queue contents.
+- * @see \`{@link https://api.jquery.com/queue/ }\`
+- * @since 1.2
+- * @example ````Queue a custom function.
+-```html
+-
+-
+-
+-
+- queue demo
+-
+-
+-
+-
+-
+-Click here...
+-
+-
+-
+-
+-
+-
+-```
+- */
+- queue(newQueue: JQuery.TypeOrArray>): this;
+- /**
+- * Show the queue of functions to be executed on the matched elements.
+- * @param queueName A string containing the name of the queue. Defaults to fx, the standard effects queue.
+- * @see \`{@link https://api.jquery.com/queue/ }\`
+- * @since 1.2
+- * @example ````Show the length of the queue.
+-```html
+-
+-
+-
+-
+- queue demo
+-
+-
+-
+-
+-
+-The queue length is:
+-
+-
+-
+-
+-
+-
+-```
+- */
+- queue(queueName?: string): JQuery.Queue;
+- /**
+- * Specify a function to execute when the DOM is fully loaded.
+- * @param handler A function to execute after the DOM is ready.
+- * @see \`{@link https://api.jquery.com/ready/ }\`
+- * @since 1.0
+- * @deprecated Deprecated since 3.0. Use `jQuery(function() { })`.
+- * @example ````Display a message when the DOM is loaded.
+-```html
+-
+-
+-
+-
+- ready demo
+-
+-
+-
+-
+-
+-
+-Not loaded yet.
+-
+-
+-
+-```
+- */
+- ready(handler: ($: JQueryStatic) => void): this;
+- /**
+- * Remove the set of matched elements from the DOM.
+- * @param selector A selector expression that filters the set of matched elements to be removed.
+- * @see \`{@link https://api.jquery.com/remove/ }\`
+- * @since 1.0
+- * @example ````Removes all paragraphs from the DOM
+-```html
+-
+-
+-
+-
+- remove demo
+-
+-
+-
+-
+-
+-Hello
+-how are
+-you?
+-Call remove() on paragraphs
+-
+-
+-
+-
+-
+-```
+- * @example ````Removes all paragraphs that contain "Hello" from the DOM. Analogous to doing $("p").filter(":contains('Hello')").remove().
+-```html
+-
+-
+-
+-
+- remove demo
+-
+-
+-
+-
+-
+-Hello
+-how are
+-you?
+-Call remove( ":contains('Hello')" ) on paragraphs
+-
+-
+-
+-
+-
+-```
+- */
+- remove(selector?: string): this;
+- /**
+- * Remove an attribute from each element in the set of matched elements.
+- * @param attributeName An attribute to remove; as of version 1.7, it can be a space-separated list of attributes.
+- * @see \`{@link https://api.jquery.com/removeAttr/ }\`
+- * @since 1.0
+- * @example ````Clicking the button changes the title of the input next to it. Move the mouse pointer over the text input to see the effect of adding and removing the title attribute.
+-```html
+-
+-
+-
+-
+- removeAttr demo
+-
+-
+-
+-
+-Change title
+-
+-
+-
+-
+-
+-
+-
+-```
+- */
+- removeAttr(attributeName: string): this;
+- /**
+- * Remove a single class, multiple classes, or all classes from each element in the set of matched elements.
+- * @param className_function _@param_ `className_function`
+- *
+- * * `className` — One or more space-separated classes to be removed from the class attribute of each matched element.
+- * * `function` — A function returning one or more space-separated class names to be removed. Receives the index
+- * position of the element in the set and the old class value as arguments.
+- * @see \`{@link https://api.jquery.com/removeClass/ }\`
+- * @since 1.0
+- * @since 1.4
+- * @since 3.3
+- * @example ````Remove the class 'blue' from the matched elements.
+-```html
+-
+-
+-
+-
+- removeClass demo
+-
+-
+-
+-
+-
+-Hello
+-and
+-then
+-Goodbye
+-
+-
+-
+-
+-
+-```
+- * @example ````Remove the class 'blue' and 'under' from the matched elements.
+-```html
+-
+-
+-
+-
+- removeClass demo
+-
+-
+-
+-
+-
+-Hello
+-and
+-then
+-Goodbye
+-
+-
+-
+-
+-
+-```
+- * @example ````Remove all the classes from the matched elements.
+-```html
+-
+-
+-
+-
+- removeClass demo
+-
+-
+-
+-
+-
+-Hello
+-and
+-then
+-Goodbye
+-
+-
+-
+-
+-
+-```
+- */
+- removeClass(className_function?: JQuery.TypeOrArray | ((this: TElement, index: number, className: string) => string)): this;
+- /**
+- * Remove a previously-stored piece of data.
+- * @param name A string naming the piece of data to delete.
+- * An array or space-separated string naming the pieces of data to delete.
+- * @see \`{@link https://api.jquery.com/removeData/ }\`
+- * @since 1.2.3
+- * @since 1.7
+- * @example ````Set a data store for 2 names then remove one of them.
+-```html
+-
+-
+-
+-
+- removeData demo
+-
+-
+-
+-
+-
+-value1 before creation:
+-value1 after creation:
+-value1 after removal:
+-value2 after removal:
+-
+-
+-
+-
+-
+-```
+- */
+- removeData(name?: JQuery.TypeOrArray): this;
+- /**
+- * Remove a property for the set of matched elements.
+- * @param propertyName The name of the property to remove.
+- * @see \`{@link https://api.jquery.com/removeProp/ }\`
+- * @since 1.6
+- * @example ````Set a numeric property on a paragraph and then remove it.
+-```html
+-
+-
+-
+-
+- removeProp demo
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-```
+- */
+- removeProp(propertyName: string): this;
+- /**
+- * Replace each target element with the set of matched elements.
+- * @param target A selector string, jQuery object, DOM element, or array of elements indicating which element(s) to replace.
+- * @see \`{@link https://api.jquery.com/replaceAll/ }\`
+- * @since 1.2
+- * @example ````Replace all the paragraphs with bold words.
+-```html
+-
+-
+-
+-
+- replaceAll demo
+-
+-
+-
+-
+-Hello
+-cruel
+-World
+-
+-
+-
+-
+-
+-```
+- */
+- replaceAll(target: JQuery.Selector | JQuery | JQuery.TypeOrArray): this;
+- /**
+- * Replace each element in the set of matched elements with the provided new content and return the set of elements that was removed.
+- * @param newContent_function _@param_ `newContent_function`
+- *
+- * * `newContent` — The content to insert. May be an HTML string, DOM element, array of DOM elements, or jQuery object.
+- * * `function` — A function that returns content with which to replace the set of matched elements.
+- * @see \`{@link https://api.jquery.com/replaceWith/ }\`
+- * @since 1.2
+- * @since 1.4
+- * @example ````On click, replace the button with a div containing the same word.
+-```html
+-
+-
+-
+-
+- replaceWith demo
+-
+-
+-
+-
+-
+-First
+-Second
+-Third
+-
+-
+-
+-
+-
+-```
+- * @example ````Replace all paragraphs with bold words.
+-```html
+-
+-
+-
+-
+- replaceWith demo
+-
+-
+-
+-
+-Hello
+-cruel
+-World
+-
+-
+-
+-
+-
+-```
+- * @example ````On click, replace each paragraph with a div that is already in the DOM and selected with the $() function. Notice it doesn't clone the object but rather moves it to replace the paragraph.
+-```html
+-
+-
+-
+-
+- replaceWith demo
+-
+-
+-
+-
+-
+- Hello
+- cruel
+- World
+- Replaced!
+-
+-
+-
+-
+-
+-```
+- * @example ````On button click, replace the containing div with its child divs and append the class name of the selected element to the paragraph.
+-```html
+-
+-
+-
+-
+- replaceWith demo
+-
+-
+-
+-
+-
+-
+- Replace!
+-
+-
+-
Scooby
+-
Dooby
+-
Doo
+-
+-
+-
+-
+-
+-
+-```
+- */
+- replaceWith(newContent_function: JQuery.htmlString |
+- JQuery |
+- JQuery.TypeOrArray |
+- JQuery.Node |
+- ((this: TElement, index: number, oldhtml: JQuery.htmlString) => JQuery.htmlString |
+- JQuery |
+- JQuery.TypeOrArray |
+- JQuery.Node)): this;
+- /**
+- * Bind an event handler to the "resize" JavaScript event, or trigger that event on an element.
+- * @param eventData An object containing data that will be passed to the event handler.
+- * @param handler A function to execute each time the event is triggered.
+- * @see \`{@link https://api.jquery.com/resize/ }\`
+- * @since 1.4.3
+- * @deprecated Deprecated since 3.3. Use \`{@link on }\` or \`{@link trigger }\`.
+- *
+- * **Cause**: The `.on()` and `.trigger()` methods can set an event handler or generate an event for any event type, and should be used instead of the shortcut methods. This message also applies to the other event shorthands, including: blur, focus, focusin, focusout, resize, scroll, dblclick, mousedown, mouseup, mousemove, mouseover, mouseout, mouseenter, mouseleave, change, select, submit, keydown, keypress, keyup, and contextmenu.
+- *
+- * **Solution**: Instead of `.click(fn)` use `.on("click", fn)`. Instead of `.click()` use `.trigger("click")`.
+- */
+- resize(eventData: TData,
+- handler: JQuery.TypeEventHandler): this;
+- /**
+- * Bind an event handler to the "resize" JavaScript event, or trigger that event on an element.
+- * @param handler A function to execute each time the event is triggered.
+- * @see \`{@link https://api.jquery.com/resize/ }\`
+- * @since 1.0
+- * @deprecated Deprecated since 3.3. Use \`{@link on }\` or \`{@link trigger }\`.
+- *
+- * **Cause**: The `.on()` and `.trigger()` methods can set an event handler or generate an event for any event type, and should be used instead of the shortcut methods. This message also applies to the other event shorthands, including: blur, focus, focusin, focusout, resize, scroll, dblclick, mousedown, mouseup, mousemove, mouseover, mouseout, mouseenter, mouseleave, change, select, submit, keydown, keypress, keyup, and contextmenu.
+- *
+- * **Solution**: Instead of `.click(fn)` use `.on("click", fn)`. Instead of `.click()` use `.trigger("click")`.
+- * @example ````To see the window width while (or after) it is resized, try:
+-```javascript
+-$( window ).resize(function() {
+- $( "body" ).prepend( "" + $( window ).width() + "
" );
+-});
+-```
+- */
+- resize(handler?: JQuery.TypeEventHandler |
+- false): this;
+- /**
+- * Bind an event handler to the "scroll" JavaScript event, or trigger that event on an element.
+- * @param eventData An object containing data that will be passed to the event handler.
+- * @param handler A function to execute each time the event is triggered.
+- * @see \`{@link https://api.jquery.com/scroll/ }\`
+- * @since 1.4.3
+- * @deprecated Deprecated since 3.3. Use \`{@link on }\` or \`{@link trigger }\`.
+- *
+- * **Cause**: The `.on()` and `.trigger()` methods can set an event handler or generate an event for any event type, and should be used instead of the shortcut methods. This message also applies to the other event shorthands, including: blur, focus, focusin, focusout, resize, scroll, dblclick, mousedown, mouseup, mousemove, mouseover, mouseout, mouseenter, mouseleave, change, select, submit, keydown, keypress, keyup, and contextmenu.
+- *
+- * **Solution**: Instead of `.click(fn)` use `.on("click", fn)`. Instead of `.click()` use `.trigger("click")`.
+- */
+- scroll(eventData: TData,
+- handler: JQuery.TypeEventHandler): this;
+- /**
+- * Bind an event handler to the "scroll" JavaScript event, or trigger that event on an element.
+- * @param handler A function to execute each time the event is triggered.
+- * @see \`{@link https://api.jquery.com/scroll/ }\`
+- * @since 1.0
+- * @deprecated Deprecated since 3.3. Use \`{@link on }\` or \`{@link trigger }\`.
+- *
+- * **Cause**: The `.on()` and `.trigger()` methods can set an event handler or generate an event for any event type, and should be used instead of the shortcut methods. This message also applies to the other event shorthands, including: blur, focus, focusin, focusout, resize, scroll, dblclick, mousedown, mouseup, mousemove, mouseover, mouseout, mouseenter, mouseleave, change, select, submit, keydown, keypress, keyup, and contextmenu.
+- *
+- * **Solution**: Instead of `.click(fn)` use `.on("click", fn)`. Instead of `.click()` use `.trigger("click")`.
+- * @example ````To do something when your page is scrolled:
+-```html
+-
+-
+-
+-
+- scroll demo
+-
+-
+-
+-
+-
+-Try scrolling the iframe.
+-Paragraph - Scroll happened!
+-
+-
+-
+-
+-
+-```
+- */
+- scroll(handler?: JQuery.TypeEventHandler |
+- false): this;
+- /**
+- * Set the current horizontal position of the scroll bar for each of the set of matched elements.
+- * @param value An integer indicating the new position to set the scroll bar to.
+- * @see \`{@link https://api.jquery.com/scrollLeft/ }\`
+- * @since 1.2.6
+- * @example ````Set the scrollLeft of a div.
+-```html
+-
+-
+-
+-
+- scrollLeft demo
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-```
+- */
+- scrollLeft(value: number): this;
+- /**
+- * Get the current horizontal position of the scroll bar for the first element in the set of matched elements.
+- * @see \`{@link https://api.jquery.com/scrollLeft/ }\`
+- * @since 1.2.6
+- * @example ````Get the scrollLeft of a paragraph.
+-```html
+-
+-
+-
+-
+- scrollLeft demo
+-
+-
+-
+-
+-
+-Hello
+-
+-
+-
+-
+-
+-```
+- */
+- scrollLeft(): number | undefined;
+- /**
+- * Set the current vertical position of the scroll bar for each of the set of matched elements.
+- * @param value A number indicating the new position to set the scroll bar to.
+- * @see \`{@link https://api.jquery.com/scrollTop/ }\`
+- * @since 1.2.6
+- * @example ````Set the scrollTop of a div.
+-```html
+-
+-
+-
+-
+- scrollTop demo
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-```
+- */
+- scrollTop(value: number): this;
+- /**
+- * Get the current vertical position of the scroll bar for the first element in the set of matched elements or set the vertical position of the scroll bar for every matched element.
+- * @see \`{@link https://api.jquery.com/scrollTop/ }\`
+- * @since 1.2.6
+- * @example ````Get the scrollTop of a paragraph.
+-```html
+-
+-
+-
+-
+- scrollTop demo
+-
+-
+-
+-
+-
+-Hello
+-
+-
+-
+-
+-
+-```
+- */
+- scrollTop(): number | undefined;
+- /**
+- * Bind an event handler to the "select" JavaScript event, or trigger that event on an element.
+- * @param eventData An object containing data that will be passed to the event handler.
+- * @param handler A function to execute each time the event is triggered.
+- * @see \`{@link https://api.jquery.com/select/ }\`
+- * @since 1.4.3
+- * @deprecated Deprecated since 3.3. Use \`{@link on }\` or \`{@link trigger }\`.
+- *
+- * **Cause**: The `.on()` and `.trigger()` methods can set an event handler or generate an event for any event type, and should be used instead of the shortcut methods. This message also applies to the other event shorthands, including: blur, focus, focusin, focusout, resize, scroll, dblclick, mousedown, mouseup, mousemove, mouseover, mouseout, mouseenter, mouseleave, change, select, submit, keydown, keypress, keyup, and contextmenu.
+- *
+- * **Solution**: Instead of `.click(fn)` use `.on("click", fn)`. Instead of `.click()` use `.trigger("click")`.
+- */
+- select(eventData: TData,
+- handler: JQuery.TypeEventHandler): this;
+- /**
+- * Bind an event handler to the "select" JavaScript event, or trigger that event on an element.
+- * @param handler A function to execute each time the event is triggered.
+- * @see \`{@link https://api.jquery.com/select/ }\`
+- * @since 1.0
+- * @deprecated Deprecated since 3.3. Use \`{@link on }\` or \`{@link trigger }\`.
+- *
+- * **Cause**: The `.on()` and `.trigger()` methods can set an event handler or generate an event for any event type, and should be used instead of the shortcut methods. This message also applies to the other event shorthands, including: blur, focus, focusin, focusout, resize, scroll, dblclick, mousedown, mouseup, mousemove, mouseover, mouseout, mouseenter, mouseleave, change, select, submit, keydown, keypress, keyup, and contextmenu.
+- *
+- * **Solution**: Instead of `.click(fn)` use `.on("click", fn)`. Instead of `.click()` use `.trigger("click")`.
+- * @example ````To do something when text in input boxes is selected:
+-```html
+-
+-
+-
+-
+- select demo
+-
+-
+-
+-
+-
+- Click and drag the mouse to select text in the inputs.
+-
+-
+-
+-
+-
+-
+-
+-
+-```
+- * @example ````To trigger the select event on all input elements, try:
+-```javascript
+-$( "input" ).select();
+-```
+- */
+- select(handler?: JQuery.TypeEventHandler |
+- false): this;
+- /**
+- * Encode a set of form elements as a string for submission.
+- * @see \`{@link https://api.jquery.com/serialize/ }\`
+- * @since 1.0
+- * @example ````Serialize a form to a query string that could be sent to a server in an Ajax request.
+-```html
+-
+-
+-
+-
+- serialize demo
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-```
+- */
+- serialize(): string;
+- /**
+- * Encode a set of form elements as an array of names and values.
+- * @see \`{@link https://api.jquery.com/serializeArray/ }\`
+- * @since 1.2
+- * @example ````Get the values from a form, iterate through them, and append them to a results display.
+-```html
+-
+-
+-
+-
+- serializeArray demo
+-
+-
+-
+-
+-
+-Results:
+-
+-
+-
+-
+-
+-
+-```
+- */
+- serializeArray(): JQuery.NameValuePair[];
+- /**
+- * Display the matched elements.
+- * @param duration A string or number determining how long the animation will run.
+- * @param easing A string indicating which easing function to use for the transition.
+- * @param complete A function to call once the animation is complete, called once per matched element.
+- * @see \`{@link https://api.jquery.com/show/ }\`
+- * @since 1.4.3
+- */
+- show(duration: JQuery.Duration, easing: string, complete: (this: TElement) => void): this;
+- /**
+- * Display the matched elements.
+- * @param duration A string or number determining how long the animation will run.
+- * @param easing_complete _@param_ `easing_complete`
+- *
+- * * `easing` — A string indicating which easing function to use for the transition.
+- * * `complete` — A function to call once the animation is complete, called once per matched element.
+- * @see \`{@link https://api.jquery.com/show/ }\`
+- * @since 1.0
+- * @since 1.4.3
+- * @example ````Show the first div, followed by each next adjacent sibling div in order, with a 200ms animation. Each animation starts when the previous sibling div's animation ends.
+-```html
+-
+-
+-
+-
+- show demo
+-
+-
+-
+-
+-
+-Show
+-Hide
+-Hello 3,
+-how
+-are
+-you?
+-
+-
+-
+-
+-
+-```
+- * @example ````Show all span and input elements with an animation. Change the text once the animation is done.
+-```html
+-
+-
+-
+-
+- show demo
+-
+-
+-
+-
+-
+-Do it!
+-Are you sure? (type 'yes' if you are)
+-
+-
+-
+-I'm hidden...
+-
+-
+-
+-
+-
+-```
+- */
+- show(duration: JQuery.Duration, easing_complete: string | ((this: TElement) => void)): this;
+- /**
+- * Display the matched elements.
+- * @param duration_complete_options _@param_ `duration_complete_options`
+- *
+- * * `duration` — A string or number determining how long the animation will run.
+- * * `complete` — A function to call once the animation is complete, called once per matched element.
+- * * `options` — A map of additional options to pass to the method.
+- * @see \`{@link https://api.jquery.com/show/ }\`
+- * @since 1.0
+- * @example ````Animates all hidden paragraphs to show slowly, completing the animation within 600 milliseconds.
+-```html
+-
+-
+-
+-
+- show demo
+-
+-
+-
+-
+-
+-Show it
+-Hello 2
+-
+-
+-
+-
+-
+-```
+- */
+- show(duration_complete_options?: JQuery.Duration | ((this: TElement) => void) | JQuery.EffectsOptions): this;
+- /**
+- * Get the siblings of each element in the set of matched elements, optionally filtered by a selector.
+- * @param selector A string containing a selector expression to match elements against.
+- * @see \`{@link https://api.jquery.com/siblings/ }\`
+- * @since 1.0
+- * @example ````Find the unique siblings of all yellow li elements in the 3 lists (including other yellow li elements if appropriate).
+-```html
+-
+-
+-
+-
+- siblings demo
+-
+-
+-
+-
+-
+-
+- One
+- Two
+- Three
+- Four
+-
+-
+-
+- Five
+- Six
+- Seven
+-
+-
+-
+- Eight
+- Nine
+- Ten
+- Eleven
+-
+-
+-Unique siblings:
+-
+-
+-
+-
+-
+-```
+- * @example ````Find all siblings with a class "selected" of each div.
+-```html
+-
+-
+-
+-
+- siblings demo
+-
+-
+-
+-
+-Hello
+-Hello Again
+-And Again
+-
+-
+-
+-
+-
+-```
+- */
+- siblings(selector?: JQuery.Selector): this;
+- /**
+- * Reduce the set of matched elements to a subset specified by a range of indices.
+- * @param start An integer indicating the 0-based position at which the elements begin to be selected. If negative,
+- * it indicates an offset from the end of the set.
+- * @param end An integer indicating the 0-based position at which the elements stop being selected. If negative,
+- * it indicates an offset from the end of the set. If omitted, the range continues until the end of the set.
+- * @see \`{@link https://api.jquery.com/slice/ }\`
+- * @since 1.1.4
+- * @example ````Turns divs yellow based on a random slice.
+-```html
+-
+-
+-
+-
+- slice demo
+-
+-
+-
+-
+-
+-Turn slice yellow
+- Click the button!
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-```
+- * @example ````Selects all paragraphs, then slices the selection to include only the first element.
+-```javascript
+-$( "p" ).slice( 0, 1 ).wrapInner( " " );
+-```
+- * @example ````Selects all paragraphs, then slices the selection to include only the first and second element.
+-```javascript
+-$( "p" ).slice( 0, 2 ).wrapInner( " " );
+-```
+- * @example ````Selects all paragraphs, then slices the selection to include only the second element.
+-```javascript
+-$( "p" ).slice( 1, 2 ).wrapInner( " " );
+-```
+- * @example ````Selects all paragraphs, then slices the selection to include only the second and third element.
+-```javascript
+-$( "p" ).slice( 1 ).wrapInner( " " );
+-```
+- * @example ````Selects all paragraphs, then slices the selection to include only the third element.
+-```javascript
+-$( "p" ).slice( -1 ).wrapInner( " " );
+-```
+- */
+- slice(start: number, end?: number): this;
+- /**
+- * Display the matched elements with a sliding motion.
+- * @param duration A string or number determining how long the animation will run.
+- * @param easing A string indicating which easing function to use for the transition.
+- * @param complete A function to call once the animation is complete, called once per matched element.
+- * @see \`{@link https://api.jquery.com/slideDown/ }\`
+- * @since 1.4.3
+- */
+- slideDown(duration: JQuery.Duration, easing: string, complete?: (this: TElement) => void): this;
+- /**
+- * Display the matched elements with a sliding motion.
+- * @param duration_easing _@param_ `duration_easing`
+- *
+- * * `duration` — A string or number determining how long the animation will run.
+- * * `easing` — A string indicating which easing function to use for the transition.
+- * @param complete A function to call once the animation is complete, called once per matched element.
+- * @see \`{@link https://api.jquery.com/slideDown/ }\`
+- * @since 1.0
+- * @since 1.4.3
+- * @example ````Animates all inputs to slide down, completing the animation within 1000 milliseconds. Once the animation is done, the input look is changed especially if it is the middle input which gets the focus.
+-```html
+-
+-
+-
+-
+- slideDown demo
+-
+-
+-
+-
+-
+-Push!
+-
+-
+-
+-
+-
+-
+-
+-
+-```
+- */
+- slideDown(duration_easing: JQuery.Duration | string, complete: (this: TElement) => void): this;
+- /**
+- * Display the matched elements with a sliding motion.
+- * @param duration_easing_complete_options _@param_ `duration_easing_complete_options`
+- *
+- * * `duration` — A string or number determining how long the animation will run.
+- * * `easing` — A string indicating which easing function to use for the transition.
+- * * `complete` — A function to call once the animation is complete, called once per matched element.
+- * * `options` — A map of additional options to pass to the method.
+- * @see \`{@link https://api.jquery.com/slideDown/ }\`
+- * @since 1.0
+- * @since 1.4.3
+- * @example ````Animates all divs to slide down and show themselves over 600 milliseconds.
+-```html
+-
+-
+-
+-
+- slideDown demo
+-
+-
+-
+-
+-
+-Click me!
+-
+-
+-
+-
+-
+-
+-
+-
+-```
+- */
+- slideDown(duration_easing_complete_options?: JQuery.Duration | string | ((this: TElement) => void) | JQuery.EffectsOptions): this;
+- /**
+- * Display or hide the matched elements with a sliding motion.
+- * @param duration A string or number determining how long the animation will run.
+- * @param easing A string indicating which easing function to use for the transition.
+- * @param complete A function to call once the animation is complete, called once per matched element.
+- * @see \`{@link https://api.jquery.com/slideToggle/ }\`
+- * @since 1.4.3
+- */
+- slideToggle(duration: JQuery.Duration, easing: string, complete?: (this: TElement) => void): this;
+- /**
+- * Display or hide the matched elements with a sliding motion.
+- * @param duration_easing _@param_ `duration_easing`
+- *
+- * * `duration` — A string or number determining how long the animation will run.
+- * * `easing` — A string indicating which easing function to use for the transition.
+- * @param complete A function to call once the animation is complete, called once per matched element.
+- * @see \`{@link https://api.jquery.com/slideToggle/ }\`
+- * @since 1.0
+- * @since 1.4.3
+- * @example ````Animates divs between dividers with a toggle that makes some appear and some disappear.
+-```html
+-
+-
+-
+-
+- slideToggle demo
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-Toggle There have been 0 toggled divs.
+-
+-
+-
+-
+-
+-```
+- */
+- slideToggle(duration_easing: JQuery.Duration | string, complete: (this: TElement) => void): this;
+- /**
+- * Display or hide the matched elements with a sliding motion.
+- * @param duration_easing_complete_options _@param_ `duration_easing_complete_options`
+- *
+- * * `duration` — A string or number determining how long the animation will run.
+- * * `easing` — A string indicating which easing function to use for the transition.
+- * * `complete` — A function to call once the animation is complete, called once per matched element.
+- * * `options` — A map of additional options to pass to the method.
+- * @see \`{@link https://api.jquery.com/slideToggle/ }\`
+- * @since 1.0
+- * @since 1.4.3
+- * @example ````Animates all paragraphs to slide up or down, completing the animation within 600 milliseconds.
+-```html
+-
+-
+-
+-
+- slideToggle demo
+-
+-
+-
+-
+-
+-Toggle
+-
+- This is the paragraph to end all paragraphs. You
+- should feel lucky to have seen such a paragraph in
+- your life. Congratulations!
+-
+-
+-
+-
+-
+-
+-```
+- */
+- slideToggle(duration_easing_complete_options?: JQuery.Duration | string | ((this: TElement) => void) | JQuery.EffectsOptions): this;
+- /**
+- * Hide the matched elements with a sliding motion.
+- * @param duration A string or number determining how long the animation will run.
+- * @param easing A string indicating which easing function to use for the transition.
+- * @param complete A function to call once the animation is complete, called once per matched element.
+- * @see \`{@link https://api.jquery.com/slideUp/ }\`
+- * @since 1.4.3
+- */
+- slideUp(duration: JQuery.Duration, easing: string, complete?: (this: TElement) => void): this;
+- /**
+- * Hide the matched elements with a sliding motion.
+- * @param duration_easing _@param_ `duration_easing`
+- *
+- * * `duration` — A string or number determining how long the animation will run.
+- * * `easing` — A string indicating which easing function to use for the transition.
+- * @param complete A function to call once the animation is complete, called once per matched element.
+- * @see \`{@link https://api.jquery.com/slideUp/ }\`
+- * @since 1.0
+- * @since 1.4.3
+- * @example ````Animates the parent paragraph to slide up, completing the animation within 200 milliseconds. Once the animation is done, it displays an alert.
+-```html
+-
+-
+-
+-
+- slideUp demo
+-
+-
+-
+-
+-
+-
+- Hide One
+-
+-
+-
+-
+- Hide Two
+-
+-
+-
+-
+- Hide Three
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-```
+- */
+- slideUp(duration_easing: JQuery.Duration | string, complete: (this: TElement) => void): this;
+- /**
+- * Hide the matched elements with a sliding motion.
+- * @param duration_easing_complete_options _@param_ `duration_easing_complete_options`
+- *
+- * * `duration` — A string or number determining how long the animation will run.
+- * * `easing` — A string indicating which easing function to use for the transition.
+- * * `complete` — A function to call once the animation is complete, called once per matched element.
+- * * `options` — A map of additional options to pass to the method.
+- * @see \`{@link https://api.jquery.com/slideUp/ }\`
+- * @since 1.0
+- * @since 1.4.3
+- * @example ````Animates all divs to slide up, completing the animation within 400 milliseconds.
+-```html
+-
+-
+-
+-
+- slideUp demo
+-
+-
+-
+-
+-
+-Click me!
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-```
+- */
+- slideUp(duration_easing_complete_options?: JQuery.Duration | string | ((this: TElement) => void) | JQuery.EffectsOptions): this;
+- /**
+- * Stop the currently-running animation on the matched elements.
+- * @param queue The name of the queue in which to stop animations.
+- * @param clearQueue A Boolean indicating whether to remove queued animation as well. Defaults to false.
+- * @param jumpToEnd A Boolean indicating whether to complete the current animation immediately. Defaults to false.
+- * @see \`{@link https://api.jquery.com/stop/ }\`
+- * @since 1.7
+- */
+- stop(queue: string, clearQueue?: boolean, jumpToEnd?: boolean): this;
+- /**
+- * Stop the currently-running animation on the matched elements.
+- * @param clearQueue A Boolean indicating whether to remove queued animation as well. Defaults to false.
+- * @param jumpToEnd A Boolean indicating whether to complete the current animation immediately. Defaults to false.
+- * @see \`{@link https://api.jquery.com/stop/ }\`
+- * @since 1.2
+- * @example ````Click the Go button once to start the animation, then click the STOP button to stop it where it's currently positioned. Another option is to click several buttons to queue them up and see that stop just kills the currently playing one.
+-```html
+-
+-
+-
+-
+- stop demo
+-
+-
+-
+-
+-
+-Go
+-STOP!
+-Back
+-
+-
+-
+-
+-
+-
+-```
+- * @example ````Click the slideToggle button to start the animation, then click again before the animation is completed. The animation will toggle the other direction from the saved starting point.
+-```html
+-
+-
+-
+-
+- stop demo
+-
+-
+-
+-
+-
+-slideToggle
+-
+-
+-
+-
+-
+-
+-```
+- */
+- stop(clearQueue?: boolean, jumpToEnd?: boolean): this;
+- /**
+- * Bind an event handler to the "submit" JavaScript event, or trigger that event on an element.
+- * @param eventData An object containing data that will be passed to the event handler.
+- * @param handler A function to execute each time the event is triggered.
+- * @see \`{@link https://api.jquery.com/submit/ }\`
+- * @since 1.4.3
+- * @deprecated Deprecated since 3.3. Use \`{@link on }\` or \`{@link trigger }\`.
+- *
+- * **Cause**: The `.on()` and `.trigger()` methods can set an event handler or generate an event for any event type, and should be used instead of the shortcut methods. This message also applies to the other event shorthands, including: blur, focus, focusin, focusout, resize, scroll, dblclick, mousedown, mouseup, mousemove, mouseover, mouseout, mouseenter, mouseleave, change, select, submit, keydown, keypress, keyup, and contextmenu.
+- *
+- * **Solution**: Instead of `.click(fn)` use `.on("click", fn)`. Instead of `.click()` use `.trigger("click")`.
+- */
+- submit(eventData: TData,
+- handler: JQuery.TypeEventHandler): this;
+- /**
+- * Bind an event handler to the "submit" JavaScript event, or trigger that event on an element.
+- * @param handler A function to execute each time the event is triggered.
+- * @see \`{@link https://api.jquery.com/submit/ }\`
+- * @since 1.0
+- * @deprecated Deprecated since 3.3. Use \`{@link on }\` or \`{@link trigger }\`.
+- *
+- * **Cause**: The `.on()` and `.trigger()` methods can set an event handler or generate an event for any event type, and should be used instead of the shortcut methods. This message also applies to the other event shorthands, including: blur, focus, focusin, focusout, resize, scroll, dblclick, mousedown, mouseup, mousemove, mouseover, mouseout, mouseenter, mouseleave, change, select, submit, keydown, keypress, keyup, and contextmenu.
+- *
+- * **Solution**: Instead of `.click(fn)` use `.on("click", fn)`. Instead of `.click()` use `.trigger("click")`.
+- * @example ````If you'd like to prevent forms from being submitted unless a flag variable is set, try:
+-```html
+-
+-
+-
+-
+- submit demo
+-
+-
+-
+-
+-
+-Type 'correct' to validate.
+-
+-
+-
+-
+-
+-
+-
+-```
+- * @example ````If you'd like to prevent forms from being submitted unless a flag variable is set, try:
+-```javascript
+-$( "form" ).submit(function() {
+- return this.some_flag_variable;
+-});
+-```
+- * @example ````To trigger the submit event on the first form on the page, try:
+-```javascript
+-$( "form:first" ).submit();
+-```
+- */
+- submit(handler?: JQuery.TypeEventHandler |
+- false): this;
+- /**
+- * Set the content of each element in the set of matched elements to the specified text.
+- * @param text_function _@param_ `text_function`
+- *
+- * * `text` — The text to set as the content of each matched element. When Number or Boolean is supplied, it will
+- * be converted to a String representation.
+- * * `function` — A function returning the text content to set. Receives the index position of the element in the set
+- * and the old text value as arguments.
+- * @see \`{@link https://api.jquery.com/text/ }\`
+- * @since 1.0
+- * @since 1.4
+- * @example ````Add text to the paragraph (notice the bold tag is escaped).
+-```html
+-
+-
+-
+-
+- text demo
+-
+-
+-
+-
+-
+-Test Paragraph.
+-
+-
+-
+-
+-
+-```
+- */
+- text(text_function: string | number | boolean | ((this: TElement, index: number, text: string) => string | number | boolean)): this;
+- /**
+- * Get the combined text contents of each element in the set of matched elements, including their descendants.
+- * @see \`{@link https://api.jquery.com/text/ }\`
+- * @since 1.0
+- * @example ````Find the text in the first paragraph (stripping out the html), then set the html of the last paragraph to show it is just text (the red bold is gone).
+-```html
+-
+-
+-
+-
+- text demo
+-
+-
+-
+-
+-
+-Test Paragraph.
+-
+-
+-
+-
+-
+-
+-```
+- */
+- text(): string;
+- /**
+- * Retrieve all the elements contained in the jQuery set, as an array.
+- * @see \`{@link https://api.jquery.com/toArray/ }\`
+- * @since 1.4
+- * @example ````Select all divs in the document and return the DOM Elements as an Array; then use the built-in reverse() method to reverse that array.
+-```html
+-
+-
+-
+-
+- toArray demo
+-
+-
+-
+-
+-
+-Reversed -
+-
+-One
+-Two
+-Three
+-
+-
+-
+-
+-```
+- */
+- toArray(): TElement[];
+- /**
+- * Display or hide the matched elements.
+- * @param duration A string or number determining how long the animation will run.
+- * @param easing A string indicating which easing function to use for the transition.
+- * @param complete A function to call once the animation is complete, called once per matched element.
+- * @see \`{@link https://api.jquery.com/toggle/ }\`
+- * @since 1.4.3
+- */
+- toggle(duration: JQuery.Duration, easing: string, complete?: (this: TElement) => void): this;
+- /**
+- * Display or hide the matched elements.
+- * @param duration A string or number determining how long the animation will run.
+- * @param complete A function to call once the animation is complete, called once per matched element.
+- * @see \`{@link https://api.jquery.com/toggle/ }\`
+- * @since 1.0
+- */
+- toggle(duration: JQuery.Duration, complete: (this: TElement) => void): this;
+- /**
+- * Display or hide the matched elements.
+- * @param duration_complete_options_display _@param_ `duration_complete_options_display`
+- *
+- * * `duration` — A string or number determining how long the animation will run.
+- * * `complete` — A function to call once the animation is complete, called once per matched element.
+- * * `options` — A map of additional options to pass to the method.
+- * * `display` — Use true to show the element or false to hide it.
+- * @see \`{@link https://api.jquery.com/toggle/ }\`
+- * @since 1.0
+- * @since 1.3
+- * @example ````Toggles all paragraphs.
+-```html
+-
+-
+-
+-
+- toggle demo
+-
+-
+-
+-
+-Toggle
+-Hello
+-Good Bye
+-
+-
+-
+-
+-
+-```
+- * @example ````Animates all paragraphs to be shown if they are hidden and hidden if they are visible, completing the animation within 600 milliseconds.
+-```html
+-
+-
+-
+-
+- toggle demo
+-
+-
+-
+-
+-
+-Toggle 'em
+-Hiya
+-Such interesting text, eh?
+-
+-
+-
+-
+-
+-```
+- * @example ````Shows all paragraphs, then hides them all, back and forth.
+-```html
+-
+-
+-
+-
+- toggle demo
+-
+-
+-
+-
+-Toggle
+-Hello
+-Good Bye
+-
+-
+-
+-
+-
+-```
+- */
+- toggle(duration_complete_options_display?: JQuery.Duration | ((this: TElement) => void) | JQuery.EffectsOptions | boolean): this;
+- /**
+- * Add or remove one or more classes from each element in the set of matched elements, depending on either the class's presence or the value of the state argument.
+- * @param className_function _@param_ `className_function`
+- *
+- * * `className` — One or more class names (separated by spaces) to be toggled for each element in the matched set.
+- * * `function` — A function that returns class names to be toggled in the class attribute of each element in the
+- * matched set. Receives the index position of the element in the set, the old class value, and the state as arguments.
+- * @param state A Boolean (not just truthy/falsy) value to determine whether the class should be added or removed.
+- * @see \`{@link https://api.jquery.com/toggleClass/ }\`
+- * @since 1.0
+- * @since 1.3
+- * @since 1.4
+- * @since 3.3
+- * @example ````Toggle the class 'highlight' when a paragraph is clicked.
+-```html
+-
+-
+-
+-
+- toggleClass demo
+-
+-
+-
+-
+-
+-Click to toggle
+-highlight
+-on these
+-paragraphs
+-
+-
+-
+-
+-
+-```
+- * @example ````Add the "highlight" class to the clicked paragraph on every third click of that paragraph, remove it every first and second click.
+-```html
+-
+-
+-
+-
+- toggleClass demo
+-
+-
+-
+-
+-
+-Click to toggle (clicks: 0 )
+-highlight (clicks: 0 )
+-on these (clicks: 0 )
+-paragraphs (clicks: 0 )
+-
+-
+-
+-
+-
+-```
+- * @example ````Toggle the class name(s) indicated on the buttons for each div.
+-```html
+-
+-
+-
+-
+- toggleClass demo
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-```
+- */
+- toggleClass(className_function: JQuery.TypeOrArray | ((this: TElement, index: number, className: string, state: TState) => string),
+- state?: TState): this;
+- /**
+- * Add or remove one or more classes from each element in the set of matched elements, depending on either the class's presence or the value of the state argument.
+- * @param state A boolean value to determine whether the class should be added or removed.
+- * @see \`{@link https://api.jquery.com/toggleClass/ }\`
+- * @since 1.4
+- * @deprecated Deprecated since 3.0. See \`{@link https://github.com/jquery/jquery/pull/2618 }\`.
+- *
+- * **Cause**: Calling `.toggleClass()` with no arguments, or with a single Boolean `true` or `false` argument, has been deprecated. Its behavior was poorly documented, but essentially the method saved away the current class value in a data item when the class was removed and restored the saved value when it was toggled back. If you do not believe you are specificially trying to use this form of the method, it is possible you are accidentally doing so via an inadvertent undefined value, as `.toggleClass( undefined )` toggles all classes.
+- *
+- * **Solution**: If this functionality is still needed, save the current full `.attr( "class" )` value in a data item and restore it when required.
+- */
+- toggleClass(state?: boolean): this;
+- /**
+- * Execute all handlers and behaviors attached to the matched elements for the given event type.
+- * @param eventType_event _@param_ `eventType_event`
+- *