From f16e76003caa3e0a6fd8e282a75e23a307392d17 Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Sat, 6 Oct 2018 16:03:05 -0400 Subject: [PATCH 0001/1217] Update Node.js to version 8.12.0. https://nodejs.org/en/blog/release/v8.12.0/ Closes #10117 and #10090. We will continue to monitor issue #10216. --- History.md | 18 ++++++++++++++++++ scripts/build-dev-bundle-common.sh | 2 +- 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/History.md b/History.md index 9ab4345399..bfd98c2fe3 100644 --- a/History.md +++ b/History.md @@ -1,5 +1,23 @@ ## v.NEXT +## v1.8.1, TBD + +### Breaking changes +N/A + +### Migration Steps +N/A + +### Changes + +* Node has been updated to version + [8.12.0](https://nodejs.org/en/blog/release/v8.12.0/). While this + version of Node includes changes that may improve the performance of + Meteor apps, there have been reports of CPU usage spikes in production + due to excessive garbage collection, so this version of Meteor should be + considered experimental until those problems have been fixed. + [Issue #10216](https://github.com/meteor/meteor/issues/10216) + ## v1.8, 2018-10-08 ### Breaking changes diff --git a/scripts/build-dev-bundle-common.sh b/scripts/build-dev-bundle-common.sh index 1bc195553a..7c64d9f70d 100644 --- a/scripts/build-dev-bundle-common.sh +++ b/scripts/build-dev-bundle-common.sh @@ -5,7 +5,7 @@ set -u UNAME=$(uname) ARCH=$(uname -m) -NODE_VERSION=8.11.4 +NODE_VERSION=8.12.0 MONGO_VERSION_64BIT=4.0.2 MONGO_VERSION_32BIT=3.2.19 NPM_VERSION=6.4.1 From 4a0bf12d0e58f146c6720af7f2f2aacc5d7d2de0 Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Sat, 6 Oct 2018 16:06:24 -0400 Subject: [PATCH 0002/1217] Bump $BUNDLE_VERSION to 8.12.0.1 before rebuilding dev bundle. --- meteor | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/meteor b/meteor index 2cc96758b3..61083746df 100755 --- a/meteor +++ b/meteor @@ -1,7 +1,6 @@ #!/usr/bin/env bash -# Note: Skip 8.12.0.0, as it has already been used. -BUNDLE_VERSION=8.11.4.5 +BUNDLE_VERSION=8.12.0.1 # OS Check. Put here because here is where we download the precompiled # bundles that are arch specific. From 721bfcfe883cb666b1ffb61462eaaac49a75144f Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Sat, 6 Oct 2018 16:30:33 -0400 Subject: [PATCH 0003/1217] Bump package versions for 1.8.1-beta.0 release. --- packages/meteor-tool/package.js | 2 +- scripts/admin/meteor-release-experimental.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/meteor-tool/package.js b/packages/meteor-tool/package.js index d38de4b7a9..2eee75e622 100644 --- a/packages/meteor-tool/package.js +++ b/packages/meteor-tool/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "The Meteor command-line tool", - version: '1.8.0' + version: '1.8.1-beta.0' }); Package.includeTool(); diff --git a/scripts/admin/meteor-release-experimental.json b/scripts/admin/meteor-release-experimental.json index 841ba991fb..ae02572636 100644 --- a/scripts/admin/meteor-release-experimental.json +++ b/scripts/admin/meteor-release-experimental.json @@ -1,6 +1,6 @@ { "track": "METEOR", - "version": "1.8-rc.17", + "version": "1.8.1-beta.0", "recommended": false, "official": false, "description": "Meteor" From e15dd0e19d7630aabad985be8cd80fa4816fcbe2 Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Thu, 11 Oct 2018 12:39:37 -0400 Subject: [PATCH 0004/1217] Bump $BUNDLE_VERSION to 8.12.0.2 before rebuilding dev bundle. --- meteor | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meteor b/meteor index 61083746df..8cc4eed189 100755 --- a/meteor +++ b/meteor @@ -1,6 +1,6 @@ #!/usr/bin/env bash -BUNDLE_VERSION=8.12.0.1 +BUNDLE_VERSION=8.12.0.2 # OS Check. Put here because here is where we download the precompiled # bundles that are arch specific. From 07b45f6ddec81c181fc8a1a6d4b243d02832ed9e Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Thu, 11 Oct 2018 12:59:34 -0400 Subject: [PATCH 0005/1217] Bump package versions for 1.8.1-beta.1 release. --- packages/meteor-tool/package.js | 2 +- scripts/admin/meteor-release-experimental.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/meteor-tool/package.js b/packages/meteor-tool/package.js index 2eee75e622..6c00bba82a 100644 --- a/packages/meteor-tool/package.js +++ b/packages/meteor-tool/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "The Meteor command-line tool", - version: '1.8.1-beta.0' + version: '1.8.1-beta.1' }); Package.includeTool(); diff --git a/scripts/admin/meteor-release-experimental.json b/scripts/admin/meteor-release-experimental.json index ae02572636..ff6c6fd868 100644 --- a/scripts/admin/meteor-release-experimental.json +++ b/scripts/admin/meteor-release-experimental.json @@ -1,6 +1,6 @@ { "track": "METEOR", - "version": "1.8.1-beta.0", + "version": "1.8.1-beta.1", "recommended": false, "official": false, "description": "Meteor" From 2e428c8ef3472ce1c282339072470bfeefc9065e Mon Sep 17 00:00:00 2001 From: Nathan Muir Date: Tue, 30 Oct 2018 17:39:29 +1000 Subject: [PATCH 0006/1217] webapp: add runtime config overrides when inline scripts are disabled When generating boilerplate, meteor runtime config includes additional options based on the arch. However, these additional options were not present when generating the response to `/meteor_runtime_config.js`, which is used when inline scripts are disabled. This change fixes Meteor.isModern in those circumstances. --- packages/webapp/webapp_server.js | 27 +++++++++++++++++---------- 1 file changed, 17 insertions(+), 10 deletions(-) diff --git a/packages/webapp/webapp_server.js b/packages/webapp/webapp_server.js index 1fa2daa65c..ccbfb6081f 100644 --- a/packages/webapp/webapp_server.js +++ b/packages/webapp/webapp_server.js @@ -386,12 +386,7 @@ WebAppInternals.staticFilesMiddleware = async function ( res.end(); }; - if (pathname === "/meteor_runtime_config.js" && - ! WebAppInternals.inlineScriptsAllowed()) { - serveStaticJs("__meteor_runtime_config__ = " + - JSON.stringify(__meteor_runtime_config__) + ";"); - return; - } else if (_.has(additionalStaticJs, pathname) && + if (_.has(additionalStaticJs, pathname) && ! WebAppInternals.inlineScriptsAllowed()) { serveStaticJs(additionalStaticJs[pathname]); return; @@ -404,7 +399,14 @@ WebAppInternals.staticFilesMiddleware = async function ( // If pauseClient(arch) has been called, program.paused will be a // Promise that will be resolved when the program is unpaused. - await WebApp.clientPrograms[arch].paused; + const program = WebApp.clientPrograms[arch]; + await program.paused; + + if (path === "/meteor_runtime_config.js" && + ! WebAppInternals.inlineScriptsAllowed()) { + serveStaticJs(`__meteor_runtime_config__ = ${program.meteorRuntimeConfig};`); + return; + } const info = getStaticFileInfo(pathname, path, arch); if (! info) { @@ -789,13 +791,18 @@ function runWebAppServer() { function generateBoilerplateForArch(arch) { const program = WebApp.clientPrograms[arch]; + const additionalOptions = defaultOptionsForArch[arch] || {}; const { baseData } = boilerplateByArch[arch] = WebAppInternals.generateBoilerplateInstance( arch, program.manifest, - defaultOptionsForArch[arch], + additionalOptions, ); - + // we need the runtime config w/ overrides for meteor_runtime_config.js + program.meteorRuntimeConfig = JSON.stringify(_.extend( + _.clone(__meteor_runtime_config__), + additionalOptions.runtimeConfigOverrides || {} + )); program.refreshableAssets = baseData.css.map(file => ({ url: bundledJsCssUrlRewriteHook(file.url), })); @@ -835,7 +842,7 @@ function runWebAppServer() { // Do this before the next middleware destroys req.url if a path prefix // is set to close #10111. app.use(query()); - + function getPathParts(path) { const parts = path.split("/"); while (parts[0] === "") parts.shift(); From ea173640f289fd0f75e52842264cd6eaf57786c3 Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Tue, 30 Oct 2018 14:24:18 -0400 Subject: [PATCH 0007/1217] Bump CoffeeScript to version 2.3.2 and enable lazy compilation. The introduction of lazy compilation should help with #10298. --- .../.npm/package/npm-shrinkwrap.json | 6 +++--- packages/non-core/coffeescript-compiler/package.js | 4 ++-- .../compile-coffeescript/npm-shrinkwrap.json | 6 +++--- .../non-core/coffeescript/compile-coffeescript.js | 14 ++++++++++++++ packages/non-core/coffeescript/package.js | 4 ++-- 5 files changed, 24 insertions(+), 10 deletions(-) diff --git a/packages/non-core/coffeescript-compiler/.npm/package/npm-shrinkwrap.json b/packages/non-core/coffeescript-compiler/.npm/package/npm-shrinkwrap.json index 87857d7090..1d8d07771c 100644 --- a/packages/non-core/coffeescript-compiler/.npm/package/npm-shrinkwrap.json +++ b/packages/non-core/coffeescript-compiler/.npm/package/npm-shrinkwrap.json @@ -2,9 +2,9 @@ "lockfileVersion": 1, "dependencies": { "coffeescript": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/coffeescript/-/coffeescript-2.3.1.tgz", - "integrity": "sha512-DNJmSPMyiz+OjWYyuDXNBcFutDjP2TS2owsZ8YvT65hA8c5IdHWIBqdA3Yf/XHoK23d/f1HqLjQbEJJZJoeV1w==" + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/coffeescript/-/coffeescript-2.3.2.tgz", + "integrity": "sha512-YObiFDoukx7qPBi/K0kUKyntEZDfBQiqs/DbrR1xzASKOBjGT7auD85/DiPeRr9k++lRj7l3uA9TNMLfyfcD/Q==" }, "source-map": { "version": "0.5.7", diff --git a/packages/non-core/coffeescript-compiler/package.js b/packages/non-core/coffeescript-compiler/package.js index f05cb8e6f1..0850dd130b 100644 --- a/packages/non-core/coffeescript-compiler/package.js +++ b/packages/non-core/coffeescript-compiler/package.js @@ -13,11 +13,11 @@ Package.describe({ summary: 'Compiler for CoffeeScript code, supporting the coffeescript package', // This version of NPM `coffeescript` module, with _1, _2 etc. // If you change this, make sure to also update ../coffeescript/package.js to match. - version: '2.3.1_2' + version: '2.3.2_1' }); Npm.depends({ - 'coffeescript': '2.3.1', + 'coffeescript': '2.3.2', 'source-map': '0.5.7' }); diff --git a/packages/non-core/coffeescript/.npm/plugin/compile-coffeescript/npm-shrinkwrap.json b/packages/non-core/coffeescript/.npm/plugin/compile-coffeescript/npm-shrinkwrap.json index 1f1254a557..a59317fc81 100644 --- a/packages/non-core/coffeescript/.npm/plugin/compile-coffeescript/npm-shrinkwrap.json +++ b/packages/non-core/coffeescript/.npm/plugin/compile-coffeescript/npm-shrinkwrap.json @@ -2,9 +2,9 @@ "lockfileVersion": 1, "dependencies": { "@babel/runtime": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.0.0.tgz", - "integrity": "sha512-7hGhzlcmg01CvH1EHdSPVXYX1aJ8KCEyz6I9xYIi/asDtzBPMyMhVibhM/K6g/5qnKBwjZtp10bNZIEFTRW1MA==" + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.1.2.tgz", + "integrity": "sha512-Y3SCjmhSupzFB6wcv1KmmFucH6gDVnI30WjOcicV10ju0cZjak3Jcs67YLIXBrmZYw1xCrVeJPbycFwrqNyxpg==" }, "regenerator-runtime": { "version": "0.12.1", diff --git a/packages/non-core/coffeescript/compile-coffeescript.js b/packages/non-core/coffeescript/compile-coffeescript.js index 7f91bb552d..3792d61d71 100644 --- a/packages/non-core/coffeescript/compile-coffeescript.js +++ b/packages/non-core/coffeescript/compile-coffeescript.js @@ -28,6 +28,20 @@ class CachedCoffeeScriptCompiler extends CachingCompiler { return super.setDiskCacheDirectory(cacheDir); } + compileOneFileLater(inputFile, getResult) { + inputFile.addJavaScript({ + path: this.coffeeScriptCompiler.outputFilePath(inputFile), + sourcePath: inputFile.getPathInPackage(), + bare: inputFile.getFileOptions().bare + }, async () => { + const result = await getResult(); + return result && { + data: result.source, + sourceMap: result.sourceMap, + }; + }); + } + compileOneFile(inputFile) { return this.coffeeScriptCompiler.compileOneFile(inputFile); } diff --git a/packages/non-core/coffeescript/package.js b/packages/non-core/coffeescript/package.js index c873977ee7..d549a3c25b 100644 --- a/packages/non-core/coffeescript/package.js +++ b/packages/non-core/coffeescript/package.js @@ -6,7 +6,7 @@ Package.describe({ // so bumping the version of this package will be how they get newer versions // of `coffeescript-compiler`. If you change this, make sure to also update // ../coffeescript-compiler/package.js to match. - version: '2.3.1_2' + version: '2.3.2_1' }); Package.registerBuildPlugin({ @@ -22,7 +22,7 @@ Package.registerBuildPlugin({ // rather than delegating to the one installed in the application's // node_modules directory, so the coffeescript package can work in // Meteor 1.7.1 apps as well as 1.7.0.x and earlier. - '@babel/runtime': '7.0.0' + '@babel/runtime': '7.1.2' } }); From c96278700de8fd6ffb9e0b1d374c3518f3ab10c8 Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Wed, 31 Oct 2018 10:40:16 -0400 Subject: [PATCH 0008/1217] Fix compiler plugins self-tests by waiting for lazy compilation to finish. --- packages/caching-compiler/caching-compiler.js | 34 +++++++++++++------ .../multi-file-caching-compiler.js | 22 ++++++------ tools/isobuild/bundler.js | 13 +++++++ tools/project-context.js | 7 +++- tools/tests/compiler-plugins.js | 14 ++++++++ 5 files changed, 69 insertions(+), 21 deletions(-) diff --git a/packages/caching-compiler/caching-compiler.js b/packages/caching-compiler/caching-compiler.js index ab1cea5cae..e29e1362e5 100644 --- a/packages/caching-compiler/caching-compiler.js +++ b/packages/caching-compiler/caching-compiler.js @@ -25,6 +25,10 @@ CachingCompilerBase = class CachingCompilerBase { // For testing. this._callCount = 0; + + // Callbacks that will be called after the linker is done processing + // files, after all lazy compilation has finished. + this._afterLinkCallbacks = []; } // Your subclass must override this method to define the key used to identify @@ -113,6 +117,14 @@ CachingCompilerBase = class CachingCompilerBase { }, 0); } + // Called by the compiler plugins system after all linking and lazy + // compilation has finished. + afterLink() { + this._afterLinkCallbacks.splice(0).forEach(callback => { + callback(); + }); + } + // Borrowed from another MIT-licensed project that benjamn wrote: // https://github.com/reactjs/commoner/blob/235d54a12c/lib/util.js#L136-L168 _deepHash(val) { @@ -327,17 +339,19 @@ CachingCompiler = class CachingCompiler extends CachingCompilerBase { }); if (this._cacheDebugEnabled) { - cacheMisses.sort(); + this._afterLinkCallbacks.push(() => { + cacheMisses.sort(); - this._cacheDebug( - `Ran (#${ - ++this._callCount - }) on: ${ - JSON.stringify(cacheMisses) - } ${ - JSON.stringify(Object.keys(arches).sort()) - }` - ); + this._cacheDebug( + `Ran (#${ + ++this._callCount + }) on: ${ + JSON.stringify(cacheMisses) + } ${ + JSON.stringify(Object.keys(arches).sort()) + }` + ); + }); } } diff --git a/packages/caching-compiler/multi-file-caching-compiler.js b/packages/caching-compiler/multi-file-caching-compiler.js index 4add6b81a3..dcd75ac2e7 100644 --- a/packages/caching-compiler/multi-file-caching-compiler.js +++ b/packages/caching-compiler/multi-file-caching-compiler.js @@ -172,17 +172,19 @@ extends CachingCompilerBase { }); if (this._cacheDebugEnabled) { - cacheMisses.sort(); + this._afterLinkCallbacks.push(() => { + cacheMisses.sort(); - this._cacheDebug( - `Ran (#${ - ++this._callCount - }) on: ${ - JSON.stringify(cacheMisses) - } ${ - JSON.stringify(Object.keys(arches).sort()) - }` - ); + this._cacheDebug( + `Ran (#${ + ++this._callCount + }) on: ${ + JSON.stringify(cacheMisses) + } ${ + JSON.stringify(Object.keys(arches).sort()) + }` + ); + }); } } diff --git a/tools/isobuild/bundler.js b/tools/isobuild/bundler.js index a473bd5c9d..b6eb36b360 100644 --- a/tools/isobuild/bundler.js +++ b/tools/isobuild/bundler.js @@ -1286,6 +1286,19 @@ class Target { ), "utf8") ); }); + + // Call any plugin.afterLink callbacks defined by compiler plugins, + // now that all compilation (including lazy compilation) is finished. + sourceBatches.forEach(batch => { + batch.resourceSlots.forEach(slot => { + const plugin = + slot.sourceProcessor && + slot.sourceProcessor.userPlugin; + if (plugin && typeof plugin.afterLink === "function") { + plugin.afterLink(); + } + }); + }); } // Minify the JS in this target diff --git a/tools/project-context.js b/tools/project-context.js index c3a1195055..7806436baf 100644 --- a/tools/project-context.js +++ b/tools/project-context.js @@ -28,6 +28,10 @@ import { import Resolver from "./isobuild/resolver.js"; +const CAN_DELAY_LEGACY_BUILD = ! JSON.parse( + process.env.METEOR_DISALLOW_DELAYED_LEGACY_BUILD || "false" +); + // The ProjectContext represents all the context associated with an app: // metadata files in the `.meteor` directory, the choice of package versions // used by it, etc. Any time you want to work with an app, create a @@ -1310,7 +1314,8 @@ _.extend(exports.PlatformList.prototype, { }, canDelayBuildingArch(arch) { - return arch === "web.browser.legacy"; + return CAN_DELAY_LEGACY_BUILD && + arch === "web.browser.legacy"; } }); diff --git a/tools/tests/compiler-plugins.js b/tools/tests/compiler-plugins.js index 2222cd0fab..8e8abb8381 100644 --- a/tools/tests/compiler-plugins.js +++ b/tools/tests/compiler-plugins.js @@ -30,6 +30,11 @@ selftest.define("compiler plugin caching - coffee", () => { // Ask them to print out when they build a file (instead of using it from the // cache) as well as when they load cache from disk. s.set('METEOR_COFFEESCRIPT_CACHE_DEBUG', 't'); + + // Enforcing the order of builds is just too tricky if we let the legacy + // build race with the os.* build. + s.set("METEOR_DISALLOW_DELAYED_LEGACY_BUILD", "true"); + var run = startRun(s); let nextRunOrdinal = 1; @@ -69,6 +74,7 @@ selftest.define("compiler plugin caching - coffee", () => { // App prints this: run.match("Coffeescript X is 2 Y is 1 FromPackage is 4"); + run.match("App running at"); s.write("f2.coffee", "share.Y = 'Y is 3'\n"); @@ -79,6 +85,7 @@ selftest.define("compiler plugin caching - coffee", () => { // Program prints this: run.match("Coffeescript X is 2 Y is 3 FromPackage is 4"); + run.match("Meteor server restarted"); // Force a rebuild of the local package without actually changing the // coffeescript file in it. This should not require us to coffee.compile @@ -90,6 +97,7 @@ selftest.define("compiler plugin caching - coffee", () => { matchRun([], osArch); run.match("Coffeescript X is 2 Y is 3 FromPackage is 4"); + run.match("Meteor server restarted"); // But writing to the actual source file in the local package should // recompile. @@ -100,6 +108,7 @@ selftest.define("compiler plugin caching - coffee", () => { matchRun(["/packages/local-pack/p.coffee"], osArch); run.match("Coffeescript X is 2 Y is 3 FromPackage is 5"); + run.match("Meteor server restarted"); // We never should have loaded cache from disk, since we only made // each compiler once and there were no cache files at this point. @@ -140,6 +149,11 @@ selftest.define("compiler plugin caching - coffee", () => { // Ask them to print out when they build a file (instead of using it from // the cache) as well as when they load cache from disk. s.set(`METEOR_${ packageName.toUpperCase() }_CACHE_DEBUG`, "t"); + + // Enforcing the order of builds is just too tricky if we let the legacy + // build race with the "Client modified - refreshing" messages. + s.set("METEOR_DISALLOW_DELAYED_LEGACY_BUILD", "true"); + var run = startRun(s); const cacheMatch = selftest.markStack((message, arch) => { From eb4ae8b8faa3e1ae5acc738f20bbeb214a5292e0 Mon Sep 17 00:00:00 2001 From: Thomas Spiesser Date: Wed, 31 Oct 2018 16:03:53 +0100 Subject: [PATCH 0009/1217] [oauth1] Add default value for whitelistedQueryParams. (#10301) --- packages/oauth1/oauth1_server.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/oauth1/oauth1_server.js b/packages/oauth1/oauth1_server.js index 5b92dfd954..eb54458825 100644 --- a/packages/oauth1/oauth1_server.js +++ b/packages/oauth1/oauth1_server.js @@ -1,7 +1,7 @@ import url from 'url'; import { OAuth1Binding } from './oauth1_binding'; -OAuth._queryParamsWithAuthTokenUrl = (authUrl, oauthBinding, params = {}, whitelistedQueryParams) => { +OAuth._queryParamsWithAuthTokenUrl = (authUrl, oauthBinding, params = {}, whitelistedQueryParams = []) => { const redirectUrlObj = url.parse(authUrl, true); Object.assign( From d7339dd3db7053c2a06c0f2c7f8d0d19df126842 Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Wed, 31 Oct 2018 11:12:39 -0400 Subject: [PATCH 0010/1217] Bump oauth1 patch version to 1.2.2. --- packages/oauth1/package.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/oauth1/package.js b/packages/oauth1/package.js index 37f8ddc6f8..11dc87fc7d 100644 --- a/packages/oauth1/package.js +++ b/packages/oauth1/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "Common code for OAuth1-based login services", - version: "1.2.1", + version: "1.2.2", }); Package.onUse(api => { From 0e983deb69dff0fc7b9e2ae389221c60ff43b8bd Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Wed, 31 Oct 2018 11:14:59 -0400 Subject: [PATCH 0011/1217] Update coffeescript-compiler constraint in coffeescript/package.js. --- packages/non-core/coffeescript/package.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/non-core/coffeescript/package.js b/packages/non-core/coffeescript/package.js index d549a3c25b..1fe5e6d492 100644 --- a/packages/non-core/coffeescript/package.js +++ b/packages/non-core/coffeescript/package.js @@ -11,7 +11,7 @@ Package.describe({ Package.registerBuildPlugin({ name: 'compile-coffeescript', - use: ['caching-compiler@1.1.12', 'ecmascript@0.11.1', 'coffeescript-compiler@2.3.1_2'], + use: ['caching-compiler@1.1.12', 'ecmascript@0.11.1', 'coffeescript-compiler@2.3.2_1'], sources: ['compile-coffeescript.js'], npmDependencies: { // A breaking change was introduced in @babel/runtime@7.0.0-beta.56 From c622e51cd829383818df78aa276ea67d732c6878 Mon Sep 17 00:00:00 2001 From: Jan Dvorak Date: Wed, 31 Oct 2018 16:33:49 +0100 Subject: [PATCH 0012/1217] Fix #10305 (#10310) --- packages/oauth/end_of_popup_response.js | 12 +++++++----- packages/oauth/end_of_redirect_response.js | 5 +++-- packages/oauth/package.js | 2 +- 3 files changed, 11 insertions(+), 8 deletions(-) diff --git a/packages/oauth/end_of_popup_response.js b/packages/oauth/end_of_popup_response.js index e142f9c30d..fd6a1ae20b 100644 --- a/packages/oauth/end_of_popup_response.js +++ b/packages/oauth/end_of_popup_response.js @@ -1,12 +1,14 @@ -(() => { +// NOTE: This file is added to the client as asset and hence ecmascript package has no effect here. +(function() { - const config = JSON.parse(document.getElementById("config").innerHTML); + var config = JSON.parse(document.getElementById("config").innerHTML); if (config.setCredentialToken) { - const { credentialToken, credentialSecret } = config; + var credentialToken = config.credentialToken; + var credentialSecret = config.credentialSecret; if (config.isCordova) { - const credentialString = JSON.stringify({ + var credentialString = JSON.stringify({ credentialToken, credentialSecret, }); @@ -30,7 +32,7 @@ if (! config.isCordova) { document.getElementById("completedText").style.display = "block"; - document.getElementById("loginCompleted").onclick = () => window.close(); + document.getElementById("loginCompleted").onclick = function() { window.close() }; window.close(); } })(); diff --git a/packages/oauth/end_of_redirect_response.js b/packages/oauth/end_of_redirect_response.js index 4c88aa356f..051159e0a2 100644 --- a/packages/oauth/end_of_redirect_response.js +++ b/packages/oauth/end_of_redirect_response.js @@ -1,6 +1,7 @@ -(() => { +// NOTE: This file is added to the client as asset and hence ecmascript package has no effect here. +(function() { - const config = JSON.parse(document.getElementById("config").innerHTML); + var config = JSON.parse(document.getElementById("config").innerHTML); if (config.setCredentialToken) { sessionStorage[config.storagePrefix + config.credentialToken] = diff --git a/packages/oauth/package.js b/packages/oauth/package.js index 48b572b135..524b0aeed9 100644 --- a/packages/oauth/package.js +++ b/packages/oauth/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "Common code for OAuth-based services", - version: "1.2.5" + version: "1.2.6" }); Package.onUse(api => { From 675b5a15e005695d2a133bf031c2b70dd225a216 Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Wed, 31 Oct 2018 13:44:50 -0400 Subject: [PATCH 0013/1217] Bump package versions for 1.8.1-beta.2 release. --- packages/meteor-tool/package.js | 2 +- scripts/admin/meteor-release-experimental.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/meteor-tool/package.js b/packages/meteor-tool/package.js index 6c00bba82a..ff3d352cce 100644 --- a/packages/meteor-tool/package.js +++ b/packages/meteor-tool/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "The Meteor command-line tool", - version: '1.8.1-beta.1' + version: '1.8.1-beta.2' }); Package.includeTool(); diff --git a/scripts/admin/meteor-release-experimental.json b/scripts/admin/meteor-release-experimental.json index ff6c6fd868..0c738dccc2 100644 --- a/scripts/admin/meteor-release-experimental.json +++ b/scripts/admin/meteor-release-experimental.json @@ -1,6 +1,6 @@ { "track": "METEOR", - "version": "1.8.1-beta.1", + "version": "1.8.1-beta.2", "recommended": false, "official": false, "description": "Meteor" From 13308cf3417e7a0ec23b825f2fcc197ba228686d Mon Sep 17 00:00:00 2001 From: Christian Klaussner Date: Tue, 9 Oct 2018 20:52:21 +0200 Subject: [PATCH 0014/1217] Remove `mongo` dependency from `autoupdate` package --- packages/autoupdate/autoupdate_client.js | 39 ++++---- packages/autoupdate/autoupdate_cordova.js | 35 ++++---- packages/autoupdate/autoupdate_server.js | 27 +++--- packages/autoupdate/client_versions.js | 104 ++++++++++++++++++++++ packages/autoupdate/package.js | 3 +- 5 files changed, 155 insertions(+), 53 deletions(-) create mode 100644 packages/autoupdate/client_versions.js diff --git a/packages/autoupdate/autoupdate_client.js b/packages/autoupdate/autoupdate_client.js index a3ce4d2449..40cf71b524 100644 --- a/packages/autoupdate/autoupdate_client.js +++ b/packages/autoupdate/autoupdate_client.js @@ -25,6 +25,8 @@ // The client version of the client code currently running in the // browser. +import { ClientVersions } from "./client_versions.js"; + const clientArch = Meteor.isCordova ? "web.cordova" : Meteor.isModern ? "web.browser" : "web.browser.legacy"; @@ -38,25 +40,21 @@ const autoupdateVersions = export const Autoupdate = {}; -// The collection of acceptable client versions. -const ClientVersions = - Autoupdate._ClientVersions = // Used by a self-test. - new Mongo.Collection("meteor_autoupdate_clientVersions"); +// Stores acceptable client versions. +const clientVersions = + Autoupdate._clientVersions = // Used by a self-test. + new ClientVersions(); + +Meteor.connection.registerStore( + "meteor_autoupdate_clientVersions", + clientVersions.createStore() +); Autoupdate.newClientAvailable = function () { - return !! ( - ClientVersions.findOne({ - _id: clientArch, - versionNonRefreshable: { - $ne: autoupdateVersions.versionNonRefreshable, - } - }) || - ClientVersions.findOne({ - _id: clientArch, - versionRefreshable: { - $ne: autoupdateVersions.versionRefreshable, - } - }) + return clientVersions.newClientAvailable( + clientArch, + ["versionRefreshable", "versionNonRefreshable"], + autoupdateVersions ); }; @@ -104,10 +102,7 @@ Autoupdate._retrySubscription = () => { resolved.then(() => checkNewVersionDocument(doc)); } - const handle = ClientVersions.find().observe({ - added: check, - changed: check - }); + const stop = clientVersions.watch(check); function checkNewVersionDocument(doc) { if (doc._id !== clientArch) { @@ -118,7 +113,7 @@ Autoupdate._retrySubscription = () => { autoupdateVersions.versionNonRefreshable) { // Non-refreshable assets have changed, so we have to reload the // whole page rather than just replacing tags. - if (handle) handle.stop(); + if (stop) stop(); if (Package.reload) { // The reload package should be provided by ddp-client, which // is provided by the ddp package that autoupdate depends on. diff --git a/packages/autoupdate/autoupdate_cordova.js b/packages/autoupdate/autoupdate_cordova.js index 3f8f06f9a2..fcbac1d486 100644 --- a/packages/autoupdate/autoupdate_cordova.js +++ b/packages/autoupdate/autoupdate_cordova.js @@ -1,21 +1,27 @@ +import { ClientVersions } from "./client_versions.js"; + var autoupdateVersionsCordova = __meteor_runtime_config__.autoupdate.versions["web.cordova"] || { version: "unknown" }; -// The collection of acceptable client versions. -const ClientVersions = - new Mongo.Collection("meteor_autoupdate_clientVersions"); - export const Autoupdate = {}; -Autoupdate.newClientAvailable = - () => !! ClientVersions.findOne({ - _id: "web.cordova", - version: { - $ne: autoupdateVersionsCordova.version - } - }); +// Stores acceptable client versions. +const clientVersions = new ClientVersions(); + +Meteor.connection.registerStore( + "meteor_autoupdate_clientVersions", + clientVersions.createStore() +); + +Autoupdate.newClientAvailable = function () { + return clientVersions.newClientAvailable( + "web.cordova", + ["version"], + autoupdateVersionsCordova + ); +}; var retry = new Retry({ // Unlike the stream reconnect use of Retry, which we want to be instant @@ -59,11 +65,8 @@ Autoupdate._retrySubscription = () => { } } - ClientVersions.find({ - _id: "web.cordova" - }).observe({ - added: checkNewVersionDocument, - changed: checkNewVersionDocument + clientVersions.watch(checkNewVersionDocument, { + filter: "web.cordova" }); } } diff --git a/packages/autoupdate/autoupdate_server.js b/packages/autoupdate/autoupdate_server.js index 1a168e785e..ef564fc8ef 100644 --- a/packages/autoupdate/autoupdate_server.js +++ b/packages/autoupdate/autoupdate_server.js @@ -22,6 +22,7 @@ // The ID of each document is the client architecture, and the fields of // the document are the versions described above. +import { ClientVersions } from "./client_versions.js"; var Future = Npm.require("fibers/future"); export const Autoupdate = __meteor_runtime_config__.autoupdate = { @@ -34,11 +35,8 @@ export const Autoupdate = __meteor_runtime_config__.autoupdate = { versions: {} }; -// The collection of acceptable client versions. -const ClientVersions = - new Mongo.Collection("meteor_autoupdate_clientVersions", { - connection: null - }); +// Stores acceptable client versions. +const clientVersions = new ClientVersions(); // The client hash includes __meteor_runtime_config__, so wait until // all packages have loaded and have had a chance to populate the @@ -96,11 +94,8 @@ function updateVersions(shouldReloadClientProgram) { ...Autoupdate.versions[arch], assets: WebApp.getRefreshableAssets(arch), }; - if (! ClientVersions.findOne({ _id: arch })) { - ClientVersions.insert({ _id: arch, ...payload }); - } else { - ClientVersions.update(arch, { $set: payload }); - } + + clientVersions.set(arch, payload); }); }); } @@ -118,7 +113,13 @@ Meteor.publish( if (Autoupdate.appId && appId && Autoupdate.appId !== appId) return []; - return ClientVersions.find(); + const stop = clientVersions.watch((version, isNew) => { + (isNew ? this.added : this.changed) + .call(this, "meteor_autoupdate_clientVersions", version._id, version); + }); + + this.onStop(() => stop()); + this.ready(); }, {is_auto: true} ); @@ -132,8 +133,8 @@ Meteor.startup(function () { "version-refreshable", "version-cordova", ].forEach(_id => { - ClientVersions.upsert(_id, { - $set: { version: "outdated" } + clientVersions.set(_id, { + version: "outdated" }); }); }); diff --git a/packages/autoupdate/client_versions.js b/packages/autoupdate/client_versions.js new file mode 100644 index 0000000000..05ccde1207 --- /dev/null +++ b/packages/autoupdate/client_versions.js @@ -0,0 +1,104 @@ +import { Tracker } from "meteor/tracker"; + +export class ClientVersions { + constructor() { + this._versions = new Map(); + this._watchCallbacks = new Set(); + } + + // Creates a Livedata store for use with `Meteor.connection.registerStore`. + // After the store is registered, document updates reported by Livedata are + // merged with the documents in this `ClientVersions` instance. + createStore() { + return { + update: ({ id, msg, fields }) => { + if (msg === "added" || msg === "changed") { + this.set(id, fields); + } + } + }; + } + + hasVersions() { + return this._versions.size > 0; + } + + get(id) { + return this._versions.get(id); + } + + // Adds or updates a version document and invokes registered callbacks for the + // added/updated document. If a document with the given ID already exists, its + // fields are merged with `fields`. + set(id, fields) { + let version = this._versions.get(id); + let isNew = false; + + if (version) { + Object.assign(version, fields); + } else { + version = { + _id: id, + ...fields + }; + + isNew = true; + this._versions.set(id, version); + } + + this._watchCallbacks.forEach(({ fn, filter }) => { + if (! filter || filter === version._id) { + fn(version, isNew); + } + }); + } + + // Registers a callback that will be invoked when a version document is added + // or changed. Calling the function returned by `watch` removes the callback. + // If `skipInitial` is true, the callback isn't be invoked for existing + // documents. If `filter` is set, the callback is only invoked for documents + // with ID `filter`. + watch(fn, { skipInitial, filter } = {}) { + if (! skipInitial) { + const resolved = Promise.resolve(); + + this._versions.forEach((version) => { + if (! filter || filter === version._id) { + resolved.then(() => fn(version, true)); + } + }); + } + + const callback = { fn, filter }; + this._watchCallbacks.add(callback); + + return () => this._watchCallbacks.delete(callback); + } + + // A reactive data source for `Autoupdate.newClientAvailable`. + newClientAvailable(id, fields, currentVersion) { + function isNewVersion(version) { + return ( + version._id === id && + fields.some((field) => version[field] !== currentVersion[field]) + ); + } + + const dependency = new Tracker.Dependency(); + const version = this.get(id); + + dependency.depend(); + + const stop = this.watch( + (version) => { + if (isNewVersion(version)) { + dependency.changed(); + stop(); + } + }, + { skipInitial: true } + ); + + return !! version && isNewVersion(version); + } +} diff --git a/packages/autoupdate/package.js b/packages/autoupdate/package.js index 756be8b37d..64db2db156 100644 --- a/packages/autoupdate/package.js +++ b/packages/autoupdate/package.js @@ -17,8 +17,7 @@ Package.onUse(function (api) { api.use([ 'ecmascript', - 'ddp', - 'mongo', + 'ddp' ], ['client', 'server']); api.mainModule('autoupdate_server.js', 'server'); From 02dcbb9e2a4f70e7e1c60c932a62d72e66b799ec Mon Sep 17 00:00:00 2001 From: Christian Klaussner Date: Tue, 9 Oct 2018 21:03:47 +0200 Subject: [PATCH 0015/1217] Add missing weak dependencies on `reload` package `autoupdate` and `reactive-dict` are using the `reload` package if it's available. To ensure that all packages are loaded in the correct order, these dependencies must be explicit. --- packages/autoupdate/package.js | 2 ++ packages/reactive-dict/package.js | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/autoupdate/package.js b/packages/autoupdate/package.js index 64db2db156..f55329cda5 100644 --- a/packages/autoupdate/package.js +++ b/packages/autoupdate/package.js @@ -15,6 +15,8 @@ Package.onUse(function (api) { 'retry' ], 'client'); + api.use('reload', 'client', { weak: true }); + api.use([ 'ecmascript', 'ddp' diff --git a/packages/reactive-dict/package.js b/packages/reactive-dict/package.js index 16f723432b..6faf211b54 100644 --- a/packages/reactive-dict/package.js +++ b/packages/reactive-dict/package.js @@ -6,7 +6,7 @@ Package.describe({ Package.onUse(function (api) { api.use(['tracker', 'ejson', 'ecmascript']); // If we are loading mongo-livedata, let you store ObjectIDs in it. - api.use('mongo', {weak: true}); + api.use(['mongo', 'reload'], { weak: true }); api.mainModule('migration.js'); api.export('ReactiveDict'); }); From e8c2a6a50b3757cb3965fc614c5d15cf466215ca Mon Sep 17 00:00:00 2001 From: Christian Klaussner Date: Tue, 9 Oct 2018 21:04:31 +0200 Subject: [PATCH 0016/1217] Remove `minimongo` dependency from `ddp-server` --- packages/ddp-server/package.js | 5 ----- 1 file changed, 5 deletions(-) diff --git a/packages/ddp-server/package.js b/packages/ddp-server/package.js index c738ca316b..7d83e187c1 100644 --- a/packages/ddp-server/package.js +++ b/packages/ddp-server/package.js @@ -34,11 +34,6 @@ Package.onUse(function (api) { api.use('facts-base', 'server', {weak: true}); api.use('callback-hook', 'server'); - - // we depend on LocalCollection._diffObjects, _applyChanges, - // _idParse, _idStringify. - api.use('minimongo', 'server'); - api.export('DDPServer', 'server'); api.addFiles('stream_server.js', 'server'); From 0e9660097d8243897218c4068e2e6976faf65607 Mon Sep 17 00:00:00 2001 From: Christian Klaussner Date: Tue, 9 Oct 2018 21:09:36 +0200 Subject: [PATCH 0017/1217] Update self-tests for `mongo`-free `autoupdate` --- .../tests/apps/hot-code-push-test/hot-code-push-test.js | 2 +- tools/tests/apps/standard-app/.meteor/packages | 1 + tools/tests/cordova-plugins.js | 2 -- tools/tests/custom-minifier.js | 2 -- tools/tests/hot-code-push.js | 3 --- tools/tests/package-tests.js | 9 --------- tools/tests/stylus-cross-packages.js | 1 - 7 files changed, 2 insertions(+), 18 deletions(-) diff --git a/tools/tests/apps/hot-code-push-test/hot-code-push-test.js b/tools/tests/apps/hot-code-push-test/hot-code-push-test.js index 649dd98dbc..a78116cdbb 100644 --- a/tools/tests/apps/hot-code-push-test/hot-code-push-test.js +++ b/tools/tests/apps/hot-code-push-test/hot-code-push-test.js @@ -3,7 +3,7 @@ if (Meteor.isClient) { var maybeCall = function () { var A = Package.autoupdate.Autoupdate; - if (A._ClientVersions.findOne() && ! A.newClientAvailable()) { + if (A._clientVersions.hasVersions() && ! A.newClientAvailable()) { Meteor.call("clientLoad", typeof jsVar === 'undefined' ? 'undefined' : jsVar, typeof packageVar === 'undefined' ? 'undefined' : packageVar, diff --git a/tools/tests/apps/standard-app/.meteor/packages b/tools/tests/apps/standard-app/.meteor/packages index ba3e0b6afe..73547ca5d0 100644 --- a/tools/tests/apps/standard-app/.meteor/packages +++ b/tools/tests/apps/standard-app/.meteor/packages @@ -4,4 +4,5 @@ # but you can also edit it by hand. meteor-base +mongo standard-minifiers diff --git a/tools/tests/cordova-plugins.js b/tools/tests/cordova-plugins.js index aa50a7a22d..7cb089fd30 100644 --- a/tools/tests/cordova-plugins.js +++ b/tools/tests/cordova-plugins.js @@ -142,8 +142,6 @@ selftest.define("change cordova plugins", ["cordova"], function () { run = s.run(); run.match("myapp"); run.match("proxy"); - run.waitSecs(30); - run.match("MongoDB"); run.match("your app"); run.match("running at"); run.match("localhost"); diff --git a/tools/tests/custom-minifier.js b/tools/tests/custom-minifier.js index 25acbd6098..10938862fa 100644 --- a/tools/tests/custom-minifier.js +++ b/tools/tests/custom-minifier.js @@ -12,7 +12,6 @@ selftest.define('custom minifier - devel vs prod', function (options) { run.waitSecs(5); run.match('myapp'); run.match('proxy'); - run.match('MongoDB'); run.connectClient(); run.waitSecs(20); @@ -32,7 +31,6 @@ selftest.define('custom minifier - devel vs prod', function (options) { run.waitSecs(5); run.match('myapp'); run.match('proxy'); - run.match('MongoDB'); run.connectClient(); run.waitSecs(20); diff --git a/tools/tests/hot-code-push.js b/tools/tests/hot-code-push.js index d8db69108a..03eab2122e 100644 --- a/tools/tests/hot-code-push.js +++ b/tools/tests/hot-code-push.js @@ -14,7 +14,6 @@ selftest.define("css hot code push", function (options) { s.testWithAllClients(function (run) { run.match("myapp"); run.match("proxy"); - run.match("MongoDB"); run.match("running at"); run.match("localhost"); @@ -109,7 +108,6 @@ selftest.define("versioning hot code push", function (options) { s.testWithAllClients(function (run) { run.match("myapp"); run.match("proxy"); - run.match("MongoDB"); run.match("running at"); run.match("localhost"); run.connectClient(); @@ -133,7 +131,6 @@ selftest.define("javascript hot code push", function (options) { s.testWithAllClients(function (run) { run.match("myapp"); run.match("proxy"); - run.match("MongoDB"); run.match("running at"); run.match("localhost"); diff --git a/tools/tests/package-tests.js b/tools/tests/package-tests.js index 85884b6a46..3ead9461c8 100644 --- a/tools/tests/package-tests.js +++ b/tools/tests/package-tests.js @@ -108,8 +108,6 @@ selftest.define("change packages during hot code push", [], function () { run.match("myapp"); run.match("proxy"); run.waitSecs(5); - run.match("MongoDB"); - run.waitSecs(5); run.match("your app"); run.waitSecs(5); run.match("running at"); @@ -160,7 +158,6 @@ selftest.define("change packages during hot code push", [], function () { run.waitSecs(5); run.match("myapp"); run.match("proxy"); - run.match("MongoDB"); run.waitSecs(5); run.match("louder"); // the package actually loaded @@ -364,8 +361,6 @@ selftest.define("add packages client archs", function (options) { run.match("myapp"); run.match("proxy"); run.waitSecs(5); - run.match("MongoDB"); - run.waitSecs(5); run.match("running at"); run.match("localhost"); @@ -981,8 +976,6 @@ selftest.define("tilde version constraints", [], function () { run.match("tilde-app"); run.match("proxy"); run.waitSecs(10); - run.match("MongoDB"); - run.waitSecs(10); run.match("your app"); run.waitSecs(10); run.match("running at"); @@ -1137,8 +1130,6 @@ selftest.define("override version constraints", [], function () { run.match("override-app"); run.match("proxy"); run.waitSecs(10); - run.match("MongoDB"); - run.waitSecs(10); run.match("your app"); run.waitSecs(10); run.match("running at"); diff --git a/tools/tests/stylus-cross-packages.js b/tools/tests/stylus-cross-packages.js index deac74ba3e..44692ca9df 100644 --- a/tools/tests/stylus-cross-packages.js +++ b/tools/tests/stylus-cross-packages.js @@ -12,7 +12,6 @@ selftest.define("can import stylus across packages", function (options) { s.testWithAllClients(function (run) { run.match("myapp"); run.match("proxy"); - run.match("MongoDB"); run.match("running at"); run.match("localhost"); From 970ac2100d6608689a3a5a1cb10e208735ae8909 Mon Sep 17 00:00:00 2001 From: lukas strassel Date: Sat, 27 Oct 2018 19:03:15 +0200 Subject: [PATCH 0018/1217] update request to latest version (drop a few dependencies) --- .../http/.npm/package/npm-shrinkwrap.json | 159 ++++++++---------- packages/http/package.js | 4 +- 2 files changed, 68 insertions(+), 95 deletions(-) diff --git a/packages/http/.npm/package/npm-shrinkwrap.json b/packages/http/.npm/package/npm-shrinkwrap.json index cb3d310365..aecc2e0c01 100644 --- a/packages/http/.npm/package/npm-shrinkwrap.json +++ b/packages/http/.npm/package/npm-shrinkwrap.json @@ -2,14 +2,14 @@ "lockfileVersion": 1, "dependencies": { "ajv": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.3.0.tgz", - "integrity": "sha1-RBT/dKUIecII7l/cgm4ywwNUnto=" + "version": "5.5.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", + "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=" }, "asn1": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", - "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=" + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", + "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==" }, "assert-plus": { "version": "1.0.0", @@ -27,19 +27,14 @@ "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=" }, "aws4": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz", - "integrity": "sha1-g+9cqGCysy5KDe7e6MdxudtXRx4=" + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz", + "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==" }, "bcrypt-pbkdf": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz", - "integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=" - }, - "boom": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/boom/-/boom-4.3.1.tgz", - "integrity": "sha1-T4owBctKfjiJ90kDD9JbluAdLjE=" + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=" }, "caseless": { "version": "0.12.0", @@ -52,27 +47,15 @@ "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=" }, "combined-stream": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", - "integrity": "sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk=" + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.7.tgz", + "integrity": "sha512-brWl9y6vOB1xYPZcpZde3N9zDByXTosAeMDo4p1wzo6UMOX4vumB+TP1RZ76sfE6Md68Q0NJSrE/gbezd4Ul+w==" }, "core-util-is": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" }, - "cryptiles": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-3.1.2.tgz", - "integrity": "sha1-qJ+7Ig9c4l7FboxKqKT9e1sNKf4=", - "dependencies": { - "boom": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/boom/-/boom-5.2.0.tgz", - "integrity": "sha512-Z5BTk6ZRe4tXXQlkqftmsAUANpXmuwlsF5Oov8ThoMbQRzdGTA1ngYRW160GexgOgjsFOKJz0LYhoNi+2AMBUw==" - } - } - }, "dashdash": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", @@ -84,14 +67,14 @@ "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" }, "ecc-jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", - "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=" + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=" }, "extend": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", - "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=" + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" }, "extsprintf": { "version": "1.3.0", @@ -99,9 +82,9 @@ "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" }, "fast-deep-equal": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.0.0.tgz", - "integrity": "sha1-liVqO8l1WV6zbYLpkp0GDYk0Of8=" + "version": "1.1.0", + "resolved": "http://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", + "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=" }, "fast-json-stable-stringify": { "version": "2.0.0", @@ -114,9 +97,9 @@ "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" }, "form-data": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.1.tgz", - "integrity": "sha1-b7lPvXGIUwbXPRXMSX/kzE7NRL8=" + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==" }, "getpass": { "version": "0.1.7", @@ -129,19 +112,9 @@ "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=" }, "har-validator": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.0.3.tgz", - "integrity": "sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0=" - }, - "hawk": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/hawk/-/hawk-6.0.2.tgz", - "integrity": "sha512-miowhl2+U7Qle4vdLqDdPt9m09K6yZhkLDTWGoUiUzrQCn+mHHSmfJgAyGaLRZbPmTqfFFjRV1QWCW0VWUJBbQ==" - }, - "hoek": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/hoek/-/hoek-4.2.0.tgz", - "integrity": "sha512-v0XCLxICi9nPfYrS9RL8HbYnXi9obYAeLbSP00BmnZwCK9+Ih9WOjoZ8YoHCoav2csqn4FOz4Orldsy2dmDwmQ==" + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.0.tgz", + "integrity": "sha512-+qnmNjI4OfH2ipQ9VQOw23bBd/ibtfbVdK2fYbY4acTDqKTW/YDp9McimZdDbG8iV9fZizUqQMD5xvriB146TA==" }, "http-signature": { "version": "1.2.0", @@ -184,64 +157,64 @@ "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=" }, "mime-db": { - "version": "1.30.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.30.0.tgz", - "integrity": "sha1-dMZD2i3Z1qRTmZY0ZbJtXKfXHwE=" + "version": "1.37.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.37.0.tgz", + "integrity": "sha512-R3C4db6bgQhlIhPU48fUtdVmKnflq+hRdad7IyKhtFj06VPNVdk2RhiYL3UjQIlso8L+YxAtFkobT0VK+S/ybg==" }, "mime-types": { - "version": "2.1.17", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.17.tgz", - "integrity": "sha1-Cdejk/A+mVp5+K+Fe3Cp4KsWVXo=" + "version": "2.1.21", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.21.tgz", + "integrity": "sha512-3iL6DbwpyLzjR3xHSFNFeb9Nz/M8WDkX33t1GFQnFOllWk8pOrh/LSrB5OXlnlW5P9LH73X6loW/eogc+F5lJg==" }, "oauth-sign": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", - "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=" + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==" }, "performance-now": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" }, + "psl": { + "version": "1.1.29", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.1.29.tgz", + "integrity": "sha512-AeUmQ0oLN02flVHXWh9sSJF7mcdFq0ppid/JkErufc3hGIV/AMa8Fo9VgDo/cT2jFdOWoFvHp90qqBH54W+gjQ==" + }, "punycode": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" }, "qs": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz", - "integrity": "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A==" + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==" }, "request": { - "version": "2.83.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.83.0.tgz", - "integrity": "sha512-lR3gD69osqm6EYLk9wB/G1W/laGWjzH90t1vEa2xuxHD5KUrSzp9pUSfTm+YC5Nxt2T8nMPEvKlhbQayU7bgFw==" + "version": "2.88.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz", + "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==" }, "safe-buffer": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", - "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==" + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" }, - "sntp": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/sntp/-/sntp-2.1.0.tgz", - "integrity": "sha512-FL1b58BDrqS3A11lJ0zEdnJ3UOKqVxawAkF3k7F0CVN7VQ34aZrV+G8BZ1WC9ZL7NyrwsW0oviwsWDgRuVYtJg==" + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, "sshpk": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.13.1.tgz", - "integrity": "sha1-US322mKHFEMW3EwY/hzx2UBzm+M=" - }, - "stringstream": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz", - "integrity": "sha1-TkhM1N5aC7vuGORjB3EKioFiGHg=" + "version": "1.15.2", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.15.2.tgz", + "integrity": "sha512-Ra/OXQtuh0/enyl4ETZAfTaeksa6BXks5ZcjpSUNrjBr0DvrJKX+1fsKDPpT9TBXgHAFsa4510aNVgI8g/+SzA==" }, "tough-cookie": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.3.tgz", - "integrity": "sha1-C2GKVWW23qkL80JdBNVe3EdadWE=" + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz", + "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==" }, "tunnel-agent": { "version": "0.6.0", @@ -254,9 +227,9 @@ "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" }, "uuid": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.1.0.tgz", - "integrity": "sha512-DIWtzUkw04M4k3bf1IcpS2tngXEL26YUD2M0tMDUpnUrz2hgzUBlD55a4FjdLGPvfHxS6uluGWvaVEqgBcVa+g==" + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", + "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==" }, "verror": { "version": "1.10.0", diff --git a/packages/http/package.js b/packages/http/package.js index 2591ed087b..a106c1c6c3 100644 --- a/packages/http/package.js +++ b/packages/http/package.js @@ -1,10 +1,10 @@ Package.describe({ summary: "Make HTTP calls to remote servers", - version: '1.4.1' + version: '1.4.2' }); Npm.depends({ - request: "2.83.0" + request: "2.88.0" }); Package.onUse(function (api) { From e24c4f782f13c0a683d8884887ab7d8819e34ca5 Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Sat, 3 Nov 2018 13:41:15 -0400 Subject: [PATCH 0019/1217] Update dev bundle request package to version 2.88.0 as well. --- scripts/dev-bundle-tool-package.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/dev-bundle-tool-package.js b/scripts/dev-bundle-tool-package.js index 3e6863f990..e4dc63d5be 100644 --- a/scripts/dev-bundle-tool-package.js +++ b/scripts/dev-bundle-tool-package.js @@ -30,7 +30,7 @@ var packageJson = { underscore: "1.5.2", "source-map-support": "https://github.com/meteor/node-source-map-support/tarball/1912478769d76e5df4c365e147f25896aee6375e", semver: "5.4.1", - request: "2.83.0", + request: "2.88.0", uuid: "3.3.2", fstream: "https://github.com/meteor/fstream/tarball/cf4ea6c175355cec7bee38311e170d08c4078a5d", tar: "2.2.1", From 865eacbf3e54e64bd2911cc8584e0b4ea3a09a3b Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Sat, 3 Nov 2018 13:43:39 -0400 Subject: [PATCH 0020/1217] Update optimism npm package to version 0.6.8. --- scripts/dev-bundle-tool-package.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/dev-bundle-tool-package.js b/scripts/dev-bundle-tool-package.js index e4dc63d5be..a04716f09e 100644 --- a/scripts/dev-bundle-tool-package.js +++ b/scripts/dev-bundle-tool-package.js @@ -53,7 +53,7 @@ var packageJson = { split2: "2.2.0", multipipe: "2.0.1", pathwatcher: "7.1.1", - optimism: "0.6.3", + optimism: "0.6.8", 'lru-cache': '4.1.3' } }; From dfa236ce10ef72291345190f4828247242693adf Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Sat, 3 Nov 2018 13:46:14 -0400 Subject: [PATCH 0021/1217] Update fibers npm package to version 3.0.0. --- scripts/dev-bundle-server-package.js | 2 +- scripts/dev-bundle-tool-package.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/dev-bundle-server-package.js b/scripts/dev-bundle-server-package.js index 1e2c2ad7af..0981b1ad24 100644 --- a/scripts/dev-bundle-server-package.js +++ b/scripts/dev-bundle-server-package.js @@ -9,7 +9,7 @@ var packageJson = { private: true, dependencies: { "meteor-promise": "0.8.6", - fibers: "2.0.0", + fibers: "3.0.0", promise: "8.0.1", // Not yet upgrading Underscore from 1.5.2 to 1.7.0 (which should be done // in the package too) because we should consider using lodash instead diff --git a/scripts/dev-bundle-tool-package.js b/scripts/dev-bundle-tool-package.js index a04716f09e..deeac7628e 100644 --- a/scripts/dev-bundle-tool-package.js +++ b/scripts/dev-bundle-tool-package.js @@ -18,7 +18,7 @@ var packageJson = { "meteor-promise": "0.8.6", promise: "8.0.1", reify: "0.17.3", - fibers: "2.0.0", + fibers: "3.0.0", // So that Babel can emit require("@babel/runtime/helpers/...") calls. "@babel/runtime": "7.1.2", // For backwards compatibility with isopackets that still depend on From 6cf87f2b7283ba338d9acf1c6ce4c8f064bb36c5 Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Sat, 3 Nov 2018 13:48:52 -0400 Subject: [PATCH 0022/1217] Update pathwatcher npm package to version 8.0.2. --- scripts/dev-bundle-tool-package.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/dev-bundle-tool-package.js b/scripts/dev-bundle-tool-package.js index deeac7628e..06d52bad1c 100644 --- a/scripts/dev-bundle-tool-package.js +++ b/scripts/dev-bundle-tool-package.js @@ -52,7 +52,7 @@ var packageJson = { escope: "3.6.0", split2: "2.2.0", multipipe: "2.0.1", - pathwatcher: "7.1.1", + pathwatcher: "8.0.2", optimism: "0.6.8", 'lru-cache': '4.1.3' } From 3a18f67ac22bc9cf43a36ff6474d0061cb834656 Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Sat, 3 Nov 2018 13:51:40 -0400 Subject: [PATCH 0023/1217] Rely on native Node.js Promise implementation. There's no reason to use a Promise polyfill in Node.js at this point. --- scripts/dev-bundle-tool-package.js | 1 - tools/tool-env/install-promise.js | 7 +++---- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/scripts/dev-bundle-tool-package.js b/scripts/dev-bundle-tool-package.js index 06d52bad1c..2acca08cf0 100644 --- a/scripts/dev-bundle-tool-package.js +++ b/scripts/dev-bundle-tool-package.js @@ -16,7 +16,6 @@ var packageJson = { "node-pre-gyp": "0.10.3", "meteor-babel": "7.1.3", "meteor-promise": "0.8.6", - promise: "8.0.1", reify: "0.17.3", fibers: "3.0.0", // So that Babel can emit require("@babel/runtime/helpers/...") calls. diff --git a/tools/tool-env/install-promise.js b/tools/tool-env/install-promise.js index 10dee1cf07..b86a68cf09 100644 --- a/tools/tool-env/install-promise.js +++ b/tools/tool-env/install-promise.js @@ -1,8 +1,7 @@ -// Install a global ES2015-compliant Promise constructor that knows how to -// run all its callbacks in Fibers. +// Ensure the global Promise constructor knows how to run all its +// callbacks in Fibers. -var Promise = global.Promise || - require("promise/lib/es6-extensions"); +const { Promise } = global; function makeCompatible(newPromise) { require("meteor-promise").makeCompatible( From d177085acca6208105be163f96efa277e377227f Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Sat, 3 Nov 2018 13:58:05 -0400 Subject: [PATCH 0024/1217] Bump $BUNDLE_VERSION to 8.12.0.3 before rebuilding dev bundle. --- meteor | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meteor b/meteor index 8cc4eed189..d5db78ef60 100755 --- a/meteor +++ b/meteor @@ -1,6 +1,6 @@ #!/usr/bin/env bash -BUNDLE_VERSION=8.12.0.2 +BUNDLE_VERSION=8.12.0.3 # OS Check. Put here because here is where we download the precompiled # bundles that are arch specific. From a54c9261add912e075ff5156b1ccc6c21f1c6722 Mon Sep 17 00:00:00 2001 From: Lars Gleim Date: Sat, 3 Nov 2018 20:45:47 +0100 Subject: [PATCH 0025/1217] Fix uncaught TypeError in autoupdate_client.js (#10281) This fixes an issue (c.f. https://github.com/Urigo/meteor-client-bundler/issues/87) where when the __meteor_runtime_config__ does not contain a proper autoupdate configuration object, the client would fail to load properly. --- packages/autoupdate/autoupdate_client.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/autoupdate/autoupdate_client.js b/packages/autoupdate/autoupdate_client.js index a3ce4d2449..92748f22a0 100644 --- a/packages/autoupdate/autoupdate_client.js +++ b/packages/autoupdate/autoupdate_client.js @@ -28,8 +28,8 @@ const clientArch = Meteor.isCordova ? "web.cordova" : Meteor.isModern ? "web.browser" : "web.browser.legacy"; -const autoupdateVersions = - __meteor_runtime_config__.autoupdate.versions[clientArch] || { +const autoupdateVersions = + ((__meteor_runtime_config__.autoupdate || {}).versions || {})[clientArch] || { version: "unknown", versionRefreshable: "unknown", versionNonRefreshable: "unknown", From c5b51b0fc2a8cef498b9390ebcb4925e02de83e8 Mon Sep 17 00:00:00 2001 From: Geoffrey Challen Date: Sat, 3 Nov 2018 14:48:29 -0500 Subject: [PATCH 0026/1217] user.services is not an array. (#10299) --- packages/accounts-base/accounts_server.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/accounts-base/accounts_server.js b/packages/accounts-base/accounts_server.js index 37da4975af..fc2a89dd2f 100644 --- a/packages/accounts-base/accounts_server.js +++ b/packages/accounts-base/accounts_server.js @@ -1515,9 +1515,9 @@ function defaultValidateNewUserHook(user) { emailIsGood = user.emails.reduce( (prev, email) => prev || this._testEmailDomain(email.address), false ); - } else if (user.services && user.services.length > 0) { + } else if (user.services && Object.values(user.services).length > 0) { // Find any email of any service and check it - emailIsGood = user.services.reduce( + emailIsGood = Object.values(user.services).reduce( (prev, service) => service.email && this._testEmailDomain(service.email), false, ); From 689ae3dfa776d3761205f41a841eba6e96c737e3 Mon Sep 17 00:00:00 2001 From: lukas strassel Date: Sun, 21 Oct 2018 13:37:37 +0200 Subject: [PATCH 0027/1217] Update postcss and cssnano to latest non breaking versions (#10260) --- .../.npm/package/npm-shrinkwrap.json | 1770 +++++------------ packages/minifier-css/minifier-tests.js | 10 +- packages/minifier-css/minifier.js | 21 +- packages/minifier-css/package.js | 4 +- 4 files changed, 466 insertions(+), 1339 deletions(-) diff --git a/packages/minifier-css/.npm/package/npm-shrinkwrap.json b/packages/minifier-css/.npm/package/npm-shrinkwrap.json index 2b1a1401bf..4c196d165f 100644 --- a/packages/minifier-css/.npm/package/npm-shrinkwrap.json +++ b/packages/minifier-css/.npm/package/npm-shrinkwrap.json @@ -6,11 +6,6 @@ "resolved": "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz", "integrity": "sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM=" }, - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" - }, "ansi-styles": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", @@ -21,118 +16,40 @@ "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==" }, - "autoprefixer": { - "version": "6.7.7", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-6.7.7.tgz", - "integrity": "sha1-Hb0cg1ZY41zj+ZhAmdsAWFx4IBQ=", - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" - }, - "chalk": { - "version": "1.1.3", - "resolved": "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dependencies": { - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" - } - } - }, - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==" - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=" - } - } - }, - "balanced-match": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz", - "integrity": "sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg=" + "boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=" }, "browserslist": { - "version": "1.7.7", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-1.7.7.tgz", - "integrity": "sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk=" + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.3.4.tgz", + "integrity": "sha512-u5iz+ijIMUlmV8blX82VGFrB9ecnUg5qEt55CMZ/YJEhha+d8qpBfOFuutJ6F/VKRXjZoD33b6uvarpPxcl3RA==" }, "caniuse-api": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-1.6.1.tgz", - "integrity": "sha1-tTTnxzTE+B7F++isoq0kNUuWLGw=" + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", + "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==" }, - "caniuse-db": { - "version": "1.0.30000885", - "resolved": "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30000885.tgz", - "integrity": "sha512-Hy1a+UIXooG+tRlt3WnT9avMf+l999bR9J1MqlQdYKgbsYjKxV4a4rgcmiyMmdCLPBFsiRoDxdl9tnNyaq2RXw==" + "caniuse-lite": { + "version": "1.0.30000904", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000904.tgz", + "integrity": "sha512-M4sXvogCoY5Fp6fuXIaQG/MIexlEFQ3Lgwban+KlqiQUbUIkSmjAB8ZJIP79aj2cdqz2F1Lb+Z+5GwHvCrbLtg==" }, "chalk": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", - "dependencies": { - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==" - } - } - }, - "clap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/clap/-/clap-1.2.3.tgz", - "integrity": "sha512-4CoL/A3hf90V3VIEjeuhSvlGFEHKzOz+Wfc2IVZc+FaUgU0ZQafJTP49fvnULipOPcAfqhyI2duwQyns6xqjYA==", - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" - }, - "chalk": { - "version": "1.1.3", - "resolved": "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=" - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" - } - } - }, - "clone": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", - "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=" + "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==" }, "coa": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/coa/-/coa-1.0.4.tgz", - "integrity": "sha1-qe8VNmDWqGqL3sAomlxoTSF0Mv0=" + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/coa/-/coa-2.0.1.tgz", + "integrity": "sha512-5wfTTO8E2/ja4jFSxePXlG5nRu5bBtL/r1HCIpJW/lzT6yDtKl0u0Z4o/Vpz32IpKmBn7HerheEZQgA9N2DarQ==" }, "color": { - "version": "0.11.4", - "resolved": "https://registry.npmjs.org/color/-/color-0.11.4.tgz", - "integrity": "sha1-bXtcdPtl6EHNSHkq0e1eB7kE12Q=" + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/color/-/color-3.1.0.tgz", + "integrity": "sha512-CwyopLkuRYO5ei2EpzpIh6LqJMt6Mt+jZhO5VI5f/wJLZriXQE32/SSqzmrh+QB+AZT81Cj8yv+7zwToW8ahZg==" }, "color-convert": { "version": "1.9.3", @@ -145,74 +62,112 @@ "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" }, "color-string": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/color-string/-/color-string-0.3.0.tgz", - "integrity": "sha1-J9RvtnAlxcL6JZk7+/V55HhBuZE=" - }, - "colormin": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/colormin/-/colormin-1.1.2.tgz", - "integrity": "sha1-6i90IKcrlogaOKrlnsEkpvcpgTM=" + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.5.3.tgz", + "integrity": "sha512-dC2C5qeWoYkxki5UAXapdjqO672AM4vZuPGRQfO8b5HKuKGBbKWpITyDYN7TOFKvRW7kOgAn3746clDBMDJyQw==" }, "colors": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz", "integrity": "sha1-FopHAXVran9RoSzgyXv6KMCE7WM=" }, + "cosmiconfig": { + "version": "5.0.6", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.0.6.tgz", + "integrity": "sha512-6DWfizHriCrFWURP1/qyhsiFvYdlJzbCzmtFWh744+KyWsJo5+kPzUZZaMRSSItoYc0pxFX7gEO7ZC1/gN/7AQ==" + }, "css-color-names": { "version": "0.0.4", - "resolved": "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz", + "resolved": "http://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz", "integrity": "sha1-gIrcLnnPhHOAabZGyyDsJ762KeA=" }, - "cssnano": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-3.10.0.tgz", - "integrity": "sha1-Tzj2zqK5sX+gFJDyPx3GjqZcHDg=", + "css-declaration-sorter": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-4.0.1.tgz", + "integrity": "sha512-BcxQSKTSEEQUftYpBVnsH4SF05NTuBokb19/sBt6asXGKZ/6VP7PLG1CBCkFDYOnhXhPh0jMhO6xZ71oYHXHBA==" + }, + "css-select": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-2.0.2.tgz", + "integrity": "sha512-dSpYaDVoWaELjvZ3mS6IKZM/y2PMPa/XYoEfYNZePL4U/XgyxZNroHEHReDx/d+VgXh9VbCTtFqLkFbmeqeaRQ==" + }, + "css-select-base-adapter": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz", + "integrity": "sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w==" + }, + "css-tree": { + "version": "1.0.0-alpha.28", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.28.tgz", + "integrity": "sha512-joNNW1gCp3qFFzj4St6zk+Wh/NBv0vM5YbEreZk0SD4S23S+1xBKb6cLDg2uj4P4k/GUMlIm6cKIDqIG+vdt0w==", "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" - }, - "chalk": { - "version": "1.1.3", - "resolved": "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dependencies": { - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" - } - } - }, - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==" - }, "source-map": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=" } } }, + "css-unit-converter": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/css-unit-converter/-/css-unit-converter-1.1.1.tgz", + "integrity": "sha1-2bkoGtz9jO2TW9urqDeGiX9k6ZY=" + }, + "css-url-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/css-url-regex/-/css-url-regex-1.1.0.tgz", + "integrity": "sha1-g4NCMMyfdMRX3lnuvRVD/uuDt+w=" + }, + "css-what": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-2.1.2.tgz", + "integrity": "sha512-wan8dMWQ0GUeF7DGEPVjhHemVW/vy6xUYmFzRY8RYqgA0JtXC9rJmbScBjqSu6dg9q0lwPQy6ZAmJVr3PPTvqQ==" + }, + "cssesc": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-2.0.0.tgz", + "integrity": "sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg==" + }, + "cssnano": { + "version": "4.1.7", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-4.1.7.tgz", + "integrity": "sha512-AiXL90l+MDuQmRNyypG2P7ux7K4XklxYzNNUd5HXZCNcH8/N9bHPcpN97v8tXgRVeFL/Ed8iP8mVmAAu0ZpT7A==" + }, + "cssnano-preset-default": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-4.0.5.tgz", + "integrity": "sha512-f1uhya0ZAjPYtDD58QkBB0R+uYdzHPei7cDxJyQQIHt5acdhyGXaSXl2nDLzWHLwGFbZcHxQtkJS8mmNwnxTvw==" + }, + "cssnano-util-get-arguments": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cssnano-util-get-arguments/-/cssnano-util-get-arguments-4.0.0.tgz", + "integrity": "sha1-7ToIKZ8h11dBsg87gfGU7UnMFQ8=" + }, + "cssnano-util-get-match": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cssnano-util-get-match/-/cssnano-util-get-match-4.0.0.tgz", + "integrity": "sha1-wOTKB/U4a7F+xeUiULT1lhNlFW0=" + }, + "cssnano-util-raw-cache": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/cssnano-util-raw-cache/-/cssnano-util-raw-cache-4.0.1.tgz", + "integrity": "sha512-qLuYtWK2b2Dy55I8ZX3ky1Z16WYsx544Q0UWViebptpwn/xDBmog2TLg4f+DBMg1rJ6JDWtn96WHbOKDWt1WQA==" + }, + "cssnano-util-same-parent": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.1.tgz", + "integrity": "sha512-WcKx5OY+KoSIAxBW6UBBRay1U6vkYheCdjyVNDm85zt5K9mHoGOfsOsqIszfAqrQQFIIKgjh2+FDgIj/zsl21Q==" + }, "csso": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/csso/-/csso-2.3.2.tgz", - "integrity": "sha1-3dUsWHAz9J6Utx/FVWnyUuj/X4U=", + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/csso/-/csso-3.5.1.tgz", + "integrity": "sha512-vrqULLffYU1Q2tLdJvaCYbONStnfkfimRxXNaGjxMldI0C7JPBC4rB1RyjhfdZ4m1frm8pM9uRPKH3d2knZ8gg==", "dependencies": { + "css-tree": { + "version": "1.0.0-alpha.29", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.29.tgz", + "integrity": "sha512-sRNb1XydwkW9IOci6iB2xmy8IGCj6r/fr+JWitvJ2JxQRPzN3T4AGGVWCMlVmVwM1gtgALJRmGIlWv5ppnGGkg==" + }, "source-map": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", @@ -220,20 +175,62 @@ } } }, - "decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" + "define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==" }, - "defined": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", - "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=" + "dom-serializer": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.0.tgz", + "integrity": "sha1-BzxpdUbOB4DOI75KKOKT5AvDDII=", + "dependencies": { + "domelementtype": { + "version": "1.1.3", + "resolved": "http://registry.npmjs.org/domelementtype/-/domelementtype-1.1.3.tgz", + "integrity": "sha1-vSh3PiZCiBrsUVRJJCmcXNgiGFs=" + } + } + }, + "domelementtype": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.2.1.tgz", + "integrity": "sha512-SQVCLFS2E7G5CRCMdn6K9bIhRj1bS6QBWZfF0TUPh4V/BbqrQ619IdSS3/izn0FZ+9l+uODzaZjb08fjOfablA==" + }, + "domutils": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", + "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==" + }, + "dot-prop": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.0.tgz", + "integrity": "sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==" }, "electron-to-chromium": { - "version": "1.3.63", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.63.tgz", - "integrity": "sha512-Ec35NNY040HKuSxMAzBMgz/uUI78amSWpBUD9x2gN7R7gkb/wgAcClngWklcLP0/lm/g0UUYHnC/tUIlZj8UvQ==" + "version": "1.3.83", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.83.tgz", + "integrity": "sha512-DqJoDarxq50dcHsOOlMLNoy+qQitlMNbYb6wwbE0oUw2veHdRkpNrhmngiUYKMErdJ8SJ48rpJsZTQgy5SoEAA==" + }, + "entities": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", + "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==" + }, + "error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==" + }, + "es-abstract": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.12.0.tgz", + "integrity": "sha512-C8Fx/0jFmV5IPoMOFPA9P9G5NtqW+4cOPit3MIuvR2t7Ag2K15EJTpxnHAYTzL+aYQJIESYeXZmDBfOBE1HcpA==" + }, + "es-to-primitive": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.0.tgz", + "integrity": "sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg==" }, "escape-string-regexp": { "version": "1.0.5", @@ -241,14 +238,9 @@ "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" }, "esprima": { - "version": "2.7.3", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz", - "integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=" - }, - "flatten": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/flatten/-/flatten-1.0.2.tgz", - "integrity": "sha1-2uRqnXj74lKSJYzB54CkHZXAN4I=" + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" }, "function-bind": { "version": "1.1.1", @@ -260,20 +252,35 @@ "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==" }, - "has-ansi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=" - }, "has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" }, + "has-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz", + "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=" + }, + "hex-color-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/hex-color-regex/-/hex-color-regex-1.1.0.tgz", + "integrity": "sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ==" + }, + "hsl-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/hsl-regex/-/hsl-regex-1.0.0.tgz", + "integrity": "sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4=" + }, + "hsla-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/hsla-regex/-/hsla-regex-1.0.0.tgz", + "integrity": "sha1-wc56MWjIxmFAM6S194d/OyJfnDg=" + }, "html-comment-regex": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/html-comment-regex/-/html-comment-regex-1.1.1.tgz", - "integrity": "sha1-ZouTd26q5V696POtRkswekljYl4=" + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/html-comment-regex/-/html-comment-regex-1.1.2.tgz", + "integrity": "sha512-P+M65QY2JQ5Y0G9KKdlDpo0zK+/OHptU5AaBwUfAIDJZk1MYf32Frm84EcOytfJE0t5JvkAnKlmjsXDnWzCJmQ==" }, "indexes-of": { "version": "1.0.1", @@ -285,25 +292,65 @@ "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-2.1.0.tgz", "integrity": "sha1-UFMN+4T8yap9vnhS6Do3uTufKqY=" }, - "is-plain-obj": { + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" + }, + "is-callable": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz", + "integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==" + }, + "is-color-stop": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=" + "resolved": "https://registry.npmjs.org/is-color-stop/-/is-color-stop-1.1.0.tgz", + "integrity": "sha1-z/9HGu5N1cnhWFmPvhKWe1za00U=" + }, + "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=" + }, + "is-directory": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz", + "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=" + }, + "is-obj": { + "version": "1.0.1", + "resolved": "http://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", + "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=" + }, + "is-regex": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", + "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=" + }, + "is-resolvable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz", + "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==" }, "is-svg": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-svg/-/is-svg-2.1.0.tgz", - "integrity": "sha1-z2EJDaDZ77yrhyLeum8DIgjbsOk=" + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-svg/-/is-svg-3.0.0.tgz", + "integrity": "sha512-gi4iHK53LR2ujhLVVj+37Ykh9GLqYHX6JOVXbLAucaG/Cqw9xwdFOjDM2qeifLs1sF1npXXFvDu0r5HNgCMrzQ==" }, - "js-base64": { - "version": "2.4.9", - "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.4.9.tgz", - "integrity": "sha512-xcinL3AuDJk7VSzsHgb9DvvIXayBbadtMZ4HFPx8rUszbW1MuNMlwYVC4zzCZ6e1sqZpnNS5ZFYOhXqA39T7LQ==" + "is-symbol": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.2.tgz", + "integrity": "sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw==" }, "js-yaml": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.7.0.tgz", - "integrity": "sha1-XJZ93YN6m/3KXy3oQlOr6KHAO4A=" + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.12.0.tgz", + "integrity": "sha512-PIt2cnwmPfL4hKNwqeiuz4bKfnzHTBv6HyVgjahA6mPLwPDzjDWrplJBMjHUFxku/N3FlmrbyPclad+I+4mJ3A==" + }, + "json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==" }, "lodash.memoize": { "version": "4.1.2", @@ -315,10 +362,10 @@ "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=" }, - "math-expression-evaluator": { - "version": "1.2.17", - "resolved": "https://registry.npmjs.org/math-expression-evaluator/-/math-expression-evaluator-1.2.17.tgz", - "integrity": "sha1-3oGf282E3M2PrlnGrreWFbnSZqw=" + "mdn-data": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-1.1.4.tgz", + "integrity": "sha512-FSYbp3lyKjyj3E7fMl6rYvUdX0FBXaluGqlFoYESWQlyUTq8R+wp0rkFxoYFqZlHCvsUXGjyJmLQSnXToYhOSA==" }, "minimist": { "version": "0.0.8", @@ -330,1180 +377,241 @@ "resolved": "http://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=" }, - "normalize-range": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", - "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=" + "node-releases": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.0.3.tgz", + "integrity": "sha512-ZaZWMsbuDcetpHmYeKWPO6e63pSXLb50M7lJgCbcM2nC/nQC3daNifmtp5a2kp7EWwYfhuvH6zLPWkrF8IiDdw==" }, "normalize-url": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-1.9.1.tgz", - "integrity": "sha1-LMDWazHqIwNkWENuNiDYWVTGbDw=" + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-3.3.0.tgz", + "integrity": "sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg==" }, - "num2fraction": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz", - "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=" + "nth-check": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz", + "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==" }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" + "object-keys": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.12.tgz", + "integrity": "sha512-FTMyFUm2wBcGHnH2eXmz7tC6IwlqQZ6mVZ+6dm6vZ4IQIHjs6FdNsQBuKGPuUUUY6NfJw2PshC08Tn6LzLDOag==" + }, + "object.getownpropertydescriptors": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz", + "integrity": "sha1-h1jIRvW0B62rDyNuCYbxSwUcqhY=" + }, + "object.values": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.0.4.tgz", + "integrity": "sha1-5STaCbT2b/Bd9FdUbscqyZ8TBpo=" + }, + "parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=" }, "postcss": { - "version": "6.0.13", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.13.tgz", - "integrity": "sha512-nHsrD1PPTMSJDfU+osVsLtPkSP9YGeoOz4FDLN4r1DW4N5vqL1J+gACzTQHsfwIiWG/0/nV4yCzjTMo1zD8U1g==" + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.5.tgz", + "integrity": "sha512-HBNpviAUFCKvEh7NZhw1e8MBPivRszIiUnhrJ+sBFVSYSqubrzwX3KG51mYgcRHX8j/cAgZJedONZcm5jTBdgQ==" }, "postcss-calc": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-5.3.1.tgz", - "integrity": "sha1-d7rnypKK2FcW4v2kLyYb98HWW14=", - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" - }, - "chalk": { - "version": "1.1.3", - "resolved": "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dependencies": { - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" - } - } - }, - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==" - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=" - } - } + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-7.0.1.tgz", + "integrity": "sha512-oXqx0m6tb4N3JGdmeMSc/i91KppbYsFZKdH0xMOqK8V1rJlzrKlTdokz8ozUXLVejydRN6u2IddxpcijRj2FqQ==" }, "postcss-colormin": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-2.2.2.tgz", - "integrity": "sha1-ZjFBfV8OkJo9fsJrJMio0eT5bks=", - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" - }, - "chalk": { - "version": "1.1.3", - "resolved": "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dependencies": { - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" - } - } - }, - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==" - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=" - } - } + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-4.0.2.tgz", + "integrity": "sha512-1QJc2coIehnVFsz0otges8kQLsryi4lo19WD+U5xCWvXd0uw/Z+KKYnbiNDCnO9GP+PvErPHCG0jNvWTngk9Rw==" }, "postcss-convert-values": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-2.6.1.tgz", - "integrity": "sha1-u9hZPFwf0uPRwyK7kl3K6Nrk1i0=", - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" - }, - "chalk": { - "version": "1.1.3", - "resolved": "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dependencies": { - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" - } - } - }, - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==" - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=" - } - } + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-4.0.1.tgz", + "integrity": "sha512-Kisdo1y77KUC0Jmn0OXU/COOJbzM8cImvw1ZFsBgBgMgb1iL23Zs/LXRe3r+EZqM3vGYKdQ2YJVQ5VkJI+zEJQ==" }, "postcss-discard-comments": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-2.0.4.tgz", - "integrity": "sha1-vv6J+v1bPazlzM5Rt2uBUUvgDj0=", - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" - }, - "chalk": { - "version": "1.1.3", - "resolved": "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dependencies": { - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" - } - } - }, - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==" - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=" - } - } + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-4.0.1.tgz", + "integrity": "sha512-Ay+rZu1Sz6g8IdzRjUgG2NafSNpp2MSMOQUb+9kkzzzP+kh07fP0yNbhtFejURnyVXSX3FYy2nVNW1QTnNjgBQ==" }, "postcss-discard-duplicates": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-2.1.0.tgz", - "integrity": "sha1-uavye4isGIFYpesSq8riAmO5GTI=", - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" - }, - "chalk": { - "version": "1.1.3", - "resolved": "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dependencies": { - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" - } - } - }, - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==" - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=" - } - } + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.2.tgz", + "integrity": "sha512-ZNQfR1gPNAiXZhgENFfEglF93pciw0WxMkJeVmw8eF+JZBbMD7jp6C67GqJAXVZP2BWbOztKfbsdmMp/k8c6oQ==" }, "postcss-discard-empty": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-2.1.0.tgz", - "integrity": "sha1-0rS9nVztXr2Nyt52QMfXzX9PkrU=", - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" - }, - "chalk": { - "version": "1.1.3", - "resolved": "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dependencies": { - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" - } - } - }, - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==" - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=" - } - } + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-4.0.1.tgz", + "integrity": "sha512-B9miTzbznhDjTfjvipfHoqbWKwd0Mj+/fL5s1QOz06wufguil+Xheo4XpOnc4NqKYBCNqqEzgPv2aPBIJLox0w==" }, "postcss-discard-overridden": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-0.1.1.tgz", - "integrity": "sha1-ix6vVU9ob7KIzYdMVWZ7CqNmjVg=", - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" - }, - "chalk": { - "version": "1.1.3", - "resolved": "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dependencies": { - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" - } - } - }, - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==" - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=" - } - } - }, - "postcss-discard-unused": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/postcss-discard-unused/-/postcss-discard-unused-2.2.3.tgz", - "integrity": "sha1-vOMLLMWR/8Y0Mitfs0ZLbZNPRDM=", - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" - }, - "chalk": { - "version": "1.1.3", - "resolved": "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dependencies": { - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" - } - } - }, - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==" - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=" - } - } - }, - "postcss-filter-plugins": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/postcss-filter-plugins/-/postcss-filter-plugins-2.0.3.tgz", - "integrity": "sha512-T53GVFsdinJhgwm7rg1BzbeBRomOg9y5MBVhGcsV0CxurUdVj1UlPdKtn7aqYA/c/QVkzKMjq2bSV5dKG5+AwQ==", - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" - }, - "chalk": { - "version": "1.1.3", - "resolved": "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dependencies": { - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" - } - } - }, - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==" - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=" - } - } - }, - "postcss-merge-idents": { - "version": "2.1.7", - "resolved": "https://registry.npmjs.org/postcss-merge-idents/-/postcss-merge-idents-2.1.7.tgz", - "integrity": "sha1-TFUwMTwI4dWzu/PSu8dH4njuonA=", - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" - }, - "chalk": { - "version": "1.1.3", - "resolved": "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dependencies": { - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" - } - } - }, - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==" - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=" - } - } + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-4.0.1.tgz", + "integrity": "sha512-IYY2bEDD7g1XM1IDEsUT4//iEYCxAmP5oDSFMVU/JVvT7gh+l4fmjciLqGgwjdWpQIdb0Che2VX00QObS5+cTg==" }, "postcss-merge-longhand": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-2.0.2.tgz", - "integrity": "sha1-I9kM0Sewp3mUkVMyc5A0oaTz1lg=", - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" - }, - "chalk": { - "version": "1.1.3", - "resolved": "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dependencies": { - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" - } - } - }, - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==" - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=" - } - } + "version": "4.0.9", + "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-4.0.9.tgz", + "integrity": "sha512-UVMXrXF5K/kIwUbK/crPFCytpWbNX2Q3dZSc8+nQUgfOHrCT4+MHncpdxVphUlQeZxlLXUJbDyXc5NBhTnS2tA==" }, "postcss-merge-rules": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-2.1.2.tgz", - "integrity": "sha1-0d9d+qexrMO+VT8OnhDofGG19yE=", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-4.0.2.tgz", + "integrity": "sha512-UiuXwCCJtQy9tAIxsnurfF0mrNHKc4NnNx6NxqmzNNjXpQwLSukUxELHTRF0Rg1pAmcoKLih8PwvZbiordchag==", "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" - }, - "chalk": { - "version": "1.1.3", - "resolved": "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dependencies": { - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" - } - } - }, - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==" - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=" + "postcss-selector-parser": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.1.tgz", + "integrity": "sha1-T4dfSvsMllc9XPTXQBGu4lCn6GU=" } } }, - "postcss-message-helpers": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/postcss-message-helpers/-/postcss-message-helpers-2.0.0.tgz", - "integrity": "sha1-pPL0+rbk/gAvCu0ABHjN9S+bpg4=" - }, "postcss-minify-font-values": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-1.0.5.tgz", - "integrity": "sha1-S1jttWZB66fIR0qzUmyv17vey2k=", - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" - }, - "chalk": { - "version": "1.1.3", - "resolved": "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dependencies": { - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" - } - } - }, - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==" - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=" - } - } + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-4.0.2.tgz", + "integrity": "sha512-j85oO6OnRU9zPf04+PZv1LYIYOprWm6IA6zkXkrJXyRveDEuQggG6tvoy8ir8ZwjLxLuGfNkCZEQG7zan+Hbtg==" }, "postcss-minify-gradients": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-1.0.5.tgz", - "integrity": "sha1-Xb2hE3NwP4PPtKPqOIHY11/15uE=", - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" - }, - "chalk": { - "version": "1.1.3", - "resolved": "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dependencies": { - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" - } - } - }, - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==" - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=" - } - } + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-4.0.1.tgz", + "integrity": "sha512-pySEW3E6Ly5mHm18rekbWiAjVi/Wj8KKt2vwSfVFAWdW6wOIekgqxKxLU7vJfb107o3FDNPkaYFCxGAJBFyogA==" }, "postcss-minify-params": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-1.2.2.tgz", - "integrity": "sha1-rSzgcTc7lDs9kwo/pZo1jCjW8fM=", - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" - }, - "chalk": { - "version": "1.1.3", - "resolved": "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dependencies": { - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" - } - } - }, - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==" - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=" - } - } + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-4.0.1.tgz", + "integrity": "sha512-h4W0FEMEzBLxpxIVelRtMheskOKKp52ND6rJv+nBS33G1twu2tCyurYj/YtgU76+UDCvWeNs0hs8HFAWE2OUFg==" }, "postcss-minify-selectors": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-2.1.1.tgz", - "integrity": "sha1-ssapjAByz5G5MtGkllCBFDEXNb8=", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-4.0.1.tgz", + "integrity": "sha512-8+plQkomve3G+CodLCgbhAKrb5lekAnLYuL1d7Nz+/7RANpBEVdgBkPNwljfSKvZ9xkkZTZITd04KP+zeJTJqg==", "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" - }, - "chalk": { - "version": "1.1.3", - "resolved": "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dependencies": { - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" - } - } - }, - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==" - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=" + "postcss-selector-parser": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.1.tgz", + "integrity": "sha1-T4dfSvsMllc9XPTXQBGu4lCn6GU=" } } }, "postcss-normalize-charset": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-1.1.1.tgz", - "integrity": "sha1-757nEhLX/nWceO0WL2HtYrXLk/E=", - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" - }, - "chalk": { - "version": "1.1.3", - "resolved": "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dependencies": { - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" - } - } - }, - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==" - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=" - } - } + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-4.0.1.tgz", + "integrity": "sha512-gMXCrrlWh6G27U0hF3vNvR3w8I1s2wOBILvA87iNXaPvSNo5uZAMYsZG7XjCUf1eVxuPfyL4TJ7++SGZLc9A3g==" + }, + "postcss-normalize-display-values": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.1.tgz", + "integrity": "sha512-R5mC4vaDdvsrku96yXP7zak+O3Mm9Y8IslUobk7IMP+u/g+lXvcN4jngmHY5zeJnrQvE13dfAg5ViU05ZFDwdg==" + }, + "postcss-normalize-positions": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-4.0.1.tgz", + "integrity": "sha512-GNoOaLRBM0gvH+ZRb2vKCIujzz4aclli64MBwDuYGU2EY53LwiP7MxOZGE46UGtotrSnmarPPZ69l2S/uxdaWA==" + }, + "postcss-normalize-repeat-style": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.1.tgz", + "integrity": "sha512-fFHPGIjBUyUiswY2rd9rsFcC0t3oRta4wxE1h3lpwfQZwFeFjXFSiDtdJ7APCmHQOnUZnqYBADNRPKPwFAONgA==" + }, + "postcss-normalize-string": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-4.0.1.tgz", + "integrity": "sha512-IJoexFTkAvAq5UZVxWXAGE0yLoNN/012v7TQh5nDo6imZJl2Fwgbhy3J2qnIoaDBrtUP0H7JrXlX1jjn2YcvCQ==" + }, + "postcss-normalize-timing-functions": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.1.tgz", + "integrity": "sha512-1nOtk7ze36+63ONWD8RCaRDYsnzorrj+Q6fxkQV+mlY5+471Qx9kspqv0O/qQNMeApg8KNrRf496zHwJ3tBZ7w==" + }, + "postcss-normalize-unicode": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.1.tgz", + "integrity": "sha512-od18Uq2wCYn+vZ/qCOeutvHjB5jm57ToxRaMeNuf0nWVHaP9Hua56QyMF6fs/4FSUnVIw0CBPsU0K4LnBPwYwg==" }, "postcss-normalize-url": { - "version": "3.0.8", - "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-3.0.8.tgz", - "integrity": "sha1-EI90s/L82viRov+j6kWSJ5/HgiI=", - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" - }, - "chalk": { - "version": "1.1.3", - "resolved": "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dependencies": { - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" - } - } - }, - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==" - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=" - } - } + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-4.0.1.tgz", + "integrity": "sha512-p5oVaF4+IHwu7VpMan/SSpmpYxcJMtkGppYf0VbdH5B6hN8YNmVyJLuY9FmLQTzY3fag5ESUUHDqM+heid0UVA==" + }, + "postcss-normalize-whitespace": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.1.tgz", + "integrity": "sha512-U8MBODMB2L+nStzOk6VvWWjZgi5kQNShCyjRhMT3s+W9Jw93yIjOnrEkKYD3Ul7ChWbEcjDWmXq0qOL9MIAnAw==" }, "postcss-ordered-values": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-2.2.3.tgz", - "integrity": "sha1-7sbCpntsQSqNsgQud/6NpD+VwR0=", - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" - }, - "chalk": { - "version": "1.1.3", - "resolved": "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dependencies": { - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" - } - } - }, - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==" - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=" - } - } - }, - "postcss-reduce-idents": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/postcss-reduce-idents/-/postcss-reduce-idents-2.4.0.tgz", - "integrity": "sha1-wsbSDMlYKE9qv75j92Cb9AkFmtM=", - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" - }, - "chalk": { - "version": "1.1.3", - "resolved": "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dependencies": { - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" - } - } - }, - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==" - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=" - } - } + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-4.1.1.tgz", + "integrity": "sha512-PeJiLgJWPzkVF8JuKSBcylaU+hDJ/TX3zqAMIjlghgn1JBi6QwQaDZoDIlqWRcCAI8SxKrt3FCPSRmOgKRB97Q==" }, "postcss-reduce-initial": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-1.0.1.tgz", - "integrity": "sha1-aPgGlfBF0IJjqHmtJA343WT2ROo=", - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" - }, - "chalk": { - "version": "1.1.3", - "resolved": "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dependencies": { - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" - } - } - }, - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==" - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=" - } - } + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-4.0.2.tgz", + "integrity": "sha512-epUiC39NonKUKG+P3eAOKKZtm5OtAtQJL7Ye0CBN1f+UQTHzqotudp+hki7zxXm7tT0ZAKDMBj1uihpPjP25ug==" }, "postcss-reduce-transforms": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-1.0.4.tgz", - "integrity": "sha1-/3b02CEkN7McKYpC0uFEQCV3GuE=", - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" - }, - "chalk": { - "version": "1.1.3", - "resolved": "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dependencies": { - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" - } - } - }, - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==" - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=" - } - } + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.1.tgz", + "integrity": "sha512-sZVr3QlGs0pjh6JAIe6DzWvBaqYw05V1t3d9Tp+VnFRT5j+rsqoWsysh/iSD7YNsULjq9IAylCznIwVd5oU/zA==" }, "postcss-selector-parser": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-2.2.3.tgz", - "integrity": "sha1-+UN3iGBsPJrO4W/+jYsWKX8nu5A=" + "version": "5.0.0-rc.4", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-5.0.0-rc.4.tgz", + "integrity": "sha512-0XvfYuShrKlTk1ooUrVzMCFQRcypsdEIsGqh5IxC5rdtBi4/M/tDAJeSONwC2MTqEFsmPZYAV7Dd4X8rgAfV0A==" }, "postcss-svgo": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-2.1.6.tgz", - "integrity": "sha1-tt8YqmE7Zm4TPwittSGcJoSsEI0=", - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" - }, - "chalk": { - "version": "1.1.3", - "resolved": "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dependencies": { - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" - } - } - }, - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==" - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=" - } - } + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-4.0.1.tgz", + "integrity": "sha512-YD5uIk5NDRySy0hcI+ZJHwqemv2WiqqzDgtvgMzO8EGSkK5aONyX8HMVFRFJSdO8wUWTuisUFn/d7yRRbBr5Qw==" }, "postcss-unique-selectors": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-2.0.2.tgz", - "integrity": "sha1-mB1X0p3csz57Hf4f1DuGSfkzyh0=", - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" - }, - "chalk": { - "version": "1.1.3", - "resolved": "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dependencies": { - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" - } - } - }, - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==" - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=" - } - } + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-4.0.1.tgz", + "integrity": "sha512-+JanVaryLo9QwZjKrmJgkI4Fn8SBgRO6WXQBJi7KiAVPlmxikB5Jzc4EvXMT2H0/m0RjrVVm9rGNhZddm/8Spg==" }, "postcss-value-parser": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.0.tgz", - "integrity": "sha1-h/OPnxj3dKSrTIojL1xc6IcqnRU=" - }, - "postcss-zindex": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/postcss-zindex/-/postcss-zindex-2.2.0.tgz", - "integrity": "sha1-0hCd3AVbka9n/EyzsCWUZjnSryI=", - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" - }, - "chalk": { - "version": "1.1.3", - "resolved": "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dependencies": { - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" - } - } - }, - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==" - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=" - } - } - }, - "prepend-http": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", - "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=" + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" }, "q": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=" }, - "query-string": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/query-string/-/query-string-4.3.4.tgz", - "integrity": "sha1-u7aTucqRXCMlFbIosaArYJBD2+s=" + "rgb-regex": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/rgb-regex/-/rgb-regex-1.0.1.tgz", + "integrity": "sha1-wODWiC3w4jviVKR16O3UGRX+rrE=" }, - "reduce-css-calc": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/reduce-css-calc/-/reduce-css-calc-1.3.0.tgz", - "integrity": "sha1-dHyRTgSWFKTJz7umKYca0dKSdxY=" - }, - "reduce-function-call": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/reduce-function-call/-/reduce-function-call-1.0.2.tgz", - "integrity": "sha1-WiAL+S4ON3UXUv5FsKszD9S2vpk=" + "rgba-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/rgba-regex/-/rgba-regex-1.0.0.tgz", + "integrity": "sha1-QzdOLiyglosO8VI0YLfXMP8i7rM=" }, "sax": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" }, - "sort-keys": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz", - "integrity": "sha1-RBttTTRnmPG05J6JIK37oOVD+a0=" + "semver": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.6.0.tgz", + "integrity": "sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg==" + }, + "simple-swizzle": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", + "integrity": "sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=", + "dependencies": { + "is-arrayish": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", + "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==" + } + } }, "source-map": { "version": "0.6.1", @@ -1515,32 +623,37 @@ "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" }, - "strict-uri-encode": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", - "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=" + "stable": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", + "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==" }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=" - }, - "supports-color": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", - "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", + "stylehacks": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-4.0.1.tgz", + "integrity": "sha512-TK5zEPeD9NyC1uPIdjikzsgWxdQQN/ry1X3d1iOz1UkYDCmcr928gWD1KHgyC27F50UnE0xCTrBOO1l6KR8M4w==", "dependencies": { - "has-flag": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", - "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=" + "postcss-selector-parser": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.1.tgz", + "integrity": "sha1-T4dfSvsMllc9XPTXQBGu4lCn6GU=" } } }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==" + }, "svgo": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/svgo/-/svgo-0.7.2.tgz", - "integrity": "sha1-n1dyQTlSE1xv779Ar+ak+qiLS7U=" + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-1.1.1.tgz", + "integrity": "sha512-GBkJbnTuFpM4jFbiERHDWhZc/S/kpHToqmZag3aEBjPYK44JAN2QBjvrGIxLOoCyMZjuFQIfTO2eJd8uwLY/9g==" + }, + "timsort": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/timsort/-/timsort-0.3.0.tgz", + "integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=" }, "uniq": { "version": "1.0.1", @@ -1552,15 +665,20 @@ "resolved": "https://registry.npmjs.org/uniqs/-/uniqs-2.0.0.tgz", "integrity": "sha1-/+3ks2slKQaW5uFl1KWe25mOawI=" }, + "unquote": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz", + "integrity": "sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ=" + }, + "util.promisify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.0.tgz", + "integrity": "sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA==" + }, "vendors": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/vendors/-/vendors-1.0.2.tgz", "integrity": "sha512-w/hry/368nO21AN9QljsaIhb9ZiZtZARoVH5f3CsFbawdLdayCgKRPup7CggujvySMxx0I91NOyxdVENohprLQ==" - }, - "whet.extend": { - "version": "0.9.9", - "resolved": "https://registry.npmjs.org/whet.extend/-/whet.extend-0.9.9.tgz", - "integrity": "sha1-+HfVv2SMl+WqVC+twW1qJZucEaE=" } } } diff --git a/packages/minifier-css/minifier-tests.js b/packages/minifier-css/minifier-tests.js index e9254d2afa..3b798e40af 100644 --- a/packages/minifier-css/minifier-tests.js +++ b/packages/minifier-css/minifier-tests.js @@ -92,9 +92,15 @@ Tinytest.add( (test) => { const css1 = '@import "custom.css"; body { color: "red"; }'; const css2 = 'body { color: "blue"; }'; - const cssAst1 = CssTools.parseCss(css1); - const cssAst2 = CssTools.parseCss(css2); + const cssAst1 = CssTools.parseCss(css1, {from: "test.css"}); + const cssAst2 = CssTools.parseCss(css2, {from: "test2.css"}); const mergedAst = CssTools.mergeCssAsts([cssAst1, cssAst2]); + const stringifiedAsts = CssTools.stringifyCss(mergedAst, { + sourcemap: true, + inputSourcemaps: false + }); test.equal(mergedAst.nodes.length, 3); + test.equal(stringifiedAsts.map.sources.length, 2); + test.equal(stringifiedAsts.map.sources[0], 'test.css'); } ); diff --git a/packages/minifier-css/minifier.js b/packages/minifier-css/minifier.js index 2762fb9aa5..faf7a77efa 100644 --- a/packages/minifier-css/minifier.js +++ b/packages/minifier-css/minifier.js @@ -21,7 +21,7 @@ const CssTools = { options.from = options.source; delete options.source; } - return postcss().process(cssText, options).root; + return postcss.parse(cssText, options); }, /** @@ -45,14 +45,13 @@ const CssTools = { }; delete options.sourcemap; } + // explicitly set from to undefined to prevent postcss warnings + if (!options.from){ + options.from = void 0; + } + + transformResult = cssAst.toResult(options); - const f = new Future; - postcss().process(cssAst, options).then(result => { - f.return(result); - }).catch(error => { - f.throw(error); - }); - transformResult = f.wait(); return { code: transformResult.css, map: transformResult.map ? transformResult.map.toJSON() : null, @@ -67,7 +66,11 @@ const CssTools = { */ minifyCss(cssText) { const f = new Future; - postcss([ cssnano({ safe: true }) ]).process(cssText).then(result => { + postcss([ + cssnano({ safe: true }), + ]).process(cssText, { + from: void 0, + }).then(result => { f.return(result.css); }).catch(error => { f.throw(error); diff --git a/packages/minifier-css/package.js b/packages/minifier-css/package.js index 1e54ebefe9..f6c64bd762 100644 --- a/packages/minifier-css/package.js +++ b/packages/minifier-css/package.js @@ -4,8 +4,8 @@ Package.describe({ }); Npm.depends({ - postcss: '6.0.13', - cssnano: '3.10.0' + postcss: '7.0.5', + cssnano: '4.1.7' }); Package.onUse(function (api) { From 249f31707a3c476a2a0b7116a407b813a8d02233 Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Sat, 3 Nov 2018 16:06:41 -0400 Subject: [PATCH 0028/1217] Bump [standard-]minifier-css package versions. --- packages/minifier-css/package.js | 2 +- .../.npm/plugin/minifyStdCSS/npm-shrinkwrap.json | 12 ++++++------ packages/standard-minifier-css/package.js | 6 +++--- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/packages/minifier-css/package.js b/packages/minifier-css/package.js index f6c64bd762..03ccc2eec1 100644 --- a/packages/minifier-css/package.js +++ b/packages/minifier-css/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: 'CSS minifier', - version: '1.4.0' + version: '1.4.1' }); Npm.depends({ diff --git a/packages/standard-minifier-css/.npm/plugin/minifyStdCSS/npm-shrinkwrap.json b/packages/standard-minifier-css/.npm/plugin/minifyStdCSS/npm-shrinkwrap.json index 1db65b734d..22d680ad73 100644 --- a/packages/standard-minifier-css/.npm/plugin/minifyStdCSS/npm-shrinkwrap.json +++ b/packages/standard-minifier-css/.npm/plugin/minifyStdCSS/npm-shrinkwrap.json @@ -2,14 +2,14 @@ "lockfileVersion": 1, "dependencies": { "@babel/runtime": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.0.0.tgz", - "integrity": "sha512-7hGhzlcmg01CvH1EHdSPVXYX1aJ8KCEyz6I9xYIi/asDtzBPMyMhVibhM/K6g/5qnKBwjZtp10bNZIEFTRW1MA==" + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.1.2.tgz", + "integrity": "sha512-Y3SCjmhSupzFB6wcv1KmmFucH6gDVnI30WjOcicV10ju0cZjak3Jcs67YLIXBrmZYw1xCrVeJPbycFwrqNyxpg==" }, "lru-cache": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.0.1.tgz", - "integrity": "sha1-E0OVXtry432bnn7nJB4nxLn7cr4=" + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.3.tgz", + "integrity": "sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==" }, "pseudomap": { "version": "1.0.2", diff --git a/packages/standard-minifier-css/package.js b/packages/standard-minifier-css/package.js index d9ea6588f0..f79e39d66e 100644 --- a/packages/standard-minifier-css/package.js +++ b/packages/standard-minifier-css/package.js @@ -1,6 +1,6 @@ Package.describe({ name: 'standard-minifier-css', - version: '1.5.1', + version: '1.5.2', summary: 'Standard css minifier used with Meteor apps by default.', documentation: 'README.md' }); @@ -11,9 +11,9 @@ Package.registerBuildPlugin({ 'minifier-css' ], npmDependencies: { - "@babel/runtime": "7.0.0", + "@babel/runtime": "7.1.2", "source-map": "0.5.6", - "lru-cache": "4.0.1" + "lru-cache": "4.1.3" }, sources: [ 'plugin/minify-css.js' From 3a881a444f994da4ab391541cddbdc4b134d2dc3 Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Sat, 3 Nov 2018 15:44:17 -0400 Subject: [PATCH 0029/1217] Bump package versions after autodupate revamp (#10238). --- packages/autoupdate/package.js | 2 +- packages/ddp-server/package.js | 2 +- packages/reactive-dict/package.js | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/autoupdate/package.js b/packages/autoupdate/package.js index f55329cda5..e4a2bf47e6 100644 --- a/packages/autoupdate/package.js +++ b/packages/autoupdate/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "Update the client when new client code is available", - version: '1.5.0' + version: '1.6.0' }); Package.onUse(function (api) { diff --git a/packages/ddp-server/package.js b/packages/ddp-server/package.js index 7d83e187c1..a662b14325 100644 --- a/packages/ddp-server/package.js +++ b/packages/ddp-server/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "Meteor's latency-compensated distributed data server", - version: '2.2.0', + version: '2.3.0', documentation: null }); diff --git a/packages/reactive-dict/package.js b/packages/reactive-dict/package.js index 6faf211b54..ee7d4e4e9f 100644 --- a/packages/reactive-dict/package.js +++ b/packages/reactive-dict/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "Reactive dictionary", - version: '1.2.1' + version: '1.3.0' }); Package.onUse(function (api) { From f8e59735f6595f59782153c6c82d2be4eb885c8a Mon Sep 17 00:00:00 2001 From: Seba Kerckhof Date: Sat, 3 Nov 2018 21:12:06 +0100 Subject: [PATCH 0030/1217] Modernize session package (#10228) --- packages/session/package.js | 5 +++-- packages/session/session.js | 4 +++- packages/session/session_tests.js | 2 ++ 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/packages/session/package.js b/packages/session/package.js index 8138f21f3c..1423e42912 100644 --- a/packages/session/package.js +++ b/packages/session/package.js @@ -4,7 +4,7 @@ Package.describe({ }); Package.onUse(function (api) { - api.use(['reactive-dict', 'ejson'], 'client'); + api.use(['ecmascript', 'reactive-dict', 'ejson'], 'client'); // Session can work with or without reload, but if reload is present // it should load first so we can detect it at startup and populate @@ -12,10 +12,11 @@ Package.onUse(function (api) { api.use('reload', 'client', {weak: true}); api.export('Session', 'client'); - api.addFiles('session.js', 'client'); + api.mainModule('session.js', 'client'); }); Package.onTest(function (api) { + api.use('ecmascript'); api.use('tinytest'); api.use('session', 'client'); api.use('tracker'); diff --git a/packages/session/session.js b/packages/session/session.js index b347b83927..3eda8d7edd 100644 --- a/packages/session/session.js +++ b/packages/session/session.js @@ -1,4 +1,6 @@ -Session = new ReactiveDict('session'); +import { ReactiveDict } from 'meteor/reactive-dict'; + +export const Session = new ReactiveDict('session'); // Documentation here is really awkward because the methods are defined // elsewhere diff --git a/packages/session/session_tests.js b/packages/session/session_tests.js index 280e5daa56..3b004c344d 100644 --- a/packages/session/session_tests.js +++ b/packages/session/session_tests.js @@ -1,3 +1,5 @@ +import { Session } from 'meteor/session'; + Tinytest.add('session - setDefault', function (test) { Session.setDefault('def', "argyle"); test.equal(Session.get('def'), "argyle"); From 05ae386b7957961023c19b01ac618e665acd51e8 Mon Sep 17 00:00:00 2001 From: Seba Kerckhof Date: Sat, 3 Nov 2018 21:14:47 +0100 Subject: [PATCH 0031/1217] Sanitize compiler name for environment variables (#10270) While strictly speaking more characters are allowed, they are not usable in a shell except for uppercase / digits / underscore. ( https://stackoverflow.com/a/2821183 ) --- packages/caching-compiler/caching-compiler.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/caching-compiler/caching-compiler.js b/packages/caching-compiler/caching-compiler.js index e29e1362e5..670841773d 100644 --- a/packages/caching-compiler/caching-compiler.js +++ b/packages/caching-compiler/caching-compiler.js @@ -13,7 +13,9 @@ CachingCompilerBase = class CachingCompilerBase { }) { this._compilerName = compilerName; this._maxParallelism = maxParallelism; - const envVarPrefix = 'METEOR_' + compilerName.toUpperCase() + '_CACHE_'; + const compilerNameForEnvar = compilerName.toUpperCase() + .replace('/-/g', '_').replace(/[^A-Z0-9_]/g, ''); + const envVarPrefix = 'METEOR_' + compilerNameForEnvar + '_CACHE_'; const debugEnvVar = envVarPrefix + 'DEBUG'; this._cacheDebugEnabled = !! process.env[debugEnvVar]; From 6a18c7a2bfbffea607a9d8958c8cdf5f4d4f57cd Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Sat, 3 Nov 2018 16:21:16 -0400 Subject: [PATCH 0032/1217] Bump caching-compiler package version. --- packages/caching-compiler/package.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/caching-compiler/package.js b/packages/caching-compiler/package.js index 987d9b7651..3628d83a65 100644 --- a/packages/caching-compiler/package.js +++ b/packages/caching-compiler/package.js @@ -1,6 +1,6 @@ Package.describe({ name: 'caching-compiler', - version: '1.2.0', + version: '1.2.1', summary: 'An easy way to make compiler plugins cache', documentation: 'README.md' }); From 13388b495565c17f065d01a754a418ea9ac7939b Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Sat, 3 Nov 2018 16:21:32 -0400 Subject: [PATCH 0033/1217] Bump session package version. --- packages/session/package.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/session/package.js b/packages/session/package.js index 1423e42912..5515510f25 100644 --- a/packages/session/package.js +++ b/packages/session/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "Session variable", - version: '1.1.8' + version: '1.2.0' }); Package.onUse(function (api) { From 903bdea790a9924692728fc8543c5965fb62a87c Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Sat, 3 Nov 2018 16:22:43 -0400 Subject: [PATCH 0034/1217] Bump package versions for 1.8.1-beta.3 release. --- packages/autoupdate/package.js | 2 +- packages/ddp-server/package.js | 2 +- packages/meteor-tool/package.js | 2 +- packages/reactive-dict/package.js | 2 +- packages/session/package.js | 2 +- scripts/admin/meteor-release-experimental.json | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/packages/autoupdate/package.js b/packages/autoupdate/package.js index e4a2bf47e6..e7ee4fea60 100644 --- a/packages/autoupdate/package.js +++ b/packages/autoupdate/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "Update the client when new client code is available", - version: '1.6.0' + version: '1.6.0-beta181.3' }); Package.onUse(function (api) { diff --git a/packages/ddp-server/package.js b/packages/ddp-server/package.js index a662b14325..d67db2924e 100644 --- a/packages/ddp-server/package.js +++ b/packages/ddp-server/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "Meteor's latency-compensated distributed data server", - version: '2.3.0', + version: '2.3.0-beta181.3', documentation: null }); diff --git a/packages/meteor-tool/package.js b/packages/meteor-tool/package.js index ff3d352cce..ea68272c3b 100644 --- a/packages/meteor-tool/package.js +++ b/packages/meteor-tool/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "The Meteor command-line tool", - version: '1.8.1-beta.2' + version: '1.8.1-beta.3' }); Package.includeTool(); diff --git a/packages/reactive-dict/package.js b/packages/reactive-dict/package.js index ee7d4e4e9f..8cce463a50 100644 --- a/packages/reactive-dict/package.js +++ b/packages/reactive-dict/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "Reactive dictionary", - version: '1.3.0' + version: '1.3.0-beta181.3' }); Package.onUse(function (api) { diff --git a/packages/session/package.js b/packages/session/package.js index 5515510f25..a2a4e1863e 100644 --- a/packages/session/package.js +++ b/packages/session/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "Session variable", - version: '1.2.0' + version: '1.2.0-beta181.3' }); Package.onUse(function (api) { diff --git a/scripts/admin/meteor-release-experimental.json b/scripts/admin/meteor-release-experimental.json index 0c738dccc2..654767c280 100644 --- a/scripts/admin/meteor-release-experimental.json +++ b/scripts/admin/meteor-release-experimental.json @@ -1,6 +1,6 @@ { "track": "METEOR", - "version": "1.8.1-beta.2", + "version": "1.8.1-beta.3", "recommended": false, "official": false, "description": "Meteor" From 44e713f046dd5ad606ed71abdf1cec959992bc65 Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Mon, 12 Nov 2018 18:33:24 -0500 Subject: [PATCH 0035/1217] Ensure file.hash is always computed from sha1(file.data). With the introduction of lazy compilation in Meteor 1.8, calling inputFile.addJavaScript({ ... hash: inputFile.getSourceHash(), ... }, function () { return compiler.processFilesForTarget(inputFile); }); becomes problematic, since inputFile.getSourceHash() is usually different from compiler.processFilesForTarget(inputFile).hash, because the latter is computed from the compiled code, whereas the former is computed from the source code. For example, when we use file.hash to cache imported module identifiers in ImportScanner#_findImportedModuleIdentifiers, we really need to be using the hash of the compiled code, since a single source module can be compiled in different ways. If we cache based on the source hash, there's a risk of reusing the scanned imports from the web.browser version for the web.browser.legacy version, which can lead to all sorts of problems that are only apparent in legacy browsers. The quick fix is easy enough: BabelCompiler can simply stop including a hash in the eager options to inputFile.addJavaScript. This fix can be published as a minor update to the babel-compiler and ecmascript packages. The remaining changes in this commit add another layer of defense against this problem, by ignoring any hash options provided by compiler plugins, in favor of simply computing the hash from the compiled data buffer. These additional changes will become available in the next release of Meteor (likely 1.8.1). --- packages/babel-compiler/babel-compiler.js | 1 - packages/babel-compiler/package.js | 2 +- tools/isobuild/compiler-plugin.js | 16 +++++----------- 3 files changed, 6 insertions(+), 13 deletions(-) diff --git a/packages/babel-compiler/babel-compiler.js b/packages/babel-compiler/babel-compiler.js index 6ae5146c4e..05e7a4a07f 100644 --- a/packages/babel-compiler/babel-compiler.js +++ b/packages/babel-compiler/babel-compiler.js @@ -30,7 +30,6 @@ BCp.processFilesForTarget = function (inputFiles) { if (inputFile.supportsLazyCompilation) { inputFile.addJavaScript({ path: inputFile.getPathInPackage(), - hash: inputFile.getSourceHash(), bare: !! inputFile.getFileOptions().bare }, function () { return compiler.processOneFileForTarget(inputFile); diff --git a/packages/babel-compiler/package.js b/packages/babel-compiler/package.js index feb7187df9..4cb6db1af7 100644 --- a/packages/babel-compiler/package.js +++ b/packages/babel-compiler/package.js @@ -6,7 +6,7 @@ Package.describe({ // isn't possible because you can't publish a non-recommended // release with package versions that don't have a pre-release // identifier at the end (eg, -dev) - version: '7.2.1' + version: '7.2.2' }); Npm.depends({ diff --git a/tools/isobuild/compiler-plugin.js b/tools/isobuild/compiler-plugin.js index 9d84313e76..6f3daa7e89 100644 --- a/tools/isobuild/compiler-plugin.js +++ b/tools/isobuild/compiler-plugin.js @@ -578,7 +578,6 @@ class ResourceSlot { // files.convertToStandardLineEndings only works on strings for now data: self.inputResource.data.toString('utf8'), path: self.inputResource.path, - hash: self.inputResource.hash, bare: self.inputResource.fileOptions && (self.inputResource.fileOptions.bare || // XXX eventually get rid of backward-compatibility "raw" name @@ -594,14 +593,10 @@ class ResourceSlot { // Any resource that isn't handled by compiler plugins just gets passed // through. if (self.inputResource.type === "js") { - let resource = self.inputResource; - if (! _.isString(resource.sourcePath)) { - resource.sourcePath = self.inputResource.path; - } - if (! _.isString(resource.targetPath)) { - resource.targetPath = resource.sourcePath; - } - self.jsOutputResources.push(resource); + self.jsOutputResources.push(new JsOutputResource({ + resourceSlot: self, + options: self.inputResource, + })); } else { self.outputResources.push(self.inputResource); } @@ -964,8 +959,7 @@ class OutputResource { return this._set("data", data); case "hash": - const { hash } = this._initialOptions; - return this._set("hash", hash || sha1(this._get("data"))); + return this._set("hash", sha1(this._get("data"))); case "sourceMap": let { sourceMap } = this._initialOptions; From 429441450608c3ae2f7c5bbbbfca84726da01028 Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Mon, 12 Nov 2018 19:32:48 -0500 Subject: [PATCH 0036/1217] Update meteor-babel to version 7.1.5. --- History.md | 10 ++ .../.npm/package/npm-shrinkwrap.json | 100 +++++++++--------- packages/babel-compiler/package.js | 2 +- scripts/dev-bundle-tool-package.js | 4 +- tools/static-assets/skel-bare/package.json | 2 +- tools/static-assets/skel-full/package.json | 2 +- tools/static-assets/skel-minimal/package.json | 2 +- tools/static-assets/skel-react/package.json | 2 +- tools/static-assets/skel/package.json | 2 +- 9 files changed, 68 insertions(+), 58 deletions(-) diff --git a/History.md b/History.md index 53e80785fc..a316fe1c65 100644 --- a/History.md +++ b/History.md @@ -1,5 +1,15 @@ ## v.NEXT +### Breaking changes +N/A + +### Migration steps +N/A + +### Changes + +* The `meteor-babel` npm package has been updated to version 7.1.5. + ## v1.8, 2018-10-08 ### Breaking changes diff --git a/packages/babel-compiler/.npm/package/npm-shrinkwrap.json b/packages/babel-compiler/.npm/package/npm-shrinkwrap.json index 4607d8579d..d2145a3833 100644 --- a/packages/babel-compiler/.npm/package/npm-shrinkwrap.json +++ b/packages/babel-compiler/.npm/package/npm-shrinkwrap.json @@ -7,9 +7,9 @@ "integrity": "sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA==" }, "@babel/core": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.1.2.tgz", - "integrity": "sha512-IFeSSnjXdhDaoysIlev//UzHZbdEmm7D0EIH2qtse9xK7mXEZQpYjs2P00XlP1qYsYvid79p+Zgg6tz1mp6iVw==", + "version": "7.1.5", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.1.5.tgz", + "integrity": "sha512-vOyH020C56tQvte++i+rX2yokZcRfbv/kKcw+/BCRw/cK6dvsr47aCzm8oC1XHwMSEWbqrZKzZRLzLnq6SFMsg==", "dependencies": { "json5": { "version": "0.5.1", @@ -19,16 +19,9 @@ } }, "@babel/generator": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.1.3.tgz", - "integrity": "sha512-ZoCZGcfIJFJuZBqxcY9OjC1KW2lWK64qrX1o4UYL3yshVhwKFYgzpWZ0vvtGMNJdTlvkw0W+HR1VnYN8q3QPFQ==", - "dependencies": { - "@babel/types": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.1.3.tgz", - "integrity": "sha512-RpPOVfK+yatXyn8n4PB1NW6k9qjinrXrRR8ugBN8fD6hCy5RXI6PSbVqpOJBO9oSaY7Nom4ohj35feb0UR9hSA==" - } - } + "version": "7.1.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.1.5.tgz", + "integrity": "sha512-IO31r62xfMI+wBJVmgx0JR9ZOHty8HkoYpQAjRWUGG9vykBTlGHdArZ8zoFtpUu2gs17K7qTl/TtPpiSi6t+MA==" }, "@babel/helper-annotate-as-pure": { "version": "7.0.0", @@ -131,9 +124,9 @@ "integrity": "sha512-R6HU3dete+rwsdAfrOzTlE9Mcpk4RjU3aX3gi9grtmugQY0u79X7eogUvfXA5sI81Mfq1cn6AgxihfN33STjJA==" }, "@babel/helpers": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.1.2.tgz", - "integrity": "sha512-Myc3pUE8eswD73aWcartxB16K6CGmHDv9KxOmD2CeOs/FaEAQodr3VYGmlvOmog60vNQ2w8QbatuahepZwrHiA==" + "version": "7.1.5", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.1.5.tgz", + "integrity": "sha512-2jkcdL02ywNBry1YNFAH/fViq4fXG0vdckHqeJk+75fpQ2OH+Az6076tX/M0835zA45E0Cqa6pV5Kiv9YOqjEg==" }, "@babel/highlight": { "version": "7.0.0", @@ -141,9 +134,9 @@ "integrity": "sha512-UFMC4ZeFC48Tpvj7C8UgLvtkaUuovQX+5xNWrsIoMG8o2z+XFKjKaN9iVmS84dPwVN00W4wPmqvYoZF3EGAsfw==" }, "@babel/parser": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.1.2.tgz", - "integrity": "sha512-x5HFsW+E/nQalGMw7hu+fvPqnBeBaIr0lWJ2SG0PPL2j+Pm9lYvCrsZJGIgauPIENx0v10INIyFjmSNUD/gSqQ==" + "version": "7.1.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.1.5.tgz", + "integrity": "sha512-WXKf5K5HT6X0kKiCOezJZFljsfxKV1FpU8Tf1A7ZpGvyd/Q4hlrJm2EwoH2onaUq3O4tLDp+4gk0hHPsMyxmOg==" }, "@babel/plugin-proposal-async-generator-functions": { "version": "7.1.0", @@ -191,9 +184,9 @@ "integrity": "sha512-5A0n4p6bIiVe5OvQPxBnesezsgFJdHhSs3uFSvaPdMqtsovajLZ+G2vZyvNe10EzJBWWo3AcHGKhAFUxqwp2dw==" }, "@babel/plugin-syntax-typescript": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.0.0.tgz", - "integrity": "sha512-5fxmdqiAQVQTIS+KSvYeZuTt91wKtBTYi6JlIkvbQ6hmO+9fZE81ezxmMiFMIsxE7CdRSgzn7nQ1BChcvK9OpA==" + "version": "7.1.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.1.5.tgz", + "integrity": "sha512-VqK5DFcS6/T8mT5CcJv1BwZLYFxkHiGZmP7Hs87F53lSToE/qfL7TpPrqFSaKyZi9w7Z/b/tmOGZZDupcJjFvw==" }, "@babel/plugin-transform-arrow-functions": { "version": "7.0.0", @@ -211,9 +204,9 @@ "integrity": "sha512-AOBiyUp7vYTqz2Jibe1UaAWL0Hl9JUXEgjFvvvcSc9MVDItv46ViXFw2F7SVt1B5k+KWjl44eeXOAk3UDEaJjQ==" }, "@babel/plugin-transform-block-scoping": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.0.0.tgz", - "integrity": "sha512-GWEMCrmHQcYWISilUrk9GDqH4enf3UmhOEbNbNrlNAX1ssH3MsS1xLOS6rdjRVPgA7XXVPn87tRkdTEoA/dxEg==" + "version": "7.1.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.1.5.tgz", + "integrity": "sha512-jlYcDrz+5ayWC7mxgpn1Wj8zj0mmjCT2w0mPIMSwO926eXBRxpEgoN/uQVRBfjtr8ayjcmS+xk2G1jaP8JjMJQ==" }, "@babel/plugin-transform-classes": { "version": "7.1.0", @@ -341,9 +334,9 @@ "integrity": "sha512-oayxyPS4Zj+hF6Et11BwuBkmpgT/zMxyuZgFrMeZID6Hdh3dGlk4sHCAhdBCpuCKW2ppBfl2uCCetlrUIJRY3w==" }, "@babel/runtime": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.1.2.tgz", - "integrity": "sha512-Y3SCjmhSupzFB6wcv1KmmFucH6gDVnI30WjOcicV10ju0cZjak3Jcs67YLIXBrmZYw1xCrVeJPbycFwrqNyxpg==" + "version": "7.1.5", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.1.5.tgz", + "integrity": "sha512-xKnPpXG/pvK1B90JkwwxSGii90rQGKtzcMt2gI5G6+M0REXaq6rOHsGC2ay6/d0Uje7zzvSzjEzfR3ENhFlrfA==" }, "@babel/template": { "version": "7.1.2", @@ -351,14 +344,14 @@ "integrity": "sha512-SY1MmplssORfFiLDcOETrW7fCLl+PavlwMh92rrGcikQaRq4iWPVH0MpwPpY3etVMx6RnDjXtr6VZYr/IbP/Ag==" }, "@babel/traverse": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.1.0.tgz", - "integrity": "sha512-bwgln0FsMoxm3pLOgrrnGaXk18sSM9JNf1/nHC/FksmNGFbYnPWY4GYCfLxyP1KRmfsxqkRpfoa6xr6VuuSxdw==" + "version": "7.1.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.1.5.tgz", + "integrity": "sha512-eU6XokWypl0MVJo+MTSPUtlfPePkrqsF26O+l1qFGlCKWwmiYAYy2Sy44Qw8m2u/LbPCsxYt90rghmqhYMGpPA==" }, "@babel/types": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.1.2.tgz", - "integrity": "sha512-pb1I05sZEKiSlMUV9UReaqsCPUpgbHHHu2n1piRm7JkuBkm6QxcaIzKu6FMnMtCbih/cEYTR+RGYYC96Yk9HAg==" + "version": "7.1.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.1.5.tgz", + "integrity": "sha512-sJeqa/d9eM/bax8Ivg+fXF7FpN3E/ZmTrWbkk6r+g7biVYfALMnLin4dKijsaqEhpd2xvOGfQTkQkD31YCVV4A==" }, "acorn": { "version": "5.7.3", @@ -461,9 +454,16 @@ "integrity": "sha1-G8bxW4f3qxCF1CszC3F2V6IVZQA=" }, "babel-plugin-transform-es2015-modules-reify": { - "version": "0.17.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-reify/-/babel-plugin-transform-es2015-modules-reify-0.17.0.tgz", - "integrity": "sha512-ndt36d1gb3sLb5iEejlDxGkfnfhghmMtmVcFoBs+0mY0uOKNfAfU+h56y403v8VnlbHggXAMhslaiVHG4hXMrw==" + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-reify/-/babel-plugin-transform-es2015-modules-reify-0.18.0.tgz", + "integrity": "sha512-bwbrF9cAsMvZamg+tkfN1fazGj5uiTxhaL5fRfR5xDp2JELgY8yrEhq42czar39EBvWscX0DA6dLSeCdY+4Xuw==", + "dependencies": { + "reify": { + "version": "0.18.1", + "resolved": "https://registry.npmjs.org/reify/-/reify-0.18.1.tgz", + "integrity": "sha512-eNiNGxo5Cz/s/7DOeQW5+lTAxMexZPFA8XW/ef6f8WBLtQfYAhDNXxva7ROFC/Wa3q91usYzqJYwC85OXaWUzA==" + } + } }, "babel-plugin-transform-inline-consecutive-adds": { "version": "0.4.3", @@ -521,9 +521,9 @@ "integrity": "sha1-viQcqBQEAwZ4t0hxcyK4nQyP4oA=" }, "babel-preset-meteor": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/babel-preset-meteor/-/babel-preset-meteor-7.1.2.tgz", - "integrity": "sha512-V0rhi9J8hPoKsyeNAQM4OnL3hHwEhHqgSvEmsqD2bzzeHJLmQiAX0PrPEcmY3rV+61GlI2tEE21nAkrPgPDC5Q==" + "version": "7.1.5", + "resolved": "https://registry.npmjs.org/babel-preset-meteor/-/babel-preset-meteor-7.1.5.tgz", + "integrity": "sha512-U93lhe6HTpz3g9TskGqVijRbqc/wVkrQtxKrjJiIjdGkvJubNVm0jFcWcXHqc26QHtYv0c6tItHZAWKlj9zcNQ==" }, "babel-preset-minify": { "version": "0.5.0", @@ -566,9 +566,9 @@ "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=" }, "globals": { - "version": "11.8.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.8.0.tgz", - "integrity": "sha512-io6LkyPVuzCHBSQV9fmOwxZkUk6nIaGmxheLDgmuFv89j0fm2aqDbIXKAGfzCMHqz3HLF2Zf8WSG6VqMh2qFmA==" + "version": "11.9.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.9.0.tgz", + "integrity": "sha512-5cJVtyXWH8PiJPVLZzzoIizXx944O4OmRro5MWKx5fT4MgcN7OfaMutPeaTdJCCURwbWdhhcCWcKIffPnmTzBg==" }, "has-flag": { "version": "3.0.0", @@ -581,9 +581,9 @@ "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" }, "jsesc": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.1.tgz", - "integrity": "sha1-5CGiqOINawgZ3yiQj3glJrlt0f4=" + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==" }, "json5": { "version": "2.1.0", @@ -606,9 +606,9 @@ "integrity": "sha1-G7nzFO9ri63tE7VJFpsqlF62jk0=" }, "meteor-babel": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/meteor-babel/-/meteor-babel-7.1.3.tgz", - "integrity": "sha512-5pLtk2SW7HXW97u0Ke9vRJw0KrAsgGUDdWGAn4WrgD1l4XIyK0sGMV0QLvirSgXRfff3UkAUik9hrXS1h1mDUw==" + "version": "7.1.5", + "resolved": "https://registry.npmjs.org/meteor-babel/-/meteor-babel-7.1.5.tgz", + "integrity": "sha512-fJK9GYtZnIy3/pEG/mFb3uk3DQ0e5jTQxu5SYUZ2S8szWS2WgZtco2BMeWMFSLSma5XHgyzpfUhbxnP2A+/Aiw==" }, "meteor-babel-helpers": { "version": "0.0.3", @@ -672,7 +672,7 @@ "dependencies": { "jsesc": { "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "resolved": "http://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=" } } diff --git a/packages/babel-compiler/package.js b/packages/babel-compiler/package.js index 4cb6db1af7..30924ecb45 100644 --- a/packages/babel-compiler/package.js +++ b/packages/babel-compiler/package.js @@ -10,7 +10,7 @@ Package.describe({ }); Npm.depends({ - 'meteor-babel': '7.1.3', + 'meteor-babel': '7.1.5', 'json5': '2.1.0' }); diff --git a/scripts/dev-bundle-tool-package.js b/scripts/dev-bundle-tool-package.js index 3e6863f990..6c4b9b9031 100644 --- a/scripts/dev-bundle-tool-package.js +++ b/scripts/dev-bundle-tool-package.js @@ -14,13 +14,13 @@ var packageJson = { pacote: "https://github.com/meteor/pacote/tarball/a3285854a68e4969d6c8abaa74407f7d113b178f", "node-gyp": "3.7.0", "node-pre-gyp": "0.10.3", - "meteor-babel": "7.1.3", + "meteor-babel": "7.1.5", "meteor-promise": "0.8.6", promise: "8.0.1", reify: "0.17.3", fibers: "2.0.0", // So that Babel can emit require("@babel/runtime/helpers/...") calls. - "@babel/runtime": "7.1.2", + "@babel/runtime": "7.1.5", // For backwards compatibility with isopackets that still depend on // babel-runtime rather than @babel/runtime. "babel-runtime": "7.0.0-beta.3", diff --git a/tools/static-assets/skel-bare/package.json b/tools/static-assets/skel-bare/package.json index 12c1493b65..5febcb11b0 100644 --- a/tools/static-assets/skel-bare/package.json +++ b/tools/static-assets/skel-bare/package.json @@ -5,7 +5,7 @@ "start": "meteor run" }, "dependencies": { - "@babel/runtime": "^7.0.0", + "@babel/runtime": "^7.1.5", "meteor-node-stubs": "^0.4.1" } } diff --git a/tools/static-assets/skel-full/package.json b/tools/static-assets/skel-full/package.json index 2564b5537b..5031f9fe40 100644 --- a/tools/static-assets/skel-full/package.json +++ b/tools/static-assets/skel-full/package.json @@ -6,7 +6,7 @@ "test": "meteor test --once --driver-package meteortesting:mocha" }, "dependencies": { - "@babel/runtime": "^7.0.0", + "@babel/runtime": "^7.1.5", "meteor-node-stubs": "^0.4.1" }, "devDependencies": { diff --git a/tools/static-assets/skel-minimal/package.json b/tools/static-assets/skel-minimal/package.json index 9525e7f7d1..6beb4506e1 100644 --- a/tools/static-assets/skel-minimal/package.json +++ b/tools/static-assets/skel-minimal/package.json @@ -8,7 +8,7 @@ "visualize": "meteor --production --extra-packages bundle-visualizer" }, "dependencies": { - "@babel/runtime": "^7.0.0", + "@babel/runtime": "^7.1.5", "meteor-node-stubs": "^0.4.1" }, "meteor": { diff --git a/tools/static-assets/skel-react/package.json b/tools/static-assets/skel-react/package.json index 08fcde47f1..3b07f09169 100644 --- a/tools/static-assets/skel-react/package.json +++ b/tools/static-assets/skel-react/package.json @@ -8,7 +8,7 @@ "visualize": "meteor --production --extra-packages bundle-visualizer" }, "dependencies": { - "@babel/runtime": "^7.0.0", + "@babel/runtime": "^7.1.5", "meteor-node-stubs": "^0.4.1", "react": "^16.5.0", "react-dom": "^16.5.0" diff --git a/tools/static-assets/skel/package.json b/tools/static-assets/skel/package.json index 9525e7f7d1..6beb4506e1 100644 --- a/tools/static-assets/skel/package.json +++ b/tools/static-assets/skel/package.json @@ -8,7 +8,7 @@ "visualize": "meteor --production --extra-packages bundle-visualizer" }, "dependencies": { - "@babel/runtime": "^7.0.0", + "@babel/runtime": "^7.1.5", "meteor-node-stubs": "^0.4.1" }, "meteor": { From 253213c24ffef5f230a446d31dfe61eaf22e4ab0 Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Mon, 12 Nov 2018 19:35:50 -0500 Subject: [PATCH 0037/1217] Bump ecmascript package version after bumping babel-compiler version. --- packages/ecmascript/package.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/ecmascript/package.js b/packages/ecmascript/package.js index ba763a251e..a6e5ca0e2d 100644 --- a/packages/ecmascript/package.js +++ b/packages/ecmascript/package.js @@ -1,6 +1,6 @@ Package.describe({ name: 'ecmascript', - version: '0.12.1', + version: '0.12.2', summary: 'Compiler plugin that supports ES2015+ in all .js files', documentation: 'README.md' }); From 152879c0933ce5e25e0b0a5d157d9ad264225a67 Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Mon, 12 Nov 2018 20:44:49 -0500 Subject: [PATCH 0038/1217] Bump diff-sequence package version to fix #10320. (#10331) After @nathan-muir's PR #10053, we did not publish a new version of the diff-sequence package, which would have contained DiffSequence.diffMaps. I honestly have no idea why #10320 did not manifest before now, but publishing these changes seems to fix it. --- packages/diff-sequence/package.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/diff-sequence/package.js b/packages/diff-sequence/package.js index 8e937db42e..18c673049b 100644 --- a/packages/diff-sequence/package.js +++ b/packages/diff-sequence/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "An implementation of a diff algorithm on arrays and objects.", - version: '1.1.0', + version: '1.1.1', documentation: null }); From 1b1ab41435d9d621c7e25fdc6c9d04389d2dbfc3 Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Mon, 12 Nov 2018 20:52:55 -0500 Subject: [PATCH 0039/1217] Bump $BUNDLE_VERSION to 8.12.0.4 before rebuilding dev bundle. --- meteor | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meteor b/meteor index d5db78ef60..3e8af1bd4a 100755 --- a/meteor +++ b/meteor @@ -1,6 +1,6 @@ #!/usr/bin/env bash -BUNDLE_VERSION=8.12.0.3 +BUNDLE_VERSION=8.12.0.4 # OS Check. Put here because here is where we download the precompiled # bundles that are arch specific. From c8628e5109066ef489dedac0cafa1bb94a2ac76d Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Mon, 12 Nov 2018 21:07:05 -0500 Subject: [PATCH 0040/1217] Bump package versions for 1.8.1-beta.4 release. --- packages/autoupdate/package.js | 2 +- packages/ddp-server/package.js | 2 +- packages/meteor-tool/package.js | 2 +- packages/reactive-dict/package.js | 2 +- packages/session/package.js | 2 +- scripts/admin/meteor-release-experimental.json | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/packages/autoupdate/package.js b/packages/autoupdate/package.js index e7ee4fea60..a15b04a758 100644 --- a/packages/autoupdate/package.js +++ b/packages/autoupdate/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "Update the client when new client code is available", - version: '1.6.0-beta181.3' + version: '1.6.0-beta181.4' }); Package.onUse(function (api) { diff --git a/packages/ddp-server/package.js b/packages/ddp-server/package.js index d67db2924e..d88465698e 100644 --- a/packages/ddp-server/package.js +++ b/packages/ddp-server/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "Meteor's latency-compensated distributed data server", - version: '2.3.0-beta181.3', + version: '2.3.0-beta181.4', documentation: null }); diff --git a/packages/meteor-tool/package.js b/packages/meteor-tool/package.js index ea68272c3b..00af05c7c2 100644 --- a/packages/meteor-tool/package.js +++ b/packages/meteor-tool/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "The Meteor command-line tool", - version: '1.8.1-beta.3' + version: '1.8.1-beta.4' }); Package.includeTool(); diff --git a/packages/reactive-dict/package.js b/packages/reactive-dict/package.js index 8cce463a50..656ae55f39 100644 --- a/packages/reactive-dict/package.js +++ b/packages/reactive-dict/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "Reactive dictionary", - version: '1.3.0-beta181.3' + version: '1.3.0-beta181.4' }); Package.onUse(function (api) { diff --git a/packages/session/package.js b/packages/session/package.js index a2a4e1863e..7bcdca972f 100644 --- a/packages/session/package.js +++ b/packages/session/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "Session variable", - version: '1.2.0-beta181.3' + version: '1.2.0-beta181.4' }); Package.onUse(function (api) { diff --git a/scripts/admin/meteor-release-experimental.json b/scripts/admin/meteor-release-experimental.json index 654767c280..a47f712a2a 100644 --- a/scripts/admin/meteor-release-experimental.json +++ b/scripts/admin/meteor-release-experimental.json @@ -1,6 +1,6 @@ { "track": "METEOR", - "version": "1.8.1-beta.3", + "version": "1.8.1-beta.4", "recommended": false, "official": false, "description": "Meteor" From 7a7d5bd8a2476ad97c4aa14483cb4542988482cf Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Wed, 14 Nov 2018 11:44:14 -0500 Subject: [PATCH 0041/1217] Bump $BUNDLE_VERSION to 8.11.4.6 before rebuilding dev bundle. --- meteor | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meteor b/meteor index 2cc96758b3..17a3eb932f 100755 --- a/meteor +++ b/meteor @@ -1,7 +1,7 @@ #!/usr/bin/env bash # Note: Skip 8.12.0.0, as it has already been used. -BUNDLE_VERSION=8.11.4.5 +BUNDLE_VERSION=8.11.4.6 # OS Check. Put here because here is where we download the precompiled # bundles that are arch specific. From c06a31a3225283716f154f15e62397c08e51f8c2 Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Wed, 14 Nov 2018 12:01:18 -0500 Subject: [PATCH 0042/1217] Bump package versions for 1.8.0.1-rc.0 release. --- packages/meteor-tool/package.js | 2 +- packages/session/package.js | 2 +- scripts/admin/meteor-release-experimental.json | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/meteor-tool/package.js b/packages/meteor-tool/package.js index d38de4b7a9..ba087a10b9 100644 --- a/packages/meteor-tool/package.js +++ b/packages/meteor-tool/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "The Meteor command-line tool", - version: '1.8.0' + version: '1.8.0-1-rc.0' }); Package.includeTool(); diff --git a/packages/session/package.js b/packages/session/package.js index 5515510f25..862097188e 100644 --- a/packages/session/package.js +++ b/packages/session/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "Session variable", - version: '1.2.0' + version: '1.2.0-rc1801.0' }); Package.onUse(function (api) { diff --git a/scripts/admin/meteor-release-experimental.json b/scripts/admin/meteor-release-experimental.json index 841ba991fb..df1c89e673 100644 --- a/scripts/admin/meteor-release-experimental.json +++ b/scripts/admin/meteor-release-experimental.json @@ -1,6 +1,6 @@ { "track": "METEOR", - "version": "1.8-rc.17", + "version": "1.8.0.1-rc.0", "recommended": false, "official": false, "description": "Meteor" From ea28a34a2c2beba23560b9b0ea9bd8f12084e9bf Mon Sep 17 00:00:00 2001 From: Jesse Rosenberger Date: Wed, 14 Nov 2018 11:27:40 +0200 Subject: [PATCH 0043/1217] Update `webapp`'s `useragent` npm to v2.3.0 to support HeadlessChrome. Previously, while the `useragent` package was able to parse the User-Agent for so-called "Headless Chrome" and generate a family of "HeadlessChrome", it was unable to parse out the individual portions of the version number (e.g. major, minor, patch). For example, the following User-Agent (herein referred to as `userAgentAbove`): ``` Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/69.0.3497.100 Safari/537.36 ``` Previously resulted in: ``` > require('useragent').lookup(userAgentAbove); { family: 'HeadlessChrome', major: '0', minor: '0', patch: '0', /* ... */ } ``` With the newer version of `useragent`, these are now properly extracted and set which will enable Meteor to treat Headless Chrome the same as Chrome in a follow-up commit. Now: ``` > require('useragent').lookup(userAgentAbove); { family: 'HeadlessChrome', major: '69', minor: '0', patch: '3497' /* ... */ } ``` --- .../webapp/.npm/package/npm-shrinkwrap.json | 77 +++++++++++-------- packages/webapp/package.js | 2 +- 2 files changed, 48 insertions(+), 31 deletions(-) diff --git a/packages/webapp/.npm/package/npm-shrinkwrap.json b/packages/webapp/.npm/package/npm-shrinkwrap.json index 23f7a65ded..f9f1cbd82b 100644 --- a/packages/webapp/.npm/package/npm-shrinkwrap.json +++ b/packages/webapp/.npm/package/npm-shrinkwrap.json @@ -2,9 +2,9 @@ "lockfileVersion": 1, "dependencies": { "accepts": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.4.tgz", - "integrity": "sha1-hiRnWMfdbSGmR0/whKR0DsBesh8=" + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.5.tgz", + "integrity": "sha1-63d99gEXI6OxTopywIBcjoZ0a9I=" }, "basic-auth-connect": { "version": "1.0.0", @@ -17,9 +17,9 @@ "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=" }, "compressible": { - "version": "2.0.12", - "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.12.tgz", - "integrity": "sha1-xZpcmdt2dn6YdlAOJx72OzSTvWY=" + "version": "2.0.15", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.15.tgz", + "integrity": "sha512-4aE67DL33dSW9gw4CI2H/yTxqHLNcxp0yS6jB+4h+wr3e43+1z7vm0HU9qXOH8j+qjKuL8+UtkOxYQSMq60Ylw==" }, "compression": { "version": "1.7.1", @@ -59,9 +59,9 @@ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==" }, "depd": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.1.tgz", - "integrity": "sha1-V4O04cRZ8G+lyif5kfPQbnoxA1k=" + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" }, "destroy": { "version": "1.0.4", @@ -74,9 +74,9 @@ "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" }, "encodeurl": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.1.tgz", - "integrity": "sha1-eePVhlU0aQn+bw9Fpd5oEDspTSA=" + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" }, "errorhandler": { "version": "1.5.0", @@ -111,9 +111,16 @@ "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" }, "http-errors": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.2.tgz", - "integrity": "sha1-CgAsyFcHGSp+eUbO7cERVfYOxzY=" + "version": "1.6.3", + "resolved": "http://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", + "dependencies": { + "statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" + } + } }, "inherits": { "version": "2.0.3", @@ -121,9 +128,9 @@ "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" }, "lru-cache": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.2.4.tgz", - "integrity": "sha1-bGWGGb7PFAMdDQtZSxYELOTcBj0=" + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.3.tgz", + "integrity": "sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==" }, "mime": { "version": "1.4.1", @@ -131,14 +138,14 @@ "integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==" }, "mime-db": { - "version": "1.30.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.30.0.tgz", - "integrity": "sha1-dMZD2i3Z1qRTmZY0ZbJtXKfXHwE=" + "version": "1.37.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.37.0.tgz", + "integrity": "sha512-R3C4db6bgQhlIhPU48fUtdVmKnflq+hRdad7IyKhtFj06VPNVdk2RhiYL3UjQIlso8L+YxAtFkobT0VK+S/ybg==" }, "mime-types": { - "version": "2.1.17", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.17.tgz", - "integrity": "sha1-Cdejk/A+mVp5+K+Fe3Cp4KsWVXo=" + "version": "2.1.21", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.21.tgz", + "integrity": "sha512-3iL6DbwpyLzjR3xHSFNFeb9Nz/M8WDkX33t1GFQnFOllWk8pOrh/LSrB5OXlnlW5P9LH73X6loW/eogc+F5lJg==" }, "ms": { "version": "2.0.0", @@ -175,6 +182,11 @@ "resolved": "https://registry.npmjs.org/promise-polyfill/-/promise-polyfill-1.1.6.tgz", "integrity": "sha1-zQTv9G9clcOn0EVZHXm14+AfEtc=" }, + "pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=" + }, "qs": { "version": "6.4.0", "resolved": "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz", @@ -201,9 +213,9 @@ "integrity": "sha512-ElCLJdJIKPk6ux/Hocwhk7NFHpI3pVm/IZOYWqUmoxcgeyM+MpxHHKhb8QmlJDX1pU6WrgaHBkVNm73Sv7uc2A==" }, "setprototypeof": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.3.tgz", - "integrity": "sha1-ZlZ+NwQ+608E2RvWWMDL77VbjgQ=" + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==" }, "statuses": { "version": "1.3.1", @@ -226,9 +238,9 @@ "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" }, "useragent": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/useragent/-/useragent-2.2.1.tgz", - "integrity": "sha1-z1k+9PLRdYdei7ZY6pLhik/QbY4=" + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/useragent/-/useragent-2.3.0.tgz", + "integrity": "sha512-4AoH4pxuSvHCjqLO04sU6U/uE65BYza8l/KKBS0b0hnUPWi+cQ2BpeTEwejCSx9SPV5/U03nniDTrWx5NrmKdw==" }, "utils-merge": { "version": "1.0.1", @@ -239,6 +251,11 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" + }, + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=" } } } diff --git a/packages/webapp/package.js b/packages/webapp/package.js index ffc7c28a23..3f4447b166 100644 --- a/packages/webapp/package.js +++ b/packages/webapp/package.js @@ -12,7 +12,7 @@ Npm.depends({"basic-auth-connect": "1.0.0", send: "0.16.1", "stream-to-string": "1.1.0", "qs-middleware": "1.0.3", - useragent: "2.2.1"}); + useragent: "2.3.0"}); Npm.strip({ multiparty: ["test/"], From b65f8b06103efcad6457b9a0103195c4e155f28b Mon Sep 17 00:00:00 2001 From: Jesse Rosenberger Date: Wed, 14 Nov 2018 11:35:25 +0200 Subject: [PATCH 0044/1217] For modern bundles, treat Chromium and "Headless Chrome" the same as Chrome. Best I can tell, the major version portion of Chromium versions has always tracked all the way through to Chrome Canary, Dev and Stable releases. Since we observe the major version of Chrome in terms of identifying it as a "modern browser", it seems to make sense to treat "Headless Chrome" and Chromium in the same regard. Interestingly, when the same Chrome as we all use on our machines is run with the `--headless` flag, it switches its `navigator.userAgent` to `HeadlessChrome/`, rather than `Chrome/`. This was initially problematic since the `useragent` npm we use for parsing user agents didn't understand this designation, however, with the update of `webapp`'s `useragent` npm in 058351b7, `headlesschrome` will now have its version available from `WebAppInternals.identifyBrowser`, so we can accurately identify it and serve it the modern bundle. --- packages/modern-browsers/modern.js | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/packages/modern-browsers/modern.js b/packages/modern-browsers/modern.js index ed7e60b157..29b28aff3e 100644 --- a/packages/modern-browsers/modern.js +++ b/packages/modern-browsers/modern.js @@ -1,15 +1,24 @@ const minimumVersions = Object.create(null); const hasOwn = Object.prototype.hasOwnProperty; -// By default, any minimum versions specified for chrome should apply to -// chromeMobile too, per https://github.com/meteor/meteor/pull/9793, -// though it should also be possible to specify minimum versions -// specifically for chromeMobile. This map defines that aliasing behavior -// in a generic way that could work for other browsers as well. +// This map defines aliasing behavior in a generic way which still permits +// minimum versions to be specified for a specific browser family. const browserAliases = { chrome: [ + // chromeMobile*, per https://github.com/meteor/meteor/pull/9793, "chromeMobile", "chromeMobileIOS", + + // The major version number of Chromium and Headless Chrome track with the + // releases of Chrome Dev, Canary and Stable, so we should be okay to + // alias them to Chrome in a generic sense. + // https://www.chromium.org/developers/version-numbers + // + // Chromium is particularly important to list here since, unlike macOS + // builds, Linux builds list Chromium in the userAgent along with Chrome: + // e.g. Chromium/70.0.3538.77 Chrome/70.0.3538.77 + "chromium", + "headlesschrome", ], // If a call to setMinimumBrowserVersions specifies Edge 12 as a minimum From dc2f2487acc463c26462bfbf1ec02e0da50b57c3 Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Thu, 15 Nov 2018 10:20:25 -0500 Subject: [PATCH 0045/1217] Make modern/legacy browser name check case-insensitive. https://github.com/meteor/meteor/pull/10334#commitcomment-31302219 cc @abernix @hwillson --- packages/modern-browsers/modern.js | 44 ++++++++++++++++++++---------- 1 file changed, 29 insertions(+), 15 deletions(-) diff --git a/packages/modern-browsers/modern.js b/packages/modern-browsers/modern.js index 29b28aff3e..43440bf615 100644 --- a/packages/modern-browsers/modern.js +++ b/packages/modern-browsers/modern.js @@ -35,17 +35,27 @@ const browserAliases = { // Expand the given minimum versions by reusing chrome versions for // chromeMobile (according to browserAliases above). function applyAliases(versions) { + const lowerCaseVersions = Object.create(null); + + Object.keys(versions).forEach(browser => { + lowerCaseVersions[browser.toLowerCase()] = versions[browser]; + }); + Object.keys(browserAliases).forEach(original => { - if (hasOwn.call(versions, original)) { - browserAliases[original].forEach(alias => { - if (! hasOwn.call(versions, alias)) { - versions[alias] = versions[original]; + const aliases = browserAliases[original]; + original = original.toLowerCase(); + + if (hasOwn.call(lowerCaseVersions, original)) { + aliases.forEach(alias => { + alias = alias.toLowerCase(); + if (! hasOwn.call(lowerCaseVersions, alias)) { + lowerCaseVersions[alias] = lowerCaseVersions[original]; } }); } }); - return versions; + return lowerCaseVersions; } // TODO Should it be possible for callers to setMinimumBrowserVersions to @@ -55,14 +65,17 @@ function applyAliases(versions) { // webapp via request.browser, return true if that browser qualifies as // "modern" according to all requested version constraints. function isModern(browser) { - return browser && + const lowerCaseName = browser && typeof browser.name === "string" && - hasOwn.call(minimumVersions, browser.name) && + browser.name.toLowerCase(); + + return !!lowerCaseName && + hasOwn.call(minimumVersions, lowerCaseName) && greaterThanOrEqualTo([ ~~browser.major, ~~browser.minor, ~~browser.patch, - ], minimumVersions[browser.name].version); + ], minimumVersions[lowerCaseName].version); } // Any package that depends on the modern-browsers package can call this @@ -71,17 +84,18 @@ function isModern(browser) { // web.browser.legacy and web.browser will be based on the maximum of all // requested minimum versions for each browser. function setMinimumBrowserVersions(versions, source) { - applyAliases(versions); + const lowerCaseVersions = applyAliases(versions); - Object.keys(versions).forEach(browserName => { - if (hasOwn.call(minimumVersions, browserName) && - ! greaterThan(versions[browserName], - minimumVersions[browserName].version)) { + Object.keys(lowerCaseVersions).forEach(lowerCaseName => { + const version = lowerCaseVersions[lowerCaseName]; + + if (hasOwn.call(minimumVersions, lowerCaseName) && + ! greaterThan(version, minimumVersions[lowerCaseName].version)) { return; } - minimumVersions[browserName] = { - version: copy(versions[browserName]), + minimumVersions[lowerCaseName] = { + version: copy(version), source: source || getCaller("setMinimumBrowserVersions") }; }); From 65e44f6da69459c2e6155c4f1b09708d2ab7d398 Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Thu, 15 Nov 2018 10:44:20 -0500 Subject: [PATCH 0046/1217] Bump webapp and modern-browsers package versions for #10334. --- packages/modern-browsers/package.js | 2 +- packages/webapp/package.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/modern-browsers/package.js b/packages/modern-browsers/package.js index 5b6ca065a9..002b8c14a8 100644 --- a/packages/modern-browsers/package.js +++ b/packages/modern-browsers/package.js @@ -1,6 +1,6 @@ Package.describe({ name: "modern-browsers", - version: "0.1.2", + version: "0.1.3", summary: "API for defining the boundary between modern and legacy " + "JavaScript clients", documentation: "README.md" diff --git a/packages/webapp/package.js b/packages/webapp/package.js index 3f4447b166..cd0295ceaa 100644 --- a/packages/webapp/package.js +++ b/packages/webapp/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "Serves a Meteor app over HTTP", - version: '1.7.0' + version: '1.7.1' }); Npm.depends({"basic-auth-connect": "1.0.0", From 0bbb6df449d40efc11779a1d0fddf1c61fc957ff Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Thu, 15 Nov 2018 11:57:16 -0500 Subject: [PATCH 0047/1217] Mention PR #10334 in History.md. --- History.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/History.md b/History.md index a316fe1c65..df6b163208 100644 --- a/History.md +++ b/History.md @@ -10,6 +10,13 @@ N/A * The `meteor-babel` npm package has been updated to version 7.1.5. +* The `useragent` npm package used by `webapp` and (indirectly) by the + `modern-browsers` package has been updated from 2.2.1 to 2.3.0. The + `chromium` browser name has been aliased to use the same minimum modern + version as `chrome`, and browser names are now processed + case-insensitively by the `modern-browsers` package. + [PR #10334](https://github.com/meteor/meteor/pull/10334) + ## v1.8, 2018-10-08 ### Breaking changes From 014dfab1acd01c140a8834ba61820d6b38b28b2e Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Thu, 15 Nov 2018 11:10:47 -0600 Subject: [PATCH 0048/1217] Implement ResourceSlot#_addDirectlyToJsOutputResources to fix #10337. (#10338) --- tools/isobuild/compiler-plugin.js | 40 +++++++++++++++++-------------- 1 file changed, 22 insertions(+), 18 deletions(-) diff --git a/tools/isobuild/compiler-plugin.js b/tools/isobuild/compiler-plugin.js index 6f3daa7e89..1a3950bce1 100644 --- a/tools/isobuild/compiler-plugin.js +++ b/tools/isobuild/compiler-plugin.js @@ -571,19 +571,7 @@ class ResourceSlot { // If we have a sourceProcessor, it will handle the adding of the // final processed JavaScript. } else if (self.inputResource.extension === "js") { - // If there is no sourceProcessor for a .js file, add the source - // directly to the output. #HardcodeJs - self.addJavaScript({ - // XXX it's a shame to keep converting between Buffer and string, but - // files.convertToStandardLineEndings only works on strings for now - data: self.inputResource.data.toString('utf8'), - path: self.inputResource.path, - bare: self.inputResource.fileOptions && - (self.inputResource.fileOptions.bare || - // XXX eventually get rid of backward-compatibility "raw" name - // XXX COMPAT WITH 0.6.4 - self.inputResource.fileOptions.raw) - }); + self._addDirectlyToJsOutputResources(); } } else { if (sourceProcessor) { @@ -593,16 +581,23 @@ class ResourceSlot { // Any resource that isn't handled by compiler plugins just gets passed // through. if (self.inputResource.type === "js") { - self.jsOutputResources.push(new JsOutputResource({ - resourceSlot: self, - options: self.inputResource, - })); + self._addDirectlyToJsOutputResources(); } else { self.outputResources.push(self.inputResource); } } } + // Add this resource directly to jsOutputResources without modifying the + // original data. #HardcodeJs + _addDirectlyToJsOutputResources() { + this.addJavaScript({ + ...(this.inputResource.fileOptions || {}), + path: this.inputResource.path, + data: this.inputResource.data, + }); + } + _getOption(name, options) { if (options && _.has(options, name)) { return options[name]; @@ -693,6 +688,15 @@ class ResourceSlot { return isInImports; } + _isBare(options) { + return !! ( + this._getOption("bare", options) || + // XXX eventually get rid of backwards-compatible "raw" name + // XXX COMPAT WITH 0.6.4 + this._getOption("raw", options) + ); + } + addStylesheet(options, lazyFinalizer) { if (! this.sourceProcessor) { throw Error("addStylesheet on non-source ResourceSlot?"); @@ -868,7 +872,7 @@ class OutputResource { Object.assign(this, { type, lazy: resourceSlot._isLazy(options, true), - bare: !! resourceSlot._getOption("bare", options), + bare: resourceSlot._isBare(options), mainModule: !! resourceSlot._getOption("mainModule", options), sourcePath, targetPath, From 5e7e809cd1993cd1018725b3d3d510cc36191a2c Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Thu, 15 Nov 2018 11:10:47 -0600 Subject: [PATCH 0049/1217] Implement ResourceSlot#_addDirectlyToJsOutputResources to fix #10337. (#10338) --- tools/isobuild/compiler-plugin.js | 40 +++++++++++++++++-------------- 1 file changed, 22 insertions(+), 18 deletions(-) diff --git a/tools/isobuild/compiler-plugin.js b/tools/isobuild/compiler-plugin.js index 6f3daa7e89..1a3950bce1 100644 --- a/tools/isobuild/compiler-plugin.js +++ b/tools/isobuild/compiler-plugin.js @@ -571,19 +571,7 @@ class ResourceSlot { // If we have a sourceProcessor, it will handle the adding of the // final processed JavaScript. } else if (self.inputResource.extension === "js") { - // If there is no sourceProcessor for a .js file, add the source - // directly to the output. #HardcodeJs - self.addJavaScript({ - // XXX it's a shame to keep converting between Buffer and string, but - // files.convertToStandardLineEndings only works on strings for now - data: self.inputResource.data.toString('utf8'), - path: self.inputResource.path, - bare: self.inputResource.fileOptions && - (self.inputResource.fileOptions.bare || - // XXX eventually get rid of backward-compatibility "raw" name - // XXX COMPAT WITH 0.6.4 - self.inputResource.fileOptions.raw) - }); + self._addDirectlyToJsOutputResources(); } } else { if (sourceProcessor) { @@ -593,16 +581,23 @@ class ResourceSlot { // Any resource that isn't handled by compiler plugins just gets passed // through. if (self.inputResource.type === "js") { - self.jsOutputResources.push(new JsOutputResource({ - resourceSlot: self, - options: self.inputResource, - })); + self._addDirectlyToJsOutputResources(); } else { self.outputResources.push(self.inputResource); } } } + // Add this resource directly to jsOutputResources without modifying the + // original data. #HardcodeJs + _addDirectlyToJsOutputResources() { + this.addJavaScript({ + ...(this.inputResource.fileOptions || {}), + path: this.inputResource.path, + data: this.inputResource.data, + }); + } + _getOption(name, options) { if (options && _.has(options, name)) { return options[name]; @@ -693,6 +688,15 @@ class ResourceSlot { return isInImports; } + _isBare(options) { + return !! ( + this._getOption("bare", options) || + // XXX eventually get rid of backwards-compatible "raw" name + // XXX COMPAT WITH 0.6.4 + this._getOption("raw", options) + ); + } + addStylesheet(options, lazyFinalizer) { if (! this.sourceProcessor) { throw Error("addStylesheet on non-source ResourceSlot?"); @@ -868,7 +872,7 @@ class OutputResource { Object.assign(this, { type, lazy: resourceSlot._isLazy(options, true), - bare: !! resourceSlot._getOption("bare", options), + bare: resourceSlot._isBare(options), mainModule: !! resourceSlot._getOption("mainModule", options), sourcePath, targetPath, From 5e987902915f357575f942c316601f9fba5e0fda Mon Sep 17 00:00:00 2001 From: Jesse Rosenberger Date: Wed, 14 Nov 2018 11:27:40 +0200 Subject: [PATCH 0050/1217] Update `webapp`'s `useragent` npm to v2.3.0 to support HeadlessChrome. Previously, while the `useragent` package was able to parse the User-Agent for so-called "Headless Chrome" and generate a family of "HeadlessChrome", it was unable to parse out the individual portions of the version number (e.g. major, minor, patch). For example, the following User-Agent (herein referred to as `userAgentAbove`): ``` Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/69.0.3497.100 Safari/537.36 ``` Previously resulted in: ``` > require('useragent').lookup(userAgentAbove); { family: 'HeadlessChrome', major: '0', minor: '0', patch: '0', /* ... */ } ``` With the newer version of `useragent`, these are now properly extracted and set which will enable Meteor to treat Headless Chrome the same as Chrome in a follow-up commit. Now: ``` > require('useragent').lookup(userAgentAbove); { family: 'HeadlessChrome', major: '69', minor: '0', patch: '3497' /* ... */ } ``` --- .../webapp/.npm/package/npm-shrinkwrap.json | 77 +++++++++++-------- packages/webapp/package.js | 2 +- 2 files changed, 48 insertions(+), 31 deletions(-) diff --git a/packages/webapp/.npm/package/npm-shrinkwrap.json b/packages/webapp/.npm/package/npm-shrinkwrap.json index 23f7a65ded..f9f1cbd82b 100644 --- a/packages/webapp/.npm/package/npm-shrinkwrap.json +++ b/packages/webapp/.npm/package/npm-shrinkwrap.json @@ -2,9 +2,9 @@ "lockfileVersion": 1, "dependencies": { "accepts": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.4.tgz", - "integrity": "sha1-hiRnWMfdbSGmR0/whKR0DsBesh8=" + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.5.tgz", + "integrity": "sha1-63d99gEXI6OxTopywIBcjoZ0a9I=" }, "basic-auth-connect": { "version": "1.0.0", @@ -17,9 +17,9 @@ "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=" }, "compressible": { - "version": "2.0.12", - "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.12.tgz", - "integrity": "sha1-xZpcmdt2dn6YdlAOJx72OzSTvWY=" + "version": "2.0.15", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.15.tgz", + "integrity": "sha512-4aE67DL33dSW9gw4CI2H/yTxqHLNcxp0yS6jB+4h+wr3e43+1z7vm0HU9qXOH8j+qjKuL8+UtkOxYQSMq60Ylw==" }, "compression": { "version": "1.7.1", @@ -59,9 +59,9 @@ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==" }, "depd": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.1.tgz", - "integrity": "sha1-V4O04cRZ8G+lyif5kfPQbnoxA1k=" + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" }, "destroy": { "version": "1.0.4", @@ -74,9 +74,9 @@ "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" }, "encodeurl": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.1.tgz", - "integrity": "sha1-eePVhlU0aQn+bw9Fpd5oEDspTSA=" + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" }, "errorhandler": { "version": "1.5.0", @@ -111,9 +111,16 @@ "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" }, "http-errors": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.2.tgz", - "integrity": "sha1-CgAsyFcHGSp+eUbO7cERVfYOxzY=" + "version": "1.6.3", + "resolved": "http://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", + "dependencies": { + "statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" + } + } }, "inherits": { "version": "2.0.3", @@ -121,9 +128,9 @@ "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" }, "lru-cache": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.2.4.tgz", - "integrity": "sha1-bGWGGb7PFAMdDQtZSxYELOTcBj0=" + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.3.tgz", + "integrity": "sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==" }, "mime": { "version": "1.4.1", @@ -131,14 +138,14 @@ "integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==" }, "mime-db": { - "version": "1.30.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.30.0.tgz", - "integrity": "sha1-dMZD2i3Z1qRTmZY0ZbJtXKfXHwE=" + "version": "1.37.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.37.0.tgz", + "integrity": "sha512-R3C4db6bgQhlIhPU48fUtdVmKnflq+hRdad7IyKhtFj06VPNVdk2RhiYL3UjQIlso8L+YxAtFkobT0VK+S/ybg==" }, "mime-types": { - "version": "2.1.17", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.17.tgz", - "integrity": "sha1-Cdejk/A+mVp5+K+Fe3Cp4KsWVXo=" + "version": "2.1.21", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.21.tgz", + "integrity": "sha512-3iL6DbwpyLzjR3xHSFNFeb9Nz/M8WDkX33t1GFQnFOllWk8pOrh/LSrB5OXlnlW5P9LH73X6loW/eogc+F5lJg==" }, "ms": { "version": "2.0.0", @@ -175,6 +182,11 @@ "resolved": "https://registry.npmjs.org/promise-polyfill/-/promise-polyfill-1.1.6.tgz", "integrity": "sha1-zQTv9G9clcOn0EVZHXm14+AfEtc=" }, + "pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=" + }, "qs": { "version": "6.4.0", "resolved": "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz", @@ -201,9 +213,9 @@ "integrity": "sha512-ElCLJdJIKPk6ux/Hocwhk7NFHpI3pVm/IZOYWqUmoxcgeyM+MpxHHKhb8QmlJDX1pU6WrgaHBkVNm73Sv7uc2A==" }, "setprototypeof": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.3.tgz", - "integrity": "sha1-ZlZ+NwQ+608E2RvWWMDL77VbjgQ=" + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==" }, "statuses": { "version": "1.3.1", @@ -226,9 +238,9 @@ "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" }, "useragent": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/useragent/-/useragent-2.2.1.tgz", - "integrity": "sha1-z1k+9PLRdYdei7ZY6pLhik/QbY4=" + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/useragent/-/useragent-2.3.0.tgz", + "integrity": "sha512-4AoH4pxuSvHCjqLO04sU6U/uE65BYza8l/KKBS0b0hnUPWi+cQ2BpeTEwejCSx9SPV5/U03nniDTrWx5NrmKdw==" }, "utils-merge": { "version": "1.0.1", @@ -239,6 +251,11 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" + }, + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=" } } } diff --git a/packages/webapp/package.js b/packages/webapp/package.js index ffc7c28a23..3f4447b166 100644 --- a/packages/webapp/package.js +++ b/packages/webapp/package.js @@ -12,7 +12,7 @@ Npm.depends({"basic-auth-connect": "1.0.0", send: "0.16.1", "stream-to-string": "1.1.0", "qs-middleware": "1.0.3", - useragent: "2.2.1"}); + useragent: "2.3.0"}); Npm.strip({ multiparty: ["test/"], From 128c9311ea145e1a4e167d53910accb76109db75 Mon Sep 17 00:00:00 2001 From: Jesse Rosenberger Date: Wed, 14 Nov 2018 11:35:25 +0200 Subject: [PATCH 0051/1217] For modern bundles, treat Chromium and "Headless Chrome" the same as Chrome. Best I can tell, the major version portion of Chromium versions has always tracked all the way through to Chrome Canary, Dev and Stable releases. Since we observe the major version of Chrome in terms of identifying it as a "modern browser", it seems to make sense to treat "Headless Chrome" and Chromium in the same regard. Interestingly, when the same Chrome as we all use on our machines is run with the `--headless` flag, it switches its `navigator.userAgent` to `HeadlessChrome/`, rather than `Chrome/`. This was initially problematic since the `useragent` npm we use for parsing user agents didn't understand this designation, however, with the update of `webapp`'s `useragent` npm in 058351b7, `headlesschrome` will now have its version available from `WebAppInternals.identifyBrowser`, so we can accurately identify it and serve it the modern bundle. --- packages/modern-browsers/modern.js | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/packages/modern-browsers/modern.js b/packages/modern-browsers/modern.js index ed7e60b157..29b28aff3e 100644 --- a/packages/modern-browsers/modern.js +++ b/packages/modern-browsers/modern.js @@ -1,15 +1,24 @@ const minimumVersions = Object.create(null); const hasOwn = Object.prototype.hasOwnProperty; -// By default, any minimum versions specified for chrome should apply to -// chromeMobile too, per https://github.com/meteor/meteor/pull/9793, -// though it should also be possible to specify minimum versions -// specifically for chromeMobile. This map defines that aliasing behavior -// in a generic way that could work for other browsers as well. +// This map defines aliasing behavior in a generic way which still permits +// minimum versions to be specified for a specific browser family. const browserAliases = { chrome: [ + // chromeMobile*, per https://github.com/meteor/meteor/pull/9793, "chromeMobile", "chromeMobileIOS", + + // The major version number of Chromium and Headless Chrome track with the + // releases of Chrome Dev, Canary and Stable, so we should be okay to + // alias them to Chrome in a generic sense. + // https://www.chromium.org/developers/version-numbers + // + // Chromium is particularly important to list here since, unlike macOS + // builds, Linux builds list Chromium in the userAgent along with Chrome: + // e.g. Chromium/70.0.3538.77 Chrome/70.0.3538.77 + "chromium", + "headlesschrome", ], // If a call to setMinimumBrowserVersions specifies Edge 12 as a minimum From f3f584d96bda78a14af606957f50dc4211297824 Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Thu, 15 Nov 2018 10:20:25 -0500 Subject: [PATCH 0052/1217] Make modern/legacy browser name check case-insensitive. https://github.com/meteor/meteor/pull/10334#commitcomment-31302219 cc @abernix @hwillson --- packages/modern-browsers/modern.js | 44 ++++++++++++++++++++---------- 1 file changed, 29 insertions(+), 15 deletions(-) diff --git a/packages/modern-browsers/modern.js b/packages/modern-browsers/modern.js index 29b28aff3e..43440bf615 100644 --- a/packages/modern-browsers/modern.js +++ b/packages/modern-browsers/modern.js @@ -35,17 +35,27 @@ const browserAliases = { // Expand the given minimum versions by reusing chrome versions for // chromeMobile (according to browserAliases above). function applyAliases(versions) { + const lowerCaseVersions = Object.create(null); + + Object.keys(versions).forEach(browser => { + lowerCaseVersions[browser.toLowerCase()] = versions[browser]; + }); + Object.keys(browserAliases).forEach(original => { - if (hasOwn.call(versions, original)) { - browserAliases[original].forEach(alias => { - if (! hasOwn.call(versions, alias)) { - versions[alias] = versions[original]; + const aliases = browserAliases[original]; + original = original.toLowerCase(); + + if (hasOwn.call(lowerCaseVersions, original)) { + aliases.forEach(alias => { + alias = alias.toLowerCase(); + if (! hasOwn.call(lowerCaseVersions, alias)) { + lowerCaseVersions[alias] = lowerCaseVersions[original]; } }); } }); - return versions; + return lowerCaseVersions; } // TODO Should it be possible for callers to setMinimumBrowserVersions to @@ -55,14 +65,17 @@ function applyAliases(versions) { // webapp via request.browser, return true if that browser qualifies as // "modern" according to all requested version constraints. function isModern(browser) { - return browser && + const lowerCaseName = browser && typeof browser.name === "string" && - hasOwn.call(minimumVersions, browser.name) && + browser.name.toLowerCase(); + + return !!lowerCaseName && + hasOwn.call(minimumVersions, lowerCaseName) && greaterThanOrEqualTo([ ~~browser.major, ~~browser.minor, ~~browser.patch, - ], minimumVersions[browser.name].version); + ], minimumVersions[lowerCaseName].version); } // Any package that depends on the modern-browsers package can call this @@ -71,17 +84,18 @@ function isModern(browser) { // web.browser.legacy and web.browser will be based on the maximum of all // requested minimum versions for each browser. function setMinimumBrowserVersions(versions, source) { - applyAliases(versions); + const lowerCaseVersions = applyAliases(versions); - Object.keys(versions).forEach(browserName => { - if (hasOwn.call(minimumVersions, browserName) && - ! greaterThan(versions[browserName], - minimumVersions[browserName].version)) { + Object.keys(lowerCaseVersions).forEach(lowerCaseName => { + const version = lowerCaseVersions[lowerCaseName]; + + if (hasOwn.call(minimumVersions, lowerCaseName) && + ! greaterThan(version, minimumVersions[lowerCaseName].version)) { return; } - minimumVersions[browserName] = { - version: copy(versions[browserName]), + minimumVersions[lowerCaseName] = { + version: copy(version), source: source || getCaller("setMinimumBrowserVersions") }; }); From 0296f15880c2dafbf2f73419045f32f0ccf7ad9f Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Thu, 15 Nov 2018 10:44:20 -0500 Subject: [PATCH 0053/1217] Bump webapp and modern-browsers package versions for #10334. --- packages/modern-browsers/package.js | 2 +- packages/webapp/package.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/modern-browsers/package.js b/packages/modern-browsers/package.js index 5b6ca065a9..002b8c14a8 100644 --- a/packages/modern-browsers/package.js +++ b/packages/modern-browsers/package.js @@ -1,6 +1,6 @@ Package.describe({ name: "modern-browsers", - version: "0.1.2", + version: "0.1.3", summary: "API for defining the boundary between modern and legacy " + "JavaScript clients", documentation: "README.md" diff --git a/packages/webapp/package.js b/packages/webapp/package.js index 3f4447b166..cd0295ceaa 100644 --- a/packages/webapp/package.js +++ b/packages/webapp/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "Serves a Meteor app over HTTP", - version: '1.7.0' + version: '1.7.1' }); Npm.depends({"basic-auth-connect": "1.0.0", From c326591bb85e94b4bc70f677737284ccbbe861b7 Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Thu, 15 Nov 2018 11:57:16 -0500 Subject: [PATCH 0054/1217] Note PR #10334 in History.md. --- History.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/History.md b/History.md index a316fe1c65..df6b163208 100644 --- a/History.md +++ b/History.md @@ -10,6 +10,13 @@ N/A * The `meteor-babel` npm package has been updated to version 7.1.5. +* The `useragent` npm package used by `webapp` and (indirectly) by the + `modern-browsers` package has been updated from 2.2.1 to 2.3.0. The + `chromium` browser name has been aliased to use the same minimum modern + version as `chrome`, and browser names are now processed + case-insensitively by the `modern-browsers` package. + [PR #10334](https://github.com/meteor/meteor/pull/10334) + ## v1.8, 2018-10-08 ### Breaking changes From 0561124bdefc7594d6e51b3a4175fff9faeb334f Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Thu, 15 Nov 2018 13:50:13 -0500 Subject: [PATCH 0055/1217] Note PR #10330 in History.md. --- History.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/History.md b/History.md index df6b163208..a45beaa171 100644 --- a/History.md +++ b/History.md @@ -17,6 +17,14 @@ N/A case-insensitively by the `modern-browsers` package. [PR #10334](https://github.com/meteor/meteor/pull/10334) +* Fixed a module caching bug that allowed `findImportedModuleIdentifiers` + to return the same identifiers for the modern and legacy versions of a + given module, even if the set of imported modules is different (for + example, because Babel injects fewer `@babel/runtime/...` imports into + modern code). Now the caching is always based on the SHA-1 hash of the + _generated_ code, rather than trusting the hash provided by compiler + plugins. [PR #10330](https://github.com/meteor/meteor/pull/10330) + ## v1.8, 2018-10-08 ### Breaking changes From 4c22e5ec974300e3752d41975287c99fa345d749 Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Thu, 15 Nov 2018 13:41:58 -0500 Subject: [PATCH 0056/1217] Bump package versions for 1.8.0.1-rc.1 release. --- packages/meteor-tool/package.js | 2 +- packages/modern-browsers/package.js | 2 +- packages/session/package.js | 2 +- packages/webapp/package.js | 2 +- scripts/admin/meteor-release-experimental.json | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/meteor-tool/package.js b/packages/meteor-tool/package.js index ba087a10b9..54dde5c2bf 100644 --- a/packages/meteor-tool/package.js +++ b/packages/meteor-tool/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "The Meteor command-line tool", - version: '1.8.0-1-rc.0' + version: '1.8.0-1-rc.1' }); Package.includeTool(); diff --git a/packages/modern-browsers/package.js b/packages/modern-browsers/package.js index 002b8c14a8..7191fa79e0 100644 --- a/packages/modern-browsers/package.js +++ b/packages/modern-browsers/package.js @@ -1,6 +1,6 @@ Package.describe({ name: "modern-browsers", - version: "0.1.3", + version: "0.1.3-rc1801.1", summary: "API for defining the boundary between modern and legacy " + "JavaScript clients", documentation: "README.md" diff --git a/packages/session/package.js b/packages/session/package.js index 862097188e..bc6b6e2757 100644 --- a/packages/session/package.js +++ b/packages/session/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "Session variable", - version: '1.2.0-rc1801.0' + version: '1.2.0-rc1801.1' }); Package.onUse(function (api) { diff --git a/packages/webapp/package.js b/packages/webapp/package.js index cd0295ceaa..ca99af1555 100644 --- a/packages/webapp/package.js +++ b/packages/webapp/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "Serves a Meteor app over HTTP", - version: '1.7.1' + version: '1.7.1-rc1801.1' }); Npm.depends({"basic-auth-connect": "1.0.0", diff --git a/scripts/admin/meteor-release-experimental.json b/scripts/admin/meteor-release-experimental.json index df1c89e673..6cc1080086 100644 --- a/scripts/admin/meteor-release-experimental.json +++ b/scripts/admin/meteor-release-experimental.json @@ -1,6 +1,6 @@ { "track": "METEOR", - "version": "1.8.0.1-rc.0", + "version": "1.8.0.1-rc.1", "recommended": false, "official": false, "description": "Meteor" From b55806f9310e91a243d32bbfb4b7b15607ac87aa Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Sat, 17 Nov 2018 15:25:54 -0500 Subject: [PATCH 0057/1217] Relax precondition in ResourceSlot#addJavaScript. https://github.com/meteor/meteor/issues/10337#issuecomment-439638590 --- tools/isobuild/compiler-plugin.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/tools/isobuild/compiler-plugin.js b/tools/isobuild/compiler-plugin.js index 1a3950bce1..c481d57d06 100644 --- a/tools/isobuild/compiler-plugin.js +++ b/tools/isobuild/compiler-plugin.js @@ -786,7 +786,9 @@ class ResourceSlot { addJavaScript(options, lazyFinalizer) { // #HardcodeJs this gets called by constructor in the "js" case - if (! this.sourceProcessor && this.inputResource.extension !== "js") { + if (! this.sourceProcessor && + this.inputResource.extension !== "js" && + this.inputResource.type !== "js") { throw Error("addJavaScript on non-source ResourceSlot?"); } From c0a35f0457a24fbfd854c554423155c0eb434553 Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Sat, 17 Nov 2018 15:27:35 -0500 Subject: [PATCH 0058/1217] Bump package versions for 1.8.0.1-rc.2 release. --- packages/meteor-tool/package.js | 2 +- packages/modern-browsers/package.js | 2 +- packages/session/package.js | 2 +- packages/webapp/package.js | 2 +- scripts/admin/meteor-release-experimental.json | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/meteor-tool/package.js b/packages/meteor-tool/package.js index 54dde5c2bf..b54071f493 100644 --- a/packages/meteor-tool/package.js +++ b/packages/meteor-tool/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "The Meteor command-line tool", - version: '1.8.0-1-rc.1' + version: '1.8.0-1-rc.2' }); Package.includeTool(); diff --git a/packages/modern-browsers/package.js b/packages/modern-browsers/package.js index 7191fa79e0..b3c3c7188e 100644 --- a/packages/modern-browsers/package.js +++ b/packages/modern-browsers/package.js @@ -1,6 +1,6 @@ Package.describe({ name: "modern-browsers", - version: "0.1.3-rc1801.1", + version: "0.1.3-rc1801.2", summary: "API for defining the boundary between modern and legacy " + "JavaScript clients", documentation: "README.md" diff --git a/packages/session/package.js b/packages/session/package.js index bc6b6e2757..cbe3dad17b 100644 --- a/packages/session/package.js +++ b/packages/session/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "Session variable", - version: '1.2.0-rc1801.1' + version: '1.2.0-rc1801.2' }); Package.onUse(function (api) { diff --git a/packages/webapp/package.js b/packages/webapp/package.js index ca99af1555..52c8b8abf2 100644 --- a/packages/webapp/package.js +++ b/packages/webapp/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "Serves a Meteor app over HTTP", - version: '1.7.1-rc1801.1' + version: '1.7.1-rc1801.2' }); Npm.depends({"basic-auth-connect": "1.0.0", diff --git a/scripts/admin/meteor-release-experimental.json b/scripts/admin/meteor-release-experimental.json index 6cc1080086..f09c901213 100644 --- a/scripts/admin/meteor-release-experimental.json +++ b/scripts/admin/meteor-release-experimental.json @@ -1,6 +1,6 @@ { "track": "METEOR", - "version": "1.8.0.1-rc.1", + "version": "1.8.0.1-rc.2", "recommended": false, "official": false, "description": "Meteor" From 7ce3ca29fd7fb5f1ab68a652cc1d801e377dc75f Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Mon, 19 Nov 2018 12:39:58 -0500 Subject: [PATCH 0059/1217] Avoid computing servePath from undefined targetPath. https://github.com/meteor/meteor/issues/10337#issuecomment-439674497 --- tools/isobuild/compiler-plugin.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/tools/isobuild/compiler-plugin.js b/tools/isobuild/compiler-plugin.js index c481d57d06..760bb79eac 100644 --- a/tools/isobuild/compiler-plugin.js +++ b/tools/isobuild/compiler-plugin.js @@ -870,6 +870,9 @@ class OutputResource { } const targetPath = options.path || sourcePath; + const servePath = targetPath + ? resourceSlot.packageSourceBatch.unibuild.pkg._getServePath(targetPath) + : resourceSlot.inputResource.servePath; Object.assign(this, { type, @@ -878,8 +881,7 @@ class OutputResource { mainModule: !! resourceSlot._getOption("mainModule", options), sourcePath, targetPath, - servePath: resourceSlot.packageSourceBatch - .unibuild.pkg._getServePath(targetPath), + servePath, }); } From 4ceb405f278489fcb9ef1a2e326d4073d14a040d Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Mon, 19 Nov 2018 12:45:51 -0500 Subject: [PATCH 0060/1217] Bump package versions for 1.8.0.1-rc.3 release. --- packages/meteor-tool/package.js | 2 +- packages/modern-browsers/package.js | 2 +- packages/session/package.js | 2 +- packages/webapp/package.js | 2 +- scripts/admin/meteor-release-experimental.json | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/meteor-tool/package.js b/packages/meteor-tool/package.js index b54071f493..56ac3ea8c7 100644 --- a/packages/meteor-tool/package.js +++ b/packages/meteor-tool/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "The Meteor command-line tool", - version: '1.8.0-1-rc.2' + version: '1.8.0-1-rc.3' }); Package.includeTool(); diff --git a/packages/modern-browsers/package.js b/packages/modern-browsers/package.js index b3c3c7188e..4e50ee0693 100644 --- a/packages/modern-browsers/package.js +++ b/packages/modern-browsers/package.js @@ -1,6 +1,6 @@ Package.describe({ name: "modern-browsers", - version: "0.1.3-rc1801.2", + version: "0.1.3-rc1801.3", summary: "API for defining the boundary between modern and legacy " + "JavaScript clients", documentation: "README.md" diff --git a/packages/session/package.js b/packages/session/package.js index cbe3dad17b..b737cdc4d3 100644 --- a/packages/session/package.js +++ b/packages/session/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "Session variable", - version: '1.2.0-rc1801.2' + version: '1.2.0-rc1801.3' }); Package.onUse(function (api) { diff --git a/packages/webapp/package.js b/packages/webapp/package.js index 52c8b8abf2..4136fd96f2 100644 --- a/packages/webapp/package.js +++ b/packages/webapp/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "Serves a Meteor app over HTTP", - version: '1.7.1-rc1801.2' + version: '1.7.1-rc1801.3' }); Npm.depends({"basic-auth-connect": "1.0.0", diff --git a/scripts/admin/meteor-release-experimental.json b/scripts/admin/meteor-release-experimental.json index f09c901213..eecca408a6 100644 --- a/scripts/admin/meteor-release-experimental.json +++ b/scripts/admin/meteor-release-experimental.json @@ -1,6 +1,6 @@ { "track": "METEOR", - "version": "1.8.0.1-rc.2", + "version": "1.8.0.1-rc.3", "recommended": false, "official": false, "description": "Meteor" From 346d512b135135e196514687ab0133e0c3e1057a Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Tue, 20 Nov 2018 10:47:26 -0500 Subject: [PATCH 0061/1217] Propagate input hashes all the way through bundling. Hashes have a number of overlapping but not entirely redundant or equivalent purposes within the build system. Hashes of source code are important because they can be computed before compilation and processing, and thus are useful as keys for caching that expensive work. Source hashes remain useful even after compilation, as a way of reflecting the contributions of source-code-sensitive assets like source maps. However, source hashes do not tell the whole story, and using them as cache keys can be risky if the work that's being cached depends on generated code rather than source code, as we recently discovered with the findImportedModuleIdentifiers function. The preliminary fix for that problem (#10330) was to cache findImportedModuleIdentifiers using a hash of the generated code rather than the source hash. PR #10330 swung a bit too far in the direction of ignoring source hashes and considering only hashes of generated code. For example, the URLs of source maps share the hash of the corresponding resource, but source maps can change (because of superficial changes in the source code) without changing the generated code of the resource. Ignoring the source hash when computing source map URLs resulted in stale source maps with incorrect line numbers. A better solution seems to be to propagate the source hash (along with any hashes of intermediate generated artifacts) all the way through bundling, so that the final hash of any static resource reflects all information that could/should change the behavior of that static resource, including its source map, which embeds the exact source code of all contributing files in the sourcesContent property. At every step of the way, we merge all the input hashes into a single hash, so we don't have to keep juggling multiple hashes, thankfully. Sub-Resource Integrity (SRI) hashes still need to be computed from just the final contents of a given asset, so that the browser can verify those contents without knowing anything about the Meteor build system, but that's handled separately. --- tools/isobuild/bundler.js | 33 ++++++++++++++++++++++--------- tools/isobuild/compiler-plugin.js | 17 ++++++++++++++-- tools/isobuild/linker.js | 17 ++++++++++------ 3 files changed, 50 insertions(+), 17 deletions(-) diff --git a/tools/isobuild/bundler.js b/tools/isobuild/bundler.js index b6eb36b360..7cced55f7a 100644 --- a/tools/isobuild/bundler.js +++ b/tools/isobuild/bundler.js @@ -597,6 +597,7 @@ class File { this.assets = null; this._contents = options.data || null; // contents, if known, as a Buffer + this._inputHash = options.hash; this._hash = null; this._sri = null; } @@ -612,10 +613,15 @@ class File { hash() { if (! this._hash) { - this._hash = watch.sha1( - String(File._salt()), - this.sri(), - ); + const hashes = [String(File._salt())]; + + if (typeof this._inputHash === "string") { + hashes.push(this._inputHash); + } + + hashes.push(this.sri()); + + this._hash = watch.sha1(...hashes); } return this._hash; @@ -1086,6 +1092,7 @@ class Target { info: 'resource ' + resource.servePath, arch: target.arch, data: resource.data, + hash: resource.hash, }); file.setTargetPathFromRelPath( @@ -1212,6 +1219,7 @@ class Target { info: 'resource ' + resource.servePath, arch: this.arch, data: resource.data, + hash: resource.hash, cacheable: false, }); @@ -1306,14 +1314,14 @@ class Target { const staticFiles = []; const dynamicFiles = []; const { arch } = this; + const inputHashesByJsFile = new Map; this.js.forEach(file => { const jsf = new JsFile(file, { arch }); - if (file.targetPath.startsWith("dynamic/")) { - // Make sure file._hash is cached. - file.hash(); + inputHashesByJsFile.set(jsf, file.hash()); + if (file.targetPath.startsWith("dynamic/")) { // Dynamic files consist of a single anonymous function // expression, which some minifiers (e.g. UglifyJS) either fail to // parse or mistakenly eliminate as dead code. To avoid these @@ -1365,6 +1373,7 @@ class Target { info: 'minified js', arch, data: Buffer.from(file.data, 'utf8'), + hash: inputHashesByJsFile.get(source), }); if (file.sourceMap) { @@ -1808,7 +1817,12 @@ const minifyCssFiles = Profile("minifyCssFiles", wrap(function (files, { minifier, minifyMode, }) { - const sources = files.map(file => new CssFile(file, { arch })); + const inputHashesByCssFile = new Map; + const sources = files.map(file => { + const cssFile = new CssFile(file, { arch }); + inputHashesByCssFile.set(cssFile, file.hash()); + return cssFile; + }); const markedMinifier = buildmessage.markBoundary( minifier.userPlugin.processFilesForBundle, minifier.userPlugin, @@ -1827,7 +1841,8 @@ const minifyCssFiles = Profile("minifyCssFiles", wrap(function (files, { const newFile = new File({ info: 'minified css', arch, - data: Buffer.from(file.data, 'utf8') + data: Buffer.from(file.data, 'utf8'), + hash: inputHashesByCssFile.get(source), }); if (file.sourceMap) { newFile.setSourceMap(file.sourceMap, '/'); diff --git a/tools/isobuild/compiler-plugin.js b/tools/isobuild/compiler-plugin.js index 760bb79eac..b3ae075895 100644 --- a/tools/isobuild/compiler-plugin.js +++ b/tools/isobuild/compiler-plugin.js @@ -882,6 +882,9 @@ class OutputResource { sourcePath, targetPath, servePath, + // Remember the source hash so that changes to the source that + // disappear after compilation can still contribute to the hash. + _inputHash: resourceSlot.inputResource.hash, }); } @@ -966,8 +969,17 @@ class OutputResource { } return this._set("data", data); - case "hash": - return this._set("hash", sha1(this._get("data"))); + case "hash": { + const hashes = []; + + if (typeof this._inputHash === "string") { + hashes.push(this._inputHash); + } + + hashes.push(sha1(this._get("data"))); + + return this._set("hash", sha1(...hashes)); + } case "sourceMap": let { sourceMap } = this._initialOptions; @@ -1657,6 +1669,7 @@ export class PackageSourceBatch { // before returning from the method (but after writing // to cache). data: file.source, + hash: file.hash, servePath: file.servePath, sourceMap: sm }; diff --git a/tools/isobuild/linker.js b/tools/isobuild/linker.js index 7a569f2e10..e824bfad4a 100644 --- a/tools/isobuild/linker.js +++ b/tools/isobuild/linker.js @@ -122,7 +122,10 @@ _.extend(Module.prototype, { return _.map(eagerFiles, function (file) { const cacheKey = JSON.stringify([ - file.sourceHash, file.bare, file.servePath]); + file._inputHash, + file.bare, + file.servePath, + ]); if (APP_PRELINK_CACHE.has(cacheKey)) { return APP_PRELINK_CACHE.get(cacheKey); @@ -146,7 +149,8 @@ _.extend(Module.prototype, { source: results.code, sourcePath: file.sourcePath, servePath: file.servePath, - sourceMap: sourceMap + sourceMap: sourceMap, + hash: file._inputHash, }; APP_PRELINK_CACHE.set(cacheKey, prelinked); @@ -164,6 +168,7 @@ _.extend(Module.prototype, { // .sourceMap, and (optionally) .exportsName properties before being // returned from this method in a singleton array. servePath: self.combinedServePath, + hash: watch.sha1(...self.files.map(file => file._inputHash)), }; const results = [result]; @@ -550,7 +555,7 @@ function File(inputFile, module) { // hash of source (precalculated for *.js files, calculated here for files // produced by plugins) - self.sourceHash = inputFile.hash || watch.sha1(self.source); + self._inputHash = inputFile.hash || watch.sha1(self.source); // The path of the source file, relative to the root directory of the // package or application. @@ -637,7 +642,7 @@ _.extend(File.prototype, { } try { - return _.keys(findAssignedGlobals(self.source, self.sourceHash)); + return _.keys(findAssignedGlobals(self.source, self._inputHash)); } catch (e) { if (!e.$ParseError) { throw e; @@ -664,7 +669,7 @@ _.extend(File.prototype, { // Recover by pretending that this file is empty (which // includes replacing its source code with '' in the output) self.source = ""; - self.sourceHash = watch.sha1(self.source); + self._inputHash = watch.sha1(self.source); self.sourceMap = null; return []; } @@ -812,7 +817,7 @@ const getPrelinkedOutputCached = require("optimism").wrap( makeCacheKey(file, options) { return JSON.stringify({ - sourceHash: file.sourceHash, + hash: file._inputHash, arch: file.module.bundleArch, bare: file.bare, servePath: file.servePath, From d5cee78567057e3ccfc0e3dc4a6fb025e87dc950 Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Tue, 20 Nov 2018 16:23:26 -0500 Subject: [PATCH 0062/1217] Update meteor-babel to version 7.1.6. Change responsible for the source maps improvements: https://github.com/meteor/babel/commit/389cf7dfed9a2dfa980c40aaeda8d916da08675e --- History.md | 3 +- .../.npm/package/npm-shrinkwrap.json | 66 +++++++++---------- packages/babel-compiler/package.js | 4 +- packages/ecmascript/package.js | 2 +- scripts/dev-bundle-tool-package.js | 2 +- 5 files changed, 39 insertions(+), 38 deletions(-) diff --git a/History.md b/History.md index df6b163208..f6da336b3e 100644 --- a/History.md +++ b/History.md @@ -8,7 +8,8 @@ N/A ### Changes -* The `meteor-babel` npm package has been updated to version 7.1.5. +* The `meteor-babel` npm package has been updated to version 7.1.6, + improving source maps for applications with custom `.babelrc` files. * The `useragent` npm package used by `webapp` and (indirectly) by the `modern-browsers` package has been updated from 2.2.1 to 2.3.0. The diff --git a/packages/babel-compiler/.npm/package/npm-shrinkwrap.json b/packages/babel-compiler/.npm/package/npm-shrinkwrap.json index d2145a3833..abe529c07b 100644 --- a/packages/babel-compiler/.npm/package/npm-shrinkwrap.json +++ b/packages/babel-compiler/.npm/package/npm-shrinkwrap.json @@ -7,21 +7,21 @@ "integrity": "sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA==" }, "@babel/core": { - "version": "7.1.5", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.1.5.tgz", - "integrity": "sha512-vOyH020C56tQvte++i+rX2yokZcRfbv/kKcw+/BCRw/cK6dvsr47aCzm8oC1XHwMSEWbqrZKzZRLzLnq6SFMsg==", + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.1.6.tgz", + "integrity": "sha512-Hz6PJT6e44iUNpAn8AoyAs6B3bl60g7MJQaI0rZEar6ECzh6+srYO1xlIdssio34mPaUtAb1y+XlkkSJzok3yw==", "dependencies": { "json5": { - "version": "0.5.1", - "resolved": "http://registry.npmjs.org/json5/-/json5-0.5.1.tgz", - "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=" + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.0.tgz", + "integrity": "sha512-8Mh9h6xViijj36g7Dxi+Y4S6hNGV96vcJZr/SrlHh1LR/pEn/8j/+qIBbs44YKl69Lrfctp4QD+AdWLTMqEZAQ==" } } }, "@babel/generator": { - "version": "7.1.5", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.1.5.tgz", - "integrity": "sha512-IO31r62xfMI+wBJVmgx0JR9ZOHty8HkoYpQAjRWUGG9vykBTlGHdArZ8zoFtpUu2gs17K7qTl/TtPpiSi6t+MA==" + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.1.6.tgz", + "integrity": "sha512-brwPBtVvdYdGxtenbQgfCdDPmtkmUBZPjUoK5SXJEBuHaA5BCubh9ly65fzXz7R6o5rA76Rs22ES8Z+HCc0YIQ==" }, "@babel/helper-annotate-as-pure": { "version": "7.0.0", @@ -134,9 +134,9 @@ "integrity": "sha512-UFMC4ZeFC48Tpvj7C8UgLvtkaUuovQX+5xNWrsIoMG8o2z+XFKjKaN9iVmS84dPwVN00W4wPmqvYoZF3EGAsfw==" }, "@babel/parser": { - "version": "7.1.5", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.1.5.tgz", - "integrity": "sha512-WXKf5K5HT6X0kKiCOezJZFljsfxKV1FpU8Tf1A7ZpGvyd/Q4hlrJm2EwoH2onaUq3O4tLDp+4gk0hHPsMyxmOg==" + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.1.6.tgz", + "integrity": "sha512-dWP6LJm9nKT6ALaa+bnL247GHHMWir3vSlZ2+IHgHgktZQx0L3Uvq2uAWcuzIe+fujRsYWBW2q622C5UvGK9iQ==" }, "@babel/plugin-proposal-async-generator-functions": { "version": "7.1.0", @@ -229,9 +229,9 @@ "integrity": "sha512-uZt9kD1Pp/JubkukOGQml9tqAeI8NkE98oZnHZ2qHRElmeKCodbTZgOEUtujSCSLhHSBWbzNiFSDIMC4/RBTLQ==" }, "@babel/plugin-transform-flow-strip-types": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.0.0.tgz", - "integrity": "sha512-WhXUNb4It5a19RsgKKbQPrjmy4yWOY1KynpEbNw7bnd1QTcrT/EIl3MJvnGgpgvrKyKbqX7nUNOJfkpLOnoDKA==" + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.1.6.tgz", + "integrity": "sha512-0tyFAAjJmnRlr8MVJV39ASn1hv+PbdVP71hf7aAseqLfQ0o9QXk9htbMbq7/ZYXnUIp6gDw0lUUP0+PQMbbtmg==" }, "@babel/plugin-transform-for-of": { "version": "7.0.0", @@ -269,9 +269,9 @@ "integrity": "sha512-BX8xKuQTO0HzINxT6j/GiCwoJB0AOMs0HmLbEnAvcte8U8rSkNa/eSCAY+l1OA4JnCVq2jw2p6U8QQryy2fTPg==" }, "@babel/plugin-transform-react-jsx": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.0.0.tgz", - "integrity": "sha512-0TMP21hXsSUjIQJmu/r7RiVxeFrXRcMUigbKu0BLegJK9PkYodHstaszcig7zxXfaBji2LYUdtqIkHs+hgYkJQ==" + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.1.6.tgz", + "integrity": "sha512-iU/IUlPEYDRwuqLwqVobzPAZkBOQoZ9xRTBmj6ANuk5g/Egn/zdNGnXlSoKeNmKoYVeIRxx5GZhWmMhLik8dag==" }, "@babel/plugin-transform-react-jsx-self": { "version": "7.0.0", @@ -344,14 +344,14 @@ "integrity": "sha512-SY1MmplssORfFiLDcOETrW7fCLl+PavlwMh92rrGcikQaRq4iWPVH0MpwPpY3etVMx6RnDjXtr6VZYr/IbP/Ag==" }, "@babel/traverse": { - "version": "7.1.5", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.1.5.tgz", - "integrity": "sha512-eU6XokWypl0MVJo+MTSPUtlfPePkrqsF26O+l1qFGlCKWwmiYAYy2Sy44Qw8m2u/LbPCsxYt90rghmqhYMGpPA==" + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.1.6.tgz", + "integrity": "sha512-CXedit6GpISz3sC2k2FsGCUpOhUqKdyL0lqNrImQojagnUMXf8hex4AxYFRuMkNGcvJX5QAFGzB5WJQmSv8SiQ==" }, "@babel/types": { - "version": "7.1.5", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.1.5.tgz", - "integrity": "sha512-sJeqa/d9eM/bax8Ivg+fXF7FpN3E/ZmTrWbkk6r+g7biVYfALMnLin4dKijsaqEhpd2xvOGfQTkQkD31YCVV4A==" + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.1.6.tgz", + "integrity": "sha512-DMiUzlY9DSjVsOylJssxLHSgj6tWM9PRFJOGW/RaOglVOK9nzTxoOMfTfRQXGUCUQ/HmlG2efwC+XqUEJ5ay4w==" }, "acorn": { "version": "5.7.3", @@ -521,9 +521,9 @@ "integrity": "sha1-viQcqBQEAwZ4t0hxcyK4nQyP4oA=" }, "babel-preset-meteor": { - "version": "7.1.5", - "resolved": "https://registry.npmjs.org/babel-preset-meteor/-/babel-preset-meteor-7.1.5.tgz", - "integrity": "sha512-U93lhe6HTpz3g9TskGqVijRbqc/wVkrQtxKrjJiIjdGkvJubNVm0jFcWcXHqc26QHtYv0c6tItHZAWKlj9zcNQ==" + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/babel-preset-meteor/-/babel-preset-meteor-7.1.6.tgz", + "integrity": "sha512-4wjyLmCieDVP9UL9SRl/hOy3mCJj+uz4CP8SCfvzDqiOhbdks15/EmDYEJCxSvM5YzHLdEpTzP1XZnsyBQQWJw==" }, "babel-preset-minify": { "version": "0.5.0", @@ -551,9 +551,9 @@ "integrity": "sha512-eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A==" }, "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==" + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.0.tgz", + "integrity": "sha512-heNPJUJIqC+xB6ayLAMHaIrmN9HKa7aQO8MGqKpvCA+uJYVcvR6l5kgdrhRuwPFHU7P5/A1w0BjByPHwpfTDKg==" }, "escape-string-regexp": { "version": "1.0.5", @@ -606,9 +606,9 @@ "integrity": "sha1-G7nzFO9ri63tE7VJFpsqlF62jk0=" }, "meteor-babel": { - "version": "7.1.5", - "resolved": "https://registry.npmjs.org/meteor-babel/-/meteor-babel-7.1.5.tgz", - "integrity": "sha512-fJK9GYtZnIy3/pEG/mFb3uk3DQ0e5jTQxu5SYUZ2S8szWS2WgZtco2BMeWMFSLSma5XHgyzpfUhbxnP2A+/Aiw==" + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/meteor-babel/-/meteor-babel-7.1.6.tgz", + "integrity": "sha512-crg3PQ+/vXex4woNeM9nIS0eDziIpxfFlPPDYzCfCzQgk0sP+P56POzfJ53gKt+Y9nkqDBSPXJOExjqpO8jOVw==" }, "meteor-babel-helpers": { "version": "0.0.3", diff --git a/packages/babel-compiler/package.js b/packages/babel-compiler/package.js index 30924ecb45..75b700b54c 100644 --- a/packages/babel-compiler/package.js +++ b/packages/babel-compiler/package.js @@ -6,11 +6,11 @@ Package.describe({ // isn't possible because you can't publish a non-recommended // release with package versions that don't have a pre-release // identifier at the end (eg, -dev) - version: '7.2.2' + version: '7.2.3' }); Npm.depends({ - 'meteor-babel': '7.1.5', + 'meteor-babel': '7.1.6', 'json5': '2.1.0' }); diff --git a/packages/ecmascript/package.js b/packages/ecmascript/package.js index a6e5ca0e2d..04de3fcb70 100644 --- a/packages/ecmascript/package.js +++ b/packages/ecmascript/package.js @@ -1,6 +1,6 @@ Package.describe({ name: 'ecmascript', - version: '0.12.2', + version: '0.12.3', summary: 'Compiler plugin that supports ES2015+ in all .js files', documentation: 'README.md' }); diff --git a/scripts/dev-bundle-tool-package.js b/scripts/dev-bundle-tool-package.js index 6c4b9b9031..e7f8daa7c8 100644 --- a/scripts/dev-bundle-tool-package.js +++ b/scripts/dev-bundle-tool-package.js @@ -14,7 +14,7 @@ var packageJson = { pacote: "https://github.com/meteor/pacote/tarball/a3285854a68e4969d6c8abaa74407f7d113b178f", "node-gyp": "3.7.0", "node-pre-gyp": "0.10.3", - "meteor-babel": "7.1.5", + "meteor-babel": "7.1.6", "meteor-promise": "0.8.6", promise: "8.0.1", reify: "0.17.3", From f440ef4d7a2e4dad69e55ea209f11c1e0716703c Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Tue, 20 Nov 2018 16:47:11 -0500 Subject: [PATCH 0063/1217] Bump $BUNDLE_VERSION to 8.11.4.7 before rebuilding dev bundle. --- meteor | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meteor b/meteor index 17a3eb932f..189baed075 100755 --- a/meteor +++ b/meteor @@ -1,7 +1,7 @@ #!/usr/bin/env bash # Note: Skip 8.12.0.0, as it has already been used. -BUNDLE_VERSION=8.11.4.6 +BUNDLE_VERSION=8.11.4.7 # OS Check. Put here because here is where we download the precompiled # bundles that are arch specific. From e8440a491dee7150887d30f6fc02a24efde99a40 Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Tue, 20 Nov 2018 17:14:23 -0500 Subject: [PATCH 0064/1217] Bump package versions for 1.8.0.1-rc.4 release. --- packages/meteor-tool/package.js | 2 +- packages/modern-browsers/package.js | 2 +- packages/session/package.js | 2 +- packages/webapp/package.js | 2 +- scripts/admin/meteor-release-experimental.json | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/meteor-tool/package.js b/packages/meteor-tool/package.js index 56ac3ea8c7..f5367b5580 100644 --- a/packages/meteor-tool/package.js +++ b/packages/meteor-tool/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "The Meteor command-line tool", - version: '1.8.0-1-rc.3' + version: '1.8.0-1-rc.4' }); Package.includeTool(); diff --git a/packages/modern-browsers/package.js b/packages/modern-browsers/package.js index 4e50ee0693..8564f9534a 100644 --- a/packages/modern-browsers/package.js +++ b/packages/modern-browsers/package.js @@ -1,6 +1,6 @@ Package.describe({ name: "modern-browsers", - version: "0.1.3-rc1801.3", + version: "0.1.3-rc1801.4", summary: "API for defining the boundary between modern and legacy " + "JavaScript clients", documentation: "README.md" diff --git a/packages/session/package.js b/packages/session/package.js index b737cdc4d3..0aea76c075 100644 --- a/packages/session/package.js +++ b/packages/session/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "Session variable", - version: '1.2.0-rc1801.3' + version: '1.2.0-rc1801.4' }); Package.onUse(function (api) { diff --git a/packages/webapp/package.js b/packages/webapp/package.js index 4136fd96f2..85e8028af5 100644 --- a/packages/webapp/package.js +++ b/packages/webapp/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "Serves a Meteor app over HTTP", - version: '1.7.1-rc1801.3' + version: '1.7.1-rc1801.4' }); Npm.depends({"basic-auth-connect": "1.0.0", diff --git a/scripts/admin/meteor-release-experimental.json b/scripts/admin/meteor-release-experimental.json index eecca408a6..c33bd87c9b 100644 --- a/scripts/admin/meteor-release-experimental.json +++ b/scripts/admin/meteor-release-experimental.json @@ -1,6 +1,6 @@ { "track": "METEOR", - "version": "1.8.0.1-rc.3", + "version": "1.8.0.1-rc.4", "recommended": false, "official": false, "description": "Meteor" From 0f5bed4707ef9d95e7b0ab1e3153ba8fe9b01a3e Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Tue, 20 Nov 2018 17:47:49 -0500 Subject: [PATCH 0065/1217] Avoid passing lots of ...args to watch.sha1. --- tools/isobuild/linker.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/tools/isobuild/linker.js b/tools/isobuild/linker.js index e824bfad4a..697460fcf3 100644 --- a/tools/isobuild/linker.js +++ b/tools/isobuild/linker.js @@ -168,7 +168,9 @@ _.extend(Module.prototype, { // .sourceMap, and (optionally) .exportsName properties before being // returned from this method in a singleton array. servePath: self.combinedServePath, - hash: watch.sha1(...self.files.map(file => file._inputHash)), + hash: watch.sha1( + JSON.stringify(self.files.map(file => file._inputHash)) + ), }; const results = [result]; From 4a38f4f990fedf51195698f73a7153f86399adac Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Tue, 20 Nov 2018 17:53:12 -0500 Subject: [PATCH 0066/1217] Update Node to version 8.13.0. Release blog post: https://nodejs.org/en/blog/release/v8.13.0/ This release includes my PR to improve multi-threaded debugging, which should finally fix #9275: https://github.com/nodejs/node/pull/22714 --- History.md | 11 ++++++----- scripts/build-dev-bundle-common.sh | 2 +- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/History.md b/History.md index 114148392d..609ec44628 100644 --- a/History.md +++ b/History.md @@ -10,11 +10,12 @@ N/A ### Changes -* Node has been updated to version - [8.12.0](https://nodejs.org/en/blog/release/v8.12.0/). While this - version of Node includes changes that may improve the performance of - Meteor apps, there have been reports of CPU usage spikes in production - due to excessive garbage collection, so this version of Meteor should be +* Node has been updated from version 8.11.4 to version + [8.13.0](https://nodejs.org/en/blog/release/v8.13.0/), which includes + version [8.12.0](https://nodejs.org/en/blog/release/v8.12.0/). While + Node 8.12.0 included changes that may improve the performance of Meteor + apps, there have been reports of CPU usage spikes in production due to + excessive garbage collection, so this version of Meteor should be considered experimental until those problems have been fixed. [Issue #10216](https://github.com/meteor/meteor/issues/10216) diff --git a/scripts/build-dev-bundle-common.sh b/scripts/build-dev-bundle-common.sh index 7c64d9f70d..22cc36376c 100644 --- a/scripts/build-dev-bundle-common.sh +++ b/scripts/build-dev-bundle-common.sh @@ -5,7 +5,7 @@ set -u UNAME=$(uname) ARCH=$(uname -m) -NODE_VERSION=8.12.0 +NODE_VERSION=8.13.0 MONGO_VERSION_64BIT=4.0.2 MONGO_VERSION_32BIT=3.2.19 NPM_VERSION=6.4.1 From ca06af865955d71d8b7db72af4f42d858b4f9fd1 Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Tue, 20 Nov 2018 18:00:01 -0500 Subject: [PATCH 0067/1217] Bump $BUNDLE_VERSION to 8.13.0.0 before rebuilding dev bundle. --- meteor | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meteor b/meteor index 3e8af1bd4a..c13aa7f5f5 100755 --- a/meteor +++ b/meteor @@ -1,6 +1,6 @@ #!/usr/bin/env bash -BUNDLE_VERSION=8.12.0.4 +BUNDLE_VERSION=8.13.0.0 # OS Check. Put here because here is where we download the precompiled # bundles that are arch specific. From 2190fdbb18e3dacc3f80185eebe4918cfb805bc1 Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Tue, 20 Nov 2018 18:13:59 -0500 Subject: [PATCH 0068/1217] Bump package versions for 1.8.1-beta.5 release. --- packages/autoupdate/package.js | 2 +- packages/ddp-server/package.js | 2 +- packages/meteor-tool/package.js | 2 +- packages/modern-browsers/package.js | 2 +- packages/reactive-dict/package.js | 2 +- packages/session/package.js | 2 +- packages/webapp/package.js | 2 +- scripts/admin/meteor-release-experimental.json | 2 +- 8 files changed, 8 insertions(+), 8 deletions(-) diff --git a/packages/autoupdate/package.js b/packages/autoupdate/package.js index a15b04a758..75b53498dc 100644 --- a/packages/autoupdate/package.js +++ b/packages/autoupdate/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "Update the client when new client code is available", - version: '1.6.0-beta181.4' + version: '1.6.0-beta181.5' }); Package.onUse(function (api) { diff --git a/packages/ddp-server/package.js b/packages/ddp-server/package.js index d88465698e..40211b78aa 100644 --- a/packages/ddp-server/package.js +++ b/packages/ddp-server/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "Meteor's latency-compensated distributed data server", - version: '2.3.0-beta181.4', + version: '2.3.0-beta181.5', documentation: null }); diff --git a/packages/meteor-tool/package.js b/packages/meteor-tool/package.js index 00af05c7c2..c832e6e7b0 100644 --- a/packages/meteor-tool/package.js +++ b/packages/meteor-tool/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "The Meteor command-line tool", - version: '1.8.1-beta.4' + version: '1.8.1-beta.5' }); Package.includeTool(); diff --git a/packages/modern-browsers/package.js b/packages/modern-browsers/package.js index 002b8c14a8..510fbb2db7 100644 --- a/packages/modern-browsers/package.js +++ b/packages/modern-browsers/package.js @@ -1,6 +1,6 @@ Package.describe({ name: "modern-browsers", - version: "0.1.3", + version: "0.1.4-beta181.5", summary: "API for defining the boundary between modern and legacy " + "JavaScript clients", documentation: "README.md" diff --git a/packages/reactive-dict/package.js b/packages/reactive-dict/package.js index 656ae55f39..f97bdbe520 100644 --- a/packages/reactive-dict/package.js +++ b/packages/reactive-dict/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "Reactive dictionary", - version: '1.3.0-beta181.4' + version: '1.3.0-beta181.5' }); Package.onUse(function (api) { diff --git a/packages/session/package.js b/packages/session/package.js index 7bcdca972f..f12b4f70fd 100644 --- a/packages/session/package.js +++ b/packages/session/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "Session variable", - version: '1.2.0-beta181.4' + version: '1.2.0-beta181.5' }); Package.onUse(function (api) { diff --git a/packages/webapp/package.js b/packages/webapp/package.js index cd0295ceaa..e42ac5f9b1 100644 --- a/packages/webapp/package.js +++ b/packages/webapp/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "Serves a Meteor app over HTTP", - version: '1.7.1' + version: '1.7.2-beta181.5' }); Npm.depends({"basic-auth-connect": "1.0.0", diff --git a/scripts/admin/meteor-release-experimental.json b/scripts/admin/meteor-release-experimental.json index a47f712a2a..d1a45260e6 100644 --- a/scripts/admin/meteor-release-experimental.json +++ b/scripts/admin/meteor-release-experimental.json @@ -1,6 +1,6 @@ { "track": "METEOR", - "version": "1.8.1-beta.4", + "version": "1.8.1-beta.5", "recommended": false, "official": false, "description": "Meteor" From 40ac2de412dfe4d3e11ded0738fe88055183c449 Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Wed, 21 Nov 2018 11:34:01 -0500 Subject: [PATCH 0069/1217] Use object ...spread syntax rather than _.extend. --- packages/webapp/webapp_server.js | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/webapp/webapp_server.js b/packages/webapp/webapp_server.js index ccbfb6081f..1037d44aa7 100644 --- a/packages/webapp/webapp_server.js +++ b/packages/webapp/webapp_server.js @@ -798,11 +798,11 @@ function runWebAppServer() { program.manifest, additionalOptions, ); - // we need the runtime config w/ overrides for meteor_runtime_config.js - program.meteorRuntimeConfig = JSON.stringify(_.extend( - _.clone(__meteor_runtime_config__), - additionalOptions.runtimeConfigOverrides || {} - )); + // We need the runtime config with overrides for meteor_runtime_config.js: + program.meteorRuntimeConfig = JSON.stringify({ + ...__meteor_runtime_config__, + ...(additionalOptions.runtimeConfigOverrides || null), + }); program.refreshableAssets = baseData.css.map(file => ({ url: bundledJsCssUrlRewriteHook(file.url), })); From eecc11ea63a97bcc650f11dfd3f7cda122c31f33 Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Fri, 23 Nov 2018 11:48:11 -0500 Subject: [PATCH 0070/1217] Note release date for Meteor 1.8.0.1 in History.md. --- History.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/History.md b/History.md index 95138424ee..66ccbfed23 100644 --- a/History.md +++ b/History.md @@ -8,6 +8,16 @@ N/A ### Changes +## v1.8.0.1, 2018-11-23 + +### Breaking changes +N/A + +### Migration steps +N/A + +### Changes + * The `meteor-babel` npm package has been updated to version 7.1.6, improving source maps for applications with custom `.babelrc` files. From ca2d44204f98cde52ce7ba296cd6f301f217d1b6 Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Fri, 23 Nov 2018 11:50:10 -0500 Subject: [PATCH 0071/1217] Bump package versions for the official 1.8.0.1 release. --- packages/meteor-tool/package.js | 2 +- packages/modern-browsers/package.js | 2 +- packages/session/package.js | 2 +- packages/webapp/package.js | 2 +- scripts/admin/meteor-release-official.json | 5 ++++- 5 files changed, 8 insertions(+), 5 deletions(-) diff --git a/packages/meteor-tool/package.js b/packages/meteor-tool/package.js index f5367b5580..296c189ffd 100644 --- a/packages/meteor-tool/package.js +++ b/packages/meteor-tool/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "The Meteor command-line tool", - version: '1.8.0-1-rc.4' + version: '1.8.0_1' }); Package.includeTool(); diff --git a/packages/modern-browsers/package.js b/packages/modern-browsers/package.js index 8564f9534a..002b8c14a8 100644 --- a/packages/modern-browsers/package.js +++ b/packages/modern-browsers/package.js @@ -1,6 +1,6 @@ Package.describe({ name: "modern-browsers", - version: "0.1.3-rc1801.4", + version: "0.1.3", summary: "API for defining the boundary between modern and legacy " + "JavaScript clients", documentation: "README.md" diff --git a/packages/session/package.js b/packages/session/package.js index 0aea76c075..5515510f25 100644 --- a/packages/session/package.js +++ b/packages/session/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "Session variable", - version: '1.2.0-rc1801.4' + version: '1.2.0' }); Package.onUse(function (api) { diff --git a/packages/webapp/package.js b/packages/webapp/package.js index 85e8028af5..cd0295ceaa 100644 --- a/packages/webapp/package.js +++ b/packages/webapp/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "Serves a Meteor app over HTTP", - version: '1.7.1-rc1801.4' + version: '1.7.1' }); Npm.depends({"basic-auth-connect": "1.0.0", diff --git a/scripts/admin/meteor-release-official.json b/scripts/admin/meteor-release-official.json index f683bf5f88..6e8dbb81cf 100644 --- a/scripts/admin/meteor-release-official.json +++ b/scripts/admin/meteor-release-official.json @@ -1,7 +1,10 @@ { "track": "METEOR", - "version": "1.8", + "version": "1.8.0.1", "recommended": false, "official": true, + "patchFrom": [ + "1.8" + ], "description": "The Official Meteor Distribution" } From f8786bcfdb241a93b320aaa7fb05d7cd81cd69c5 Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Fri, 23 Nov 2018 13:00:35 -0500 Subject: [PATCH 0072/1217] Bump $BUNDLE_VERSION to 8.13.0.1 before rebuilding dev bundle. --- meteor | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meteor b/meteor index c13aa7f5f5..604b9d295e 100755 --- a/meteor +++ b/meteor @@ -1,6 +1,6 @@ #!/usr/bin/env bash -BUNDLE_VERSION=8.13.0.0 +BUNDLE_VERSION=8.13.0.1 # OS Check. Put here because here is where we download the precompiled # bundles that are arch specific. From 2d06bf7d547a698730e4c5200118339cc8467254 Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Fri, 23 Nov 2018 13:14:56 -0500 Subject: [PATCH 0073/1217] Bump package versions for 1.8.1-beta.6 release. --- packages/autoupdate/package.js | 2 +- packages/ddp-server/package.js | 2 +- packages/meteor-tool/package.js | 2 +- packages/modern-browsers/package.js | 2 +- packages/reactive-dict/package.js | 2 +- packages/session/package.js | 2 +- packages/webapp/package.js | 2 +- scripts/admin/meteor-release-experimental.json | 2 +- 8 files changed, 8 insertions(+), 8 deletions(-) diff --git a/packages/autoupdate/package.js b/packages/autoupdate/package.js index 75b53498dc..20fa521168 100644 --- a/packages/autoupdate/package.js +++ b/packages/autoupdate/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "Update the client when new client code is available", - version: '1.6.0-beta181.5' + version: '1.6.0-beta181.6' }); Package.onUse(function (api) { diff --git a/packages/ddp-server/package.js b/packages/ddp-server/package.js index 40211b78aa..0ceb6b89f7 100644 --- a/packages/ddp-server/package.js +++ b/packages/ddp-server/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "Meteor's latency-compensated distributed data server", - version: '2.3.0-beta181.5', + version: '2.3.0-beta181.6', documentation: null }); diff --git a/packages/meteor-tool/package.js b/packages/meteor-tool/package.js index c832e6e7b0..514d9f811b 100644 --- a/packages/meteor-tool/package.js +++ b/packages/meteor-tool/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "The Meteor command-line tool", - version: '1.8.1-beta.5' + version: '1.8.1-beta.6' }); Package.includeTool(); diff --git a/packages/modern-browsers/package.js b/packages/modern-browsers/package.js index 510fbb2db7..a1e6175e24 100644 --- a/packages/modern-browsers/package.js +++ b/packages/modern-browsers/package.js @@ -1,6 +1,6 @@ Package.describe({ name: "modern-browsers", - version: "0.1.4-beta181.5", + version: "0.1.4-beta181.6", summary: "API for defining the boundary between modern and legacy " + "JavaScript clients", documentation: "README.md" diff --git a/packages/reactive-dict/package.js b/packages/reactive-dict/package.js index f97bdbe520..5f6c6ba337 100644 --- a/packages/reactive-dict/package.js +++ b/packages/reactive-dict/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "Reactive dictionary", - version: '1.3.0-beta181.5' + version: '1.3.0-beta181.6' }); Package.onUse(function (api) { diff --git a/packages/session/package.js b/packages/session/package.js index f12b4f70fd..2818a9b24e 100644 --- a/packages/session/package.js +++ b/packages/session/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "Session variable", - version: '1.2.0-beta181.5' + version: '1.2.0-beta181.6' }); Package.onUse(function (api) { diff --git a/packages/webapp/package.js b/packages/webapp/package.js index e42ac5f9b1..66327cca2d 100644 --- a/packages/webapp/package.js +++ b/packages/webapp/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "Serves a Meteor app over HTTP", - version: '1.7.2-beta181.5' + version: '1.7.2-beta181.6' }); Npm.depends({"basic-auth-connect": "1.0.0", diff --git a/scripts/admin/meteor-release-experimental.json b/scripts/admin/meteor-release-experimental.json index d1a45260e6..4602ef67b0 100644 --- a/scripts/admin/meteor-release-experimental.json +++ b/scripts/admin/meteor-release-experimental.json @@ -1,6 +1,6 @@ { "track": "METEOR", - "version": "1.8.1-beta.5", + "version": "1.8.1-beta.6", "recommended": false, "official": false, "description": "Meteor" From fc02c2592cc8939bfc512d09a17ef61d68eabbf7 Mon Sep 17 00:00:00 2001 From: idmadj Date: Fri, 23 Nov 2018 13:19:50 -0500 Subject: [PATCH 0074/1217] Avoid object shorthand syntax in oauth package. (#10349) Fixes #10347. --- packages/oauth/end_of_popup_response.js | 4 ++-- packages/oauth/package.js | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/oauth/end_of_popup_response.js b/packages/oauth/end_of_popup_response.js index fd6a1ae20b..ed554160db 100644 --- a/packages/oauth/end_of_popup_response.js +++ b/packages/oauth/end_of_popup_response.js @@ -9,8 +9,8 @@ if (config.isCordova) { var credentialString = JSON.stringify({ - credentialToken, - credentialSecret, + credentialToken: credentialToken, + credentialSecret: credentialSecret }); window.location.hash = credentialString; diff --git a/packages/oauth/package.js b/packages/oauth/package.js index 524b0aeed9..841f327a07 100644 --- a/packages/oauth/package.js +++ b/packages/oauth/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "Common code for OAuth-based services", - version: "1.2.6" + version: "1.2.7" }); Package.onUse(api => { From 2a37f61066f97fefdc508d50f0f6cd3b4ab2972b Mon Sep 17 00:00:00 2001 From: Kevin Newman Date: Fri, 23 Nov 2018 10:21:09 -0800 Subject: [PATCH 0075/1217] Use setTimeout in prefetchInChunks to avoid blocking UI (#10354) Addresses #10350. --- packages/dynamic-import/dynamic-versions.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/dynamic-import/dynamic-versions.js b/packages/dynamic-import/dynamic-versions.js index 41b749a2f7..93494a9a7f 100644 --- a/packages/dynamic-import/dynamic-versions.js +++ b/packages/dynamic-import/dynamic-versions.js @@ -69,7 +69,9 @@ function precacheOnLoad(event) { return module.prefetch(id); })).then(function () { if (modules.length > 0) { - prefetchInChunks(modules, amount); + setTimeout(function () { + prefetchInChunks(modules, amount); + }, 0); } }); } From 4aad077a9fa6bf414d723e8994c18c27494aeb1b Mon Sep 17 00:00:00 2001 From: Hugh Willson Date: Fri, 23 Nov 2018 14:04:49 -0500 Subject: [PATCH 0076/1217] Remove Blaze dependencies from static-html (#10267) These changes create a new copy of the static-html and caching-html-compiler packages in core, as well as a new package called html-scanner, to house the html-scanner.js functionality from the templating-tools package. With these changes in place, we're able to remove all Blaze dependencies from static-html, which benefits React based Meteor apps. We don't need the extra `CompileError` class, and using it was throwing off `caching-html-compiler` error handling. Errors with messages and line numbers weren't being interpreted / formatted properly. --- History.md | 22 +- packages/caching-html-compiler/README.md | 49 +++++ .../caching-html-compiler.js | 147 ++++++++++++++ packages/caching-html-compiler/package.js | 19 ++ packages/html-scanner/README.md | 54 +++++ packages/html-scanner/html-scanner-tests.js | 191 ++++++++++++++++++ packages/html-scanner/html-scanner.js | 172 ++++++++++++++++ packages/html-scanner/package.js | 20 ++ packages/static-html/README.md | 14 ++ packages/static-html/package.js | 25 +++ packages/static-html/static-html.js | 100 +++++++++ 11 files changed, 804 insertions(+), 9 deletions(-) create mode 100644 packages/caching-html-compiler/README.md create mode 100644 packages/caching-html-compiler/caching-html-compiler.js create mode 100644 packages/caching-html-compiler/package.js create mode 100644 packages/html-scanner/README.md create mode 100644 packages/html-scanner/html-scanner-tests.js create mode 100644 packages/html-scanner/html-scanner.js create mode 100644 packages/html-scanner/package.js create mode 100644 packages/static-html/README.md create mode 100644 packages/static-html/package.js create mode 100644 packages/static-html/static-html.js diff --git a/History.md b/History.md index 66ccbfed23..b3f61a53e9 100644 --- a/History.md +++ b/History.md @@ -3,11 +3,15 @@ ### Breaking changes N/A -### Migration steps +### Migration Steps N/A ### Changes +* The `static-html` package is now part of the Meteor core, and no longer has + any dependencies on Blaze templating tools. + [PR #10267](https://github.com/meteor/meteor/pull/10267) + ## v1.8.0.1, 2018-11-23 ### Breaking changes @@ -419,7 +423,7 @@ N/A ### Migration Steps -* Update `@babel/runtime` (as well as other Babel-related packages) and +* Update `@babel/runtime` (as well as other Babel-related packages) and `meteor-node-stubs` to their latest versions: ```sh meteor npm install @babel/runtime@latest meteor-node-stubs@latest @@ -804,7 +808,7 @@ N/A N/A ### Migration Steps -* Update `@babel/runtime` npm package and any custom Babel plugin enabled in +* Update `@babel/runtime` npm package and any custom Babel plugin enabled in `.babelrc` ```sh meteor npm install @babel/runtime@latest @@ -839,7 +843,7 @@ N/A values are not first converted to `null`, when inserted/updated. `undefined` values are now removed from all Mongo queries and insert/update documents. - This is a potentially breaking change if you are upgrading an existing app + This is a potentially breaking change if you are upgrading an existing app from an earlier version of Meteor. For example: @@ -849,11 +853,11 @@ N/A userId: currentUser._id // undefined }); ``` - Assuming there are no documents in the `privateUserData` collection with - `userId: null`, in Meteor versions prior to 1.6.1 this query will return - zero documents. From Meteor 1.6.1 onwards, this query will now return - _every_ document in the collection. It is highly recommend you review all - your existing queries to ensure that any potential usage of `undefined` in + Assuming there are no documents in the `privateUserData` collection with + `userId: null`, in Meteor versions prior to 1.6.1 this query will return + zero documents. From Meteor 1.6.1 onwards, this query will now return + _every_ document in the collection. It is highly recommend you review all + your existing queries to ensure that any potential usage of `undefined` in query objects won't lead to problems. ### Migration Steps diff --git a/packages/caching-html-compiler/README.md b/packages/caching-html-compiler/README.md new file mode 100644 index 0000000000..b1d461a55a --- /dev/null +++ b/packages/caching-html-compiler/README.md @@ -0,0 +1,49 @@ +# caching-html-compiler + +Provides a pluggable class used to compile HTML-style templates in Meteor build +plugins. This abstracts out a lot of the functionality you would need to +implement the following plugins: + +1. `templating` +2. `static-html` +3. `simple:markdown-templating` + +It provides automatic caching and handles communicating with the build plugin +APIs. The actual functions that convert HTML into compiled form are passed in +as arguments into the constructor, allowing those functions to be unit tested +separately from the caching and file system functionality. + +------- + +### new CachingHtmlCompiler(name, tagScannerFunc, tagHandlerFunc) + +Constructs a new CachingHtmlCompiler that can be passed into +`Plugin.registerCompiler`. + +#### Arguments + +1. `name` The name of the compiler, used when printing errors. Should probably + be the same as the name of the build plugin and package it is used in. +2. `tagScannerFunc` A function that takes a string representing a template + file as input, and returns an array of Tag objects. See the README for + `templating-tools` for more information about the Tag object. +3. `tagHandlerFunc` A function that takes an array of Tag objects (the output + of the previous argument) and returns an object with `js`, `body`, `head`, + and `bodyAttr` properties, which will be added to the app through the build + plugin API. + +#### Example + +Here is some example code from the `templating` package: + +```js +Plugin.registerCompiler({ + extensions: ['html'], + archMatching: 'web', + isTemplate: true +}, () => new CachingHtmlCompiler( + "templating", + TemplatingTools.scanHtmlForTags, + TemplatingTools.compileTagsWithSpacebars +)); +``` diff --git a/packages/caching-html-compiler/caching-html-compiler.js b/packages/caching-html-compiler/caching-html-compiler.js new file mode 100644 index 0000000000..68a415b285 --- /dev/null +++ b/packages/caching-html-compiler/caching-html-compiler.js @@ -0,0 +1,147 @@ +const path = Plugin.path; + +// The CompileResult type for this CachingCompiler is the return value of +// htmlScanner.scan: a {js, head, body, bodyAttrs} object. +CachingHtmlCompiler = class CachingHtmlCompiler extends CachingCompiler { + /** + * Constructor for CachingHtmlCompiler + * @param {String} name The name of the compiler, printed in errors - + * should probably always be the same as the name of the build + * plugin/package + * @param {Function} tagScannerFunc Transforms a template file (commonly + * .html) into an array of Tags + * @param {Function} tagHandlerFunc Transforms an array of tags into a + * results object with js, body, head, and bodyAttrs properties + */ + constructor(name, tagScannerFunc, tagHandlerFunc) { + super({ + compilerName: name, + defaultCacheSize: 1024*1024*10, + }); + + this._bodyAttrInfo = null; + + this.tagScannerFunc = tagScannerFunc; + this.tagHandlerFunc = tagHandlerFunc; + } + + // Implements method from CachingCompilerBase + compileResultSize(compileResult) { + function lengthOrZero(field) { + return field ? field.length : 0; + } + return lengthOrZero(compileResult.head) + lengthOrZero(compileResult.body) + + lengthOrZero(compileResult.js); + } + + // Overrides method from CachingCompiler + processFilesForTarget(inputFiles) { + this._bodyAttrInfo = {}; + super.processFilesForTarget(inputFiles); + } + + // Implements method from CachingCompilerBase + getCacheKey(inputFile) { + // Note: the path is only used for errors, so it doesn't have to be part + // of the cache key. + return inputFile.getSourceHash(); + } + + // Implements method from CachingCompiler + compileOneFile(inputFile) { + const contents = inputFile.getContentsAsString(); + const inputPath = inputFile.getPathInPackage(); + + // Since we can't control node_modules based HTML content, we'll skip + // over it here to avoid trying to handle HTML files that don't + // fit within Meteor's HTML file handling rules (e.g. Meteor doesn't + // allow files that have a DOCTYPE specified, since it adds its own). + if (!inputPath.startsWith('node_modules')) { + try { + const tags = this.tagScannerFunc({ + sourceName: inputPath, + contents: contents, + tagNames: ["body", "head", "template"] + }); + return this.tagHandlerFunc(tags); + } catch (e) { + if (e.message && e.line) { + inputFile.error({ + message: e.message, + line: e.line + }); + return null; + } else { + throw e; + } + } + } + } + + // Implements method from CachingCompilerBase + addCompileResult(inputFile, compileResult) { + let allJavaScript = ""; + + if (compileResult.head) { + inputFile.addHtml({ section: "head", data: compileResult.head }); + } + + if (compileResult.body) { + inputFile.addHtml({ section: "body", data: compileResult.body }); + } + + if (compileResult.js) { + allJavaScript += compileResult.js; + } + + if (Object.keys(compileResult.bodyAttrs).length !== 0) { + Object.keys(compileResult.bodyAttrs).forEach((attr) => { + const value = compileResult.bodyAttrs[attr]; + if (this._bodyAttrInfo.hasOwnProperty(attr) && + this._bodyAttrInfo[attr].value !== value) { + // two conflicting attributes on tags in two different template + // files + inputFile.error({ + message: + ` declarations have conflicting values for the '${ attr }' ` + + `attribute in the following files: ` + + this._bodyAttrInfo[attr].inputFile.getPathInPackage() + + `, ${ inputFile.getPathInPackage() }` + }); + } else { + this._bodyAttrInfo[attr] = {inputFile, value}; + } + }); + + // Add JavaScript code to set attributes on body + allJavaScript += +`Meteor.startup(function() { + var attrs = ${JSON.stringify(compileResult.bodyAttrs)}; + for (var prop in attrs) { + document.body.setAttribute(prop, attrs[prop]); + } +}); +`; + } + + + if (allJavaScript) { + const filePath = inputFile.getPathInPackage(); + // XXX this path manipulation may be unnecessarily complex + let pathPart = path.dirname(filePath); + if (pathPart === '.') + pathPart = ''; + if (pathPart.length && pathPart !== path.sep) + pathPart = pathPart + path.sep; + const ext = path.extname(filePath); + const basename = path.basename(filePath, ext); + + // XXX generate a source map + + inputFile.addJavaScript({ + path: path.join(pathPart, "template." + basename + ".js"), + data: allJavaScript + }); + } + } +} diff --git a/packages/caching-html-compiler/package.js b/packages/caching-html-compiler/package.js new file mode 100644 index 0000000000..703ce6382b --- /dev/null +++ b/packages/caching-html-compiler/package.js @@ -0,0 +1,19 @@ +Package.describe({ + name: 'caching-html-compiler', + summary: "Pluggable class for compiling HTML into templates", + version: '1.1.3', + git: 'https://github.com/meteor/meteor.git' +}); + +Package.onUse(function (api) { + api.use([ + 'caching-compiler', + 'ecmascript' + ]); + + api.export('CachingHtmlCompiler', 'server'); + + api.addFiles([ + 'caching-html-compiler.js' + ], 'server'); +}); diff --git a/packages/html-scanner/README.md b/packages/html-scanner/README.md new file mode 100644 index 0000000000..81a238cbdf --- /dev/null +++ b/packages/html-scanner/README.md @@ -0,0 +1,54 @@ +# html-scanner + +## `scanHtmlForTags(options)` + +Scan an HTML file for top-level tags as specified by `options.tagNames`, and +return an array of `Tag` objects. + +### Options + +1. `sourceName` the name of the input file, used when throwing errors. +2. `contents` the contents of the input file, these are parsed to find the + top-level tags. +3. `tagNames` the top-level tags to look for in the HTML. + +### Example + +```js +const tags = scanHtmlForTags({ + sourceName: inputPath, + contents: contents, + tagNames: ["body", "head", "template"] +}); +``` + +### Tag object + +```js +{ + // Name of the tag - "body", "head", "template", etc + tagName: String, + + // Attributes on the tag + attribs: { [attrName]: String }, + + // Contents of the tag + contents: String, + + // Starting index of the opening tag in the source file + // (used to throw informative errors) + tagStartIndex: Number, + + // Starting index of the contents of the tag in the source file + // (used to throw informative errors) + contentsStartIndex: Number, + + // The contents of the entire source file, should be used only to + // throw informative errors (for example, this can be used to + // determine the line number for an error) + fileContents: String, + + // The file name of the initial source file, used to throw errors + sourceName: String +}; +``` diff --git a/packages/html-scanner/html-scanner-tests.js b/packages/html-scanner/html-scanner-tests.js new file mode 100644 index 0000000000..e30add08d0 --- /dev/null +++ b/packages/html-scanner/html-scanner-tests.js @@ -0,0 +1,191 @@ +import { scanHtmlForTags, CompileError } from './html-scanner.js'; + +Tinytest.add("html-scanner - html scanner", function (test) { + var testInString = function(actualStr, wantedContents) { + if (actualStr.indexOf(wantedContents) >= 0) + test.ok(); + else + test.fail("Expected "+JSON.stringify(wantedContents)+ + " in "+JSON.stringify(actualStr)); + }; + + var checkError = function(f, msgText, lineNum) { + try { + f(); + } catch (e) { + if (!e.line) { + throw e; + } + + if (e.line === lineNum) + test.ok(); + else + test.fail("Error should have been on line " + lineNum + ", not " + + e.line); + testInString(e.message, msgText); + return; + } + test.fail("Parse error didn't throw exception"); + }; + + // returns the appropriate code to put content in the body, + // where content is something simple like the string "Hello" + // (passed in as a source string including the quotes). + var simpleBody = function (content) { + return "\nTemplate.body.addContent((function() {\n var view = this;\n return " + content + ";\n}));\nMeteor.startup(Template.body.renderToDocument);\n"; + }; + + // arguments are quoted strings like '"hello"' + var simpleTemplate = function (templateName, content) { + // '"hello"' into '"Template.hello"' + var viewName = templateName.slice(0, 1) + 'Template.' + templateName.slice(1); + + return '\nTemplate.__checkName(' + templateName + ');\nTemplate[' + templateName + + '] = new Template(' + viewName + + ', (function() {\n var view = this;\n return ' + content + ';\n}));\n'; + }; + + var checkResults = function(results, expectJs, expectHead, expectBodyAttrs) { + test.equal(results.body, ''); + test.equal(results.js, expectJs || ''); + test.equal(results.head, expectHead || ''); + test.equal(results.bodyAttrs, expectBodyAttrs || {}); + }; + + function scanForTest(contents) { + const tags = scanHtmlForTags({ + sourceName: "", + contents: contents, + tagNames: ["body", "head", "template"] + }); + + return TemplatingTools.compileTagsWithSpacebars(tags); + } + + checkError(function() { + return scanForTest("asdf"); + }, "Expected one of: , ,