[//]: # (Do not edit this file by hand.) [//]: # (This is a generated file.) [//]: # (If you want to change something in this file) [//]: # (go to meteor/docs/generators/changelog/docs) ## v3.3.2, 01-09-2025 ### Highlights - Async-compatible account URLs and email-sending coverage [#13740](https://github.com/meteor/meteor/pull/13740) - Move `findUserByEmail` method from `accounts-password` to `accounts-base` [#13859](https://github.com/meteor/meteor/pull/13859) - Return `insertedId` on client `upsert` to match Meteor 2.x behavior [#13891](https://github.com/meteor/meteor/pull/13891) - Unrecognized operator bug fixed [#13895](https://github.com/meteor/meteor/pull/13895) - Security fix for `sha.js` [#13908](https://github.com/meteor/meteor/pull/13908) All Merged PRs@[GitHub PRs 3.3.2](https://github.com/meteor/meteor/pulls?q=is%3Apr+is%3Amerged+base%3Arelease-3.3.2) #### Breaking Changes N/A ##### Cordova Upgrade - Enable modern browser support for Cordova unless explicitly disabled [#13896](https://github.com/meteor/meteor/pull/13896) #### Internal API changes - lodash.template dependency was removed [#13898](https://github.com/meteor/meteor/pull/13898) #### Migration Steps Please run the following command to update your project: ```bash meteor update --release 3.3.2 ``` --- If you find any issues, please report them to the [Meteor issues tracker](https://github.com/meteor/meteor). #### Bumped Meteor Packages - accounts-base@3.1.2 - accounts-password@3.2.1 - accounts-passwordless@3.0.2 - meteor-node-stubs@1.2.24 - babel-compiler@7.12.2 - boilerplate-generator@2.0.2 - ecmascript@0.16.13 - minifier@3.0.4 - minimongo@2.0.4 - mongo@2.1.4 - coffeescript-compiler@2.4.3 - npm-mongo@6.16.1 - shell-server@0.6.2 - typescript@5.6.6 #### Bumped NPM Packages - meteor-node-stubs@1.2.23 #### Special thanks to ✨✨✨ - [@italojs](https://github.com/italojs) - [@nachocodoner](https://github.com/nachocodoner) - [@graemian](https://github.com/graemian) - [@Grubba27](https://github.com/Grubba27) - [@copleykj](https://github.com/copleykj) ✨✨✨ ## v3.3.1, 05-08-2025 ### Highlights - **MongoDB Driver Upgrades** - Upgraded core MongoDB driver to `6.16.0` to address latest issues reported [#13710](https://github.com/meteor/meteor/pull/13710) - Introduced `npm-mongo-legacy` to maintain compatibility with MongoDB 3.6 via `mongodb@6.9.0` [#13736](https://github.com/meteor/meteor/pull/13736) - Mitigated a cursor leak issue by synchronizing `next()` and `close()` operations [#13786](https://github.com/meteor/meteor/pull/13786) - **Improved SWC integration** - Fixed edge cases in config cache invalidation [#13809](https://github.com/meteor/meteor/pull/13809) - Ensured `@swc/helpers` is consistently used for better bundle size and performance [#13820](https://github.com/meteor/meteor/pull/13820) - Updated to SWC `1.12.14` [#13851](https://github.com/meteor/meteor/pull/13851) - **Tooling and Build System** - Fixed regression affecting rebuild behavior [#13810](https://github.com/meteor/meteor/pull/13810) - Addressed issues getting performance profiles in mounted volumes [#13827](https://github.com/meteor/meteor/pull/13827) - Fallback to Babel parser when Acorn fails to parse source code [#13844](https://github.com/meteor/meteor/pull/13844) - **Mobile Support** - Upgraded Cordova platform to version 14 [#13837](https://github.com/meteor/meteor/pull/13837) - **Developer Experience** - Added TypeScript types for `isModern` and `getMinimumBrowserVersions` functions [#13704](https://github.com/meteor/meteor/pull/13704) - Enhanced CLI help output and documented admin commands [#13826](https://github.com/meteor/meteor/pull/13826) - **Vite Tooling** - Updated official Meteor + Vite skeletons [#13835](https://github.com/meteor/meteor/pull/13835) - **Runtime & Dependencies** - Updated to Node.js `22.18.0` and NPM `10.9.3` [#13877](https://github.com/meteor/meteor/pull/13877) - Bumped `meteor-node-stubs` to `1.2.21` [#13825](https://github.com/meteor/meteor/pull/13825) All Merged PRs@[GitHub PRs 3.3.1](https://github.com/meteor/meteor/pulls?q=is%3Apr+is%3Amerged+base%3Arelease-3.3.1) #### Breaking Changes ##### MongoDB Driver Upgrades If you're using MongoDB 3.6 or earlier, install the new legacy package: ```bash meteor add npm-mongo-legacy ``` This will pin the MongoDB driver to 6.9.0 for compatibility. If you’re on MongoDB 4+, the default [MongoDB driver 6.16.0](https://github.com/mongodb/node-mongodb-native/releases/tag/v6.16.0) is applied automatically. Please migrate your database as soon as possible to MongoDB 5 onward, as [MongoDB driver 6.17.0](https://github.com/mongodb/node-mongodb-native/releases/tag/v6.17.0) will drop MongoDB 4 support. We’ll keep offering `npm-mongo-legacy` so you can keep getting Meteor updates with your existing MongoDB legacy version. ##### Cordova Upgrade The Cordova platform has been upgraded to version 14. Refer to the [Cordova Changelog](https://cordova.apache.org/announcements/2025/03/26/cordova-android-14.0.0.html) for more details on the changes and migration steps. #### Internal API changes N/A #### Migration Steps Please run the following command to update your project: ```bash meteor update --release 3.3.1 ``` --- While this is a patch release, Meteor 3.3, a recent minor update, introduced a modern build stack that’s now the default for new apps. Here’s how you can migrate to it. **Add this to your `package.json` to enable the new modern build stack:** ```json "meteor": { "modern": true } ``` Check the docs for help with the SWC migration, especially if your project uses many Babel plugins. [Modern Transpiler: SWC docs](https://docs.meteor.com/about/modern-build-stack/transpiler-swc.html) If you find any issues, please report them to the [Meteor issues tracker](https://github.com/meteor/meteor). #### Bumped Meteor Packages - babel-compiler@7.12.1 - callback-hook@1.6.1 - ecmascript@0.16.12 - minifier-js@3.0.3 - minimongo@2.0.3 - modern-browsers@0.2.3 - mongo@2.1.3 - npm-mongo-legacy@6.9.0 - npm-mongo@6.16.0 - standard-minifier-js@3.1.1 - tinytest@1.3.2 - typescript@5.6.5 - meteor-tool@3.3.1 #### Bumped NPM Packages - meteor-node-stubs@1.2.21 #### Special thanks to ✨✨✨ - [@nachocodoner](https://github.com/nachocodoner) - [@italojs](https://github.com/italojs) - [@StorytellerCZ](https://github.com/StorytellerCZ) - [@JorgenVatle](https://github.com/JorgenVatle) - [@welkinwong](https://github.com/welkinwong) - [@Saksham-Goel1107](https://github.com/Saksham-Goel1107) ✨✨✨ ## v3.3.0, 2025-06-11 ### Highlights - Support SWC transpiler and minifier for faster dev and builds [PR#13657](https://github.com/meteor/meteor/pull/13657), [PR#13715](https://github.com/meteor/meteor/pull/13715) - Switch to `@parcel/watcher` for improved native file watching [PR#13699](https://github.com/meteor/meteor/pull/13699), [#13707](https://github.com/meteor/meteor/pull/13707) - Default to modern architecture, skip legacy processing [PR#13665](https://github.com/meteor/meteor/pull/13665), [PR#13698](https://github.com/meteor/meteor/pull/13698) - Optimize SQLite for faster startup and better performance [PR#13702](https://github.com/meteor/meteor/pull/13702) - Support CPU profiling in Meteor 3 bundler [PR#13650](https://github.com/meteor/meteor/pull/13650) - Improve `meteor profile`: show rebuild steps and total, support `--build` [PR#16](https://github.com/meteor/performance/pull/16), [PR#13694](https://github.com/meteor/meteor/pull/13694) - Improve `useFind` and `useSubscribe` React hooks - Add `replaceEmailAsync` helper to Accounts [PR#13677](https://github.com/meteor/meteor/pull/13677) - Fix user agent detection and oplog collection filtering - Refine type definitions for Meteor methods and SSR's ServerSink - Allow opting out of usage stats with `DO_NOT_TRACK` - Update Node to 22.16.0 and Express to 5.1.0 All Merged PRs@[GitHub PRs 3.3](https://github.com/meteor/meteor/pulls?q=is%3Apr+is%3Amerged+base%3Arelease-3.3) React Packages Changelog: [react-meteor-data@4.0.0](https://github.com/meteor/react-packages/tree/master/packages/react-meteor-data/CHANGELOG.md#v400-2025-06-11) #### Breaking Changes - File watching strategy switched to `@parcel/watcher` - Most setups should be fine, but if issues appear, like when using WSL with host, volumes, or remote setups—switch to polling. - Set `METEOR_WATCH_FORCE_POLLING=true` to enable polling. - Set `METEOR_WATCH_POLLING_INTERVAL_MS=1000` to adjust the interval. - `react-meteor-data@4.0.0` - Independent from the core, only applies if upgraded manually. - useFind describes no deps by default [PR#431](https://github.com/meteor/react-packages/pull/431) #### Internal API changes - `express@5.1.0` - Depends on Meteor’s `webapp` package. - Deprecates non-native promise usage [#154](https://github.com/pillarjs/router/pull/154) - Use `async/await` or `Promise.resolve` when defining endpoints to avoid deprecation warnings. #### Migration Steps Please run the following command to update your project: ```bash meteor update --release 3.3 ``` To apply react-meteor-data changes: ```bash meteor add react-meteor-data@4.0.0 ``` **Add this to your `package.json` to enable the new modern build stack:** ```json "meteor": { "modern": true } ``` > These settings are on by default for new apps. On activate `modern` your app will be updated to use SWC transpiler. It will automatically fallback to Babel if your code can't be transpiled with SWC. Check the docs for help with the SWC migration, especially if your project uses many Babel plugins. [Modern Transpiler: SWC docs](https://docs.meteor.com/about/modern-build-stack/transpiler-swc.html) If you find any issues, please report them to the [Meteor issues tracker](https://github.com/meteor/meteor). #### Bumped Meteor Packages - accounts-base@3.1.1 - accounts-password@3.2.0 - autoupdate@2.0.1 - babel-compiler@7.12.0 - boilerplate-generator@2.0.1 - ddp-client@3.1.1 - ecmascript@0.16.11 - ejson@1.1.5 - meteor@2.1.1 - minifier-js@3.0.2 - modern-browsers@0.2.2 - mongo@2.1.2 - server-render@0.4.3 - socket-stream-client@0.6.1 - standard-minifier-js@3.1.0 - typescript@5.6.4 - webapp@2.0.7 - meteor-tool@3.3.0 #### Bumped NPM Packages - meteor-node-stubs@1.2.17 #### Special thanks to ✨✨✨ - [@nachocodoner](https://github.com/nachocodoner) - [@italojs](https://github.com/italojs) - [@Grubba27](https://github.com/Grubba27) - [@zodern](https://github.com/zodern) - [@9Morello](https://github.com/9Morello) - [@welkinwong](https://github.com/welkinwong) - [@Poyoman39](https://github.com/Poyoman39) - [@PedroMarianoAlmeida](https://github.com/PedroMarianoAlmeida) - [@harryadel](https://github.com/harryadel) - [@ericm546](https://github.com/ericm546) - [@StorytellerCZ](https://github.com/StorytellerCZ) ✨✨✨ ## v3.0.1, 2024-07-16 ### Highlights * Bump the patch for some packages, so we publish them using Meteor 3 tooling. [PR](https://github.com/meteor/meteor/pull/13231) #### Breaking Changes N/A #### Internal API changes N/A #### Migration Steps Please run the following command to update your project: ```bash meteor update --release 3.0.1 ``` #### Meteor Version Release * `Bumped packages`: - accounts-ui-unstyled@1.7.2 - crosswalk@1.7.3 - facebook-oauth@1.11.4 - npm-mongo@4.17.3 - package-version-parser@3.2.3 - twitter-config-ui@1.0.2 #### Special thanks to - [@denihs](https://github.com/denihs). For making this great framework even better! ## v3.0, 2024-07-15 ### Highlights #### Breaking Changes - `accounts-2fa@3.0.0`: - Some methods are now async. See below: - `Accounts._is2faEnabledForUser` - `(Meteor Method) - generate2faActivationQrCode` - `(Meteor Method) - enableUser2fa` - `(Meteor Method) - disableUser2fa` - `(Meteor Method) - has2faEnabled` - `accounts-base@3.0.0`: - `methods.removeOtherTokens` is now async - `Accounts.destroyToken` is now async - `Accounts.insertUserDoc` is now async - `Accounts.updateOrCreateUserFromExternalService` is now async - `Accounts.expirePasswordToken` is now async - `Accounts.setupUsersCollection` is now async - `Meteor.user` is now async in server - `accounts-facebook@2.0.0`: - Package was bumped due to a dependency update. No code changes were made. - `accounts-github@2.0.0`: - Package was bumped due to a dependency update. No code changes were made. - `accounts-google@2.0.0`: - Package was bumped due to a dependency update. No code changes were made. - `accounts-meetup@2.0.0`: - Package was bumped due to a dependency update. No code changes were made. - `accounts-meteor-developer@2.0.0`: - Package was bumped due to a dependency update. No code changes were made. - `accounts-oauth@2.0.0`: - Package was bumped due to a dependency update. No code changes were made. - `accounts-password@3.0.0`: - Some server methods are now async: - `Accounts.sendResetPasswordEmail` - `Accounts.sendEnrollmentEmail` - `Accounts.sendVerificationEmail` - `Accounts.addEmail` - `Accounts.removeEmail` - `Accounts.verifyEmail` - `Accounts.createUserVerifyingEmail` - `Accounts.createUser` - `Accounts.generateVerificationToken` - `Accounts.generateResetToken` - `Accounts.forgotPassword` - `Accounts.setPassword` - `Accounts.changePassword` - `Accounts.setUsername` - `Accounts.findUserByEmail` - `Accounts.findUserByUsername` - `accounts-passwordless@3.0.0`: - `Accounts.sendLoginTokenEmail` is now async. - `accounts-twitter@2.0.0`: - Package was bumped due to a dependency update. No code changes were made. - `accounts-ui-unstyled@2.0.0`: - Package was bumped due to a dependency update. No code changes were made. - `accounts-ui@2.0.0`: - Package was bumped due to a dependency update. No code changes were made. - `accounts-weibo@2.0.0`: - Package was bumped due to a dependency update. No code changes were made. - `allow-deny@2.0.0`: - Updated to accept async functions. - `appcache@2.0.0`: - Updated internal api to use `handlers` - `audit-argument-checks@2.0.0`: - Package was bumped due to a dependency update. No code changes were made. - `autopublish@2.0.0`: - Package was bumped due to a dependency update. No code changes were made. - `autoupdate@2.0.0`: - Updated api to be async, with asyncronous queueing. - `babel-compiler@8.0.0`: - Add `Babel.compileForShell` - Removed `Promise.await` default transform. - Added top-level-await to packages. - `babel-runtime@2.0.0`: - Package was bumped due to a dependency update. No code changes were made. - `base64@2.0.0`: - Package was bumped due to a dependency update. No code changes were made. - `binary-heap@2.0.0`: - Package was bumped due to a dependency update. No code changes were made. - `blaze@3.0.0`: - Todo - `boilerplate-generator-tests@2.0.0`: - Package was bumped due to a dependency update. No code changes were made. - `boilerplate-generator@2.0.0`: - `toHTML` is no longer available (it was already deprecated). Use `toHTMLStream` instead. - Updated to use `handlers` - `browser-policy-common@2.0.0`: - Updated to use `handlers` - `browser-policy-content@2.0.0`: - Some methods are now async. See below: - `BrowserPolicy.content.setPolicy` - `BrowserPolicy.content.allowInlineScripts` - `BrowserPolicy.content.disallowInlineScripts` - `BrowserPolicy.content.disallowAll` - `BrowserPolicy.setDefaultPolicy` - `browser-policy-framing@2.0.0`: - Package was bumped due to a dependency update. No code changes were made. - `browser-policy@2.0.0`: Updated to use async methods from `browser-policy-common` and `browser-policy-content`. - `caching-compiler@2.0.0`: - `afterLink` is now async. - Updated to use now async API. - `callback-hook@2.0.0`: - Added `forEachAsync` method. - `check@2.0.0`: - Removed `fibers` related tests. - `constraint-solver@2.0.0`: - Some methods are now async. See below: - `ConstraintSolver.getVersionCostSteps` - `ConstraintSolver.analyze` - `ConstraintSolver.resolve` - Updated tests to be async. - Removed a few underscore usage. - Added updated to use async methods - `context@1.0.0`: - Removed `fibers` from package. - `core-runtime@2.0.0`: - Created package to load packages and the app. - This is the pakcages that sets up the Runtime. - `crosswalk@2.0.0`: - Package was bumped due to a dependency update. No code changes were made. - `ddp-client@3.0.0`: - Added `isAsyncCall` method to know if call is being made by an async method. - Removed `fibers` from package. - Updated tests to use async methods. - Now `stubPromise` is returned when calling `callAsync` or `applyAsync`. - `ddp-common@2.0.0`: - Added `.fence` option. - `ddp-rate-limiter@2.0.0`: - Package was bumped due to a dependency update. No code changes were made. - `ddp-server@3.0.0`: - Updated to use async methods. - Removed `fibers` from package. - Updated tests to use async methods. - Turned server implementation to async. - `ddp@2.0.0`: - Package was bumped due to a dependency update. No code changes were made. - `diff-sequence@2.0.0`: - Package was bumped due to a dependency update. No code changes were made. - `disable-oplog@2.0.0`: - Package was bumped due to a dependency update. No code changes were made. - `ecmascript-runtime-client@1.0.0`: - Package was bumped due to a dependency update. No code changes were made. - `ecmascript-runtime-server@1.0.0`: - Package was bumped due to a dependency update. No code changes were made. - `ecmascript-runtime@1.0.0`: - Added dependency to `@babel/runtime`. - `ecmascript@1.0.0`: - `ECMAScript.compileForShell` was removed. Use `Babel.compileForShell` from `babel-compiler` instead. This change makes some build plugins and apps that do not use `babel-compiler` 90mb smaller. - Added dependency to `@babel/runtime`. - Moved runtime tests. - `ejson@2.0.0`: - Package was bumped due to a dependency update. No code changes were made. - `email@3.0.0`: - `Email.send` is no longer available. Use `Email.sendAsync` instead. - Updated types to reflext async methods and `Email.send` depracation. - `es5-shim@5.0.0`: - Package was bumped due to a dependency update. No code changes were made. - `facebook-config-ui@2.0.0`: - Package was bumped due to a dependency update. No code changes were made. - `facebook-oauth@2.0.0`: - Package was bumped due to a dependency update. No code changes were made. - `facts-base@2.0.0`: - turned unorderd deps on `ddp` to false. - `facts-ui@2.0.0`: - Package was bumped due to a dependency update. No code changes were made. - `fetch@1.0.0`: - Package was bumped due to a dependency update. No code changes were made. - `force-ssl-common@2.0.0`: - Package was bumped due to a dependency update. No code changes were made. - `force-ssl@2.0.0`: - Package was bumped due to a dependency update. No code changes were made. - `geojson-utils@2.0.0`: - Package was bumped due to a dependency update. No code changes were made. - `github-config-ui@2.0.0`: - Package was bumped due to a dependency update. No code changes were made. - `github-oauth@2.0.0`: - Package was bumped due to a dependency update. No code changes were made. - `google-config-ui@2.0.0`: - Package was bumped due to a dependency update. No code changes were made. - `google-oauth@2.0.0`: - Package was bumped due to a dependency update. No code changes were made. - `hot-code-push@2.0.0`: - Package was bumped due to a dependency update. No code changes were made. - `http@`: - Updated handlers to use `handlers` - `id-map@2.0.0`: - Added `forEachAsync` method. - `insecure@2.0.0`: - Package was bumped due to a dependency update. No code changes were made. - `inter-process-messaging@1.0.0`: - Package was bumped due to a dependency update. No code changes were made. - `launch-screen@2.0.0`: - Package was bumped due to a dependency update. No code changes were made. - `localstorage@2.0.0`: - Package was bumped due to a dependency update. No code changes were made. - `logging@2.0.0`: - Added dependency to `@babel/runtime`. - `logic-solver@3.0.0`: `Logic.disablingAssertions` is now async. `minMaxWS` is now async. - `meetup-config-ui@2.0.0`: - Package was bumped due to a dependency update. No code changes were made. - `meetup-oauth@2.0.0`: - Package was bumped due to a dependency update. No code changes were made. - `meteor-base@2.0.0`: - Package was bumped due to a dependency update. No code changes were made. - `meteor-developer-config-ui@2.0.0`: - Package was bumped due to a dependency update. No code changes were made. - `meteor-developer-oauth@2.0.0`: - Package was bumped due to a dependency update. No code changes were made. - `meteor-tool@3.0.0`: - Changes to how meteor apps are being created [PR](https://github.com/meteor/meteor/pull/12697) - `meteor@2.0.0`: - Async local storage was added to help deal with async methods. - Added `promiseEmmiter` to help with async methods. - Removed `fibers` from package. - `minifier-css@2.0.0`: - `minifyCss` is now async. - Removed `fibers` from package. - `minifier-js@3.0.0`: - `minifyJs` is now async. - `terserMinify` no longer takes callbacks - Removed `fibers` from package. * `minimongo@2.0.0`: - `cursor.observe` now returns `isReady` and `isReadyPromise` wich indicates if the cursor is ready and if the callbacks are have been called. If you only use it in the `Client` or as a `LocalCollection` things have not changed. - `cursor.observeChangesAsync` and `cursor.observeAsync` are added and resolve as promises, returning results similar to their synchronous counterparts. - `mobile-experience@2.0.0`: - Package was bumped due to a dependency update. No code changes were made. - `mobile-status-bar@2.0.0`: - Package was bumped due to a dependency update. No code changes were made. - `modern-browsers@1.0.0`: - Package was bumped due to a dependency update. No code changes were made. - `modules-runtime@1.0.0`: - Package was bumped due to a dependency update. No code changes were made. - `modules@1.0.0`: - Updated `reify` version. - All modules are described as strict mode - `mongo-decimal@`: - Updated to use `async` methods. - `mongo-dev-server@2.0.0`: - Package was bumped due to a dependency update. No code changes were made. - `mongo-id@2.0.0`: - Package was bumped due to a dependency update. No code changes were made. - `mongo-livedata@2.0.0`: - Package was bumped due to a dependency update. No code changes were made. - `mongo@2.0.0`: - Updated to unify methods, `update`,`insert`,`remove`, `fetch` are now async, they are the same as their `*Async` counterpart. - `ensureIndex` and `createIndex` are now async. - `observeChangesAsync` and `observeAsync` are added and resolve as promises, returning results similar to their synchronous counterparts. - `npm-mongo@5.0.0`: - Package was bumped due to a dependency update. No code changes were made. - `oauth-encryption@2.0.0`: - Package was bumped due to a dependency update. No code changes were made. - `oauth@`: - `_endOfPopupResponseTemplate` and `_endOfRedirectResponseTemplate` are no longer a property but now a function that returns a promise of the same value as before - the following server methods are now async: - `OAuth._renderOauthResults` - `OAuth._endOfLoginResponse` - `OAuth.renderEndOfLoginResponse` - `OAuth._storePendingCredential` - `OAuth._retrievePendingCredential` - `ensureConfigured` - `_cleanStaleResults` - `oauth@3.0.0`: - Package was bumped due to a dependency update. No code changes were made. - `oauth1@`: - the following server methods are now async: - `OAuth._storeRequestToken` - `OAuth._retrieveRequestToken` - `oauth1@2.0.0`: - Package was bumped due to a dependency update. No code changes were made. - `oauth2@`: - `OAuth._requestHandlers['2']` is now async. - `oauth2@2.0.0`: - Package was bumped due to a dependency update. No code changes were made. - `ordered-dict@2.0.0`: - Added `forEachAsync` method. - `package-stats-opt-out@2.0.0`: - Package was bumped due to a dependency update. No code changes were made. - `package-version-parser@4.0.0`: - Package was bumped due to a dependency update. No code changes were made. - `promise@1.0.0`: - Removed `fibers` usage - `random@2.0.0`: - Package was bumped due to a dependency update. No code changes were made. - `rate-limit@2.0.0`: - Package was bumped due to a dependency update. No code changes were made. - `reactive-dict@2.0.0`: - Package was bumped due to a dependency update. No code changes were made. - `reactive-var@2.0.0`: - Package was bumped due to a dependency update. No code changes were made. - `reload-safetybelt@2.0.0`: - Added `ecmascript` package to `package.js` - `reload@2.0.0`: - Package was bumped due to a dependency update. No code changes were made. - `retry@2.0.0`: - Package was bumped due to a dependency update. No code changes were made. - `routepolicy@2.0.0`: - Package was bumped due to a dependency update. No code changes were made. - `server-render@1.0.0`: - Updated usage with `getBoilerplate` that are now `async`. - `service-configuration@2.0.0`: - Updated to use `createIndexAsync`. - `session@2.0.0`: - Package was bumped due to a dependency update. No code changes were made. - `sha@2.0.0`: - Package was bumped due to a dependency update. No code changes were made. - `shell-server@1.0.0`: - Updated to handle promises results. - `socket-stream-client@1.0.0`: - Updated tests to handle `async` code. - `spiderable@`: - Updated handlers to use `handlers` that are now using express - removed `fibers` usage if flag is set to `true` - `standard-minifier-css@2.0.0`: - Package was bumped due to a dependency update. No code changes were made. - `standard-minifier-js@3.0.0`: - `processFilesForBundle` is now `async`. - `standard-minifiers@2.0.0`: - Package was bumped due to a dependency update. No code changes were made. - `static-html@2.0.0`: - Package was bumped due to a dependency update. No code changes were made. - `test-helpers@2.0.0`: - Updated to use `async` methods. - Removed `fibers` usage. - Added possibliy to use `async` tests. - `test-in-browser@2.0.0`: - Updated css to be in dark mode. - `test-in-console@2.0.0`: - Updated log identation. - `test-server-tests-in-console-once@2.0.0`: - Package was bumped due to a dependency update. No code changes were made. - `tinytest-harness@1.0.0`: - Package was bumped due to a dependency update. No code changes were made. - `tinytest@2.0.0`: - Added `test name` to logs. - Removed `fibers` usage. - `twitter-config-ui@2.0.0`: - Package was bumped due to a dependency update. No code changes were made. - `twitter-oauth@2.0.0`: - Package was bumped due to a dependency update. No code changes were made. - `typescript@5.0.0`: - Package was bumped due to a dependency update. No code changes were made. - `underscore-tests@2.0.0`: - Package was bumped due to a dependency update. No code changes were made. - `underscore@2.0.0`: - Removed dependency in meteor package. - `url@2.0.0`: - Package was bumped due to a dependency update. No code changes were made. - `webapp-hashing@2.0.0`: - Package was bumped due to a dependency update. No code changes were made. - `webapp@2.0.0`: - These methods are now async: - `WebAppInternals.reloadClientPrograms()` - `WebAppInternals.pauseClient()` - `WebAppInternals.generateClientProgram()` - `WebAppInternals.generateBoilerplate()` - `WebAppInternals.setInlineScriptsAllowed()` - `WebAppInternals.enableSubresourceIntegrity()` - `WebAppInternals.setBundledJsCssUrlRewriteHook()` - `WebAppInternals.setBundledJsCssPrefix()` - `WebAppInternals.getBoilerplate` - Changed engine from connect to express and changed api naming to match express. See below: - `WebApp.connectHandlers.use(middleware)` is now `WebApp.handlers.use(middleware)` - `WebApp.rawConnectHandlers.use(middleware)` is now `WebApp.rawHandlers.use(middleware)` - `WebApp.connectApp` is now `WebApp.expressApp` - `weibo-config-ui@2.0.0`: - Package was bumped due to a dependency update. No code changes were made. - `weibo-oauth@2.0.0`: - Package was bumped due to a dependency update. No code changes were made. #### New Public API - `accounts-base`: (2.9+) - `Meteor.userAsync()` - `callback-hook`:forEachAsync - `forEachAsync` - `ddp-server`: (2.8+) - `Meteor.callAsync()` - `meteor`: - Added `Meteor.isDebug` to execute code in debug builds, activated with the --inspect mode. - `minifier-css`: (2.9+) - `CssTools.minifyCssAsync()` - `mongo`: - `Mongo.Collection`: (2.8+) - `createCappedCollectionAsync` - `createIndexAsync` - `dropCollectionAsync` - `dropIndexAsync` - `findOneAsync` - `insertAsync` - `removeAsync` - `updateAsync` - `upsertAsync` - `Collection.Cursor`: (2.8+) - `countAsync` - `fetchAsync` - `forEachAsync` - `mapAsync` - `[Symbol.asyncIterator]` so this code should work: ```js for await (const document of collection.find(query, options)) /* ... */ ``` #### Internal API changes `accounts-base`: - `_attemptLogin` - `_loginMethod` - `_runLoginHandlers` * Upgraded `node-gyp` to v9.4.0 * Upgraded `node-pre-gyp` to `@mapbox/node-pre-gyp` v1.0.11 #### New Internal API `accounts-password`: - `Accounts._checkPasswordAsync` #### Special thanks to - [@denihs](https://github.com/denihs) - [@Grubba27](https://github.com/Grubba27) - [@nachocodoner](https://github.com/nachocodoner) - [@fredmaiaarantes](https://github.com/fredmaiaarantes) - [@vit0rr](https://github.com/vit0rr) - [@filipenevola](https://github.com/filipenevola) - [@zodern](https://github.com/zodern) - [@radekmie](https://github.com/radekmie) - [@StorytellerCZ](https://github.com/StorytellerCZ) - [@gunnartorfis](https://github.com/gunnartorfis) - [@xet7](https://github.com/xet7) - [@harryadel](https://github.com/harryadel) - [@simonwebs](https://github.com/simonwebs) - [@TylerThompson](https://github.com/TylerThompson) - [@rodrigok](https://github.com/rodrigok) - [@zarvox](https://github.com/zarvox) - [@srsgores](https://github.com/srsgores) - [@tassoevan](https://github.com/tassoevan) - [@Torgen](https://github.com/Torgen) - [@MarcosSpessatto](https://github.com/MarcosSpessatto) - [@vincentcarpentier](https://github.com/vincentcarpentier) - [@ggazzo](https://github.com/ggazzo) - [@StevenMia](https://github.com/StevenMia) - [@acemtp](https://github.com/acemtp) And so many more people, for making this great framework even better! ## v2.16.0, 2024-05-14 ### Highlights - Support observeChangesAsync and observeAsync. [PR](https://github.com/meteor/meteor/pull/13025) - New mongo package options to optimize Oplog tailing performance to include/exclude certain collections [PR](https://github.com/meteor/meteor/pull/13009) #### Migration Steps To update from 2.15 to this one, you can run: ``` meteor update --release 2.16 ``` If you're coming from an older version, please check our [Migration Guides](https://guide.meteor.com/2.14-migration). #### Breaking Changes N/A #### Internal API changes * Add method name to MethodInvocation in DDP messages #### Meteor Version Release * Meteor tool - Updated Svelte skeleton - Update tsconfig.json for Svelte skeleton - Updated Solid skeleton NPM dependencies * Blaze - Support of async dynamic attributes [PR](https://github.com/meteor/blaze/pull/460) - Fix Blaze._expandAttributes returns empty object, if null. [PR](https://github.com/meteor/blaze/pull/458) * `accounts-base@2.2.11` - Supported session storage to store accounts login token [PR](https://github.com/meteor/meteor/pull/13046) - Update config checking - Added new types [PR](https://github.com/meteor/meteor/pull/13042) * `accounts-oauth@1.4.4` - Remove config checking as it is done in `accounts-base` * `accounts-ui-unstyled@1.7.1` - `Connect with Twitter` is now `Connect with X/Twitter` * `check@1.4.1`: - Added an optional flag to immediately throw error when all checks failed. [PR](https://github.com/meteor/meteor/pull/12970) * `ddp-common@1.4.1` - Add method name to MethodInvocation * `ddp-client@2.6.2` - Add method name to MethodInvocation * `ddp-server@2.7.1` - Add method name to MethodInvocation * `twitter-config-ui@1.0.2` - Update setup instructions * `email@2.2.6` - Nodemailer update to v6.9.10 - `@types/nodemailer` updated to v6.4.14 - Adds the ability to encrypt your emails using PGP [PR](https://github.com/meteor/meteor/pull/12991) * `logging@1.3.4` - Type update * `minimongo@1.9.4` - Support observeChangesAsync and observeAsync [PR](https://github.com/meteor/meteor/pull/13025) - Report and extend test cases for the old async behaviors * `minifier-js@2.8.0` - Update terser to v5.31.0 * `mongo@1.16.10` - Support a new option to include/exclude certain collections for oplog tailing [PR](https://github.com/meteor/meteor/pull/13009) * `reload-safetybelt@1.0.13` - Remove underscore dependency * `service-configuration@1.3.4` - Type update #### Independent releases * `mongo@1.16.9`: - Set `minPoolSize` for oplog * `underscore@1.6.1` - Fix bug in `_.intersection` #### Contributors - [nachocodoner](https://github.com/nachocodoner) - [StorytellerCZ](https://github.com/StorytellerCZ) - [jamauro](https://github.com/jamauro) - [Twisterking](https://github.com/Twisterking) - [harryadel](https://github.com/harryadel) Thanks for making this great framework even better! ## v2.15.0, 2024-02-05 ### Highlights * Bumps embedded MongoDB to 7.0.5. #### Breaking Changes N/A #### Internal API changes N/A #### Migration Steps In development, if you're using Linux, you might get an error like `version GLIBCXX_3.4.26 not found` or something related to g++. This is related to your g++ version. With MongoDB 7, you need to have g++ 11 or higher. So make sure to have this updated. This will happen only if you are trying to run your Meteor application with a MongoDB 7 version. If you run your app with a MONGO_URL pointing to a different MongoDB version, you won't have this issue. ```bash meteor update --release 2.15 ``` #### Meteor Version Release * `Command line`: - The bundle version was changed to include embedded MongoDB to 7.0.5. - Fix cordova launch screen warnings on 2.15 [PR](https://github.com/meteor/meteor/pull/12971) * `underscore@1.6.0`: - A test related to [PR](https://github.com/meteor/meteor/pull/12798) to see if the tests can manage the first update step. [PR](https://github.com/meteor/meteor/pull/12912) * `service-configuration@1.3.3`: - added new types* [PR](https://github.com/meteor/meteor/pull/12922) * `meteor@1.11.5`: - added new types [PR](https://github.com/meteor/meteor/pull/12922) * `accounts-base@2.2.10`: - Added missing type for createUserVerifyingEmail [PR](https://github.com/meteor/meteor/pull/12919) #### Special thanks to - [@Grubba27](https://github.com/Grubba27). - [@denihs](https://github.com/denihs). - [@mcorbelli](https://github.com/mcorbelli). - [@matheusccastroo](https://github.com/matheusccastroo). - [@StorytellerCZ](https://github.com/StorytellerCZ). - [@ebroder](https://github.com/ebroder). - [@nachocodoner](https://github.com/nachocodoner). For making this great framework even better! ## v2.14.0, 2023-12-12 ### Highlights Hacktoberfest release! 🎉 * MongoDB driver has been updated to v4.17.2. * You can now set `DISABLE_SOCKJS_CORS=1` if you want to prevent SockJS from setting CORS headers. Do not set this option if you will have DDP clients from other origins connecting to the DDP server. [PR](https://github.com/meteor/meteor/pull/12789) * Added guide on [how to prepare for Meteor 3.0 migration](https://guide.meteor.com/prepare-meteor-3.0). * New DDP merge strategy `NO_MERGE_MULTI`, which is similar to `NO_MERGE`, but it does track whether a document is used by multiple publications. [PR](https://github.com/meteor/meteor/pull/12742) * Appcache has been further deprecated and moved to the deprecated packages folder. * Added `Accounts.createUserAsync` into the client. * Many packages had their underscore dependency removed. * Cordova has been updated to v12.0.1 for Android and v7.0.1 for iOS, being able to build to SDK 33. * `meteor create` command is now interactive! * Added `firstRunPromise` property to `Tracker` autorun blocks, that forces autorun blocks to be executed in synchronous-looking order by storing the value autorun promise thus making it awaitable. #### Migration Steps ##### Android splash screen If you have been using `splash-screen` for Cordova, you need to update your code as Android changed their splash screen API, the `cordova-plugin-splashscreen` is now on `cordova-android` core, so we have removed the dependency from the `splash-screen` package. As a result we are dropping the support for dark mode splash screen on Android. To create this now you need to create two themes on your `config.xml` file. > Note that it's still possible to have it by adding the according themes with App.appendToConfig and App.addResourceFile - but this is not something Meteor will do automatically right now. For more information you can check our [Migration Guide](https://guide.meteor.com/2.14-migration.html) ## Breaking Changes * `splash-screen` package has removed the `cordova-plugin-splashscreen` dependency. See migration steps for more info. ## Docs - Added guide on [how to prepare for Meteor 3.0 migration](https://guide.meteor.com/prepare-meteor-3.0). - Added guide on [performance improvements](https://guide.meteor.com/performance-improvement). - Added FAQ about [Meteor 3](https://guide.meteor.com/3.0-migration). ## Internal API changes * Tool - Rename `EACCESS` to `EACCES` to follow the Windows spelling - Fixed links in skeletons - Fixed build issue in Vue skeleton - Updated `source-map-support` - Fixed bugs in negated “in” and “instanceof” expressions - Updated `semver` to v7.5.4 - Updated `@meteorjs/babel` to v7.18.4 - Cordova has been updated to v12.0.1 for Android and v7.0.1 for iOS, being able to build to SDK 33. - `meteor create` command was re-made to be more interactive ## Meteor Version Release * `accounts-base@2.2.10` - Ensure that `onLogin` callback fires properly - Indexes are now created asynchronously * `accounts-oauth@1.4.3` - Indexes are now created asynchronously * `accounts-password@2.4.0` - Add `Accounts.createUserAsync` to the client, a promise-based version of `Accounts.createUser` - Indexes are now created asynchronously * `accounts-passwordless@2.1.4` - Fix #12401, ensure that user is found with ID - Indexes are now created asynchronously * `babel-compiler@7.10.5` - Updated `@meteorjs/babel` to v7.18.4 * `boilerplate-generator@1.7.2` - Removed Underscore dependency * `browser-policy-content@1.1.3` - Removed Underscore dependency * `constraint-solver@1.2.1` - Removed Underscore dependency * `crosswalk@1.7.2` - Updated `cordova-plugin-crosswalk-webview` to v2.4.0 - Deprecated the package * `ddp-rate-limiter@1.2.1` - Removed Underscore dependency * `ddp-server@2.7.0`: - Allow setting `DISABLE_SOCKJS_CORS` to prevent SockJS from setting CORS headers - Added new publication strategy `NO_MERGE_MULTI` * `ecmascript@0.16.8`: - Bumped to get latest version of `@babel/compiler` * `facebook-oauth@1.11.3`: - Updated default version of Facebook GraphAPI to v17 * `launch-screen@2.0.0` - Removed `cordova-plugin-splashscreen` dependency * `fetch@0.1.4`: - Update `node-fetch` to version 1.6.12 - Update `whatwg-fetch` to version 3.6.17 * `logging@1.3.3`: - Added TS types - Updated `chalk` to v4.1.2 * `logic-solver@2.0.9` - Removed Underscore dependency * `meteor@1.11.5`: - Improve TS types * `mobile-experience@1.1.1`: - Bumped to get latests version of `cordova` dependencies * `modern-browsers@0.1.10` - Added `appleMail` user agent to allow modern bundle on iPads * `modules@0.20.0` - Updated version of reify to v0.24.1 * `mongo@1.16.8` - Added deprecation messages into type definitions - Fix ObjectIDs handling in oplogV2V1Converter * `npm-mongo@4.17.2`: - Bumped MongoDB driver to version 4.17.2 * `oauth@2.2.1` - Indexes are now created asynchronously - `remove` DB calls migrated to `removeAsync` * `package-version-parser@3.2.2` - Updated `semver` to v7.5.4 * `react-fast-refresh@0.2.8`: - Updated `semver` to version 7.5.4 * `service-configuration@1.3.3` - Indexes are now created asynchronously - Add types for ConfigError * `socket-stream-client@0.5.2` - Removed Underscore dependency * `standard-minifier-css@1.9.2` - Updated `@babel/runtime` to v7.23.5 - Updated `minifier-css` to v1.6.4 - Updated `logging` package to v1.3.2 * `test-server-tests-in-console-once@1.0.12` - Removed Underscore dependency * `tinytest@1.2.3` - Removed Underscore dependency * `tracker@1.3.3` - Added `firstRunPromise` property, that forces autorun blocks to be executed in synchronous-looking order by storing the value autorun promise thus making it awaitable * `typescript@4.9.5`: - Updated to 4.9.5 * `webapp@1.13.8` - Updated `cordova-plugin-meteor-webapp` to v2.0.3 - Updated `cookie-parser` to v1.4.6 - Updated `send` to v0.18.0 - Updated `stream-to-string` to v1.2.1 - Updated `qs` to v6.11.2 - Updated `@types/connect` to v3.4.38 ## Independent releases * `google-oauth@1.4.4`: - Remove logging request/response in google_server * NPM `@meteorjs/babel@7.18.4` - Updated `@meteorjs/reify` to v0.24.1 * NPM `@meteorjs/babel-preset-meteor@7.10.1` - Add Facebook in-app browser * NPM `cordova-plugin-meteor-webapp@2.0.2` - Fixed Android hot code push failing * NPM `cordova-plugin-meteor-webapp@2.0.3` - Fix pull manifest from correct url if parameter are used in baseurl * NPM `meteor-node-stubs@1.2.6` - Update dependencies - Deep update dependencies that were highlighted by `npm audit` ## Contributors - [@StorytellerCZ](https://github.com/sponsors/StorytellerCZ) - [@Grubba27](https://github.com/sponsors/Grubba27) - [@vit0rr](https://github.com/vit0rr) - [@realyze](https://github.com/realyze) - [@jamauro](https://github.com/jamauro) - [@Torgen](https://github.com/Torgen) - [@brucejo75](https://github.com/brucejo75) - [@zodern](https://github.com/sponsors/zodern) - [@alisnic](https://github.com/alisnic) - [@ebroder](https://github.com/ebroder) - [@BANSAL-NISHU](https://github.com/BANSAL-NISHU) - [@salmanhasni](https://github.com/salmanhasni) - [@jdgjsag67251](https://github.com/jdgjsag67251) - [@guncebektas](https://github.com/guncebektas) - [@harryadel](https://github.com/harryadel) - [@dd137](https://github.com/dd137) - [@matheusccastroo](https://github.com/matheusccastroo) - [@mr-loop-1](https://github.com/mr-loop-1) For making this great framework even better! ## v2.13.3, 2023-09-08 ### Highlights * Solves the issue [#12771: Version 2.13.1 suddenly requires a newer glibc version](https://github.com/meteor/meteor/issues/12771). #### Breaking Changes N/A #### Internal API changes N/A #### Migration Steps Please run the following command to update your project: ```bash meteor update --release 2.13.3 ``` #### Meteor Version Release * `Command line`: - The bundle version was changed to 14.21.4.3 to use another compiled version of the [ESM Node.js](https://guide.meteor.com/using-node-v14.21.4). The previous version was generated using a different unix distribution (Ubuntu) while we should use CentOS. #### Special thanks to - [@aquinoit](https://github.com/aquinoit). - [@fredmaiaarantes](https://github.com/fredmaiaarantes). - [@Grubba27](https://github.com/Grubba27). For making this great framework even better! ## v2.13.1, 2023-09-04 ### Highlights * Solved zlib issue with Meteor.js and ESM Node.js 14.21.4 [PR](https://github.com/meteor/meteor/pull/12765) by (GH Grubba27). #### Breaking Changes N/A #### Internal API changes N/A #### Migration Steps Please run the following command to update your project: ```bash meteor update --release 2.13.1 ``` #### Meteor Version Release * `Command line`: - The bundle version was changed to 14.21.4.1 to use another compiled version of the [ESM Node.js](https://guide.meteor.com/using-node-v14.21.4). #### Special thanks to - [@Grubba27](https://github.com/Grubba27). For making this great framework even better! ## v2.13.0, 2023-07-26 ### Highlights * Handled implicit collection creation oplog message by [radekmie](https://github.com/radekmie) [PR](https://github.com/meteor/meteor/pull/12643). * Fix upsert logs when using WARN_WHEN_USING_OLD_API flag by [Grubba27](https://github.com/Grubba27) [PR](https://github.com/meteor/meteor/pull/12640). * Updating mongo types by [Grubba27](https://github.com/Grubba27) [PR](https://github.com/meteor/meteor/pull/12639). * Fix solid skeleton by [fredmaiaarantes](https://github.com/fredmaiaarantes) [PR](https://github.com/meteor/meteor/pull/12637). * Setting The Viewport meta tag on skeletons [fredmaiaarantes](https://github.com/fredmaiaarantes) [PR](https://github.com/meteor/meteor/pull/12636). * Update mongo.d.ts with projection [StorytellerCZ](https://github.com/StorytellerCZ) [PR](https://github.com/meteor/meteor/pull/12635). * Update guide code for GraphQL [StorytellerCZ](https://github.com/StorytellerCZ) [PR](https://github.com/meteor/meteor/pull/12619). * Twitter Whitelist issue resolved [Atharshoyeb](https://github.com/Atharshoyeb) [PR](https://github.com/meteor/meteor/pull/12369). * Node security patch (14.21.4) [PR](https://github.com/meteor/node-v14-esm/pull/1). Thanks a lot [denihs](https://github.com/denihs) for your contribuiton. * Updated deprecated reference in mongo package by [StorytellerCZ](https://github.com/StorytellerCZ) [PR](https://github.com/meteor/meteor/pull/12653/files). * Updated BlazeJS git ref in core meteor to 2.7.1 by [Grubba27](https://github.com/Grubba27) [PR](https://github.com/meteor/meteor/pull/12651). * Added `Meteor.applyAsync` types by [Julusian](https://github.com/Julusian) [PR](https://github.com/meteor/meteor/pull/12645). #### Breaking Changes If you are running Meteor with docker you will need to update your docker file to use our [new docker image](https://hub.docker.com/r/meteor/node) that contains Nodejs v14.21.4. #### Known issues Please, [check our known issues page](https://docs.meteor.com/known-issues) for more information about the problems and issues you might find while migrating. #### Internal changes * `ddp-server@3.0.0`: - Updated livedata server test to be more easily debbuged. * `mongo@2.0.0`: - Updated deprecated reference in Mongo package. #### Migration Steps Please, follow our [migration guide](https://guide.meteor.com/2.13-migration) to understand what's needed to upgrade to Meteor 2.13. #### Meteor Version Release * `Command line`: - Updated metatags for skeletons. - Updated solidjs skeleton to be more idiomatic. * `meteor@1.11.3`: - Added types for applyAsync and added more documentation for applyAsync options. * `mongo@1.16.7`: - Updated types with projection. - Fixed wrong upsert logs when using WARN_WHEN_USING_OLD_API flag. - Handled implicit collection creation oplog message. * `test-in-console@1.2.5`: - Adjusted log indentation. - All errors will be logged to console. - Will always use puppeteer@20.4.0 * `twitter-oauth@1.3.3`: - Fixed twitter whitelist issue. #### Special thanks to - [@radekmie](https://github.com/radekmie). - [@Grubba27](https://github.com/Grubba27). - [@fredmaiaarantes](https://github.com/fredmaiaarantes). - [@StorytellerCZ](https://github.com/StorytellerCZ). - [@Atharshoyeb](https://github.com/Atharshoyeb). - [@Julusian](https://github.com/Julusian). - [@denihs](https://github.com/denihs). ## v2.12.0, 2023-04-28 ### Highlights * Document main function in webapp by [harryadel](https://github.com/harryadel) [PR](https://github.com/meteor/meteor/pull/12579) * Add undocument properties to docs by [harryadel](https://github.com/harryadel) [PR](https://github.com/meteor/meteor/pull/12563) * Bump NPM versions for css minifiers by [wreiske](https://github.com/wreiske) [PR](https://github.com/meteor/meteor/pull/12562) * Updated Email and Mongo package types by [ebroder](https://github.com/ebroder) [PR](https://github.com/meteor/meteor/pull/12554) * Updated security.md by [jamauro](https://github.com/jamauro) [PR](https://github.com/meteor/meteor/pull/12461) * Added addHtmlAttributeHook type on WebApp by [DblK](https://github.com/DblK) [PR](https://github.com/meteor/meteor/pull/12545) * Added loginServiceConfiguration type on Accounts by [DblK](https://github.com/DblK) [PR](https://github.com/meteor/meteor/pull/12539) * Add TS types for Mongo Collection countDocuments and estimatedDocumentCount by [ArthurHoaro](https://github.com/ArthurHoaro) [PR](https://github.com/meteor/meteor/pull/12533) * Allow setting a custom ddp-rate-limit message per rule by [wreiske](https://github.com/wreiske) [PR](https://github.com/meteor/meteor/pull/12082) * Updated MongoDB driver to 4.15 by [Grubba27](https://github.com/Grubba27) [PR](https://github.com/meteor/meteor/pull/12583) * Adding warn with env variable when using old apis vy [Grubba27](https://github.com/Grubba27) [PR](https://github.com/meteor/meteor/pull/12585) * Fix syntax for legacy client by [zodern](https://github.com/zodern) [PR](https://github.com/meteor/meteor/pull/12596) * Updating MongoDB driver to 4.16 by [Grubba27](https://github.com/Grubba27) [PR](https://github.com/meteor/meteor/pull/12599) * Update sockjs-client by [harryadel](https://github.com/harryadel) [PR](https://github.com/meteor/meteor/pull/12590) * [Accounts] set custom collection by [dmromanov](https://github.com/dmromanov) [PR](https://github.com/meteor/meteor/pull/12591) * Wrappers to help in the async migration by [matheusccastroo](https://github.com/matheusccastroo) [PR](https://github.com/meteor/meteor/pull/12593) * Mongo query hangs all clients subscribed to a query/collection by [KoenLav](https://github.com/KoenLav) [PR](https://github.com/meteor/meteor/pull/12587) * Blaze to 2.6.2 by [StorytellerCZ](https://github.com/StorytellerCZ) [PR](https://github.com/meteor/blaze/pull/411) #### Breaking Changes N/A #### Internal API changes N/A #### Migration Steps Now if you want to check where do you call old-style api methods you can use ```WARN_WHEN_USING_OLD_API``` before starting your meteor process. #### Meteor Version Release * `accounts-base@2.2.8`: - Added `loginServiceConfiguration` type. - Added the `collection` option property, in order to be able to set the collection for Accounts, more can be seen in the [discussion](https://github.com/meteor/meteor/discussions/12544#discussioncomment-5240763) and in the [related issue](https://github.com/meteor/meteor-feature-requests/issues/20). - `onCreateUserHook` now accept promises and wait if necessary. * `babel-compiler@7.10.4`: - Added `es5` compatible syntax. * `browser-policy-content@1.1.2`: - Added `es5` compatible syntax. * `browser-policy-framing@1.1.2`: - Added `es5` compatible syntax. * `browser-policy@1.1.2`: - Updated test name. * `callback-hook@1.5.1`: - Added async hooks possibility to make async migrations easier. * `context@0.5.1`: - Added `es5` compatible syntax. * `ddp-rate-limiter@1.2.0`: - Allow setting a custom ddp-rate-limit message per rule. * `ddp-server@2.6.1`: - Updated sockjs version. * `dev-error-overlay@0.1.2`: - Added `es5` compatible syntax by adding the `ecmascript` package. * `dynamic-import@0.7.3`: - Added `es5` compatible syntax. * `ecmascript@0.16.7`: - Updated tests location. * `ecmascript-runtime@0.8.1`: - Updated npm dependencies. * `email@2.2.5`: - Updated type `CustomEmailOptions` to be a type instead of an interface. * `hot-module-replacement@0.5.3`: - Added `es5` compatible syntax. * `meteor@1.11.2`: - Added documentation for `isTest`, `isAppTest` and `isPackageTest` methods. - Added possibility to add async hooks to make async migrations easier. [PR](https://github.com/meteor/meteor/pull/12593) * `minifier-css@1.6.4`: - Bump NPM versions for css minifiers. * `minimongo@1.9.3`: - Updated to be able to track old api usage. * `modules-runtime-hot@0.14.2`: - Added `es5` compatible syntax. * `mongo@1.16.6`: - Added `countDocuments` and `estimatedDocumentCount` types. - Added warning for when old style apis are being used, to use this feature, use the variable`WARN_WHEN_USING_OLD_API=true` before starting the Meteor process. - Oplog driver updated to not throw error when MongoDB server and Meteor client mismatch. [issue](https://github.com/meteor/meteor/issues/12516) * `non-core`: - Blaze to version 2.6.2. * `npm-mongo@4.16.0`: - Updated MongoDB driver to 4.15. - Updated MongoDB driver to 4.16. * `rate-limit@1.1.1`: - Added `ruleId` property that will be used for setting messages. * `react-fast-refresh@0.2.7`: - Added `es5` compatible syntax. * `socket-stream-client@0.5.0`: - Updated sockjs version. * `standard-minifier-css@1.9.2`: - Bump NPM versions for css minifiers. * `tracker@1.3.2`: - Updated types and updated JSDocs for `Tracker.withComputation`. * `underscore@1.0.13`: - Updated npm dependencies. * `webapp@1.13.5`: - Added `addHtmlAttributeHook` type. #### Special thanks to - [@harryadel](https://github.com/harryadel). - [@wreiske](https://github.com/wreiske). - [@ebroder](https://github.com/ebroder). - [@jamauro](https://github.com/jamauro). - [@DblK](https://github.com/DblK). - [@ArthurHoaro](https://github.com/ArthurHoaro). - [@Grubba27](https://github.com/Grubba27). - [@zodern](https://github.com/zodern). - [@dmromanov](https://github.com/dmromanov). - [@matheusccastroo](https://github.com/matheusccastroo). ## v2.11.0, 2023-03-02 ### 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) * 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). * Upgrading MongoDB Driver to v4.14 by [Grubba27](https://github.com/Grubba27) [PR](https://github.com/meteor/meteor/pull/12501) * Remove Blaze dependency and types that live in blaze.d.ts by [perbergland](https://github.com/perbergland) [PR](https://github.com/meteor/meteor/pull/12428) * Switch typescript skeleton to zodern:types and test that it works by [ebroder](https://github.com/ebroder) [PR](https://github.com/meteor/meteor/pull/12510) * Remove packages/*/.npm from gitignore and add missing .npm folders by [ebroder](https://github.com/ebroder) [PR](https://github.com/meteor/meteor/pull/12508) * Add type definitions for async methods from Meteor 2.9 by [ebroder](https://github.com/ebroder) [PR](https://github.com/meteor/meteor/pull/12507) * TypeScript skeleton fixes by [ebroder](https://github.com/ebroder) [PR](https://github.com/meteor/meteor/pull/12506) * Fix TypeScript type dependencies for mongo, webapp, and underscore by [ebroder](https://github.com/ebroder) [PR](https://github.com/meteor/meteor/pull/12505) * Improve specificity of types previously declared as "Object" by [ebroder](https://github.com/ebroder) [PR](https://github.com/meteor/meteor/pull/12520) * Bump to Node 14.21.3 by [StorytellerCZ](https://github.com/StorytellerCZ) [PR](https://github.com/meteor/meteor/pull/12517) #### Breaking Changes `meteor mongo` command was removed due compatibility with MongoDB v6.x of `mongosh for more information about MongoDB migration read our [Migration Guide](https://guide.meteor.com/2.11-migration.html) for this version. #### Internal API changes App cache is now deprecated. #### Migration Steps Read our [Migration Guide](https://guide.meteor.com/2.11-migration.html) for this version. #### Meteor Version Release * `accounts-2fa@2.0.2`: - removed .npm/package contents and added .gitignore * `accounts-base@2.2.7`: - Updated types to match async methods added in newer versions. - Ensured the meteor.loginServiceConfiguration subscription always becomes ready, by adding a this.ready() call. - Specified that previously were declared as "Object" types. More context can be seen in [PR](https://github.com/meteor/meteor/pull/12520). * `accounts-password@2.3.4`: - Updated `Accounts.changePassword` and `Accounts.resetPassword` to be correctly verify if the new password is valid. - removed .npm/package contents and added .gitignore * `appcache@1.2.8` - Deprecated 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. * `babel-compiler@7.10.3`: - Updated typescript to version 4.9.4. * `ecmascript@0.16.6`: - Updated typescript to version 4.9.4. * `email@2.2.4`: - Updated types to match async methods added in newer versions. - Specified that previously were declared as "Object" types. More context can be seen in [PR](https://github.com/meteor/meteor/pull/12520). * `logging@1.3.2`: - removed .npm/package contents and added .gitignore * `Command line`: - Corrected typo in vue skeleton. - Command `meteor mongo` was removed due compatibility with MongoDB v6.x of `mongosh` * `meteor@1.11.1`: - updated types to removed unused Blaze types - Specified that previously were declared as "Object" types. More context can be seen in [PR](https://github.com/meteor/meteor/pull/12520). * `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 - Updated MongoDB types to match driver version 4.13.0 and MongoDB server version 6.0.3 - Specified that previously were declared as "Object" types. More context can be seen in [PR](https://github.com/meteor/meteor/pull/12520). - Now uses MongoDB v6.0.3 - Now uses Node v14.21.3 * `npm-mongo@4.14.0`: - Updated MongoDB driver to version 4.14.0 * `oauth@2.2.0`: - bumped cordova-plugin-inappbrowser to 5.0.0 * `react-fast-refresh@0.2.6`: - removed .npm/package contents and added .gitignore * `standard-minifier-css@1.9.0`: - standard-minifier-css is now debuggable * `tracker@1.3.1`: - Added missing withComputation method in types * `typescript@4.9.4` - Updated typescript to version 4.9.4. * `underscore@1.0.12`: - Added dependency in types to underscore * `webapp@1.13.4`: - Added dependency in types to webapp(to connect) - removed .npm/package contents and added .gitignore * `@meteorjs/babel@7.18.0-beta.6` - Updated typescript to version 4.9.4. #### 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). - [@softwarecreations](https://github.com/softwarecreations). - [@Grubba27](https://github.com/Grubba27). For making this great framework even better! ## v2.10.0, 2023-01-13 ### Highlights * Update skeletons to use React 18 [PR](https://github.com/meteor/meteor/pull/12419) by [StorytellerCZ](https://github.com/StorytellerCZ). * Use MongoDB types instead of the homebuilt [PR](https://github.com/meteor/meteor/pull/12415) by [perbergland](https://github.com/perbergland). * Fixing wrong type definitions in MongoDB package [PR](https://github.com/meteor/meteor/pull/12409) by [ebroder](https://github.com/ebroder). * Typescript to version v4.7.4 [PR](https://github.com/meteor/meteor/pull/12393) by [StorytellerCZ](https://github.com/StorytellerCZ). * Update test-in-browser dependencies [PR](https://github.com/meteor/meteor/pull/12384) by [harryadel](https://github.com/harryadel). * Update boilerplate-generator-tests [PR](https://github.com/meteor/meteor/pull/12429) by [harryadel](https://github.com/harryadel). * Replace double-ended-queue with denque [PR](https://github.com/meteor/meteor/pull/12430) by [harryadel](https://github.com/harryadel). * Allow multiple runtime config and updated runtime hooks [PR](https://github.com/meteor/meteor/pull/12426) by [ebroder](https://github.com/ebroder). * Added async forEach and clear for method Hooks [PR](https://github.com/meteor/meteor/pull/12427) by [Grubba27](https://github.com/Grubba27). * Implemented async Tracker with explicit values [PR](https://github.com/meteor/meteor/pull/12294) by [radekmie](https://github.com/radekmie). * Improved eslint config [PR](https://github.com/meteor/meteor/pull/12309) by [afrokick](https://github.com/afrokick). #### Breaking Changes N/A #### Internal API changes N/A #### Migration Steps N/A #### Meteor Version Release * `babel-compiler@7.10.2`: - Updated @meteorjs/babel to version 7.18.0. - Updated to typescript to version v4.7.4. * `boilerplate-generator-tests@1.5.1`: - Updated parse5 and turned streamToString into a local function. * `callback-hook@1.5.0` - Added forEachAsync. * `ecmascript@0.16.5` - Updated typescript to version 4.7.4. * `Command line`: - Updated React skeletons to use React 18 * `Meteor@1.11.0`: - Replaced double-ended-queue with [denque](https://github.com/invertase/denque) * `mongo@1.16.4`: - Fixed wrong type definitions. - switch to using MongoDB types instead of the homebuilt. - Fixed wrong type definitions in MongoDB package related to dropIndexAsync * `react-fast-refresh@0.2.5`: - Updated react-refresh dependency. * `test-in-browser@1.3.3`: - Updated dependencies and removed unused libs. * `Tracker@1.3.0`: - Implemented async Tracker with explicit values * `typescript@4.7.4` - Updated typescript to version 4.7.4. * `webapp@1.13.3` - The forEach method on Hook will stop iterating unless the iterator function returns a truthy value. Previously, this meant that only the first registered runtime config hook would be called. * `@meteorjs/babel@7.18.0-beta.5` - Updated typescript to version 4.7.4. #### Special thanks to - [@StorytellerCZ](https://github.com/StorytellerCZ). - [@perbergland](https://github.com/perbergland). - [@ebroder](https://github.com/ebroder). - [@harryadel](https://github.com/harryadel). - [@radekmie](https://github.com/radekmie). - [@Grubba27](https://github.com/Grubba27). - [@afrokick](https://github.com/afrokick). For making this great framework even better! ## 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 occurred. [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 preferred) 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, firefoxIOS: 100, 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 `