From 845a2b8a2ab2fb0ce2760abefb8c117313b37b04 Mon Sep 17 00:00:00 2001 From: Carl-Erik Kopseng Date: Fri, 25 May 2018 12:32:14 +0200 Subject: [PATCH 01/15] Initial attempt at fixing #1805 See sinonjs/sinon#1805 Not functional bundle. Gets this error: $ node -r esm -e 'import sinon from ./bundle-esm' file:///home/carlerik/dev/sinon/bundle-esm.js:1 import typeDetect from 'type-detect'; SyntaxError: Missing export 'default' in ES module: file:///home/carlerik/dev/sinon/node_modules/diff/lib/index.js at Object. (file:///home/carlerik/dev/sinon/bundle-esm.js:1) --- package-lock.json | 116 +++++++++++++++++++++++++++++++++++++++++----- package.json | 3 ++ rollup.config.js | 46 ++++++++++++++++++ 3 files changed, 153 insertions(+), 12 deletions(-) create mode 100644 rollup.config.js diff --git a/package-lock.json b/package-lock.json index 3650f6c18..ad2c2c8b0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -40,6 +40,7 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/@sinonjs/referee/-/referee-2.1.1.tgz", "integrity": "sha512-plsDNXJdEtE7TAqgaeojagzzh+vUrZzqNeSL7y6GjvfQfG9ItgNiu5qIX1enrYyJJdJoiUQAgmasZhHMT7O0Ig==", + "dev": true, "requires": { "array.from": "^1.0.3", "bane": "^1.x", @@ -50,6 +51,16 @@ "samsam": "^1.x" } }, + "@types/estree": { + "version": "0.0.39", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", + "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==" + }, + "@types/node": { + "version": "10.1.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.1.2.tgz", + "integrity": "sha512-bjk1RIeZBCe/WukrFToIVegOf91Pebr8cXYBwLBIsfiGWVQ+ifwWsT59H3RxrWzWrzd1l/Amk1/ioY5Fq3/bpA==" + }, "JSONStream": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.1.tgz", @@ -275,6 +286,7 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/array.from/-/array.from-1.0.3.tgz", "integrity": "sha1-y1hqrZIGfzQSKfQeDtZDKB26Vrc=", + "dev": true, "requires": { "define-properties": "^1.1.2", "es-abstract": "^1.6.1" @@ -383,7 +395,8 @@ "bane": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/bane/-/bane-1.1.2.tgz", - "integrity": "sha1-vGQkjMgjFgx98/I4uH/mLEThB7k=" + "integrity": "sha1-vGQkjMgjFgx98/I4uH/mLEThB7k=", + "dev": true }, "base64-js": { "version": "1.2.1", @@ -1253,6 +1266,7 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.2.tgz", "integrity": "sha1-g6c/L+pWmJj7c3GTyPhzyvbUXJQ=", + "dev": true, "requires": { "foreach": "^2.0.5", "object-keys": "^1.0.8" @@ -1433,6 +1447,7 @@ "version": "1.8.2", "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.8.2.tgz", "integrity": "sha512-dvhwFL3yjQxNNsOWx6exMlaDrRHCRGMQlnx5lsXDCZ/J7G/frgIIl94zhZSp/galVAYp7VzPi1OrAHta89/yGQ==", + "dev": true, "requires": { "es-to-primitive": "^1.1.1", "function-bind": "^1.1.1", @@ -1445,6 +1460,7 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.1.1.tgz", "integrity": "sha1-RTVSSKiJeQNLZ5Lhm7gfK3l13Q0=", + "dev": true, "requires": { "is-callable": "^1.1.1", "is-date-object": "^1.0.1", @@ -1454,7 +1470,8 @@ "es6-promise": { "version": "4.2.4", "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.4.tgz", - "integrity": "sha512-/NdNZVJg+uZgtm9eS3O6lrOLYmQag2DjdEXuPaHlZ6RuVqgqaVZfgYCepEIKsLqwdQArOPtC3XzRLqGGfT8KQQ==" + "integrity": "sha512-/NdNZVJg+uZgtm9eS3O6lrOLYmQag2DjdEXuPaHlZ6RuVqgqaVZfgYCepEIKsLqwdQArOPtC3XzRLqGGfT8KQQ==", + "dev": true }, "es6-promisify": { "version": "5.0.0", @@ -1662,6 +1679,12 @@ "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", "dev": true }, + "estree-walker": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.5.2.tgz", + "integrity": "sha512-XpCnW/AE10ws/kDAs37cngSkvgIR8aN3G0MS85m7dUpuK2EREo9VJ00uvw6Dg/hXEpfsE1I1TvJOJr+Z+TL+ig==", + "dev": true + }, "esutils": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", @@ -1932,7 +1955,8 @@ "foreach": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz", - "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=" + "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=", + "dev": true }, "from": { "version": "0.1.7", @@ -2478,7 +2502,8 @@ "function-bind": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true }, "functional-red-black-tree": { "version": "1.0.1", @@ -2648,6 +2673,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/has/-/has-1.0.1.tgz", "integrity": "sha1-hGFzP1OLCDfJNh45qauelwTcLyg=", + "dev": true, "requires": { "function-bind": "^1.0.2" } @@ -2895,7 +2921,8 @@ "is-callable": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.3.tgz", - "integrity": "sha1-hut1OSgF3cM69xySoO7fdO52BLI=" + "integrity": "sha1-hut1OSgF3cM69xySoO7fdO52BLI=", + "dev": true }, "is-ci": { "version": "1.0.10", @@ -2909,7 +2936,8 @@ "is-date-object": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz", - "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=" + "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=", + "dev": true }, "is-directory": { "version": "0.3.1", @@ -3044,6 +3072,7 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", + "dev": true, "requires": { "has": "^1.0.1" } @@ -3078,7 +3107,8 @@ "is-symbol": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.1.tgz", - "integrity": "sha1-PMWfAAJRlLarLjjbrmaJJWtmBXI=" + "integrity": "sha1-PMWfAAJRlLarLjjbrmaJJWtmBXI=", + "dev": true }, "is-unc-path": { "version": "0.1.2", @@ -3651,12 +3681,14 @@ "lodash.includes": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", - "integrity": "sha1-YLuYqHy5I8aMoeUTJUgzFISfVT8=" + "integrity": "sha1-YLuYqHy5I8aMoeUTJUgzFISfVT8=", + "dev": true }, "lodash.isarguments": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz", - "integrity": "sha1-L1c9hcaiQon/AGY7SRwdM4/zRYo=" + "integrity": "sha1-L1c9hcaiQon/AGY7SRwdM4/zRYo=", + "dev": true }, "lodash.memoize": { "version": "3.0.4", @@ -3737,6 +3769,15 @@ "yallist": "^2.1.2" } }, + "magic-string": { + "version": "0.22.5", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.22.5.tgz", + "integrity": "sha512-oreip9rJZkzvA8Qzk9HFs8fZGF/u7H/gtrE8EN6RjKJ9kh2HlC+yQ2QezifqTZfGyiuAV0dRv5a+y/8gBb1m9w==", + "dev": true, + "requires": { + "vlq": "^0.2.2" + } + }, "map-stream": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/map-stream/-/map-stream-0.1.0.tgz", @@ -4338,12 +4379,14 @@ "object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true }, "object-keys": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.11.tgz", - "integrity": "sha1-xUYBd4rVYPEULODgG8yotW0TQm0=" + "integrity": "sha1-xUYBd4rVYPEULODgG8yotW0TQm0=", + "dev": true }, "object.omit": { "version": "2.0.1", @@ -5238,6 +5281,48 @@ "inherits": "^2.0.1" } }, + "rollup": { + "version": "0.59.3", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-0.59.3.tgz", + "integrity": "sha512-A94GFMZlwwtS3t5p6jSTp9w4Asxu5C16NcEoQPUFPfl76FOHFA4bXjOdnirzBysdZqSS/2Dibhz1bdWZ/0UqQQ==", + "requires": { + "@types/estree": "0.0.39", + "@types/node": "*" + } + }, + "rollup-plugin-commonjs": { + "version": "9.1.3", + "resolved": "https://registry.npmjs.org/rollup-plugin-commonjs/-/rollup-plugin-commonjs-9.1.3.tgz", + "integrity": "sha512-g91ZZKZwTW7F7vL6jMee38I8coj/Q9GBdTmXXeFL7ldgC1Ky5WJvHgbKlAiXXTh762qvohhExwUgeQGFh9suGg==", + "dev": true, + "requires": { + "estree-walker": "^0.5.1", + "magic-string": "^0.22.4", + "resolve": "^1.5.0", + "rollup-pluginutils": "^2.0.1" + }, + "dependencies": { + "resolve": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.7.1.tgz", + "integrity": "sha512-c7rwLofp8g1U+h1KNyHL/jicrKg1Ek4q+Lr33AL65uZTinUZHe30D5HlyN5V9NW0JX1D5dXQ4jqW5l7Sy/kGfw==", + "dev": true, + "requires": { + "path-parse": "^1.0.5" + } + } + } + }, + "rollup-pluginutils": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.3.0.tgz", + "integrity": "sha512-xB6hsRsjdJdIYWEyYUJy/3ki5g69wrf0luHPGNK3ZSocV6HLNfio59l3dZ3TL4xUwEKgROhFi9jOCt6c5gfUWw==", + "dev": true, + "requires": { + "estree-walker": "^0.5.2", + "micromatch": "^2.3.11" + } + }, "run-async": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz", @@ -5294,7 +5379,8 @@ "samsam": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/samsam/-/samsam-1.3.0.tgz", - "integrity": "sha512-1HwIYD/8UlOtFS3QO3w7ey+SdSDFE4HRNLZoZRYVQefrOY3l17epswImeB1ijgJFQJodIaHcwkp3r/myBjFVbg==" + "integrity": "sha512-1HwIYD/8UlOtFS3QO3w7ey+SdSDFE4HRNLZoZRYVQefrOY3l17epswImeB1ijgJFQJodIaHcwkp3r/myBjFVbg==", + "dev": true }, "saucelabs": { "version": "1.5.0", @@ -5886,6 +5972,12 @@ "spdx-expression-parse": "~1.0.0" } }, + "vlq": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/vlq/-/vlq-0.2.3.tgz", + "integrity": "sha512-DRibZL6DsNhIgYQ+wNdWDL2SL3bKPlVrRiBqV5yuMm++op8W4kGFtaQfCs4KEJn0wBZcHVHJ3eoywX8983k1ow==", + "dev": true + }, "vm-browserify": { "version": "0.0.4", "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz", diff --git a/package.json b/package.json index 9fd3cc0e8..96b5561bd 100644 --- a/package.json +++ b/package.json @@ -24,6 +24,7 @@ "test": "run-s test-node test-headless test-webworker test-es-module", "check-dependencies": "dependency-check package.json --unused --no-dev --ignore-module coveralls --ignore-module esm", "build": "node ./build.js", + "build-esm": "rollup -c", "lint": "run-p lint-js lint-markdown", "lint-js": "eslint '**/*.{js,mjs}'", "lint-markdown": "find docs -type f -name '*.md' ! -name 'changelog.md' | xargs markdownlint", @@ -45,6 +46,7 @@ "lodash.get": "^4.4.2", "lolex": "^2.6.0", "nise": "^1.3.3", + "rollup": "^0.59.3", "supports-color": "^5.4.0", "type-detect": "^4.0.8" }, @@ -69,6 +71,7 @@ "proxyquire-universal": "^1.0.8", "proxyquireify": "^3.2.1", "rimraf": "^2.5.3", + "rollup-plugin-commonjs": "^9.1.3", "samsam": "^1.3.0" }, "files": [ diff --git a/rollup.config.js b/rollup.config.js new file mode 100644 index 000000000..4c77a3ecb --- /dev/null +++ b/rollup.config.js @@ -0,0 +1,46 @@ +// rollup.config.js +import commonjs from "rollup-plugin-commonjs"; +//import nodeResolve from "rollup-plugin-node-resolve"; + +export default { + input: "./lib/sinon.js", + output: { + file: "pkg/bundle-esm.js", + format: "esm" + }, + plugins: [ + //nodeResolve({ + //jsnext: true, + //main: true + //}), + + commonjs({ + // non-CommonJS modules will be ignored, but you can also + // specifically include/exclude files + //include: "node_modules/**", // Default: undefined + //exclude: ["node_modules/foo/**", "node_modules/bar/**"], // Default: undefined + // these values can also be regular expressions + // include: /node_modules/ + + // search for files other than .js files (must already + // be transpiled by a previous plugin!) + //extensions: [".js", ".coffee"], // Default: [ '.js' ] + + // if true then uses of `global` won't be dealt with by this plugin + ignoreGlobal: false, // Default: false + + // if false then skip sourceMap generation for CommonJS modules + sourceMap: false // Default: true + + // explicitly specify unresolvable named exports + // (see below for more details) + //namedExports: { "./module.js": ["foo", "bar"] }, // Default: undefined + + // sometimes you have to leave require statements + // unconverted. Pass an array containing the IDs + // or a `id => boolean` function. Only use this + // option if you know what you're doing! + //ignore: ["conditional-runtime-dependency"] + }) + ] +}; From ce525169a1761766fae6d309ce3c00bebb00c7a4 Mon Sep 17 00:00:00 2001 From: Carl-Erik Kopseng Date: Fri, 25 May 2018 13:30:02 +0200 Subject: [PATCH 02/15] Make workable bundle --- .eslintignore | 3 +++ package-lock.json | 25 +++++++++++++++++++++++++ package.json | 1 + rollup.config.js | 15 ++++++++------- 4 files changed, 37 insertions(+), 7 deletions(-) diff --git a/.eslintignore b/.eslintignore index 67fe9ce0c..976cc7dd7 100644 --- a/.eslintignore +++ b/.eslintignore @@ -5,3 +5,6 @@ docs/_site/ docs/js/ docs/releases/ docs/assets/js/ + +# has "invalid" ESM syntax +rollup.config.js diff --git a/package-lock.json b/package-lock.json index ad2c2c8b0..dab18ecf5 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2996,6 +2996,12 @@ "is-extglob": "^2.1.1" } }, + "is-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", + "integrity": "sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE=", + "dev": true + }, "is-number": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", @@ -5313,6 +5319,25 @@ } } }, + "rollup-plugin-node-resolve": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/rollup-plugin-node-resolve/-/rollup-plugin-node-resolve-3.3.0.tgz", + "integrity": "sha512-9zHGr3oUJq6G+X0oRMYlzid9fXicBdiydhwGChdyeNRGPcN/majtegApRKHLR5drboUvEWU+QeUmGTyEZQs3WA==", + "dev": true, + "requires": { + "builtin-modules": "^2.0.0", + "is-module": "^1.0.0", + "resolve": "^1.1.6" + }, + "dependencies": { + "builtin-modules": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-2.0.0.tgz", + "integrity": "sha512-3U5kUA5VPsRUA3nofm/BXX7GVHKfxz0hOBAPxXrIvHzlDRkQVqEn6yi8QJegxl4LzOHLdvb7XF5dVawa/VVYBg==", + "dev": true + } + } + }, "rollup-pluginutils": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.3.0.tgz", diff --git a/package.json b/package.json index 96b5561bd..d2b78e133 100644 --- a/package.json +++ b/package.json @@ -72,6 +72,7 @@ "proxyquireify": "^3.2.1", "rimraf": "^2.5.3", "rollup-plugin-commonjs": "^9.1.3", + "rollup-plugin-node-resolve": "^3.3.0", "samsam": "^1.3.0" }, "files": [ diff --git a/rollup.config.js b/rollup.config.js index 4c77a3ecb..11debc3ba 100644 --- a/rollup.config.js +++ b/rollup.config.js @@ -1,6 +1,5 @@ -// rollup.config.js import commonjs from "rollup-plugin-commonjs"; -//import nodeResolve from "rollup-plugin-node-resolve"; +import nodeResolve from "rollup-plugin-node-resolve"; export default { input: "./lib/sinon.js", @@ -9,10 +8,10 @@ export default { format: "esm" }, plugins: [ - //nodeResolve({ - //jsnext: true, - //main: true - //}), + nodeResolve({ + jsnext: true, + main: true + }), commonjs({ // non-CommonJS modules will be ignored, but you can also @@ -34,7 +33,9 @@ export default { // explicitly specify unresolvable named exports // (see below for more details) - //namedExports: { "./module.js": ["foo", "bar"] }, // Default: undefined + //namedExports: { + //"node_modules/diff/lib/index.js": ["default"] + //} // Default: undefined // sometimes you have to leave require statements // unconverted. Pass an array containing the IDs From 0ec297d2eae712389764be16d7a78aa30c88a9d1 Mon Sep 17 00:00:00 2001 From: Carl-Erik Kopseng Date: Fri, 25 May 2018 13:42:09 +0200 Subject: [PATCH 03/15] Add the 'module' keyword for recognition in Rollup and other ESM bundlers fixes #1805 --- package.json | 1 + 1 file changed, 1 insertion(+) diff --git a/package.json b/package.json index d2b78e133..e73086eed 100644 --- a/package.json +++ b/package.json @@ -86,6 +86,7 @@ "README.md" ], "main": "./lib/sinon.js", + "module": "./pkg/bundle-esm.js", "cdn": "./pkg/sinon.js", "jsdelivr": "./pkg/sinon.js" } From 17f1b05ef803fb61eb38f00e01340b1bd6443947 Mon Sep 17 00:00:00 2001 From: Carl-Erik Kopseng Date: Fri, 25 May 2018 14:06:51 +0200 Subject: [PATCH 04/15] Add sourcemapping --- rollup.config.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rollup.config.js b/rollup.config.js index 11debc3ba..31b2bb901 100644 --- a/rollup.config.js +++ b/rollup.config.js @@ -29,7 +29,7 @@ export default { ignoreGlobal: false, // Default: false // if false then skip sourceMap generation for CommonJS modules - sourceMap: false // Default: true + sourceMap: true // Default: true // explicitly specify unresolvable named exports // (see below for more details) From 5dc266998a8e4d8918624b913b8893015625dd95 Mon Sep 17 00:00:00 2001 From: Carl-Erik Kopseng Date: Fri, 25 May 2018 14:11:18 +0200 Subject: [PATCH 05/15] Fix module format Worked accidentally? --- rollup.config.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rollup.config.js b/rollup.config.js index 31b2bb901..e716c2103 100644 --- a/rollup.config.js +++ b/rollup.config.js @@ -5,7 +5,7 @@ export default { input: "./lib/sinon.js", output: { file: "pkg/bundle-esm.js", - format: "esm" + format: "es" }, plugins: [ nodeResolve({ From 9e4705ddbc2905cd68d3cb2e02919f8ee187761d Mon Sep 17 00:00:00 2001 From: Carl-Erik Kopseng Date: Fri, 25 May 2018 14:12:37 +0200 Subject: [PATCH 06/15] Move rollup into dev --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index e73086eed..d067c4308 100644 --- a/package.json +++ b/package.json @@ -46,7 +46,6 @@ "lodash.get": "^4.4.2", "lolex": "^2.6.0", "nise": "^1.3.3", - "rollup": "^0.59.3", "supports-color": "^5.4.0", "type-detect": "^4.0.8" }, @@ -71,6 +70,7 @@ "proxyquire-universal": "^1.0.8", "proxyquireify": "^3.2.1", "rimraf": "^2.5.3", + "rollup": "^0.59.3", "rollup-plugin-commonjs": "^9.1.3", "rollup-plugin-node-resolve": "^3.3.0", "samsam": "^1.3.0" From 825d5b5e52f6f07c92d212514e6d08428cbb2551 Mon Sep 17 00:00:00 2001 From: Carl-Erik Kopseng Date: Fri, 25 May 2018 14:23:54 +0200 Subject: [PATCH 07/15] Remove warning on OS module --- package-lock.json | 416 +++++++++++++++++++++++++++++++++++++++++++++- package.json | 1 + rollup.config.js | 2 + 3 files changed, 413 insertions(+), 6 deletions(-) diff --git a/package-lock.json b/package-lock.json index dab18ecf5..971e68d46 100644 --- a/package-lock.json +++ b/package-lock.json @@ -54,12 +54,14 @@ "@types/estree": { "version": "0.0.39", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", - "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==" + "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==", + "dev": true }, "@types/node": { "version": "10.1.2", "resolved": "https://registry.npmjs.org/@types/node/-/node-10.1.2.tgz", - "integrity": "sha512-bjk1RIeZBCe/WukrFToIVegOf91Pebr8cXYBwLBIsfiGWVQ+ifwWsT59H3RxrWzWrzd1l/Amk1/ioY5Fq3/bpA==" + "integrity": "sha512-bjk1RIeZBCe/WukrFToIVegOf91Pebr8cXYBwLBIsfiGWVQ+ifwWsT59H3RxrWzWrzd1l/Amk1/ioY5Fq3/bpA==", + "dev": true }, "JSONStream": { "version": "1.3.1", @@ -77,6 +79,23 @@ "integrity": "sha1-kbR5JYinc4wl813W9jdSovh3YTU=", "dev": true }, + "abstract-leveldown": { + "version": "0.12.4", + "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-0.12.4.tgz", + "integrity": "sha1-KeGOYy5g5OIh1YECR4UqY9ey5BA=", + "dev": true, + "requires": { + "xtend": "~3.0.0" + }, + "dependencies": { + "xtend": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-3.0.0.tgz", + "integrity": "sha1-XM50B7r2Qsunvs2laBEcST9ZZlo=", + "dev": true + } + } + }, "acorn": { "version": "4.0.13", "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz", @@ -410,6 +429,35 @@ "integrity": "sha1-RqoXUftqL5PuXmibsQh9SxTGwgU=", "dev": true }, + "bl": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/bl/-/bl-0.8.2.tgz", + "integrity": "sha1-yba8oI0bwuoA/Ir7Txpf0eHGbk4=", + "dev": true, + "requires": { + "readable-stream": "~1.0.26" + }, + "dependencies": { + "readable-stream": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true + } + } + }, "bn.js": { "version": "4.11.8", "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", @@ -662,6 +710,17 @@ "inherits": "^2.0.1" } }, + "browserify-fs": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/browserify-fs/-/browserify-fs-1.0.0.tgz", + "integrity": "sha1-8HWqinKdTRcW0GZiDjhvzBMRqW8=", + "dev": true, + "requires": { + "level-filesystem": "^1.0.1", + "level-js": "^2.1.3", + "levelup": "^0.18.2" + } + }, "browserify-rsa": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz", @@ -706,6 +765,12 @@ "ieee754": "^1.1.4" } }, + "buffer-es6": { + "version": "4.9.3", + "resolved": "https://registry.npmjs.org/buffer-es6/-/buffer-es6-4.9.3.tgz", + "integrity": "sha1-8mNHuC33b9N+GLy1KIxJcM/VxAQ=", + "dev": true + }, "buffer-from": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.0.0.tgz", @@ -954,6 +1019,12 @@ } } }, + "clone": { + "version": "0.1.19", + "resolved": "https://registry.npmjs.org/clone/-/clone-0.1.19.tgz", + "integrity": "sha1-YT+2hjmyaklKxTJT4Vsaa9iK2oU=", + "dev": true + }, "co": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", @@ -1262,6 +1333,15 @@ "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", "dev": true }, + "deferred-leveldown": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/deferred-leveldown/-/deferred-leveldown-0.2.0.tgz", + "integrity": "sha1-LO8fER4cV4cNi7uK8mUOWHzS9bQ=", + "dev": true, + "requires": { + "abstract-leveldown": "~0.12.1" + } + }, "define-properties": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.2.tgz", @@ -1434,6 +1514,15 @@ "integrity": "sha1-blwtClYhtdra7O+AuQ7ftc13cvA=", "dev": true }, + "errno": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz", + "integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==", + "dev": true, + "requires": { + "prr": "~1.0.1" + } + }, "error-ex": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz", @@ -2031,7 +2120,8 @@ "code-point-at": { "version": "1.1.0", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "concat-map": { "version": "0.0.1", @@ -2041,7 +2131,8 @@ "console-control-strings": { "version": "1.1.0", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "core-util-is": { "version": "1.0.2", @@ -2158,7 +2249,8 @@ "inherits": { "version": "2.0.3", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "ini": { "version": "1.3.5", @@ -2170,6 +2262,7 @@ "version": "1.0.0", "bundled": true, "dev": true, + "optional": true, "requires": { "number-is-nan": "^1.0.0" } @@ -2295,7 +2388,8 @@ "number-is-nan": { "version": "1.0.1", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "object-assign": { "version": "4.1.1", @@ -2511,6 +2605,35 @@ "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", "dev": true }, + "fwd-stream": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/fwd-stream/-/fwd-stream-1.0.4.tgz", + "integrity": "sha1-7Sgcq+1G/uz5Ie4y3ExQs3KsfPo=", + "dev": true, + "requires": { + "readable-stream": "~1.0.26-4" + }, + "dependencies": { + "readable-stream": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true + } + } + }, "get-own-enumerable-property-symbols": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-2.0.1.tgz", @@ -2786,6 +2909,12 @@ "safer-buffer": ">= 2.1.2 < 3" } }, + "idb-wrapper": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/idb-wrapper/-/idb-wrapper-1.7.2.tgz", + "integrity": "sha512-zfNREywMuf0NzDo9mVsL0yegjsirJxHpKHvWcyRozIqQy89g0a3U+oBPOCN4cc0oCiOuYgZHimzaW/R46G1Mpg==", + "dev": true + }, "ieee754": { "version": "1.1.8", "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.8.tgz", @@ -2888,6 +3017,12 @@ "xtend": "^4.0.0" } }, + "is": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/is/-/is-0.2.7.tgz", + "integrity": "sha1-OzSixI81mXLzUEKEkZOucmS2NWI=", + "dev": true + }, "is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", @@ -3130,6 +3265,12 @@ "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" }, + "isbuffer": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/isbuffer/-/isbuffer-0.0.0.tgz", + "integrity": "sha1-OMFG2d9Si4v5sHAcPUPPEt8/w5s=", + "dev": true + }, "isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", @@ -3337,6 +3478,220 @@ "dev": true, "optional": true }, + "level-blobs": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/level-blobs/-/level-blobs-0.1.7.tgz", + "integrity": "sha1-mrm5e7mfHtv594o0M+Ie1WOGva8=", + "dev": true, + "requires": { + "level-peek": "1.0.6", + "once": "^1.3.0", + "readable-stream": "^1.0.26-4" + }, + "dependencies": { + "readable-stream": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true + } + } + }, + "level-filesystem": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/level-filesystem/-/level-filesystem-1.2.0.tgz", + "integrity": "sha1-oArKmRnEpN+v3KaoEI0iWq3/Y7M=", + "dev": true, + "requires": { + "concat-stream": "^1.4.4", + "errno": "^0.1.1", + "fwd-stream": "^1.0.4", + "level-blobs": "^0.1.7", + "level-peek": "^1.0.6", + "level-sublevel": "^5.2.0", + "octal": "^1.0.0", + "once": "^1.3.0", + "xtend": "^2.2.0" + }, + "dependencies": { + "xtend": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-2.2.0.tgz", + "integrity": "sha1-7vax8ZjByN6vrYsXZaBNrUoBxak=", + "dev": true + } + } + }, + "level-fix-range": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/level-fix-range/-/level-fix-range-1.0.2.tgz", + "integrity": "sha1-vxW5Fa422EcMgh6IPd95zRZCCCg=", + "dev": true + }, + "level-hooks": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/level-hooks/-/level-hooks-4.5.0.tgz", + "integrity": "sha1-G5rmGSKTDzMF0aYfxNg8gQLA3ZM=", + "dev": true, + "requires": { + "string-range": "~1.2" + } + }, + "level-js": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/level-js/-/level-js-2.2.4.tgz", + "integrity": "sha1-vAVfQYBjXUSJtWHJSG+jcOjBFpc=", + "dev": true, + "requires": { + "abstract-leveldown": "~0.12.0", + "idb-wrapper": "^1.5.0", + "isbuffer": "~0.0.0", + "ltgt": "^2.1.2", + "typedarray-to-buffer": "~1.0.0", + "xtend": "~2.1.2" + }, + "dependencies": { + "object-keys": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-0.4.0.tgz", + "integrity": "sha1-KKaq50KN0sOpLz2V8hM13SBOAzY=", + "dev": true + }, + "xtend": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-2.1.2.tgz", + "integrity": "sha1-bv7MKk2tjmlixJAbM3znuoe10os=", + "dev": true, + "requires": { + "object-keys": "~0.4.0" + } + } + } + }, + "level-peek": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/level-peek/-/level-peek-1.0.6.tgz", + "integrity": "sha1-vsUccqgu5GTTNkNMfIdsP8vM538=", + "dev": true, + "requires": { + "level-fix-range": "~1.0.2" + } + }, + "level-sublevel": { + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/level-sublevel/-/level-sublevel-5.2.3.tgz", + "integrity": "sha1-dEwSxy0ucr543eO5tc2E1iGRQTo=", + "dev": true, + "requires": { + "level-fix-range": "2.0", + "level-hooks": ">=4.4.0 <5", + "string-range": "~1.2.1", + "xtend": "~2.0.4" + }, + "dependencies": { + "is-object": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/is-object/-/is-object-0.1.2.tgz", + "integrity": "sha1-AO+8CIFsM8/ErIJR0TLhDcZQmNc=", + "dev": true + }, + "level-fix-range": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/level-fix-range/-/level-fix-range-2.0.0.tgz", + "integrity": "sha1-xBfWIVlEIVGhnZojZ4aPFyTC1Ug=", + "dev": true, + "requires": { + "clone": "~0.1.9" + } + }, + "object-keys": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-0.2.0.tgz", + "integrity": "sha1-zd7AKZiwkb5CvxA1rjLknxy26mc=", + "dev": true, + "requires": { + "foreach": "~2.0.1", + "indexof": "~0.0.1", + "is": "~0.2.6" + } + }, + "xtend": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-2.0.6.tgz", + "integrity": "sha1-XqZXptukRwacLlnFihE4ywxebO4=", + "dev": true, + "requires": { + "is-object": "~0.1.2", + "object-keys": "~0.2.0" + } + } + } + }, + "levelup": { + "version": "0.18.6", + "resolved": "https://registry.npmjs.org/levelup/-/levelup-0.18.6.tgz", + "integrity": "sha1-5qAcsIlhbI7MApHCqb0/DETj5es=", + "dev": true, + "requires": { + "bl": "~0.8.1", + "deferred-leveldown": "~0.2.0", + "errno": "~0.1.1", + "prr": "~0.0.0", + "readable-stream": "~1.0.26", + "semver": "~2.3.1", + "xtend": "~3.0.0" + }, + "dependencies": { + "prr": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/prr/-/prr-0.0.0.tgz", + "integrity": "sha1-GoS4WQgyVQFBGFPQCB7j+obikmo=", + "dev": true + }, + "readable-stream": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "semver": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-2.3.2.tgz", + "integrity": "sha1-uYSPJdbPNjMwc+ye+IVtQvEjPlI=", + "dev": true + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true + }, + "xtend": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-3.0.0.tgz", + "integrity": "sha1-XM50B7r2Qsunvs2laBEcST9ZZlo=", + "dev": true + } + } + }, "leven": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/leven/-/leven-2.1.0.tgz", @@ -3775,6 +4130,12 @@ "yallist": "^2.1.2" } }, + "ltgt": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ltgt/-/ltgt-2.2.1.tgz", + "integrity": "sha1-81ypHEk/e3PaDgdJUwTxezH4fuU=", + "dev": true + }, "magic-string": { "version": "0.22.5", "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.22.5.tgz", @@ -4404,6 +4765,12 @@ "is-extendable": "^0.1.1" } }, + "octal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/octal/-/octal-1.0.0.tgz", + "integrity": "sha1-Y+cWKmjvvrniE1iNWOmJ0eXEUws=", + "dev": true + }, "once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", @@ -4800,6 +5167,12 @@ "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", "dev": true }, + "process-es6": { + "version": "0.11.6", + "resolved": "https://registry.npmjs.org/process-es6/-/process-es6-0.11.6.tgz", + "integrity": "sha1-xrs4n5qVH4K9TrFpYAEFvS/5x3g=", + "dev": true + }, "process-nextick-args": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", @@ -4925,6 +5298,12 @@ } } }, + "prr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", + "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", + "dev": true + }, "ps-tree": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/ps-tree/-/ps-tree-1.1.0.tgz", @@ -5291,6 +5670,7 @@ "version": "0.59.3", "resolved": "https://registry.npmjs.org/rollup/-/rollup-0.59.3.tgz", "integrity": "sha512-A94GFMZlwwtS3t5p6jSTp9w4Asxu5C16NcEoQPUFPfl76FOHFA4bXjOdnirzBysdZqSS/2Dibhz1bdWZ/0UqQQ==", + "dev": true, "requires": { "@types/estree": "0.0.39", "@types/node": "*" @@ -5319,6 +5699,18 @@ } } }, + "rollup-plugin-node-builtins": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/rollup-plugin-node-builtins/-/rollup-plugin-node-builtins-2.1.2.tgz", + "integrity": "sha1-JKH+1KQyV7a2Q3HYq8bOGrFFl+k=", + "dev": true, + "requires": { + "browserify-fs": "^1.0.0", + "buffer-es6": "^4.9.2", + "crypto-browserify": "^3.11.0", + "process-es6": "^0.11.2" + } + }, "rollup-plugin-node-resolve": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/rollup-plugin-node-resolve/-/rollup-plugin-node-resolve-3.3.0.tgz", @@ -5651,6 +6043,12 @@ "any-observable": "^0.2.0" } }, + "string-range": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/string-range/-/string-range-1.2.2.tgz", + "integrity": "sha1-qJPtNH5yKZvIO++78qaSqNI51d0=", + "dev": true + }, "string-width": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", @@ -5903,6 +6301,12 @@ "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", "dev": true }, + "typedarray-to-buffer": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-1.0.4.tgz", + "integrity": "sha1-m7i6DoQfs/TPH+fCRenz+opf6Zw=", + "dev": true + }, "uc.micro": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.5.tgz", diff --git a/package.json b/package.json index d067c4308..1f3469563 100644 --- a/package.json +++ b/package.json @@ -72,6 +72,7 @@ "rimraf": "^2.5.3", "rollup": "^0.59.3", "rollup-plugin-commonjs": "^9.1.3", + "rollup-plugin-node-builtins": "^2.1.2", "rollup-plugin-node-resolve": "^3.3.0", "samsam": "^1.3.0" }, diff --git a/rollup.config.js b/rollup.config.js index e716c2103..638085d2e 100644 --- a/rollup.config.js +++ b/rollup.config.js @@ -1,5 +1,6 @@ import commonjs from "rollup-plugin-commonjs"; import nodeResolve from "rollup-plugin-node-resolve"; +import builtins from "rollup-plugin-node-builtins"; export default { input: "./lib/sinon.js", @@ -8,6 +9,7 @@ export default { format: "es" }, plugins: [ + builtins(), nodeResolve({ jsnext: true, main: true From c06c8e6cc99dd1f9be445b6ccd0c6334c56fc9ff Mon Sep 17 00:00:00 2001 From: Carl-Erik Kopseng Date: Fri, 25 May 2018 14:25:00 +0200 Subject: [PATCH 08/15] Remove comments --- rollup.config.js | 26 -------------------------- 1 file changed, 26 deletions(-) diff --git a/rollup.config.js b/rollup.config.js index 638085d2e..be4e31dd4 100644 --- a/rollup.config.js +++ b/rollup.config.js @@ -16,34 +16,8 @@ export default { }), commonjs({ - // non-CommonJS modules will be ignored, but you can also - // specifically include/exclude files - //include: "node_modules/**", // Default: undefined - //exclude: ["node_modules/foo/**", "node_modules/bar/**"], // Default: undefined - // these values can also be regular expressions - // include: /node_modules/ - - // search for files other than .js files (must already - // be transpiled by a previous plugin!) - //extensions: [".js", ".coffee"], // Default: [ '.js' ] - - // if true then uses of `global` won't be dealt with by this plugin - ignoreGlobal: false, // Default: false - // if false then skip sourceMap generation for CommonJS modules sourceMap: true // Default: true - - // explicitly specify unresolvable named exports - // (see below for more details) - //namedExports: { - //"node_modules/diff/lib/index.js": ["default"] - //} // Default: undefined - - // sometimes you have to leave require statements - // unconverted. Pass an array containing the IDs - // or a `id => boolean` function. Only use this - // option if you know what you're doing! - //ignore: ["conditional-runtime-dependency"] }) ] }; From eb86d80148b56294d011bb40ab78a36ffccd2169 Mon Sep 17 00:00:00 2001 From: Carl-Erik Kopseng Date: Fri, 25 May 2018 14:26:22 +0200 Subject: [PATCH 09/15] Rename file --- package.json | 2 +- rollup.config.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 1f3469563..e31247de8 100644 --- a/package.json +++ b/package.json @@ -87,7 +87,7 @@ "README.md" ], "main": "./lib/sinon.js", - "module": "./pkg/bundle-esm.js", + "module": "./pkg/sinon-esm.js", "cdn": "./pkg/sinon.js", "jsdelivr": "./pkg/sinon.js" } diff --git a/rollup.config.js b/rollup.config.js index be4e31dd4..4b1b73ad0 100644 --- a/rollup.config.js +++ b/rollup.config.js @@ -5,7 +5,7 @@ import builtins from "rollup-plugin-node-builtins"; export default { input: "./lib/sinon.js", output: { - file: "pkg/bundle-esm.js", + file: "pkg/sinon-esm.js", format: "es" }, plugins: [ From e3d9fd27ff2ee44f5f13ed73a102b6c240b876d8 Mon Sep 17 00:00:00 2001 From: Carl-Erik Kopseng Date: Fri, 25 May 2018 14:52:16 +0200 Subject: [PATCH 10/15] Fix problem of missing Node global 'process' --- package-lock.json | 35 ++++++++++++++++++++++++++--------- package.json | 1 + rollup.config.js | 7 +++++-- 3 files changed, 32 insertions(+), 11 deletions(-) diff --git a/package-lock.json b/package-lock.json index 971e68d46..aaeb6ee25 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2120,8 +2120,7 @@ "code-point-at": { "version": "1.1.0", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "concat-map": { "version": "0.0.1", @@ -2131,8 +2130,7 @@ "console-control-strings": { "version": "1.1.0", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "core-util-is": { "version": "1.0.2", @@ -2249,8 +2247,7 @@ "inherits": { "version": "2.0.3", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "ini": { "version": "1.3.5", @@ -2262,7 +2259,6 @@ "version": "1.0.0", "bundled": true, "dev": true, - "optional": true, "requires": { "number-is-nan": "^1.0.0" } @@ -2388,8 +2384,7 @@ "number-is-nan": { "version": "1.0.1", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "object-assign": { "version": "4.1.1", @@ -5711,6 +5706,28 @@ "process-es6": "^0.11.2" } }, + "rollup-plugin-node-globals": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/rollup-plugin-node-globals/-/rollup-plugin-node-globals-1.2.1.tgz", + "integrity": "sha512-PZgkJkVLWZRdwx33GaAeD92UjmvCM7kM9i/8wgoe9hN901RrjVs8eVjg5DzQ+2kGZSiqyx0aiIunLnOOCWshWQ==", + "dev": true, + "requires": { + "acorn": "^5.5.0", + "buffer-es6": "^4.9.3", + "estree-walker": "^0.5.1", + "magic-string": "^0.22.4", + "process-es6": "^0.11.6", + "rollup-pluginutils": "^2.0.1" + }, + "dependencies": { + "acorn": { + "version": "5.5.3", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.5.3.tgz", + "integrity": "sha512-jd5MkIUlbbmb07nXH0DT3y7rDVtkzDi4XZOUVWAer8ajmF/DTSSbl5oNFyDOl/OXA33Bl79+ypHhl2pN20VeOQ==", + "dev": true + } + } + }, "rollup-plugin-node-resolve": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/rollup-plugin-node-resolve/-/rollup-plugin-node-resolve-3.3.0.tgz", diff --git a/package.json b/package.json index e31247de8..73741532f 100644 --- a/package.json +++ b/package.json @@ -73,6 +73,7 @@ "rollup": "^0.59.3", "rollup-plugin-commonjs": "^9.1.3", "rollup-plugin-node-builtins": "^2.1.2", + "rollup-plugin-node-globals": "^1.2.1", "rollup-plugin-node-resolve": "^3.3.0", "samsam": "^1.3.0" }, diff --git a/rollup.config.js b/rollup.config.js index 4b1b73ad0..43eb40663 100644 --- a/rollup.config.js +++ b/rollup.config.js @@ -1,6 +1,7 @@ import commonjs from "rollup-plugin-commonjs"; import nodeResolve from "rollup-plugin-node-resolve"; import builtins from "rollup-plugin-node-builtins"; +import globals from "rollup-plugin-node-globals"; export default { input: "./lib/sinon.js", @@ -9,7 +10,6 @@ export default { format: "es" }, plugins: [ - builtins(), nodeResolve({ jsnext: true, main: true @@ -18,6 +18,9 @@ export default { commonjs({ // if false then skip sourceMap generation for CommonJS modules sourceMap: true // Default: true - }) + }), + + builtins(), + globals() ] }; From 19705f8dd490005c5dc74c823611fdbe11aa8d7d Mon Sep 17 00:00:00 2001 From: Carl-Erik Kopseng Date: Mon, 28 May 2018 23:55:35 +0200 Subject: [PATCH 11/15] Post-build hook that tests the built ECMAScript Module closes #1805 --- package.json | 10 ++- test/es2015/.eslintrc.yml | 1 + test/es2015/check-esm-bundle-is-runnable.js | 71 +++++++++++++++++++++ 3 files changed, 79 insertions(+), 3 deletions(-) create mode 100644 test/es2015/check-esm-bundle-is-runnable.js diff --git a/package.json b/package.json index 73741532f..8d17ba047 100644 --- a/package.json +++ b/package.json @@ -20,10 +20,12 @@ "test-coverage": "mochify --recursive -R dot --grep WebWorker --invert --plugin [ proxyquire-universal ] --plugin [ mochify-istanbul --exclude '**/test/**' --report text --report lcovonly --dir ./coverage ] test/**.js", "test-cloud": "npm run test-headless -- --wd", "test-webworker": "mochify --https-server 8080 test/webworker/webworker-support-assessment.js", - "test-es-module": "mocha -r esm test/es2015/module-support-assessment-test.mjs", - "test": "run-s test-node test-headless test-webworker test-es-module", + "test-esm": "mocha -r esm test/es2015/module-support-assessment-test.mjs", + "test-esm-bundle": "node test/es2015/check-esm-bundle-is-runnable.js", + "test": "run-s test-node test-headless test-webworker test-esm", "check-dependencies": "dependency-check package.json --unused --no-dev --ignore-module coveralls --ignore-module esm", - "build": "node ./build.js", + "build": "run-p build-*", + "build-bundle": "node ./build.js", "build-esm": "rollup -c", "lint": "run-p lint-js lint-markdown", "lint-js": "eslint '**/*.{js,mjs}'", @@ -31,6 +33,7 @@ "precommit": "lint-staged", "pretest-webworker": "npm run build", "prebuild": "rimraf pkg && npm run check-dependencies", + "postbuild": "run-s test-esm-bundle", "prepublishOnly": "npm run build", "preversion": "./scripts/preversion.sh", "postversion": "./scripts/postversion.sh" @@ -69,6 +72,7 @@ "proxyquire": "^1.8.0", "proxyquire-universal": "^1.0.8", "proxyquireify": "^3.2.1", + "puppeteer": "^1.4.0", "rimraf": "^2.5.3", "rollup": "^0.59.3", "rollup-plugin-commonjs": "^9.1.3", diff --git a/test/es2015/.eslintrc.yml b/test/es2015/.eslintrc.yml index add5a7856..f1b3da266 100644 --- a/test/es2015/.eslintrc.yml +++ b/test/es2015/.eslintrc.yml @@ -1,2 +1,3 @@ parserOptions: sourceType: module + ecmaVersion: 2017 diff --git a/test/es2015/check-esm-bundle-is-runnable.js b/test/es2015/check-esm-bundle-is-runnable.js new file mode 100644 index 000000000..b54e2302f --- /dev/null +++ b/test/es2015/check-esm-bundle-is-runnable.js @@ -0,0 +1,71 @@ +/* eslint-disable no-process-exit */ +const puppeteer = require("puppeteer"); + +const http = require("http"); +const fs = require("fs"); +const port = 3876; + +const htmlWithModuleScript = ` + +`; + +// start server where our built sinon esm bundle resides +process.chdir(`${__dirname}/../../pkg/`); +const sinonModule = fs.readFileSync("./sinon-esm.js"); + +async function evaluatePageContent() { + const browser = await puppeteer.launch(); + const page = await browser.newPage(); + + page.on("error", function (err) { + throw err; + }); + + // our "assertion framework" :) + page.on("console", function (msg) { + var text = msg.text(); + + if (text.startsWith("sinon-result:works")) { + browser.close(); + process.exit(0); + } else if (text.startsWith("sinon-result:fails")) { + browser.close(); + process.exit(1); + } + }); + + await page.goto("http://localhost:3876"); +} + +const app = http.createServer((req, res) => { + let body, type; + + if (req.url.match(/sinon-esm\.js/)) { + body = sinonModule; + type = "application/javascript"; + } else { + body = htmlWithModuleScript; + type = "text/html"; + } + + const headers = { + "Content-Length": Buffer.byteLength(body), + "Content-Type": type + }; + res.writeHead(200, headers); + res.end(body); +}); + +app.listen(port, evaluatePageContent); From 8b8b359593a4633cb09030f3d1754925795bd702 Mon Sep 17 00:00:00 2001 From: Carl-Erik Kopseng Date: Tue, 29 May 2018 09:10:50 +0200 Subject: [PATCH 12/15] Only run *-test.js files in testrunners --- package.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package.json b/package.json index 8d17ba047..68fa2a022 100644 --- a/package.json +++ b/package.json @@ -14,10 +14,10 @@ }, "license": "BSD-3-Clause", "scripts": { - "test-node": "mocha --recursive -R dot test/", + "test-node": "mocha --recursive -R dot test/**-test.js", "test-dev": "npm run test-node -- --watch -R min", - "test-headless": "mochify --recursive -R dot --grep WebWorker --invert --plugin [ proxyquire-universal ] test/**.js", - "test-coverage": "mochify --recursive -R dot --grep WebWorker --invert --plugin [ proxyquire-universal ] --plugin [ mochify-istanbul --exclude '**/test/**' --report text --report lcovonly --dir ./coverage ] test/**.js", + "test-headless": "mochify --recursive -R dot --grep WebWorker --invert --plugin [ proxyquire-universal ] test/**-test.js", + "test-coverage": "mochify --recursive -R dot --grep WebWorker --invert --plugin [ proxyquire-universal ] --plugin [ mochify-istanbul --exclude '**/test/**' --report text --report lcovonly --dir ./coverage ] test/**-test.js", "test-cloud": "npm run test-headless -- --wd", "test-webworker": "mochify --https-server 8080 test/webworker/webworker-support-assessment.js", "test-esm": "mocha -r esm test/es2015/module-support-assessment-test.mjs", From 1b48934e49f7681c3a71084523865a6e559fb662 Mon Sep 17 00:00:00 2001 From: Carl-Erik Kopseng Date: Tue, 29 May 2018 09:15:34 +0200 Subject: [PATCH 13/15] Remove explicit lint-markdown Already included in the 'lint' script. No need to run twice. --- .travis.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index f3670ba4e..1e535142d 100644 --- a/.travis.yml +++ b/.travis.yml @@ -28,7 +28,6 @@ before_script: # these build targets only need to run once per build, so let's conserve a few resources # ESLint only supports Node >=4 - if [ "x$TRAVIS_NODE_VERSION" = "x10" ]; then npm run lint; fi - - if [ "x$TRAVIS_NODE_VERSION" = "x10" ]; then npm run lint-markdown; fi - if [ "x$TRAVIS_NODE_VERSION" = "x10" ]; then npm run test-headless -- --allow-chrome-as-root; fi - if [ "x$TRAVIS_NODE_VERSION" = "x10" ]; then npm run test-webworker -- --allow-chrome-as-root; fi - if [ "x$TRAVIS_NODE_VERSION" = "x10" ] && [ "${TRAVIS_PULL_REQUEST}" = "false" ]; then npm run test-cloud; fi From 364620121f03d4da36dc736c3f36a54b878aec1f Mon Sep 17 00:00:00 2001 From: Carl-Erik Kopseng Date: Tue, 29 May 2018 09:27:14 +0200 Subject: [PATCH 14/15] Test the esm bundle on Travis https://github.com/GoogleChrome/puppeteer/blob/master/docs/troubleshooting.md#running-puppeteer-on-travis-ci --- .travis.yml | 1 + test/es2015/check-esm-bundle-is-runnable.js | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 1e535142d..555fd54c0 100644 --- a/.travis.yml +++ b/.travis.yml @@ -30,6 +30,7 @@ before_script: - if [ "x$TRAVIS_NODE_VERSION" = "x10" ]; then npm run lint; fi - if [ "x$TRAVIS_NODE_VERSION" = "x10" ]; then npm run test-headless -- --allow-chrome-as-root; fi - if [ "x$TRAVIS_NODE_VERSION" = "x10" ]; then npm run test-webworker -- --allow-chrome-as-root; fi + - if [ "x$TRAVIS_NODE_VERSION" = "x10" ]; then npm run test-esm-bundle -- --allow-chrome-as-root; fi - if [ "x$TRAVIS_NODE_VERSION" = "x10" ] && [ "${TRAVIS_PULL_REQUEST}" = "false" ]; then npm run test-cloud; fi script: diff --git a/test/es2015/check-esm-bundle-is-runnable.js b/test/es2015/check-esm-bundle-is-runnable.js index b54e2302f..b28ecef3f 100644 --- a/test/es2015/check-esm-bundle-is-runnable.js +++ b/test/es2015/check-esm-bundle-is-runnable.js @@ -26,7 +26,8 @@ process.chdir(`${__dirname}/../../pkg/`); const sinonModule = fs.readFileSync("./sinon-esm.js"); async function evaluatePageContent() { - const browser = await puppeteer.launch(); + // https://github.com/GoogleChrome/puppeteer/blob/master/docs/troubleshooting.md#running-puppeteer-on-travis-ci + const browser = await puppeteer.launch({ args: ["--no-sandbox"] }); const page = await browser.newPage(); page.on("error", function (err) { From 89dba09d31a41bdffca1354fe36dd8ca6b32d884 Mon Sep 17 00:00:00 2001 From: Carl-Erik Kopseng Date: Tue, 29 May 2018 09:58:05 +0200 Subject: [PATCH 15/15] Added some diagnostic output on failure --- test/es2015/check-esm-bundle-is-runnable.js | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/test/es2015/check-esm-bundle-is-runnable.js b/test/es2015/check-esm-bundle-is-runnable.js index b28ecef3f..b57578f76 100644 --- a/test/es2015/check-esm-bundle-is-runnable.js +++ b/test/es2015/check-esm-bundle-is-runnable.js @@ -9,14 +9,14 @@ const htmlWithModuleScript = ` `; @@ -30,6 +30,16 @@ async function evaluatePageContent() { const browser = await puppeteer.launch({ args: ["--no-sandbox"] }); const page = await browser.newPage(); + function die(reason) { + if (reason) { + /* eslint-disable no-console */ + console.error(reason); + } + + browser.close(); + process.exit(1); + } + page.on("error", function (err) { throw err; }); @@ -42,12 +52,13 @@ async function evaluatePageContent() { browser.close(); process.exit(0); } else if (text.startsWith("sinon-result:fails")) { - browser.close(); - process.exit(1); + die(text); } }); await page.goto("http://localhost:3876"); + + setTimeout(() => die("No result within timeout."), 1000); } const app = http.createServer((req, res) => {