feat: createRequire option and disable esm for jest (#7476)

This commit is contained in:
Xin Du (Clark) 2020-06-11 14:59:13 +01:00 committed by GitHub
parent 87f1a8d144
commit db65c2eb6b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
13 changed files with 116 additions and 76 deletions

View File

@ -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",

View File

@ -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"
},

View File

@ -9,6 +9,8 @@ export default () => ({
debug: undefined, // = dev
env: {},
createRequire: undefined,
// Target
target: TARGETS.server,

View File

@ -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
}

View File

@ -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

View File

@ -152,6 +152,7 @@ Object {
"badgeMessages": Array [],
"bannerColor": "green",
},
"createRequire": [MockFunction],
"css": Array [],
"debug": false,
"dev": false,

View File

@ -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,

View File

@ -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()

View File

@ -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)
}

View File

@ -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.'

View File

@ -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')

View File

@ -15,8 +15,6 @@ chalk.level = 0
jest.setTimeout(60000)
jest.mock('esm', () => () => require)
consola.mockTypes(() => jest.fn())
function errorTrap (error) {

112
yarn.lock
View File

@ -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"