From db65c2eb6b7b0cdb268c5fb0f648715f09b9e3be Mon Sep 17 00:00:00 2001 From: "Xin Du (Clark)" Date: Thu, 11 Jun 2020 14:59:13 +0100 Subject: [PATCH] feat: `createRequire` option and disable esm for jest (#7476) --- package.json | 2 + packages/config/package.json | 2 + packages/config/src/config/_common.js | 2 + packages/config/src/load.js | 11 +- packages/config/src/options.js | 16 +++ .../test/__snapshots__/options.test.js.snap | 1 + .../config/__snapshots__/index.test.js.snap | 2 + packages/config/test/options.test.js | 9 +- packages/core/src/resolver.js | 7 +- packages/core/test/resolver.test.js | 22 ++-- scripts/dev.js | 4 +- test/utils/setup.js | 2 - yarn.lock | 112 ++++++++++-------- 13 files changed, 116 insertions(+), 76 deletions(-) diff --git a/package.json b/package.json index cc9351a1e3..12b84b6b19 100644 --- a/package.json +++ b/package.json @@ -50,6 +50,7 @@ "babel-eslint": "^10.1.0", "babel-jest": "^26.0.1", "consola": "^2.12.2", + "create-require": "^1.0.1", "cross-spawn": "^7.0.3", "eslint": "^7.2.0", "eslint-multiplexer": "^2.0.0", @@ -64,6 +65,7 @@ "improved-yarn-audit": "^2.1.0", "is-wsl": "^2.2.0", "jest": "^26.0.1", + "jiti": "^0.1.3", "jsdom": "^16.2.2", "klaw-sync": "^6.0.0", "lerna": "^3.22.1", diff --git a/packages/config/package.json b/packages/config/package.json index 3c0c14ec37..c0c0c06dd1 100644 --- a/packages/config/package.json +++ b/packages/config/package.json @@ -12,10 +12,12 @@ "dependencies": { "@nuxt/utils": "2.12.1", "consola": "^2.12.2", + "create-require": "^1.0.1", "defu": "^2.0.4", "destr": "^0.1.9", "dotenv": "^8.2.0", "esm": "^3.2.25", + "jiti": "^0.1.3", "rc9": "^0.0.7", "std-env": "^2.2.1" }, diff --git a/packages/config/src/config/_common.js b/packages/config/src/config/_common.js index 551604151b..5cb86f3ea1 100644 --- a/packages/config/src/config/_common.js +++ b/packages/config/src/config/_common.js @@ -9,6 +9,8 @@ export default () => ({ debug: undefined, // = dev env: {}, + createRequire: undefined, + // Target target: TARGETS.server, diff --git a/packages/config/src/load.js b/packages/config/src/load.js index 65ecc617be..0a9fe260aa 100644 --- a/packages/config/src/load.js +++ b/packages/config/src/load.js @@ -5,16 +5,20 @@ import consola from 'consola' import dotenv from 'dotenv' import { clearRequireCache, scanRequireTree } from '@nuxt/utils' import esm from 'esm' +import _createRequire from 'create-require' import destr from 'destr' import * as rc from 'rc9' import { defaultNuxtConfigFile } from './config' +const isJest = typeof jest !== 'undefined' + export async function loadNuxtConfig ({ rootDir = '.', envConfig = {}, configFile = defaultNuxtConfigFile, configContext = {}, - configOverrides = {} + configOverrides = {}, + createRequire = module => isJest ? _createRequire(module.filename) : esm(module) } = {}) { rootDir = path.resolve(rootDir) @@ -52,9 +56,8 @@ export async function loadNuxtConfig ({ if (configFile) { // Clear cache clearRequireCache(configFile) - - options = esm(module)(configFile) || {} - + const _require = createRequire(module) + options = _require(configFile) || {} if (options.default) { options = options.default } diff --git a/packages/config/src/options.js b/packages/config/src/options.js index 1493c51a3b..0697e16138 100644 --- a/packages/config/src/options.js +++ b/packages/config/src/options.js @@ -454,6 +454,22 @@ export function getNuxtConfig (_options) { staticAssets.versionBase = urlJoin(staticAssets.base, staticAssets.version) } + // createRequire factory + if (options.createRequire === undefined) { + const isJest = typeof jest !== 'undefined' + options.createRequire = isJest ? false : 'esm' + } + if (options.createRequire === 'esm') { + const esm = require('esm') + options.createRequire = module => esm(module) + } else if (options.createRequire === 'jiti') { + const jiti = require('jiti') + options.createRequire = module => jiti(module.filename) + } else if (typeof options.createRequire !== 'function') { + const createRequire = require('create-require') + options.createRequire = module => createRequire(module.filename) + } + // ----- Builtin modules ----- // Loading screen diff --git a/packages/config/test/__snapshots__/options.test.js.snap b/packages/config/test/__snapshots__/options.test.js.snap index 53757f086c..9855fbb8b7 100644 --- a/packages/config/test/__snapshots__/options.test.js.snap +++ b/packages/config/test/__snapshots__/options.test.js.snap @@ -152,6 +152,7 @@ Object { "badgeMessages": Array [], "bannerColor": "green", }, + "createRequire": [MockFunction], "css": Array [], "debug": false, "dev": false, diff --git a/packages/config/test/config/__snapshots__/index.test.js.snap b/packages/config/test/config/__snapshots__/index.test.js.snap index 580cb794f4..474a2a3591 100644 --- a/packages/config/test/config/__snapshots__/index.test.js.snap +++ b/packages/config/test/config/__snapshots__/index.test.js.snap @@ -134,6 +134,7 @@ Object { "badgeMessages": Array [], "bannerColor": "green", }, + "createRequire": undefined, "css": Array [], "debug": undefined, "dev": false, @@ -503,6 +504,7 @@ Object { "badgeMessages": Array [], "bannerColor": "green", }, + "createRequire": undefined, "css": Array [], "debug": undefined, "dev": false, diff --git a/packages/config/test/options.test.js b/packages/config/test/options.test.js index 810beea276..3c135ffca6 100644 --- a/packages/config/test/options.test.js +++ b/packages/config/test/options.test.js @@ -26,7 +26,14 @@ describe('config: options', () => { jest.spyOn(path, 'resolve').mockImplementation((...args) => args.join('/').replace(/\\+/, '/')) jest.spyOn(path, 'join').mockImplementation((...args) => args.join('/').replace(/\\+/, '/')) - expect(getNuxtConfig({ generate: { staticAssets: { version: 'x' } } })).toMatchSnapshot() + expect(getNuxtConfig({ + createRequire: jest.fn(), + generate: { + staticAssets: { + version: 'x' + } + } + })).toMatchSnapshot() process.cwd.mockRestore() path.resolve.mockRestore() diff --git a/packages/core/src/resolver.js b/packages/core/src/resolver.js index 087dacaeeb..9e77b1fe62 100644 --- a/packages/core/src/resolver.js +++ b/packages/core/src/resolver.js @@ -1,7 +1,6 @@ import { resolve, join } from 'path' import fs from 'fs-extra' import consola from 'consola' -import esm from 'esm' import { startsWithRootAlias, @@ -21,8 +20,8 @@ export default class Resolver { this.resolveModule = this.resolveModule.bind(this) this.requireModule = this.requireModule.bind(this) - // ESM Loader - this.esm = esm(module) + const { createRequire } = this.options + this._require = createRequire ? createRequire(module) : module.require this._resolve = require.resolve } @@ -160,7 +159,7 @@ export default class Resolver { // Try to require try { if (useESM) { - requiredModule = this.esm(resolvedPath) + requiredModule = this._require(resolvedPath) } else { requiredModule = require(resolvedPath) } diff --git a/packages/core/test/resolver.test.js b/packages/core/test/resolver.test.js index bf89d201a1..9f0b9ee60f 100644 --- a/packages/core/test/resolver.test.js +++ b/packages/core/test/resolver.test.js @@ -1,5 +1,4 @@ import path from 'path' -import esm from 'esm' import fs from 'fs-extra' import consola from 'consola' import { startsWithRootAlias, startsWithSrcAlias } from '@nuxt/utils' @@ -29,8 +28,7 @@ describe.posix('core: resolver', () => { expect(resolver.resolveAlias).toBeInstanceOf(Function) expect(resolver.resolveModule).toBeInstanceOf(Function) expect(resolver.requireModule).toBeInstanceOf(Function) - expect(resolver.esm).toEqual(expect.any(Function)) - expect(esm).toBeCalledTimes(1) + expect(resolver._require).toEqual(expect.any(Function)) }) test('should call require.resolve in resolveModule', () => { @@ -351,7 +349,7 @@ describe.posix('core: resolver', () => { options: {} }) resolver.resolvePath = x => x - resolver.esm = jest.fn(() => ({ default: 'resolved module' })) + resolver._require = jest.fn(() => ({ default: 'resolved module' })) const resolvedModule = resolver.requireModule('/var/nuxt/resolver/module.js') @@ -363,7 +361,7 @@ describe.posix('core: resolver', () => { options: {} }) resolver.resolvePath = x => x - resolver.esm = jest.fn(() => 'resolved module') + resolver._require = jest.fn(() => 'resolved module') const resolvedModule = resolver.requireModule('/var/nuxt/resolver/module.js') @@ -375,7 +373,7 @@ describe.posix('core: resolver', () => { options: {} }) resolver.resolvePath = x => x - resolver.esm = jest.fn(() => ({ default: 'resolved module' })) + resolver._require = jest.fn(() => ({ default: 'resolved module' })) const resolvedModule = resolver.requireModule('/var/nuxt/resolver/module.js', { interopDefault: false }) @@ -387,7 +385,7 @@ describe.posix('core: resolver', () => { options: {} }) resolver.resolvePath = jest.fn(() => 'path') - resolver.esm = jest.fn(() => ({ default: 'resolved module' })) + resolver._require = jest.fn(() => ({ default: 'resolved module' })) const resolvedModule = resolver.requireModule('path', { useESM: false }) @@ -399,7 +397,7 @@ describe.posix('core: resolver', () => { options: {} }) resolver.resolvePath = jest.fn(() => { throw new Error('resolve failed') }) - resolver.esm = jest.fn(() => undefined) + resolver._require = jest.fn(() => undefined) expect(() => resolver.requireModule('/var/nuxt/resolver/module.js')).toThrow('resolve failed') }) @@ -409,7 +407,7 @@ describe.posix('core: resolver', () => { options: {} }) resolver.resolvePath = jest.fn(() => { throw new Error('resolve failed') }) - resolver.esm = jest.fn(() => { throw new Error('resolve esm failed') }) + resolver._require = jest.fn(() => { throw new Error('resolve esm failed') }) expect(() => resolver.requireModule('/var/nuxt/resolver/module.js')).toThrow('resolve esm failed') }) @@ -419,7 +417,7 @@ describe.posix('core: resolver', () => { options: {} }) resolver.resolvePath = x => x - resolver.esm = jest.fn() + resolver._require = jest.fn() resolver.requireModule('/var/nuxt/resolver/file.js', { intropDefault: true }) const warnMsg = 'Using intropDefault is deprecated and will be removed in Nuxt 3. Use `interopDefault` instead.' @@ -432,7 +430,7 @@ describe.posix('core: resolver', () => { options: {} }) resolver.resolvePath = x => x - resolver.esm = jest.fn() + resolver._require = jest.fn() resolver.requireModule('/var/nuxt/resolver/file.js', { alias: true }) const warnMsg = 'Using alias is deprecated and will be removed in Nuxt 3. Use `isAlias` instead.' @@ -445,7 +443,7 @@ describe.posix('core: resolver', () => { options: {} }) resolver.resolvePath = jest.fn().mockReturnValue('/var/nuxt/resolver/file.js') - resolver.esm = jest.fn() + resolver._require = jest.fn() resolver.requireModule('/var/nuxt/resolver/file.js', { esm: true }) const warnMsg = 'Using esm is deprecated and will be removed in Nuxt 3. Use `useESM` instead.' diff --git a/scripts/dev.js b/scripts/dev.js index f9877cfeff..8715e654e0 100755 --- a/scripts/dev.js +++ b/scripts/dev.js @@ -11,9 +11,7 @@ const useCjs = [ const stub = { es: 'export * from \'../src/index\'', - cjs: `const esm = require('esm') - -const _require = esm(module) + cjs: `const _require = typeof jest === 'undefined' ? require('esm')(module) : require const execa = require('execa') diff --git a/test/utils/setup.js b/test/utils/setup.js index 581ce8b3aa..04ffa50337 100644 --- a/test/utils/setup.js +++ b/test/utils/setup.js @@ -15,8 +15,6 @@ chalk.level = 0 jest.setTimeout(60000) -jest.mock('esm', () => () => require) - consola.mockTypes(() => jest.fn()) function errorTrap (error) { diff --git a/yarn.lock b/yarn.lock index 210909e3a9..0ea474f797 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1931,18 +1931,18 @@ stack-trace "0.0.10" "@octokit/auth-token@^2.4.0": - version "2.4.1" - resolved "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-2.4.1.tgz#375d79eebd03750e6a9b0299e80b8167c7c85655" - integrity sha512-NB81O5h39KfHYGtgfWr2booRxp2bWOJoqbWwbyUg2hw6h35ArWYlAST5B3XwAkbdcx13yt84hFXyFP5X0QToWA== + version "2.4.2" + resolved "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-2.4.2.tgz#10d0ae979b100fa6b72fa0e8e63e27e6d0dbff8a" + integrity sha512-jE/lE/IKIz2v1+/P0u4fJqv0kYwXOTujKemJMFr6FeopsxlIK3+wKDCJGnysg81XID5TgZQbIfuJ5J0lnTiuyQ== dependencies: - "@octokit/types" "^4.0.1" + "@octokit/types" "^5.0.0" "@octokit/endpoint@^6.0.1": - version "6.0.2" - resolved "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-6.0.2.tgz#e876aafe68d7f9b6c6d80bf29458403f9afe7b2b" - integrity sha512-xs1mmCEZ2y4shXCpFjNq3UbmNR+bLzxtZim2L0zfEtj9R6O6kc4qLDvYw66hvO6lUsYzPTM5hMkltbuNAbRAcQ== + version "6.0.3" + resolved "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-6.0.3.tgz#dd09b599662d7e1b66374a177ab620d8cdf73487" + integrity sha512-Y900+r0gIz+cWp6ytnkibbD95ucEzDSKzlEnaWS52hbCDNcCJYO5mRmWW7HRAnDc7am+N/5Lnd8MppSaTYx1Yg== dependencies: - "@octokit/types" "^4.0.1" + "@octokit/types" "^5.0.0" is-plain-object "^3.0.0" universal-user-agent "^5.0.0" @@ -1990,13 +1990,13 @@ once "^1.4.0" "@octokit/request@^5.2.0": - version "5.4.4" - resolved "https://registry.npmjs.org/@octokit/request/-/request-5.4.4.tgz#dc57e85e86284fa016d0c1a2701a70a10cec4ff2" - integrity sha512-vqv1lz41c6VTxUvF9nM+a6U+vvP3vGk7drDpr0DVQg4zyqlOiKVrY17DLD6de5okj+YLHKcoqaUZTBtlNZ1BtQ== + version "5.4.5" + resolved "https://registry.npmjs.org/@octokit/request/-/request-5.4.5.tgz#8df65bd812047521f7e9db6ff118c06ba84ac10b" + integrity sha512-atAs5GAGbZedvJXXdjtKljin+e2SltEs48B3naJjqWupYl2IUBbB/CJisyjbNHcKpHzb3E+OYEZ46G8eakXgQg== dependencies: "@octokit/endpoint" "^6.0.1" "@octokit/request-error" "^2.0.0" - "@octokit/types" "^4.0.1" + "@octokit/types" "^5.0.0" deprecation "^2.0.0" is-plain-object "^3.0.0" node-fetch "^2.3.0" @@ -2033,9 +2033,16 @@ "@types/node" ">= 8" "@octokit/types@^4.0.1": - version "4.1.9" - resolved "https://registry.npmjs.org/@octokit/types/-/types-4.1.9.tgz#a3e1ff1a15637ab830fbab0268c2d7ca824bc969" - integrity sha512-hinM/BA2c1vebN2HSR3JtVdYtrSbmvn/doUBZXXuQuh/9o60hYwitQQAGTpJu+k6pjtjURskDHQxUFvqLvYCeA== + version "4.1.10" + resolved "https://registry.npmjs.org/@octokit/types/-/types-4.1.10.tgz#e4029c11e2cc1335051775bc1600e7e740e4aca4" + integrity sha512-/wbFy1cUIE5eICcg0wTKGXMlKSbaAxEr00qaBXzscLXpqhcwgXeS6P8O0pkysBhRfyjkKjJaYrvR1ExMO5eOXQ== + dependencies: + "@types/node" ">= 8" + +"@octokit/types@^5.0.0": + version "5.0.0" + resolved "https://registry.npmjs.org/@octokit/types/-/types-5.0.0.tgz#cbdf3c060f6c0436c004ec402c5082c32de72511" + integrity sha512-3LVS+MbeqwSd5G4KS8123cZz+hWomsiGeMnQ/QJIBFDwL/YHX8kkr0FZXrgWEMO7Fgi2/VOrhbiFnk9sZ+s4qA== dependencies: "@types/node" ">= 8" @@ -2302,9 +2309,9 @@ integrity sha512-c3Xy026kOF7QOTn00hbIllV1dLR9hG9NkSrLQgCVs8NF6sBU+VGWjD3wLPhmh1TYAc7ugCFsvHYMN4VcBN1U1A== "@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0", "@types/istanbul-lib-coverage@^2.0.1": - version "2.0.2" - resolved "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.2.tgz#79d7a78bad4219f4c03d6557a1c72d9ca6ba62d5" - integrity sha512-rsZg7eL+Xcxsxk2XlBt9KcG8nOp9iYdKCOikY9x2RFJCyOdNj4MKPQty0e8oZr29vVAzKXr1BmR+kZauti3o1w== + version "2.0.3" + resolved "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz#4ba8ddb720221f432e443bd5f9117fd22cfd4762" + integrity sha512-sz7iLqvVUg1gIedBOvlkxPlc8/uVzyS5OwGz1cKjXzkl3FpL3al0crU8YGU1WoHkxn0Wxbw5tyi6hvzJKNzFsw== "@types/istanbul-lib-report@*": version "3.0.0" @@ -2322,9 +2329,9 @@ "@types/istanbul-lib-report" "*" "@types/json-schema@^7.0.3", "@types/json-schema@^7.0.4": - version "7.0.4" - resolved "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.4.tgz#38fd73ddfd9b55abb1e1b2ed578cb55bd7b7d339" - integrity sha512-8+KAKzEvSUdeo+kmqnKrqgeE+LcA0tjYWFY7RPProVYwnqDjukzO+3b6dLD56rYX5TdWejnEOLJYOIeh4CXKuA== + version "7.0.5" + resolved "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.5.tgz#dcce4430e64b443ba8945f0290fb564ad5bac6dd" + integrity sha512-7+2BITlgjgDhH0vvwZU/HZJVyk+2XUlvxXe8dFMedNX/aMkaOq++rMAFXc0tM7ij15QaWlbdQASBR9dihi+bDQ== "@types/keyv@*": version "3.1.1" @@ -2368,9 +2375,9 @@ "@types/node" "*" "@types/node@*", "@types/node@>= 8": - version "14.0.11" - resolved "https://registry.npmjs.org/@types/node/-/node-14.0.11.tgz#61d4886e2424da73b7b25547f59fdcb534c165a3" - integrity sha512-lCvvI24L21ZVeIiyIUHZ5Oflv1hhHQ5E1S25IRlKIXaRkVgmXpJMI3wUJkmym2bTbCe+WoIibQnMVAU3FguaOg== + version "14.0.13" + resolved "https://registry.npmjs.org/@types/node/-/node-14.0.13.tgz#ee1128e881b874c371374c1f72201893616417c9" + integrity sha512-rouEWBImiRaSJsVA+ITTFM6ZxibuAlTuNOCyxVbwreu6k6+ujs7DfnU9o+PShFhET78pMBl3eH+AGSI5eOTkPA== "@types/node@^12.12.47": version "12.12.47" @@ -2870,9 +2877,9 @@ acorn@^6.4.1: integrity sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA== acorn@^7.1.1, acorn@^7.2.0: - version "7.2.0" - resolved "https://registry.npmjs.org/acorn/-/acorn-7.2.0.tgz#17ea7e40d7c8640ff54a694c889c26f31704effe" - integrity sha512-apwXVmYVpQ34m/i71vrApRrRKCWQnZZF1+npOD0WV5xZFfwWOmKGQ2RWlfdy9vWITsenisM8M0Qeq8agcFHNiQ== + version "7.3.1" + resolved "https://registry.npmjs.org/acorn/-/acorn-7.3.1.tgz#85010754db53c3fbaf3b9ea3e083aa5c5d147ffd" + integrity sha512-tLc0wSnatxAQHVHUapaHdz72pi9KUyHjq5KyHjGg9Y8Ifdc79pTh2XvI6I1/chZbnM7QtNKzh66ooDogPZSleA== agent-base@4, agent-base@^4.3.0: version "4.3.0" @@ -3881,12 +3888,7 @@ caniuse-api@^3.0.0: lodash.memoize "^4.1.2" lodash.uniq "^4.5.0" -caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000981, caniuse-lite@^1.0.30001043, caniuse-lite@^1.0.30001061: - version "1.0.30001079" - resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001079.tgz#ed3e5225cd9a6850984fdd88bf24ce45d69b9c22" - integrity sha512-2KaYheg0iOY+CMmDuAB3DHehrXhhb4OZU4KBVGDr/YKyYAcpudaiUQ9PJ9rxrPlKEoJ3ATasQ5AN48MqpwS43Q== - -caniuse-lite@^1.0.30001081: +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000981, caniuse-lite@^1.0.30001043, caniuse-lite@^1.0.30001061, caniuse-lite@^1.0.30001081: version "1.0.30001081" resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001081.tgz#40615a3c416a047c5a4d45673e5257bf128eb3b5" integrity sha512-iZdh3lu09jsUtLE6Bp8NAbJskco4Y3UDtkR3GTCJGsbMowBU5IWDFF79sV2ws7lSqTzWyKazxam2thasHymENQ== @@ -3932,9 +3934,9 @@ chalk@^3.0.0: supports-color "^7.1.0" chalk@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/chalk/-/chalk-4.0.0.tgz#6e98081ed2d17faab615eb52ac66ec1fe6209e72" - integrity sha512-N9oWFcegS0sFr9oh1oz2d7Npos6vNoWW9HvtCg5N1KRFpUhaAhvTv5Y58g880fZaEYSNm3qDz8SU1UrGvp+n7A== + version "4.1.0" + resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz#4e14870a618d9e2edd97dd8345fd9d9dc315646a" + integrity sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A== dependencies: ansi-styles "^4.1.0" supports-color "^7.1.0" @@ -4539,6 +4541,11 @@ create-hmac@^1.1.0, create-hmac@^1.1.4, create-hmac@^1.1.7: safe-buffer "^5.0.1" sha.js "^2.4.8" +create-require@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/create-require/-/create-require-1.0.1.tgz#ae71385b65c41ca68f72ab45e10d9ebba1e408a2" + integrity sha512-ZyXIimEIcq8CWcgMpQ4RxHKSIZN/47eeExkXG5NyA9bGRYqbkCMPvjvwvD74vCPHqAAuCougLTj+jYlpMucXgg== + cross-spawn@^3.0.0: version "3.0.1" resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-3.0.1.tgz#1256037ecb9f0c5f79e3d6ef135e30770184b982" @@ -5252,9 +5259,9 @@ ejs@^2.6.1: integrity sha512-7vmuyh5+kuUyJKePhQfRQBhXV5Ce+RnaeeQArKu1EAMpL3WbgMt5WG6uQZpEVvYSSsxMXRKOewtDk9RaTKXRlA== electron-to-chromium@^1.3.413: - version "1.3.464" - resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.464.tgz#fe13feaa08f6f865d3c89d5d72e54c194f463aa5" - integrity sha512-Oo+0+CN9d2z6FToQW6Hwvi9ez09Y/usKwr0tsDsyg43a871zVJCi1nR0v03djLbRNcaCKjtrnVf2XJhTxEpPCg== + version "1.3.467" + resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.467.tgz#84eeb332134d49f0e49b88588824e56b20af9e27" + integrity sha512-U+QgsL8TZDU/n+rDnYDa3hY5uy3C4iry9mrJS0PNBBGwnocuQ+aHSfgY44mdlaK9744X5YqrrGUvD9PxCLY1HA== elliptic@^6.0.0, elliptic@^6.5.2: version "6.5.2" @@ -5894,9 +5901,9 @@ extract-from-css@^0.4.4: css "^2.1.0" extract-zip@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.0.tgz#f53b71d44f4ff5a4527a2259ade000fb8b303492" - integrity sha512-i42GQ498yibjdvIhivUsRslx608whtGoFIhF26Z7O4MYncBxp8CwalOs1lnHy21A9sIohWO2+uiE4SRtC9JXDg== + version "2.0.1" + resolved "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz#663dca56fe46df890d5f131ef4a06d22bb8ba13a" + integrity sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg== dependencies: debug "^4.1.1" get-stream "^5.1.0" @@ -6514,12 +6521,12 @@ globby@^9.2.0: slash "^2.0.0" globule@^1.0.0: - version "1.3.1" - resolved "https://registry.npmjs.org/globule/-/globule-1.3.1.tgz#90a25338f22b7fbeb527cee63c629aea754d33b9" - integrity sha512-OVyWOHgw29yosRHCHo7NncwR1hW5ew0W/UrvtwvjefVJeQ26q4/8r8FmPsSF1hJ93IgWkyv16pCTz6WblMzm/g== + version "1.3.2" + resolved "https://registry.npmjs.org/globule/-/globule-1.3.2.tgz#d8bdd9e9e4eef8f96e245999a5dee7eb5d8529c4" + integrity sha512-7IDTQTIu2xzXkT+6mlluidnWo+BypnbSoEVVQCGfzqnl5Ik8d3e1d4wycb8Rj9tWW+Z39uPWsdlquqiqPCd/pA== dependencies: glob "~7.1.1" - lodash "~4.17.12" + lodash "~4.17.10" minimatch "~3.0.2" got@^11.3.0: @@ -7959,6 +7966,11 @@ jest@^26.0.1: import-local "^3.0.2" jest-cli "^26.0.1" +jiti@^0.1.3: + version "0.1.3" + resolved "https://registry.npmjs.org/jiti/-/jiti-0.1.3.tgz#7d3722f542b7ea1678e2ea96af633fabdc92a31b" + integrity sha512-tsWnOUChON4mJwhIii0W6NvJm1E4soSGW8ImzqQwPwt6rRih0AERBRSEF3QCaShkJuuI6IPNsE9MHtVEWGNqrQ== + js-base64@^2.1.8: version "2.5.2" resolved "https://registry.npmjs.org/js-base64/-/js-base64-2.5.2.tgz#313b6274dda718f714d00b3330bbae6e38e90209" @@ -8391,7 +8403,7 @@ lodash.zip@^4.2.0: resolved "https://registry.npmjs.org/lodash.zip/-/lodash.zip-4.2.0.tgz#ec6662e4896408ed4ab6c542a3990b72cc080020" integrity sha1-7GZi5IlkCO1KtsVCo5kLcswIACA= -lodash@4.17.15, lodash@^4.0.0, lodash@^4.15.0, lodash@^4.17.12, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.5, lodash@^4.2.1, lodash@~4.17.12: +lodash@4.17.15, lodash@^4.0.0, lodash@^4.15.0, lodash@^4.17.12, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.5, lodash@^4.2.1, lodash@~4.17.10: version "4.17.15" resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548" integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A== @@ -13483,9 +13495,9 @@ widest-line@^3.1.0: string-width "^4.0.0" windows-release@^3.1.0: - version "3.3.0" - resolved "https://registry.npmjs.org/windows-release/-/windows-release-3.3.0.tgz#dce167e9f8be733f21c849ebd4d03fe66b29b9f0" - integrity sha512-2HetyTg1Y+R+rUgrKeUEhAG/ZuOmTrI1NBb3ZyAGQMYmOJjBBPe4MTodghRkmLJZHwkuPi02anbeGP+Zf401LQ== + version "3.3.1" + resolved "https://registry.npmjs.org/windows-release/-/windows-release-3.3.1.tgz#cb4e80385f8550f709727287bf71035e209c4ace" + integrity sha512-Pngk/RDCaI/DkuHPlGTdIkDiTAnAkyMjoQMZqRsxydNl1qGXNIoZrB7RK8g53F2tEgQBMqQJHQdYZuQEEAu54A== dependencies: execa "^1.0.0"