diff --git a/.circleci/workflows.yml b/.circleci/workflows.yml index dd23e08ef1b5..d2fb91107125 100644 --- a/.circleci/workflows.yml +++ b/.circleci/workflows.yml @@ -42,7 +42,6 @@ macWorkflowFilters: &darwin-workflow-filters - equal: [ develop, << pipeline.git.branch >> ] # use the following branch as well to ensure that v8 snapshot cache updates are fully tested - equal: [ 'update-v8-snapshot-cache-on-develop', << pipeline.git.branch >> ] - - equal: [ 'chore/remove_support_react_19_rc_and_min_next_15_0_4', << pipeline.git.branch >> ] - matches: pattern: /^release\/\d+\.\d+\.\d+$/ value: << pipeline.git.branch >> @@ -152,7 +151,7 @@ commands: name: Set environment variable to determine whether or not to persist artifacts command: | echo "Setting SHOULD_PERSIST_ARTIFACTS variable" - echo 'if ! [[ "$CIRCLE_BRANCH" != "develop" && "$CIRCLE_BRANCH" != "release/"* && "$CIRCLE_BRANCH" != "chore/remove_support_react_19_rc_and_min_next_15_0_4" ]]; then + echo 'if ! [[ "$CIRCLE_BRANCH" != "develop" && "$CIRCLE_BRANCH" != "release/"* && "$CIRCLE_BRANCH" != "ryanm/experiment/esm" ]]; then export SHOULD_PERSIST_ARTIFACTS=true fi' >> "$BASH_ENV" # You must run `setup_should_persist_artifacts` command and be using bash before running this command diff --git a/cli/CHANGELOG.md b/cli/CHANGELOG.md index fb70060129d6..1aaaed1abce3 100644 --- a/cli/CHANGELOG.md +++ b/cli/CHANGELOG.md @@ -73,6 +73,15 @@ _Released 12/17/2024 (PENDING)_ - Fixed an issue where targets may hang if `Network.enable` is not implemented for the target. Addresses [#29876](https://github.com/cypress-io/cypress/issues/29876). - Updated Firefox `userChrome.css` to correctly hide the toolbox during headless mode. Addresses [#30721](https://github.com/cypress-io/cypress/issues/30721). +- Fixed an issue loading the `cypress.config.ts` file with Node.js version `22.12.0`. Addresses [#30715](https://github.com/cypress-io/cypress/issues/30715). + +**Misc:** + +- Removed a comment from the scaffolded `supportFile` for component tests around CommonJS syntax. Addresses [#23287](https://github.com/cypress-io/cypress/issues/23287). + +**Dependency Updates:** + +- Updated `chai` from `4.2.0` to `4.5.0`. Addressed in [#30737](https://github.com/cypress-io/cypress/pull/30737). ## 13.16.1 diff --git a/package.json b/package.json index 296639d92816..df67ab1263b6 100644 --- a/package.json +++ b/package.json @@ -128,7 +128,7 @@ "bluebird": "3.5.3", "bluebird-retry": "0.11.0", "bytenode": "1.3.7", - "chai": "4.2.0", + "chai": "4.5.0", "chai-as-promised": "7.1.1", "chalk": "2.4.2", "check-dependencies": "1.1.0", diff --git a/packages/data-context/src/data/ProjectConfigIpc.ts b/packages/data-context/src/data/ProjectConfigIpc.ts index d95f7c687c8c..eaa11a34772f 100644 --- a/packages/data-context/src/data/ProjectConfigIpc.ts +++ b/packages/data-context/src/data/ProjectConfigIpc.ts @@ -313,6 +313,14 @@ export class ProjectConfigIpc extends EventEmitter { tsNodeEsmLoader = `${tsNodeEsmLoader} --no-experimental-detect-module` } + // in nodejs 22.12.0, the --experimental-require-module option is now enabled by default. + // We need to disable it with the --no-experimental-require-module flag. + // @see https://github.com/cypress-io/cypress/issues/30715 + if (this.nodeVersion && semver.gte(this.nodeVersion, '22.12.0')) { + debug(`detected node version ${this.nodeVersion}, adding --no-experimental-require-module option to child_process NODE_OPTIONS.`) + tsNodeEsmLoader = `${tsNodeEsmLoader} --no-experimental-require-module` + } + if (childOptions.env.NODE_OPTIONS) { childOptions.env.NODE_OPTIONS += ` ${tsNodeEsmLoader}` } else { diff --git a/packages/data-context/test/unit/data/ProjectConfigIpc.spec.ts b/packages/data-context/test/unit/data/ProjectConfigIpc.spec.ts index 70117aa1b41a..dc9e965b13d6 100644 --- a/packages/data-context/test/unit/data/ProjectConfigIpc.spec.ts +++ b/packages/data-context/test/unit/data/ProjectConfigIpc.spec.ts @@ -1,5 +1,6 @@ import childProcess from 'child_process' import { expect } from 'chai' +import semver from 'semver' import sinon from 'sinon' import { scaffoldMigrationProject as scaffoldProject } from '../helper' import { ProjectConfigIpc } from '../../../src/data/ProjectConfigIpc' @@ -34,8 +35,11 @@ describe('ProjectConfigIpc', () => { }) context('forkChildProcess', () => { - const NODE_VERSIONS = ['18.20.4', '20.17.0'] - const NODE_VERSIONS_22_7_0_AND_UP = ['22.7.0', '22.11.4'] + // some of these node versions may not exist, but we want to verify + // the experimental flags are correctly disabled for future versions + const NODE_VERSIONS = ['18.20.4', '20.17.0', '22.7.0', '22.11.4', '22.12.0', '22.15.0'] + const experimentalDetectModuleIntroduced = '22.7.0' + const experimentalRequireModuleIntroduced = '22.12.0' let projectConfigIpc let forkSpy @@ -52,10 +56,10 @@ describe('ProjectConfigIpc', () => { }) context('typescript', () => { - [...NODE_VERSIONS, ...NODE_VERSIONS_22_7_0_AND_UP].forEach((nodeVersion) => { + [...NODE_VERSIONS].forEach((nodeVersion) => { context(`node v${nodeVersion}`, () => { context('ESM', () => { - it('uses the experimental module loader if ESM is being used with typescript', async () => { + it('passes the correct experimental flags if ESM is being used with typescript', async () => { // @ts-expect-error const projectPath = await scaffoldProject('config-cjs-and-esm/config-with-ts-module') @@ -77,35 +81,23 @@ describe('ProjectConfigIpc', () => { NODE_OPTIONS: sinon.match('--experimental-specifier-resolution=node --loader'), }, })) - }) - - // @see https://github.com/cypress-io/cypress/issues/30084 - // at time of writing, 22.11.4 is a node version that does not exist. We are using this version to test the logic for future proofing. - if (NODE_VERSIONS_22_7_0_AND_UP.includes(nodeVersion)) { - it(`additionally adds --no-experimental-detect-module for node versions 22.7.0 and up if ESM is being used with typescript`, async () => { - // @ts-expect-error - const projectPath = await scaffoldProject('config-cjs-and-esm/config-with-ts-module') - - const MOCK_NODE_PATH = `/Users/foo/.nvm/versions/node/v${nodeVersion}/bin/node` - const MOCK_NODE_VERSION = nodeVersion - - projectConfigIpc = new ProjectConfigIpc( - MOCK_NODE_PATH, - MOCK_NODE_VERSION, - projectPath, - 'cypress.config.js', - false, - (error) => {}, - () => {}, - ) + if (semver.gte(nodeVersion, experimentalDetectModuleIntroduced)) { expect(forkSpy).to.have.been.calledWith(sinon.match.string, sinon.match.array, sinon.match({ env: { NODE_OPTIONS: sinon.match('--no-experimental-detect-module'), }, })) - }) - } + } + + if (semver.gte(nodeVersion, experimentalRequireModuleIntroduced)) { + expect(forkSpy).to.have.been.calledWith(sinon.match.string, sinon.match.array, sinon.match({ + env: { + NODE_OPTIONS: sinon.match('--no-experimental-require-module'), + }, + })) + } + }) }) context('CommonJS', () => { diff --git a/packages/driver/cypress/support/e2e.js b/packages/driver/cypress/support/e2e.js index c818f04f6a99..a34ebd818478 100644 --- a/packages/driver/cypress/support/e2e.js +++ b/packages/driver/cypress/support/e2e.js @@ -1,18 +1 @@ -// *********************************************************** -// This example support/e2e.js is processed and -// loaded automatically before your other test files. -// -// This is a great place to put global configuration and -// behavior that modifies Cypress. -// -// You can change the location of this file or turn off -// automatically serving support files with the -// 'supportFile' configuration option. -// -// You can read more here: -// https://on.cypress.io/guides/configuration#section-global -// *********************************************************** - -// Alternatively you can use CommonJS syntax: -// require("./commands") require('./defaults') diff --git a/packages/scaffold-config/src/supportFile.ts b/packages/scaffold-config/src/supportFile.ts index 19f5f7871d8d..c4f2aee9fc52 100644 --- a/packages/scaffold-config/src/supportFile.ts +++ b/packages/scaffold-config/src/supportFile.ts @@ -20,9 +20,6 @@ export function supportFileE2E (language: CodeLanguage['type']) { // Import commands.js using ES2015 syntax: import './commands' - - // Alternatively you can use CommonJS syntax: - // require('./commands') ` } @@ -45,9 +42,6 @@ export function supportFileComponent (language: CodeLanguage['type'], mountModul // Import commands.js using ES2015 syntax: import './commands' - - // Alternatively you can use CommonJS syntax: - // require('./commands') ` const exampleUse = dedent` diff --git a/packages/scaffold-config/test/unit/supportFile.spec.ts b/packages/scaffold-config/test/unit/supportFile.spec.ts index ac0e12d6bec1..6a53cbf8c617 100644 --- a/packages/scaffold-config/test/unit/supportFile.spec.ts +++ b/packages/scaffold-config/test/unit/supportFile.spec.ts @@ -28,9 +28,6 @@ describe('supportFileComponent', () => { // Import commands.js using ES2015 syntax: import './commands' - // Alternatively you can use CommonJS syntax: - // require('./commands') - import { mount } from '${mountModule}' Cypress.Commands.add('mount', mount) @@ -62,9 +59,6 @@ describe('supportFileComponent', () => { // Import commands.js using ES2015 syntax: import './commands' - // Alternatively you can use CommonJS syntax: - // require('./commands') - import { mount } from '${mountModule}' // Augment the Cypress namespace to include type definitions for @@ -112,9 +106,6 @@ describe('supportFileComponent', () => { // Import commands.js using ES2015 syntax: import './commands' - // Alternatively you can use CommonJS syntax: - // require('./commands') - import { mount } from '${mountModule}' Cypress.Commands.add('mount', mount) @@ -146,9 +137,6 @@ describe('supportFileComponent', () => { // Import commands.js using ES2015 syntax: import './commands' - // Alternatively you can use CommonJS syntax: - // require('./commands') - import { mount } from '${mountModule}' // Augment the Cypress namespace to include type definitions for @@ -195,9 +183,6 @@ describe('supportFileComponent', () => { // Import commands.js using ES2015 syntax: import './commands' - // Alternatively you can use CommonJS syntax: - // require('./commands') - import { mount } from '${mountModule}' // Augment the Cypress namespace to include type definitions for @@ -244,9 +229,6 @@ describe('supportFileComponent', () => { // Import commands.js using ES2015 syntax: import './commands' - // Alternatively you can use CommonJS syntax: - // require('./commands') - import { mount } from 'cypress/svelte' Cypress.Commands.add('mount', mount) @@ -278,9 +260,6 @@ describe('supportFileComponent', () => { // Import commands.js using ES2015 syntax: import './commands' - // Alternatively you can use CommonJS syntax: - // require('./commands') - import { mount } from 'cypress/svelte' // Augment the Cypress namespace to include type definitions for diff --git a/system-tests/projects/angular-cli-configured/cypress/support/component.ts b/system-tests/projects/angular-cli-configured/cypress/support/component.ts index 8b8fa9d024d0..496890f98562 100644 --- a/system-tests/projects/angular-cli-configured/cypress/support/component.ts +++ b/system-tests/projects/angular-cli-configured/cypress/support/component.ts @@ -13,8 +13,8 @@ // https://on.cypress.io/configuration // *********************************************************** -// Alternatively you can use CommonJS syntax: -// require('./commands') +// Import commands.js using ES2015 syntax: +import './commands' import { mount } from 'cypress/angular' diff --git a/system-tests/projects/config-cjs-and-esm/config-with-ts-module/cypress.config.ts b/system-tests/projects/config-cjs-and-esm/config-with-ts-module/cypress.config.ts index 70c232267fc3..de29bc7da79a 100644 --- a/system-tests/projects/config-cjs-and-esm/config-with-ts-module/cypress.config.ts +++ b/system-tests/projects/config-cjs-and-esm/config-with-ts-module/cypress.config.ts @@ -3,7 +3,7 @@ import { defineConfig } from 'cypress' export default defineConfig({ e2e: { supportFile: false, - setupNodeEvents: async (_, config) => { + setupNodeEvents: async (_, config: Cypress.PluginConfigOptions) => { await import('find-up') return config diff --git a/system-tests/projects/config-with-invalid-browser/cypress/support/e2e.js b/system-tests/projects/config-with-invalid-browser/cypress/support/e2e.js index d1dd1353e812..92e5881f4078 100644 --- a/system-tests/projects/config-with-invalid-browser/cypress/support/e2e.js +++ b/system-tests/projects/config-with-invalid-browser/cypress/support/e2e.js @@ -15,6 +15,3 @@ // Import commands.js using ES2015 syntax: import './commands' - -// Alternatively you can use CommonJS syntax: -// require('./commands') diff --git a/system-tests/projects/migration-e2e-custom-supportFile/src/platform/testing/e2e/cypress/support/index.js b/system-tests/projects/migration-e2e-custom-supportFile/src/platform/testing/e2e/cypress/support/index.js index d1dd1353e812..92e5881f4078 100644 --- a/system-tests/projects/migration-e2e-custom-supportFile/src/platform/testing/e2e/cypress/support/index.js +++ b/system-tests/projects/migration-e2e-custom-supportFile/src/platform/testing/e2e/cypress/support/index.js @@ -15,6 +15,3 @@ // Import commands.js using ES2015 syntax: import './commands' - -// Alternatively you can use CommonJS syntax: -// require('./commands') diff --git a/system-tests/projects/no-specs-vue/cypress/support/component.ts b/system-tests/projects/no-specs-vue/cypress/support/component.ts index 04e4c352b8c5..76c3b9e76c28 100644 --- a/system-tests/projects/no-specs-vue/cypress/support/component.ts +++ b/system-tests/projects/no-specs-vue/cypress/support/component.ts @@ -16,9 +16,6 @@ // Import commands.js using ES2015 syntax: import './commands' -// Alternatively you can use CommonJS syntax: -// require('./commands') - // Import global styles import '@/assets/main.css' diff --git a/system-tests/projects/no-specs-vue/cypress/support/e2e.ts b/system-tests/projects/no-specs-vue/cypress/support/e2e.ts index d68db96df269..185d654ec609 100644 --- a/system-tests/projects/no-specs-vue/cypress/support/e2e.ts +++ b/system-tests/projects/no-specs-vue/cypress/support/e2e.ts @@ -15,6 +15,3 @@ // Import commands.js using ES2015 syntax: import './commands' - -// Alternatively you can use CommonJS syntax: -// require('./commands') diff --git a/system-tests/projects/no-specs/cypress/support/component.js b/system-tests/projects/no-specs/cypress/support/component.js index be20eaa89ea2..6501bab5dc25 100644 --- a/system-tests/projects/no-specs/cypress/support/component.js +++ b/system-tests/projects/no-specs/cypress/support/component.js @@ -16,9 +16,6 @@ // Import commands.js using ES2015 syntax: import './commands' -// Alternatively you can use CommonJS syntax: -// require('./commands') - import { mount } from 'cypress/react' Cypress.Commands.add('mount', mount) diff --git a/system-tests/projects/plugin-code-coverage/cypress/support/e2e.js b/system-tests/projects/plugin-code-coverage/cypress/support/e2e.js index cfb691980e17..4db62f4dd27b 100644 --- a/system-tests/projects/plugin-code-coverage/cypress/support/e2e.js +++ b/system-tests/projects/plugin-code-coverage/cypress/support/e2e.js @@ -15,5 +15,3 @@ // Import commands.js using ES2015 syntax: import '@cypress/code-coverage/support' -// Alternatively you can use CommonJS syntax: -// require('./commands') diff --git a/system-tests/projects/plugin-returns-bad-config/cypress/support/e2e.js b/system-tests/projects/plugin-returns-bad-config/cypress/support/e2e.js index d1dd1353e812..92e5881f4078 100644 --- a/system-tests/projects/plugin-returns-bad-config/cypress/support/e2e.js +++ b/system-tests/projects/plugin-returns-bad-config/cypress/support/e2e.js @@ -15,6 +15,3 @@ // Import commands.js using ES2015 syntax: import './commands' - -// Alternatively you can use CommonJS syntax: -// require('./commands') diff --git a/system-tests/projects/plugin-returns-empty-browsers-list/cypress/support/e2e.js b/system-tests/projects/plugin-returns-empty-browsers-list/cypress/support/e2e.js index d1dd1353e812..92e5881f4078 100644 --- a/system-tests/projects/plugin-returns-empty-browsers-list/cypress/support/e2e.js +++ b/system-tests/projects/plugin-returns-empty-browsers-list/cypress/support/e2e.js @@ -15,6 +15,3 @@ // Import commands.js using ES2015 syntax: import './commands' - -// Alternatively you can use CommonJS syntax: -// require('./commands') diff --git a/system-tests/projects/plugin-returns-invalid-browser/cypress/support/e2e.js b/system-tests/projects/plugin-returns-invalid-browser/cypress/support/e2e.js index d1dd1353e812..92e5881f4078 100644 --- a/system-tests/projects/plugin-returns-invalid-browser/cypress/support/e2e.js +++ b/system-tests/projects/plugin-returns-invalid-browser/cypress/support/e2e.js @@ -15,6 +15,3 @@ // Import commands.js using ES2015 syntax: import './commands' - -// Alternatively you can use CommonJS syntax: -// require('./commands') diff --git a/system-tests/projects/pristine-cjs-project/expected-cypress-js-component-vue.js-3-webpack/support/component.js b/system-tests/projects/pristine-cjs-project/expected-cypress-js-component-vue.js-3-webpack/support/component.js index b234fad4473b..07bc139bbacb 100644 --- a/system-tests/projects/pristine-cjs-project/expected-cypress-js-component-vue.js-3-webpack/support/component.js +++ b/system-tests/projects/pristine-cjs-project/expected-cypress-js-component-vue.js-3-webpack/support/component.js @@ -16,9 +16,6 @@ // Import commands.js using ES2015 syntax: import './commands' -// Alternatively you can use CommonJS syntax: -// require('./commands') - import { mount } from 'cypress/vue' Cypress.Commands.add('mount', mount) diff --git a/system-tests/projects/pristine-module/expected-cypress-js-e2e/cypress/support/e2e.js b/system-tests/projects/pristine-module/expected-cypress-js-e2e/cypress/support/e2e.js index d1dd1353e812..92e5881f4078 100644 --- a/system-tests/projects/pristine-module/expected-cypress-js-e2e/cypress/support/e2e.js +++ b/system-tests/projects/pristine-module/expected-cypress-js-e2e/cypress/support/e2e.js @@ -15,6 +15,3 @@ // Import commands.js using ES2015 syntax: import './commands' - -// Alternatively you can use CommonJS syntax: -// require('./commands') diff --git a/system-tests/projects/pristine/expected-cypress-js-e2e-without-fixtures/cypress/support/e2e.js b/system-tests/projects/pristine/expected-cypress-js-e2e-without-fixtures/cypress/support/e2e.js index d1dd1353e812..92e5881f4078 100644 --- a/system-tests/projects/pristine/expected-cypress-js-e2e-without-fixtures/cypress/support/e2e.js +++ b/system-tests/projects/pristine/expected-cypress-js-e2e-without-fixtures/cypress/support/e2e.js @@ -15,6 +15,3 @@ // Import commands.js using ES2015 syntax: import './commands' - -// Alternatively you can use CommonJS syntax: -// require('./commands') diff --git a/system-tests/projects/pristine/expected-cypress-js-e2e/cypress/support/e2e.js b/system-tests/projects/pristine/expected-cypress-js-e2e/cypress/support/e2e.js index d1dd1353e812..92e5881f4078 100644 --- a/system-tests/projects/pristine/expected-cypress-js-e2e/cypress/support/e2e.js +++ b/system-tests/projects/pristine/expected-cypress-js-e2e/cypress/support/e2e.js @@ -15,6 +15,3 @@ // Import commands.js using ES2015 syntax: import './commands' - -// Alternatively you can use CommonJS syntax: -// require('./commands') diff --git a/system-tests/projects/pristine/expected-cypress-ts-e2e/cypress/support/e2e.ts b/system-tests/projects/pristine/expected-cypress-ts-e2e/cypress/support/e2e.ts index ed5730de1148..c90b6b6d3e07 100644 --- a/system-tests/projects/pristine/expected-cypress-ts-e2e/cypress/support/e2e.ts +++ b/system-tests/projects/pristine/expected-cypress-ts-e2e/cypress/support/e2e.ts @@ -15,6 +15,3 @@ // Import commands.js using ES2015 syntax: import './commands' - -// Alternatively you can use CommonJS syntax: -// require('./commands') diff --git a/system-tests/projects/ts-proj-4/cypress/support/e2e.ts b/system-tests/projects/ts-proj-4/cypress/support/e2e.ts index 503f34fc155a..d96d8bd77cda 100644 --- a/system-tests/projects/ts-proj-4/cypress/support/e2e.ts +++ b/system-tests/projects/ts-proj-4/cypress/support/e2e.ts @@ -15,6 +15,3 @@ // Import commands.js using ES2015 syntax: // import './commands' - -// Alternatively you can use CommonJS syntax: -// require('./commands') diff --git a/system-tests/projects/ts-proj-5/cypress/support/e2e.ts b/system-tests/projects/ts-proj-5/cypress/support/e2e.ts index 503f34fc155a..d96d8bd77cda 100644 --- a/system-tests/projects/ts-proj-5/cypress/support/e2e.ts +++ b/system-tests/projects/ts-proj-5/cypress/support/e2e.ts @@ -15,6 +15,3 @@ // Import commands.js using ES2015 syntax: // import './commands' - -// Alternatively you can use CommonJS syntax: -// require('./commands') diff --git a/system-tests/projects/ts-proj/cypress/support/e2e.ts b/system-tests/projects/ts-proj/cypress/support/e2e.ts index ed5730de1148..c90b6b6d3e07 100644 --- a/system-tests/projects/ts-proj/cypress/support/e2e.ts +++ b/system-tests/projects/ts-proj/cypress/support/e2e.ts @@ -15,6 +15,3 @@ // Import commands.js using ES2015 syntax: import './commands' - -// Alternatively you can use CommonJS syntax: -// require('./commands') diff --git a/system-tests/test-binary/node_versions_spec.ts b/system-tests/test-binary/node_versions_spec.ts index 5e32da3ed7a9..90bf2f46eb7d 100644 --- a/system-tests/test-binary/node_versions_spec.ts +++ b/system-tests/test-binary/node_versions_spec.ts @@ -31,6 +31,7 @@ describe('binary node versions', () => { 'cypress/base:20.18.0', 'cypress/base:22.0.0', 'cypress/base:22.7.0', + 'cypress/base:22.12.0', ].forEach(smokeTestDockerImage) }) @@ -41,6 +42,7 @@ describe('type: module', () => { 'cypress/base:20.18.0', 'cypress/base:22.0.0', 'cypress/base:22.7.0', + 'cypress/base:22.12.0', ].forEach((dockerImage) => { systemTests.it(`can run in ${dockerImage}`, { withBinary: true, diff --git a/yarn.lock b/yarn.lock index a134f313d213..07a40dd3e89a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -11968,18 +11968,18 @@ chai@4.2.0: pathval "^1.1.0" type-detect "^4.0.5" -chai@^4.2.0, chai@^4.3.6: - version "4.3.6" - resolved "https://registry.yarnpkg.com/chai/-/chai-4.3.6.tgz#ffe4ba2d9fa9d6680cc0b370adae709ec9011e9c" - integrity sha512-bbcp3YfHCUzMOvKqsztczerVgBKSsEijCySNlHHbX3VG1nskvqjz5Rfso1gGwD6w6oOV3eI60pKuMOV5MV7p3Q== +chai@4.5.0, chai@^4.2.0, chai@^4.3.6: + version "4.5.0" + resolved "https://registry.yarnpkg.com/chai/-/chai-4.5.0.tgz#707e49923afdd9b13a8b0b47d33d732d13812fd8" + integrity sha512-RITGBfijLkBddZvnn8jdqoTypxvqbOLYQkGGxXzeFjVHvudaPw0HNFD9x928/eUwYWd2dPCugVqspGALTZZQKw== dependencies: assertion-error "^1.1.0" - check-error "^1.0.2" - deep-eql "^3.0.1" - get-func-name "^2.0.0" - loupe "^2.3.1" + check-error "^1.0.3" + deep-eql "^4.1.3" + get-func-name "^2.0.2" + loupe "^2.3.6" pathval "^1.1.1" - type-detect "^4.0.5" + type-detect "^4.1.0" chai@^5.1.2: version "5.1.2" @@ -12150,10 +12150,12 @@ check-dependencies@1.1.0: minimist "^1.2.0" semver "^5.4.1" -check-error@^1.0.1, check-error@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.2.tgz#574d312edd88bb5dd8912e9286dd6c0aed4aac82" - integrity sha1-V00xLt2Iu13YkS6Sht1sCu1KrII= +check-error@^1.0.1, check-error@^1.0.2, check-error@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.3.tgz#a6502e4312a7ee969f646e83bb3ddd56281bd694" + integrity sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg== + dependencies: + get-func-name "^2.0.2" check-error@^2.1.1: version "2.1.1" @@ -21701,12 +21703,12 @@ loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.3.1, loose-envify@^1.4 dependencies: js-tokens "^3.0.0 || ^4.0.0" -loupe@^2.3.1: - version "2.3.4" - resolved "https://registry.yarnpkg.com/loupe/-/loupe-2.3.4.tgz#7e0b9bffc76f148f9be769cb1321d3dcf3cb25f3" - integrity sha512-OvKfgCC2Ndby6aSTREl5aCCPTNIzlDfQZvZxNUrBrihDhL3xcrYegTblhmEiCrg2kKQz4XsFIaemE5BF4ybSaQ== +loupe@^2.3.1, loupe@^2.3.6: + version "2.3.7" + resolved "https://registry.yarnpkg.com/loupe/-/loupe-2.3.7.tgz#6e69b7d4db7d3ab436328013d37d1c8c3540c697" + integrity sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA== dependencies: - get-func-name "^2.0.0" + get-func-name "^2.0.1" loupe@^3.1.0, loupe@^3.1.2: version "3.1.2" @@ -22624,7 +22626,7 @@ mobx@6.13.5: resolved "https://registry.npmjs.org/mobx/-/mobx-6.13.5.tgz#957d9df88c7f8b4baa7c6f8bdcb6d68b432a6ed5" integrity sha512-/HTWzW2s8J1Gqt+WmUj5Y0mddZk+LInejADc79NJadrWla3rHzmRHki/mnEUH1AvOmbNTZ1BRbKxr8DSgfdjMA== -"mocha-7.0.1@npm:mocha@7.0.1": +"mocha-7.0.1@npm:mocha@7.0.1", mocha@7.0.1: version "7.0.1" resolved "https://registry.yarnpkg.com/mocha/-/mocha-7.0.1.tgz#276186d35a4852f6249808c6dd4a1376cbf6c6ce" integrity sha512-9eWmWTdHLXh72rGrdZjNbG3aa1/3NRPpul1z0D979QpEnFdCG0Q5tv834N+94QEN2cysfV72YocQ3fn87s70fg== @@ -22741,36 +22743,6 @@ mocha@6.2.2: yargs-parser "13.1.1" yargs-unparser "1.6.0" -mocha@7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/mocha/-/mocha-7.0.1.tgz#276186d35a4852f6249808c6dd4a1376cbf6c6ce" - integrity sha512-9eWmWTdHLXh72rGrdZjNbG3aa1/3NRPpul1z0D979QpEnFdCG0Q5tv834N+94QEN2cysfV72YocQ3fn87s70fg== - dependencies: - ansi-colors "3.2.3" - browser-stdout "1.3.1" - chokidar "3.3.0" - debug "3.2.6" - diff "3.5.0" - escape-string-regexp "1.0.5" - find-up "3.0.0" - glob "7.1.3" - growl "1.10.5" - he "1.2.0" - js-yaml "3.13.1" - log-symbols "2.2.0" - minimatch "3.0.4" - mkdirp "0.5.1" - ms "2.1.1" - node-environment-flags "1.0.6" - object.assign "4.1.0" - strip-json-comments "2.0.1" - supports-color "6.0.0" - which "1.3.1" - wide-align "1.1.3" - yargs "13.3.0" - yargs-parser "13.1.1" - yargs-unparser "1.6.0" - mocha@7.1.0: version "7.1.0" resolved "https://registry.yarnpkg.com/mocha/-/mocha-7.1.0.tgz#c784f579ad0904d29229ad6cb1e2514e4db7d249" @@ -29322,7 +29294,7 @@ string-template@~0.2.1: resolved "https://registry.yarnpkg.com/string-template/-/string-template-0.2.1.tgz#42932e598a352d01fc22ec3367d9d84eec6c9add" integrity sha1-QpMuWYo1LQH8IuwzZ9nYTuxsmt0= -"string-width-cjs@npm:string-width@^4.2.0": +"string-width-cjs@npm:string-width@^4.2.0", "string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: version "4.2.3" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== @@ -29348,15 +29320,6 @@ string-width@^1.0.1, string-width@^1.0.2: is-fullwidth-code-point "^2.0.0" strip-ansi "^4.0.0" -"string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: - version "4.2.3" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" - integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== - dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.1" - string-width@^3.0.0, string-width@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" @@ -29467,7 +29430,7 @@ stringify-object@^3.0.0, stringify-object@^3.3.0: is-obj "^1.0.1" is-regexp "^1.0.0" -"strip-ansi-cjs@npm:strip-ansi@^6.0.1": +"strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@6.0.1, strip-ansi@^6.0.0, strip-ansi@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== @@ -29488,13 +29451,6 @@ strip-ansi@5.2.0, strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0: dependencies: ansi-regex "^4.1.0" -strip-ansi@6.0.1, strip-ansi@^6.0.0, strip-ansi@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" - integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== - dependencies: - ansi-regex "^5.0.1" - strip-ansi@^3.0.0, strip-ansi@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" @@ -30809,7 +30765,7 @@ type-detect@0.1.1: resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-0.1.1.tgz#0ba5ec2a885640e470ea4e8505971900dac58822" integrity sha1-C6XsKohWQORw6k6FBZcZANrFiCI= -type-detect@4.0.8, type-detect@^4.0.0, type-detect@^4.0.5, type-detect@^4.0.8: +type-detect@4.0.8: version "4.0.8" resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== @@ -30819,6 +30775,11 @@ type-detect@^1.0.0: resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-1.0.0.tgz#762217cc06db258ec48908a1298e8b95121e8ea2" integrity sha1-diIXzAbbJY7EiQihKY6LlRIejqI= +type-detect@^4.0.0, type-detect@^4.0.5, type-detect@^4.0.8, type-detect@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.1.0.tgz#deb2453e8f08dcae7ae98c626b13dddb0155906c" + integrity sha512-Acylog8/luQ8L7il+geoSxhEkazvkslg7PSNKOX59mbB9cOveP5aq9h74Y7YU8yDpJwetzQQrfIwtf4Wp4LKcw== + type-fest@2.13.0: version "2.13.0" resolved "https://registry.npmjs.org/type-fest/-/type-fest-2.13.0.tgz#d1ecee38af29eb2e863b22299a3d68ef30d2abfb" @@ -32514,7 +32475,7 @@ workerpool@6.2.0: resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-6.2.0.tgz#827d93c9ba23ee2019c3ffaff5c27fccea289e8b" integrity sha512-Rsk5qQHJ9eowMH28Jwhe8HEbmdYDX4lwoMWshiCXugjtHqMD9ZbiqSDLxcsfdqsETPzVUtX5s1Z5kStiIM6l4A== -"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0": +"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0", wrap-ansi@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== @@ -32557,15 +32518,6 @@ wrap-ansi@^6.2.0: string-width "^4.1.0" strip-ansi "^6.0.0" -wrap-ansi@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" - integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - wrap-ansi@^8.0.1, wrap-ansi@^8.1.0: version "8.1.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214"