# Changelog

This is a complete history of changes for Meteor releases.

[//]: # (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 wit 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.2.2, 2025-05-02

### Highlights

- Improved parsing of `x-forwarded-for` headers in Session._clientAddress:
  - Changed header splitting method to handle comma-separated values more reliably
  - Added explicit trimming of IP addresses with map function
  - Modified validation check to require exact match for httpForwardedCount


#### 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.2.2

```

#### Bumped Meteor Packages

- ddp-server@3.1.1

#### Bumped NPM Packages


#### Special thanks to

✨✨✨

- [@italojs](https://github.com/italojs)
- [@ShiyuBanzhou](https://github.com/ShiyuBanzhou)


✨✨✨
## v3.2.0, 2025-03-18

### Highlights

- Upgrade to Node 22.14.0 & Mongo 7.0.16.
- Implement `meteor profile` command to show performance metrics of Meteor apps.
- Fix Meteor profiler to handle promises and display metrics correctly.
- Support for argon2 to improve password security over bcrypt. [PR](https://github.com/meteor/meteor/pull/13554)(https://github.com/meteor/meteor/pull/13554)
- Improve and fix package resolution logic. [PR](https://github.com/meteor/meteor/pull/13604)(https://github.com/meteor/meteor/pull/13604)
- Fix rare oplog issue that could cause data loss for clients. [PR](https://github.com/meteor/meteor/pull/13603)(https://github.com/meteor/meteor/pull/13603) 

All detailed PRs can be found here: https://github.com/meteor/meteor/pulls?q=is%3Apr+is%3Amerged+base%3Arelease-3.2

#### 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.2

```

#### Bumped Meteor Packages

- accounts-base@3.1.0
- accounts-password@3.1.0
- ecmascript-runtime-client@0.12.3
- facebook-oauth@1.11.6
- fetch@0.1.6
- logging@1.3.6
- logic-solver@3.1.0
- minifier-css@2.0.1
- meteor-tool@3.2.0
- modern-browsers@0.2.1
- mongo@2.1.1
- oauth@3.0.2
- test-helpers@2.0.3

#### Bumped NPM Packages

- meteor-node-stubs@1.2.13

#### Special thanks to

✨✨✨

- [@nachocodoner](https://github.com/nachocodoner)
- [@Grubba27](https://github.com/Grubba27)
- [@vparpoil](https://github.com/vparpoil)
- [@cunneen](https://github.com/cunneen)
- [@gbuerk](https://github.com/gbuerk)
- [@julio-rocketchat](https://github.com/julio-rocketchat)
- [@StorytellerCZ](https://github.com/StorytellerCZ)
- [@dr-dimitru](https://github.com/dr-dimitru)
- [@Seb-Dion](https://github.com/Seb-Dion)

✨✨✨
## v3.1.2, 2025-02-06

### Highlights

- Node upgrade: v22.13.1
- Updated Meteor skeletons for Vue and Solid
- Improved browser detection and related documentation
- Security updates: nodemailer-openpgp and others in Meteor packages

#### 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.1.2

```

#### Bumped Meteor Packages

- email@3.1.2
- meteor-tool@3.1.2
- modern-browsers@0.2.0
- webapp@2.0.5

#### Bumped NPM Packages

N/A

#### Special thanks to

✨✨✨

- [@nachocodoner](https://github.com/nachocodoner)
- [@Grubba27](https://github.com/Grubba27)
- [@perbergland](https://github.com/perbergland)
- [@StorytellerCZ](https://github.com/StorytellerCZ)
- [@julio-rocketchat](https://github.com/julio-rocketchat)

✨✨✨
## v3.1.1, 2025-01-15

### Highlights

- Node upgrade: v22.13.0
- Real-time Performance Boost: Refactored AsynchronousQueue for parallel processing and optimized MongoDB observers for faster initial document handling.
- Allow/Deny Rules Update: Deprecated async rules and updated documentation and types.
- Mongo Driver Downgrade: Reverted to a stable version to prevent issues in Meteor.
- Support for Meteor.deprecate: Added deprecation warnings with stack trace for outdated code usage.
- OAuth Fixes: Resolved issues with cancel popup event and callback.
- Windows Fixes: Fixed issues with running from folders with spaces and post-npm install build errors on Windows.
- Security Updates: Upgraded json5 and semver from babel compiler.

#### 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.1.1

```

#### Bumped Meteor Packages

- accounts-base@3.0.4
- accounts-oauth@1.4.6
- accounts-passwordless@3.0.1
- allow-deny@2.1.0
- babel-compiler@7.11.3
- ddp-client@3.1.0
- ddp-server@3.1.0
- meteor-tool@3.1.1
- facebook-oauth@1.11.5
- meteor@2.1.0
- meteor-tool@3.1.1
- mongo@2.1.0
- npm-mongo@6.10.2
- oauth@3.0.1
- roles@@1.0.1
- socket-stream-client@0.6.0

#### Bumped NPM Packages

N/A

#### Special thanks to

✨✨✨

- [@leonardoventurini](https://github.com/leonardoventurini)
- [@nachocodoner](https://github.com/nachocodoner)
- [@Grubba27](https://github.com/Grubba27)
- [@9Morello](https://github.com/9Morello)
- [@perbergland](https://github.com/perbergland)
- [@StorytellerCZ](https://github.com/StorytellerCZ)
- [@MrSpark2591](https://github.com/MrSpark2591)
- [@jstarpl](https://github.com/jstarpl)
- [@minhna](https://github.com/minhna)
- [@svolkomorov](https://github.com/svolkomorov)
- [@quyetdgroup](https://github.com/quyetdgroup)

✨✨✨
## v3.1.0, 2024-11-20

### Highlights

- Upgrade to Node v22
- Upgrade Mongo Driver to v6
- Upgrade Express to v5
- HMR performance improvements
- Bring the `roles` package into the core
- Solve remaining issues with Top Level Await and Reify
- Refactor part of the real-time code in the `mongo` package into TypeScript
- Deprecate `underscore` and eliminate it from packages
- Fix Cordova dependency issues
- Simplify Meteor.EnvironmentVariable and make sure it works in all cases
- Stop using Rosetta for development MongoDB on Apple Silicon
- Test improvements
- Bump `http` package to 3.0.0

#### Breaking Changes

- Express is now at v5 and some it's APIs have changed.

####  Internal API changes

N/A

#### Migration Steps

Please run the following command to update your project:

```bash

meteor update --release 3.1

```

Make sure to migrate userland code to use the new Express APIs:

https://expressjs.com/en/guide/migrating-5.html

The MongoDB Node.js driver implemented a significant breaking change regarding operation handling. Applications leveraging `rawCollection()` or `rawDatabase()` methods must now utilize Promise-based syntax exclusively, as the callback-pattern API has been deprecated and removed. This modification affects all direct MongoDB operations previously using callback functions.


#### Bumped Meteor Packages

- accounts-password@3.0.3
- babel-compiler@7.11.2
- boilerplate-generator-tests@1.5.3
- ddp-client@3.0.3
- ddp-server@3.0.3
- http@3.0.0
- ecmascript@0.16.10
- email@3.1.1
- meteor-tool@3.1.0
- meteor@2.0.2
- minifier-js@3.0.1
- minimongo@2.0.2
- modules@0.20.3
- mongo@2.0.3
- coffeescript-compiler@2.4.2
- coffeescript@2.7.2
- mongo-decimal@0.2.0
- npm-mongo@6.10.0
- shell-server@0.6.1
- test-helpers@2.0.2
- test-in-console@2.0.1
- tinytest@1.3.1
- typescript@5.6.3
- url@1.3.5
- webapp@2.0.4


#### Bumped NPM Packages

- meteor-babel@7.20.1
- meteor-installer@3.1.0
- meteor-node-stubs@1.2.12


#### Special thanks to

✨✨✨

- [@denihs](https://github.com/denihs)
- [@nachocodoner](https://github.com/nachocodoner)
- [@leonardoventurini](https://github.com/leonardoventurini)
- [@StorytellerCZ](https://github.com/StorytellerCZ)
- [@zodern](https://github.com/zodern)
- [@harry97](https://github.com/harry97)
- [@permb](https://github.com/permb)
- [@9Morello](https://github.com/9Morello)
- [@wreiske](https://github.com/wreiske)
- [@MarcoTribuz](https://github.com/MarcoTribuz)
- [@MeteorCoder](https://forums.meteor.com/u/meteorcoder/summary)

✨✨✨
## v3.0.4, 2024-10-15

### Highlights

- Node 20.18.0 & Typescript 5.6.2
- Updated webapp dependencies.
- DDP-server and DDP-client removed underscore
- Remove dependencies on Blaze packages when using static-html
- Fix Cordova on Windows
- Fix Cordova build on using plugins describing dependencies
- Various Windows specific fixes

#### 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.4

```

#### Meteor Version Release

* `Bumped packages`:
  - accounts-base@3.0.3                
  - babel-compiler@7.11.1              
  - caching-compiler@2.0.1             
  - check@1.4.4                        
  - ddp-client@3.0.2                   
  - ddp-server@3.0.2                   
  - ecmascript-runtime@0.8.3           
  - modules@0.20.2                     
  - static-html-tools@1.0.0            
  - static-html@1.4.0                  
  - url@1.3.4                          
  - webapp@2.0.3                       
  - meteor-tool@3.0.4

#### Special thanks to
N/A
## v3.0.3, 2024-09-11

### Highlights

- Fixed `Meteor.userId` only being invoked with `bindEnvironment`.
- Updated to Node `20.17.x`.
- Fixed an issue where `meteor --open` opens the browser before the app is started.
- Investigated and addressed the error when installing the `jam:method` package.
- Improved the message for new available versions when running an app.
- Updated the documentation link inside `install.sh`.
- Resolved the issue where subscriptions stopped after a parameter change.
- Added MongoDB connection telemetry.
- Bumped the `email` package to prevent update errors.
- Cordova package updates

#### Breaking Changes

N/A

####  Internal API changes

- Some internal changes to how async contexts are handled, ensuring better performance and garbage collection.

#### Migration Steps

Please run the following command to update your project:

```bash

meteor update --release 3.0.3

```

If you've had your Meteor installation for over a year, we suggest reinstalling it to avoid any package installation issues. You can do this by running a few quick commands:

```bash
npx meteor uninstall // or rm -rf ~/.meteor
npx meteor
```



#### Meteor Version Release

* `Bumped packages`:
  - accounts-base@3.0.2
  - accounts-password@3.0.2
  - email@3.1.0
  - mongo@2.0.2


#### Special thanks to

- [@ayewo](https://github.com/ayewo).
- [@denihs](https://github.com/denihs).
- [@harryadel](https://github.com/harryadel).
- [@kbarr1212](https://github.com/kbarr1212).
- [@leonardoventurini](https://github.com/leonardoventurini).
- [@nachocodoner](https://github.com/nachocodoner).

## v3.0.2, 2024-08-14

### Highlights

* Bump the patch for some packages, so we publish them using Meteor 3 tooling. [PR](https://github.com/meteor/meteor/pull/13231)
* Fix subscription still resetting documents [PR](https://github.com/meteor/meteor/pull/13236)
* Fix auth sub sending ready twice on load [PR](https://github.com/meteor/meteor/pull/13247)
* Remove version constraints from http package in accounts-twitter [PR](https://github.com/meteor/meteor/pull/13268)
* Deprecate Meteor.user() usage on server side [PR](https://github.com/meteor/meteor/pull/13288)

#### 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.2

```


#### Meteor Version Release

* `Bumped packages`:
  - accounts-2fa@3.0.1
  - accounts-base@3.0.1
  - accounts-password@3.0.1
  - accounts-twitter@1.5.2
  - ddp-client@3.0.1
  - ddp-common@1.4.4
  - ddp-server@3.0.1
  - email@3.0.1
  - meteor@2.0.1
  - minimongo@2.0.1
  - mongo@2.0.1
  - npm-mongo@4.17.4
  - test-helpers@2.0.1
  - webapp@2.0.1



#### Special thanks to

- [@leonardoventurini](https://github.com/leonardoventurini).
- [@StorytellerCZ](https://github.com/StorytellerCZ).


For making this great framework even better!


## 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

- Meteor tool
  - 'meteor reset' command only affects the local project cache. Use `--db` option to also remove the local database.

- `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.replaceEmailAsync`
  - `Accounts.verifyEmail`
  - `Accounts.createUserVerifyingEmail`
  - `Accounts.createUser`
  - `Accounts.generateVerificationToken`
  - `Accounts.generateResetToken`
  - `Accounts.forgotPassword`
  - `Accounts.setPassword` -- no longer exists, you should use Accounts.setPasswordAsync [PR](https://github.com/meteor/meteor/pull/13030)
  - `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`:

  - 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.

- Build system:
  - removed `Assets.getText`
  - removed `Assets.getBinary`

- `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 a async method.
  - Removed `fibers` from package.
  - Updated tests to use async methods.

- `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`:

  - 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.
  - `Meteor.absoluteUrl` in localhost uses `127.0.1` by default.

- `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.

- `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.

- `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.

- `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`
  - `WebApp.addRuntimeConfigHook` accepts async callbacks

- `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


- `Build system` [PR](https://github.com/meteor/meteor/pull/13030):
  - Assets.getTextAsync
  - Assets.getBinaryAsync

- `accounts-base`: (2.9+)

  - `Meteor.userAsync()`

- `callback-hook`:forEachAsync

  - `forEachAsync`

- `ddp-server`: (2.8+)

  - `Meteor.callAsync()`

- `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

- [@StorytellerCZ](https://github.com/sponsors/StorytellerCZ/)

For making this great framework even better!
