diff --git a/package.json b/package.json
index 3b818222b..cc38be6cf 100644
--- a/package.json
+++ b/package.json
@@ -26,7 +26,7 @@
"@ava/babel": "^1.0.1",
"@typescript-eslint/eslint-plugin": "^3.7.1",
"@typescript-eslint/parser": "^3.7.1",
- "ava": "^3.11.0",
+ "ava": "^3.13.0",
"chalk": "^4.1.0",
"codecov-lite": "^1.0.3",
"del-cli": "^3.0.1",
@@ -36,7 +36,7 @@
"husky": "^4.2.5",
"lint-staged": "^10.2.11",
"nyc": "^15.1.0",
- "pnpm": "^5.4.6",
+ "pnpm": "^5.9.3",
"prettier": "^2.0.5",
"prettier-plugin-package": "^1.0.0",
"ts-node": "^8.10.2",
diff --git a/packages/commonjs/README.md b/packages/commonjs/README.md
index ce6c9ed58..d57cb9d66 100644
--- a/packages/commonjs/README.md
+++ b/packages/commonjs/README.md
@@ -34,9 +34,9 @@ export default {
input: 'src/index.js',
output: {
dir: 'output',
- format: 'cjs',
+ format: 'cjs'
},
- plugins: [commonjs()],
+ plugins: [commonjs()]
};
```
@@ -66,8 +66,8 @@ commonjs({
'!node_modules/logform/index.js',
'!node_modules/logform/format.js',
'!node_modules/logform/levels.js',
- '!node_modules/logform/browser.js',
- ],
+ '!node_modules/logform/browser.js'
+ ]
});
```
@@ -143,7 +143,7 @@ You can also supply an array of ids to be treated as ES modules, or a function t
### `requireReturnsDefault`
-Type: `boolean | "auto" | "preferred" | ((id: string) => boolean | "auto" | "preferred")`
+Type: `boolean | "namespace" | "auto" | "preferred" | ((id: string) => boolean | "auto" | "preferred")`
Default: `false`
Controls what is returned when requiring an ES module from a CommonJS file. When using the `esmExternals` option, this will also apply to external modules. By default, this plugin will render those imports as namespace imports, i.e.
@@ -174,7 +174,7 @@ This is in line with how other bundlers handle this situation and is also the mo
var dep$1 = /*#__PURE__*/ Object.freeze({
__proto__: null,
- default: dep,
+ default: dep
});
console.log(dep$1.default);
@@ -205,7 +205,7 @@ For these situations, you can change Rollup's behaviour either globally or per m
enumerable: true,
get: function () {
return n[k];
- },
+ }
}
);
});
@@ -287,9 +287,9 @@ export default {
output: {
file: 'bundle.js',
format: 'iife',
- name: 'MyModule',
+ name: 'MyModule'
},
- plugins: [resolve(), commonjs()],
+ plugins: [resolve(), commonjs()]
};
```
@@ -299,7 +299,7 @@ Symlinks are common in monorepos and are also created by the `npm link` command.
```js
commonjs({
- include: /node_modules/,
+ include: /node_modules/
});
```
@@ -322,11 +322,11 @@ function cjsDetectionPlugin() {
moduleParsed({
id,
meta: {
- commonjs: { isCommonJS },
- },
+ commonjs: { isCommonJS }
+ }
}) {
console.log(`File ${id} is CommonJS: ${isCommonJS}`);
- },
+ }
};
}
```
diff --git a/packages/commonjs/src/dynamic-packages-manager.js b/packages/commonjs/src/dynamic-packages-manager.js
index 62ff5306f..916c66c0e 100644
--- a/packages/commonjs/src/dynamic-packages-manager.js
+++ b/packages/commonjs/src/dynamic-packages-manager.js
@@ -43,9 +43,7 @@ export function getDynamicPackagesEntryIntro(
).join('\n');
if (dynamicRequireModuleDirPaths.length) {
- dynamicImports += `require(${JSON.stringify(
- DYNAMIC_REGISTER_PREFIX + DYNAMIC_PACKAGES_ID
- )});`;
+ dynamicImports += `require(${JSON.stringify(DYNAMIC_REGISTER_PREFIX + DYNAMIC_PACKAGES_ID)});`;
}
return dynamicImports;
diff --git a/packages/commonjs/src/helpers.js b/packages/commonjs/src/helpers.js
index 461e21f90..15d459d56 100644
--- a/packages/commonjs/src/helpers.js
+++ b/packages/commonjs/src/helpers.js
@@ -1,10 +1,10 @@
-export const PROXY_SUFFIX = '?commonjs-proxy';
-export const getProxyId = (id) => `\0${id}${PROXY_SUFFIX}`;
-export const getIdFromProxyId = (proxyId) => proxyId.slice(1, -PROXY_SUFFIX.length);
+export const isWrappedId = (id, suffix) => id.endsWith(suffix);
+export const wrapId = (id, suffix) => `\0${id}${suffix}`;
+export const unwrapId = (wrappedId, suffix) => wrappedId.slice(1, -suffix.length);
+export const PROXY_SUFFIX = '?commonjs-proxy';
+export const REQUIRE_SUFFIX = '?commonjs-require';
export const EXTERNAL_SUFFIX = '?commonjs-external';
-export const getExternalProxyId = (id) => `\0${id}${EXTERNAL_SUFFIX}`;
-export const getIdFromExternalProxyId = (proxyId) => proxyId.slice(1, -EXTERNAL_SUFFIX.length);
export const VIRTUAL_PATH_BASE = '/$$rollup_base$$';
export const getVirtualPathForDynamicRequirePath = (path, commonDir) => {
diff --git a/packages/commonjs/src/index.js b/packages/commonjs/src/index.js
index c3f75a391..cdd5160c2 100644
--- a/packages/commonjs/src/index.js
+++ b/packages/commonjs/src/index.js
@@ -16,10 +16,10 @@ import {
DYNAMIC_PACKAGES_ID,
EXTERNAL_SUFFIX,
getHelpersModule,
- getIdFromExternalProxyId,
- getIdFromProxyId,
HELPERS_ID,
- PROXY_SUFFIX
+ isWrappedId,
+ PROXY_SUFFIX,
+ unwrapId
} from './helpers';
import { setIsCjsPromise } from './is-cjs';
import {
@@ -81,10 +81,8 @@ export default function commonjs(options = {}) {
function transformAndCheckExports(code, id) {
if (isDynamicRequireModulesEnabled && this.getModuleInfo(id).isEntry) {
- code = getDynamicPackagesEntryIntro(
- dynamicRequireModuleDirPaths,
- dynamicRequireModuleSet
- ) + code;
+ code =
+ getDynamicPackagesEntryIntro(dynamicRequireModuleDirPaths, dynamicRequireModuleSet) + code;
}
const { isEsModule, hasDefaultExport, hasNamedExports, ast } = checkEsModule(
@@ -156,8 +154,8 @@ export default function commonjs(options = {}) {
return getSpecificHelperProxy(id);
}
- if (id.endsWith(EXTERNAL_SUFFIX)) {
- const actualId = getIdFromExternalProxyId(id);
+ if (isWrappedId(id, EXTERNAL_SUFFIX)) {
+ const actualId = unwrapId(id, EXTERNAL_SUFFIX);
return getUnknownRequireProxy(
actualId,
isEsmExternal(actualId) ? getRequireReturnsDefault(actualId) : true
@@ -176,8 +174,8 @@ export default function commonjs(options = {}) {
return getDynamicRequireProxy(normalizePathSlashes(id), commonDir);
}
- if (id.endsWith(PROXY_SUFFIX)) {
- const actualId = getIdFromProxyId(id);
+ if (isWrappedId(id, PROXY_SUFFIX)) {
+ const actualId = unwrapId(id, PROXY_SUFFIX);
return getStaticRequireProxy(
actualId,
getRequireReturnsDefault(actualId),
diff --git a/packages/commonjs/src/resolve-id.js b/packages/commonjs/src/resolve-id.js
index 02d61e149..8873602dd 100644
--- a/packages/commonjs/src/resolve-id.js
+++ b/packages/commonjs/src/resolve-id.js
@@ -6,11 +6,13 @@ import { dirname, resolve, sep } from 'path';
import {
DYNAMIC_JSON_PREFIX,
DYNAMIC_PACKAGES_ID,
- getExternalProxyId,
- getIdFromProxyId,
- getProxyId,
+ EXTERNAL_SUFFIX,
HELPERS_ID,
- PROXY_SUFFIX
+ isWrappedId,
+ PROXY_SUFFIX,
+ REQUIRE_SUFFIX,
+ unwrapId,
+ wrapId
} from './helpers';
function getCandidatesForExtension(resolved, extension) {
@@ -44,10 +46,18 @@ export default function getResolveId(extensions) {
return undefined;
}
- function resolveId(importee, importer) {
- const isProxyModule = importee.endsWith(PROXY_SUFFIX);
+ return function resolveId(importee, importer) {
+ // Proxies are only importing resolved ids, no need to resolve again
+ if (importer && isWrappedId(importer, PROXY_SUFFIX)) {
+ return importee;
+ }
+
+ const isProxyModule = isWrappedId(importee, PROXY_SUFFIX);
+ const isRequiredModule = isWrappedId(importee, REQUIRE_SUFFIX);
if (isProxyModule) {
- importee = getIdFromProxyId(importee);
+ importee = unwrapId(importee, PROXY_SUFFIX);
+ } else if (isRequiredModule) {
+ importee = unwrapId(importee, REQUIRE_SUFFIX);
}
if (importee.startsWith('\0')) {
if (
@@ -57,30 +67,23 @@ export default function getResolveId(extensions) {
) {
return importee;
}
- if (!isProxyModule) {
- return null;
- }
+ return null;
}
- if (importer && importer.endsWith(PROXY_SUFFIX)) {
- importer = getIdFromProxyId(importer);
- }
-
- return this.resolve(importee, importer, { skipSelf: true }).then((resolved) => {
+ return this.resolve(importee, importer, {
+ skipSelf: true,
+ custom: { 'node-resolve': { isRequire: isProxyModule || isRequiredModule } }
+ }).then((resolved) => {
if (!resolved) {
resolved = resolveExtensions(importee, importer);
}
- if (isProxyModule) {
- if (!resolved) {
- return { id: getExternalProxyId(importee), external: false };
- }
- resolved.id = (resolved.external ? getExternalProxyId : getProxyId)(resolved.id);
+ if (resolved && isProxyModule) {
+ resolved.id = wrapId(resolved.id, resolved.external ? EXTERNAL_SUFFIX : PROXY_SUFFIX);
resolved.external = false;
- return resolved;
+ } else if (!resolved && (isProxyModule || isRequiredModule)) {
+ return { id: wrapId(importee, EXTERNAL_SUFFIX), external: false };
}
return resolved;
});
- }
-
- return resolveId;
+ };
}
diff --git a/packages/commonjs/src/transform.js b/packages/commonjs/src/transform.js
index 299db1fd3..a9d8330be 100644
--- a/packages/commonjs/src/transform.js
+++ b/packages/commonjs/src/transform.js
@@ -11,9 +11,11 @@ import { flatten, isFalsy, isReference, isTruthy } from './ast-utils';
import {
DYNAMIC_JSON_PREFIX,
DYNAMIC_REGISTER_PREFIX,
- getProxyId,
getVirtualPathForDynamicRequirePath,
- HELPERS_ID
+ HELPERS_ID,
+ PROXY_SUFFIX,
+ REQUIRE_SUFFIX,
+ wrapId
} from './helpers';
import { getName } from './utils';
@@ -138,7 +140,8 @@ export function transformCommonjs(
const required = {};
// Because objects have no guaranteed ordering, yet we need it,
// we need to keep track of the order in a array
- const sources = [];
+ const requiredSources = [];
+ const dynamicRegisterSources = [];
let uid = 0;
@@ -229,8 +232,7 @@ export function transformCommonjs(
}
const existing = required[sourceId];
- // eslint-disable-next-line no-undefined
- if (existing === undefined) {
+ if (!existing) {
const isDynamic = hasDynamicModuleForPath(sourceId);
if (!name) {
@@ -240,12 +242,15 @@ export function transformCommonjs(
} while (scope.contains(name));
}
- if (isDynamicRegister && sourceId.endsWith('.json')) {
- sourceId = DYNAMIC_JSON_PREFIX + sourceId;
+ if (isDynamicRegister) {
+ if (sourceId.endsWith('.json')) {
+ sourceId = DYNAMIC_JSON_PREFIX + sourceId;
+ }
+ dynamicRegisterSources.push(sourceId);
}
- if (isDynamicRegister || !isDynamic || sourceId.endsWith('.json')) {
- sources.push([sourceId, isDynamicRegister]);
+ if (!isDynamic || sourceId.endsWith('.json')) {
+ requiredSources.push(sourceId);
}
required[sourceId] = { source: sourceId, name, importsDefault: false, isDynamic };
@@ -553,7 +558,8 @@ export function transformCommonjs(
usesCommonjsHelpers = usesCommonjsHelpers || shouldWrap;
if (
- !sources.length &&
+ !requiredSources.length &&
+ !dynamicRegisterSources.length &&
!uses.module &&
!uses.exports &&
!uses.require &&
@@ -568,25 +574,22 @@ export function transformCommonjs(
: []
)
.concat(
- // dynamic registers first (`commonjsRegister(,,,)`), as the may be required in the other modules
- sources
- .filter(([, isDynamicRegister]) => isDynamicRegister)
- .map(([source]) => `import '${source}';`),
-
- // now the solid modules, non-commonjsRegister
- sources
- .filter(([, isDynamicRegister]) => !isDynamicRegister)
- .map(([source]) => `import '${source}';`),
-
- // now the proxies for solid modules (non-commonjsRegister)
- sources
- .filter(([, isDynamicRegister]) => !isDynamicRegister)
- .map(([source]) => {
- const { name, importsDefault } = required[source];
- return `import ${importsDefault ? `${name} from ` : ``}'${
- source.startsWith('\0') ? source : getProxyId(source)
- }';`;
- })
+ // dynamic registers first, as the may be required in the other modules
+ dynamicRegisterSources.map((source) => `import '${source}';`),
+
+ // now the actual modules so that they are analyzed before creating the proxies;
+ // no need to do this for virtual modules as we never proxy them
+ requiredSources
+ .filter((source) => !source.startsWith('\0'))
+ .map((source) => `import '${wrapId(source, REQUIRE_SUFFIX)}';`),
+
+ // now the proxy modules
+ requiredSources.map((source) => {
+ const { name, importsDefault } = required[source];
+ return `import ${importsDefault ? `${name} from ` : ``}'${
+ source.startsWith('\0') ? source : wrapId(source, PROXY_SUFFIX)
+ }';`;
+ })
)
.join('\n')}\n\n`;
diff --git a/packages/commonjs/test/fixtures/form/constant-template-literal/output.js b/packages/commonjs/test/fixtures/form/constant-template-literal/output.js
index f86e76363..56b546b25 100644
--- a/packages/commonjs/test/fixtures/form/constant-template-literal/output.js
+++ b/packages/commonjs/test/fixtures/form/constant-template-literal/output.js
@@ -1,4 +1,4 @@
-import 'tape';
+import '_tape?commonjs-require';
import foo from '_tape?commonjs-proxy';
console.log(foo);
diff --git a/packages/commonjs/test/fixtures/form/ignore-ids-function/output.js b/packages/commonjs/test/fixtures/form/ignore-ids-function/output.js
index 8857e268f..b3a0e90a3 100644
--- a/packages/commonjs/test/fixtures/form/ignore-ids-function/output.js
+++ b/packages/commonjs/test/fixtures/form/ignore-ids-function/output.js
@@ -1,4 +1,4 @@
-import 'bar';
+import '_bar?commonjs-require';
import bar from '_bar?commonjs-proxy';
var foo = require( 'foo' );
diff --git a/packages/commonjs/test/fixtures/form/ignore-ids/output.js b/packages/commonjs/test/fixtures/form/ignore-ids/output.js
index 8857e268f..b3a0e90a3 100644
--- a/packages/commonjs/test/fixtures/form/ignore-ids/output.js
+++ b/packages/commonjs/test/fixtures/form/ignore-ids/output.js
@@ -1,4 +1,4 @@
-import 'bar';
+import '_bar?commonjs-require';
import bar from '_bar?commonjs-proxy';
var foo = require( 'foo' );
diff --git a/packages/commonjs/test/fixtures/form/multi-entry-module-exports/output1.js b/packages/commonjs/test/fixtures/form/multi-entry-module-exports/output1.js
index fd1e0719e..7b712dea7 100644
--- a/packages/commonjs/test/fixtures/form/multi-entry-module-exports/output1.js
+++ b/packages/commonjs/test/fixtures/form/multi-entry-module-exports/output1.js
@@ -1,4 +1,4 @@
-import './input2.js';
+import '_./input2.js?commonjs-require';
import t2 from '_./input2.js?commonjs-proxy';
console.log(t2);
diff --git a/packages/commonjs/test/fixtures/form/multiple-var-declarations-b/output.js b/packages/commonjs/test/fixtures/form/multiple-var-declarations-b/output.js
index 5d80fea29..6be20f53c 100644
--- a/packages/commonjs/test/fixtures/form/multiple-var-declarations-b/output.js
+++ b/packages/commonjs/test/fixtures/form/multiple-var-declarations-b/output.js
@@ -1,4 +1,4 @@
-import './a';
+import '_./a?commonjs-require';
import a from '_./a?commonjs-proxy';
var b = 42;
diff --git a/packages/commonjs/test/fixtures/form/multiple-var-declarations-c/output.js b/packages/commonjs/test/fixtures/form/multiple-var-declarations-c/output.js
index e1dca645c..fbf095bcc 100644
--- a/packages/commonjs/test/fixtures/form/multiple-var-declarations-c/output.js
+++ b/packages/commonjs/test/fixtures/form/multiple-var-declarations-c/output.js
@@ -1,4 +1,4 @@
-import './b';
+import '_./b?commonjs-require';
import b from '_./b?commonjs-proxy';
var a = 'a'
diff --git a/packages/commonjs/test/fixtures/form/multiple-var-declarations/output.js b/packages/commonjs/test/fixtures/form/multiple-var-declarations/output.js
index beb25c63f..5e300e809 100644
--- a/packages/commonjs/test/fixtures/form/multiple-var-declarations/output.js
+++ b/packages/commonjs/test/fixtures/form/multiple-var-declarations/output.js
@@ -1,5 +1,5 @@
-import './a';
-import './b';
+import '_./a?commonjs-require';
+import '_./b?commonjs-require';
import require$$0 from '_./a?commonjs-proxy';
import b from '_./b?commonjs-proxy';
diff --git a/packages/commonjs/test/fixtures/form/no-exports-entry/output.js b/packages/commonjs/test/fixtures/form/no-exports-entry/output.js
index af6d479f6..731b75d5a 100644
--- a/packages/commonjs/test/fixtures/form/no-exports-entry/output.js
+++ b/packages/commonjs/test/fixtures/form/no-exports-entry/output.js
@@ -1,4 +1,4 @@
-import './dummy';
+import '_./dummy?commonjs-require';
import dummy from '_./dummy?commonjs-proxy';
var foo = function () {
diff --git a/packages/commonjs/test/fixtures/form/require-collision/output.js b/packages/commonjs/test/fixtures/form/require-collision/output.js
index e689a4d8b..a7386cb8e 100644
--- a/packages/commonjs/test/fixtures/form/require-collision/output.js
+++ b/packages/commonjs/test/fixtures/form/require-collision/output.js
@@ -1,4 +1,4 @@
-import 'foo';
+import '_foo?commonjs-require';
import require$$1 from '_foo?commonjs-proxy';
(function() {
diff --git a/packages/commonjs/test/fixtures/form/unambiguous-with-default-export/output.js b/packages/commonjs/test/fixtures/form/unambiguous-with-default-export/output.js
index af86babb3..babc5ed99 100644
--- a/packages/commonjs/test/fixtures/form/unambiguous-with-default-export/output.js
+++ b/packages/commonjs/test/fixtures/form/unambiguous-with-default-export/output.js
@@ -1,4 +1,4 @@
-import './foo.js';
+import '_./foo.js?commonjs-require';
import '_./foo.js?commonjs-proxy';
export default {};
diff --git a/packages/commonjs/test/fixtures/form/unambiguous-with-import/output.js b/packages/commonjs/test/fixtures/form/unambiguous-with-import/output.js
index ab5213af4..508ea8ff1 100644
--- a/packages/commonjs/test/fixtures/form/unambiguous-with-import/output.js
+++ b/packages/commonjs/test/fixtures/form/unambiguous-with-import/output.js
@@ -1,4 +1,4 @@
-import './foo.js';
+import '_./foo.js?commonjs-require';
import '_./foo.js?commonjs-proxy';
import './bar.js';
diff --git a/packages/commonjs/test/fixtures/form/unambiguous-with-named-export/output.js b/packages/commonjs/test/fixtures/form/unambiguous-with-named-export/output.js
index 21d5dd24c..df6f380b1 100644
--- a/packages/commonjs/test/fixtures/form/unambiguous-with-named-export/output.js
+++ b/packages/commonjs/test/fixtures/form/unambiguous-with-named-export/output.js
@@ -1,4 +1,4 @@
-import './foo.js';
+import '_./foo.js?commonjs-require';
import '_./foo.js?commonjs-proxy';
export {};
diff --git a/packages/commonjs/test/fixtures/function/dynamic-require-absolute-paths/_config.js b/packages/commonjs/test/fixtures/function/dynamic-require-absolute-paths/_config.js
index 8a62ba220..c0a5a9fc2 100755
--- a/packages/commonjs/test/fixtures/function/dynamic-require-absolute-paths/_config.js
+++ b/packages/commonjs/test/fixtures/function/dynamic-require-absolute-paths/_config.js
@@ -2,5 +2,8 @@ module.exports = {
description: 'resolves both windows and posix absolute paths',
pluginOptions: {
dynamicRequireTargets: ['fixtures/function/dynamic-require-absolute-paths/submodule.js']
+ },
+ options: {
+ external: ['path']
}
};
diff --git a/packages/commonjs/test/fixtures/function/late-entry-dependency/_config.js b/packages/commonjs/test/fixtures/function/late-entry-dependency/_config.js
index f37302ec0..263f81520 100644
--- a/packages/commonjs/test/fixtures/function/late-entry-dependency/_config.js
+++ b/packages/commonjs/test/fixtures/function/late-entry-dependency/_config.js
@@ -1,6 +1,7 @@
-const path = require('path');
const fs = require('fs');
+const path = require('path');
+
const ID_MAIN = path.join(__dirname, 'main.js');
const ID_OTHER = path.join(__dirname, 'other.js');
diff --git a/packages/commonjs/test/fixtures/function/pass-require-to-node-resolve/_config.js b/packages/commonjs/test/fixtures/function/pass-require-to-node-resolve/_config.js
new file mode 100644
index 000000000..3e1ac41b8
--- /dev/null
+++ b/packages/commonjs/test/fixtures/function/pass-require-to-node-resolve/_config.js
@@ -0,0 +1,25 @@
+const assert = require('assert');
+
+module.exports = {
+ description: 'notifies the node-resolve plugin if an id is imported via "require"',
+ options: {
+ plugins: [
+ {
+ name: 'node-resolve-mock',
+ resolveId(source, importer, { custom }) {
+ const { isRequire } = (custom && custom['node-resolve']) || {};
+ if (source === './foo') {
+ return this.resolve(isRequire ? './foo-required' : './foo-imported', importer);
+ }
+ if (source === './bar') {
+ return this.resolve(isRequire ? './bar-required' : './bar-imported', importer);
+ }
+ return null;
+ }
+ }
+ ]
+ },
+ async exports(exports) {
+ assert.deepStrictEqual(await exports, [{ default: 'imported' }, { default: 'imported' }]);
+ }
+};
diff --git a/packages/commonjs/test/fixtures/function/pass-require-to-node-resolve/bar-imported.js b/packages/commonjs/test/fixtures/function/pass-require-to-node-resolve/bar-imported.js
new file mode 100644
index 000000000..ef0b41a1c
--- /dev/null
+++ b/packages/commonjs/test/fixtures/function/pass-require-to-node-resolve/bar-imported.js
@@ -0,0 +1 @@
+export default 'imported';
diff --git a/packages/commonjs/test/fixtures/function/pass-require-to-node-resolve/bar-required.js b/packages/commonjs/test/fixtures/function/pass-require-to-node-resolve/bar-required.js
new file mode 100644
index 000000000..38dd80e26
--- /dev/null
+++ b/packages/commonjs/test/fixtures/function/pass-require-to-node-resolve/bar-required.js
@@ -0,0 +1 @@
+throw new Error('Should not be imported');
diff --git a/packages/commonjs/test/fixtures/function/pass-require-to-node-resolve/foo-imported.js b/packages/commonjs/test/fixtures/function/pass-require-to-node-resolve/foo-imported.js
new file mode 100644
index 000000000..ef0b41a1c
--- /dev/null
+++ b/packages/commonjs/test/fixtures/function/pass-require-to-node-resolve/foo-imported.js
@@ -0,0 +1 @@
+export default 'imported';
diff --git a/packages/commonjs/test/fixtures/function/pass-require-to-node-resolve/foo-required.js b/packages/commonjs/test/fixtures/function/pass-require-to-node-resolve/foo-required.js
new file mode 100644
index 000000000..3d7c93df0
--- /dev/null
+++ b/packages/commonjs/test/fixtures/function/pass-require-to-node-resolve/foo-required.js
@@ -0,0 +1 @@
+module.exports = 'required';
diff --git a/packages/commonjs/test/fixtures/function/pass-require-to-node-resolve/main.js b/packages/commonjs/test/fixtures/function/pass-require-to-node-resolve/main.js
new file mode 100644
index 000000000..237f561c9
--- /dev/null
+++ b/packages/commonjs/test/fixtures/function/pass-require-to-node-resolve/main.js
@@ -0,0 +1,7 @@
+import foo from './foo';
+import required from './requiring';
+
+t.is(foo, 'imported');
+t.is(required.foo, 'required');
+
+export default Promise.all([import('./bar'), required.barPromise]);
diff --git a/packages/commonjs/test/fixtures/function/pass-require-to-node-resolve/requiring.js b/packages/commonjs/test/fixtures/function/pass-require-to-node-resolve/requiring.js
new file mode 100644
index 000000000..fe5760a85
--- /dev/null
+++ b/packages/commonjs/test/fixtures/function/pass-require-to-node-resolve/requiring.js
@@ -0,0 +1,3 @@
+exports.foo = require('./foo');
+
+exports.barPromise = import('./bar');
diff --git a/packages/commonjs/test/fixtures/function/unresolved-dependencies/_config.js b/packages/commonjs/test/fixtures/function/unresolved-dependencies/_config.js
new file mode 100644
index 000000000..a7daf279e
--- /dev/null
+++ b/packages/commonjs/test/fixtures/function/unresolved-dependencies/_config.js
@@ -0,0 +1,21 @@
+const assert = require('assert');
+
+const warnings = [];
+
+module.exports = {
+ description: 'handles unresolved dependencies with the proper warning',
+ options: {
+ onwarn(warning) {
+ warnings.push(warning);
+ },
+ plugins: [
+ {
+ buildEnd() {
+ assert.strictEqual(warnings.length, 1);
+ assert.strictEqual(warnings[0].code, 'UNRESOLVED_IMPORT');
+ assert.strictEqual(warnings[0].source, 'path');
+ }
+ }
+ ]
+ }
+};
diff --git a/packages/commonjs/test/fixtures/function/unresolved-dependencies/main.js b/packages/commonjs/test/fixtures/function/unresolved-dependencies/main.js
new file mode 100644
index 000000000..a3a4f0074
--- /dev/null
+++ b/packages/commonjs/test/fixtures/function/unresolved-dependencies/main.js
@@ -0,0 +1,3 @@
+const path = require('path');
+
+t.is(typeof path.resolve, 'function');
diff --git a/packages/commonjs/test/fixtures/samples/dynamic-require-different-loader/submodule1.js b/packages/commonjs/test/fixtures/samples/dynamic-require-different-loader/submodule1.js
index 3156afbff..c72445277 100755
--- a/packages/commonjs/test/fixtures/samples/dynamic-require-different-loader/submodule1.js
+++ b/packages/commonjs/test/fixtures/samples/dynamic-require-different-loader/submodule1.js
@@ -1,2 +1,3 @@
const fn = require('./submodule2');
+
export default fn;
diff --git a/packages/commonjs/test/snapshots/function.js.md b/packages/commonjs/test/snapshots/function.js.md
index 5ea110f93..390a01e4f 100644
--- a/packages/commonjs/test/snapshots/function.js.md
+++ b/packages/commonjs/test/snapshots/function.js.md
@@ -4532,6 +4532,41 @@ Generated by [AVA](https://avajs.dev).
`,
}
+## pass-require-to-node-resolve
+
+> Snapshot 1
+
+ {
+ 'bar-imported-49e0dbcf.js': `'use strict';␊
+ ␊
+ var barImported = 'imported';␊
+ ␊
+ exports.default = barImported;␊
+ `,
+ 'main.js': `'use strict';␊
+ ␊
+ var foo = 'imported';␊
+ ␊
+ var fooRequired = 'required';␊
+ ␊
+ var foo$1 = fooRequired;␊
+ ␊
+ var barPromise = Promise.resolve().then(function () { return require('./bar-imported-49e0dbcf.js'); });␊
+ ␊
+ var requiring = {␊
+ foo: foo$1,␊
+ barPromise: barPromise␊
+ };␊
+ ␊
+ t.is(foo, 'imported');␊
+ t.is(requiring.foo, 'required');␊
+ ␊
+ var main = Promise.all([Promise.resolve().then(function () { return require('./bar-imported-49e0dbcf.js'); }), requiring.barPromise]);␊
+ ␊
+ module.exports = main;␊
+ `,
+ }
+
## react-apollo
> Snapshot 1
@@ -5550,3 +5585,26 @@ Generated by [AVA](https://avajs.dev).
t.is(foo, 1);␊
`,
}
+
+## unresolved-dependencies
+
+> Snapshot 1
+
+ {
+ 'main.js': `'use strict';␊
+ ␊
+ var path = require('path');␊
+ ␊
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }␊
+ ␊
+ var path__default = /*#__PURE__*/_interopDefaultLegacy(path);␊
+ ␊
+ t.is(typeof path__default['default'].resolve, 'function');␊
+ ␊
+ var main = {␊
+ ␊
+ };␊
+ ␊
+ module.exports = main;␊
+ `,
+ }
diff --git a/packages/commonjs/test/snapshots/function.js.snap b/packages/commonjs/test/snapshots/function.js.snap
index d4f280d77..379dd9208 100644
Binary files a/packages/commonjs/test/snapshots/function.js.snap and b/packages/commonjs/test/snapshots/function.js.snap differ
diff --git a/packages/commonjs/test/test.js b/packages/commonjs/test/test.js
index 17a8b6129..6e9971bae 100644
--- a/packages/commonjs/test/test.js
+++ b/packages/commonjs/test/test.js
@@ -278,7 +278,7 @@ test('typeof transforms: correct-scoping', async (t) => {
test('typeof transforms: protobuf', async (t) => {
const bundle = await rollup({
input: 'fixtures/samples/umd/protobuf.js',
- external: ['bytebuffer'],
+ external: ['bytebuffer', 'foo'],
plugins: [commonjs()]
});
@@ -316,7 +316,7 @@ test('deconflicts reserved keywords', async (t) => {
plugins: [commonjs()]
});
- const reservedProp = (await executeBundle(bundle, t)).exports.delete;
+ const reservedProp = (await executeBundle(bundle, t, { exports: 'named' })).exports.delete;
t.is(reservedProp, 'foo');
});
@@ -702,10 +702,7 @@ test('transforms the es file with a `commonjsRequire` and no `require`s', async
const code = await getCodeFromBundle(bundle);
- t.is(
- /commonjsRequire\(["']\.\/submodule\.js/.test(code),
- true
- );
+ t.is(/commonjsRequire\(["']\.\/submodule\.js/.test(code), true);
});
test('does not wrap commonjsRegister calls in createCommonjsModule', async (t) => {
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 901d68cc0..2a07aa0c0 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -8,7 +8,7 @@ importers:
'@ava/babel': 1.0.1
'@typescript-eslint/eslint-plugin': 3.7.1_fdf7ae5f472a827bd9d9601df74d9b89
'@typescript-eslint/parser': 3.7.1_typescript@3.9.7
- ava: 3.11.0
+ ava: 3.13.0
chalk: 4.1.0
codecov-lite: 1.0.3
del-cli: 3.0.1
@@ -18,7 +18,7 @@ importers:
husky: 4.2.5
lint-staged: 10.2.11
nyc: 15.1.0
- pnpm: 5.4.6
+ pnpm: 5.9.3
prettier: 2.0.5
prettier-plugin-package: 1.0.0_prettier@2.0.5
ts-node: 8.10.2_typescript@3.9.7
@@ -30,7 +30,7 @@ importers:
'@ava/babel': ^1.0.1
'@typescript-eslint/eslint-plugin': ^3.7.1
'@typescript-eslint/parser': ^3.7.1
- ava: ^3.11.0
+ ava: ^3.13.0
chalk: ^4.1.0
codecov-lite: ^1.0.3
conventional-commits-parser: ^3.1.0
@@ -41,7 +41,7 @@ importers:
husky: ^4.2.5
lint-staged: ^10.2.11
nyc: ^15.1.0
- pnpm: ^5.4.6
+ pnpm: ^5.9.3
prettier: ^2.0.5
prettier-plugin-package: ^1.0.0
semver: ^7.3.2
@@ -2000,12 +2000,12 @@ packages:
acorn: ^6.0.0 || ^7.0.0
resolution:
integrity: sha512-HiUX/+K2YpkpJ+SzBffkM/AQ2YE03S0U1kjTLVpoJdhZMOWy8qvXVN9JdLqv2QsaQ6MPYQIuNmwD8zOiYUofLQ==
- /acorn-walk/7.2.0:
+ /acorn-walk/8.0.0:
dev: true
engines:
node: '>=0.4.0'
resolution:
- integrity: sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==
+ integrity: sha512-oZRad/3SMOI/pxbbmqyurIx7jHw1wZDcR9G44L8pUVFEomX/0dH89SrM1KaDXuv1NpzAXz6Op/Xu/Qd5XXzdEA==
/acorn/6.4.1:
engines:
node: '>=0.4.0'
@@ -2019,6 +2019,13 @@ packages:
hasBin: true
resolution:
integrity: sha512-tLc0wSnatxAQHVHUapaHdz72pi9KUyHjq5KyHjGg9Y8Ifdc79pTh2XvI6I1/chZbnM7QtNKzh66ooDogPZSleA==
+ /acorn/8.0.4:
+ dev: true
+ engines:
+ node: '>=0.4.0'
+ hasBin: true
+ resolution:
+ integrity: sha512-XNP0PqF1XD19ZlLKvB7cMmnZswW4C/03pRHgirB30uSJTaS3A3V1/P4sS3HPvFmjoriPCJQs+JDSbm4bL1TxGQ==
/aggregate-error/3.0.1:
dependencies:
clean-stack: 2.2.0
@@ -2028,6 +2035,15 @@ packages:
node: '>=8'
resolution:
integrity: sha512-quoaXsZ9/BLNae5yiNoUz+Nhkwz83GhWwtYFglcjEQB2NDHCIpApbqXxIFnm4Pq/Nvhrsq5sYJFyohrrxnTGAA==
+ /aggregate-error/3.1.0:
+ dependencies:
+ clean-stack: 2.2.0
+ indent-string: 4.0.0
+ dev: true
+ engines:
+ node: '>=8'
+ resolution:
+ integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==
/ajv/6.12.3:
dependencies:
fast-deep-equal: 3.1.3
@@ -2107,6 +2123,14 @@ packages:
node: '>=8'
resolution:
integrity: sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==
+ /ansi-styles/4.3.0:
+ dependencies:
+ color-convert: 2.0.1
+ dev: true
+ engines:
+ node: '>=8'
+ resolution:
+ integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==
/any-promise/1.3.0:
dev: false
resolution:
@@ -2199,17 +2223,17 @@ packages:
node: '>=8'
resolution:
integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==
- /ava/3.11.0:
+ /ava/3.13.0:
dependencies:
'@concordance/react': 2.0.0
- acorn: 7.3.1
- acorn-walk: 7.2.0
- ansi-styles: 4.2.1
+ acorn: 8.0.4
+ acorn-walk: 8.0.0
+ ansi-styles: 4.3.0
arrgv: 1.0.2
arrify: 2.0.1
callsites: 3.1.0
chalk: 4.1.0
- chokidar: 3.4.1
+ chokidar: 3.4.3
chunkd: 2.0.1
ci-info: 2.0.0
ci-parallel-vars: 1.0.1
@@ -2218,12 +2242,12 @@ packages:
cli-truncate: 2.1.0
code-excerpt: 3.0.0
common-path-prefix: 3.0.0
- concordance: 5.0.0
+ concordance: 5.0.1
convert-source-map: 1.7.0
currently-unhandled: 0.4.1
- debug: 4.1.1
- del: 5.1.0
- emittery: 0.7.1
+ debug: 4.2.0
+ del: 6.0.0
+ emittery: 0.7.2
equal-length: 1.0.1
figures: 3.2.0
globby: 11.0.1
@@ -2231,19 +2255,20 @@ packages:
import-local: 3.0.2
indent-string: 4.0.0
is-error: 2.2.2
- is-plain-object: 4.1.1
+ is-plain-object: 5.0.0
is-promise: 4.0.0
- lodash: 4.17.19
+ lodash: 4.17.20
matcher: 3.0.0
md5-hex: 3.0.1
- mem: 6.1.0
+ mem: 6.1.1
ms: 2.1.2
- ora: 4.0.5
+ ora: 5.1.0
+ p-event: 4.2.0
p-map: 4.0.0
picomatch: 2.2.2
pkg-conf: 3.1.0
plur: 4.0.0
- pretty-ms: 7.0.0
+ pretty-ms: 7.0.1
read-pkg: 5.2.0
resolve-cwd: 3.0.0
slash: 3.0.0
@@ -2253,15 +2278,15 @@ packages:
supertap: 1.0.0
temp-dir: 2.0.0
trim-off-newlines: 1.0.1
- update-notifier: 4.1.0
+ update-notifier: 4.1.3
write-file-atomic: 3.0.3
- yargs: 15.4.1
+ yargs: 16.1.0
dev: true
engines:
node: '>=10.18.0 <11 || >=12.14.0 <12.17.0 || >=12.17.0 <13 || >=14.0.0'
hasBin: true
resolution:
- integrity: sha512-y5U8BGeSRjs/OypsC4CJxr+L1KtLKU5kUyHr5hcghXn7HNr2f4LE/4gvl0Q5lNkLX1obdRW1oODphNdU/glwmA==
+ integrity: sha512-yzky+gark5PdsFFlZ4CnBVxm/OgBUWtn9vAsSSnuooVJNOk5ER17HJXVeUzy63LIt06Zy34oThcn+2ZqgMs7SA==
/babel-plugin-dynamic-import-node/2.3.3:
dependencies:
object.assign: 4.1.0
@@ -2293,10 +2318,10 @@ packages:
node: '>=8'
resolution:
integrity: sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ==
- /blueimp-md5/2.17.0:
+ /blueimp-md5/2.18.0:
dev: true
resolution:
- integrity: sha512-x5PKJHY5rHQYaADj6NwPUR2QRCUVSggPzrUKkeENpj871o9l9IefJbO2jkT5UvYykeOK9dx0VmkIo6dZ+vThYw==
+ integrity: sha512-vE52okJvzsVWhcgUHOv+69OG3Mdg151xyn41aVQN/5W5S+S43qZhxECtYLAEHMSFWX6Mv5IZrzj3T5+JqXfj5Q==
/boolbase/1.0.0:
dev: true
resolution:
@@ -2306,7 +2331,7 @@ packages:
ansi-align: 3.0.0
camelcase: 5.3.1
chalk: 3.0.0
- cli-boxes: 2.2.0
+ cli-boxes: 2.2.1
string-width: 4.2.0
term-size: 2.2.0
type-fest: 0.8.1
@@ -2374,7 +2399,7 @@ packages:
/cacheable-request/6.1.0:
dependencies:
clone-response: 1.0.2
- get-stream: 5.1.0
+ get-stream: 5.2.0
http-cache-semantics: 4.1.0
keyv: 3.1.0
lowercase-keys: 2.0.0
@@ -2509,8 +2534,8 @@ packages:
integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==
/chalk/3.0.0:
dependencies:
- ansi-styles: 4.2.1
- supports-color: 7.1.0
+ ansi-styles: 4.3.0
+ supports-color: 7.2.0
dev: true
engines:
node: '>=8'
@@ -2529,7 +2554,7 @@ packages:
dev: true
resolution:
integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==
- /chokidar/3.4.1:
+ /chokidar/3.4.3:
dependencies:
anymatch: 3.1.1
braces: 3.0.2
@@ -2537,14 +2562,14 @@ packages:
is-binary-path: 2.1.0
is-glob: 4.0.1
normalize-path: 3.0.0
- readdirp: 3.4.0
+ readdirp: 3.5.0
dev: true
engines:
node: '>= 8.10.0'
optionalDependencies:
fsevents: 2.1.3
resolution:
- integrity: sha512-TQTJyr2stihpC4Sya9hs2Xh+O2wf+igjL36Y75xx2WdHuiICcn/XJza46Jwt0eT5hVpQOzo3FpY3cj3RVYLX0g==
+ integrity: sha512-DtM3g7juCXQxFVSNPNByEC2+NImtBuxQQvWlHunpJIS5Ocr0lG306cC7FCi7cEA0fzmybPUIl4txBIobk1gGOQ==
/chunkd/2.0.1:
dev: true
resolution:
@@ -2569,12 +2594,12 @@ packages:
node: '>=0.10.0'
resolution:
integrity: sha1-Y/sRDcLOGoTcIfbZM0h20BCui2g=
- /cli-boxes/2.2.0:
+ /cli-boxes/2.2.1:
dev: true
engines:
node: '>=6'
resolution:
- integrity: sha512-gpaBrMAizVEANOpfZp/EEUixTXDyGt7DFzdK5hU+UbWt/J0lB0w20ncZj59Z9a93xHb9u12zF5BS6i9RKbtg4w==
+ integrity: sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==
/cli-cursor/3.1.0:
dependencies:
restore-cursor: 3.1.0
@@ -2583,12 +2608,12 @@ packages:
node: '>=8'
resolution:
integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==
- /cli-spinners/2.4.0:
+ /cli-spinners/2.5.0:
dev: true
engines:
node: '>=6'
resolution:
- integrity: sha512-sJAofoarcm76ZGpuooaO0eDy8saEy+YoZBLjC4h8srt4jeBnkYeOgqxgsJQTpyt2LjI5PTfLJHSL+41Yu4fEJA==
+ integrity: sha512-PC+AmIuK04E6aeSs/pUccSujsTzBhu4HzC2dL+CfJB/Jcc2qTRbEwZQDfIUpt2Xl8BodYBEq8w4fc0kU2I9DjQ==
/cli-truncate/2.1.0:
dependencies:
slice-ansi: 3.0.0
@@ -2612,6 +2637,14 @@ packages:
dev: true
resolution:
integrity: sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==
+ /cliui/7.0.3:
+ dependencies:
+ string-width: 4.2.0
+ strip-ansi: 6.0.0
+ wrap-ansi: 7.0.0
+ dev: true
+ resolution:
+ integrity: sha512-Gj3QHTkVMPKqwP3f7B4KPkBZRMR9r4rfi5bXFpg1a+Svvj8l7q5CnkBkVQzfxT5DFSsGk2+PascOgL0JYkL2kw==
/clone-response/1.0.2:
dependencies:
mimic-response: 1.0.1
@@ -2739,24 +2772,24 @@ packages:
node: '>=6.12.3 <7 || >=8.9.4 <9 || >=10.0.0'
resolution:
integrity: sha512-l0RFuB8RLfCS0Pt2Id39/oCPykE01pyxgAFypWTlaGRgvLkZrtczZ8atEHpTeEIW+zYWXTBuA9cCSeEOScxReQ==
- /concordance/5.0.0:
+ /concordance/5.0.1:
dependencies:
date-time: 3.1.0
esutils: 2.0.3
fast-diff: 1.2.0
js-string-escape: 1.0.1
- lodash: 4.17.19
+ lodash: 4.17.20
md5-hex: 3.0.1
semver: 7.3.2
well-known-symbols: 2.0.0
dev: true
engines:
- node: '>=10.18.0 <11 || >=12.14.0 <13 || >=13.5.0'
+ node: '>=10.18.0 <11 || >=12.14.0 <13 || >=14'
resolution:
- integrity: sha512-stOCz9ffg0+rytwTaL2njUOIyMfANwfwmqc9Dr4vTUS/x/KkVFlWx9Zlzu6tHYtjKxxaCF/cEAZgPDac+n35sg==
+ integrity: sha512-TbNtInKVElgEBnJ1v2Xg+MFX2lvFLbmlv3EuSC5wTfCwpB8kC3w3mffF6cKuUhkn475Ym1f1I4qmuXzx2+uXpw==
/configstore/5.0.1:
dependencies:
- dot-prop: 5.2.0
+ dot-prop: 5.3.0
graceful-fs: 4.2.4
make-dir: 3.1.0
unique-string: 2.0.0
@@ -3077,6 +3110,19 @@ packages:
dev: true
resolution:
integrity: sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==
+ /debug/4.2.0:
+ dependencies:
+ ms: 2.1.2
+ dev: true
+ engines:
+ node: '>=6.0'
+ peerDependencies:
+ supports-color: '*'
+ peerDependenciesMeta:
+ supports-color:
+ optional: true
+ resolution:
+ integrity: sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==
/decamelize-keys/1.1.0:
dependencies:
decamelize: 1.2.0
@@ -3197,6 +3243,21 @@ packages:
node: '>=8'
resolution:
integrity: sha512-wH9xOVHnczo9jN2IW68BabcecVPxacIA3g/7z6vhSU/4stOKQzeCRK0yD0A24WiAAUJmmVpWqrERcTxnLo3AnA==
+ /del/6.0.0:
+ dependencies:
+ globby: 11.0.1
+ graceful-fs: 4.2.4
+ is-glob: 4.0.1
+ is-path-cwd: 2.2.0
+ is-path-inside: 3.0.2
+ p-map: 4.0.0
+ rimraf: 3.0.2
+ slash: 3.0.0
+ dev: true
+ engines:
+ node: '>=10'
+ resolution:
+ integrity: sha512-1shh9DQ23L16oXSZKB2JxpL7iMy2E0S9d517ptA1P8iw0alkPtQcrKH7ru31rYtKwF499HkTu+DRzq3TCKDFRQ==
/detect-indent/5.0.0:
dev: false
engines:
@@ -3263,6 +3324,14 @@ packages:
node: '>=8'
resolution:
integrity: sha512-uEUyaDKoSQ1M4Oq8l45hSE26SnTxL6snNnqvK/VWx5wJhmff5z0FUVJDKDanor/6w3kzE3i7XZOk+7wC0EXr1A==
+ /dot-prop/5.3.0:
+ dependencies:
+ is-obj: 2.0.0
+ dev: true
+ engines:
+ node: '>=8'
+ resolution:
+ integrity: sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==
/duplexer3/0.1.4:
dev: true
resolution:
@@ -3271,12 +3340,12 @@ packages:
dev: true
resolution:
integrity: sha512-cN4lkjNRuTG8rtAqTOVgwpecEC2kbKA04PG6YijcKGHK/kD0xLjiqExcAOmLUwtXZRF8cBeam2I0VZcih919Ug==
- /emittery/0.7.1:
+ /emittery/0.7.2:
dev: true
engines:
node: '>=10'
resolution:
- integrity: sha512-d34LN4L6h18Bzz9xpoku2nPwKxCPlPMr3EEKTkoEBi+1/+b0lcRkRJ1UVyyZaKNeqGR3swcGl6s390DNO4YVgQ==
+ integrity: sha512-A8OG5SR/ij3SsJdWDJdkkSYUjQdCUx6APQXem0SaEePBSRg4eymGYwBkKo1Y6DU+af/Jn2dBQqDBvjnr9Vi8nQ==
/emoji-regex/7.0.3:
dev: true
resolution:
@@ -3392,6 +3461,12 @@ packages:
node: '>=6'
resolution:
integrity: sha512-gPYAU37hYCUhW5euPeR+Y74F7BL+IBsV93j5cvGriSaD1aG6MGsqsV1yamRdrWrb2j3aiZvb0X+UBOWpx3JWtQ==
+ /escalade/3.1.1:
+ dev: true
+ engines:
+ node: '>=6'
+ resolution:
+ integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==
/escape-goat/2.1.1:
dev: true
engines:
@@ -3859,6 +3934,14 @@ packages:
node: '>=8'
resolution:
integrity: sha512-EXr1FOzrzTfGeL0gQdeFEvOMm2mzMOglyiOXSTpPC+iAjAKftbr3jpCMWynogwYnM+eSj9sHGc6wjIcDvYiygw==
+ /get-stream/5.2.0:
+ dependencies:
+ pump: 3.0.0
+ dev: true
+ engines:
+ node: '>=8'
+ resolution:
+ integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==
/glob-parent/5.1.1:
dependencies:
is-glob: 4.0.1
@@ -4399,12 +4482,12 @@ packages:
node: '>=0.10.0'
resolution:
integrity: sha512-Xnpx182SBMrr/aBik8y+GuR4U1L9FqMSojwDQwPMmxyC6bvEqly9UBCxhauBF5vNh2gwWJNX6oDV7O+OM4z34g==
- /is-plain-object/4.1.1:
+ /is-plain-object/5.0.0:
dev: true
engines:
node: '>=0.10.0'
resolution:
- integrity: sha512-5Aw8LLVsDlZsETVMhoMXzqsXwQqr/0vlnBYzIXJbYo2F4yYlhLHs+Ez7Bod7IIQKWkJbJfxrWD7pA1Dw1TKrwA==
+ integrity: sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==
/is-promise/4.0.0:
dev: true
resolution:
@@ -4605,8 +4688,12 @@ packages:
resolution:
integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==
/json-parse-better-errors/1.0.2:
+ dev: true
resolution:
integrity: sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==
+ /json-parse-even-better-errors/2.3.1:
+ resolution:
+ integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==
/json-schema-traverse/0.4.1:
dev: true
resolution:
@@ -4828,14 +4915,10 @@ packages:
/lodash/4.17.19:
resolution:
integrity: sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==
- /log-symbols/3.0.0:
- dependencies:
- chalk: 2.4.2
+ /lodash/4.17.20:
dev: true
- engines:
- node: '>=8'
resolution:
- integrity: sha512-dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ==
+ integrity: sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==
/log-symbols/4.0.0:
dependencies:
chalk: 4.1.0
@@ -4944,7 +5027,7 @@ packages:
integrity: sha1-0FiOnxx0lUSS7NJKwKxs6ZfZLjM=
/md5-hex/3.0.1:
dependencies:
- blueimp-md5: 2.17.0
+ blueimp-md5: 2.18.0
dev: true
engines:
node: '>=8'
@@ -4962,7 +5045,7 @@ packages:
dev: true
resolution:
integrity: sha512-rQvjv71olwNHgiTbfPZFkJtjNMciWgswYeciZhtvWLO8bmX3TnhyA62I6sTWOyZssWHJJjY6/KiWwqQsWWsqOA==
- /mem/6.1.0:
+ /mem/6.1.1:
dependencies:
map-age-cleaner: 0.1.3
mimic-fn: 3.1.0
@@ -4970,7 +5053,7 @@ packages:
engines:
node: '>=8'
resolution:
- integrity: sha512-RlbnLQgRHk5lwqTtpEkBTQ2ll/CG/iB+J4Hy2Wh97PjgZgXgWJWrFF+XXujh3UUVLvR4OOTgZzcWMMwnehlEUg==
+ integrity: sha512-Ci6bIfq/UgcxPTYa8dQQ5FY3BzKkT894bwXWXxC/zqs0XgMO2cT20CGkOqda7gZNkmK5VP4x89IGZ6K7hfbn3Q==
/meow/6.1.1:
dependencies:
'@types/minimist': 1.2.0
@@ -5298,6 +5381,14 @@ packages:
node: '>=6'
resolution:
integrity: sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q==
+ /onetime/5.1.2:
+ dependencies:
+ mimic-fn: 2.1.0
+ dev: true
+ engines:
+ node: '>=6'
+ resolution:
+ integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==
/opencollective-postinstall/2.0.3:
dev: true
hasBin: true
@@ -5316,21 +5407,21 @@ packages:
node: '>= 0.8.0'
resolution:
integrity: sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==
- /ora/4.0.5:
+ /ora/5.1.0:
dependencies:
- chalk: 3.0.0
+ chalk: 4.1.0
cli-cursor: 3.1.0
- cli-spinners: 2.4.0
+ cli-spinners: 2.5.0
is-interactive: 1.0.0
- log-symbols: 3.0.0
+ log-symbols: 4.0.0
mute-stream: 0.0.8
strip-ansi: 6.0.0
wcwidth: 1.0.1
dev: true
engines:
- node: '>=8'
+ node: '>=10'
resolution:
- integrity: sha512-jCDgm9DqvRcNIAEv2wZPrh7E5PcQiDUnbnWbAfu4NGAE2ZNqPFbDixmWldy1YG2QfLeQhuiu6/h5VRrk6cG50w==
+ integrity: sha512-9tXIMPvjZ7hPTbk8DFq1f7Kow/HU/pQYB60JbNq+QnGwcyhWVZaQ4hM9zQDEsPxw/muLpgiHSaumUZxCAmod/w==
/os-tmpdir/1.0.2:
dev: true
engines:
@@ -5417,7 +5508,7 @@ packages:
integrity: sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==
/p-map/4.0.0:
dependencies:
- aggregate-error: 3.0.1
+ aggregate-error: 3.1.0
dev: true
engines:
node: '>=10'
@@ -5504,10 +5595,21 @@ packages:
error-ex: 1.3.2
json-parse-better-errors: 1.0.2
lines-and-columns: 1.1.6
+ dev: true
engines:
node: '>=8'
resolution:
integrity: sha512-ztoZ4/DYeXQq4E21v169sC8qWINGpcosGv9XhTDvg9/hWvx/zrFkc9BiWxR58OJLHGk28j5BL0SDLeV2WmFZlQ==
+ /parse-json/5.1.0:
+ dependencies:
+ '@babel/code-frame': 7.10.4
+ error-ex: 1.3.2
+ json-parse-even-better-errors: 2.3.1
+ lines-and-columns: 1.1.6
+ engines:
+ node: '>=8'
+ resolution:
+ integrity: sha512-+mi/lmVVNKFNVyLXV31ERiy2CY5E1/F6QtJFEzoChPRwwngMNXRDQ9GJ5WdE2Z2P4AujsOi0/+2qHID68KwfIQ==
/parse-ms/2.1.0:
dev: true
engines:
@@ -5633,13 +5735,13 @@ packages:
node: '>=10'
resolution:
integrity: sha512-4UGewrYgqDFw9vV6zNV+ADmPAUAfJPKtGvb/VdpQAx25X5f3xXdGdyOEVFwkl8Hl/tl7+xbeHqSEM+D5/TirUg==
- /pnpm/5.4.6:
+ /pnpm/5.9.3:
dev: true
engines:
- node: '>=10.13'
+ node: '>=10.16'
hasBin: true
resolution:
- integrity: sha512-UZXIBwIlYkT+YbW8QjobVoppYT/hVphu1eu+ed60mGf+Ulz+suAR21zunWUGoETbibvetIkj8HLebsmz5tow8A==
+ integrity: sha512-MyN/jR/WfM7SPnnrkaEoQ2+cOhoSAnhzJ2sDOF7yZKyjh0sYuvGcijeZYbyWJ0r5C0vtBPV5SRtiLaHvwYWZBg==
/postcss-calc/7.0.2:
dependencies:
postcss: 7.0.32
@@ -6050,14 +6152,14 @@ packages:
hasBin: true
resolution:
integrity: sha512-7PtVymN48hGcO4fGjybyBSIWDsLU4H4XlvOHfq91pz9kkGlonzwTfYkaIEwiRg/dAJF9YlbsduBAgtYLi+8cFg==
- /pretty-ms/7.0.0:
+ /pretty-ms/7.0.1:
dependencies:
parse-ms: 2.1.0
dev: true
engines:
node: '>=10'
resolution:
- integrity: sha512-J3aPWiC5e9ZeZFuSeBraGxSkGMOvulSWsxDByOcbD1Pr75YL3LSNIKIb52WXbCLE1sS5s4inBBbryjF4Y05Ceg==
+ integrity: sha512-973driJZvxiGOQ5ONsFhOF/DtzPMOMtgC11kCpUrPGMTgqp2q/1gwzCquocrN33is0VZ5GFHXZYMM9l6h67v2Q==
/process-nextick-args/2.0.1:
dev: false
resolution:
@@ -6157,7 +6259,7 @@ packages:
dependencies:
'@types/normalize-package-data': 2.4.0
normalize-package-data: 2.5.0
- parse-json: 5.0.1
+ parse-json: 5.1.0
type-fest: 0.6.0
engines:
node: '>=8'
@@ -6185,14 +6287,14 @@ packages:
node: '>= 6'
resolution:
integrity: sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==
- /readdirp/3.4.0:
+ /readdirp/3.5.0:
dependencies:
picomatch: 2.2.2
dev: true
engines:
node: '>=8.10.0'
resolution:
- integrity: sha512-0xe001vZBnJEK+uKcj8qOhyAKPzIT+gStxWr3LCB0DwcXR5NZJ3IaC+yGnHCYzB/S7ov3m3EEbZI2zeNvX+hGQ==
+ integrity: sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==
/rechoir/0.6.2:
dependencies:
resolve: 1.17.0
@@ -6367,7 +6469,7 @@ packages:
integrity: sha512-xH48u3FTB9VsZw7R+vvgaKeLKzT6jOogbQhEe/jewwnZgzPcnyWui2Av6JpoYZF/91uueC+lqhWqeURw5/qhCw==
/restore-cursor/3.1.0:
dependencies:
- onetime: 5.1.0
+ onetime: 5.1.2
signal-exit: 3.0.3
dev: true
engines:
@@ -6621,7 +6723,7 @@ packages:
integrity: sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==
/slice-ansi/3.0.0:
dependencies:
- ansi-styles: 4.2.1
+ ansi-styles: 4.3.0
astral-regex: 2.0.0
is-fullwidth-code-point: 3.0.0
dev: true
@@ -6691,7 +6793,7 @@ packages:
/spdx-correct/3.1.1:
dependencies:
spdx-expression-parse: 3.0.1
- spdx-license-ids: 3.0.5
+ spdx-license-ids: 3.0.6
resolution:
integrity: sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==
/spdx-exceptions/2.3.0:
@@ -6700,12 +6802,12 @@ packages:
/spdx-expression-parse/3.0.1:
dependencies:
spdx-exceptions: 2.3.0
- spdx-license-ids: 3.0.5
+ spdx-license-ids: 3.0.6
resolution:
integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==
- /spdx-license-ids/3.0.5:
+ /spdx-license-ids/3.0.6:
resolution:
- integrity: sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q==
+ integrity: sha512-+orQK83kyMva3WyPf59k1+Y525csj5JejicWut55zeTWANuN17qSiSLUXWtzHeNWORSvT7GLDJ/E/XiIWoXBTw==
/split2/2.2.0:
dependencies:
through2: 2.0.5
@@ -6951,6 +7053,14 @@ packages:
node: '>=8'
resolution:
integrity: sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==
+ /supports-color/7.2.0:
+ dependencies:
+ has-flag: 4.0.0
+ dev: true
+ engines:
+ node: '>=8'
+ resolution:
+ integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==
/svgo/1.3.2:
dependencies:
chalk: 2.4.2
@@ -7269,7 +7379,7 @@ packages:
dev: true
resolution:
integrity: sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ=
- /update-notifier/4.1.0:
+ /update-notifier/4.1.3:
dependencies:
boxen: 4.2.0
chalk: 3.0.0
@@ -7288,7 +7398,7 @@ packages:
engines:
node: '>=8'
resolution:
- integrity: sha512-w3doE1qtI0/ZmgeoDoARmI5fjDoT93IfKgEGqm26dGUOh8oNpaSTsGNdYRN/SjOuo10jcJGwkEL3mroKzktkew==
+ integrity: sha512-Yld6Z0RyCYGB6ckIjffGOSOmHXj1gMeE7aROz4MG+XMkmixBX4jUngrGXNYz7wPKBmtoD4MnBa2Anu7RSKht/A==
/uri-js/4.2.2:
dependencies:
punycode: 2.1.1
@@ -7395,6 +7505,16 @@ packages:
node: '>=8'
resolution:
integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==
+ /wrap-ansi/7.0.0:
+ dependencies:
+ ansi-styles: 4.3.0
+ string-width: 4.2.0
+ strip-ansi: 6.0.0
+ dev: true
+ engines:
+ node: '>=10'
+ resolution:
+ integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==
/wrappy/1.0.2:
resolution:
integrity: sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=
@@ -7461,6 +7581,12 @@ packages:
dev: true
resolution:
integrity: sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==
+ /y18n/5.0.4:
+ dev: true
+ engines:
+ node: '>=10'
+ resolution:
+ integrity: sha512-deLOfD+RvFgrpAmSZgfGdWYE+OKyHcVHaRQ7NphG/63scpRvTHHeQMAxGGvaLVGJ+HYVcCXlzcTK0ZehFf+eHQ==
/yaml/1.10.0:
dev: true
engines:
@@ -7475,6 +7601,12 @@ packages:
node: '>=6'
resolution:
integrity: sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==
+ /yargs-parser/20.2.3:
+ dev: true
+ engines:
+ node: '>=10'
+ resolution:
+ integrity: sha512-emOFRT9WVHw03QSvN5qor9QQT9+sw5vwxfYweivSMHTcAXPefwVae2FjO7JJjj8hCE4CzPOPeFM83VwT29HCww==
/yargs/15.4.1:
dependencies:
cliui: 6.0.0
@@ -7493,6 +7625,20 @@ packages:
node: '>=8'
resolution:
integrity: sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==
+ /yargs/16.1.0:
+ dependencies:
+ cliui: 7.0.3
+ escalade: 3.1.1
+ get-caller-file: 2.0.5
+ require-directory: 2.1.1
+ string-width: 4.2.0
+ y18n: 5.0.4
+ yargs-parser: 20.2.3
+ dev: true
+ engines:
+ node: '>=10'
+ resolution:
+ integrity: sha512-upWFJOmDdHN0syLuESuvXDmrRcWd1QafJolHskzaw79uZa7/x53gxQKiR07W59GWY1tFhhU/Th9DrtSfpS782g==
/yn/3.1.1:
dev: true
engines: