From 871bfa06b8818f94efd9dcae3f34b0b7e3ee73de Mon Sep 17 00:00:00 2001 From: Lukas Taegert-Atkinson Date: Mon, 5 Aug 2019 16:56:50 +0200 Subject: [PATCH] Switch to a code-splitting build and update dependencies (#3020) * Switch to a code-splitting build and update dependencies * Fix case where default exports were not properly deconflicted against chunk names --- .gitignore | 2 - {bin/src => cli}/help.md | 0 {bin/src => cli}/index.ts | 2 +- {bin/src => cli}/logging.ts | 4 +- {bin/src => cli}/run/batchWarnings.ts | 4 +- {bin/src => cli}/run/build.ts | 18 +- {bin/src => cli}/run/index.ts | 6 +- {bin/src => cli}/run/loadConfigFile.ts | 8 +- {bin/src => cli}/run/resetScreen.ts | 0 {bin/src => cli}/run/timings.ts | 2 +- {bin/src => cli}/run/watch.ts | 22 +- {bin/src => cli}/sourceMappingUrl.ts | 0 package-lock.json | 475 ++++++++++++------ package.json | 36 +- rollup.config.js | 172 +++---- src/ast/variables/ExportDefaultVariable.ts | 11 +- src/watch/index.ts | 2 +- .../chunk-variable-name-conflict/_config.js | 6 + .../_expected/amd/generated-chunk.js | 9 + .../_expected/amd/main1.js | 5 + .../_expected/amd/main2.js | 6 + .../_expected/cjs/generated-chunk.js | 7 + .../_expected/cjs/main1.js | 5 + .../_expected/cjs/main2.js | 6 + .../_expected/es/generated-chunk.js | 4 + .../_expected/es/main1.js | 3 + .../_expected/es/main2.js | 4 + .../_expected/system/generated-chunk.js | 11 + .../_expected/system/main1.js | 15 + .../_expected/system/main2.js | 15 + .../chunk-variable-name-conflict/dep.js | 2 + .../chunk-variable-name-conflict/main1.js | 2 + .../chunk-variable-name-conflict/main2.js | 3 + test/cli/index.js | 3 +- tsconfig.json | 2 +- 35 files changed, 579 insertions(+), 293 deletions(-) rename {bin/src => cli}/help.md (100%) rename {bin/src => cli}/index.ts (89%) rename {bin/src => cli}/logging.ts (89%) rename {bin/src => cli}/run/batchWarnings.ts (98%) rename {bin/src => cli}/run/build.ts (89%) rename {bin/src => cli}/run/index.ts (93%) rename {bin/src => cli}/run/loadConfigFile.ts (89%) rename {bin/src => cli}/run/resetScreen.ts (100%) rename {bin/src => cli}/run/timings.ts (87%) rename {bin/src => cli}/run/watch.ts (91%) rename {bin/src => cli}/sourceMappingUrl.ts (100%) create mode 100644 test/chunking-form/samples/chunk-variable-name-conflict/_config.js create mode 100644 test/chunking-form/samples/chunk-variable-name-conflict/_expected/amd/generated-chunk.js create mode 100644 test/chunking-form/samples/chunk-variable-name-conflict/_expected/amd/main1.js create mode 100644 test/chunking-form/samples/chunk-variable-name-conflict/_expected/amd/main2.js create mode 100644 test/chunking-form/samples/chunk-variable-name-conflict/_expected/cjs/generated-chunk.js create mode 100644 test/chunking-form/samples/chunk-variable-name-conflict/_expected/cjs/main1.js create mode 100644 test/chunking-form/samples/chunk-variable-name-conflict/_expected/cjs/main2.js create mode 100644 test/chunking-form/samples/chunk-variable-name-conflict/_expected/es/generated-chunk.js create mode 100644 test/chunking-form/samples/chunk-variable-name-conflict/_expected/es/main1.js create mode 100644 test/chunking-form/samples/chunk-variable-name-conflict/_expected/es/main2.js create mode 100644 test/chunking-form/samples/chunk-variable-name-conflict/_expected/system/generated-chunk.js create mode 100644 test/chunking-form/samples/chunk-variable-name-conflict/_expected/system/main1.js create mode 100644 test/chunking-form/samples/chunk-variable-name-conflict/_expected/system/main2.js create mode 100644 test/chunking-form/samples/chunk-variable-name-conflict/dep.js create mode 100644 test/chunking-form/samples/chunk-variable-name-conflict/main1.js create mode 100644 test/chunking-form/samples/chunk-variable-name-conflict/main2.js diff --git a/.gitignore b/.gitignore index 71d99ce63e2..988fb26eb0a 100644 --- a/.gitignore +++ b/.gitignore @@ -7,8 +7,6 @@ _actual.js coverage .commithash .idea -bin/rollup -bin/rollup.map test/_tmp test/hooks/tmp test/tmp diff --git a/bin/src/help.md b/cli/help.md similarity index 100% rename from bin/src/help.md rename to cli/help.md diff --git a/bin/src/index.ts b/cli/index.ts similarity index 89% rename from bin/src/index.ts rename to cli/index.ts index 95f26a55998..e54fcb04502 100644 --- a/bin/src/index.ts +++ b/cli/index.ts @@ -1,7 +1,7 @@ import help from 'help.md'; import minimist from 'minimist'; import { version } from 'package.json'; -import { commandAliases } from '../../src/utils/mergeOptions'; +import { commandAliases } from '../src/utils/mergeOptions'; import run from './run/index'; const command = minimist(process.argv.slice(2), { diff --git a/bin/src/logging.ts b/cli/logging.ts similarity index 89% rename from bin/src/logging.ts rename to cli/logging.ts index 04c22192584..3c428240856 100644 --- a/bin/src/logging.ts +++ b/cli/logging.ts @@ -1,6 +1,6 @@ import tc from 'turbocolor'; -import { RollupError } from '../../src/rollup/types'; -import relativeId from '../../src/utils/relativeId'; +import { RollupError } from '../src/rollup/types'; +import relativeId from '../src/utils/relativeId'; // log to stderr to keep `rollup main.js > bundle.js` from breaking export const stderr = console.error.bind(console); diff --git a/bin/src/run/batchWarnings.ts b/cli/run/batchWarnings.ts similarity index 98% rename from bin/src/run/batchWarnings.ts rename to cli/run/batchWarnings.ts index 463ec8e69d0..bc45b2f7eab 100644 --- a/bin/src/run/batchWarnings.ts +++ b/cli/run/batchWarnings.ts @@ -1,6 +1,6 @@ import tc from 'turbocolor'; -import { RollupWarning } from '../../../src/rollup/types'; -import relativeId from '../../../src/utils/relativeId'; +import { RollupWarning } from '../../src/rollup/types'; +import relativeId from '../../src/utils/relativeId'; import { stderr } from '../logging'; export interface BatchWarnings { diff --git a/bin/src/run/build.ts b/cli/run/build.ts similarity index 89% rename from bin/src/run/build.ts rename to cli/run/build.ts index 274194c909f..cc8b01d9985 100644 --- a/bin/src/run/build.ts +++ b/cli/run/build.ts @@ -1,15 +1,8 @@ import ms from 'pretty-ms'; -import * as rollup from 'rollup'; import tc from 'turbocolor'; -import { - InputOptions, - OutputAsset, - OutputChunk, - OutputOptions, - RollupBuild, - SourceMap -} from '../../../src/rollup/types'; -import relativeId from '../../../src/utils/relativeId'; +import * as rollup from '../../src/node-entry'; +import { InputOptions, OutputAsset, OutputChunk, OutputOptions, RollupBuild, SourceMap } from '../../src/rollup/types'; +import relativeId from '../../src/utils/relativeId'; import { handleError, stderr } from '../logging'; import SOURCEMAPPING_URL from '../sourceMappingUrl'; import { BatchWarnings } from './batchWarnings'; @@ -42,7 +35,7 @@ export default function build( } return rollup - .rollup(inputOptions) + .rollup(inputOptions as any) .then((bundle: RollupBuild) => { if (useStdout) { const output = outputOptions[0]; @@ -69,6 +62,7 @@ export default function build( process.stdout.write('\n' + tc.cyan(tc.bold('//→ ' + file.fileName + ':')) + '\n'); process.stdout.write(source); } + return null }); } @@ -76,7 +70,7 @@ export default function build( () => bundle ); }) - .then((bundle?: RollupBuild) => { + .then((bundle: RollupBuild | null) => { if (!silent) { warnings.flush(); stderr( diff --git a/bin/src/run/index.ts b/cli/run/index.ts similarity index 93% rename from bin/src/run/index.ts rename to cli/run/index.ts index 3e2e58c4479..53825ce2c1e 100644 --- a/bin/src/run/index.ts +++ b/cli/run/index.ts @@ -1,8 +1,8 @@ import { realpathSync } from 'fs'; import relative from 'require-relative'; -import { WarningHandler } from '../../../src/rollup/types'; -import mergeOptions, { GenericConfigObject } from '../../../src/utils/mergeOptions'; -import { getAliasName } from '../../../src/utils/relativeId'; +import { WarningHandler } from '../../src/rollup/types'; +import mergeOptions, { GenericConfigObject } from '../../src/utils/mergeOptions'; +import { getAliasName } from '../../src/utils/relativeId'; import { handleError } from '../logging'; import batchWarnings from './batchWarnings'; import build from './build'; diff --git a/bin/src/run/loadConfigFile.ts b/cli/run/loadConfigFile.ts similarity index 89% rename from bin/src/run/loadConfigFile.ts rename to cli/run/loadConfigFile.ts index 09ec485ad6f..cbebf4d8c62 100644 --- a/bin/src/run/loadConfigFile.ts +++ b/cli/run/loadConfigFile.ts @@ -1,9 +1,9 @@ import path from 'path'; -import rollup from 'rollup'; import tc from 'turbocolor'; -import { RollupBuild, RollupOutput } from '../../../src/rollup/types'; -import { GenericConfigObject } from '../../../src/utils/mergeOptions'; -import relativeId from '../../../src/utils/relativeId'; +import * as rollup from '../../src/node-entry'; +import { RollupBuild, RollupOutput } from '../../src/rollup/types'; +import { GenericConfigObject } from '../../src/utils/mergeOptions'; +import relativeId from '../../src/utils/relativeId'; import { handleError, stderr } from '../logging'; import batchWarnings from './batchWarnings'; diff --git a/bin/src/run/resetScreen.ts b/cli/run/resetScreen.ts similarity index 100% rename from bin/src/run/resetScreen.ts rename to cli/run/resetScreen.ts diff --git a/bin/src/run/timings.ts b/cli/run/timings.ts similarity index 87% rename from bin/src/run/timings.ts rename to cli/run/timings.ts index eb9735fca2a..b4680e49744 100644 --- a/bin/src/run/timings.ts +++ b/cli/run/timings.ts @@ -1,6 +1,6 @@ import prettyBytes from 'pretty-bytes'; import tc from 'turbocolor'; -import { SerializedTimings } from '../../../src/rollup/types'; +import { SerializedTimings } from '../../src/rollup/types'; export function printTimings(timings: SerializedTimings) { Object.keys(timings).forEach(label => { diff --git a/bin/src/run/watch.ts b/cli/run/watch.ts similarity index 91% rename from bin/src/run/watch.ts rename to cli/run/watch.ts index 7eda81d6c99..74297a9f8c6 100644 --- a/bin/src/run/watch.ts +++ b/cli/run/watch.ts @@ -1,19 +1,20 @@ import dateTime from 'date-time'; import fs from 'fs'; import ms from 'pretty-ms'; -import * as rollup from 'rollup'; import onExit from 'signal-exit'; import tc from 'turbocolor'; +import * as rollup from '../../src/node-entry'; import { InputOption, RollupBuild, RollupError, + RollupWatcher, RollupWatchOptions, WarningHandler, WatcherOptions -} from '../../../src/rollup/types'; -import mergeOptions, { GenericConfigObject } from '../../../src/utils/mergeOptions'; -import relativeId from '../../../src/utils/relativeId'; +} from '../../src/rollup/types'; +import mergeOptions, { GenericConfigObject } from '../../src/utils/mergeOptions'; +import relativeId from '../../src/utils/relativeId'; import { handleError, stderr } from '../logging'; import batchWarnings from './batchWarnings'; import loadConfigFile from './loadConfigFile'; @@ -29,11 +30,6 @@ interface WatchEvent { result?: RollupBuild; } -interface Watcher { - close: () => void; - on: (event: string, fn: (event: WatchEvent) => void) => void; -} - export default function watch( configFile: string, configs: GenericConfigObject[], @@ -48,8 +44,8 @@ export default function watch( ); const resetScreen = getResetScreen(isTTY && clearScreen); - let watcher: Watcher; - let configWatcher: Watcher; + let watcher: RollupWatcher; + let configWatcher: RollupWatcher; function processConfigs(configs: GenericConfigObject[]): RollupWatchOptions[] { return configs.map(options => { @@ -77,7 +73,7 @@ export default function watch( } function start(configs: RollupWatchOptions[]) { - watcher = rollup.watch(configs); + watcher = rollup.watch(configs as any); watcher.on('event', (event: WatchEvent) => { switch (event.code) { @@ -190,7 +186,7 @@ export default function watch( restarting = true; loadConfigFile(configFile, command) - .then((_configs: RollupWatchOptions[]) => { + .then(() => { restarting = false; if (aborted) { diff --git a/bin/src/sourceMappingUrl.ts b/cli/sourceMappingUrl.ts similarity index 100% rename from bin/src/sourceMappingUrl.ts rename to cli/sourceMappingUrl.ts diff --git a/package-lock.json b/package-lock.json index 352a2cf7f6a..b9ac9334bb7 100644 --- a/package-lock.json +++ b/package-lock.json @@ -142,6 +142,32 @@ "to-fast-properties": "^2.0.0" } }, + "@nodelib/fs.scandir": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.1.tgz", + "integrity": "sha512-NT/skIZjgotDSiXs0WqYhgcuBKhUMgfekCmCGtkUAiLqZdOnrdjmZr9wRl3ll64J9NF79uZ4fk16Dx0yMc/Xbg==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "2.0.1", + "run-parallel": "^1.1.9" + } + }, + "@nodelib/fs.stat": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.1.tgz", + "integrity": "sha512-+RqhBlLn6YRBGOIoVYthsG0J9dfpO79eJyN7BYBkZJtfqrBwf2KK+rD/M/yjZR6WBmIhAgOV7S60eCgaSWtbFw==", + "dev": true + }, + "@nodelib/fs.walk": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.2.tgz", + "integrity": "sha512-J/DR3+W12uCzAJkw7niXDcqcKBg6+5G5Q/ZpThpGNzAUz70eOR6RV4XnnSN01qHZiVl0eavoxJsBypQoKsV2QQ==", + "dev": true, + "requires": { + "@nodelib/fs.scandir": "2.1.1", + "fastq": "^1.6.0" + } + }, "@samverschueren/stream-to-observable": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/@samverschueren/stream-to-observable/-/stream-to-observable-0.3.0.tgz", @@ -219,9 +245,9 @@ "dev": true }, "@types/node": { - "version": "12.6.3", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.6.3.tgz", - "integrity": "sha512-7TEYTQT1/6PP53NftXXabIZDaZfaoBdeBm8Md/i7zsWRoBe0YwOXguyK8vhHs8ehgB/w9U4K/6EWuTyp0W6nIA==" + "version": "12.6.9", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.6.9.tgz", + "integrity": "sha512-+YB9FtyxXGyD54p8rXwWaN1EWEyar5L58GlGWgtH2I9rGmLGBQcw63+0jw+ujqVavNuO47S1ByAjm9zdHMnskw==" }, "@types/normalize-package-data": { "version": "2.4.0", @@ -256,9 +282,9 @@ "optional": true }, "acorn": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.2.0.tgz", - "integrity": "sha512-8oe72N3WPMjA+2zVG71Ia0nXZ8DpQH+QyyHO+p06jT8eg8FGG3FbcUIi8KziHlAfheJQZeoqbvq1mQSQHXKYLw==" + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.2.1.tgz", + "integrity": "sha512-JD0xT5FCRDNyjDda3Lrg/IxFscp9q4tiYtxE1/nOzlKCk7hIRuYjhq1kCNkbPjMRMZuFq20HNQn1I9k8Oj0E+Q==" }, "acorn-bigint": { "version": "0.4.0", @@ -300,9 +326,9 @@ } }, "ajv": { - "version": "6.10.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.0.tgz", - "integrity": "sha512-nffhOpkymDECQyR0mnsUtoCE8RlX38G0rYP+wgLWFyZuUyuuojSSvi/+euOiQBIn63whYwYVIIH1TvE3tu4OEg==", + "version": "6.10.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz", + "integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==", "dev": true, "requires": { "fast-deep-equal": "^2.0.1", @@ -463,18 +489,9 @@ } }, "array-union": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", - "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", - "dev": true, - "requires": { - "array-uniq": "^1.0.1" - } - }, - "array-uniq": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", - "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", "dev": true }, "array-unique": { @@ -1236,26 +1253,18 @@ } }, "del": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/del/-/del-4.1.1.tgz", - "integrity": "sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/del/-/del-5.0.0.tgz", + "integrity": "sha512-TfU3nUY0WDIhN18eq+pgpbLY9AfL5RfiE9czKaTSolc6aK7qASXfDErvYgjV1UqCR4sNXDoxO0/idPmhDUt2Sg==", "dev": true, "requires": { - "@types/glob": "^7.1.1", - "globby": "^6.1.0", + "globby": "^10.0.0", "is-path-cwd": "^2.0.0", "is-path-in-cwd": "^2.0.0", "p-map": "^2.0.0", - "pify": "^4.0.1", "rimraf": "^2.6.3" }, "dependencies": { - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "dev": true - }, "rimraf": { "version": "2.6.3", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", @@ -1287,6 +1296,23 @@ "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", "dev": true }, + "dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "requires": { + "path-type": "^4.0.0" + }, + "dependencies": { + "path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true + } + } + }, "doctrine": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", @@ -1403,9 +1429,9 @@ "dev": true }, "eslint": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-6.0.1.tgz", - "integrity": "sha512-DyQRaMmORQ+JsWShYsSg4OPTjY56u1nCjAmICrE8vLWqyLKxhFXOthwMj1SA8xwfrv0CofLNVnqbfyhwCkaO0w==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-6.1.0.tgz", + "integrity": "sha512-QhrbdRD7ofuV09IuE2ySWBz0FyXCq0rriLTZXZqaWSI79CVtHVRdkFuFTViiqzZhkCgfOh9USpriuGN2gIpZDQ==", "dev": true, "requires": { "@babel/code-frame": "^7.0.0", @@ -1414,7 +1440,7 @@ "cross-spawn": "^6.0.5", "debug": "^4.0.1", "doctrine": "^3.0.0", - "eslint-scope": "^4.0.3", + "eslint-scope": "^5.0.0", "eslint-utils": "^1.3.1", "eslint-visitor-keys": "^1.0.0", "espree": "^6.0.0", @@ -1422,30 +1448,37 @@ "esutils": "^2.0.2", "file-entry-cache": "^5.0.1", "functional-red-black-tree": "^1.0.1", - "glob-parent": "^3.1.0", + "glob-parent": "^5.0.0", "globals": "^11.7.0", "ignore": "^4.0.6", "import-fresh": "^3.0.0", "imurmurhash": "^0.1.4", - "inquirer": "^6.2.2", + "inquirer": "^6.4.1", "is-glob": "^4.0.0", "js-yaml": "^3.13.1", "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.3.0", - "lodash": "^4.17.11", + "lodash": "^4.17.14", "minimatch": "^3.0.4", "mkdirp": "^0.5.1", "natural-compare": "^1.4.0", "optionator": "^0.8.2", "progress": "^2.0.0", "regexpp": "^2.0.1", - "semver": "^5.5.1", - "strip-ansi": "^4.0.0", - "strip-json-comments": "^2.0.1", + "semver": "^6.1.2", + "strip-ansi": "^5.2.0", + "strip-json-comments": "^3.0.1", "table": "^5.2.3", - "text-table": "^0.2.0" + "text-table": "^0.2.0", + "v8-compile-cache": "^2.0.3" }, "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true + }, "debug": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", @@ -1455,11 +1488,52 @@ "ms": "^2.1.1" } }, + "glob-parent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.0.0.tgz", + "integrity": "sha512-Z2RwiujPRGluePM6j699ktJYxmPpJKCfpGA13jz2hmFZC7gKetzrWvg5KN3+OsIFmydGyZ1AVwERCq1w/ZZwRg==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + }, + "dependencies": { + "is-glob": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + } + } + }, "ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + }, + "strip-json-comments": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.0.1.tgz", + "integrity": "sha512-VTyMAUfdm047mwKl+u79WIdrZxtFtn+nBxHeb844XBQ9uMNTuTHdx2hc5RiAJYqwTj3wc/xe5HLSdJSkJ+WfZw==", + "dev": true } } }, @@ -1474,9 +1548,9 @@ } }, "eslint-module-utils": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.4.0.tgz", - "integrity": "sha512-14tltLm38Eu3zS+mt0KvILC3q8jyIAH518MlG+HO0p+yK885Lb1UHTY/UgR91eOyGdmxAPb+OLoW4znqIT6Ndw==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.4.1.tgz", + "integrity": "sha512-H6DOj+ejw7Tesdgbfs4jeS4YMFrT8uI8xwd1gtQqXssaR0EQ26L+2O/w6wkYFy2MymON0fTwHmXBvvfLNZVZEw==", "dev": true, "requires": { "debug": "^2.6.8", @@ -1484,9 +1558,9 @@ } }, "eslint-plugin-import": { - "version": "2.18.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.18.0.tgz", - "integrity": "sha512-PZpAEC4gj/6DEMMoU2Df01C5c50r7zdGIN52Yfi7CvvWaYssG7Jt5R9nFG5gmqodxNOz9vQS87xk6Izdtpdrig==", + "version": "2.18.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.18.2.tgz", + "integrity": "sha512-5ohpsHAiUBRNaBWAF08izwUGlbrJoJJ+W9/TBwsGoR1MnlgfwMIKrFeSjWbt6moabiXW9xNvtFz+97KHRfI4HQ==", "dev": true, "requires": { "array-includes": "^3.0.3", @@ -1496,8 +1570,8 @@ "eslint-import-resolver-node": "^0.3.2", "eslint-module-utils": "^2.4.0", "has": "^1.0.3", - "lodash": "^4.17.11", "minimatch": "^3.0.4", + "object.values": "^1.1.0", "read-pkg-up": "^2.0.0", "resolve": "^1.11.0" }, @@ -1513,9 +1587,9 @@ } }, "resolve": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.11.1.tgz", - "integrity": "sha512-vIpgF6wfuJOZI7KKKSP+HmiKggadPQAdsp5HiC1mvqnfp0gF1vdwgBWZIdrVft9pgqoMFQN+R7BSWZiBxx+BBw==", + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.12.0.tgz", + "integrity": "sha512-B/dOmuoAik5bKcD6s6nXDCjzUKnaDvdkRyAk6rsmsKLipWj4797iothd7jmmUhWTfinVMU+wc56rYKsit2Qy4w==", "dev": true, "requires": { "path-parse": "^1.0.6" @@ -1524,9 +1598,9 @@ } }, "eslint-scope": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz", - "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.0.0.tgz", + "integrity": "sha512-oYrhJW7S0bxAFDvWqzvMPRm6pcgcnWc4QnofCAqRTRfQC0JcwenzGglTtsLyIuuWFfkqDG9vz67cnttSd53djw==", "dev": true, "requires": { "esrecurse": "^4.1.0", @@ -1534,10 +1608,13 @@ } }, "eslint-utils": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.3.1.tgz", - "integrity": "sha512-Z7YjnIldX+2XMcjr7ZkgEsOj/bREONV60qYeB/bjMAqqqZ4zxKyWX+BOUkdmRmA9riiIPVvo5x86m5elviOk0Q==", - "dev": true + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.4.0.tgz", + "integrity": "sha512-7ehnzPaP5IIEh1r1tkjuIrxqhNkzUJa9z3R92tLJdZIVdWaczEhr3EbhGtsMrVxi1KeR8qA7Off6SWc5WNQqyQ==", + "dev": true, + "requires": { + "eslint-visitor-keys": "^1.0.0" + } }, "eslint-visitor-keys": { "version": "1.0.0", @@ -1689,9 +1766,9 @@ } }, "external-editor": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.0.3.tgz", - "integrity": "sha512-bn71H9+qWoOQKyZDo25mOMVpSmXROAsTJVVVYzrrtol3d4y+AsKjf4Iwl2Q+IuT0kFSQ1qo166UuIwqYq7mGnA==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", + "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", "dev": true, "requires": { "chardet": "^0.7.0", @@ -1770,6 +1847,40 @@ "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", "dev": true }, + "fast-glob": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.0.4.tgz", + "integrity": "sha512-wkIbV6qg37xTJwqSsdnIphL1e+LaGz4AIQqr00mIubMaEhv1/HEmJ0uuCGZRNRUkZZmOB5mJKO0ZUTVq+SxMQg==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "^2.0.1", + "@nodelib/fs.walk": "^1.2.1", + "glob-parent": "^5.0.0", + "is-glob": "^4.0.1", + "merge2": "^1.2.3", + "micromatch": "^4.0.2" + }, + "dependencies": { + "glob-parent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.0.0.tgz", + "integrity": "sha512-Z2RwiujPRGluePM6j699ktJYxmPpJKCfpGA13jz2hmFZC7gKetzrWvg5KN3+OsIFmydGyZ1AVwERCq1w/ZZwRg==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + }, + "is-glob": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + } + } + }, "fast-json-stable-stringify": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", @@ -1782,6 +1893,15 @@ "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", "dev": true }, + "fastq": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.6.0.tgz", + "integrity": "sha512-jmxqQ3Z/nXoeyDmWAzF9kH1aGZSis6e/SbfPmJpUnyZ0ogr6iscHQaml4wsEepEWSdtmpy+eVXmCRIMpxaXqOA==", + "dev": true, + "requires": { + "reusify": "^1.0.0" + } + }, "figures": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", @@ -2221,16 +2341,27 @@ "dev": true }, "globby": { - "version": "6.1.0", - "resolved": "http://registry.npmjs.org/globby/-/globby-6.1.0.tgz", - "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/globby/-/globby-10.0.1.tgz", + "integrity": "sha512-sSs4inE1FB2YQiymcmTv6NWENryABjUNPeWhOvmn4SjtKybglsyPZxFB3U1/+L1bYi0rNZDqCLlHyLYDl1Pq5A==", "dev": true, "requires": { - "array-union": "^1.0.1", - "glob": "^7.0.3", - "object-assign": "^4.0.1", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" + "@types/glob": "^7.1.1", + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.0.3", + "glob": "^7.1.3", + "ignore": "^5.1.1", + "merge2": "^1.2.3", + "slash": "^3.0.0" + }, + "dependencies": { + "ignore": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.2.tgz", + "integrity": "sha512-vdqWBp7MyzdmHkkRWV5nY+PfGRbYbahfuvsBCh277tq+w9zyNi7h5CYJCK0kmzti9kU+O/cB7sE8HvKv6aXAKQ==", + "dev": true + } } }, "graceful-fs": { @@ -2407,11 +2538,12 @@ } }, "husky": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/husky/-/husky-3.0.0.tgz", - "integrity": "sha512-lKMEn7bRK+7f5eWPNGclDVciYNQt0GIkAQmhKl+uHP1qFzoN0h92kmH9HZ8PCwyVA2EQPD8KHf0FYWqnTxau+Q==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/husky/-/husky-3.0.2.tgz", + "integrity": "sha512-WXCtaME2x0o4PJlKY4ap8BzLA+D0zlvefqAvLCPriOOu+x0dpO5uc5tlB7CY6/0SE2EESmoZsj4jW5D09KrJoA==", "dev": true, "requires": { + "chalk": "^2.4.2", "cosmiconfig": "^5.2.1", "execa": "^1.0.0", "get-stdin": "^7.0.0", @@ -2424,6 +2556,17 @@ "slash": "^3.0.0" }, "dependencies": { + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, "execa": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", @@ -2513,13 +2656,15 @@ "dev": true }, "parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.0.0.tgz", + "integrity": "sha512-OOY5b7PAEFV0E2Fir1KOkxchnZNCdowAJgQ5NuxjpBKTRP3pQhwkrkxqQjeoKJ+fO7bCpmIZaogI4eZGDMEGOw==", "dev": true, "requires": { + "@babel/code-frame": "^7.0.0", "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" + "json-parse-better-errors": "^1.0.1", + "lines-and-columns": "^1.1.6" } }, "path-exists": { @@ -2538,15 +2683,15 @@ } }, "read-pkg": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.1.1.tgz", - "integrity": "sha512-dFcTLQi6BZ+aFUaICg7er+/usEoqFdQxiEBsEMNGoipenihtxxtdrQuBXvyANCEI8VuUIVYFgeHGx9sLLvim4w==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", + "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", "dev": true, "requires": { "@types/normalize-package-data": "^2.4.0", "normalize-package-data": "^2.5.0", - "parse-json": "^4.0.0", - "type-fest": "^0.4.1" + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" } } } @@ -2626,9 +2771,9 @@ "dev": true }, "inquirer": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.4.1.tgz", - "integrity": "sha512-/Jw+qPZx4EDYsaT6uz7F4GJRNFMRdKNeUZw3ZnKV8lyuUgz/YWRCSUAJMZSVhSq4Ec0R2oYnyi6b3d4JXcL5Nw==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.5.0.tgz", + "integrity": "sha512-scfHejeG/lVZSpvCXpsB4j/wQNPM5JC8kiElOI0OUTwmc1RTpXr4H32/HOlQHcZiYl2z2VElwuCVDRG8vFmbnA==", "dev": true, "requires": { "ansi-escapes": "^3.2.0", @@ -2637,7 +2782,7 @@ "cli-width": "^2.0.0", "external-editor": "^3.0.3", "figures": "^2.0.0", - "lodash": "^4.17.11", + "lodash": "^4.17.12", "mute-stream": "0.0.7", "run-async": "^2.2.0", "rxjs": "^6.4.0", @@ -3175,6 +3320,12 @@ "type-check": "~0.3.2" } }, + "lines-and-columns": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz", + "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=", + "dev": true + }, "linkify-it": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-2.1.0.tgz", @@ -3185,9 +3336,9 @@ } }, "lint-staged": { - "version": "9.2.0", - "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-9.2.0.tgz", - "integrity": "sha512-K/CQWcxYunc8lGMNTFvtI4+ybJcHW3K4Ghudz2OrJhIWdW/i1WWu9rGiVj4yJ0+D/xh8a08kp5slt89VZC9Eqg==", + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-9.2.1.tgz", + "integrity": "sha512-3lGgJfBddCy/WndKdNko+uJbwyYjBD1k+V+SA+phBYWzH265S95KQya/Wln/UL+hOjc7NcjtFYVCUWuAcqYHhg==", "dev": true, "requires": { "chalk": "^2.4.2", @@ -3195,8 +3346,8 @@ "cosmiconfig": "^5.2.1", "debug": "^4.1.1", "dedent": "^0.7.0", - "del": "^4.1.1", - "execa": "^2.0.1", + "del": "^5.0.0", + "execa": "^2.0.3", "listr": "^0.14.3", "log-symbols": "^3.0.0", "micromatch": "^4.0.2", @@ -3225,15 +3376,6 @@ "ms": "^2.1.1" } }, - "log-symbols": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-3.0.0.tgz", - "integrity": "sha512-dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ==", - "dev": true, - "requires": { - "chalk": "^2.4.2" - } - }, "ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", @@ -3415,12 +3557,25 @@ "dev": true }, "log-symbols": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz", - "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-3.0.0.tgz", + "integrity": "sha512-dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ==", "dev": true, "requires": { - "chalk": "^2.0.1" + "chalk": "^2.4.2" + }, + "dependencies": { + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + } } }, "log-update": { @@ -3610,6 +3765,12 @@ "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", "dev": true }, + "merge2": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.2.4.tgz", + "integrity": "sha512-FYE8xI+6pjFOhokZu0We3S5NKCirLbCzSh2Usf3qEyr4X8U+0jNg9P8RZ4qz+V2UoECLVwSyzU3LxXBaLGtD3A==", + "dev": true + }, "micromatch": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", @@ -3742,9 +3903,9 @@ } }, "mocha": { - "version": "6.1.4", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-6.1.4.tgz", - "integrity": "sha512-PN8CIy4RXsIoxoFJzS4QNnCH4psUCPWc4/rPrst/ecSJJbLBkubMiyGCP2Kj/9YnWbotFqAoeXyXMucj7gwCFg==", + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-6.2.0.tgz", + "integrity": "sha512-qwfFgY+7EKAAUAdv7VYMZQknI7YJSGesxHyhn6qD52DV8UcSZs5XwCifcZGMVIE4a5fbmhvbotxC0DLQ0oKohQ==", "dev": true, "requires": { "ansi-colors": "3.2.3", @@ -3800,6 +3961,15 @@ "path-exists": "^3.0.0" } }, + "log-symbols": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz", + "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==", + "dev": true, + "requires": { + "chalk": "^2.0.1" + } + }, "ms": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", @@ -4240,6 +4410,18 @@ "isobject": "^3.0.1" } }, + "object.values": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.0.tgz", + "integrity": "sha512-8mf0nKLAoFX6VlNVdhGj31SVYpaNFtUnuoOXWyFEstsWRgU837AK+JYM0iAxwkSzGRbwn8cbFmgbyxj1j4VbXg==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.12.0", + "function-bind": "^1.1.1", + "has": "^1.0.3" + } + }, "once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", @@ -4530,21 +4712,6 @@ "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", "dev": true }, - "pinkie": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", - "dev": true - }, - "pinkie-promise": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", - "dev": true, - "requires": { - "pinkie": "^2.0.0" - } - }, "pkg-dir": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", @@ -4582,9 +4749,9 @@ "dev": true }, "pretty-bytes": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.2.0.tgz", - "integrity": "sha512-ujANBhiUsl9AhREUDUEY1GPOharMGm8x8juS7qOHybcLi7XsKfrYQ88hSly1l2i0klXHTDYrlL8ihMCG55Dc3w==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.3.0.tgz", + "integrity": "sha512-hjGrh+P926p4R4WbaB6OckyRtO0F0/lQBiT+0gnxjV+5kjPBrfVBFCsCLbMqVQeydvIoouYTCmmEURiH3R1Bdg==", "dev": true }, "pretty-ms": { @@ -4889,6 +5056,12 @@ "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", "dev": true }, + "reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true + }, "rimraf": { "version": "2.6.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", @@ -4899,13 +5072,13 @@ } }, "rollup": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-1.17.0.tgz", - "integrity": "sha512-k/j1m0NIsI4SYgCJR4MWPstGJOWfJyd6gycKoMhyoKPVXxm+L49XtbUwZyFsrSU2YXsOkM4u1ll9CS/ZgJBUpw==", + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-1.18.0.tgz", + "integrity": "sha512-MBAWr6ectF948gW/bs/yfi0jW7DzwI8n0tEYG/ZMQutmK+blF/Oazyhg3oPqtScCGV8bzCtL9KzlzPtTriEOJA==", "dev": true, "requires": { "@types/estree": "0.0.39", - "@types/node": "^12.6.2", + "@types/node": "^12.6.3", "acorn": "^6.2.0" } }, @@ -5062,6 +5235,12 @@ "integrity": "sha512-kc120TBlQ3mih1LSzdAJXo4xn/GWS2ec0l3S+syHDXP9uRr0JAT8Qd3mdMuyjqCzeZktgP3try92cEgf9Nks8A==", "dev": true }, + "run-parallel": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.1.9.tgz", + "integrity": "sha512-DEqnSRTDw/Tc3FXf49zedI638Z9onwUotBMiUFKmrO2sdFKIbXamXGQ3Axd4qgphxKB4kw/qP1w5kTxnfU1B9Q==", + "dev": true + }, "rxjs": { "version": "6.5.2", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.2.tgz", @@ -5350,9 +5529,9 @@ } }, "source-map-support": { - "version": "0.5.12", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.12.tgz", - "integrity": "sha512-4h2Pbvyy15EE02G+JOZpUCmqWJuqrs+sEkzewTm++BPi7Hvn/HwcqLAcNxYAyI0x13CpPPn+kMjl+hplXMHITQ==", + "version": "0.5.13", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", + "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", "dev": true, "requires": { "buffer-from": "^1.0.0", @@ -5538,19 +5717,19 @@ "dev": true }, "systemjs": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/systemjs/-/systemjs-4.1.0.tgz", - "integrity": "sha512-nJrwicPmCKJBgRsFfNhXZVD6GJLnd+CyRZlUTP1XlAnXOXf6ePLX3seF1scLmUS3pnZKiUFURCjTkCixqoGT1g==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/systemjs/-/systemjs-5.0.0.tgz", + "integrity": "sha512-hnD/IMQhH0UmawiIGlYVnkCPUbbO/WDQjOC+Q4PewHBdsagI1OHH1re1sg1AYFqq7p9ps6b1Bsx4xCeoeIZSCw==", "dev": true }, "table": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/table/-/table-5.4.1.tgz", - "integrity": "sha512-E6CK1/pZe2N75rGZQotFOdmzWQ1AILtgYbMAbAjvms0S1l5IDB47zG3nCnFGB/w+7nB3vKofbLXCH7HPBo864w==", + "version": "5.4.5", + "resolved": "https://registry.npmjs.org/table/-/table-5.4.5.tgz", + "integrity": "sha512-oGa2Hl7CQjfoaogtrOHEJroOcYILTx7BZWLGsJIlzoWmB2zmguhNfPJZsWPKYek/MgCxfco54gEi31d1uN2hFA==", "dev": true, "requires": { - "ajv": "^6.9.1", - "lodash": "^4.17.11", + "ajv": "^6.10.2", + "lodash": "^4.17.14", "slice-ansi": "^2.1.0", "string-width": "^3.0.0" }, @@ -5877,9 +6056,9 @@ } }, "type-fest": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.4.1.tgz", - "integrity": "sha512-IwzA/LSfD2vC1/YDYMv/zHP4rDF1usCwllsDpbolT3D4fUepIO7f9K70jjmUewU/LmGUKJcwcVtDCpnKk4BPMw==", + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", "dev": true }, "typescript": { @@ -6046,6 +6225,12 @@ "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==", "dev": true }, + "v8-compile-cache": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.0.3.tgz", + "integrity": "sha512-CNmdbwQMBjwr9Gsmohvm0pbL954tJrNzf6gWL3K+QMQf00PF7ERGrEiLgjuU3mKreLC2MeGhUsNV9ybTbLgd3w==", + "dev": true + }, "validate-npm-package-license": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", diff --git a/package.json b/package.json index 073b21af6d5..6ac97a595df 100644 --- a/package.json +++ b/package.json @@ -4,15 +4,14 @@ "description": "Next-generation ES module bundler", "main": "dist/rollup.js", "module": "dist/rollup.es.js", - "jsnext:main": "dist/rollup.es.js", "typings": "dist/rollup.d.ts", "bin": { - "rollup": "./bin/rollup" + "rollup": "./dist/bin/rollup.js" }, "scripts": { - "build": "shx rm -rf dist && git rev-parse HEAD > .commithash && rollup -c && shx cp src/rollup/types.d.ts dist/rollup.d.ts && shx chmod a+x bin/rollup", - "build:test": "shx rm -rf dist && rollup -c --configTest && shx cp src/rollup/types.d.ts dist/rollup.d.ts && shx chmod a+x bin/rollup", - "build:bootstrap": "bin/rollup -c && shx cp src/rollup/types.d.ts dist/rollup.d.ts && shx chmod a+x bin/rollup", + "build": "shx rm -rf dist && git rev-parse HEAD > .commithash && rollup -c && shx cp src/rollup/types.d.ts dist/rollup.d.ts && shx chmod a+x dist/bin/rollup", + "build:test": "shx rm -rf dist && rollup -c --configTest && shx cp src/rollup/types.d.ts dist/rollup.d.ts && shx chmod a+x dist/bin/rollup", + "build:bootstrap": "dist/bin/rollup -c && shx cp src/rollup/types.d.ts dist/rollup.d.ts && shx chmod a+x dist/bin/rollup", "ci:lint": "npm run lint:nofix && npm run security", "ci:test": "npm run build:test && npm run build:bootstrap && npm run test:all", "ci:coverage": "npm run build:test && nyc --reporter lcovonly mocha && codecov", @@ -59,8 +58,8 @@ "homepage": "https://github.com/rollup/rollup", "dependencies": { "@types/estree": "0.0.39", - "@types/node": "^12.6.3", - "acorn": "^6.2.0" + "@types/node": "^12.6.9", + "acorn": "^6.2.1" }, "devDependencies": { "@types/chokidar": "^2.1.3", @@ -79,28 +78,28 @@ "date-time": "^3.1.0", "es5-shim": "^4.5.13", "es6-shim": "^0.35.5", - "eslint": "^6.0.1", - "eslint-plugin-import": "^2.18.0", + "eslint": "^6.1.0", + "eslint-plugin-import": "^2.18.2", "execa": "^2.0.3", "fixturify": "^1.2.0", "hash.js": "^1.1.7", - "husky": "^3.0.0", + "husky": "^3.0.2", "immutable": "^4.0.0-rc.12", "is-reference": "^1.1.3", - "lint-staged": "^9.2.0", + "lint-staged": "^9.2.1", "locate-character": "^2.0.5", "magic-string": "^0.25.3", "markdownlint-cli": "^0.17.0", "micromatch": "^4.0.2", "minimist": "^1.2.0", - "mocha": "^6.1.4", + "mocha": "^6.2.0", "nyc": "^14.1.1", "prettier": "^1.18.2", - "pretty-bytes": "^5.2.0", + "pretty-bytes": "^5.3.0", "pretty-ms": "^5.0.0", "require-relative": "^0.8.7", "requirejs": "^2.3.6", - "rollup": "^1.17.0", + "rollup": "^1.18.0", "rollup-plugin-alias": "^1.5.2", "rollup-plugin-buble": "^0.19.8", "rollup-plugin-commonjs": "^10.0.1", @@ -115,9 +114,9 @@ "shx": "^0.3.2", "signal-exit": "^3.0.2", "source-map": "^0.6.1", - "source-map-support": "^0.5.12", + "source-map-support": "^0.5.13", "sourcemap-codec": "^1.4.6", - "systemjs": "^4.1.0", + "systemjs": "^5.0.0", "terser": "^4.1.2", "tslib": "^1.10.0", "tslint": "^5.18.0", @@ -126,8 +125,7 @@ "url-parse": "^1.4.7" }, "files": [ - "dist/*.js", - "dist/*.d.ts", - "bin/rollup" + "dist/**/*.js", + "dist/*.d.ts" ] } diff --git a/rollup.config.js b/rollup.config.js index fca8a93f426..69106d26aa8 100644 --- a/rollup.config.js +++ b/rollup.config.js @@ -1,4 +1,5 @@ import fs from 'fs'; +import MagicString from 'magic-string'; import path from 'path'; import alias from 'rollup-plugin-alias'; import commonjs from 'rollup-plugin-commonjs'; @@ -40,6 +41,19 @@ const onwarn = warning => { throw new Error(warning.message); }; +function addSheBang() { + return { + name: 'add-bin-shebang', + renderChunk(code, chunkInfo) { + if (chunkInfo.fileName === 'bin/rollup') { + const magicString = new MagicString(code); + magicString.prepend('#!/usr/bin/env node\n\n'); + return { code: magicString.toString(), map: magicString.generateMap({hires: true}) }; + } + } + }; +} + const expectedAcornImport = "import acorn__default, { tokTypes, Parser } from 'acorn';"; const newAcornImport = "import * as acorn__default from 'acorn';\nimport { tokTypes, Parser } from 'acorn';"; @@ -49,20 +63,18 @@ const newAcornImport = function fixAcornEsmImport() { return { name: 'fix-acorn-esm-import', - renderChunk(code, chunk, options) { - if (/esm?/.test(options.format)) { - let found = false; - const fixedCode = code.replace(expectedAcornImport, () => { - found = true; - return newAcornImport; - }); - if (!found) { - this.error( - 'Could not find expected acorn import, please deactive this plugin and examine generated code.' - ); - } - return fixedCode; + renderChunk(code) { + let found = false; + const fixedCode = code.replace(expectedAcornImport, () => { + found = true; + return newAcornImport; + }); + if (!found) { + this.error( + 'Could not find expected acorn import, please deactive this plugin and examine generated code.' + ); } + return fixedCode; } }; } @@ -70,7 +82,7 @@ function fixAcornEsmImport() { const moduleAliases = { resolve: ['.js', '.json', '.md'], 'acorn-dynamic-import': path.resolve('node_modules/acorn-dynamic-import/src/index.js'), - 'help.md': path.resolve('bin/src/help.md'), + 'help.md': path.resolve('cli/help.md'), 'package.json': path.resolve('package.json') }; @@ -80,80 +92,72 @@ const treeshake = { tryCatchDeoptimization: false }; +const nodePlugins = [ + alias(moduleAliases), + resolve(), + json(), + string({ include: '**/*.md' }), + commonjs({ include: 'node_modules/**' }), + typescript({ include: '**/*.{ts,js}' }) +]; + export default command => { - const nodeBuilds = [ - /* Rollup core node builds */ - { - input: 'src/node-entry.ts', - onwarn, - plugins: [ - alias(moduleAliases), - resolve(), - json(), - commonjs({ include: 'node_modules/**' }), - typescript({ include: '**/*.{ts,js}' }), - fixAcornEsmImport() - ], - // acorn needs to be external as some plugins rely on a shared acorn instance - external: ['fs', 'path', 'events', 'module', 'util', 'acorn'], - treeshake, - output: [{ file: 'dist/rollup.js', format: 'cjs', sourcemap: true, banner }].concat( - command.configTest ? [] : [{ file: 'dist/rollup.es.js', format: 'esm', banner }] - ) + const commonJSBuild = { + input: { + 'rollup.js': 'src/node-entry.ts', + 'bin/rollup': 'cli/index.ts' }, - /* Rollup CLI */ - { - input: 'bin/src/index.ts', - onwarn, - plugins: [ - alias(moduleAliases), - resolve(), - json(), - string({ include: '**/*.md' }), - commonjs({ include: 'node_modules/**' }), - typescript({ include: '**/*.{ts,js}' }) - ], - external: ['fs', 'path', 'module', 'assert', 'events', 'rollup'], - treeshake, - output: { - file: 'bin/rollup', - format: 'cjs', - banner: '#!/usr/bin/env node', - paths: { - rollup: '../dist/rollup.js' - }, - sourcemap: true - } + onwarn, + plugins: [...nodePlugins, addSheBang()], + // acorn needs to be external as some plugins rely on a shared acorn instance + external: ['acorn', 'assert', 'events', 'fs', 'module', 'path', 'util'], + treeshake, + output: { + banner, + chunkFileNames: 'shared/[name].js', + dir: 'dist', + entryFileNames: '[name]', + externalLiveBindings: false, + format: 'cjs', + freeze: false, + interop: false, + sourcemap: true } - ]; + }; if (command.configTest) { - return nodeBuilds; + return commonJSBuild; } - return nodeBuilds.concat([ - /* Rollup core browser builds */ - { - input: 'src/browser-entry.ts', - onwarn, - plugins: [ - alias(moduleAliases), - resolve({ browser: true }), - json(), - { - load: id => { - if (~id.indexOf('fs.ts')) return fs.readFileSync('browser/fs.ts', 'utf-8'); - if (~id.indexOf('path.ts')) return fs.readFileSync('browser/path.ts', 'utf-8'); - } - }, - commonjs(), - typescript({ include: '**/*.{ts,js}' }), - terser({ module: true, output: { comments: 'some' } }) - ], - treeshake, - output: [ - { file: 'dist/rollup.browser.js', format: 'umd', name: 'rollup', banner }, - { file: 'dist/rollup.browser.es.js', format: 'esm', banner } - ] - } - ]); + + const esmBuild = Object.assign({}, commonJSBuild, { + input: 'src/node-entry.ts', + plugins: [...nodePlugins, fixAcornEsmImport()], + output: { file: 'dist/rollup.es.js', format: 'esm', banner } + }); + + const browserBuilds = { + input: 'src/browser-entry.ts', + onwarn, + plugins: [ + alias(moduleAliases), + resolve({ browser: true }), + json(), + { + load: id => { + if (~id.indexOf('fs.ts')) return fs.readFileSync('browser/fs.ts', 'utf-8'); + if (~id.indexOf('path.ts')) return fs.readFileSync('browser/path.ts', 'utf-8'); + } + }, + commonjs(), + typescript({ include: '**/*.{ts,js}' }), + terser({ module: true, output: { comments: 'some' } }) + ], + treeshake, + output: [ + { file: 'dist/rollup.browser.js', format: 'umd', name: 'rollup', banner }, + { file: 'dist/rollup.browser.es.js', format: 'esm', banner } + ] + }; + + return [commonJSBuild, esmBuild, browserBuilds]; }; diff --git a/src/ast/variables/ExportDefaultVariable.ts b/src/ast/variables/ExportDefaultVariable.ts index 8f2e38adf7f..b4027f28f20 100644 --- a/src/ast/variables/ExportDefaultVariable.ts +++ b/src/ast/variables/ExportDefaultVariable.ts @@ -41,6 +41,15 @@ export default class ExportDefaultVariable extends LocalVariable { return (this.originalId && this.originalId.name) || null; } + getBaseVariableName(): string { + const original = this.getOriginalVariable(); + if (original === this) { + return super.getBaseVariableName(); + } else { + return original.getBaseVariableName(); + } + } + getName() { const original = this.getOriginalVariable(); if (original === this) { @@ -83,5 +92,3 @@ export default class ExportDefaultVariable extends LocalVariable { } } } - -ExportDefaultVariable.prototype.getBaseVariableName = ExportDefaultVariable.prototype.getName; diff --git a/src/watch/index.ts b/src/watch/index.ts index f2757497549..8184ee6813b 100644 --- a/src/watch/index.ts +++ b/src/watch/index.ts @@ -279,6 +279,6 @@ export class Task { } } -export default function watch(configs: GenericConfigObject[]): EventEmitter { +export default function watch(configs: GenericConfigObject[]): RollupWatcher { return new Watcher(configs).emitter; } diff --git a/test/chunking-form/samples/chunk-variable-name-conflict/_config.js b/test/chunking-form/samples/chunk-variable-name-conflict/_config.js new file mode 100644 index 00000000000..bded69227e6 --- /dev/null +++ b/test/chunking-form/samples/chunk-variable-name-conflict/_config.js @@ -0,0 +1,6 @@ +module.exports = { + description: 'chunk variable name conflict', + options: { + input: ['main1.js', 'main2.js'] + } +}; diff --git a/test/chunking-form/samples/chunk-variable-name-conflict/_expected/amd/generated-chunk.js b/test/chunking-form/samples/chunk-variable-name-conflict/_expected/amd/generated-chunk.js new file mode 100644 index 00000000000..27508b4e569 --- /dev/null +++ b/test/chunking-form/samples/chunk-variable-name-conflict/_expected/amd/generated-chunk.js @@ -0,0 +1,9 @@ +define(['exports'], function (exports) { 'use strict'; + + var value = 42; + const x = 3; + + exports.value = value; + exports.x = x; + +}); diff --git a/test/chunking-form/samples/chunk-variable-name-conflict/_expected/amd/main1.js b/test/chunking-form/samples/chunk-variable-name-conflict/_expected/amd/main1.js new file mode 100644 index 00000000000..256c83ff0f4 --- /dev/null +++ b/test/chunking-form/samples/chunk-variable-name-conflict/_expected/amd/main1.js @@ -0,0 +1,5 @@ +define(['./generated-chunk'], function (dep$1) { 'use strict'; + + [43].map(dep => console.log(dep, dep$1.value, dep$1.x)); + +}); diff --git a/test/chunking-form/samples/chunk-variable-name-conflict/_expected/amd/main2.js b/test/chunking-form/samples/chunk-variable-name-conflict/_expected/amd/main2.js new file mode 100644 index 00000000000..cbbad99d332 --- /dev/null +++ b/test/chunking-form/samples/chunk-variable-name-conflict/_expected/amd/main2.js @@ -0,0 +1,6 @@ +define(['./generated-chunk'], function (dep$1) { 'use strict'; + + var dep = 44; + console.log(dep, dep$1.value); + +}); diff --git a/test/chunking-form/samples/chunk-variable-name-conflict/_expected/cjs/generated-chunk.js b/test/chunking-form/samples/chunk-variable-name-conflict/_expected/cjs/generated-chunk.js new file mode 100644 index 00000000000..427976f2c38 --- /dev/null +++ b/test/chunking-form/samples/chunk-variable-name-conflict/_expected/cjs/generated-chunk.js @@ -0,0 +1,7 @@ +'use strict'; + +var value = 42; +const x = 3; + +exports.value = value; +exports.x = x; diff --git a/test/chunking-form/samples/chunk-variable-name-conflict/_expected/cjs/main1.js b/test/chunking-form/samples/chunk-variable-name-conflict/_expected/cjs/main1.js new file mode 100644 index 00000000000..e14ffec1c6c --- /dev/null +++ b/test/chunking-form/samples/chunk-variable-name-conflict/_expected/cjs/main1.js @@ -0,0 +1,5 @@ +'use strict'; + +var dep = require('./generated-chunk.js'); + +[43].map(dep$1 => console.log(dep$1, dep.value, dep.x)); diff --git a/test/chunking-form/samples/chunk-variable-name-conflict/_expected/cjs/main2.js b/test/chunking-form/samples/chunk-variable-name-conflict/_expected/cjs/main2.js new file mode 100644 index 00000000000..97fb68f403a --- /dev/null +++ b/test/chunking-form/samples/chunk-variable-name-conflict/_expected/cjs/main2.js @@ -0,0 +1,6 @@ +'use strict'; + +var dep$1 = require('./generated-chunk.js'); + +var dep = 44; +console.log(dep, dep$1.value); diff --git a/test/chunking-form/samples/chunk-variable-name-conflict/_expected/es/generated-chunk.js b/test/chunking-form/samples/chunk-variable-name-conflict/_expected/es/generated-chunk.js new file mode 100644 index 00000000000..4f5a085f8d2 --- /dev/null +++ b/test/chunking-form/samples/chunk-variable-name-conflict/_expected/es/generated-chunk.js @@ -0,0 +1,4 @@ +var value = 42; +const x = 3; + +export { value as v, x }; diff --git a/test/chunking-form/samples/chunk-variable-name-conflict/_expected/es/main1.js b/test/chunking-form/samples/chunk-variable-name-conflict/_expected/es/main1.js new file mode 100644 index 00000000000..d8668e418c9 --- /dev/null +++ b/test/chunking-form/samples/chunk-variable-name-conflict/_expected/es/main1.js @@ -0,0 +1,3 @@ +import { v as value, x } from './generated-chunk.js'; + +[43].map(dep => console.log(dep, value, x)); diff --git a/test/chunking-form/samples/chunk-variable-name-conflict/_expected/es/main2.js b/test/chunking-form/samples/chunk-variable-name-conflict/_expected/es/main2.js new file mode 100644 index 00000000000..b86533ba683 --- /dev/null +++ b/test/chunking-form/samples/chunk-variable-name-conflict/_expected/es/main2.js @@ -0,0 +1,4 @@ +import { v as value } from './generated-chunk.js'; + +var dep = 44; +console.log(dep, value); diff --git a/test/chunking-form/samples/chunk-variable-name-conflict/_expected/system/generated-chunk.js b/test/chunking-form/samples/chunk-variable-name-conflict/_expected/system/generated-chunk.js new file mode 100644 index 00000000000..d48918f6dca --- /dev/null +++ b/test/chunking-form/samples/chunk-variable-name-conflict/_expected/system/generated-chunk.js @@ -0,0 +1,11 @@ +System.register([], function (exports) { + 'use strict'; + return { + execute: function () { + + var value = exports('v', 42); + const x = exports('x', 3); + + } + }; +}); diff --git a/test/chunking-form/samples/chunk-variable-name-conflict/_expected/system/main1.js b/test/chunking-form/samples/chunk-variable-name-conflict/_expected/system/main1.js new file mode 100644 index 00000000000..80f256477e1 --- /dev/null +++ b/test/chunking-form/samples/chunk-variable-name-conflict/_expected/system/main1.js @@ -0,0 +1,15 @@ +System.register(['./generated-chunk.js'], function () { + 'use strict'; + var value, x; + return { + setters: [function (module) { + value = module.v; + x = module.x; + }], + execute: function () { + + [43].map(dep => console.log(dep, value, x)); + + } + }; +}); diff --git a/test/chunking-form/samples/chunk-variable-name-conflict/_expected/system/main2.js b/test/chunking-form/samples/chunk-variable-name-conflict/_expected/system/main2.js new file mode 100644 index 00000000000..0fc5b9fe1f9 --- /dev/null +++ b/test/chunking-form/samples/chunk-variable-name-conflict/_expected/system/main2.js @@ -0,0 +1,15 @@ +System.register(['./generated-chunk.js'], function () { + 'use strict'; + var value; + return { + setters: [function (module) { + value = module.v; + }], + execute: function () { + + var dep = 44; + console.log(dep, value); + + } + }; +}); diff --git a/test/chunking-form/samples/chunk-variable-name-conflict/dep.js b/test/chunking-form/samples/chunk-variable-name-conflict/dep.js new file mode 100644 index 00000000000..8d6f20e8104 --- /dev/null +++ b/test/chunking-form/samples/chunk-variable-name-conflict/dep.js @@ -0,0 +1,2 @@ +export default 42; +export const x = 3; diff --git a/test/chunking-form/samples/chunk-variable-name-conflict/main1.js b/test/chunking-form/samples/chunk-variable-name-conflict/main1.js new file mode 100644 index 00000000000..02013e35948 --- /dev/null +++ b/test/chunking-form/samples/chunk-variable-name-conflict/main1.js @@ -0,0 +1,2 @@ +import value, {x} from './dep.js'; +[43].map(dep => console.log(dep, value, x)); diff --git a/test/chunking-form/samples/chunk-variable-name-conflict/main2.js b/test/chunking-form/samples/chunk-variable-name-conflict/main2.js new file mode 100644 index 00000000000..6c9c208065b --- /dev/null +++ b/test/chunking-form/samples/chunk-variable-name-conflict/main2.js @@ -0,0 +1,3 @@ +import value from './dep.js'; +var dep = 44; +console.log(dep, value); diff --git a/test/cli/index.js b/test/cli/index.js index 1420d5db11d..13f496c171d 100644 --- a/test/cli/index.js +++ b/test/cli/index.js @@ -23,7 +23,8 @@ runTestSuiteWithSamples( done => { process.chdir(config.cwd || dir); - const command = 'node ' + path.resolve(__dirname, '../../bin') + path.sep + config.command; + const command = + 'node ' + path.resolve(__dirname, '../../dist/bin') + path.sep + config.command; const childProcess = exec(command, { timeout: 40000 }, (err, code, stderr) => { if (err && !err.killed) { diff --git a/tsconfig.json b/tsconfig.json index 47182080643..ff70763ff03 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -12,6 +12,6 @@ "strict": true, "target": "es2015" }, - "include": ["typings/**/*.d.ts", "src", "bin", "browser"], + "include": ["typings/**/*.d.ts", "src", "cli", "browser"], "exclude": ["dist", "node_modules", "test/typescript"] }