From f16e76003caa3e0a6fd8e282a75e23a307392d17 Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Sat, 6 Oct 2018 16:03:05 -0400 Subject: [PATCH 001/134] 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 002/134] 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 003/134] 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 004/134] 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 005/134] 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 675b5a15e005695d2a133bf031c2b70dd225a216 Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Wed, 31 Oct 2018 13:44:50 -0400 Subject: [PATCH 006/134] 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 007/134] 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 008/134] 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 009/134] 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 010/134] 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 011/134] 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 012/134] 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 013/134] 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 014/134] 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 015/134] 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 016/134] 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 017/134] 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 3a881a444f994da4ab391541cddbdc4b134d2dc3 Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Sat, 3 Nov 2018 15:44:17 -0400 Subject: [PATCH 018/134] 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 903bdea790a9924692728fc8543c5965fb62a87c Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Sat, 3 Nov 2018 16:22:43 -0400 Subject: [PATCH 019/134] 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 1b1ab41435d9d621c7e25fdc6c9d04389d2dbfc3 Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Mon, 12 Nov 2018 20:52:55 -0500 Subject: [PATCH 020/134] 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 021/134] 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 4a38f4f990fedf51195698f73a7153f86399adac Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Tue, 20 Nov 2018 17:53:12 -0500 Subject: [PATCH 022/134] 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 023/134] 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 024/134] 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 f8786bcfdb241a93b320aaa7fb05d7cd81cd69c5 Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Fri, 23 Nov 2018 13:00:35 -0500 Subject: [PATCH 025/134] 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 026/134] 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 7e5656cd3c858be0a9a6c8715b9e6f293399a643 Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Wed, 28 Nov 2018 11:21:30 -0500 Subject: [PATCH 027/134] Update Node to version 8.14.0. Release blog post: https://nodejs.org/en/blog/release/v8.14.0/ Security disclosures: https://nodejs.org/en/blog/vulnerability/november-2018-security-releases/ --- History.md | 18 +++++++++++------- scripts/build-dev-bundle-common.sh | 2 +- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/History.md b/History.md index adc688bc50..ad7d49867b 100644 --- a/History.md +++ b/History.md @@ -11,13 +11,17 @@ N/A ### Changes * 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) + [8.14.0](https://nodejs.org/en/blog/release/v8.14.0/), an important + [security release](https://nodejs.org/en/blog/vulnerability/november-2018-security-releases/), + which includes the changes from two other minor releases, + [8.12.0](https://nodejs.org/en/blog/release/v8.12.0/) and + [8.13.0](https://nodejs.org/en/blog/release/v8.13.0/). + + > Note: 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) ## v1.8.0.1, 2018-11-23 diff --git a/scripts/build-dev-bundle-common.sh b/scripts/build-dev-bundle-common.sh index 22cc36376c..f56c523843 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.13.0 +NODE_VERSION=8.14.0 MONGO_VERSION_64BIT=4.0.2 MONGO_VERSION_32BIT=3.2.19 NPM_VERSION=6.4.1 From 29db9cbd44a6e3f42c435e4d6dedbf56f3056871 Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Wed, 28 Nov 2018 11:23:58 -0500 Subject: [PATCH 028/134] Update to latest Mongo server and driver patch versions. --- History.md | 4 ++++ .../npm-mongo/.npm/package/npm-shrinkwrap.json | 18 +++++++++--------- packages/npm-mongo/package.js | 4 ++-- scripts/build-dev-bundle-common.sh | 4 ++-- 4 files changed, 17 insertions(+), 13 deletions(-) diff --git a/History.md b/History.md index ad7d49867b..07b53e678e 100644 --- a/History.md +++ b/History.md @@ -23,6 +23,10 @@ N/A Meteor should be considered experimental until those problems have been fixed. [Issue #10216](https://github.com/meteor/meteor/issues/10216) +* Mongo has been upgraded to version 4.0.4 for 64-bit systems (was 4.0.2), + and 3.2.21 for 32-bit systems (was 3.2.19). The `mongodb` npm package + used by `npm-mongo` has been updated to version 3.1.10 (was 3.1.6). + ## v1.8.0.1, 2018-11-23 ### Breaking changes diff --git a/packages/npm-mongo/.npm/package/npm-shrinkwrap.json b/packages/npm-mongo/.npm/package/npm-shrinkwrap.json index 9b217ff09c..0763a9aafc 100644 --- a/packages/npm-mongo/.npm/package/npm-shrinkwrap.json +++ b/packages/npm-mongo/.npm/package/npm-shrinkwrap.json @@ -12,14 +12,14 @@ "integrity": "sha512-Mf9OHV/Y7h6YWDxTzX/b4ZZ4oh9NSXblQL8dtPCOomOtZciEHxePR78+uHFLLlsk01A6jVHhHsQZZ/WcIPpnzg==" }, "mongodb": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-3.1.6.tgz", - "integrity": "sha512-E5QJuXQoMlT7KyCYqNNMfAkhfQD79AT4F8Xd+6x37OX+8BL17GyXyWvfm6wuyx4wnzCCPoCSLeMeUN2S7dU9yw==" + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-3.1.10.tgz", + "integrity": "sha512-Uml42GeFxhTGQVml1XQ4cD0o/rp7J2ROy0fdYUcVitoE7vFqEhKH4TYVqRDpQr/bXtCJVxJdNQC1ntRxNREkPQ==" }, "mongodb-core": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/mongodb-core/-/mongodb-core-3.1.5.tgz", - "integrity": "sha512-emT/tM4ZBinqd6RZok+EzDdtN4LjYJIckv71qQVOEFmvXgT5cperZegVmTgox/1cx4XQu6LJ5ZuIwipP/eKdQg==" + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/mongodb-core/-/mongodb-core-3.1.9.tgz", + "integrity": "sha512-MJpciDABXMchrZphh3vMcqu8hkNf/Mi+Gk6btOimVg1XMxLXh87j6FAvRm+KmwD1A9fpu3qRQYcbQe4egj23og==" }, "require_optional": { "version": "1.0.1", @@ -42,9 +42,9 @@ "integrity": "sha512-4cDsYuAjXssUSjxHKRe4DTZC0agDwsCqcMqtJAQPzC74nJ7LfAJflAtC1Zed5hMzEQKj82d3tuzqdGNRsLJ4Gw==" }, "semver": { - "version": "5.5.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.1.tgz", - "integrity": "sha512-PqpAxfrEhlSUWge8dwIp4tZnQ25DIOthpiaHNIthsjEFQD6EvqUKUDM7L8O2rShkFccYo1VjJR0coWfNkCubRw==" + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.6.0.tgz", + "integrity": "sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg==" }, "sparse-bitfield": { "version": "3.0.3", diff --git a/packages/npm-mongo/package.js b/packages/npm-mongo/package.js index ed606764ca..c7aec73b08 100644 --- a/packages/npm-mongo/package.js +++ b/packages/npm-mongo/package.js @@ -3,12 +3,12 @@ Package.describe({ summary: "Wrapper around the mongo npm package", - version: "3.1.1", + version: "3.1.2", documentation: null }); Npm.depends({ - mongodb: "3.1.6" + mongodb: "3.1.10" }); Package.onUse(function (api) { diff --git a/scripts/build-dev-bundle-common.sh b/scripts/build-dev-bundle-common.sh index f56c523843..2442719d1e 100644 --- a/scripts/build-dev-bundle-common.sh +++ b/scripts/build-dev-bundle-common.sh @@ -6,8 +6,8 @@ set -u UNAME=$(uname) ARCH=$(uname -m) NODE_VERSION=8.14.0 -MONGO_VERSION_64BIT=4.0.2 -MONGO_VERSION_32BIT=3.2.19 +MONGO_VERSION_64BIT=4.0.4 +MONGO_VERSION_32BIT=3.2.21 NPM_VERSION=6.4.1 # If we built Node from source on Jenkins, this is the build number. From 5ff13672724f07cae9b4b203afe1be72a32515c4 Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Wed, 28 Nov 2018 11:35:53 -0500 Subject: [PATCH 029/134] Bump $BUNDLE_VERSION to 8.14.0.0 before rebuilding dev bundle. --- meteor | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meteor b/meteor index 604b9d295e..aec1f64398 100755 --- a/meteor +++ b/meteor @@ -1,6 +1,6 @@ #!/usr/bin/env bash -BUNDLE_VERSION=8.13.0.1 +BUNDLE_VERSION=8.14.0.0 # OS Check. Put here because here is where we download the precompiled # bundles that are arch specific. From 1a721df3e1d8d0dbdd1bf0855eb15a2d009b9e62 Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Wed, 28 Nov 2018 11:57:00 -0500 Subject: [PATCH 030/134] Bump package versions for 1.8.1-beta.7 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/npm-mongo/package.js | 2 +- packages/reactive-dict/package.js | 2 +- packages/session/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 20fa521168..1a493f9622 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.6' + version: '1.6.0-beta181.7' }); Package.onUse(function (api) { diff --git a/packages/ddp-server/package.js b/packages/ddp-server/package.js index 0ceb6b89f7..59f12da635 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.6', + version: '2.3.0-beta181.7', documentation: null }); diff --git a/packages/meteor-tool/package.js b/packages/meteor-tool/package.js index 514d9f811b..c9ce175504 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.6' + version: '1.8.1-beta.7' }); Package.includeTool(); diff --git a/packages/modern-browsers/package.js b/packages/modern-browsers/package.js index a1e6175e24..f31fc007a2 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.6", + version: "0.1.4-beta181.7", summary: "API for defining the boundary between modern and legacy " + "JavaScript clients", documentation: "README.md" diff --git a/packages/npm-mongo/package.js b/packages/npm-mongo/package.js index c7aec73b08..bed91a5216 100644 --- a/packages/npm-mongo/package.js +++ b/packages/npm-mongo/package.js @@ -3,7 +3,7 @@ Package.describe({ summary: "Wrapper around the mongo npm package", - version: "3.1.2", + version: "3.1.2-beta181.7", documentation: null }); diff --git a/packages/reactive-dict/package.js b/packages/reactive-dict/package.js index 5f6c6ba337..631dbb1139 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.6' + version: '1.3.0-beta181.7' }); Package.onUse(function (api) { diff --git a/packages/session/package.js b/packages/session/package.js index 2818a9b24e..6b7672f560 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.6' + version: '1.2.0-beta181.7' }); Package.onUse(function (api) { diff --git a/scripts/admin/meteor-release-experimental.json b/scripts/admin/meteor-release-experimental.json index 4602ef67b0..45f2e406fd 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.6", + "version": "1.8.1-beta.7", "recommended": false, "official": false, "description": "Meteor" From b3593f2edd2a3912bc881fd08a5d8381b3dd001d Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Thu, 6 Dec 2018 12:30:49 -0500 Subject: [PATCH 031/134] Bump $BUNDLE_VERSION to 8.14.0.1 before rebuilding dev bundle. --- meteor | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meteor b/meteor index aec1f64398..acb30e0e96 100755 --- a/meteor +++ b/meteor @@ -1,6 +1,6 @@ #!/usr/bin/env bash -BUNDLE_VERSION=8.14.0.0 +BUNDLE_VERSION=8.14.0.1 # OS Check. Put here because here is where we download the precompiled # bundles that are arch specific. From 502d84e7e9b3ccc44e056a8d0b5ca1553982123f Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Thu, 6 Dec 2018 12:42:45 -0500 Subject: [PATCH 032/134] Bump package versions for 1.8.1-beta.8 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/npm-mongo/package.js | 2 +- packages/reactive-dict/package.js | 2 +- packages/session/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 1a493f9622..ccd8b78189 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.7' + version: '1.6.0-beta181.8' }); Package.onUse(function (api) { diff --git a/packages/ddp-server/package.js b/packages/ddp-server/package.js index 59f12da635..f8b136cf65 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.7', + version: '2.3.0-beta181.8', documentation: null }); diff --git a/packages/meteor-tool/package.js b/packages/meteor-tool/package.js index c9ce175504..726464f617 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.7' + version: '1.8.1-beta.8' }); Package.includeTool(); diff --git a/packages/modern-browsers/package.js b/packages/modern-browsers/package.js index f31fc007a2..b67f29b9fb 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.7", + version: "0.1.4-beta181.8", summary: "API for defining the boundary between modern and legacy " + "JavaScript clients", documentation: "README.md" diff --git a/packages/npm-mongo/package.js b/packages/npm-mongo/package.js index bed91a5216..edaaae68b5 100644 --- a/packages/npm-mongo/package.js +++ b/packages/npm-mongo/package.js @@ -3,7 +3,7 @@ Package.describe({ summary: "Wrapper around the mongo npm package", - version: "3.1.2-beta181.7", + version: "3.1.2-beta181.8", documentation: null }); diff --git a/packages/reactive-dict/package.js b/packages/reactive-dict/package.js index 631dbb1139..aa1e68f75b 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.7' + version: '1.3.0-beta181.8' }); Package.onUse(function (api) { diff --git a/packages/session/package.js b/packages/session/package.js index 6b7672f560..d136b42675 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.7' + version: '1.2.0-beta181.8' }); Package.onUse(function (api) { diff --git a/scripts/admin/meteor-release-experimental.json b/scripts/admin/meteor-release-experimental.json index 45f2e406fd..15bbfd6209 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.7", + "version": "1.8.1-beta.8", "recommended": false, "official": false, "description": "Meteor" From ff72595fd821cdf4e158b6c07b7fa750554619ae Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Wed, 12 Dec 2018 12:56:44 -0500 Subject: [PATCH 033/134] Move the less package into packages/non-core. This will enable us to update the less npm package in future versions of Meteor without worrying about minor version constraints imposed by the Meteor release. --- packages/{ => non-core}/less/.gitignore | 0 .../{ => non-core}/less/.npm/plugin/compileLessBatch/.gitignore | 0 packages/{ => non-core}/less/.npm/plugin/compileLessBatch/README | 0 .../less/.npm/plugin/compileLessBatch/npm-shrinkwrap.json | 0 packages/{ => non-core}/less/README.md | 0 packages/{ => non-core}/less/less_tests.js | 0 packages/{ => non-core}/less/package.js | 0 packages/{ => non-core}/less/plugin/compile-less.js | 0 packages/{ => non-core}/less/tests/dir/in-dir.import.less | 0 packages/{ => non-core}/less/tests/dir/in-dir2.import.less | 0 packages/{ => non-core}/less/tests/dir/root.less | 0 .../{ => non-core}/less/tests/dir/subdir/in-subdir.import.less | 0 packages/{ => non-core}/less/tests/imports/not-included.less | 0 packages/{ => non-core}/less/tests/top.import.less | 0 packages/{ => non-core}/less/tests/top2.less | 0 packages/{ => non-core}/less/tests/top3.import.less | 0 16 files changed, 0 insertions(+), 0 deletions(-) rename packages/{ => non-core}/less/.gitignore (100%) rename packages/{ => non-core}/less/.npm/plugin/compileLessBatch/.gitignore (100%) rename packages/{ => non-core}/less/.npm/plugin/compileLessBatch/README (100%) rename packages/{ => non-core}/less/.npm/plugin/compileLessBatch/npm-shrinkwrap.json (100%) rename packages/{ => non-core}/less/README.md (100%) rename packages/{ => non-core}/less/less_tests.js (100%) rename packages/{ => non-core}/less/package.js (100%) rename packages/{ => non-core}/less/plugin/compile-less.js (100%) rename packages/{ => non-core}/less/tests/dir/in-dir.import.less (100%) rename packages/{ => non-core}/less/tests/dir/in-dir2.import.less (100%) rename packages/{ => non-core}/less/tests/dir/root.less (100%) rename packages/{ => non-core}/less/tests/dir/subdir/in-subdir.import.less (100%) rename packages/{ => non-core}/less/tests/imports/not-included.less (100%) rename packages/{ => non-core}/less/tests/top.import.less (100%) rename packages/{ => non-core}/less/tests/top2.less (100%) rename packages/{ => non-core}/less/tests/top3.import.less (100%) diff --git a/packages/less/.gitignore b/packages/non-core/less/.gitignore similarity index 100% rename from packages/less/.gitignore rename to packages/non-core/less/.gitignore diff --git a/packages/less/.npm/plugin/compileLessBatch/.gitignore b/packages/non-core/less/.npm/plugin/compileLessBatch/.gitignore similarity index 100% rename from packages/less/.npm/plugin/compileLessBatch/.gitignore rename to packages/non-core/less/.npm/plugin/compileLessBatch/.gitignore diff --git a/packages/less/.npm/plugin/compileLessBatch/README b/packages/non-core/less/.npm/plugin/compileLessBatch/README similarity index 100% rename from packages/less/.npm/plugin/compileLessBatch/README rename to packages/non-core/less/.npm/plugin/compileLessBatch/README diff --git a/packages/less/.npm/plugin/compileLessBatch/npm-shrinkwrap.json b/packages/non-core/less/.npm/plugin/compileLessBatch/npm-shrinkwrap.json similarity index 100% rename from packages/less/.npm/plugin/compileLessBatch/npm-shrinkwrap.json rename to packages/non-core/less/.npm/plugin/compileLessBatch/npm-shrinkwrap.json diff --git a/packages/less/README.md b/packages/non-core/less/README.md similarity index 100% rename from packages/less/README.md rename to packages/non-core/less/README.md diff --git a/packages/less/less_tests.js b/packages/non-core/less/less_tests.js similarity index 100% rename from packages/less/less_tests.js rename to packages/non-core/less/less_tests.js diff --git a/packages/less/package.js b/packages/non-core/less/package.js similarity index 100% rename from packages/less/package.js rename to packages/non-core/less/package.js diff --git a/packages/less/plugin/compile-less.js b/packages/non-core/less/plugin/compile-less.js similarity index 100% rename from packages/less/plugin/compile-less.js rename to packages/non-core/less/plugin/compile-less.js diff --git a/packages/less/tests/dir/in-dir.import.less b/packages/non-core/less/tests/dir/in-dir.import.less similarity index 100% rename from packages/less/tests/dir/in-dir.import.less rename to packages/non-core/less/tests/dir/in-dir.import.less diff --git a/packages/less/tests/dir/in-dir2.import.less b/packages/non-core/less/tests/dir/in-dir2.import.less similarity index 100% rename from packages/less/tests/dir/in-dir2.import.less rename to packages/non-core/less/tests/dir/in-dir2.import.less diff --git a/packages/less/tests/dir/root.less b/packages/non-core/less/tests/dir/root.less similarity index 100% rename from packages/less/tests/dir/root.less rename to packages/non-core/less/tests/dir/root.less diff --git a/packages/less/tests/dir/subdir/in-subdir.import.less b/packages/non-core/less/tests/dir/subdir/in-subdir.import.less similarity index 100% rename from packages/less/tests/dir/subdir/in-subdir.import.less rename to packages/non-core/less/tests/dir/subdir/in-subdir.import.less diff --git a/packages/less/tests/imports/not-included.less b/packages/non-core/less/tests/imports/not-included.less similarity index 100% rename from packages/less/tests/imports/not-included.less rename to packages/non-core/less/tests/imports/not-included.less diff --git a/packages/less/tests/top.import.less b/packages/non-core/less/tests/top.import.less similarity index 100% rename from packages/less/tests/top.import.less rename to packages/non-core/less/tests/top.import.less diff --git a/packages/less/tests/top2.less b/packages/non-core/less/tests/top2.less similarity index 100% rename from packages/less/tests/top2.less rename to packages/non-core/less/tests/top2.less diff --git a/packages/less/tests/top3.import.less b/packages/non-core/less/tests/top3.import.less similarity index 100% rename from packages/less/tests/top3.import.less rename to packages/non-core/less/tests/top3.import.less From a8f527aa377caf4ed8edf719f3cedaf42cbb9a5b Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Wed, 19 Dec 2018 12:12:52 -0500 Subject: [PATCH 034/134] Update Node to version 8.14.1. Release blog post: https://nodejs.org/en/blog/release/v8.14.1/ --- History.md | 7 ++++--- scripts/build-dev-bundle-common.sh | 2 +- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/History.md b/History.md index 5c97ecc599..28f2fa7a37 100644 --- a/History.md +++ b/History.md @@ -11,10 +11,11 @@ N/A ### Changes * Node has been updated from version 8.11.4 to version + [8.14.1](https://nodejs.org/en/blog/release/v8.14.1/), which includes + the changes from three other minor releases: [8.14.0](https://nodejs.org/en/blog/release/v8.14.0/), an important - [security release](https://nodejs.org/en/blog/vulnerability/november-2018-security-releases/), - which includes the changes from two other minor releases, - [8.12.0](https://nodejs.org/en/blog/release/v8.12.0/) and + [security release](https://nodejs.org/en/blog/vulnerability/november-2018-security-releases/); + [8.12.0](https://nodejs.org/en/blog/release/v8.12.0/); and [8.13.0](https://nodejs.org/en/blog/release/v8.13.0/). > Note: While Node 8.12.0 included changes that may improve the diff --git a/scripts/build-dev-bundle-common.sh b/scripts/build-dev-bundle-common.sh index 2442719d1e..36d261843a 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.14.0 +NODE_VERSION=8.14.1 MONGO_VERSION_64BIT=4.0.4 MONGO_VERSION_32BIT=3.2.21 NPM_VERSION=6.4.1 From 415d1d9e664c37fe6d52f0c8d010c879af9fdafb Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Wed, 19 Dec 2018 12:16:53 -0500 Subject: [PATCH 035/134] Update npm to version 6.5.0. https://github.com/npm/cli/releases/tag/v6.5.0 --- History.md | 5 +++++ scripts/build-dev-bundle-common.sh | 2 +- scripts/dev-bundle-tool-package.js | 2 +- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/History.md b/History.md index 28f2fa7a37..2c5c7766f6 100644 --- a/History.md +++ b/History.md @@ -24,6 +24,11 @@ N/A Meteor should be considered experimental until those problems have been fixed. [Issue #10216](https://github.com/meteor/meteor/issues/10216) +* The `npm` tool has been upgraded to version + [6.5.0](https://github.com/npm/cli/releases/tag/v6.5.0), and our + [fork](https://github.com/meteor/pacote/tree/v8.1.6-meteor) of its + `pacote` dependency remains at version 8.1.6. + * Mongo has been upgraded to version 4.0.4 for 64-bit systems (was 4.0.2), and 3.2.21 for 32-bit systems (was 3.2.19). The `mongodb` npm package used by `npm-mongo` has been updated to version 3.1.10 (was 3.1.6). diff --git a/scripts/build-dev-bundle-common.sh b/scripts/build-dev-bundle-common.sh index 36d261843a..e7291bf933 100644 --- a/scripts/build-dev-bundle-common.sh +++ b/scripts/build-dev-bundle-common.sh @@ -8,7 +8,7 @@ ARCH=$(uname -m) NODE_VERSION=8.14.1 MONGO_VERSION_64BIT=4.0.4 MONGO_VERSION_32BIT=3.2.21 -NPM_VERSION=6.4.1 +NPM_VERSION=6.5.0 # If we built Node from source on Jenkins, this is the build number. NODE_BUILD_NUMBER= diff --git a/scripts/dev-bundle-tool-package.js b/scripts/dev-bundle-tool-package.js index 105272adb0..ac1246a896 100644 --- a/scripts/dev-bundle-tool-package.js +++ b/scripts/dev-bundle-tool-package.js @@ -10,7 +10,7 @@ var packageJson = { dependencies: { // Explicit dependency because we are replacing it with a bundled version // and we want to make sure there are no dependencies on a higher version - npm: "6.4.1", + npm: "6.5.0", pacote: "https://github.com/meteor/pacote/tarball/a3285854a68e4969d6c8abaa74407f7d113b178f", "node-gyp": "3.7.0", "node-pre-gyp": "0.10.3", From 0d34c8d168cf2c111896028914f50865e8916857 Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Wed, 19 Dec 2018 12:18:37 -0500 Subject: [PATCH 036/134] Bump BUNDLE_VERSION to 8.14.1.0 before rebuilding dev bundle. --- meteor | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meteor b/meteor index acb30e0e96..7116fed099 100755 --- a/meteor +++ b/meteor @@ -1,6 +1,6 @@ #!/usr/bin/env bash -BUNDLE_VERSION=8.14.0.1 +BUNDLE_VERSION=8.14.1.0 # OS Check. Put here because here is where we download the precompiled # bundles that are arch specific. From 57a55ac0d68a61d9a47df03f3cf93a10cc4ff414 Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Wed, 19 Dec 2018 14:08:49 -0500 Subject: [PATCH 037/134] Bump package versions for 1.8.1-beta.9 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/npm-mongo/package.js | 2 +- packages/reactive-dict/package.js | 2 +- packages/session/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 ccd8b78189..59cb30c705 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.8' + version: '1.6.0-beta181.9' }); Package.onUse(function (api) { diff --git a/packages/ddp-server/package.js b/packages/ddp-server/package.js index f8b136cf65..f984d675e8 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.8', + version: '2.3.0-beta181.9', documentation: null }); diff --git a/packages/meteor-tool/package.js b/packages/meteor-tool/package.js index 726464f617..6c5b287560 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.8' + version: '1.8.1-beta.9' }); Package.includeTool(); diff --git a/packages/modern-browsers/package.js b/packages/modern-browsers/package.js index b67f29b9fb..f5c2450bd7 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.8", + version: "0.1.4-beta181.9", summary: "API for defining the boundary between modern and legacy " + "JavaScript clients", documentation: "README.md" diff --git a/packages/npm-mongo/package.js b/packages/npm-mongo/package.js index edaaae68b5..b3cd1b6eb2 100644 --- a/packages/npm-mongo/package.js +++ b/packages/npm-mongo/package.js @@ -3,7 +3,7 @@ Package.describe({ summary: "Wrapper around the mongo npm package", - version: "3.1.2-beta181.8", + version: "3.1.2-beta181.9", documentation: null }); diff --git a/packages/reactive-dict/package.js b/packages/reactive-dict/package.js index aa1e68f75b..c3c98a9762 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.8' + version: '1.3.0-beta181.9' }); Package.onUse(function (api) { diff --git a/packages/session/package.js b/packages/session/package.js index d136b42675..e2f6a0990e 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.8' + version: '1.2.0-beta181.9' }); Package.onUse(function (api) { diff --git a/scripts/admin/meteor-release-experimental.json b/scripts/admin/meteor-release-experimental.json index 15bbfd6209..3475631db7 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.8", + "version": "1.8.1-beta.9", "recommended": false, "official": false, "description": "Meteor" From c2ef3776a8b83ea10becc00ea20583554c2190c5 Mon Sep 17 00:00:00 2001 From: zodern Date: Mon, 31 Dec 2018 21:27:20 -0600 Subject: [PATCH 038/134] Delete garbage directory async --- tools/fs/files.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/fs/files.js b/tools/fs/files.js index d55948eb29..ace12543af 100644 --- a/tools/fs/files.js +++ b/tools/fs/files.js @@ -1054,7 +1054,7 @@ files.renameDirAlmostAtomically = // ... and take out the trash. if (cleanupGarbage) { // We don't care about how long this takes, so we'll let it go async. - files.rm_recursive(garbageDir); + files.rm_recursive_async(garbageDir); } }); From 9c3385f54214ac2a4404a18d24cb6159b7280ed1 Mon Sep 17 00:00:00 2001 From: zodern Date: Mon, 31 Dec 2018 21:29:19 -0600 Subject: [PATCH 039/134] Normalize paths before comparing them in symlinkWithOverwrite In windows, source is in posix format and missing a trailing slash, causing the symlink to always be recreated. --- tools/fs/files.js | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/tools/fs/files.js b/tools/fs/files.js index ace12543af..eaefc12795 100644 --- a/tools/fs/files.js +++ b/tools/fs/files.js @@ -528,7 +528,7 @@ files.cp_r = function(from, to, options = {}) { // create a symlink, overwriting the target link, file, or directory // if it exists -export function symlinkWithOverwrite(source, target) { +export const symlinkWithOverwrite = Profile("files.symlinkWithOverwrite", function symlinkWithOverwrite(source, target) { const args = [source, target]; if (process.platform === "win32") { @@ -543,8 +543,12 @@ export function symlinkWithOverwrite(source, target) { files.symlink(...args); } catch (e) { if (e.code === "EEXIST") { + function normalizePath (path) { + return files.convertToOSPath(path).replace(/[\/\\]$/, "") + } + if (files.lstat(target).isSymbolicLink() && - files.readlink(target) === source) { + normalizePath(files.readlink(target)) === normalizePath(source)) { // If the target already points to the desired source, we don't // need to do anything. return; @@ -556,7 +560,7 @@ export function symlinkWithOverwrite(source, target) { throw e; } } -} +}) /** * Get every path in a directory recursively, treating symlinks as files From e14ce5b908944388f61cad95da02adfde1e3e8ea Mon Sep 17 00:00:00 2001 From: zodern Date: Mon, 31 Dec 2018 21:38:26 -0600 Subject: [PATCH 040/134] Do not atomicallyRewriteFile when not building in place --- tools/isobuild/builder.js | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/tools/isobuild/builder.js b/tools/isobuild/builder.js index 08435bece0..fc404f81b2 100644 --- a/tools/isobuild/builder.js +++ b/tools/isobuild/builder.js @@ -285,13 +285,27 @@ Previous builder: ${previousBuilder.outputPath}, this builder: ${outputPath}` } else { hash = hash || sha1(getData()); - if (this.previousWrittenHashes[relPath] !== hash) { + if (this.previousWrittenHashes[relPath] !== hash && this.writtenHashes[relPath] !== hash) { + // Builder is used to create build products, which should be read-only; // users shouldn't be manually editing automatically generated files and // expecting the results to "stick". + // Write is called multiple times for assets when they have multiple urls for the same file + const mode = executable ? 0o555 : 0o444 + + if (this.buildPath === this.outputPath || this.writtenHashes[relPath]) { + // atomicallyRewriteFile handles overwriting files that have already been created atomicallyRewriteFile(absPath, getData(), { - mode: executable ? 0o555 : 0o444 + mode }); + } else { + // Since builder is not updating in place, and + // this build is only used if every file is successfully written, + // it is not important to write atomically. + files.writeFile(absPath, getData(), { + mode + }) + } } this.writtenHashes[relPath] = hash; From 99f969b930ebbb5665dcce6641b79ce5377f199b Mon Sep 17 00:00:00 2001 From: zodern Date: Mon, 31 Dec 2018 21:46:52 -0600 Subject: [PATCH 041/134] Do not calculate rebuild dirs in "meteor run" It is never used in the bundles created by "meteor run", and adds 0.5 - 1.5 seconds per build for smaller apps. --- tools/isobuild/bundler.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/tools/isobuild/bundler.js b/tools/isobuild/bundler.js index 7cced55f7a..4e7e028a51 100644 --- a/tools/isobuild/bundler.js +++ b/tools/isobuild/bundler.js @@ -2420,7 +2420,9 @@ class JsImage { _.each(nodeModulesDirectories, function (nmd) { assert.strictEqual(typeof nmd.preferredBundlePath, "string"); - if (! nmd.isPortable()) { + // Skip calculating isPortable in 'meteor run' since the + // modules are never rebuilt + if (includeNodeModules !== 'symlink' && !nmd.isPortable()) { const parentDir = files.pathDirname(nmd.preferredBundlePath); rebuildDirs[parentDir] = parentDir; } From 21e90bf18dbbba246dda4e524dbfe70c66c88995 Mon Sep 17 00:00:00 2001 From: zodern Date: Mon, 31 Dec 2018 21:49:53 -0600 Subject: [PATCH 042/134] Use in place builds on windows for the server Since the server is always stopped when building the server, it should be safe to overwrite it's files. --- tools/isobuild/bundler.js | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/tools/isobuild/bundler.js b/tools/isobuild/bundler.js index 4e7e028a51..6ad19cc36c 100644 --- a/tools/isobuild/bundler.js +++ b/tools/isobuild/bundler.js @@ -2825,9 +2825,12 @@ var writeTargetToPath = Profile( // .meteor/local/build/programs/web.browser.legacy, because they // tend to be written atomically, and it's important on Windows to // avoid overwriting files that might be open currently in the build - // or server process. If in-place builds were safer on Windows, they + // or server process. + // Server builds do use an in-place build since the server is always stopped + // during the build. + // If client in-place builds were safer on Windows, they // would be much quicker than from-scratch rebuilds. - forceInPlaceBuild: false, + forceInPlaceBuild: name === 'server', }); var targetBuild = target.write(builder, { From 92f84293b5c5425f657c8038ceab4ce61ed3506d Mon Sep 17 00:00:00 2001 From: zodern Date: Mon, 31 Dec 2018 22:01:36 -0600 Subject: [PATCH 043/134] Add caching to _copyDirectory This is most noticible in copyNodeModulesDirectory, which is called many times during each server build. --- tools/isobuild/builder.js | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/tools/isobuild/builder.js b/tools/isobuild/builder.js index fc404f81b2..50ece13c85 100644 --- a/tools/isobuild/builder.js +++ b/tools/isobuild/builder.js @@ -10,6 +10,7 @@ import { optimisticReaddir, optimisticStatOrNull, optimisticLStatOrNull, + optimisticHashOrNull, } from "../fs/optimistic.js"; // Builder is in charge of writing "bundles" to disk, which are @@ -75,7 +76,9 @@ export default class Builder { this.previousUsedAsFile = {}; this.writtenHashes = {}; + this.createdSymlinks = {}; this.previousWrittenHashes = {}; + this.previousCreatedSymlinks = {}; // foo/bar => foo/.build1234.bar // Should we include a random number? The advantage is that multiple @@ -106,6 +109,7 @@ Previous builder: ${previousBuilder.outputPath}, this builder: ${outputPath}` this.previousWrittenHashes = previousBuilder.writtenHashes; this.previousUsedAsFile = previousBuilder.usedAsFile; + this.previousCreatedSymlinks = previousBuilder.createdSymlinks; resetBuildPath = false; } else { @@ -513,8 +517,6 @@ Previous builder: ${previousBuilder.outputPath}, this builder: ${outputPath}` to = to.slice(0, -1); } - const absPathTo = files.pathJoin(this.buildPath, to); - if (symlink) { if (specificFiles) { throw new Error("can't copy only specific paths with a single symlink"); @@ -544,7 +546,10 @@ Previous builder: ${previousBuilder.outputPath}, this builder: ${outputPath}` if (symlink && ! (relTo in this.usedAsFile)) { this._ensureDirectory(files.pathDirname(relTo)); const absTo = files.pathResolve(this.buildPath, relTo); + if (this.previousCreatedSymlinks[absFrom] !== absTo) { symlinkWithOverwrite(absFrom, absTo); + } + this.createdSymlinks[absFrom] = absTo; return; } @@ -655,14 +660,17 @@ Previous builder: ${previousBuilder.outputPath}, this builder: ${outputPath}` // could not be created above. fileStatus = optimisticStatOrNull(thisAbsFrom); if (fileStatus && fileStatus.isFile()) { - // XXX can't really optimize this copying without reading - // the file into memory to calculate the hash. + const hash = optimisticHashOrNull(thisAbsFrom); + + if (this.previousWrittenHashes[thisRelTo] !== hash) { + const content = optimisticReadFile(thisAbsFrom); + files.writeFile( files.pathResolve(this.buildPath, thisRelTo), // The reason we call files.writeFile here instead of // files.copyFile is so that we can read the file using // optimisticReadFile instead of files.createReadStream. - optimisticReadFile(thisAbsFrom), + content, // Logic borrowed from files.copyFile: "Create the file as // readable and writable by everyone, and executable by everyone // if the original file is executably by owner. (This mode will be @@ -671,7 +679,9 @@ Previous builder: ${previousBuilder.outputPath}, this builder: ${outputPath}` // the read-only tools tree into a writable app." { mode: (fileStatus.mode & 0o100) ? 0o777 : 0o666 }, ); + } + this.writtenHashes[thisRelTo] = hash; this.usedAsFile[thisRelTo] = true; } }); From 2ae55e866499f836aff073a38869cc6adb89e767 Mon Sep 17 00:00:00 2001 From: zodern Date: Mon, 31 Dec 2018 22:03:15 -0600 Subject: [PATCH 044/134] Fix caching meteorNpm.isPortable on windows The path was in the wrong format, so .meteor-portable.json was never saved. --- tools/isobuild/meteor-npm.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/tools/isobuild/meteor-npm.js b/tools/isobuild/meteor-npm.js index a13a477754..f6fd4a048a 100644 --- a/tools/isobuild/meteor-npm.js +++ b/tools/isobuild/meteor-npm.js @@ -478,8 +478,9 @@ const isPortable = Profile("meteorNpm.isPortable", dir => { const pkgJsonPath = files.pathJoin(dir, "package.json"); const pkgJsonStat = optimisticStatOrNull(pkgJsonPath); const canCache = pkgJsonStat && pkgJsonStat.isFile(); - const portableFile = files.pathJoin( - dir, ".meteor-portable-" + portableVersion + ".json"); + const portableFile = files.convertToOSPath( + files.pathJoin(dir, ".meteor-portable-" + portableVersion + ".json") + ); if (canCache) { // Cache previous results by writing a boolean value to a hidden file From 21f976d6f0d733714025c6602f0d2bf82ebba078 Mon Sep 17 00:00:00 2001 From: zodern Date: Tue, 1 Jan 2019 11:47:20 -0600 Subject: [PATCH 045/134] Fix delay between server starting and showing "=> Server restarted" Creating the watcher can take up to 12+ seconds in small - medium apps, and uses sync fs calls. The server would start right away, but the tool process wouldn't know about it until the watcher finished setting up. Also, the proxy doesn't forward requests until "=> Server restarted" is shown. A new async option is added to Watcher which prevents it from blocking the event loop too long. Also, the watcher and legacy bundle are only created after the server has started, or 3 seconds has passed. --- tools/fs/watch.js | 58 +++++++++++++++++++++------- tools/runners/run-app.js | 83 ++++++++++++++++++++++++---------------- 2 files changed, 96 insertions(+), 45 deletions(-) diff --git a/tools/fs/watch.js b/tools/fs/watch.js index 896cff26af..5212b9c755 100644 --- a/tools/fs/watch.js +++ b/tools/fs/watch.js @@ -330,6 +330,9 @@ export class Watcher { constructor(options) { var self = this; + // Run initial check asyncly + self._async = options.async; + // The set to watch. self.watchSet = options.watchSet; if (! self.watchSet) { @@ -431,14 +434,10 @@ export class Watcher { } _startFileWatches() { - var self = this; - - // Set up a watch for each file - _.each(self.watchSet.files, function (hash, absPath) { - if (self.stopped) { - return; - } + const self = this; + const keys = Object.keys(self.watchSet.files); + self._processBatches(keys, absPath => { if (! self.justCheckOnce) { self._watchFileOrDirectory(absPath); } @@ -640,19 +639,52 @@ export class Watcher { return stat; } + + // Iterates over the array, calling handleItem for each item + // When this._async is true, it pauses ocassionally to avoid blocking for too long + // Stops iterating after watcher is stopped + _processBatches(array, handleItem) { + const self = this; + const async = self._async; + const amountPerBatch = async ? 50 : array.length; + let index = 0; + function processBatch() { + const stop = Math.min(index + amountPerBatch, array.length); + for(; index < stop; index++) { + if (self.stopped) { + return; + } + + handleItem(array[index]); + } + + if (index < array.length) { + if (async) { + setImmediate(processBatch); + } else { + processBatch(); + } + } + } + + processBatch(); + } _checkDirectories() { - var self = this; + const self = this; + const dirs = self.watchSet.directories.sort((dir1, dir2) => { + // Check node_modules directories last since they are the least likely to change + const dir1Value = dir1.absPath.indexOf('node_modules') > -1 ? 0 : 1 + const dir2Value = dir2.absPath.indexOf('node_modules') > -1 ? 0 : 1; + + return dir2Value - dir1Value; + }) if (self.stopped) { return; } - _.each(self.watchSet.directories, function (info) { - if (self.stopped) { - return; - } - + self._processBatches(dirs, info => { if (! self.justCheckOnce) { self._watchFileOrDirectory(info.absPath); } diff --git a/tools/runners/run-app.js b/tools/runners/run-app.js index cd77f06c53..9892b23340 100644 --- a/tools/runners/run-app.js +++ b/tools/runners/run-app.js @@ -694,6 +694,7 @@ _.extend(AppRunner.prototype, { Promise.await(self.runPromise); var runPromise = self.runPromise = self._makePromise("run"); + var listenPromise = self._makePromise("listen"); // Run the program options.beforeRun && options.beforeRun(); @@ -719,6 +720,7 @@ _.extend(AppRunner.prototype, { self.proxy.setMode("proxy"); options.onListen && options.onListen(); self._resolvePromise("start"); + self._resolvePromise("listen"); }, nodeOptions: getNodeOptionsFromEnvironment(), settings: settings, @@ -761,17 +763,6 @@ _.extend(AppRunner.prototype, { var serverWatcher; var clientWatcher; - if (self.watchForChanges) { - serverWatcher = new watch.Watcher({ - watchSet: serverWatchSet, - onChange: function () { - self._resolvePromise("run", { - outcome: 'changed' - }); - } - }); - } - var setupClientWatcher = function () { clientWatcher && clientWatcher.stop(); clientWatcher = new watch.Watcher({ @@ -781,26 +772,10 @@ _.extend(AppRunner.prototype, { ? 'changed-refreshable' // only a client asset has changed : 'changed'; // both a client and server asset changed self._resolvePromise('run', { outcome: outcome }); - } + }, + async: true }); }; - if (self.watchForChanges && canRefreshClient) { - setupClientWatcher(); - } - - function pauseClient(arch) { - return appProcess.proc.sendMessage("webapp-pause-client", { arch }); - } - - async function refreshClient(arch) { - if (typeof arch === "string") { - // This message will reload the client program and unpause it. - await appProcess.proc.sendMessage("webapp-reload-client", { arch }); - } - // If arch is not a string, the receiver of this message should - // assume all clients need to be refreshed. - await appProcess.proc.sendMessage("client-refresh"); - } function runPostStartupCallbacks(bundleResult) { const callbacks = bundleResult.postStartupCallbacks; @@ -833,15 +808,59 @@ _.extend(AppRunner.prototype, { } } - Console.enableProgressDisplay(false); + Promise.race([ + listenPromise, + new Promise(resolve => setTimeout(resolve, 3000)) + ]).then(() => { + if (self.watchForChanges) { + serverWatcher = new watch.Watcher({ + watchSet: serverWatchSet, + onChange: function () { + self._resolvePromise("run", { + outcome: 'changed' + }); + }, + async: true + }); + } - const postStartupResult = runPostStartupCallbacks(bundleResult); - if (postStartupResult) return postStartupResult; + if (self.watchForChanges && canRefreshClient) { + setupClientWatcher(); + } + Console.enableProgressDisplay(false); + const postStartupResult = runPostStartupCallbacks(bundleResult); + + if (postStartupResult) { + self._resolvePromise('run', { + ...postStartupResult, + postStartupResult: true + }) + return postStartupResult; + } + }); + + function pauseClient(arch) { + return appProcess.proc.sendMessage("webapp-pause-client", { arch }); + } + + async function refreshClient(arch) { + if (typeof arch === "string") { + // This message will reload the client program and unpause it. + await appProcess.proc.sendMessage("webapp-reload-client", { arch }); + } + // If arch is not a string, the receiver of this message should + // assume all clients need to be refreshed. + await appProcess.proc.sendMessage("client-refresh"); + } // Wait for either the process to exit, or (if watchForChanges) a // source file to change. Or, for stop() to be called. var ret = runPromise.await(); + if (ret.postStartupResult) { + return ret; + } + try { while (ret.outcome === 'changed-refreshable') { if (! canRefreshClient) { From e04c87adfeb0cf34e17bee48e0847210b85f57ca Mon Sep 17 00:00:00 2001 From: zodern Date: Tue, 1 Jan 2019 12:08:35 -0600 Subject: [PATCH 046/134] Clean up old symlinks --- tools/isobuild/builder.js | 1 + 1 file changed, 1 insertion(+) diff --git a/tools/isobuild/builder.js b/tools/isobuild/builder.js index 50ece13c85..7140372103 100644 --- a/tools/isobuild/builder.js +++ b/tools/isobuild/builder.js @@ -549,6 +549,7 @@ Previous builder: ${previousBuilder.outputPath}, this builder: ${outputPath}` if (this.previousCreatedSymlinks[absFrom] !== absTo) { symlinkWithOverwrite(absFrom, absTo); } + this.usedAsFile[relTo] = false; this.createdSymlinks[absFrom] = absTo; return; } From 097bccb9c2f700e9d2cc8e6b40a371110ab89832 Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Thu, 3 Jan 2019 16:01:48 -0500 Subject: [PATCH 047/134] Update Node to version 8.15.0. Release blog post: https://nodejs.org/en/blog/release/v8.15.0/ --- History.md | 2 +- scripts/build-dev-bundle-common.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/History.md b/History.md index 2c5c7766f6..ea901804ec 100644 --- a/History.md +++ b/History.md @@ -11,7 +11,7 @@ N/A ### Changes * Node has been updated from version 8.11.4 to version - [8.14.1](https://nodejs.org/en/blog/release/v8.14.1/), which includes + [8.15.0](https://nodejs.org/en/blog/release/v8.15.0/), which includes the changes from three other minor releases: [8.14.0](https://nodejs.org/en/blog/release/v8.14.0/), an important [security release](https://nodejs.org/en/blog/vulnerability/november-2018-security-releases/); diff --git a/scripts/build-dev-bundle-common.sh b/scripts/build-dev-bundle-common.sh index e7291bf933..5101dee407 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.14.1 +NODE_VERSION=8.15.0 MONGO_VERSION_64BIT=4.0.4 MONGO_VERSION_32BIT=3.2.21 NPM_VERSION=6.5.0 From 68ae303bd755291f184583acf606ba6ee9a4135c Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Thu, 3 Jan 2019 16:04:37 -0500 Subject: [PATCH 048/134] Update fibers npm dependency to version 3.1.1. Though this is a major update according to the version number (previously 2.0.0 in Meteor 1.8.0.1), we have observed no backwards-incompatible changes so far. --- History.md | 7 +++++++ scripts/dev-bundle-server-package.js | 2 +- scripts/dev-bundle-tool-package.js | 2 +- 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/History.md b/History.md index ea901804ec..60700e9344 100644 --- a/History.md +++ b/History.md @@ -33,6 +33,13 @@ N/A and 3.2.21 for 32-bit systems (was 3.2.19). The `mongodb` npm package used by `npm-mongo` has been updated to version 3.1.10 (was 3.1.6). +* The `fibers` npm package has been updated to version 3.1.1, a major + update from version 2.0.0. Building this version of `fibers` requires a + C++11 compiler, unlike previous versions. If you deploy your Meteor app + manually (without using Galaxy), you may need to update the version of + `g++` used when running `npm install` in the `bundle/programs/server` + directory. + ## v1.8.0.1, 2018-11-23 ### Breaking changes diff --git a/scripts/dev-bundle-server-package.js b/scripts/dev-bundle-server-package.js index f68c4820d9..d875b7e55e 100644 --- a/scripts/dev-bundle-server-package.js +++ b/scripts/dev-bundle-server-package.js @@ -8,7 +8,7 @@ var packageJson = { name: "meteor-dev-bundle", private: true, dependencies: { - fibers: "3.0.0", + fibers: "3.1.1", "meteor-promise": "0.8.7", promise: "8.0.2", // Not yet upgrading Underscore from 1.5.2 to 1.7.0 (which should be done diff --git a/scripts/dev-bundle-tool-package.js b/scripts/dev-bundle-tool-package.js index ac1246a896..fb1755f576 100644 --- a/scripts/dev-bundle-tool-package.js +++ b/scripts/dev-bundle-tool-package.js @@ -17,7 +17,7 @@ var packageJson = { "meteor-babel": "7.2.0", "meteor-promise": "0.8.7", reify: "0.17.3", - fibers: "3.0.0", + fibers: "3.1.1", // So that Babel can emit require("@babel/runtime/helpers/...") calls. "@babel/runtime": "7.2.0", // For backwards compatibility with isopackets that still depend on From 65d978ac23512b1ddc3d88896d1d245aa8b67844 Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Fri, 4 Jan 2019 13:09:47 -0500 Subject: [PATCH 049/134] Stop trying to delete irrelevant fibers binaries from dev bundle. The shrink_fibers trick was saving only about 1.4MB, and it caused problems whenever the format of the binary filenames changed. --- scripts/generate-dev-bundle.sh | 16 ---------------- 1 file changed, 16 deletions(-) diff --git a/scripts/generate-dev-bundle.sh b/scripts/generate-dev-bundle.sh index 0c2fa22843..8128376433 100755 --- a/scripts/generate-dev-bundle.sh +++ b/scripts/generate-dev-bundle.sh @@ -125,19 +125,6 @@ cp -R node_modules/* "${DIR}/server-lib/node_modules/" mkdir -p "${DIR}/etc" mv package.json npm-shrinkwrap.json "${DIR}/etc/" -# Fibers ships with compiled versions of its C code for a dozen platforms. This -# bloats our dev bundle. Remove all the ones other than our -# architecture. (Expression based on build.js in fibers source.) -shrink_fibers () { - FIBERS_ARCH=$(node -p -e 'process.platform + "-" + process.arch + "-" + process.versions.modules') - mv $FIBERS_ARCH .. - rm -rf * - mv ../$FIBERS_ARCH . -} - -cd "$DIR/server-lib/node_modules/fibers/bin" -shrink_fibers - # Now, install the npm modules which are the dependencies of the command-line # tool. mkdir "${DIR}/build/npm-tool-install" @@ -195,9 +182,6 @@ delete moment/min # Remove esprima tests to reduce the size of the dev bundle find . -path '*/esprima-fb/test' | xargs rm -rf -cd "$DIR/lib/node_modules/fibers/bin" -shrink_fibers - # Sanity check to see if we're not breaking anything by replacing npm INSTALLED_NPM_VERSION=$(cat "$DIR/lib/node_modules/npm/package.json" | xargs -0 node -e "console.log(JSON.parse(process.argv[1]).version)") From 6fd24ef4b90c53a5499b46b5f5066091b70d37c0 Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Fri, 4 Jan 2019 13:11:30 -0500 Subject: [PATCH 050/134] Bump BUNDLE_VERSION to 8.15.0.0 before rebuilding dev bundle. --- meteor | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meteor b/meteor index 7116fed099..01925954ca 100755 --- a/meteor +++ b/meteor @@ -1,6 +1,6 @@ #!/usr/bin/env bash -BUNDLE_VERSION=8.14.1.0 +BUNDLE_VERSION=8.15.0.0 # OS Check. Put here because here is where we download the precompiled # bundles that are arch specific. From b42524ba52a7c14652e42cdb4256da4545e9fbc4 Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Fri, 4 Jan 2019 13:27:16 -0500 Subject: [PATCH 051/134] Bump package versions for 1.8.1-beta.10 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/npm-mongo/package.js | 2 +- packages/reactive-dict/package.js | 2 +- packages/session/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 59cb30c705..d7db7476d5 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.9' + version: '1.6.0-beta181.10' }); Package.onUse(function (api) { diff --git a/packages/ddp-server/package.js b/packages/ddp-server/package.js index f984d675e8..cbac1a3075 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.9', + version: '2.3.0-beta181.10', documentation: null }); diff --git a/packages/meteor-tool/package.js b/packages/meteor-tool/package.js index 6c5b287560..b76af4ad26 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.9' + version: '1.8.1-beta.10' }); Package.includeTool(); diff --git a/packages/modern-browsers/package.js b/packages/modern-browsers/package.js index f5c2450bd7..d06a0a7061 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.9", + version: "0.1.4-beta181.10", summary: "API for defining the boundary between modern and legacy " + "JavaScript clients", documentation: "README.md" diff --git a/packages/npm-mongo/package.js b/packages/npm-mongo/package.js index b3cd1b6eb2..eea5544732 100644 --- a/packages/npm-mongo/package.js +++ b/packages/npm-mongo/package.js @@ -3,7 +3,7 @@ Package.describe({ summary: "Wrapper around the mongo npm package", - version: "3.1.2-beta181.9", + version: "3.1.2-beta181.10", documentation: null }); diff --git a/packages/reactive-dict/package.js b/packages/reactive-dict/package.js index c3c98a9762..588457363e 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.9' + version: '1.3.0-beta181.10' }); Package.onUse(function (api) { diff --git a/packages/session/package.js b/packages/session/package.js index e2f6a0990e..205a8ac79f 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.9' + version: '1.2.0-beta181.10' }); Package.onUse(function (api) { diff --git a/scripts/admin/meteor-release-experimental.json b/scripts/admin/meteor-release-experimental.json index 3475631db7..d9d012b2d1 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.9", + "version": "1.8.1-beta.10", "recommended": false, "official": false, "description": "Meteor" From 4859f426ddb7142b9a3d64956f4d90944ef42145 Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Fri, 4 Jan 2019 14:13:17 -0500 Subject: [PATCH 052/134] Adjust timeouts to help Mongo self-tests pass reliably. --- tools/tests/mongo.js | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/tools/tests/mongo.js b/tools/tests/mongo.js index 418d319149..616fa767f1 100644 --- a/tools/tests/mongo.js +++ b/tools/tests/mongo.js @@ -20,7 +20,7 @@ selftest.define("mongo failover", ["slow"], function () { run.expectExit(0); }); -var testMeteorMongo = function (appDir) { +function testMeteorMongo(appDir) { var s = new Sandbox(); s.createApp(appDir, 'standard-app'); s.cd(appDir); @@ -30,15 +30,18 @@ var testMeteorMongo = function (appDir) { run.match('proxy'); run.waitSecs(15); run.match('Started MongoDB'); + run.waitSecs(15); var mongoRun = s.run('mongo'); + run.waitSecs(15); // Note: when mongo shell's input is not a tty, there is no prompt. mongoRun.write('db.version()\n'); mongoRun.match(/4\.\d+\.\d+/); + run.waitSecs(5); mongoRun.stop(); run.stop(); -}; +} selftest.define("meteor mongo", function () { testMeteorMongo('asdfzasdf'); From 5c86db22a70655cd99b80907d5907429b04a4044 Mon Sep 17 00:00:00 2001 From: zodern Date: Fri, 4 Jan 2019 18:40:39 -0600 Subject: [PATCH 053/134] Fix files.readdir and files.realpath not being cached enableCache was called before readdir and realpath was added to "files". --- tools/fs/files.js | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/tools/fs/files.js b/tools/fs/files.js index eaefc12795..a704749656 100644 --- a/tools/fs/files.js +++ b/tools/fs/files.js @@ -1761,11 +1761,6 @@ function enableCache(name) { }; } -enableCache("readdir"); -enableCache("realpath"); -enableCache("stat"); -enableCache("lstat"); - // The fs.exists method is deprecated in Node v4: // https://nodejs.org/api/fs.html#fs_fs_exists_path_callback files.exists = @@ -1874,3 +1869,8 @@ files.readBufferWithLengthAndOffset = function (filename, length, offset) { } return data; }; + +enableCache("readdir"); +enableCache("realpath"); +enableCache("stat"); +enableCache("lstat"); From 70772dcae77718014030967879e61d05da9884bf Mon Sep 17 00:00:00 2001 From: zodern Date: Fri, 4 Jan 2019 20:26:54 -0600 Subject: [PATCH 054/134] Reduce duplicate fs calls in watcher Most directories are in the WatchSet at least twice, and the directory is read and each item is stat each time. In addition, when the watcher is not created by isUpToDate, each item in watchSet.directories and watchSet.files is checked twice. With these changes, isUpToDate finishes in less than 1/2 the time on Windows, and creating a watcher takes around 1/4 the time. --- tools/fs/watch.js | 122 ++++++++++++++++++++++++---------------------- 1 file changed, 65 insertions(+), 57 deletions(-) diff --git a/tools/fs/watch.js b/tools/fs/watch.js index 5212b9c755..4eba6b1a72 100644 --- a/tools/fs/watch.js +++ b/tools/fs/watch.js @@ -6,8 +6,6 @@ import {coalesce} from '../utils/func-utils.js'; import {Profile} from '../tool-env/profile.js'; import { - optimisticStatOrNull, - optimisticReaddir, optimisticHashOrNull, } from "./optimistic.js"; @@ -272,7 +270,7 @@ export const sha512 = Profile("sha512", function (...args) { return hash.digest('base64'); }); -export function readDirectory({absPath, include, exclude, names}) { +function readAndStatDirectory(absPath) { // Read the directory. try { var contents = files.readdir(absPath); @@ -303,26 +301,31 @@ export function readDirectory({absPath, include, exclude, names}) { contentsWithSlashes.push(entry); }); - // Filter based on regexps. - var filtered = contentsWithSlashes.filter((entry) => { - // Is it one of the names we explicitly requested? - if (names && names.indexOf(entry) !== -1) { - return true; - } - // Is it ruled out by an exclude rule? - if (exclude && exclude.some(re => re.test(entry))) { - return false; - } - // Is it ruled in by an include rule? - if (include && include.some(re => re.test(entry))) { - return true; - } - return false; - }); + return contentsWithSlashes +} - // Sort it! - filtered.sort(); - return filtered; +function filterDirectoryContents(contents, { include, exclude, names }) { + // Filter based on regexps. + return contents.filter((entry) => { + // Is it one of the names we explicitly requested? + if (names && names.indexOf(entry) !== -1) { + return true; + } + // Is it ruled out by an exclude rule? + if (exclude && exclude.some(re => re.test(entry))) { + return false; + } + // Is it ruled in by an include rule? + if (include && include.some(re => re.test(entry))) { + return true; + } + return false; + }).sort(); +} + +export function readDirectory({absPath, include, exclude, names}) { + const contents = readAndStatDirectory(absPath); + return filterDirectoryContents(contents, { include, exclude, names }); } // All fields are private. @@ -410,24 +413,25 @@ export class Watcher { return true; } - _fireIfDirectoryChanged(info) { + // infos must all be for the same directory + _fireIfDirectoryChanged(infos) { var self = this; if (self.stopped) { return true; } - var newContents = readDirectory({ - absPath: info.absPath, - include: info.include, - exclude: info.exclude, - names: info.names - }); + const contents = readAndStatDirectory(infos[0].absPath); - // If the directory has changed (including being deleted or created). - if (! _.isEqual(info.contents, newContents)) { - self._fire(); - return true; + for (let i = 0; i < infos.length; i++) { + const info = infos[i]; + const newContents = filterDirectoryContents(contents, info); + + // If the directory has changed (including being deleted or created). + if (! _.isEqual(info.contents, newContents)) { + self._fire(); + return true; + } } return false; @@ -439,7 +443,7 @@ export class Watcher { self._processBatches(keys, absPath => { if (! self.justCheckOnce) { - self._watchFileOrDirectory(absPath); + self._watchFileOrDirectory(absPath, true); } // Check for the case where by the time we created the watch, @@ -448,7 +452,7 @@ export class Watcher { }); } - _watchFileOrDirectory(absPath) { + _watchFileOrDirectory(absPath, skipCheck) { var self = this; if (! _.has(self.watches, absPath)) { @@ -475,9 +479,13 @@ export class Watcher { var onWatchEvent = self._makeWatchEventCallback(absPath); entry.watcher = safeWatcher.watch(absPath, onWatchEvent); - // If we successfully created the watcher, invoke the callback - // immediately, so that we examine this file at least once. - onWatchEvent(); + if (!skipCheck) { + // If we successfully created the watcher, invoke the callback + // immediately, so that we examine this file at least once. + onWatchEvent(); + } else { + self._updateStatForWatch(absPath); + } } else { if (self._mustBeAFile(absPath)) { @@ -558,13 +566,12 @@ export class Watcher { // If self.watchSet.directories contains any entries for the // directory we are examining, call self._fireIfDirectoryChanged. - _.some(self.watchSet.directories, function(info) { - return self.stopped || - (absPath === info.absPath && - self._fireIfDirectoryChanged(info, true)); - // XXX #3335 We probably should check again in a second, due to low - // filesystem modtime resolution. - }); + const infos = self.watchSet.directories.filter(info => info.absPath === absPath ); + if (infos.length) { + self._fireIfDirectoryChanged(infos); + } + // XXX #3335 We probably should check again in a second, due to low + // filesystem modtime resolution. } }); } @@ -646,17 +653,18 @@ export class Watcher { _processBatches(array, handleItem) { const self = this; const async = self._async; - const amountPerBatch = async ? 50 : array.length; let index = 0; function processBatch() { - const stop = Math.min(index + amountPerBatch, array.length); - for(; index < stop; index++) { + const stopTime = async ? Date.now() + 50 : Infinity // Math.min(index + amountPerBatch, array.length); + while (Date.now() < stopTime && index < array.length) { if (self.stopped) { return; } handleItem(array[index]); + + index += 1; } if (index < array.length) { @@ -672,26 +680,26 @@ export class Watcher { } _checkDirectories() { const self = this; - const dirs = self.watchSet.directories.sort((dir1, dir2) => { - // Check node_modules directories last since they are the least likely to change - const dir1Value = dir1.absPath.indexOf('node_modules') > -1 ? 0 : 1 - const dir2Value = dir2.absPath.indexOf('node_modules') > -1 ? 0 : 1; + const dirs = Object.values(self.watchSet.directories.reduce((result, dir) => { + result[dir.absPath] = result[dir.absPath] || []; + result[dir.absPath].push(dir); + + return result; + }, {})); - return dir2Value - dir1Value; - }) if (self.stopped) { return; } - self._processBatches(dirs, info => { + self._processBatches(dirs, infos => { if (! self.justCheckOnce) { - self._watchFileOrDirectory(info.absPath); + self._watchFileOrDirectory(infos[0].absPath, true); } // Check for the case where by the time we created the watch, the // directory has already changed. - self._fireIfDirectoryChanged(info); + self._fireIfDirectoryChanged(infos); }); } From a985bf4b22f19d0ed1d6e2f96c6ab2331983565b Mon Sep 17 00:00:00 2001 From: zodern Date: Fri, 4 Jan 2019 21:12:28 -0600 Subject: [PATCH 055/134] Throttle rendering progress in updateProgress --- tools/console/console.js | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/tools/console/console.js b/tools/console/console.js index 73df9f1cde..ab96374c11 100644 --- a/tools/console/console.js +++ b/tools/console/console.js @@ -89,6 +89,7 @@ const PROGRESS_BAR_FORMAT = '[:bar] :percent :etas'; const TEMP_STATUS_LENGTH = STATUS_MAX_LENGTH + 12; const STATUS_INTERVAL_MS = 50; +const PROGRESS_THROTTLE_MS = 300; // Message to show when we don't know what we're doing // XXX: ? FALLBACK_STATUS = 'Pondering'; @@ -309,6 +310,7 @@ class ProgressDisplayFull { this._lastWrittenLine = null; this._lastWrittenTime = 0; + this._renderTimeout = null; } depaint() { @@ -332,7 +334,15 @@ class ProgressDisplayFull { if (startTime) { this._progressBarRenderer.start = startTime; } - this._render(); + + if (!this._renderTimeout && this._lastWrittenTime) { + this._rerenderTimeout = setTimeout(() => { + this._rerenderTimeout = null; + this._render.bind(this) + }, PROGRESS_THROTTLE_MS); + } else if (this._lastWrittenTime === 0) { + this._render(); + } } repaint() { @@ -344,7 +354,11 @@ class ProgressDisplayFull { } _render() { - // XXX: Throttle these updates? + if (this._rerenderTimeout) { + clearTimeout(this._rerenderTimeout); + this._rerenderTimeout = null; + } + // XXX: Or maybe just jump to the correct position? var progressGraphic = ''; From ca3d3911a9dfc65f290b8523e21a1bb3075bfe7b Mon Sep 17 00:00:00 2001 From: zodern Date: Sat, 5 Jan 2019 07:55:02 -0600 Subject: [PATCH 056/134] Clean up watch code --- tools/fs/watch.js | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/tools/fs/watch.js b/tools/fs/watch.js index 4eba6b1a72..ecd3ed73df 100644 --- a/tools/fs/watch.js +++ b/tools/fs/watch.js @@ -305,22 +305,22 @@ function readAndStatDirectory(absPath) { } function filterDirectoryContents(contents, { include, exclude, names }) { - // Filter based on regexps. - return contents.filter((entry) => { - // Is it one of the names we explicitly requested? - if (names && names.indexOf(entry) !== -1) { - return true; - } - // Is it ruled out by an exclude rule? - if (exclude && exclude.some(re => re.test(entry))) { - return false; - } - // Is it ruled in by an include rule? - if (include && include.some(re => re.test(entry))) { - return true; - } + // Filter based on regexps. + return contents.filter((entry) => { + // Is it one of the names we explicitly requested? + if (names && names.indexOf(entry) !== -1) { + return true; + } + // Is it ruled out by an exclude rule? + if (exclude && exclude.some(re => re.test(entry))) { return false; - }).sort(); + } + // Is it ruled in by an include rule? + if (include && include.some(re => re.test(entry))) { + return true; + } + return false; + }).sort(); } export function readDirectory({absPath, include, exclude, names}) { @@ -656,7 +656,7 @@ export class Watcher { let index = 0; function processBatch() { - const stopTime = async ? Date.now() + 50 : Infinity // Math.min(index + amountPerBatch, array.length); + const stopTime = async ? Date.now() + 50 : Infinity; while (Date.now() < stopTime && index < array.length) { if (self.stopped) { return; From 6c87f68116a7ca2f3eea98ad98eb139c970e6937 Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Sat, 5 Jan 2019 12:45:22 -0500 Subject: [PATCH 057/134] Fix mongo tests by adding a package.json to standard-app. --- .../standard-app/.meteor/.finished-upgraders | 18 ++++++ tools/tests/apps/standard-app/.meteor/.id | 7 +++ .../tests/apps/standard-app/.meteor/packages | 9 ++- .../tests/apps/standard-app/.meteor/platforms | 2 + .../tests/apps/standard-app/.meteor/versions | 55 +++++++++++++++++++ tools/tests/apps/standard-app/package.json | 18 ++++++ 6 files changed, 106 insertions(+), 3 deletions(-) create mode 100644 tools/tests/apps/standard-app/.meteor/.finished-upgraders create mode 100644 tools/tests/apps/standard-app/.meteor/.id create mode 100644 tools/tests/apps/standard-app/.meteor/platforms create mode 100644 tools/tests/apps/standard-app/.meteor/versions create mode 100644 tools/tests/apps/standard-app/package.json diff --git a/tools/tests/apps/standard-app/.meteor/.finished-upgraders b/tools/tests/apps/standard-app/.meteor/.finished-upgraders new file mode 100644 index 0000000000..4538749ab8 --- /dev/null +++ b/tools/tests/apps/standard-app/.meteor/.finished-upgraders @@ -0,0 +1,18 @@ +# This file contains information which helps Meteor properly upgrade your +# app when you run 'meteor update'. You should check it into version control +# with your project. + +notices-for-0.9.0 +notices-for-0.9.1 +0.9.4-platform-file +notices-for-facebook-graph-api-2 +1.2.0-standard-minifiers-package +1.2.0-meteor-platform-split +1.2.0-cordova-changes +1.2.0-breaking-changes +1.3.0-split-minifiers-package +1.4.0-remove-old-dev-bundle-link +1.4.1-add-shell-server-package +1.4.3-split-account-service-packages +1.5-add-dynamic-import-package +1.7-split-underscore-from-meteor-base diff --git a/tools/tests/apps/standard-app/.meteor/.id b/tools/tests/apps/standard-app/.meteor/.id new file mode 100644 index 0000000000..0fb7abfbd3 --- /dev/null +++ b/tools/tests/apps/standard-app/.meteor/.id @@ -0,0 +1,7 @@ +# This file contains a token that is unique to your project. +# Check it into your repository along with the rest of this directory. +# It can be used for purposes such as: +# - ensuring you don't accidentally deploy one app on top of another +# - providing package authors with aggregated statistics + +lwfpbe3yeelg.jiny0taw9ho diff --git a/tools/tests/apps/standard-app/.meteor/packages b/tools/tests/apps/standard-app/.meteor/packages index 73547ca5d0..832376896d 100644 --- a/tools/tests/apps/standard-app/.meteor/packages +++ b/tools/tests/apps/standard-app/.meteor/packages @@ -3,6 +3,9 @@ # 'meteor add' and 'meteor remove' will edit this file for you, # but you can also edit it by hand. -meteor-base -mongo -standard-minifiers +meteor-base@1.4.0 +mongo@1.6.0 +standard-minifier-css +standard-minifier-js +shell-server +dynamic-import diff --git a/tools/tests/apps/standard-app/.meteor/platforms b/tools/tests/apps/standard-app/.meteor/platforms new file mode 100644 index 0000000000..8a3a35f9f6 --- /dev/null +++ b/tools/tests/apps/standard-app/.meteor/platforms @@ -0,0 +1,2 @@ +browser +server diff --git a/tools/tests/apps/standard-app/.meteor/versions b/tools/tests/apps/standard-app/.meteor/versions new file mode 100644 index 0000000000..a574733bd2 --- /dev/null +++ b/tools/tests/apps/standard-app/.meteor/versions @@ -0,0 +1,55 @@ +allow-deny@1.1.0 +autoupdate@1.5.0 +babel-compiler@7.2.4 +babel-runtime@1.3.0 +base64@1.0.11 +binary-heap@1.0.11 +boilerplate-generator@1.6.0 +callback-hook@1.1.0 +check@1.3.1 +ddp@1.4.0 +ddp-client@2.3.3 +ddp-common@1.4.0 +ddp-server@2.2.0 +diff-sequence@1.1.1 +dynamic-import@0.5.1 +ecmascript@0.12.4 +ecmascript-runtime@0.7.0 +ecmascript-runtime-client@0.8.0 +ecmascript-runtime-server@0.7.1 +ejson@1.1.0 +es5-shim@4.8.0 +fetch@0.1.0 +geojson-utils@1.0.10 +hot-code-push@1.0.4 +id-map@1.1.0 +inter-process-messaging@0.1.0 +livedata@1.0.18 +logging@1.1.20 +meteor@1.9.2 +meteor-base@1.4.0 +minifier-css@1.4.1 +minifier-js@2.4.0 +minimongo@1.4.5 +modern-browsers@0.1.3 +modules@0.13.0 +modules-runtime@0.10.3 +mongo@1.6.0 +mongo-decimal@0.1.0 +mongo-dev-server@1.1.0 +mongo-id@1.0.7 +npm-mongo@3.1.1 +ordered-dict@1.1.0 +promise@0.11.2 +random@1.1.0 +reload@1.2.0 +retry@1.1.0 +routepolicy@1.1.0 +shell-server@0.4.0 +socket-stream-client@0.2.2 +standard-minifier-css@1.5.2 +standard-minifier-js@2.4.0 +tracker@1.2.0 +underscore@1.0.10 +webapp@1.7.2 +webapp-hashing@1.0.9 diff --git a/tools/tests/apps/standard-app/package.json b/tools/tests/apps/standard-app/package.json new file mode 100644 index 0000000000..142c414a96 --- /dev/null +++ b/tools/tests/apps/standard-app/package.json @@ -0,0 +1,18 @@ +{ + "name": "standard-app", + "private": true, + "scripts": { + "start": "meteor run", + "test": "meteor test --once --driver-package meteortesting:mocha", + "test-app": "TEST_WATCH=1 meteor test --full-app --driver-package meteortesting:mocha", + "visualize": "meteor --production --extra-packages bundle-visualizer" + }, + "dependencies": { + "@babel/runtime": "^7.1.5", + "meteor-node-stubs": "^0.4.1" + }, + "meteor": { + "mainModule": false, + "testModule": false + } +} From 7055780697ac38f356aa7c67810939f9c59222e8 Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Sat, 5 Jan 2019 12:40:54 -0500 Subject: [PATCH 058/134] Use `--enableFreeMonitoring off` instead of `--quiet` for Mongo shell. Previously: 7f7a987251e548b5b352297c44583dc858d88906 cc @klaussner @mitar --- tools/runners/run-mongo.js | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/tools/runners/run-mongo.js b/tools/runners/run-mongo.js index e4d10a35b6..9b1be1df18 100644 --- a/tools/runners/run-mongo.js +++ b/tools/runners/run-mongo.js @@ -22,7 +22,7 @@ var runMongoShell = function (url) { var auth = mongoUrl.auth && mongoUrl.auth.split(':'); var ssl = require('querystring').parse(mongoUrl.query).ssl === "true"; - var args = ['--quiet']; + var args = []; if (ssl) { args.push('--ssl'); } @@ -55,6 +55,11 @@ function spawnMongod(mongodPath, port, dbPath, replSetName) { // initializes faster. (Not recommended for production!) '--oplogSize', '8', '--replSet', replSetName, + // Avoid printing banner about optional free monitoring services. + // Previously this was accomplished by passing --quiet to the shell, + // because the --enableFreeMonitoring option was broken until version + // 4.0.3: https://jira.mongodb.org/browse/SERVER-36474 + '--enableFreeMonitoring', 'off', '--noauth' ]; From 61b2ac3878242ed7cf186a81e7517cdea372f659 Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Sat, 5 Jan 2019 13:17:27 -0500 Subject: [PATCH 059/134] Revert "Use `--enableFreeMonitoring off` instead of `--quiet` for Mongo shell." This reverts commit 7055780697ac38f356aa7c67810939f9c59222e8. While this flag works as expected on MacOS, it appears not to be supported on Linux, even using MongoDB 4.0.5 (the latest version): https://jira.mongodb.org/browse/SERVER-38862 --- tools/runners/run-mongo.js | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/tools/runners/run-mongo.js b/tools/runners/run-mongo.js index 9b1be1df18..e4d10a35b6 100644 --- a/tools/runners/run-mongo.js +++ b/tools/runners/run-mongo.js @@ -22,7 +22,7 @@ var runMongoShell = function (url) { var auth = mongoUrl.auth && mongoUrl.auth.split(':'); var ssl = require('querystring').parse(mongoUrl.query).ssl === "true"; - var args = []; + var args = ['--quiet']; if (ssl) { args.push('--ssl'); } @@ -55,11 +55,6 @@ function spawnMongod(mongodPath, port, dbPath, replSetName) { // initializes faster. (Not recommended for production!) '--oplogSize', '8', '--replSet', replSetName, - // Avoid printing banner about optional free monitoring services. - // Previously this was accomplished by passing --quiet to the shell, - // because the --enableFreeMonitoring option was broken until version - // 4.0.3: https://jira.mongodb.org/browse/SERVER-36474 - '--enableFreeMonitoring', 'off', '--noauth' ]; From bcf6bf2cfc7540c2ecf5442d7412dfb8e7b6b1f1 Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Sat, 5 Jan 2019 15:02:57 -0500 Subject: [PATCH 060/134] Wait until test app is running before starting Mongo shell. --- tools/tests/mongo.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tools/tests/mongo.js b/tools/tests/mongo.js index 616fa767f1..14eee8880a 100644 --- a/tools/tests/mongo.js +++ b/tools/tests/mongo.js @@ -31,6 +31,8 @@ function testMeteorMongo(appDir) { run.waitSecs(15); run.match('Started MongoDB'); run.waitSecs(15); + run.match('App running'); + run.waitSecs(15); var mongoRun = s.run('mongo'); run.waitSecs(15); From c7441e68c6725d4dc4e66c6125fba4341a95d55f Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Sat, 5 Jan 2019 15:04:21 -0500 Subject: [PATCH 061/134] Ensure consistent LANG-related environment variables in findMongoPids. For some reason, without all three of these environment variables set (LANG, LC_ALL, and LANGUAGE), the STDOUT returned from the child process in findMongoPids contained ?? in place of non-ASCII unicode characters, which was causing the self-test of Mongo shell in a unicode application directory to fail. This implementation defaults all three environment variables to process.env.LANG if it was defined, or "en_US.UTF-8" otherwise. --- tools/runners/run-mongo.js | 26 ++++++++++++++++++++++---- 1 file changed, 22 insertions(+), 4 deletions(-) diff --git a/tools/runners/run-mongo.js b/tools/runners/run-mongo.js index e4d10a35b6..6e6702adc1 100644 --- a/tools/runners/run-mongo.js +++ b/tools/runners/run-mongo.js @@ -185,12 +185,30 @@ if (process.platform === 'win32') { 'else ps ax; fi'; } + // If the child process output includes unicode, make sure it's + // handled properly. + const { + LANG = "en_US.UTF-8", + LC_ALL = LANG, + LANGUAGE = LANG, + // Remainder of process.env without above properties. + ...env + } = process.env; + + // Make sure all three properties are set to the same value, which + // defaults to "en_US.UTF-8" or whatever LANG was already set to. + Object.assign(env, { LANG, LC_ALL, LANGUAGE }); + child_process.exec( psScript, - // we don't want this to randomly fail just because you're running lots of - // processes. 10MB should be more than ps ax will ever spit out; the default - // is 200K, which at least one person hit (#2158). - {maxBuffer: 1024 * 1024 * 10}, + { + env, + // we don't want this to randomly fail just because you're running + // lots of processes. 10MB should be more than ps ax will ever + // spit out; the default is 200K, which at least one person hit + // (#2158). + maxBuffer: 1024 * 1024 * 10, + }, function (error, stdout, stderr) { if (error) { promise.reject( From aaeb2a7c2c9bcaa1f90cec82e65b78c5353bb1dd Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Sat, 5 Jan 2019 16:04:22 -0500 Subject: [PATCH 062/134] Pass `--enableFreeMonitoring off` to Mongo 4 shell, except on Linux. --- History.md | 6 ++++++ tools/runners/run-mongo.js | 10 +++++++++- tools/tests/mongo.js | 13 +++++++++++-- 3 files changed, 26 insertions(+), 3 deletions(-) diff --git a/History.md b/History.md index 60700e9344..08541cd727 100644 --- a/History.md +++ b/History.md @@ -40,6 +40,12 @@ N/A `g++` used when running `npm install` in the `bundle/programs/server` directory. +* The `meteor mongo` command no longer uses the `--quiet` option, so the + normal startup text will be displayed, albeit without the banner about + Mongo's free monitoring service. See this + [MongoDB Jira issue](https://jira.mongodb.org/browse/SERVER-38862) + for more details. + ## v1.8.0.1, 2018-11-23 ### Breaking changes diff --git a/tools/runners/run-mongo.js b/tools/runners/run-mongo.js index 6e6702adc1..f024c3074c 100644 --- a/tools/runners/run-mongo.js +++ b/tools/runners/run-mongo.js @@ -22,7 +22,7 @@ var runMongoShell = function (url) { var auth = mongoUrl.auth && mongoUrl.auth.split(':'); var ssl = require('querystring').parse(mongoUrl.query).ssl === "true"; - var args = ['--quiet']; + var args = []; if (ssl) { args.push('--ssl'); } @@ -61,6 +61,14 @@ function spawnMongod(mongodPath, port, dbPath, replSetName) { // Use mmapv1 on 32bit platforms, as our binary doesn't support WT if (process.arch === 'ia32') { args.push('--storageEngine', 'mmapv1', '--smallfiles'); + } else if (process.platform !== 'linux') { + // MongoDB 4, which we use on 64-bit systems, displays a banner in the + // Mongo shell about a free monitoring service, which can be disabled + // with this flag. However, the generic Linux build (without SSL; see + // MONGO_SSL in scripts/generate-dev-bundle.sh) neither displays the + // banner nor supports the flag, so it's safe/important to avoid + // passing the flag to mongod on 64-bit linux. + args.push('--enableFreeMonitoring', 'off'); } return child_process.spawn(mongodPath, args, { diff --git a/tools/tests/mongo.js b/tools/tests/mongo.js index 14eee8880a..82bff2003e 100644 --- a/tools/tests/mongo.js +++ b/tools/tests/mongo.js @@ -35,11 +35,20 @@ function testMeteorMongo(appDir) { run.waitSecs(15); var mongoRun = s.run('mongo'); - run.waitSecs(15); + mongoRun.waitSecs(15); + + // Make sure we match the DB version that's printed as part of the + // non-quiet shell startup text, so that we don't confuse it with the + // output of the db.version() command below. + mongoRun.match(/MongoDB server version: 4\.\d+\.\d+/); + + // Make sure the shell does not display the banner about Mongo's free + // monitoring service. + mongoRun.forbidAll("free cloud-based monitoring service"); + // Note: when mongo shell's input is not a tty, there is no prompt. mongoRun.write('db.version()\n'); mongoRun.match(/4\.\d+\.\d+/); - run.waitSecs(5); mongoRun.stop(); run.stop(); From 5d88d9a1a4e97c8097fba1ddbcac1027b394bbb3 Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Sat, 5 Jan 2019 16:46:13 -0500 Subject: [PATCH 063/134] Improve stack traces for self-test failures. --- tools/tool-testing/matcher.js | 13 +++-- tools/tool-testing/output-log.js | 9 ++- tools/tool-testing/run.js | 23 ++------ tools/tool-testing/selftest.js | 2 +- tools/tool-testing/test-utils.js | 97 ++++++++++++++++---------------- 5 files changed, 72 insertions(+), 72 deletions(-) diff --git a/tools/tool-testing/matcher.js b/tools/tool-testing/matcher.js index 44589d0ae9..c23a0ac902 100644 --- a/tools/tool-testing/matcher.js +++ b/tools/tool-testing/matcher.js @@ -72,11 +72,13 @@ export default class Matcher { let timer = null; if (timeout) { + const failure = new TestFailure('match-timeout', { + run: this.run, + pattern: this.matchPattern, + }); + timer = setTimeout(() => { - this.rejectMatch(new TestFailure('match-timeout', { - run: this.run, - pattern: this.matchPattern - })); + this.rejectMatch(failure); }, timeout * 1000); } else { return mp; @@ -182,3 +184,6 @@ export default class Matcher { } } } + +import { markThrowingMethods } from "./test-utils.js"; +markThrowingMethods(Matcher.prototype); diff --git a/tools/tool-testing/output-log.js b/tools/tool-testing/output-log.js index 246f087297..aabf0f482e 100644 --- a/tools/tool-testing/output-log.js +++ b/tools/tool-testing/output-log.js @@ -69,6 +69,10 @@ export default class OutputLog { } forbid(pattern, channel) { + const failure = new TestFailure('forbidden-string-present', { + run: this.run, + }); + this.lines.forEach((line) => { if (channel && channel !== line.channel) { return; @@ -77,7 +81,7 @@ export default class OutputLog { const match = (pattern instanceof RegExp) ? (line.text.match(pattern)) : (line.text.indexOf(pattern) !== -1); if (match) { - throw new TestFailure('forbidden-string-present', { run: this.run }); + throw failure; } }); } @@ -86,3 +90,6 @@ export default class OutputLog { return this.lines; } } + +import { markThrowingMethods } from "./test-utils.js"; +markThrowingMethods(OutputLog.prototype); diff --git a/tools/tool-testing/run.js b/tools/tool-testing/run.js index c650271e44..7d64766897 100644 --- a/tools/tool-testing/run.js +++ b/tools/tool-testing/run.js @@ -272,12 +272,13 @@ export default class Run { this.extraTime = 0; let timer; + const failure = new TestFailure('exit-timeout', { run: this }); const promise = new Promise((resolve, reject) => { this.exitPromiseResolvers.push(resolve); timer = setTimeout(() => { this.exitPromiseResolvers = this.exitPromiseResolvers.filter(r => r !== resolve); - reject(new TestFailure('exit-timeout', { run: this })); + reject(failure); }, timeout * 1000); }); @@ -517,21 +518,5 @@ export default class Run { } } -// `Run` class methods to wrap with `markStack` -[ - 'expectEnd', - 'expectExit', - 'forbid', - 'forbidAll', - 'forbidErr', - 'match', - 'matchBeforeExit', - 'matchErr', - 'matchErrBeforeExit', - 'read', - 'readErr', - 'stop', - 'tellMongo', -].forEach((functionName) => { - Run.prototype[functionName] = parseStackMarkTop(Run.prototype[functionName]); -}); +import { markThrowingMethods } from "./test-utils.js"; +markThrowingMethods(Run.prototype); diff --git a/tools/tool-testing/selftest.js b/tools/tool-testing/selftest.js index a7acdf6ee8..4b4d813242 100644 --- a/tools/tool-testing/selftest.js +++ b/tools/tool-testing/selftest.js @@ -21,7 +21,7 @@ import "../tool-env/install-runtime.js"; // Use this to decorate functions that throw TestFailure. Decorate the // first function that should not be included in the call stack shown // to the user. -export const markStack = parseStackMarkTop; +export { parseStackMarkTop as markStack }; // Call from a test to throw a TestFailure exception and bail out of the test export const fail = parseStackMarkTop(function (reason) { diff --git a/tools/tool-testing/test-utils.js b/tools/tool-testing/test-utils.js index ba493ac5d1..0aa5334ffd 100644 --- a/tools/tool-testing/test-utils.js +++ b/tools/tool-testing/test-utils.js @@ -1,36 +1,31 @@ -var config = require('../meteor-services/config.js'); -var utils = require('../utils/utils.js'); -var auth = require('../meteor-services/auth.js'); -var selftest = require('./selftest.js'); -var httpHelpers = require('../utils/http-helpers.js'); -var _ = require('underscore'); - +import { getAuthDDPUrl } from '../meteor-services/config.js'; +import { timeoutScaleFactor } from '../utils/utils.js'; +import { withAccountsConnection } from '../meteor-services/auth.js'; +import { fail, markStack } from './selftest.js'; +import { request } from '../utils/http-helpers.js'; +import { isEqual } from 'underscore'; import { loadIsopackage } from '../tool-env/isopackets.js' -var randomString = function (charsCount) { +export function randomString(charsCount) { var chars = 'abcdefghijklmnopqrstuvwxyz'; var str = ''; for (var i = 0; i < charsCount; i++) { str = str + chars.charAt(Math.floor(Math.random() * chars.length)); } return str; -}; +} -exports.accountsCommandTimeoutSecs = 15 * utils.timeoutScaleFactor; +export const accountsCommandTimeoutSecs = 15 * timeoutScaleFactor; -exports.randomString = randomString; - -var randomAppName = function () { +export function randomAppName() { return 'selftest-app-' + randomString(10); -}; +} -exports.randomAppName = randomAppName; - -exports.randomUserEmail = function () { +export function randomUserEmail() { return 'selftest-user-' + randomString(15) + '@guerrillamail.com'; -}; +} -exports.login = function (s, username, password) { +export function login(s, username, password) { var run = s.run('login'); run.waitSecs(15); run.matchErr('Username:'); @@ -40,33 +35,30 @@ exports.login = function (s, username, password) { run.waitSecs(15); run.matchErr('Logged in as ' + username + "."); run.expectExit(0); -}; +} -exports.logout = function (s) { +export function logout(s) { var run = s.run('logout'); run.waitSecs(15); run.matchErr('Logged out'); run.expectExit(0); -}; - -var registrationUrlRegexp = - /https:\/\/www\.meteor\.com\/setPassword\?([a-zA-Z0-9\+\/]+)/; -exports.registrationUrlRegexp = registrationUrlRegexp; - -function ddpConnect(url) { - return loadIsopackage('ddp-client').DDP.connect(url); } -exports.ddpConnect = ddpConnect; +export const registrationUrlRegexp = + /https:\/\/www\.meteor\.com\/setPassword\?([a-zA-Z0-9\+\/]+)/; + +export function ddpConnect(url) { + return loadIsopackage('ddp-client').DDP.connect(url); +} // Given a registration token created by doing a deferred registration // with `email`, makes a DDP connection to the accounts server and // finishes the registration process. -exports.registerWithToken = function (token, username, password, email) { +export function registerWithToken(token, username, password, email) { // XXX It might make more sense to hard-code the DDP url to // https://www.meteor.com, since that's who the sandboxes are talking // to. - var accountsConn = ddpConnect(config.getAuthDDPUrl()); + var accountsConn = ddpConnect(getAuthDDPUrl()); var registrationTokenInfo = accountsConn.call('registrationTokenInfo', token); var registrationCode = registrationTokenInfo.code; @@ -78,57 +70,56 @@ exports.registerWithToken = function (token, username, password, email) { code: registrationCode }); accountsConn.close(); -}; +} -exports.randomOrgName = function () { +export function randomOrgName() { return "selftestorg" + exports.randomString(10); -}; +} // Logs in as the specified user and creates a randomly named // organization. Returns the organization name. Calls selftest.fail if // the organization can't be created. -exports.createOrganization = function (username, password) { +export function createOrganization(username, password) { var orgName = exports.randomOrgName(); - auth.withAccountsConnection(function (conn) { + withAccountsConnection(function (conn) { try { conn.call("login", { meteorAccountsLoginInfo: { username: username, password: password }, clientInfo: {} }); } catch (err) { - selftest.fail("Failed to log in to Meteor developer accounts\n" + + fail("Failed to log in to Meteor developer accounts\n" + "with test user: " + err); } try { conn.call("createOrganization", orgName); } catch (err) { - selftest.fail("Failed to create organization: " + err); + fail("Failed to create organization: " + err); } })(); return orgName; -}; +} -exports.getMeteorRuntimeConfigFromHTML = function (html) { +export function getMeteorRuntimeConfigFromHTML(html) { var m = html.match(/__meteor_runtime_config__ = JSON.parse\(decodeURIComponent\("([^"]+?)"\)\)/); if (! m) { - selftest.fail("Can't find __meteor_runtime_config__"); + fail("Can't find __meteor_runtime_config__"); } return JSON.parse(decodeURIComponent(m[1])); -}; - +} // Poll the given app looking for the correct settings. Throws an error // if the settings aren't found after a timeout. -exports.checkForSettings = selftest.markStack(function (appName, settings, timeoutSecs) { +export const checkForSettings = markStack(function (appName, settings, timeoutSecs) { var timeoutDate = new Date(new Date().valueOf() + timeoutSecs * 1000); while (true) { if (new Date() >= timeoutDate) { - selftest.fail('Expected settings not found on app ' + appName); + fail('Expected settings not found on app ' + appName); } - var result = httpHelpers.request('http://' + appName); + var result = request('http://' + appName); // XXX This is brittle; the test will break if we start formatting the // __meteor_runtime_config__ JS differently. Ideally we'd do something @@ -146,3 +137,15 @@ exports.checkForSettings = selftest.markStack(function (appName, settings, timeo } } }); + +export function markThrowingMethods(prototype) { + Object.keys(prototype).forEach(key => { + const value = prototype[key]; + if (typeof value === "function") { + const code = Function.prototype.toString.call(value); + if (/\bnew TestFailure\b/.test(code)) { + prototype[name] = markStack(value); + } + } + }); +} From 68fc39af73f4e2edc849b4a87a8410994ab17e52 Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Sun, 6 Jan 2019 19:12:05 -0500 Subject: [PATCH 064/134] Bump package versions for 1.8.1-beta.11 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/npm-mongo/package.js | 2 +- packages/reactive-dict/package.js | 2 +- packages/session/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 d7db7476d5..51289871ed 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.10' + version: '1.6.0-beta181.11' }); Package.onUse(function (api) { diff --git a/packages/ddp-server/package.js b/packages/ddp-server/package.js index cbac1a3075..16d7bc391c 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.10', + version: '2.3.0-beta181.11', documentation: null }); diff --git a/packages/meteor-tool/package.js b/packages/meteor-tool/package.js index b76af4ad26..383fbd14f9 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.10' + version: '1.8.1-beta.11' }); Package.includeTool(); diff --git a/packages/modern-browsers/package.js b/packages/modern-browsers/package.js index d06a0a7061..96a4afa117 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.10", + version: "0.1.4-beta181.11", summary: "API for defining the boundary between modern and legacy " + "JavaScript clients", documentation: "README.md" diff --git a/packages/npm-mongo/package.js b/packages/npm-mongo/package.js index eea5544732..284cbf6b2a 100644 --- a/packages/npm-mongo/package.js +++ b/packages/npm-mongo/package.js @@ -3,7 +3,7 @@ Package.describe({ summary: "Wrapper around the mongo npm package", - version: "3.1.2-beta181.10", + version: "3.1.2-beta181.11", documentation: null }); diff --git a/packages/reactive-dict/package.js b/packages/reactive-dict/package.js index 588457363e..8bb57f3488 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.10' + version: '1.3.0-beta181.11' }); Package.onUse(function (api) { diff --git a/packages/session/package.js b/packages/session/package.js index 205a8ac79f..d0e88bdd74 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.10' + version: '1.2.0-beta181.11' }); Package.onUse(function (api) { diff --git a/scripts/admin/meteor-release-experimental.json b/scripts/admin/meteor-release-experimental.json index d9d012b2d1..b89d179575 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.10", + "version": "1.8.1-beta.11", "recommended": false, "official": false, "description": "Meteor" From fbf463c6e35dbdd2807c7c0a0f4c700e5361ee2a Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Thu, 10 Jan 2019 11:33:33 -0500 Subject: [PATCH 065/134] Bump package versions for 1.8.1-beta.12 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/npm-mongo/package.js | 2 +- packages/reactive-dict/package.js | 2 +- packages/session/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 51289871ed..3fab41944f 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.11' + version: '1.6.0-beta181.12' }); Package.onUse(function (api) { diff --git a/packages/ddp-server/package.js b/packages/ddp-server/package.js index 16d7bc391c..7c171bfd12 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.11', + version: '2.3.0-beta181.12', documentation: null }); diff --git a/packages/meteor-tool/package.js b/packages/meteor-tool/package.js index 383fbd14f9..2fd68f081b 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.11' + version: '1.8.1-beta.12' }); Package.includeTool(); diff --git a/packages/modern-browsers/package.js b/packages/modern-browsers/package.js index 96a4afa117..5584a5998d 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.11", + version: "0.1.4-beta181.12", summary: "API for defining the boundary between modern and legacy " + "JavaScript clients", documentation: "README.md" diff --git a/packages/npm-mongo/package.js b/packages/npm-mongo/package.js index 284cbf6b2a..cc7bbe99d5 100644 --- a/packages/npm-mongo/package.js +++ b/packages/npm-mongo/package.js @@ -3,7 +3,7 @@ Package.describe({ summary: "Wrapper around the mongo npm package", - version: "3.1.2-beta181.11", + version: "3.1.2-beta181.12", documentation: null }); diff --git a/packages/reactive-dict/package.js b/packages/reactive-dict/package.js index 8bb57f3488..df3fc832bb 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.11' + version: '1.3.0-beta181.12' }); Package.onUse(function (api) { diff --git a/packages/session/package.js b/packages/session/package.js index d0e88bdd74..33600b1f3c 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.11' + version: '1.2.0-beta181.12' }); Package.onUse(function (api) { diff --git a/scripts/admin/meteor-release-experimental.json b/scripts/admin/meteor-release-experimental.json index b89d179575..b19609c081 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.11", + "version": "1.8.1-beta.12", "recommended": false, "official": false, "description": "Meteor" From 435d2650273ab8238e5f13da1d0d7760f30d9678 Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Thu, 15 Nov 2018 14:24:23 -0500 Subject: [PATCH 066/134] Update cordova-plugin-* dependencies of webapp package. --- packages/webapp/package.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/webapp/package.js b/packages/webapp/package.js index 58617b104f..8040b4cdcd 100644 --- a/packages/webapp/package.js +++ b/packages/webapp/package.js @@ -20,9 +20,9 @@ Npm.strip({ }); Cordova.depends({ - 'cordova-plugin-whitelist': '1.3.2', - 'cordova-plugin-wkwebview-engine': '1.1.3', - 'cordova-plugin-meteor-webapp': '1.6.0' + 'cordova-plugin-whitelist': '1.3.3', + 'cordova-plugin-wkwebview-engine': '1.1.4', + 'cordova-plugin-meteor-webapp': '1.6.2' }); Package.onUse(function (api) { From f4485fe8076677d1c8cb6ef967f7e4e5ea75f34c Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Thu, 15 Nov 2018 15:14:05 -0500 Subject: [PATCH 067/134] Use build.json to opt out of incompatible Xcode 10 build system. https://github.com/apache/cordova-ios/issues/407 --- tools/cordova/project.js | 48 +++++++++++++++++++++++++++++++++++----- 1 file changed, 43 insertions(+), 5 deletions(-) diff --git a/tools/cordova/project.js b/tools/cordova/project.js index e118a0fd30..d543c05116 100644 --- a/tools/cordova/project.js +++ b/tools/cordova/project.js @@ -87,6 +87,9 @@ export class CordovaProject { this.pluginsDir = files.pathJoin(this.projectRoot, 'plugins'); + this.buildJsonPath = files.convertToOSPath( + files.pathJoin(this.projectRoot, 'build.json')); + this.createIfNeeded(); } @@ -182,6 +185,31 @@ outdated platforms`); undefined, undefined, config); }, undefined, null); } + + this.writeBuildJson(); + } + + writeBuildJson() { + if (files.exists(this.buildJsonPath)) { + return; + } + + const iosCommonOptions = { + // See https://github.com/apache/cordova-ios/issues/407: + buildFlag: [ + "-UseModernBuildSystem=0" + ] + }; + + files.writeFile( + this.buildJsonPath, + JSON.stringify({ + ios: { + debug: iosCommonOptions, + release: iosCommonOptions, + } + }, null, 2) + "\n", + ); } // Preparing @@ -240,8 +268,10 @@ outdated platforms`); delete require.cache[files.pathJoin(this.projectRoot, 'platforms/ios/cordova/lib/prepare.js')]; - const commandOptions = _.extend(this.defaultOptions, - { platforms: [platform] }); + const commandOptions = { + ...this.defaultOptions, + platforms: [platform], + }; this.runCommands(`preparing Cordova project for platform \ ${displayNameForPlatform(platform)}`, async () => { @@ -254,8 +284,11 @@ ${displayNameForPlatform(platform)}`, async () => { buildForPlatform(platform, options = {}, extraPaths) { assert(platform); - const commandOptions = _.extend(this.defaultOptions, - { platforms: [platform], options: options }); + const commandOptions = { + ...this.defaultOptions, + platforms: [platform], + options, + }; this.runCommands(`building Cordova app for platform \ ${displayNameForPlatform(platform)}`, async () => { @@ -266,6 +299,7 @@ ${displayNameForPlatform(platform)}`, async () => { // Running async run(platform, isDevice, options = [], extraPaths = []) { + options.push('--buildConfig', this.buildJsonPath); options.push(isDevice ? '--device' : '--emulator'); let env = this.defaultEnvWithPathsAdded(...extraPaths); @@ -760,7 +794,11 @@ convenience, but you should adjust your dependencies.`); // Cordova commands support get defaultOptions() { - return { silent: !Console.verbose, verbose: Console.verbose }; + return { + silent: !Console.verbose, + verbose: Console.verbose, + buildConfig: this.buildJsonPath, + }; } defaultEnvWithPathsAdded(...extraPaths) { From 6e262d42186e0542339b147d6398ac24ff0d37b6 Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Fri, 11 Jan 2019 12:17:06 -0500 Subject: [PATCH 068/134] Update cordova-plugin-meteor-webapp to version 1.6.3. This update includes the following PRs: https://github.com/meteor/cordova-plugin-meteor-webapp/pull/59 https://github.com/meteor/cordova-plugin-meteor-webapp/pull/65 https://github.com/meteor/cordova-plugin-meteor-webapp/pull/67 --- packages/webapp/package.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/webapp/package.js b/packages/webapp/package.js index 8040b4cdcd..69830e7f80 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' + version: '1.7.3' }); Npm.depends({"basic-auth-connect": "1.0.0", @@ -22,7 +22,7 @@ Npm.strip({ Cordova.depends({ 'cordova-plugin-whitelist': '1.3.3', 'cordova-plugin-wkwebview-engine': '1.1.4', - 'cordova-plugin-meteor-webapp': '1.6.2' + 'cordova-plugin-meteor-webapp': '1.6.3' }); Package.onUse(function (api) { From 4890fbe4b16c0e19b2ef21d50b02631b78d76080 Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Fri, 11 Jan 2019 13:06:33 -0500 Subject: [PATCH 069/134] Mention Cordova fixes (#10339) in History.md. --- History.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/History.md b/History.md index 6405813878..5dd7e72398 100644 --- a/History.md +++ b/History.md @@ -46,6 +46,10 @@ N/A [MongoDB Jira issue](https://jira.mongodb.org/browse/SERVER-38862) for more details. +* Multiple Cordova-related bugs have been fixed, including Xcode 10 build + incompatibilities and hot code push errors due to duplicated + images/assets. [PR #10339](https://github.com/meteor/meteor/pull/10339) + ## v1.8.0.2, 2019-01-07 ### Breaking changes From bbc2fb636e58b5e75c067c957ad687ccc7b055ab Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Fri, 11 Jan 2019 13:08:45 -0500 Subject: [PATCH 070/134] Bump package versions for 1.8.1-beta.13 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/npm-mongo/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 +- 9 files changed, 9 insertions(+), 9 deletions(-) diff --git a/packages/autoupdate/package.js b/packages/autoupdate/package.js index 3fab41944f..f1709e13b9 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.12' + version: '1.6.0-beta181.13' }); Package.onUse(function (api) { diff --git a/packages/ddp-server/package.js b/packages/ddp-server/package.js index 7c171bfd12..8b82e1eb94 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.12', + version: '2.3.0-beta181.13', documentation: null }); diff --git a/packages/meteor-tool/package.js b/packages/meteor-tool/package.js index 2fd68f081b..6578f61e19 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.12' + version: '1.8.1-beta.13' }); Package.includeTool(); diff --git a/packages/modern-browsers/package.js b/packages/modern-browsers/package.js index 5584a5998d..6c34d0af07 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.12", + version: "0.1.4-beta181.13", summary: "API for defining the boundary between modern and legacy " + "JavaScript clients", documentation: "README.md" diff --git a/packages/npm-mongo/package.js b/packages/npm-mongo/package.js index cc7bbe99d5..b872598960 100644 --- a/packages/npm-mongo/package.js +++ b/packages/npm-mongo/package.js @@ -3,7 +3,7 @@ Package.describe({ summary: "Wrapper around the mongo npm package", - version: "3.1.2-beta181.12", + version: "3.1.2-beta181.13", documentation: null }); diff --git a/packages/reactive-dict/package.js b/packages/reactive-dict/package.js index df3fc832bb..762d0a93ab 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.12' + version: '1.3.0-beta181.13' }); Package.onUse(function (api) { diff --git a/packages/session/package.js b/packages/session/package.js index 33600b1f3c..353406e549 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.12' + version: '1.2.0-beta181.13' }); Package.onUse(function (api) { diff --git a/packages/webapp/package.js b/packages/webapp/package.js index 69830e7f80..3b9ad3c5ac 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.3' + version: '1.7.3-beta181.13' }); 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 b19609c081..14caae0db8 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.12", + "version": "1.8.1-beta.13", "recommended": false, "official": false, "description": "Meteor" From 5d43d2c2b2d9c32c0173a0d37595d16cdfd6e605 Mon Sep 17 00:00:00 2001 From: georgyberdyshev Date: Fri, 11 Jan 2019 23:08:53 +0100 Subject: [PATCH 071/134] Selectively disable compression based on the incoming request (#10378) Setting the x-no-compression request header disables compression. Closes #10377. --- packages/webapp/webapp_server.js | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/packages/webapp/webapp_server.js b/packages/webapp/webapp_server.js index 1037d44aa7..d7a639169e 100644 --- a/packages/webapp/webapp_server.js +++ b/packages/webapp/webapp_server.js @@ -64,6 +64,16 @@ var sha1 = function (contents) { return hash.digest('hex'); }; + function shouldCompress(req, res) { + if (req.headers['x-no-compression']) { + // don't compress responses with this request header + return false; + } + + // fallback to standard filter function + return compress.filter(req, res); +}; + // #BrowserIdentification // // We have multiple places that want to identify the browser: the @@ -819,7 +829,7 @@ function runWebAppServer() { app.use(rawConnectHandlers); // Auto-compress any json, javascript, or text. - app.use(compress()); + app.use(compress({filter: shouldCompress})); // parse cookies into an object app.use(cookieParser()); From e5c6d2ab4c2c37f42371340cb56be450e028f433 Mon Sep 17 00:00:00 2001 From: Bartosz Wojtkowiak Date: Mon, 14 Jan 2019 16:35:18 +0100 Subject: [PATCH 072/134] Use new `WebAppLocalServer.switchToPendingVersion` before reload (#10219) --- History.md | 13 ++++++++----- packages/reload/reload.js | 30 ++++++++++++++++++++---------- 2 files changed, 28 insertions(+), 15 deletions(-) diff --git a/History.md b/History.md index 5dd7e72398..88ca8ee404 100644 --- a/History.md +++ b/History.md @@ -40,6 +40,14 @@ N/A `g++` used when running `npm install` in the `bundle/programs/server` directory. +* Cordova Hot Code Push mechanism is now switching versions explicitly with + call to `WebAppLocalServer.switchToPendingVersion` instead of trying to + switch every time a browser reload is detected. If you use any third + party package or have your own HCP routines implemented be sure to call + it before forcing a browser reload. If you use the automatic reload from + the `Reload` meteor package you do not need to do anything. + [cordova-plugin-meteor-webapp PR #62](https://github.com/meteor/cordova-plugin-meteor-webapp/pull/62) + * The `meteor mongo` command no longer uses the `--quiet` option, so the normal startup text will be displayed, albeit without the banner about Mongo's free monitoring service. See this @@ -97,11 +105,6 @@ N/A case-insensitively by the `modern-browsers` package. [PR #10334](https://github.com/meteor/meteor/pull/10334) -* The `meteor-promise` package has been updated to version 0.8.7, which - includes a [commit](https://github.com/meteor/promise/commit/bbe4f0d20b70417950381aea112993c4cc8c1168) - that should prevent memory leaks when excess fibers are discarded from - the `Fiber` pool. - * 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 diff --git a/packages/reload/reload.js b/packages/reload/reload.js index 5ec40abaaf..4c7486f01d 100644 --- a/packages/reload/reload.js +++ b/packages/reload/reload.js @@ -60,7 +60,7 @@ try { // Be consistently null, for safety safeSessionStorage = null; } -} catch(e) { +} catch (e) { // Expected on chrome with strict security, or if sessionStorage not supported safeSessionStorage = null; } @@ -125,7 +125,7 @@ Reload._onMigrate = function (name, callback) { callback = name; name = undefined; } - providers.push({name: name, callback: callback}); + providers.push({ name: name, callback: callback }); }; // Called by packages when they start up. @@ -220,17 +220,27 @@ Reload._reload = function (options) { setTimeout(reload, 1); } + function forceBrowserReload() { + // We'd like to make the browser reload the page using location.replace() + // instead of location.reload(), because this avoids validating assets + // with the server if we still have a valid cached copy. This doesn't work + // when the location contains a hash however, because that wouldn't reload + // the page and just scroll to the hash location instead. + if (window.location.hash || window.location.href.endsWith("#")) { + window.location.reload(); + } else { + window.location.replace(window.location.href); + } + } + function reload() { if (Reload._migrate(tryReload, options)) { - // We'd like to make the browser reload the page using location.replace() - // instead of location.reload(), because this avoids validating assets - // with the server if we still have a valid cached copy. This doesn't work - // when the location contains a hash however, because that wouldn't reload - // the page and just scroll to the hash location instead. - if (window.location.hash || window.location.href.endsWith("#")) { - window.location.reload(); + if (Meteor.isCordova) { + WebAppLocalServer.switchToPendingVersion(() => { + forceBrowserReload(); + }); } else { - window.location.replace(window.location.href); + forceBrowserReload(); } } } From 6beef667178c829c7cc0611c74d5ce971ad58818 Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Mon, 14 Jan 2019 10:44:07 -0500 Subject: [PATCH 073/134] Bump minor version of reload package following PR #10219. --- packages/reload/package.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/reload/package.js b/packages/reload/package.js index b4fd329aa8..c7269238ca 100644 --- a/packages/reload/package.js +++ b/packages/reload/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "Reload the page while preserving application state.", - version: '1.2.0' + version: '1.3.0' }); Package.onUse(function (api) { From adaf6537571c5d62c644f9f6cab7ba7a19768c75 Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Mon, 14 Jan 2019 10:45:43 -0500 Subject: [PATCH 074/134] Bump package versions for 1.8.1-beta.14 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/npm-mongo/package.js | 2 +- packages/reactive-dict/package.js | 2 +- packages/reload/package.js | 2 +- packages/session/package.js | 2 +- packages/webapp/package.js | 2 +- scripts/admin/meteor-release-experimental.json | 2 +- 10 files changed, 10 insertions(+), 10 deletions(-) diff --git a/packages/autoupdate/package.js b/packages/autoupdate/package.js index f1709e13b9..47979701b1 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.13' + version: '1.6.0-beta181.14' }); Package.onUse(function (api) { diff --git a/packages/ddp-server/package.js b/packages/ddp-server/package.js index 8b82e1eb94..aef4f10fe0 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.13', + version: '2.3.0-beta181.14', documentation: null }); diff --git a/packages/meteor-tool/package.js b/packages/meteor-tool/package.js index 6578f61e19..5f12339b43 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.13' + version: '1.8.1-beta.14' }); Package.includeTool(); diff --git a/packages/modern-browsers/package.js b/packages/modern-browsers/package.js index 6c34d0af07..955ce2cf4a 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.13", + version: "0.1.4-beta181.14", summary: "API for defining the boundary between modern and legacy " + "JavaScript clients", documentation: "README.md" diff --git a/packages/npm-mongo/package.js b/packages/npm-mongo/package.js index b872598960..1553e8cdf1 100644 --- a/packages/npm-mongo/package.js +++ b/packages/npm-mongo/package.js @@ -3,7 +3,7 @@ Package.describe({ summary: "Wrapper around the mongo npm package", - version: "3.1.2-beta181.13", + version: "3.1.2-beta181.14", documentation: null }); diff --git a/packages/reactive-dict/package.js b/packages/reactive-dict/package.js index 762d0a93ab..69ae24517a 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.13' + version: '1.3.0-beta181.14' }); Package.onUse(function (api) { diff --git a/packages/reload/package.js b/packages/reload/package.js index c7269238ca..41cb838f80 100644 --- a/packages/reload/package.js +++ b/packages/reload/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "Reload the page while preserving application state.", - version: '1.3.0' + version: '1.3.0-beta181.14' }); Package.onUse(function (api) { diff --git a/packages/session/package.js b/packages/session/package.js index 353406e549..f008730b36 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.13' + version: '1.2.0-beta181.14' }); Package.onUse(function (api) { diff --git a/packages/webapp/package.js b/packages/webapp/package.js index 3b9ad3c5ac..cc37c5ee5d 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.3-beta181.13' + version: '1.7.3-beta181.14' }); 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 14caae0db8..65cf4b09d4 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.13", + "version": "1.8.1-beta.14", "recommended": false, "official": false, "description": "Meteor" From 5e26ebb6a9d68cea176869ac3a83121dcee7e925 Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Mon, 14 Jan 2019 14:01:49 -0500 Subject: [PATCH 075/134] Update cordova-{android,ios} to latest versions. This version of cordova-android includes the PR that previously required us to fork the package: https://github.com/apache/cordova-android/pull/417 The cordova-ios update is just 4.5.4 => 4.5.5, so hopefully entirely backwards compatible. :crossed-fingers: --- History.md | 3 +++ tools/cordova/index.js | 7 ++----- tools/tests/cordova-builds.js | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/History.md b/History.md index 87244f4a65..2d3f2b92ec 100644 --- a/History.md +++ b/History.md @@ -52,6 +52,9 @@ N/A incompatibilities and hot code push errors due to duplicated images/assets. [PR #10339](https://github.com/meteor/meteor/pull/10339) +* The `cordova-android` and `cordova-ios` npm dependencies have been + updated to 7.1.4 (from 6.4.0) and 4.5.5 (from 4.5.4), respectively. + * The `meteor mongo` command no longer uses the `--quiet` option, so the normal startup text will be displayed, albeit without the banner about Mongo's free monitoring service. See this diff --git a/tools/cordova/index.js b/tools/cordova/index.js index 7763f41929..3038af4caf 100644 --- a/tools/cordova/index.js +++ b/tools/cordova/index.js @@ -14,11 +14,8 @@ export const CORDOVA_DEV_BUNDLE_VERSIONS = { }; export const CORDOVA_PLATFORM_VERSIONS = { - // This commit represents cordova-android@6.4.0 plus - // https://github.com/apache/cordova-android/pull/417, aka - // https://github.com/meteor/cordova-android/tree/v6.4.0-with-pr-417: - 'android': 'https://github.com/meteor/cordova-android/tarball/317db7df0f7a054444197bc6d28453cf4ab23280', - 'ios': '4.5.4' + 'android': '7.1.4', + 'ios': '4.5.5', }; const PLATFORM_TO_DISPLAY_NAME_MAP = { diff --git a/tools/tests/cordova-builds.js b/tools/tests/cordova-builds.js index 4e7ba7c79c..3e721a5df8 100644 --- a/tools/tests/cordova-builds.js +++ b/tools/tests/cordova-builds.js @@ -15,7 +15,7 @@ var checkMobileServer = selftest.markStack(function (s, expected) { checkIndexHtml(files.pathJoin( relBuildDir, - "android/project/assets/www/application/index.html" + "android/project/app/src/main/assets/www/application/index.html" )); if (isOSX) { From 2afe4770169d8e3c155469e9e7bc69f17bcf876e Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Mon, 14 Jan 2019 18:46:03 -0500 Subject: [PATCH 076/134] Bump cordova-plugin-meteor-webapp version to 1.6.4. Includes https://github.com/meteor/cordova-plugin-meteor-webapp/pull/71 --- packages/webapp/package.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/webapp/package.js b/packages/webapp/package.js index cc37c5ee5d..88dbb69b3d 100644 --- a/packages/webapp/package.js +++ b/packages/webapp/package.js @@ -22,7 +22,7 @@ Npm.strip({ Cordova.depends({ 'cordova-plugin-whitelist': '1.3.3', 'cordova-plugin-wkwebview-engine': '1.1.4', - 'cordova-plugin-meteor-webapp': '1.6.3' + 'cordova-plugin-meteor-webapp': '1.6.4' }); Package.onUse(function (api) { From a89b34c4c2d8335b337355eb61c382949ff762d9 Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Mon, 14 Jan 2019 20:15:16 -0500 Subject: [PATCH 077/134] Remove hash of minimum modern browser versions from client hash. This partially reverts commit 99b79dc00f4400fed6af6b786c593b88efded78a, which was added as part of PR #10055 in an effort to trigger hot reloads on the client when/if the definition of a "modern" browser happened to change, due to server code calling setMinimumBrowserVersions. Although changes in the minimum modern browser versions are pretty rare, it seemed important to incorporate this information into the client hash, because code sent to the client tends to be dramatically different depending on whether the client is considered modern. However, this change was made without updating the corresponding version calculations in CordovaBuilder#appendVersion in tools/cordova/builder.js, so the versions in program.json for Cordova apps disagreed with the versions served in manifest.json by the web server, leading to the problems described by @lorensr in this cordova-plugin-meteor-webapp issue: https://github.com/meteor/cordova-plugin-meteor-webapp/issues/69 It would be nice to include the minimum versions hash in program.json for Cordova builds, but unfortunately these versions are not known at build time, because they are determined by calls to setMinimumBrowserVersions during server startup. In other words, if we wanted to access that information during Cordova builds, we would have to start the web server and run all server-side application initialization code just to find out if setMinimumBrowserVersions was called anywhere. In the future, we could consider including the minimum versions hash in manifest.json, so cordova-plugin-meteor-webapp could compare the current version to the new version whenever it fetches manifest.json. However, I think simply removing the minimum versions hash from the client version calculation is a fine solution in the meantime. If a developer needs to trigger a hot reload because they changed their minimum modern versions, they should just be sure to change their client code at the same time. Any change that would normally trigger a client reload will work. --- packages/webapp/webapp_server.js | 14 +++++--------- tools/cordova/builder.js | 4 ++++ 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/packages/webapp/webapp_server.js b/packages/webapp/webapp_server.js index d7a639169e..c8fb1870b4 100644 --- a/packages/webapp/webapp_server.js +++ b/packages/webapp/webapp_server.js @@ -14,10 +14,7 @@ import query from "qs-middleware"; import parseRequest from "parseurl"; import basicAuth from "basic-auth-connect"; import { lookup as lookupUserAgent } from "useragent"; -import { - isModern, - calculateHashOfMinimumVersions, -} from "meteor/modern-browsers"; +import { isModern } from "meteor/modern-browsers"; import send from "send"; import { removeExistingSocketFile, @@ -693,11 +690,6 @@ function runWebAppServer() { const { PUBLIC_SETTINGS } = __meteor_runtime_config__; const configOverrides = { PUBLIC_SETTINGS, - // Since the minimum modern versions defined in the modern-versions - // package affect which bundle a given client receives, any changes - // in those versions should trigger a corresponding change in the - // versions calculated below. - minimumModernVersionsHash: calculateHashOfMinimumVersions(), }; const oldProgram = WebApp.clientPrograms[arch]; @@ -707,6 +699,10 @@ function runWebAppServer() { // Use arrow functions so that these versions can be lazily // calculated later, and so that they will not be included in the // staticFiles[manifestUrl].content string below. + // + // Note: these version calculations must be kept in agreement with + // CordovaBuilder#appendVersion in tools/cordova/builder.js, or hot + // code push will reload Cordova apps unnecessarily. version: () => WebAppHashing.calculateClientHash( manifest, null, configOverrides), versionRefreshable: () => WebAppHashing.calculateClientHash( diff --git a/tools/cordova/builder.js b/tools/cordova/builder.js index 12cdbe7a4a..5d7c0e409d 100644 --- a/tools/cordova/builder.js +++ b/tools/cordova/builder.js @@ -451,6 +451,10 @@ export class CordovaBuilder { } appendVersion(program, publicSettings) { + // Note: these version calculations must be kept in agreement with + // generateClientProgram in packages/webapp/webapp_server.js, or hot + // code push will reload the app unnecessarily. + let configDummy = {}; configDummy.PUBLIC_SETTINGS = publicSettings || {}; From 3e060059d682db029bcfaa35c5115998a1b7bfe0 Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Mon, 14 Jan 2019 21:16:43 -0500 Subject: [PATCH 078/134] Bump package versions for 1.8.1-beta.15 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/npm-mongo/package.js | 2 +- packages/reactive-dict/package.js | 2 +- packages/reload/package.js | 2 +- packages/session/package.js | 2 +- packages/webapp/package.js | 2 +- scripts/admin/meteor-release-experimental.json | 2 +- 10 files changed, 10 insertions(+), 10 deletions(-) diff --git a/packages/autoupdate/package.js b/packages/autoupdate/package.js index 47979701b1..eb460b672b 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.14' + version: '1.6.0-beta181.15' }); Package.onUse(function (api) { diff --git a/packages/ddp-server/package.js b/packages/ddp-server/package.js index aef4f10fe0..0011035271 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.14', + version: '2.3.0-beta181.15', documentation: null }); diff --git a/packages/meteor-tool/package.js b/packages/meteor-tool/package.js index 5f12339b43..a41321425e 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.14' + version: '1.8.1-beta.15' }); Package.includeTool(); diff --git a/packages/modern-browsers/package.js b/packages/modern-browsers/package.js index 955ce2cf4a..79d7dffefe 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.14", + version: "0.1.4-beta181.15", summary: "API for defining the boundary between modern and legacy " + "JavaScript clients", documentation: "README.md" diff --git a/packages/npm-mongo/package.js b/packages/npm-mongo/package.js index 1553e8cdf1..76dc188c0b 100644 --- a/packages/npm-mongo/package.js +++ b/packages/npm-mongo/package.js @@ -3,7 +3,7 @@ Package.describe({ summary: "Wrapper around the mongo npm package", - version: "3.1.2-beta181.14", + version: "3.1.2-beta181.15", documentation: null }); diff --git a/packages/reactive-dict/package.js b/packages/reactive-dict/package.js index 69ae24517a..39767a2bba 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.14' + version: '1.3.0-beta181.15' }); Package.onUse(function (api) { diff --git a/packages/reload/package.js b/packages/reload/package.js index 41cb838f80..e8ebf1fa4d 100644 --- a/packages/reload/package.js +++ b/packages/reload/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "Reload the page while preserving application state.", - version: '1.3.0-beta181.14' + version: '1.3.0-beta181.15' }); Package.onUse(function (api) { diff --git a/packages/session/package.js b/packages/session/package.js index f008730b36..e3fa16fc0c 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.14' + version: '1.2.0-beta181.15' }); Package.onUse(function (api) { diff --git a/packages/webapp/package.js b/packages/webapp/package.js index 88dbb69b3d..c505734aec 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.3-beta181.14' + version: '1.7.3-beta181.15' }); 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 65cf4b09d4..e343ec9664 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.14", + "version": "1.8.1-beta.15", "recommended": false, "official": false, "description": "Meteor" From 65bc2b0100c68b891bfa1faae06327be40b03982 Mon Sep 17 00:00:00 2001 From: zodern Date: Wed, 16 Jan 2019 20:21:00 -0600 Subject: [PATCH 079/134] Fix reusing symlinks from initial build --- tools/isobuild/builder.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tools/isobuild/builder.js b/tools/isobuild/builder.js index 7140372103..f4b8eea9fe 100644 --- a/tools/isobuild/builder.js +++ b/tools/isobuild/builder.js @@ -546,11 +546,11 @@ Previous builder: ${previousBuilder.outputPath}, this builder: ${outputPath}` if (symlink && ! (relTo in this.usedAsFile)) { this._ensureDirectory(files.pathDirname(relTo)); const absTo = files.pathResolve(this.buildPath, relTo); - if (this.previousCreatedSymlinks[absFrom] !== absTo) { - symlinkWithOverwrite(absFrom, absTo); + if (this.previousCreatedSymlinks[absFrom] !== relTo) { + symlinkWithOverwrite(absFrom, absTo); } this.usedAsFile[relTo] = false; - this.createdSymlinks[absFrom] = absTo; + this.createdSymlinks[absFrom] = relTo; return; } From 285e1b50c31e1408b5ad1d03f5eb179386c22821 Mon Sep 17 00:00:00 2001 From: zodern Date: Wed, 16 Jan 2019 22:16:51 -0600 Subject: [PATCH 080/134] Clean up code --- tools/fs/watch.js | 1 + tools/isobuild/builder.js | 8 ++-- tools/runners/run-app.js | 87 ++++++++++++++++++--------------------- 3 files changed, 44 insertions(+), 52 deletions(-) diff --git a/tools/fs/watch.js b/tools/fs/watch.js index ecd3ed73df..7b0a1371f9 100644 --- a/tools/fs/watch.js +++ b/tools/fs/watch.js @@ -441,6 +441,7 @@ export class Watcher { const self = this; const keys = Object.keys(self.watchSet.files); + // Set up a watch for each file self._processBatches(keys, absPath => { if (! self.justCheckOnce) { self._watchFileOrDirectory(absPath, true); diff --git a/tools/isobuild/builder.js b/tools/isobuild/builder.js index f4b8eea9fe..9d69709ce3 100644 --- a/tools/isobuild/builder.js +++ b/tools/isobuild/builder.js @@ -289,19 +289,19 @@ Previous builder: ${previousBuilder.outputPath}, this builder: ${outputPath}` } else { hash = hash || sha1(getData()); + // Write is called multiple times for assets when they have multiple urls for the same file if (this.previousWrittenHashes[relPath] !== hash && this.writtenHashes[relPath] !== hash) { // Builder is used to create build products, which should be read-only; // users shouldn't be manually editing automatically generated files and // expecting the results to "stick". - // Write is called multiple times for assets when they have multiple urls for the same file const mode = executable ? 0o555 : 0o444 if (this.buildPath === this.outputPath || this.writtenHashes[relPath]) { // atomicallyRewriteFile handles overwriting files that have already been created - atomicallyRewriteFile(absPath, getData(), { - mode - }); + atomicallyRewriteFile(absPath, getData(), { + mode + }); } else { // Since builder is not updating in place, and // this build is only used if every file is successfully written, diff --git a/tools/runners/run-app.js b/tools/runners/run-app.js index 9892b23340..8105540093 100644 --- a/tools/runners/run-app.js +++ b/tools/runners/run-app.js @@ -763,19 +763,48 @@ _.extend(AppRunner.prototype, { var serverWatcher; var clientWatcher; + if (self.watchForChanges) { + serverWatcher = new watch.Watcher({ + watchSet: serverWatchSet, + onChange: function () { + self._resolvePromise("run", { + outcome: 'changed' + }); + }, + async: true + }); + } + var setupClientWatcher = function () { clientWatcher && clientWatcher.stop(); clientWatcher = new watch.Watcher({ - watchSet: bundleResult.clientWatchSet, - onChange: function () { + watchSet: bundleResult.clientWatchSet, + onChange: function () { var outcome = watch.isUpToDate(serverWatchSet) ? 'changed-refreshable' // only a client asset has changed : 'changed'; // both a client and server asset changed self._resolvePromise('run', { outcome: outcome }); - }, - async: true + }, + async: true }); }; + if (self.watchForChanges && canRefreshClient) { + setupClientWatcher(); + } + + function pauseClient(arch) { + return appProcess.proc.sendMessage("webapp-pause-client", { arch }); + } + + async function refreshClient(arch) { + if (typeof arch === "string") { + // This message will reload the client program and unpause it. + await appProcess.proc.sendMessage("webapp-reload-client", { arch }); + } + // If arch is not a string, the receiver of this message should + // assume all clients need to be refreshed. + await appProcess.proc.sendMessage("client-refresh"); + } function runPostStartupCallbacks(bundleResult) { const callbacks = bundleResult.postStartupCallbacks; @@ -808,59 +837,21 @@ _.extend(AppRunner.prototype, { } } - Promise.race([ + Console.enableProgressDisplay(false); + + const postStartupResult = Promise.race([ listenPromise, new Promise(resolve => setTimeout(resolve, 3000)) ]).then(() => { - if (self.watchForChanges) { - serverWatcher = new watch.Watcher({ - watchSet: serverWatchSet, - onChange: function () { - self._resolvePromise("run", { - outcome: 'changed' - }); - }, - async: true - }); - } + return runPostStartupCallbacks(bundleResult); + }).await(); - if (self.watchForChanges && canRefreshClient) { - setupClientWatcher(); - } - Console.enableProgressDisplay(false); - const postStartupResult = runPostStartupCallbacks(bundleResult); - - if (postStartupResult) { - self._resolvePromise('run', { - ...postStartupResult, - postStartupResult: true - }) - return postStartupResult; - } - }); - - function pauseClient(arch) { - return appProcess.proc.sendMessage("webapp-pause-client", { arch }); - } - - async function refreshClient(arch) { - if (typeof arch === "string") { - // This message will reload the client program and unpause it. - await appProcess.proc.sendMessage("webapp-reload-client", { arch }); - } - // If arch is not a string, the receiver of this message should - // assume all clients need to be refreshed. - await appProcess.proc.sendMessage("client-refresh"); - } + if (postStartupResult) return postStartupResult; // Wait for either the process to exit, or (if watchForChanges) a // source file to change. Or, for stop() to be called. var ret = runPromise.await(); - if (ret.postStartupResult) { - return ret; - } - try { while (ret.outcome === 'changed-refreshable') { if (! canRefreshClient) { From f9d17aaf0fcfee9857ec6390a5cfc5f277b88d57 Mon Sep 17 00:00:00 2001 From: zodern Date: Wed, 16 Jan 2019 22:17:28 -0600 Subject: [PATCH 081/134] Fix delaying render --- tools/console/console.js | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/tools/console/console.js b/tools/console/console.js index ab96374c11..e16a891fbb 100644 --- a/tools/console/console.js +++ b/tools/console/console.js @@ -314,6 +314,7 @@ class ProgressDisplayFull { } depaint() { + this._clearDelayedRender(); this._stream.write(spacesString(this._printedLength) + CARRIAGE_RETURN); } @@ -338,7 +339,7 @@ class ProgressDisplayFull { if (!this._renderTimeout && this._lastWrittenTime) { this._rerenderTimeout = setTimeout(() => { this._rerenderTimeout = null; - this._render.bind(this) + this._render() }, PROGRESS_THROTTLE_MS); } else if (this._lastWrittenTime === 0) { this._render(); @@ -353,11 +354,17 @@ class ProgressDisplayFull { this._headless = !! headless; } - _render() { + _clearDelayedRender() { if (this._rerenderTimeout) { clearTimeout(this._rerenderTimeout); this._rerenderTimeout = null; } + } + + _render() { + if (this._rerenderTimeout) { + this._clearDelayedRender(); + } // XXX: Or maybe just jump to the correct position? var progressGraphic = ''; From 31dfb0cc068c2349d1f922038e7ce9fc39196e4b Mon Sep 17 00:00:00 2001 From: zodern Date: Thu, 17 Jan 2019 16:09:21 -0600 Subject: [PATCH 082/134] Remove timeout for starting delayed build --- tools/runners/run-app.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/runners/run-app.js b/tools/runners/run-app.js index 8105540093..e5aba7ee52 100644 --- a/tools/runners/run-app.js +++ b/tools/runners/run-app.js @@ -841,7 +841,7 @@ _.extend(AppRunner.prototype, { const postStartupResult = Promise.race([ listenPromise, - new Promise(resolve => setTimeout(resolve, 3000)) + runPromise ]).then(() => { return runPostStartupCallbacks(bundleResult); }).await(); From ead0a6de1f64c5220b5b240dd322575d82cb033f Mon Sep 17 00:00:00 2001 From: zodern Date: Thu, 17 Jan 2019 16:12:15 -0600 Subject: [PATCH 083/134] Fix indentation --- tools/isobuild/builder.js | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/tools/isobuild/builder.js b/tools/isobuild/builder.js index 9d69709ce3..707dbb3262 100644 --- a/tools/isobuild/builder.js +++ b/tools/isobuild/builder.js @@ -666,20 +666,20 @@ Previous builder: ${previousBuilder.outputPath}, this builder: ${outputPath}` if (this.previousWrittenHashes[thisRelTo] !== hash) { const content = optimisticReadFile(thisAbsFrom); - files.writeFile( - files.pathResolve(this.buildPath, thisRelTo), - // The reason we call files.writeFile here instead of - // files.copyFile is so that we can read the file using - // optimisticReadFile instead of files.createReadStream. + files.writeFile( + files.pathResolve(this.buildPath, thisRelTo), + // The reason we call files.writeFile here instead of + // files.copyFile is so that we can read the file using + // optimisticReadFile instead of files.createReadStream. content, - // Logic borrowed from files.copyFile: "Create the file as - // readable and writable by everyone, and executable by everyone - // if the original file is executably by owner. (This mode will be - // modified by umask.) We don't copy the mode *directly* because - // this function is used by 'meteor create' which is copying from - // the read-only tools tree into a writable app." - { mode: (fileStatus.mode & 0o100) ? 0o777 : 0o666 }, - ); + // Logic borrowed from files.copyFile: "Create the file as + // readable and writable by everyone, and executable by everyone + // if the original file is executably by owner. (This mode will be + // modified by umask.) We don't copy the mode *directly* because + // this function is used by 'meteor create' which is copying from + // the read-only tools tree into a writable app." + { mode: (fileStatus.mode & 0o100) ? 0o777 : 0o666 }, + ); } this.writtenHashes[thisRelTo] = hash; From 985892c6582e0c6b11ae60669a2e4091273b3ec7 Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Thu, 31 Jan 2019 12:07:51 -0500 Subject: [PATCH 084/134] Bump package versions for 1.8.1-beta.16 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/npm-mongo/package.js | 2 +- packages/reactive-dict/package.js | 2 +- packages/reload/package.js | 2 +- packages/session/package.js | 2 +- packages/webapp/package.js | 2 +- scripts/admin/meteor-release-experimental.json | 2 +- 10 files changed, 10 insertions(+), 10 deletions(-) diff --git a/packages/autoupdate/package.js b/packages/autoupdate/package.js index eb460b672b..7acf664ec2 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.15' + version: '1.6.0-beta181.16' }); Package.onUse(function (api) { diff --git a/packages/ddp-server/package.js b/packages/ddp-server/package.js index 0011035271..65af1a6cf1 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.15', + version: '2.3.0-beta181.16', documentation: null }); diff --git a/packages/meteor-tool/package.js b/packages/meteor-tool/package.js index a41321425e..718e3117ff 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.15' + version: '1.8.1-beta.16' }); Package.includeTool(); diff --git a/packages/modern-browsers/package.js b/packages/modern-browsers/package.js index 79d7dffefe..ce5c847c36 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.15", + version: "0.1.4-beta181.16", summary: "API for defining the boundary between modern and legacy " + "JavaScript clients", documentation: "README.md" diff --git a/packages/npm-mongo/package.js b/packages/npm-mongo/package.js index 76dc188c0b..ec50140e09 100644 --- a/packages/npm-mongo/package.js +++ b/packages/npm-mongo/package.js @@ -3,7 +3,7 @@ Package.describe({ summary: "Wrapper around the mongo npm package", - version: "3.1.2-beta181.15", + version: "3.1.2-beta181.16", documentation: null }); diff --git a/packages/reactive-dict/package.js b/packages/reactive-dict/package.js index 39767a2bba..3618e015ab 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.15' + version: '1.3.0-beta181.16' }); Package.onUse(function (api) { diff --git a/packages/reload/package.js b/packages/reload/package.js index e8ebf1fa4d..f88543e348 100644 --- a/packages/reload/package.js +++ b/packages/reload/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "Reload the page while preserving application state.", - version: '1.3.0-beta181.15' + version: '1.3.0-beta181.16' }); Package.onUse(function (api) { diff --git a/packages/session/package.js b/packages/session/package.js index e3fa16fc0c..d8974e2915 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.15' + version: '1.2.0-beta181.16' }); Package.onUse(function (api) { diff --git a/packages/webapp/package.js b/packages/webapp/package.js index c505734aec..f531bd691c 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.3-beta181.15' + version: '1.7.3-beta181.16' }); 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 e343ec9664..4bc95010f6 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.15", + "version": "1.8.1-beta.16", "recommended": false, "official": false, "description": "Meteor" From 0a08d59a2286ba3e64827f0340862f0f384861cd Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Thu, 31 Jan 2019 12:47:02 -0500 Subject: [PATCH 085/134] Update meteor/circleci Docker image to Android API v27. Should fix Circle CI tests that have been failing because the Android license was not accepted: https://circleci.com/gh/meteor/meteor/30908 --- .circleci/config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index a4e3e5944b..3020df1304 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -61,7 +61,7 @@ run_save_node_bin: &run_save_node_bin build_machine_environment: &build_machine_environment # Specify that we want an actual machine (ala Circle 1.0), not a Docker image. docker: - - image: meteor/circleci + - image: meteor/circleci:android-27-node-8 environment: # This multiplier scales the waitSecs for selftests. TIMEOUT_SCALE_FACTOR: 8 From f1b736ec24fd8ef6cfb60f636270d0cca0376b4e Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Mon, 4 Feb 2019 10:51:22 -0500 Subject: [PATCH 086/134] Bump cordova-plugin-meteor-webapp version to 1.6.5. Includes https://github.com/meteor/cordova-plugin-meteor-webapp/pull/73 which fixes https://github.com/meteor/cordova-plugin-meteor-webapp/issue/72. --- packages/webapp/package.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/webapp/package.js b/packages/webapp/package.js index f531bd691c..e108e74289 100644 --- a/packages/webapp/package.js +++ b/packages/webapp/package.js @@ -22,7 +22,7 @@ Npm.strip({ Cordova.depends({ 'cordova-plugin-whitelist': '1.3.3', 'cordova-plugin-wkwebview-engine': '1.1.4', - 'cordova-plugin-meteor-webapp': '1.6.4' + 'cordova-plugin-meteor-webapp': '1.6.5' }); Package.onUse(function (api) { From 312d06a90a6eb13ee7a65bfb36380ba8131986e9 Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Mon, 4 Feb 2019 10:55:36 -0500 Subject: [PATCH 087/134] Add gitRevision property to star.json and __meteor_runtime_config__. This information is useful when you need a unique identifier for the current version of the application (and you're using Git). If the current Git HEAD revision can't be found for any reason, the gitRevision property simply will not appear in star.json or __meteor_runtime_config__. --- tools/cordova/builder.js | 1 + tools/fs/files.js | 28 +++++++++++++++++++++++++++- tools/isobuild/bundler.js | 6 ++++++ tools/static-assets/server/boot.js | 14 +++++++++++--- 4 files changed, 45 insertions(+), 4 deletions(-) diff --git a/tools/cordova/builder.js b/tools/cordova/builder.js index 5d7c0e409d..2812b852a8 100644 --- a/tools/cordova/builder.js +++ b/tools/cordova/builder.js @@ -484,6 +484,7 @@ export class CordovaBuilder { const runtimeConfig = { meteorRelease: meteorRelease, + gitRevision: files.getGitRevision(applicationPath), ROOT_URL: mobileServerUrl, // XXX propagate it from this.options? ROOT_URL_PATH_PREFIX: '', diff --git a/tools/fs/files.js b/tools/fs/files.js index a704749656..9f2aac0518 100644 --- a/tools/fs/files.js +++ b/tools/fs/files.js @@ -12,7 +12,7 @@ var util = require('util'); var _ = require('underscore'); var Fiber = require('fibers'); var crypto = require('crypto'); -var spawn = require("child_process").spawn; +const { spawn, execFile } = require("child_process"); var rimraf = require('rimraf'); var sourcemap = require('source-map'); @@ -129,6 +129,32 @@ files.findPackageDir = function (filepath) { return findUpwards(isPackageDir, filepath); }; +// Returns the current Git HEAD revision of the application, if possible. +// Always resolves rather than rejecting (unless something truly +// unexpected happens). The result value is a string when a Git revision +// was successfully resolved, or undefined otherwise. +files.getGitRevision = function (path) { + return new Promise(resolve => { + const appDir = files.findAppDir(path); + const gitDir = appDir && files.pathJoin(appDir, ".git"); + if (gitDir && files.exists(gitDir)) { + const proc = execFile("git", [ + "--git-dir=" + files.convertToOSPath(gitDir), + "rev-parse", + "HEAD", + ], {}, (error, stdout) => { + if (! error && typeof stdout === "string") { + resolve(stdout.trim()); + } else { + resolve(); + } + }); + } else { + resolve(); + } + }).await(); +}; + // create a .gitignore file in dirPath if one doesn't exist. add // 'entry' to the .gitignore on its own line at the bottom of the // file, if the exact line does not already exist in the file. diff --git a/tools/isobuild/bundler.js b/tools/isobuild/bundler.js index 6ad19cc36c..a713e20671 100644 --- a/tools/isobuild/bundler.js +++ b/tools/isobuild/bundler.js @@ -2897,6 +2897,11 @@ var writeSiteArchive = Profile("bundler writeSiteArchive", function ( forceInPlaceBuild: true, }); + let sourceRoot; + Object.keys(targets).sort().some(key => { + return sourceRoot = targets[key].sourceRoot; + }); + try { var json = { format: "site-archive-pre1", @@ -2905,6 +2910,7 @@ var writeSiteArchive = Profile("bundler writeSiteArchive", function ( meteorRelease: releaseName, nodeVersion: process.versions.node, npmVersion: meteorNpm.npmVersion, + gitRevision: files.getGitRevision(sourceRoot), }; // Tell the deploy server what version of the dependency kit we're using, so diff --git a/tools/static-assets/server/boot.js b/tools/static-assets/server/boot.js index 67ea154e21..3fd64c8493 100644 --- a/tools/static-assets/server/boot.js +++ b/tools/static-assets/server/boot.js @@ -27,12 +27,21 @@ var serverJson = require("./server-json.js"); var configJson = JSON.parse(fs.readFileSync(path.resolve(serverDir, 'config.json'), 'utf8')); +var programsDir = path.dirname(serverDir); +var buildDir = path.dirname(programsDir); +var starJson = JSON.parse(fs.readFileSync(path.join(buildDir, "star.json"))); + // Set up environment __meteor_bootstrap__ = { startupHooks: [], serverDir: serverDir, - configJson: configJson }; -__meteor_runtime_config__ = { meteorRelease: configJson.meteorRelease }; + configJson: configJson +}; + +__meteor_runtime_config__ = { + meteorRelease: configJson.meteorRelease, + gitRevision: starJson.gitRevision +}; if (!process.env.APP_ID) { process.env.APP_ID = configJson.appId; @@ -196,7 +205,6 @@ var specialArgPaths = { "packages/dynamic-import.js": function (file) { var dynamicImportInfo = {}; - var programsDir = path.dirname(serverDir); var clientArchs = configJson.clientArchs || Object.keys(configJson.clientPaths); From ccab56380ac6e53698882fa239413d0a3f5d2e1f Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Mon, 4 Feb 2019 11:12:34 -0500 Subject: [PATCH 088/134] Add a self-test of gitRevision extraction. --- tools/tests/apps/git-revision/.gitignore | 1 + .../git-revision/.meteor/.finished-upgraders | 18 + .../apps/git-revision/.meteor/.gitignore | 1 + tools/tests/apps/git-revision/.meteor/.id | 7 + .../tests/apps/git-revision/.meteor/packages | 15 + .../tests/apps/git-revision/.meteor/platforms | 2 + tools/tests/apps/git-revision/.meteor/release | 1 + .../tests/apps/git-revision/.meteor/versions | 39 ++ tools/tests/apps/git-revision/client/main.css | 4 + .../tests/apps/git-revision/client/main.html | 21 + tools/tests/apps/git-revision/client/main.js | 1 + .../tests/apps/git-revision/package-lock.json | 547 ++++++++++++++++++ tools/tests/apps/git-revision/package.json | 21 + tools/tests/apps/git-revision/server/main.js | 6 + tools/tests/apps/git-revision/tests/main.js | 20 + tools/tests/git-revision.js | 47 ++ 16 files changed, 751 insertions(+) create mode 100644 tools/tests/apps/git-revision/.gitignore create mode 100644 tools/tests/apps/git-revision/.meteor/.finished-upgraders create mode 100644 tools/tests/apps/git-revision/.meteor/.gitignore create mode 100644 tools/tests/apps/git-revision/.meteor/.id create mode 100644 tools/tests/apps/git-revision/.meteor/packages create mode 100644 tools/tests/apps/git-revision/.meteor/platforms create mode 100644 tools/tests/apps/git-revision/.meteor/release create mode 100644 tools/tests/apps/git-revision/.meteor/versions create mode 100644 tools/tests/apps/git-revision/client/main.css create mode 100644 tools/tests/apps/git-revision/client/main.html create mode 100644 tools/tests/apps/git-revision/client/main.js create mode 100644 tools/tests/apps/git-revision/package-lock.json create mode 100644 tools/tests/apps/git-revision/package.json create mode 100644 tools/tests/apps/git-revision/server/main.js create mode 100644 tools/tests/apps/git-revision/tests/main.js create mode 100644 tools/tests/git-revision.js diff --git a/tools/tests/apps/git-revision/.gitignore b/tools/tests/apps/git-revision/.gitignore new file mode 100644 index 0000000000..40b878db5b --- /dev/null +++ b/tools/tests/apps/git-revision/.gitignore @@ -0,0 +1 @@ +node_modules/ \ No newline at end of file diff --git a/tools/tests/apps/git-revision/.meteor/.finished-upgraders b/tools/tests/apps/git-revision/.meteor/.finished-upgraders new file mode 100644 index 0000000000..4538749ab8 --- /dev/null +++ b/tools/tests/apps/git-revision/.meteor/.finished-upgraders @@ -0,0 +1,18 @@ +# This file contains information which helps Meteor properly upgrade your +# app when you run 'meteor update'. You should check it into version control +# with your project. + +notices-for-0.9.0 +notices-for-0.9.1 +0.9.4-platform-file +notices-for-facebook-graph-api-2 +1.2.0-standard-minifiers-package +1.2.0-meteor-platform-split +1.2.0-cordova-changes +1.2.0-breaking-changes +1.3.0-split-minifiers-package +1.4.0-remove-old-dev-bundle-link +1.4.1-add-shell-server-package +1.4.3-split-account-service-packages +1.5-add-dynamic-import-package +1.7-split-underscore-from-meteor-base diff --git a/tools/tests/apps/git-revision/.meteor/.gitignore b/tools/tests/apps/git-revision/.meteor/.gitignore new file mode 100644 index 0000000000..4083037423 --- /dev/null +++ b/tools/tests/apps/git-revision/.meteor/.gitignore @@ -0,0 +1 @@ +local diff --git a/tools/tests/apps/git-revision/.meteor/.id b/tools/tests/apps/git-revision/.meteor/.id new file mode 100644 index 0000000000..b92c6c71e9 --- /dev/null +++ b/tools/tests/apps/git-revision/.meteor/.id @@ -0,0 +1,7 @@ +# This file contains a token that is unique to your project. +# Check it into your repository along with the rest of this directory. +# It can be used for purposes such as: +# - ensuring you don't accidentally deploy one app on top of another +# - providing package authors with aggregated statistics + +xh4qomttjyd.znxg6je45aan diff --git a/tools/tests/apps/git-revision/.meteor/packages b/tools/tests/apps/git-revision/.meteor/packages new file mode 100644 index 0000000000..341bbfc93a --- /dev/null +++ b/tools/tests/apps/git-revision/.meteor/packages @@ -0,0 +1,15 @@ +# Meteor packages used by this project, one per line. +# Check this file (and the other files in this directory) into your repository. +# +# 'meteor add' and 'meteor remove' will edit this file for you, +# but you can also edit it by hand. + +meteor # Shared foundation for all Meteor packages +static-html # Define static page content in .html files +standard-minifier-css # CSS minifier run for production mode +standard-minifier-js # JS minifier run for production mode +es5-shim # ECMAScript 5 compatibility for older browsers +ecmascript # Enable ECMAScript2015+ syntax in app code +shell-server # Server-side component of the `meteor shell` command +webapp # Serves a Meteor app over HTTP +server-render # Support for server-side rendering diff --git a/tools/tests/apps/git-revision/.meteor/platforms b/tools/tests/apps/git-revision/.meteor/platforms new file mode 100644 index 0000000000..efeba1b50c --- /dev/null +++ b/tools/tests/apps/git-revision/.meteor/platforms @@ -0,0 +1,2 @@ +server +browser diff --git a/tools/tests/apps/git-revision/.meteor/release b/tools/tests/apps/git-revision/.meteor/release new file mode 100644 index 0000000000..621e94f0ec --- /dev/null +++ b/tools/tests/apps/git-revision/.meteor/release @@ -0,0 +1 @@ +none diff --git a/tools/tests/apps/git-revision/.meteor/versions b/tools/tests/apps/git-revision/.meteor/versions new file mode 100644 index 0000000000..036a9e99fb --- /dev/null +++ b/tools/tests/apps/git-revision/.meteor/versions @@ -0,0 +1,39 @@ +babel-compiler@7.2.4 +babel-runtime@1.3.0 +base64@1.0.11 +blaze-tools@1.0.10 +boilerplate-generator@1.6.0 +caching-compiler@1.2.1 +caching-html-compiler@1.1.3 +dynamic-import@0.5.1 +ecmascript@0.12.4 +ecmascript-runtime@0.7.0 +ecmascript-runtime-client@0.8.0 +ecmascript-runtime-server@0.7.1 +ejson@1.1.0 +es5-shim@4.8.0 +fetch@0.1.0 +html-tools@1.0.11 +htmljs@1.0.11 +inter-process-messaging@0.1.0 +logging@1.1.20 +meteor@1.9.2 +minifier-css@1.4.1 +minifier-js@2.4.0 +modern-browsers@0.1.4-beta181.16 +modules@0.13.0 +modules-runtime@0.10.3 +promise@0.11.2 +random@1.1.0 +routepolicy@1.1.0 +server-render@0.3.1 +shell-server@0.4.0 +spacebars-compiler@1.1.3 +standard-minifier-css@1.5.2 +standard-minifier-js@2.4.0 +static-html@1.2.2 +templating-tools@1.1.2 +tracker@1.2.0 +underscore@1.0.10 +webapp@1.7.3-beta181.16 +webapp-hashing@1.0.9 diff --git a/tools/tests/apps/git-revision/client/main.css b/tools/tests/apps/git-revision/client/main.css new file mode 100644 index 0000000000..7f354f0fa7 --- /dev/null +++ b/tools/tests/apps/git-revision/client/main.css @@ -0,0 +1,4 @@ +body { + padding: 10px; + font-family: sans-serif; +} diff --git a/tools/tests/apps/git-revision/client/main.html b/tools/tests/apps/git-revision/client/main.html new file mode 100644 index 0000000000..19789db4de --- /dev/null +++ b/tools/tests/apps/git-revision/client/main.html @@ -0,0 +1,21 @@ + + Minimal Meteor app + + + +

Minimal Meteor app

+

+ This Meteor app uses as few Meteor packages as possible, to keep the + client JavaScript bundle as small as possible. +

+ + + +

Learn Meteor!

+ + diff --git a/tools/tests/apps/git-revision/client/main.js b/tools/tests/apps/git-revision/client/main.js new file mode 100644 index 0000000000..ef66448599 --- /dev/null +++ b/tools/tests/apps/git-revision/client/main.js @@ -0,0 +1 @@ +console.log(`Greetings from ${module.id}!`); diff --git a/tools/tests/apps/git-revision/package-lock.json b/tools/tests/apps/git-revision/package-lock.json new file mode 100644 index 0000000000..17a42cf73f --- /dev/null +++ b/tools/tests/apps/git-revision/package-lock.json @@ -0,0 +1,547 @@ +{ + "name": "git-revision", + "requires": true, + "lockfileVersion": 1, + "dependencies": { + "@babel/runtime": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.3.1.tgz", + "integrity": "sha512-7jGW8ppV0ant637pIqAcFfQDDH1orEPGJb8aXfUozuCU3QqX7rX4DA8iwrbPrR1hcH0FTTHz47yQnk+bl5xHQA==", + "requires": { + "regenerator-runtime": "^0.12.0" + } + }, + "meteor-node-stubs": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/meteor-node-stubs/-/meteor-node-stubs-0.4.1.tgz", + "integrity": "sha512-UO2OStvLOKoApmOdIP5eCqoLaa/ritMXRg4ffJVdkNLEsczzPvTjgC0Mxk4cM4R8MZkwll90FYgjDf5qUTJdMA==", + "requires": { + "assert": "^1.4.1", + "browserify-zlib": "^0.1.4", + "buffer": "^4.9.1", + "console-browserify": "^1.1.0", + "constants-browserify": "^1.0.0", + "crypto-browserify": "^3.11.0", + "domain-browser": "^1.1.7", + "events": "^1.1.1", + "https-browserify": "0.0.1", + "os-browserify": "^0.2.1", + "path-browserify": "0.0.0", + "process": "^0.11.9", + "punycode": "^1.4.1", + "querystring-es3": "^0.2.1", + "readable-stream": "^2.3.6", + "stream-browserify": "^2.0.1", + "stream-http": "^2.8.0", + "string_decoder": "^1.1.0", + "timers-browserify": "^1.4.2", + "tty-browserify": "0.0.0", + "url": "^0.11.0", + "util": "^0.10.3", + "vm-browserify": "0.0.4" + }, + "dependencies": { + "asn1.js": { + "version": "4.10.1", + "bundled": true, + "requires": { + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, + "assert": { + "version": "1.4.1", + "bundled": true, + "requires": { + "util": "0.10.3" + } + }, + "base64-js": { + "version": "1.3.0", + "bundled": true + }, + "bn.js": { + "version": "4.11.8", + "bundled": true + }, + "brorand": { + "version": "1.1.0", + "bundled": true + }, + "browserify-aes": { + "version": "1.2.0", + "bundled": true, + "requires": { + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "browserify-cipher": { + "version": "1.0.1", + "bundled": true, + "requires": { + "browserify-aes": "^1.0.4", + "browserify-des": "^1.0.0", + "evp_bytestokey": "^1.0.0" + } + }, + "browserify-des": { + "version": "1.0.1", + "bundled": true, + "requires": { + "cipher-base": "^1.0.1", + "des.js": "^1.0.0", + "inherits": "^2.0.1" + } + }, + "browserify-rsa": { + "version": "4.0.1", + "bundled": true, + "requires": { + "bn.js": "^4.1.0", + "randombytes": "^2.0.1" + } + }, + "browserify-sign": { + "version": "4.0.4", + "bundled": true, + "requires": { + "bn.js": "^4.1.1", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.2", + "elliptic": "^6.0.0", + "inherits": "^2.0.1", + "parse-asn1": "^5.0.0" + } + }, + "browserify-zlib": { + "version": "0.1.4", + "bundled": true, + "requires": { + "pako": "~0.2.0" + } + }, + "buffer": { + "version": "4.9.1", + "bundled": true, + "requires": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4", + "isarray": "^1.0.0" + } + }, + "buffer-xor": { + "version": "1.0.3", + "bundled": true + }, + "builtin-status-codes": { + "version": "3.0.0", + "bundled": true + }, + "cipher-base": { + "version": "1.0.4", + "bundled": true, + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "console-browserify": { + "version": "1.1.0", + "bundled": true, + "requires": { + "date-now": "^0.1.4" + } + }, + "constants-browserify": { + "version": "1.0.0", + "bundled": true + }, + "core-util-is": { + "version": "1.0.2", + "bundled": true + }, + "create-ecdh": { + "version": "4.0.3", + "bundled": true, + "requires": { + "bn.js": "^4.1.0", + "elliptic": "^6.0.0" + } + }, + "create-hash": { + "version": "1.2.0", + "bundled": true, + "requires": { + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" + } + }, + "create-hmac": { + "version": "1.1.7", + "bundled": true, + "requires": { + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "crypto-browserify": { + "version": "3.12.0", + "bundled": true, + "requires": { + "browserify-cipher": "^1.0.0", + "browserify-sign": "^4.0.0", + "create-ecdh": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.0", + "diffie-hellman": "^5.0.0", + "inherits": "^2.0.1", + "pbkdf2": "^3.0.3", + "public-encrypt": "^4.0.0", + "randombytes": "^2.0.0", + "randomfill": "^1.0.3" + } + }, + "date-now": { + "version": "0.1.4", + "bundled": true + }, + "des.js": { + "version": "1.0.0", + "bundled": true, + "requires": { + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, + "diffie-hellman": { + "version": "5.0.3", + "bundled": true, + "requires": { + "bn.js": "^4.1.0", + "miller-rabin": "^4.0.0", + "randombytes": "^2.0.0" + } + }, + "domain-browser": { + "version": "1.2.0", + "bundled": true + }, + "elliptic": { + "version": "6.4.0", + "bundled": true, + "requires": { + "bn.js": "^4.4.0", + "brorand": "^1.0.1", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.0" + } + }, + "events": { + "version": "1.1.1", + "bundled": true + }, + "evp_bytestokey": { + "version": "1.0.3", + "bundled": true, + "requires": { + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" + } + }, + "hash-base": { + "version": "3.0.4", + "bundled": true, + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "hash.js": { + "version": "1.1.3", + "bundled": true, + "requires": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.0" + }, + "dependencies": { + "inherits": { + "version": "2.0.3", + "bundled": true + } + } + }, + "hmac-drbg": { + "version": "1.0.1", + "bundled": true, + "requires": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "https-browserify": { + "version": "0.0.1", + "bundled": true + }, + "ieee754": { + "version": "1.1.11", + "bundled": true + }, + "indexof": { + "version": "0.0.1", + "bundled": true + }, + "inherits": { + "version": "2.0.1", + "bundled": true + }, + "isarray": { + "version": "1.0.0", + "bundled": true + }, + "md5.js": { + "version": "1.3.4", + "bundled": true, + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1" + } + }, + "miller-rabin": { + "version": "4.0.1", + "bundled": true, + "requires": { + "bn.js": "^4.0.0", + "brorand": "^1.0.1" + } + }, + "minimalistic-assert": { + "version": "1.0.1", + "bundled": true + }, + "minimalistic-crypto-utils": { + "version": "1.0.1", + "bundled": true + }, + "os-browserify": { + "version": "0.2.1", + "bundled": true + }, + "pako": { + "version": "0.2.9", + "bundled": true + }, + "parse-asn1": { + "version": "5.1.1", + "bundled": true, + "requires": { + "asn1.js": "^4.0.0", + "browserify-aes": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.0", + "pbkdf2": "^3.0.3" + } + }, + "path-browserify": { + "version": "0.0.0", + "bundled": true + }, + "pbkdf2": { + "version": "3.0.16", + "bundled": true, + "requires": { + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "process": { + "version": "0.11.10", + "bundled": true + }, + "process-nextick-args": { + "version": "2.0.0", + "bundled": true + }, + "public-encrypt": { + "version": "4.0.2", + "bundled": true, + "requires": { + "bn.js": "^4.1.0", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "parse-asn1": "^5.0.0", + "randombytes": "^2.0.1" + } + }, + "punycode": { + "version": "1.4.1", + "bundled": true + }, + "querystring": { + "version": "0.2.0", + "bundled": true + }, + "querystring-es3": { + "version": "0.2.1", + "bundled": true + }, + "randombytes": { + "version": "2.0.6", + "bundled": true, + "requires": { + "safe-buffer": "^5.1.0" + } + }, + "randomfill": { + "version": "1.0.4", + "bundled": true, + "requires": { + "randombytes": "^2.0.5", + "safe-buffer": "^5.1.0" + } + }, + "readable-stream": { + "version": "2.3.6", + "bundled": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + }, + "dependencies": { + "inherits": { + "version": "2.0.3", + "bundled": true + } + } + }, + "ripemd160": { + "version": "2.0.2", + "bundled": true, + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1" + } + }, + "safe-buffer": { + "version": "5.1.2", + "bundled": true + }, + "sha.js": { + "version": "2.4.11", + "bundled": true, + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "stream-browserify": { + "version": "2.0.1", + "bundled": true, + "requires": { + "inherits": "~2.0.1", + "readable-stream": "^2.0.2" + } + }, + "stream-http": { + "version": "2.8.1", + "bundled": true, + "requires": { + "builtin-status-codes": "^3.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.3.3", + "to-arraybuffer": "^1.0.0", + "xtend": "^4.0.0" + } + }, + "string_decoder": { + "version": "1.1.1", + "bundled": true, + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "timers-browserify": { + "version": "1.4.2", + "bundled": true, + "requires": { + "process": "~0.11.0" + } + }, + "to-arraybuffer": { + "version": "1.0.1", + "bundled": true + }, + "tty-browserify": { + "version": "0.0.0", + "bundled": true + }, + "url": { + "version": "0.11.0", + "bundled": true, + "requires": { + "punycode": "1.3.2", + "querystring": "0.2.0" + }, + "dependencies": { + "punycode": { + "version": "1.3.2", + "bundled": true + } + } + }, + "util": { + "version": "0.10.3", + "bundled": true, + "requires": { + "inherits": "2.0.1" + } + }, + "util-deprecate": { + "version": "1.0.2", + "bundled": true + }, + "vm-browserify": { + "version": "0.0.4", + "bundled": true, + "requires": { + "indexof": "0.0.1" + } + }, + "xtend": { + "version": "4.0.1", + "bundled": true + } + } + }, + "regenerator-runtime": { + "version": "0.12.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.12.1.tgz", + "integrity": "sha512-odxIc1/vDlo4iZcfXqRYFj0vpXFNoGdKMAUieAlFYO6m/nl5e9KR/beGf41z4a1FI+aQgtjhuaSlDxQ0hmkrHg==" + } + } +} diff --git a/tools/tests/apps/git-revision/package.json b/tools/tests/apps/git-revision/package.json new file mode 100644 index 0000000000..2f4b404b0f --- /dev/null +++ b/tools/tests/apps/git-revision/package.json @@ -0,0 +1,21 @@ +{ + "name": "git-revision", + "private": true, + "scripts": { + "start": "meteor run", + "test": "meteor test --once --driver-package meteortesting:mocha", + "test-app": "TEST_WATCH=1 meteor test --full-app --driver-package meteortesting:mocha", + "visualize": "meteor --production --extra-packages bundle-visualizer" + }, + "dependencies": { + "@babel/runtime": "^7.1.5", + "meteor-node-stubs": "^0.4.1" + }, + "meteor": { + "mainModule": { + "client": "client/main.js", + "server": "server/main.js" + }, + "testModule": "tests/main.js" + } +} diff --git a/tools/tests/apps/git-revision/server/main.js b/tools/tests/apps/git-revision/server/main.js new file mode 100644 index 0000000000..5778809236 --- /dev/null +++ b/tools/tests/apps/git-revision/server/main.js @@ -0,0 +1,6 @@ +import { Meteor } from "meteor/meteor"; + +Meteor.startup(() => { + const { gitRevision } = __meteor_runtime_config__; + console.log("__meteor_runtime_config__.gitRevision: " + gitRevision); +}); diff --git a/tools/tests/apps/git-revision/tests/main.js b/tools/tests/apps/git-revision/tests/main.js new file mode 100644 index 0000000000..1c552aadff --- /dev/null +++ b/tools/tests/apps/git-revision/tests/main.js @@ -0,0 +1,20 @@ +import assert from "assert"; + +describe("git-revision", function () { + it("package.json has correct name", async function () { + const { name } = await import("../package.json"); + assert.strictEqual(name, "git-revision"); + }); + + if (Meteor.isClient) { + it("client is not server", function () { + assert.strictEqual(Meteor.isServer, false); + }); + } + + if (Meteor.isServer) { + it("server is not client", function () { + assert.strictEqual(Meteor.isClient, false); + }); + } +}); diff --git a/tools/tests/git-revision.js b/tools/tests/git-revision.js new file mode 100644 index 0000000000..99deda1cd4 --- /dev/null +++ b/tools/tests/git-revision.js @@ -0,0 +1,47 @@ +import assert from "assert"; +import Run from "../tool-testing/run.js"; +import selftest from "../tool-testing/selftest.js"; +const Sandbox = selftest.Sandbox; + +selftest.define("git revision", function () { + const s = new Sandbox(); + + s.createApp("myapp", "git-revision"); + s.cd("myapp"); + + function git(...args) { + const run = new Run("git", { + sandbox: s, + args, + cwd: s.cwd, + env: s._makeEnv(), + }); + run.expectExit(0); + return run; + } + + git("init"); + git("add", "."); + git("commit", "-m", "first"); + + let revision; + git("rev-parse", "HEAD").outputLog.get().some(line => { + if (line.channel === "stdout") { + revision = line.text; + return true; + } + }); + + assert(/^[0-9a-z]{40}$/.test(revision), revision); + + const build = s.run("build", "--directory", "../myapp-build"); + build.waitSecs(30); + build.expectExit(0); + + const star = JSON.parse(s.read("../myapp-build/bundle/star.json")); + assert.strictEqual(star.gitRevision, revision); + + const run = s.run(); + run.match("__meteor_runtime_config__.gitRevision: " + revision); + run.stop(); +}); From 2486743aab86fc972391211eff098aac1387098f Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Mon, 4 Feb 2019 12:34:33 -0500 Subject: [PATCH 089/134] Expose Meteor.gitRevision for even easier access. --- packages/meteor/client_environment.js | 11 + packages/meteor/package.js | 2 +- packages/meteor/server_environment.js | 15 +- .../tests/apps/git-revision/.meteor/versions | 2 +- .../tests/apps/git-revision/package-lock.json | 309 ++++++++++++++++++ tools/tests/apps/git-revision/package.json | 7 +- tools/tests/apps/git-revision/tests/main.js | 7 + tools/tests/git-revision.js | 56 ++-- 8 files changed, 379 insertions(+), 30 deletions(-) diff --git a/packages/meteor/client_environment.js b/packages/meteor/client_environment.js index 7f8b035d1a..91bb4e358e 100644 --- a/packages/meteor/client_environment.js +++ b/packages/meteor/client_environment.js @@ -56,6 +56,17 @@ Meteor = { isModern: config.isModern }; +if (config.gitRevision) { + /** + * @summary Hexadecimal Git revision string if the application is using + * Git for version control. Undefined otherwise. + * @locus Anywhere + * @static + * @type {String} + */ + Meteor.gitRevision = config.gitRevision; +} + if (config.PUBLIC_SETTINGS) { /** * @summary `Meteor.settings` contains deployment-specific configuration options. You can initialize settings by passing the `--settings` option (which takes the name of a file containing JSON data) to `meteor run` or `meteor deploy`. When running your server directly (e.g. from a bundle), you instead specify settings by putting the JSON directly into the `METEOR_SETTINGS` environment variable. If the settings object contains a key named `public`, then `Meteor.settings.public` will be available on the client as well as the server. All other properties of `Meteor.settings` are only defined on the server. You can rely on `Meteor.settings` and `Meteor.settings.public` being defined objects (not undefined) on both client and server even if there are no settings specified. Changes to `Meteor.settings.public` at runtime will be picked up by new client connections. diff --git a/packages/meteor/package.js b/packages/meteor/package.js index 6e42352c3c..0b2c1d2877 100644 --- a/packages/meteor/package.js +++ b/packages/meteor/package.js @@ -2,7 +2,7 @@ Package.describe({ summary: "Core Meteor environment", - version: '1.9.2' + version: '1.9.3' }); Package.registerBuildPlugin({ diff --git a/packages/meteor/server_environment.js b/packages/meteor/server_environment.js index 5d28d81039..e34c49a517 100644 --- a/packages/meteor/server_environment.js +++ b/packages/meteor/server_environment.js @@ -3,8 +3,11 @@ meteorEnv = { TEST_METADATA: process.env.TEST_METADATA || "{}" }; -if (typeof __meteor_runtime_config__ === "object") { - __meteor_runtime_config__.meteorEnv = meteorEnv; +var config = typeof __meteor_runtime_config__ === "object" && + __meteor_runtime_config__; + +if (config) { + config.meteorEnv = meteorEnv; } Meteor = { @@ -39,6 +42,10 @@ if (! Meteor.settings.public) { // server, it also mutates // `__meteor_runtime_config__.PUBLIC_SETTINGS`, and the modified // settings will be sent to the client. -if (typeof __meteor_runtime_config__ === "object") { - __meteor_runtime_config__.PUBLIC_SETTINGS = Meteor.settings.public; +if (config) { + config.PUBLIC_SETTINGS = Meteor.settings.public; +} + +if (config && config.gitRevision) { + Meteor.gitRevision = config.gitRevision; } diff --git a/tools/tests/apps/git-revision/.meteor/versions b/tools/tests/apps/git-revision/.meteor/versions index 036a9e99fb..a10ed1d9c8 100644 --- a/tools/tests/apps/git-revision/.meteor/versions +++ b/tools/tests/apps/git-revision/.meteor/versions @@ -17,7 +17,7 @@ html-tools@1.0.11 htmljs@1.0.11 inter-process-messaging@0.1.0 logging@1.1.20 -meteor@1.9.2 +meteor@1.9.3 minifier-css@1.4.1 minifier-js@2.4.0 modern-browsers@0.1.4-beta181.16 diff --git a/tools/tests/apps/git-revision/package-lock.json b/tools/tests/apps/git-revision/package-lock.json index 17a42cf73f..8fe2759f25 100644 --- a/tools/tests/apps/git-revision/package-lock.json +++ b/tools/tests/apps/git-revision/package-lock.json @@ -11,6 +11,170 @@ "regenerator-runtime": "^0.12.0" } }, + "agent-base": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.2.1.tgz", + "integrity": "sha512-JVwXMr9nHYTUXsBFKUqhJwvlcYU/blreOEUkhNR2eXZIvwd+c+o5V4MgDPKWnMS/56awN3TRzIP+KoPn+roQtg==", + "requires": { + "es6-promisify": "^5.0.0" + } + }, + "async-limiter": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.0.tgz", + "integrity": "sha512-jp/uFnooOiO+L211eZOoSyzpOITMXx1rBITauYykG3BRYPu8h0UcxsPNB04RR5vo4Tyz3+ay17tR6JVf9qzYWg==" + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "buffer-from": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", + "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==" + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + }, + "concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "requires": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "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=" + }, + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "requires": { + "ms": "^2.1.1" + } + }, + "es6-promise": { + "version": "4.2.5", + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.5.tgz", + "integrity": "sha512-n6wvpdE43VFtJq+lUDYDBFUwV8TZbuGXLV4D6wKafg13ldznKsyEvatubnmUe31zcvelSzOHF+XbaT+Bl9ObDg==" + }, + "es6-promisify": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", + "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=", + "requires": { + "es6-promise": "^4.0.3" + } + }, + "extract-zip": { + "version": "1.6.7", + "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.6.7.tgz", + "integrity": "sha1-qEC0uK9kAyZMjbV/Txp0Mz74H+k=", + "requires": { + "concat-stream": "1.6.2", + "debug": "2.6.9", + "mkdirp": "0.5.1", + "yauzl": "2.4.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + } + } + }, + "fd-slicer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.0.1.tgz", + "integrity": "sha1-i1vL2ewyfFBBv5qwI/1nUPEXfmU=", + "requires": { + "pend": "~1.2.0" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + }, + "glob": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", + "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "https-proxy-agent": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.1.tgz", + "integrity": "sha512-HPCTS1LW51bcyMYbxUIOO4HEOlQ1/1qRaFWcyxvwaqUS9TY88aoEuHUY33kuAh1YhVVaDQhLZsnPd+XNARWZlQ==", + "requires": { + "agent-base": "^4.1.0", + "debug": "^3.1.0" + }, + "dependencies": { + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, "meteor-node-stubs": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/meteor-node-stubs/-/meteor-node-stubs-0.4.1.tgz", @@ -538,10 +702,155 @@ } } }, + "mime": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.0.tgz", + "integrity": "sha512-ikBcWwyqXQSHKtciCcctu9YfPbFYZ4+gbHEmE0Q8jzcTYQg5dHCr3g2wwAZjPoJfQVXZq6KXAjpXOTf5/cjT7w==" + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" + }, + "mkdirp": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "requires": { + "minimist": "0.0.8" + } + }, + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "requires": { + "wrappy": "1" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" + }, + "pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=" + }, + "process-nextick-args": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", + "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==" + }, + "progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==" + }, + "proxy-from-env": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.0.0.tgz", + "integrity": "sha1-M8UDmPcOp+uW0h97gXYwpVeRx+4=" + }, + "puppeteer": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-1.12.1.tgz", + "integrity": "sha512-FlMLdgAnURMMtwb2S6XtkBRw+kh1V+gGt09pCJF9mB1eOnF9+JhtvTxFeu1Rm5X1pKMXq5xrosrhBTgmdwzPeA==", + "requires": { + "debug": "^4.1.0", + "extract-zip": "^1.6.6", + "https-proxy-agent": "^2.2.1", + "mime": "^2.0.3", + "progress": "^2.0.1", + "proxy-from-env": "^1.0.0", + "rimraf": "^2.6.1", + "ws": "^6.1.0" + } + }, + "readable-stream": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, "regenerator-runtime": { "version": "0.12.1", "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.12.1.tgz", "integrity": "sha512-odxIc1/vDlo4iZcfXqRYFj0vpXFNoGdKMAUieAlFYO6m/nl5e9KR/beGf41z4a1FI+aQgtjhuaSlDxQ0hmkrHg==" + }, + "rimraf": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", + "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", + "requires": { + "glob": "^7.1.3" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + }, + "ws": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-6.1.3.tgz", + "integrity": "sha512-tbSxiT+qJI223AP4iLfQbkbxkwdFcneYinM2+x46Gx2wgvbaOMO36czfdfVUBRTHvzAMRhDd98sA5d/BuWbQdg==", + "requires": { + "async-limiter": "~1.0.0" + } + }, + "yauzl": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.4.1.tgz", + "integrity": "sha1-lSj0QtqxsihOWLQ3m7GU4i4MQAU=", + "requires": { + "fd-slicer": "~1.0.1" + } } } } diff --git a/tools/tests/apps/git-revision/package.json b/tools/tests/apps/git-revision/package.json index 2f4b404b0f..addd6296ad 100644 --- a/tools/tests/apps/git-revision/package.json +++ b/tools/tests/apps/git-revision/package.json @@ -3,13 +3,12 @@ "private": true, "scripts": { "start": "meteor run", - "test": "meteor test --once --driver-package meteortesting:mocha", - "test-app": "TEST_WATCH=1 meteor test --full-app --driver-package meteortesting:mocha", - "visualize": "meteor --production --extra-packages bundle-visualizer" + "test": "TEST_BROWSER_DRIVER=puppeteer meteor test --once --full-app --driver-package meteortesting:mocha" }, "dependencies": { "@babel/runtime": "^7.1.5", - "meteor-node-stubs": "^0.4.1" + "meteor-node-stubs": "^0.4.1", + "puppeteer": "^1.12.1" }, "meteor": { "mainModule": { diff --git a/tools/tests/apps/git-revision/tests/main.js b/tools/tests/apps/git-revision/tests/main.js index 1c552aadff..9d63a67e88 100644 --- a/tools/tests/apps/git-revision/tests/main.js +++ b/tools/tests/apps/git-revision/tests/main.js @@ -1,11 +1,18 @@ import assert from "assert"; +const gitShaPattern = /^[0-9a-z]{40}$/; + describe("git-revision", function () { it("package.json has correct name", async function () { const { name } = await import("../package.json"); assert.strictEqual(name, "git-revision"); }); + it("Meteor.gitRevision is defined", function () { + assert.strictEqual(typeof Meteor.gitRevision, "string"); + assert(gitShaPattern.test(Meteor.gitRevision), Meteor.gitRevision); + }); + if (Meteor.isClient) { it("client is not server", function () { assert.strictEqual(Meteor.isServer, false); diff --git a/tools/tests/git-revision.js b/tools/tests/git-revision.js index 99deda1cd4..853bb0ff26 100644 --- a/tools/tests/git-revision.js +++ b/tools/tests/git-revision.js @@ -3,24 +3,24 @@ import Run from "../tool-testing/run.js"; import selftest from "../tool-testing/selftest.js"; const Sandbox = selftest.Sandbox; -selftest.define("git revision", function () { - const s = new Sandbox(); +function gitHelper(...args) { + assert(this instanceof Sandbox); + const run = new Run("git", { + sandbox: this, + args, + cwd: this.cwd, + env: this._makeEnv(), + }); + run.expectExit(0); + return run; +} - s.createApp("myapp", "git-revision"); - s.cd("myapp"); - - function git(...args) { - const run = new Run("git", { - sandbox: s, - args, - cwd: s.cwd, - env: s._makeEnv(), - }); - run.expectExit(0); - return run; - } +function initGitApp(sandbox) { + const git = gitHelper.bind(sandbox); git("init"); + git("config", "user.name", "Ben Newman"); + git("config", "user.email", "ben@meteor.com"); git("add", "."); git("commit", "-m", "first"); @@ -34,14 +34,30 @@ selftest.define("git revision", function () { assert(/^[0-9a-z]{40}$/.test(revision), revision); - const build = s.run("build", "--directory", "../myapp-build"); + return revision; +} + +selftest.define("Meteor.gitRevision", function () { + const s = new Sandbox(); + + s.createApp("app-using-git", "git-revision"); + s.cd("app-using-git"); + + const revision = initGitApp(s); + + const build = s.run("build", "--directory", "../app-using-git-build"); build.waitSecs(30); build.expectExit(0); - const star = JSON.parse(s.read("../myapp-build/bundle/star.json")); + const star = JSON.parse(s.read("../app-using-git-build/bundle/star.json")); assert.strictEqual(star.gitRevision, revision); - const run = s.run(); - run.match("__meteor_runtime_config__.gitRevision: " + revision); - run.stop(); + const test = s.run("npm", "test"); + test.waitSecs(30); + test.match("__meteor_runtime_config__.gitRevision: " + revision); + test.match("App running at"); + test.match("SERVER FAILURES: 0"); + test.match("CLIENT FAILURES: 0"); + test.waitSecs(30); + test.expectExit(0); }); From c4e6cdb96e1560b65018159ebff1eb945fca817c Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Mon, 4 Feb 2019 12:55:33 -0500 Subject: [PATCH 090/134] Mention Meteor.gitRevision in History.md. --- History.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/History.md b/History.md index 2d3f2b92ec..3a79556022 100644 --- a/History.md +++ b/History.md @@ -69,6 +69,13 @@ N/A [Issue #10393](https://github.com/meteor/meteor/issues/10393) [PR #10414](https://github.com/meteor/meteor/pull/10414) +* If your application is using Git for version control, the current Git + revision string will be exposed via `Meteor.gitRevision` while the app + is running, and also via the `"gitRevision"` property in the `star.json` + file located in the root directory of builds produced by `meteor build`. + If you are not using Git, neither property will be defined. + [PR #10442](https://github.com/meteor/meteor/pull/10442) + ## v1.8.0.2, 2019-01-07 ### Breaking changes From a96241911a761c7edd9cf7ffbec5dc53b9a7bd48 Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Mon, 4 Feb 2019 14:13:35 -0500 Subject: [PATCH 091/134] Address review feedback from @glasser. --- packages/meteor/client_environment.js | 8 +++---- packages/meteor/server_environment.js | 6 +++--- tools/cordova/builder.js | 2 +- tools/fs/files.js | 21 ++++++++----------- tools/isobuild/bundler.js | 17 ++++++++------- tools/static-assets/server/boot.js | 2 +- .../.gitignore | 0 .../.meteor/.finished-upgraders | 0 .../.meteor/.gitignore | 0 .../.meteor/.id | 0 .../.meteor/packages | 0 .../.meteor/platforms | 0 .../.meteor/release | 0 .../.meteor/versions | 0 .../client/main.css | 0 .../client/main.html | 0 .../client/main.js | 0 .../package-lock.json | 2 +- .../package.json | 2 +- .../tests/apps/git-commit-hash/server/main.js | 6 ++++++ .../tests/main.js | 10 ++++----- tools/tests/apps/git-revision/server/main.js | 6 ------ .../{git-revision.js => git-commit-hash.js} | 18 ++++++++-------- 23 files changed, 50 insertions(+), 50 deletions(-) rename tools/tests/apps/{git-revision => git-commit-hash}/.gitignore (100%) rename tools/tests/apps/{git-revision => git-commit-hash}/.meteor/.finished-upgraders (100%) rename tools/tests/apps/{git-revision => git-commit-hash}/.meteor/.gitignore (100%) rename tools/tests/apps/{git-revision => git-commit-hash}/.meteor/.id (100%) rename tools/tests/apps/{git-revision => git-commit-hash}/.meteor/packages (100%) rename tools/tests/apps/{git-revision => git-commit-hash}/.meteor/platforms (100%) rename tools/tests/apps/{git-revision => git-commit-hash}/.meteor/release (100%) rename tools/tests/apps/{git-revision => git-commit-hash}/.meteor/versions (100%) rename tools/tests/apps/{git-revision => git-commit-hash}/client/main.css (100%) rename tools/tests/apps/{git-revision => git-commit-hash}/client/main.html (100%) rename tools/tests/apps/{git-revision => git-commit-hash}/client/main.js (100%) rename tools/tests/apps/{git-revision => git-commit-hash}/package-lock.json (99%) rename tools/tests/apps/{git-revision => git-commit-hash}/package.json (93%) create mode 100644 tools/tests/apps/git-commit-hash/server/main.js rename tools/tests/apps/{git-revision => git-commit-hash}/tests/main.js (62%) delete mode 100644 tools/tests/apps/git-revision/server/main.js rename tools/tests/{git-revision.js => git-commit-hash.js} (75%) diff --git a/packages/meteor/client_environment.js b/packages/meteor/client_environment.js index 91bb4e358e..074c655bc1 100644 --- a/packages/meteor/client_environment.js +++ b/packages/meteor/client_environment.js @@ -56,15 +56,15 @@ Meteor = { isModern: config.isModern }; -if (config.gitRevision) { +if (config.gitCommitHash) { /** - * @summary Hexadecimal Git revision string if the application is using - * Git for version control. Undefined otherwise. + * @summary Hexadecimal Git commit hash, if the application is using Git + * for version control. Undefined otherwise. * @locus Anywhere * @static * @type {String} */ - Meteor.gitRevision = config.gitRevision; + Meteor.gitCommitHash = config.gitCommitHash; } if (config.PUBLIC_SETTINGS) { diff --git a/packages/meteor/server_environment.js b/packages/meteor/server_environment.js index e34c49a517..fa212ca30c 100644 --- a/packages/meteor/server_environment.js +++ b/packages/meteor/server_environment.js @@ -3,7 +3,7 @@ meteorEnv = { TEST_METADATA: process.env.TEST_METADATA || "{}" }; -var config = typeof __meteor_runtime_config__ === "object" && +const config = typeof __meteor_runtime_config__ === "object" && __meteor_runtime_config__; if (config) { @@ -46,6 +46,6 @@ if (config) { config.PUBLIC_SETTINGS = Meteor.settings.public; } -if (config && config.gitRevision) { - Meteor.gitRevision = config.gitRevision; +if (config && config.gitCommitHash) { + Meteor.gitCommitHash = config.gitCommitHash; } diff --git a/tools/cordova/builder.js b/tools/cordova/builder.js index 2812b852a8..1c77569b20 100644 --- a/tools/cordova/builder.js +++ b/tools/cordova/builder.js @@ -484,7 +484,7 @@ export class CordovaBuilder { const runtimeConfig = { meteorRelease: meteorRelease, - gitRevision: files.getGitRevision(applicationPath), + gitCommitHash: files.findGitCommitHash(applicationPath), ROOT_URL: mobileServerUrl, // XXX propagate it from this.options? ROOT_URL_PATH_PREFIX: '', diff --git a/tools/fs/files.js b/tools/fs/files.js index 9f2aac0518..3b622b6261 100644 --- a/tools/fs/files.js +++ b/tools/fs/files.js @@ -129,20 +129,17 @@ files.findPackageDir = function (filepath) { return findUpwards(isPackageDir, filepath); }; -// Returns the current Git HEAD revision of the application, if possible. -// Always resolves rather than rejecting (unless something truly -// unexpected happens). The result value is a string when a Git revision -// was successfully resolved, or undefined otherwise. -files.getGitRevision = function (path) { +// Returns the hash of the current Git HEAD revision of the application, +// if possible. Always resolves rather than rejecting (unless something +// truly unexpected happens). The result value is a string when a Git +// revision was successfully resolved, or undefined otherwise. +files.findGitCommitHash = function (path) { return new Promise(resolve => { const appDir = files.findAppDir(path); - const gitDir = appDir && files.pathJoin(appDir, ".git"); - if (gitDir && files.exists(gitDir)) { - const proc = execFile("git", [ - "--git-dir=" + files.convertToOSPath(gitDir), - "rev-parse", - "HEAD", - ], {}, (error, stdout) => { + if (appDir) { + const proc = execFile("git", ["rev-parse", "HEAD"], { + cwd: files.convertToOSPath(appDir), + }, (error, stdout) => { if (! error && typeof stdout === "string") { resolve(stdout.trim()); } else { diff --git a/tools/isobuild/bundler.js b/tools/isobuild/bundler.js index a713e20671..3c097a5391 100644 --- a/tools/isobuild/bundler.js +++ b/tools/isobuild/bundler.js @@ -2881,7 +2881,8 @@ var writeSiteArchive = Profile("bundler writeSiteArchive", function ( releaseName, previousBuilders = Object.create(null), buildMode, - minifyMode + minifyMode, + sourceRoot, }) { const builders = {}; @@ -2897,12 +2898,13 @@ var writeSiteArchive = Profile("bundler writeSiteArchive", function ( forceInPlaceBuild: true, }); - let sourceRoot; - Object.keys(targets).sort().some(key => { - return sourceRoot = targets[key].sourceRoot; - }); - try { + Object.keys(targets).forEach(key => { + // Both makeClientTarget and makeServerTarget get their sourceRoot + // from packageSource.sourceRoot, so this should always be true: + assert.strictEqual(targets[key].sourceRoot, sourceRoot); + }); + var json = { format: "site-archive-pre1", builtBy, @@ -2910,7 +2912,7 @@ var writeSiteArchive = Profile("bundler writeSiteArchive", function ( meteorRelease: releaseName, nodeVersion: process.versions.node, npmVersion: meteorNpm.npmVersion, - gitRevision: files.getGitRevision(sourceRoot), + gitCommitHash: files.findGitCommitHash(sourceRoot), }; // Tell the deploy server what version of the dependency kit we're using, so @@ -3320,6 +3322,7 @@ function bundle({ starResult = writeSiteArchive(targets, outputPath, { buildMode: buildOptions.buildMode, previousBuilders, + sourceRoot: packageSource.sourceRoot, ...writeOptions, }); serverWatchSet.merge(starResult.serverWatchSet); diff --git a/tools/static-assets/server/boot.js b/tools/static-assets/server/boot.js index 3fd64c8493..487ef07c5e 100644 --- a/tools/static-assets/server/boot.js +++ b/tools/static-assets/server/boot.js @@ -40,7 +40,7 @@ __meteor_bootstrap__ = { __meteor_runtime_config__ = { meteorRelease: configJson.meteorRelease, - gitRevision: starJson.gitRevision + gitCommitHash: starJson.gitCommitHash }; if (!process.env.APP_ID) { diff --git a/tools/tests/apps/git-revision/.gitignore b/tools/tests/apps/git-commit-hash/.gitignore similarity index 100% rename from tools/tests/apps/git-revision/.gitignore rename to tools/tests/apps/git-commit-hash/.gitignore diff --git a/tools/tests/apps/git-revision/.meteor/.finished-upgraders b/tools/tests/apps/git-commit-hash/.meteor/.finished-upgraders similarity index 100% rename from tools/tests/apps/git-revision/.meteor/.finished-upgraders rename to tools/tests/apps/git-commit-hash/.meteor/.finished-upgraders diff --git a/tools/tests/apps/git-revision/.meteor/.gitignore b/tools/tests/apps/git-commit-hash/.meteor/.gitignore similarity index 100% rename from tools/tests/apps/git-revision/.meteor/.gitignore rename to tools/tests/apps/git-commit-hash/.meteor/.gitignore diff --git a/tools/tests/apps/git-revision/.meteor/.id b/tools/tests/apps/git-commit-hash/.meteor/.id similarity index 100% rename from tools/tests/apps/git-revision/.meteor/.id rename to tools/tests/apps/git-commit-hash/.meteor/.id diff --git a/tools/tests/apps/git-revision/.meteor/packages b/tools/tests/apps/git-commit-hash/.meteor/packages similarity index 100% rename from tools/tests/apps/git-revision/.meteor/packages rename to tools/tests/apps/git-commit-hash/.meteor/packages diff --git a/tools/tests/apps/git-revision/.meteor/platforms b/tools/tests/apps/git-commit-hash/.meteor/platforms similarity index 100% rename from tools/tests/apps/git-revision/.meteor/platforms rename to tools/tests/apps/git-commit-hash/.meteor/platforms diff --git a/tools/tests/apps/git-revision/.meteor/release b/tools/tests/apps/git-commit-hash/.meteor/release similarity index 100% rename from tools/tests/apps/git-revision/.meteor/release rename to tools/tests/apps/git-commit-hash/.meteor/release diff --git a/tools/tests/apps/git-revision/.meteor/versions b/tools/tests/apps/git-commit-hash/.meteor/versions similarity index 100% rename from tools/tests/apps/git-revision/.meteor/versions rename to tools/tests/apps/git-commit-hash/.meteor/versions diff --git a/tools/tests/apps/git-revision/client/main.css b/tools/tests/apps/git-commit-hash/client/main.css similarity index 100% rename from tools/tests/apps/git-revision/client/main.css rename to tools/tests/apps/git-commit-hash/client/main.css diff --git a/tools/tests/apps/git-revision/client/main.html b/tools/tests/apps/git-commit-hash/client/main.html similarity index 100% rename from tools/tests/apps/git-revision/client/main.html rename to tools/tests/apps/git-commit-hash/client/main.html diff --git a/tools/tests/apps/git-revision/client/main.js b/tools/tests/apps/git-commit-hash/client/main.js similarity index 100% rename from tools/tests/apps/git-revision/client/main.js rename to tools/tests/apps/git-commit-hash/client/main.js diff --git a/tools/tests/apps/git-revision/package-lock.json b/tools/tests/apps/git-commit-hash/package-lock.json similarity index 99% rename from tools/tests/apps/git-revision/package-lock.json rename to tools/tests/apps/git-commit-hash/package-lock.json index 8fe2759f25..4d10ed5fe0 100644 --- a/tools/tests/apps/git-revision/package-lock.json +++ b/tools/tests/apps/git-commit-hash/package-lock.json @@ -1,5 +1,5 @@ { - "name": "git-revision", + "name": "git-commit-hash", "requires": true, "lockfileVersion": 1, "dependencies": { diff --git a/tools/tests/apps/git-revision/package.json b/tools/tests/apps/git-commit-hash/package.json similarity index 93% rename from tools/tests/apps/git-revision/package.json rename to tools/tests/apps/git-commit-hash/package.json index addd6296ad..ae464d149e 100644 --- a/tools/tests/apps/git-revision/package.json +++ b/tools/tests/apps/git-commit-hash/package.json @@ -1,5 +1,5 @@ { - "name": "git-revision", + "name": "git-commit-hash", "private": true, "scripts": { "start": "meteor run", diff --git a/tools/tests/apps/git-commit-hash/server/main.js b/tools/tests/apps/git-commit-hash/server/main.js new file mode 100644 index 0000000000..a7504fcb96 --- /dev/null +++ b/tools/tests/apps/git-commit-hash/server/main.js @@ -0,0 +1,6 @@ +import { Meteor } from "meteor/meteor"; + +Meteor.startup(() => { + const { gitCommitHash } = __meteor_runtime_config__; + console.log("__meteor_runtime_config__.gitCommitHash: " + gitCommitHash); +}); diff --git a/tools/tests/apps/git-revision/tests/main.js b/tools/tests/apps/git-commit-hash/tests/main.js similarity index 62% rename from tools/tests/apps/git-revision/tests/main.js rename to tools/tests/apps/git-commit-hash/tests/main.js index 9d63a67e88..93c59b7bea 100644 --- a/tools/tests/apps/git-revision/tests/main.js +++ b/tools/tests/apps/git-commit-hash/tests/main.js @@ -2,15 +2,15 @@ import assert from "assert"; const gitShaPattern = /^[0-9a-z]{40}$/; -describe("git-revision", function () { +describe("git-commit-hash", function () { it("package.json has correct name", async function () { const { name } = await import("../package.json"); - assert.strictEqual(name, "git-revision"); + assert.strictEqual(name, "git-commit-hash"); }); - it("Meteor.gitRevision is defined", function () { - assert.strictEqual(typeof Meteor.gitRevision, "string"); - assert(gitShaPattern.test(Meteor.gitRevision), Meteor.gitRevision); + it("Meteor.gitCommitHash is defined", function () { + assert.strictEqual(typeof Meteor.gitCommitHash, "string"); + assert(gitShaPattern.test(Meteor.gitCommitHash), Meteor.gitCommitHash); }); if (Meteor.isClient) { diff --git a/tools/tests/apps/git-revision/server/main.js b/tools/tests/apps/git-revision/server/main.js deleted file mode 100644 index 5778809236..0000000000 --- a/tools/tests/apps/git-revision/server/main.js +++ /dev/null @@ -1,6 +0,0 @@ -import { Meteor } from "meteor/meteor"; - -Meteor.startup(() => { - const { gitRevision } = __meteor_runtime_config__; - console.log("__meteor_runtime_config__.gitRevision: " + gitRevision); -}); diff --git a/tools/tests/git-revision.js b/tools/tests/git-commit-hash.js similarity index 75% rename from tools/tests/git-revision.js rename to tools/tests/git-commit-hash.js index 853bb0ff26..90eef0e920 100644 --- a/tools/tests/git-revision.js +++ b/tools/tests/git-commit-hash.js @@ -24,37 +24,37 @@ function initGitApp(sandbox) { git("add", "."); git("commit", "-m", "first"); - let revision; + let commitHash; git("rev-parse", "HEAD").outputLog.get().some(line => { if (line.channel === "stdout") { - revision = line.text; + commitHash = line.text; return true; } }); - assert(/^[0-9a-z]{40}$/.test(revision), revision); + assert(/^[0-9a-z]{40}$/.test(commitHash), commitHash); - return revision; + return commitHash; } -selftest.define("Meteor.gitRevision", function () { +selftest.define("Meteor.gitCommitHash", function () { const s = new Sandbox(); - s.createApp("app-using-git", "git-revision"); + s.createApp("app-using-git", "git-commit-hash"); s.cd("app-using-git"); - const revision = initGitApp(s); + const commitHash = initGitApp(s); const build = s.run("build", "--directory", "../app-using-git-build"); build.waitSecs(30); build.expectExit(0); const star = JSON.parse(s.read("../app-using-git-build/bundle/star.json")); - assert.strictEqual(star.gitRevision, revision); + assert.strictEqual(star.gitCommitHash, commitHash); const test = s.run("npm", "test"); test.waitSecs(30); - test.match("__meteor_runtime_config__.gitRevision: " + revision); + test.match("__meteor_runtime_config__.gitCommitHash: " + commitHash); test.match("App running at"); test.match("SERVER FAILURES: 0"); test.match("CLIENT FAILURES: 0"); From 1e5863af69bee8b439dec28b1b1e281be7e7d967 Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Mon, 4 Feb 2019 14:33:16 -0500 Subject: [PATCH 092/134] Update Meteor.gitRevision to Meteor.gitCommitHash in History.md. --- History.md | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/History.md b/History.md index 3a79556022..ef06a1825d 100644 --- a/History.md +++ b/History.md @@ -70,11 +70,12 @@ N/A [PR #10414](https://github.com/meteor/meteor/pull/10414) * If your application is using Git for version control, the current Git - revision string will be exposed via `Meteor.gitRevision` while the app - is running, and also via the `"gitRevision"` property in the `star.json` - file located in the root directory of builds produced by `meteor build`. - If you are not using Git, neither property will be defined. - [PR #10442](https://github.com/meteor/meteor/pull/10442) + commit hash will now be exposed via the `Meteor.gitCommitHash` property + while the app is running (in both server and client code), and also via + the `"gitCommitHash"` property in the `star.json` file located in the + root directory of builds produced by `meteor build`, for consumption by + deployment tools. If you are not using Git, neither property will be + defined. [PR #10442](https://github.com/meteor/meteor/pull/10442) ## v1.8.0.2, 2019-01-07 From 0f4802883aa82350f083be0780af87defe1ab15c Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Mon, 4 Feb 2019 14:49:47 -0500 Subject: [PATCH 093/134] Attempt to fix tests by reverting puppeteer from 1.12.1 to 1.6.2. Tests have started failing for reasons that may be related to puppeteer's Meteor process management: https://circleci.com/gh/meteor/meteor/31035 Since I can't identify any other possible causes, using the same version of puppeteer that other tests use (e.g. modules, dynamic-import) seems like a reasonable first step. Also updated puppeteer in tests/apps/app-config/package-lock.json to version 1.6.2 (was 1.3.0), in an attempt to fix some unhandled promise rejection warnings: https://circleci.com/gh/meteor/meteor/31063 --- tools/tests/apps/app-config/package-lock.json | 497 +++++++++--------- .../apps/git-commit-hash/package-lock.json | 34 +- tools/tests/apps/git-commit-hash/package.json | 2 +- 3 files changed, 254 insertions(+), 279 deletions(-) diff --git a/tools/tests/apps/app-config/package-lock.json b/tools/tests/apps/app-config/package-lock.json index cadbb82a17..cde52563f6 100644 --- a/tools/tests/apps/app-config/package-lock.json +++ b/tools/tests/apps/app-config/package-lock.json @@ -3,21 +3,12 @@ "requires": true, "lockfileVersion": 1, "dependencies": { - "@babel/runtime": { - "version": "7.0.0-beta.46", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.0.0-beta.46.tgz", - "integrity": "sha512-/3a3USMKk54BEHhDgY8rtxtaQOs4bp4aQwo6SDtdwmrXmgSgEusWuXNX5oIs/nwzmTD9o8wz2EyAjA+uHDMmJA==", - "requires": { - "core-js": "2.5.6", - "regenerator-runtime": "0.11.1" - } - }, "agent-base": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.2.0.tgz", - "integrity": "sha512-c+R/U5X+2zz2+UCrCFv6odQzJdoqI+YecuhnAJLa1zYaMc13zPfwMwZrr91Pd1DYNo/yPRbiM4WVf9whgwFsIg==", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.2.1.tgz", + "integrity": "sha512-JVwXMr9nHYTUXsBFKUqhJwvlcYU/blreOEUkhNR2eXZIvwd+c+o5V4MgDPKWnMS/56awN3TRzIP+KoPn+roQtg==", "requires": { - "es6-promisify": "5.0.0" + "es6-promisify": "^5.0.0" } }, "async-limiter": { @@ -35,65 +26,81 @@ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "requires": { - "balanced-match": "1.0.0", + "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, + "buffer-from": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", + "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==" + }, "concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" }, "concat-stream": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.0.tgz", - "integrity": "sha1-CqxmL9Ur54lk1VMvaUeE5wEQrPc=", + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", "requires": { - "inherits": "2.0.3", - "readable-stream": "2.3.6", - "typedarray": "0.0.6" + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" } }, - "core-js": { - "version": "2.5.6", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.6.tgz", - "integrity": "sha512-lQUVfQi0aLix2xpyjrrJEvfuYCqPc/HwmTKsC/VNf8q0zsjX7SQZtp4+oRONN5Tsur9GDETPjj+Ub2iDiGZfSQ==" - }, "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=" }, "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", "requires": { - "ms": "2.0.0" + "ms": "^2.1.1" } }, "es6-promise": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.4.tgz", - "integrity": "sha512-/NdNZVJg+uZgtm9eS3O6lrOLYmQag2DjdEXuPaHlZ6RuVqgqaVZfgYCepEIKsLqwdQArOPtC3XzRLqGGfT8KQQ==" + "version": "4.2.5", + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.5.tgz", + "integrity": "sha512-n6wvpdE43VFtJq+lUDYDBFUwV8TZbuGXLV4D6wKafg13ldznKsyEvatubnmUe31zcvelSzOHF+XbaT+Bl9ObDg==" }, "es6-promisify": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=", "requires": { - "es6-promise": "4.2.4" + "es6-promise": "^4.0.3" } }, "extract-zip": { - "version": "1.6.6", - "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.6.6.tgz", - "integrity": "sha1-EpDt6NINCHK0Kf0/NRyhKOxe+Fw=", + "version": "1.6.7", + "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.6.7.tgz", + "integrity": "sha1-qEC0uK9kAyZMjbV/Txp0Mz74H+k=", "requires": { - "concat-stream": "1.6.0", + "concat-stream": "1.6.2", "debug": "2.6.9", - "mkdirp": "0.5.0", + "mkdirp": "0.5.1", "yauzl": "2.4.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + } } }, "fd-slicer": { @@ -101,7 +108,7 @@ "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.0.1.tgz", "integrity": "sha1-i1vL2ewyfFBBv5qwI/1nUPEXfmU=", "requires": { - "pend": "1.2.0" + "pend": "~1.2.0" } }, "fs.realpath": { @@ -110,16 +117,16 @@ "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" }, "glob": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", + "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", "requires": { - "fs.realpath": "1.0.0", - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" } }, "https-proxy-agent": { @@ -127,18 +134,8 @@ "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.1.tgz", "integrity": "sha512-HPCTS1LW51bcyMYbxUIOO4HEOlQ1/1qRaFWcyxvwaqUS9TY88aoEuHUY33kuAh1YhVVaDQhLZsnPd+XNARWZlQ==", "requires": { - "agent-base": "4.2.0", - "debug": "3.1.0" - }, - "dependencies": { - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "requires": { - "ms": "2.0.0" - } - } + "agent-base": "^4.1.0", + "debug": "^3.1.0" } }, "inflight": { @@ -146,8 +143,8 @@ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" + "once": "^1.3.0", + "wrappy": "1" } }, "inherits": { @@ -165,28 +162,28 @@ "resolved": "https://registry.npmjs.org/meteor-node-stubs/-/meteor-node-stubs-0.4.1.tgz", "integrity": "sha512-UO2OStvLOKoApmOdIP5eCqoLaa/ritMXRg4ffJVdkNLEsczzPvTjgC0Mxk4cM4R8MZkwll90FYgjDf5qUTJdMA==", "requires": { - "assert": "1.4.1", - "browserify-zlib": "0.1.4", - "buffer": "4.9.1", - "console-browserify": "1.1.0", - "constants-browserify": "1.0.0", - "crypto-browserify": "3.12.0", - "domain-browser": "1.2.0", - "events": "1.1.1", + "assert": "^1.4.1", + "browserify-zlib": "^0.1.4", + "buffer": "^4.9.1", + "console-browserify": "^1.1.0", + "constants-browserify": "^1.0.0", + "crypto-browserify": "^3.11.0", + "domain-browser": "^1.1.7", + "events": "^1.1.1", "https-browserify": "0.0.1", - "os-browserify": "0.2.1", + "os-browserify": "^0.2.1", "path-browserify": "0.0.0", - "process": "0.11.10", - "punycode": "1.4.1", - "querystring-es3": "0.2.1", - "readable-stream": "2.3.6", - "stream-browserify": "2.0.1", - "stream-http": "2.8.1", - "string_decoder": "1.1.1", - "timers-browserify": "1.4.2", + "process": "^0.11.9", + "punycode": "^1.4.1", + "querystring-es3": "^0.2.1", + "readable-stream": "^2.3.6", + "stream-browserify": "^2.0.1", + "stream-http": "^2.8.0", + "string_decoder": "^1.1.0", + "timers-browserify": "^1.4.2", "tty-browserify": "0.0.0", - "url": "0.11.0", - "util": "0.10.3", + "url": "^0.11.0", + "util": "^0.10.3", "vm-browserify": "0.0.4" }, "dependencies": { @@ -194,9 +191,9 @@ "version": "4.10.1", "bundled": true, "requires": { - "bn.js": "4.11.8", - "inherits": "2.0.1", - "minimalistic-assert": "1.0.1" + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" } }, "assert": { @@ -222,67 +219,67 @@ "version": "1.2.0", "bundled": true, "requires": { - "buffer-xor": "1.0.3", - "cipher-base": "1.0.4", - "create-hash": "1.2.0", - "evp_bytestokey": "1.0.3", - "inherits": "2.0.1", - "safe-buffer": "5.1.2" + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" } }, "browserify-cipher": { "version": "1.0.1", "bundled": true, "requires": { - "browserify-aes": "1.2.0", - "browserify-des": "1.0.1", - "evp_bytestokey": "1.0.3" + "browserify-aes": "^1.0.4", + "browserify-des": "^1.0.0", + "evp_bytestokey": "^1.0.0" } }, "browserify-des": { "version": "1.0.1", "bundled": true, "requires": { - "cipher-base": "1.0.4", - "des.js": "1.0.0", - "inherits": "2.0.1" + "cipher-base": "^1.0.1", + "des.js": "^1.0.0", + "inherits": "^2.0.1" } }, "browserify-rsa": { "version": "4.0.1", "bundled": true, "requires": { - "bn.js": "4.11.8", - "randombytes": "2.0.6" + "bn.js": "^4.1.0", + "randombytes": "^2.0.1" } }, "browserify-sign": { "version": "4.0.4", "bundled": true, "requires": { - "bn.js": "4.11.8", - "browserify-rsa": "4.0.1", - "create-hash": "1.2.0", - "create-hmac": "1.1.7", - "elliptic": "6.4.0", - "inherits": "2.0.1", - "parse-asn1": "5.1.1" + "bn.js": "^4.1.1", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.2", + "elliptic": "^6.0.0", + "inherits": "^2.0.1", + "parse-asn1": "^5.0.0" } }, "browserify-zlib": { "version": "0.1.4", "bundled": true, "requires": { - "pako": "0.2.9" + "pako": "~0.2.0" } }, "buffer": { "version": "4.9.1", "bundled": true, "requires": { - "base64-js": "1.3.0", - "ieee754": "1.1.11", - "isarray": "1.0.0" + "base64-js": "^1.0.2", + "ieee754": "^1.1.4", + "isarray": "^1.0.0" } }, "buffer-xor": { @@ -297,15 +294,15 @@ "version": "1.0.4", "bundled": true, "requires": { - "inherits": "2.0.1", - "safe-buffer": "5.1.2" + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" } }, "console-browserify": { "version": "1.1.0", "bundled": true, "requires": { - "date-now": "0.1.4" + "date-now": "^0.1.4" } }, "constants-browserify": { @@ -320,48 +317,48 @@ "version": "4.0.3", "bundled": true, "requires": { - "bn.js": "4.11.8", - "elliptic": "6.4.0" + "bn.js": "^4.1.0", + "elliptic": "^6.0.0" } }, "create-hash": { "version": "1.2.0", "bundled": true, "requires": { - "cipher-base": "1.0.4", - "inherits": "2.0.1", - "md5.js": "1.3.4", - "ripemd160": "2.0.2", - "sha.js": "2.4.11" + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" } }, "create-hmac": { "version": "1.1.7", "bundled": true, "requires": { - "cipher-base": "1.0.4", - "create-hash": "1.2.0", - "inherits": "2.0.1", - "ripemd160": "2.0.2", - "safe-buffer": "5.1.2", - "sha.js": "2.4.11" + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" } }, "crypto-browserify": { "version": "3.12.0", "bundled": true, "requires": { - "browserify-cipher": "1.0.1", - "browserify-sign": "4.0.4", - "create-ecdh": "4.0.3", - "create-hash": "1.2.0", - "create-hmac": "1.1.7", - "diffie-hellman": "5.0.3", - "inherits": "2.0.1", - "pbkdf2": "3.0.16", - "public-encrypt": "4.0.2", - "randombytes": "2.0.6", - "randomfill": "1.0.4" + "browserify-cipher": "^1.0.0", + "browserify-sign": "^4.0.0", + "create-ecdh": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.0", + "diffie-hellman": "^5.0.0", + "inherits": "^2.0.1", + "pbkdf2": "^3.0.3", + "public-encrypt": "^4.0.0", + "randombytes": "^2.0.0", + "randomfill": "^1.0.3" } }, "date-now": { @@ -372,17 +369,17 @@ "version": "1.0.0", "bundled": true, "requires": { - "inherits": "2.0.1", - "minimalistic-assert": "1.0.1" + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" } }, "diffie-hellman": { "version": "5.0.3", "bundled": true, "requires": { - "bn.js": "4.11.8", - "miller-rabin": "4.0.1", - "randombytes": "2.0.6" + "bn.js": "^4.1.0", + "miller-rabin": "^4.0.0", + "randombytes": "^2.0.0" } }, "domain-browser": { @@ -393,13 +390,13 @@ "version": "6.4.0", "bundled": true, "requires": { - "bn.js": "4.11.8", - "brorand": "1.1.0", - "hash.js": "1.1.3", - "hmac-drbg": "1.0.1", - "inherits": "2.0.1", - "minimalistic-assert": "1.0.1", - "minimalistic-crypto-utils": "1.0.1" + "bn.js": "^4.4.0", + "brorand": "^1.0.1", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.0" } }, "events": { @@ -410,24 +407,24 @@ "version": "1.0.3", "bundled": true, "requires": { - "md5.js": "1.3.4", - "safe-buffer": "5.1.2" + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" } }, "hash-base": { "version": "3.0.4", "bundled": true, "requires": { - "inherits": "2.0.1", - "safe-buffer": "5.1.2" + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" } }, "hash.js": { "version": "1.1.3", "bundled": true, "requires": { - "inherits": "2.0.3", - "minimalistic-assert": "1.0.1" + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.0" }, "dependencies": { "inherits": { @@ -440,9 +437,9 @@ "version": "1.0.1", "bundled": true, "requires": { - "hash.js": "1.1.3", - "minimalistic-assert": "1.0.1", - "minimalistic-crypto-utils": "1.0.1" + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" } }, "https-browserify": { @@ -469,16 +466,16 @@ "version": "1.3.4", "bundled": true, "requires": { - "hash-base": "3.0.4", - "inherits": "2.0.1" + "hash-base": "^3.0.0", + "inherits": "^2.0.1" } }, "miller-rabin": { "version": "4.0.1", "bundled": true, "requires": { - "bn.js": "4.11.8", - "brorand": "1.1.0" + "bn.js": "^4.0.0", + "brorand": "^1.0.1" } }, "minimalistic-assert": { @@ -501,11 +498,11 @@ "version": "5.1.1", "bundled": true, "requires": { - "asn1.js": "4.10.1", - "browserify-aes": "1.2.0", - "create-hash": "1.2.0", - "evp_bytestokey": "1.0.3", - "pbkdf2": "3.0.16" + "asn1.js": "^4.0.0", + "browserify-aes": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.0", + "pbkdf2": "^3.0.3" } }, "path-browserify": { @@ -516,11 +513,11 @@ "version": "3.0.16", "bundled": true, "requires": { - "create-hash": "1.2.0", - "create-hmac": "1.1.7", - "ripemd160": "2.0.2", - "safe-buffer": "5.1.2", - "sha.js": "2.4.11" + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" } }, "process": { @@ -535,11 +532,11 @@ "version": "4.0.2", "bundled": true, "requires": { - "bn.js": "4.11.8", - "browserify-rsa": "4.0.1", - "create-hash": "1.2.0", - "parse-asn1": "5.1.1", - "randombytes": "2.0.6" + "bn.js": "^4.1.0", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "parse-asn1": "^5.0.0", + "randombytes": "^2.0.1" } }, "punycode": { @@ -558,28 +555,28 @@ "version": "2.0.6", "bundled": true, "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "^5.1.0" } }, "randomfill": { "version": "1.0.4", "bundled": true, "requires": { - "randombytes": "2.0.6", - "safe-buffer": "5.1.2" + "randombytes": "^2.0.5", + "safe-buffer": "^5.1.0" } }, "readable-stream": { "version": "2.3.6", "bundled": true, "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "2.0.0", - "safe-buffer": "5.1.2", - "string_decoder": "1.1.1", - "util-deprecate": "1.0.2" + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" }, "dependencies": { "inherits": { @@ -592,8 +589,8 @@ "version": "2.0.2", "bundled": true, "requires": { - "hash-base": "3.0.4", - "inherits": "2.0.1" + "hash-base": "^3.0.0", + "inherits": "^2.0.1" } }, "safe-buffer": { @@ -604,41 +601,41 @@ "version": "2.4.11", "bundled": true, "requires": { - "inherits": "2.0.1", - "safe-buffer": "5.1.2" + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" } }, "stream-browserify": { "version": "2.0.1", "bundled": true, "requires": { - "inherits": "2.0.1", - "readable-stream": "2.3.6" + "inherits": "~2.0.1", + "readable-stream": "^2.0.2" } }, "stream-http": { "version": "2.8.1", "bundled": true, "requires": { - "builtin-status-codes": "3.0.0", - "inherits": "2.0.1", - "readable-stream": "2.3.6", - "to-arraybuffer": "1.0.1", - "xtend": "4.0.1" + "builtin-status-codes": "^3.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.3.3", + "to-arraybuffer": "^1.0.0", + "xtend": "^4.0.0" } }, "string_decoder": { "version": "1.1.1", "bundled": true, "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "~5.1.0" } }, "timers-browserify": { "version": "1.4.2", "bundled": true, "requires": { - "process": "0.11.10" + "process": "~0.11.0" } }, "to-arraybuffer": { @@ -688,16 +685,16 @@ } }, "mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.0.tgz", + "integrity": "sha512-ikBcWwyqXQSHKtciCcctu9YfPbFYZ4+gbHEmE0Q8jzcTYQg5dHCr3g2wwAZjPoJfQVXZq6KXAjpXOTf5/cjT7w==" }, "minimatch": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "requires": { - "brace-expansion": "1.1.11" + "brace-expansion": "^1.1.7" } }, "minimist": { @@ -706,24 +703,24 @@ "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" }, "mkdirp": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.0.tgz", - "integrity": "sha1-HXMHam35hs2TROFecfzAWkyavxI=", + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", "requires": { "minimist": "0.0.8" } }, "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" }, "once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "requires": { - "wrappy": "1.0.2" + "wrappy": "1" } }, "path-is-absolute": { @@ -742,9 +739,9 @@ "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==" }, "progress": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.0.tgz", - "integrity": "sha1-ihvjZr+Pwj2yvSPxDG/pILQ4nR8=" + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==" }, "proxy-from-env": { "version": "1.0.0", @@ -752,18 +749,18 @@ "integrity": "sha1-M8UDmPcOp+uW0h97gXYwpVeRx+4=" }, "puppeteer": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-1.3.0.tgz", - "integrity": "sha512-wx10aPQPpGJVxdB6yoDSLm9p4rCwARUSLMVV0bx++owuqkvviXKyiFM3EWsywaFmjOKNPXacIjplF7xhHiFP3w==", + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-1.6.2.tgz", + "integrity": "sha512-KBgMr/ZdwIwDQWTqcAlGhnQ2Vd6p+o5B89H60XUfdmCpia2KViSZsdRjvrf2wYOxXSrpYx6OuCBzV7ppLuNjNg==", "requires": { - "debug": "2.6.9", - "extract-zip": "1.6.6", - "https-proxy-agent": "2.2.1", - "mime": "1.6.0", - "progress": "2.0.0", - "proxy-from-env": "1.0.0", - "rimraf": "2.6.2", - "ws": "3.3.3" + "debug": "^3.1.0", + "extract-zip": "^1.6.6", + "https-proxy-agent": "^2.2.1", + "mime": "^2.0.3", + "progress": "^2.0.0", + "proxy-from-env": "^1.0.0", + "rimraf": "^2.6.1", + "ws": "^5.1.1" } }, "readable-stream": { @@ -771,39 +768,34 @@ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "2.0.0", - "safe-buffer": "5.1.1", - "string_decoder": "1.1.1", - "util-deprecate": "1.0.2" + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" } }, - "regenerator-runtime": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", - "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==" - }, "rimraf": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", - "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", + "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", "requires": { - "glob": "7.1.2" + "glob": "^7.1.3" } }, "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==" }, "string_decoder": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "requires": { - "safe-buffer": "5.1.1" + "safe-buffer": "~5.1.0" } }, "typedarray": { @@ -811,11 +803,6 @@ "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" }, - "ultron": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz", - "integrity": "sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==" - }, "util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", @@ -827,13 +814,11 @@ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" }, "ws": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz", - "integrity": "sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==", + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/ws/-/ws-5.2.2.tgz", + "integrity": "sha512-jaHFD6PFv6UgoIVda6qZllptQsMlDEJkTQcybzzXDYM1XO9Y8em691FGMPmM46WGyLU4z9KMgQN+qrux/nhlHA==", "requires": { - "async-limiter": "1.0.0", - "safe-buffer": "5.1.1", - "ultron": "1.1.1" + "async-limiter": "~1.0.0" } }, "yauzl": { @@ -841,7 +826,7 @@ "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.4.1.tgz", "integrity": "sha1-lSj0QtqxsihOWLQ3m7GU4i4MQAU=", "requires": { - "fd-slicer": "1.0.1" + "fd-slicer": "~1.0.1" } } } diff --git a/tools/tests/apps/git-commit-hash/package-lock.json b/tools/tests/apps/git-commit-hash/package-lock.json index 4d10ed5fe0..05e29a291f 100644 --- a/tools/tests/apps/git-commit-hash/package-lock.json +++ b/tools/tests/apps/git-commit-hash/package-lock.json @@ -65,9 +65,9 @@ "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" }, "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", "requires": { "ms": "^2.1.1" } @@ -144,16 +144,6 @@ "requires": { "agent-base": "^4.1.0", "debug": "^3.1.0" - }, - "dependencies": { - "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", - "requires": { - "ms": "^2.1.1" - } - } } }, "inflight": { @@ -767,18 +757,18 @@ "integrity": "sha1-M8UDmPcOp+uW0h97gXYwpVeRx+4=" }, "puppeteer": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-1.12.1.tgz", - "integrity": "sha512-FlMLdgAnURMMtwb2S6XtkBRw+kh1V+gGt09pCJF9mB1eOnF9+JhtvTxFeu1Rm5X1pKMXq5xrosrhBTgmdwzPeA==", + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-1.6.2.tgz", + "integrity": "sha512-KBgMr/ZdwIwDQWTqcAlGhnQ2Vd6p+o5B89H60XUfdmCpia2KViSZsdRjvrf2wYOxXSrpYx6OuCBzV7ppLuNjNg==", "requires": { - "debug": "^4.1.0", + "debug": "^3.1.0", "extract-zip": "^1.6.6", "https-proxy-agent": "^2.2.1", "mime": "^2.0.3", - "progress": "^2.0.1", + "progress": "^2.0.0", "proxy-from-env": "^1.0.0", "rimraf": "^2.6.1", - "ws": "^6.1.0" + "ws": "^5.1.1" } }, "readable-stream": { @@ -837,9 +827,9 @@ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" }, "ws": { - "version": "6.1.3", - "resolved": "https://registry.npmjs.org/ws/-/ws-6.1.3.tgz", - "integrity": "sha512-tbSxiT+qJI223AP4iLfQbkbxkwdFcneYinM2+x46Gx2wgvbaOMO36czfdfVUBRTHvzAMRhDd98sA5d/BuWbQdg==", + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/ws/-/ws-5.2.2.tgz", + "integrity": "sha512-jaHFD6PFv6UgoIVda6qZllptQsMlDEJkTQcybzzXDYM1XO9Y8em691FGMPmM46WGyLU4z9KMgQN+qrux/nhlHA==", "requires": { "async-limiter": "~1.0.0" } diff --git a/tools/tests/apps/git-commit-hash/package.json b/tools/tests/apps/git-commit-hash/package.json index ae464d149e..60750f39f7 100644 --- a/tools/tests/apps/git-commit-hash/package.json +++ b/tools/tests/apps/git-commit-hash/package.json @@ -8,7 +8,7 @@ "dependencies": { "@babel/runtime": "^7.1.5", "meteor-node-stubs": "^0.4.1", - "puppeteer": "^1.12.1" + "puppeteer": "^1.6.2" }, "meteor": { "mainModule": { From 987c7b99b935a1138efa92f43c516f6f7cac1a7c Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Mon, 4 Feb 2019 16:29:11 -0500 Subject: [PATCH 094/134] Bump package versions for 1.8.1-beta.17 release. --- packages/autoupdate/package.js | 2 +- packages/ddp-server/package.js | 2 +- packages/meteor-tool/package.js | 2 +- packages/meteor/package.js | 2 +- packages/modern-browsers/package.js | 2 +- packages/npm-mongo/package.js | 2 +- packages/reactive-dict/package.js | 2 +- packages/reload/package.js | 2 +- packages/session/package.js | 2 +- packages/webapp/package.js | 2 +- scripts/admin/meteor-release-experimental.json | 2 +- 11 files changed, 11 insertions(+), 11 deletions(-) diff --git a/packages/autoupdate/package.js b/packages/autoupdate/package.js index 7acf664ec2..975aecc677 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.16' + version: '1.6.0-beta181.17' }); Package.onUse(function (api) { diff --git a/packages/ddp-server/package.js b/packages/ddp-server/package.js index 65af1a6cf1..08baad2822 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.16', + version: '2.3.0-beta181.17', documentation: null }); diff --git a/packages/meteor-tool/package.js b/packages/meteor-tool/package.js index 718e3117ff..d788fbf952 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.16' + version: '1.8.1-beta.17' }); Package.includeTool(); diff --git a/packages/meteor/package.js b/packages/meteor/package.js index 0b2c1d2877..0e3db38033 100644 --- a/packages/meteor/package.js +++ b/packages/meteor/package.js @@ -2,7 +2,7 @@ Package.describe({ summary: "Core Meteor environment", - version: '1.9.3' + version: '1.9.3-beta181.17' }); Package.registerBuildPlugin({ diff --git a/packages/modern-browsers/package.js b/packages/modern-browsers/package.js index ce5c847c36..f105709ea8 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.16", + version: "0.1.4-beta181.17", summary: "API for defining the boundary between modern and legacy " + "JavaScript clients", documentation: "README.md" diff --git a/packages/npm-mongo/package.js b/packages/npm-mongo/package.js index ec50140e09..6251ffbd40 100644 --- a/packages/npm-mongo/package.js +++ b/packages/npm-mongo/package.js @@ -3,7 +3,7 @@ Package.describe({ summary: "Wrapper around the mongo npm package", - version: "3.1.2-beta181.16", + version: "3.1.2-beta181.17", documentation: null }); diff --git a/packages/reactive-dict/package.js b/packages/reactive-dict/package.js index 3618e015ab..69b4d08ffe 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.16' + version: '1.3.0-beta181.17' }); Package.onUse(function (api) { diff --git a/packages/reload/package.js b/packages/reload/package.js index f88543e348..a571d3a963 100644 --- a/packages/reload/package.js +++ b/packages/reload/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "Reload the page while preserving application state.", - version: '1.3.0-beta181.16' + version: '1.3.0-beta181.17' }); Package.onUse(function (api) { diff --git a/packages/session/package.js b/packages/session/package.js index d8974e2915..dd86da3708 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.16' + version: '1.2.0-beta181.17' }); Package.onUse(function (api) { diff --git a/packages/webapp/package.js b/packages/webapp/package.js index e108e74289..bbe459dbe6 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.3-beta181.16' + version: '1.7.3-beta181.17' }); 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 4bc95010f6..f4244c21eb 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.16", + "version": "1.8.1-beta.17", "recommended": false, "official": false, "description": "Meteor" From f11b905185539c0a08d0eb31f6e0ef5808a607bc Mon Sep 17 00:00:00 2001 From: zodern Date: Wed, 13 Feb 2019 11:13:00 -0600 Subject: [PATCH 095/134] Use optimistic functions with assets --- tools/isobuild/compiler.js | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/tools/isobuild/compiler.js b/tools/isobuild/compiler.js index 2bc4e5c832..4f8c5a2ca3 100644 --- a/tools/isobuild/compiler.js +++ b/tools/isobuild/compiler.js @@ -479,12 +479,8 @@ var compileUnibuild = Profile(function (options) { const relPath = asset.relPath; const absPath = files.pathResolve(inputSourceArch.sourceRoot, relPath); - // readAndWatchFileWithHash returns an object carrying a buffer with the - // file-contents. The buffer contains the original data of the file (no EOL - // transforms from the tools/files.js part). - const file = watch.readAndWatchFileWithHash(watchSet, absPath); - const hash = file.hash; - const contents = file.contents; + const hash = optimisticHashOrNull(absPath) + const contents = optimisticReadFile(absPath) addAsset(contents, relPath, hash); }); From ba3e33380b0d473552041cdd79a01c28bca76450 Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Tue, 26 Feb 2019 18:28:48 -0500 Subject: [PATCH 096/134] Update npm to version 6.8.0 and pacote to version 9.4.1. --- History.md | 6 +++--- scripts/build-dev-bundle-common.sh | 2 +- scripts/dev-bundle-tool-package.js | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/History.md b/History.md index ef06a1825d..db3b735474 100644 --- a/History.md +++ b/History.md @@ -25,9 +25,9 @@ N/A fixed. [Issue #10216](https://github.com/meteor/meteor/issues/10216) * The `npm` tool has been upgraded to version - [6.5.0](https://github.com/npm/cli/releases/tag/v6.5.0), and our - [fork](https://github.com/meteor/pacote/tree/v8.1.6-meteor) of its - `pacote` dependency remains at version 8.1.6. + [6.8.0](https://github.com/npm/cli/releases/tag/v6.8.0), and our + [fork](https://github.com/meteor/pacote/tree/v9.4.1-meteor) of its + `pacote` dependency has been updated to version 9.4.1. * Mongo has been upgraded to version 4.0.4 for 64-bit systems (was 4.0.2), and 3.2.21 for 32-bit systems (was 3.2.19). The `mongodb` npm package diff --git a/scripts/build-dev-bundle-common.sh b/scripts/build-dev-bundle-common.sh index 5101dee407..a221235506 100644 --- a/scripts/build-dev-bundle-common.sh +++ b/scripts/build-dev-bundle-common.sh @@ -8,7 +8,7 @@ ARCH=$(uname -m) NODE_VERSION=8.15.0 MONGO_VERSION_64BIT=4.0.4 MONGO_VERSION_32BIT=3.2.21 -NPM_VERSION=6.5.0 +NPM_VERSION=6.8.0 # If we built Node from source on Jenkins, this is the build number. NODE_BUILD_NUMBER= diff --git a/scripts/dev-bundle-tool-package.js b/scripts/dev-bundle-tool-package.js index fb1755f576..7dcd70379b 100644 --- a/scripts/dev-bundle-tool-package.js +++ b/scripts/dev-bundle-tool-package.js @@ -10,8 +10,8 @@ var packageJson = { dependencies: { // Explicit dependency because we are replacing it with a bundled version // and we want to make sure there are no dependencies on a higher version - npm: "6.5.0", - pacote: "https://github.com/meteor/pacote/tarball/a3285854a68e4969d6c8abaa74407f7d113b178f", + npm: "6.8.0", + pacote: "https://github.com/meteor/pacote/tarball/0aa5b08a6bfe5feeff3b55581d63003737821a6c", "node-gyp": "3.7.0", "node-pre-gyp": "0.10.3", "meteor-babel": "7.2.0", From 83ec5e9ff8f50cdeeddc3a4e5055a6a22371a433 Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Tue, 26 Feb 2019 19:07:01 -0500 Subject: [PATCH 097/134] Update meteor-babel to version 7.3.4. --- History.md | 2 + .../.npm/package/npm-shrinkwrap.json | 204 +++++++++--------- packages/babel-compiler/package.js | 4 +- 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, 113 insertions(+), 111 deletions(-) diff --git a/History.md b/History.md index db3b735474..a5bc966628 100644 --- a/History.md +++ b/History.md @@ -40,6 +40,8 @@ N/A `g++` used when running `npm install` in the `bundle/programs/server` directory. +* The `meteor-babel` npm package has been updated to version 7.3.4. + * Cordova Hot Code Push mechanism is now switching versions explicitly with call to `WebAppLocalServer.switchToPendingVersion` instead of trying to switch every time a browser reload is detected. If you use any third diff --git a/packages/babel-compiler/.npm/package/npm-shrinkwrap.json b/packages/babel-compiler/.npm/package/npm-shrinkwrap.json index 1053e79fbf..a927664f22 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.2.0", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.2.0.tgz", - "integrity": "sha512-7pvAdC4B+iKjFFp9Ztj0QgBndJ++qaMeonT185wAqUnhipw8idm9Rv1UMyBuKtYjfl6ORNkgEgcsYLfHX/GpLw==", + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.3.4.tgz", + "integrity": "sha512-jRsuseXBo9pN197KnDwhhaaBzyZr2oIcLHHTt2oDdQrej5Qp57dCCJafWx5ivU8/alEYDpssYqv1MUqcxwQlrA==", "dependencies": { "json5": { "version": "2.1.0", @@ -19,9 +19,9 @@ } }, "@babel/generator": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.2.0.tgz", - "integrity": "sha512-BA75MVfRlFQG2EZgFYIwyT1r6xSkwfP2bdkY/kLZusEYWiJs4xCowab/alaEaT0wSvmVuXGqiefeBlP+7V1yKg==" + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.3.4.tgz", + "integrity": "sha512-8EXhHRFqlVVWXPezBW5keTiQi/rJMQTg/Y9uVCEZ0CAF3PKtCCaVRnp64Ii1ujhkoDhhF1fVsImoN4yJ2uz4Wg==" }, "@babel/helper-annotate-as-pure": { "version": "7.0.0", @@ -34,9 +34,9 @@ "integrity": "sha512-qNSR4jrmJ8M1VMM9tibvyRAHXQs2PmaksQF7c1CGJNipfe3D8p+wgNwgso/P2A2r2mdgBWAXljNWR0QRZAMW8w==" }, "@babel/helper-builder-react-jsx": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.0.0.tgz", - "integrity": "sha512-ebJ2JM6NAKW0fQEqN8hOLxK84RbRz9OkUhGS/Xd5u56ejMfVbayJ4+LykERZCOUM6faa6Fp3SZNX3fcT16MKHw==" + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.3.0.tgz", + "integrity": "sha512-MjA9KgwCuPEkQd9ncSXvSyJ5y+j2sICHyrI0M3L+6fnS4wMSNDc1ARXsbTfbb2cXHn17VisSnU/sHFTCxVxSMw==" }, "@babel/helper-call-delegate": { "version": "7.1.0", @@ -44,9 +44,9 @@ "integrity": "sha512-YEtYZrw3GUK6emQHKthltKNZwszBcHK58Ygcis+gVUrF4/FmTVr5CCqQNSfmvg2y+YDEANyYoaLz/SHsnusCwQ==" }, "@babel/helper-create-class-features-plugin": { - "version": "7.2.1", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.2.1.tgz", - "integrity": "sha512-EsEP7XLFmcJHjcuFYBxYD1FkP0irC8C9fsrt2tX/jrAi/eTnFI6DOPgVFb+WREeg1GboF+Ib+nCHbGBodyAXSg==" + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.3.4.tgz", + "integrity": "sha512-uFpzw6L2omjibjxa8VGZsJUPL5wJH0zzGKpoz0ccBkzIa6C8kWNUbiBmQ0rgOKWlHJ6qzmfa6lTiGchiV8SC+g==" }, "@babel/helper-define-map": { "version": "7.1.0", @@ -84,9 +84,9 @@ "integrity": "sha512-aP/hlLq01DWNEiDg4Jn23i+CXxW/owM4WpDLFUbpjxe4NS3BhLVZQ5i7E0ZrxuQ/vwekIeciyamgB1UIYxxM6A==" }, "@babel/helper-module-transforms": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.1.0.tgz", - "integrity": "sha512-0JZRd2yhawo79Rcm4w0LwSMILFmFXjugG3yqf+P/UsKsRS1mJCmMwwlHDlMg7Avr9LrvSpp4ZSULO9r8jpCzcw==" + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.2.2.tgz", + "integrity": "sha512-YRD7I6Wsv+IHuTPkAmAS4HhY0dkPobgLftHp0cRGZSdrRvmZY8rFvae/GVu3bD00qscuvK3WPHB3YdNpBXUqrA==" }, "@babel/helper-optimise-call-expression": { "version": "7.0.0", @@ -109,9 +109,9 @@ "integrity": "sha512-3fOK0L+Fdlg8S5al8u/hWE6vhufGSn0bN09xm2LXMy//REAF8kDCrYoOBKYmA8m5Nom+sV9LyLCwrFynA8/slg==" }, "@babel/helper-replace-supers": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.1.0.tgz", - "integrity": "sha512-BvcDWYZRWVuDeXTYZWxekQNO5D4kO55aArwZOTFXw6rlLQA8ZaDicJR1sO47h+HrnCiDFiww0fSPV0d713KBGQ==" + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.3.4.tgz", + "integrity": "sha512-pvObL9WVf2ADs+ePg0jrqlhHoxRXlOa+SHRHzAXIz2xkYuOHfGl+fKxPMaS4Fq+uje8JQPobnertBBvyrWnQ1A==" }, "@babel/helper-simple-access": { "version": "7.1.0", @@ -129,9 +129,9 @@ "integrity": "sha512-o9fP1BZLLSrYlxYEYyl2aS+Flun5gtjTIG8iln+XuEzQTs0PLagAGSXUcqruJwD5fM48jzIEggCKpIfWTcR7pQ==" }, "@babel/helpers": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.2.0.tgz", - "integrity": "sha512-Fr07N+ea0dMcMN8nFpuK6dUIT7/ivt9yKQdEEnjVS83tG2pHwPi03gYmk/tyuwONnZ+sY+GFFPlWGgCtW1hF9A==" + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.3.1.tgz", + "integrity": "sha512-Q82R3jKsVpUV99mgX50gOPCWwco9Ec5Iln/8Vyu4osNIOQgSrd9RFrQeUvmvddFNoLwMyOUWU+5ckioEKpDoGA==" }, "@babel/highlight": { "version": "7.0.0", @@ -139,9 +139,9 @@ "integrity": "sha512-UFMC4ZeFC48Tpvj7C8UgLvtkaUuovQX+5xNWrsIoMG8o2z+XFKjKaN9iVmS84dPwVN00W4wPmqvYoZF3EGAsfw==" }, "@babel/parser": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.2.0.tgz", - "integrity": "sha512-M74+GvK4hn1eejD9lZ7967qAwvqTZayQa3g10ag4s9uewgR7TKjeaT0YMyoq+gVfKYABiWZ4MQD701/t5e1Jhg==" + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.3.4.tgz", + "integrity": "sha512-tXZCqWtlOOP4wgCp6RjRvLmfuhnqTLy9VHwRochJBCP2nDm27JnnuFEnXFASVyQNHk36jD1tAammsCEEqgscIQ==" }, "@babel/plugin-proposal-async-generator-functions": { "version": "7.2.0", @@ -149,14 +149,14 @@ "integrity": "sha512-+Dfo/SCQqrwx48ptLVGLdE39YtWRuKc/Y9I5Fy0P1DDBB9lsAHpjcEJQt+4IifuSOSTLBKJObJqMvaO1pIE8LQ==" }, "@babel/plugin-proposal-class-properties": { - "version": "7.2.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.2.1.tgz", - "integrity": "sha512-/4FKFChkQ2Jgb8lBDsvFX496YTi7UWTetVgS8oJUpX1e/DlaoeEK57At27ug8Hu2zI2g8bzkJ+8k9qrHZRPGPA==" + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.3.4.tgz", + "integrity": "sha512-lUf8D3HLs4yYlAo8zjuneLvfxN7qfKv1Yzbj5vjqaqMJxgJA3Ipwp4VUJ+OrOdz53Wbww6ahwB8UhB2HQyLotA==" }, "@babel/plugin-proposal-object-rest-spread": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.2.0.tgz", - "integrity": "sha512-1L5mWLSvR76XYUQJXkd/EEQgjq8HHRP6lQuZTTg0VA4tTGPpGemmCdAfQIz1rzEuWAm+ecP8PyyEm30jC1eQCg==" + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.3.4.tgz", + "integrity": "sha512-j7VQmbbkA+qrzNqbKHrBsW3ddFnOeva6wzSe/zB7T+xaxGc+RCpwo44wCmRixAIGRoIpmVgvzFzNJqQcO3/9RA==" }, "@babel/plugin-syntax-async-generators": { "version": "7.2.0", @@ -184,9 +184,9 @@ "integrity": "sha512-t0JKGgqk2We+9may3t0xDdmneaXmyxq0xieYcKHxIsrJO64n1OiMWNUtc5gQK1PA0NpdCRrtZp4z+IUaKugrSA==" }, "@babel/plugin-syntax-typescript": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.2.0.tgz", - "integrity": "sha512-WhKr6yu6yGpGcNMVgIBuI9MkredpVc7Y3YR4UzEZmDztHoL6wV56YBHLhWnjO1EvId1B32HrD3DRFc+zSoKI1g==" + "version": "7.3.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.3.3.tgz", + "integrity": "sha512-dGwbSMA1YhVS8+31CnPR7LB4pcbrzcV99wQzby4uAfrkZPYZlQ7ImwdpzLqi6Z6IL02b8IAL379CaMwo0x5Lag==" }, "@babel/plugin-transform-arrow-functions": { "version": "7.2.0", @@ -194,9 +194,9 @@ "integrity": "sha512-ER77Cax1+8/8jCB9fo4Ud161OZzWN5qawi4GusDuRLcDbDG+bIGYY20zb2dfAFdTRGzrfq2xZPvF0R64EHnimg==" }, "@babel/plugin-transform-async-to-generator": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.2.0.tgz", - "integrity": "sha512-CEHzg4g5UraReozI9D4fblBYABs7IM6UerAVG7EJVrTLC5keh00aEuLUT+O40+mJCEzaXkYfTCUKIyeDfMOFFQ==" + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.3.4.tgz", + "integrity": "sha512-Y7nCzv2fw/jEZ9f678MuKdMo99MFDJMT/PvD9LisrR5JDFcJH6vYeH6RnjVt3p5tceyGRvTtEN0VOlU+rgHZjA==" }, "@babel/plugin-transform-block-scoped-functions": { "version": "7.2.0", @@ -204,14 +204,14 @@ "integrity": "sha512-ntQPR6q1/NKuphly49+QiQiTN0O63uOwjdD6dhIjSWBI5xlrbUFh720TIpzBhpnrLfv2tNH/BXvLIab1+BAI0w==" }, "@babel/plugin-transform-block-scoping": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.2.0.tgz", - "integrity": "sha512-vDTgf19ZEV6mx35yiPJe4fS02mPQUUcBNwWQSZFXSzTSbsJFQvHt7DqyS3LK8oOWALFOsJ+8bbqBgkirZteD5Q==" + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.3.4.tgz", + "integrity": "sha512-blRr2O8IOZLAOJklXLV4WhcEzpYafYQKSGT3+R26lWG41u/FODJuBggehtOwilVAcFu393v3OFj+HmaE6tVjhA==" }, "@babel/plugin-transform-classes": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.2.0.tgz", - "integrity": "sha512-aPCEkrhJYebDXcGTAP+cdUENkH7zqOlgbKwLbghjjHpJRJBWM/FSlCjMoPGA8oUdiMfOrk3+8EFPLLb5r7zj2w==" + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.3.4.tgz", + "integrity": "sha512-J9fAvCFBkXEvBimgYxCjvaVDzL6thk0j0dBvCeZmIUDBwyt+nv6HfbImsSrWsYXfDNDivyANgJlFXDUWRTZBuA==" }, "@babel/plugin-transform-computed-properties": { "version": "7.2.0", @@ -219,9 +219,9 @@ "integrity": "sha512-kP/drqTxY6Xt3NNpKiMomfgkNn4o7+vKxK2DDKcBG9sHj51vHqMBGy8wbDS/J4lMxnqs153/T3+DmCEAkC5cpA==" }, "@babel/plugin-transform-destructuring": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.2.0.tgz", - "integrity": "sha512-coVO2Ayv7g0qdDbrNiadE4bU7lvCd9H539m2gMknyVjjMdwF/iCOM7R+E8PkntoqLkltO0rk+3axhpp/0v68VQ==" + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.3.2.tgz", + "integrity": "sha512-Lrj/u53Ufqxl/sGxyjsJ2XNtNuEjDyjpqdhMNh5aZ+XFOdThL46KBj27Uem4ggoezSYBxKWAil6Hu8HtwqesYw==" }, "@babel/plugin-transform-exponentiation-operator": { "version": "7.2.0", @@ -229,9 +229,9 @@ "integrity": "sha512-umh4hR6N7mu4Elq9GG8TOu9M0bakvlsREEC+ialrQN6ABS4oDQ69qJv1VtR3uxlKMCQMCvzk7vr17RHKcjx68A==" }, "@babel/plugin-transform-flow-strip-types": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.2.0.tgz", - "integrity": "sha512-xhQp0lyXA5vk8z1kJitdMozQYEWfo4MgC6neNXrb5euqHiTIGhj5ZWfFPkVESInQSk9WZz1bbNmIRz6zKfWGVA==" + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.3.4.tgz", + "integrity": "sha512-PmQC9R7DwpBFA+7ATKMyzViz3zCaMNouzZMPZN2K5PnbBbtL3AXFYTkDk+Hey5crQq2A90UG5Uthz0mel+XZrA==" }, "@babel/plugin-transform-for-of": { "version": "7.2.0", @@ -254,9 +254,9 @@ "integrity": "sha512-VMyhPYZISFZAqAPVkiYb7dUe2AsVi2/wCT5+wZdsNO31FojQJa9ns40hzZ6U9f50Jlq4w6qwzdBB2uwqZ00ebg==" }, "@babel/plugin-transform-parameters": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.2.0.tgz", - "integrity": "sha512-kB9+hhUidIgUoBQ0MsxMewhzr8i60nMa2KgeJKQWYrqQpqcBYtnpR+JgkadZVZoaEZ/eKu9mclFaVwhRpLNSzA==" + "version": "7.3.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.3.3.tgz", + "integrity": "sha512-IrIP25VvXWu/VlBWTpsjGptpomtIkYrN/3aDp4UKm7xK6UxZY88kcJ1UwETbzHAlwN21MnNfwlar0u8y3KpiXw==" }, "@babel/plugin-transform-property-literals": { "version": "7.2.0", @@ -269,9 +269,9 @@ "integrity": "sha512-Htf/tPa5haZvRMiNSQSFifK12gtr/8vwfr+A9y69uF0QcU77AVu4K7MiHEkTxF7lQoHOL0F9ErqgfNEAKgXj7A==" }, "@babel/plugin-transform-react-jsx": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.2.0.tgz", - "integrity": "sha512-h/fZRel5wAfCqcKgq3OhbmYaReo7KkoJBpt8XnvpS7wqaNMqtw5xhxutzcm35iMUWucfAdT/nvGTsWln0JTg2Q==" + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.3.0.tgz", + "integrity": "sha512-a/+aRb7R06WcKvQLOu4/TpjKOdvVEKRLWFpKcNuHhiREPgGRB4TQJxq07+EZLS8LFVYpfq1a5lDUnuMdcCpBKg==" }, "@babel/plugin-transform-react-jsx-self": { "version": "7.2.0", @@ -284,14 +284,14 @@ "integrity": "sha512-A32OkKTp4i5U6aE88GwwcuV4HAprUgHcTq0sSafLxjr6AW0QahrCRCjxogkbbcdtpbXkuTOlgpjophCxb6sh5g==" }, "@babel/plugin-transform-regenerator": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.0.0.tgz", - "integrity": "sha512-sj2qzsEx8KDVv1QuJc/dEfilkg3RRPvPYx/VnKLtItVQRWt1Wqf5eVCOLZm29CiGFfYYsA3VPjfizTCV0S0Dlw==" + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.3.4.tgz", + "integrity": "sha512-hvJg8EReQvXT6G9H2MvNPXkv9zK36Vxa1+csAVTpE1J3j0zlHplw76uudEbJxgvqZzAq9Yh45FLD4pk5mKRFQA==" }, "@babel/plugin-transform-runtime": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.2.0.tgz", - "integrity": "sha512-jIgkljDdq4RYDnJyQsiWbdvGeei/0MOTtSHKO/rfbd/mXBxNpdlulMx49L0HQ4pug1fXannxoqCI+fYSle9eSw==" + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.3.4.tgz", + "integrity": "sha512-PaoARuztAdd5MgeVjAxnIDAIUet5KpogqaefQvPOmPYCxYoaPhautxDh3aO8a4xHsKgT/b9gSxR0BKK1MIewPA==" }, "@babel/plugin-transform-shorthand-properties": { "version": "7.2.0", @@ -299,9 +299,9 @@ "integrity": "sha512-QP4eUM83ha9zmYtpbnyjTLAGKQritA5XW/iG9cjtuOI8s1RuL/3V6a3DeSHfKutJQ+ayUfeZJPcnCYEQzaPQqg==" }, "@babel/plugin-transform-spread": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.2.0.tgz", - "integrity": "sha512-7TtPIdwjS/i5ZBlNiQePQCovDh9pAhVbp/nGVRBZuUdBiVRThyyLend3OHobc0G+RLCPPAN70+z/MAMhsgJd/A==" + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.2.2.tgz", + "integrity": "sha512-KWfky/58vubwtS0hLqEnrWJjsMGaOeSBn90Ezn5Jeg9Z8KKHmELbP1yGylMlm5N6TPKeY9A2+UaSYLdxahg01w==" }, "@babel/plugin-transform-sticky-regex": { "version": "7.2.0", @@ -319,9 +319,9 @@ "integrity": "sha512-2LNhETWYxiYysBtrBTqL8+La0jIoQQnIScUJc74OYvUGRmkskNY4EzLCnjHBzdmb38wqtTaixpo1NctEcvMDZw==" }, "@babel/plugin-transform-typescript": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.2.0.tgz", - "integrity": "sha512-EnI7i2/gJ7ZNr2MuyvN2Hu+BHJENlxWte5XygPvfj/MbvtOkWor9zcnHpMMQL2YYaaCcqtIvJUyJ7QVfoGs7ew==" + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.3.2.tgz", + "integrity": "sha512-Pvco0x0ZSCnexJnshMfaibQ5hnK8aUHSvjCQhC1JR8eeg+iBwt0AtCO7gWxJ358zZevuf9wPSO5rv+WJcbHPXQ==" }, "@babel/plugin-transform-unicode-regex": { "version": "7.2.0", @@ -334,24 +334,24 @@ "integrity": "sha512-oayxyPS4Zj+hF6Et11BwuBkmpgT/zMxyuZgFrMeZID6Hdh3dGlk4sHCAhdBCpuCKW2ppBfl2uCCetlrUIJRY3w==" }, "@babel/runtime": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.2.0.tgz", - "integrity": "sha512-oouEibCbHMVdZSDlJBO6bZmID/zA/G/Qx3H1d3rSNPTD+L8UNKvCat7aKWSJ74zYbm5zWGh0GQN0hKj8zYFTCg==" + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.3.4.tgz", + "integrity": "sha512-IvfvnMdSaLBateu0jfsYIpZTxAc2cKEXEMiezGGN75QcBcecDUKd3PgLAncT0oOgxKy8dd8hrJKj9MfzgfZd6g==" }, "@babel/template": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.1.2.tgz", - "integrity": "sha512-SY1MmplssORfFiLDcOETrW7fCLl+PavlwMh92rrGcikQaRq4iWPVH0MpwPpY3etVMx6RnDjXtr6VZYr/IbP/Ag==" + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.2.2.tgz", + "integrity": "sha512-zRL0IMM02AUDwghf5LMSSDEz7sBCO2YnNmpg3uWTZj/v1rcG2BmQUvaGU8GhU8BvfMh1k2KIAYZ7Ji9KXPUg7g==" }, "@babel/traverse": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.1.6.tgz", - "integrity": "sha512-CXedit6GpISz3sC2k2FsGCUpOhUqKdyL0lqNrImQojagnUMXf8hex4AxYFRuMkNGcvJX5QAFGzB5WJQmSv8SiQ==" + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.3.4.tgz", + "integrity": "sha512-TvTHKp6471OYEcE/91uWmhR6PrrYywQntCHSaZ8CM8Vmp+pjAusal4nGB2WCCQd0rvI7nOMKn9GnbcvTUz3/ZQ==" }, "@babel/types": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.2.0.tgz", - "integrity": "sha512-b4v7dyfApuKDvmPb+O488UlGuR1WbwMXFsO/cyqMrnfvRAChZKJAYeeglWTjUO1b9UghKKgepAQM5tsvBJca6A==" + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.3.4.tgz", + "integrity": "sha512-WEkp8MsLftM7O/ty580wAmZzN1nDmCACc5+jFzUt+GUFNNIi3LdRlueYz0YIlmJhlZx1QYDMZL5vdWCL0fNjFQ==" }, "acorn": { "version": "5.7.3", @@ -375,7 +375,7 @@ }, "babel-helper-is-nodes-equiv": { "version": "0.0.1", - "resolved": "http://registry.npmjs.org/babel-helper-is-nodes-equiv/-/babel-helper-is-nodes-equiv-0.0.1.tgz", + "resolved": "https://registry.npmjs.org/babel-helper-is-nodes-equiv/-/babel-helper-is-nodes-equiv-0.0.1.tgz", "integrity": "sha1-NOmzALFHnd2Y7HfqC76TQt/jloQ=" }, "babel-helper-is-void-0": { @@ -521,9 +521,9 @@ "integrity": "sha1-viQcqBQEAwZ4t0hxcyK4nQyP4oA=" }, "babel-preset-meteor": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/babel-preset-meteor/-/babel-preset-meteor-7.2.0.tgz", - "integrity": "sha512-bwM5Zc78kPBHB0N5YEo2dtj9V+f34l3LX6y4ACS4JzQ/QW0zFRqa7jaGwt1tKkLtxRjInUg6yzcY8Iq8nLBwQg==" + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/babel-preset-meteor/-/babel-preset-meteor-7.3.4.tgz", + "integrity": "sha512-5S95oZLKn1RZexBCs3tPjjYXf2rJ8rBjkvJGkD9Bhut7XEGxDMMt1S+hhhGYo4ZwqOTmIeHv0EMppMWVxa7Lbg==" }, "babel-preset-minify": { "version": "0.5.0", @@ -531,9 +531,9 @@ "integrity": "sha512-xj1s9Mon+RFubH569vrGCayA9Fm2GMsCgDRm1Jb8SgctOB7KFcrVc2o8K3YHUyMz+SWP8aea75BoS8YfsXXuiA==" }, "chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==" + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==" }, "color-convert": { "version": "1.9.3", @@ -551,9 +551,9 @@ "integrity": "sha512-eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A==" }, "debug": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.0.tgz", - "integrity": "sha512-heNPJUJIqC+xB6ayLAMHaIrmN9HKa7aQO8MGqKpvCA+uJYVcvR6l5kgdrhRuwPFHU7P5/A1w0BjByPHwpfTDKg==" + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==" }, "escape-string-regexp": { "version": "1.0.5", @@ -566,9 +566,9 @@ "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=" }, "globals": { - "version": "11.9.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.9.0.tgz", - "integrity": "sha512-5cJVtyXWH8PiJPVLZzzoIizXx944O4OmRro5MWKx5fT4MgcN7OfaMutPeaTdJCCURwbWdhhcCWcKIffPnmTzBg==" + "version": "11.11.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.11.0.tgz", + "integrity": "sha512-WHq43gS+6ufNOEqlrDBxVEbb8ntfXrfAUU2ZOpCxrBdGKW3gyv8mCxAfIBD0DroPKGrJ2eSsXsLtY9MPntsyTw==" }, "has-flag": { "version": "3.0.0", @@ -606,9 +606,9 @@ "integrity": "sha1-G7nzFO9ri63tE7VJFpsqlF62jk0=" }, "meteor-babel": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/meteor-babel/-/meteor-babel-7.2.0.tgz", - "integrity": "sha512-hHpqdYRSZ9dt3bMv1Pw8U2QVD5l7qspwTb7L2g4w3DV0sw5d8sK8XthdILQhVohVNpomOvIq8TiGH1/RubF8GA==" + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/meteor-babel/-/meteor-babel-7.3.4.tgz", + "integrity": "sha512-5aVvIa9yGRq2WlkO8tThWhc3f07escWb0t93KRYM0EnsUbv2rDmrAir0P+e+4rpyDDz7utOpIfuO1dT1F8SCSA==" }, "meteor-babel-helpers": { "version": "0.0.3", @@ -617,7 +617,7 @@ }, "minimist": { "version": "1.2.0", - "resolved": "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" }, "ms": { @@ -651,9 +651,9 @@ "integrity": "sha512-odxIc1/vDlo4iZcfXqRYFj0vpXFNoGdKMAUieAlFYO6m/nl5e9KR/beGf41z4a1FI+aQgtjhuaSlDxQ0hmkrHg==" }, "regenerator-transform": { - "version": "0.13.3", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.13.3.tgz", - "integrity": "sha512-5ipTrZFSq5vU2YoGoww4uaRVAK4wyYC4TSICibbfEPOruUu8FFP7ErV0BjmbIOEpn3O/k9na9UEdYR/3m7N6uA==" + "version": "0.13.4", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.13.4.tgz", + "integrity": "sha512-T0QMBjK3J0MtxjPmdIMXm72Wvj2Abb0Bd4HADdfijwMdoIsyQZ6fWC7kDFhk2YinBBEMZDL7Y7wh0J1sGx3S4A==" }, "regexpu-core": { "version": "4.4.0", @@ -672,7 +672,7 @@ "dependencies": { "jsesc": { "version": "0.5.0", - "resolved": "http://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=" } } @@ -683,9 +683,9 @@ "integrity": "sha512-i0t837UYnWyJPCeesupZjmpThIppOPSs4I/uHmsWzQaiGQqtsYlbeJNN5i+61fe6UEA3Famc3IHnlm511poMnA==" }, "resolve": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.8.1.tgz", - "integrity": "sha512-AicPrAC7Qu1JxPCZ9ZgCZlY35QgFnNqc+0LtbRNxnVw4TXvjQ72wnuL9JQcEBgXkI9JM8MsT9kaQoHcpCRJOYA==" + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.10.0.tgz", + "integrity": "sha512-3sUr9aq5OfSg2S9pNtPA9hL1FVEAjvfOC4leW0SNf/mpnaakz2a9femSd6LqAww2RaFctwyf1lCqnTHuF1rxDg==" }, "safe-buffer": { "version": "5.1.2", diff --git a/packages/babel-compiler/package.js b/packages/babel-compiler/package.js index 8478bb7751..0fc349846d 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.4' + version: '7.3.4' }); Npm.depends({ - 'meteor-babel': '7.2.0', + 'meteor-babel': '7.3.4', 'json5': '2.1.0' }); diff --git a/scripts/dev-bundle-tool-package.js b/scripts/dev-bundle-tool-package.js index 7dcd70379b..f3f5e2bf92 100644 --- a/scripts/dev-bundle-tool-package.js +++ b/scripts/dev-bundle-tool-package.js @@ -14,12 +14,12 @@ var packageJson = { pacote: "https://github.com/meteor/pacote/tarball/0aa5b08a6bfe5feeff3b55581d63003737821a6c", "node-gyp": "3.7.0", "node-pre-gyp": "0.10.3", - "meteor-babel": "7.2.0", + "meteor-babel": "7.3.4", "meteor-promise": "0.8.7", reify: "0.17.3", fibers: "3.1.1", // So that Babel can emit require("@babel/runtime/helpers/...") calls. - "@babel/runtime": "7.2.0", + "@babel/runtime": "7.3.4", // 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 5febcb11b0..e30b425396 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.1.5", + "@babel/runtime": "^7.3.4", "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 5031f9fe40..c2a6c53200 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.1.5", + "@babel/runtime": "^7.3.4", "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 6beb4506e1..035cf4e410 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.1.5", + "@babel/runtime": "^7.3.4", "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 3b07f09169..28c59f73eb 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.1.5", + "@babel/runtime": "^7.3.4", "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 6beb4506e1..035cf4e410 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.1.5", + "@babel/runtime": "^7.3.4", "meteor-node-stubs": "^0.4.1" }, "meteor": { From 5ff58818044d728d6a5a1db918f5b70993923b45 Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Tue, 26 Feb 2019 20:04:50 -0500 Subject: [PATCH 098/134] Prevent strange EISDIR error when building dev bundle. --- scripts/generate-dev-bundle.sh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/scripts/generate-dev-bundle.sh b/scripts/generate-dev-bundle.sh index 8128376433..57db624c73 100755 --- a/scripts/generate-dev-bundle.sh +++ b/scripts/generate-dev-bundle.sh @@ -115,6 +115,9 @@ ls -al "$INCLUDE_PATH" mkdir "${DIR}/build/npm-server-install" cd "${DIR}/build/npm-server-install" node "${CHECKOUT_DIR}/scripts/dev-bundle-server-package.js" > package.json +# XXX For no apparent reason this npm install will fail with an EISDIR +# error if we do not help it by creating the .npm/_locks directory. +mkdir -p "${DIR}/.npm/_locks" npm install npm shrinkwrap From ae9bab7d356bb66a530c48f539492db421f774cc Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Tue, 26 Feb 2019 20:30:25 -0500 Subject: [PATCH 099/134] Bump $BUNDLE_VERSION to 8.15.0.1 before rebuilding dev bundle. --- meteor | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meteor b/meteor index 01925954ca..a0ab45ccfb 100755 --- a/meteor +++ b/meteor @@ -1,6 +1,6 @@ #!/usr/bin/env bash -BUNDLE_VERSION=8.15.0.0 +BUNDLE_VERSION=8.15.0.1 # OS Check. Put here because here is where we download the precompiled # bundles that are arch specific. From 743bfb6f43fe2772c9217d63742b5c00e0d10ff6 Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Tue, 26 Feb 2019 20:48:13 -0500 Subject: [PATCH 100/134] Update RegExp for detecting non-existent npm packages. Should fix failures like https://circleci.com/gh/meteor/meteor/31259. --- tools/isobuild/meteor-npm.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/isobuild/meteor-npm.js b/tools/isobuild/meteor-npm.js index f6fd4a048a..e58932fa6c 100644 --- a/tools/isobuild/meteor-npm.js +++ b/tools/isobuild/meteor-npm.js @@ -1074,7 +1074,7 @@ const installNpmModule = meteorNpm.installNpmModule = (name, version, dir) => { if (! result.success) { const pkgNotFound = - `404 Not Found: ${utils.quotemeta(name)}@${utils.quotemeta(version)}`; + `404 Not Found - GET ${utils.quotemeta("https://registry.npmjs.org/"+name)}`; const versionNotFound = "No matching version found for " + From 7ea14024bf9030f6b5b494964cfa45b6b9616a73 Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Tue, 26 Feb 2019 21:55:12 -0500 Subject: [PATCH 101/134] Bump package versions for 1.8.1-beta.18 release. --- packages/autoupdate/package.js | 2 +- packages/babel-compiler/package.js | 2 +- packages/ddp-server/package.js | 2 +- packages/meteor-tool/package.js | 2 +- packages/meteor/package.js | 2 +- packages/modern-browsers/package.js | 2 +- packages/npm-mongo/package.js | 2 +- packages/reactive-dict/package.js | 2 +- packages/reload/package.js | 2 +- packages/session/package.js | 2 +- packages/webapp/package.js | 2 +- scripts/admin/meteor-release-experimental.json | 2 +- 12 files changed, 12 insertions(+), 12 deletions(-) diff --git a/packages/autoupdate/package.js b/packages/autoupdate/package.js index 975aecc677..3a49250500 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.17' + version: '1.6.0-beta181.18' }); Package.onUse(function (api) { diff --git a/packages/babel-compiler/package.js b/packages/babel-compiler/package.js index 0fc349846d..a9cf5ede5d 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.3.4' + version: '7.3.4-beta181.18' }); Npm.depends({ diff --git a/packages/ddp-server/package.js b/packages/ddp-server/package.js index 08baad2822..112dd55ff3 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.17', + version: '2.3.0-beta181.18', documentation: null }); diff --git a/packages/meteor-tool/package.js b/packages/meteor-tool/package.js index d788fbf952..9186db61ac 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.17' + version: '1.8.1-beta.18' }); Package.includeTool(); diff --git a/packages/meteor/package.js b/packages/meteor/package.js index 0e3db38033..4444d9af23 100644 --- a/packages/meteor/package.js +++ b/packages/meteor/package.js @@ -2,7 +2,7 @@ Package.describe({ summary: "Core Meteor environment", - version: '1.9.3-beta181.17' + version: '1.9.3-beta181.18' }); Package.registerBuildPlugin({ diff --git a/packages/modern-browsers/package.js b/packages/modern-browsers/package.js index f105709ea8..8795531dc8 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.17", + version: "0.1.4-beta181.18", summary: "API for defining the boundary between modern and legacy " + "JavaScript clients", documentation: "README.md" diff --git a/packages/npm-mongo/package.js b/packages/npm-mongo/package.js index 6251ffbd40..de79d80e62 100644 --- a/packages/npm-mongo/package.js +++ b/packages/npm-mongo/package.js @@ -3,7 +3,7 @@ Package.describe({ summary: "Wrapper around the mongo npm package", - version: "3.1.2-beta181.17", + version: "3.1.2-beta181.18", documentation: null }); diff --git a/packages/reactive-dict/package.js b/packages/reactive-dict/package.js index 69b4d08ffe..c1f67241d1 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.17' + version: '1.3.0-beta181.18' }); Package.onUse(function (api) { diff --git a/packages/reload/package.js b/packages/reload/package.js index a571d3a963..b8e6982df1 100644 --- a/packages/reload/package.js +++ b/packages/reload/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "Reload the page while preserving application state.", - version: '1.3.0-beta181.17' + version: '1.3.0-beta181.18' }); Package.onUse(function (api) { diff --git a/packages/session/package.js b/packages/session/package.js index dd86da3708..81814ddb70 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.17' + version: '1.2.0-beta181.18' }); Package.onUse(function (api) { diff --git a/packages/webapp/package.js b/packages/webapp/package.js index bbe459dbe6..f32efe441a 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.3-beta181.17' + version: '1.7.3-beta181.18' }); 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 f4244c21eb..6bec7a5c31 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.17", + "version": "1.8.1-beta.18", "recommended": false, "official": false, "description": "Meteor" From 05e5cb9105caaba7f5444fe088d0878a79a147a5 Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Thu, 28 Feb 2019 13:27:50 -0500 Subject: [PATCH 102/134] Avoid global staticFilesByArch variable in webapp_server.js. --- packages/webapp/webapp_server.js | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/packages/webapp/webapp_server.js b/packages/webapp/webapp_server.js index c8fb1870b4..784964b08d 100644 --- a/packages/webapp/webapp_server.js +++ b/packages/webapp/webapp_server.js @@ -363,8 +363,6 @@ WebAppInternals.generateBoilerplateInstance = function (arch, // - content: the stringified content that should be served at this path // - absolutePath: the absolute path on disk to the file -var staticFilesByArch; - // Serve static files from the manifest or added with // `addStaticJs`. Exported for tests. WebAppInternals.staticFilesMiddleware = async function ( @@ -415,7 +413,7 @@ WebAppInternals.staticFilesMiddleware = async function ( return; } - const info = getStaticFileInfo(pathname, path, arch); + const info = getStaticFileInfo(staticFilesByArch, pathname, path, arch); if (! info) { next(); return; @@ -485,7 +483,7 @@ WebAppInternals.staticFilesMiddleware = async function ( } }; -function getStaticFileInfo(originalPath, path, arch) { +function getStaticFileInfo(staticFilesByArch, originalPath, path, arch) { if (! hasOwn.call(WebApp.clientPrograms, arch)) { return null; } @@ -594,14 +592,16 @@ function runWebAppServer() { WebAppInternals.reloadClientPrograms = function () { syncQueue.runTask(function() { - staticFilesByArch = Object.create(null); + const staticFilesByArch = Object.create(null); const { configJson } = __meteor_bootstrap__; const clientArchs = configJson.clientArchs || Object.keys(configJson.clientPaths); try { - clientArchs.forEach(generateClientProgram); + clientArchs.forEach(arch => { + generateClientProgram(arch, staticFilesByArch); + }); WebAppInternals.staticFilesByArch = staticFilesByArch; } catch (e) { Log.error("Error reloading the client program: " + e.stack); @@ -635,7 +635,10 @@ function runWebAppServer() { syncQueue.runTask(() => generateClientProgram(arch)); }; - function generateClientProgram(arch) { + function generateClientProgram( + arch, + staticFilesByArch = WebAppInternals.staticFilesByArch, + ) { const clientDir = pathJoin( pathDirname(__meteor_bootstrap__.serverDir), arch, @@ -893,7 +896,10 @@ function runWebAppServer() { // Serve static files from the manifest. // This is inspired by the 'static' middleware. app.use(function (req, res, next) { - WebAppInternals.staticFilesMiddleware(staticFilesByArch, req, res, next); + WebAppInternals.staticFilesMiddleware( + WebAppInternals.staticFilesByArch, + req, res, next + ); }); // Core Meteor packages like dynamic-import can add handlers before From b2d7df570474daf481d05fe18ec216c1effaacce Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Thu, 28 Feb 2019 13:30:34 -0500 Subject: [PATCH 103/134] Update Node to version 8.15.1. Release blog post: https://nodejs.org/en/blog/release/v8.15.1/ Security details: https://nodejs.org/en/blog/vulnerability/february-2019-security-releases/ --- History.md | 14 ++++++++------ scripts/build-dev-bundle-common.sh | 2 +- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/History.md b/History.md index a5bc966628..4d33470c9d 100644 --- a/History.md +++ b/History.md @@ -11,12 +11,14 @@ N/A ### Changes * Node has been updated from version 8.11.4 to version - [8.15.0](https://nodejs.org/en/blog/release/v8.15.0/), which includes - the changes from three other minor releases: - [8.14.0](https://nodejs.org/en/blog/release/v8.14.0/), an important - [security release](https://nodejs.org/en/blog/vulnerability/november-2018-security-releases/); - [8.12.0](https://nodejs.org/en/blog/release/v8.12.0/); and - [8.13.0](https://nodejs.org/en/blog/release/v8.13.0/). + [8.15.1](https://nodejs.org/en/blog/release/v8.15.1/), an important + [security release](https://nodejs.org/en/blog/vulnerability/february-2019-security-releases/), + which includes the changes from four other minor releases: + * [8.15.0](https://nodejs.org/en/blog/release/v8.15.0/) + * [8.14.0](https://nodejs.org/en/blog/release/v8.14.0/), an important + [security release](https://nodejs.org/en/blog/vulnerability/november-2018-security-releases/) + * [8.12.0](https://nodejs.org/en/blog/release/v8.12.0/) + * [8.13.0](https://nodejs.org/en/blog/release/v8.13.0/) > Note: While Node 8.12.0 included changes that may improve the performance of Meteor apps, there have been reports of CPU usage spikes diff --git a/scripts/build-dev-bundle-common.sh b/scripts/build-dev-bundle-common.sh index a221235506..3feb0a3392 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.15.0 +NODE_VERSION=8.15.1 MONGO_VERSION_64BIT=4.0.4 MONGO_VERSION_32BIT=3.2.21 NPM_VERSION=6.8.0 From 0981817a30b2bf9725ea2da7c5f8b696a919efab Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Thu, 28 Feb 2019 13:35:38 -0500 Subject: [PATCH 104/134] Update Mongo to latest version(s). --- History.md | 6 +++--- .../npm-mongo/.npm/package/npm-shrinkwrap.json | 18 +++++++++--------- packages/npm-mongo/package.js | 2 +- scripts/build-dev-bundle-common.sh | 4 ++-- 4 files changed, 15 insertions(+), 15 deletions(-) diff --git a/History.md b/History.md index 4d33470c9d..eabcbcac5b 100644 --- a/History.md +++ b/History.md @@ -31,9 +31,9 @@ N/A [fork](https://github.com/meteor/pacote/tree/v9.4.1-meteor) of its `pacote` dependency has been updated to version 9.4.1. -* Mongo has been upgraded to version 4.0.4 for 64-bit systems (was 4.0.2), - and 3.2.21 for 32-bit systems (was 3.2.19). The `mongodb` npm package - used by `npm-mongo` has been updated to version 3.1.10 (was 3.1.6). +* Mongo has been upgraded to version 4.0.6 for 64-bit systems (was 4.0.2), + and 3.2.22 for 32-bit systems (was 3.2.19). The `mongodb` npm package + used by `npm-mongo` has been updated to version 3.1.13 (was 3.1.6). * The `fibers` npm package has been updated to version 3.1.1, a major update from version 2.0.0. Building this version of `fibers` requires a diff --git a/packages/npm-mongo/.npm/package/npm-shrinkwrap.json b/packages/npm-mongo/.npm/package/npm-shrinkwrap.json index 0763a9aafc..83cc9f223b 100644 --- a/packages/npm-mongo/.npm/package/npm-shrinkwrap.json +++ b/packages/npm-mongo/.npm/package/npm-shrinkwrap.json @@ -7,19 +7,19 @@ "integrity": "sha512-9Aeai9TacfNtWXOYarkFJRW2CWo+dRon+fuLZYJmvLV3+MiUp0bEI6IAZfXEIg7/Pl/7IWlLaDnhzTsD81etQA==" }, "memory-pager": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/memory-pager/-/memory-pager-1.1.0.tgz", - "integrity": "sha512-Mf9OHV/Y7h6YWDxTzX/b4ZZ4oh9NSXblQL8dtPCOomOtZciEHxePR78+uHFLLlsk01A6jVHhHsQZZ/WcIPpnzg==" + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/memory-pager/-/memory-pager-1.5.0.tgz", + "integrity": "sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg==" }, "mongodb": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-3.1.10.tgz", - "integrity": "sha512-Uml42GeFxhTGQVml1XQ4cD0o/rp7J2ROy0fdYUcVitoE7vFqEhKH4TYVqRDpQr/bXtCJVxJdNQC1ntRxNREkPQ==" + "version": "3.1.13", + "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-3.1.13.tgz", + "integrity": "sha512-sz2dhvBZQWf3LRNDhbd30KHVzdjZx9IKC0L+kSZ/gzYquCF5zPOgGqRz6sSCqYZtKP2ekB4nfLxhGtzGHnIKxA==" }, "mongodb-core": { - "version": "3.1.9", - "resolved": "https://registry.npmjs.org/mongodb-core/-/mongodb-core-3.1.9.tgz", - "integrity": "sha512-MJpciDABXMchrZphh3vMcqu8hkNf/Mi+Gk6btOimVg1XMxLXh87j6FAvRm+KmwD1A9fpu3qRQYcbQe4egj23og==" + "version": "3.1.11", + "resolved": "https://registry.npmjs.org/mongodb-core/-/mongodb-core-3.1.11.tgz", + "integrity": "sha512-rD2US2s5qk/ckbiiGFHeu+yKYDXdJ1G87F6CG3YdaZpzdOm5zpoAZd/EKbPmFO6cQZ+XVXBXBJ660sSI0gc6qg==" }, "require_optional": { "version": "1.0.1", diff --git a/packages/npm-mongo/package.js b/packages/npm-mongo/package.js index de79d80e62..d6f7712a62 100644 --- a/packages/npm-mongo/package.js +++ b/packages/npm-mongo/package.js @@ -8,7 +8,7 @@ Package.describe({ }); Npm.depends({ - mongodb: "3.1.10" + mongodb: "3.1.13" }); Package.onUse(function (api) { diff --git a/scripts/build-dev-bundle-common.sh b/scripts/build-dev-bundle-common.sh index 3feb0a3392..abea01d43c 100644 --- a/scripts/build-dev-bundle-common.sh +++ b/scripts/build-dev-bundle-common.sh @@ -6,8 +6,8 @@ set -u UNAME=$(uname) ARCH=$(uname -m) NODE_VERSION=8.15.1 -MONGO_VERSION_64BIT=4.0.4 -MONGO_VERSION_32BIT=3.2.21 +MONGO_VERSION_64BIT=4.0.6 +MONGO_VERSION_32BIT=3.2.22 NPM_VERSION=6.8.0 # If we built Node from source on Jenkins, this is the build number. From 367572f27dcfc526f8ce2b94005b2e0c112d7438 Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Thu, 28 Feb 2019 13:37:13 -0500 Subject: [PATCH 105/134] Bump $BUNDLE_VERSION to 8.15.1.0 before rebuilding dev bundle. --- meteor | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meteor b/meteor index a0ab45ccfb..875752cdb4 100755 --- a/meteor +++ b/meteor @@ -1,6 +1,6 @@ #!/usr/bin/env bash -BUNDLE_VERSION=8.15.0.1 +BUNDLE_VERSION=8.15.1.0 # OS Check. Put here because here is where we download the precompiled # bundles that are arch specific. From 79d643574a1f97fbc19d5c6c914066ec10d4a538 Mon Sep 17 00:00:00 2001 From: zodern Date: Tue, 5 Feb 2019 12:10:51 -0600 Subject: [PATCH 106/134] Skip calculating SRI for assets from the public/ folder. Saves on average ~2ms per file in one app, which adds up when there are hundreds. SRI is currently only supported for js and css files, and Meteor only uses it for the main bundles. --- tools/isobuild/bundler.js | 11 +++++++++-- tools/isobuild/compiler.js | 7 ++++--- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/tools/isobuild/bundler.js b/tools/isobuild/bundler.js index 3c097a5391..60cb232e8e 100644 --- a/tools/isobuild/bundler.js +++ b/tools/isobuild/bundler.js @@ -546,6 +546,9 @@ class File { // disk). this.sourcePath = options.sourcePath; + // Allows not calculating sri when the file doesn't support it + this._skipSri = options.skipSri + // info is just for help with debugging the tool; it isn't written to disk or // anything. this.info = options.info || '?'; @@ -619,7 +622,9 @@ class File { hashes.push(this._inputHash); } - hashes.push(this.sri()); + if (!this._skipSri) { + hashes.push(this.sri()); + } this._hash = watch.sha1(...hashes); } @@ -628,7 +633,7 @@ class File { } sri() { - if (! this._sri) { + if (! this._sri && !this._skipSri) { this._sri = watch.sha512(this.contents()); } @@ -1160,6 +1165,8 @@ class Target { data: resource.data, cacheable: false, hash: resource.hash, + sourcePath: resource.sourcePath, + skipSri: !!resource.sourcePath && resource.hash }; const file = new File(fileOptions); diff --git a/tools/isobuild/compiler.js b/tools/isobuild/compiler.js index 4f8c5a2ca3..91118ba9ab 100644 --- a/tools/isobuild/compiler.js +++ b/tools/isobuild/compiler.js @@ -457,7 +457,7 @@ var compileUnibuild = Profile(function (options) { // This function needs to be factored out to support legacy handlers later on // in the compilation process - function addAsset(contents, relPath, hash) { + function addAsset(contents, relPath, absPath, hash) { // XXX hack to strip out private and public directory names from app asset // paths if (! inputSourceArch.pkg.name) { @@ -470,7 +470,8 @@ var compileUnibuild = Profile(function (options) { path: relPath, servePath: colonConverter.convert( files.pathJoin(inputSourceArch.pkg.serveRoot, relPath)), - hash: hash + hash: hash, + sourcePath: absPath }); } @@ -482,7 +483,7 @@ var compileUnibuild = Profile(function (options) { const hash = optimisticHashOrNull(absPath) const contents = optimisticReadFile(absPath) - addAsset(contents, relPath, hash); + addAsset(contents, relPath, absPath, hash); }); // Add and compile all source files From b48715d804101e343d87f87e3a839216009e74eb Mon Sep 17 00:00:00 2001 From: zodern Date: Tue, 5 Feb 2019 12:39:58 -0600 Subject: [PATCH 107/134] Improve performance of minifying dynamic files. Avoids converting file contents to and from buffers and strings. The conversion had been done for dynamic files before minifying them, and all files after they were minified. --- tools/isobuild/bundler.js | 33 +++++++++++++++++++++------------ 1 file changed, 21 insertions(+), 12 deletions(-) diff --git a/tools/isobuild/bundler.js b/tools/isobuild/bundler.js index 60cb232e8e..47ea373311 100644 --- a/tools/isobuild/bundler.js +++ b/tools/isobuild/bundler.js @@ -176,6 +176,9 @@ import { PackageRegistry } from "../../packages/meteor/define-package.js"; const SOURCE_URL_PREFIX = "meteor://\u{1f4bb}app"; +const MINIFY_PLAIN_FUNCTION = Buffer.from('function(', 'utf8'); +const MINIFY_RENAMED_FUNCTION = Buffer.from('function __minifyJs(', 'utf8'); + // files to ignore when bundling. node has no globs, so use regexps exports.ignoreFiles = [ /~$/, /^\.#/, @@ -1333,13 +1336,10 @@ class Target { // expression, which some minifiers (e.g. UglifyJS) either fail to // parse or mistakenly eliminate as dead code. To avoid these // problems, we temporarily name the function __minifyJs. - file._contents = Buffer.from( - file.contents() - .toString("utf8") - .replace(/^\s*function\s*\(/, - "function __minifyJs("), - "utf8" - ); + file._contents = Buffer.concat([ + MINIFY_RENAMED_FUNCTION, + file.contents().slice(MINIFY_PLAIN_FUNCTION.length) + ]); dynamicFiles.push(jsf); @@ -1371,15 +1371,24 @@ class Target { function handle(source, dynamic) { source._minifiedFiles.forEach(file => { // Remove the function name __minifyJs that was added above. - file.data = file.data - .toString("utf8") - .replace(/^\s*function\s+__minifyJs\s*\(/, - "function("); + if (typeof file.data === 'string') { + file.data = Buffer.from( + file.data + .replace(/^\s*function\s+__minifyJs\s*\(/, + "function("), + "utf8" + ); + } else if (dynamic) { + file.data = Buffer.concat([ + MINIFY_PLAIN_FUNCTION, + file.data.slice(MINIFY_RENAMED_FUNCTION.length) + ]); + } const newFile = new File({ info: 'minified js', arch, - data: Buffer.from(file.data, 'utf8'), + data: file.data, hash: inputHashesByJsFile.get(source), }); From 29b6ca64835e0c014b94110276eb49011da38faf Mon Sep 17 00:00:00 2001 From: zodern Date: Tue, 5 Feb 2019 14:13:38 -0600 Subject: [PATCH 108/134] Avoid unnecessary work if the file was already written. --- tools/isobuild/builder.js | 44 ++++++++++++++++++++++++++++++--------- tools/isobuild/bundler.js | 4 ++++ 2 files changed, 38 insertions(+), 10 deletions(-) diff --git a/tools/isobuild/builder.js b/tools/isobuild/builder.js index 707dbb3262..e75ddb7493 100644 --- a/tools/isobuild/builder.js +++ b/tools/isobuild/builder.js @@ -231,6 +231,39 @@ Previous builder: ${previousBuilder.outputPath}, this builder: ${outputPath}` return partsOut.join(files.pathSep); } + // Checks if a file with the same path and hash was written by + // the previous builder. If it was, it adds it to the cache. + // It also makes sure the parent directories exist and are part of the cache. + // + // Returns true if the file was already written + usePreviousWrite (relPath, hash, sanitize) { + relPath = this._normalizeFilePath(relPath, sanitize); + this._ensureDirectory(files.pathDirname(relPath)); + + const previouslyWritten = this.previousWrittenHashes[relPath] === hash; + + if (previouslyWritten) { + this.writtenHashes[relPath] = hash; + this.usedAsFile[relPath] = true; + } + + return previouslyWritten; + } + + _normalizeFilePath (relPath, sanitize) { + // Ensure no trailing slash + if (relPath.slice(-1) === files.pathSep) { + relPath = relPath.slice(0, -1); + } + + // In sanitize mode, ensure path does not contain segments like + // '..', does not contain forbidden characters, and is unique. + if (sanitize) { + relPath = this._sanitize(relPath); + } + + return relPath; + } // Write either a buffer or the contents of a file to `relPath` (a // path to a file relative to the bundle root), creating it (and any @@ -254,16 +287,7 @@ Previous builder: ${previousBuilder.outputPath}, this builder: ${outputPath}` // // If `file` is used then it will be added to the builder's WatchSet. write(relPath, {data, file, hash, sanitize, executable, symlink}) { - // Ensure no trailing slash - if (relPath.slice(-1) === files.pathSep) { - relPath = relPath.slice(0, -1); - } - - // In sanitize mode, ensure path does not contain segments like - // '..', does not contain forbidden characters, and is unique. - if (sanitize) { - relPath = this._sanitize(relPath); - } + relPath = this._normalizeFilePath(relPath, sanitize); let getData = null; if (data) { diff --git a/tools/isobuild/bundler.js b/tools/isobuild/bundler.js index 47ea373311..dac9a40311 100644 --- a/tools/isobuild/bundler.js +++ b/tools/isobuild/bundler.js @@ -2760,6 +2760,10 @@ var writeFile = Profile("bundler writeFile", function (file, builder, options) { let data = file.contents(); const hash = file.hash(); + if (builder.usePreviousWrite(file.targetPath, hash)) { + return; + } + if (options && options.sourceMapUrl) { data = addSourceMappingURL(data, options.sourceMapUrl); } else { From c34a61a3f923c2d446771c4b31ba88f28a238900 Mon Sep 17 00:00:00 2001 From: zodern Date: Tue, 12 Feb 2019 16:08:04 -0600 Subject: [PATCH 109/134] Simplify deciding when to not calculate SRI. --- tools/isobuild/bundler.js | 4 ++-- tools/isobuild/compiler.js | 7 +++---- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/tools/isobuild/bundler.js b/tools/isobuild/bundler.js index dac9a40311..c435af37ab 100644 --- a/tools/isobuild/bundler.js +++ b/tools/isobuild/bundler.js @@ -549,7 +549,7 @@ class File { // disk). this.sourcePath = options.sourcePath; - // Allows not calculating sri when the file doesn't support it + // Allows not calculating sri when it isn't needed this._skipSri = options.skipSri // info is just for help with debugging the tool; it isn't written to disk or @@ -1169,7 +1169,7 @@ class Target { cacheable: false, hash: resource.hash, sourcePath: resource.sourcePath, - skipSri: !!resource.sourcePath && resource.hash + skipSri: !!resource.hash }; const file = new File(fileOptions); diff --git a/tools/isobuild/compiler.js b/tools/isobuild/compiler.js index 91118ba9ab..4f8c5a2ca3 100644 --- a/tools/isobuild/compiler.js +++ b/tools/isobuild/compiler.js @@ -457,7 +457,7 @@ var compileUnibuild = Profile(function (options) { // This function needs to be factored out to support legacy handlers later on // in the compilation process - function addAsset(contents, relPath, absPath, hash) { + function addAsset(contents, relPath, hash) { // XXX hack to strip out private and public directory names from app asset // paths if (! inputSourceArch.pkg.name) { @@ -470,8 +470,7 @@ var compileUnibuild = Profile(function (options) { path: relPath, servePath: colonConverter.convert( files.pathJoin(inputSourceArch.pkg.serveRoot, relPath)), - hash: hash, - sourcePath: absPath + hash: hash }); } @@ -483,7 +482,7 @@ var compileUnibuild = Profile(function (options) { const hash = optimisticHashOrNull(absPath) const contents = optimisticReadFile(absPath) - addAsset(contents, relPath, absPath, hash); + addAsset(contents, relPath, hash); }); // Add and compile all source files From aadbbfbd2ba0f030f5e424c82cfbe7cea0d1152c Mon Sep 17 00:00:00 2001 From: zodern Date: Wed, 13 Feb 2019 15:25:26 -0600 Subject: [PATCH 110/134] Clean up code. --- tools/isobuild/builder.js | 9 +++++---- tools/isobuild/bundler.js | 1 - 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/tools/isobuild/builder.js b/tools/isobuild/builder.js index e75ddb7493..9f1397c593 100644 --- a/tools/isobuild/builder.js +++ b/tools/isobuild/builder.js @@ -231,18 +231,19 @@ Previous builder: ${previousBuilder.outputPath}, this builder: ${outputPath}` return partsOut.join(files.pathSep); } + // Checks if a file with the same path and hash was written by - // the previous builder. If it was, it adds it to the cache. - // It also makes sure the parent directories exist and are part of the cache. - // + // the previous builder. If it was, it adds it to the cache and makes + // sure the parent directories exist and are part of the cache. + // // Returns true if the file was already written usePreviousWrite (relPath, hash, sanitize) { relPath = this._normalizeFilePath(relPath, sanitize); - this._ensureDirectory(files.pathDirname(relPath)); const previouslyWritten = this.previousWrittenHashes[relPath] === hash; if (previouslyWritten) { + this._ensureDirectory(files.pathDirname(relPath)); this.writtenHashes[relPath] = hash; this.usedAsFile[relPath] = true; } diff --git a/tools/isobuild/bundler.js b/tools/isobuild/bundler.js index c435af37ab..1adbfe88ae 100644 --- a/tools/isobuild/bundler.js +++ b/tools/isobuild/bundler.js @@ -1168,7 +1168,6 @@ class Target { data: resource.data, cacheable: false, hash: resource.hash, - sourcePath: resource.sourcePath, skipSri: !!resource.hash }; From 01f515e6b2fe486393690d6c422c5702128a3630 Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Thu, 28 Feb 2019 14:01:47 -0500 Subject: [PATCH 111/134] Inconsequential style tweaks. --- tools/isobuild/builder.js | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/tools/isobuild/builder.js b/tools/isobuild/builder.js index 9f1397c593..ea71eb8fc1 100644 --- a/tools/isobuild/builder.js +++ b/tools/isobuild/builder.js @@ -237,21 +237,20 @@ Previous builder: ${previousBuilder.outputPath}, this builder: ${outputPath}` // sure the parent directories exist and are part of the cache. // // Returns true if the file was already written - usePreviousWrite (relPath, hash, sanitize) { + usePreviousWrite(relPath, hash, sanitize) { relPath = this._normalizeFilePath(relPath, sanitize); - const previouslyWritten = this.previousWrittenHashes[relPath] === hash; - - if (previouslyWritten) { + if (this.previousWrittenHashes[relPath] === hash) { this._ensureDirectory(files.pathDirname(relPath)); this.writtenHashes[relPath] = hash; this.usedAsFile[relPath] = true; + return true; } - return previouslyWritten; + return false; } - _normalizeFilePath (relPath, sanitize) { + _normalizeFilePath(relPath, sanitize) { // Ensure no trailing slash if (relPath.slice(-1) === files.pathSep) { relPath = relPath.slice(0, -1); @@ -316,7 +315,7 @@ Previous builder: ${previousBuilder.outputPath}, this builder: ${outputPath}` // Write is called multiple times for assets when they have multiple urls for the same file if (this.previousWrittenHashes[relPath] !== hash && this.writtenHashes[relPath] !== hash) { - + // Builder is used to create build products, which should be read-only; // users shouldn't be manually editing automatically generated files and // expecting the results to "stick". From 2edc15a055e3d7527e9a042af311f945f3cff651 Mon Sep 17 00:00:00 2001 From: lukas strassel Date: Wed, 13 Feb 2019 12:46:47 +0100 Subject: [PATCH 112/134] fix(deps): update terser, fetch, decimaljs, postcss, nanocss --- packages/fetch/package.js | 2 +- packages/minifier-css/package.js | 4 ++-- packages/minifier-js/package.js | 2 +- packages/non-core/mongo-decimal/package.js | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/fetch/package.js b/packages/fetch/package.js index d6abac6032..3e850c32c7 100644 --- a/packages/fetch/package.js +++ b/packages/fetch/package.js @@ -6,7 +6,7 @@ Package.describe({ }); Npm.depends({ - "node-fetch": "2.1.2", + "node-fetch": "2.3.0", "whatwg-fetch": "2.0.4" }); diff --git a/packages/minifier-css/package.js b/packages/minifier-css/package.js index 03ccc2eec1..4476a29e71 100644 --- a/packages/minifier-css/package.js +++ b/packages/minifier-css/package.js @@ -4,8 +4,8 @@ Package.describe({ }); Npm.depends({ - postcss: '7.0.5', - cssnano: '4.1.7' + postcss: '7.0.14', + cssnano: '4.1.9' }); Package.onUse(function (api) { diff --git a/packages/minifier-js/package.js b/packages/minifier-js/package.js index 53d4039357..63f779dc1d 100644 --- a/packages/minifier-js/package.js +++ b/packages/minifier-js/package.js @@ -4,7 +4,7 @@ Package.describe({ }); Npm.depends({ - terser: "3.9.2" + terser: "3.16.1" }); Package.onUse(function (api) { diff --git a/packages/non-core/mongo-decimal/package.js b/packages/non-core/mongo-decimal/package.js index f158233b14..e8836fb87a 100644 --- a/packages/non-core/mongo-decimal/package.js +++ b/packages/non-core/mongo-decimal/package.js @@ -4,7 +4,7 @@ Package.describe({ }); Npm.depends({ - "decimal.js": "9.0.1" + "decimal.js": "10.0.2" }); Package.onUse(function (api) { From 3348d708aa676b505deffe3425001159528cef9b Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Thu, 28 Feb 2019 14:09:40 -0500 Subject: [PATCH 113/134] Update shrinkwrap files for npm dependencies bumped in #10448. --- .../fetch/.npm/package/npm-shrinkwrap.json | 6 +- .../.npm/package/npm-shrinkwrap.json | 290 ++++++++++-------- .../.npm/package/npm-shrinkwrap.json | 12 +- .../.npm/package/npm-shrinkwrap.json | 6 +- 4 files changed, 172 insertions(+), 142 deletions(-) diff --git a/packages/fetch/.npm/package/npm-shrinkwrap.json b/packages/fetch/.npm/package/npm-shrinkwrap.json index c9b411ca91..45e425d6da 100644 --- a/packages/fetch/.npm/package/npm-shrinkwrap.json +++ b/packages/fetch/.npm/package/npm-shrinkwrap.json @@ -2,9 +2,9 @@ "lockfileVersion": 1, "dependencies": { "node-fetch": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.1.2.tgz", - "integrity": "sha1-q4hOjn5X44qUR1POxwb3iNF2i7U=" + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.3.0.tgz", + "integrity": "sha512-MOd8pV3fxENbryESLgVIeaGKrdl+uaYhCSSVkjeOb/31/njTpcis5aWfdqgNlHIrKOLRbMnfPINPOML2CIFeXA==" }, "whatwg-fetch": { "version": "2.0.4", diff --git a/packages/minifier-css/.npm/package/npm-shrinkwrap.json b/packages/minifier-css/.npm/package/npm-shrinkwrap.json index 4c196d165f..5d03701221 100644 --- a/packages/minifier-css/.npm/package/npm-shrinkwrap.json +++ b/packages/minifier-css/.npm/package/npm-shrinkwrap.json @@ -1,6 +1,11 @@ { "lockfileVersion": 1, "dependencies": { + "@types/q": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.1.tgz", + "integrity": "sha512-eqz8c/0kwNi/OEHQfvIuJVLTst3in0e7uTKeuY+WL/zfKn0xVujOTp42bS/vUUokhK5P2BppLd9JXMOMHcgbjA==" + }, "alphanum-sort": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz", @@ -22,9 +27,24 @@ "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=" }, "browserslist": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.3.4.tgz", - "integrity": "sha512-u5iz+ijIMUlmV8blX82VGFrB9ecnUg5qEt55CMZ/YJEhha+d8qpBfOFuutJ6F/VKRXjZoD33b6uvarpPxcl3RA==" + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.4.2.tgz", + "integrity": "sha512-ISS/AIAiHERJ3d45Fz0AVYKkgcy+F/eJHzKEvv1j0wwKGKD9T3BrwKr/5g45L+Y4XIK5PlTqefHciRFcfE1Jxg==" + }, + "caller-callsite": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz", + "integrity": "sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ=" + }, + "caller-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz", + "integrity": "sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=" + }, + "callsites": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz", + "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=" }, "caniuse-api": { "version": "3.0.0", @@ -32,19 +52,26 @@ "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==" }, "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==" + "version": "1.0.30000939", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000939.tgz", + "integrity": "sha512-oXB23ImDJOgQpGjRv1tCtzAvJr4/OvrHi5SO2vUgB0g0xpdZZoA/BxfImiWfdwoYdUTtQrPsXsvYU/dmCSM8gg==" }, "chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==" + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==" + } + } }, "coa": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/coa/-/coa-2.0.1.tgz", - "integrity": "sha512-5wfTTO8E2/ja4jFSxePXlG5nRu5bBtL/r1HCIpJW/lzT6yDtKl0u0Z4o/Vpz32IpKmBn7HerheEZQgA9N2DarQ==" + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/coa/-/coa-2.0.2.tgz", + "integrity": "sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA==" }, "color": { "version": "3.1.0", @@ -66,19 +93,14 @@ "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==" + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.1.0.tgz", + "integrity": "sha512-kCNPvthka8gvLtzAxQXvWo4FxqRB+ftRZyPZNuab5ngvM9Y7yw7hbEysglptLgpkGX9nAOKTBVkHUAe8xtYR6Q==" }, "css-color-names": { "version": "0.0.4", - "resolved": "http://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz", + "resolved": "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz", "integrity": "sha1-gIrcLnnPhHOAabZGyyDsJ762KeA=" }, "css-declaration-sorter": { @@ -119,9 +141,9 @@ "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==" + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-2.1.3.tgz", + "integrity": "sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg==" }, "cssesc": { "version": "2.0.0", @@ -129,14 +151,14 @@ "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==" + "version": "4.1.9", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-4.1.9.tgz", + "integrity": "sha512-osEbYy4kzaNY3nkd92Uf3hy5Jqb5Aztuv+Ze3Z6DjRhyntZDlb3YljiYDdJ05k167U86CZpSR+rbuJYN7N3oBQ==" }, "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==" + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-4.0.7.tgz", + "integrity": "sha512-x0YHHx2h6p0fCl1zY9L9roD7rnlltugGu7zXSKQx6k2rYw0Hi3IqxcoAGF7u9Q5w1nt7vK0ulxV8Lo+EvllGsA==" }, "cssnano-util-get-arguments": { "version": "4.0.0", @@ -181,21 +203,14 @@ "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==" }, "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=" - } - } + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.1.tgz", + "integrity": "sha512-l0IU0pPzLWSHBcieZbpOKgkIn3ts3vAh7ZuFyXNwJxJXk/c4Gwj9xaTJwIDVQCXawWD0qb3IzMGH5rglQaO0XA==" }, "domelementtype": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.2.1.tgz", - "integrity": "sha512-SQVCLFS2E7G5CRCMdn6K9bIhRj1bS6QBWZfF0TUPh4V/BbqrQ619IdSS3/izn0FZ+9l+uODzaZjb08fjOfablA==" + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", + "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==" }, "domutils": { "version": "1.7.0", @@ -208,9 +223,9 @@ "integrity": "sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==" }, "electron-to-chromium": { - "version": "1.3.83", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.83.tgz", - "integrity": "sha512-DqJoDarxq50dcHsOOlMLNoy+qQitlMNbYb6wwbE0oUw2veHdRkpNrhmngiUYKMErdJ8SJ48rpJsZTQgy5SoEAA==" + "version": "1.3.113", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.113.tgz", + "integrity": "sha512-De+lPAxEcpxvqPTyZAXELNpRZXABRxf+uL/rSykstQhzj/B0l1150G/ExIIxKc16lI89Hgz81J0BHAcbTqK49g==" }, "entities": { "version": "1.1.2", @@ -223,9 +238,9 @@ "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==" + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.13.0.tgz", + "integrity": "sha512-vDZfg/ykNxQVwup/8E1BZhVzFfBxs9NqMzGcvIJrqg5k2/5Za2bWo40dK2J1pgLngZ7c+Shh8lwYtLGyrwPutg==" }, "es-to-primitive": { "version": "1.2.0", @@ -282,6 +297,11 @@ "resolved": "https://registry.npmjs.org/html-comment-regex/-/html-comment-regex-1.1.2.tgz", "integrity": "sha512-P+M65QY2JQ5Y0G9KKdlDpo0zK+/OHptU5AaBwUfAIDJZk1MYf32Frm84EcOytfJE0t5JvkAnKlmjsXDnWzCJmQ==" }, + "import-fresh": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz", + "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=" + }, "indexes-of": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz", @@ -319,7 +339,7 @@ }, "is-obj": { "version": "1.0.1", - "resolved": "http://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=" }, "is-regex": { @@ -343,15 +363,20 @@ "integrity": "sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw==" }, "js-yaml": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.12.0.tgz", - "integrity": "sha512-PIt2cnwmPfL4hKNwqeiuz4bKfnzHTBv6HyVgjahA6mPLwPDzjDWrplJBMjHUFxku/N3FlmrbyPclad+I+4mJ3A==" + "version": "3.12.2", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.12.2.tgz", + "integrity": "sha512-QHn/Lh/7HhZ/Twc7vJYQTkjuCa0kaCcDcjK5Zlk2rvnUpy7DxMJ23+Jc2dcyvltwQVg1nygAVlB2oRDFHoRS5Q==" }, "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.get": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", + "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=" + }, "lodash.memoize": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", @@ -369,18 +394,18 @@ }, "minimist": { "version": "0.0.8", - "resolved": "http://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" }, "mkdirp": { "version": "0.5.1", - "resolved": "http://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=" }, "node-releases": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.0.3.tgz", - "integrity": "sha512-ZaZWMsbuDcetpHmYeKWPO6e63pSXLb50M7lJgCbcM2nC/nQC3daNifmtp5a2kp7EWwYfhuvH6zLPWkrF8IiDdw==" + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.8.tgz", + "integrity": "sha512-gQm+K9mGCiT/NXHy+V/ZZS1N/LOaGGqRAAJJs3X9Ah1g+CIbRcBgNyoNYQ+SEtcyAtB9KqDruu+fF7nWjsqRaA==" }, "normalize-url": { "version": "3.3.0", @@ -393,9 +418,9 @@ "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==" }, "object-keys": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.12.tgz", - "integrity": "sha512-FTMyFUm2wBcGHnH2eXmz7tC6IwlqQZ6mVZ+6dm6vZ4IQIHjs6FdNsQBuKGPuUUUY6NfJw2PshC08Tn6LzLDOag==" + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.0.tgz", + "integrity": "sha512-6OO5X1+2tYkNyNEx6TsCxEqFfRWaqx6EtMiSbGrw8Ob8v9Ne+Hl8rBAgLBZn5wjEz3s/s6U1WXFUFOcxxAwUpg==" }, "object.getownpropertydescriptors": { "version": "2.0.3", @@ -403,9 +428,9 @@ "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=" + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.0.tgz", + "integrity": "sha512-8mf0nKLAoFX6VlNVdhGj31SVYpaNFtUnuoOXWyFEstsWRgU837AK+JYM0iAxwkSzGRbwn8cbFmgbyxj1j4VbXg==" }, "parse-json": { "version": "4.0.0", @@ -413,9 +438,9 @@ "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=" }, "postcss": { - "version": "7.0.5", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.5.tgz", - "integrity": "sha512-HBNpviAUFCKvEh7NZhw1e8MBPivRszIiUnhrJ+sBFVSYSqubrzwX3KG51mYgcRHX8j/cAgZJedONZcm5jTBdgQ==" + "version": "7.0.14", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.14.tgz", + "integrity": "sha512-NsbD6XUUMZvBxtQAJuWDJeeC4QFsmWsfozWxCJPWf3M55K9iu2iMDaKqyoOdTJ1R4usBXuxlVFAIo8rZPQD4Bg==" }, "postcss-calc": { "version": "7.0.1", @@ -423,9 +448,9 @@ "integrity": "sha512-oXqx0m6tb4N3JGdmeMSc/i91KppbYsFZKdH0xMOqK8V1rJlzrKlTdokz8ozUXLVejydRN6u2IddxpcijRj2FqQ==" }, "postcss-colormin": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-4.0.2.tgz", - "integrity": "sha512-1QJc2coIehnVFsz0otges8kQLsryi4lo19WD+U5xCWvXd0uw/Z+KKYnbiNDCnO9GP+PvErPHCG0jNvWTngk9Rw==" + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-4.0.3.tgz", + "integrity": "sha512-WyQFAdDZpExQh32j0U0feWisZ0dmOtPl44qYmJKkq9xFWY3p+4qnRzCHeNrkeRhwPHz9bQ3mo0/yVkaply0MNw==" }, "postcss-convert-values": { "version": "4.0.1", @@ -433,9 +458,9 @@ "integrity": "sha512-Kisdo1y77KUC0Jmn0OXU/COOJbzM8cImvw1ZFsBgBgMgb1iL23Zs/LXRe3r+EZqM3vGYKdQ2YJVQ5VkJI+zEJQ==" }, "postcss-discard-comments": { - "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==" + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-4.0.2.tgz", + "integrity": "sha512-RJutN259iuRf3IW7GZyLM5Sw4GLTOH8FmsXBnv8Ab/Tc2k4SR4qbV4DNbyyY4+Sjo362SyDmW2DQ7lBSChrpkg==" }, "postcss-discard-duplicates": { "version": "4.0.2", @@ -453,14 +478,14 @@ "integrity": "sha512-IYY2bEDD7g1XM1IDEsUT4//iEYCxAmP5oDSFMVU/JVvT7gh+l4fmjciLqGgwjdWpQIdb0Che2VX00QObS5+cTg==" }, "postcss-merge-longhand": { - "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==" + "version": "4.0.11", + "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-4.0.11.tgz", + "integrity": "sha512-alx/zmoeXvJjp7L4mxEMjh8lxVlDFX1gqWHzaaQewwMZiVhLo42TEClKaeHbRf6J7j82ZOdTJ808RtN0ZOZwvw==" }, "postcss-merge-rules": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-4.0.2.tgz", - "integrity": "sha512-UiuXwCCJtQy9tAIxsnurfF0mrNHKc4NnNx6NxqmzNNjXpQwLSukUxELHTRF0Rg1pAmcoKLih8PwvZbiordchag==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-4.0.3.tgz", + "integrity": "sha512-U7e3r1SbvYzO0Jr3UT/zKBVgYYyhAz0aitvGIYOYK5CPmkNih+WDSsS5tvPrJ8YMQYlEMvsZIiqmn7HdFUaeEQ==", "dependencies": { "postcss-selector-parser": { "version": "3.1.1", @@ -475,19 +500,19 @@ "integrity": "sha512-j85oO6OnRU9zPf04+PZv1LYIYOprWm6IA6zkXkrJXyRveDEuQggG6tvoy8ir8ZwjLxLuGfNkCZEQG7zan+Hbtg==" }, "postcss-minify-gradients": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-4.0.1.tgz", - "integrity": "sha512-pySEW3E6Ly5mHm18rekbWiAjVi/Wj8KKt2vwSfVFAWdW6wOIekgqxKxLU7vJfb107o3FDNPkaYFCxGAJBFyogA==" + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-4.0.2.tgz", + "integrity": "sha512-qKPfwlONdcf/AndP1U8SJ/uzIJtowHlMaSioKzebAXSG4iJthlWC9iSWznQcX4f66gIWX44RSA841HTHj3wK+Q==" }, "postcss-minify-params": { - "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==" + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-4.0.2.tgz", + "integrity": "sha512-G7eWyzEx0xL4/wiBBJxJOz48zAKV2WG3iZOqVhPet/9geefm/Px5uo1fzlHu+DOjT+m0Mmiz3jkQzVHe6wxAWg==" }, "postcss-minify-selectors": { - "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==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-4.0.2.tgz", + "integrity": "sha512-D5S1iViljXBj9kflQo4YutWnJmwm8VvIsU1GeXJGiG9j8CIg9zs4voPMdQDUmIxetUOh60VilsNzCiAFTOqu3g==", "dependencies": { "postcss-selector-parser": { "version": "3.1.1", @@ -502,29 +527,29 @@ "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==" + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.2.tgz", + "integrity": "sha512-3F2jcsaMW7+VtRMAqf/3m4cPFhPD3EFRgNs18u+k3lTJJlVe7d0YPO+bnwqo2xg8YiRpDXJI2u8A0wqJxMsQuQ==" }, "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==" + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-4.0.2.tgz", + "integrity": "sha512-Dlf3/9AxpxE+NF1fJxYDeggi5WwV35MXGFnnoccP/9qDtFrTArZ0D0R+iKcg5WsUd8nUYMIl8yXDCtcrT8JrdA==" }, "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==" + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.2.tgz", + "integrity": "sha512-qvigdYYMpSuoFs3Is/f5nHdRLJN/ITA7huIoCyqqENJe9PvPmLhNLMu7QTjPdtnVf6OcYYO5SHonx4+fbJE1+Q==" }, "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==" + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-4.0.2.tgz", + "integrity": "sha512-RrERod97Dnwqq49WNz8qo66ps0swYZDSb6rM57kN2J+aoyEAJfZ6bMx0sx/F9TIEX0xthPGCmeyiam/jXif0eA==" }, "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==" + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.2.tgz", + "integrity": "sha512-acwJY95edP762e++00Ehq9L4sZCEcOPyaHwoaFOhIwWCDfik6YvqsYNxckee65JHLKzuNSSmAdxwD2Cud1Z54A==" }, "postcss-normalize-unicode": { "version": "4.0.1", @@ -537,34 +562,34 @@ "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==" + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.2.tgz", + "integrity": "sha512-tO8QIgrsI3p95r8fyqKV+ufKlSHh9hMJqACqbv2XknufqEDhDvbguXGBBqxw9nsQoXWf0qOqppziKJKHMD4GtA==" }, "postcss-ordered-values": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-4.1.1.tgz", - "integrity": "sha512-PeJiLgJWPzkVF8JuKSBcylaU+hDJ/TX3zqAMIjlghgn1JBi6QwQaDZoDIlqWRcCAI8SxKrt3FCPSRmOgKRB97Q==" + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-4.1.2.tgz", + "integrity": "sha512-2fCObh5UanxvSxeXrtLtlwVThBvHn6MQcu4ksNT2tsaV2Fg76R2CV98W7wNSlX+5/pFwEyaDwKLLoEV7uRybAw==" }, "postcss-reduce-initial": { - "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==" + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-4.0.3.tgz", + "integrity": "sha512-gKWmR5aUulSjbzOfD9AlJiHCGH6AEVLaM0AV+aSioxUDd16qXP1PCh8d1/BGVvpdWn8k/HiK7n6TjeoXN1F7DA==" }, "postcss-reduce-transforms": { - "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==" + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.2.tgz", + "integrity": "sha512-EEVig1Q2QJ4ELpJXMZR8Vt5DQx8/mo+dGWSR7vWXqcob2gQLyQGsionYcGKATXvQzMPn6DSN1vTN7yFximdIAg==" }, "postcss-selector-parser": { - "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==" + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz", + "integrity": "sha512-w+zLE5Jhg6Liz8+rQOWEAwtwkyqpfnmsinXjXg6cY7YIONZZtgvE0v2O0uhQBs0peNomOJwWRKt6JBfTdTd3OQ==" }, "postcss-svgo": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-4.0.1.tgz", - "integrity": "sha512-YD5uIk5NDRySy0hcI+ZJHwqemv2WiqqzDgtvgMzO8EGSkK5aONyX8HMVFRFJSdO8wUWTuisUFn/d7yRRbBr5Qw==" + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-4.0.2.tgz", + "integrity": "sha512-C6wyjo3VwFm0QgBy+Fu7gCYOkCmgmClghO+pjcxvrcBKtiKt0uCF+hvbMO1fyv5BMImRK90SMb+dwUnfbGd+jw==" }, "postcss-unique-selectors": { "version": "4.0.1", @@ -581,6 +606,11 @@ "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=" }, + "resolve-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", + "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=" + }, "rgb-regex": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/rgb-regex/-/rgb-regex-1.0.1.tgz", @@ -629,9 +659,9 @@ "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==" }, "stylehacks": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-4.0.1.tgz", - "integrity": "sha512-TK5zEPeD9NyC1uPIdjikzsgWxdQQN/ry1X3d1iOz1UkYDCmcr928gWD1KHgyC27F50UnE0xCTrBOO1l6KR8M4w==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-4.0.3.tgz", + "integrity": "sha512-7GlLk9JwlElY4Y6a/rmbH2MhVlTyVmiJd1PfTCqFaIBEGMYNsrO/v3SeGTdhBThLg4Z+NbOk/qFMwCa+J+3p/g==", "dependencies": { "postcss-selector-parser": { "version": "3.1.1", @@ -641,14 +671,14 @@ } }, "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==" + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==" }, "svgo": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/svgo/-/svgo-1.1.1.tgz", - "integrity": "sha512-GBkJbnTuFpM4jFbiERHDWhZc/S/kpHToqmZag3aEBjPYK44JAN2QBjvrGIxLOoCyMZjuFQIfTO2eJd8uwLY/9g==" + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-1.2.0.tgz", + "integrity": "sha512-xBfxJxfk4UeVN8asec9jNxHiv3UAMv/ujwBWGYvQhhMb2u3YTGKkiybPcLFDLq7GLLWE9wa73e0/m8L5nTzQbw==" }, "timsort": { "version": "0.3.0", diff --git a/packages/minifier-js/.npm/package/npm-shrinkwrap.json b/packages/minifier-js/.npm/package/npm-shrinkwrap.json index 850953a030..eec2ad9379 100644 --- a/packages/minifier-js/.npm/package/npm-shrinkwrap.json +++ b/packages/minifier-js/.npm/package/npm-shrinkwrap.json @@ -17,14 +17,14 @@ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" }, "source-map-support": { - "version": "0.5.9", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.9.tgz", - "integrity": "sha512-gR6Rw4MvUlYy83vP0vxoVNzM6t8MUXqNuRsuBmBHQDu1Fh6X015FrLdgoDKcNdkwGubozq0P4N0Q37UyFVr1EA==" + "version": "0.5.10", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.10.tgz", + "integrity": "sha512-YfQ3tQFTK/yzlGJuX8pTwa4tifQj4QS2Mj7UegOu8jAz59MqIiMGPXxQhVQiIMNzayuUSF/jEuVnfFF5JqybmQ==" }, "terser": { - "version": "3.9.2", - "resolved": "https://registry.npmjs.org/terser/-/terser-3.9.2.tgz", - "integrity": "sha512-zOaL2PwflERZkVWbzv8rGbDR493fUaD/KXIUz/vjuvyH6Cxwu4pitM6con3Jy4bWtcQJwNOvN4rHltFeTEwZQA==" + "version": "3.16.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-3.16.1.tgz", + "integrity": "sha512-JDJjgleBROeek2iBcSNzOHLKsB/MdDf+E/BOAJ0Tk9r7p9/fVobfv7LMJ/g/k3v9SXdmjZnIlFd5nfn/Rt0Xow==" } } } diff --git a/packages/non-core/mongo-decimal/.npm/package/npm-shrinkwrap.json b/packages/non-core/mongo-decimal/.npm/package/npm-shrinkwrap.json index 9dc4ea8214..071d001841 100644 --- a/packages/non-core/mongo-decimal/.npm/package/npm-shrinkwrap.json +++ b/packages/non-core/mongo-decimal/.npm/package/npm-shrinkwrap.json @@ -2,9 +2,9 @@ "lockfileVersion": 1, "dependencies": { "decimal.js": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-9.0.1.tgz", - "integrity": "sha512-2h0iKbJwnImBk4TGk7CG1xadoA0g3LDPlQhQzbZ221zvG0p2YVUedbKIPsOZXKZGx6YmZMJKYOalpCMxSdDqTQ==" + "version": "10.0.2", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.0.2.tgz", + "integrity": "sha512-qL5tUTXAWjB5cSBfm0V2a4jO5FaDLumCfwc/0f7WaTOT3WU8pIeq2HHrd98eXHtbey4qFWlaPzfml1JWIoO9TQ==" } } } From cd9ace9434c04013016c071e74435a827d8d80b0 Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Thu, 28 Feb 2019 14:11:22 -0500 Subject: [PATCH 114/134] Bump package versions after updating npm dependencies in #10448. --- packages/fetch/package.js | 2 +- packages/minifier-css/package.js | 2 +- packages/minifier-js/package.js | 2 +- packages/non-core/mongo-decimal/package.js | 2 +- packages/standard-minifier-css/package.js | 2 +- packages/standard-minifier-js/package.js | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/packages/fetch/package.js b/packages/fetch/package.js index 3e850c32c7..9c3969ff7b 100644 --- a/packages/fetch/package.js +++ b/packages/fetch/package.js @@ -1,6 +1,6 @@ Package.describe({ name: "fetch", - version: "0.1.0", + version: "0.1.1", summary: "Isomorphic modern/legacy/Node polyfill for WHATWG fetch()", documentation: "README.md" }); diff --git a/packages/minifier-css/package.js b/packages/minifier-css/package.js index 4476a29e71..1bfcbb840a 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.1' + version: '1.4.2' }); Npm.depends({ diff --git a/packages/minifier-js/package.js b/packages/minifier-js/package.js index 63f779dc1d..e6c8fab292 100644 --- a/packages/minifier-js/package.js +++ b/packages/minifier-js/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "JavaScript minifier", - version: "2.4.0" + version: "2.4.1" }); Npm.depends({ diff --git a/packages/non-core/mongo-decimal/package.js b/packages/non-core/mongo-decimal/package.js index e8836fb87a..29c590cf28 100644 --- a/packages/non-core/mongo-decimal/package.js +++ b/packages/non-core/mongo-decimal/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "JS simulation of MongoDB Decimal128 type", - version: '0.1.0' + version: '0.1.1' }); Npm.depends({ diff --git a/packages/standard-minifier-css/package.js b/packages/standard-minifier-css/package.js index f79e39d66e..76871c97f9 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.2', + version: '1.5.3', summary: 'Standard css minifier used with Meteor apps by default.', documentation: 'README.md' }); diff --git a/packages/standard-minifier-js/package.js b/packages/standard-minifier-js/package.js index d288bf8201..6f98cf77c3 100644 --- a/packages/standard-minifier-js/package.js +++ b/packages/standard-minifier-js/package.js @@ -1,6 +1,6 @@ Package.describe({ name: 'standard-minifier-js', - version: '2.4.0', + version: '2.4.1', summary: 'Standard javascript minifiers used with Meteor apps by default.', documentation: 'README.md', }); From 61ee90ef2d47d4ffd77cfe794185a03e3ee1d518 Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Thu, 28 Feb 2019 14:18:10 -0500 Subject: [PATCH 115/134] Begin garbage directory names with a '.' character. --- tools/fs/files.js | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/tools/fs/files.js b/tools/fs/files.js index 3b622b6261..02a4c7353e 100644 --- a/tools/fs/files.js +++ b/tools/fs/files.js @@ -1032,7 +1032,12 @@ files.createTarball = Profile(function (dirPath, tarball) { // is in a state other than initial or final".) files.renameDirAlmostAtomically = Profile("files.renameDirAlmostAtomically", (fromDir, toDir) => { - const garbageDir = `${toDir}-garbage-${utils.randomToken()}`; + const garbageDir = files.pathJoin( + files.pathDirname(toDir), + // Begin the base filename with a '.' character so that it can be + // ignored by other directory-scanning code. + `.${files.pathBasename(toDir)}-garbage-${utils.randomToken()}`, + ); // Get old dir out of the way, if it exists. let cleanupGarbage = false; From 7c7dea58a73d35a6d51a0f39a9e293df10b538fc Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Thu, 28 Feb 2019 14:24:52 -0500 Subject: [PATCH 116/134] Double-check isDirectory before calling copyNpmPackageWithSymlinkedNodeModules. --- tools/isobuild/meteor-npm.js | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/tools/isobuild/meteor-npm.js b/tools/isobuild/meteor-npm.js index e58932fa6c..821f997f7f 100644 --- a/tools/isobuild/meteor-npm.js +++ b/tools/isobuild/meteor-npm.js @@ -343,21 +343,27 @@ Profile("meteorNpm.rebuildIfNonPortable", function (nodeModulesDir) { // directory paths. const tempPkgDirs = {}; - dirsToRebuild.forEach(function (pkgPath) { + dirsToRebuild.splice(0).forEach(pkgPath => { const tempPkgDir = tempPkgDirs[pkgPath] = files.pathJoin( tempNodeModules, files.pathRelative(nodeModulesDir, pkgPath) ); - // Copy the package directory instead of renaming it, so that the - // original package will be left untouched if the rebuild fails. We - // could just run files.cp_r(pkgPath, tempPkgDir) here, except that we - // want to handle nested node_modules directories specially. - copyNpmPackageWithSymlinkedNodeModules(pkgPath, tempPkgDir); + // It's possible the pkgPath directory may have been deleted since we + // did the scan above: https://circleci.com/gh/meteor/meteor/31330 + if (isDirectory(pkgPath)) { + // Copy the package directory instead of renaming it, so that the + // original package will be left untouched if the rebuild fails. We + // could just run files.cp_r(pkgPath, tempPkgDir) here, except that we + // want to handle nested node_modules directories specially. + copyNpmPackageWithSymlinkedNodeModules(pkgPath, tempPkgDir); - // Record the current process.versions so that we can avoid - // copying/rebuilding/renaming next time. - recordLastRebuildVersions(tempPkgDir); + // Record the current process.versions so that we can avoid + // copying/rebuilding/renaming next time. + recordLastRebuildVersions(tempPkgDir); + + dirsToRebuild.push(pkgPath); + } }); // The `npm rebuild` command must be run in the parent directory of the From 358f4541d9167fbf51854dedbe985c5ca3945af7 Mon Sep 17 00:00:00 2001 From: zodern Date: Mon, 4 Feb 2019 11:35:21 -0600 Subject: [PATCH 117/134] Update source-map to 0.5.7. --- 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 f3f5e2bf92..0d79515abf 100644 --- a/scripts/dev-bundle-tool-package.js +++ b/scripts/dev-bundle-tool-package.js @@ -34,7 +34,7 @@ var packageJson = { fstream: "https://github.com/meteor/fstream/tarball/cf4ea6c175355cec7bee38311e170d08c4078a5d", tar: "2.2.1", kexec: "3.0.0", - "source-map": "0.5.3", + "source-map": "0.5.7", chalk: "0.5.1", sqlite3: "3.1.8", netroute: "1.0.2", From 7b2adcb9dab97a97460309f7eb418a738a784741 Mon Sep 17 00:00:00 2001 From: zodern Date: Tue, 5 Feb 2019 10:35:37 -0600 Subject: [PATCH 118/134] Cache stringified prelinked output for dynamic files. --- tools/isobuild/linker.js | 42 ++++++++++++++++++++++++++++++++++------ 1 file changed, 36 insertions(+), 6 deletions(-) diff --git a/tools/isobuild/linker.js b/tools/isobuild/linker.js index 697460fcf3..159be29748 100644 --- a/tools/isobuild/linker.js +++ b/tools/isobuild/linker.js @@ -21,6 +21,10 @@ const APP_PRELINK_CACHE = new LRU({ return prelinked.source.length + sourceMapLength(prelinked.sourceMap); } }); +// Caches code with source map for dynamic files +const DYNAMIC_PRELINKED_OUTPUT_CACHE = new LRU({ + max: Math.pow(2, 11) +}); var packageDot = function (name) { if (/^[a-zA-Z][a-zA-Z0-9]*$/.exec(name)) { @@ -271,11 +275,7 @@ _.extend(Module.prototype, { if (file.isDynamic()) { const servePath = files.pathJoin("dynamic", file.absModuleId); const { code: source, map } = - file.getPrelinkedOutput({ - sourceWidth: sourceWidth, - }).toStringWithSourceMap({ - file: servePath, - }); + getOutputWithSourceMapCached(file, servePath, { sourceWidth }) results.push({ source, @@ -812,12 +812,15 @@ const getPrelinkedOutputCached = require("optimism").wrap( } return new sourcemap.SourceNode(null, null, null, chunks); - }, { // Store at most 4096 Files worth of prelinked output in this cache. max: Math.pow(2, 12), makeCacheKey(file, options) { + if (options.disableCache) { + return; + } + return JSON.stringify({ hash: file._inputHash, arch: file.module.bundleArch, @@ -829,6 +832,33 @@ const getPrelinkedOutputCached = require("optimism").wrap( } ); +function getOutputWithSourceMapCached (file,servePath, options) { + const key = JSON.stringify({ + hash: file._inputHash, + arch: file.module.bundleArch, + bare: file.bare, + servePath: file.servePath, + dynamic: file.isDynamic(), + options, + }); + + if (DYNAMIC_PRELINKED_OUTPUT_CACHE.has(key)) { + return DYNAMIC_PRELINKED_OUTPUT_CACHE.get(key); + } + + + const result = file.getPrelinkedOutput({ + ...options, + disableCache: true + }) + .toStringWithSourceMap({ + file: servePath, + }); + DYNAMIC_PRELINKED_OUTPUT_CACHE.set(key, result); + + return result; +} + // Given a list of lines (not newline-terminated), returns a string placing them // in a pretty banner of width bannerWidth. All lines must have length at most // (bannerWidth - 6); if bannerWidth is not provided, the smallest width that From 95a1f54ccef068327c37dc5aba97b8b25189dcb7 Mon Sep 17 00:00:00 2001 From: zodern Date: Tue, 5 Feb 2019 11:12:14 -0600 Subject: [PATCH 119/134] Skip regenerating main bundle when only a dynamic file changed. --- tools/isobuild/linker.js | 60 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) diff --git a/tools/isobuild/linker.js b/tools/isobuild/linker.js index 159be29748..a385838cd1 100644 --- a/tools/isobuild/linker.js +++ b/tools/isobuild/linker.js @@ -26,6 +26,11 @@ const DYNAMIC_PRELINKED_OUTPUT_CACHE = new LRU({ max: Math.pow(2, 11) }); +// Caches main bundle for client architectures that have dynamic imports +const PRELINKED_MAIN_CACHE = new LRU({ + max: Math.pow(2, 3) +}); + var packageDot = function (name) { if (/^[a-zA-Z][a-zA-Z0-9]*$/.exec(name)) { return "Package." + name; @@ -209,6 +214,54 @@ _.extend(Module.prototype, { }); } + // Caching is only useful when there are dynamic files. + const canCache = results.find(result => result.dynamic) && self.useGlobalNamespace; + let inputHash; + let key; + + // When only dynamic files changed, reuse the main result from + // the last time it was generated + if (canCache) { + const files = []; + + self.files.forEach(file => { + if (file.bare || !file.isDynamic()) { + files.push({ + hash: file._inputHash, + meteorInstallOptions: file.meteorInstallOptions, + sourceMap: !!file.sourceMap, + mainModule: file.imported, + alias: file.alias, + lazy: file.lazy, + bare: file.bare + }); + } + }); + inputHash = watch.sha1(JSON.stringify({ + useGlobalNamespace: this.useGlobalNamespace, + combinedServePath: this.combinedServePath, + name: self.name, + files + })); + key = `${self.bundleArch}-${self.name}`; + + // By using a more general key only the latest result is stored + // The inputHash is used to know when the cache is stale + if (PRELINKED_MAIN_CACHE.has(key)) { + let { + inputHash: cachedInputHash, + result: cachedResult + } = PRELINKED_MAIN_CACHE.get(key); + + if (cachedInputHash === inputHash) { + result.source = cachedResult.source; + result.sourceMap = cachedResult.sourceMap; + + return results; + } + } + } + var node = new sourcemap.SourceNode(null, null, null, chunks); Profile.time( @@ -232,6 +285,13 @@ _.extend(Module.prototype, { } ); + if (canCache) { + PRELINKED_MAIN_CACHE.set(key, { + inputHash, + result + }); + } + return results; }), From bb564dd93f31d40456966cc7de4b67a90ba9a808 Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Thu, 28 Feb 2019 14:41:14 -0500 Subject: [PATCH 120/134] Address my own (minor) review feedback. --- tools/isobuild/linker.js | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/tools/isobuild/linker.js b/tools/isobuild/linker.js index a385838cd1..4f115190fc 100644 --- a/tools/isobuild/linker.js +++ b/tools/isobuild/linker.js @@ -215,11 +215,11 @@ _.extend(Module.prototype, { } // Caching is only useful when there are dynamic files. - const canCache = results.find(result => result.dynamic) && self.useGlobalNamespace; + const canCache = self.useGlobalNamespace && results.find(result => result.dynamic); + const key = `${self.bundleArch}-${self.name}`; let inputHash; - let key; - // When only dynamic files changed, reuse the main result from + // When only dynamic files changed, reuse the main result from // the last time it was generated if (canCache) { const files = []; @@ -237,13 +237,13 @@ _.extend(Module.prototype, { }); } }); + inputHash = watch.sha1(JSON.stringify({ useGlobalNamespace: this.useGlobalNamespace, combinedServePath: this.combinedServePath, name: self.name, files })); - key = `${self.bundleArch}-${self.name}`; // By using a more general key only the latest result is stored // The inputHash is used to know when the cache is stale @@ -892,7 +892,7 @@ const getPrelinkedOutputCached = require("optimism").wrap( } ); -function getOutputWithSourceMapCached (file,servePath, options) { +function getOutputWithSourceMapCached(file, servePath, options) { const key = JSON.stringify({ hash: file._inputHash, arch: file.module.bundleArch, @@ -906,14 +906,13 @@ function getOutputWithSourceMapCached (file,servePath, options) { return DYNAMIC_PRELINKED_OUTPUT_CACHE.get(key); } - const result = file.getPrelinkedOutput({ ...options, disableCache: true - }) - .toStringWithSourceMap({ - file: servePath, - }); + }).toStringWithSourceMap({ + file: servePath, + }); + DYNAMIC_PRELINKED_OUTPUT_CACHE.set(key, result); return result; From d3ccc4ef73826ef79ebe92ba48a0ecab5e999546 Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Thu, 28 Feb 2019 15:54:39 -0500 Subject: [PATCH 121/134] Bump package versions for 1.8.1-beta.20 release. --- packages/autoupdate/package.js | 2 +- packages/babel-compiler/package.js | 2 +- packages/ddp-server/package.js | 2 +- packages/fetch/package.js | 2 +- packages/meteor-tool/package.js | 2 +- packages/meteor/package.js | 2 +- packages/minifier-css/package.js | 2 +- packages/minifier-js/package.js | 2 +- packages/modern-browsers/package.js | 2 +- packages/npm-mongo/package.js | 2 +- packages/reactive-dict/package.js | 2 +- packages/reload/package.js | 2 +- packages/session/package.js | 2 +- packages/standard-minifier-css/package.js | 2 +- packages/standard-minifier-js/package.js | 2 +- packages/webapp/package.js | 2 +- scripts/admin/meteor-release-experimental.json | 2 +- 17 files changed, 17 insertions(+), 17 deletions(-) diff --git a/packages/autoupdate/package.js b/packages/autoupdate/package.js index 3a49250500..c6324003d2 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.18' + version: '1.6.0-beta181.20' }); Package.onUse(function (api) { diff --git a/packages/babel-compiler/package.js b/packages/babel-compiler/package.js index a9cf5ede5d..12b4b0b9e1 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.3.4-beta181.18' + version: '7.3.4-beta181.20' }); Npm.depends({ diff --git a/packages/ddp-server/package.js b/packages/ddp-server/package.js index 112dd55ff3..5aea285ca4 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.18', + version: '2.3.0-beta181.20', documentation: null }); diff --git a/packages/fetch/package.js b/packages/fetch/package.js index 9c3969ff7b..d329b75b68 100644 --- a/packages/fetch/package.js +++ b/packages/fetch/package.js @@ -1,6 +1,6 @@ Package.describe({ name: "fetch", - version: "0.1.1", + version: "0.1.1-beta181.20", summary: "Isomorphic modern/legacy/Node polyfill for WHATWG fetch()", documentation: "README.md" }); diff --git a/packages/meteor-tool/package.js b/packages/meteor-tool/package.js index 9186db61ac..50ce3a8348 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.18' + version: '1.8.1-beta.20' }); Package.includeTool(); diff --git a/packages/meteor/package.js b/packages/meteor/package.js index 4444d9af23..717083a62f 100644 --- a/packages/meteor/package.js +++ b/packages/meteor/package.js @@ -2,7 +2,7 @@ Package.describe({ summary: "Core Meteor environment", - version: '1.9.3-beta181.18' + version: '1.9.3-beta181.20' }); Package.registerBuildPlugin({ diff --git a/packages/minifier-css/package.js b/packages/minifier-css/package.js index 1bfcbb840a..05cccd3d64 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.2' + version: '1.4.2-beta181.20' }); Npm.depends({ diff --git a/packages/minifier-js/package.js b/packages/minifier-js/package.js index e6c8fab292..5268250eb9 100644 --- a/packages/minifier-js/package.js +++ b/packages/minifier-js/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "JavaScript minifier", - version: "2.4.1" + version: "2.4.1-beta181.20" }); Npm.depends({ diff --git a/packages/modern-browsers/package.js b/packages/modern-browsers/package.js index 8795531dc8..57bcc752df 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.18", + version: "0.1.4-beta181.20", summary: "API for defining the boundary between modern and legacy " + "JavaScript clients", documentation: "README.md" diff --git a/packages/npm-mongo/package.js b/packages/npm-mongo/package.js index d6f7712a62..c5cc3c80d9 100644 --- a/packages/npm-mongo/package.js +++ b/packages/npm-mongo/package.js @@ -3,7 +3,7 @@ Package.describe({ summary: "Wrapper around the mongo npm package", - version: "3.1.2-beta181.18", + version: "3.1.2-beta181.20", documentation: null }); diff --git a/packages/reactive-dict/package.js b/packages/reactive-dict/package.js index c1f67241d1..a3a425389e 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.18' + version: '1.3.0-beta181.20' }); Package.onUse(function (api) { diff --git a/packages/reload/package.js b/packages/reload/package.js index b8e6982df1..3f28393401 100644 --- a/packages/reload/package.js +++ b/packages/reload/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "Reload the page while preserving application state.", - version: '1.3.0-beta181.18' + version: '1.3.0-beta181.20' }); Package.onUse(function (api) { diff --git a/packages/session/package.js b/packages/session/package.js index 81814ddb70..baaa430414 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.18' + version: '1.2.0-beta181.20' }); Package.onUse(function (api) { diff --git a/packages/standard-minifier-css/package.js b/packages/standard-minifier-css/package.js index 76871c97f9..08f056f0b9 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.3', + version: '1.5.3-beta181.20', summary: 'Standard css minifier used with Meteor apps by default.', documentation: 'README.md' }); diff --git a/packages/standard-minifier-js/package.js b/packages/standard-minifier-js/package.js index 6f98cf77c3..532c16334a 100644 --- a/packages/standard-minifier-js/package.js +++ b/packages/standard-minifier-js/package.js @@ -1,6 +1,6 @@ Package.describe({ name: 'standard-minifier-js', - version: '2.4.1', + version: '2.4.1-beta181.20', summary: 'Standard javascript minifiers used with Meteor apps by default.', documentation: 'README.md', }); diff --git a/packages/webapp/package.js b/packages/webapp/package.js index f32efe441a..54624b1792 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.3-beta181.18' + version: '1.7.3-beta181.20' }); 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 6bec7a5c31..1bfb1c4561 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.18", + "version": "1.8.1-beta.20", "recommended": false, "official": false, "description": "Meteor" From 65747fc29f850c49a6337e223ecbe54e35ecd6f1 Mon Sep 17 00:00:00 2001 From: georgyberdyshev Date: Fri, 15 Mar 2019 16:23:46 +0100 Subject: [PATCH 122/134] Updated `meteor create --list` Angular boilerplate name and URL. (#10363) --- tools/cli/example-repositories.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/cli/example-repositories.js b/tools/cli/example-repositories.js index 42b9b4a16a..bda0132177 100644 --- a/tools/cli/example-repositories.js +++ b/tools/cli/example-repositories.js @@ -14,7 +14,7 @@ export const EXAMPLE_REPOSITORIES = { 'repo': 'https://github.com/meteor/todos', 'branch': 'react', }, - 'angular2-boilerplate': { - repo: 'https://github.com/bsliran/angular2-meteor-base' + 'angular-boilerplate': { + repo: 'https://github.com/Urigo/angular-meteor-base.git' } }; From 55d1ffa3f2f5f0d0b4d744f6a13ebb26381abbbd Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Tue, 19 Mar 2019 12:22:54 -0400 Subject: [PATCH 123/134] Revert "Skip regenerating main bundle when only a dynamic file changed." (#10497) This reverts commit 95a1f54ccef068327c37dc5aba97b8b25189dcb7. Although at first this commit seemed like a nice optimization, after digging into #10496 I was reminded that the main bundle includes the paths and hashes of available dynamic modules, so rebuilding the main bundle is important even when only dynamic modules have changed. Many thanks to @arggh for testing 1.8.1-beta.20 and putting together the https://github.com/arggh/meteor-bundler-issue reproduction. Should fix #10496 and #10494. --- tools/isobuild/linker.js | 60 ---------------------------------------- 1 file changed, 60 deletions(-) diff --git a/tools/isobuild/linker.js b/tools/isobuild/linker.js index 4f115190fc..d02ba1a754 100644 --- a/tools/isobuild/linker.js +++ b/tools/isobuild/linker.js @@ -26,11 +26,6 @@ const DYNAMIC_PRELINKED_OUTPUT_CACHE = new LRU({ max: Math.pow(2, 11) }); -// Caches main bundle for client architectures that have dynamic imports -const PRELINKED_MAIN_CACHE = new LRU({ - max: Math.pow(2, 3) -}); - var packageDot = function (name) { if (/^[a-zA-Z][a-zA-Z0-9]*$/.exec(name)) { return "Package." + name; @@ -214,54 +209,6 @@ _.extend(Module.prototype, { }); } - // Caching is only useful when there are dynamic files. - const canCache = self.useGlobalNamespace && results.find(result => result.dynamic); - const key = `${self.bundleArch}-${self.name}`; - let inputHash; - - // When only dynamic files changed, reuse the main result from - // the last time it was generated - if (canCache) { - const files = []; - - self.files.forEach(file => { - if (file.bare || !file.isDynamic()) { - files.push({ - hash: file._inputHash, - meteorInstallOptions: file.meteorInstallOptions, - sourceMap: !!file.sourceMap, - mainModule: file.imported, - alias: file.alias, - lazy: file.lazy, - bare: file.bare - }); - } - }); - - inputHash = watch.sha1(JSON.stringify({ - useGlobalNamespace: this.useGlobalNamespace, - combinedServePath: this.combinedServePath, - name: self.name, - files - })); - - // By using a more general key only the latest result is stored - // The inputHash is used to know when the cache is stale - if (PRELINKED_MAIN_CACHE.has(key)) { - let { - inputHash: cachedInputHash, - result: cachedResult - } = PRELINKED_MAIN_CACHE.get(key); - - if (cachedInputHash === inputHash) { - result.source = cachedResult.source; - result.sourceMap = cachedResult.sourceMap; - - return results; - } - } - } - var node = new sourcemap.SourceNode(null, null, null, chunks); Profile.time( @@ -285,13 +232,6 @@ _.extend(Module.prototype, { } ); - if (canCache) { - PRELINKED_MAIN_CACHE.set(key, { - inputHash, - result - }); - } - return results; }), From 5125da518da0a6dd7c9bd18beb069f6adb59ceba Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Tue, 19 Mar 2019 13:16:34 -0400 Subject: [PATCH 124/134] Update npm to 6.9.0 and pacote to 9.5.0. --- History.md | 6 +++--- scripts/build-dev-bundle-common.sh | 2 +- scripts/dev-bundle-tool-package.js | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/History.md b/History.md index eabcbcac5b..51b2f5a5c0 100644 --- a/History.md +++ b/History.md @@ -27,9 +27,9 @@ N/A fixed. [Issue #10216](https://github.com/meteor/meteor/issues/10216) * The `npm` tool has been upgraded to version - [6.8.0](https://github.com/npm/cli/releases/tag/v6.8.0), and our - [fork](https://github.com/meteor/pacote/tree/v9.4.1-meteor) of its - `pacote` dependency has been updated to version 9.4.1. + [6.9.0](https://github.com/npm/cli/releases/tag/v6.9.0), and our + [fork](https://github.com/meteor/pacote/tree/v9.5.0-meteor) of its + `pacote` dependency has been updated to version 9.5.0. * Mongo has been upgraded to version 4.0.6 for 64-bit systems (was 4.0.2), and 3.2.22 for 32-bit systems (was 3.2.19). The `mongodb` npm package diff --git a/scripts/build-dev-bundle-common.sh b/scripts/build-dev-bundle-common.sh index abea01d43c..f4905d8cd7 100644 --- a/scripts/build-dev-bundle-common.sh +++ b/scripts/build-dev-bundle-common.sh @@ -8,7 +8,7 @@ ARCH=$(uname -m) NODE_VERSION=8.15.1 MONGO_VERSION_64BIT=4.0.6 MONGO_VERSION_32BIT=3.2.22 -NPM_VERSION=6.8.0 +NPM_VERSION=6.9.0 # If we built Node from source on Jenkins, this is the build number. NODE_BUILD_NUMBER= diff --git a/scripts/dev-bundle-tool-package.js b/scripts/dev-bundle-tool-package.js index 0d79515abf..ff10cab7fd 100644 --- a/scripts/dev-bundle-tool-package.js +++ b/scripts/dev-bundle-tool-package.js @@ -10,8 +10,8 @@ var packageJson = { dependencies: { // Explicit dependency because we are replacing it with a bundled version // and we want to make sure there are no dependencies on a higher version - npm: "6.8.0", - pacote: "https://github.com/meteor/pacote/tarball/0aa5b08a6bfe5feeff3b55581d63003737821a6c", + npm: "6.9.0", + pacote: "https://github.com/meteor/pacote/tarball/c5043daa1b768594e01d76275e3854fc19f038f9", "node-gyp": "3.7.0", "node-pre-gyp": "0.10.3", "meteor-babel": "7.3.4", From 128b7ffa4f8b6ef0a355626d53783c265a47b751 Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Tue, 19 Mar 2019 13:17:34 -0400 Subject: [PATCH 125/134] Update optimism dependency to latest version (0.8.3). --- 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 ff10cab7fd..ea910e781e 100644 --- a/scripts/dev-bundle-tool-package.js +++ b/scripts/dev-bundle-tool-package.js @@ -52,7 +52,7 @@ var packageJson = { split2: "2.2.0", multipipe: "2.0.1", pathwatcher: "8.0.2", - optimism: "0.6.8", + optimism: "0.8.3", 'lru-cache': '4.1.3' } }; From cc4645ba5afed685537767bfba39b4b34e6934cd Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Tue, 19 Mar 2019 13:24:26 -0400 Subject: [PATCH 126/134] Bump $BUNDLE_VERSION to 8.15.1.1 before rebuilding dev bundle. --- meteor | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meteor b/meteor index 875752cdb4..f903890e8a 100755 --- a/meteor +++ b/meteor @@ -1,6 +1,6 @@ #!/usr/bin/env bash -BUNDLE_VERSION=8.15.1.0 +BUNDLE_VERSION=8.15.1.1 # OS Check. Put here because here is where we download the precompiled # bundles that are arch specific. From 038e35357e58468d3760064d704d3c6a0b07b254 Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Tue, 19 Mar 2019 14:00:56 -0400 Subject: [PATCH 127/134] Apply reasoning from PR #10402 to package code as well. Follow-up to fb2146cb3be1228c2bcf752abd0905edc4825836. Should fix #10481. --- tools/isobuild/package-source.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/tools/isobuild/package-source.js b/tools/isobuild/package-source.js index 79e3e6eb41..260d6fa936 100644 --- a/tools/isobuild/package-source.js +++ b/tools/isobuild/package-source.js @@ -1113,11 +1113,12 @@ _.extend(PackageSource.prototype, { const anyLevelExcludes = []; - if (testModule) { + if (testModule || !isApp) { // If we have a meteor.testModule from package.json, then we don't // need to exclude tests/ directories or *.tests.js files from the // search, because we trust meteor.testModule to identify a single - // test entry point. + // test entry point. Likewise, in packages (!isApp), test files are + // added explicitly, and thus do not need to be excluded here. } else { anyLevelExcludes.push(/^tests\/$/); From 7f7545c8508f84550460a74f21f36c264728dd86 Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Tue, 19 Mar 2019 14:20:09 -0400 Subject: [PATCH 128/134] Bump package versions for 1.8.1-rc.0 release. Now that we've moved into the release candidate phase, there will be no more new features added to Meteor 1.8.1, and all remaining effort will be focused on fixing bugs. Please test the release candidate if you have time, by running the following command in any application directory: meteor update --release 1.8.1-rc.0 --- packages/autoupdate/package.js | 2 +- packages/babel-compiler/package.js | 2 +- packages/ddp-server/package.js | 2 +- packages/facebook-oauth/package.js | 2 +- packages/fetch/package.js | 2 +- packages/meteor-tool/package.js | 2 +- packages/meteor/package.js | 2 +- packages/minifier-css/package.js | 2 +- packages/minifier-js/package.js | 2 +- packages/modern-browsers/package.js | 2 +- packages/npm-mongo/package.js | 2 +- packages/reactive-dict/package.js | 2 +- packages/reload/package.js | 2 +- packages/session/package.js | 2 +- packages/standard-minifier-css/package.js | 2 +- packages/standard-minifier-js/package.js | 2 +- packages/webapp/package.js | 2 +- scripts/admin/meteor-release-experimental.json | 2 +- 18 files changed, 18 insertions(+), 18 deletions(-) diff --git a/packages/autoupdate/package.js b/packages/autoupdate/package.js index c6324003d2..cb75b6b2be 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.20' + version: '1.6.0-rc181.0' }); Package.onUse(function (api) { diff --git a/packages/babel-compiler/package.js b/packages/babel-compiler/package.js index 12b4b0b9e1..554ff7417f 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.3.4-beta181.20' + version: '7.3.4-rc181.0' }); Npm.depends({ diff --git a/packages/ddp-server/package.js b/packages/ddp-server/package.js index 5aea285ca4..1892f013b7 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.20', + version: '2.3.0-rc181.0', documentation: null }); diff --git a/packages/facebook-oauth/package.js b/packages/facebook-oauth/package.js index 295bb04f5f..afb23be713 100644 --- a/packages/facebook-oauth/package.js +++ b/packages/facebook-oauth/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "Facebook OAuth flow", - version: "1.6.0" + version: "1.6.0-rc181.0" }); Package.onUse(api => { diff --git a/packages/fetch/package.js b/packages/fetch/package.js index d329b75b68..ab886fba56 100644 --- a/packages/fetch/package.js +++ b/packages/fetch/package.js @@ -1,6 +1,6 @@ Package.describe({ name: "fetch", - version: "0.1.1-beta181.20", + version: "0.1.1-rc181.0", summary: "Isomorphic modern/legacy/Node polyfill for WHATWG fetch()", documentation: "README.md" }); diff --git a/packages/meteor-tool/package.js b/packages/meteor-tool/package.js index 50ce3a8348..a45257b685 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.20' + version: '1.8.1-rc.0' }); Package.includeTool(); diff --git a/packages/meteor/package.js b/packages/meteor/package.js index 717083a62f..76ce4ac91b 100644 --- a/packages/meteor/package.js +++ b/packages/meteor/package.js @@ -2,7 +2,7 @@ Package.describe({ summary: "Core Meteor environment", - version: '1.9.3-beta181.20' + version: '1.9.3-rc181.0' }); Package.registerBuildPlugin({ diff --git a/packages/minifier-css/package.js b/packages/minifier-css/package.js index 05cccd3d64..f48713c1bb 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.2-beta181.20' + version: '1.4.2-rc181.0' }); Npm.depends({ diff --git a/packages/minifier-js/package.js b/packages/minifier-js/package.js index 5268250eb9..0163e84889 100644 --- a/packages/minifier-js/package.js +++ b/packages/minifier-js/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "JavaScript minifier", - version: "2.4.1-beta181.20" + version: "2.4.1-rc181.0" }); Npm.depends({ diff --git a/packages/modern-browsers/package.js b/packages/modern-browsers/package.js index 57bcc752df..5e389fc09a 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.20", + version: "0.1.4-rc181.0", summary: "API for defining the boundary between modern and legacy " + "JavaScript clients", documentation: "README.md" diff --git a/packages/npm-mongo/package.js b/packages/npm-mongo/package.js index c5cc3c80d9..e8eb7435ab 100644 --- a/packages/npm-mongo/package.js +++ b/packages/npm-mongo/package.js @@ -3,7 +3,7 @@ Package.describe({ summary: "Wrapper around the mongo npm package", - version: "3.1.2-beta181.20", + version: "3.1.2-rc181.0", documentation: null }); diff --git a/packages/reactive-dict/package.js b/packages/reactive-dict/package.js index a3a425389e..50d1f0b65e 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.20' + version: '1.3.0-rc181.0' }); Package.onUse(function (api) { diff --git a/packages/reload/package.js b/packages/reload/package.js index 3f28393401..7c10e778a9 100644 --- a/packages/reload/package.js +++ b/packages/reload/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "Reload the page while preserving application state.", - version: '1.3.0-beta181.20' + version: '1.3.0-rc181.0' }); Package.onUse(function (api) { diff --git a/packages/session/package.js b/packages/session/package.js index baaa430414..39f2e1422d 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.20' + version: '1.2.0-rc181.0' }); Package.onUse(function (api) { diff --git a/packages/standard-minifier-css/package.js b/packages/standard-minifier-css/package.js index 08f056f0b9..60bd217528 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.3-beta181.20', + version: '1.5.3-rc181.0', summary: 'Standard css minifier used with Meteor apps by default.', documentation: 'README.md' }); diff --git a/packages/standard-minifier-js/package.js b/packages/standard-minifier-js/package.js index 532c16334a..53aa914b85 100644 --- a/packages/standard-minifier-js/package.js +++ b/packages/standard-minifier-js/package.js @@ -1,6 +1,6 @@ Package.describe({ name: 'standard-minifier-js', - version: '2.4.1-beta181.20', + version: '2.4.1-rc181.0', summary: 'Standard javascript minifiers used with Meteor apps by default.', documentation: 'README.md', }); diff --git a/packages/webapp/package.js b/packages/webapp/package.js index 54624b1792..de578b7a1f 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.3-beta181.20' + version: '1.7.3-rc181.0' }); 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 1bfb1c4561..4362bd58d3 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.20", + "version": "1.8.1-rc.0", "recommended": false, "official": false, "description": "Meteor" From 2b21a901a5a40f6e402b42b9dd916846a1ac8327 Mon Sep 17 00:00:00 2001 From: Christian Klaussner Date: Wed, 20 Mar 2019 00:12:12 +0100 Subject: [PATCH 129/134] Wait until Mongo primary node is writable (#10500) Using the `isMaster` command instead of checking the replica set member state is more reliable because a node can be a primary without being writable. Fixes #10381 and #9026. --- tools/runners/run-mongo.js | 67 ++++++++++---------------------------- 1 file changed, 17 insertions(+), 50 deletions(-) diff --git a/tools/runners/run-mongo.js b/tools/runners/run-mongo.js index f024c3074c..f636d22ca5 100644 --- a/tools/runners/run-mongo.js +++ b/tools/runners/run-mongo.js @@ -683,62 +683,29 @@ var launchMongo = function (options) { return; } - let wasJustSecondary = false; + let writableTimestamp = Date.now(); - // XXX timeout eventually? + // Wait until the primary is writable. If it isn't writable after one + // minute, throw an error and report the replica set status. while (!stopped) { - var status = yieldingMethod( - db.admin(), 'command', {replSetGetStatus: 1}); + const { ismaster } = yieldingMethod(db.admin(), "command", { + isMaster: 1 + }); - // See https://docs.mongodb.com/manual/reference/replica-states/ - // for information on various states + if (ismaster) { + break; + } else if (Date.now() - writableTimestamp > 60000) { + const status = yieldingMethod(db.admin(), "command", { + replSetGetStatus: 1 + }); - // Are any of the members starting up or recovering? - if (_.any(status.members, function (member) { - return member.stateStr === 'STARTUP' || - member.stateStr === 'STARTUP2' || - member.stateStr === 'RECOVERING'; - })) { - utils.sleepMs(20); - continue; + throw new Error( + "Primary not writable after one minute. Last replica set status: " + + JSON.stringify(status) + ); } - const firstMemberState = status.members[0].stateStr; - - // Is the intended primary currently a secondary? (It passes through - // that phase briefly.) - if (firstMemberState === 'SECONDARY') { - utils.sleepMs(20); - wasJustSecondary = true; - continue; - } - - // Mongo 3.2 introduced a new heartbeatIntervalMillis property - // on replica sets, used during "primary" negotiation. - // - // If the first member was _just_ promoted, we'll wait until - // the heartbeat interval has elapsed before proceeding since - // the decision is not official until the heartbeat has elapsed. - if (firstMemberState === 'PRIMARY' && wasJustSecondary) { - wasJustSecondary = false; - utils.sleepMs(status.heartbeatIntervalMillis); - continue; - } - - // Anything else for the intended primary is probably an error. - if (firstMemberState !== 'PRIMARY') { - throw Error("Unexpected Mongo status: " + JSON.stringify(status)); - } - - // Anything but secondary for the other members is probably an error. - for (var i = 1; i < status.members.length; ++i) { - if (status.members[i].stateStr !== 'SECONDARY') { - throw Error("Unexpected Mongo secondary status: " + - JSON.stringify(status)); - } - } - - break; + utils.sleepMs(50); } client.close(true /* means "the app is closing the connection" */); From 238f995ccae6da8877b8ba041254f031c2293103 Mon Sep 17 00:00:00 2001 From: Christian Klaussner Date: Wed, 20 Mar 2019 14:54:06 +0100 Subject: [PATCH 130/134] Mention `isMaster` command (#10500) in History.md (#10502) --- History.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/History.md b/History.md index 51b2f5a5c0..87e60d9259 100644 --- a/History.md +++ b/History.md @@ -81,6 +81,12 @@ N/A deployment tools. If you are not using Git, neither property will be defined. [PR #10442](https://github.com/meteor/meteor/pull/10442) +* The Meteor Tool now uses a more reliable method (the MongoDB + [`isMaster` command](https://docs.mongodb.com/manual/reference/command/isMaster/)) + to detect when the local development database has started and is ready to + accept read and write operations. + [PR #10500](https://github.com/meteor/meteor/pull/10500) + ## v1.8.0.2, 2019-01-07 ### Breaking changes From 0cfd170d40209224a3f81841208b4a699009b129 Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Wed, 20 Mar 2019 10:32:03 -0400 Subject: [PATCH 131/134] Ensure op.ts is defined before calling handleDoc. Fixes #10420. --- packages/mongo/oplog_tailing.js | 6 +++++- packages/mongo/package.js | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/packages/mongo/oplog_tailing.js b/packages/mongo/oplog_tailing.js index 1f704e26c7..8f2bc5dd76 100644 --- a/packages/mongo/oplog_tailing.js +++ b/packages/mongo/oplog_tailing.js @@ -270,7 +270,11 @@ _.extend(OplogHandle.prototype, { if (doc.o.applyOps) { // This was a successful transaction, so we need to apply the // operations that were involved. - doc.o.applyOps.forEach(handleDoc); + doc.o.applyOps.forEach(op => { + // See https://github.com/meteor/meteor/issues/10420. + op.ts = op.ts || doc.ts; + handleDoc(op); + }); return; } throw new Error("Unknown command " + EJSON.stringify(doc)); diff --git a/packages/mongo/package.js b/packages/mongo/package.js index 6fbbb9bb6c..724a2b0c8f 100644 --- a/packages/mongo/package.js +++ b/packages/mongo/package.js @@ -9,7 +9,7 @@ Package.describe({ summary: "Adaptor for using MongoDB and Minimongo over DDP", - version: '1.6.1' + version: '1.6.2' }); Npm.depends({ From 8e16365ea6e2b6bbf4bd84f429335d02206c184d Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Wed, 20 Mar 2019 11:01:40 -0400 Subject: [PATCH 132/134] Bump package versions for 1.8.1-rc.1 release. --- packages/autoupdate/package.js | 2 +- packages/babel-compiler/package.js | 2 +- packages/ddp-server/package.js | 2 +- packages/facebook-oauth/package.js | 2 +- packages/fetch/package.js | 2 +- packages/meteor-tool/package.js | 2 +- packages/meteor/package.js | 2 +- packages/minifier-css/package.js | 2 +- packages/minifier-js/package.js | 2 +- packages/modern-browsers/package.js | 2 +- packages/mongo/package.js | 2 +- packages/npm-mongo/package.js | 2 +- packages/reactive-dict/package.js | 2 +- packages/reload/package.js | 2 +- packages/session/package.js | 2 +- packages/standard-minifier-css/package.js | 2 +- packages/standard-minifier-js/package.js | 2 +- packages/webapp/package.js | 2 +- scripts/admin/meteor-release-experimental.json | 2 +- 19 files changed, 19 insertions(+), 19 deletions(-) diff --git a/packages/autoupdate/package.js b/packages/autoupdate/package.js index cb75b6b2be..b19114af37 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-rc181.0' + version: '1.6.0-rc181.1' }); Package.onUse(function (api) { diff --git a/packages/babel-compiler/package.js b/packages/babel-compiler/package.js index 554ff7417f..a04841cffb 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.3.4-rc181.0' + version: '7.3.4-rc181.1' }); Npm.depends({ diff --git a/packages/ddp-server/package.js b/packages/ddp-server/package.js index 1892f013b7..b12a945926 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-rc181.0', + version: '2.3.0-rc181.1', documentation: null }); diff --git a/packages/facebook-oauth/package.js b/packages/facebook-oauth/package.js index afb23be713..f06c78a13c 100644 --- a/packages/facebook-oauth/package.js +++ b/packages/facebook-oauth/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "Facebook OAuth flow", - version: "1.6.0-rc181.0" + version: "1.6.0-rc181.1" }); Package.onUse(api => { diff --git a/packages/fetch/package.js b/packages/fetch/package.js index ab886fba56..6502eaffd6 100644 --- a/packages/fetch/package.js +++ b/packages/fetch/package.js @@ -1,6 +1,6 @@ Package.describe({ name: "fetch", - version: "0.1.1-rc181.0", + version: "0.1.1-rc181.1", summary: "Isomorphic modern/legacy/Node polyfill for WHATWG fetch()", documentation: "README.md" }); diff --git a/packages/meteor-tool/package.js b/packages/meteor-tool/package.js index a45257b685..5c90fb2df0 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-rc.0' + version: '1.8.1-rc.1' }); Package.includeTool(); diff --git a/packages/meteor/package.js b/packages/meteor/package.js index 76ce4ac91b..10f70739d4 100644 --- a/packages/meteor/package.js +++ b/packages/meteor/package.js @@ -2,7 +2,7 @@ Package.describe({ summary: "Core Meteor environment", - version: '1.9.3-rc181.0' + version: '1.9.3-rc181.1' }); Package.registerBuildPlugin({ diff --git a/packages/minifier-css/package.js b/packages/minifier-css/package.js index f48713c1bb..3f37ddf265 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.2-rc181.0' + version: '1.4.2-rc181.1' }); Npm.depends({ diff --git a/packages/minifier-js/package.js b/packages/minifier-js/package.js index 0163e84889..be7a702da7 100644 --- a/packages/minifier-js/package.js +++ b/packages/minifier-js/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "JavaScript minifier", - version: "2.4.1-rc181.0" + version: "2.4.1-rc181.1" }); Npm.depends({ diff --git a/packages/modern-browsers/package.js b/packages/modern-browsers/package.js index 5e389fc09a..94564b3d60 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-rc181.0", + version: "0.1.4-rc181.1", summary: "API for defining the boundary between modern and legacy " + "JavaScript clients", documentation: "README.md" diff --git a/packages/mongo/package.js b/packages/mongo/package.js index 724a2b0c8f..6e6353cde7 100644 --- a/packages/mongo/package.js +++ b/packages/mongo/package.js @@ -9,7 +9,7 @@ Package.describe({ summary: "Adaptor for using MongoDB and Minimongo over DDP", - version: '1.6.2' + version: '1.6.2-rc181.1' }); Npm.depends({ diff --git a/packages/npm-mongo/package.js b/packages/npm-mongo/package.js index e8eb7435ab..7df8c892ff 100644 --- a/packages/npm-mongo/package.js +++ b/packages/npm-mongo/package.js @@ -3,7 +3,7 @@ Package.describe({ summary: "Wrapper around the mongo npm package", - version: "3.1.2-rc181.0", + version: "3.1.2-rc181.1", documentation: null }); diff --git a/packages/reactive-dict/package.js b/packages/reactive-dict/package.js index 50d1f0b65e..de9e306e54 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-rc181.0' + version: '1.3.0-rc181.1' }); Package.onUse(function (api) { diff --git a/packages/reload/package.js b/packages/reload/package.js index 7c10e778a9..14f0857603 100644 --- a/packages/reload/package.js +++ b/packages/reload/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "Reload the page while preserving application state.", - version: '1.3.0-rc181.0' + version: '1.3.0-rc181.1' }); Package.onUse(function (api) { diff --git a/packages/session/package.js b/packages/session/package.js index 39f2e1422d..b2168e5f1e 100644 --- a/packages/session/package.js +++ b/packages/session/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "Session variable", - version: '1.2.0-rc181.0' + version: '1.2.0-rc181.1' }); Package.onUse(function (api) { diff --git a/packages/standard-minifier-css/package.js b/packages/standard-minifier-css/package.js index 60bd217528..1c4924ac88 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.3-rc181.0', + version: '1.5.3-rc181.1', summary: 'Standard css minifier used with Meteor apps by default.', documentation: 'README.md' }); diff --git a/packages/standard-minifier-js/package.js b/packages/standard-minifier-js/package.js index 53aa914b85..4a8aaa8d92 100644 --- a/packages/standard-minifier-js/package.js +++ b/packages/standard-minifier-js/package.js @@ -1,6 +1,6 @@ Package.describe({ name: 'standard-minifier-js', - version: '2.4.1-rc181.0', + version: '2.4.1-rc181.1', summary: 'Standard javascript minifiers used with Meteor apps by default.', documentation: 'README.md', }); diff --git a/packages/webapp/package.js b/packages/webapp/package.js index de578b7a1f..22192187d8 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.3-rc181.0' + version: '1.7.3-rc181.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 4362bd58d3..1e09057fff 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-rc.0", + "version": "1.8.1-rc.1", "recommended": false, "official": false, "description": "Meteor" From 8b0256e4e794556eb2d326d4b93bfb5d4737ad35 Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Tue, 2 Apr 2019 18:09:24 -0400 Subject: [PATCH 133/134] Update History.md before final Meteor 1.8.1 release. --- History.md | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/History.md b/History.md index 87e60d9259..c415b5d0ea 100644 --- a/History.md +++ b/History.md @@ -1,9 +1,12 @@ ## v.NEXT -## v1.8.1, TBD +## v1.8.1, 2019-04-03 ### Breaking changes -N/A + +* Although we are not aware of any specific backwards incompatibilities, + the major upgrade of `cordova-android` from 6.4.0 to 7.1.4 likely + deserves extra attention, if you use Cordova to build Android apps. ### Migration Steps N/A @@ -59,6 +62,13 @@ N/A * The `cordova-android` and `cordova-ios` npm dependencies have been updated to 7.1.4 (from 6.4.0) and 4.5.5 (from 4.5.4), respectively. +* Build performance has improved (especially on Windows) thanks to + additional caching implemented by [@zodern](https://github.com/zodern) + in PRs [#10399](https://github.com/meteor/meteor/pull/10399), + [#10452](https://github.com/meteor/meteor/pull/10452), + [#10453](https://github.com/meteor/meteor/pull/10453), and + [#10454](https://github.com/meteor/meteor/pull/10454). + * The `meteor mongo` command no longer uses the `--quiet` option, so the normal startup text will be displayed, albeit without the banner about Mongo's free monitoring service. See this @@ -87,6 +97,12 @@ N/A accept read and write operations. [PR #10500](https://github.com/meteor/meteor/pull/10500) +* Setting the `x-no-compression` request header will prevent the `webapp` + package from compressing responses with `gzip`, which may be useful if + your Meteor app is behind a proxy that compresses resources with another + compression algorithm, such as [brotli](https://github.com/google/brotli). + [PR #10378](https://github.com/meteor/meteor/pull/10378) + ## v1.8.0.2, 2019-01-07 ### Breaking changes From d376276158bedf30f61d4643db2da659b8aa84f2 Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Tue, 2 Apr 2019 18:17:08 -0400 Subject: [PATCH 134/134] Bump package versions for the official 1.8.1 release. --- packages/autoupdate/package.js | 2 +- packages/babel-compiler/package.js | 2 +- packages/ddp-server/package.js | 2 +- packages/facebook-oauth/package.js | 2 +- packages/fetch/package.js | 2 +- packages/meteor-tool/package.js | 2 +- packages/meteor/package.js | 2 +- packages/minifier-css/package.js | 2 +- packages/minifier-js/package.js | 2 +- packages/modern-browsers/package.js | 2 +- packages/mongo/package.js | 2 +- packages/npm-mongo/package.js | 2 +- packages/reactive-dict/package.js | 2 +- packages/reload/package.js | 2 +- packages/session/package.js | 2 +- packages/standard-minifier-css/package.js | 2 +- packages/standard-minifier-js/package.js | 2 +- packages/webapp/package.js | 2 +- scripts/admin/meteor-release-official.json | 5 +++-- 19 files changed, 21 insertions(+), 20 deletions(-) diff --git a/packages/autoupdate/package.js b/packages/autoupdate/package.js index b19114af37..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.6.0-rc181.1' + version: '1.6.0' }); Package.onUse(function (api) { diff --git a/packages/babel-compiler/package.js b/packages/babel-compiler/package.js index a04841cffb..0fc349846d 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.3.4-rc181.1' + version: '7.3.4' }); Npm.depends({ diff --git a/packages/ddp-server/package.js b/packages/ddp-server/package.js index b12a945926..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.3.0-rc181.1', + version: '2.3.0', documentation: null }); diff --git a/packages/facebook-oauth/package.js b/packages/facebook-oauth/package.js index f06c78a13c..295bb04f5f 100644 --- a/packages/facebook-oauth/package.js +++ b/packages/facebook-oauth/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "Facebook OAuth flow", - version: "1.6.0-rc181.1" + version: "1.6.0" }); Package.onUse(api => { diff --git a/packages/fetch/package.js b/packages/fetch/package.js index 6502eaffd6..9c3969ff7b 100644 --- a/packages/fetch/package.js +++ b/packages/fetch/package.js @@ -1,6 +1,6 @@ Package.describe({ name: "fetch", - version: "0.1.1-rc181.1", + version: "0.1.1", summary: "Isomorphic modern/legacy/Node polyfill for WHATWG fetch()", documentation: "README.md" }); diff --git a/packages/meteor-tool/package.js b/packages/meteor-tool/package.js index 5c90fb2df0..7ae9f7b667 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-rc.1' + version: '1.8.1' }); Package.includeTool(); diff --git a/packages/meteor/package.js b/packages/meteor/package.js index 10f70739d4..0b2c1d2877 100644 --- a/packages/meteor/package.js +++ b/packages/meteor/package.js @@ -2,7 +2,7 @@ Package.describe({ summary: "Core Meteor environment", - version: '1.9.3-rc181.1' + version: '1.9.3' }); Package.registerBuildPlugin({ diff --git a/packages/minifier-css/package.js b/packages/minifier-css/package.js index 3f37ddf265..1bfcbb840a 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.2-rc181.1' + version: '1.4.2' }); Npm.depends({ diff --git a/packages/minifier-js/package.js b/packages/minifier-js/package.js index be7a702da7..e6c8fab292 100644 --- a/packages/minifier-js/package.js +++ b/packages/minifier-js/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "JavaScript minifier", - version: "2.4.1-rc181.1" + version: "2.4.1" }); Npm.depends({ diff --git a/packages/modern-browsers/package.js b/packages/modern-browsers/package.js index 94564b3d60..854db1bb5b 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-rc181.1", + version: "0.1.4", summary: "API for defining the boundary between modern and legacy " + "JavaScript clients", documentation: "README.md" diff --git a/packages/mongo/package.js b/packages/mongo/package.js index 6e6353cde7..724a2b0c8f 100644 --- a/packages/mongo/package.js +++ b/packages/mongo/package.js @@ -9,7 +9,7 @@ Package.describe({ summary: "Adaptor for using MongoDB and Minimongo over DDP", - version: '1.6.2-rc181.1' + version: '1.6.2' }); Npm.depends({ diff --git a/packages/npm-mongo/package.js b/packages/npm-mongo/package.js index 7df8c892ff..656966a6b6 100644 --- a/packages/npm-mongo/package.js +++ b/packages/npm-mongo/package.js @@ -3,7 +3,7 @@ Package.describe({ summary: "Wrapper around the mongo npm package", - version: "3.1.2-rc181.1", + version: "3.1.2", documentation: null }); diff --git a/packages/reactive-dict/package.js b/packages/reactive-dict/package.js index de9e306e54..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.3.0-rc181.1' + version: '1.3.0' }); Package.onUse(function (api) { diff --git a/packages/reload/package.js b/packages/reload/package.js index 14f0857603..c7269238ca 100644 --- a/packages/reload/package.js +++ b/packages/reload/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "Reload the page while preserving application state.", - version: '1.3.0-rc181.1' + version: '1.3.0' }); Package.onUse(function (api) { diff --git a/packages/session/package.js b/packages/session/package.js index b2168e5f1e..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-rc181.1' + version: '1.2.0' }); Package.onUse(function (api) { diff --git a/packages/standard-minifier-css/package.js b/packages/standard-minifier-css/package.js index 1c4924ac88..76871c97f9 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.3-rc181.1', + version: '1.5.3', summary: 'Standard css minifier used with Meteor apps by default.', documentation: 'README.md' }); diff --git a/packages/standard-minifier-js/package.js b/packages/standard-minifier-js/package.js index 4a8aaa8d92..6f98cf77c3 100644 --- a/packages/standard-minifier-js/package.js +++ b/packages/standard-minifier-js/package.js @@ -1,6 +1,6 @@ Package.describe({ name: 'standard-minifier-js', - version: '2.4.1-rc181.1', + version: '2.4.1', summary: 'Standard javascript minifiers used with Meteor apps by default.', documentation: 'README.md', }); diff --git a/packages/webapp/package.js b/packages/webapp/package.js index 22192187d8..8a0609e5c9 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.3-rc181.1' + version: '1.7.3' }); 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 286e57026e..fe8a051929 100644 --- a/scripts/admin/meteor-release-official.json +++ b/scripts/admin/meteor-release-official.json @@ -1,11 +1,12 @@ { "track": "METEOR", - "version": "1.8.0.2", + "version": "1.8.1", "recommended": false, "official": true, "patchFrom": [ "1.8", - "1.8.0.1" + "1.8.0.1", + "1.8.0.2" ], "description": "The Official Meteor Distribution" }