From 75efa9c22e769a03278280878799ee5066d2482d Mon Sep 17 00:00:00 2001 From: Per Bergland Date: Fri, 6 Jan 2023 18:33:48 +0100 Subject: [PATCH 001/152] Remove Blaze dependency and types that live in blaze.d.ts --- packages/meteor/meteor.d.ts | 21 --------------------- 1 file changed, 21 deletions(-) diff --git a/packages/meteor/meteor.d.ts b/packages/meteor/meteor.d.ts index eb08d994bd..98dcded000 100644 --- a/packages/meteor/meteor.d.ts +++ b/packages/meteor/meteor.d.ts @@ -1,6 +1,5 @@ import { Mongo } from 'meteor/mongo'; import { EJSONable, EJSONableProperty } from 'meteor/ejson'; -import { Blaze } from 'meteor/blaze'; import { DDP } from 'meteor/ddp'; export type global_Error = Error; @@ -372,26 +371,6 @@ export namespace Meteor { ): void; /** Login **/ - /** Event **/ - interface Event { - type: string; - target: HTMLElement; - currentTarget: HTMLElement; - which: number; - stopPropagation(): void; - stopImmediatePropagation(): void; - preventDefault(): void; - isPropagationStopped(): boolean; - isImmediatePropagationStopped(): boolean; - isDefaultPrevented(): boolean; - } - interface EventHandlerFunction extends Function { - (event?: Meteor.Event, templateInstance?: Blaze.TemplateInstance): void; - } - interface EventMap { - [id: string]: Meteor.EventHandlerFunction; - } - /** Event **/ /** Connection **/ function reconnect(): void; From 1fcb67bc91b6fde1c2be4f98feef9bdccc0d1114 Mon Sep 17 00:00:00 2001 From: Sean Hayes Date: Sat, 14 Jan 2023 17:45:35 +0100 Subject: [PATCH 002/152] Fixes vue tutorial link --- tools/static-assets/skel-vue/server/main.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/static-assets/skel-vue/server/main.js b/tools/static-assets/skel-vue/server/main.js index 44f7bc045b..e5ef48eccc 100644 --- a/tools/static-assets/skel-vue/server/main.js +++ b/tools/static-assets/skel-vue/server/main.js @@ -10,7 +10,7 @@ Meteor.startup(async () => { if ((await LinksCollection.find().countAsync()) === 0) { await insertLink({ title: 'Do the Tutorial', - url: 'https://www.solidjs.com/tutorial/introduction_basics', + url: 'https://vuejs.org/guide/quick-start.html', }) await insertLink({ From 52054d0a134f9e9f2f93dd564761e97a70075321 Mon Sep 17 00:00:00 2001 From: Sean Hayes Date: Sat, 14 Jan 2023 17:47:18 +0100 Subject: [PATCH 003/152] Revert "Fixes vue tutorial link" This reverts commit e15869e8f413cc15db1e34371b69d8a9be8e7e17. --- tools/static-assets/skel-vue/server/main.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/static-assets/skel-vue/server/main.js b/tools/static-assets/skel-vue/server/main.js index e5ef48eccc..44f7bc045b 100644 --- a/tools/static-assets/skel-vue/server/main.js +++ b/tools/static-assets/skel-vue/server/main.js @@ -10,7 +10,7 @@ Meteor.startup(async () => { if ((await LinksCollection.find().countAsync()) === 0) { await insertLink({ title: 'Do the Tutorial', - url: 'https://vuejs.org/guide/quick-start.html', + url: 'https://www.solidjs.com/tutorial/introduction_basics', }) await insertLink({ From 7c5c5b05b7bb5b3983bfefd0fe65d24534090a0b Mon Sep 17 00:00:00 2001 From: Sean Hayes Date: Sat, 14 Jan 2023 18:58:06 +0100 Subject: [PATCH 004/152] Fixes #12439 wrong tutorial link for vue Fixes #12439 --- tools/static-assets/skel-vue/server/main.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/static-assets/skel-vue/server/main.js b/tools/static-assets/skel-vue/server/main.js index 44f7bc045b..e5ef48eccc 100644 --- a/tools/static-assets/skel-vue/server/main.js +++ b/tools/static-assets/skel-vue/server/main.js @@ -10,7 +10,7 @@ Meteor.startup(async () => { if ((await LinksCollection.find().countAsync()) === 0) { await insertLink({ title: 'Do the Tutorial', - url: 'https://www.solidjs.com/tutorial/introduction_basics', + url: 'https://vuejs.org/guide/quick-start.html', }) await insertLink({ From ac474b92d8aca607b7dc313289a39216d1151a8d Mon Sep 17 00:00:00 2001 From: Jan Dvorak Date: Thu, 19 Jan 2023 17:52:12 +0900 Subject: [PATCH 005/152] Deprecate appcache package --- docs/source/packages/appcache.md | 2 ++ packages/appcache/CHANGELOG.md | 4 ++++ packages/appcache/package.js | 3 ++- 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/docs/source/packages/appcache.md b/docs/source/packages/appcache.md index 92914ab81c..d6ff143a07 100644 --- a/docs/source/packages/appcache.md +++ b/docs/source/packages/appcache.md @@ -3,6 +3,8 @@ title: appcache description: Documentation of Meteor's `appcache` package. --- +> This package has been deprecated since [applicationCache](https://developer.mozilla.org/en-US/docs/Web/API/Window/applicationCache), which this package relies on, has been deprecated and is not available on the latest browsers. Plaese consider using [Service Worker](https://developer.mozilla.org/en-US/docs/Web/API/Service_Worker_API) as an replacement. + The `appcache` package stores the static parts of a Meteor application (the client side Javascript, HTML, CSS, and images) in the browser's [application cache](https://en.wikipedia.org/wiki/AppCache). To enable diff --git a/packages/appcache/CHANGELOG.md b/packages/appcache/CHANGELOG.md index 415992746a..986ac82764 100644 --- a/packages/appcache/CHANGELOG.md +++ b/packages/appcache/CHANGELOG.md @@ -1,5 +1,9 @@ # CHANGELOG +## v1.2.8, 2022-01-19 + +* Package has been deprecated since [applicationCache](https://developer.mozilla.org/en-US/docs/Web/API/Window/applicationCache), which this package relies on, has been deprecated and is not available on the latest browsers. + ## v1.2.3, 2019-12-13 * Rewrite appcache resources exceed recommended cache size debug message. Fixes [Issue #10321](https://github.com/meteor/meteor/issues/10321). Thanks [@CaptainN](https://github.com/CaptainN) diff --git a/packages/appcache/package.js b/packages/appcache/package.js index f2bbc8679c..c132f792f8 100644 --- a/packages/appcache/package.js +++ b/packages/appcache/package.js @@ -1,6 +1,7 @@ Package.describe({ summary: "Enable the application cache in the browser", - version: "1.2.7", + version: "1.2.8", + deprecated: true, }); Package.onUse(api => { From 2c99effec864641e8f860b62dc0780c096c1748d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rados=C5=82aw=20Miernik?= Date: Fri, 20 Jan 2023 17:12:38 +0100 Subject: [PATCH 006/152] Optimized makeLookupFunction. --- packages/minimongo/common.js | 36 +++++++++++++++++------------------- 1 file changed, 17 insertions(+), 19 deletions(-) diff --git a/packages/minimongo/common.js b/packages/minimongo/common.js index 82d966fb2b..7a08e569b1 100644 --- a/packages/minimongo/common.js +++ b/packages/minimongo/common.js @@ -972,21 +972,19 @@ export function makeLookupFunction(key, options = {}) { makeLookupFunction(parts.slice(1).join('.'), options) ); - const omitUnnecessaryFields = result => { - if (!result.dontIterate) { - delete result.dontIterate; - } - - if (result.arrayIndices && !result.arrayIndices.length) { - delete result.arrayIndices; - } - - return result; - }; + function buildResult(arrayIndices, dontIterate, value) { + return arrayIndices && arrayIndices.length + ? dontIterate + ? [{ arrayIndices, dontIterate, value }] + : [{ arrayIndices, value }] + : dontIterate + ? [{ dontIterate, value }] + : [{ value }]; + } // Doc will always be a plain object or an array. // apply an explicit numeric index, an array. - return (doc, arrayIndices = []) => { + return (doc, arrayIndices) => { if (Array.isArray(doc)) { // If we're being asked to do an invalid lookup into an array (non-integer // or out-of-bounds), return no results (which is different from returning @@ -998,7 +996,7 @@ export function makeLookupFunction(key, options = {}) { // Remember that we used this array index. Include an 'x' to indicate that // the previous index came from being considered as an explicit array // index (not branching). - arrayIndices = arrayIndices.concat(+firstPart, 'x'); + arrayIndices = arrayIndices ? arrayIndices.concat(+firstPart, 'x') : [+firstPart, 'x']; } // Do our first lookup. @@ -1017,11 +1015,11 @@ export function makeLookupFunction(key, options = {}) { // selectors to iterate over it. eg, {'a.0': 5} does not match {a: [[5]]}. // So in that case, we mark the return value as 'don't iterate'. if (!lookupRest) { - return [omitUnnecessaryFields({ + return buildResult( arrayIndices, - dontIterate: Array.isArray(doc) && Array.isArray(firstLevel), - value: firstLevel - })]; + Array.isArray(doc) && Array.isArray(firstLevel), + firstLevel, + ); } // We need to dig deeper. But if we can't, because what we've found is not @@ -1035,7 +1033,7 @@ export function makeLookupFunction(key, options = {}) { return []; } - return [omitUnnecessaryFields({arrayIndices, value: undefined})]; + return buildResult(arrayIndices, false, undefined); } const result = []; @@ -1067,7 +1065,7 @@ export function makeLookupFunction(key, options = {}) { !(isNumericKey(parts[1]) && options.forSort)) { firstLevel.forEach((branch, arrayIndex) => { if (LocalCollection._isPlainObject(branch)) { - appendToResult(lookupRest(branch, arrayIndices.concat(arrayIndex))); + appendToResult(lookupRest(branch, arrayIndices ? arrayIndices.concat(arrayIndex) : [arrayIndex])); } }); } From f3e78bf89259c12ebed5903f24c988712a9cc4d0 Mon Sep 17 00:00:00 2001 From: Igor Loskutov Date: Sat, 21 Jan 2023 10:54:59 +0700 Subject: [PATCH 007/152] Bump Typescript to v4.9.4 --- .../eslint-plugin-meteor/scripts/dev-bundle-tool-package.js | 4 ++-- npm-packages/meteor-babel/package.json | 4 ++-- packages/babel-compiler/package.js | 4 ++-- packages/typescript/package.js | 2 +- scripts/dev-bundle-tool-package.js | 4 ++-- tools/static-assets/skel-typescript/package.json | 2 +- 6 files changed, 10 insertions(+), 10 deletions(-) diff --git a/npm-packages/eslint-plugin-meteor/scripts/dev-bundle-tool-package.js b/npm-packages/eslint-plugin-meteor/scripts/dev-bundle-tool-package.js index 1b0fb50666..c048959e0b 100644 --- a/npm-packages/eslint-plugin-meteor/scripts/dev-bundle-tool-package.js +++ b/npm-packages/eslint-plugin-meteor/scripts/dev-bundle-tool-package.js @@ -14,8 +14,8 @@ var packageJson = { pacote: "https://github.com/meteor/pacote/tarball/a81b0324686e85d22c7688c47629d4009000e8b8", "node-gyp": "8.0.0", "node-pre-gyp": "0.15.0", - typescript: "4.7.4", - "@meteorjs/babel": "7.18.0-beta.5", + typescript: "4.9.4", + "@meteorjs/babel": "7.18.0-beta.6", // Keep the versions of these packages consistent with the versions // found in dev-bundle-server-package.js. "meteor-promise": "0.9.0", diff --git a/npm-packages/meteor-babel/package.json b/npm-packages/meteor-babel/package.json index 27cccf1c73..c52337d855 100644 --- a/npm-packages/meteor-babel/package.json +++ b/npm-packages/meteor-babel/package.json @@ -1,7 +1,7 @@ { "name": "@meteorjs/babel", "author": "Meteor ", - "version": "7.18.0-beta.5", + "version": "7.18.0-beta.6", "license": "MIT", "description": "Babel wrapper package for use with Meteor", "keywords": [ @@ -47,7 +47,7 @@ "convert-source-map": "^1.6.0", "lodash": "^4.17.21", "meteor-babel-helpers": "0.0.3", - "typescript": "~4.7.4" + "typescript": "~4.9.4" }, "devDependencies": { "@babel/plugin-proposal-decorators": "7.14.5", diff --git a/packages/babel-compiler/package.js b/packages/babel-compiler/package.js index a78caae77c..dd37ec9f5f 100644 --- a/packages/babel-compiler/package.js +++ b/packages/babel-compiler/package.js @@ -1,11 +1,11 @@ Package.describe({ name: "babel-compiler", summary: "Parser/transpiler for ECMAScript 2015+ syntax", - version: '7.10.2' + version: '7.10.3' }); Npm.depends({ - '@meteorjs/babel': '7.18.0-beta.5', + '@meteorjs/babel': '7.18.0-beta.6', 'json5': '2.1.1' }); diff --git a/packages/typescript/package.js b/packages/typescript/package.js index 34caaba00c..d0403b86c4 100644 --- a/packages/typescript/package.js +++ b/packages/typescript/package.js @@ -1,6 +1,6 @@ Package.describe({ name: 'typescript', - version: '4.7.4', + version: '4.9.4', summary: 'Compiler plugin that compiles TypeScript and ECMAScript in .ts and .tsx files', documentation: 'README.md', diff --git a/scripts/dev-bundle-tool-package.js b/scripts/dev-bundle-tool-package.js index 3145db753e..4b8999ed25 100644 --- a/scripts/dev-bundle-tool-package.js +++ b/scripts/dev-bundle-tool-package.js @@ -14,8 +14,8 @@ var packageJson = { pacote: "https://github.com/meteor/pacote/tarball/a81b0324686e85d22c7688c47629d4009000e8b8", "node-gyp": "8.0.0", "node-pre-gyp": "0.15.0", - typescript: "4.7.4", - "@meteorjs/babel": "7.18.0-beta.5", + typescript: "4.9.4", + "@meteorjs/babel": "7.18.0-beta.6", // Keep the versions of these packages consistent with the versions // found in dev-bundle-server-package.js. "meteor-promise": "0.9.0", diff --git a/tools/static-assets/skel-typescript/package.json b/tools/static-assets/skel-typescript/package.json index 947a2f436c..78ef0ea3e6 100644 --- a/tools/static-assets/skel-typescript/package.json +++ b/tools/static-assets/skel-typescript/package.json @@ -18,7 +18,7 @@ "@types/mocha": "^8.2.3", "@types/react": "^18.0.26", "@types/react-dom": "^18.0.10", - "typescript": "^4.7.4" + "typescript": "^4.9.4" }, "meteor": { "mainModule": { From e756c5a62bf4828f8eed9dea69c858ca674ddbc2 Mon Sep 17 00:00:00 2001 From: Evan Broder Date: Mon, 23 Jan 2023 09:11:50 -0800 Subject: [PATCH 008/152] mongo: In async wrappers, catch exceptions and reject Previously, if an exception was thrown in an async method, it would not be caught, which is unusual in an async method. Instead, catch the exception and return it as a rejected promise. --- packages/minimongo/cursor.js | 6 +++++- packages/mongo/collection.js | 6 +++++- packages/mongo/mongo_driver.js | 6 +++++- 3 files changed, 15 insertions(+), 3 deletions(-) diff --git a/packages/minimongo/cursor.js b/packages/minimongo/cursor.js index 0c119a8f81..aaf43c80e2 100644 --- a/packages/minimongo/cursor.js +++ b/packages/minimongo/cursor.js @@ -520,6 +520,10 @@ export default class Cursor { ASYNC_CURSOR_METHODS.forEach(method => { const asyncName = getAsyncMethodName(method); Cursor.prototype[asyncName] = function(...args) { - return Promise.resolve(this[method].apply(this, args)); + try { + return Promise.resolve(this[method].apply(this, args)); + } catch (error) { + return Promise.reject(error); + } }; }); diff --git a/packages/mongo/collection.js b/packages/mongo/collection.js index d5b99edae4..6459e3e5f4 100644 --- a/packages/mongo/collection.js +++ b/packages/mongo/collection.js @@ -919,6 +919,10 @@ function popCallbackFromArgs(args) { ASYNC_COLLECTION_METHODS.forEach(methodName => { const methodNameAsync = getAsyncMethodName(methodName); Mongo.Collection.prototype[methodNameAsync] = function(...args) { - return Promise.resolve(this[methodName](...args)); + try { + return Promise.resolve(this[methodName](...args)); + } catch (error) { + return Promise.reject(error); + } }; }); diff --git a/packages/mongo/mongo_driver.js b/packages/mongo/mongo_driver.js index 7b7b24ec00..cad7529939 100644 --- a/packages/mongo/mongo_driver.js +++ b/packages/mongo/mongo_driver.js @@ -945,7 +945,11 @@ Cursor.prototype.count = function () { const methodNameAsync = getAsyncMethodName(methodName); Cursor.prototype[methodNameAsync] = function (...args) { - return Promise.resolve(this[methodName](...args)); + try { + return Promise.resolve(this[methodName](...args)); + } catch (error) { + return Promise.reject(error); + } }; }); From 86ea32240445f74073f4790f85e6e1b755b3d497 Mon Sep 17 00:00:00 2001 From: Gabriel Grubba Date: Tue, 24 Jan 2023 14:41:24 -0300 Subject: [PATCH 009/152] docs: updated history.md --- docs/history.md | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/docs/history.md b/docs/history.md index da924afab4..8d8da618f9 100644 --- a/docs/history.md +++ b/docs/history.md @@ -1,3 +1,38 @@ +## v2.11.0, 2023-02-XX + +### Highlights + +* MongoDB Server 6.x Support +* Embedded Mongo now uses MongoDB 6.0.3 +* Optimized makeLookupFunction by [radekmie](https://github.com/radekmie) [PR](https://github.com/meteor/meteor/pull/12462) + +#### Breaking Changes + +N/A + +#### Internal API changes + +N/A + +#### Migration Steps + +N/A + +#### Meteor Version Release + + +* `Command line`: + - Corrected typo in vue skeleton + +#### Special thanks to + +- [@radekmie](https://github.com/radekmie). + + +For making this great framework even better! + + + ## v2.10.0, 2023-01-13 ### Highlights From 12f6de2f2a4e2fa4ff1a0145ce592c79c7ba5d91 Mon Sep 17 00:00:00 2001 From: Gabriel Grubba Date: Tue, 24 Jan 2023 14:42:04 -0300 Subject: [PATCH 010/152] docs: created 2.11 migration guide --- guide/source/2.11-migration.md | 100 +++++++++++++++++++++++++++++++++ 1 file changed, 100 insertions(+) create mode 100644 guide/source/2.11-migration.md diff --git a/guide/source/2.11-migration.md b/guide/source/2.11-migration.md new file mode 100644 index 0000000000..fd33181392 --- /dev/null +++ b/guide/source/2.11-migration.md @@ -0,0 +1,100 @@ +--- +title: Migrating to Meteor 2.11 +description: How to migrate your application to Meteor 2.11. +--- + +Most of the new features in Meteor 2.11 are either applied directly behind the scenes (in a backwards compatible manner) or are opt-in. For a complete breakdown of the changes, please refer to the [changelog](http://docs.meteor.com/changelog.html). + +The above being said, there are a few items that you should implement to have easier time in the future. + +

MongoDB 6.0.3

+ +#### Introduction +Meteor before 2.11 was supporting MongoDB Server 5.x, starting from this version we've upgraded to MongoDB Node.js driver from version 4.12.1 to 4.13 + +This change was necessary at the time of writing this guide (January 2023) as MongoDB Atlas is going to migrate automatically all the clusters in the plans Atlas M0 (Free Cluster), M2, and M5 to MongoDB 6.0 in February 2022, but this change would be necessary anyway as this is now the latest version of MongoDB Server. The migration in the M0, M2 and M5 is just a sign from MongoDB that they believe MongoDB 5.0 should be the version used by everybody as soon as possible. + +If you are running on MongoDB Atlas and in one of these plans you have to run Meteor 2.11 in order to connect and interact with your MongoDB properly as your MongoDB is going to be upgraded to 6.0 in February. If you are not running at these plans, you can continue to use your MongoDB at previous versions and you can use previous versions of Meteor still without any problems. + +An important note is that we have migrated everything supported by Meteor to be compatible with MongoDB 6.x and also MongoDB Node.js Driver 4.x but this doesn't include, as you should expect, what you do in your code or package using `rawCollection`. `rawCollection` is a way for Meteor to provide you the freedom to interact with MongoDB driver but that also comes with the responsibility to keep your code up-to-date with the version of the driver used by Meteor. + +That said, we encourage everybody to run the latest version of Meteor as soon as possible as you can benefit from a new MongoDB driver and also other features that we are always adding to Meteor. + +This version of Meteor is also compatible with previous version of MongoDB server, so you can continue using the latest Meteor without any issues even if you are not running MongoDB 6.x yet. You can check [here](https://docs.mongodb.com/drivers/node/current/compatibility/) which versions of MongoDB server the Node.js driver in the version 4.13.0 supports and as a consequence these are the versions of MongoDB server supported by Meteor 2.11 as well. In short, Meteor 2.11 supports these versions of MongoDB server:6.1, 6.0, 5.0, 4.4, 4.2, 4.0, 3.6. + +#### Embedded MongoDB + +If you are using Embedded MongoDB in your local environment you should run `meteor reset` in order to have your database working properly after this upgrade. `meteor reset` is going to remove all the data in your local database. + +#### ```meteor mongo``` + +From MongoDB version 6.X, the `mongo` shell is not available anymore. It can be seen [here](https://www.mongodb.com/docs/manual/release-notes/6.0-compatibility/#legacy-mongo-shell-removed for more info. +For this reason the `meteor mongo` command is not going to work anymore. If you are using this command, you should use the `mongosh` command instead. +We will be working for a future version of Meteor to have `meteor mongo` working again with `mongosh` but for now you can use `mongosh` directly. + +#### Removed Operators + +The following operators have been removed from MongoDB 6.0.3 retrieved from the [MongoDB 6.0.3 Release Notes](https://www.mongodb.com/docs/manual/release-notes/6.0-compatibility/#removed-operators): + +- $comment: Use [cursor.comment()](https://www.mongodb.com/docs/manual/reference/method/cursor.comment/#mongodb-method-cursor.comment) +- $explain: Use [cursor.explain()](https://www.mongodb.com/docs/manual/reference/method/cursor.explain/#mongodb-method-cursor.explain) +- $hint: Use [cursor.hint()](https://www.mongodb.com/docs/manual/reference/method/cursor.hint/#mongodb-method-cursor.hint)) +- $max: Use [cursor.max()](https://www.mongodb.com/docs/manual/reference/method/cursor.max/#mongodb-method-cursor.max) +- $maxTimeMS: Use [cursor.maxTimeMS()](https://www.mongodb.com/docs/manual/reference/method/cursor.maxTimeMS/#mongodb-method-cursor.maxTimeMS) +- $min: Use [cursor.min()](https://www.mongodb.com/docs/manual/reference/method/cursor.min/#mongodb-method-cursor.min) +- $orderby: Use [cursor.sort()](https://www.mongodb.com/docs/manual/reference/method/cursor.sort/#mongodb-method-cursor.sort) +- $query: See [Cursor Methods](https://www.mongodb.com/docs/manual/reference/method/js-cursor/#std-label-doc-cursor-methods) +- $returnKey: Use [cursor.returnKey()](https://www.mongodb.com/docs/manual/reference/method/cursor.returnKey/#mongodb-method-cursor.returnKey) +- $showDiskLoc: Use cursor.showRecordId(https://www.mongodb.com/docs/manual/reference/method/cursor.returnKey/#mongodb-method-cursor.showRecordId) +- db.getLastError(): See [Legacy Opcodes Removed](https://www.mongodb.com/docs/manual/release-notes/6.0-compatibility/#std-label-legacy-op-codes-removed) +- db.getLastErrorObj(): See [Legacy Opcodes Removed](https://www.mongodb.com/docs/manual/release-notes/6.0-compatibility/#std-label-legacy-op-codes-removed) +- getLastError: See [Legacy Opcodes Removed](https://www.mongodb.com/docs/manual/release-notes/6.0-compatibility/#std-label-legacy-op-codes-removed) + +We will remove reference of them in our typescript definitions. + +#### Changes +This is still work in progress. Will be updated when we have more information.(when beta phase has ended) + +Below we describe a few common cases in this migration: + +#### 1) Same version of MongoDB server + +If you are not changing your MongoDB server version you don't need to change anything in your code, but as we did many changes on how Meteor interact with MongoDB in order to be compatible with the new driver we recommend that you test your application carefully before releasing to production with this Meteor version. + +We've made many tests in real applications and also in our automatic tests suite, we believe we've fixed all the issues that we found along the way but Meteor interaction with MongoDB is so broad and open that maybe you have different use cases that could lead to different issues. + +Again, we are not aware of any issues that were introduced by these changes, but it's important that you check your app behavior, especially if you have places where you believe you are not using MongoDB in a traditional way. + +#### 2) Migrating from MongoDB 5.x to MongoDB 6.x + +TODO + + +

Migrating from a version older than 2.10?

+ +If you're migrating from a version of Meteor older than Meteor 2.10, there may be important considerations not listed in this guide. Please review the older migration guides for details: + +* [Migrating to Meteor 2.10](2.10-migration.html) (from 2.9) +* [Migrating to Meteor 2.9](2.9-migration.html) (from 2.8) +* [Migrating to Meteor 2.8](2.8-migration.html) (from 2.7) +* [Migrating to Meteor 2.7](2.7-migration.html) (from 2.6) +* [Migrating to Meteor 2.6](2.6-migration.html) (from 2.5) +* [Migrating to Meteor 2.5](2.5-migration.html) (from 2.4) +* [Migrating to Meteor 2.4](2.4-migration.html) (from 2.3) +* [Migrating to Meteor 2.3](2.3-migration.html) (from 2.2) +* [Migrating to Meteor 2.2](2.2-migration.html) (from 2.0) +* [Migrating to Meteor 2.0](2.0-migration.html) (from 1.12) +* [Migrating to Meteor 1.12](1.12-migration.html) (from 1.11) +* [Migrating to Meteor 1.11](1.11-migration.html) (from 1.10.2) +* [Migrating to Meteor 1.10.2](1.10.2-migration.html) (from 1.10) +* [Migrating to Meteor 1.10](1.10-migration.html) (from 1.9.3) +* [Migrating to Meteor 1.9.3](1.9.3-migration.html) (from 1.9) +* [Migrating to Meteor 1.9](1.9-migration.html) (from 1.8.3) +* [Migrating to Meteor 1.8.3](1.8.3-migration.html) (from 1.8.2) +* [Migrating to Meteor 1.8.2](1.8.2-migration.html) (from 1.8) +* [Migrating to Meteor 1.8](1.8-migration.html) (from 1.7) +* [Migrating to Meteor 1.7](1.7-migration.html) (from 1.6) +* [Migrating to Meteor 1.6](1.6-migration.html) (from 1.5) +* [Migrating to Meteor 1.5](1.5-migration.html) (from 1.4) +* [Migrating to Meteor 1.4](1.4-migration.html) (from 1.3) +* [Migrating to Meteor 1.3](1.3-migration.html) (from 1.2) From 61fc68123b150be399f635cd3f6e49a23eb014e3 Mon Sep 17 00:00:00 2001 From: Gabriel Grubba Date: Tue, 24 Jan 2023 14:42:27 -0300 Subject: [PATCH 011/152] docs: updated _config.yml --- docs/_config.yml | 1 + guide/_config.yml | 1 + 2 files changed, 2 insertions(+) diff --git a/docs/_config.yml b/docs/_config.yml index 98cae4bc95..5e52189195 100644 --- a/docs/_config.yml +++ b/docs/_config.yml @@ -1,6 +1,7 @@ title: Meteor API Docs subtitle: API Docs versions: + - '2.11' - '2.10' - '2.9' - '2.8' diff --git a/guide/_config.yml b/guide/_config.yml index 0a0530fc92..68bc5cb51a 100644 --- a/guide/_config.yml +++ b/guide/_config.yml @@ -5,6 +5,7 @@ edit_branch: 'devel' edit_path: 'guide' content_root: 'content' versions: + - '2.11' - '2.10' - '2.9' - '2.8' From 3331a09c7e288f957a63643e9816a3536a6313be Mon Sep 17 00:00:00 2001 From: Gabriel Grubba Date: Tue, 24 Jan 2023 17:48:05 -0300 Subject: [PATCH 012/152] docs: updated history.md --- docs/history.md | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/docs/history.md b/docs/history.md index 8d8da618f9..ad2c936e44 100644 --- a/docs/history.md +++ b/docs/history.md @@ -5,6 +5,7 @@ * MongoDB Server 6.x Support * Embedded Mongo now uses MongoDB 6.0.3 * Optimized makeLookupFunction by [radekmie](https://github.com/radekmie) [PR](https://github.com/meteor/meteor/pull/12462) +* In async wrappers, catch exceptions and reject by [ebroder](https://github.com/ebroder) [PR](https://github.com/meteor/meteor/pull/12469) #### Breaking Changes @@ -24,9 +25,21 @@ N/A * `Command line`: - Corrected typo in vue skeleton +* `npm mongo @4.13.0`: + - Updated MongoDB driver to version 4.13.0 + +* `Minimongo@1.9.2`: + - Updated performance of makeLookupFunction + - In async wrappers, catch exceptions and reject + +* `mongo@1.16.5`: + - In async wrappers, catch exceptions and reject + #### Special thanks to - [@radekmie](https://github.com/radekmie). +- [@ebroder](https://github.com/ebroder). + For making this great framework even better! From 1b0eaeb9998d201d57138d095cb5c67687d6e9c5 Mon Sep 17 00:00:00 2001 From: Gabriel Grubba Date: Tue, 24 Jan 2023 17:48:44 -0300 Subject: [PATCH 013/152] chore: updated packages sem ver --- packages/minimongo/package.js | 2 +- packages/mongo/package.js | 2 +- packages/npm-mongo/package.js | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/minimongo/package.js b/packages/minimongo/package.js index 2353ea1305..d3d9d110e4 100644 --- a/packages/minimongo/package.js +++ b/packages/minimongo/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "Meteor's client-side datastore: a port of MongoDB to Javascript", - version: '1.9.1' + version: '1.9.2-beta211.0' }); Package.onUse(api => { diff --git a/packages/mongo/package.js b/packages/mongo/package.js index 71213f2596..0faeeac7b4 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.16.4' + version: '1.16.5-beta211.0' }); Npm.depends({ diff --git a/packages/npm-mongo/package.js b/packages/npm-mongo/package.js index 45d1a87a27..66712466c5 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: '4.12.1', + version: '4.13.0', documentation: null }); Npm.depends({ - mongodb: "4.12.1" + mongodb: "4.13.0" }); Package.onUse(function (api) { From ac3d95e05a5575066a747388d425d3134ac5eb86 Mon Sep 17 00:00:00 2001 From: Dhaval chaudhary Date: Wed, 25 Jan 2023 17:03:36 +0530 Subject: [PATCH 014/152] Bumped cordova inapp browser version to fix ios build failing --- packages/oauth/oauth_cordova.js | 3 ++- packages/oauth/package.js | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/packages/oauth/oauth_cordova.js b/packages/oauth/oauth_cordova.js index 06c8870731..8ba66d5744 100644 --- a/packages/oauth/oauth_cordova.js +++ b/packages/oauth/oauth_cordova.js @@ -19,6 +19,8 @@ OAuth.showPopup = (url, callback, dimensions) => { // works that we don't understand and isn't well-documented. let oauthFinished = false; + const popup = cordova.InAppBrowser.open(url, '_blank', 'location=yes,hidden=yes'); + const pageLoaded = event => { if (oauthFinished) { return; @@ -59,7 +61,6 @@ OAuth.showPopup = (url, callback, dimensions) => { popup.removeEventListener('exit', onExit); }; - const popup = window.open(url, '_blank', 'location=yes,hidden=yes'); popup.addEventListener('loadstop', pageLoaded); popup.addEventListener('loaderror', fail); popup.addEventListener('exit', onExit); diff --git a/packages/oauth/package.js b/packages/oauth/package.js index 4b56f43d33..74c7d551e5 100644 --- a/packages/oauth/package.js +++ b/packages/oauth/package.js @@ -49,5 +49,5 @@ Package.onTest(api => { }); Cordova.depends({ - 'cordova-plugin-inappbrowser': '3.2.0' + 'cordova-plugin-inappbrowser': '5.0.0' }); From 0a6dd7bc8df375647b82b9c68372aed5036f699e Mon Sep 17 00:00:00 2001 From: Gabriel Grubba Date: Wed, 25 Jan 2023 15:10:49 -0300 Subject: [PATCH 015/152] chore: updating MongoDB driver --- .../.npm/package/npm-shrinkwrap.json | 352 +++++++++--------- 1 file changed, 181 insertions(+), 171 deletions(-) diff --git a/packages/npm-mongo/.npm/package/npm-shrinkwrap.json b/packages/npm-mongo/.npm/package/npm-shrinkwrap.json index b276e22ce7..9b0564eb3a 100644 --- a/packages/npm-mongo/.npm/package/npm-shrinkwrap.json +++ b/packages/npm-mongo/.npm/package/npm-shrinkwrap.json @@ -2,9 +2,9 @@ "lockfileVersion": 1, "dependencies": { "@aws-crypto/ie11-detection": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@aws-crypto/ie11-detection/-/ie11-detection-2.0.2.tgz", - "integrity": "sha512-5XDMQY98gMAf/WRTic5G++jfmS/VLM0rwpiOpaainKi4L0nqWMSB1SzsrEG5rjFZGYN6ZAefO+/Yta2dFM0kMw==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/ie11-detection/-/ie11-detection-3.0.0.tgz", + "integrity": "sha512-341lBBkiY1DfDNKai/wXM3aujNBkXR7tq1URPQDL9wi3AUbI80NR74uF1TXHMm7po1AcnFk8iu2S2IeU/+/A+Q==", "dependencies": { "tslib": { "version": "1.14.1", @@ -14,9 +14,9 @@ } }, "@aws-crypto/sha256-browser": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@aws-crypto/sha256-browser/-/sha256-browser-2.0.0.tgz", - "integrity": "sha512-rYXOQ8BFOaqMEHJrLHul/25ckWH6GTJtdLSajhlqGMx0PmSueAuvboCuZCTqEKlxR8CQOwRarxYMZZSYlhRA1A==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/sha256-browser/-/sha256-browser-3.0.0.tgz", + "integrity": "sha512-8VLmW2B+gjFbU5uMeqtQM6Nj0/F1bro80xQXCW6CQBWgosFWXTx77aeOF5CAIAmbOK64SdMBJdNr6J41yP5mvQ==", "dependencies": { "tslib": { "version": "1.14.1", @@ -26,9 +26,9 @@ } }, "@aws-crypto/sha256-js": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@aws-crypto/sha256-js/-/sha256-js-2.0.0.tgz", - "integrity": "sha512-VZY+mCY4Nmrs5WGfitmNqXzaE873fcIZDu54cbaDaaamsaTOP1DBImV9F4pICc3EHjQXujyE8jig+PFCaew9ig==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/sha256-js/-/sha256-js-3.0.0.tgz", + "integrity": "sha512-PnNN7os0+yd1XvXAy23CFOmTbMaDxgxXtTKHybrJ39Y8kGzBATgBFibWJKH6BhytLI/Zyszs87xCOBNyBig6vQ==", "dependencies": { "tslib": { "version": "1.14.1", @@ -38,9 +38,9 @@ } }, "@aws-crypto/supports-web-crypto": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@aws-crypto/supports-web-crypto/-/supports-web-crypto-2.0.2.tgz", - "integrity": "sha512-6mbSsLHwZ99CTOOswvCRP3C+VCWnzBf+1SnbWxzzJ9lR0mA0JnY2JEAhp8rqmTE0GPFy88rrM27ffgp62oErMQ==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/supports-web-crypto/-/supports-web-crypto-3.0.0.tgz", + "integrity": "sha512-06hBdMwUAb2WFTuGG73LSC0wfPu93xWwo5vL2et9eymgmu3Id5vFAHBbajVWiGhPO37qcsdCap/FqXvJGJWPIg==", "dependencies": { "tslib": { "version": "1.14.1", @@ -50,9 +50,9 @@ } }, "@aws-crypto/util": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@aws-crypto/util/-/util-2.0.2.tgz", - "integrity": "sha512-Lgu5v/0e/BcrZ5m/IWqzPUf3UYFTy/PpeED+uc9SWUR1iZQL8XXbGQg10UfllwwBryO3hFF5dizK+78aoXC1eA==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/util/-/util-3.0.0.tgz", + "integrity": "sha512-2OJlpeJpCR48CC8r+uKVChzs9Iungj9wkZrl8Z041DWEWvyIHILYKCPNzJghKsivj+S3mLo6BVc7mBNzdxA46w==", "dependencies": { "tslib": { "version": "1.14.1", @@ -62,94 +62,94 @@ } }, "@aws-sdk/abort-controller": { - "version": "3.215.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/abort-controller/-/abort-controller-3.215.0.tgz", - "integrity": "sha512-HTvL542nawhVqe0oC1AJchdcomEOmPivJEzYUT1LqiG3e8ikxMNa2KWSqqLPeKi2t0A/cfQy7wDUyg9+BZhDSQ==" + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/abort-controller/-/abort-controller-3.257.0.tgz", + "integrity": "sha512-ekWy391lOerS0ZECdhp/c+X7AToJIpfNrCPjuj3bKr+GMQYckGsYsdbm6AUD4sxBmfvuaQmVniSXWovaxwcFcQ==" }, "@aws-sdk/client-cognito-identity": { - "version": "3.218.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-cognito-identity/-/client-cognito-identity-3.218.0.tgz", - "integrity": "sha512-IHzM9jpLqdeqj2w7YA7FrmLCQyKaun7eXtu1OJYMFbJT5XHx6B4jlQ1T/N8xivSSzDfjpJxG6/MMmjec4pI+CA==" + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-cognito-identity/-/client-cognito-identity-3.257.0.tgz", + "integrity": "sha512-/K5kLqZa8xrkk8ueLOdnHKZJxI0dp8J9X39y8B2zfJSqSb+n8ETqt0zo8kFcsn+JG746YyMby3t05YKCI5KLmg==" }, "@aws-sdk/client-sso": { - "version": "3.218.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.218.0.tgz", - "integrity": "sha512-kVMlpjaVblxgb1G8q3wD65mKxO3RzKwnjUjIBmOHpmseXzlSkAdAvYcikaDoJP+CRmys4uXk5DN8c7ZdL0OmgA==" + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.257.0.tgz", + "integrity": "sha512-sD0yTTctLbjDoSV3hJem+xz9BzusmkkU/4Fts9gEs4C5NjS0YrfPAvQWE++yRzPLPR/dMhDFVCOs7voTzUhUWQ==" }, "@aws-sdk/client-sso-oidc": { - "version": "3.216.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.216.0.tgz", - "integrity": "sha512-O8kmM86BHwiSwyNoIe+iHXuSpUE9PBWl3re8u+/igt/w5W5VmMVz+zQr7gRUDQ1FDgLWNEdAJa0r+JFx3pZdzA==" + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.257.0.tgz", + "integrity": "sha512-yXf53Zc7DYt/4j7xGXgWaDVhE/XMDLoid5l8bOb4aDJN6kxgl5bXV/sH3DwND/fA09EQHU1W+9oe/8InVqsliw==" }, "@aws-sdk/client-sts": { - "version": "3.218.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.218.0.tgz", - "integrity": "sha512-0A81eHvryKFEPq7IeY34Opzh5b9bVhhLlf2fDy5VuZjCFf4R9vD2ceOANvFSJeMsmdlqVDq8U1mHYl0E6FRUug==" + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.257.0.tgz", + "integrity": "sha512-AVNngoDGACR7xs9wTU7hrZSvMfNOGvWP/B/ieA0au3H3KDucjCZzBd3j2vYkR6Cph9dY7YkpU2Gtzn+JXD0b1g==" }, "@aws-sdk/config-resolver": { - "version": "3.215.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/config-resolver/-/config-resolver-3.215.0.tgz", - "integrity": "sha512-DxX4R+YYLQOtg0qfceKBrjVD4t1mQBG1eb7IVr2QSlckFCX8ztUNymFMuaSEo3938Jyy/NpgfUDpFqPDaSKnng==" + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/config-resolver/-/config-resolver-3.257.0.tgz", + "integrity": "sha512-jChjr8ayaXoAcUgrRr+JRIJ6bPtEoS+/xW9khpHOmrEX+uBJ7xLPfdS4e6nmxAQpbem9AsUVvf57DXhSh5/nLg==" }, "@aws-sdk/credential-provider-cognito-identity": { - "version": "3.218.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-cognito-identity/-/credential-provider-cognito-identity-3.218.0.tgz", - "integrity": "sha512-ndhlPBvnxUgje23TnVw0fkDgTZHh0GVapKSgeEIxmxAy3IVLN15iMs7dCV7LWvb7z1P0cYx9cwvxa0nTrVxjtg==" + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-cognito-identity/-/credential-provider-cognito-identity-3.257.0.tgz", + "integrity": "sha512-KNXKB4llqDpUwxeOMIcOSL4BSklaClOctERDnmShN2h4gS9lgHN8dWQOuEqd0YkBVDtOg//tz0GeS5tsZsL5dA==" }, "@aws-sdk/credential-provider-env": { - "version": "3.215.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.215.0.tgz", - "integrity": "sha512-n5G7I7Pxfsn81+tNsSOzspKp9SYai78oRfImsfFY4JLTcWutv7szMgFUbtEzBfUUINHpOxLiO2Lk5yu5K1C7IQ==" + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.257.0.tgz", + "integrity": "sha512-GsmBi5Di6hk1JAi1iB6/LCY8o+GmlCvJoB7wuoVmXI3VxRVwptUVjuj8EtJbIrVGrF9dSuIRPCzUoSuzEzYGlg==" }, "@aws-sdk/credential-provider-imds": { - "version": "3.215.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-imds/-/credential-provider-imds-3.215.0.tgz", - "integrity": "sha512-/4FUUR6u9gkNfxB6mEwBr0kk0myIkrDcXbAocWN3fPd/t7otzxpx/JqPZXgM6kcVP7M4T/QT75l1E1RRHLWCCQ==" + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-imds/-/credential-provider-imds-3.257.0.tgz", + "integrity": "sha512-UrxYkHWndy6s/bZZWH2poIyqdISTbILGTcK9tT8cFaUUrNIEFXiVESZMNNaagy0Dyy9wr80ndumxRkutYga9VA==" }, "@aws-sdk/credential-provider-ini": { - "version": "3.218.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.218.0.tgz", - "integrity": "sha512-tDDrGW+4A+PQThVJ+l9ee03CsDoD0XLpOB5dcf+dr/dCHjcQ7x/CeVFZ8eM+XUtGQnZVvuzXZGwzS8bUWEdJIg==" + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.257.0.tgz", + "integrity": "sha512-69jW9/Os2zGBATQR8Urde+IlzicgJPCO/gAWpm4AYJYT5LSGc0pOuZflSXq+ZfKy3jcSoN0yOFxkoMnmZb8pzg==" }, "@aws-sdk/credential-provider-node": { - "version": "3.218.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.218.0.tgz", - "integrity": "sha512-J9PB6XFA+V0mgxleuY5W6Jjh5WejV8HjMViTJQpp2JN+NWZP3bGvquUSQHRqWGRGg2fSJy6Z/J4zQ8fpPbGsdQ==" + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.257.0.tgz", + "integrity": "sha512-yXVNOml/w4ipWiRgLWUphGwISqJQRPjALgTsRa0O+CzpaEc/0HRqM8I78VzCzjsb+QE4EP7MZej6tkEAZYgTlg==" }, "@aws-sdk/credential-provider-process": { - "version": "3.215.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.215.0.tgz", - "integrity": "sha512-JNvj4L5B7W8byoFdfn/8Y4scoPiwCi+Ha/fRsFCrdSC7C+snDuxM/oQj33HI8DpKY1cjuigzEnpnxiNWaA09EA==" + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.257.0.tgz", + "integrity": "sha512-xK8uYeNXaclaBCGrLi4z2pxPRngqLf5BM5jg2fn57zqvlL9V5gJF972FehrVBL0bfp1/laG0ZJtD2K2sapyWAw==" }, "@aws-sdk/credential-provider-sso": { - "version": "3.218.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.218.0.tgz", - "integrity": "sha512-HecWvmxD+xffmY8G4SfLRfCOgSoLFki45wOOU8ESgRM9fQp2+3CfRSyiThKZI5PTmE+xhPTRvmR61HUmQjEv8w==" + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.257.0.tgz", + "integrity": "sha512-I/1TQm6WruqxTTPH+Wo2o+YCLenEY0bWq97EQn+d8Cp0N7cNJUDt8BHF22dQtUzd7bvSspVK5M4qCZKAh3fhOg==" }, "@aws-sdk/credential-provider-web-identity": { - "version": "3.215.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.215.0.tgz", - "integrity": "sha512-AWaDDEE3VU1HeLrXvyUrkQ6Wb3PQij5bvvrMil9L0da3b1yrcpoDanQQy7wBFBXcZIVmcmSFe5MMA/nyh2Le4g==" + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.257.0.tgz", + "integrity": "sha512-Cm0uvRv4JuIbD0Kp3W0J/vwjADIyCx8HoZi5yg+QIi5nilocuTQ3ajvLeuPVSvFvdy+yaxSc5FxNXquWt7Mngw==" }, "@aws-sdk/credential-providers": { - "version": "3.218.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-providers/-/credential-providers-3.218.0.tgz", - "integrity": "sha512-MWpb5k+Oq56NrHA5fYPIDX8QRYUAw4Jp8ErTELBd83kLhTgqTw025YQ05YbhIzAs84+viMeWKif0z/5kNshphw==" + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-providers/-/credential-providers-3.257.0.tgz", + "integrity": "sha512-A2bl5M7BlcV94H4rgdYnWRcnQxVARkrWSNQzA1n/wJY3EPXkFN0/Rjie/W7j7hXVtjRVaALSGVNwxQ/BQ7ZMTg==" }, "@aws-sdk/fetch-http-handler": { - "version": "3.215.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/fetch-http-handler/-/fetch-http-handler-3.215.0.tgz", - "integrity": "sha512-JfZyrJOE+0ik1PumsIUZd0NfgEx4sZ43VSdPCD9GRhssRWudNsSF1B5fz3xA5v+1y5oQPjXZyaWCzKtnYruiWw==" + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/fetch-http-handler/-/fetch-http-handler-3.257.0.tgz", + "integrity": "sha512-zOF+RzQ+wfF7tq7tGUdPcqUTh3+k2f8KCVJE07A8kCopVq4nBu4NH6Eq29Tjpwdya3YlKvE+kFssuQRRRRex+Q==" }, "@aws-sdk/hash-node": { - "version": "3.215.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/hash-node/-/hash-node-3.215.0.tgz", - "integrity": "sha512-MkSRuZvo1RCRmI0VNEmRYCGGD/DkMd9lqnLtOyglMPnSX1mhyD4/DyXmcc3rYa7PsjDRAfykGWJRiMqpoMLjiQ==" + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/hash-node/-/hash-node-3.257.0.tgz", + "integrity": "sha512-W/USUuea5Ep3OJ2U7Ve8/5KN1YsDun2WzOFUxc1PyxXP5pW6OgC15/op0e+bmWPG851clvp5S8ZuroUr3aKi3Q==" }, "@aws-sdk/invalid-dependency": { - "version": "3.215.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/invalid-dependency/-/invalid-dependency-3.215.0.tgz", - "integrity": "sha512-++bK4BUQe8/CL/YcLZcQB8qPOhiXxhbuhYzfFS7PNVvW1QOLqKRZL/lKs24gzjcOmw7IhAbCybDZwvu2TM4DAg==" + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/invalid-dependency/-/invalid-dependency-3.257.0.tgz", + "integrity": "sha512-T68SAPRNMEhpke0wlxURgogL7q0B8dfqZsSeS20BVR/lksJxLse9+pbmCDxiu1RrXoEIsEwl5rbLN+Hw8BFFYw==" }, "@aws-sdk/is-array-buffer": { "version": "3.201.0", @@ -157,124 +157,124 @@ "integrity": "sha512-UPez5qLh3dNgt0DYnPD/q0mVJY84rA17QE26hVNOW3fAji8W2wrwrxdacWOxyXvlxWsVRcKmr+lay1MDqpAMfg==" }, "@aws-sdk/middleware-content-length": { - "version": "3.215.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-content-length/-/middleware-content-length-3.215.0.tgz", - "integrity": "sha512-zKJRb6jDLFl9nl/muSFbiQHA4uK3skinuDRcyLbpMvvzhuK/PVodv9QI1+wIUsFdXkaSxAlva1oG4bL8ZFi+sQ==" + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-content-length/-/middleware-content-length-3.257.0.tgz", + "integrity": "sha512-yiawbV2azm6QnMY1L2ypG8PDRdjOcEIvFmT0T7y0F49rfbKJOu21j1ONAoCkLrINK6kMqcD5JSQLVCoURxiTxQ==" }, "@aws-sdk/middleware-endpoint": { - "version": "3.215.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-endpoint/-/middleware-endpoint-3.215.0.tgz", - "integrity": "sha512-W0QXL5emcN9IXtMbnWT/abLxBFH2tGIfnre2jPNmZ9M7uVFxUwwv5OTUXxNLGNehJHKhiJPwhfQvMy20IDzVcw==" + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-endpoint/-/middleware-endpoint-3.257.0.tgz", + "integrity": "sha512-RQNQe/jeVuWZtXXfcOm+e3qMFICY6ERsXUrbt0rjHgvajZCklcrRJgxJSCwrcS7Le3nl9azFPMAMj9L7uSK28g==" }, "@aws-sdk/middleware-host-header": { - "version": "3.215.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.215.0.tgz", - "integrity": "sha512-GOqI7VwoENZwn+6tIMrrJ4SipIqL2JCh+BNvORVcy7CQxn1ViKkna7iaCx+QMjpg/kn9cR6kfY0n1FmgZR1w9A==" + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.257.0.tgz", + "integrity": "sha512-gEi9AJdJfRfU8Qr6HK1hfhxTzyV3Giq4B/h7um99hIFAT/GCg9xiPvAOKPo6UeuiKEv3b7RpSL4s6cBvnJMJBA==" }, "@aws-sdk/middleware-logger": { - "version": "3.215.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.215.0.tgz", - "integrity": "sha512-0h4GGF0rV3jnY3jxmcAWsOdqHCYf25s0biSjmgTei+l/5S+geOGrovRPCNep0LLg0i9D8bkZsXISojilETbf+g==" + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.257.0.tgz", + "integrity": "sha512-8RDXW/VbMKBsXDfcCLmROZcWKyrekyiPa3J1aIaBy0tq9o4xpGoXw/lwwIrNVvISAFslb57rteup34bfn6ta6w==" }, "@aws-sdk/middleware-recursion-detection": { - "version": "3.215.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.215.0.tgz", - "integrity": "sha512-KQ+kiEsaluM4i6opjusUukxY78+UhfR7vzXHDkzZK/GplQ1hY0B+rwVO1eaULmlnmf3FK+Wd6lwrPV7xS2W+EA==" + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.257.0.tgz", + "integrity": "sha512-rUCih6zHh8k9Edf5N5Er4s508FYbwLM0MWTD2axzlj9TjLqEQ9OKED3wHaLffXSDzodd3oTAfJCLPbWQyoZ3ZQ==" }, "@aws-sdk/middleware-retry": { - "version": "3.215.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-retry/-/middleware-retry-3.215.0.tgz", - "integrity": "sha512-I/dnUPVg2Kp3lW+MywBoPp06EOng8IfuaS9ph4bcJpQKrhNU5ekRgCHH2C4k1A6GcP8uyHxQ5TVV6j+l0QPIsA==" + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-retry/-/middleware-retry-3.257.0.tgz", + "integrity": "sha512-vDOy4PbSRW2gtgoJZ+yvgyxdlTwbZGpuv/rA2+XYxURmhPMzpmqs4o1DR37LG8O41WouI1rPzA7E+Ffo+iNWjw==" }, "@aws-sdk/middleware-sdk-sts": { - "version": "3.215.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-sts/-/middleware-sdk-sts-3.215.0.tgz", - "integrity": "sha512-wJRxoDf+2egbRgochaQL8+zzADx8FM/2W0spKNj8x+t/3iqw70QwxCfuEKW/uFQ3ph6eaIrv7gYc8RRjwhD8rg==" + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-sts/-/middleware-sdk-sts-3.257.0.tgz", + "integrity": "sha512-d6IJCLRi3O2tm4AFK60WNhIwmMmspj1WzKR1q1TaoPzoREPG2xg+Am18wZBRkCyYuRPPrbizmkvAmAJiUolMAw==" }, "@aws-sdk/middleware-serde": { - "version": "3.215.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-serde/-/middleware-serde-3.215.0.tgz", - "integrity": "sha512-+uhLXdKvvQZcRRFc3UmemSr/YUHA4Jc+1YMjHxc3v8vvfztFJBb0wgBx999myOi8PmkYThlRBQDzXy9UCIhIJw==" + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-serde/-/middleware-serde-3.257.0.tgz", + "integrity": "sha512-/JasfXPWFq24mnCrx9fxW/ISBSp07RJwhsF14qzm8Qy3Z0z470C+QRM6otTwAkYuuVt1wuLjja5agq3Jtzq7dQ==" }, "@aws-sdk/middleware-signing": { - "version": "3.215.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-signing/-/middleware-signing-3.215.0.tgz", - "integrity": "sha512-3BqzYqkmdPeOxjI8DVQE7Bm7J5QIvDy30abglXqrDg6npw6KonKI2Q3FIPFf+oLpZTMStwkoQOnwXHTPrSZ6Tg==" + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-signing/-/middleware-signing-3.257.0.tgz", + "integrity": "sha512-hCH3D83LHmm6nqmtNrGTWZCVjsQXrGHIXbd17/qrw7aPFvcAhsiiCncGFP+XsUXEKa2ZqcSNMUyPrx69ofNRZQ==" }, "@aws-sdk/middleware-stack": { - "version": "3.215.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-stack/-/middleware-stack-3.215.0.tgz", - "integrity": "sha512-rdSVL7LxRgjlvoluqwODD4ypBy2k/YVl6FrDplyCMSi8m2WHZG99FzdmR9bpnWK+0DGzYZSMRYx6ynJ9N9PsSw==" + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-stack/-/middleware-stack-3.257.0.tgz", + "integrity": "sha512-awg2F0SvwACBaw4HIObK8pQGfSqAc4Vy+YFzWSfZNVC35oRO6RsRdKHVU99lRC0LrT2Ptmfghl2DMPSrRDbvlQ==" }, "@aws-sdk/middleware-user-agent": { - "version": "3.215.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.215.0.tgz", - "integrity": "sha512-X6GfoMNoEITTw7rGL/gWs8UZ0cmmmezvKcl+KtHsA642R05OR4mY5G7LdbWAw0bcrwKsuKOGmwUrC9lzGqbWUw==" + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.257.0.tgz", + "integrity": "sha512-37rt75LZyD0UWpbcFuxEGqwF3DZKSixQPl7AsDe6q3KtrO5gGQB+diH5vbY0txNNYyv5IK9WMwvY73mVmoWRmw==" }, "@aws-sdk/node-config-provider": { - "version": "3.215.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/node-config-provider/-/node-config-provider-3.215.0.tgz", - "integrity": "sha512-notckD94QwwxC0GsfpTxB7VH8SREIIlMsUSddqGtpModa0cq/wRb9rqnydZSoznbYpK1ND6h0C9hr/2PNz89zw==" + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/node-config-provider/-/node-config-provider-3.257.0.tgz", + "integrity": "sha512-IfGF7+cU0PyB7RpHlgc445ZAUZDWn4ij2HTB6N+xULwFw2TxnyQ2tvo3Gp5caW9VlJ3eXE9wFrynv+JXUIH7Bg==" }, "@aws-sdk/node-http-handler": { - "version": "3.215.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/node-http-handler/-/node-http-handler-3.215.0.tgz", - "integrity": "sha512-btKWSR7m0UuWIN3p5MfSIvhqeYik7xri7U6nWuVI5GVzIYjzxEZOMvPAinDLDxL5wipodi0ZvTUNdDJdm7BcGQ==" + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/node-http-handler/-/node-http-handler-3.257.0.tgz", + "integrity": "sha512-8KnWHVVwaGKyTlkTU9BSOAiSovNDoagxemU2l10QqBbzUCVpljCUMUkABEGRJ1yoQCl6DJ7RtNkAyZ8Ne/E15A==" }, "@aws-sdk/property-provider": { - "version": "3.215.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/property-provider/-/property-provider-3.215.0.tgz", - "integrity": "sha512-dDPjMCCopkRURAmOJCMSlpIQ5BGWCpYj0+FIfZ5qWQs24fn1PAkQHecOiBhJO0ZSVuQy3xcIyWsAp1NE5e+7ug==" + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/property-provider/-/property-provider-3.257.0.tgz", + "integrity": "sha512-3rUbRAcF0GZ5PhDiXhS4yREfZ5hOEtvYEa9S/19OdM5eoypOaLU5XnFcCKfnccSP8SkdgpJujzxOMRWNWadlAQ==" }, "@aws-sdk/protocol-http": { - "version": "3.215.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/protocol-http/-/protocol-http-3.215.0.tgz", - "integrity": "sha512-qp6Y6v4S534LAjadiVl9p7ErK7ImphOKq6yhFyQwxko6iITLcz8ib3yU27fs4QJcnNj5ZooqW/YlL/0EikDxCQ==" + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/protocol-http/-/protocol-http-3.257.0.tgz", + "integrity": "sha512-xt7LGOgZIvbLS3418AYQLacOqx+mo5j4mPiIMz7f6AaUg+/fBUgESVsncKDqxbEJVwwCXSka8Ca0cntJmoeMSw==" }, "@aws-sdk/querystring-builder": { - "version": "3.215.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/querystring-builder/-/querystring-builder-3.215.0.tgz", - "integrity": "sha512-eilk8CqG37BVhQklLif00K2dOJgDzacUi8h3KVQ72ry1V3h345i4HsmaFIxvnz8XtNyDvV8qFAzeYg9n2P9RQA==" + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/querystring-builder/-/querystring-builder-3.257.0.tgz", + "integrity": "sha512-mZHWLP7XIkzx1GIXO5WfX/iJ+aY9TWs02RE9FkdL2+by0HEMR65L3brQTbU1mIBJ7BjaPwYH24dljUOSABX7yg==" }, "@aws-sdk/querystring-parser": { - "version": "3.215.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/querystring-parser/-/querystring-parser-3.215.0.tgz", - "integrity": "sha512-8h/9H8dWM4fZO27UGzo8W5JXln4yJMugPyUl4qFA437gzPgNFN95+oLJWXtHMlfCHC5T/PDKetY9TarMDgBD0Q==" + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/querystring-parser/-/querystring-parser-3.257.0.tgz", + "integrity": "sha512-UDrE1dEwWrWT8dG2VCrGYrPxCWOkZ1fPTPkjpkR4KZEdQDZBqU5gYZF2xPj8Nz7pjQVHFuW2wFm3XYEk56GEjg==" }, "@aws-sdk/service-error-classification": { - "version": "3.215.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/service-error-classification/-/service-error-classification-3.215.0.tgz", - "integrity": "sha512-SKBvClGFGzMPsjBBKjneaUazLCNr6bSxe9eFvOr3gCwuwE2jPQwW3VE1mb62howuvm6cLthEDwLQp/FsT1gMsw==" + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/service-error-classification/-/service-error-classification-3.257.0.tgz", + "integrity": "sha512-FAyR0XsueGkkqDtkP03cTJQk52NdQ9sZelLynmmlGPUP75LApRPvFe1riKrou6+LsDbwVNVffj6mbDfIcOhaOw==" }, "@aws-sdk/shared-ini-file-loader": { - "version": "3.215.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/shared-ini-file-loader/-/shared-ini-file-loader-3.215.0.tgz", - "integrity": "sha512-unzQeLOyUiYHr8WxxandHo0OaCj31gx0wpt8dn2cZcHm/MdCqHcHcsQqOVnQsWQrrxY/XZ27cPyMVQeicNKYwQ==" + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/shared-ini-file-loader/-/shared-ini-file-loader-3.257.0.tgz", + "integrity": "sha512-HNjC1+Wx3xHiJc+CP14GhIdVhfQGSjroAsWseRxAhONocA9Fl1ZX4hx7+sA5c9nOoMVOovi6ivJ/6lCRPTDRrQ==" }, "@aws-sdk/signature-v4": { - "version": "3.215.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/signature-v4/-/signature-v4-3.215.0.tgz", - "integrity": "sha512-Rc73uUCi3eJneO25DydLTfJYamXeuKS9YIhNMTKlpvcN1UQAmAnUbAmCuEmqvkYOiGD1i4/kd8kBga708iIikQ==" + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/signature-v4/-/signature-v4-3.257.0.tgz", + "integrity": "sha512-aLQQN59X/D0+ShzPD3Anj5ntdMA/RFeNLOUCDyDvremViGi6yxUS98usQ/8bG5Rq0sW2GGMdbFUFmrDvqdiqEQ==" }, "@aws-sdk/smithy-client": { - "version": "3.215.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/smithy-client/-/smithy-client-3.215.0.tgz", - "integrity": "sha512-PiZfCdZkPohzMPrRmJ46TPOf2Tr/dhKYdwQArRnOOIsJABUGXjlzCUE8vysDN35XZYRx5f9hd+/U7kayhniq2w==" + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/smithy-client/-/smithy-client-3.257.0.tgz", + "integrity": "sha512-Vy/en+llpslHG6WZ2yuN+On6u7p2hROEURwAST/lpReAwBETjbsxylkWvP8maeGKQ54u9uC6lIZAOJut2I3INw==" }, "@aws-sdk/token-providers": { - "version": "3.216.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.216.0.tgz", - "integrity": "sha512-cEmOfG7njWl0OA5lR65Sp2SW1i8ZLjf7C95TZ1e6t2Oo5aUFeN3aKBxMOV//1yc+BNzcFBnoHP/f29GhWxUOxA==" + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.257.0.tgz", + "integrity": "sha512-Ysd1dpWiI2oBOrJpkSJkgPsY0dwMtavIBzF3d5JYN1HCl14Aqc2jcNqBjD+7nEeL6CHXcFeyB7jmCDqiuP0V3A==" }, "@aws-sdk/types": { - "version": "3.215.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.215.0.tgz", - "integrity": "sha512-eRbCVjwzTYd9C5e2mceScJ6D2kYDDEC3PLkYfJa+1wH9iiF2JlbiYozAokyeYBHQ+AjmD93MK58RBoM8iZfH0Q==" + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.257.0.tgz", + "integrity": "sha512-LmqXuBQBGeaGi/3Rp7XiEX1B5IPO2UUfBVvu0wwGqVsmstT0SbOVDZGPmxygACbm64n+PRx3uTSDefRfoiWYZg==" }, "@aws-sdk/url-parser": { - "version": "3.215.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/url-parser/-/url-parser-3.215.0.tgz", - "integrity": "sha512-r/qIk3TUlV36JvoRjTErFm0LzzgNKLB1YUG8zVZCGAc2TEATi8OVEmsZvi+KfTmsbszulITJVcjZKbHLbGoUzg==" + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/url-parser/-/url-parser-3.257.0.tgz", + "integrity": "sha512-Qe/AcFe/NFZHa6cN2afXEQn9ehXxh57dWGdRjfjd2lQqNV4WW1R2pl2Tm1ZJ1dwuCNLJi4NHLMk8lrD3QQ8rdg==" }, "@aws-sdk/util-base64": { "version": "3.208.0", @@ -302,19 +302,19 @@ "integrity": "sha512-DSRqwrERUsT34ug+anlMBIFooBEGwM8GejC7q00Y/9IPrQy50KnG5PW2NiTjuLKNi7pdEOlwTSEocJE15eDZIg==" }, "@aws-sdk/util-defaults-mode-browser": { - "version": "3.215.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-defaults-mode-browser/-/util-defaults-mode-browser-3.215.0.tgz", - "integrity": "sha512-MiNfZgB0I4dR8CBxH163W7c9KvE38sgCHNPWopMqSX5ezz7cuCPohCU0XsWd4I7K31PvzuqmKgOiKBAZraQJMA==" + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-defaults-mode-browser/-/util-defaults-mode-browser-3.257.0.tgz", + "integrity": "sha512-nkfK+MNacVd3Px/fcAvU0hDeh+r7d+RLLt3sJ5Zc0gGd+i3OQEP58V8QzR9PYMvUvSvGQP16fQVQHSbRZtuWyQ==" }, "@aws-sdk/util-defaults-mode-node": { - "version": "3.215.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-defaults-mode-node/-/util-defaults-mode-node-3.215.0.tgz", - "integrity": "sha512-mSp3R8GljQ+4UT3QMOksQk9L0cWbFLvR7bBmAlt4+GobgTjpRfzFjBP3uwrCqFa3BKDUR3FeJq3qwo+xeY1Krg==" + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-defaults-mode-node/-/util-defaults-mode-node-3.257.0.tgz", + "integrity": "sha512-qsIb7aPbGFcKbBGoAQmlzv1gMcscgbpfrRh4rgNqkJXVbJ52Ql6+vXXfBmlWaBho0fcsNh5XnYu1fzdCuu+N7g==" }, "@aws-sdk/util-endpoints": { - "version": "3.216.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.216.0.tgz", - "integrity": "sha512-uHje4H6Qj/z/op8UZoSuvGpEZhz/r+AGY0rCihFo7XjhT4RYVxb2Eb9uHRK/IAeHU4kjHAdpQiWGMSmnT/UacA==" + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.257.0.tgz", + "integrity": "sha512-3bvmRn5XGYzPPWjLuvHBKdJOb+fijnb8Ungu9bfXnTYFsng/ndHUWeHC22O/p8w3OWoRYUIMaZHxdxe27BFozg==" }, "@aws-sdk/util-hex-encoding": { "version": "3.201.0", @@ -327,9 +327,14 @@ "integrity": "sha512-iua1A2+P7JJEDHVgvXrRJSvsnzG7stYSGQnBVphIUlemwl6nN5D+QrgbjECtrbxRz8asYFHSzhdhECqN+tFiBg==" }, "@aws-sdk/util-middleware": { - "version": "3.215.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-middleware/-/util-middleware-3.215.0.tgz", - "integrity": "sha512-DfHGlFlQCr+T/xhjS36HH8JEThDVB5lg5NZ6x4Cibhyeps9YX/4ovLAIx3B19H34sdWhZi7q6LfslCHLRu2+7Q==" + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-middleware/-/util-middleware-3.257.0.tgz", + "integrity": "sha512-F9ieon8B8eGVs5tyZtAIG3DZEObDvujkspho0qRbUTHUosM0ylJLsMU800fmC/uRHLRrZvb/RSp59+kNDwSAMw==" + }, + "@aws-sdk/util-retry": { + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-retry/-/util-retry-3.257.0.tgz", + "integrity": "sha512-l9TOsOAYtZxwW3q5fQKW4rsD9t2HVaBfQ4zBamHkNTfB4vBVvCnz4oxkvSvA2MlxCA6am+K1K/oj917Tpqk53g==" }, "@aws-sdk/util-uri-escape": { "version": "3.201.0", @@ -337,14 +342,19 @@ "integrity": "sha512-TeTWbGx4LU2c5rx0obHeDFeO9HvwYwQtMh1yniBz00pQb6Qt6YVOETVQikRZ+XRQwEyCg/dA375UplIpiy54mA==" }, "@aws-sdk/util-user-agent-browser": { - "version": "3.215.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.215.0.tgz", - "integrity": "sha512-uZz6BJWr8sJcA+onveS1lFqnbIXBHwvkyHLgCuuGhAxd5yY6YNLhpJBnhy9Fb8/aSbk6yao3qxlokqw9gthmAw==" + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.257.0.tgz", + "integrity": "sha512-YdavWK6/8Cw6mypEgysGGX/dT9p9qnzFbnN5PQsUY+JJk2Nx8fKFydjGiQ+6rWPeW17RAv9mmbboh9uPVWxVlw==" }, "@aws-sdk/util-user-agent-node": { - "version": "3.215.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.215.0.tgz", - "integrity": "sha512-4lrdd1oGRwJEwfvgvg1jcJ2O0bwElsvtiqZfTRHN6MNTFUqsKl0xHlgFChQsz3Hfrc1niWtZCmbqQKGdO5ARpw==" + "version": "3.257.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.257.0.tgz", + "integrity": "sha512-fOHh80kiVomUkABmOv3ZxB/SNLnOPAja7uhQmGWfKHXBkcxTVfWO2KBs5vzU5qhVZA0c1zVEvZPcBdRsonnhlw==" + }, + "@aws-sdk/util-utf8": { + "version": "3.254.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-utf8/-/util-utf8-3.254.0.tgz", + "integrity": "sha512-14Kso/eIt5/qfIBmhEL9L1IfyUqswjSTqO2mY7KOzUZ9SZbwn3rpxmtkhmATkRjD7XIlLKaxBkI7tU9Zjzj8Kw==" }, "@aws-sdk/util-utf8-browser": { "version": "3.188.0", @@ -357,9 +367,9 @@ "integrity": "sha512-jKY87Acv0yWBdFxx6bveagy5FYjz+dtV8IPT7ay1E2WPWH1czoIdMAkc8tSInK31T6CRnHWkLZ1qYwCbgRfERQ==" }, "@types/node": { - "version": "18.11.9", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.9.tgz", - "integrity": "sha512-CRpX21/kGdzjOpFsZSkcrXMGIBWMGNIHXXBVFSH+ggkftxg+XYP20TESbh+zFvFj3EQOl5byk0HTRn1IL6hbqg==" + "version": "18.11.18", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.18.tgz", + "integrity": "sha512-DHQpWGjyQKSHj3ebjFI/wRKcqQcdR+MoFBygntYOZytCqNfkd2ZC4ARDJ2DQqhjH5p85Nnd3jhUJIXrszFX/JA==" }, "@types/webidl-conversions": { "version": "7.0.0", @@ -382,9 +392,9 @@ "integrity": "sha512-AlcaJBi/pqqJBIQ8U9Mcpc9i8Aqxn88Skv5d+xBX006BY5u8N3mGLHa5Lgppa7L/HfwgwLgZ6NYs+Ag6uUmJRA==" }, "bson": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/bson/-/bson-4.7.0.tgz", - "integrity": "sha512-VrlEE4vuiO1WTpfof4VmaVolCVYkYTgB9iWgYNOrVlnifpME/06fhFRmONgBhClD5pFC1t9ZWqFUQEQAzY43bA==" + "version": "4.7.2", + "resolved": "https://registry.npmjs.org/bson/-/bson-4.7.2.tgz", + "integrity": "sha512-Ry9wCtIZ5kGqkJoi6aD8KjxFZEx78guTQDnpXWiNthsxzrxAK/i8E6pCHAIZTbaEFWcOCvbecMukfK7XUvyLpQ==" }, "buffer": { "version": "5.7.1", @@ -412,9 +422,9 @@ "integrity": "sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg==" }, "mongodb": { - "version": "4.12.1", - "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-4.12.1.tgz", - "integrity": "sha512-koT87tecZmxPKtxRQD8hCKfn+ockEL2xBiUvx3isQGI6mFmagWt4f4AyCE9J4sKepnLhMacoCTQQA6SLAI2L6w==" + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-4.13.0.tgz", + "integrity": "sha512-+taZ/bV8d1pYuHL4U+gSwkhmDrwkWbH1l4aah4YpmpscMwgFBkufIKxgP/G7m87/NUuQzc2Z75ZTI7ZOyqZLbw==" }, "mongodb-connection-string-url": { "version": "2.6.0", @@ -422,9 +432,9 @@ "integrity": "sha512-WvTZlI9ab0QYtTYnuMLgobULWhokRjtC7db9LtcVfJ+Hsnyr5eo6ZtNAt3Ly24XZScGMelOcGtm7lSn0332tPQ==" }, "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", + "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==" }, "saslprep": { "version": "1.0.3", From 66849e9c81756958aecff0fb8161610d5ffc6c1e Mon Sep 17 00:00:00 2001 From: Gabriel Grubba Date: Wed, 25 Jan 2023 15:29:25 -0300 Subject: [PATCH 016/152] chore: updated console colors to use template literals --- tools/console/console.js | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/tools/console/console.js b/tools/console/console.js index 7715560354..762a0f4957 100644 --- a/tools/console/console.js +++ b/tools/console/console.js @@ -1320,11 +1320,21 @@ class Console extends ConsoleBase { } } -const yellow = (text) => `\x1b[33m${ text }\x1b[0m`; -const red = (text) => `\x1b[31m${ text }\x1b[0m`; -const purple = (text) => `\x1b[35m${ text }\x1b[0m`; -const green = (text) => `\x1b[32m${ text }\x1b[0m`; -const blue = (text) => `\x1b[34m${ text }\x1b[0m`; +const yellow = + (text, ...values) => + `\x1b[33m${ String.raw({ raw: text }, ...values) }\x1b[0m` +const red = + (text, ...values) => + `\x1b[31m${ String.raw({ raw: text }, ...values) }\x1b[0m`; +const purple = + (text, ...values) => + `\x1b[35m${ String.raw({ raw: text }, ...values) }\x1b[0m`; +const green = + (text, ...values) => + `\x1b[32m${ String.raw({ raw: text }, ...values) }\x1b[0m`; +const blue = + (text, ...values) => + `\x1b[34m${ String.raw({ raw: text }, ...values) }\x1b[0m`; const colors = { yellow, From e18d7cd3a5245503924e1dcec07d5a35683971c3 Mon Sep 17 00:00:00 2001 From: Gabriel Grubba Date: Wed, 25 Jan 2023 15:29:49 -0300 Subject: [PATCH 017/152] chore: updated run mongo shell to use mongosh --- tools/runners/run-mongo.js | 32 +++----------------------------- 1 file changed, 3 insertions(+), 29 deletions(-) diff --git a/tools/runners/run-mongo.js b/tools/runners/run-mongo.js index 80f6d103cd..7a7bcd8444 100644 --- a/tools/runners/run-mongo.js +++ b/tools/runners/run-mongo.js @@ -10,41 +10,15 @@ var Console = require('../console/console.js').Console; // Given a Mongo URL, open an interactive Mongo shell on this terminal // on that database. -var runMongoShell = function(url) { - var mongoPath = files.pathJoin( - files.getDevBundle(), - 'mongodb', - 'bin', - 'mongo' - ); +var runMongoShell = function (url, err) { // XXX mongo URLs are not real URLs (notably, the comma-separation for // multiple hosts). We've had a little better luck using the mongodb-uri npm // package. var mongoUrl = require('url').parse(url); - var auth = mongoUrl.auth && mongoUrl.auth.split(':'); - var ssl = require('querystring').parse(mongoUrl.query).ssl === 'true'; - - var args = []; - if (ssl) { - args.push('--ssl'); - } - if (auth) { - args.push('-u', auth[0]); - } - if (auth) { - args.push('-p', auth[1]); - } - args.push(mongoUrl.hostname + ':' + mongoUrl.port + mongoUrl.pathname); - - // run with rosetta on mac m1 - if (process.platform === 'darwin' && process.arch === 'arm64') { - args = ['-x86_64', mongoPath, ...args]; - mongoPath = 'arch'; - } - - child_process.spawn(files.convertToOSPath(mongoPath), args, { + const ls = child_process.spawn('mongosh', [mongoUrl.href], { stdio: 'inherit', }); + ls.on('error', err); }; // Start mongod with a dummy replSet and wait for it to listen. From 1ab510e83b120d9537e2102e85f1f277d4c0ab23 Mon Sep 17 00:00:00 2001 From: Gabriel Grubba Date: Wed, 25 Jan 2023 15:30:22 -0300 Subject: [PATCH 018/152] chore: updated console colors and mongo shell to mongosh --- tools/cli/commands.js | 58 +++++++++++++++++++++++++++++++------------ 1 file changed, 42 insertions(+), 16 deletions(-) diff --git a/tools/cli/commands.js b/tools/cli/commands.js index 2467f05879..1af6ed7a18 100644 --- a/tools/cli/commands.js +++ b/tools/cli/commands.js @@ -1383,7 +1383,8 @@ main.registerCommand({ name: 'mongo', maxArgs: 1, options: { - url: { type: Boolean, short: 'U' } + url: { type: Boolean, short: 'U' }, + verbose: { type: Boolean, short: 'V' }, }, requiresApp: function (options) { return options.args.length === 0; @@ -1427,20 +1428,45 @@ to this command.`); mongoUrl = deploy.temporaryMongoUrl(site); usedMeteorAccount = true; - if (! mongoUrl) { + if (!mongoUrl) { // temporaryMongoUrl() will have printed an error message return 1; } } if (options.url) { - console.log(mongoUrl); + console.log(`${yellow`$`} ${ purple`mongosh` } ${ blue(mongoUrl) }`); } else { if (usedMeteorAccount) { auth.maybePrintRegistrationLink(); } process.stdin.pause(); var runMongo = require('../runners/run-mongo.js'); - runMongo.runMongoShell(mongoUrl); + runMongo.runMongoShell(mongoUrl, + (err) => { + console.log(red`Some error occured while trying to run mongosh.`); + console.log(yellow`Check bellow for some more info:`); + console.log(` + Since version v5.0.5 the mongo shell has been superseded by the mongosh + below there is the url to use with mongosh + ${yellow`$`} ${ purple`mongosh` } ${ blue(mongoUrl) } + `) + + if (err.code === 'ENOENT') { + console.log(red`The 'mongosh' command line tool was not found in your PATH.`); + console.log(`Check https://www.mongodb.com/docs/mongodb-shell/`); + process.exit(2); + return; + } + + if (options.verbose) { + console.log("here is a more verbose error message:"); + console.log(yellow`=====================================`); + console.log(err); + console.log(yellow`=====================================`); + } + + process.exit(1); + }); throw new main.WaitForExit; } }); @@ -2617,13 +2643,13 @@ main.registerCommand({ if (arg0 === undefined) { const ask = createPrompt(); // the ANSI color chart is here: https://en.wikipedia.org/wiki/ANSI_escape_code#Colors - const scaffoldName = await ask(`What is the name of your ${yellow('model')}? `); + const scaffoldName = await ask(`What is the name of your ${yellow`model`}? `); checkScaffoldName(scaffoldName); - const areMethods = await ask(`There will be methods [${green('Y')}/${red('n')}]? press enter for ${green('yes')} `); + const areMethods = await ask(`There will be methods [${green`Y`}/${red`n`}]? press enter for ${green`yes`} `); const methods = sanitizeBoolAnswer(areMethods); - const arePublications = await ask(`There will be publications [${green('Y')}/${red('n')}]? press enter for ${green('yes')} `); + const arePublications = await ask(`There will be publications [${green`Y`}/${red`n`}]? press enter for ${green`yes`} `); const publications = sanitizeBoolAnswer(arePublications); - const path = await ask(`Where it will be placed? press enter for ${yellow('./imports/api/')} `); + const path = await ask(`Where it will be placed? press enter for ${yellow`./imports/api/`} `); return { isWizard: true, scaffoldName, @@ -2686,8 +2712,8 @@ main.registerCommand({ const path = files.pathResolve(files.pathJoin(appDir, options.replaceFn)); const replaceFn = require(path).transformFilename; if (typeof replaceFn !== 'function') { - Console.error(red('You must provide a valid function transformFilename.')); - Console.error(yellow('The function should be named transformFilename and should be exported.')); + Console.error(red`You must provide a valid function transformFilename.`); + Console.error(yellow`The function should be named transformFilename and should be exported.`); throw new main.ExitWithCode(2); } return replaceFn(scaffoldName, filename); @@ -2700,8 +2726,8 @@ main.registerCommand({ const path = files.pathResolve(files.pathJoin(appDir, options.replaceFn)); const replaceFn = require(path).transformContents; if (typeof replaceFn !== 'function') { - Console.error(red('You must provide a valid function transformContents.')); - Console.error(yellow('The function should be named transformContents and should be exported.')); + Console.error(red`You must provide a valid function transformContents.`); + Console.error(yellow`The function should be named transformContents and should be exported.`); throw new main.ExitWithCode(2); } return replaceFn(scaffoldName, contents, fileName); @@ -2755,8 +2781,8 @@ main.registerCommand({ /// Program const rootFiles = getFilesInDir(appDir); if (!rootFiles.includes('.meteor')) { - Console.error(red('You must be in a Meteor project to run this command')); - Console.error(yellow('You can create a new Meteor project with `meteor create`')); + Console.error(red`You must be in a Meteor project to run this command`); + Console.error(yellow`You can create a new Meteor project with 'meteor create'`); throw new main.ExitWithCode(2); } @@ -2776,8 +2802,8 @@ main.registerCommand({ // create directory const isOk = files.mkdir_p(scaffoldPath); if (!isOk) { - Console.error(red('Something went wrong when creating the folder')); - Console.error(yellow('Do you have the correct permissions?')); + Console.error(red`Something went wrong when creating the folder`); + Console.error(yellow`Do you have the correct permissions?`); throw new main.ExitWithCode(2); } From cc6c738f9d7b44eb45074a7430d83ba8c554f671 Mon Sep 17 00:00:00 2001 From: Gabriel Grubba Date: Wed, 25 Jan 2023 15:30:48 -0300 Subject: [PATCH 019/152] docs: updated meteor mongo to explain that uses mongosh --- tools/cli/help.txt | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/tools/cli/help.txt b/tools/cli/help.txt index 71b63daf23..c5cc820414 100644 --- a/tools/cli/help.txt +++ b/tools/cli/help.txt @@ -478,14 +478,18 @@ commands can be accessed by pressing the up arrow. Connect to the local Mongo database Usage: meteor mongo [--url] -Opens a Mongo shell to view or manipulate collections. +Opens a Mongo shell(mongosh) to view or manipulate collections. Instead of opening a shell, specifying --url (-U) will return a URL suitable for an external program to connect to the database. For remote databases on deployed applications, the URL is valid for one hour. +Note that you must have mongosh installed to use this option. + Options: --url, -U return a Mongo database URL + --verbose, -v to show the errors that have occurred while connecting to the + database Currently, this feature can only be used when developing locally. The opened Mongo shell connects to the current project's local From e6537550d15fbc8eec3ab3d20f2df3631f8dd39a Mon Sep 17 00:00:00 2001 From: Gabriel Grubba Date: Wed, 25 Jan 2023 17:05:56 -0300 Subject: [PATCH 020/152] tests: updated match str --- tools/tests/mongo.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/tests/mongo.js b/tools/tests/mongo.js index ca73f19397..38c4fb641c 100644 --- a/tools/tests/mongo.js +++ b/tools/tests/mongo.js @@ -35,7 +35,7 @@ function testMeteorMongo(appDir) { // 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: 5\.\d+\.\d+/); + mongoRun.match(/MongoDB server version: v5\.\d+\.\d+/); // Make sure the shell does not display the banner about Mongo's free // monitoring service. @@ -43,7 +43,7 @@ function testMeteorMongo(appDir) { // Note: when mongo shell's input is not a tty, there is no prompt. mongoRun.write('db.version()\n'); - mongoRun.match(/5\.\d+\.\d+/); + mongoRun.match(/v5\.\d+\.\d+/); mongoRun.stop(); run.stop(); From 18708d54e4fa26f57b43e7a42f6c1a8f568b066a Mon Sep 17 00:00:00 2001 From: Gabriel Grubba Date: Wed, 25 Jan 2023 21:44:59 -0300 Subject: [PATCH 021/152] tests: updeted matcher text --- tools/tests/mongo.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/tests/mongo.js b/tools/tests/mongo.js index 38c4fb641c..94664d163d 100644 --- a/tools/tests/mongo.js +++ b/tools/tests/mongo.js @@ -35,7 +35,7 @@ function testMeteorMongo(appDir) { // 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: v5\.\d+\.\d+/); + mongoRun.match(/v5\.\d+\.\d+/); // Make sure the shell does not display the banner about Mongo's free // monitoring service. From 5c6b6f53d1f0855e0e4a73dba8d90c54ce4cc693 Mon Sep 17 00:00:00 2001 From: Gabriel Grubba Date: Thu, 26 Jan 2023 10:59:06 -0300 Subject: [PATCH 022/152] testes: fixed tests --- tools/tests/mongo.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/tools/tests/mongo.js b/tools/tests/mongo.js index 94664d163d..2ceaeae1a2 100644 --- a/tools/tests/mongo.js +++ b/tools/tests/mongo.js @@ -35,7 +35,9 @@ function testMeteorMongo(appDir) { // 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(/v5\.\d+\.\d+/); + mongoRun.match(/Current Mongosh Log ID:/); + mongoRun.match(/Using MongoDB:/); + mongoRun.match(/Using Mongosh:/); // Make sure the shell does not display the banner about Mongo's free // monitoring service. @@ -43,7 +45,7 @@ function testMeteorMongo(appDir) { // Note: when mongo shell's input is not a tty, there is no prompt. mongoRun.write('db.version()\n'); - mongoRun.match(/v5\.\d+\.\d+/); + mongoRun.match(/5\.\d+\.\d+/); mongoRun.stop(); run.stop(); From 9fbbad47330e04f09336518a4e3ea5b47ac25d8a Mon Sep 17 00:00:00 2001 From: Gabriel Grubba Date: Thu, 26 Jan 2023 15:40:57 -0300 Subject: [PATCH 023/152] tests: tryied again --- tools/tests/mongo.js | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/tools/tests/mongo.js b/tools/tests/mongo.js index 2ceaeae1a2..be58231d4f 100644 --- a/tools/tests/mongo.js +++ b/tools/tests/mongo.js @@ -35,17 +35,15 @@ function testMeteorMongo(appDir) { // 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(/Current Mongosh Log ID:/); - mongoRun.match(/Using MongoDB:/); - mongoRun.match(/Using Mongosh:/); - + mongoRun.match(/mongosh/); + // 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(/5\.\d+\.\d+/); + mongoRun.match(/v5\.\d+\.\d+/); mongoRun.stop(); run.stop(); From f0a9700ab9048c604555144c52f1dff9cb410fe5 Mon Sep 17 00:00:00 2001 From: Gabriel Grubba Date: Thu, 26 Jan 2023 16:12:34 -0300 Subject: [PATCH 024/152] docs: updated history.md --- docs/history.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/docs/history.md b/docs/history.md index ad2c936e44..62c92b495a 100644 --- a/docs/history.md +++ b/docs/history.md @@ -6,6 +6,7 @@ * Embedded Mongo now uses MongoDB 6.0.3 * Optimized makeLookupFunction by [radekmie](https://github.com/radekmie) [PR](https://github.com/meteor/meteor/pull/12462) * In async wrappers, catch exceptions and reject by [ebroder](https://github.com/ebroder) [PR](https://github.com/meteor/meteor/pull/12469) +* Bump Typescript to v4.9.4 by [Firfi](https://github.com/Firfi) [PR](https://github.com/meteor/meteor/pull/12465) #### Breaking Changes @@ -35,6 +36,12 @@ N/A * `mongo@1.16.5`: - In async wrappers, catch exceptions and reject +* `typescript@4.9.4` + - Updated typescript to version 4.9.4. + +* `@meteorjs/babel@7.18.0-beta.6` + - Updated typescript to version 4.9.4. + #### Special thanks to - [@radekmie](https://github.com/radekmie). From 2fe86ab7163362b504b4974c70cd982ed3115308 Mon Sep 17 00:00:00 2001 From: Gabriel Grubba Date: Thu, 26 Jan 2023 16:13:07 -0300 Subject: [PATCH 025/152] chore: adjusted semver --- packages/babel-compiler/package.js | 2 +- packages/ecmascript/package.js | 2 +- packages/typescript/package.js | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/babel-compiler/package.js b/packages/babel-compiler/package.js index dd37ec9f5f..37addc68b4 100644 --- a/packages/babel-compiler/package.js +++ b/packages/babel-compiler/package.js @@ -1,7 +1,7 @@ Package.describe({ name: "babel-compiler", summary: "Parser/transpiler for ECMAScript 2015+ syntax", - version: '7.10.3' + version: '7.10.3-beta2110.0' }); Npm.depends({ diff --git a/packages/ecmascript/package.js b/packages/ecmascript/package.js index edbb12df58..83874369b9 100644 --- a/packages/ecmascript/package.js +++ b/packages/ecmascript/package.js @@ -1,6 +1,6 @@ Package.describe({ name: 'ecmascript', - version: '0.16.5', + version: '0.16.6-beta2110.0', summary: 'Compiler plugin that supports ES2015+ in all .js files', documentation: 'README.md', }); diff --git a/packages/typescript/package.js b/packages/typescript/package.js index d0403b86c4..52865f26f2 100644 --- a/packages/typescript/package.js +++ b/packages/typescript/package.js @@ -1,6 +1,6 @@ Package.describe({ name: 'typescript', - version: '4.9.4', + version: '4.9.4-beta2110.0', summary: 'Compiler plugin that compiles TypeScript and ECMAScript in .ts and .tsx files', documentation: 'README.md', From 4047047e039ad77e9a70239ea2655f244caac33e Mon Sep 17 00:00:00 2001 From: Gabriel Grubba Date: Thu, 26 Jan 2023 16:13:49 -0300 Subject: [PATCH 026/152] adding with computation tracker to types --- packages/tracker/tracker.d.ts | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/packages/tracker/tracker.d.ts b/packages/tracker/tracker.d.ts index 9ab6e0bdc5..6b7620d67a 100644 --- a/packages/tracker/tracker.d.ts +++ b/packages/tracker/tracker.d.ts @@ -109,6 +109,16 @@ export namespace Tracker { } ): Computation; + /** + * Helper function to make the tracker work with promises. + * @param computation Computation that tracked + * @param func async function that needs to be called and be reactive + */ + function withComputation( + computation: Computation, + func: () => Promise + ): Promise; + /** * Process all reactive updates immediately and ensure that all invalidated computations are rerun. */ From 2ec87891532d1f79134c6f9ba2e6ab2796cf2262 Mon Sep 17 00:00:00 2001 From: Gabriel Grubba Date: Thu, 26 Jan 2023 16:14:00 -0300 Subject: [PATCH 027/152] chore: update tracker sem ver --- packages/tracker/package.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/tracker/package.js b/packages/tracker/package.js index 4d466ebe5c..d5f05677c1 100644 --- a/packages/tracker/package.js +++ b/packages/tracker/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "Dependency tracker to allow reactive callbacks", - version: "1.3.0" + version: "1.3.1-beta2110.0" }); Package.onUse(function (api) { From b4bfdec85b3763a17feedc0368913a21817c5209 Mon Sep 17 00:00:00 2001 From: Gabriel Grubba Date: Thu, 26 Jan 2023 16:19:58 -0300 Subject: [PATCH 028/152] docs: updated history.md --- docs/history.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/docs/history.md b/docs/history.md index 62c92b495a..db3e639d46 100644 --- a/docs/history.md +++ b/docs/history.md @@ -36,6 +36,9 @@ N/A * `mongo@1.16.5`: - In async wrappers, catch exceptions and reject +* `Tracker@1.3.1`: + - Added missing withComputation method in types + * `typescript@4.9.4` - Updated typescript to version 4.9.4. From 042f0786fe524517041e2affb80356ccf00fb0b0 Mon Sep 17 00:00:00 2001 From: Gabriel Grubba Date: Thu, 26 Jan 2023 16:30:45 -0300 Subject: [PATCH 029/152] chore: updated sem-ver --- packages/minimongo/package.js | 2 +- packages/npm-mongo/package.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/minimongo/package.js b/packages/minimongo/package.js index d3d9d110e4..9ab2e9d716 100644 --- a/packages/minimongo/package.js +++ b/packages/minimongo/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "Meteor's client-side datastore: a port of MongoDB to Javascript", - version: '1.9.2-beta211.0' + version: '1.9.2-beta2110.0' }); Package.onUse(api => { diff --git a/packages/npm-mongo/package.js b/packages/npm-mongo/package.js index 66712466c5..4163316862 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: '4.13.0', + version: '4.13.0-beta2110.0', documentation: null }); From 7441d4f2acb1532dea73630c0f02c783985f475a Mon Sep 17 00:00:00 2001 From: Gabriel Grubba Date: Thu, 26 Jan 2023 16:36:49 -0300 Subject: [PATCH 030/152] chore: updates on the dev bundle --- meteor | 2 +- scripts/build-dev-bundle-common.sh | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/meteor b/meteor index d4a7652a57..a15cf9668e 100755 --- a/meteor +++ b/meteor @@ -1,6 +1,6 @@ #!/usr/bin/env bash -BUNDLE_VERSION=14.21.2.4 +BUNDLE_VERSION=14.21.2.5 # OS Check. Put here because here is where we download the precompiled diff --git a/scripts/build-dev-bundle-common.sh b/scripts/build-dev-bundle-common.sh index 6928825c20..4b7541a1f2 100644 --- a/scripts/build-dev-bundle-common.sh +++ b/scripts/build-dev-bundle-common.sh @@ -6,8 +6,7 @@ set -u UNAME=$(uname) ARCH=$(uname -m) NODE_VERSION=14.21.2 -MONGO_VERSION_64BIT=5.0.5 -MONGO_VERSION_32BIT=3.2.22 +MONGO_VERSION_64BIT=6.0.3 NPM_VERSION=6.14.17 From 7b27d65fcb0928693dcc6444bcc550b3734ae318 Mon Sep 17 00:00:00 2001 From: Gabriel Grubba Date: Thu, 26 Jan 2023 17:21:30 -0300 Subject: [PATCH 031/152] updated again --- scripts/generate-dev-bundle.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/generate-dev-bundle.sh b/scripts/generate-dev-bundle.sh index 5a6d10eeb6..0db482d7f9 100755 --- a/scripts/generate-dev-bundle.sh +++ b/scripts/generate-dev-bundle.sh @@ -85,7 +85,7 @@ curl -L "${MONGO_URL}" | tar zx # Put Mongo binaries in the right spot (mongodb/bin) mkdir -p "mongodb/bin" mv "${MONGO_NAME}/bin/mongod" "mongodb/bin" -mv "${MONGO_NAME}/bin/mongo" "mongodb/bin" +mv "${MONGO_NAME}/bin/mongos" "mongodb/bin" rm -rf "${MONGO_NAME}" # export path so we use the downloaded node and npm From abf2e38bdc5f87090fa1f91424851700476f55f5 Mon Sep 17 00:00:00 2001 From: Gabriel Grubba Date: Thu, 26 Jan 2023 17:29:34 -0300 Subject: [PATCH 032/152] updated mongodb 32bits --- scripts/build-dev-bundle-common.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/scripts/build-dev-bundle-common.sh b/scripts/build-dev-bundle-common.sh index 4b7541a1f2..7f5b1fda21 100644 --- a/scripts/build-dev-bundle-common.sh +++ b/scripts/build-dev-bundle-common.sh @@ -7,6 +7,7 @@ UNAME=$(uname) ARCH=$(uname -m) NODE_VERSION=14.21.2 MONGO_VERSION_64BIT=6.0.3 +MONGO_VERSION_32BIT=3.2.22 NPM_VERSION=6.14.17 From d028fe8a114d036711b211985800f2b00be0418f Mon Sep 17 00:00:00 2001 From: Gabriel Grubba Date: Thu, 26 Jan 2023 17:34:13 -0300 Subject: [PATCH 033/152] updated windows scripts --- scripts/generate-dev-bundle.ps1 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/generate-dev-bundle.ps1 b/scripts/generate-dev-bundle.ps1 index 13863f0b9d..9d8d5e81d3 100644 --- a/scripts/generate-dev-bundle.ps1 +++ b/scripts/generate-dev-bundle.ps1 @@ -253,8 +253,8 @@ Function Add-Mongo { Write-Host "Putting MongoDB mongod.exe in mongodb\bin" -ForegroundColor Magenta cp "$DIR\mongodb\$mongo_zip_name\bin\mongod.exe" $DIR\mongodb\bin - Write-Host "Putting MongoDB mongo.exe in mongodb\bin" -ForegroundColor Magenta - cp "$DIR\mongodb\$mongo_zip_name\bin\mongo.exe" $DIR\mongodb\bin + Write-Host "Putting MongoDB mongos.exe in mongodb\bin" -ForegroundColor Magenta + cp "$DIR\mongodb\$mongo_zip_name\bin\mongos.exe" $DIR\mongodb\bin Write-Host "Removing the old Mongo zip..." -ForegroundColor Magenta rm -Recurse -Force $mongo_zip From b9907910c8058269d52e23acf523d0e5d350e9c2 Mon Sep 17 00:00:00 2001 From: Gabriel Grubba Date: Thu, 26 Jan 2023 17:54:28 -0300 Subject: [PATCH 034/152] =?UTF-8?q?Meteor=20version=20to=202.11.0-beta.0?= =?UTF-8?q?=C2=A0:comet:?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 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 f728723ddf..aa4b6158ad 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: '2.10.0', + version: '2.11.0-beta.0', }); Package.includeTool(); diff --git a/scripts/admin/meteor-release-experimental.json b/scripts/admin/meteor-release-experimental.json index 55f056f83a..ad091e6616 100644 --- a/scripts/admin/meteor-release-experimental.json +++ b/scripts/admin/meteor-release-experimental.json @@ -1,6 +1,6 @@ { "track": "METEOR", - "version": "2.10.0-rc.0", + "version": "2.11.0-beta.0", "recommended": false, "official": false, "description": "Meteor experimental release" From 886f7d9256ea69d30224a065e549373e9bde8a0c Mon Sep 17 00:00:00 2001 From: Gabriel Grubba Date: Thu, 26 Jan 2023 18:05:04 -0300 Subject: [PATCH 035/152] Meteor version to 2.11.0-beta.0 :comet: --- packages/mongo/package.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/mongo/package.js b/packages/mongo/package.js index 0faeeac7b4..0a79089701 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.16.5-beta211.0' + version: '1.16.5-beta2110.0' }); Npm.depends({ From 4b9844fb9e2e5c7593297b84878036ccc1519804 Mon Sep 17 00:00:00 2001 From: Joshua Maserow Date: Thu, 26 Jan 2023 23:59:43 +0200 Subject: [PATCH 036/152] 'Made minifyStdCSS aka standard-minifier-css debuggable. It becomes verbose with either --verbose or --debug commandline arguments or DEBUG_CSS environment variable, which can be used to prevent it being verbose with a value of "0" or "false". Bumped version number.' --- packages/standard-minifier-css/package.js | 2 +- .../plugin/minify-css.js | 47 +++++++++++++++++-- 2 files changed, 43 insertions(+), 6 deletions(-) diff --git a/packages/standard-minifier-css/package.js b/packages/standard-minifier-css/package.js index 7d6b2746e9..f77019a615 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.8.3', + version: '1.8.4', summary: 'Standard css minifier used with Meteor apps by default.', documentation: 'README.md' }); diff --git a/packages/standard-minifier-css/plugin/minify-css.js b/packages/standard-minifier-css/plugin/minify-css.js index 8ac2b0db75..7507c2ebe4 100644 --- a/packages/standard-minifier-css/plugin/minify-css.js +++ b/packages/standard-minifier-css/plugin/minify-css.js @@ -3,6 +3,10 @@ import { createHash } from "crypto"; import LRU from "lru-cache"; import { loadPostCss, watchAndHashDeps, usePostCss } from './postcss.js'; +const verbose = (process.env.DEBUG_CSS!=="false" && process.env.DEBUG_CSS!=="0" && ( + process.env.DEBUG_CSS || process.argv.indexOf('--verbose') > -1 || process.argv.indexOf('--debug') > -1 +)); + Plugin.registerMinifier({ extensions: ["css"], archMatching: "web" @@ -18,12 +22,19 @@ class CssToolsMinifier { }); this.depsHashCache = Object.create(null); + this.totalSize = 0; + this.totalMinifiedSize = 0; + this.haveHitAnyCache = false; // once we hit the cache, there's no point in showing 'Adding CSS', we know it will be fine and floods the terminal needlessly. } beforeMinify() { this.depsHashCache = Object.create(null); } + formatSize(bytes) { + return bytes < 1024 ? `${bytes} bytes` : `${Math.round(bytes/1024)}k`; + } + watchAndHashDeps(deps, file) { const cacheKey = JSON.stringify(deps); @@ -47,11 +58,28 @@ class CssToolsMinifier { cachedResult && cachedResult.depsCacheKey === this.watchAndHashDeps(cachedResult.deps, files[0]) ) { + if (verbose && !this.haveHitAnyCache) { + clearTimeout(this.tmrShowStats); // after we hit the cache, it's a good time to show stats + this.tmrShowStats = setTimeout( () => { // we use a timeout to give all files a chance to finish being minified + const stats = [`minifyStdCSS: Total CSS ${this.formatSize(this.totalSize)}`]; + if (this.totalMinifiedSize!==0) { + stats.push(`minified ${this.formatSize(this.totalMinifiedSize)}`); + stats.push(`reduction ${Math.round(100-this.totalMinifiedSize*100/this.totalSize)}%`); + } + console.log(stats.join(", ")); + }, 500); + this.haveHitAnyCache = true; + } return cachedResult.stylesheets; } let result = []; + if (verbose) process.stdout.write(` > Merging [ ${files.map( ({ _source:{ targetPath } }) => targetPath ).join(' ')} ]`); const merged = await mergeCss(files, postcssConfig); + if (verbose) { + process.stdout.write(` > ${this.formatSize(merged.code.length)}`); + this.totalSize += merged.code.length; + } if (mode === 'development') { result = [{ @@ -60,13 +88,20 @@ class CssToolsMinifier { path: 'merged-stylesheets.css' }]; } else { - const minifiedFiles = await CssTools.minifyCssAsync(merged.code); + if (verbose) process.stdout.write(` > minifying`); - result = minifiedFiles.map(minified => ({ - data: minified - })); + const minifiedFiles = await CssTools.minifyCssAsync(merged.code); + result = minifiedFiles.map( minified => ({ data:minified }) ); + + if (verbose) { + const minifiedSize = minifiedFiles.reduce( (sum, minifiedFile) => sum + minifiedFile.length, 0); + process.stdout.write(` > ${this.formatSize(minifiedSize)}`); + this.totalMinifiedSize += minifiedSize; + } } + if (verbose) process.stdout.write('\n'); + this.cache.set(cacheKey, { stylesheets: result, deps: merged.deps, @@ -81,13 +116,15 @@ class CssToolsMinifier { const { error, postcssConfig } = await loadPostCss(); if (error) { + if (verbose) console.log('processFilesForBundle loadPostCss error', error); files[0].error(error); return; } const stylesheets = await this.minifyFiles(files, minifyMode, postcssConfig); - stylesheets.forEach(stylesheet => { + stylesheets.forEach( (stylesheet,i) => { + if (verbose && !this.haveHitAnyCache) process.stdout.write(`Adding CSS${i===0?'':' '+i+1}`); files[0].addStylesheet(stylesheet); }); } From ec26f011088e672dee8f87289dce0e8c2708b34f Mon Sep 17 00:00:00 2001 From: Joshua Maserow Date: Fri, 27 Jan 2023 00:54:13 +0200 Subject: [PATCH 037/152] 'minify-css.js Cleaned up the timeout code.' --- packages/standard-minifier-css/plugin/minify-css.js | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/packages/standard-minifier-css/plugin/minify-css.js b/packages/standard-minifier-css/plugin/minify-css.js index 7507c2ebe4..0768a2422d 100644 --- a/packages/standard-minifier-css/plugin/minify-css.js +++ b/packages/standard-minifier-css/plugin/minify-css.js @@ -59,8 +59,8 @@ class CssToolsMinifier { cachedResult.depsCacheKey === this.watchAndHashDeps(cachedResult.deps, files[0]) ) { if (verbose && !this.haveHitAnyCache) { - clearTimeout(this.tmrShowStats); // after we hit the cache, it's a good time to show stats - this.tmrShowStats = setTimeout( () => { // we use a timeout to give all files a chance to finish being minified + this.haveHitAnyCache = true; + setTimeout( () => { // we use a timeout to give all files a chance to finish being minified const stats = [`minifyStdCSS: Total CSS ${this.formatSize(this.totalSize)}`]; if (this.totalMinifiedSize!==0) { stats.push(`minified ${this.formatSize(this.totalMinifiedSize)}`); @@ -68,7 +68,6 @@ class CssToolsMinifier { } console.log(stats.join(", ")); }, 500); - this.haveHitAnyCache = true; } return cachedResult.stylesheets; } From a6c5b122b3258544c52335dfb43ef39128a84004 Mon Sep 17 00:00:00 2001 From: Joshua Maserow Date: Fri, 27 Jan 2023 11:31:01 +0200 Subject: [PATCH 038/152] 'minify-css.js destructure process.env.DEBUG_CSS and process.argv for terseness.' --- packages/standard-minifier-css/plugin/minify-css.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/packages/standard-minifier-css/plugin/minify-css.js b/packages/standard-minifier-css/plugin/minify-css.js index 0768a2422d..ddb8d759ab 100644 --- a/packages/standard-minifier-css/plugin/minify-css.js +++ b/packages/standard-minifier-css/plugin/minify-css.js @@ -3,8 +3,9 @@ import { createHash } from "crypto"; import LRU from "lru-cache"; import { loadPostCss, watchAndHashDeps, usePostCss } from './postcss.js'; -const verbose = (process.env.DEBUG_CSS!=="false" && process.env.DEBUG_CSS!=="0" && ( - process.env.DEBUG_CSS || process.argv.indexOf('--verbose') > -1 || process.argv.indexOf('--debug') > -1 +const { argv, env:{ DEBUG_CSS } } = process; +const verbose = (DEBUG_CSS!=="false" && DEBUG_CSS!=="0" && ( + DEBUG_CSS || argv.indexOf('--verbose') > -1 || argv.indexOf('--debug') > -1 )); Plugin.registerMinifier({ From 0559229370b4ddadeed587361775b22b4e09889f Mon Sep 17 00:00:00 2001 From: Joshua Maserow Date: Fri, 27 Jan 2023 11:32:01 +0200 Subject: [PATCH 039/152] 'package.js Increased package version to 1.9.0 to reflect new feature release.' --- packages/standard-minifier-css/package.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/standard-minifier-css/package.js b/packages/standard-minifier-css/package.js index f77019a615..d934253332 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.8.4', + version: '1.9.0', summary: 'Standard css minifier used with Meteor apps by default.', documentation: 'README.md' }); From 39916d761a6996c25731fb201b97b6ea2bfac86b Mon Sep 17 00:00:00 2001 From: Joshua Maserow Date: Fri, 27 Jan 2023 11:40:22 +0200 Subject: [PATCH 040/152] 'minify-css.js Changed `if (error)` to use console.error, rather than console.log' --- packages/standard-minifier-css/plugin/minify-css.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/standard-minifier-css/plugin/minify-css.js b/packages/standard-minifier-css/plugin/minify-css.js index ddb8d759ab..91303ba0b2 100644 --- a/packages/standard-minifier-css/plugin/minify-css.js +++ b/packages/standard-minifier-css/plugin/minify-css.js @@ -116,7 +116,7 @@ class CssToolsMinifier { const { error, postcssConfig } = await loadPostCss(); if (error) { - if (verbose) console.log('processFilesForBundle loadPostCss error', error); + if (verbose) console.error('processFilesForBundle loadPostCss error', error); files[0].error(error); return; } From d09becbe17e56fd3898cc3ad5259222eb8b6b926 Mon Sep 17 00:00:00 2001 From: Joshua Maserow Date: Fri, 27 Jan 2023 12:27:07 +0200 Subject: [PATCH 041/152] 'minify-css.js package.js Implemented Log.error() and Log.warn()' --- packages/standard-minifier-css/package.js | 4 +++- packages/standard-minifier-css/plugin/minify-css.js | 5 +++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/packages/standard-minifier-css/package.js b/packages/standard-minifier-css/package.js index d934253332..7af43ea370 100644 --- a/packages/standard-minifier-css/package.js +++ b/packages/standard-minifier-css/package.js @@ -9,7 +9,8 @@ Package.registerBuildPlugin({ name: "minifyStdCSS", use: [ 'minifier-css', - 'ecmascript' + 'ecmascript', + 'logging', ], npmDependencies: { "@babel/runtime": "7.18.9", @@ -25,4 +26,5 @@ Package.registerBuildPlugin({ Package.onUse(function(api) { api.use('minifier-css@1.5.4'); api.use('isobuild:minifier-plugin@1.0.0'); + api.use('logging@1.3.1'); }); diff --git a/packages/standard-minifier-css/plugin/minify-css.js b/packages/standard-minifier-css/plugin/minify-css.js index 91303ba0b2..6a28464c4a 100644 --- a/packages/standard-minifier-css/plugin/minify-css.js +++ b/packages/standard-minifier-css/plugin/minify-css.js @@ -2,6 +2,7 @@ import sourcemap from "source-map"; import { createHash } from "crypto"; import LRU from "lru-cache"; import { loadPostCss, watchAndHashDeps, usePostCss } from './postcss.js'; +import { Log } from 'meteor/logging'; const { argv, env:{ DEBUG_CSS } } = process; const verbose = (DEBUG_CSS!=="false" && DEBUG_CSS!=="0" && ( @@ -116,7 +117,7 @@ class CssToolsMinifier { const { error, postcssConfig } = await loadPostCss(); if (error) { - if (verbose) console.error('processFilesForBundle loadPostCss error', error); + if (verbose) Log.error('processFilesForBundle loadPostCss error', error); files[0].error(error); return; } @@ -326,5 +327,5 @@ function warnCb (filename, msg) { // XXX make this a buildmessage.warning call rather than a random log. // this API would be like buildmessage.error, but wouldn't cause // the build to fail. - console.log(`${filename}: warn: ${msg}`); + Log.warn(`${filename}: warn: ${msg}`); }; From bbacd0ce7749796d79c21a72669ee5f4fb7e6aa5 Mon Sep 17 00:00:00 2001 From: Joshua Maserow Date: Fri, 27 Jan 2023 12:47:41 +0200 Subject: [PATCH 042/152] 'package.js postcss.js Added trailing commas 'This makes version-control diffs cleaner and editing code might be less troublesome.' https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Trailing_commas IIRC I first learned about this many years ago from a Meteor contributor, but can't find the original reference, perhaps it was a change to the meteor babel package.' --- packages/standard-minifier-css/package.js | 6 +++--- packages/standard-minifier-css/plugin/postcss.js | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/standard-minifier-css/package.js b/packages/standard-minifier-css/package.js index 7af43ea370..c8f218fb66 100644 --- a/packages/standard-minifier-css/package.js +++ b/packages/standard-minifier-css/package.js @@ -2,7 +2,7 @@ Package.describe({ name: 'standard-minifier-css', version: '1.9.0', summary: 'Standard css minifier used with Meteor apps by default.', - documentation: 'README.md' + documentation: 'README.md', }); Package.registerBuildPlugin({ @@ -16,10 +16,10 @@ Package.registerBuildPlugin({ "@babel/runtime": "7.18.9", "source-map": "0.7.4", "lru-cache": "6.0.0", - "micromatch": "4.0.5" + "micromatch": "4.0.5", }, sources: [ - 'plugin/minify-css.js' + 'plugin/minify-css.js', ] }); diff --git a/packages/standard-minifier-css/plugin/postcss.js b/packages/standard-minifier-css/plugin/postcss.js index 9bcf35b51c..f761e5371a 100644 --- a/packages/standard-minifier-css/plugin/postcss.js +++ b/packages/standard-minifier-css/plugin/postcss.js @@ -16,7 +16,7 @@ const missingPostCssError = new Error([ 'directory. Please run the following command to install it:', ' meteor npm install postcss@8', 'or disable postcss by removing the postcss config.', - '' + '', ].join('\n')); export async function loadPostCss() { @@ -73,7 +73,7 @@ export async function loadPostCss() { 'directory. standard-minifier-css is only compatible with', 'version 8 of PostCSS. Please restart Meteor after installing', 'a supported version of PostCSS', - '' + '', ].join('\n')); return { error }; From ab9511442e5c7c7892a9b5dc68f6f98e38483982 Mon Sep 17 00:00:00 2001 From: Joshua Maserow Date: Fri, 27 Jan 2023 12:48:13 +0200 Subject: [PATCH 043/152] 'postcss.js Removed whitespace from empty lines.' --- .../standard-minifier-css/plugin/postcss.js | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/packages/standard-minifier-css/plugin/postcss.js b/packages/standard-minifier-css/plugin/postcss.js index f761e5371a..9650b75012 100644 --- a/packages/standard-minifier-css/plugin/postcss.js +++ b/packages/standard-minifier-css/plugin/postcss.js @@ -109,7 +109,7 @@ export const watchAndHashDeps = Profile( let fileCount = 0; let folderCount = 0; let start = performance.now(); - + deps.forEach(dep => { if (dep.type === 'dependency') { fileCount += 1; @@ -123,16 +123,16 @@ export const watchAndHashDeps = Profile( } } }); - - + + Object.entries(globsByDir).forEach(([parentDir, globs]) => { const matchers = globs.map(glob => micromatch.matcher(glob)); - + function walk(relDir) { const absDir = path.join(parentDir, relDir); hash.update(absDir).update('\0'); folderCount += 1; - + const entries = fs.readdirWithTypesSync(absDir); for (const entry of entries) { const relPath = path.join(relDir, entry.name); @@ -148,12 +148,12 @@ export const watchAndHashDeps = Profile( } } } - + walk('./'); }); - + let digest = hash.digest('hex'); - + if (DEBUG_CACHE) { console.log('--- PostCSS Cache Info ---'); console.log('Glob deps', JSON.stringify(globsByDir, null, 2)); @@ -162,6 +162,6 @@ export const watchAndHashDeps = Profile( console.log('Created dep cache key in', performance.now() - start, 'ms'); console.log('--------------------------'); } - + return digest; }); From 6490e49c20a95dee14e208f7c2ef15e4567a6e9f Mon Sep 17 00:00:00 2001 From: Joshua Maserow Date: Fri, 27 Jan 2023 13:28:03 +0200 Subject: [PATCH 044/152] 'minify-css.js Added trailing commas 'This makes version-control diffs cleaner and editing code might be less troublesome.' https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Trailing_commas' --- .../plugin/minify-css.js | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/packages/standard-minifier-css/plugin/minify-css.js b/packages/standard-minifier-css/plugin/minify-css.js index 6a28464c4a..319b39e8e3 100644 --- a/packages/standard-minifier-css/plugin/minify-css.js +++ b/packages/standard-minifier-css/plugin/minify-css.js @@ -11,7 +11,7 @@ const verbose = (DEBUG_CSS!=="false" && DEBUG_CSS!=="0" && ( Plugin.registerMinifier({ extensions: ["css"], - archMatching: "web" + archMatching: "web", }, function () { const minifier = new CssToolsMinifier(); return minifier; @@ -20,7 +20,7 @@ Plugin.registerMinifier({ class CssToolsMinifier { constructor() { this.cache = new LRU({ - max: 100 + max: 100, }); this.depsHashCache = Object.create(null); @@ -86,7 +86,7 @@ class CssToolsMinifier { result = [{ data: merged.code, sourceMap: merged.sourceMap, - path: 'merged-stylesheets.css' + path: 'merged-stylesheets.css', }]; } else { if (verbose) process.stdout.write(` > minifying`); @@ -106,7 +106,7 @@ class CssToolsMinifier { this.cache.set(cacheKey, { stylesheets: result, deps: merged.deps, - depsCacheKey: this.watchAndHashDeps(merged.deps, files[0]) + depsCacheKey: this.watchAndHashDeps(merged.deps, files[0]), }); return result; } @@ -166,7 +166,7 @@ const mergeCss = Profile("mergeCss", async function (css, postcssConfig) { postcssConfig.plugins ).process(content, { from: Plugin.convertToOSPath(file.getSourcePath()), - parser: postcssConfig.options.parser + parser: postcssConfig.options.parser, }); result.warnings().forEach(warning => { @@ -188,7 +188,7 @@ const mergeCss = Profile("mergeCss", async function (css, postcssConfig) { file.error({ message: e.reason, line: e.line, - column: e.column + column: e.column, }); } else { // Just in case it's not the normal error the library makes. @@ -209,7 +209,7 @@ const mergeCss = Profile("mergeCss", async function (css, postcssConfig) { const stringifiedCss = CssTools.stringifyCss(mergedCssAst, { sourcemap: true, // don't try to read the referenced sourcemaps from the input - inputSourcemaps: false + inputSourcemaps: false, }); if (! stringifiedCss.code) { @@ -258,7 +258,7 @@ const mergeCss = Profile("mergeCss", async function (css, postcssConfig) { let original = { line: mapping.originalLine, - column: mapping.originalColumn + column: mapping.originalColumn, }; // If there is a source map for the original file, e.g., if it has been @@ -294,7 +294,7 @@ const mergeCss = Profile("mergeCss", async function (css, postcssConfig) { newMap.addMapping({ generated: { line: mapping.generatedLine, - column: mapping.generatedColumn + column: mapping.generatedColumn, }, original, source, @@ -319,7 +319,7 @@ const mergeCss = Profile("mergeCss", async function (css, postcssConfig) { return { code: stringifiedCss.code, sourceMap: newMap.toString(), - deps + deps, }; }); From 08645e236097e23648c4d2eb68605d38844908f8 Mon Sep 17 00:00:00 2001 From: Joshua Maserow Date: Fri, 27 Jan 2023 13:46:35 +0200 Subject: [PATCH 045/152] 'postcss.js Added trailing comma 'This makes version-control diffs cleaner and editing code might be less troublesome.' https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Trailing_commas' --- packages/standard-minifier-css/plugin/postcss.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/standard-minifier-css/plugin/postcss.js b/packages/standard-minifier-css/plugin/postcss.js index 9650b75012..7e374d8d25 100644 --- a/packages/standard-minifier-css/plugin/postcss.js +++ b/packages/standard-minifier-css/plugin/postcss.js @@ -52,7 +52,7 @@ export async function loadPostCss() { e.message = `While loading postcss config: ${e.message}`; return { - error: e + error: e, }; } From 36837749d01c8a63a160d65bcc3e350f6386339a Mon Sep 17 00:00:00 2001 From: Joshua Maserow Date: Fri, 27 Jan 2023 13:47:07 +0200 Subject: [PATCH 046/152] 'postcss.js Added missing semicolon and removed whitespace from empty line.' --- packages/standard-minifier-css/plugin/postcss.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/standard-minifier-css/plugin/postcss.js b/packages/standard-minifier-css/plugin/postcss.js index 7e374d8d25..a34d3fd455 100644 --- a/packages/standard-minifier-css/plugin/postcss.js +++ b/packages/standard-minifier-css/plugin/postcss.js @@ -95,7 +95,7 @@ export function usePostCss(file, postcssConfig) { const path = file.getPathInBundle(); const excluded = excludedPackages.some(name => { - return path.includes(`packages/${name.replace(':', '_')}`) + return path.includes(`packages/${name.replace(':', '_')}`); }); return !excluded; @@ -136,7 +136,7 @@ export const watchAndHashDeps = Profile( const entries = fs.readdirWithTypesSync(absDir); for (const entry of entries) { const relPath = path.join(relDir, entry.name); - + if (entry.isFile() && matchers.some(isMatch => isMatch(relPath))) { const absPath = path.join(absDir, entry.name); fileCount += 1; From 86bc95626d0173b3c16ec226f6fdff8ee689a6f6 Mon Sep 17 00:00:00 2001 From: Jan Dvorak Date: Fri, 27 Jan 2023 22:22:14 +0900 Subject: [PATCH 047/152] Update Apollo starter to Apollo server v4 --- .../skel-apollo/imports/ui/App.jsx | 5 ++-- tools/static-assets/skel-apollo/package.json | 9 ++++--- .../skel-apollo/server/apollo.js | 25 ++++++++++++------- 3 files changed, 23 insertions(+), 16 deletions(-) diff --git a/tools/static-assets/skel-apollo/imports/ui/App.jsx b/tools/static-assets/skel-apollo/imports/ui/App.jsx index 7ebf0cb3a0..b6d8114398 100644 --- a/tools/static-assets/skel-apollo/imports/ui/App.jsx +++ b/tools/static-assets/skel-apollo/imports/ui/App.jsx @@ -1,6 +1,5 @@ import React from 'react'; -import { InMemoryCache, ApolloProvider, ApolloClient, ApolloLink } from '@apollo/client'; -import { BatchHttpLink } from '@apollo/client/link/batch-http' +import { InMemoryCache, ApolloProvider, ApolloClient, ApolloLink, HttpLink } from '@apollo/client'; // import { MeteorAccountsLink } from 'meteor/apollo' import { Hello } from './Hello.jsx'; import { Info } from './Info.jsx'; @@ -9,7 +8,7 @@ const cache = new InMemoryCache().restore(window.__APOLLO_STATE__); const link = ApolloLink.from([ // MeteorAccountsLink(), - new BatchHttpLink({ + new HttpLink({ uri: '/graphql' }) ]); diff --git a/tools/static-assets/skel-apollo/package.json b/tools/static-assets/skel-apollo/package.json index 5b0908c844..f0b3fcf289 100644 --- a/tools/static-assets/skel-apollo/package.json +++ b/tools/static-assets/skel-apollo/package.json @@ -8,10 +8,11 @@ "visualize": "meteor --production --extra-packages bundle-visualizer" }, "dependencies": { - "@apollo/client": "^3.7.3", - "@babel/runtime": "^7.20.7", - "apollo-server-express": "^3.10.0", - "express": "^4.18.1", + "@apollo/client": "^3.7.5", + "@apollo/server": "^4.3.2", + "@babel/runtime": "^7.20.13", + "body-parser": "^1.20.1", + "express": "^4.18.2", "graphql": "^16.6.0", "meteor-node-stubs": "^1.2.5", "react": "^18.2.0", diff --git a/tools/static-assets/skel-apollo/server/apollo.js b/tools/static-assets/skel-apollo/server/apollo.js index 376f28f1c2..44b51d0cac 100644 --- a/tools/static-assets/skel-apollo/server/apollo.js +++ b/tools/static-assets/skel-apollo/server/apollo.js @@ -1,8 +1,11 @@ -import { ApolloServer } from 'apollo-server-express'; +import { ApolloServer } from '@apollo/server'; import { WebApp } from 'meteor/webapp'; import { getUser } from 'meteor/apollo'; import { LinksCollection } from '/imports/api/links'; import typeDefs from '/imports/apollo/schema.graphql'; +import express from 'express'; +import { expressMiddleware } from '@apollo/server/express4'; +import { json } from 'body-parser'; const resolvers = { Query: { @@ -11,21 +14,25 @@ const resolvers = { } }; +const context = async ({ req }) => ({ + user: await getUser(req.headers.authorization) +}) + const server = new ApolloServer({ cache: 'bounded', typeDefs, resolvers, - context: async ({ req }) => ({ - user: await getUser(req.headers.authorization) - }) }); export async function startApolloServer() { await server.start(); - const app = WebApp.connectHandlers; - server.applyMiddleware({ - app, - cors: true - }); + WebApp.connectHandlers.use( + '/graphql', // Configure the path as you want. + express() // Create new Express router. + .disable('etag') // We don't server GET requests, so there's no need for that. + .disable('x-powered-by') // A small safety measure. + .use(json()) // From `body-parser`. + .use(expressMiddleware(server, { context })), // From `@apollo/server/express4`. + ) } From 144193f449b6f97d671b3db8d1865c72c7545cac Mon Sep 17 00:00:00 2001 From: Dan Rosart Date: Sat, 28 Jan 2023 18:13:24 -0800 Subject: [PATCH 048/152] Ensure the meteor.loginServiceConfiguration subscription always becomes ready. --- packages/accounts-base/accounts_server.js | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/accounts-base/accounts_server.js b/packages/accounts-base/accounts_server.js index 2fd0a6d41b..9c44679a5b 100644 --- a/packages/accounts-base/accounts_server.js +++ b/packages/accounts-base/accounts_server.js @@ -766,6 +766,7 @@ export class AccountsServer extends AccountsCommon { const { ServiceConfiguration } = Package['service-configuration']; return ServiceConfiguration.configurations.find({}, {fields: {secret: 0}}); } + this.ready(); }, {is_auto: true}); // not technically autopublish, but stops the warning. // Use Meteor.startup to give other packages a chance to call From 09096973d1016207edc693a5de8e4c3f9ed10df1 Mon Sep 17 00:00:00 2001 From: Gabriel Grubba Date: Mon, 30 Jan 2023 09:47:19 -0300 Subject: [PATCH 049/152] added babel-compile .lock file --- .../.npm/package/npm-shrinkwrap.json | 48 +++++++++---------- 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/packages/babel-compiler/.npm/package/npm-shrinkwrap.json b/packages/babel-compiler/.npm/package/npm-shrinkwrap.json index abf747c68c..2318003140 100644 --- a/packages/babel-compiler/.npm/package/npm-shrinkwrap.json +++ b/packages/babel-compiler/.npm/package/npm-shrinkwrap.json @@ -161,9 +161,9 @@ "integrity": "sha512-bYMxIWK5mh+TgXGVqAtnu5Yn1un+v8DDZtqyzKRLUzrh70Eal2O3aZ7aPYiMADO4uKlkzOiRiZ6GX5q3qxvW9Q==" }, "@babel/helpers": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.20.7.tgz", - "integrity": "sha512-PBPjs5BppzsGaxHQCDKnZ6Gd9s6xl8bBCluz3vEInLGRJmnZan4F6BYCeqtyXqkk4W5IlPmjK4JlOuZkpJ3xZA==" + "version": "7.20.13", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.20.13.tgz", + "integrity": "sha512-nzJ0DWCL3gB5RCXbUO3KIMMsBY2Eqbx8mBpKGE/02PgyRQFcPQLbkQ1vyy596mZLaP+dAfD+R4ckASzNVmW3jg==" }, "@babel/highlight": { "version": "7.18.6", @@ -171,9 +171,9 @@ "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==" }, "@babel/parser": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.7.tgz", - "integrity": "sha512-T3Z9oHybU+0vZlY9CiDSJQTD5ZapcW18ZctFMi0MOAl/4BjFF4ul7NVSARLdbGO5vDqy9eQiGTV0LtKfvCYvcg==" + "version": "7.20.13", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.13.tgz", + "integrity": "sha512-gFDLKMfpiXCsjt4za2JA9oTMn70CeseCehb11kRZgvd7+F67Hih3OHOK24cRrWECJ/ljfPGac6ygXAs/C8kIvw==" }, "@babel/plugin-proposal-async-generator-functions": { "version": "7.20.7", @@ -331,9 +331,9 @@ "integrity": "sha512-TV4sQ+T013n61uMoygyMRm+xf04Bd5oqFpv2jAEQwSZ8NwQA7zeRPg1LMVg2PWi3zWBz+CLKD+v5bcpZ/BS0aA==" }, "@babel/plugin-transform-react-jsx": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.20.7.tgz", - "integrity": "sha512-Tfq7qqD+tRj3EoDhY00nn2uP2hsRxgYGi5mLQ5TimKav0a9Lrpd4deE+fcLXU8zFYRjlKPHZhpCvfEA6qnBxqQ==" + "version": "7.20.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.20.13.tgz", + "integrity": "sha512-MmTZx/bkUrfJhhYAYt3Urjm+h8DQGrPrnKQ94jLo7NLuOU+T89a7IByhKmrb8SKhrIYIQ0FN0CHMbnFRen4qNw==" }, "@babel/plugin-transform-react-jsx-development": { "version": "7.18.6", @@ -401,9 +401,9 @@ "integrity": "sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==" }, "@babel/traverse": { - "version": "7.20.12", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.20.12.tgz", - "integrity": "sha512-MsIbFN0u+raeja38qboyF8TIT7K0BFzz/Yd/77ta4MsUsmP2RAnidIlwq7d5HFQrH/OZJecGV6B71C4zAgpoSQ==" + "version": "7.20.13", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.20.13.tgz", + "integrity": "sha512-kMJXfF0T6DIS9E8cgdLCSAL+cuCK+YEZHWiLK0SXpTo8YRj5lpJu3CDNKiIBCne4m9hhTIqUg6SYTAI39tAiVQ==" }, "@babel/types": { "version": "7.20.7", @@ -436,9 +436,9 @@ "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==" }, "@meteorjs/babel": { - "version": "7.18.0-beta.5", - "resolved": "https://registry.npmjs.org/@meteorjs/babel/-/babel-7.18.0-beta.5.tgz", - "integrity": "sha512-OWtjVxsaOgMc1PAzRXEicYc7ZDwTFQDAJ3C8UfwIPGhSojVj3OiLz8vZMZGeAiEac8IxZffiskirsc7NwresyQ==" + "version": "7.18.0-beta.6", + "resolved": "https://registry.npmjs.org/@meteorjs/babel/-/babel-7.18.0-beta.6.tgz", + "integrity": "sha512-M3BL5ivQQBE4iQ9my7WqXZdkhR61x2H/Z0xshYuv8kppFzuS9/saksET1T7JrTGJnnfONpoxqYkiBGIHSw8+cQ==" }, "@meteorjs/reify": { "version": "0.23.0", @@ -648,9 +648,9 @@ "integrity": "sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==" }, "caniuse-lite": { - "version": "1.0.30001442", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001442.tgz", - "integrity": "sha512-239m03Pqy0hwxYPYR5JwOIxRJfLTWtle9FV8zosfV5pHg+/51uD4nxcUlM8+mWWGfwKtt8lJNHnD3cWw9VZ6ow==" + "version": "1.0.30001449", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001449.tgz", + "integrity": "sha512-CPB+UL9XMT/Av+pJxCKGhdx+yg1hzplvFJQlJ2n68PyQGMz9L/E2zCyLdOL8uasbouTUgnPl+y0tccI/se+BEw==" }, "chalk": { "version": "2.4.2", @@ -673,9 +673,9 @@ "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==" }, "core-js-compat": { - "version": "3.27.1", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.27.1.tgz", - "integrity": "sha512-Dg91JFeCDA17FKnneN7oCMz4BkQ4TcffkgHP4OWwp9yx3pi7ubqMDXXSacfNak1PQqjc95skyt+YBLHQJnkJwA==" + "version": "3.27.2", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.27.2.tgz", + "integrity": "sha512-welaYuF7ZtbYKGrIy7y3eb40d37rG1FvzEOfe7hSLd2iD6duMDqUhRfSvCGyC46HhR6Y8JXXdZ2lnRUMkPBpvg==" }, "debug": { "version": "4.3.4", @@ -885,9 +885,9 @@ "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==" }, "typescript": { - "version": "4.7.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.7.4.tgz", - "integrity": "sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ==" + "version": "4.9.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.4.tgz", + "integrity": "sha512-Uz+dTXYzxXXbsFpM86Wh3dKCxrQqUcVMxwU54orwlJjOpO3ao8L7j5lH+dWfTwgCwIuM9GQ2kvVotzYJMXTBZg==" }, "unicode-canonical-property-names-ecmascript": { "version": "2.0.0", From 2595e57c34b0c89369fc90370b6d56052b4d2c2d Mon Sep 17 00:00:00 2001 From: Gabriel Grubba Date: Mon, 30 Jan 2023 10:24:39 -0300 Subject: [PATCH 050/152] chore: updated meteor-babel/package-lock.json --- npm-packages/meteor-babel/package-lock.json | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/npm-packages/meteor-babel/package-lock.json b/npm-packages/meteor-babel/package-lock.json index 76469e0a04..18e8305a96 100644 --- a/npm-packages/meteor-babel/package-lock.json +++ b/npm-packages/meteor-babel/package-lock.json @@ -1,12 +1,12 @@ { "name": "@meteorjs/babel", - "version": "7.18.0-beta.5", + "version": "7.18.0-beta.6", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@meteorjs/babel", - "version": "7.18.0-beta.5", + "version": "7.18.0-beta.6", "license": "MIT", "dependencies": { "@babel/core": "^7.17.2", @@ -26,7 +26,7 @@ "convert-source-map": "^1.6.0", "lodash": "^4.17.21", "meteor-babel-helpers": "0.0.3", - "typescript": "~4.7.4" + "typescript": "~4.9.4" }, "devDependencies": { "@babel/plugin-proposal-decorators": "7.14.5", @@ -3617,9 +3617,9 @@ } }, "node_modules/typescript": { - "version": "4.7.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.7.4.tgz", - "integrity": "sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ==", + "version": "4.9.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.4.tgz", + "integrity": "sha512-Uz+dTXYzxXXbsFpM86Wh3dKCxrQqUcVMxwU54orwlJjOpO3ao8L7j5lH+dWfTwgCwIuM9GQ2kvVotzYJMXTBZg==", "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -6590,9 +6590,9 @@ "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=" }, "typescript": { - "version": "4.7.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.7.4.tgz", - "integrity": "sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ==" + "version": "4.9.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.4.tgz", + "integrity": "sha512-Uz+dTXYzxXXbsFpM86Wh3dKCxrQqUcVMxwU54orwlJjOpO3ao8L7j5lH+dWfTwgCwIuM9GQ2kvVotzYJMXTBZg==" }, "unbox-primitive": { "version": "1.0.1", From 4d916350140f658c10f386f7a53f92b956d838f9 Mon Sep 17 00:00:00 2001 From: Gabriel Grubba Date: Mon, 30 Jan 2023 10:24:46 -0300 Subject: [PATCH 051/152] docs: updated merged prs --- docs/history.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/docs/history.md b/docs/history.md index db3e639d46..37b69b233c 100644 --- a/docs/history.md +++ b/docs/history.md @@ -7,7 +7,7 @@ * Optimized makeLookupFunction by [radekmie](https://github.com/radekmie) [PR](https://github.com/meteor/meteor/pull/12462) * In async wrappers, catch exceptions and reject by [ebroder](https://github.com/ebroder) [PR](https://github.com/meteor/meteor/pull/12469) * Bump Typescript to v4.9.4 by [Firfi](https://github.com/Firfi) [PR](https://github.com/meteor/meteor/pull/12465) - +* Ensure the meteor.loginServiceConfiguration subscription always becomes ready by [Torgen](https://github.com/Torgen) [PR](https://github.com/meteor/meteor/pull/12480) #### Breaking Changes N/A @@ -49,6 +49,8 @@ N/A - [@radekmie](https://github.com/radekmie). - [@ebroder](https://github.com/ebroder). +- [@Firfi](https://github.com/Firfi). +- [@Torgen](https://github.com/Torgen). From 486fc136b19daa650a1cc8ed058d6168409b2e3d Mon Sep 17 00:00:00 2001 From: Gabriel Grubba Date: Mon, 30 Jan 2023 11:20:46 -0300 Subject: [PATCH 052/152] chore: updated chakra ui to useSubscription --- .../skel-chakra-ui/imports/ui/Info.jsx | 23 +++++++++++-------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/tools/static-assets/skel-chakra-ui/imports/ui/Info.jsx b/tools/static-assets/skel-chakra-ui/imports/ui/Info.jsx index 5b483a097b..b226c2df63 100644 --- a/tools/static-assets/skel-chakra-ui/imports/ui/Info.jsx +++ b/tools/static-assets/skel-chakra-ui/imports/ui/Info.jsx @@ -1,22 +1,25 @@ import React from 'react'; -import { useTracker } from 'meteor/react-meteor-data'; +import { useFind, useSubscribe } from 'meteor/react-meteor-data'; import { LinksCollection } from '../api/links'; -import {Box, Heading, Link, ListItem, UnorderedList} from "@chakra-ui/react"; -import {ExternalLinkIcon} from "@chakra-ui/icons"; +import { Box, Heading, Link, ListItem, UnorderedList } from "@chakra-ui/react"; +import { ExternalLinkIcon } from "@chakra-ui/icons"; export const Info = () => { - const links = useTracker(() => { - return LinksCollection.find().fetch(); - }); + const isLoading = useSubscribe('links'); + const links = useFind(() => LinksCollection.find()); + + if (isLoading()) { + return Loading...; + } return ( Learn Meteor! - {links.map( - link => - {link.title} + { links.map( + link => + { link.title } - )} + ) } ); }; From a60b4a91167bf898a61333892a7967bbfbca176d Mon Sep 17 00:00:00 2001 From: Gabriel Grubba Date: Mon, 30 Jan 2023 11:21:05 -0300 Subject: [PATCH 053/152] chore: added publication to chakra ui skeleton --- tools/static-assets/skel-chakra-ui/server/main.js | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/tools/static-assets/skel-chakra-ui/server/main.js b/tools/static-assets/skel-chakra-ui/server/main.js index 9c774d214c..0198535e0a 100644 --- a/tools/static-assets/skel-chakra-ui/server/main.js +++ b/tools/static-assets/skel-chakra-ui/server/main.js @@ -28,4 +28,10 @@ Meteor.startup(async () => { url: 'https://forums.meteor.com', }); } + + // We publish the entire Links collection to all clients. + // In order to be fetched in real-time to the clients + Meteor.publish("links", function () { + return LinksCollection.find(); + }); }); From c6bfed9c0a9cc47f1a91c86008d0ca1292a7fdd1 Mon Sep 17 00:00:00 2001 From: Gabriel Grubba Date: Mon, 30 Jan 2023 11:21:16 -0300 Subject: [PATCH 054/152] chore: added publication react skeleton --- tools/static-assets/skel-react/server/main.js | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/tools/static-assets/skel-react/server/main.js b/tools/static-assets/skel-react/server/main.js index 9c774d214c..0198535e0a 100644 --- a/tools/static-assets/skel-react/server/main.js +++ b/tools/static-assets/skel-react/server/main.js @@ -28,4 +28,10 @@ Meteor.startup(async () => { url: 'https://forums.meteor.com', }); } + + // We publish the entire Links collection to all clients. + // In order to be fetched in real-time to the clients + Meteor.publish("links", function () { + return LinksCollection.find(); + }); }); From 8045ad9aacaae8cef8ffaa63a2daae501e3e67d5 Mon Sep 17 00:00:00 2001 From: Gabriel Grubba Date: Mon, 30 Jan 2023 11:21:30 -0300 Subject: [PATCH 055/152] chore: added useSubscribe to react skeleton --- tools/static-assets/skel-react/imports/ui/Info.jsx | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/tools/static-assets/skel-react/imports/ui/Info.jsx b/tools/static-assets/skel-react/imports/ui/Info.jsx index 62a0100d67..a9a7a45cfe 100644 --- a/tools/static-assets/skel-react/imports/ui/Info.jsx +++ b/tools/static-assets/skel-react/imports/ui/Info.jsx @@ -1,11 +1,14 @@ import React from 'react'; -import { useTracker } from 'meteor/react-meteor-data'; +import { useFind, useSubscribe } from 'meteor/react-meteor-data'; import { LinksCollection } from '../api/links'; export const Info = () => { - const links = useTracker(() => { - return LinksCollection.find().fetch(); - }); + const isLoading = useSubscribe('links'); + const links = useFind(() => LinksCollection.find()); + + if(isLoading()) { + return
Loading...
; + } return (
From c8fbbb679d0f3fc37a084e824b7c82ab6a2b5449 Mon Sep 17 00:00:00 2001 From: Gabriel Grubba Date: Mon, 30 Jan 2023 11:21:36 -0300 Subject: [PATCH 056/152] chore: added useSubscribe to tailwind skeleton --- .../skel-tailwind/imports/ui/Info.jsx | 115 +++++++++++------- 1 file changed, 72 insertions(+), 43 deletions(-) diff --git a/tools/static-assets/skel-tailwind/imports/ui/Info.jsx b/tools/static-assets/skel-tailwind/imports/ui/Info.jsx index 8272c26f94..4d8436df8a 100644 --- a/tools/static-assets/skel-tailwind/imports/ui/Info.jsx +++ b/tools/static-assets/skel-tailwind/imports/ui/Info.jsx @@ -1,77 +1,106 @@ -import React from 'react'; -import { useTracker } from 'meteor/react-meteor-data'; -import { LinksCollection } from '../api/links'; +import React from "react"; +import { useFind, useSubscribe } from "meteor/react-meteor-data"; +import { LinksCollection } from "../api/links"; function classNames(...classes) { - return classes.filter(Boolean).join(' '); + return classes.filter(Boolean).join(" "); } export const Info = () => { - const links = useTracker(() => { - const data = LinksCollection.find().fetch(); + const foreGroundColors = [ + "text-red-700", + "text-orange-700", + "text-rose-700", + "text-yellow-700", + ]; + const backgroundColors = [ + "bg-red-50", + "bg-orange-50", + "bg-rose-50", + "bg-yellow-50", + ]; + const isLoading = useSubscribe("links"); - const foreGroundColors = ['text-red-700', 'text-orange-700', 'text-rose-700', 'text-yellow-700']; - const backgroundColors = ['bg-red-50', 'bg-orange-50', 'bg-rose-50', 'bg-yellow-50']; + const data = useFind(() => LinksCollection.find()); - return data.map((d, index) => ({ - ...d, - iconForeground: foreGroundColors[index], - iconBackground: backgroundColors[index], - })) - }); + const links = data.map((d, index) => ({ + ...d, + iconForeground: foreGroundColors[index], + iconBackground: backgroundColors[index], + })); - const actions = links.map(link => ({ + if (isLoading()) { + return
Loading...
; + } + + const actions = links.map((link) => ({ id: link._id, title: link.title, href: link.url, - icon: - - , + icon: ( + + + + ), ...link, })); - - return ( -
- {actions.map((action, actionIdx) => ( +
+ { actions.map((action, actionIdx) => ( - ))} + )) }
); }; From 42d6de8a1262e551b2a1e32d20c1f9f63fb2f498 Mon Sep 17 00:00:00 2001 From: Gabriel Grubba Date: Mon, 30 Jan 2023 11:21:48 -0300 Subject: [PATCH 057/152] chore: added publication to tailwind skeleton --- tools/static-assets/skel-tailwind/server/main.js | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/tools/static-assets/skel-tailwind/server/main.js b/tools/static-assets/skel-tailwind/server/main.js index 5c4e8951b3..6d8dd672ad 100644 --- a/tools/static-assets/skel-tailwind/server/main.js +++ b/tools/static-assets/skel-tailwind/server/main.js @@ -28,4 +28,10 @@ Meteor.startup(async () => { url: 'https://forums.meteor.com', }); } + + // We publish the entire Links collection to all clients. + // In order to be fetched in real-time to the clients + Meteor.publish("links", function () { + return LinksCollection.find(); + }); }); From 3397c778afdb65ce12564865a7ecde899b866ecd Mon Sep 17 00:00:00 2001 From: Gabriel Grubba Date: Mon, 30 Jan 2023 11:22:11 -0300 Subject: [PATCH 058/152] chore: added useSubscribe typescript skeleton --- .../skel-typescript/imports/ui/Info.tsx | 21 +++++++++++-------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/tools/static-assets/skel-typescript/imports/ui/Info.tsx b/tools/static-assets/skel-typescript/imports/ui/Info.tsx index 3bcf685386..23cb8f07a3 100644 --- a/tools/static-assets/skel-typescript/imports/ui/Info.tsx +++ b/tools/static-assets/skel-typescript/imports/ui/Info.tsx @@ -1,16 +1,19 @@ -import React from 'react'; -import { useTracker } from 'meteor/react-meteor-data'; -import { LinksCollection, Link } from '../api/links'; +import React from "react"; +import { useFind, useSubscribe } from "meteor/react-meteor-data"; +import { LinksCollection, Link } from "../api/links"; export const Info = () => { - const links = useTracker(() => { - return LinksCollection.find().fetch(); - }); + const isLoading = useSubscribe("links"); + const links = useFind(() => LinksCollection.find()); + + if (isLoading()) { + return
Loading...
; + } const makeLink = (link: Link) => { return ( -
  • - {link.title} +
  • + { link.title }
  • ); } @@ -18,7 +21,7 @@ export const Info = () => { return (

    Learn Meteor!

    -
      {links.map(makeLink)}
    +
      { links.map(makeLink) }
    ); }; From 72ade5dec82f7b6c305f7d093d36678f24973dcc Mon Sep 17 00:00:00 2001 From: Gabriel Grubba Date: Mon, 30 Jan 2023 11:22:24 -0300 Subject: [PATCH 059/152] chore: added publication to typescript skeleton --- tools/static-assets/skel-typescript/server/main.ts | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/tools/static-assets/skel-typescript/server/main.ts b/tools/static-assets/skel-typescript/server/main.ts index 9c774d214c..0198535e0a 100644 --- a/tools/static-assets/skel-typescript/server/main.ts +++ b/tools/static-assets/skel-typescript/server/main.ts @@ -28,4 +28,10 @@ Meteor.startup(async () => { url: 'https://forums.meteor.com', }); } + + // We publish the entire Links collection to all clients. + // In order to be fetched in real-time to the clients + Meteor.publish("links", function () { + return LinksCollection.find(); + }); }); From 53e1db25c5956f545b1e3f5203a66a1764fcc28b Mon Sep 17 00:00:00 2001 From: Gabriel Grubba Date: Mon, 30 Jan 2023 12:02:09 -0300 Subject: [PATCH 060/152] Chore: adding publication to solid skeleton --- tools/static-assets/skel-solid/server/main.js | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/tools/static-assets/skel-solid/server/main.js b/tools/static-assets/skel-solid/server/main.js index 99eab74e29..3eb4465cdb 100644 --- a/tools/static-assets/skel-solid/server/main.js +++ b/tools/static-assets/skel-solid/server/main.js @@ -28,4 +28,10 @@ Meteor.startup(async () => { url: 'https://forums.meteor.com', }); } + + // We publish the entire Links collection to all clients. + // In order to be fetched in real-time to the clients + Meteor.publish('links', function () { + return LinksCollection.find(); + }); }); From a0d2f57fa035021fe7d8593af86979d3b48ff41e Mon Sep 17 00:00:00 2001 From: Gabriel Grubba Date: Mon, 30 Jan 2023 12:02:21 -0300 Subject: [PATCH 061/152] Chore: adding subscription to solid skeleton --- .../skel-solid/imports/ui/Info.jsx | 24 +++++++++++++------ 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/tools/static-assets/skel-solid/imports/ui/Info.jsx b/tools/static-assets/skel-solid/imports/ui/Info.jsx index 6f4a441e79..cf6f585c2e 100644 --- a/tools/static-assets/skel-solid/imports/ui/Info.jsx +++ b/tools/static-assets/skel-solid/imports/ui/Info.jsx @@ -1,26 +1,36 @@ import { LinksCollection } from "../api/links"; import { createSignal, For } from "solid-js"; import { Tracker } from "meteor/tracker"; +import { Meteor } from "meteor/meteor"; export const Info = () => { + const loading = Meteor.subscribe("links"); + const [isLoading, setIsLoading] = createSignal(loading.ready()); const [links, setLinks] = createSignal([]); Tracker.autorun(() => { + setIsLoading(loading.ready()); setLinks(LinksCollection.find().fetch()); }); + if (isLoading()) { + return
    Loading...
    ; + } + return (

    Learn Meteor!

    - ) - -} + ); +}; From 8de669b83403215ae6272afe471c58879138ab89 Mon Sep 17 00:00:00 2001 From: Gabriel Grubba Date: Mon, 30 Jan 2023 17:20:13 -0300 Subject: [PATCH 062/152] chore: updating vue2 app subscriptions --- .../skel-vue-2/imports/ui/components/Info.vue | 30 +++++++++++-------- tools/static-assets/skel-vue-2/package.json | 2 +- 2 files changed, 18 insertions(+), 14 deletions(-) diff --git a/tools/static-assets/skel-vue-2/imports/ui/components/Info.vue b/tools/static-assets/skel-vue-2/imports/ui/components/Info.vue index 376d60562b..b52b2be838 100644 --- a/tools/static-assets/skel-vue-2/imports/ui/components/Info.vue +++ b/tools/static-assets/skel-vue-2/imports/ui/components/Info.vue @@ -9,29 +9,27 @@ -
  • {{link.title}}
  • + +
  • + {{ link.title }} +
  • +
    diff --git a/tools/static-assets/skel-vue-2/package.json b/tools/static-assets/skel-vue-2/package.json index e8cfe3ee72..0012ccbef0 100644 --- a/tools/static-assets/skel-vue-2/package.json +++ b/tools/static-assets/skel-vue-2/package.json @@ -11,7 +11,7 @@ "@babel/runtime": "^7.17.9", "meteor-node-stubs": "^1.2.1", "vue": "^2.6.14", - "vue-meteor-tracker": "^2.0.0-beta.5" + "vue-meteor-tracker": "^3.0.0-beta.7" }, "meteor": { "mainModule": { From fe55cb3d7b3cdce9a13a416994a1a7b0c46279c8 Mon Sep 17 00:00:00 2001 From: Gabriel Grubba Date: Tue, 31 Jan 2023 12:39:08 -0300 Subject: [PATCH 063/152] docs: updated history.md --- docs/history.md | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/docs/history.md b/docs/history.md index 37b69b233c..43cff9fa86 100644 --- a/docs/history.md +++ b/docs/history.md @@ -8,17 +8,22 @@ * In async wrappers, catch exceptions and reject by [ebroder](https://github.com/ebroder) [PR](https://github.com/meteor/meteor/pull/12469) * Bump Typescript to v4.9.4 by [Firfi](https://github.com/Firfi) [PR](https://github.com/meteor/meteor/pull/12465) * Ensure the meteor.loginServiceConfiguration subscription always becomes ready by [Torgen](https://github.com/Torgen) [PR](https://github.com/meteor/meteor/pull/12480) +* Deprecate appcache package by [StorytellerCZ](https://github.com/StorytellerCZ) [PR](https://github.com/meteor/meteor/pull/12456) +* Made standard-minifier-css debuggable by [softwarecreations](https://github.com/softwarecreations)[PR](https://github.com/meteor/meteor/pull/12478). + #### Breaking Changes N/A #### Internal API changes -N/A +App cache is now deprecated. #### Migration Steps -N/A +_ If you are using a version of MongoDB older than 6.0, you will need to upgrade your MongoDB server to 6.0 or later._ + +Read our [Migration Guide](https://guide.meteor.com/2.11-migration.html) for this version. #### Meteor Version Release @@ -39,19 +44,25 @@ N/A * `Tracker@1.3.1`: - Added missing withComputation method in types +* `standard-minifier-css@1.9.0`: + - standard-minifier-css is now debuggable + * `typescript@4.9.4` - Updated typescript to version 4.9.4. * `@meteorjs/babel@7.18.0-beta.6` - Updated typescript to version 4.9.4. +* `appcache@1.2.8` + - Depracated appcache package. [applicationCache](https://developer.mozilla.org/en-US/docs/Web/API/Window/applicationCache), which this package relies on, has been deprecated and is not available on the latest browsers. + #### Special thanks to - [@radekmie](https://github.com/radekmie). - [@ebroder](https://github.com/ebroder). - [@Firfi](https://github.com/Firfi). - [@Torgen](https://github.com/Torgen). - +- [@StorytellerCZ](https://github.com/StorytellerCZ). For making this great framework even better! From 475f1bd3361bb4c9812530dddfb77cd28c273838 Mon Sep 17 00:00:00 2001 From: Gabriel Grubba Date: Tue, 31 Jan 2023 12:39:36 -0300 Subject: [PATCH 064/152] updated standard minifier,md --- docs/source/packages/standard-minifier-css.md | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/docs/source/packages/standard-minifier-css.md b/docs/source/packages/standard-minifier-css.md index d6041116a5..b547b1660f 100644 --- a/docs/source/packages/standard-minifier-css.md +++ b/docs/source/packages/standard-minifier-css.md @@ -50,3 +50,19 @@ module.exports = { ### Tailwind CSS Tailwind CSS is fully supported. Since HMR applies updates to js files earlier than the css is updated, there can be a delay when using a Tailwind CSS class the first time before the styles are applied. + + +### Debbuging + +_Since Meteor.js 2.11.0 in this [PR](https://github.com/meteor/meteor/pull/12478) we have a debbug mode for the minifier_ + +#### How standard-minifier-css becomes verbose + +- Either of the common debugging commandline arguments + - `--verbose` + - `--debug` +- Environment variable + - `DEBUG_CSS` + +Side notes: +`DEBUG_CSS=false` or `DEBUG_CSS=0` will prevent it from being verbose regardless of `--verbose` or `--debug` commandline arguments, because `DEBUG_CSS` is specific. \ No newline at end of file From bbbfecd34968a873048a649d841fa18ded6e9ceb Mon Sep 17 00:00:00 2001 From: Gabriel Grubba Date: Tue, 31 Jan 2023 14:37:36 -0300 Subject: [PATCH 065/152] updated thankings --- docs/history.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/history.md b/docs/history.md index 43cff9fa86..0454ed91f8 100644 --- a/docs/history.md +++ b/docs/history.md @@ -9,7 +9,7 @@ * Bump Typescript to v4.9.4 by [Firfi](https://github.com/Firfi) [PR](https://github.com/meteor/meteor/pull/12465) * Ensure the meteor.loginServiceConfiguration subscription always becomes ready by [Torgen](https://github.com/Torgen) [PR](https://github.com/meteor/meteor/pull/12480) * Deprecate appcache package by [StorytellerCZ](https://github.com/StorytellerCZ) [PR](https://github.com/meteor/meteor/pull/12456) -* Made standard-minifier-css debuggable by [softwarecreations](https://github.com/softwarecreations)[PR](https://github.com/meteor/meteor/pull/12478). +* Made standard-minifier-css debuggable by [softwarecreations](https://github.com/softwarecreations) [PR](https://github.com/meteor/meteor/pull/12478). #### Breaking Changes @@ -63,6 +63,7 @@ Read our [Migration Guide](https://guide.meteor.com/2.11-migration.html) for thi - [@Firfi](https://github.com/Firfi). - [@Torgen](https://github.com/Torgen). - [@StorytellerCZ](https://github.com/StorytellerCZ). +- [@softwarecreations](https://github.com/softwarecreations) For making this great framework even better! From 5f424d15831876673bb7510e009d61e3797f4b5d Mon Sep 17 00:00:00 2001 From: Gabriel Grubba Date: Tue, 31 Jan 2023 15:47:23 -0300 Subject: [PATCH 066/152] docs: adding before 2.10 docs to generator --- .../changelog/docs/0-before-2.10.md | 9657 +++++++++++++++++ 1 file changed, 9657 insertions(+) create mode 100644 docs/generators/changelog/docs/0-before-2.10.md diff --git a/docs/generators/changelog/docs/0-before-2.10.md b/docs/generators/changelog/docs/0-before-2.10.md new file mode 100644 index 0000000000..9ee0122e33 --- /dev/null +++ b/docs/generators/changelog/docs/0-before-2.10.md @@ -0,0 +1,9657 @@ + + + +## v2.9.1, 2022-12-27 + +### Highlights + +* Reverted missing types [PR](https://github.com/meteor/meteor/pull/12366) by [Grubba27](https://github.com/Grubba27). +* Fix fetch() type declaration [PR](https://github.com/meteor/meteor/pull/12352) by [zarvox](https://github.com/zarvox). +* update svelte skeleton [PR](https://github.com/meteor/meteor/pull/12350) by [tosinek](https://github.com/tosinek). +* Bump to node 14.21.2.0 [PR](https://github.com/meteor/meteor/pull/12370) by [Grubba27](https://github.com/Grubba27). +* resetPassword and verifyEmail to no longer sign in the user automatically [PR](https://github.com/meteor/meteor/pull/12385) by [denihs](https://github.com/denihs). +* Added missing vue2 declaration for skeletons [PR](https://github.com/meteor/meteor/pull/12396) by [Grubba27](https://github.com/Grubba27) & [mlanning](https://github.com/mlanning). + +#### Breaking Changes + +* `accounts-password@2.3.3` + - The methods `resetPassword` and `verifyEmail` no longer logs the user if they have 2FA enabled. Now, the functions work as before, but instead of automatically logging in the user at the end, an error with the code `2fa-enabled` will be thrown. + + +#### Internal API changes + +N/A + +#### Migration Steps + +N/A + +#### Meteor Version Release + +* `fetch@0.1.3`: + - Updated fetch type definition. + +* `meteor@1.10.4`: + - Added back meteor type definitions that were removed by mistake in earlier version. + +* `accounts-password@2.3.3` + - The methods `resetPassword` and `verifyEmail` no longer logs the user if they have 2FA enabled. Now, the functions work as before, but instead of automatically logging in the user at the end, an error with the code `2fa-enabled` will be thrown. + +* `Command line`: + - Updated Svelte skeleton to now be able to support typescript out of the box and added ``#each`` in links in the skeleton. + - Updated node to 14.21.2 changes can be seen [here](https://github.com/nodejs/node/releases/tag/v14.21.2). + - Solved [issue](https://github.com/meteor/meteor/issues/12395) that could not allow vue2 apps being created in command line. + +#### Special thanks to +- [@zarvox](https://github.com/zarvox). +- [@tosinek](https://github.com/tosinek). +- [@Grubba27](https://github.com/Grubba27). +- [@denihs](https://github.com/denihs). +- [@mlanning](https://github.com/mlanning). + +For making this great framework even better! + + +## v2.9, 2022-12-12 + +### Highlights + +* TypeScript update to v4.6.4 [PR](https://github.com/meteor/meteor/pull/12204) by [@StorytellerCZ](https://github.com/StorytellerCZ). +* Create Email.sendAsync method without using Fibers [PR](https://github.com/meteor/meteor/pull/12101) + by [edimarlnx](https://github.com/edimarlnx). +* Create async method CssTools.minifyCssAsync [PR](https://github.com/meteor/meteor/pull/12105) + by [edimarlnx](https://github.com/edimarlnx). +* Change Accounts and Oauth to use Async methods [PR](https://github.com/meteor/meteor/pull/12156) + by [edimarlnx](https://github.com/edimarlnx). +* TinyTest package without Future [PR](https://github.com/meteor/meteor/pull/12222) + by [matheusccastroo](https://github.com/matheusccastroo). +* Feat: user accounts base async [PR](https://github.com/meteor/meteor/pull/12274) + by [Grubba27](https://github.com/Grubba27). +* Move somed methods from OAuth of out of accounts-base [PR](https://github.com/meteor/meteor/pull/12202) + by [StorytellerCZ](https://github.com/StorytellerCZ). +* Feat: not using insecure & autopublish [PR](https://github.com/meteor/meteor/pull/12220) + by [Grubba27](https://github.com/Grubba27). +* Don't apply babel async-await plugin when not running on Fibers [PR](https://github.com/meteor/meteor/pull/12221). + by [matheusccastroo](https://github.com/matheusccastroo). +* Implemented Fibers-less MongoDB count methods [PR](https://github.com/meteor/meteor/pull/12295) + by [radekmie](https://github.com/radekmie). +* Feat: Generate scaffold in cli [PR](https://github.com/meteor/meteor/pull/12298) + by [Grubba27](https://github.com/Grubba27). +* Update types [PR](https://github.com/meteor/meteor/pull/12306) by [piotrpospiech](https://github.com/piotrpospiech). +* Remove underscore from package-version-parser [PR](https://github.com/meteor/meteor/pull/12248) + by [harryadel](https://github.com/harryadel). +* Update MongoDB driver version [PR](https://github.com/meteor/meteor/pull/12333) by [Grubba27](https://github.com/Grubba27). +* New Vue3 Skeleton [PR](https://github.com/meteor/meteor/pull/12302) + by [henriquealbert](https://github.com/henriquealbert). + +#### Breaking Changes +* `Accounts.createUserVerifyingEmail` is now async + +#### Internal API changes +* Internal methods from `OAuth` that are now async: + - _attemptLogin + - _loginMethod + - _runLoginHandlers + - OAuth.registerService now accepts async functions + +OAuth related code has been moved from `accounts-base` to `accounts-oauth`, removing the dependency on `service-configuration` +more can be seen in this [discussion](https://github.com/meteor/meteor/discussions/12171) and in the [PR](https://github.com/meteor/meteor/pull/12202). +This means that if you don’t use third-party login on your project, you don’t need to add the package service-configuration anymore. + +#### Migration Steps + +You can follow in [here](https://guide.meteor.com/2.9-migration.html). + +#### Meteor Version Release + +* `eslint-plugin-meteor@7.4.0`: + - updated Typescript deps and meteor babel. +* `eslint-plugin-meteor@7.4.0`: + - updated Typescript deps and meteor babel. +* `accounts-base@2.2.6` + - Moved some functions to accounts-oauth. +* `accounts-oauth@1.4.2` + - Received functions from accounts-base. +* `accounts-password@2.3.2` + - Asyncfied functions such as `changePassword`, `forgotPassword`, `resetPassword`, `verifyEmail`, `setPasswordAsync`. +* `babel-compiler@7.10.1` + - Updated babel to 7.17.1. +* `email@2.2.3` + - Create Email.sendAsync method without using Fibers. +* `facebook-oauth@1.11.2` + - Updated facebook-oauth to use async functions. +* `github-oauth@1.4.1` + - Updated github-oauth to use async functions. +* `google-oauth@1.4.3` + - Updated google-oauth to use async functions. +* `meetup-oauth@1.1.2` + - Updated meetup-oauth to use async functions. +* `meteor-developer-oauth@1.3.2` + - Updated meteor-developer-oauth to use async functions. +* `meteor@1.10.3` + - Added Async Local Storage helpers. +* `minifier-css@1.6.2` + - Asyncfied `minifyCss` function. +* `minimongo@1.9.1` + - Implemented Fibers-less MongoDB count methods. +* `mongo@1.16.2` + - Implemented Fibers-less MongoDB count methods. +* `npm-mongo@4.12.1` + - Updated npm-mongo to 4.12. +* `oauth@2.1.3` + - Asyncfied methods. +* `oauth1@1.5.1` + - Asyncfied methods. +* `oauth2@1.3.2` + - Asyncfied methods. +* `package-version-parser@3.2.1` + - Removed underscore. +* `promise@0.12.2` + - Added DISABLE_FIBERS flag. +* `standard-minifier-css@1.8.3` + - Asyncfied minify method. +* `test-helpers@1.3.1` + - added runAndThrowIfNeeded function. +* `test-in-browser@1.3.2` + - Adjusted e[type] to e.type +* `tinytest@1.2.2` + - TinyTest package without Future. +* `twitter-oauth@1.3.2` + - Asyncfied methods. +* `typescript@4.6.4` + - updated typescript to 4.6.4. +* `weibo-oauth@1.3.2` + - Asyncfied methods. + +#### Special thanks to +- [@henriquealbert](https://github.com/henriquealbert); +- [@edimarlnx](https://github.com/edimarlnx); +- [@matheusccastroo](https://github.com/matheusccastroo); +- [@Grubba27](https://github.com/Grubba27); +- [@StorytellerCZ](https://github.com/StorytellerCZ); +- [@radekmie](https://github.com/radekmie); +- [@piotrpospiech](https://github.com/piotrpospiech); +- [@harryadel](https://github.com/harryadel); + +For making this great framework even better! + + +## v2.8.2, 2022-11-29 + +#### Highlights +* `mongo@1.16.2`: + - Make count NOT create a cursor. [PR](https://github.com/meteor/meteor/pull/12326). +* `meteorjs/babel@7.16.1-beta.0` + - Adjusted config to Auto import React on jsx,tsx files [PR](https://github.com/meteor/meteor/pull/12327). + - needs to use directly from npm the meteorjs/babel@7.16.1-beta.0. + +#### Breaking Changes +N/A + +#### Migration Steps + +#### Meteor Version Release +* `mongo@1.16.2`: + - Make count NOT create a cursor. [PR](https://github.com/meteor/meteor/pull/12326). + +#### Special thanks to +- [@henriquealbert](https://github.com/henriquealbert); +- [@znewsham](https://github.com/znewsham); + +For making this great framework even better! + + + +## v2.8.1, 2022-11-14 + +#### Highlights + +- modernize tools/run-updater.js by [afrokick](https://github.com/afrokick) +- feat(error message): Especifing error message when cross-boundary by [Grubba27](https://github.com/Grubba27) +- Type definitions for core packages by [piotrpospiech](https://github.com/piotrpospiech) +- Add https proxy support to meteor-installer by [heschong](https://github.com/heschong) +- Fix case insensitive lookup resource overuse by [ToyboxZach](https://github.com/ToyboxZach) +- Update default Facebook API to v15 and fix local changelog by [StorytellerCZ](https://github.com/StorytellerCZ) +- Bump to Node v14.21.1 by [StorytellerCZ](https://github.com/StorytellerCZ) +- Use true mongo binary types by [znewsham](https://github.com/znewsham) +- Add docs for Accounts.registerLoginHandler by [shivam1646](https://github.com/shivam1646) +- Updated MongoDB driver to 4.11 by [radekmie](https://github.com/radekmie) +- Show port in restart message by [harryadel](https://github.com/harryadel) +- In the client, don't wait if the stub doesn't return a promise by [denihs](https://github.com/denihs) +- The rest of type definitions for core packages by [piotrpospiech](https://github.com/piotrpospiech) +- Removing underscore in packages by [harryadel](https://github.com/harryadel): + - [twitter-oauth] Remove underscore + - [test-in-browser] Remove underscore + - [webapp-hashing] Remove underscore + - [browser-policy] Remove underscore + - [ecmascript] Remove underscore + - [browser-policy-framing] Remove underscore + - [diff-sequence] Remove underscore + - [facts-ui] Remove underscore + - [geojson-utils] Remove underscore + +#### Breaking Changes + +N/A + +#### Migration Steps + +_In case you want types in your app using the core packages types/zodern:types (now you do have the option)_ + +1. Remove `@types/meteor` package +2. Install [`zodern:types`](https://github.com/zodern/meteor-types) package +3. Follow [installation guide for the Meteor Apps](https://github.com/zodern/meteor-types#meteor-apps) to update + +#### Meteor Version Release + +* `accounts-base@2.2.5` + - added types for package. +* `browser-policy@1.1.1` + - adjusted package tests. +* `browser-policy-common@1.0.12` + - added types for package. +* `browser-policy-framing@1.1.1` + - removed underscore. +* `check@1.3.2` + - added types for package. +* `ddp@1.4.0` + - added types for package. +* `ddp-client@2.6.1` + - In the client, don't wait if the stub doesn't return a promise. +* `ddp-rate-limiter@1.1.1` + - added types for package. +* `diff-sequence@1.1.2` + - removed underscore. +* `ecmascript@0.16.3` + - removed underscore. +* `ejson@1.1.3` + - added types for package. +* `ejson@2.2.2` + - added types for package. +* `facebook-oauth@1.12.0` + - Updated default version of Facebook GraphAPI to v15 +* `facts-ui@1.0.1` + - removed underscore. +* `fetch@0.1.2` + - added types for package. +* `geojson-utils@1.0.11` + - removed underscore. +* `hot-module-replacement@0.5.2` + - added types for package. +* `meteor@1.10.2` + - added types for package. +* `modern-browsers@0.1.9` + - added types for package. +* `modules-runtime@0.13.2` + - added accurate error messages. +* `modules-runtime-hot@0.14.1` + - added accurate error messages. +* `mongo@1.16.1` + - added types for package. + - added true mongo binary +* `npm-mongo@4.11.0` + - updated npm mongo version to match npm one. +* `promise@0.13.0` + - added types for package. +* `random@1.2.1` + - added types for package. +* `reactive-dict@1.3.1` + - added types for package. +* `reactive-dict@1.0.12` + - added types for package. +* `server-render@0.4.1` + - added types for package. +* `service-configuration@1.3.1` + - added types for package. +* `session@1.2.1` + - added types for package. +* `test-in-browser@1.3.1` + - removed underscore. +* `tracker@1.2.1` +- added types for package. +* `twitter-oauth@1.3.1` + - removed underscore. +* `underscore@1.0.11` + - added types for package. +* `webapp@1.13.2` + - added types for package. +* `webapp-hashing@1.1.1` + - added types for package. +## v2.8, 2022-10-19 + +#### Highlights +* New MongoDB Package Async API. [PR](https://github.com/meteor/meteor/pull/12028) +* Node update to [v14.20.1](https://nodejs.org/en/blog/release/v14.20.1/) as part of the [September 22nd security release](https://nodejs.org/en/blog/vulnerability/september-2022-security-releases/) +* Update MongoDB driver to 4.9. [PR](https://github.com/meteor/meteor/pull/12097) +* Meteor.callAsync method. [PR](https://github.com/meteor/meteor/pull/12196) +* Added new Chakra-ui Skeleton. [PR](https://github.com/meteor/meteor/pull/12181) +* Added new Solid Skeleton. [PR](https://github.com/meteor/meteor/pull/12186) + +#### Breaking Changes +N/A + +#### Migration Steps +Read our [Migration Guide](https://guide.meteor.com/2.8-migration.html) for this version. + +#### Meteor Version Release +* `modules@0.19.0`: + - Updating reify version. [PR](https://github.com/meteor/meteor/pull/12055). +* `minimongo@1.9.0`: + - New methods to work with the Async API. [PR](https://github.com/meteor/meteor/pull/12028). + - Solved invalid dates in Minimongo Matcher [PR](https://github.com/meteor/meteor/pull/12165). +* `mongo@1.16.0`: + - Adding async counterparts that allows gradual migration from Fibers. [PR](https://github.com/meteor/meteor/pull/12028). + - Improved oplogV2V1Converter implementation. [PR](https://github.com/meteor/meteor/pull/12116). + - Exit on MongoDB connection error. [PR](https://github.com/meteor/meteor/pull/12115). + - Fixed MongoConnection._onFailover hook. [PR](https://github.com/meteor/meteor/pull/12125). + - Fixed handling objects in oplogV2V1Converter. [PR](https://github.com/meteor/meteor/pull/12107). +* `meteor@1.10.1`: + - Create method to check if Fibers is enabled by flag DISABLE_FIBERS. [PR](https://github.com/meteor/meteor/pull/12100). + - Fix bugs for linter build plugins. [PR](https://github.com/meteor/meteor/pull/12120). + - Document meteor show METEOR. [PR](https://github.com/meteor/meteor/pull/12124). + - Update Cordova Android to 10.1.2. [PR](https://github.com/meteor/meteor/pull/12131). + - Fixed flaky test. [PR](https://github.com/meteor/meteor/pull/12129). + - Refactoring/Remove unused imports from tools folder. [PR](https://github.com/meteor/meteor/pull/12084). + - Fix problem when publishing async methods. [PR](https://github.com/meteor/meteor/pull/12152). + - Update skeletons Apollo[PR](https://github.com/meteor/meteor/pull/12091) and other skeletons [PR](https://github.com/meteor/meteor/pull/12099) + - Added callAsync method for calling async methods [PR](https://github.com/meteor/meteor/pull/12196). +* `meteor-installer@2.7.5`: + - Validates required Node.js version. [PR](https://github.com/meteor/meteor/pull/12066). +* `npm-mongo@4.9.0`: + - Updated MongoDB driver to 4.9. [PR](https://github.com/meteor/meteor/pull/12163). +* `@meteorjs/babel@7.17.0` + - Upgrade TypeScript to `4.6.4` +* `babel-compiler@7.10.0` + - Upgrade TypeScript to `4.6.4` +* `ecmascript@0.16.3` + - Upgrade TypeScript to `4.6.4` +* `typescript@4.6.4` + - Upgrade TypeScript to `4.6.4` +* `eslint-plugin-meteor@7.4.0` + - Upgrade TypeScript to `4.6.4` + +#### Independent Releases +* `accounts-passwordless@2.1.3`: + - Fixing bug where tokens where never expiring. [PR](https://github.com/meteor/meteor/pull/12088). +* `accounts-base@2.2.4`: + - Adding new options to the `Accounts.config()` method: `loginTokenExpirationHours` and `tokenSequenceLength`. [PR](https://github.com/meteor/meteor/pull/12088). +* `Meteor Repo`: + - Included githubactions in the dependabot config. [PR](https://github.com/meteor/meteor/pull/12061). + - Visual rework in meteor readme. [PR](https://github.com/meteor/meteor/pull/12133). + - Remove useraccounts from Guide. [PR](https://github.com/meteor/meteor/pull/12090). +* `minifier-css@1.6.1`: + - Update postcss package to avoid issues with `Browserslist` and `caniuse-lite`. [PR](https://github.com/meteor/meteor/pull/12136). +* `minifier-js@2.7.5`: + - Update terser package due to security fixes and to take advantage of terser improvements. [PR](https://github.com/meteor/meteor/pull/12137). +* `standard-minifier-css@1.8.2`: + - Update dependencies to avoid issues with `Browserslist` and `caniuse-lite`. [PR](https://github.com/meteor/meteor/pull/12141). +* `standard-minifier-js@2.8.1`: + - Update dependencies to avoid issues with `Browserslist` and `caniuse-lite`. [PR](https://github.com/meteor/meteor/pull/12142). +* `ddp-server@2.5.1`: + - Rename setPublicationStrategy and getPublicationStrategy arguments. [PR](https://github.com/meteor/meteor/pull/12166). + +#### Special thanks to +- [@fredmaiaarantes](https://github.com/fredmaiaarantes) +- [@radekmie](https://github.com/radekmie) +- [@naveensrinivasan](https://github.com/naveensrinivasan) +- [@zodern](https://github.com/zodern) +- [@brucejo75](https://github.com/brucejo75) +- [@matheusccastroo](https://github.com/matheusccastroo) +- [@victoriaquasar](https://github.com/victoriaquasar) +- [@StorytellerCZ](https://github.com/StorytellerCZ) +- [@Grubba27](https://github.com/Grubba27) +- [@denihs](https://github.com/denihs) +- [@edimarlnx](https://github.com/edimarlnx) + +For making this great framework even better! + +## v2.7.3, 2022-05-3 + +#### Highlights +* `accounts-passwordless@2.1.2`: + - Throwing an error when the login tokens are not generated well calling requestLoginTokenForUser. [PR](https://github.com/meteor/meteor/pull/12047/files). +* Node updated to v14.19.3 +* npm update to v6.14.17 +* Fix recompiling npm packages for web arch. [PR](https://github.com/meteor/meteor/pull/12023). + +#### Breaking Changes +N/A + +#### Migration Steps + +#### Meteor Version Release +* `accounts-passwordless@2.1.2`: + - Throwing an error when the login tokens are not generated well calling requestLoginTokenForUser. [PR](https://github.com/meteor/meteor/pull/12047/files). +* `babel-runtime@1.5.1`: + - Make client 25kb smaller. [PR](https://github.com/meteor/meteor/pull/12051). +* Node updated to v14.19.3 +* npm update to v6.14.17 +* Fix win style paths being added to watch sets. +* Fix recompiling npm packages for web arch. [PR](https://github.com/meteor/meteor/pull/12023). + +## v2.7.2, 2022-05-10 + +#### Highlights + +#### Breaking Changes +N/A +#### Migration Steps + +#### Meteor Version Release + +* `mongo@1.15.0` + - New option `Meteor.settings.packages.mongo.reCreateIndexOnOptionMismatch` for case when an index with the same name, but different options exists it will be re-created. + - If there is an error on index creation Meteor will output a better message naming the collection and index where the error occured. [PR](https://github.com/meteor/meteor/pull/11995). +* `modern-browsers@0.1.8` + - New api `getMinimumBrowserVersions` to access the `minimumBrowserVersions`. [PR](https://github.com/meteor/meteor/pull/11998). +* `socket-stream-client@0.5.0` + - Ability to disable sockjs on client side. [PR](https://github.com/meteor/meteor/pull/12007/). +* `meteor-node-stubs@1.2.3`: + - Fix using meteor-node-stubs in IE. [PR](https://github.com/meteor/meteor/pull/12014). +* New ARCH environment variable that permit users to set uname info. [PR](https://github.com/meteor/meteor/pull/12020). +* Skeleton dependencies updated. +* New Tailwind skeleton. [PR](https://github.com/meteor/meteor/pull/12000). + +#### Independent Releases + +## v2.7.1, 2022-03-31 + +#### Highlights + +#### Breaking Changes + +* `accounts-2fa@2.0.0` + - The method `has2faEnabled` no longer takes a selector as an argument, just the callback. + - `generate2faActivationQrCode` now throws an error if it's being called when the user already has 2FA enabled. + +#### Migration Steps + +#### Meteor Version Release + +* `accounts-2fa@2.0.0` + - Reduce one DB call on 2FA login. [PR](https://github.com/meteor/meteor/pull/11985) + - Throw error when user is not found on `Accounts._is2faEnabledForUser` + - Remove vulnerability from the method `has2faEnabled` + - Now the package auto-publish the field `services.twoFactorAuthentication.type` for logged in users. +* `accounts-password@2.3.1` + - Use method `Accounts._check2faEnabled` when validating 2FA +* `accounts-passwordless@2.1.1` + - Use method `Accounts._check2faEnabled` when validating 2FA +* `oauth@2.1.2` + - Check effectively if popup was blocked by browser. [PR](https://github.com/meteor/meteor/pull/11984) +* `standard-minifier-css@1.8.1` + - PostCSS bug fixes. [PR](https://github.com/meteor/meteor/pull/11987/files) + +#### Independent Releases + +## v2.7, 2022-03-24 + +#### Highlights +* Bump node version to 14.19.1 +* TailwindCSS 3.x support +* Typescript `4.5.4` upgrade +* New core package: `accounts-2fa` +* Support for 2FA in `accounts-password` and `accounts-passwordless` +* PostCSS's plugins are run by `standard-minifier-css` if the app has PostCSS configured +* App skeletons and test packages were updated to `meteor-node-stubs@1.2.1` + +#### Breaking Changes + +N/A + +#### Migration Steps + +Read our [Migration Guide](https://guide.meteor.com/2.7-migration.html) for this version. + +#### Meteor Version Release + +* `standard-minifier-css@1.8.0` + - Runs PostCSS plugins if the app has a PostCSS config and the `postcss-load-config` npm package installed. Supports TailwindCSS 3.x [PR 1](https://github.com/Meteor-Community-Packages/meteor-postcss/pull/56) [PR 2](https://github.com/meteor/meteor/pull/11903) + +* `react-fast-refresh@0.2.3` + - Fix tracking states with circular dependencies. [PR](https://github.com/meteor/meteor/pull/11923) + +* `accounts-2fa@1.0.0` + - New package to provide 2FA support + +* `accounts-password@2.3.0` + - 2FA support + +* `accounts-passwordless@2.1.0` + - 2FA support + +* `@meteorjs/babel@7.16.0` + - Upgrade TypeScript to `4.5.4` + +* `babel-compiler@7.9.0` + - Upgrade TypeScript to `4.5.4` + +* `ecmascript@0.16.2` + - Upgrade TypeScript to `4.5.4` + +* `typescript@4.5.4` + - Upgrade TypeScript to `4.5.4` [PR](https://github.com/meteor/meteor/pull/11846) + +* `accounts-ui-unstyled@1.6.0` + - `Accounts.ui.config` can now be set via `Meteor.settings.public.packages.accounts-ui-unstyled`. + +* `meteor-tool@2.7` + - CSS minifiers must now handle any caching themselves [PR](https://github.com/meteor/meteor/pull/11882) + - CSS minifiers are always given lazy css resources instead of only during production builds [PR](https://github.com/meteor/meteor/pull/11897) + - Files passed to CSS minifiers now have `file.readAndWatchFileWithHash`, same as for compilers [PR](https://github.com/meteor/meteor/pull/11882) + - If a minifier has a `beforeMinify` function, it will be called once during each build before the minifier is run the first time [PR](https://github.com/meteor/meteor/pull/11882) + - Add `Plugin.fs.readdirWithTypesSync` [PR](https://github.com/meteor/meteor/pull/11882) + +* `ejson@1.1.2` + - Fixing error were EJSON.equals fail to compare object and array if first param is object and second is array. [PR](https://github.com/meteor/meteor/pull/11866), [Issue](https://github.com/meteor/meteor/issues/11864). + +* `oauth@1.4.1` + - If OAuth._retrieveCredentialSecret() fails trying to get credentials inside Accounts.oauth.tryLoginAfterPopupClosed(), we call it again once more. + +* `accounts-base@2.2.2` + - Fix an issue where an extra field defined in `defaultFieldSelector` would not get published to the client + - Proving the login results to the `_onLoginHook` when finishing login inside `callLoginMethod`. [PR](https://github.com/meteor/meteor/pull/11913). + +* `github-oauth@1.4.0` + - More data will be retrieved and saved under `services.github` on the user account. + - Add option to disallow sign-up on GitHub using `allow_signup` [parameter](https://docs.github.com/en/developers/apps/building-oauth-apps/authorizing-oauth-apps#parameters), this will be activated based on your Accounts settings, specifically if the option `forbidClientAccountCreation` is set to `true`. + +* `email@2.2.1` + - Throwing error when trying to send email in a production environment but without a mail URL set. [PR](https://github.com/meteor/meteor/pull/11891), [Issue](https://github.com/meteor/meteor/issues/11709). + +* `facebook-oauth@1.11.0` + - Updated Facebook API to version 12.0 + +* `google-oauth@1.4.2` + - Migrate from `http` to `fetch` + +* `modules-runtime@0.13.0` + - Fix some npm modules being imported as an empty object. [PR](https://github.com/meteor/meteor/pull/11954), [Issue 1](https://github.com/meteor/meteor/issues/11900), [Issue 2](https://github.com/meteor/meteor/issues/11853). + +* `meteor-node-stubs@1.2.1` + - Adds support for [node:](https://nodejs.org/api/esm.html#node-imports) imports. + +* `minifier-jss@2.8.0` + - Updating terser. It will fix this [issue](https://github.com/meteor/meteor/issues/11721) and [this](https://github.com/meteor/meteor/issues/11930) one. [PR](https://github.com/meteor/meteor/pull/11983). + +#### Independent Releases + +## v2.6.1, 2022-02-18 + +#### Highlights + +* Fix regression on build speed by updating babel dependencies to 7.17.x +* We have removed IE 9 from our browser test list +* We are changing the device used for testing, Samsung Galaxy S7, as browserstack is having issues provisioning it. We will be using now Samsung Galaxy Note 10. +* Fix issue when generating tarballs from Windows systems related to execute permissions +* Fix issues with HMR and meteor build --debug [PR](https://github.com/meteor/meteor/pull/11922) + + +#### Breaking Changes + +- IE 9 might not be compatible from now on, although, we will still consider PR's fixing it. + +#### Migration Steps + +#### Meteor Version Release + +* `meteor-tool@2.6.1` + - Use latest @meteor/babel dependency with @babel@7.17.x + +* `@meteorjs/babel@7.15.1` + - Use babel@7.17.x + +* `babel-compiler@7.8.1` + - Use latest @meteor/babel dependency with @babel@7.17.x + +* `hot-module-replacement@0.5.1` + - Fix issues with HMR and meteor build --debug [PR](https://github.com/meteor/meteor/pull/11922) + +* `webapp@1.13.1` + - Fix issues with HMR and meteor build --debug [PR](https://github.com/meteor/meteor/pull/11922) + +#### Independent Releases + +* `mongo@1.14.6` at 2022-02-18 + - Remove false-positive warning for supported operation a.0.b:{} +* `mongo@1.14.5` at 2022-02-16 + - Fix multiple array operators bug and add support for debug messages + - Fix isArrayOperator function regexp false-positive +* `mongo@1.14.4` at 2022-02-11 + - Fix sync return for insert methods inside _collection private method [PR](https://github.com/meteor/meteor/pull/11907) + - Support the new "projection" field inside the decision of using oplog for a published cursor or not [PR](https://github.com/meteor/meteor/pull/11908) +* `mongo@1.14.3` at 2022-02-08 + - Remove throw on _id exclusion inside mongo collection finds. [PR](https://github.com/meteor/meteor/pull/11894). +* `mongo@1.14.2` at 2022-02-06 + - Fix flatten object issue when internal object value is an array on oplog converter. [PR](https://github.com/meteor/meteor/pull/11888). +* `mongo@1.14.1` at 2022-02-04 + - Fix flatten object issue when the object is empty on oplog converter. [PR](https://github.com/meteor/meteor/pull/11885), [Issue](https://github.com/meteor/meteor/issues/11884). + +## v2.6, 2022-02-01 + +#### Highlights + +* MongoDB Node.js driver Upgrade from 3.6.10 to 4.3.1 +* MongoDB Server 5.x Support +* Embedded Mongo now uses MongoDB 5.0.5 +* You are now able to use dark theme specific splash screens for both iOS and Android by passing an object `{src: 'light-image-src-here.png', srcDarkMode: 'dark-mode-src-here.png'}` to the corresponding key in `App.launchScreens` + +#### Breaking Changes + +* `mongo@1.14.0` + - This is not a breaking change in Meteor itself but as this is a major upgrade in the MongoDB Node.js driver you should read the [Migration Guide](https://guide.meteor.com/2.6-migration.html), especially if you are using rawCollection. + +* `meteor-tool@2.6` + - Legacy launch screens keys for iOS on `App.launchScreens` are now deprecated in favor of new storyboard compliant keys [PR #11797](https://github.com/meteor/meteor/pull/11797). This will drop the following keys we have: `['iphone5','iphone6','iphone6p_portrait','iphone6p_landscape','iphoneX_portrait','iphoneX_landscape','ipad_portrait_2x','ipad_landscape_2x','iphone','iphone_2x','ipad_portrait','ipad_landscape']`. Read the [Migration Guide](https://guide.meteor.com/2.6-migration.html) for more details. + +#### Migration Steps + +Read our [Migration Guide](https://guide.meteor.com/2.6-migration.html) for this version. + +#### Meteor Version Release + +* `mongo@1.14.0` + - `applySkipLimit` option for count() on find cursors is no longer supported. Read more about it [here](https://guide.meteor.com/2.6-migration.html), in the `Cursor.count()` section. + - internal result of operations inside Node.js MongoDB driver have changed. If you are depending on rawCollection results (not only the effect inside the DB), please review the expected format as we have done [here](https://github.com/meteor/meteor/blob/155ae639ee590bae66237fc1c29295072ec92aef/packages/mongo/mongo_driver.js#L658) + - useUnifiedTopology is not an option anymore, it defaults to true. + - native parser is not an option anymore, it defaults to false in the mongo connection. + - poolSize not an option anymore, we are using max/minPoolSize for the same behavior on mongo connection. + - fields option is deprecated, we are maintaining a translation layer to "projection" field (now prefered) until the next minor version, where we will start showing alerts. + - _ensureIndex is now showing a deprecation message + - we are maintaining a translation layer for the new oplog format, so if you read or rely on any behavior of it please read our oplog_v2_converter.js code + - update/insert/remove behavior is maintained in the Meteor way, documented in our docs, but we are now using replaceOne/updateOne/updateMany internally. This is subject to changes in the API rewrite of MongoDB without Fibers AND if you are using rawCollection directly you have to review your methods otherwise you will see deprecation messages if you are still using the old mongodb style directly. + - waitForStepDownOnNonCommandShutdown=false is not needed anymore when spawning the mongodb process + - _synchronousCursor._dbCursor.operation is not an option anymore in the raw cursor from nodejs mongodb driver. If you want to access the options, use _synchronousCursor._dbCursor.(GETTERS) - for example, _synchronousCursor._dbCursor.readPreference. + - the default write preference for replica sets on mongo v5 is w:majority + - If you are using MongoDB inside a Docker container in your dev environment, you might need to append directConnection=true in your mongouri to avoid the new mongo driver Service Discovery feature + +* `allow-deny@1.1.1` + - Handle `MongoBulkWriteError` as `BulkWriteError` was already handled. + +* `meteor-tool@2.6.0` + - Cordova changes to support new Launch Screens. + - Mongo changes to support new embedded version, 5.0.5. + - Fix resolving npm deps of local packages when on different drive. [PR](https://github.com/meteor/meteor/pull/11868) + +* `minimongo@1.8.0` + - Changes to keep everything compatible with MongoDB Server 5.x and MongoDB Node.js driver 4.x. + +* `npm-mongo@4.3.1` + - Upgraded MongoDB Node.js driver to 4.3.1 + +* `tinytest@1.2.1` + - Custom message support for `throws` + +#### Independent Releases + +## v2.5.8, 2022-05-31 + +#### Highlights + +* Fixed 2.5.7 MongoDB error +* Patch release to update Node to version 14.19.3 and npm version to 6.14.17. + +#### Breaking Changes + +- N/A + +#### Migration Steps + +- N/A + +## v2.5.7, 2022-05-31 + +#### Highlights + +* Patch release to update Node and npm versions. + +#### Breaking Changes + +- N/A + +#### Migration Steps + +- N/A + +#### Meteor Version Release + +* `meteor-tool@2.5.7` + - Patch release to update Node and npm versions. + +## v2.5.6, 2022-01-25 + +#### Highlights + +* Go back to using node-fibers mainline dependency instead of a fork. Also ships fibers binaries. + +#### Breaking Changes + +- N/A + +#### Migration Steps + +- N/A + +#### Meteor Version Release + +* `meteor-tool@2.5.6` + - Go back to using node-fibers mainline dependency instead of a fork. Also ships fibers binaries. + +## v2.5.5, 2022-01-18 + +#### Highlights + +* Bump node version to 14.18.3 - security patch +* Change the tar implementation for streams, used on deploying and unpacking packages. Reduced "upload bundle" time when deploying is expected. + +#### Breaking Changes + +- N/A + +#### Migration Steps + +- N/A + +#### Meteor Version Release + +* `meteor-tool@2.5.5` + - Bump node version to 14.18.3 - security patch + - Change the tar implementation for streams, used on deploying and unpacking packages. Reduced "upload bundle" time when deploying is expected. + +* `accounts-base@2.2.1` + - Fixes onLogin firing twice. [PR](https://github.com/meteor/meteor/pull/11785) and [Issue](https://github.com/meteor/meteor/issues/10853) + +#### Independent Releases + +* `oauth@2.1.1` + - Fixes end of redirect response for oauth inside iframes. [PR](https://github.com/meteor/meteor/pull/11825) and [Issue](https://github.com/meteor/meteor/issues/11817) + +## v2.5.4, 2022-01-14 + +This version should be ignored. Proceed to 2.5.5 above. + +## v2.5.3, 2022-01-04 + +#### Highlights + +* Fixes invalid package.json error with `resolve` + +#### Breaking Changes + +- N/A + +#### Migration Steps + +- N/A + +#### Meteor Version Release + +* `meteor-tool@2.5.3` + - Fixes invalid package.json files breaking Meteor run. [PR](https://github.com/meteor/meteor/pull/11832) and [Issue](https://github.com/meteor/meteor/issues/11830) + +#### Independent Releases + +## v2.5.2, 2021-12-21 + +#### Highlights + +* Reify performance improvements +* Node.js update to 14.18.2 +* HMR Fixes + +#### Breaking Changes + +* If a module calls `module.hot.decline()`, calling `module.hot.accept()` later now does nothing instead of overriding `module.hot.decline()`. + +#### Migration Steps + +- N/A + +#### Meteor Version Release + +* `meteor-tool@2.5.2` + - Changes @meteorjs/babel and @meteorjs/reify to improve Reify performance. + - Upgrades Node.js to 14.18.2 + - Fixes isopacket [load failure](https://github.com/meteor/meteor/issues/10930) on Windows. [PR](https://github.com/meteor/meteor/pull/11740) + +* `hot-module-replacement@0.5.0` + - Prevents hot.accept from overriding hot.decline. [PR](https://github.com/meteor/meteor/pull/11801) + - Fixes falling back to hot code push on web archs. [PR](https://github.com/meteor/meteor/pull/11795) + +* `@meteorjs/babel@7.15.0` + - Updates @meteorjs/reify to improve Reify performance. + +* `@meteorjs/reify@0.23.0` + - Uses `@meteorjs/reify` instead of `reify` + - Check scope when wrapping to fix slowness in MUI v5. [PR](https://github.com/meteor/reify/pull/1) and [Issue](https://github.com/benjamn/reify/issues/277). + +* `standard-minifier-js@2.8.0` + - Bump to apply improvements from Reify + +* `typescript@4.4.1` + - Bump to apply improvements from Reify + +* `babel-compiler@7.8.0` + - Bump to apply improvements from Reify + +* `ecmascript@0.16.1` + - Bump to apply improvements from Reify + +* `modules@0.18.0` + - Bump to apply improvements from Reify + +#### Independent Releases + +* `react-fast-refresh@0.2.2` + - [Fixes](https://github.com/meteor/meteor/issues/11744) bugs. [PR](https://github.com/meteor/meteor/pull/11794/) + +* `accounts-ui@1.4.2` + - Update usage of `accounts-passwordless` to be compatible with 2.0.0. + +* `minifier-js@2.7.3` + - Revert `evaluate` option that was set to false in 2.7.2. + +* `standard-minifier-js@2.7.3` + - Using `minifier-js@2.7.3` + + +* `npm-mongo@4.2.1` + - Update MongoDB driver version to 4.2.1 + +## v2.5.1, 2021-11-17 + +#### Highlights +- Mac M1 Support - darwin arm64. [Read more](https://blog.meteor.com/). + +#### Breaking Changes +- `Meteor.loginWithToken` from the new package `accounts-passwordless` was conflicting with another method with the same name on `accounts-base` so we had to rename the method of `accounts-passwordless` package to `Meteor.passwordlessLoginWithToken`. + +#### Meteor Version Release + +* `meteor-tool@2.5.1` + - Meteor supports now Mac M1 chips (darwin arm64) + +* `accounts-passwordless@2.0.0` + - `Meteor.loginWithToken` from the new package `accounts-passwordless` was conflicting with another method with the same name on `accounts-base` so we had to rename the method of `accounts-passwordless` package to `Meteor.passwordlessLoginWithToken`. + +#### Independent Releases +* `minifier-js@2.7.2` + - Stopped using `evaluate` option in the compression to fix a [bug](https://github.com/meteor/meteor/issues/11756). + - Updated `terser` to [v5.9.0](https://github.com/terser/terser/blob/master/CHANGELOG.md#v590) to fix various bugs + +* `standard-minifier-js@2.7.2` + - Using `minifier-js@2.7.2` + +* `github-oauth@1.3.2` + - Migrate from `http` to `fetch` + - Fix GitHub login params to adhere to changes in GitHub API + +## v2.5, 2021-10-21 + +#### Highlights + +* New package: `accounts-passwordless` +* Cordova Android v10 +* HMR now works on all architectures and legacy browsers +* `Accounts.config()` and third-party login services can now be configured from Meteor settings + +#### Breaking Changes + +* Cordova Android v10 now enables AndroidX. If you use any cordova-plugin that depends or uses any old support library, you need to include the cordova-plugin-androidx-adapter cordova-plugin, otherwise you will get build errors. + +#### Meteor Version Release + +* CircleCI testing image was updated to include Android 30 and Node 14 + +* `meteor-tool@2.5` + - Cordova Android upgraded to v10 + - HMR improvements related to `hot-module-replacement@0.4.0` + - Fix finding local packages on Windows located on drives other than C + - Fix infinite loop in import scanner when file is on a different drive than source root + - Fix Meteor sometimes not detecting changes to a file after the first time it is modified + - Fixes Meteor sometimes hanging on Windows. Reverts the temporary fix in Meteor 2.4 of disabling native file watchers for some commands + - Uses recursive file watchers on Windows and macOS. In most situations removes the up to 5 seconds delay before detecting the first change to a file, and is more efficient. + - Node updated to [v14.18.1](https://nodejs.org/en/blog/release/v14.18.1/), following [October 12th 2021 security release](https://nodejs.org/en/blog/vulnerability/oct-2021-security-releases/) + - Skeletons had their dependencies updated + +* `accounts-passwordless@1.0.0` + - New accounts package to provide passwordless authentication. + +* `accounts-password@2.2.0` + - Changes to reuse code between passwordless and password packages. + +* `accounts-base@2.2.0` + - You can now apply all the settings for `Accounts.config` in `Meteor.settings.packages.accounts-base`. They will be applied automatically at the start of your app. Given the limitations of `json` format you can only apply configuration that can be applied via types supported by `json` (ie. booleans, strings, numbers, arrays). If you need a function in any of the config options the current approach will still work. The options should have the same name as in `Accounts.config`, [check them out in docs.](https://docs.meteor.com/api/accounts-multi.html#AccountsCommon-config). + - Changes to reuse code between passwordless and password packages. + +* `accounts-ui-unstyled@1.6.0` + - Add support for `accounts-passwordless`. + +* `service-configuration@1.3.0` + - You can now define services configuration via `Meteor.settings.packages.service-configuration` by adding keys as service names and their objects being the service settings. You will need to refer to the specific service for the settings that are expected, most commonly those will be `secret` and `appId`. + +* `autoupdate@1.8.0` + - Enable HMR for all web arch's + +* `ecmascript@0.16.0` + - Enable HMR for all web arch's + +* `hot-module-replacement@0.4.0` + - Provides polyfills needed by Meteor.absoluteUrl in legacy browsers + - Improvements for HMR to work in all architectures and legacy browsers + +* `module-runtime@0.14.0` + - Improvements for legacy browsers + +* `react-fast-refrest@0.2.0` + - Enable HMR for all web arch's + +* `typescript@4.4.0` + - Enable HMR for all web arch's + +* `webapp@1.13.0` + - Update `cordova-plugin-meteor-webapp` to v2 + - Removed dependency on `cordova-plugin-whitelist` as it is now included in core + - Cordova Meteor plugin is now using AndroidX + - Added new settings option `Meteor.settings.packages.webapp.alwaysReturnContent` that will always return content on requests like `POST`, essentially enabling behavior prior to Meteor 2.3.1. + +#### Independent Releases + +* `modern-browsers@0.1.6` + - Added `mobileSafariUI` as an alias for Mobile Safari + +* `minifier-js@2.7.1` + - Updated `terser` to [v5.8.0](https://github.com/terser/terser/blob/master/CHANGELOG.md#v580) to fix various bugs + +* `standard-minifier-js@2.7.1` + - Updated `@babel/runtime` to [v7.15.4](https://github.com/babel/babel/releases/tag/v7.15.4) + +* `accounts-ui@1.4.1` + - Update compatibility range with `less` from 3.0.2 to 4.0.0 + +* `accounts-ui-unstyled@1.5.1` + - Update compatibility range with `less` from 3.0.2 to 4.0.0 + +* `google-config-ui@1.0.3` + - Deliver siteUrl in the same way as other config-ui packages + +* `ecmascript-runtime-client@0.12.1` + - Revert `core-js` to v3.15.2 due to issues in legacy build with arrays, [see issue for more details](https://github.com/meteor/meteor/issues/11662) + +* `modern-browsers@0.1.7` + - Added `firefoxMobile` as an alias for `firefox` + +* `dynamic-import@0.7.2` + - Fixes 404 in dynamic-import/fetch when ROOT_URL is set with a custom path. [see issue](https://github.com/meteor/meteor/issues/11701) + +## v2.4.1, 2021-10-12 + +#### Meteor Version Release + +* `meteor-tool@2.4.1` + - Patch to make 2.4.1 compatible with Push to Deploy feature in Galaxy (Meteor Cloud) + +## v2.4, 2021-09-15 + +#### Highlights + +* Typescript updated to [v4.3.5](https://github.com/Microsoft/TypeScript/releases/tag/v4.3.5) +* Email package now allows setting `Email.customTransport` to override sending method. +* Use `createIndex` instead of `_ensureIndex` to align with new MongoDB naming. +* Apollo skeleton has been upgraded for [Apollo server v3](https://github.com/apollographql/apollo-server/blob/main/CHANGELOG_historical.md#v300) +* `reify` has been updated to v0.22.2 which reduces the overhead of `import` statements and some uses of `export ... from`, especially when a module is imported a large number of times or re-exports a large number of exports from other modules. PRs [1](https://github.com/benjamn/reify/pull/246), [2](https://github.com/benjamn/reify/pull/291) +* Meteor NPM installer is [now available for all platforms](https://github.com/meteor/meteor/pull/11590). +* DDP server now allows you to set publication strategies for your publications to control mergebox behavior +* On Windows Meteor should no longer be hanging on commands + +#### Migration steps + +1. Replace all usage of `collection._ensureIndex` with `collection.createIndex`. You only need to rename the method as the functionality is the same. +2. If you are using a [well known service](https://nodemailer.com/smtp/well-known/) for the email package switch to using `Meteor.settings.packages.email` settings instead of `MAIL_URL` env variable. Alternatively you can utilize the new `Email.customTransport` function to override the default package behavior and use your own. [Read the email docs](https://docs.meteor.com/api/email.html) for implementation details. + +#### Meteor Version Release + +* Skeletons dependencies updated + +* `meteor-tool@2.4` + - `meteor show` now reports if a package is deprecated + - `reify` update to v0.22.2 which bring optimizations for imports. PRs [1](https://github.com/benjamn/reify/pull/246), [2](https://github.com/benjamn/reify/pull/291) + - Apollo skeleton now uses [Apollo server v3](https://github.com/apollographql/apollo-server/blob/main/CHANGELOG.md#v300) - [migration guide](https://www.apollographql.com/docs/apollo-server/migration/) + - Upgraded `chalk` to v4.1.1 + - Typescript updated to [v4.3.5](https://github.com/Microsoft/TypeScript/releases/tag/v4.3.5) + - `METEOR_SETTINGS` is now accepted an all modes + - Native file watchers are now disabled on Windows for many file-intensive actions (like, `create`, `update`, `build` etc.), this solves an issue with hanging Meteor commands on Windows + +* `webapp@1.12` + - npm dependencies have been updated + - Added hook to change runtime config delivered to the client app, [read more](https://github.com/meteor/meteor/pull/11506) + - Added hook to get notified when the app is updated, [read more](https://github.com/meteor/meteor/pull/11607) + - `@vlasky/whomst@0.1.7` + - Added `addUpdateNotifyHook` that gets called when runtime configuration is updated + +* `logging@1.3.0` + - Switch from `cli-color` to `chalk` to have the same dependency as meteor-tool + - Fix detecting eval + - Copy over code from `Meteor._debug` to `Log.debug` which will be deprecated in the future + +* `email@2.2` + - Modernized package code + - Add alternative API function that you can hook into to utilize your own sending method: `Email.customTransport`. [Read the docs](https://docs.meteor.com/api/email.html#Email-customTransport) + - Use `Meteor.settings` for easy setup to sending email via [known providers](https://nodemailer.com/smtp/well-known/). [Read the docs](https://docs.meteor.com/api/email.html) + +* `ddp-server@2.5.0` + - One of three different publication strategies can be selected for any Meteor publication - SERVER_MERGE, NO_MERGE and NO_MERGE_NO_HISTORY. These control the behaviour of the Meteor mergebox, providing a compromise between client-server bandwidth usage and server side memory usage. [See PR](https://github.com/meteor/meteor/pull/11368) or [the documentation](https://docs.meteor.com/api/pubsub.html#Publication-strategies) for more details. + +* `mongo@1.13.0` + - Add `createIndex` as a collection function (in MongoDB since MongoDB v3). This is a new name for `_ensureIndex` which MongoDB has deprecated and removed in MongoDB 5.0. Use of `_ensureIndex` will show a deprecation warning on development. + +* `accounts-base@2.1.0` + - Migrated usage of `_ensureIndex` to `createIndex` + +* `accounts-oauth@1.4.0` + - Migrated usage of `_ensureIndex` to `createIndex` + +* `accounts-password@2.1.0` + - Migrated usage of `_ensureIndex` to `createIndex` + +* `oauth@2.1.0` + - Migrated usage of `_ensureIndex` to `createIndex` + +* `oauth1@1.5.0` + - Migrated usage of `_ensureIndex` to `createIndex` + +* `facebook-oauth@1.10.0` + - Added login handler hook, like in the Google package for easier management in React Native and similar apps. [PR](https://github.com/meteor/meteor/pull/11603) + +* `service-configuration@1.5.0` + - Migrated usage of `_ensureIndex` to `createIndex` + +* `ecmascript-runtime-client@0.12.0` + - `core-js@3.16.0` + +* `ecmascript-runtime-server@0.11.0` + - `core-js@3.16.0` + +* `ecmascript-runtime@0.8.0` + - Version bump to ensure changes from server & client runtime get propagated. + +* `tinytest@1.2.0` + - Add option to temporarily replace `Tinytest.add` or `Tinytest.addAsync` by `Tinytest.only` or `Tinytest.onlyAsync` so only the tests added using `only*` are going to be executed. + +* `test-helpers@1.3.0` + - Support for `Tinytest.only` and `Tinytest.onlyAsync` + +* `modules@0.17.0` + - Update `reify` to `0.22.2` + +* `standard-minifier-js@2.7.0` + - `@babel/runtime@7.15.3` + - Code modernization + - Improved error handling + +* `minifier-js@2.7.0` + - Added tests + - Code modernization + +* `standard-minifier-css@1.7.4` + - `@babel/runtime@7.15.3` + +* `minifier-css@1.6.0` + - Updated dependencies + - `postcss@8.3.5` + - `cssnano@4.1.11` + +* `callback-hook@1.4.0` + - Added `forEach` iterator to be more in-line with the ES use for iterations. `each` is now deprecated, but will remain supported. + +## v2.3.7, 2021-10-12 + +#### Meteor Version Release + +* `meteor-tool@2.3.7` + - Patch to make 2.3.7 compatible with Push to Deploy feature in Galaxy (Meteor Cloud) + +## v2.3.6, 2021-09-02 + +#### Highlights + +* Updated Node.js per [August 31st security release](https://nodejs.org/en/blog/vulnerability/aug-2021-security-releases2/) + +#### Meteor Version Release + +* `meteor-tool@2.3.6` + - Node.js updated to [v14.17.6](https://nodejs.org/en/blog/release/v14.17.6/) + +#### Independent Releases + +* `minifier-js@2.6.1` + - Terser updated to [4.8.0](https://github.com/terser/terser/blob/master/CHANGELOG.md#v480) + +* `routepolicy@1.1.1` + - Removed `underscore` dependency since it was not used in the package + +* `email@2.1.1` + - Updated `nodemailer` to v6.6.3 + +* `callback-hook@1.3.1` + - Modernized the code + - Fixed a variable assignment bug in `dontBindEnvironment` function + +* `less@4.0.0` + - Updated `less` to v4.1.1 + - Fixed tests + +* `npm-mongo@3.9.1` + - `mongodb@3.6.10` + +* `accounts-base@2.0.1` + - Create index on `services.password.enroll.when` + - Blaze weak dependency updated to v2.5.0 + +* `facebook-oauth@1.9.1` + - Allow usage of `http` package both v1 and v2 for backward compatibility + +* `github-oauth@1.3.1` + - Allow usage of `http` package both v1 and v2 for backward compatibility + +* `google-oauth@1.3.1` + - Allow usage of `http` package both v1 and v2 for backward compatibility + +* `meetup-oauth@1.1.1` + - Allow usage of `http` package both v1 and v2 for backward compatibility + +* `meteor-developer-oauth@1.3.1` + - Allow usage of `http` package both v1 and v2 for backward compatibility + +* `weibo-oauth@1.3.1` + - Allow usage of `http` package both v1 and v2 for backward compatibility + +* `oauth1@1.4.1` + - Allow usage of `http` package both v1 and v2 for backward compatibility + - Blaze weak dependency updated to v2.5.0 + +* `ddp-server@2.4.1` + - Fix a bug where `testMessageOnConnect` has always been sent + +* `accounts-password@2.0.1` + - Fix use of `isEnroll` in reset password + +* `mdg:geolocation@1.3.1` + - Fixed API to work with Meteor 2.3+ + +* `mdg:reload-on-resume@1.0.5` + - Fixed API to work with Meteor 2.3+ + +## v2.3.5, 2021-08-12 + +#### Highlights + +* Updated Node.js per the [August security release](https://nodejs.org/en/blog/vulnerability/aug-2021-security-releases/) +* Includes same improvements as in Meteor v2.2.3 + - Typescript updated to [v4.3.5](https://github.com/Microsoft/TypeScript/releases/tag/v4.3.5) + - `@meteorjs/babel@7.12.0` + +#### Meteor Version Release + +* `meteor-tool@2.3.5` + - Node.js updated to [v14.17.5](https://nodejs.org/en/blog/release/v14.17.5/) + - Typescript updated to [v4.3.5](https://github.com/Microsoft/TypeScript/releases/tag/v4.3.5) + - `@meteorjs/babel@7.12.0` + - Fix broken source maps in VSCode - [PR](https://github.com/meteor/meteor/pull/11584) + +## v2.3.4, 2021-08-03 + +* Fix an issue in `bare` and `vue` skeletons + +## v2.3.3, 2021-08-02 + +* Security patch of Node.js to [14.17.4](https://nodejs.org/en/blog/release/v14.17.4/) +* App skeletons had the following dependencies updated: + - `meteor-node-stubs@1.1.0` + - `@babel/runtime@7.14.8` +* `babel/parser@7.14.9` for server dev bundle + +## v2.3.2, 2021-07-13 + +#### Meteor Version Release + +* `meteor-tool@2.3.2` + - fixes a bug that makes `meteor run android` run with the new aab package flag + +## v2.3.1, 2021-07-08 + +#### Highlights + +* Fix windows issue when running webapp package. +* Node.js updated to 14.17.3, following [security release](https://nodejs.org/en/blog/vulnerability/july-2021-security-releases/) + +#### Breaking Changes + +* Meteor will now generate ".aab" (bundle files) by default when building for Android. This is the [new default format](https://android-developers.googleblog.com/2021/06/the-future-of-android-app-bundles-is.html) for Android apps. Use the new build flag `--packageType=apk` if you still need to generate APK. + +#### Meteor Version Release + +* Updated travis CI environment to use Node.js 14.17.3 + +* `meteor-tool@2.3.1` + - Node.js updated to [14.17.2](https://nodejs.org/en/blog/release/v14.17.2/) and [14.17.3](https://nodejs.org/en/blog/release/v14.17.3/) + - `@babel/runtime` dependency updated to v7.14.6 across the tool and testing apps + - Skeletons dependencies updated + - Apollo skeleton removed `apollo-boost` dependency which is no longer needed + - New build flag `--packageType` to choose between apk/bundle for android builds (defaults to bundle). + +#### Independent Releases + +* `webapp@1.11.1` + - Remove `posix` from npm shrinkwrap, to fix a bug it causes on Windows. + +* `less@3.0.2` + - Updated `@babel/runtime` to v7.14.6 + - Updated `less` to v3.11.3 + +* `standard-minifiers-css@1.7.3` + - Updated `@babel/runtime` to v7.14.6 + +* `standard-minifiers-js@2.6.1` + - Updated `@babel/runtime` to v7.14.6 + +* `dynamic-import@0.7.1` + - Fix [Safari 14 bug](https://bugs.webkit.org/show_bug.cgi?id=226547) with indexedDB + +## v2.3, 2021-06-24 + +#### Highlights + +* Node.js update to 14.17.1 from 12.22.1 🎉 + +* Typescript update to [4.3.2](https://devblogs.microsoft.com/typescript/announcing-typescript-4-3/) + +* Packages had their backward compatibility to before Meteor 1.0 removed. See below for more details. + +* Improved tracking of which files are used by build plugins to know when it should do a full rebuild, a faster client-only rebuild, or can completely skip rebuilding after a file is modified. This should work with any type of file in any directory, and for both files in the app and files in packages. The most noticeable improvement is when modifying a file only used on the client Meteor will only rebuild the client, even if the file is not inside `imports` or a `client` folder. + +### Summary of breaking changes + +- As Node.js version was upgraded to a new major version we recommend that you review if your npm dependencies are compatible with Node.js 14. + - If we receive reports from breaking changes we are going to list them here but so far we are not aware of any. + - We recommend that you read Node.js [release notes](https://nodejs.org/en/blog/release/v14.0.0/) though. + +- Accounts have undergone some major changes including major version bump. See below for more details. + +- All official packages that have been deprecated have now the deprecated flag and will inform you about that if you install or update them. + +- If you are working with enrollments in user accounts, do note that the enrollment token handling is now separate from reset password token. The token is now under `services.password.enroll`, so adjust your code accordingly if you use it. + +### Migration steps + +- As Node.js version was upgraded we recommend that you remove your `node_modules` folder (`rm -rf node_modules`) and run `meteor npm i` to be sure you compile all the binary dependencies again using the new Node.js version. + - Maybe you also want to recreate your lock file. + - If you get an error try `meteor reset` which will clear caches, beware that this will also remove your local DB for your app. + +- If you are maintaining a package that depends on one of the accounts packages which had a major version bump you will either need to set the new version manually or set `api.versionsFrom('2.3')`. + You can also have it reference its current version and 2.3 like this: `api.versionsFrom(['1.12', '2.3'])`, for specific package it can be like this: `api.use('accounts-base@1.0.1 || 2.0.0')`. + +- Old API for packages definitions has been removed. The old underscore method names (e.g. `api.add_files()`) will no longer work, please use the camel case method names (e.g. `api.addFiles()`). + +### Breaking changes +* Removed deprecated `mobile-port` flag + +* Removed deprecated `raw` name from `isobuild` + +* Removed deprecated package API method names `Package.on_use`, `Package.on_test`, `Package._transitional_registerBuildPlugin` and `api.add_files`, if you haven't till now, please use the current camel case versions. + +* `accounts-base@2.0.0` + - Deprecated backward compatibility function `logoutOtherClients` has been removed. + +* `accounts-password@2.0.0` + - Deprecated backward compatibility functionality for `SRP` passwords from pre-Meteor 1.0 days has been removed. + - Enroll account workflow has been separated from reset password workflow (the enrollment token records are now stored in a separate db field `services.password.enroll`). + +* `ddp-client@2.5.0` + - Removed deprecated backward compatibility method names for Meteor before 1.0 + +* `ddp-server@2.4.0` + - Removed deprecated backward compatibility method names for Meteor before 1.0 + +* `meteor-base@1.5.0` + - Removed `livedata` dependency which was there for packages build for 0.9.0 + +* `minimongo@1.7.0` + - Removed the `rewind` method that was noop for compatibility with Meteor 0.8.1 + +* `mongo@1.12.0` + - Removed the `rewind` method that was noop for compatibility with Meteor 0.8.1 + +* `oauth@2.0.0` + - Removed deprecated `OAuth.initiateLogin` and other functionality like the addition of `?close` in return URI for deprecated OAuth flow pre Meteor 1.0 + +* `markdown@2.0.0` + - Use lazy imports to prevent it from being added to the initial bundle + - This package is now deprecated + +* `http@2.0.0` + - Internally http has been replaced by [fetch](https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API), should still work as previous version, but edge cases might be different. This is to aid you in transition to fetch. Note that this means that the `npmRequestOptions` parameter to `HTTP.call` has been removed, as `request` is no longer used internally. + +* `socket-stream-client@0.4.0` + - Remove IE8 checks + +#### Meteor Version Release + +* `meteor-tool@2.3` + - Node.js update to 14.17.1 from 12.22.1 🎉 + - This is a major upgrade in Node.js. See the [release notes](https://nodejs.org/en/blog/release/v14.0.0/) for more details. + - `npm` update to 6.14.13. + - `fibers` has been updated to v5.0.0. + - `promise` has been updated to v8.1.0. + - `node-gyp` has been updated to v8.0.0. + - `node-pre-gyp` has been updated to v0.15.0. + - `@babel/runtime` has been updated to v7.14.0. + - `request` has been updated to v2.88.2. + - `uuid` has been updated to v3.4.0. + - `graceful-fs` has been updated to v4.2.6. + - `tar` has been updated to v2.2.2. + - `sqlite3` has been updated to v5.0.2. + - `http-proxy` has been updated to v1.18.1. + - `wordwrap` has been updated to v1.0.0. + - `moment` has been updated to v2.29.1. + - `glob` has been updated to v7.1.6. + - `split2` has been updated to v3.2.2. + - `lru-cache` has been updated to v4.1.5. + - `anser` has been updated to v2.0.1. + - `xmlbuilder2` has been updated to v1.8.1. + - `ws` has been updated to v7.4.5. + - `underscore` has been updated to v1.13.1 + - `optimism` has been updated to v0.16.1 + - `@wry/context` has been update to v0.6.0 + - Reduced time spent by server (re)start in development by adding a cache for Reify. This optimization is on by default in development. Set the new `METEOR_TOOL_ENABLE_REIFY_RUNTIME_CACHE` and `METEOR_REIFY_CACHE_DIR` environment variables to adjust it or turn it on for production [read more in the PR](https://github.com/meteor/meteor/pull/11400). + - New flag `--platforms` has been added to the `build` command to specify the platform you want to build for. `meteor build . --platforms=android`. This is useful for example when you are not using a MacOS and you want to build your app only for Android. Also to save time on CI not building all the platforms all the time. See [PR](https://github.com/meteor/meteor/pull/11437) for details. + - The undocumented environment variable `DDP_DEFAULT_CONNECTION_URL` behavior has changed. Setting `DDP_DEFAULT_CONNECTION_URL` when running the server (development: `meteor run` or production: `node main.js`) sets the default DDP server value for meteor. But this did not work for `cordova` apps. Now you can define the `cordova` app default DDP server value by setting `DDP_DEFAULT_CONNECTION_URL` when building (`meteor build`). + - Skeletons dependencies updated to latest version + - Svelte skeleton now has HMR + - New deploy option: `--build-only`. Helpful if you want to build first and after some validations proceeding with the upload and deploy. [Read more](https://galaxy-guide.meteor.com/deploy-command-line.html#cache-only) + - Improved watched system to properly rebuild `client` even when a file is outside of `client` or `imports` folders. See [PR](https://github.com/meteor/meteor/pull/11474) for details. + - Fix an issue when `App.appendToConfig` crashed Cordova build. + - Reify compiler now uses cache in runtime. [Read more](https://github.com/meteor/meteor/pull/11400) + +* `launch-screen@1.3.0` + - Removes LaunchScreen from web clients. + +* `meteor-babel@7.11.0 (@meteorjs/babel)` + - Fixes for Samsung Internet v6.2+ to be considered modern browser and addition of [logical assignment operators](https://github.com/tc39/proposal-logical-assignment) via `babel-presets-meteor`. + - This package was renamed to `@meteorjs/babel`. + +* `hot-module-replacement@0.3.0` + - Fixes various HMR bugs and edge cases see [PR for more](https://github.com/meteor/meteor/pull/11405). + +* `email@2.1.0` + - Updates `nodemailer` to `6.6.0` and it now adds `charset=utf-8` to `text/plain` messages by default. + +* `server-render@0.4.0` + - Updated npm dependencies + +* `accounts-base@2.0.0` + - New hook `setAdditionalFindUserOnExternalLogin` has been added which allows you to customize user selection on external logins if you want to, for example, login a user who has the same e-mail as the external account. + +* `ddp-server@2.4.0` + - Added support for `this.unblock()` in `Meteor.publish()` context. See [PR](https://github.com/meteor/meteor/pull/11392) for more details. + - Add support in `Meteor.publish()` for async functions + +* `webapp@1.11.0` + - Webapp will respond appropriately to unsupported requests instead of sending content, including handling for new HTTP verbs. See [PR](https://github.com/meteor/meteor/pull/11224) for more details. + +#### Independent Releases + +* `ddp-server@2.3.3` + - Updates dependencies which removes Node's HTTP deprecation warning. + +* `socket-stream-client@0.3.2` + - Updates dependencies which removes Node's HTTP deprecation warning. + +* `ddp-client@2.4.1` + - Re-ordering fields in DDP message for better client readability. + +* `mongo@1.11.1` + - Fixes a `Timestamp.ONE is undefined` bug. + +* `mongo-id@1.0.8` + - Removes unused dependency `id-map`. + +* `accounts-server@1.7.1` + - To better test password format & limit password to 256 characters, you can change this limit by setting `Meteor.settings.packages.accounts.passwordMaxLength`. + +* `static-html@1.3.1` + - Removes `underscore` dependency. + +* `dev-error-overlay@0.1.1` + - Fixes sometimes page content being on top of error overlay. + +* `id-map@1.1.1` + - Removes unused dependencies and modernizing the code. + +* `http@1.4.4` + - Used the new deprecation package flag instead of loud console warning. + +* `logic-solver@2.0.8` + - Fixed `package.js` to use current `api` method calls. + +* `socket-stream-client@0.3.3` + - Update `faye-websocket` dependency to v0.11.4. + +* `jshint@1.1.8` + - The package has been deprecated. + +* `npm-bcrypt@0.9.4` + - The package has been deprecated. + +* `ecmascript-runtime-client@0.11.1` + - Updated `core-js` to v3.14.0 + +* `ecmascript-runtime-server@0.11.1` + - Updated `core-js` to v3.14.0 + +* `url@1.3.2` + - Updated `core-js` to v3.14.0 + +* `hot-module-replacement@0.2.1` + - Add missing dependency. + +* `observe-sequence@1.0.17` + - Updated dependencies + +* `observe-sequence@1.0.18` + - When `#each` argument is unsupported it will be shown + - Moving package under Blaze repository + +* `react-fast-refresh@0.1.1` + - Fixed the package to work in IE11 + +## v2.2.4, 2021-10-12 + +#### Meteor Version Release + +* `meteor-tool@2.2.4` + - Patch to make 2.2.4 compatible with Push to Deploy feature in Galaxy (Meteor Cloud) + +## v2.2.3, 2021-08-12 + +#### Highlights + +* Security update to Node.js [12.22.5](https://nodejs.org/en/blog/release/v12.22.5/) +* Typescript updated to [v4.3.5](https://github.com/Microsoft/TypeScript/releases/tag/v4.3.5) + +#### Meteor Version Release + +* `meteor-tool@2.3.3` + - Updated Node.js to 12.22.5 per [Node security update](https://nodejs.org/en/blog/vulnerability/aug-2021-security-releases/) + - Typescript updated to [v4.3.5](https://github.com/Microsoft/TypeScript/releases/tag/v4.3.5) + - `@meteorjs/babel@7.12.0` + +* `@meteorjs/babel@7.12.0` && `@meteorjs/babel@7.13.0` + - Dependencies updated to their latest versions + +* `babel-compile@7.7.0` + - `@meteorjs/babel@7.12.0` + +* `ecmascript@0.15.3` + - Typescript and Babel version bump + +* `typescript@4.3.5` + - [`typescript@4.3.5`](https://github.com/Microsoft/TypeScript/releases/tag/v4.3.5) + +## v2.2.2, 2021-08-02 + +#### Highlights + +- Security update to Node.js [12.22.4](https://nodejs.org/en/blog/release/v12.22.4/) + +## v2.2.1, 2021-06-02 + +#### Highlights + +- Node.js updated to [12.22.2](https://nodejs.org/en/blog/release/v12.22.2/) +- npm updated to 6.14.13 + +#### Meteor Version Release + +* `meteor-tool@2.2.1` + - Updated Node.js to 12.22.2 per [Node security update](https://nodejs.org/en/blog/vulnerability/july-2021-security-releases/) + +## v2.2, 2021-04-15 + +#### Highlights + +- MongoDB Update to 4.4.4 +- Cordova Update to 10 +- Typescript Update to 4.2.2 +- New skeleton: `meteor create myapp --svelte` + +### Breaking changes + +* N/A + +### Migration steps + +* `meteor-tool` maybe you need to install the new Visual C++ Redistributable for Visual Studio 2019 to run MongoDB 4.4.4 on Windows. [read more](https://docs.meteor.com/windows.html) + +* `mongo` package is now using useUnifiedTopology as `true` by default otherwise the new driver was producing a warning (see details below). It's important to test your app with this change. + +* `cordova` plugins and main libraries were updated from 9 to 10. It's important to test your app with these changes. + +* `typescript` was updated to 4.2.2, make sure your read the [breaking changes](https://devblogs.microsoft.com/typescript/announcing-typescript-4-2/#breaking-changes). + +#### Meteor Version Release + +* `meteor-tool@2.2` + - Update embedded MongoDB version to 4.4.4 [#11341](https://github.com/meteor/meteor/pull/11341) + - Maybe you need to install the new Visual C++ Redistributable for Visual Studio 2019 to run on Windows. [read more](https://docs.meteor.com/windows.html) + - Fix WindowsLikeFilesystem true when release string includes case insensitive word microsoft. [#11321](https://github.com/meteor/meteor/pull/11321) + - Fix absoluteFilePath on Windows. [#11346](https://github.com/meteor/meteor/pull/11346) + - New skeleton: `meteor create myapp --svelte` + - Update Blaze skeleton to use HMR + +* `npm-mongo@3.9.0` + - Update MongoDB driver version to 3.6.6 + +* `mongo@1.11.0` + - Using useUnifiedTopology as `true` by default to avoid the warning: `(node:59240) [MONGODB DRIVER] Warning: Current Server Discovery and Monitoring engine is deprecated, and will be removed in a future version. To use the new Server Discover and Monitoring engine, pass option { useUnifiedTopology: true } to the MongoClient constructor. You can still use it as false with `Mongo._connectionOptions` or `Meteor.settings?.packages?.mongo?.options`. + +* `cordova@10` + - Update Cordova to 10.0.0 [#11208](https://github.com/meteor/meteor/pull/11208) + +* `typescript@4.2.2` + - Update Typescript to 4.2.2, make sure your read the [breaking changes](https://devblogs.microsoft.com/typescript/announcing-typescript-4-2/#breaking-changes) [#11329](https://github.com/meteor/meteor/pull/11329) + +* `accounts-base@1.9.0` + - Allow to set token expiration to be set in milliseconds. [#11366](https://github.com/meteor/meteor/pull/11366) + +* `facebook-oauth@1.9.0` + - Upgrade default Facebook API to v10 & allow overriding this value. [#11362](https://github.com/meteor/meteor/pull/11362) + +* `minimongo@1.6.2` + - Add [$mul](https://docs.mongodb.com/manual/reference/operator/update/mul/#up._S_mul) to minimongo. [#11364](https://github.com/meteor/meteor/pull/11364) + +* `webapp@1.10.1` + - Fix for UNIX sockets with node cluster. [#11369](https://github.com/meteor/meteor/pull/11369) + + +## v2.1.2, 2021-10-12 + +#### Meteor Version Release + +* `meteor-tool@2.1.2` + - Patch to make 2.1.2 compatible with Push to Deploy feature in Galaxy (Meteor Cloud) + +## v2.1.1, 2021-04-06 + +### Changes + +#### Highlights + +- Node.js security [update](https://nodejs.org/en/blog/vulnerability/april-2021-security-releases/) to 12.22.1 + +#### Meteor Version Release + +* `meteor-tool@2.1.1` + - Node.js security [update](https://nodejs.org/en/blog/vulnerability/april-2021-security-releases/) to 12.22.1 + - npm update to 6.14.12 + +### Breaking changes + +* N/A + +### Migration steps + +* N/A + +## v2.1, 2021-02-24 + +### Changes + +#### Highlights + +- Node.js security [update](https://nodejs.org/en/blog/vulnerability/february-2021-security-releases/) to 12.21.0 + +#### Meteor Version Release + +* `meteor-tool@2.1` + - Node.js security [update](https://nodejs.org/en/blog/vulnerability/february-2021-security-releases/) to 12.21.0 + - `meteor create my-app --plan professional` new flag `plan` to enable you to choose a plan from the deploy command. + +### Breaking changes + +* N/A + +### Migration steps + +* N/A + +## v2.0.1, 2021-10-12 + +#### Meteor Version Release + +* `meteor-tool@2.0.1` + - Patch to make 2.0.1 compatible with Push to Deploy feature in Galaxy (Meteor Cloud) + +## v2.0, 2021-01-20 + +### Changes + +#### Highlights + +- Free deploy on [Cloud](https://www.meteor.com/cloud): Deploy for free to Cloud with one command: `meteor deploy myapp.meteorapp.com --free`. ([docs](https://docs.meteor.com/commandline.html#meteordeploy)) + + +- Deploy including MongoDB on [Cloud](https://www.meteor.com/cloud): Deploy including MongoDB in a shared instance for free to Cloud with one command: `meteor deploy myapp.meteorapp.com --free --mongo`. ([docs](https://docs.meteor.com/commandline.html#meteordeploy)) + + +- Hot Module Replacement (HMR): Updates the javascript modules in a running app that were modified during a rebuild. Reduces the feedback cycle while developing so you can view and test changes quicker (it even updates the app before the build has finished). Enabled by adding the `hot-module-replacement` package to an app. React components are automatically updated by default using React Fast Refresh. Integrations with other libraries and view layers can be provided by third party packages. Support for Blaze is coming soon. This first version supports app code in the modern web architecture. ([docs](https://guide.meteor.com/build-tool.html#hot-module-replacement)) [#11117](https://github.com/meteor/meteor/pull/11117) + +#### Meteor Version Release + +* `meteor-tool@2.0` + - `meteor create my-app` now creates by default a project using React. If you want to create a new project using Blaze you should use the new option `--blaze`. + - `meteor create --react my-app` is still going to create a React project. + - `meteor create --free` deploy for free to Cloud with one command: `meteor deploy myapp.meteorapp.com --free`. ([docs](https://docs.meteor.com/commandline.html#meteordeploy)). + - `meteor create --free --mongo` deploy including MongoDB in a shared instance for free to Cloud with one command: `meteor deploy myapp.meteorapp.com --free --mongo`. ([docs](https://docs.meteor.com/commandline.html#meteordeploy)) + - `isobuild` fixes a regression on recompiling node modules in different architectures. [#11290](https://github.com/meteor/meteor/pull/11290) + - `isobuild` converts npm-discards.js to TypeScript. [#10663](https://github.com/meteor/meteor/pull/10663) + - `cordova` ensures the pathname of the rootUrl is used in the mobile URL. [#11053](hhttps://github.com/meteor/meteor/pull/11053) + - Add `file.hmrAvailable()` for compiler plugins to check if a file meets the minimum requirements to be updated with HMR [#11117](https://github.com/meteor/meteor/pull/11117) + + +* `hot-module-replacement@1.0.0` + - New package that enables Hot Module Replacement for the Meteor app and provides an API to configure how updates are applied. HMR reduces the feedback cycle while developing by updating modified javascript modules within the running application. ([docs](https://docs.meteor.com/packages/hot-module-replacement.html)) [#11117](https://github.com/meteor/meteor/pull/11117) + - These packages have been updated to support HMR: `autoupdate@1.7.0`, `babel-compiler@7.6.0`, `ddp-client@2.4.0`, `dynamic-import@0.6.0`, `ecmascript@0.15.0`, `modules@0.16.0`, `modules-runtime-hot@0.13.0`, `standard-minifier-css@1.7.2`, `webapp@1.10.0`, `webapp-hashing@1.1.0` + + +* `react-fast-refresh@0.1.0` + - New package that updates React components using HMR. This is enabled by default in apps that have HMR enabled and use a supported React version. ([docs](https://atmospherejs.com/meteor/react-fast-refresh)) [#11117](https://github.com/meteor/meteor/pull/11117) + + +* `dev-error-overlay@0.1.0` + - New package that allows you to see build errors and server crashes in your browser during development. Requires the app to have HMR enabled. [#11117](https://github.com/meteor/meteor/pull/11117) + + +* `accounts-base@1.8.0` and `accounts-password@1.7.0` + - Extra parameters can now be added to reset password, verify e-mail and enroll account links that are generated for account e-mails. By default, these are added as search parameters to the generated url. You can pass them as an object in the appropriate functions. E.g. `Accounts.sendEnrollmentEmail(userId, email, null, extraParams);`. [#11288](https://github.com/meteor/meteor/pull/11288) + + +* `logging@1.2.0` + - Updates dependencies and make debug available for use in non production environments. [#11068](https://github.com/meteor/meteor/pull/11068) + +#### Independent Releases +* `react-meteor-data@2.2.0` + - Fix issue with useTracker and Subscriptions when using deps. [#306](https://github.com/meteor/react-packages/pull/306) + - Remove version constraint on core TypeScript package [#308](https://github.com/meteor/react-packages/pull/308) + + +* `http` + - It has been deprecated. [#11068](https://github.com/meteor/meteor/pull/11068) + +### Breaking changes + +* `http` package has been deprecated. Please start on migrating towards the [fetch](https://atmospherejs.com/meteor/fetch) package instead. + +### Migration steps + +Simple run `meteor update` in your app. + +Great new features and no breaking changes (except one package deprecation). You can always check our [Roadmap](https://docs.meteor.com/roadmap.html) to understand what is next. + +## v1.12.2, 2021-10-12 + +#### Meteor Version Release + +* `meteor-tool@1.12.2` + - Patch to make 1.12.2 compatible with Push to Deploy feature in Galaxy (Meteor Cloud) + +## v1.12.1, 2021-01-06 + +### Breaking changes + +N/A + +### Migration steps + +N/A + +### Changes + +#### Highlights + +- Node.js 12.20.1 [release notes](https://nodejs.org/en/blog/vulnerability/january-2021-security-releases/) +- Fixes problem on IE because of modern syntax on `dynamic-import` package. + +#### Meteor Version Release + +* `dynamic-import@0.5.5` + - Fixes problem on IE because of modern syntax (arrow function). + +* `meteor-babel@7.10.6` + - Allows to disable sourceMap generation [#36](https://github.com/meteor/babel/pull/36) + +* `babel-compiler@7.5.5` + - Allows to disable sourceMap generation [#36](https://github.com/meteor/babel/pull/36) + +## v1.12, 2020-12-04 + +### Breaking changes + +- When importing types, you might need to use the "type" qualifier, like so: +```js +import { Point } from 'react-easy-crop/types'; +``` +to +```ts +import type { Point } from 'react-easy-crop/types'; +``` +Because now emitDecoratorsMetadata is enabled. + +- Refer to typescript breaking changes before migrating your existing project, from 3.7.6 to 4.1.2: https://github.com/Microsoft/TypeScript/wiki/Breaking-Changes + +### Migration steps + +N/A + +### Changes + +#### Highlights +- TypeScript update from 3.7.6 to 4.1.2. + - enables decorators and metadata reflection. Important: these are stage 2 features so be aware that breaking changes could be introduced before they reach stage 3. + +#### Meteor Version Release +* `meteor-tool@1.12` + - updates TypeScript to 4.1.2. [#11225](https://github.com/meteor/meteor/pull/11225) and [#11255](https://github.com/meteor/meteor/pull/11255) + - adds new options for `meteor list` command (TODO pending link to updated doc). [#11165](https://github.com/meteor/meteor/pull/11165) + - supports Cordova add plugin command working again with plugin id or plugin name in the git URL as it was before Meteor 1.11. [#11202](https://github.com/meteor/meteor/pull/11202) + - avoids MiTM by downloading through https. [#11188](https://github.com/meteor/meteor/pull/11188) + +* `meteor-babel@7.10.5` + - updates TypeScript to 4.1.2 and enables decorators and metadata reflection. [#11225](https://github.com/meteor/meteor/pull/11225) and [#11255](https://github.com/meteor/meteor/pull/11255) + +* `minimongo@1.6.1` + - fixes a null reference exception, if an array contains null values while compiling a fields projection. [#10499](https://github.com/meteor/meteor/pull/10499). + +* `accounts-password@1.6.3` + - adds a new function `createUserVerifyingEmail` (TODO pending link to updated doc). [#11080](https://github.com/meteor/meteor/pull/11080) + - fixes a typo. [#11182](https://github.com/meteor/meteor/pull/11182) + +* `browser-content-policy@1.1.1` + - adds support to nonce + ```js + BrowserPolicy.content.allowScriptOrigin(`nonce-${nonce}`); + ``` + +* `accounts-ui@1.3.2` + - follow accounts-ui-unstyled release + +* `accounts-ui-unstyled@1.4.3` + - fixes the login form would send the server two login requests + - fixes the "forgot password" form would not only send the email but also refresh the page + +* `dynamic-import@0.5.4` + - fixes prefetching errors. [#11209](https://github.com/meteor/meteor/pull/11209) + - adds the option for dynamic-imports to fetch from the current origin instead of the absolute URL. [#11105](https://github.com/meteor/meteor/pull/11105) + +* `mongo-decimal@0.1.2` + - updates npm dependency `decimal.js` to v10.2.1 + +* `accounts-base@1.7.1` + - adds the ability to define default user fields published on login. [#11118](https://github.com/meteor/meteor/pull/11118) + +* `standard-minifier-css@1.7.0` + - modernize and update dependencies. [#11196](https://github.com/meteor/meteor/pull/11196) + + +#### Independent Releases +* `facebook-oauth@1.7.3` + - is now using Facebook GraphAPI v8. [#11160](https://github.com/meteor/meteor/pull/11160) + +## v1.11.1, 2020-09-16 + +### Breaking changes + +N/A + +### Migration steps + +N/A + +### Changes + +* `--apollo` skeleton was missing client cache setup [more](https://github.com/meteor/meteor/pull/11146) + +* `--vue` skeleton was updated to use proper folder structure [more](https://github.com/meteor/meteor/pull/11174) + +* All skeletons got their `npm` dependencies updated. [more](https://github.com/meteor/meteor/pull/11172) + +* Node.js has been updated to version [12.18.4](https://nodejs.org/en/blog/release/v12.18.4/), this is a [security release](https://nodejs.org/en/blog/vulnerability/september-2020-security-releases/) + +* Updated npm to version 6.14.8 [more](https://blog.npmjs.org/post/626732790304686080/release-6148) + +* `npm-mongo` version 3.8.1 was published, updating `mongodb` to [3.6.2](https://github.com/mongodb/node-mongodb-native/releases/tag/v3.6.2) [more](https://github.com/advisories/GHSA-pp7h-53gx-mx7r) + +* Updated PostCSS from 7.0.31 to 7.0.32 [more](https://github.com/meteor/meteor/issues/10682) + +* Allow android-webview-video-poster [more](https://github.com/meteor/meteor/pull/11159) + +## v1.11, 2020-08-18 + +### Breaking changes + +* `email` package dependencies have been update and package version has been bumped to 2.0.0 + There is a potential breaking change as the underlying package started to use `dns.resolve()` + instead of `dns.lookup()` which might be breaking on some environments. + See [nodemailer changelog](https://github.com/nodemailer/nodemailer/blob/master/CHANGELOG.md) for more information. + +* (Added later) Cordova add plugin is not working with plugin name in the git URL when the plugin id was different than the name in the config.xml. Fixed on [#11202](https://github.com/meteor/meteor/pull/11202) + +### Migration steps + +N/A + +### Changes + +* `meteor create --apollo` is now available thanks to [@StorytellerCZ](https://github.com/StorytellerCZ). PR [#11119](https://github.com/meteor/meteor/pull/11119) + +* `meteor create --vue` is now available thanks to [@chris-visser](https://github.com/chris-visser). PR [#11086](https://github.com/meteor/meteor/pull/11086) + +* `--cache-build` option is now available on `meteor deploy` command and you can use it safely all the time if you are using a Git repository to run your deploy. This is helpful if your upload is failing then you can retry just the upload and also if you deploy the same bundle to multiple environments. [Read more](https://galaxy-guide.meteor.com/deploy-command-line.html#cache-build) + +* Multiple optimizations in build performance, many of them for Windows thanks to [@zodern](https://github.com/zodern). PRs [#10838](https://github.com/meteor/meteor/pull/10838), [#11114](https://github.com/meteor/meteor/pull/11114), [#11115](https://github.com/meteor/meteor/pull/11115), [#11102](https://github.com/meteor/meteor/pull/11102), [#10839](https://github.com/meteor/meteor/pull/10839) + +* Fixes error when removing cordova plugin that depends on cli variables. PR [#10976](https://github.com/meteor/meteor/pull/11052) + +* `email` package now exposes `hookSend` that runs before emails are send. + +* Node.js has been updated to version + [12.18.3](https://nodejs.org/en/blog/release/v12.18.3/) + +* Updated npm to version 6.14.5 + +* `mongodb` driver npm dependency has been updated to 3.6.0 + +* The version of MongoDB used by Meteor in development has been updated + from 4.2.5 to 4.2.8 + +## v1.10.2, 2020-04-21 + +### Breaking changes + +* The `babel-compiler` package, used by both `ecmascript` and + `typescript`, no longer supports stripping [Flow](https://flow.org/) + type annotations by default, which may be a breaking change if your + application (or Meteor package) relied on Flow syntax. + +### Migration steps + +* If you still need Babel's Flow plugins, you can install them with npm + and then enable them with a custom `.babelrc` file in your application's + (or package's) root directory: + ```json + { + "plugins": [ + "@babel/plugin-syntax-flow", + "@babel/plugin-transform-flow-strip-types" + ] + } + ``` + +### Changes + +* Adds support to override MongoDB options via Meteor settings. Code PR + [#10976](https://github.com/meteor/meteor/pull/10976), Docs PR + [#662](https://github.com/meteor/docs/pull/662) + +* The `meteor-babel` npm package has been updated to version 7.9.0. + +* The `typescript` npm package has been updated to version 3.8.3. + +* To pass Node command line flags to the server node instance, + now it is recommended to use `SERVER_NODE_OPTIONS` instead of `NODE_OPTIONS`. + Since Meteor 0.5.3, Meteor allowed to pass node command line flags via the `NODE_OPTIONS` + environment variable. + However, since Node version 8 / Meteor 1.6 this has become a default node + envar with the same behavior. The side effect is that this now also affects + Meteor tool. The command line parameters could already be set separately + via the `TOOL_NODE_FLAGS` envar. This is now also possible (again) for the server. + +* The version of MongoDB used by Meteor in development has been updated from + 4.2.1 to 4.2.5. + [PR #11020](https://github.com/meteor/meteor/pull/11020) + +* The `url` package now provides an isomorphic implementation of the [WHATWG `url()` + API](https://url.spec.whatwg.org/). + While remaining backwards compatible, you can now also import `URL` and `URLSearchParams` from `meteor/url`. + These will work for both modern and legacy browsers as well as node. + + +## v1.10.1, 2020-03-12 + +### Breaking changes + +* Cordova has been updated from version 7 to 9. We recommend that you test + your features that are taking advantage of Cordova plugins to be sure + they are still working as expected. + + * WKWebViewOnly is set by default now as true so if you are relying on + UIWebView or plugins that are using UIWebView APIs you probably want to + set it as false, you can do this by calling + `App.setPreference('WKWebViewOnly', false);` in your mobile-config.js. But we + don't recommend turning this into false because + [Apple have said](https://developer.apple.com/news/?id=12232019b) they are + going to reject apps using UIWebView. + +* Because MongoDB since 3.4 no longer supports 32-bit Windows, Meteor 1.10 has + also dropped support for 32-bit Windows. In other words, Meteor 1.10 supports + 64-bit Mac, Windows 64-bit, and Linux 64-bit. + +### Migration Steps +* If you get `Unexpected mongo exit code 62. Restarting.` when starting your local + MongoDB, you can either reset your project (`meteor reset`) + (if you don't care about your local data) + or you will need to update the feature compatibility version of your local MongoDB: + + 1. Downgrade your app to earlier version of Meteor `meteor update --release 1.9.2` + 2. Start your application + 3. While your application is running open a new terminal window, navigate to the + app directory and open `mongo` shell: `meteor mongo` + 4. Use: `db.adminCommand({ getParameter: 1, featureCompatibilityVersion: 1 })` to + check the current feature compatibility. + 5. If the returned version is less than 4.0 update like this: + `db.adminCommand({ setFeatureCompatibilityVersion: "4.2" })` + 6. You can now stop your app and update to Meteor 1.10. + + For more information about this, check out [MongoDB documentation](https://docs.mongodb.com/manual/release-notes/4.2-upgrade-standalone/). + +### Changes + +* The version of MongoDB used by Meteor in development has been updated + from 4.0.6 to 4.2.1, and the `mongodb` driver package has been updated + from 3.2.7 to 3.5.4, thanks to [@klaussner](https://github.com/klaussner). + [Feature #361](https://github.com/meteor/meteor-feature-requests/issues/361) + [PR #10723](https://github.com/meteor/meteor/pull/10723) + +* The `npm` command-line tool used by the `meteor npm` command (and by + Meteor internally) has been updated to version 6.14.0, and our + [fork](https://github.com/meteor/pacote/tree/v9.5.12-meteor) of its + `pacote` dependency has been updated to version 9.5.12. + +* Cordova was updated from version 7 to 9 + * cordova-lib from 7.1.0 to 9.0.1 [release notes](https://github.com/apache/cordova-lib/blob/master/RELEASENOTES.md) + * cordova-common from 2.1.1 to 3.2.1 [release notes](https://github.com/apache/cordova-common/blob/master/RELEASENOTES.md) + * cordova-android from 7.1.4 to 8.1.0 [release notes](https://github.com/apache/cordova-android/blob/master/RELEASENOTES.md) + * cordova-ios from 4.5.5 to 5.1.1 [release notes](https://github.com/apache/cordova-ios/blob/master/RELEASENOTES.md) + * cordova-plugin-wkwebview-engine from 1.1.4 to 1.2.1 [release notes](https://github.com/apache/cordova-plugin-wkwebview-engine/blob/master/RELEASENOTES.md#121-jul-20-2019) + * cordova-plugin-whitelist from 1.3.3 to 1.3.4 [release notes](https://github.com/apache/cordova-plugin-whitelist/blob/master/RELEASENOTES.md#134-jun-19-2019) + * cordova-plugin-splashscreen (included by mobile-experience > launch-screen) + from 4.1.0 to 5.0.3 [release notes](https://github.com/apache/cordova-plugin-splashscreen/blob/master/RELEASENOTES.md#503-may-09-2019) + * cordova-plugin-statusbar (included by mobile-experience > mobile-status-bar) + from 2.3.0 to 2.4.3 [release notes](https://github.com/apache/cordova-plugin-statusbar/blob/master/RELEASENOTES.md#243-jun-19-2019) + * On iOS WKWebViewOnly is set by default now as true. + * On iOS the Swift version is now set by default to `5` this change can make + your app to produce some warnings if your plugins are using old Swift code. + You can override the Swift version using + `App.setPreference('SwiftVersion', 4.2);` but we don't recommend that. + +* New command to ensure that Cordova dependencies are installed. Usage: + `meteor ensure-cordova-dependencies`. Meteor handles this automatically but in + some cases, like running in a CI, is useful to install them in advance. + +* You can now pass an `--exclude-archs` option to the `meteor run` and + `meteor test` commands to temporarily disable building certain web + architectures. For example, `meteor run --exclude-archs web.browser.legacy`. + Multiple architectures should be separated by commas. This option can be + used to improve (re)build times if you're not actively testing the + excluded architectures during development. + [Feature #333](https://github.com/meteor/meteor-feature-requests/issues/333), + [PR #10824](https://github.com/meteor/meteor/pull/10824) + +* `meteor create --react app` and `--typescript` now use `useTracker` hook instead of + `withTracker` HOC, it also uses `function` components instead of `classes`. + +## v1.9.3, 2020-03-09 + +### Breaking changes +* The MongoDB `retryWrites` option now defaults to `true` (it previously defaulted to false). Users of database services that don't support retryWrites will experience a fatal error due to this. + +### Migration Steps +* If you get the error `MongoError: This MongoDB deployment does not support retryable writes. Please add retryWrites=false to your connection string.`, append `retryWrites=false` to your MongoDB connection string. + +### Changes +* `mongodb` driver package has been updated + from 3.2.7 to 3.5.4 [#10961](https://github.com/meteor/meteor/pull/10961) + +## v1.9.2, 2020-02-20 + +### Breaking changes +N/A + +### Migration Steps +N/A + +### Changes + +* Node.js has been updated to version + [12.16.1](https://nodejs.org/en/blog/release/v12.16.1/), fixing several unintended + [regressions](https://github.com/nodejs/node/blob/master/doc/changelogs/CHANGELOG_V12.md#12.16.1) + introduced in 12.16.0. + +* The `meteor-babel` npm package has been updated to version 7.8.2. + +* The `typescript` npm package has been updated to version 3.7.5. + +## v1.9.1, 2020-02-18 + +### Breaking changes + +N/A + +### Migration Steps +N/A + +### Changes + +* Node.js has been updated to version + 12.16.0 from 12.14.0, which includes + security updates and small changes: + * [12.16.0](https://nodejs.org/en/blog/release/v12.16.0/) + * Updated V8 to [release v7.8](https://v8.dev/blog/v8-release-78) which includes improvements in performance, for example, object destructuring now is as fast as the equivalent variable assignment. + * [12.15.0](https://nodejs.org/en/blog/release/v12.15.0/) + +* `cursor.observeChanges` now accepts a second options argument. + If your observer functions do not mutate the passed arguments, you can specify + `{ nonMutatingCallbacks: true }`, which improves performance by reducing + the amount of data copies. + +## v1.9, 2020-01-09 + +### Breaking changes + +* Because Node.js 12 no longer supports 32-bit Linux, Meteor 1.9 has also + dropped support for 32-bit Linux. In other words, Meteor 1.9 supports + 64-bit Mac, Windows, and Linux, as well as 32-bit Windows. + +### Migration Steps +N/A + +### Changes + +* Node.js has been updated to version + [12.14.0](https://nodejs.org/en/blog/release/v12.14.0/), which includes + several major Node.js versions since 8.17.0 (used by Meteor 1.8.3): + * [12.0.0](https://nodejs.org/en/blog/release/v12.0.0/) + * [11.0.0](https://nodejs.org/en/blog/release/v10.0.0/) + * [10.0.0](https://nodejs.org/en/blog/release/v10.0.0/) + * [9.0.0](https://nodejs.org/en/blog/release/v9.0.0/) + +* The `fibers` npm package has been updated to version 4.0.3, which + includes [changes](https://github.com/laverdet/node-fibers/pull/429) + that may drastically reduce garbage collection pressure resulting from + heavy `Fiber` usage. + +* The `pathwatcher` npm package has been updated to use a fork of version + 8.0.2, with [PR #128](https://github.com/atom/node-pathwatcher/pull/128) + applied. + +* The `sqlite3` npm package has been updated to version 4.1.0. + +* The `node-gyp` npm package has been updated to version 6.0.1, and + `node-pre-gyp` has been updated to version 0.14.0. + +* The feature that restarts the application up to two times if it crashes + on startup has been removed. + [Feature #335](https://github.com/meteor/meteor-feature-requests/issues/335) + [PR #10345](https://github.com/meteor/meteor/pull/10345) + +* Facebook OAuth has been updated to call v5 API endpoints. [PR #10738](https://github.com/meteor/meteor/pull/10738) + +* `Meteor.user()`, `Meteor.findUserByEmail()` and `Meteor.findUserByUserName()` can take a new + `options` parameter which can be used to limit the returned fields. Useful for minimizing + DB bandwidth on the server and avoiding unnecessary reactive UI updates on the client. + [Issue #10469](https://github.com/meteor/meteor/issues/10469) + +* `Accounts.config()` has a new option `defaultFieldSelector` which will apply to all + `Meteor.user()` and `Meteor.findUserBy...()` functions without explicit field selectors, and + also to all `onLogin`, `onLogout` and `onLoginFailure` callbacks. This is useful if you store + large data on the user document (e.g. a growing list of transactions) which do no need to be + retrieved from the DB whenever you or a package author call `Meteor.user()` without limiting the + fields. [Issue #10469](https://github.com/meteor/meteor/issues/10469) + +* Lots of internal calls to `Meteor.user()` without field specifiers in `accounts-base` and + `accounts-password` packages have been optimized with explicit field selectors to only + the fields needed by the functions they are in. + [Issue #10469](https://github.com/meteor/meteor/issues/10469) + +## v1.8.3, 2019-12-19 + +### Migration Steps + +* If your application uses `blaze-html-templates`, the Meteor `jquery` + package will be automatically installed in your `.meteor/packages` file + when you update to Meteor 1.8.3. However, this new version of the Meteor + `jquery` package no longer bundles its own copy of the `jquery` npm + implementation, so you may need to install `jquery` from npm by running + ```sh + meteor npm i jquery + ``` + in your application directory. Symptoms of not installing jquery include + a blank browser window, with helpful error messages in the console. + +### Changes + +* Node has been updated to version + [8.17.0](https://nodejs.org/en/blog/release/v8.17.0/). + +* The `npm` npm package has been updated to version 6.13.4, and our + [fork](https://github.com/meteor/pacote/tree/v9.5.11-meteor) of its + `pacote` dependency has been updated to version 9.5.11, an important + [security release](https://nodejs.org/en/blog/vulnerability/december-2019-security-releases/). + +* Prior to Meteor 1.8.3, installing the `jquery` package from npm along + with the Meteor `jquery` package could result in bundling jQuery twice. + Thanks to [PR #10498](https://github.com/meteor/meteor/pull/10498), the + Meteor `jquery` package will no longer provide its own copy of jQuery, + but will simply display a warning in the console if the `jquery` npm + package cannot be found in your `node_modules` directory. If you are + using `blaze` in your application, updating to Meteor 1.8.3 will + automatically add this new version of the Meteor `jquery` package to + your application if you were not already using it (thanks to + [PR #10801](https://github.com/meteor/meteor/pull/10801)), but you might + need to run `meteor npm i jquery` manually, so that `blaze` can import + `jquery` from your `node_modules` directory. + +* The `meteor-babel` npm package has been updated to version 7.7.5. + +* The `typescript` npm package has been updated to version 3.7.3. + +## v1.8.2, 2019-11-14 + +### Breaking changes + +* Module-level variable declarations named `require` or `exports` are no + longer automatically renamed, so they may collide with module function + parameters of the same name, leading to errors like + `Uncaught SyntaxError: Identifier 'exports' has already been declared`. + See [this comment](https://github.com/meteor/meteor/pull/10522#issuecomment-535535056) + by [@SimonSimCity](https://github.com/SimonSimCity). + +* `Plugin.fs` methods are now always sync and no longer accept a callback. + +### Migration Steps + +* Be sure to update the `@babel/runtime` npm package to its latest version + (currently 7.7.2): + ```sh + meteor npm install @babel/runtime@latest + ``` + +* New Meteor applications now depend on `meteor-node-stubs@1.0.0`, so it + may be a good idea to update to the same major version: + ```sh + meteor npm install meteor-node-stubs@next + ``` + +* If you are the author of any Meteor packages, and you encounter errors + when using those packages in a Meteor 1.8.2 application (for example, + `module.watch` being undefined), we recommend that you bump the minor + version of your package and republish it using Meteor 1.8.2, so + Meteor 1.8.2 applications will automatically use the new version of the + package, as compiled by Meteor 1.8.2: + ```sh + cd path/to/your/package + # Add api.versionsFrom("1.8.2") to Package.onUse in package.js... + meteor --release 1.8.2 publish + ``` + This may not be necessary for all packages, especially those that have + been recently republished using Meteor 1.8.1, or local packages in the + `packages/` directory (which are always recompiled from source). + However, republishing packages is a general solution to a wide variety + of package versioning and compilation problems, and package authors can + make their users' lives easier by handling these issues proactively. + +### Changes + +* Node has been updated to version + [8.16.2](https://nodejs.org/en/blog/release/v8.16.2/). + +* The `npm` npm package has been updated to version 6.13.0, and our + [fork](https://github.com/meteor/pacote/tree/v9.5.9-meteor) of its + `pacote` dependency has been updated to version 9.5.9. + +* New Meteor applications now include an official `typescript` package, + supporting TypeScript compilation of `.ts` and `.tsx` modules, which can + be added to existing apps by running `meteor add typescript`. + +* New TypeScript-based Meteor applications can be created by running + ```sh + meteor create --typescript new-typescript-app + ``` + This app skeleton contains a recommended tsconfig.json file, and should + serve as a reference for how to make TypeScript and Meteor work together + (to the best of our current knowledge). + [PR #10695](https://github.com/meteor/meteor/pull/10695) + +* When bundling modern client code, the Meteor module system now prefers + the `"module"` field in `package.json` (if defined) over the `"main"` + field, which should unlock various `import`/`export`-based optimizations + such as tree shaking in future versions of Meteor. As before, server + code uses only the `"main"` field, like Node.js, and legacy client code + prefers `"browser"`, `"main"`, and then `"module"`. + [PR #10541](https://github.com/meteor/meteor/pull/10541), + [PR #10765](https://github.com/meteor/meteor/pull/10765). + +* ECMAScript module syntax (`import`, `export`, and dynamic `import()`) is + now supported by default everywhere, including in modules imported from + `node_modules`, thanks to the [Reify](https://github.com/benjamn/reify) + compiler. + +* If you need to import code from `node_modules` that uses modern syntax + beyond module syntax, it is now possible to enable recompilation for + specific npm packages using the `meteor.nodeModules.recompile` option in + your application's `package.json` file. + See [PR #10603](https://github.com/meteor/meteor/pull/10603) for further + explanation. + +* The Meteor build process is now able to detect whether files changed in + development were actually used by the server bundle, so that a full + server restart can be avoided when no files used by the server bundle + have changed. Client-only refreshes are typically much faster than + server restarts. Run `meteor add autoupdate` to enable client refreshes, + if you are not already using the `autoupdate` package. + [Issue #10449](https://github.com/meteor/meteor/issues/10449) + [PR #10686](https://github.com/meteor/meteor/pull/10686) + +* The `mongodb` npm package used by the `npm-mongo` Meteor package has + been updated to version 3.2.7. + +* The `meteor-babel` npm package has been updated to version 7.7.0, + enabling compilation of the `meteor/tools` codebase with TypeScript + (specifically, version 3.7.2 of the `typescript` npm package). + +* The `reify` npm package has been updated to version 0.20.12. + +* The `core-js` npm package used by `ecmascript-runtime-client` and + `ecmascript-runtime-server` has been updated to version 3.2.1. + +* The `terser` npm package used by `minifier-js` (and indirectly by + `standard-minifier-js`) has been updated to version 4.3.1. + +* The `node-gyp` npm package has been updated to version 5.0.1, and + `node-pre-gyp` has been updated to 0.13.0. + +* The `optimism` npm package has been updated to version 0.11.3, which + enables caching of thrown exceptions as well as ordinary results, in + addition to performance improvements. + +* The `pathwatcher` npm package has been updated to version 8.1.0. + +* The `underscore` npm package installed in the Meteor dev bundle (for use + by the `meteor/tools` codebase) has been updated from version 1.5.2 to + version 1.9.1, and `@types/underscore` has been installed for better + TypeScript support. + +* In addition to the `.js` and `.jsx` file extensions, the `ecmascript` + compiler plugin now automatically handles JavaScript modules with the + `.mjs` file extension. + +* Add `--cordova-server-port` option to override local port where Cordova will + serve static resources, which is useful when multiple Cordova apps are built + from the same application source code, since by default the port is generated + using the ID from the application's `.meteor/.id` file. + +* The `--test-app-path ` option for `meteor test-packages` and + `meteor test` now accepts relative paths as well as absolute paths. + +## v1.8.1, 2019-04-03 + +### Breaking changes + +* 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 + +### Changes + +* Node has been updated from version 8.11.4 to version + [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 + 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) + +* The `npm` tool has been upgraded to version + [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 + 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 + 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. + +* 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 + 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) + +* 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) + +* 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 + [MongoDB Jira issue](https://jira.mongodb.org/browse/SERVER-38862) + for more details. + +* In Meteor packages, `client/` and `server/` directories no longer have + any special meaning. In application code, `client/` directories are + ignored during the server build, and `server/` directories are ignored + during the client build, as before. This special behavior previously + applied to packages as well, but has now been removed. + [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 + 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) + +* 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) + +* 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 +N/A + +### Migration steps +N/A + +### Changes + +* The [React tutorial](https://www.meteor.com/tutorials/react/creating-an-app) + has been updated to address a number of inaccuracies due to changes in + recent Meteor releases that were not fully incorporated back into the + tutorial. As a reminder, Meteor now supports a `meteor create --react` + command that can be used to create a new React-based app quickly. + +* Fixed a bug where modules named with `*.app-tests.js` (or `*.tests.js`) + file extensions sometimes could not be imported by the + `meteor.testModule` entry point when running the `meteor test` command + (or `meteor test --full-app`). + [PR #10402](https://github.com/meteor/meteor/pull/10402) + +* 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. + +* The `meteor-babel` npm package has been updated to version 7.2.0, + improving source maps for applications with custom `.babelrc` files. + +## v1.8.0.1, 2018-11-23 + +### Breaking changes +N/A + +### Migration steps +N/A + +### Changes + +* The `useragent` npm package used by `webapp` and (indirectly) by the + `modern-browsers` package has been updated from 2.2.1 to 2.3.0. The + `chromium` browser name has been aliased to use the same minimum modern + version as `chrome`, and browser names are now processed + case-insensitively by the `modern-browsers` package. + [PR #10334](https://github.com/meteor/meteor/pull/10334) + +* Fixed a module caching bug that allowed `findImportedModuleIdentifiers` + to return the same identifiers for the modern and legacy versions of a + given module, even if the set of imported modules is different (for + example, because Babel injects fewer `@babel/runtime/...` imports into + modern code). Now the caching is always based on the SHA-1 hash of the + _generated_ code, rather than trusting the hash provided by compiler + plugins. [PR #10330](https://github.com/meteor/meteor/pull/10330) + +## v1.8, 2018-10-08 + +### Breaking changes +N/A + +### Migration Steps + +* Update the `@babel/runtime` npm package to version 7.0.0 or later: + ```sh + meteor npm install @babel/runtime@latest + ``` + +### Changes + +* Although Node 8.12.0 has been released, Meteor 1.8 still uses Node + 8.11.4, due to concerns about excessive garbage collection and CPU usage + in production. To enable Galaxy customers to use Node 8.12.0, we are + planning a quick follow-up Meteor 1.8.1 release, which can be obtained + by running the command + ```bash + meteor update --release 1.8.1-beta.n + ``` + where `-beta.n` is the latest beta release according to the + [releases](https://github.com/meteor/meteor/releases) page (currently + `-beta.6`). + [Issue #10216](https://github.com/meteor/meteor/issues/10216) + [PR #10248](https://github.com/meteor/meteor/pull/10248) + +* Meteor 1.7 introduced a new client bundle called `web.browser.legacy` in + addition to the `web.browser` (modern) and `web.cordova` bundles. + Naturally, this extra bundle increased client (re)build times. Since + developers spend most of their time testing the modern bundle in + development, and the legacy bundle mostly provides a safe fallback in + production, Meteor 1.8 cleverly postpones building the legacy bundle + until just after the development server restarts, so that development + can continue as soon as the modern bundle has finished building. Since + the legacy build happens during a time when the build process would + otherwise be completely idle, the impact of the legacy build on server + performance is minimal. Nevertheless, the legacy bundle still gets + rebuilt regularly, so any legacy build errors will be surfaced in a + timely fashion, and legacy clients can test the new legacy bundle by + waiting a bit longer than modern clients. Applications using the + `autoupdate` or `hot-code-push` packages will reload modern and legacy + clients independently, once each new bundle becomes available. + [Issue #9948](https://github.com/meteor/meteor/issues/9948) + [PR #10055](https://github.com/meteor/meteor/pull/10055) + +* Compiler plugins that call `inputFile.addJavaScript` or + `inputFile.addStylesheet` may now delay expensive compilation work by + passing partial options (`{ path, hash }`) as the first argument, + followed by a callback function as the second argument, which will be + called by the build system once it knows the module will actually be + included in the bundle. For example, here's the old implementation of + `BabelCompiler#processFilesForTarget`: + ```js + processFilesForTarget(inputFiles) { + inputFiles.forEach(inputFile => { + var toBeAdded = this.processOneFileForTarget(inputFile); + if (toBeAdded) { + inputFile.addJavaScript(toBeAdded); + } + }); + } + ``` + and here's the new version: + ```js + processFilesForTarget(inputFiles) { + inputFiles.forEach(inputFile => { + if (inputFile.supportsLazyCompilation) { + inputFile.addJavaScript({ + path: inputFile.getPathInPackage(), + hash: inputFile.getSourceHash(), + }, function () { + return this.processOneFileForTarget(inputFile); + }); + } else { + var toBeAdded = this.processOneFileForTarget(inputFile); + if (toBeAdded) { + inputFile.addJavaScript(toBeAdded); + } + } + }); + } + ``` + If you are an author of a compiler plugin, we strongly recommend using + this new API, since unnecessary compilation of files that are not + included in the bundle can be a major source of performance problems for + compiler plugins. Although this new API is only available in Meteor 1.8, + you can use `inputFile.supportsLazyCompilation` to determine dynamically + whether the new API is available, so you can support older versions of + Meteor without having to publish multiple versions of your package. [PR + #9983](https://github.com/meteor/meteor/pull/9983) + +* New [React](https://reactjs.org/)-based Meteor applications can now be + created using the command + ```bash + meteor create --react new-react-app + ``` + Though relatively simple, this application template reflects the ideas + of many contributors, especially [@dmihal](https://github.com/dmihal) + and [@alexsicart](https://github.com/alexsicart), and it will no doubt + continue to evolve in future Meteor releases. + [Feature #182](https://github.com/meteor/meteor-feature-requests/issues/182) + [PR #10149](https://github.com/meteor/meteor/pull/10149) + +* The `.meteor/packages` file supports a new syntax for overriding + problematic version constraints from packages you do not control. + + If a package version constraint in `.meteor/packages` ends with a `!` + character, any other (non-`!`) constraints on that package elsewhere in + the application will be _weakened_ to allow any version greater than or + equal to the constraint, even if the major/minor versions do not match. + + For example, using both CoffeeScript 2 and `practicalmeteor:mocha` used + to be impossible (or at least very difficult) because of this + [`api.versionsFrom("1.3")`](https://github.com/practicalmeteor/meteor-mocha/blob/3a2658070a920f8846df48bb8d8c7b678b8c6870/package.js#L28) + statement, which unfortunately constrained the `coffeescript` package to + version 1.x. In Meteor 1.8, if you want to update `coffeescript` to + 2.x, you can relax the `practicalmeteor:mocha` constraint by putting + ``` + coffeescript@2.2.1_1! # note the ! + ``` + in your `.meteor/packages` file. The `coffeescript` version still needs + to be at least 1.x, so that `practicalmeteor:mocha` can count on that + minimum. However, `practicalmeteor:mocha` will no longer constrain the + major version of `coffeescript`, so `coffeescript@2.2.1_1` will work. + + [Feature #208](https://github.com/meteor/meteor-feature-requests/issues/208) + [Commit 4a70b12e](https://github.com/meteor/meteor/commit/4a70b12eddef00b6700f129e90018a6076cb1681) + [Commit 9872a3a7](https://github.com/meteor/meteor/commit/9872a3a71df033e4cf6290b75fea28f44427c0c2) + +* The `npm` package has been upgraded to version 6.4.1, and our + [fork](https://github.com/meteor/pacote/tree/v8.1.6-meteor) of its + `pacote` dependency has been rebased against version 8.1.6. + +* The `node-gyp` npm package has been updated to version 3.7.0, and the + `node-pre-gyp` npm package has been updated to version 0.10.3. + +* Scripts run via `meteor npm ...` can now use the `meteor` command more + safely, since the `PATH` environment variable will now be set so that + `meteor` always refers to the same `meteor` used to run `meteor npm`. + [PR #9941](https://github.com/meteor/meteor/pull/9941) + +* Minimongo's behavior for sorting fields containing an array + is now compatible with the behavior of [Mongo 3.6+](https://docs.mongodb.com/manual/release-notes/3.6-compatibility/#array-sort-behavior). + Note that this means it is now incompatible with the behavior of earlier MongoDB versions. + [PR #10214](https://github.com/meteor/meteor/pull/10214) + +* Meteor's `self-test` has been updated to use "headless" Chrome rather + than PhantomJS for browser tests. PhantomJS can still be forced by + passing the `--phantom` flag to the `meteor self-test` command. + [PR #9814](https://github.com/meteor/meteor/pull/9814) + +* Importing a directory containing an `index.*` file now works for + non-`.js` file extensions. As before, the list of possible extensions is + defined by which compiler plugins you have enabled. + [PR #10027](https://github.com/meteor/meteor/pull/10027) + +* Any client (modern or legacy) may now request any static JS or CSS + `web.browser` or `web.browser.legacy` resource, even if it was built for + a different architecture, which greatly simplifies CDN setup if your CDN + does not forward the `User-Agent` header to the origin. + [Issue #9953](https://github.com/meteor/meteor/issues/9953) + [PR #9965](https://github.com/meteor/meteor/pull/9965) + +* Cross-origin dynamic `import()` requests will now succeed in more cases. + [PR #9954](https://github.com/meteor/meteor/pull/9954) + +* Dynamic CSS modules (which are compiled to JS and handled like any other + JS module) will now be properly minified in production and source mapped + in development. [PR #9998](https://github.com/meteor/meteor/pull/9998) + +* While CSS is only minified in production, CSS files must be merged + together into a single stylesheet in both development and production. + This merging is [cached by `standard-minifier-css`](https://github.com/meteor/meteor/blob/183d5ff9500d908d537f58d35ce6cd6d780ab270/packages/standard-minifier-css/plugin/minify-css.js#L58-L62) + so that it does not happen on every rebuild in development, but not all + CSS minifier packages use the same caching techniques. Thanks to + [1ed095c36d](https://github.com/meteor/meteor/pull/9942/commits/1ed095c36d7b2915872eb0c943dae0c4f870d7e4), + this caching is now performed within the Meteor build tool, so it works + the same way for all CSS minifier packages, which may eliminate a few + seconds of rebuild time for projects with lots of CSS. + +* The `meteor-babel` npm package used by `babel-compiler` has been updated + to version 7.1.0. **Note:** This change _requires_ also updating the + `@babel/runtime` npm package to version 7.0.0-beta.56 or later: + ```sh + meteor npm install @babel/runtime@latest + ``` + [`meteor-babel` issue #22](https://github.com/meteor/babel/issues/22) + +* The `@babel/preset-env` and `@babel/preset-react` presets will be + ignored by Meteor if included in a `.babelrc` file, since Meteor already + provides equivalent/superior functionality without them. However, you + should feel free to leave these plugins in your `.babelrc` file if they + are needed by external tools. + +* The `install` npm package used by `modules-runtime` has been updated to + version 0.12.0. + +* The `reify` npm package has been updated to version 0.17.3, which + introduces the `module.link(id, {...})` runtime method as a replacement + for `module.watch(require(id), {...})`. Note: in future versions of + `reify` and Meteor, the `module.watch` runtime API will be removed, but + for now it still exists (and is used to implement `module.link`), so + that existing code will continue to work without recompilation. + +* The `uglify-es` npm package used by `minifier-js` has been replaced with + [`terser@3.9.2`](https://www.npmjs.com/package/terser), a fork of + `uglify-es` that appears to be (more actively) maintained. + [Issue #10042](https://github.com/meteor/meteor/issues/10042) + +* Mongo has been updated to version 4.0.2 and the `mongodb` npm package + used by `npm-mongo` has been updated to version 3.1.6. + [PR #10058](https://github.com/meteor/meteor/pull/10058) + [Feature Request #269](https://github.com/meteor/meteor-feature-requests/issues/269) + +* When a Meteor application uses a compiler plugin to process files with a + particular file extension (other than `.js` or `.json`), those file + extensions should be automatically appended to imports that do not + resolve as written. However, this behavior was not previously enabled + for modules inside `node_modules`. Thanks to + [8b04c25390](https://github.com/meteor/meteor/pull/9942/commits/8b04c253900e4ca2a194d2fcaf6fc2ce9a9085e7), + the same file extensions that are applied to modules outside the + `node_modules` directory will now be applied to those within it, though + `.js` and `.json` will always be tried first. + +* As foreshadowed in this [talk](https://youtu.be/vpCotlPieIY?t=29m18s) + about Meteor 1.7's modern/legacy bundling system + ([slides](https://slides.com/benjamn/meteor-night-may-2018#/46)), Meteor + now provides an isomorphic implementation of the [WHATWG `fetch()` + API](https://fetch.spec.whatwg.org/), which can be installed by running + ```sh + meteor add fetch + ``` + This package is a great demonstration of the modern/legacy bundling + system, since it has very different implementations in modern + browsers, legacy browsers, and Node. + [PR #10029](https://github.com/meteor/meteor/pull/10029) + +* The [`bundle-visualizer` + package](https://github.com/meteor/meteor/tree/release-1.7.1/packages/non-core/bundle-visualizer) + has received a number of UI improvements thanks to work by + [@jamesmillerburgess](https://github.com/jamesmillerburgess) in + [PR #10025](https://github.com/meteor/meteor/pull/10025). + [Feature #310](https://github.com/meteor/meteor-feature-requests/issues/310) + +* Sub-resource integrity hashes (sha512) can now be enabled for static CSS + and JS assets by calling `WebAppInternals.enableSubresourceIntegrity()`. + [PR #9933](https://github.com/meteor/meteor/pull/9933) + [PR #10050](https://github.com/meteor/meteor/pull/10050) + +* The environment variable `METEOR_PROFILE=milliseconds` now works for the + build portion of the `meteor build` and `meteor deploy` commands. + [Feature #239](https://github.com/meteor/meteor-feature-requests/issues/239) + +* Babel compiler plugins will now receive a `caller` option of the + following form: + ```js + { name: "meteor", arch } + ``` + where `arch` is the target architecture, e.g. `os.*`, `web.browser`, + `web.cordova`, or `web.browser.legacy`. + [PR #10211](https://github.com/meteor/meteor/pull/10211) + +## v1.7.0.5, 2018-08-16 + +### Breaking changes +N/A + +### Migration Steps +N/A + +### Changes + +* Node has been updated to version + [8.11.4](https://nodejs.org/en/blog/release/v8.11.4/), an important + [security release](https://nodejs.org/en/blog/vulnerability/august-2018-security-releases/). + +## v1.7.0.4, 2018-08-07 + +### Breaking changes +N/A + +### Migration Steps +N/A + +### Changes + +* The npm package `@babel/runtime`, which is depended on by most Meteor + apps, introduced a breaking change in version `7.0.0-beta.56` with the + removal of the `@babel/runtime/helpers/builtin` directory. While this + change has clear benefits in the long term, in the short term it has + been disruptive for Meteor 1.7.0.x applications that accidentally + updated to the latest version of `@babel/runtime`. Meteor 1.7.0.4 is a + patch release that provides better warnings about this problem, and + ensures newly created Meteor applications do not use `7.0.0-beta.56`. + [PR #10134](https://github.com/meteor/meteor/pull/10134) + +* The `npm` package has been upgraded to version 6.3.0, and our + [fork](https://github.com/meteor/pacote/tree/v8.1.6-meteor) of its + `pacote` dependency has been rebased against version 8.1.6. + [Issue #9940](https://github.com/meteor/meteor/issues/9940) + +* The `reify` npm package has been updated to version 0.16.4. + +## v1.7.0.3, 2018-06-13 + +### Breaking changes +N/A + +### Migration Steps +N/A + +### Changes + +* Fixed [Issue #9991](https://github.com/meteor/meteor/issues/9991), + introduced in + [Meteor 1.7.0.2](https://github.com/meteor/meteor/pull/9990) + by [PR #9977](https://github.com/meteor/meteor/pull/9977). + +## v1.7.0.2, 2018-06-13 + +### Breaking changes +N/A + +### Migration Steps +N/A + +### Changes + +* Node has been updated to version + [8.11.3](https://nodejs.org/en/blog/release/v8.11.3/), an important + [security release](https://nodejs.org/en/blog/vulnerability/june-2018-security-releases/). + +* The `meteor-babel` npm package has been updated to version + [7.0.0-beta.51](https://github.com/babel/babel/releases/tag/v7.0.0-beta.51). + +* Meteor apps created with `meteor create` or `meteor create --minimal` + will now have a directory called `tests/` rather than `test/`, so that + test code will not be eagerly loaded if you decide to remove the + `meteor.mainModule` configuration from `package.json`, thanks to + [PR #9977](https://github.com/meteor/meteor/pull/9977) by + [@robfallows](https://github.com/robfallows). + [Issue #9961](https://github.com/meteor/meteor/issues/9961) + +## v1.7.0.1, 2018-05-29 + +### Breaking changes + +* The `aggregate` method of raw Mongo collections now returns an + `AggregationCursor` rather than returning the aggregation result + directly. To obtain an array of aggregation results, you will need to + call the `.toArray()` method of the cursor: + ```js + // With MongoDB 2.x, callback style: + rawCollection.aggregate( + pipeline, + (error, results) => {...} + ); + + // With MongoDB 2.x, wrapAsync style: + const results = Meteor.wrapAsync( + rawCollection.aggregate, + rawCollection + )(pipeline); + + // With MongoDB 3.x, callback style: + rawCollection.aggregate( + pipeline, + (error, aggregationCursor) => { + ... + const results = aggregationCursor.toArray(); + ... + } + ); + + // With MongoDB 3.x, wrapAsync style: + const results = Meteor.wrapAsync( + rawCollection.aggregate, + rawCollection + )(pipeline).toArray(); + ``` + [Issue #9936](https://github.com/meteor/meteor/issues/9936) + +### Migration Steps + +* Update `@babel/runtime` (as well as other Babel-related packages) and + `meteor-node-stubs` to their latest versions: + ```sh + meteor npm install @babel/runtime@latest meteor-node-stubs@latest + ``` + +### Changes + +* Reverted an [optimization](https://github.com/meteor/meteor/pull/9825) + introduced in Meteor 1.7 to stop scanning `node_modules` for files that + might be of interest to compiler plugins, since the intended workarounds + (creating symlinks) did not satisfy all existing use cases. We will + revisit this optimization in Meteor 1.8. + [mozfet/meteor-autoform-materialize#43](https://github.com/mozfet/meteor-autoform-materialize/issues/43) + +* After updating to Meteor 1.7 or 1.7.0.1, you should update the + `@babel/runtime` npm package (as well as other Babel-related packages) + to their latest versions, along with the `meteor-node-stubs` package, + by running the following command: + ```sh + meteor npm install @babel/runtime@latest meteor-node-stubs@latest + ``` + +## v1.7, 2018-05-28 + +### Breaking changes +N/A + +### Migration Steps +N/A + +### Changes + +* More than 80% of internet users worldwide have access to a web browser + that natively supports the latest ECMAScript features and keeps itself + updated automatically, which means new features become available almost + as soon as they ship. In other words, the future we envisioned when we + first began [compiling code with + Babel](https://blog.meteor.com/how-much-does-ecmascript-2015-cost-2ded41d70914) + is finally here, yet most web frameworks and applications still compile + a single client-side JavaScript bundle that must function simultaneously + in the oldest and the newest browsers the application developer wishes + to support. + + That choice is understandable, because the alternative is daunting: not + only must you build multiple JavaScript and CSS bundles for different + browsers, with different dependency graphs and compilation rules and + webpack configurations, but your server must also be able to detect the + capabilities of each visiting client, so that it can deliver the + appropriate assets at runtime. Testing a matrix of different browsers + and application versions gets cumbersome quickly, so it's no surprise + that responsible web developers would rather ship a single, well-tested + bundle, and forget about taking advantage of modern features until + legacy browsers have disappeared completely. + + With Meteor 1.7, this awkward balancing act is no longer necessary, + because Meteor now automatically builds two sets of client-side assets, + one tailored to the capabilities of modern browsers, and the other + designed to work in all supported browsers, thus keeping legacy browsers + working exactly as they did before. Best of all, the entire Meteor + community relies on the same system, so any bugs or differences in + behavior can be identified and fixed quickly. + + In this system, a "modern" browser can be loosely defined as one with + full native support for `async` functions and `await` expressions, which + includes more than 80% of the world market, and 85% of the US market + ([source](https://caniuse.com/#feat=async-functions)). This standard may + seem extremely strict, since `async`/`await` was [just finalized in + ECMAScript 2017](http://2ality.com/2016/10/async-function-tips.html), + but the statistics clearly justify it. As another example, any modern + browser can handle native `class` syntax, though newer syntax like class + fields may still need to be compiled for now, whereas a legacy browser + will need compilation for both advanced and basic `class` syntax. And of + course you can safely assume that any modern browser has a native + `Promise` implementation, because `async` functions must return + `Promise`s. The list goes on and on. + + This boundary between modern and legacy browsers is designed to be tuned + over time, not only by the Meteor framework itself but also by each + individual Meteor application. For example, here's how the minimum + versions for native ECMAScript `class` support might be expressed: + + ```js + import { setMinimumBrowserVersions } from "meteor/modern-browsers"; + + setMinimumBrowserVersions({ + chrome: 49, + firefox: 45, + edge: 12, + ie: Infinity, // Sorry, IE11. + mobile_safari: [9, 2], // 9.2.0+ + opera: 36, + safari: 9, + electron: 1, + }, "classes"); + ``` + + The minimum modern version for each browser is simply the maximum of all + versions passed to `setMinimumBrowserVersions` for that browser. The + Meteor development server decides which assets to deliver to each client + based on the `User-Agent` string of the HTTP request. In production, + different bundles are named with unique hashes, which prevents cache + collisions, though Meteor also sets the `Vary: User-Agent` HTTP response + header to let well-behaved clients know they should cache modern and + legacy resources separately. + + For the most part, the modern/legacy system will transparently determine + how your code is compiled, bundled, and delivered—and yes, it + works with every existing part of Meteor, including dynamic `import()` + and even [the old `appcache` + package](https://github.com/meteor/meteor/pull/9776). However, if you're + writing dynamic code that depends on modern features, you can use the + boolean `Meteor.isModern` flag to detect the status of the current + environment (Node 8 is modern, too, of course). If you're writing a + Meteor package, you can call `api.addFiles(files, "legacy")` in your + `package.js` configuration file to add extra files to the legacy bundle, + or `api.addFiles(files, "client")` to add files to all client bundles, + or `api.addFiles(files, "web.browser")` to add files only to the modern + bundle, and the same rules apply to `api.mainModule`. Just be sure to + call `setMinimumBrowserVersions` (in server startup code) to enforce + your assumptions about ECMAScript feature support. + + We think this modern/legacy system is one of the most powerful features + we've added since we first introduced the `ecmascript` package in Meteor + 1.2, and we look forward to other frameworks attempting to catch up. + + [PR #9439](https://github.com/meteor/meteor/pull/9439) + +* Although Meteor does not recompile packages installed in `node_modules` + by default, compilation of specific npm packages (for example, to + support older browsers that the package author neglected) can now be + enabled in one of two ways: + + * Clone the package repository into your application's `imports` + directory, make any modifications necessary, then use `npm install` to + link `the-package` into `node_modules`: + ```sh + meteor npm install imports/the-package + ``` + Meteor will compile the contents of the package exposed via + `imports/the-package`, and this compiled code will be used when you + import `the-package` in any of the usual ways: + ```js + import stuff from "the-package" + require("the-package") === require("/imports/the-package") + import("the-package").then(...) + ``` + This reuse of compiled code is the critical new feature that was added + in Meteor 1.7. + + * Install the package normally with `meteor npm install the-package`, + then create a symbolic link *to* the installed package elsewhere in + your application, outside of `node_modules`: + ```sh + meteor npm install the-package + cd imports + ln -s ../node_modules/the-package . + ``` + Again, Meteor will compile the contents of the package because they + are exposed outside of `node_modules`, and the compiled code will be + used whenever `the-package` is imported from `node_modules`. + + > Note: this technique also works if you create symbolic links to + individual files, rather than linking the entire package directory. + + In both cases, Meteor will compile the exposed code as if it was part of + your application, using whatever compiler plugins you have installed. + You can influence this compilation using `.babelrc` files or any other + techniques you would normally use to configure compilation of + application code. [PR #9771](https://github.com/meteor/meteor/pull/9771) + [Feature #6](https://github.com/meteor/meteor-feature-requests/issues/6) + + > ~Note: since compilation of npm packages can now be enabled using the + techniques described above, Meteor will no longer automatically scan + `node_modules` directories for modules that can be compiled by + compiler plugins. If you have been using that functionality to import + compiled-to-JS modules from `node_modules`, you should start using the + symlinking strategy instead.~ **Follow-up note: this optimization was + reverted in Meteor 1.7.0.1 (see [above](#v1701-2018-05-29)).** + +* Node has been updated to version + [8.11.2](https://nodejs.org/en/blog/release/v8.11.2/), officially fixing + a [cause](https://github.com/nodejs/node/issues/19274) of frequent + segmentation faults in Meteor applications that was introduced in Node + 8.10.0. Meteor 1.6.1.1 shipped with a custom build of Node that patched + this problem, but that approach was never intended to be permanent. + +* The `npm` package has been upgraded to version 5.10.0, and our + [fork](https://github.com/meteor/pacote/tree/v7.6.1-meteor) of its + `pacote` dependency has been rebased against version 7.6.1. + +* Applications may now specify client and server entry point modules in a + newly-supported `"meteor"` section of `package.json`: + ```js + "meteor": { + "mainModule": { + "client": "client/main.js", + "server": "server/main.js" + } + } + ``` + When specified, these entry points override Meteor's default module + loading semantics, rendering `imports` directories unnecessary. If + `mainModule` is left unspecified for either client or server, the + default rules will apply for that architecture, as before. To disable + eager loading of modules on a given architecture, simply provide a + `mainModule` value of `false`: + ```js + "meteor": { + "mainModule": { + "client": false, + "server": "server/main.js" + } + } + ``` + [Feature #135](https://github.com/meteor/meteor-feature-requests/issues/135) + [PR #9690](https://github.com/meteor/meteor/pull/9690) + +* In addition to `meteor.mainModule`, the `"meteor"` section of + `package.json` may also specify `meteor.testModule` to control which + test modules are loaded by `meteor test` or `meteor test --full-app`: + ```js + "meteor": { + "mainModule": {...}, + "testModule": "tests.js" + } + ``` + If your client and server test files are different, you can expand the + `testModule` configuration using the same syntax as `mainModule`: + ```js + "meteor": { + "testModule": { + "client": "client/tests.js", + "server": "server/tests.js" + } + } + ``` + The same test module will be loaded whether or not you use the + `--full-app` option. Any tests that need to detect `--full-app` should + check `Meteor.isAppTest`. The module(s) specified by `meteor.testModule` + can import other test modules at runtime, so you can still distribute + test files across your codebase; just make sure you import the ones you + want to run. [PR #9714](https://github.com/meteor/meteor/pull/9714) + +* The `meteor create` command now supports a `--minimal` option, which + creates an app with as few Meteor packages as possible, in order to + minimize client bundle size while still demonstrating advanced features + such as server-side rendering. This starter application is a solid + foundation for any application that doesn't need Mongo or DDP. + +* The `meteor-babel` npm package has been updated to version + 7.0.0-beta.49-1. Note: while Babel has recently implemented support for + a new kind of `babel.config.js` configuration file (see [this + PR](https://github.com/babel/babel/pull/7358)), and future versions of + Meteor will no doubt embrace this functionality, Meteor 1.7 supports + only `.babelrc` files as a means of customizing the default Babel + configuration provided by Meteor. In other words, if your project + contains a `babel.config.js` file, it will be ignored by Meteor 1.7. + +* The `reify` npm package has been updated to version 0.16.2. + +* The `meteor-node-stubs` package, which provides stub implementations for + any Node built-in modules used by the client (such as `path` and + `http`), has a new minor version (0.4.1) that may help with Windows + installation problems. To install the new version, run + ```sh + meteor npm install meteor-node-stubs@latest + ``` + +* The `optimism` npm package has been updated to version 0.6.3. + +* The `minifier-js` package has been updated to use `uglify-es` 3.3.9. + +* Individual Meteor `self-test`'s can now be skipped by adjusting their + `define` call to be prefixed by `skip`. For example, + `selftest.skip.define('some test', ...` will skip running "some test". + [PR #9579](https://github.com/meteor/meteor/pull/9579) + +* Mongo has been upgraded to version 3.6.4 for 64-bit systems, and 3.2.19 + for 32-bit systems. [PR #9632](https://github.com/meteor/meteor/pull/9632) + + **NOTE:** After upgrading an application to use Mongo 3.6.4, it has been + observed ([#9591](https://github.com/meteor/meteor/issues/9591)) + that attempting to run that application with an older version of + Meteor (via `meteor --release X`), that uses an older version of Mongo, can + prevent the application from starting. This can be fixed by either + running `meteor reset`, or by repairing the Mongo database. To repair the + database, find the `mongod` binary on your system that lines up with the + Meteor release you're jumping back to, and run + `mongodb --dbpath your-apps-db --repair`. For example: + ```sh + ~/.meteor/packages/meteor-tool/1.6.0_1/mt-os.osx.x86_64/dev_bundle/mongodb/bin/mongod --dbpath /my-app/.meteor/local/db --repair + ``` + [PR #9632](https://github.com/meteor/meteor/pull/9632) + +* The `mongodb` driver package has been updated from version 2.2.34 to + version 3.0.7. [PR #9790](https://github.com/meteor/meteor/pull/9790) + [PR #9831](https://github.com/meteor/meteor/pull/9831) + [Feature #268](https://github.com/meteor/meteor-feature-requests/issues/268) + +* The `cordova-plugin-meteor-webapp` package depended on by the Meteor + `webapp` package has been updated to version 1.6.0. + [PR #9761](https://github.com/meteor/meteor/pull/9761) + +* Any settings read from a JSON file passed with the `--settings` option + during Cordova run/build/deploy will be exposed in `mobile-config.js` + via the `App.settings` property, similar to `Meteor.settings`. + [PR #9873](https://github.com/meteor/meteor/pull/9873) + +* The `@babel/plugin-proposal-class-properties` plugin provided by + `meteor-babel` now runs with the `loose:true` option, as required by + other (optional) plugins like `@babel/plugin-proposal-decorators`. + [Issue #9628](https://github.com/meteor/meteor/issues/9628) + +* The `underscore` package has been removed as a dependency from `meteor-base`. + This opens up the possibility of removing 14.4 kb from production bundles. + Since this would be a breaking change for any apps that may have been + using `_` without having any packages that depend on `underscore` + besides `meteor-base`, we have added an upgrader that will automatically + add `underscore` to the `.meteor/packages` file of any project which + lists `meteor-base`, but not `underscore`. Apps which do not require this + package can safely remove it using `meteor remove underscore`. + [PR #9596](https://github.com/meteor/meteor/pull/9596) + +* Meteor's `promise` package has been updated to support + [`Promise.prototype.finally`](https://github.com/tc39/proposal-promise-finally). + [Issue 9639](https://github.com/meteor/meteor/issues/9639) + [PR #9663](https://github.com/meteor/meteor/pull/9663) + +* Assets made available via symlinks in the `public` and `private` directories + of an application are now copied into Meteor application bundles when + using `meteor build`. This means npm package assets that need to be made + available publicly can now be symlinked from their `node_modules` location, + in the `public` directory, and remain available in production bundles. + [Issue #7013](https://github.com/meteor/meteor/issues/7013) + [PR #9666](https://github.com/meteor/meteor/pull/9666) + +* The `facts` package has been split into `facts-base` and `facts-ui`. The + original `facts` package has been deprecated. + [PR #9629](https://github.com/meteor/meteor/pull/9629) + +* If the new pseudo tag `` is used anywhere in the + `` of an app, it will be replaced by the `link` to Meteor's bundled + CSS. If the new tag isn't used, the bundle will be placed at the top of + the `` section as before (for backwards compatibility). + [Feature #24](https://github.com/meteor/meteor-feature-requests/issues/24) + [PR #9657](https://github.com/meteor/meteor/pull/9657) + +## v1.6.1.4, 2018-08-16 + +### Breaking changes +N/A + +### Migration Steps +N/A + +### Changes + +* Node has been updated to version + [8.11.4](https://nodejs.org/en/blog/release/v8.11.4/), an important + [security release](https://nodejs.org/en/blog/vulnerability/august-2018-security-releases/). + +## v1.6.1.3, 2018-06-16 + +### Breaking changes +N/A + +### Migration Steps +N/A + +### Changes + +* Node has been updated to version + [8.11.3](https://nodejs.org/en/blog/release/v8.11.3/), an important + [security release](https://nodejs.org/en/blog/vulnerability/june-2018-security-releases/). + +## v1.6.1.2, 2018-05-28 + +### Breaking changes +N/A + +### Migration Steps +N/A + +### Changes + +* Meteor 1.6.1.2 is a very small release intended to fix + [#9863](https://github.com/meteor/meteor/issues/9863) by making + [#9887](https://github.com/meteor/meteor/pull/9887) available to Windows + users without forcing them to update to Meteor 1.7 (yet). Thanks very + much to [@zodern](https://github.com/zodern) for identifying a solution + to this problem. [PR #9910](https://github.com/meteor/meteor/pull/9910) + +## v1.6.1.1, 2018-04-02 + +### Breaking changes +N/A + +### Migration Steps +* Update `@babel/runtime` npm package and any custom Babel plugin enabled in + `.babelrc` + ```sh + meteor npm install @babel/runtime@latest + ``` + +### Changes + +* Node has been updated to version + [8.11.1](https://nodejs.org/en/blog/release/v8.11.1/), an important + [security release](https://nodejs.org/en/blog/vulnerability/march-2018-security-releases/), + with a critical [patch](https://github.com/nodejs/node/pull/19477) + [applied](https://github.com/meteor/node/commits/v8.11.1-meteor) to + solve a segmentation fault + [problem](https://github.com/nodejs/node/issues/19274) that was + introduced in Node 8.10.0. + +* The `meteor-babel` npm package has been updated to version + 7.0.0-beta.42, which may require updating any custom Babel plugins + you've enabled in a `.babelrc` file, and/or running the following + command to update `@babel/runtime`: + ```sh + meteor npm install @babel/runtime@latest + ``` + +## v1.6.1, 2018-01-19 + +### Breaking changes + +* Meteor's Node Mongo driver is now configured with the + [`ignoreUndefined`](http://mongodb.github.io/node-mongodb-native/2.2/api/MongoClient.html#connect) + connection option set to `true`, to make sure fields with `undefined` + values are not first converted to `null`, when inserted/updated. `undefined` + values are now removed from all Mongo queries and insert/update documents. + + This is a potentially breaking change if you are upgrading an existing app + from an earlier version of Meteor. + + For example: + ```js + // return data pertaining to the current user + db.privateUserData.find({ + userId: currentUser._id // undefined + }); + ``` + Assuming there are no documents in the `privateUserData` collection with + `userId: null`, in Meteor versions prior to 1.6.1 this query will return + zero documents. From Meteor 1.6.1 onwards, this query will now return + _every_ document in the collection. It is highly recommend you review all + your existing queries to ensure that any potential usage of `undefined` in + query objects won't lead to problems. + +### Migration Steps +N/A + +### Changes + +* Node has been updated to version + [8.9.4](https://nodejs.org/en/blog/release/v8.9.4/). + +* The `meteor-babel` npm package (along with its Babel-related + dependencies) has been updated to version 7.0.0-beta.38, a major + update from Babel 6. Thanks to the strong abstraction of the + `meteor-babel` package, the most noticeable consequence of the Babel 7 + upgrade is that the `babel-runtime` npm package has been replaced by + `@babel/runtime`, which can be installed by running + ```js + meteor npm install @babel/runtime + ``` + in your application directory. There's a good chance that the old + `babel-runtime` package can be removed from your `package.json` + dependencies, though there's no harm in leaving it there. Please see + [this blog post](https://babeljs.io/blog/2017/09/12/planning-for-7.0) + for general information about updating to Babel 7 (note especially any + changes to plugins you've been using in any `.babelrc` files). + [PR #9440](https://github.com/meteor/meteor/pull/9440) + +* Because `babel-compiler@7.0.0` is a major version bump for a core + package, any package that explicitly depends on `babel-compiler` with + `api.use` or `api.imply` will need to be updated and republished in + order to remain compatible with Meteor 1.6.1. One notable example is the + `practicalmeteor:mocha` package. If you have been using this test-driver + package, we strongly recommend switching to `meteortesting:mocha` + instead. If you are the author of a package that depends on + `babel-compiler`, we recommend publishing your updated version using a + new major or minor version, so that you can continue releasing patch + updates compatible with older versions of Meteor, if necessary. + +* Meteor's Node Mongo driver is now configured with the + [`ignoreUndefined`](http://mongodb.github.io/node-mongodb-native/2.2/api/MongoClient.html#connect) + connection option set to `true`, to make sure fields with `undefined` + values are not first converted to `null`, when inserted/updated. `undefined` + values are now removed from all Mongo queries and insert/update documents. + [Issue #6051](https://github.com/meteor/meteor/issues/6051) + [PR #9444](https://github.com/meteor/meteor/pull/9444) + +* The `server-render` package now supports passing a `Stream` object to + `ServerSink` methods that previously expected a string, which enables + [streaming server-side rendering with React + 16](https://hackernoon.com/whats-new-with-server-side-rendering-in-react-16-9b0d78585d67): + ```js + import React from "react"; + import { renderToNodeStream } from "react-dom/server"; + import { onPageLoad } from "meteor/server-render"; + import App from "/imports/Server.js"; + + onPageLoad(sink => { + sink.renderIntoElementById("app", renderToNodeStream( + + )); + }); + ``` + [PR #9343](https://github.com/meteor/meteor/pull/9343) + +* The [`cordova-lib`](https://github.com/apache/cordova-cli) package has + been updated to version 7.1.0, + [`cordova-android`](https://github.com/apache/cordova-android/) has been + updated to version 6.4.0 (plus one additional + [commit](https://github.com/meteor/cordova-android/commit/317db7df0f7a054444197bc6d28453cf4ab23280)), + and [`cordova-ios`](https://github.com/apache/cordova-ios/) has been + updated to version 4.5.4. The cordova plugins `cordova-plugin-console`, + `cordova-plugin-device-motion`, and `cordova-plugin-device-orientation` + have been [deprecated](https://cordova.apache.org/news/2017/09/22/plugins-release.html) + and will likely be removed in a future Meteor release. + [Feature Request #196](https://github.com/meteor/meteor-feature-requests/issues/196) + [PR #9213](https://github.com/meteor/meteor/pull/9213) + [Issue #9447](https://github.com/meteor/meteor/issues/9447) + [PR #9448](https://github.com/meteor/meteor/pull/9448) + +* The previously-served `/manifest.json` application metadata file is now + served from `/__browser/manifest.json` for web browsers, to avoid + confusion with other kinds of `manifest.json` files. Cordova clients + will continue to load the manifest file from `/__cordova/manifest.json`, + as before. [Issue #6674](https://github.com/meteor/meteor/issues/6674) + [PR #9424](https://github.com/meteor/meteor/pull/9424) + +* The bundled version of MongoDB used by `meteor run` in development + on 64-bit architectures has been updated to 3.4.10. 32-bit architectures + will continue to use MongoDB 3.2.x versions since MongoDB is no longer + producing 32-bit versions of MongoDB for newer release tracks. + [PR #9396](https://github.com/meteor/meteor/pull/9396) + +* Meteor's internal `minifier-css` package has been updated to use `postcss` + for CSS parsing and minifying, instead of the abandoned `css-parse` and + `css-stringify` packages. Changes made to the `CssTools` API exposed by the + `minifier-css` package are mostly backwards compatible (the + `standard-minifier-css` package that uses it didn't have to change for + example), but now that we're using `postcss` the AST accepted and returned + from certain functions is different. This could impact developers who are + tying into Meteor's internal `minifier-css` package directly. The AST based + function changes are: + + * `CssTools.parseCss` now returns a PostCSS + [`Root`](http://api.postcss.org/Root.html) object. + * `CssTools.stringifyCss` expects a PostCSS `Root` object as its first + parameter. + * `CssTools.mergeCssAsts` expects an array of PostCSS `Root` objects as its + first parameter. + * `CssTools.rewriteCssUrls` expects a PostCSS `Root` object as its first + parameter. + + [PR #9263](https://github.com/meteor/meteor/pull/9263) + +* The `_` variable will once again remain bound to `underscore` (if + installed) in `meteor shell`, fixing a regression introduced by Node 8. + [PR #9406](https://github.com/meteor/meteor/pull/9406) + +* Dynamically `import()`ed modules will now be fetched from the + application server using an HTTP POST request, rather than a WebSocket + message. This strategy has all the benefits of the previous strategy, + except that it does not require establishing a WebSocket connection + before fetching dynamic modules, in exchange for slightly higher latency + per request. [PR #9384](https://github.com/meteor/meteor/pull/9384) + +* To reduce the total number of HTTP requests for dynamic modules, rapid + sequences of `import()` calls within the same tick of the event loop + will now be automatically batched into a single HTTP request. In other + words, the following code will result in only one HTTP request: + ```js + const [ + React, + ReactDOM + ] = await Promise.all([ + import("react"), + import("react-dom") + ]); + ``` + +* Thanks to a feature request and pull request from + [@CaptainN](https://github.com/CaptainN), all available dynamic modules + will be automatically prefetched after page load and permanently cached + in IndexedDB when the `appcache` package is in use, ensuring that + dynamic `import()` will work for offline apps. Although the HTML5 + Application Cache was deliberately *not* used for this prefetching, the + new behavior matches the spirit/intention of the `appcache` package. + [Feature Request #236](https://github.com/meteor/meteor-feature-requests/issues/236) + [PR #9482](https://github.com/meteor/meteor/pull/9482) + [PR #9434](https://github.com/meteor/meteor/pull/9434) + +* The `es5-shim` library is no longer included in the initial JavaScript + bundle, but is instead injected using a `