From 50081716815d1c9db1501306ee44bfac93a0c922 Mon Sep 17 00:00:00 2001 From: Jan Dvorak Date: Thu, 27 Oct 2022 20:58:42 +0200 Subject: [PATCH 001/102] Outline scaling article --- guide/_config.yml | 1 + guide/source/scaling.md | 128 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 129 insertions(+) create mode 100644 guide/source/scaling.md diff --git a/guide/_config.yml b/guide/_config.yml index 7a99eb70f2..4e2d6d1e07 100644 --- a/guide/_config.yml +++ b/guide/_config.yml @@ -66,6 +66,7 @@ sidebar_categories: Production: - security - deployment + - scaling Meta: - CONTRIBUTING - CHANGELOG diff --git a/guide/source/scaling.md b/guide/source/scaling.md new file mode 100644 index 0000000000..6ac7e34024 --- /dev/null +++ b/guide/source/scaling.md @@ -0,0 +1,128 @@ +--- +title: Scaling +description: How to optimize your Meteor application for higher performance when you start growing. +--- + +This guide focuses on providing you tips and common practices on how to scale your Meteor app. +It is important to note that at the end of the day Meteor is a Node.js app tied closely to MongoDB, +so a lot of the problems you are going to encounter are common to other Node.js and MongoDB apps. +Also do note that every app is different so there are unique challenges to each when scaling, so +practices describe in this guide should be used as a guiding posts rather than absolutes. + +This guide has been heavily inspired by [Marcin Szuster's Vazco article](https://www.vazco.eu/blog/how-to-optimize-and-scale-meteor-projects) +on this issue and talk by Paulo Mogollón's talk at Impact 2022 titled "First steps on scaling Meteor realtime data". + +TODO video from Impact 2022 https://impact.meteor.com/meetings/virtual/uo2Er8YPqx2vuRcne + +

Performance monitoring

+ +Before any optimization can take place we need to know what is our problem. This is where APM (Application Performance Monitor) comes in. +If you are hosting on Galaxy then this is automatically included in the [Professional plan](https://www.meteor.com/cloud#pricing-section) +and you can learn more about in its [own dedicated guide article](https://cloud-guide.meteor.com/apm-getting-started.html). +For those hosting outside of Galaxy the most popular solution is to go with [Monti APM](https://montiapm.com/) which shares +all the main functionality with Galaxy APM. You can also choose other APM for Node.js, but they will not show you Meteor +specific data that Galaxy APM and Monti APM specialize in. For this guide we will focus on showing how to work with Galaxy APM, +which is the same as with Monti APM, for simplicity. + +Once you setup either of those APMs you will need to add a package to your Meteor app to start sending them data. + +#### Galaxy APM [package](https://atmospherejs.com/mdg/meteor-apm-agent) +```sh +meteor add mdg:meteor-apm-agent +``` + +#### Monti APM [package](https://atmospherejs.com/montiapm/agent) +```sh +meteor add montiapm:agent +``` + +

Finding issues in APM

+APM will start with providing you with an overview of how your app is performing. You can then dive deep into details of +publications, methods, errors happening (both on client and server) and more. You will spend a lot of time in the detailed +tabs looking for methods and publications to improve and analyzing the impact of your actions. The process, for example for +optimizing methods, will look like this: + +1. Go to the detailed view under the Methods tab. +2. Sort the Methods Breakdown by Response Time. +3. Click on a method name in the Methods Breakdown. Assess the impact if you improve the selected method. +4. Look at the response time graph and find a trace. +5. Improve your method if you feel it is the right moment to do so. + +Not every long-performing method has to be improved. Take a look at the following example: +* methodX - mean response time 1 515 ms, throughput 100,05/min +* methodY - mean response time 34 000 ms, throughput 0,03/min + +At first glance, the 34 seconds response time can catch your attention, and it may seem that the methodY +is more relevant to improvement. But don’t ignore the fact that this method is being used only once in +a few hours by the system administrators or scheduled cron action. + +And now, let’s take a look at the methodX. Its response time is evidently lower BUT compared to the frequency +of use, it is still high, and without any doubt should be optimized first. + +It’s also absolutely vital to remember that you shouldn't optimize everything as it goes. +The key is to think strategically and match the most critical issues with your product priorities. + +

Publications

+

Low observer reuse

+ +https://www.vazco.eu/blog/how-to-optimize-and-scale-meteor-projects + +

Redis Oplog

+14:26 +* reduces load on server +* channels +* only publish the changes you need + +

Methods

+ +

Heavy actions

+6:49 + +

Reoccurring jobs

+ +

Rate limiting

+ +

MongoDB

+* always limit access to your cluster (IP whitelisting) + +

Indexes

+10:00 +* compound indexes +* ESR (equity, sort, range) +* only the ones needed +* n + 1 +* read from secondaries +* do not use regex +* too many indexes actually slow things down + +

Find strategies

+17:46 +* all queries should have an index +* Fields that filter the most should be first + +

Beware of collection hooks

+ +

Caching

+* query caching +* use aggregation & save them + +

Methods over publications

+also consider GraphQL or REST +8:00 + +

Scaling

+ +

Vertical and horizontal scaling

+There are mainly two different ways of scaling: the vertical and horizontal one. + +* **Vertical scaling** boils down to adding more resources (CPU/RAM/disk) to your server, while horizontal scaling refers to adding more machines or containers to your pool of resources. +* **Horizontal scaling** for Meteor projects typically includes running multiple instances of your app on a single server with multiple cores, or running multiple instances on multiple servers. + +

Autoscaling

+ +

Packages

+ +During development it is very tempting to add packages to solve issue or support some features. +This should be done carefully and each package should be wetted carefully if it is a good fit for the application. +Besides security and maintenance issues you also want to know which dependencies given package introduces and +as a whole what will be the impact on performance. From e6b673d684c8da376a0d7fc0b7863030d8cc3120 Mon Sep 17 00:00:00 2001 From: Jan Dvorak Date: Thu, 24 Nov 2022 17:20:26 +0100 Subject: [PATCH 002/102] Container autoscaling section --- guide/source/scaling.md | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/guide/source/scaling.md b/guide/source/scaling.md index 6ac7e34024..b21776b50a 100644 --- a/guide/source/scaling.md +++ b/guide/source/scaling.md @@ -10,9 +10,7 @@ Also do note that every app is different so there are unique challenges to each practices describe in this guide should be used as a guiding posts rather than absolutes. This guide has been heavily inspired by [Marcin Szuster's Vazco article](https://www.vazco.eu/blog/how-to-optimize-and-scale-meteor-projects) -on this issue and talk by Paulo Mogollón's talk at Impact 2022 titled "First steps on scaling Meteor realtime data". - -TODO video from Impact 2022 https://impact.meteor.com/meetings/virtual/uo2Er8YPqx2vuRcne +on this issue and talk by Paulo Mogollón's talk at Impact 2022 titled ["First steps on scaling Meteor realtime data"](https://impact.meteor.com/meetings/virtual/uo2Er8YPqx2vuRcne).

Performance monitoring

@@ -118,7 +116,18 @@ There are mainly two different ways of scaling: the vertical and horizontal one. * **Vertical scaling** boils down to adding more resources (CPU/RAM/disk) to your server, while horizontal scaling refers to adding more machines or containers to your pool of resources. * **Horizontal scaling** for Meteor projects typically includes running multiple instances of your app on a single server with multiple cores, or running multiple instances on multiple servers. -

Autoscaling

+

Container autoscaling

+ +It is important to be ready for a sudden spikes of traffic. +While all the other measures mentioned here will help, but a certain point it becomes impossible to support more users on one container and additional containers need to be added to support these users. +Today most hosting solutions offer scaling triggers that you can set to automatically scale up (and down) the number of containers for your app based on things like number of connection, CPU and RAM usage. +Galaxy has these as well. Learn more about [setting triggers for scaling on Galaxy](https://galaxy-guide.meteor.com/triggers.html). + +Setting these is vital, so that your application can keep on running when you have extra people come and then saves you money by scaling down when the containers are not in use. +When initially setting these pay a close attention to the performance of your app. you need to learn when is the right time to scale your app so it has enough time to spin up new containers before the existing one get overwhelmed by traffic and so on. +There are other points to pay attention to as well. For example if your app is used by corporation you might want to setup that on weekdays the minimum number of containers is going to increase just before the start of working hours and the then decrease the minimum to 1 for after hours and on weekends. + +Usually when you are working on performance issues you will have higher numbers of containers as you optimize your app. It is therefore vital to revisit your scaling setting after each rounds of improvements to ensure that scaling triggers are properly optimized.

Packages

From fc2c40d04813ef8ff47f64ee9e275ebb2d341f82 Mon Sep 17 00:00:00 2001 From: Jan Dvorak Date: Mon, 28 Nov 2022 18:24:00 +0100 Subject: [PATCH 003/102] Wording improvement --- guide/_config.yml | 2 +- ...{scaling.md => performance-improvement.md} | 49 +++++++++++++------ 2 files changed, 35 insertions(+), 16 deletions(-) rename guide/source/{scaling.md => performance-improvement.md} (75%) diff --git a/guide/_config.yml b/guide/_config.yml index 4e2d6d1e07..b709b58c8d 100644 --- a/guide/_config.yml +++ b/guide/_config.yml @@ -66,7 +66,7 @@ sidebar_categories: Production: - security - deployment - - scaling + - performance-improvement Meta: - CONTRIBUTING - CHANGELOG diff --git a/guide/source/scaling.md b/guide/source/performance-improvement.md similarity index 75% rename from guide/source/scaling.md rename to guide/source/performance-improvement.md index b21776b50a..ee5ffd33cf 100644 --- a/guide/source/scaling.md +++ b/guide/source/performance-improvement.md @@ -1,16 +1,16 @@ --- -title: Scaling +title: Performance improvements description: How to optimize your Meteor application for higher performance when you start growing. --- -This guide focuses on providing you tips and common practices on how to scale your Meteor app. +This guide focuses on providing you tips and common practices on how to improve performance of your Meteor app (sometimes also called scaling). It is important to note that at the end of the day Meteor is a Node.js app tied closely to MongoDB, so a lot of the problems you are going to encounter are common to other Node.js and MongoDB apps. -Also do note that every app is different so there are unique challenges to each when scaling, so +Also do note that every app is different so there are unique challenges to each, therefore practices describe in this guide should be used as a guiding posts rather than absolutes. -This guide has been heavily inspired by [Marcin Szuster's Vazco article](https://www.vazco.eu/blog/how-to-optimize-and-scale-meteor-projects) -on this issue and talk by Paulo Mogollón's talk at Impact 2022 titled ["First steps on scaling Meteor realtime data"](https://impact.meteor.com/meetings/virtual/uo2Er8YPqx2vuRcne). +This guide has been heavily inspired by [Marcin Szuster's Vazco article](https://www.vazco.eu/blog/how-to-optimize-and-scale-meteor-projects), the official [Meteor Galaxy guide](https://galaxy-guide.meteor.com/), +and talk by Paulo Mogollón's talk at Impact 2022 titled ["First steps on scaling Meteor realtime data"](https://impact.meteor.com/meetings/virtual/uo2Er8YPqx2vuRcne).

Performance monitoring

@@ -24,6 +24,8 @@ which is the same as with Monti APM, for simplicity. Once you setup either of those APMs you will need to add a package to your Meteor app to start sending them data. +For working with Galaxy APM and optimizing your app through the data there, don't forget to visit the [Meteor APM guide](https://galaxy-guide.meteor.com/apm-getting-started.html). + #### Galaxy APM [package](https://atmospherejs.com/mdg/meteor-apm-agent) ```sh meteor add mdg:meteor-apm-agent @@ -60,9 +62,23 @@ of use, it is still high, and without any doubt should be optimized first. It’s also absolutely vital to remember that you shouldn't optimize everything as it goes. The key is to think strategically and match the most critical issues with your product priorities. -

Publications

-

Low observer reuse

+For more information about all the things you can find in Galaxy APM take a look at the Meteor APM section in [Galaxy Guide](https://galaxy-guide.meteor.com/apm-getting-started.html). +

Publications

+Publications allow for the most prominent aspect of Meteor, live data. +At the same this is the most resource intensive part of a Meteor application. + +

Proper use of publications

+ +

Methods over publications

+8:00 + +

Publication replacements

+consider GraphQL or REST + +

Low observer reuse

+https://galaxy-guide.meteor.com/apm-know-your-observers.html +https://galaxy-guide.meteor.com/apm-make-your-app-faster.html https://www.vazco.eu/blog/how-to-optimize-and-scale-meteor-projects

Redis Oplog

@@ -81,17 +97,24 @@ https://www.vazco.eu/blog/how-to-optimize-and-scale-meteor-projects

Rate limiting

MongoDB

-* always limit access to your cluster (IP whitelisting) +The following section offers some guidance on optimizing performance of your Meteor application when it comes to the database. +You can find these and more information in other places that deal with MongoDB performance optimization, like on the [official MongoDB website](https://www.mongodb.com/basics/best-practices). +These are all applicable and you should spend some time researching into them as well. The guide here offers some initial and most common patterns. + +

IP whitelisting

+If your MongoDB hosting provider allows it, you should make sure that only whitelisted + +https://galaxy-guide.meteor.com/container-environment.html#network-outgoing

Indexes

10:00 * compound indexes * ESR (equity, sort, range) * only the ones needed +* too many indexes actually slow things down * n + 1 * read from secondaries * do not use regex -* too many indexes actually slow things down

Find strategies

17:46 @@ -104,17 +127,13 @@ https://www.vazco.eu/blog/how-to-optimize-and-scale-meteor-projects * query caching * use aggregation & save them -

Methods over publications

-also consider GraphQL or REST -8:00 -

Scaling

Vertical and horizontal scaling

There are mainly two different ways of scaling: the vertical and horizontal one. -* **Vertical scaling** boils down to adding more resources (CPU/RAM/disk) to your server, while horizontal scaling refers to adding more machines or containers to your pool of resources. -* **Horizontal scaling** for Meteor projects typically includes running multiple instances of your app on a single server with multiple cores, or running multiple instances on multiple servers. +* **Vertical scaling** boils down to adding more resources (CPU/RAM/disk) to your containers, while horizontal scaling refers to adding more machines or containers to your pool of resources. +* **Horizontal scaling** for Meteor projects typically includes running multiple instances of your app on a single container with multiple cores, or running multiple instances on multiple containers.

Container autoscaling

From 5af5114bd86e1c40f8b60ce7b4b2aaa2b941fc4f Mon Sep 17 00:00:00 2001 From: Jan Dvorak Date: Sat, 3 Jun 2023 15:37:49 +0200 Subject: [PATCH 004/102] Move appcache to the deprecated folder --- packages/{ => deprecated}/appcache/.gitignore | 0 packages/{ => deprecated}/appcache/CHANGELOG.md | 0 packages/{ => deprecated}/appcache/QA.md | 0 packages/{ => deprecated}/appcache/README.md | 0 packages/{ => deprecated}/appcache/appcache-client.js | 0 packages/{ => deprecated}/appcache/appcache-server.js | 0 packages/{ => deprecated}/appcache/appcache_tests-client.js | 0 packages/{ => deprecated}/appcache/appcache_tests-server.js | 0 packages/{ => deprecated}/appcache/package.js | 0 9 files changed, 0 insertions(+), 0 deletions(-) rename packages/{ => deprecated}/appcache/.gitignore (100%) rename packages/{ => deprecated}/appcache/CHANGELOG.md (100%) rename packages/{ => deprecated}/appcache/QA.md (100%) rename packages/{ => deprecated}/appcache/README.md (100%) rename packages/{ => deprecated}/appcache/appcache-client.js (100%) rename packages/{ => deprecated}/appcache/appcache-server.js (100%) rename packages/{ => deprecated}/appcache/appcache_tests-client.js (100%) rename packages/{ => deprecated}/appcache/appcache_tests-server.js (100%) rename packages/{ => deprecated}/appcache/package.js (100%) diff --git a/packages/appcache/.gitignore b/packages/deprecated/appcache/.gitignore similarity index 100% rename from packages/appcache/.gitignore rename to packages/deprecated/appcache/.gitignore diff --git a/packages/appcache/CHANGELOG.md b/packages/deprecated/appcache/CHANGELOG.md similarity index 100% rename from packages/appcache/CHANGELOG.md rename to packages/deprecated/appcache/CHANGELOG.md diff --git a/packages/appcache/QA.md b/packages/deprecated/appcache/QA.md similarity index 100% rename from packages/appcache/QA.md rename to packages/deprecated/appcache/QA.md diff --git a/packages/appcache/README.md b/packages/deprecated/appcache/README.md similarity index 100% rename from packages/appcache/README.md rename to packages/deprecated/appcache/README.md diff --git a/packages/appcache/appcache-client.js b/packages/deprecated/appcache/appcache-client.js similarity index 100% rename from packages/appcache/appcache-client.js rename to packages/deprecated/appcache/appcache-client.js diff --git a/packages/appcache/appcache-server.js b/packages/deprecated/appcache/appcache-server.js similarity index 100% rename from packages/appcache/appcache-server.js rename to packages/deprecated/appcache/appcache-server.js diff --git a/packages/appcache/appcache_tests-client.js b/packages/deprecated/appcache/appcache_tests-client.js similarity index 100% rename from packages/appcache/appcache_tests-client.js rename to packages/deprecated/appcache/appcache_tests-client.js diff --git a/packages/appcache/appcache_tests-server.js b/packages/deprecated/appcache/appcache_tests-server.js similarity index 100% rename from packages/appcache/appcache_tests-server.js rename to packages/deprecated/appcache/appcache_tests-server.js diff --git a/packages/appcache/package.js b/packages/deprecated/appcache/package.js similarity index 100% rename from packages/appcache/package.js rename to packages/deprecated/appcache/package.js From c4c63f7cdc094b210582a6820d967c10ddc6f39b Mon Sep 17 00:00:00 2001 From: Bruce Johnson Date: Mon, 5 Jun 2023 16:54:50 -0700 Subject: [PATCH 005/102] Fix 12391 --- packages/accounts-base/accounts_client.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/accounts-base/accounts_client.js b/packages/accounts-base/accounts_client.js index 842e927ad9..c09dfadf46 100644 --- a/packages/accounts-base/accounts_client.js +++ b/packages/accounts-base/accounts_client.js @@ -226,13 +226,14 @@ export class AccountsClient extends AccountsCommon { const loginCallbacks = ({ error, loginDetails }) => { if (!called) { called = true; - this._loginCallbacksCalled = true; if (!error) { this._onLoginHook.forEach(callback => { callback(loginDetails); return true; }); + this._loginCallbacksCalled = true; } else { + this._loginCallbacksCalled = false; this._onLoginFailureHook.forEach(callback => { callback({ error }); return true; From 064b5a04961f628ae4779c3426bf4bf1fb45bad4 Mon Sep 17 00:00:00 2001 From: zodern Date: Tue, 13 Jun 2023 11:32:38 -0500 Subject: [PATCH 006/102] Update source-map-support --- scripts/dev-bundle-server-package.js | 2 +- scripts/dev-bundle-tool-package.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/dev-bundle-server-package.js b/scripts/dev-bundle-server-package.js index 6218244bad..d8682fb64b 100644 --- a/scripts/dev-bundle-server-package.js +++ b/scripts/dev-bundle-server-package.js @@ -17,7 +17,7 @@ var packageJson = { "@babel/parser": "7.15.3", "@types/underscore": "1.11.2", underscore: "1.13.1", - "source-map-support": "https://github.com/meteor/node-source-map-support/tarball/1912478769d76e5df4c365e147f25896aee6375e", + "source-map-support": "https://github.com/meteor/node-source-map-support/tarball/81bce1f99625e62af73338f63afcf2b44c6cfa5e", "@types/semver": "5.4.0", semver: "5.4.1" }, diff --git a/scripts/dev-bundle-tool-package.js b/scripts/dev-bundle-tool-package.js index 4b8999ed25..2fea8871c9 100644 --- a/scripts/dev-bundle-tool-package.js +++ b/scripts/dev-bundle-tool-package.js @@ -28,7 +28,7 @@ var packageJson = { "babel-runtime": "7.0.0-beta.3", "@types/underscore": "1.11.2", underscore: "1.13.1", - "source-map-support": "https://github.com/meteor/node-source-map-support/tarball/1912478769d76e5df4c365e147f25896aee6375e", + "source-map-support": "https://github.com/meteor/node-source-map-support/tarball/81bce1f99625e62af73338f63afcf2b44c6cfa5e", "@types/semver": "5.4.0", semver: "5.4.1", request: "2.88.2", From cfbc98d63ae02928b28e4b73b6b1e85e29d63093 Mon Sep 17 00:00:00 2001 From: Gabriel Grubba <70247653+Grubba27@users.noreply.github.com> Date: Thu, 22 Jun 2023 15:08:36 -0300 Subject: [PATCH 007/102] fix: #12403 --- tools/static-assets/skel-vue/imports/ui/router.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tools/static-assets/skel-vue/imports/ui/router.js b/tools/static-assets/skel-vue/imports/ui/router.js index 7768ef4894..b271e02d29 100644 --- a/tools/static-assets/skel-vue/imports/ui/router.js +++ b/tools/static-assets/skel-vue/imports/ui/router.js @@ -1,5 +1,6 @@ import { createRouter, createWebHistory } from 'vue-router' import Home from './Home.vue' +import About from './About.vue' export const router = createRouter({ history: createWebHistory(), @@ -12,7 +13,7 @@ export const router = createRouter({ { path: '/about', name: 'about', - component: () => import('./About.vue'), + component: About, }, ], }) From 79048b5e6266338094f3ac2234b0d70722a9b543 Mon Sep 17 00:00:00 2001 From: Dan Rosart Date: Sun, 2 Jul 2023 15:49:52 -0700 Subject: [PATCH 008/102] Fix: correct spelling of EACCES in rename On windows and WSL, renaming a file can fail because of EPERM or EACCES, so there's a special version of the rename function that retries those errors up to a time limit, then copies the file and deletes the old one instead. However, the decision to retry is based on the correct name of the code (EACCES), and the decision to copy and delete is based on a misspelling (EACCES_S_). This fixes the typo. --- tools/fs/files.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/fs/files.ts b/tools/fs/files.ts index 0229231c23..004edb0f3b 100644 --- a/tools/fs/files.ts +++ b/tools/fs/files.ts @@ -1619,7 +1619,7 @@ export const rename = isWindowsLikeFilesystem() ? function (from: string, to: st attempt(); }).catch((error: any) => { if (error.code === 'EPERM' || - error.code === 'EACCESS') { + error.code === 'EACCES') { cp_r(from, to, { preserveSymlinks: true }); rm_recursive(from); } else { From a4eb86605adb079e5404eef31fe7bf89373379ac Mon Sep 17 00:00:00 2001 From: vitor Date: Wed, 19 Jul 2023 19:53:26 -0300 Subject: [PATCH 009/102] fix(skell): update old react tutorial link --- tools/static-assets/skel-apollo/server/main.js | 2 +- tools/static-assets/skel-chakra-ui/server/main.js | 2 +- .../static-assets/skel-full/imports/startup/server/fixtures.js | 2 +- tools/static-assets/skel-react/server/main.js | 2 +- tools/static-assets/skel-tailwind/server/main.js | 2 +- tools/static-assets/skel-typescript/server/main.ts | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/tools/static-assets/skel-apollo/server/main.js b/tools/static-assets/skel-apollo/server/main.js index 9f9a9b4b7a..1e5812aa4c 100644 --- a/tools/static-assets/skel-apollo/server/main.js +++ b/tools/static-assets/skel-apollo/server/main.js @@ -17,7 +17,7 @@ Meteor.startup(async () => { if (await LinksCollection.find().countAsync() === 0) { await insertLink({ title: 'Do the Tutorial', - url: 'https://www.meteor.com/tutorials/react/creating-an-app', + url: 'https://react-tutorial.meteor.com/simple-todos/01-creating-app.html', }); await insertLink({ diff --git a/tools/static-assets/skel-chakra-ui/server/main.js b/tools/static-assets/skel-chakra-ui/server/main.js index 0198535e0a..49452ad352 100644 --- a/tools/static-assets/skel-chakra-ui/server/main.js +++ b/tools/static-assets/skel-chakra-ui/server/main.js @@ -10,7 +10,7 @@ Meteor.startup(async () => { if (await LinksCollection.find().countAsync() === 0) { await insertLink({ title: 'Do the Tutorial', - url: 'https://www.meteor.com/tutorials/react/creating-an-app', + url: 'https://react-tutorial.meteor.com/simple-todos/01-creating-app.html', }); await insertLink({ diff --git a/tools/static-assets/skel-full/imports/startup/server/fixtures.js b/tools/static-assets/skel-full/imports/startup/server/fixtures.js index f3473aa4f8..ce32eeac56 100644 --- a/tools/static-assets/skel-full/imports/startup/server/fixtures.js +++ b/tools/static-assets/skel-full/imports/startup/server/fixtures.js @@ -12,7 +12,7 @@ Meteor.startup(async () => { if (await Links.find().countAsync() === 0) { await insertLink({ title: 'Do the Tutorial', - url: 'https://www.meteor.com/tutorials/react/creating-an-app', + url: 'https://react-tutorial.meteor.com/simple-todos/01-creating-app.html', }); await insertLink({ diff --git a/tools/static-assets/skel-react/server/main.js b/tools/static-assets/skel-react/server/main.js index 0198535e0a..49452ad352 100644 --- a/tools/static-assets/skel-react/server/main.js +++ b/tools/static-assets/skel-react/server/main.js @@ -10,7 +10,7 @@ Meteor.startup(async () => { if (await LinksCollection.find().countAsync() === 0) { await insertLink({ title: 'Do the Tutorial', - url: 'https://www.meteor.com/tutorials/react/creating-an-app', + url: 'https://react-tutorial.meteor.com/simple-todos/01-creating-app.html', }); await insertLink({ diff --git a/tools/static-assets/skel-tailwind/server/main.js b/tools/static-assets/skel-tailwind/server/main.js index 6d8dd672ad..6edde23143 100644 --- a/tools/static-assets/skel-tailwind/server/main.js +++ b/tools/static-assets/skel-tailwind/server/main.js @@ -10,7 +10,7 @@ Meteor.startup(async () => { if (await LinksCollection.find().countAsync() === 0) { await insertLink({ title: 'Do the Tutorial', - url: 'https://www.meteor.com/tutorials/react/creating-an-app', + url: 'https://react-tutorial.meteor.com/simple-todos/01-creating-app.html', }); await insertLink({ diff --git a/tools/static-assets/skel-typescript/server/main.ts b/tools/static-assets/skel-typescript/server/main.ts index 861a50c044..5a7ca3abb0 100644 --- a/tools/static-assets/skel-typescript/server/main.ts +++ b/tools/static-assets/skel-typescript/server/main.ts @@ -10,7 +10,7 @@ Meteor.startup(async () => { if (await LinksCollection.find().countAsync() === 0) { await insertLink({ title: 'Do the Tutorial', - url: 'https://www.meteor.com/tutorials/react/creating-an-app', + url: 'https://react-tutorial.meteor.com/simple-todos/01-creating-app.html', }); await insertLink({ From ddcd8a93ed8dc468c33fbbf413ca03773c93da64 Mon Sep 17 00:00:00 2001 From: Jan Dvorak Date: Fri, 21 Jul 2023 08:53:55 +0200 Subject: [PATCH 010/102] Bump Blaze version to 2.7.1 --- packages/accounts-base/package.js | 2 +- packages/non-core/blaze | 2 +- packages/test-in-browser/package.js | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/accounts-base/package.js b/packages/accounts-base/package.js index ad337c0c85..702dd3b3e0 100644 --- a/packages/accounts-base/package.js +++ b/packages/accounts-base/package.js @@ -24,7 +24,7 @@ Package.onUse(api => { // If the 'blaze' package is loaded, we'll define some helpers like // {{currentUser}}. If not, no biggie. - api.use('blaze@2.5.0', 'client', { weak: true }); + api.use('blaze@2.7.1', 'client', { weak: true }); // Allow us to detect 'autopublish', and publish some Meteor.users fields if // it's loaded. diff --git a/packages/non-core/blaze b/packages/non-core/blaze index 225ded2701..edf3fe1e31 160000 --- a/packages/non-core/blaze +++ b/packages/non-core/blaze @@ -1 +1 @@ -Subproject commit 225ded27011815ad220cd0308289b44ad855ce1f +Subproject commit edf3fe1e31679ab75d17357712ee42a33c12ab30 diff --git a/packages/test-in-browser/package.js b/packages/test-in-browser/package.js index 2258d943ca..5f0c6b2c1e 100644 --- a/packages/test-in-browser/package.js +++ b/packages/test-in-browser/package.js @@ -19,7 +19,7 @@ Package.onUse(function (api) { api.use([ 'webapp', - 'blaze@2.6.1', + 'blaze@2.7.1', 'templating@1.3.2', 'spacebars@1.0.15', 'jquery@3.0.0', From b2acff9ac3bff12648bd3260394311f5413f814a Mon Sep 17 00:00:00 2001 From: jamauro Date: Wed, 9 Aug 2023 12:52:07 -0500 Subject: [PATCH 011/102] Bump Npm.depends packages Bump node-fetch and whatwg-fetch to the latest versions --- packages/fetch/package.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/fetch/package.js b/packages/fetch/package.js index 1d13e505d5..7dec75d689 100644 --- a/packages/fetch/package.js +++ b/packages/fetch/package.js @@ -6,8 +6,8 @@ Package.describe({ }); Npm.depends({ - "node-fetch": "2.3.0", - "whatwg-fetch": "2.0.4" + "node-fetch": "3.3.2", + "whatwg-fetch": "3.6.17" }); Package.onUse(function(api) { From bc4e0c90c161eb7821cca915b68ac1ae11115999 Mon Sep 17 00:00:00 2001 From: jamauro Date: Fri, 11 Aug 2023 09:45:41 -0500 Subject: [PATCH 012/102] Removing the version number from fetch --- tools/tests/apps/dynamic-import/.meteor/packages | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/tests/apps/dynamic-import/.meteor/packages b/tools/tests/apps/dynamic-import/.meteor/packages index 04a1d2b87d..246125f858 100644 --- a/tools/tests/apps/dynamic-import/.meteor/packages +++ b/tools/tests/apps/dynamic-import/.meteor/packages @@ -24,5 +24,5 @@ lazy-test-package helper-package user:colon-name underscore@1.0.11 -fetch@0.1.1 +fetch jquery From 2f2dd33b34c10815e235de27bebff00a911c7b0a Mon Sep 17 00:00:00 2001 From: jamauro Date: Fri, 11 Aug 2023 10:11:41 -0500 Subject: [PATCH 013/102] Log fetch in test to debug --- tools/tests/apps/dynamic-import/tests.js | 1 + 1 file changed, 1 insertion(+) diff --git a/tools/tests/apps/dynamic-import/tests.js b/tools/tests/apps/dynamic-import/tests.js index 3dd68d24ee..0b53941616 100644 --- a/tools/tests/apps/dynamic-import/tests.js +++ b/tools/tests/apps/dynamic-import/tests.js @@ -15,6 +15,7 @@ describe("dynamic import(...)", function () { maybeClearDynamicImportCache(); it("ignores bad __meteor__/dynamic-import/fetch requests (#10147)", function () { + console.log('FETCH', fetch); return fetch(Meteor.absoluteUrl("/__meteor__/dynamic-import/fetch"), { // POST request with empty body. method: "POST" From 9ce80faec7168f72be387de1ea40e16588877d1f Mon Sep 17 00:00:00 2001 From: jamauro Date: Fri, 11 Aug 2023 10:31:28 -0500 Subject: [PATCH 014/102] Import fetch From https://github.com/node-fetch/node-fetch#loading-and-configuring-the-module: > node-fetch from v3 is an ESM-only module - you are not able to import it with require() --- packages/fetch/server.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/fetch/server.js b/packages/fetch/server.js index 3574902554..cde2095004 100644 --- a/packages/fetch/server.js +++ b/packages/fetch/server.js @@ -1,4 +1,4 @@ -const fetch = require("node-fetch"); +import fetch from 'node-fetch'; exports.fetch = fetch; exports.Headers = fetch.Headers; From fc3caaabda1bc57c82861b0a18402c5945e7a74e Mon Sep 17 00:00:00 2001 From: jamauro Date: Fri, 11 Aug 2023 11:04:12 -0500 Subject: [PATCH 015/102] Use ecmascript to enable import --- packages/fetch/package.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/fetch/package.js b/packages/fetch/package.js index 7dec75d689..cca84dbf17 100644 --- a/packages/fetch/package.js +++ b/packages/fetch/package.js @@ -1,6 +1,6 @@ Package.describe({ name: "fetch", - version: '0.1.3', + version: '0.1.4', summary: "Isomorphic modern/legacy/Node polyfill for WHATWG fetch()", documentation: "README.md" }); @@ -11,6 +11,7 @@ Npm.depends({ }); Package.onUse(function(api) { + api.use("ecmascript"); api.use("modules"); api.use("modern-browsers"); api.use("promise"); From 37ffd482a5c59308f0dddea2a9a1afd67bc2c3ff Mon Sep 17 00:00:00 2001 From: jamauro Date: Fri, 11 Aug 2023 11:13:12 -0500 Subject: [PATCH 016/102] Rollback using ecmascript due to conflict --- packages/fetch/package.js | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/fetch/package.js b/packages/fetch/package.js index cca84dbf17..3eb876b504 100644 --- a/packages/fetch/package.js +++ b/packages/fetch/package.js @@ -11,7 +11,6 @@ Npm.depends({ }); Package.onUse(function(api) { - api.use("ecmascript"); api.use("modules"); api.use("modern-browsers"); api.use("promise"); From 30b97b79de39f3d6be59ea937afb19e394ed041c Mon Sep 17 00:00:00 2001 From: jamauro Date: Fri, 11 Aug 2023 11:27:00 -0500 Subject: [PATCH 017/102] Load with dynamic import for CommonJS --- packages/fetch/server.js | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/packages/fetch/server.js b/packages/fetch/server.js index cde2095004..4eb75ecdcb 100644 --- a/packages/fetch/server.js +++ b/packages/fetch/server.js @@ -1,9 +1,12 @@ -import fetch from 'node-fetch'; +(async() => { + // import fetch from 'node-fetch' would not work due to issues with isopacket combined + const { default: fetch, Headers, Request, Response } = await import("node-fetch"); -exports.fetch = fetch; -exports.Headers = fetch.Headers; -exports.Request = fetch.Request; -exports.Response = fetch.Response; + exports.fetch = fetch; + exports.Headers = fetch.Headers; + exports.Request = fetch.Request; + exports.Response = fetch.Response; +})(); const { setMinimumBrowserVersions } = require("meteor/modern-browsers"); From 1fb6cf232c4f8bcac7830f99eb5ee125e6e1ad5a Mon Sep 17 00:00:00 2001 From: jamauro Date: Fri, 11 Aug 2023 11:45:25 -0500 Subject: [PATCH 018/102] Try without using an arrow function --- packages/fetch/server.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/fetch/server.js b/packages/fetch/server.js index 4eb75ecdcb..dc6a5617fe 100644 --- a/packages/fetch/server.js +++ b/packages/fetch/server.js @@ -1,4 +1,4 @@ -(async() => { +(async function() { // import fetch from 'node-fetch' would not work due to issues with isopacket combined const { default: fetch, Headers, Request, Response } = await import("node-fetch"); From 0f66d30ac20a3b44cf5ab251c002ff16d0d7d929 Mon Sep 17 00:00:00 2001 From: jamauro Date: Fri, 11 Aug 2023 12:37:26 -0500 Subject: [PATCH 019/102] Try with a different CommonJS syntax --- packages/fetch/server.js | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/packages/fetch/server.js b/packages/fetch/server.js index dc6a5617fe..c6c446fa11 100644 --- a/packages/fetch/server.js +++ b/packages/fetch/server.js @@ -1,12 +1,10 @@ -(async function() { - // import fetch from 'node-fetch' would not work due to issues with isopacket combined - const { default: fetch, Headers, Request, Response } = await import("node-fetch"); - - exports.fetch = fetch; - exports.Headers = fetch.Headers; - exports.Request = fetch.Request; - exports.Response = fetch.Response; -})(); +// import fetch from 'node-fetch' would not work due to issues with isopacket combined +import('node-fetch').then(function (result) { + exports.fetch = result.fetch; + exports.Headers = result.Headers; + exports.Request = result.Request; + exports.Response = result.Response; +}); const { setMinimumBrowserVersions } = require("meteor/modern-browsers"); From bd29b67452e7bd335d1db86011bbf2dc374df485 Mon Sep 17 00:00:00 2001 From: jamauro Date: Fri, 11 Aug 2023 12:48:27 -0500 Subject: [PATCH 020/102] Rename server.js to server.mjs --- packages/fetch/{server.js => server.mjs} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename packages/fetch/{server.js => server.mjs} (100%) diff --git a/packages/fetch/server.js b/packages/fetch/server.mjs similarity index 100% rename from packages/fetch/server.js rename to packages/fetch/server.mjs From d54966615200285edd69a90ed4373ad1b64c5973 Mon Sep 17 00:00:00 2001 From: jamauro Date: Fri, 11 Aug 2023 12:49:53 -0500 Subject: [PATCH 021/102] Update package.js to use server.mjs --- packages/fetch/package.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/fetch/package.js b/packages/fetch/package.js index 3eb876b504..39d9f2a847 100644 --- a/packages/fetch/package.js +++ b/packages/fetch/package.js @@ -17,7 +17,7 @@ Package.onUse(function(api) { api.mainModule("modern.js", "web.browser"); api.mainModule("legacy.js", "legacy"); - api.mainModule("server.js", "server"); + api.mainModule("server.mjs", "server"); api.addAssets("fetch.d.ts", "server"); // The other exports (Headers, Request, Response) can be imported From 0a2989cef8c93653a8cb120163a3f5feaf6b4a12 Mon Sep 17 00:00:00 2001 From: jamauro Date: Fri, 11 Aug 2023 13:10:41 -0500 Subject: [PATCH 022/102] Use require instead --- packages/fetch/{server.mjs => server.js} | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) rename packages/fetch/{server.mjs => server.js} (57%) diff --git a/packages/fetch/server.mjs b/packages/fetch/server.js similarity index 57% rename from packages/fetch/server.mjs rename to packages/fetch/server.js index c6c446fa11..69cab03b4b 100644 --- a/packages/fetch/server.mjs +++ b/packages/fetch/server.js @@ -1,10 +1,9 @@ -// import fetch from 'node-fetch' would not work due to issues with isopacket combined -import('node-fetch').then(function (result) { - exports.fetch = result.fetch; - exports.Headers = result.Headers; - exports.Request = result.Request; - exports.Response = result.Response; -}); +const fetch = require("node-fetch"); + +exports.fetch = fetch.default; +exports.Headers = fetch.Headers; +exports.Request = fetch.Request; +exports.Response = fetch.Response; const { setMinimumBrowserVersions } = require("meteor/modern-browsers"); From 4258f7c161b2432ad74aafbd65741a02b12f3c59 Mon Sep 17 00:00:00 2001 From: jamauro Date: Fri, 11 Aug 2023 13:12:44 -0500 Subject: [PATCH 023/102] Use node-fetch@2 --- packages/fetch/package.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/fetch/package.js b/packages/fetch/package.js index 39d9f2a847..ec4bb5dc09 100644 --- a/packages/fetch/package.js +++ b/packages/fetch/package.js @@ -6,7 +6,7 @@ Package.describe({ }); Npm.depends({ - "node-fetch": "3.3.2", + "node-fetch": "2.6.12", "whatwg-fetch": "3.6.17" }); @@ -17,7 +17,7 @@ Package.onUse(function(api) { api.mainModule("modern.js", "web.browser"); api.mainModule("legacy.js", "legacy"); - api.mainModule("server.mjs", "server"); + api.mainModule("server.js", "server"); api.addAssets("fetch.d.ts", "server"); // The other exports (Headers, Request, Response) can be imported From 0a497fef5f435fde7d8e77e84601b7a6b2cbd75a Mon Sep 17 00:00:00 2001 From: jamauro Date: Fri, 11 Aug 2023 13:48:01 -0500 Subject: [PATCH 024/102] Remove console.log --- tools/tests/apps/dynamic-import/tests.js | 1 - 1 file changed, 1 deletion(-) diff --git a/tools/tests/apps/dynamic-import/tests.js b/tools/tests/apps/dynamic-import/tests.js index 0b53941616..3dd68d24ee 100644 --- a/tools/tests/apps/dynamic-import/tests.js +++ b/tools/tests/apps/dynamic-import/tests.js @@ -15,7 +15,6 @@ describe("dynamic import(...)", function () { maybeClearDynamicImportCache(); it("ignores bad __meteor__/dynamic-import/fetch requests (#10147)", function () { - console.log('FETCH', fetch); return fetch(Meteor.absoluteUrl("/__meteor__/dynamic-import/fetch"), { // POST request with empty body. method: "POST" From 0552e2956c5bed76e7d81c735bc8520d43c3bb2c Mon Sep 17 00:00:00 2001 From: Andrei Lisnic Date: Thu, 17 Aug 2023 17:24:19 +0300 Subject: [PATCH 025/102] Add custom publication strategy --- packages/ddp-server/livedata_server.js | 40 +++++++++++++++++++++++++- 1 file changed, 39 insertions(+), 1 deletion(-) diff --git a/packages/ddp-server/livedata_server.js b/packages/ddp-server/livedata_server.js index 3b4853c39e..223306c789 100644 --- a/packages/ddp-server/livedata_server.js +++ b/packages/ddp-server/livedata_server.js @@ -11,6 +11,7 @@ const publicationStrategies = { // When using this strategy, the server maintains a copy of all data a connection is subscribed to. // This allows us to only send deltas over multiple publications. SERVER_MERGE: { + useDummyDocumentView: false, useCollectionView: true, doAccountingForCollection: true, }, @@ -19,6 +20,7 @@ const publicationStrategies = { // to it will not trigger removed messages when a subscription is stopped. // This should only be chosen for special use cases like send-and-forget queues. NO_MERGE_NO_HISTORY: { + useDummyDocumentView: false, useCollectionView: false, doAccountingForCollection: false, }, @@ -26,8 +28,19 @@ const publicationStrategies = { // sent to the client so it can remove them when a subscription is stopped. // This strategy can be used when a collection is only used in a single publication. NO_MERGE: { + useDummyDocumentView: false, useCollectionView: false, doAccountingForCollection: true, + }, + // NO_MERGE_MULTI is similar to NO_MERGE, but it does track whether a document + // is used by multiple publications, allowing to enable this strategy even + // when a collection is used by multiple publications. This has some memory + // overhead, but it still does not do diffing so it's faster and slimmer than + // SERVER_MERGE. + NO_MERGE_MULTI: { + useDummyDocumentView: true, + useCollectionView: true, + doAccountingForCollection: true } }; @@ -41,6 +54,26 @@ DDPServer.publicationStrategies = publicationStrategies; // Session and Subscription are file scope. For now, until we freeze // the interface, Server is package scope (in the future it should be // exported). +var DummyDocumentView = function () { + var self = this; + self.existsIn = new Set(); // set of subscriptionHandle + self.dataByKey = new Map(); // key-> [ {subscriptionHandle, value} by precedence] +}; + +Object.assign(DummyDocumentView.prototype, { + getFields: function () { + return {} + }, + + clearField: function (subscriptionHandle, key, changeCollector) { + changeCollector[key] = undefined + }, + + changeField: function (subscriptionHandle, key, value, + changeCollector, isAdd) { + changeCollector[key] = value + } +}); // Represents a single document in a SessionCollectionView var SessionDocumentView = function () { @@ -196,7 +229,12 @@ Object.assign(SessionCollectionView.prototype, { var added = false; if (!docView) { added = true; - docView = new SessionDocumentView(); + if (Meteor.server.getPublicationStrategy(this.collectionName).useDummyDocumentView) { + docView = new DummyDocumentView(); + } else { + docView = new SessionDocumentView(); + } + self.documents.set(id, docView); } docView.existsIn.add(subscriptionHandle); From 2a12ee1da6e4401f52925332bd40084ab0bd3ae5 Mon Sep 17 00:00:00 2001 From: Andrei Lisnic Date: Fri, 18 Aug 2023 14:01:04 +0300 Subject: [PATCH 026/102] Update docs --- docs/source/api/pubsub.md | 7 ++++++- packages/ddp-server/livedata_server.js | 8 +++----- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/docs/source/api/pubsub.md b/docs/source/api/pubsub.md index 76f1343952..6de5c89879 100644 --- a/docs/source/api/pubsub.md +++ b/docs/source/api/pubsub.md @@ -291,12 +291,17 @@ Specifically: * When we receive a change message for a document that is not in the client's collection, it will be added. * When we receive a removed message for a document that is not in the client's collection, nothing will happen. +#### NO_MERGE_MULTI +`NO_MERGE_MULTI` is similar to `NO_MERGE`, but it does track whether a document is used by multiple publications. +This has some memory overhead, but it still does not do diffing so it's faster and slimmer than +`SERVER_MERGE`. + You can import the publication strategies from `DDPServer`. ```js import { DDPServer } from 'meteor/ddp-server' -const { SERVER_MERGE, NO_MERGE_NO_HISTORY, NO_MERGE } = DDPServer.publicationStrategies +const { SERVER_MERGE, NO_MERGE_NO_HISTORY, NO_MERGE, NO_MERGE_MULTI } = DDPServer.publicationStrategies ``` You can use the following methods to set or get the publication strategy for publications: diff --git a/packages/ddp-server/livedata_server.js b/packages/ddp-server/livedata_server.js index 223306c789..334e957cad 100644 --- a/packages/ddp-server/livedata_server.js +++ b/packages/ddp-server/livedata_server.js @@ -32,11 +32,9 @@ const publicationStrategies = { useCollectionView: false, doAccountingForCollection: true, }, - // NO_MERGE_MULTI is similar to NO_MERGE, but it does track whether a document - // is used by multiple publications, allowing to enable this strategy even - // when a collection is used by multiple publications. This has some memory - // overhead, but it still does not do diffing so it's faster and slimmer than - // SERVER_MERGE. + // NO_MERGE_MULTI is similar to `NO_MERGE`, but it does track whether a document is + // used by multiple publications. This has some memory overhead, but it still does not do + // diffing so it's faster and slimmer than SERVER_MERGE. NO_MERGE_MULTI: { useDummyDocumentView: true, useCollectionView: true, From f95daec5aafef523123707f29562fa9016d15fc8 Mon Sep 17 00:00:00 2001 From: Jan Dvorak Date: Wed, 23 Aug 2023 12:34:47 +0200 Subject: [PATCH 027/102] Bump Facebook Graph version to 17 And add JSDoc comment OAuth.launchLogin to and fix a typo --- packages/facebook-oauth/CHANGELOG.md | 10 +++++++- packages/facebook-oauth/facebook_client.js | 2 +- packages/facebook-oauth/facebook_server.js | 2 +- packages/facebook-oauth/package.js | 2 +- packages/oauth/oauth_client.js | 27 +++++++++++----------- packages/oauth/oauth_server.js | 2 +- 6 files changed, 27 insertions(+), 18 deletions(-) diff --git a/packages/facebook-oauth/CHANGELOG.md b/packages/facebook-oauth/CHANGELOG.md index b492fe1f09..b60213a892 100644 --- a/packages/facebook-oauth/CHANGELOG.md +++ b/packages/facebook-oauth/CHANGELOG.md @@ -1,5 +1,13 @@ # Changelog -## 1.12.0 - UNRELEASED +## 1.11.3 - 2023-08-16 +### Changes +- Updated default version of Facebook GraphAPI to v17 + +## 1.11.2 - 2022-12-07 +### Changes +- Updated internal code to use new Meteor async format from Meteor 2.9 + +## 1.11.1 - 2022-11-14 ### Changes - Updated default version of Facebook GraphAPI to v15 diff --git a/packages/facebook-oauth/facebook_client.js b/packages/facebook-oauth/facebook_client.js index 582d63bf04..eb05c565b6 100644 --- a/packages/facebook-oauth/facebook_client.js +++ b/packages/facebook-oauth/facebook_client.js @@ -30,7 +30,7 @@ Facebook.requestCredential = (options, credentialRequestCompleteCallback) => { const loginStyle = OAuth._loginStyle('facebook', config, options); - const API_VERSION = Meteor.settings?.public?.packages?.['facebook-oauth']?.apiVersion || '15.0'; + const API_VERSION = Meteor.settings?.public?.packages?.['facebook-oauth']?.apiVersion || '17.0'; let loginUrl = `https://www.facebook.com/v${API_VERSION}/dialog/oauth?client_id=${config.appId}` + diff --git a/packages/facebook-oauth/facebook_server.js b/packages/facebook-oauth/facebook_server.js index d9c824f27f..9952e58b2a 100644 --- a/packages/facebook-oauth/facebook_server.js +++ b/packages/facebook-oauth/facebook_server.js @@ -2,7 +2,7 @@ Facebook = {}; import crypto from 'crypto'; import { Accounts } from 'meteor/accounts-base'; -const API_VERSION = Meteor.settings?.public?.packages?.['facebook-oauth']?.apiVersion || '13.0'; +const API_VERSION = Meteor.settings?.public?.packages?.['facebook-oauth']?.apiVersion || '17.0'; Facebook.handleAuthFromAccessToken = async (accessToken, expiresAt) => { // include basic fields from facebook diff --git a/packages/facebook-oauth/package.js b/packages/facebook-oauth/package.js index 98b393d2a9..5845188323 100644 --- a/packages/facebook-oauth/package.js +++ b/packages/facebook-oauth/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "Facebook OAuth flow", - version: '1.11.2' + version: '1.11.3' }); Package.onUse(api => { diff --git a/packages/oauth/oauth_client.js b/packages/oauth/oauth_client.js index 0ff507e761..e406f02d8c 100644 --- a/packages/oauth/oauth_client.js +++ b/packages/oauth/oauth_client.js @@ -97,19 +97,20 @@ OAuth.getDataAfterRedirect = () => { }; }; -// Launch an OAuth login flow. For the popup login style, show the -// popup. For the redirect login style, save the credential token for -// this login attempt in the reload migration data, and redirect to -// the service for the login. -// -// options: -// loginService: "facebook", "google", etc. -// loginStyle: "popup" or "redirect" -// loginUrl: The URL at the login service provider to start the OAuth flow. -// credentialRequestCompleteCallback: for the popup flow, call when the popup -// is closed and we have the credential from the login service. -// credentialToken: our identifier for this login flow. -// +/** + * Launch an OAuth login flow. For the popup login style, show the + * popup. For the redirect login style, save the credential token for + * this login attempt in the reload migration data, and redirect to + * the service for the login. + * + * @param {Object} options + * @param {string} options.loginService "facebook", "google", etc. + * @param {string} options.loginStyle "popup" or "redirect" + * @param {string} options.loginUrl The URL at the login service provider to start the OAuth flow. + * credentialRequestCompleteCallback: for the popup flow, call when the popup + * is closed and we have the credential from the login service. + * @param {string} options.credentialToken our identifier for this login flow. + **/ OAuth.launchLogin = options => { if (! options.loginService) throw new Error('loginService required'); diff --git a/packages/oauth/oauth_server.js b/packages/oauth/oauth_server.js index 1b591a455b..f1098a30ca 100644 --- a/packages/oauth/oauth_server.js +++ b/packages/oauth/oauth_server.js @@ -358,7 +358,7 @@ const renderEndOfLoginResponse = options => { // to the OAuth server and authorized this app, we communicate the // credentialToken and credentialSecret to the main window. The main // window must provide both these values to the DDP `login` method to -// authenticate its DDP connection. After communicating these vaues to +// authenticate its DDP connection. After communicating these values to // the main window, we close the popup. // // We export this function so that developers can override this From e940f12a57da4db2528f8f167cffc3083057a98c Mon Sep 17 00:00:00 2001 From: Jan Dvorak Date: Wed, 23 Aug 2023 12:37:04 +0200 Subject: [PATCH 028/102] Fix release date as it is unknown yet --- packages/facebook-oauth/CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/facebook-oauth/CHANGELOG.md b/packages/facebook-oauth/CHANGELOG.md index b60213a892..1716adfc0d 100644 --- a/packages/facebook-oauth/CHANGELOG.md +++ b/packages/facebook-oauth/CHANGELOG.md @@ -1,5 +1,5 @@ # Changelog -## 1.11.3 - 2023-08-16 +## 1.11.3 - 2023-08-XX ### Changes - Updated default version of Facebook GraphAPI to v17 From 0e017996479a6c917e7e589c447194539e311523 Mon Sep 17 00:00:00 2001 From: Jan Dvorak Date: Wed, 23 Aug 2023 12:42:42 +0200 Subject: [PATCH 029/102] Add changelog --- docs/generators/changelog/versions/2.14.md | 31 ++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 docs/generators/changelog/versions/2.14.md diff --git a/docs/generators/changelog/versions/2.14.md b/docs/generators/changelog/versions/2.14.md new file mode 100644 index 0000000000..05d67e5b21 --- /dev/null +++ b/docs/generators/changelog/versions/2.14.md @@ -0,0 +1,31 @@ +## v2.14.0, 2023-XX-XX + +### Highlights + +* + +#### Breaking Changes + +N/A + +#### Internal API changes + +N/A + +#### Migration Steps + +TODO + +#### Meteor Version Release + +* `facebook-oauth@1.11.3`: + - Updated default version of Facebook GraphAPI to v17 + +#### Special thanks to + +- [@StorytellerCZ](https://github.com/sponsors/StorytellerCZ). + + +For making this great framework even better! + + From 16cf9f985dd0a54cfb23cf59438e64745c013267 Mon Sep 17 00:00:00 2001 From: Salman Hasni Date: Tue, 29 Aug 2023 18:40:46 -0400 Subject: [PATCH 030/102] fixes #12761 --- .../src/android/WebAppLocalServer.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/npm-packages/cordova-plugin-meteor-webapp/src/android/WebAppLocalServer.java b/npm-packages/cordova-plugin-meteor-webapp/src/android/WebAppLocalServer.java index 2d8abac9ff..a7c31c93b8 100644 --- a/npm-packages/cordova-plugin-meteor-webapp/src/android/WebAppLocalServer.java +++ b/npm-packages/cordova-plugin-meteor-webapp/src/android/WebAppLocalServer.java @@ -270,7 +270,7 @@ public class WebAppLocalServer extends CordovaPlugin implements AssetBundleManag callbackContext.error("checkForUpdates requires a rootURL to be configured"); return; } - HttpUrl baseUrl = rootUrl.resolve("__cordova/"); + HttpUrl baseUrl = rootUrl.resolve("/__cordova/"); assetBundleManager.checkForUpdates(baseUrl); callbackContext.success(); } From 1c22ab0842f30f30b170fe489a1ea8e647ee5fcf Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 11 Sep 2023 10:45:02 +0000 Subject: [PATCH 031/102] build(deps): bump actions/checkout from 3 to 4 Bumps [actions/checkout](https://github.com/actions/checkout) from 3 to 4. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/v3...v4) --- updated-dependencies: - dependency-name: actions/checkout dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/check-code-style.yml | 2 +- .github/workflows/check-syntax.yml | 2 +- .github/workflows/docs.yml | 2 +- .github/workflows/guide.yml | 2 +- .github/workflows/npm-eslint-plugin-meteor.yml | 2 +- .github/workflows/npm-meteor-babel.yml | 2 +- .github/workflows/npm-meteor-promise.yml | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/check-code-style.yml b/.github/workflows/check-code-style.yml index 21f854bfec..0a136db59a 100644 --- a/.github/workflows/check-code-style.yml +++ b/.github/workflows/check-code-style.yml @@ -10,7 +10,7 @@ jobs: check-code-style: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - uses: actions/setup-node@v3 with: node-version: 14.x diff --git a/.github/workflows/check-syntax.yml b/.github/workflows/check-syntax.yml index 1c55cb64fa..91051b2789 100644 --- a/.github/workflows/check-syntax.yml +++ b/.github/workflows/check-syntax.yml @@ -6,7 +6,7 @@ jobs: check-code-style: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - uses: actions/setup-node@v3 with: node-version: 18.x diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index a9624d9ad1..3c7f7d5ec9 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -10,7 +10,7 @@ jobs: run: working-directory: docs/ steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - uses: actions/setup-node@v3 with: node-version: 12.x diff --git a/.github/workflows/guide.yml b/.github/workflows/guide.yml index 124b500ce9..bbc5bbd023 100644 --- a/.github/workflows/guide.yml +++ b/.github/workflows/guide.yml @@ -10,7 +10,7 @@ jobs: run: working-directory: guide/ steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - uses: actions/setup-node@v3 with: node-version: 12.x diff --git a/.github/workflows/npm-eslint-plugin-meteor.yml b/.github/workflows/npm-eslint-plugin-meteor.yml index b1415fb405..15e48abf2c 100644 --- a/.github/workflows/npm-eslint-plugin-meteor.yml +++ b/.github/workflows/npm-eslint-plugin-meteor.yml @@ -20,7 +20,7 @@ jobs: matrix: node-version: [12.x, 14.x] steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Use Node.js ${{ matrix.node-version }} uses: actions/setup-node@v3 with: diff --git a/.github/workflows/npm-meteor-babel.yml b/.github/workflows/npm-meteor-babel.yml index 56ac244b85..6d65273cf3 100644 --- a/.github/workflows/npm-meteor-babel.yml +++ b/.github/workflows/npm-meteor-babel.yml @@ -20,7 +20,7 @@ jobs: matrix: node-version: [12.x, 14.x] steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Use Node.js ${{ matrix.node-version }} uses: actions/setup-node@v3 with: diff --git a/.github/workflows/npm-meteor-promise.yml b/.github/workflows/npm-meteor-promise.yml index 484ccd7769..4ad4f6df7c 100644 --- a/.github/workflows/npm-meteor-promise.yml +++ b/.github/workflows/npm-meteor-promise.yml @@ -20,7 +20,7 @@ jobs: matrix: node-version: [12.x, 14.x] steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Use Node.js ${{ matrix.node-version }} uses: actions/setup-node@v3 with: From 8d40629d70a1186770302158845fbefbc8812771 Mon Sep 17 00:00:00 2001 From: Gabriel Grubba <70247653+Grubba27@users.noreply.github.com> Date: Wed, 20 Sep 2023 09:59:23 -0300 Subject: [PATCH 032/102] bumped mongodb driver --- packages/npm-mongo/package.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/npm-mongo/package.js b/packages/npm-mongo/package.js index 1d0b717a15..e381d9425d 100644 --- a/packages/npm-mongo/package.js +++ b/packages/npm-mongo/package.js @@ -3,12 +3,12 @@ Package.describe({ summary: "Wrapper around the mongo npm package", - version: '4.16.0', + version: '4.17.0', documentation: null }); Npm.depends({ - mongodb: "4.16.0" + mongodb: "4.17.0" }); Package.onUse(function (api) { From 4caa89bde010116ec80279aa14573aaf6fa91000 Mon Sep 17 00:00:00 2001 From: BANSAL-NISHU Date: Mon, 25 Sep 2023 13:33:23 +0530 Subject: [PATCH 033/102] =?UTF-8?q?Fix:=20Bugs=20in=20negated=20=E2=80=9Ci?= =?UTF-8?q?n=E2=80=9D=20and=20=E2=80=9Cinstanceof=E2=80=9D=20expressions?= =?UTF-8?q?=20(#12781)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tools/cordova/builder.js | 2 +- tools/runners/run-hmr.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/cordova/builder.js b/tools/cordova/builder.js index 3c35e42dbb..eade897809 100644 --- a/tools/cordova/builder.js +++ b/tools/cordova/builder.js @@ -800,7 +800,7 @@ configuration. The key may be deprecated.`); Object.keys(splashIosKeys).concat(Object.keys(splashAndroidKeys)); Object.keys(launchScreens).forEach((key) => { - if (!key in validDevices) { + if (!(key in validDevices)) { Console.labelWarn(`${key}: unknown key in App.launchScreens \ configuration. The key may be deprecated.`); } diff --git a/tools/runners/run-hmr.js b/tools/runners/run-hmr.js index a7625dbabd..52279ecf26 100644 --- a/tools/runners/run-hmr.js +++ b/tools/runners/run-hmr.js @@ -273,7 +273,7 @@ export class HMRServer { this.changeSetsByArch[arch].push(result); this._trimChangeSets(arch); - if (!arch in this.trimmedArchUntil) { + if (!(arch in this.trimmedArchUntil)) { this.trimmedArchUntil[arch] = this.firstBuild - 1; } From 40c8f7c23ca0327d5444f9785773098d7eff5768 Mon Sep 17 00:00:00 2001 From: Brian Lukoff Date: Mon, 25 Sep 2023 13:44:51 -0500 Subject: [PATCH 034/102] Add environment variable to disable CORS in sockjs. --- packages/ddp-server/stream_server.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/packages/ddp-server/stream_server.js b/packages/ddp-server/stream_server.js index 49c0f1385d..3b06bd3471 100644 --- a/packages/ddp-server/stream_server.js +++ b/packages/ddp-server/stream_server.js @@ -50,6 +50,9 @@ StreamServer = function () { // combining CPU-heavy processing with SockJS termination (eg a proxy which // converts to Unix sockets) but for now, raise the delay. disconnect_delay: 60 * 1000, + // Allow disabling of CORS requests to address + // https://github.com/meteor/meteor/issues/8317. + disable_cors: !!process.env.DISABLE_SOCKJS_CORS // Set the USE_JSESSIONID environment variable to enable setting the // JSESSIONID cookie. This is useful for setting up proxies with // session affinity. From b144f7627955e1a2c32b95f89e4df48eec6bb702 Mon Sep 17 00:00:00 2001 From: Brian Lukoff Date: Mon, 25 Sep 2023 13:45:44 -0500 Subject: [PATCH 035/102] Fix typo. --- packages/ddp-server/stream_server.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/ddp-server/stream_server.js b/packages/ddp-server/stream_server.js index 3b06bd3471..bda0414130 100644 --- a/packages/ddp-server/stream_server.js +++ b/packages/ddp-server/stream_server.js @@ -52,7 +52,7 @@ StreamServer = function () { disconnect_delay: 60 * 1000, // Allow disabling of CORS requests to address // https://github.com/meteor/meteor/issues/8317. - disable_cors: !!process.env.DISABLE_SOCKJS_CORS + disable_cors: !!process.env.DISABLE_SOCKJS_CORS, // Set the USE_JSESSIONID environment variable to enable setting the // JSESSIONID cookie. This is useful for setting up proxies with // session affinity. From b411f0ecfad557136494f486eb1579b7db4bf37a Mon Sep 17 00:00:00 2001 From: BANSAL-NISHU Date: Mon, 25 Sep 2023 13:33:23 +0530 Subject: [PATCH 036/102] =?UTF-8?q?Fix:=20Bugs=20in=20negated=20=E2=80=9Ci?= =?UTF-8?q?n=E2=80=9D=20and=20=E2=80=9Cinstanceof=E2=80=9D=20expressions?= =?UTF-8?q?=20(#12781)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tools/cordova/builder.js | 2 +- tools/runners/run-hmr.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/cordova/builder.js b/tools/cordova/builder.js index 3c35e42dbb..eade897809 100644 --- a/tools/cordova/builder.js +++ b/tools/cordova/builder.js @@ -800,7 +800,7 @@ configuration. The key may be deprecated.`); Object.keys(splashIosKeys).concat(Object.keys(splashAndroidKeys)); Object.keys(launchScreens).forEach((key) => { - if (!key in validDevices) { + if (!(key in validDevices)) { Console.labelWarn(`${key}: unknown key in App.launchScreens \ configuration. The key may be deprecated.`); } diff --git a/tools/runners/run-hmr.js b/tools/runners/run-hmr.js index a7625dbabd..52279ecf26 100644 --- a/tools/runners/run-hmr.js +++ b/tools/runners/run-hmr.js @@ -273,7 +273,7 @@ export class HMRServer { this.changeSetsByArch[arch].push(result); this._trimChangeSets(arch); - if (!arch in this.trimmedArchUntil) { + if (!(arch in this.trimmedArchUntil)) { this.trimmedArchUntil[arch] = this.firstBuild - 1; } From 9db182c980dee5916216d547fc36cc09abb50a17 Mon Sep 17 00:00:00 2001 From: Brian Lukoff Date: Tue, 26 Sep 2023 11:20:29 -0500 Subject: [PATCH 037/102] Add documentation for environment variable. --- docs/source/environment-variables.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/docs/source/environment-variables.md b/docs/source/environment-variables.md index 807851ac47..d9555b6484 100644 --- a/docs/source/environment-variables.md +++ b/docs/source/environment-variables.md @@ -33,6 +33,11 @@ In the event that your own deployment platform does not support WebSockets, or y Set `DISABLE_SOCKJS=1` if you want to use the native WebSocket implementation instead of SockJS on the client side, for example, if you want to use a custom WebSocket implementation (e.g. [uWebSockets.js](https://github.com/uNetworking/uWebSockets.js/)) on the server side. +## DISABLE_SOCKJS_CORS +(_development, production_) + +Set `DISABLE_SOCKJS_CORS=1` if you want to prevent SockJS from setting CORS headers from being set by SockJS. Do not set this option if you will have DDP clients from other origins connecting to the DDP server. + ## HTTP_FORWARDED_COUNT (_production_) From 9ddb75ecf05325c1a7c5547c094663c8b78ac76e Mon Sep 17 00:00:00 2001 From: Rimpy Yadav <125137583+Rimpyyadav@users.noreply.github.com> Date: Wed, 27 Sep 2023 09:04:04 +0530 Subject: [PATCH 038/102] Update CONTRIBUTING.md "Corrected the spelling mistake" --- CONTRIBUTING.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 8e4f734767..cf888289b2 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -39,7 +39,7 @@ Here are descriptions of the existing project roles, along with the current cont #### Reviewer -Reviwers are members of the community that help with Pull Requests reviews. +Reviewers are members of the community that help with Pull Requests reviews. Current Reviewers: - [meteor](https://github.com/meteor/meteor) From e8986fd9f586d61370c6c2f719502d08a1c8b61e Mon Sep 17 00:00:00 2001 From: Jan Dvorak Date: Sun, 1 Oct 2023 10:10:11 +0200 Subject: [PATCH 039/102] Update semver version in react-fast-refresh --- packages/react-fast-refresh/client-runtime.js | 8 ++++---- packages/react-fast-refresh/package.js | 2 +- packages/react-fast-refresh/server.js | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/packages/react-fast-refresh/client-runtime.js b/packages/react-fast-refresh/client-runtime.js index bc70e9813b..4f8ea13089 100644 --- a/packages/react-fast-refresh/client-runtime.js +++ b/packages/react-fast-refresh/client-runtime.js @@ -32,7 +32,7 @@ function registerExportsForReactRefresh(moduleId, moduleExports) { var typeID = moduleId + ' %exports% ' + key; runtime.register(exportValue, typeID); } -}; +} // Modules that only export components become React Refresh boundaries. function isReactRefreshBoundary(moduleExports) { @@ -79,7 +79,7 @@ function isReactRefreshBoundary(moduleExports) { } return hasExports && onlyExportComponents; -}; +} runtime.injectIntoGlobalHook(window); @@ -131,11 +131,11 @@ module.exports = function setupModule (module) { window.$RefreshReg$ = function (type, _id) { var fullId = module.id + ' ' + _id; RefreshRuntime.register(type, fullId); - } + }; window.$RefreshSig$ = RefreshRuntime.createSignatureFunctionForTransform; beforeStates.push({ prevRefreshReg: prevRefreshReg, prevRefreshSig: prevRefreshSig }); -} +}; diff --git a/packages/react-fast-refresh/package.js b/packages/react-fast-refresh/package.js index c453bf070f..7cb2338079 100644 --- a/packages/react-fast-refresh/package.js +++ b/packages/react-fast-refresh/package.js @@ -8,7 +8,7 @@ Package.describe({ Npm.depends({ 'react-refresh': '0.14.0', - semver: '7.3.8', + semver: '7.5.4', }); Package.onUse(function(api) { diff --git a/packages/react-fast-refresh/server.js b/packages/react-fast-refresh/server.js index 5e68fbed6b..ead1bcec15 100644 --- a/packages/react-fast-refresh/server.js +++ b/packages/react-fast-refresh/server.js @@ -65,6 +65,6 @@ ReactFastRefresh = { return [ [babelPlugin, { skipEnvCheck: true }], enableReactRefreshBabelPlugin, - ] + ]; } }; From 24b2264212f51443f9597594239ecebf6b2c4807 Mon Sep 17 00:00:00 2001 From: Jan Dvorak Date: Sun, 1 Oct 2023 10:15:45 +0200 Subject: [PATCH 040/102] Prep changelog for 2.14 release --- docs/generators/changelog/versions/2.14.md | 34 ++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 docs/generators/changelog/versions/2.14.md diff --git a/docs/generators/changelog/versions/2.14.md b/docs/generators/changelog/versions/2.14.md new file mode 100644 index 0000000000..cc982f11c2 --- /dev/null +++ b/docs/generators/changelog/versions/2.14.md @@ -0,0 +1,34 @@ +## v2.14.0, 2023-10-XX + +### Highlights + +Hacktoberfest release! 🎉 + +* + +#### Breaking Changes + +N/A + +#### Internal API changes + +N/A + +#### Migration Steps + +TODO + +#### Meteor Version Release + + +* `react-fast-refresh@get-version`: + - Updated `semver` to version 7.5.4 + +#### Special thanks to + +- [@StorytellerCZ](https://github.com/sponsors/StorytellerCZ). + + +For making this great framework even better! + + From a438b003fd002b94eaf4cea974338aee105164b3 Mon Sep 17 00:00:00 2001 From: Jan Dvorak Date: Sun, 1 Oct 2023 10:16:19 +0200 Subject: [PATCH 041/102] Revert react-fast-refresh addition in changelog --- docs/generators/changelog/versions/2.14.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/docs/generators/changelog/versions/2.14.md b/docs/generators/changelog/versions/2.14.md index cc982f11c2..1f03170aea 100644 --- a/docs/generators/changelog/versions/2.14.md +++ b/docs/generators/changelog/versions/2.14.md @@ -21,8 +21,6 @@ TODO #### Meteor Version Release -* `react-fast-refresh@get-version`: - - Updated `semver` to version 7.5.4 #### Special thanks to From 13f54bcaddfd9c0e6e4b08a4ad371c460c578ce2 Mon Sep 17 00:00:00 2001 From: Jan Dvorak Date: Sun, 1 Oct 2023 10:16:19 +0200 Subject: [PATCH 042/102] Revert "Revert react-fast-refresh addition in changelog" This reverts commit a438b003fd002b94eaf4cea974338aee105164b3. --- docs/generators/changelog/versions/2.14.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/generators/changelog/versions/2.14.md b/docs/generators/changelog/versions/2.14.md index 1f03170aea..cc982f11c2 100644 --- a/docs/generators/changelog/versions/2.14.md +++ b/docs/generators/changelog/versions/2.14.md @@ -21,6 +21,8 @@ TODO #### Meteor Version Release +* `react-fast-refresh@get-version`: + - Updated `semver` to version 7.5.4 #### Special thanks to From e65d89561748dbf5b4120e06b479410d48b9c1fa Mon Sep 17 00:00:00 2001 From: Jan Dvorak Date: Sun, 1 Oct 2023 10:25:52 +0200 Subject: [PATCH 043/102] Fix #12401 --- docs/generators/changelog/versions/2.14.md | 3 ++- packages/accounts-passwordless/passwordless_server.js | 8 ++++++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/docs/generators/changelog/versions/2.14.md b/docs/generators/changelog/versions/2.14.md index 1f03170aea..9ed75db27f 100644 --- a/docs/generators/changelog/versions/2.14.md +++ b/docs/generators/changelog/versions/2.14.md @@ -20,7 +20,8 @@ TODO #### Meteor Version Release - +* `accounts-passwordless@get-version` + - Fix #12401, ensure that user is found with ID #### Special thanks to diff --git a/packages/accounts-passwordless/passwordless_server.js b/packages/accounts-passwordless/passwordless_server.js index 382867926a..928c5617c6 100644 --- a/packages/accounts-passwordless/passwordless_server.js +++ b/packages/accounts-passwordless/passwordless_server.js @@ -12,9 +12,13 @@ const findUserWithOptions = ({ selector }) => { if (!selector) { Accounts._handleError('A selector is necessary'); } - const { email, ...rest } = selector; + const { email, id, ...rest } = selector; return Meteor.users.findOne( - { ...rest, ...(email ? { 'emails.address': selector.email } : {}) }, + { + ...rest, + ...(id && { _id: id }), + ...(email && { 'emails.address': email }) + }, { fields: { services: 1, From b03f823c0ec182498af39933f3f805c4c8271e0f Mon Sep 17 00:00:00 2001 From: Jan Dvorak Date: Sun, 1 Oct 2023 10:27:25 +0200 Subject: [PATCH 044/102] Add vit0rr to credits --- docs/generators/changelog/versions/2.14.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/generators/changelog/versions/2.14.md b/docs/generators/changelog/versions/2.14.md index 9ed75db27f..9729457e52 100644 --- a/docs/generators/changelog/versions/2.14.md +++ b/docs/generators/changelog/versions/2.14.md @@ -26,6 +26,7 @@ TODO #### Special thanks to - [@StorytellerCZ](https://github.com/sponsors/StorytellerCZ). +- [@vit0rr](https://github.com/vit0rr) For making this great framework even better! From f711a662850eed709f147ea848ad4c22cace3172 Mon Sep 17 00:00:00 2001 From: Jan Dvorak Date: Sun, 1 Oct 2023 12:23:59 +0200 Subject: [PATCH 045/102] Finish initial guide on performance --- guide/package-lock.json | 38 +++---- guide/source/performance-improvement.md | 143 +++++++++++++++++++----- 2 files changed, 133 insertions(+), 48 deletions(-) diff --git a/guide/package-lock.json b/guide/package-lock.json index 919850c84d..187638a3da 100644 --- a/guide/package-lock.json +++ b/guide/package-lock.json @@ -1830,13 +1830,13 @@ "ansi-regex": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", "dev": true }, "ansi-styles": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", "dev": true }, "anymatch": { @@ -1905,7 +1905,7 @@ "babel-code-frame": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", - "integrity": "sha512-XqYMR2dfdGMW+hd0IUZ2PwK+fGeFkOxZJ0wY+JaQAHzt1Zx8LcvpiZD2NiGkEG8qx0CfkAOr5xt76d1e8vG90g==", + "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", "dev": true, "requires": { "chalk": "^1.1.3", @@ -1916,7 +1916,7 @@ "babel-messages": { "version": "6.23.0", "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", - "integrity": "sha512-Bl3ZiA+LjqaMtNYopA9TYE9HP1tQ+E5dLxE0XrAzcIJeK2UqF0/EaqXwBn9esd4UmTfEab+P+UYQ1GnioFIb/w==", + "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", "dev": true, "requires": { "babel-runtime": "^6.22.0" @@ -1925,7 +1925,7 @@ "babel-plugin-syntax-decorators": { "version": "6.13.0", "resolved": "https://registry.npmjs.org/babel-plugin-syntax-decorators/-/babel-plugin-syntax-decorators-6.13.0.tgz", - "integrity": "sha512-AWj19x2aDm8qFQ5O2JcD6pwJDW1YdcnO+1b81t7gxrGjz5VHiUqeYWAR4h7zueWMalRelrQDXprv2FrY1dbpbw==", + "integrity": "sha1-MSVjtNvePMgGzuPkFszurd0RrAs=", "dev": true }, "babel-plugin-transform-decorators-legacy": { @@ -1942,7 +1942,7 @@ "babel-polyfill": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-polyfill/-/babel-polyfill-6.26.0.tgz", - "integrity": "sha512-F2rZGQnAdaHWQ8YAoeRbukc7HS9QgdgeyJ0rQDd485v9opwuPvjpPFcOOT/WmkKTdgy9ESgSPXDcTNpzrGr6iQ==", + "integrity": "sha1-N5k3q8Z9eJWXCtxiHyhM2WbPIVM=", "dev": true, "requires": { "babel-runtime": "^6.26.0", @@ -1953,7 +1953,7 @@ "regenerator-runtime": { "version": "0.10.5", "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz", - "integrity": "sha512-02YopEIhAgiBHWeoTiA8aitHDt8z6w+rQqNuIftlM+ZtvSl/brTouaU7DW6GO/cHtvxJvS4Hwv2ibKdxIRi24w==", + "integrity": "sha1-M2w+/BIgrc7dosn6tntaeVWjNlg=", "dev": true } } @@ -1961,7 +1961,7 @@ "babel-runtime": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", - "integrity": "sha512-ITKNuq2wKlW1fJg9sSW52eepoYgZBggvOAHC0u/CYu/qxQ9EVzThCgR69BnSXLHjy2f7SY5zaQ4yt7H9ZVxY2g==", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", "dev": true, "requires": { "core-js": "^2.4.0", @@ -1971,7 +1971,7 @@ "babel-template": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", - "integrity": "sha512-PCOcLFW7/eazGUKIoqH97sO9A2UYMahsn/yRQ7uOk37iutwjq7ODtcTNF+iFDSHNfkctqsLRjLP7URnOx0T1fg==", + "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", "dev": true, "requires": { "babel-runtime": "^6.26.0", @@ -1984,7 +1984,7 @@ "babel-traverse": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", - "integrity": "sha512-iSxeXx7apsjCHe9c7n8VtRXGzI2Bk1rBSOJgCCjfyXb6v1aCqE1KSEpq/8SXuVN8Ka/Rh1WDTF0MDzkvTA4MIA==", + "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", "dev": true, "requires": { "babel-code-frame": "^6.26.0", @@ -2001,7 +2001,7 @@ "babel-types": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", - "integrity": "sha512-zhe3V/26rCWsEZK8kZN+HaQj5yQ1CilTObixFzKW1UWjqG7618Twz6YEsCnjfg5gBcJh02DrpCkS9h98ZqDY+g==", + "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", "dev": true, "requires": { "babel-runtime": "^6.26.0", @@ -2113,7 +2113,7 @@ "chalk": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "requires": { "ansi-styles": "^2.2.1", @@ -2248,7 +2248,7 @@ "core-decorators": { "version": "0.11.2", "resolved": "https://registry.npmjs.org/core-decorators/-/core-decorators-0.11.2.tgz", - "integrity": "sha512-47n1NWwwc+qPmOMtY9zUKCM1cYfoxLvBRxKzirFrqhE61yqK+yZP/BOA3gjaBUVb9P46J1RyJjasrtqYoWCbvA==", + "integrity": "sha1-GyQzFZQa598a8938tX3+6mPIsXE=", "dev": true }, "core-js": { @@ -2547,7 +2547,7 @@ "has-ansi": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", "dev": true, "requires": { "ansi-regex": "^2.0.0" @@ -2600,7 +2600,7 @@ "hexo-inject": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/hexo-inject/-/hexo-inject-1.0.0.tgz", - "integrity": "sha512-Ly0k7FO3G5+XNvFNE7yjSENSWy8QTnzl8cNFWYuMXRYMogbHd/Q0Ane8WCKYb5QD/A+WXC3rHb32wIGb0YAfVw==", + "integrity": "sha1-pTVXVgUdWrJ5yCtzfacrEzx+Ju0=", "dev": true, "requires": { "babel-plugin-transform-decorators-legacy": "^1.3.4", @@ -2740,7 +2740,7 @@ "js-tokens": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", - "integrity": "sha512-RjTcuD4xjtthQkaWH7dFlH85L+QaVtSoOyGdZ3g6HFhS9dFNDfLyqgm2NFe2X6cQpeFmt0452FJjFG5UameExg==", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", "dev": true }, "kind-of": { @@ -3338,7 +3338,7 @@ "strip-ansi": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { "ansi-regex": "^2.0.0" @@ -3347,13 +3347,13 @@ "supports-color": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", "dev": true }, "to-fast-properties": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", - "integrity": "sha512-lxrWP8ejsq+7E3nNjwYmUBMAgjMTZoTI+sdBOpvNyijeDLa29LUn9QaoXAHv4+Z578hbmHHJKZknzxVtvo77og==", + "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", "dev": true }, "to-object-path": { diff --git a/guide/source/performance-improvement.md b/guide/source/performance-improvement.md index ee5ffd33cf..a6c5a4d394 100644 --- a/guide/source/performance-improvement.md +++ b/guide/source/performance-improvement.md @@ -10,7 +10,7 @@ Also do note that every app is different so there are unique challenges to each, practices describe in this guide should be used as a guiding posts rather than absolutes. This guide has been heavily inspired by [Marcin Szuster's Vazco article](https://www.vazco.eu/blog/how-to-optimize-and-scale-meteor-projects), the official [Meteor Galaxy guide](https://galaxy-guide.meteor.com/), -and talk by Paulo Mogollón's talk at Impact 2022 titled ["First steps on scaling Meteor realtime data"](https://impact.meteor.com/meetings/virtual/uo2Er8YPqx2vuRcne). +and talk by Paulo Mogollón's talk at Impact 2022 titled ["First steps on scaling Meteor realtime data"](https://www.youtube.com/watch?v=aOqhExZn_5A).

Performance monitoring

@@ -68,64 +68,149 @@ For more information about all the things you can find in Galaxy APM take a look Publications allow for the most prominent aspect of Meteor, live data. At the same this is the most resource intensive part of a Meteor application. +Under the hood WebSockets are being used with additional abilities provided by DDP. +

Proper use of publications

+Since publications can get resource intensive they should be reserved for usage that requires up to date, live data or +that are changing frequently and you need the users to see that. +You will need to evaluate your app to figure out which situations these are. As a rule of thumb any data that are not +required to be live or are not changing frequently can be fetched once via other means and re-fetched as needed, +in most cases the re-fetching shouldn't be necessary. + +But even before you proceed any further there are a few improvements that you can make here. +First make sure that you only get the fields you need, limit the number of documents you send to the client to what you need +(aka always set the `limit` option) and ensure that you have set all your indexes.

Methods over publications

-8:00 +The first easiest replacement is to use Meteor methods instead of publications. In this case you can use the existing publication +and instead of returning a cursor you will call `.fetchAsync()` and return the actual data. The same performance improvements +to get the method work faster apply here, but once called it sends the data and you don't have the overhead of a publication. + +What is crucial here is to ensure that your choice of a front-end framework doesn't call the method every time, but only once +to load the data or when specifically needed (for example when the data gets updated due to user action or when the user requests it).

Publication replacements

-consider GraphQL or REST +Using methods has its limitations and there are other tools that you might want to evaluate as a potential replacement. + +[Grapher](https://github.com/cult-of-coders/grapher) is a favorite answer and allows you to easily blend with another +replacement which is [GraphQL](https://graphql.org/) and in particular [Apollo GraphQL](https://www.apollographql.com/), +which also has an integration [package](https://atmospherejs.com/meteor/apollo) with Meteor. Finally, you can also go back to using REST as well. + +Do note, that you can mix all of these based on your needs.

Low observer reuse

-https://galaxy-guide.meteor.com/apm-know-your-observers.html -https://galaxy-guide.meteor.com/apm-make-your-app-faster.html -https://www.vazco.eu/blog/how-to-optimize-and-scale-meteor-projects +Observers are among the key components of Meteor. They take care of observing documents on MongoDB and they notify changes. +Creating them is an expensive operations, so you want to make sure that Meteor reuses them as much as possible. + +> [Learn more about observers](https://galaxy-guide.meteor.com/apm-know-your-observers.html) + +The key for observer reuse is to make sure that the queries requested are identical. This means that user given values +should be standardised and so should any dynamic input like time. Publications for users should check if user is signed in +first before returning publication and if user is not signed in, then it should instead call `this.ready();`. + +> [Learn more on improving observer reuse](https://galaxy-guide.meteor.com/apm-improve-cpu-and-network-usage)

Redis Oplog

-14:26 -* reduces load on server -* channels -* only publish the changes you need + +[Redis Oplog](https://atmospherejs.com/cultofcoders/redis-oplog) is a popular solution to Meteor's Oplog tailing +(which ensures the reactivity, but has some severe limitations that especially impact performance). Redis Oplog as name +suggests uses [redis](https://redis.io/) to track changes to data that you only need and cache them. This reduces load on +the server and database, allows you to track only the data that you want and only publish the changes you need.

Methods

+While methods are listed as one of the possible replacements for publications, they themselves can be made more performant, +after all it really depends on what you put inside them and APM will provide you with the necessary insight on which +methods are the problem. +

Heavy actions

-6:49 + +In general heavy tasks that take a lot of resources or take long and block the server for that time should be taken out +and instead be run in its own server that focuses just on running those heavy tasks. This can be another Meteor server +or even better something specifically optimized for that given task.

Reoccurring jobs

+Reoccurring jobs are another prime candidate to be taken out into its own application. What this means is that you will have +an independent server that is going to be tasked with running the reoccurring jobs and the main application will only add to +the list and be recipient of the results, most likely via database results. +

Rate limiting

+Rate limit your methods to reduce effectiveness of DDOS attack and spare your server. This is also a good practice to +ensure that you don't accidentally DDOS your self. For example a user who clicks multiple time on a button that triggers +an expensive function. In this example you should also in general ensure that any button that triggers a server event +should be disabled until there is a response from the server that the event has finished. + +You can and should rate limit both methods and collections. + +> [Learn more about rate limiting](https://docs.meteor.com/api/methods.html#ddpratelimiter) +

MongoDB

+ The following section offers some guidance on optimizing performance of your Meteor application when it comes to the database. You can find these and more information in other places that deal with MongoDB performance optimization, like on the [official MongoDB website](https://www.mongodb.com/basics/best-practices). -These are all applicable and you should spend some time researching into them as well. The guide here offers some initial and most common patterns. +These are all applicable, and you should spend some time researching into them as well. The guide here offers some initial and most common patterns.

IP whitelisting

-If your MongoDB hosting provider allows it, you should make sure that only whitelisted -https://galaxy-guide.meteor.com/container-environment.html#network-outgoing +If your MongoDB hosting provider allows it, you should make sure that you whitelist the IPs of your application servers. +If you don't then your database servers are likely to come under attack from hackers trying to brute force their way in. +Besides the security risk this also impacts performance as authentication is not a cheap operation and it will impact performance. + +See [Galaxy guide](https://galaxy-guide.meteor.com/container-environment.html#network-outgoing) on IP whitelisting to get IPs for your Galaxy servers.

Indexes

-10:00 -* compound indexes -* ESR (equity, sort, range) -* only the ones needed -* too many indexes actually slow things down -* n + 1 -* read from secondaries -* do not use regex + +While single indexes on one field are helpful on simple query calls, you will most likely have more advance queries with +multiple variables. To cover those you will need to create compound indexes. For example: + +```javascript +Statistics.createIndexAsync( + { + pageId: 1, + language: 1, + date: 1 + }, + { unique: true } +) +``` +When creating indexes you should sort the variables in ESR (equity, sort, range) style. +Meaning, first you put variables that will be equal to something specific. Second you put variables that sort things, +and third variables that provide range for that query. +Further you should order these variables in a way that the fields that filter the most should be first. + +Make sure that all the indexes are used and remove unused indexes as leaving unused indexes will have negative impact +on performance as the database will have to still keep track on all the indexed variables.

Find strategies

-17:46 -* all queries should have an index -* Fields that filter the most should be first + +To optimize finds ensure that all queries have are indexed. Meaning that any `.find()` variables should be indexed as described above. + +All your finds should have a limit on the return so that the database stops going through the data once it has reached +the limit, and you only return the limited number of results instead of the whole database. + +Beware of queries with `n + 1` issue. For example in a database that has cars and car owners. You don't want to get cars, +and then call the database for each car owner, instead you want to use only two queries. One where you get the all the cars and +second where you get all the owners and then match the data on the front-end. + +Check all queries that run longer than 100ms as there might be issues. + +Do not use RegEx for your queries as these queries have to go through all the data to do that match. + +If you still have issues make sure that you read data from secondaries.

Beware of collection hooks

+While collection hooks can help in many cases beware of them and make sure that you understand how they work as they might +create additional queries that you might not know about. Make sure to review packages that use them so that they won't +create additional queries. +

Caching

-* query caching -* use aggregation & save them + +Once your user base increases you want to invest into query caching like using Redis, Redis Oplog and other. +For more complex queries or when you are retrieving data from multiple collections, then you want to use [aggregation](https://www.mongodb.com/docs/manual/aggregation/) +and save their results.

Scaling

@@ -142,7 +227,7 @@ While all the other measures mentioned here will help, but a certain point it be Today most hosting solutions offer scaling triggers that you can set to automatically scale up (and down) the number of containers for your app based on things like number of connection, CPU and RAM usage. Galaxy has these as well. Learn more about [setting triggers for scaling on Galaxy](https://galaxy-guide.meteor.com/triggers.html). -Setting these is vital, so that your application can keep on running when you have extra people come and then saves you money by scaling down when the containers are not in use. +Setting this is vital, so that your application can keep on running when you have extra people come and then saves you money by scaling down when the containers are not in use. When initially setting these pay a close attention to the performance of your app. you need to learn when is the right time to scale your app so it has enough time to spin up new containers before the existing one get overwhelmed by traffic and so on. There are other points to pay attention to as well. For example if your app is used by corporation you might want to setup that on weekdays the minimum number of containers is going to increase just before the start of working hours and the then decrease the minimum to 1 for after hours and on weekends. @@ -150,7 +235,7 @@ Usually when you are working on performance issues you will have higher numbers

Packages

-During development it is very tempting to add packages to solve issue or support some features. +During development, it is very tempting to add packages to solve issue or support some features. This should be done carefully and each package should be wetted carefully if it is a good fit for the application. Besides security and maintenance issues you also want to know which dependencies given package introduces and as a whole what will be the impact on performance. From a713ddc8ad74fda3d5d31c4b64438f06fe6a6640 Mon Sep 17 00:00:00 2001 From: harryadel Date: Sun, 1 Oct 2023 22:02:43 +0300 Subject: [PATCH 046/102] Update broken accounts link --- packages/accounts-base/README.md | 2 +- packages/accounts-facebook/README.md | 2 +- packages/accounts-github/README.md | 2 +- packages/accounts-google/README.md | 2 +- packages/accounts-meetup/README.md | 2 +- packages/accounts-meteor-developer/README.md | 4 ++-- packages/accounts-oauth/README.md | 2 +- packages/accounts-passwordless/README.md | 2 +- packages/accounts-twitter/README.md | 2 +- packages/accounts-ui-unstyled/README.md | 4 ++-- packages/accounts-ui/README.md | 4 ++-- packages/accounts-weibo/README.md | 2 +- packages/deprecated/facebook/README.md | 2 +- packages/deprecated/github/README.md | 2 +- packages/deprecated/google/README.md | 2 +- packages/deprecated/meetup/README.md | 2 +- packages/deprecated/meteor-developer/README.md | 2 +- packages/deprecated/twitter/README.md | 2 +- packages/deprecated/weibo/README.md | 2 +- packages/google-oauth/README.md | 2 +- packages/non-core/blaze | 2 +- packages/oauth/README.md | 4 ++-- packages/oauth1/README.md | 4 ++-- packages/oauth2/README.md | 2 +- packages/service-configuration/README.md | 2 +- packages/tracker/README.md | 2 +- 26 files changed, 31 insertions(+), 31 deletions(-) diff --git a/packages/accounts-base/README.md b/packages/accounts-base/README.md index 1a94a410ef..05d391c713 100644 --- a/packages/accounts-base/README.md +++ b/packages/accounts-base/README.md @@ -14,4 +14,4 @@ Meteor's user account system. This package implements the basic functions necess There are also login services available in community packages. -For more information, see the [Meteor docs](http://docs.meteor.com/#accounts_api) and the Meteor Accounts [project page](https://www.meteor.com/accounts). +For more information, see the [Meteor docs](http://docs.meteor.com/#accounts_api) and the Meteor Accounts [project page](https://docs.meteor.com/api/accounts). diff --git a/packages/accounts-facebook/README.md b/packages/accounts-facebook/README.md index b4b54902a2..6ec23a5eb7 100644 --- a/packages/accounts-facebook/README.md +++ b/packages/accounts-facebook/README.md @@ -2,4 +2,4 @@ [Source code of released version](https://github.com/meteor/meteor/tree/master/packages/accounts-facebook) | [Source code of development version](https://github.com/meteor/meteor/tree/devel/packages/accounts-facebook) *** -A login service for Facebook. See the [project page](https://www.meteor.com/accounts) on Meteor Accounts for more details. \ No newline at end of file +A login service for Facebook. See the [project page](https://docs.meteor.com/api/accounts) on Meteor Accounts for more details. diff --git a/packages/accounts-github/README.md b/packages/accounts-github/README.md index 1e8d550aa1..779efb825b 100644 --- a/packages/accounts-github/README.md +++ b/packages/accounts-github/README.md @@ -2,4 +2,4 @@ [Source code of released version](https://github.com/meteor/meteor/tree/master/packages/accounts-github) | [Source code of development version](https://github.com/meteor/meteor/tree/devel/packages/accounts-github) *** -A login service for GitHub. See the [project page](https://www.meteor.com/accounts) on Meteor Accounts for more details. \ No newline at end of file +A login service for GitHub. See the [project page](https://docs.meteor.com/api/accounts) on Meteor Accounts for more details. diff --git a/packages/accounts-google/README.md b/packages/accounts-google/README.md index a7821adbe2..24690303b0 100644 --- a/packages/accounts-google/README.md +++ b/packages/accounts-google/README.md @@ -2,4 +2,4 @@ [Source code of released version](https://github.com/meteor/meteor/tree/master/packages/accounts-google) | [Source code of development version](https://github.com/meteor/meteor/tree/devel/packages/accounts-google) *** -A login service for Google. See the [project page](https://www.meteor.com/accounts) on Meteor Accounts for more details. \ No newline at end of file +A login service for Google. See the [project page](https://docs.meteor.com/api/accounts) on Meteor Accounts for more details. diff --git a/packages/accounts-meetup/README.md b/packages/accounts-meetup/README.md index 4a8c87f201..1a2a07c1f2 100644 --- a/packages/accounts-meetup/README.md +++ b/packages/accounts-meetup/README.md @@ -2,4 +2,4 @@ [Source code of released version](https://github.com/meteor/meteor/tree/master/packages/accounts-meetup) | [Source code of development version](https://github.com/meteor/meteor/tree/devel/packages/accounts-meetup) *** -A login service for Meetup. See the [project page](https://www.meteor.com/accounts) on Meteor Accounts for more details. \ No newline at end of file +A login service for Meetup. See the [project page](https://docs.meteor.com/api/accounts) on Meteor Accounts for more details. diff --git a/packages/accounts-meteor-developer/README.md b/packages/accounts-meteor-developer/README.md index a49afa5eb6..aba504d945 100644 --- a/packages/accounts-meteor-developer/README.md +++ b/packages/accounts-meteor-developer/README.md @@ -3,6 +3,6 @@ *** A login service for Meteor developer accounts. See the project page on -[Meteor Accounts](https://www.meteor.com/accounts) and Meteor [Developer +[Meteor Accounts](https://docs.meteor.com/api/accounts) and Meteor [Developer Accounts](https://www.meteor.com/services/developer-accounts) for more -details. \ No newline at end of file +details. diff --git a/packages/accounts-oauth/README.md b/packages/accounts-oauth/README.md index 6cc54cb069..33574b4337 100644 --- a/packages/accounts-oauth/README.md +++ b/packages/accounts-oauth/README.md @@ -2,4 +2,4 @@ [Source code of released version](https://github.com/meteor/meteor/tree/master/packages/accounts-oauth) | [Source code of development version](https://github.com/meteor/meteor/tree/devel/packages/accounts-oauth) *** -Common functionality for OAuth-based login services. See the [project page](https://www.meteor.com/accounts) on Meteor Accounts for more details. \ No newline at end of file +Common functionality for OAuth-based login services. See the [project page](https://docs.meteor.com/api/accounts) on Meteor Accounts for more details. diff --git a/packages/accounts-passwordless/README.md b/packages/accounts-passwordless/README.md index b6170bd180..1b6e32adfd 100644 --- a/packages/accounts-passwordless/README.md +++ b/packages/accounts-passwordless/README.md @@ -5,5 +5,5 @@ *** A login service that enables secure passwordless-based login. See -the [project page](https://www.meteor.com/accounts) on Meteor Accounts for more +the [project page](https://docs.meteor.com/api/accounts) on Meteor Accounts for more details. diff --git a/packages/accounts-twitter/README.md b/packages/accounts-twitter/README.md index 3f8ac0cdc5..105a5fd95f 100644 --- a/packages/accounts-twitter/README.md +++ b/packages/accounts-twitter/README.md @@ -2,4 +2,4 @@ [Source code of released version](https://github.com/meteor/meteor/tree/master/packages/accounts-twitter) | [Source code of development version](https://github.com/meteor/meteor/tree/devel/packages/accounts-twitter) *** -A login service for Twitter. See the [project page](https://www.meteor.com/accounts) on Meteor Accounts for more details. +A login service for Twitter. See the [project page](https://docs.meteor.com/api/accounts) on Meteor Accounts for more details. diff --git a/packages/accounts-ui-unstyled/README.md b/packages/accounts-ui-unstyled/README.md index e5f2dec21d..12ca4e447c 100644 --- a/packages/accounts-ui-unstyled/README.md +++ b/packages/accounts-ui-unstyled/README.md @@ -5,5 +5,5 @@ A version of `accounts-ui` without the CSS, so that you can add your own styling. See the [`accounts-ui` README](https://atmospherejs.com/meteor/accounts-ui) and the -Meteor Accounts [project page](https://www.meteor.com/accounts) for -details. \ No newline at end of file +Meteor Accounts [project page](https://docs.meteor.com/api/accounts) for +details. diff --git a/packages/accounts-ui/README.md b/packages/accounts-ui/README.md index 95bf5d63c8..158afb0381 100644 --- a/packages/accounts-ui/README.md +++ b/packages/accounts-ui/README.md @@ -11,7 +11,7 @@ package and at least one login provider package: Then simply add the `{{> loginButtons}}` helper to an HTML file. -See the Meteor Accounts [project page](https://www.meteor.com/accounts) for more info. +See the Meteor Accounts [project page](https://docs.meteor.com/api/accounts) for more info. ## Details @@ -33,4 +33,4 @@ and [`sendEnrollmentEmail`](http://docs.meteor.com/#accounts_sendenrollmentemail do not have to be manually placed in HTML: they are automatically activated when the URLs are loaded. -See the Meteor Accounts [project page](https://www.meteor.com/accounts) for more info. \ No newline at end of file +See the Meteor Accounts [project page](https://docs.meteor.com/api/accounts) for more info. diff --git a/packages/accounts-weibo/README.md b/packages/accounts-weibo/README.md index 8ff27cd47f..051af83732 100644 --- a/packages/accounts-weibo/README.md +++ b/packages/accounts-weibo/README.md @@ -2,4 +2,4 @@ [Source code of released version](https://github.com/meteor/meteor/tree/master/packages/accounts-weibo) | [Source code of development version](https://github.com/meteor/meteor/tree/devel/packages/accounts-weibo) *** -A login service for Weibo. See the [project page](https://www.meteor.com/accounts) on Meteor Accounts for more details. \ No newline at end of file +A login service for Weibo. See the [project page](https://docs.meteor.com/api/accounts) on Meteor Accounts for more details. diff --git a/packages/deprecated/facebook/README.md b/packages/deprecated/facebook/README.md index ad16f40317..33a61e7d96 100644 --- a/packages/deprecated/facebook/README.md +++ b/packages/deprecated/facebook/README.md @@ -4,4 +4,4 @@ ** Deprecated, use facebook-oauth instead** -An implementation of the Facebook OAuth flow. See the [project page](https://www.meteor.com/accounts) on Meteor Accounts for more details. XXX link +An implementation of the Facebook OAuth flow. See the [project page](https://docs.meteor.com/api/accounts) on Meteor Accounts for more details. XXX link diff --git a/packages/deprecated/github/README.md b/packages/deprecated/github/README.md index dcabe5c442..f485e8f45f 100644 --- a/packages/deprecated/github/README.md +++ b/packages/deprecated/github/README.md @@ -4,4 +4,4 @@ **Deprecated, use github-oauth instead.** -An implementation of the GitHub OAuth flow. See the [project page](https://www.meteor.com/accounts) on Meteor Accounts for more details. +An implementation of the GitHub OAuth flow. See the [project page](https://docs.meteor.com/api/accounts) on Meteor Accounts for more details. diff --git a/packages/deprecated/google/README.md b/packages/deprecated/google/README.md index a492c0fc29..dd09ba9bad 100644 --- a/packages/deprecated/google/README.md +++ b/packages/deprecated/google/README.md @@ -4,4 +4,4 @@ ** Deprecated, use google-oauth instead** -An implementation of the Google OAuth flow. See the [project page](https://www.meteor.com/accounts) on Meteor Accounts for more details. XXX link +An implementation of the Google OAuth flow. See the [project page](https://docs.meteor.com/api/accounts) on Meteor Accounts for more details. XXX link diff --git a/packages/deprecated/meetup/README.md b/packages/deprecated/meetup/README.md index c85c007fd2..5f4c0147d9 100644 --- a/packages/deprecated/meetup/README.md +++ b/packages/deprecated/meetup/README.md @@ -4,4 +4,4 @@ **Deprecated, use meetup-oauth instead.** -An implementation of the Meetup OAuth flow. See the [project page](https://www.meteor.com/accounts) on Meteor Accounts for more details. +An implementation of the Meetup OAuth flow. See the [project page](https://docs.meteor.com/api/accounts) on Meteor Accounts for more details. diff --git a/packages/deprecated/meteor-developer/README.md b/packages/deprecated/meteor-developer/README.md index e68a786340..ba79687e90 100644 --- a/packages/deprecated/meteor-developer/README.md +++ b/packages/deprecated/meteor-developer/README.md @@ -4,4 +4,4 @@ **Deprecated, use meteor-developer-oauth instead.** -An implementation of the Meteor developer accounts OAuth flow. See the [project page](https://www.meteor.com/accounts) on Meteor Accounts for more details. +An implementation of the Meteor developer accounts OAuth flow. See the [project page](https://docs.meteor.com/api/accounts) on Meteor Accounts for more details. diff --git a/packages/deprecated/twitter/README.md b/packages/deprecated/twitter/README.md index 5389be75b1..fa2c64ba7b 100644 --- a/packages/deprecated/twitter/README.md +++ b/packages/deprecated/twitter/README.md @@ -5,5 +5,5 @@ ** Deprecated, use twitter-oauth instead** An implementation of the Twitter OAuth flow. See the [project -page](https://www.meteor.com/accounts) on Meteor Accounts for more +page](https://docs.meteor.com/api/accounts) on Meteor Accounts for more details. diff --git a/packages/deprecated/weibo/README.md b/packages/deprecated/weibo/README.md index 0478aa894d..c79dc40873 100644 --- a/packages/deprecated/weibo/README.md +++ b/packages/deprecated/weibo/README.md @@ -5,5 +5,5 @@ ** Deprecated, use weibo-oauth instead** An implementation of the Weibo OAuth flow. See the [project -page](https://www.meteor.com/accounts) on Meteor Accounts for more +page](https://docs.meteor.com/api/accounts) on Meteor Accounts for more details. diff --git a/packages/google-oauth/README.md b/packages/google-oauth/README.md index aa02465b6c..793495cab7 100644 --- a/packages/google-oauth/README.md +++ b/packages/google-oauth/README.md @@ -2,5 +2,5 @@ [Source code of released version](https://github.com/meteor/meteor/tree/master/packages/google-oauth) | [Source code of development version](https://github.com/meteor/meteor/tree/devel/packages/google-oauth) *** -An implementation of the Google OAuth flow. See the [project page](https://www.meteor.com/accounts) on Meteor Accounts for more details. +An implementation of the Google OAuth flow. See the [project page](https://docs.meteor.com/api/accounts) on Meteor Accounts for more details. [Google's documentation](https://developers.google.com/identity/protocols/oauth2) diff --git a/packages/non-core/blaze b/packages/non-core/blaze index 34b8f891ef..646383bc37 160000 --- a/packages/non-core/blaze +++ b/packages/non-core/blaze @@ -1 +1 @@ -Subproject commit 34b8f891efd9343c15c1dfc03b3e2bfbc1d8c119 +Subproject commit 646383bc3730648c98ce8be8930d697f6eca83f3 diff --git a/packages/oauth/README.md b/packages/oauth/README.md index 8292a90a69..61de17e2de 100644 --- a/packages/oauth/README.md +++ b/packages/oauth/README.md @@ -3,5 +3,5 @@ *** Common functionality for OAuth clients. See the [project -page](https://www.meteor.com/accounts) on Meteor Accounts for more -details. \ No newline at end of file +page](https://docs.meteor.com/api/accounts) on Meteor Accounts for more +details. diff --git a/packages/oauth1/README.md b/packages/oauth1/README.md index 3b3205f286..406a173fa4 100644 --- a/packages/oauth1/README.md +++ b/packages/oauth1/README.md @@ -3,5 +3,5 @@ *** Common functionality for OAuth 1 clients. See the [project -page](https://www.meteor.com/accounts) on Meteor Accounts for more -details. \ No newline at end of file +page](https://docs.meteor.com/api/accounts) on Meteor Accounts for more +details. diff --git a/packages/oauth2/README.md b/packages/oauth2/README.md index 294139e15d..fdebfff056 100644 --- a/packages/oauth2/README.md +++ b/packages/oauth2/README.md @@ -3,5 +3,5 @@ *** Common functionality for OAuth 2 clients. See the [project -page](https://www.meteor.com/accounts) on Meteor Accounts for more +page](https://docs.meteor.com/api/accounts) on Meteor Accounts for more details. diff --git a/packages/service-configuration/README.md b/packages/service-configuration/README.md index 59dfe29667..6cb8b9a7a5 100644 --- a/packages/service-configuration/README.md +++ b/packages/service-configuration/README.md @@ -13,4 +13,4 @@ ServiceConfiguration.configurations.upsert( Read more in the [Meteor docs](http://docs.meteor.com/#meteor_loginwithexternalservice) and the -Meteor Accounts [project page](https://www.meteor.com/accounts). +Meteor Accounts [project page](https://docs.meteor.com/api/accounts). diff --git a/packages/tracker/README.md b/packages/tracker/README.md index 6c7fb404c1..005310f950 100644 --- a/packages/tracker/README.md +++ b/packages/tracker/README.md @@ -115,7 +115,7 @@ code. makes sense. For example, the current connection status is reactive in Meteor's [DDP](https://www.meteor.com/ddp) implementation, and the currently logged in user is reactive in [Meteor - Accounts](https://www.meteor.com/accounts) system. + Accounts](https://docs.meteor.com/api/accounts) system. ## Future directions From da19a61b23873c78693545c53ba0d1dc780fc794 Mon Sep 17 00:00:00 2001 From: Jan Dvorak Date: Tue, 3 Oct 2023 18:12:48 +0200 Subject: [PATCH 047/102] Update guide/source/performance-improvement.md link Co-authored-by: Frederico Maia --- guide/source/performance-improvement.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/guide/source/performance-improvement.md b/guide/source/performance-improvement.md index a6c5a4d394..f6721550f7 100644 --- a/guide/source/performance-improvement.md +++ b/guide/source/performance-improvement.md @@ -15,7 +15,7 @@ and talk by Paulo Mogollón's talk at Impact 2022 titled ["First steps on scalin

Performance monitoring

Before any optimization can take place we need to know what is our problem. This is where APM (Application Performance Monitor) comes in. -If you are hosting on Galaxy then this is automatically included in the [Professional plan](https://www.meteor.com/cloud#pricing-section) +If you are hosting on Galaxy then this is automatically included in the [Professional plan](https://www.meteor.com/cloud/pricing) and you can learn more about in its [own dedicated guide article](https://cloud-guide.meteor.com/apm-getting-started.html). For those hosting outside of Galaxy the most popular solution is to go with [Monti APM](https://montiapm.com/) which shares all the main functionality with Galaxy APM. You can also choose other APM for Node.js, but they will not show you Meteor From 38d69c1ee5d7efab9d0328b3d0d5a1ac1d6426ec Mon Sep 17 00:00:00 2001 From: Jan Dvorak Date: Tue, 3 Oct 2023 18:39:53 +0200 Subject: [PATCH 048/102] Update changelog & clean up language around DISABLE_SOCKJS_CORS --- docs/generators/changelog/versions/2.14.md | 16 +++++++++++++++- docs/source/environment-variables.md | 2 +- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/docs/generators/changelog/versions/2.14.md b/docs/generators/changelog/versions/2.14.md index c8d33cc5d8..70553a1f09 100644 --- a/docs/generators/changelog/versions/2.14.md +++ b/docs/generators/changelog/versions/2.14.md @@ -4,7 +4,7 @@ Hacktoberfest release! 🎉 -* +* 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. #### Breaking Changes @@ -20,17 +20,31 @@ TODO #### Meteor Version Release +* `ddp-server@get-version`: + - Allow setting `DISABLE_SOCKJS_CORS` to prevent SockJS from setting CORS headers + +* `fetch@get-version`: + - Update `node-fetch` to version 1.6.12 + - Update `whatwg-fetch` to version 3.6.17 + * `accounts-passwordless@get-version` - Fix #12401, ensure that user is found with ID * `react-fast-refresh@get-version`: - Updated `semver` to version 7.5.4 +#### Independent Package Release + +* `google-oauth@1.4.4`: + - Remove logging request/response in google_server + #### Special thanks to - [@StorytellerCZ](https://github.com/sponsors/StorytellerCZ). - [@vit0rr](https://github.com/vit0rr) +- [@realyze](https://github.com/realyze) +- [@jamauro](https://github.com/jamauro) For making this great framework even better! diff --git a/docs/source/environment-variables.md b/docs/source/environment-variables.md index d9555b6484..7a7bb58e4f 100644 --- a/docs/source/environment-variables.md +++ b/docs/source/environment-variables.md @@ -36,7 +36,7 @@ Set `DISABLE_SOCKJS=1` if you want to use the native WebSocket implementation in ## DISABLE_SOCKJS_CORS (_development, production_) -Set `DISABLE_SOCKJS_CORS=1` if you want to prevent SockJS from setting CORS headers from being set by SockJS. Do not set this option if you will have DDP clients from other origins connecting to the DDP server. +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. ## HTTP_FORWARDED_COUNT (_production_) From 8705dfffd37a94258a7acf407afecf0d8d3e7ffd Mon Sep 17 00:00:00 2001 From: Paul Ailincai Date: Wed, 4 Oct 2023 15:12:16 +0400 Subject: [PATCH 049/102] Add Facebook in-app browser Meteor projects depending on Firebase (such as implementations of Push Notifications) do not run in Facebook in-app browser due to an error: "Uncaught TypeError: Y.values is not a function or its return value is not iterable." Adding FB in-app browser to this default list fixes the issue. --- .../babel-preset-meteor/babel-presets-meteor/modern.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/npm-packages/babel-preset-meteor/babel-presets-meteor/modern.js b/npm-packages/babel-preset-meteor/babel-presets-meteor/modern.js index cb36342a31..a1d56ad1e4 100644 --- a/npm-packages/babel-preset-meteor/babel-presets-meteor/modern.js +++ b/npm-packages/babel-preset-meteor/babel-presets-meteor/modern.js @@ -26,5 +26,6 @@ exports.minimumVersions = { // https://github.com/Kilian/electron-to-chromium/blob/master/full-versions.js electron: [1, 6], // https://github.com/meteor/babel-preset-meteor/issues/13 - samsungInternet: [6, 2] + samsungInternet: [6, 2], + facebook: 325 }; From e61b4e2ce20d9d21b5383842906f263c39fb88f1 Mon Sep 17 00:00:00 2001 From: vitor Date: Wed, 4 Oct 2023 11:40:26 -0300 Subject: [PATCH 050/102] docs(guide): how to prepare to meteor 3 --- guide/_config.yml | 1 + guide/source/prepare-meteor-3.0.md | 121 +++++++++++++++++++++++++++++ 2 files changed, 122 insertions(+) create mode 100644 guide/source/prepare-meteor-3.0.md diff --git a/guide/_config.yml b/guide/_config.yml index 28c7e99513..f3285b940b 100644 --- a/guide/_config.yml +++ b/guide/_config.yml @@ -43,6 +43,7 @@ sidebar_categories: - code-style - structure - 2.13-migration + - prepare-meteor-3.0 Data: - collections - data-loading diff --git a/guide/source/prepare-meteor-3.0.md b/guide/source/prepare-meteor-3.0.md new file mode 100644 index 0000000000..3dd79429f0 --- /dev/null +++ b/guide/source/prepare-meteor-3.0.md @@ -0,0 +1,121 @@ +--- +title: How to migrate to Meteor Async in Meteor 2.x +description: How to migrate your application to async methods and be ready to 3.0. +--- + +In the new Meteor 3.0, Meteor moves its methods/operations to asynchronous. In the past, version 2.x was using Fibers, our promise solution, which is no longer supported since Node 16, and to follow the community standards, we are moving to `async` and `await`. + +Here are a couple of methods that are now async, and you need to refactor them. Instead of findOne, you need to use the suffix Async, findOneAsync, for example: + +Mongo.Collection: +- findOneAsync +- insertAsync +- removeAsync +- updateAsync +- upsertAsync + +Collection.Cursor: +- countAsync +- fetchAsync +- forEachAsync +- mapAsync + +accounts-base: +- Meteor.userAsync() + +callback-hook:forEachAsync +- forEachAsync + +ddp-server +- Meteor.callAsync() + +The complete list of updated methods is listed [here](https://github.com/meteor/meteor/blob/d5c3b2eeafd0ad78ee7e2553f3f269c5c2a2e2a9/docs/generators/changelog/versions/3.0.md#L5-L17). + +If you want to understand better what was changed and the context of Fibers, read these complementary posts: +- [2.8](https://grubba.medium.com/new-meteor-2-8-and-the-new-mongodb-async-ap-edbcb853869a?source=user_profile---------9----------------------------) _New Meteor 2.8 and the new MongoDB Async API_ +- [2.8.1](https://grubba.medium.com/new-meteor-2-8-1-and-adding-types-to-the-core-8a6ee56f0141?source=user_profile---------7----------------------------) _New MeteorJS 2.8.1 and adding types to the core_ +- [2.9](https://blog.meteor.com/new-meteorjs-2-9-and-the-new-scaffold-api-5fcc0f3b1ce5) _New MeteorJS 2.9 and the new Scaffold API_ +- [2.10](https://blog.meteor.com/new-meteor-js-2-10-and-the-async-tracker-feature-ffdbe817c801) _New Meteor.js 2.10 and the Async Tracker Feature_ +- [2.11](https://grubba.medium.com/new-meteor-2-11-and-the-new-embedded-mongodb-19767076961b?source=user_profile---------4----------------------------) _New Meteor 2.11 and the new embedded MongoDB_ +- [2.12](https://grubba.medium.com/new-meteor-js-2-12-and-the-blaze-2-6-2-release-b72c2a7a593f?source=user_profile---------1----------------------------) _New Meteor.js 2.12 and Blaze 2.6.2 Release_ +- [2.13](https://grubba.medium.com/new-meteor-js-2-13-node-js-14-21-4-security-patch-and-blaze-2-7-1-release-60134947e4c?source=user_profile---------0----------------------------) _New Meteor.js 2.13, Node.js 14.21.4 security patch and Blaze 2.7.1 release_ + +To help Meteor users update their apps to the new Meteor version, you can follow this guide with some insights on how to do it. + +## Use at least Meteor version [2.8](https://blog.meteor.com/new-meteor-2-8-and-the-new-mongodb-async-ap-edbcb853869a) + +We recommend starting the async migration by updating your application to 2.8 or newer, as you can do this progressively. Unlike 3.0, you can simultaneously maintain the same codebase with the new asynchronous and old synchronous behaviors. Ideally, you should update to the latest version of Meteor 2.x and carefully follow each changelog. After you refactor all your code to async in version 2.x, you can more easily update it to version 3.0 by following all the changes listed in its [changelog](https://github.com/meteor/meteor/blob/d5c3b2eeafd0ad78ee7e2553f3f269c5c2a2e2a9/docs/generators/changelog/versions/3.0.md). + +To help with this update, we suggest you use a [codemod](https://www.sitepoint.com/getting-started-with-codemods/) to automate part of the refactoring process. Follow [this script](https://github.com/minhna/meteor-async-migration) created by [minhna](https://github.com/minhna). The project has documentation explaining how to run the script. This codemod should only affect the server side of your application. Starting the update from the front end or back end is a personal choice. While starting from the server side is a valid approach, it is essential to evaluate whether migrating features one by one might be a better strategy. This way, you can resolve errors incrementally and avoid the risk of encountering multiple client-side issues that could break the entire application. + +A helpful feature of the script is that it will refactor some methods to async, such as findOne, count, and other methods from the accounts-base package, such as `Meteor.user()`, and also the function that calls these methods by adding an 'async' before them. + +## Edge cases +Depending on your codebase, the codemod may not work in some specific scenarios. We'll list some edge case examples, and if this is the case for your codebase, you'll need to make the changes manually or refactor the codemod. + +### MongoDB methods updates +A possible edge case is if you are defining your MongoDB collection using the `meteor/quave:collections` package, the codemod will check if it is a MongoDB collection by checking the form of the imports - this means that when the script reads the import coming from ` quave`, it will not consider this to be a MongoDB collection. + +### Async functions +Let's assume your codebase has the same or similar issue listed above. This may imply some problems in refactoring for async functions since the codemod does not correspond to any async method case. This can generate other side effects that imply issues with refactoring forEachAsync, mapAsync, and others. + +### How do we identify those edge cases? +To identify these edge cases, you can use the search feature in your IDE to find your methods and start refactoring by running your refactored codemod or updating the code manually. Since it now only affects the server side, after refactoring, you can run your application, observe the errors that will occur in your terminal, and fix them progressively. +After refactoring the server side to async, your application will run without errors, and then you can move to the client side. + +## Changes for Blaze projects (at least [2.7](https://www.blazejs.org/changelog#v2702023may23)) +In Blaze, every HTML file has a related JavaScript file. After refactoring the JavaScript file to async, you will get a Promise wrapping the value instead of the actual value. To present it on your front end, you must unwrap it. Let's see an example: + +```javascript +{{#let shouldFlag=isFlagged}} + {{#if @pending 'shouldFlag' }} + + {{/if}} + {{#if @rejected 'shouldFlag' }} + + {{/if}} + {{#if @resolved 'shouldFlag' }} + + {{/if}} +{{/let}} +``` + +If you don't unwrap the value, you will get an unresolved promise on the front end. You can use Blaze [Async States](https://www.blazejs.org/api/spacebars#Async-states), which uses the Spacebars Meteor package to handle the promise state. With it, you can handle different states and return appropriate content. + +## Changes for React projects +We recommend installing the package `react-meteor-data`, which contains hooks for these new asynchronous methods. If you use `useFind` on the server side, with SSR, for example, you will need to use the new suspense/useFind hook. We recommend reading the [New Suspense Hooks for Meteor](https://blog.meteor.com/new-suspense-hooks-for-meteor-5391570b3007) article to understand this package better. Example: + +```javascript +const TaskList = () => { + useSubscribe("tasks"); + const tasks = useTracker('tasks',() => TasksCollection.find({}).fetch()); + return ( +
    + {tasks.map((task) => ( + + ))} +
+ ); +}; + +export const App = () => { + return ( +
+

Welcome to Meteor!

+ Loading...
}> + + + + + ); +}; +``` + +Note that we're not using the if (loading) anymore. To see a practical project, you can check [simpletasks](https://github.com/fredmaiaarantes/simpletasks/), which already use asynchronous API. + +If you use `Tracker.autorun()`, for example, reading about the tracker with the [async callback function](https://blog.meteor.com/new-meteor-js-2-10-and-the-async-tracker-feature-ffdbe817c801) is also recommended. + + +----------- + +We hope to make your transition easier with these instructions, references, and tools. You may face some challenges, but remember that you can progressively refactor it. For more detailed updates on Meteor 3.0, please check our [Fibers project board](https://github.com/orgs/meteor/projects/10) and the [Meteor 3.0 PR](https://github.com/meteor/meteor/pull/12359). From fc37572c666eb5836a971082ecfbdd973b66c3ed Mon Sep 17 00:00:00 2001 From: Jan Dvorak Date: Thu, 5 Oct 2023 16:12:02 +0200 Subject: [PATCH 051/102] Update changelog --- docs/generators/changelog/versions/2.14.md | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/docs/generators/changelog/versions/2.14.md b/docs/generators/changelog/versions/2.14.md index 70553a1f09..a4223ec4ed 100644 --- a/docs/generators/changelog/versions/2.14.md +++ b/docs/generators/changelog/versions/2.14.md @@ -6,13 +6,16 @@ Hacktoberfest release! 🎉 * 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. +* Added guide on (how to prepare for Meteor 3.0 migration)[https://guide.meteor.com/prepare-meteor-3.0]. + #### Breaking Changes N/A #### Internal API changes -N/A +* Tool + - Rename `EACCESS` to `EACCES` to follow the Windows spelling #### Migration Steps @@ -38,6 +41,9 @@ TODO * `google-oauth@1.4.4`: - Remove logging request/response in google_server +* NPM `@meteorjs/babel-preset-meteor@get-version` + - Add Facebook in-app browser + #### Special thanks to @@ -45,7 +51,7 @@ TODO - [@vit0rr](https://github.com/vit0rr) - [@realyze](https://github.com/realyze) - [@jamauro](https://github.com/jamauro) - +- [@Torgen](https://github.com/Torgen) For making this great framework even better! From 5e0c03a9e12a477c3e93d7b1649edb4e9a1069f8 Mon Sep 17 00:00:00 2001 From: Gabriel Grubba <70247653+Grubba27@users.noreply.github.com> Date: Fri, 6 Oct 2023 10:21:53 -0300 Subject: [PATCH 052/102] Update vue3 skeleton to add jorgenvatle vite [sc-3115]' --- tools/static-assets/skel-vue/.meteor/packages | 2 +- tools/static-assets/skel-vue/.meteor/versions | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/static-assets/skel-vue/.meteor/packages b/tools/static-assets/skel-vue/.meteor/packages index 2565a5fe32..18fc19874a 100644 --- a/tools/static-assets/skel-vue/.meteor/packages +++ b/tools/static-assets/skel-vue/.meteor/packages @@ -18,4 +18,4 @@ shell-server@0.5.0 # Server-side component of the `meteor shell` comm hot-module-replacement@0.5.1 # Update client in development without reloading the page static-html@1.3.2 # Define static page content in .html files -vite:bundler +jorgenvatle:vite-bundler diff --git a/tools/static-assets/skel-vue/.meteor/versions b/tools/static-assets/skel-vue/.meteor/versions index 3b89f7359b..96f78074db 100644 --- a/tools/static-assets/skel-vue/.meteor/versions +++ b/tools/static-assets/skel-vue/.meteor/versions @@ -66,6 +66,6 @@ templating-tools@1.2.2 tracker@1.2.0 typescript@4.5.4 underscore@1.0.10 -vite:bundler@0.1.9 +jorgenvatle:vite-bundlerr@1.4.1 webapp@1.13.1 webapp-hashing@1.1.0 From 78b3d992b2805ab5e4bba2c569914a6addce4f26 Mon Sep 17 00:00:00 2001 From: Gabriel Grubba <70247653+Grubba27@users.noreply.github.com> Date: Fri, 6 Oct 2023 13:58:31 -0300 Subject: [PATCH 053/102] Revert "Update vue3 skeleton to add jorgenvatle vite [sc-3115]'" This reverts commit 5e0c03a9e12a477c3e93d7b1649edb4e9a1069f8. --- tools/static-assets/skel-vue/.meteor/packages | 2 +- tools/static-assets/skel-vue/.meteor/versions | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/static-assets/skel-vue/.meteor/packages b/tools/static-assets/skel-vue/.meteor/packages index 18fc19874a..2565a5fe32 100644 --- a/tools/static-assets/skel-vue/.meteor/packages +++ b/tools/static-assets/skel-vue/.meteor/packages @@ -18,4 +18,4 @@ shell-server@0.5.0 # Server-side component of the `meteor shell` comm hot-module-replacement@0.5.1 # Update client in development without reloading the page static-html@1.3.2 # Define static page content in .html files -jorgenvatle:vite-bundler +vite:bundler diff --git a/tools/static-assets/skel-vue/.meteor/versions b/tools/static-assets/skel-vue/.meteor/versions index 96f78074db..3b89f7359b 100644 --- a/tools/static-assets/skel-vue/.meteor/versions +++ b/tools/static-assets/skel-vue/.meteor/versions @@ -66,6 +66,6 @@ templating-tools@1.2.2 tracker@1.2.0 typescript@4.5.4 underscore@1.0.10 -jorgenvatle:vite-bundlerr@1.4.1 +vite:bundler@0.1.9 webapp@1.13.1 webapp-hashing@1.1.0 From 7f822caec18020331365b2233fb67e0b7e2420df Mon Sep 17 00:00:00 2001 From: Gabriel Grubba <70247653+Grubba27@users.noreply.github.com> Date: Fri, 6 Oct 2023 14:05:54 -0300 Subject: [PATCH 054/102] fix: updated vue --- tools/static-assets/skel-vue/.meteor/packages | 3 ++- tools/static-assets/skel-vue/.meteor/versions | 2 +- tools/static-assets/skel-vue/package.json | 1 + 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/tools/static-assets/skel-vue/.meteor/packages b/tools/static-assets/skel-vue/.meteor/packages index 2565a5fe32..53e8f41f1a 100644 --- a/tools/static-assets/skel-vue/.meteor/packages +++ b/tools/static-assets/skel-vue/.meteor/packages @@ -18,4 +18,5 @@ shell-server@0.5.0 # Server-side component of the `meteor shell` comm hot-module-replacement@0.5.1 # Update client in development without reloading the page static-html@1.3.2 # Define static page content in .html files -vite:bundler +jorgenvatle:vite-bundler + diff --git a/tools/static-assets/skel-vue/.meteor/versions b/tools/static-assets/skel-vue/.meteor/versions index 3b89f7359b..9f32a26f1c 100644 --- a/tools/static-assets/skel-vue/.meteor/versions +++ b/tools/static-assets/skel-vue/.meteor/versions @@ -30,6 +30,7 @@ html-tools@1.1.3 htmljs@1.1.1 id-map@1.1.1 inter-process-messaging@0.1.1 +jorgenvatle:vite-bundler@1.4.1 launch-screen@1.3.0 logging@1.3.1 meteor@1.10.1 @@ -66,6 +67,5 @@ templating-tools@1.2.2 tracker@1.2.0 typescript@4.5.4 underscore@1.0.10 -vite:bundler@0.1.9 webapp@1.13.1 webapp-hashing@1.1.0 diff --git a/tools/static-assets/skel-vue/package.json b/tools/static-assets/skel-vue/package.json index f8dc1cace8..34fb491653 100644 --- a/tools/static-assets/skel-vue/package.json +++ b/tools/static-assets/skel-vue/package.json @@ -26,6 +26,7 @@ "@types/meteor": "^2.8.1", "@vitejs/plugin-vue": "^3.2.0", "autoprefixer": "^10.4.13", + "meteor-vite": "^1.3.2", "postcss": "^8.4.19", "tailwindcss": "^3.2.4", "vite": "^3.2.3" From eb9fc9cce2fc8fb805f6a17ca9dcf08e593562dc Mon Sep 17 00:00:00 2001 From: Gabriel Grubba <70247653+Grubba27@users.noreply.github.com> Date: Mon, 9 Oct 2023 17:40:03 -0300 Subject: [PATCH 055/102] docs: updated changelog example --- docs/generators/changelog/EXAMPLE.MD | 60 +++++++++++++++++----------- 1 file changed, 37 insertions(+), 23 deletions(-) diff --git a/docs/generators/changelog/EXAMPLE.MD b/docs/generators/changelog/EXAMPLE.MD index c2a7ff6989..dffc0f018c 100644 --- a/docs/generators/changelog/EXAMPLE.MD +++ b/docs/generators/changelog/EXAMPLE.MD @@ -1,36 +1,50 @@ ## vX.XX.X, 2023-XX-XX -### Highlights - +## Highlights +List the most important changes to catch people's attention. +Are there breaking changes? Mention it here and link them. +Are there exciting new features? Mention it here and link them. +For example: * MongoDB Server 6.x Support * Embedded Mongo now uses MongoDB 6.0.3 -* Some pr [GH someone] [PR #number] // this will become -> [someone](https://github.com/someone) [PR](https://github.com/meteor/meteor/pull/number) -#### Breaking Changes - -N/A - -#### Internal API changes - -N/A - -#### Migration Steps - -TODO - -#### Meteor Version Release -* `Command line`: - - Corrected typo in XX XX +## Migration Steps +Steps to migrate to this version. If it's a long one, we should have a migration guide page. -* `npm mongo @4.13.0`: // You can use @get-version to get the version of the package +## New Features +- Feature 1 description. PR Link. +- Feature 2 description. PR Link. +- Some feature. pr [GH someone] [PR #number] // this will become -> [someone](https://github.com/someone) [PR](https://github.com/meteor/meteor/pull/number) +- `Command line`: + - Added feature X +## Patch changes +- Patch Change 1 description. PR Link. +- Patch Change 2 description. PR Link. +- `npm mongo @4.13.0`: // You can use @get-version to get the version of the package - Updated MongoDB driver to version 4.13.0 -#### Special thanks to +## Breaking Changes +- Breaking change 1. +- Breaking change 1. +* `fetch@get-version`: + - X has changed + +## Docs +- Docs change 1. +- Docs change 2. + +## Core dependencies +Core dependency change 1. +Core dependency change 2. + +## Dependencies +Dependency change 1. +Dependency change 2. + +## Contributors +- Contributor 1. - [@XXX](https://github.com/XXXX). - For making this great framework even better! - - From a047e0407db2c3bea1b8c3d7ba46d5d34c564d80 Mon Sep 17 00:00:00 2001 From: Gabriel Grubba <70247653+Grubba27@users.noreply.github.com> Date: Mon, 9 Oct 2023 17:42:16 -0300 Subject: [PATCH 056/102] chore: updated dsl script to recognize new pattern --- docs/generators/changelog/script.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/generators/changelog/script.js b/docs/generators/changelog/script.js index d762fbb241..6a79e67dad 100755 --- a/docs/generators/changelog/script.js +++ b/docs/generators/changelog/script.js @@ -75,7 +75,7 @@ const main = async () => { // already have the contribuitors thanks in the file if ( - file.includes('#### Special thanks to') || + file.includes('## Contributors') || file.includes('[//]: # (Do not edit this file by hand.)') ) return file; @@ -86,7 +86,7 @@ const main = async () => { .map(name => `- [@${ name }](https://github.com/${ name }).`) .join('\n'); - const doneFile = `${ file }\n\n#### Special thanks to\n\n${ contribuitorsList }\n\n`; + const doneFile = `${ file }\n\n## Contributors\n\n${ contribuitorsList }\n\n`; //SIDE EFFECTS // so that this is not ran every time, we will update the last file. From f0257dc6ea445144d76f75f2765dfaa13b3e4751 Mon Sep 17 00:00:00 2001 From: Gabriel Grubba <70247653+Grubba27@users.noreply.github.com> Date: Mon, 9 Oct 2023 17:42:41 -0300 Subject: [PATCH 057/102] docs: updated 2.14 changelog with newer structure --- docs/generators/changelog/versions/2.14.md | 41 ++++++++++++++-------- 1 file changed, 27 insertions(+), 14 deletions(-) diff --git a/docs/generators/changelog/versions/2.14.md b/docs/generators/changelog/versions/2.14.md index d4f4c0083b..13d5eae2b5 100644 --- a/docs/generators/changelog/versions/2.14.md +++ b/docs/generators/changelog/versions/2.14.md @@ -8,20 +8,33 @@ Hacktoberfest release! 🎉 * Added guide on (how to prepare for Meteor 3.0 migration)[https://guide.meteor.com/prepare-meteor-3.0]. -#### Breaking Changes - -N/A - -#### Internal API changes - -* Tool - - Rename `EACCESS` to `EACCES` to follow the Windows spelling #### Migration Steps TODO -#### Meteor Version Release + +## New Features +- Option to disable sockjs cors headers. [PR #12789] + +## Patch changes +- Fixed EACCESS typo. [PR #12698] + +## Breaking Changes + +N/A + +## 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]. + +## Internal API changes + +* Tool + - Rename `EACCESS` to `EACCES` to follow the Windows spelling + +## Core dependencies * `ddp-server@get-version`: - Allow setting `DISABLE_SOCKJS_CORS` to prevent SockJS from setting CORS headers @@ -31,23 +44,23 @@ TODO - Update `whatwg-fetch` to version 3.6.17 * `accounts-passwordless@get-version` - - Fix #12401, ensure that user is found with ID + - Fix #12401, ensure that user is found with ID * `react-fast-refresh@get-version`: - Updated `semver` to version 7.5.4 - + * `facebook-oauth@get-version`: - Updated default version of Facebook GraphAPI to v17 -#### Independent Package Release +## Dependencies * `google-oauth@1.4.4`: - Remove logging request/response in google_server * NPM `@meteorjs/babel-preset-meteor@get-version` - - Add Facebook in-app browser + - Add Facebook in-app browser -#### Special thanks to +## Contributors - [@StorytellerCZ](https://github.com/sponsors/StorytellerCZ). - [@vit0rr](https://github.com/vit0rr) From 1be1f2f5d535cf3fefaabcbf8da048e780c4d445 Mon Sep 17 00:00:00 2001 From: Gabriel Grubba <70247653+Grubba27@users.noreply.github.com> Date: Mon, 9 Oct 2023 17:42:54 -0300 Subject: [PATCH 058/102] docs: added 2.14 migration guide --- guide/source/2.14-migration.md | 48 ++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 guide/source/2.14-migration.md diff --git a/guide/source/2.14-migration.md b/guide/source/2.14-migration.md new file mode 100644 index 0000000000..7b623187dd --- /dev/null +++ b/guide/source/2.14-migration.md @@ -0,0 +1,48 @@ +--- +title: Migrating to Meteor 2.14 +description: How to migrate your application to Meteor 2.14. +--- + +Most of the new features in Meteor 2.14 are either applied directly behind the +scenes (in a backwards compatible manner) or are opt-in. For a complete +breakdown of the changes, please refer to the [changelog](http://docs.meteor.com/changelog.html). + + +

Changes in Meteor 2.14

+ +TODO + + +

Migrating from a version older than 2.13?

+ +If you're migrating from a version of Meteor older than Meteor 2.13, there may +be important considerations not listed in this guide. + Please review the older migration guides for details: + +* [Migrating to Meteor 2.13](2.13-migration.html) (from 2.12) +* [Migrating to Meteor 2.12](2.12-migration.html) (from 2.11) +* [Migrating to Meteor 2.11](2.11-migration.html) (from 2.10) +* [Migrating to Meteor 2.10](2.10-migration.html) (from 2.9) +* [Migrating to Meteor 2.9](2.9-migration.html) (from 2.8) +* [Migrating to Meteor 2.8](2.8-migration.html) (from 2.7) +* [Migrating to Meteor 2.7](2.7-migration.html) (from 2.6) +* [Migrating to Meteor 2.6](2.6-migration.html) (from 2.5) +* [Migrating to Meteor 2.5](2.5-migration.html) (from 2.4) +* [Migrating to Meteor 2.4](2.4-migration.html) (from 2.3) +* [Migrating to Meteor 2.3](2.3-migration.html) (from 2.2) +* [Migrating to Meteor 2.2](2.2-migration.html) (from 2.0) +* [Migrating to Meteor 2.0](2.0-migration.html) (from 1.12) +* [Migrating to Meteor 1.12](1.12-migration.html) (from 1.11) +* [Migrating to Meteor 1.11](1.11-migration.html) (from 1.10.2) +* [Migrating to Meteor 1.10.2](1.10.2-migration.html) (from 1.10) +* [Migrating to Meteor 1.10](1.10-migration.html) (from 1.9.3) +* [Migrating to Meteor 1.9.3](1.9.3-migration.html) (from 1.9) +* [Migrating to Meteor 1.9](1.9-migration.html) (from 1.8.3) +* [Migrating to Meteor 1.8.3](1.8.3-migration.html) (from 1.8.2) +* [Migrating to Meteor 1.8.2](1.8.2-migration.html) (from 1.8) +* [Migrating to Meteor 1.8](1.8-migration.html) (from 1.7) +* [Migrating to Meteor 1.7](1.7-migration.html) (from 1.6) +* [Migrating to Meteor 1.6](1.6-migration.html) (from 1.5) +* [Migrating to Meteor 1.5](1.5-migration.html) (from 1.4) +* [Migrating to Meteor 1.4](1.4-migration.html) (from 1.3) +* [Migrating to Meteor 1.3](1.3-migration.html) (from 1.2) From c3a6c8bc0da715170b8a09197d8f12f7f3fb9718 Mon Sep 17 00:00:00 2001 From: Gabriel Grubba <70247653+Grubba27@users.noreply.github.com> Date: Mon, 9 Oct 2023 17:51:57 -0300 Subject: [PATCH 059/102] chore: released babel-preset-meteor@7.10.1 --- .../babel-preset-meteor/babel-presets-meteor/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/npm-packages/babel-preset-meteor/babel-presets-meteor/package.json b/npm-packages/babel-preset-meteor/babel-presets-meteor/package.json index 60da6fdc9a..ede8b177ef 100644 --- a/npm-packages/babel-preset-meteor/babel-presets-meteor/package.json +++ b/npm-packages/babel-preset-meteor/babel-presets-meteor/package.json @@ -1,6 +1,6 @@ { "name": "babel-preset-meteor", - "version": "7.10.0", + "version": "7.10.1", "description": "Babel preset for ES2015+ features supported by Meteor", "author": "Ben Newman ", "license": "MIT", From 9c05a263072f8cf89ae01342f086cbd69f337b1f Mon Sep 17 00:00:00 2001 From: Gabriel Grubba <70247653+Grubba27@users.noreply.github.com> Date: Mon, 9 Oct 2023 17:52:11 -0300 Subject: [PATCH 060/102] chore: updated the generated history.md --- docs/history.md | 117 ++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 113 insertions(+), 4 deletions(-) diff --git a/docs/history.md b/docs/history.md index 14d85cbb00..9bc28224f9 100644 --- a/docs/history.md +++ b/docs/history.md @@ -10,6 +10,78 @@ +## v2.14.0, 2023-10-XX + +### Highlights + +Hacktoberfest release! 🎉 + +* 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. + +* Added guide on (how to prepare for Meteor 3.0 migration)[https://guide.meteor.com/prepare-meteor-3.0]. + + +#### Migration Steps + +TODO + + +## New Features +- Option to disable sockjs cors headers. [PR](https://github.com/meteor/meteor/pull/12789) + +## Patch changes +- Fixed EACCESS typo. [PR](https://github.com/meteor/meteor/pull/12698) + +## Breaking Changes + +N/A + +## 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]. + +## Internal API changes + +* Tool + - Rename `EACCESS` to `EACCES` to follow the Windows spelling + +## Core dependencies + +* `ddp-server@2.6.2`: + - Allow setting `DISABLE_SOCKJS_CORS` to prevent SockJS from setting CORS headers + +* `fetch@0.1.4`: + - Update `node-fetch` to version 1.6.12 + - Update `whatwg-fetch` to version 3.6.17 + +* `accounts-passwordless@2.1.3` + - Fix #12401, ensure that user is found with ID + +* `react-fast-refresh@0.2.7`: + - Updated `semver` to version 7.5.4 + +* `facebook-oauth@1.11.3`: + - Updated default version of Facebook GraphAPI to v17 + +## Dependencies + +* `google-oauth@1.4.4`: + - Remove logging request/response in google_server + +* NPM `@meteorjs/babel-preset-meteor@7.10.1` + - Add Facebook in-app browser + +## Contributors + +- [@StorytellerCZ](https://github.com/sponsors/StorytellerCZ). +- [@vit0rr](https://github.com/vit0rr) +- [@realyze](https://github.com/realyze) +- [@jamauro](https://github.com/jamauro) +- [@Torgen](https://github.com/Torgen) + +For making this great framework even better! + ## v2.13.3, 2023-09-08 ### Highlights @@ -51,6 +123,12 @@ meteor update --release 2.13.3 For making this great framework even better! + + +## Contributors + + + ## v2.13.1, 2023-09-04 ### Highlights @@ -91,6 +169,12 @@ meteor update --release 2.13.1 For making this great framework even better! + + +## Contributors + + + ## v2.13.0, 2023-07-26 ### Highlights @@ -166,6 +250,12 @@ Please, follow our [migration guide](https://guide.meteor.com/2.13-migration) to - [@Atharshoyeb](https://github.com/Atharshoyeb). - [@Julusian](https://github.com/Julusian). - [@denihs](https://github.com/denihs). + + +## Contributors + + + ## v2.12.0, 2023-04-28 ### Highlights @@ -199,7 +289,7 @@ N/A #### Migration Steps -Now if you want to check where do you call old-style api methods +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. @@ -208,7 +298,7 @@ you can use ```WARN_WHEN_USING_OLD_API``` before starting your meteor process. * `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) + 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. @@ -220,7 +310,7 @@ you can use ```WARN_WHEN_USING_OLD_API``` before starting your meteor process. * `browser-policy-framing@1.1.2`: - Added `es5` compatible syntax. - + * `browser-policy@1.1.2`: - Updated test name. @@ -270,7 +360,7 @@ you can use ```WARN_WHEN_USING_OLD_API``` before starting your meteor process. * `mongo@1.16.6`: - Added `countDocuments` and `estimatedDocumentCount` types. - - Added warning for when old style apis are being used, to use this feature, + - 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) @@ -317,6 +407,12 @@ you can use ```WARN_WHEN_USING_OLD_API``` before starting your meteor process. - [@dmromanov](https://github.com/dmromanov). - [@matheusccastroo](https://github.com/matheusccastroo). + + +## Contributors + + + ## v2.11.0, 2023-03-02 ### Highlights @@ -455,6 +551,13 @@ For making this great framework even better! + +## Contributors + +- [@ebroder](https://github.com/ebroder). +- [@StorytellerCZ](https://github.com/StorytellerCZ). + + ## v2.10.0, 2023-01-13 ### Highlights @@ -540,6 +643,12 @@ N/A For making this great framework even better! +## Contributors + + + + + ## v2.9.1, 2022-12-27 From d852e9c018980de7711fa6ec8ee6050a6efe4f6e Mon Sep 17 00:00:00 2001 From: Gabriel Grubba <70247653+Grubba27@users.noreply.github.com> Date: Mon, 9 Oct 2023 17:52:33 -0300 Subject: [PATCH 061/102] docs, chore: updated 2.14 changelog with babel-preset version --- docs/generators/changelog/versions/2.14.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/generators/changelog/versions/2.14.md b/docs/generators/changelog/versions/2.14.md index 13d5eae2b5..42780175cb 100644 --- a/docs/generators/changelog/versions/2.14.md +++ b/docs/generators/changelog/versions/2.14.md @@ -57,7 +57,7 @@ N/A * `google-oauth@1.4.4`: - Remove logging request/response in google_server -* NPM `@meteorjs/babel-preset-meteor@get-version` +* NPM `@meteorjs/babel-preset-meteor@7.10.1` - Add Facebook in-app browser ## Contributors From ff9e356bc8a70c81a72ac71f52e57be796345c1d Mon Sep 17 00:00:00 2001 From: Harry Adel Date: Wed, 11 Oct 2023 02:22:35 +0300 Subject: [PATCH 062/102] Update Tracker manual link --- packages/tracker/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/tracker/README.md b/packages/tracker/README.md index 6c7fb404c1..26c309f29d 100644 --- a/packages/tracker/README.md +++ b/packages/tracker/README.md @@ -14,8 +14,8 @@ Tracker is essentially a simple _convention_, or interface, that lets reactive d This README has a short introduction to Tracker. For a complete guide to Tracker, consult the thorough and informative [Tracker -Manual](https://github.com/meteor/meteor/wiki/Tracker-Manual), which -is five times longer than the Tracker source code itself. You can also browse the API reference on the [main Meteor docs page](http://docs.meteor.com/#tracker). +Manual](https://github.com/meteor/docs/blob/version-NEXT/long-form/tracker-manual.md), which +is five times longer than the Tracker source code itself. You can also browse the API reference on the [main Meteor docs page](https://docs.meteor.com/api/tracker.html). ## Example From fb705b898c97ca7b8a3f08f5975554aa287ea979 Mon Sep 17 00:00:00 2001 From: Jan Dvorak Date: Wed, 11 Oct 2023 10:32:05 +0200 Subject: [PATCH 063/102] Add changelog for #12391 --- docs/generators/changelog/versions/2.14.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docs/generators/changelog/versions/2.14.md b/docs/generators/changelog/versions/2.14.md index 42780175cb..9edc5e47a1 100644 --- a/docs/generators/changelog/versions/2.14.md +++ b/docs/generators/changelog/versions/2.14.md @@ -36,6 +36,9 @@ N/A ## Core dependencies +* `accounts-base@get-version` + - Ensure that `onLogin` callback fires properly + * `ddp-server@get-version`: - Allow setting `DISABLE_SOCKJS_CORS` to prevent SockJS from setting CORS headers @@ -67,6 +70,7 @@ N/A - [@realyze](https://github.com/realyze) - [@jamauro](https://github.com/jamauro) - [@Torgen](https://github.com/Torgen) +- [@brucejo75](https://github.com/brucejo75) For making this great framework even better! From a16a8e28b5eadbaa7b39a66c922f3d59c1c41d1a Mon Sep 17 00:00:00 2001 From: Jan Dvorak Date: Wed, 11 Oct 2023 10:39:12 +0200 Subject: [PATCH 064/102] Add latest changes in tool to changelog --- docs/generators/changelog/versions/2.14.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docs/generators/changelog/versions/2.14.md b/docs/generators/changelog/versions/2.14.md index 9edc5e47a1..9d481a05d5 100644 --- a/docs/generators/changelog/versions/2.14.md +++ b/docs/generators/changelog/versions/2.14.md @@ -33,6 +33,9 @@ N/A * Tool - Rename `EACCESS` to `EACCES` to follow the Windows spelling + - Fixed links in skeletons + - Fixed build issue in Vue skeleton + - Updated `source-map-support` ## Core dependencies @@ -71,6 +74,7 @@ N/A - [@jamauro](https://github.com/jamauro) - [@Torgen](https://github.com/Torgen) - [@brucejo75](https://github.com/brucejo75) +- [@zodern](https://github.com/sponsors/zodern) For making this great framework even better! From 83b4a3ae42d29d5f1b7d5a49fd6b798a1660214a Mon Sep 17 00:00:00 2001 From: Jan Dvorak Date: Wed, 11 Oct 2023 14:15:30 +0200 Subject: [PATCH 065/102] Types for logging package --- packages/logging/logging.d.ts | 47 +++++++++++++++++++++++++++++++++++ packages/logging/package.js | 7 +++--- 2 files changed, 51 insertions(+), 3 deletions(-) create mode 100644 packages/logging/logging.d.ts diff --git a/packages/logging/logging.d.ts b/packages/logging/logging.d.ts new file mode 100644 index 0000000000..80a92e728b --- /dev/null +++ b/packages/logging/logging.d.ts @@ -0,0 +1,47 @@ +type LogJSONInput = { + message: string; + app?: string; + [index: string]: string | object | number; +}; + +type LogInput = string | LogJSONInput; + +type formatInput = { + message: string; + time: Date; + level: 'debug' | 'info' | 'warn' | 'error' + timeInexact?: boolean; + file: string; + line: number; + app?: string; + originApp?: string; + program?: string; + satellite?: string; + stderr?: string | Error; +}; + +export declare function Log(input: LogInput, ...optionalParams: any[]): void; + +export declare namespace Log { + var outputFormat: 'json' | 'colored-text'; + function _intercept(count: number): void; + function _suppress(count: number): void; + function _intercepted(): string[]; + function _getCallerDetails(): { line: number; file: string }; + function parse(line: object | string): object + function format(object: formatInput, options: { color: true }): object | string; + function objFromText( + line: string, + override: object + ): { + message: string + level: 'info' + time: Date + timeInexact: true + } + + function debug(input: LogInput, ...optionalParams: any[]): void; + function info(input: LogInput, ...optionalParams: any[]): void; + function warn(input: LogInput, ...optionalParams: any[]): void; + function error(input: LogInput, ...optionalParams: any[]): void; +} diff --git a/packages/logging/package.js b/packages/logging/package.js index e63e922b1b..f0c46a84b3 100644 --- a/packages/logging/package.js +++ b/packages/logging/package.js @@ -17,11 +17,12 @@ Package.onUse(function (api) { // here due to this package's dependency on // `String.prototype.padRight` which is polyfilled only in // `ecmascript-runtime-client@0.6.2` or newer. - api.use(['ejson', 'ecmascript', 'ecmascript-runtime-client']); + api.use(['ejson', 'ecmascript', 'typescript', 'ecmascript-runtime-client']); api.mainModule('logging.js'); - api.addFiles('logging_server.js', 'server') - api.addFiles('logging_browser.js', 'client') + api.addFiles('logging_server.js', 'server'); + api.addFiles('logging_browser.js', 'client'); api.mainModule('logging_cordova.js', 'web.cordova'); + api.addAssets('logging.d.ts', 'server'); }); Package.onTest(function (api) { From 926d9a7cc0e1e7c743e0fa644398c1dd1855964b Mon Sep 17 00:00:00 2001 From: Gabriel Grubba <70247653+Grubba27@users.noreply.github.com> Date: Wed, 11 Oct 2023 09:56:19 -0300 Subject: [PATCH 066/102] chore: updated script --- docs/generators/changelog/script.js | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/generators/changelog/script.js b/docs/generators/changelog/script.js index 6a79e67dad..8c691ffa0f 100755 --- a/docs/generators/changelog/script.js +++ b/docs/generators/changelog/script.js @@ -76,6 +76,7 @@ const main = async () => { // already have the contribuitors thanks in the file if ( file.includes('## Contributors') || + file.includes('#### Special thanks to') || // this must stay here for legacy reasons file.includes('[//]: # (Do not edit this file by hand.)') ) return file; From 13935036f49c6f41cafbdd2cd0b7b27ab10e8b72 Mon Sep 17 00:00:00 2001 From: Gabriel Grubba <70247653+Grubba27@users.noreply.github.com> Date: Wed, 11 Oct 2023 09:56:35 -0300 Subject: [PATCH 067/102] docs: regenerated history.md file --- docs/history.md | 45 ++++++++------------------------------------- 1 file changed, 8 insertions(+), 37 deletions(-) diff --git a/docs/history.md b/docs/history.md index 9bc28224f9..fa47a1dee7 100644 --- a/docs/history.md +++ b/docs/history.md @@ -45,9 +45,15 @@ N/A * Tool - Rename `EACCESS` to `EACCES` to follow the Windows spelling + - Fixed links in skeletons + - Fixed build issue in Vue skeleton + - Updated `source-map-support` ## Core dependencies +* `accounts-base@2.2.8` + - Ensure that `onLogin` callback fires properly + * `ddp-server@2.6.2`: - Allow setting `DISABLE_SOCKJS_CORS` to prevent SockJS from setting CORS headers @@ -79,6 +85,8 @@ N/A - [@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) For making this great framework even better! @@ -123,12 +131,6 @@ meteor update --release 2.13.3 For making this great framework even better! - - -## Contributors - - - ## v2.13.1, 2023-09-04 ### Highlights @@ -169,12 +171,6 @@ meteor update --release 2.13.1 For making this great framework even better! - - -## Contributors - - - ## v2.13.0, 2023-07-26 ### Highlights @@ -250,12 +246,6 @@ Please, follow our [migration guide](https://guide.meteor.com/2.13-migration) to - [@Atharshoyeb](https://github.com/Atharshoyeb). - [@Julusian](https://github.com/Julusian). - [@denihs](https://github.com/denihs). - - -## Contributors - - - ## v2.12.0, 2023-04-28 ### Highlights @@ -407,12 +397,6 @@ you can use ```WARN_WHEN_USING_OLD_API``` before starting your meteor process. - [@dmromanov](https://github.com/dmromanov). - [@matheusccastroo](https://github.com/matheusccastroo). - - -## Contributors - - - ## v2.11.0, 2023-03-02 ### Highlights @@ -551,13 +535,6 @@ For making this great framework even better! - -## Contributors - -- [@ebroder](https://github.com/ebroder). -- [@StorytellerCZ](https://github.com/StorytellerCZ). - - ## v2.10.0, 2023-01-13 ### Highlights @@ -643,12 +620,6 @@ N/A For making this great framework even better! -## Contributors - - - - - ## v2.9.1, 2022-12-27 From 44e3d18d59c031c8e83d5eefce9c021fd2b23a5b Mon Sep 17 00:00:00 2001 From: Jan Dvorak Date: Thu, 12 Oct 2023 13:42:03 +0200 Subject: [PATCH 068/102] Changelog entry for #12823 --- docs/generators/changelog/versions/2.14.md | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/docs/generators/changelog/versions/2.14.md b/docs/generators/changelog/versions/2.14.md index 9d481a05d5..0d487edcc1 100644 --- a/docs/generators/changelog/versions/2.14.md +++ b/docs/generators/changelog/versions/2.14.md @@ -53,10 +53,13 @@ N/A - Fix #12401, ensure that user is found with ID * `react-fast-refresh@get-version`: - - Updated `semver` to version 7.5.4 + - Updated `semver` to version 7.5.4 * `facebook-oauth@get-version`: - - Updated default version of Facebook GraphAPI to v17 + - Updated default version of Facebook GraphAPI to v17 + +* `logging@get-version`: + - Added TS types ## Dependencies From de88454dea558e09bcf7bca6c73e3ec95980cf67 Mon Sep 17 00:00:00 2001 From: Frederico Maia Date: Thu, 12 Oct 2023 11:15:02 -0300 Subject: [PATCH 069/102] Update core team members --- CONTRIBUTING.md | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index cf888289b2..9e27d3b550 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -29,9 +29,9 @@ Are you new here? Please [check](https://github.com/meteor/meteor/labels/good%20 We curate specific issues that would make great pull requests for community contributors by applying the `ready` label. -Any issue which does not have the `ready` label still requires discussion on implementation details but input and positive commentary is welcome! Any pull request opened on an issue which is not `confirmed` is still welcome, however the pull-request is more likely to be sent back for reworking than a `ready` issue. +Any issue that does not have the `ready` label still requires discussion on implementation details, but input and positive commentary are welcome! Any pull request opened on an issue that is not `confirmed` is still welcome. However, the pull request is more likely to be sent back for reworking than a `ready` issue. -If in doubt about the best way to implement something, please create additional conversation on the issue. You can also reach one of the [core committers](https://github.com/meteor/meteor/blob/devel/CONTRIBUTING.md#core-committer) and they will help you to find something interesting to work on. +If in doubt about the best way to implement something, please create additional conversation on the issue. You can also reach one of the [core committers](https://github.com/meteor/meteor/blob/devel/CONTRIBUTING.md#core-committer), and they will help you to find something interesting to work on. ### Project roles @@ -39,7 +39,7 @@ Here are descriptions of the existing project roles, along with the current cont #### Reviewer -Reviewers are members of the community that help with Pull Requests reviews. +Reviewers are members of the community who help with Pull Requests reviews. Current Reviewers: - [meteor](https://github.com/meteor/meteor) @@ -56,9 +56,9 @@ Current Reviewers: #### Core Committer -The contributors with commit access to meteor/meteor are employees of Meteor Software LP or community members who have distinguished themselves in other contribution areas or members of partner companies. If you want to become a core committer please start writing PRs. +The contributors with commit access to meteor/meteor are employees of Meteor Software LP or community members who have distinguished themselves in other contribution areas or members of partner companies. If you want to become a core committer, please start writing PRs. -Current Core Committers: +Current Core Team: - [@denihs](https://github.com/denihs) - [@zodern](https://github.com/zodern) - [@filipenevola](https://github.com/filipenevola) @@ -68,10 +68,7 @@ Current Core Committers: - [@StorytellerCZ](https://github.com/StorytellerCZ) - [@CaptainN](https://github.com/CaptainN) - [@radekmie](https://github.com/radekmie) -- [@piotrpospiech](https://github.com/piotrpospiech) -- [@edimarlnx](https://github.com/edimarlnx) - [@matheusccastroo](https://github.com/matheusccastroo) -- [@eduwr](https://github.com/eduwr) ### Tracking project work From 59e5ca887cf68d9e4205d6cdcd3e321d573af19f Mon Sep 17 00:00:00 2001 From: gunce Date: Fri, 13 Oct 2023 20:10:51 +0300 Subject: [PATCH 070/102] add: deprecated to jsDoc --- packages/mongo/mongo.d.ts | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/packages/mongo/mongo.d.ts b/packages/mongo/mongo.d.ts index 72199e0267..72a6d23655 100644 --- a/packages/mongo/mongo.d.ts +++ b/packages/mongo/mongo.d.ts @@ -107,6 +107,8 @@ export namespace Mongo { byteSize?: number, maxDocuments?: number ): Promise; + + /** @deprecated since 2.8 */ createIndex( indexSpec: NpmModuleMongodb.IndexSpecification, options?: NpmModuleMongodb.CreateIndexesOptions @@ -150,11 +152,13 @@ export namespace Mongo { ): Cursor>; /** * Finds the first document that matches the selector, as ordered by sort and skip options. Returns `undefined` if no matching document is found. + * @deprecated since 2.8 * @param selector A query describing the documents to find */ findOne(selector?: Selector | ObjectID | string): U | undefined; /** * Finds the first document that matches the selector, as ordered by sort and skip options. Returns `undefined` if no matching document is found. + * @deprecated since 2.8 * @param selector A query describing the documents to find */ findOne, 'limit'>>( @@ -178,17 +182,20 @@ export namespace Mongo { ): Promise | undefined>; /** * Gets the number of documents matching the filter. For a fast count of the total documents in a collection see `estimatedDocumentCount`. + * @deprecated * @param selector The query for filtering the set of documents to count * @param options All options are listed in [MongoDB documentation](https://mongodb.github.io/node-mongodb-native/4.11/interfaces/CountDocumentsOptions.html). Please note that not all of them are available on the client. */ countDocuments(selector?: Selector | ObjectID | string, options?: NpmModuleMongodb.CountDocumentsOptions): Promise; /** * Gets an estimate of the count of documents in a collection using collection metadata. For an exact count of the documents in a collection see `countDocuments`. + * @deprecated * @param options All options are listed in [MongoDB documentation](https://mongodb.github.io/node-mongodb-native/4.11/interfaces/CountDocumentsOptions.html). Please note that not all of them are available on the client. */ estimatedDocumentCount(options?: NpmModuleMongodb.EstimatedDocumentCountOptions): Promise; /** * Insert a document in the collection. Returns its unique _id. + * @deprecated since 2.8 * @param doc The document to insert. May not yet have an _id attribute, in which case Meteor will generate one for you. * @param callback If present, called with an error object as the first argument and, if no error, the _id as the second. */ @@ -211,6 +218,7 @@ export namespace Mongo { rawDatabase(): NpmModuleMongodb.Db; /** * Remove documents from the collection + * @deprecated since 2.8 * @param selector Specifies which documents to remove * @param callback If present, called with an error object as its argument. */ @@ -229,6 +237,7 @@ export namespace Mongo { ): Promise; /** * Modify one or more documents in the collection. Returns the number of matched documents. + * @deprecated since 2.8 * @param selector Specifies which documents to modify * @param modifier Specifies how to modify the documents * @param callback If present, called with an error object as the first argument and, if no error, the number of affected documents as the second. @@ -274,6 +283,7 @@ export namespace Mongo { /** * Modify one or more documents in the collection, or insert one if no matching documents were found. Returns an object with keys `numberAffected` (the number of documents modified) and * `insertedId` (the unique _id of the document that was inserted, if any). + * @deprecated since 2.8 * @param selector Specifies which documents to modify * @param modifier Specifies how to modify the documents * @param callback If present, called with an error object as the first argument and, if no error, the number of affected documents as the second. @@ -316,6 +326,7 @@ export namespace Mongo { options?: NpmModuleMongodb.CreateIndexesOptions ): void; _dropCollection(): Promise; + /** @deprecated since 2.8 */ _dropIndex(indexName: string): void; } From 7779d02c15961d8498b8620ae5455aa6e430792b Mon Sep 17 00:00:00 2001 From: gunce Date: Sun, 15 Oct 2023 18:03:34 +0300 Subject: [PATCH 071/102] rem: deprecated notice from jsDoc for countDocuments and estimatedDocumentCount --- packages/mongo/mongo.d.ts | 2 -- 1 file changed, 2 deletions(-) diff --git a/packages/mongo/mongo.d.ts b/packages/mongo/mongo.d.ts index 72a6d23655..e568075f34 100644 --- a/packages/mongo/mongo.d.ts +++ b/packages/mongo/mongo.d.ts @@ -182,14 +182,12 @@ export namespace Mongo { ): Promise | undefined>; /** * Gets the number of documents matching the filter. For a fast count of the total documents in a collection see `estimatedDocumentCount`. - * @deprecated * @param selector The query for filtering the set of documents to count * @param options All options are listed in [MongoDB documentation](https://mongodb.github.io/node-mongodb-native/4.11/interfaces/CountDocumentsOptions.html). Please note that not all of them are available on the client. */ countDocuments(selector?: Selector | ObjectID | string, options?: NpmModuleMongodb.CountDocumentsOptions): Promise; /** * Gets an estimate of the count of documents in a collection using collection metadata. For an exact count of the documents in a collection see `countDocuments`. - * @deprecated * @param options All options are listed in [MongoDB documentation](https://mongodb.github.io/node-mongodb-native/4.11/interfaces/CountDocumentsOptions.html). Please note that not all of them are available on the client. */ estimatedDocumentCount(options?: NpmModuleMongodb.EstimatedDocumentCountOptions): Promise; From 2e61956b10d30f0cc7269f20340bca550e2b0bd0 Mon Sep 17 00:00:00 2001 From: Akshar Goyal Date: Sun, 15 Oct 2023 19:19:21 -0400 Subject: [PATCH 072/102] Update README.md Improved the docs for better user experience --- README.md | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 16f6d2fc29..8cc560ad5c 100644 --- a/README.md +++ b/README.md @@ -82,7 +82,7 @@ meteor **Building an application with Meteor?** * Deploy on [Meteor Cloud](https://www.meteor.com/cloud) -* Discussion [Forums](https://forums.meteor.com/) +* Discuss on [Forums](https://forums.meteor.com/) * Join the Meteor community Slack by clicking this [invite link](https://join.slack.com/t/meteor-community/shared_invite/enQtODA0NTU2Nzk5MTA3LWY5NGMxMWRjZDgzYWMyMTEyYTQ3MTcwZmU2YjM5MTY3MjJkZjQ0NWRjOGZlYmIxZjFlYTA5Mjg4OTk3ODRiOTc). * Announcement list. Subscribe in the [footer](https://www.meteor.com/). @@ -94,4 +94,14 @@ Interested in helping or contributing to Meteor? These resources will help: * [Feature requests](https://github.com/meteor/meteor/discussions/) * [Issue tracker](https://github.com/meteor/meteor/issues) -To uninstall Meteor [read here](https://docs.meteor.com/install.html#uninstall). +To uninstall Meteor: + - If installed via npm, run: + ```shell + meteor-installer uninstall + ``` + - If installed via curl, run: + ```shell + rm -rf ~/.meteor + sudo rm /usr/local/bin/meteor + ``` +To find more information about installation, [read here](https://docs.meteor.com/install.html#uninstall). From 4efdbf99edf46bb5caaedfc5d7f5fa276a422dc8 Mon Sep 17 00:00:00 2001 From: Evan Broder Date: Fri, 18 Aug 2023 12:03:30 -0700 Subject: [PATCH 073/102] Fix type declaration for MethodApplyOptions --- packages/meteor/meteor.d.ts | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/packages/meteor/meteor.d.ts b/packages/meteor/meteor.d.ts index 8ebc07618b..76b326ec61 100644 --- a/packages/meteor/meteor.d.ts +++ b/packages/meteor/meteor.d.ts @@ -159,7 +159,13 @@ export namespace Meteor { */ function callAsync(name: string, ...args: any[]): Promise; - interface MethodApplyOptions { + interface MethodApplyOptions< + Result extends + | EJSONable + | EJSONable[] + | EJSONableProperty + | EJSONableProperty[] + > { /** * (Client only) If true, don't send this method until all previous method calls have completed, and don't send any subsequent method calls until this one is completed. */ @@ -203,7 +209,7 @@ export namespace Meteor { >( name: string, args: ReadonlyArray, - options?: MethodApplyOptions, + options?: MethodApplyOptions, asyncCallback?: ( error: global_Error | Meteor.Error | undefined, result?: Result From d5faaef831f14e24178b90dcef89293f82238281 Mon Sep 17 00:00:00 2001 From: Susheel Thapa <83917129+SusheelThapa@users.noreply.github.com> Date: Mon, 16 Oct 2023 22:15:11 +0545 Subject: [PATCH 074/102] Chore: Typo fixed in multiple files --- docs/generators/changelog/versions/0-before-2.10.md | 4 ++-- docs/history.md | 4 ++-- docs/long-form/oplog-observe-driver.md | 2 +- docs/source/api/accounts-multi.md | 2 +- docs/source/api/check.md | 2 +- docs/source/environment-variables.md | 4 ++-- docs/source/packages/fetch.md | 2 +- docs/source/packages/logging.md | 2 +- docs/source/packages/modules.md | 2 +- docs/source/packages/url.md | 2 +- docs/source/windows.md | 2 +- 11 files changed, 14 insertions(+), 14 deletions(-) diff --git a/docs/generators/changelog/versions/0-before-2.10.md b/docs/generators/changelog/versions/0-before-2.10.md index 9ee0122e33..1774e87739 100644 --- a/docs/generators/changelog/versions/0-before-2.10.md +++ b/docs/generators/changelog/versions/0-before-2.10.md @@ -441,7 +441,7 @@ N/A * `mongo@1.15.0` - New option `Meteor.settings.packages.mongo.reCreateIndexOnOptionMismatch` for case when an index with the same name, but different options exists it will be re-created. - - If there is an error on index creation Meteor will output a better message naming the collection and index where the error occured. [PR](https://github.com/meteor/meteor/pull/11995). + - 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` @@ -656,7 +656,7 @@ Read our [Migration Guide](https://guide.meteor.com/2.6-migration.html) for this - useUnifiedTopology is not an option anymore, it defaults to true. - native parser is not an option anymore, it defaults to false in the mongo connection. - poolSize not an option anymore, we are using max/minPoolSize for the same behavior on mongo connection. - - fields option is deprecated, we are maintaining a translation layer to "projection" field (now prefered) until the next minor version, where we will start showing alerts. + - 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. diff --git a/docs/history.md b/docs/history.md index 14d85cbb00..17a999f3d5 100644 --- a/docs/history.md +++ b/docs/history.md @@ -981,7 +981,7 @@ N/A * `mongo@1.15.0` - New option `Meteor.settings.packages.mongo.reCreateIndexOnOptionMismatch` for case when an index with the same name, but different options exists it will be re-created. - - If there is an error on index creation Meteor will output a better message naming the collection and index where the error occured. [PR](https://github.com/meteor/meteor/pull/11995). + - 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` @@ -9661,7 +9661,7 @@ Patches contributed by GitHub user benjaminchelli. * Terminate `phantomjs` properly on error when using the `spiderable` package. [#571](https://github.com/meteor/meteor/issues/571) -* Stop serving non-cachable files with caching headers. [#631](https://github.com/meteor/meteor/issues/631) +* Stop serving non-cacheable files with caching headers. [#631](https://github.com/meteor/meteor/issues/631) * Fix race condition if server restarted between page load and initial DDP connection. [#653](https://github.com/meteor/meteor/issues/653) diff --git a/docs/long-form/oplog-observe-driver.md b/docs/long-form/oplog-observe-driver.md index a1ba8a1a38..25ded4c09e 100644 --- a/docs/long-form/oplog-observe-driver.md +++ b/docs/long-form/oplog-observe-driver.md @@ -8,7 +8,7 @@ Most users don't use `observeChanges` directly, but whenever you return a cursor Previous versions of Meteor only had one strategy for implementing `observeChanges`: the "poll-and-diff" algorithm, implemented by the `PollingObserveDriver` class. This approach re-runs the query frequently and calculates the difference between each set of results. This code is simple and has historically contained very few bugs. But the cost of the `PollingObserveDriver` is proportional to the poll frequency and to the size of each query result, and the time from database change to callback invocation depends on whether the write originated in the same Meteor server process (very fast) or in another process (up to 10 seconds). -Starting with Meteor 0.7.0, Meteor can use an additional strategy to implemnt `observeChanges`: **oplog tailing**, implemented by the `OplogObserveDriver` class. +Starting with Meteor 0.7.0, Meteor can use an additional strategy to implement `observeChanges`: **oplog tailing**, implemented by the `OplogObserveDriver` class. Meteor now knows how to read the MongoDB "operations log" --- a special collection that records all the write operations as they are applied to your database. This means changes to the database can be instantly noticed and reflected in Meteor, whether they originated from Meteor or from an external database client. Oplog tailing has different performance characteristics than "poll-and-diff" which are superior in many cases. `OplogObserveDriver` needs to understand the meaning of MongoDB [selectors](http://docs.meteor.com/#selectors), [field specifiers](http://docs.meteor.com/#fieldspecifiers), [modifiers](http://docs.meteor.com/#modifiers), and [sort specifiers](http://docs.meteor.com/#sortspecifiers) at a much deeper level than `PollingObserveDriver`. This is because it actually needs to understand how write operations that it sees in the oplog interact with queries, instead of just relying on the MongoDB server to repeatedly execute the query. To deal with these structures, `OplogObserveDriver` uses Meteor's implementation of the MongoDB query engine, [Minimongo](https://github.com/meteor/meteor/tree/master/packages/minimongo), which Meteor also uses as its client-side local database cache. diff --git a/docs/source/api/accounts-multi.md b/docs/source/api/accounts-multi.md index 77cd5e259e..9171b2865f 100644 --- a/docs/source/api/accounts-multi.md +++ b/docs/source/api/accounts-multi.md @@ -297,7 +297,7 @@ The function will be called with a single argument, the info object: {% enddtdd %} {% dtdd name:"options" type:"Exception" %} - An optional arugment passed down from the oauth service that may contain + An optional argument passed down from the oauth service that may contain additional user profile information. As the data in `options` comes from an external source, make sure you validate any values you read from it. {% enddtdd %} diff --git a/docs/source/api/check.md b/docs/source/api/check.md index 7ecdcae7d8..5eada443de 100644 --- a/docs/source/api/check.md +++ b/docs/source/api/check.md @@ -1,6 +1,6 @@ --- title: Check -desription: Documentation on how to use check, Meteor's type checking library. +description: Documentation on how to use check, Meteor's type checking library. --- The `check` package includes pattern checking functions useful for checking the types and structure diff --git a/docs/source/environment-variables.md b/docs/source/environment-variables.md index 807851ac47..e839ad1144 100644 --- a/docs/source/environment-variables.md +++ b/docs/source/environment-variables.md @@ -15,7 +15,7 @@ See also: [`PORT`](#PORT). > In development, this can be accomplished with `meteor run --port a.b.c.d:port`. ## DDP_DEFAULT_CONNECTION_URL -(_develoment, production_) +(_development, production_) There are some situations where it is valuable for the meteor client to use a different DDP server than the `ROOT_URL` server. @@ -72,7 +72,7 @@ When running your bundled application in production mode, pass a string of JSON ## METEOR_SQLITE_JOURNAL_MODE (_development_) -The Meteor package catalog uses the `WAL` [SQLite Journal Mode](https://www.sqlite.org/pragma.html#pragma_journal_mode) by default. The Journal mode for the package catalog can be modifed by setting `METEOR_SQLITE_JOURNAL_MODE`. +The Meteor package catalog uses the `WAL` [SQLite Journal Mode](https://www.sqlite.org/pragma.html#pragma_journal_mode) by default. The Journal mode for the package catalog can be modified by setting `METEOR_SQLITE_JOURNAL_MODE`. When running multiple concurrent meteor servers on [Windows Subsystem for Linux (WSL)](https://docs.microsoft.com/en-us/windows/wsl/) some meteor developers have seen issues with the package catalog. Setting the environment variable `METEOR_SQLITE_JOURNAL_MODE=TRUNCATE` can overcome the issue. diff --git a/docs/source/packages/fetch.md b/docs/source/packages/fetch.md index 4f5176e374..016c0329f7 100644 --- a/docs/source/packages/fetch.md +++ b/docs/source/packages/fetch.md @@ -3,7 +3,7 @@ title: fetch description: Isomorphic modern/legacy/Node polyfill for WHATWG fetch(). --- -This package replaces the `http` package for HTTP calls. `fetch` package provides polyfill for the [WHATWG fetch specification](https://fetch.spec.whatwg.org/) for legacy browsers or defaults to the global class which is available in modern browsers and Node. It is recomended that you use this package for compatibility with non-modern browsers. +This package replaces the `http` package for HTTP calls. `fetch` package provides polyfill for the [WHATWG fetch specification](https://fetch.spec.whatwg.org/) for legacy browsers or defaults to the global class which is available in modern browsers and Node. It is recommended that you use this package for compatibility with non-modern browsers. For more information we recommend [reading the MDN articles](https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API) about it as this article covers only basic usage in Meteor. diff --git a/docs/source/packages/logging.md b/docs/source/packages/logging.md index 6c2013d7a2..8f3fa18338 100644 --- a/docs/source/packages/logging.md +++ b/docs/source/packages/logging.md @@ -3,7 +3,7 @@ title: logging description: Documentation of Meteor's logging utility --- -The `logging` package provides a standartised way for you to log and display in console various message from your application. +The `logging` package provides a standardised way for you to log and display in console various message from your application. The added benefit is that among other data it will show you the location where the log was fired, this is useful during debugging to quickly locate where the message is coming from. diff --git a/docs/source/packages/modules.md b/docs/source/packages/modules.md index 0f01c8ef6c..adc2b359c9 100644 --- a/docs/source/packages/modules.md +++ b/docs/source/packages/modules.md @@ -323,7 +323,7 @@ import { exportedPackageMethod } from "meteor/"; ``` > Note: Packages with `lazy` main modules cannot use `api.export` to export global -symbols to other packages/apps. Also, prior to Meteor 1.4.4.2 it is neccessary to explicitly name the file containing the module: `import "meteor//client.js"`. +symbols to other packages/apps. Also, prior to Meteor 1.4.4.2 it is necessary to explicitly name the file containing the module: `import "meteor//client.js"`. ## Local `node_modules` diff --git a/docs/source/packages/url.md b/docs/source/packages/url.md index a38971db91..4abeefcf5d 100644 --- a/docs/source/packages/url.md +++ b/docs/source/packages/url.md @@ -3,7 +3,7 @@ title: url description: Isomorphic modern/legacy/Node polyfill for WHATWG URL/URLSearchParams. --- -`url` package provides polyfill for the [WHATWG url specification](https://url.spec.whatwg.org/) for legacy browsers or defaults to the global class which is available in modern browsers and Node. It is recomended that you use this package for compatibility with non-modern browsers. +`url` package provides polyfill for the [WHATWG url specification](https://url.spec.whatwg.org/) for legacy browsers or defaults to the global class which is available in modern browsers and Node. It is recommended that you use this package for compatibility with non-modern browsers. For more information we recommend [reading the MDN articles](https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API) about it and looking over the [Node API documentation](https://nodejs.org/api/url.html#url_the_whatwg_url_api) for more details as this article covers only basic usage in Meteor. diff --git a/docs/source/windows.md b/docs/source/windows.md index b576296d8a..b457cdeb0a 100644 --- a/docs/source/windows.md +++ b/docs/source/windows.md @@ -16,7 +16,7 @@ Unexpected mongo exit code 3221225781. Restarting. Can't start Mongo server. ``` -You [probably](https://github.com/meteor/meteor/issues/10036#issuecomment-416485306) need to install `Visual C++ Redistributable for Visual Studio`, depending on your Windows and Meteor embbeded version of MongoDB the version of Visual Studio could be different. You can check the version that we are using in our Windows test environment [here](https://github.com/meteor/meteor/blob/devel/appveyor.yml#L10) +You [probably](https://github.com/meteor/meteor/issues/10036#issuecomment-416485306) need to install `Visual C++ Redistributable for Visual Studio`, depending on your Windows and Meteor embedded version of MongoDB the version of Visual Studio could be different. You can check the version that we are using in our Windows test environment [here](https://github.com/meteor/meteor/blob/devel/appveyor.yml#L10) Starting from MongoDB 4.4.4 we started to use Visual Studio 2019. From 053a13182aea64723c51a3932eb36886971928ef Mon Sep 17 00:00:00 2001 From: gunce Date: Mon, 16 Oct 2023 21:54:19 +0300 Subject: [PATCH 075/102] feat: better jsDoc for deprecated functions --- packages/mongo/mongo.d.ts | 28 ++++++++++++++++++++-------- 1 file changed, 20 insertions(+), 8 deletions(-) diff --git a/packages/mongo/mongo.d.ts b/packages/mongo/mongo.d.ts index e568075f34..21328eef90 100644 --- a/packages/mongo/mongo.d.ts +++ b/packages/mongo/mongo.d.ts @@ -108,7 +108,10 @@ export namespace Mongo { maxDocuments?: number ): Promise; - /** @deprecated since 2.8 */ + /** + * @deprecated since 2.8. Check migration guide {@link https://guide.meteor.com/2.8-migration} + * @see createIndexAsync + */ createIndex( indexSpec: NpmModuleMongodb.IndexSpecification, options?: NpmModuleMongodb.CreateIndexesOptions @@ -152,13 +155,15 @@ export namespace Mongo { ): Cursor>; /** * Finds the first document that matches the selector, as ordered by sort and skip options. Returns `undefined` if no matching document is found. - * @deprecated since 2.8 + * @deprecated since 2.8. Check migration guide {@link https://guide.meteor.com/2.8-migration} + * @see findOneAsync * @param selector A query describing the documents to find */ findOne(selector?: Selector | ObjectID | string): U | undefined; /** * Finds the first document that matches the selector, as ordered by sort and skip options. Returns `undefined` if no matching document is found. - * @deprecated since 2.8 + * @deprecated since 2.8. Check migration guide {@link https://guide.meteor.com/2.8-migration} + * @see findOneAsync * @param selector A query describing the documents to find */ findOne, 'limit'>>( @@ -193,7 +198,8 @@ export namespace Mongo { estimatedDocumentCount(options?: NpmModuleMongodb.EstimatedDocumentCountOptions): Promise; /** * Insert a document in the collection. Returns its unique _id. - * @deprecated since 2.8 + * @deprecated since 2.8. Check migration guide {@link https://guide.meteor.com/2.8-migration} + * @see insertAsync * @param doc The document to insert. May not yet have an _id attribute, in which case Meteor will generate one for you. * @param callback If present, called with an error object as the first argument and, if no error, the _id as the second. */ @@ -216,7 +222,8 @@ export namespace Mongo { rawDatabase(): NpmModuleMongodb.Db; /** * Remove documents from the collection - * @deprecated since 2.8 + * @deprecated since 2.8. Check migration guide {@link https://guide.meteor.com/2.8-migration} + * @see removeAsync * @param selector Specifies which documents to remove * @param callback If present, called with an error object as its argument. */ @@ -235,7 +242,8 @@ export namespace Mongo { ): Promise; /** * Modify one or more documents in the collection. Returns the number of matched documents. - * @deprecated since 2.8 + * @deprecated since 2.8. Check migration guide {@link https://guide.meteor.com/2.8-migration} + * @see updateAsync * @param selector Specifies which documents to modify * @param modifier Specifies how to modify the documents * @param callback If present, called with an error object as the first argument and, if no error, the number of affected documents as the second. @@ -281,7 +289,8 @@ export namespace Mongo { /** * Modify one or more documents in the collection, or insert one if no matching documents were found. Returns an object with keys `numberAffected` (the number of documents modified) and * `insertedId` (the unique _id of the document that was inserted, if any). - * @deprecated since 2.8 + * @deprecated since 2.8. Check migration guide {@link https://guide.meteor.com/2.8-migration} + * @see upsertAsync * @param selector Specifies which documents to modify * @param modifier Specifies how to modify the documents * @param callback If present, called with an error object as the first argument and, if no error, the number of affected documents as the second. @@ -324,7 +333,10 @@ export namespace Mongo { options?: NpmModuleMongodb.CreateIndexesOptions ): void; _dropCollection(): Promise; - /** @deprecated since 2.8 */ + /** + * @deprecated since 2.8. Check migration guide {@link https://guide.meteor.com/2.8-migration} + * @see dropIndexAsync + */ _dropIndex(indexName: string): void; } From fbab28afd5430784013243c115dc8f58d7959bb4 Mon Sep 17 00:00:00 2001 From: Jan Dvorak Date: Tue, 17 Oct 2023 14:00:09 +0200 Subject: [PATCH 076/102] Updated changelog --- docs/generators/changelog/versions/2.14.md | 47 +++++++++++++--------- 1 file changed, 29 insertions(+), 18 deletions(-) diff --git a/docs/generators/changelog/versions/2.14.md b/docs/generators/changelog/versions/2.14.md index 0d487edcc1..841acd96ae 100644 --- a/docs/generators/changelog/versions/2.14.md +++ b/docs/generators/changelog/versions/2.14.md @@ -4,22 +4,20 @@ Hacktoberfest release! 🎉 -* 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. +* MongoDB driver has been updated to v4.17.0 + +* 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 #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 #12742] + +* Appcache has been further deprecated and moved to the deprecated packages folder. #### Migration Steps TODO - -## New Features -- Option to disable sockjs cors headers. [PR #12789] - -## Patch changes -- Fixed EACCESS typo. [PR #12698] - ## Breaking Changes N/A @@ -36,32 +34,41 @@ N/A - Fixed links in skeletons - Fixed build issue in Vue skeleton - Updated `source-map-support` + - Fixed bugs in negated “in” and “instanceof” expressions -## Core dependencies +## Meteor Version Release * `accounts-base@get-version` - Ensure that `onLogin` callback fires properly +* `accounts-passwordless@get-version` + - Fix #12401, ensure that user is found with ID + * `ddp-server@get-version`: - Allow setting `DISABLE_SOCKJS_CORS` to prevent SockJS from setting CORS headers + - Added new publication strategy `NO_MERGE_MULTI` + +* `facebook-oauth@get-version`: + - Updated default version of Facebook GraphAPI to v17 * `fetch@get-version`: - Update `node-fetch` to version 1.6.12 - Update `whatwg-fetch` to version 3.6.17 -* `accounts-passwordless@get-version` - - Fix #12401, ensure that user is found with ID +* `logging@get-version`: + - Added TS types + +* `meteor@get-version`: + - Improve TS types + +* `npm-mongo@get-version`: + - Bumped MongoDB driver to version 4.17 * `react-fast-refresh@get-version`: - Updated `semver` to version 7.5.4 -* `facebook-oauth@get-version`: - - Updated default version of Facebook GraphAPI to v17 -* `logging@get-version`: - - Added TS types - -## Dependencies +## Independent releases * `google-oauth@1.4.4`: - Remove logging request/response in google_server @@ -71,13 +78,17 @@ N/A ## Contributors -- [@StorytellerCZ](https://github.com/sponsors/StorytellerCZ). +- [@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) For making this great framework even better! From 6f1aba76ad3588f309f9a47e7c770357b0c4dd61 Mon Sep 17 00:00:00 2001 From: Jan Dvorak Date: Tue, 17 Oct 2023 17:16:15 +0200 Subject: [PATCH 077/102] Cherry pick async indexes from #12647 --- packages/accounts-base/accounts_server.js | 16 ++++++++-------- packages/accounts-oauth/oauth_common.js | 2 +- packages/accounts-password/password_server.js | 12 ++++++------ .../accounts-passwordless/passwordless_server.js | 4 ++-- packages/oauth/pending_credentials.js | 6 +++--- .../service_configuration_server.js | 2 +- 6 files changed, 21 insertions(+), 21 deletions(-) diff --git a/packages/accounts-base/accounts_server.js b/packages/accounts-base/accounts_server.js index be8e2b0bcf..d674106eb8 100644 --- a/packages/accounts-base/accounts_server.js +++ b/packages/accounts-base/accounts_server.js @@ -1774,21 +1774,21 @@ const setupUsersCollection = users => { }); /// DEFAULT INDEXES ON USERS - users.createIndex('username', { unique: true, sparse: true }); - users.createIndex('emails.address', { unique: true, sparse: true }); - users.createIndex('services.resume.loginTokens.hashedToken', + users.createIndexAsync('username', { unique: true, sparse: true }); + users.createIndexAsync('emails.address', { unique: true, sparse: true }); + users.createIndexAsync('services.resume.loginTokens.hashedToken', { unique: true, sparse: true }); - users.createIndex('services.resume.loginTokens.token', + users.createIndexAsync('services.resume.loginTokens.token', { unique: true, sparse: true }); // For taking care of logoutOtherClients calls that crashed before the // tokens were deleted. - users.createIndex('services.resume.haveLoginTokensToDelete', + users.createIndexAsync('services.resume.haveLoginTokensToDelete', { sparse: true }); // For expiring login tokens - users.createIndex("services.resume.loginTokens.when", { sparse: true }); + users.createIndexAsync("services.resume.loginTokens.when", { sparse: true }); // For expiring password tokens - users.createIndex('services.password.reset.when', { sparse: true }); - users.createIndex('services.password.enroll.when', { sparse: true }); + users.createIndexAsync('services.password.reset.when', { sparse: true }); + users.createIndexAsync('services.password.enroll.when', { sparse: true }); }; diff --git a/packages/accounts-oauth/oauth_common.js b/packages/accounts-oauth/oauth_common.js index bfb99b0a5d..7762de91f8 100644 --- a/packages/accounts-oauth/oauth_common.js +++ b/packages/accounts-oauth/oauth_common.js @@ -36,7 +36,7 @@ Accounts.oauth.registerService = name => { // so this should be a unique index. You might want to add indexes for other // fields returned by your service (eg services.github.login) but you can do // that in your app. - Meteor.users.createIndex(`services.${name}.id`, {unique: true, sparse: true}); + Meteor.users.createIndexAsync(`services.${name}.id`, {unique: true, sparse: true}); } }; diff --git a/packages/accounts-password/password_server.js b/packages/accounts-password/password_server.js index 198b7a9c34..be65c679e5 100644 --- a/packages/accounts-password/password_server.js +++ b/packages/accounts-password/password_server.js @@ -1054,9 +1054,9 @@ Accounts.createUser = (options, callback) => { /// /// PASSWORD-SPECIFIC INDEXES ON USERS /// -Meteor.users.createIndex('services.email.verificationTokens.token', - { unique: true, sparse: true }); -Meteor.users.createIndex('services.password.reset.token', - { unique: true, sparse: true }); -Meteor.users.createIndex('services.password.enroll.token', - { unique: true, sparse: true }); +Meteor.users.createIndexAsync('services.email.verificationTokens.token', + { unique: true, sparse: true }); +Meteor.users.createIndexAsync('services.password.reset.token', + { unique: true, sparse: true }); +Meteor.users.createIndexAsync('services.password.enroll.token', + { unique: true, sparse: true }); diff --git a/packages/accounts-passwordless/passwordless_server.js b/packages/accounts-passwordless/passwordless_server.js index 928c5617c6..7175ac45ab 100644 --- a/packages/accounts-passwordless/passwordless_server.js +++ b/packages/accounts-passwordless/passwordless_server.js @@ -235,11 +235,11 @@ Accounts.sendLoginTokenEmail = ({ userId, sequence, email, extra = {} }) => { }; const setupUsersCollection = () => { - Meteor.users.createIndex('services.passwordless.tokens.token', { + Meteor.users.createIndexAsync('services.passwordless.tokens.token', { unique: true, sparse: true, }); - Meteor.users.createIndex('services.passwordless.token', { + Meteor.users.createIndexAsync('services.passwordless.token', { unique: true, sparse: true, }); diff --git a/packages/oauth/pending_credentials.js b/packages/oauth/pending_credentials.js index c9fc60cf80..5dcfd81d19 100644 --- a/packages/oauth/pending_credentials.js +++ b/packages/oauth/pending_credentials.js @@ -16,9 +16,9 @@ OAuth._pendingCredentials = new Mongo.Collection( _preventAutopublish: true }); -OAuth._pendingCredentials.createIndex('key', { unique: true }); -OAuth._pendingCredentials.createIndex('credentialSecret'); -OAuth._pendingCredentials.createIndex('createdAt'); +OAuth._pendingCredentials.createIndexAsync('key', { unique: true }); +OAuth._pendingCredentials.createIndexAsync('credentialSecret'); +OAuth._pendingCredentials.createIndexAsync('createdAt'); diff --git a/packages/service-configuration/service_configuration_server.js b/packages/service-configuration/service_configuration_server.js index c853b66933..16427463c4 100644 --- a/packages/service-configuration/service_configuration_server.js +++ b/packages/service-configuration/service_configuration_server.js @@ -5,7 +5,7 @@ import { Meteor } from 'meteor/meteor'; // otherwise lead to an inconsistent database state (when there are multiple // configurations for a single service, which configuration is correct?) try { - ServiceConfiguration.configurations.createIndex( + ServiceConfiguration.configurations.createIndexAsync( { service: 1 }, { unique: true } ); From 9ccef358dbf1a98ffc57ebad704eaa5420224c3d Mon Sep 17 00:00:00 2001 From: thiago Date: Fri, 20 Oct 2023 15:56:48 -0300 Subject: [PATCH 078/102] removing 'it will be updated' --- guide/source/using-node-v14.21.4.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/guide/source/using-node-v14.21.4.md b/guide/source/using-node-v14.21.4.md index 78c3721d8e..f4d467d606 100644 --- a/guide/source/using-node-v14.21.4.md +++ b/guide/source/using-node-v14.21.4.md @@ -35,7 +35,7 @@ You can find our official Docker images at the following links: - [meteor/node](https://hub.docker.com/r/meteor/node/tags) - [meteor/galaxy-app](https://hub.docker.com/r/meteor/galaxy-app/tags) - [meteor/galaxy-puppeteer](https://hub.docker.com/r/meteor/galaxy-puppeteer/tags) -- [meteor/base](https://hub.docker.com/r/meteor/meteor-base/tags) (It will be updated soon) +- [meteor/base](https://hub.docker.com/r/meteor/meteor-base/tags)

Installing Node.js in Linux

From 2ac936c87d3478aa6b57347588d200d7c966e889 Mon Sep 17 00:00:00 2001 From: Salman Hasni Date: Fri, 20 Oct 2023 16:27:04 -0400 Subject: [PATCH 079/102] added test cases for cordova-plugin-meteor-webapp plugin for subdirectory urls --- tools/tests/apps/hot-code-push-test/index.js | 17 ++++++ tools/tests/cordova-hcp.js | 64 ++++++++++++++++++++ tools/tool-testing/test-utils.js | 21 +++++++ 3 files changed, 102 insertions(+) create mode 100644 tools/tests/apps/hot-code-push-test/index.js diff --git a/tools/tests/apps/hot-code-push-test/index.js b/tools/tests/apps/hot-code-push-test/index.js new file mode 100644 index 0000000000..a843041312 --- /dev/null +++ b/tools/tests/apps/hot-code-push-test/index.js @@ -0,0 +1,17 @@ +if (Meteor.isClient) { + if (Meteor.isCordova) { + Meteor.startup(() => { + WebAppLocalServer.onError((e) => { + console.log("hot code push result: " + e.message) + }); + + WebAppLocalServer.onNewVersionReady(() => { + WebAppLocalServer.switchToPendingVersion(() => { + console.log("hot code push result: " + "app updated to new version"); + }); + }); + + WebAppLocalServer.checkForUpdates(); + }); + } +} diff --git a/tools/tests/cordova-hcp.js b/tools/tests/cordova-hcp.js index 850f9c0b15..ab5934867e 100644 --- a/tools/tests/cordova-hcp.js +++ b/tools/tests/cordova-hcp.js @@ -84,3 +84,67 @@ selftest.define( run.stop(); }); + +selftest.define( + "cordova plugin cordova-plugin-meteor-webapp should download manifest file for hot code push with subdirectory, and with trailing forward slash in server url and ROOT_URL", ["cordova", "slow"], function () { + var s = new Sandbox(); + var run; + + var ipAddress = testUtils.getPrivateIPAddress(); + + //url with subdirectory + s.set("ROOT_URL", `http://${ipAddress}:3000/app/`); + s.createApp("myapp", "hot-code-push-test"); + s.cd("myapp"); + + // Add 'android' to the .meteor/platforms file, just so that the + // Cordova boilerplate will be generated and served, without having + // to download the whole Android sdk. + var platforms = s.read(".meteor/platforms"); + s.write(".meteor/platforms", platforms + "\nandroid\n"); + + run = s.run("run", "android", "--mobile-server", `http://${ipAddress}:3000/app/`); + run.waitSecs(30); + run.match("Started your app"); + + //add new file to client side to trigger cordova app to check for new update + let randomString = (Math.random() + 1).toString(36).substring(7); + s.mkdir("client"); + s.write("client/test.js", `xyzVar = '${randomString}'`); + run.match("Client modified -- refreshing"); + //android should download manifest file from correct url and switch to new version of app + run.match("hot code push result: app updated to new version"); + run.stop(); +}); + +selftest.define( + "cordova plugin cordova-plugin-meteor-webapp should download manifest file for hot code push with subdirectory, and without trailing forward slash in server url and ROOT_URL", ["cordova", "slow"], function () { + var s = new Sandbox(); + var run; + + var ipAddress = testUtils.getPrivateIPAddress(); + + //url with subdirectory + s.set("ROOT_URL", `http://${ipAddress}:3000/app`); + s.createApp("myapp", "hot-code-push-test"); + s.cd("myapp"); + + // Add 'android' to the .meteor/platforms file, just so that the + // Cordova boilerplate will be generated and served, without having + // to download the whole Android sdk. + var platforms = s.read(".meteor/platforms"); + s.write(".meteor/platforms", platforms + "\nandroid\n"); + + run = s.run("run", "android", "--mobile-server", `http://${ipAddress}:3000/app`); + run.waitSecs(30); + run.match("Started your app"); + + //add new file to client side to trigger cordova app to check for new update + let randomString = (Math.random() + 1).toString(36).substring(7); + s.mkdir("client"); + s.write("client/test.js", `xyzVar = '${randomString}'`); + run.match("Client modified -- refreshing"); + //android should download manifest file from correct url and switch to new version of app + run.match("hot code push result: app updated to new version"); + run.stop(); +}); \ No newline at end of file diff --git a/tools/tool-testing/test-utils.js b/tools/tool-testing/test-utils.js index 1a5dafd0f5..a1c0018480 100644 --- a/tools/tool-testing/test-utils.js +++ b/tools/tool-testing/test-utils.js @@ -4,6 +4,7 @@ import { withAccountsConnection } from '../meteor-services/auth.js'; import { fail, markStack } from './selftest.js'; import { request } from '../utils/http-helpers.js'; import { loadIsopackage } from '../tool-env/isopackets.js'; +import { networkInterfaces } from 'os'; export function randomString(charsCount) { var chars = 'abcdefghijklmnopqrstuvwxyz'; @@ -148,3 +149,23 @@ export function markThrowingMethods(prototype) { } }); } + +export function getPrivateIPAddress() { + const nets = networkInterfaces(); + let localIp = ""; + Object.keys(nets).some((name)=> { + let ret = false; + for (const net of nets[name]) { + // Skip over non-IPv4, bridge and internal (i.e. 127.0.0.1) addresses + // 'IPv4' is in Node <= 17, from 18 it's a number 4 or 6 + const familyV4Value = typeof net.family === 'string' ? 'IPv4' : 4 + if ((net.family === familyV4Value && !net.internal) && !name.startsWith('br')) { + localIp = net.address; + ret = true; + break; + } + } + return ret; + }) + return localIp +} \ No newline at end of file From 9b7fa73718e01d71e9e87280d328beb9c809aee0 Mon Sep 17 00:00:00 2001 From: Jan Dvorak Date: Mon, 23 Oct 2023 08:30:57 +0200 Subject: [PATCH 080/102] Update and deprecate crosswalk --- packages/crosswalk/package.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/packages/crosswalk/package.js b/packages/crosswalk/package.js index 2e7d8b382b..90083482c2 100644 --- a/packages/crosswalk/package.js +++ b/packages/crosswalk/package.js @@ -2,9 +2,10 @@ Package.describe({ summary: "Makes your Cordova application use the Crosswalk WebView \ instead of the System WebView on Android", version: '1.7.1', - documentation: null + documentation: null, + deprecated: true }); Cordova.depends({ - 'cordova-plugin-crosswalk-webview': '2.3.0' + 'cordova-plugin-crosswalk-webview': '2.4.0' }); From 577df40c5b091143a44880bedd8ea3e8e53ec17d Mon Sep 17 00:00:00 2001 From: Vic <88368191+jdgjsag67251@users.noreply.github.com> Date: Tue, 24 Oct 2023 12:20:10 +0200 Subject: [PATCH 081/102] Fixed issue with iPads being marked as non-modern --- packages/modern-browsers/modern.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/modern-browsers/modern.js b/packages/modern-browsers/modern.js index 14476284d3..3ffaf5f212 100644 --- a/packages/modern-browsers/modern.js +++ b/packages/modern-browsers/modern.js @@ -32,7 +32,7 @@ const browserAliases = { // The webapp package converts browser names to camel case, so // mobile_safari and mobileSafari should be synonymous. - mobile_safari: ['mobileSafari', 'mobileSafariUI', 'mobileSafariUI/WKWebView'], + mobile_safari: ['mobileSafari', 'mobileSafariUI', 'mobileSafariUI/WKWebView', 'appleMail'], }; // Expand the given minimum versions by reusing chrome versions for From 619ccc8f01862a8676012b40b133390f8a82cf2f Mon Sep 17 00:00:00 2001 From: Vic <88368191+jdgjsag67251@users.noreply.github.com> Date: Tue, 24 Oct 2023 12:29:02 +0200 Subject: [PATCH 082/102] Fixed alias --- packages/modern-browsers/modern.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/modern-browsers/modern.js b/packages/modern-browsers/modern.js index 3ffaf5f212..19ff2734ae 100644 --- a/packages/modern-browsers/modern.js +++ b/packages/modern-browsers/modern.js @@ -32,7 +32,10 @@ const browserAliases = { // The webapp package converts browser names to camel case, so // mobile_safari and mobileSafari should be synonymous. - mobile_safari: ['mobileSafari', 'mobileSafariUI', 'mobileSafariUI/WKWebView', 'appleMail'], + mobile_safari: ['mobileSafari', 'mobileSafariUI', 'mobileSafariUI/WKWebView'], + + // Embedded WebViews on iPads will be reported as Apple Mail + safari: ['appleMail'], }; // Expand the given minimum versions by reusing chrome versions for From 29b2a212a79405fb85e34deb554ae8bbaff5a888 Mon Sep 17 00:00:00 2001 From: Vic <88368191+jdgjsag67251@users.noreply.github.com> Date: Tue, 24 Oct 2023 12:29:07 +0200 Subject: [PATCH 083/102] Added test --- packages/modern-browsers/modern-tests.js | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/packages/modern-browsers/modern-tests.js b/packages/modern-browsers/modern-tests.js index 38711df3ca..eaac754918 100644 --- a/packages/modern-browsers/modern-tests.js +++ b/packages/modern-browsers/modern-tests.js @@ -29,4 +29,11 @@ Tinytest.add('modern-browsers - versions - basic', function (test) { minor: 5, patch: 2, })); + + test.isTrue(isModern({ + name: "appleMail", + major: 605, + minor: 1, + patch: 15, + })); }); From 8b9e4a7cb58e2bbbad2797cd39e12a4206b47e35 Mon Sep 17 00:00:00 2001 From: Gabriel Grubba <70247653+Grubba27@users.noreply.github.com> Date: Tue, 24 Oct 2023 11:16:11 -0300 Subject: [PATCH 084/102] update version number in cordova-plugin .json --- npm-packages/cordova-plugin-meteor-webapp/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/npm-packages/cordova-plugin-meteor-webapp/package.json b/npm-packages/cordova-plugin-meteor-webapp/package.json index e38a37b301..e1c2db748e 100644 --- a/npm-packages/cordova-plugin-meteor-webapp/package.json +++ b/npm-packages/cordova-plugin-meteor-webapp/package.json @@ -1,6 +1,6 @@ { "name": "cordova-plugin-meteor-webapp", - "version": "2.0.0", + "version": "2.0.2", "description": "Cordova plugin that serves a Meteor web app through a local server and implements hot code push", "cordova": { "id": "cordova-plugin-meteor-webapp", From 69b287b64971bca47b3cf25b6ca8a87f99e3d841 Mon Sep 17 00:00:00 2001 From: Jan Dvorak Date: Tue, 24 Oct 2023 17:08:47 +0200 Subject: [PATCH 085/102] Add note about cordova-plugin-meteor-webapp@2.0.2 --- docs/generators/changelog/versions/2.14.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docs/generators/changelog/versions/2.14.md b/docs/generators/changelog/versions/2.14.md index 841acd96ae..a4af5686cb 100644 --- a/docs/generators/changelog/versions/2.14.md +++ b/docs/generators/changelog/versions/2.14.md @@ -76,6 +76,9 @@ N/A * 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 + ## Contributors - [@StorytellerCZ](https://github.com/sponsors/StorytellerCZ) @@ -89,6 +92,7 @@ N/A - [@alisnic](https://github.com/alisnic) - [@ebroder](https://github.com/ebroder) - [@BANSAL-NISHU](https://github.com/BANSAL-NISHU) +- [@salmanhasni](https://github.com/salmanhasni) For making this great framework even better! From 3be98b70f8e45346919b8438a54b69e9991a4e9c Mon Sep 17 00:00:00 2001 From: Jan Dvorak Date: Tue, 24 Oct 2023 17:18:39 +0200 Subject: [PATCH 086/102] Type commonjs for npm packages Future proof NPM packages by adding `"type": "commonjs"` to `package.json`. See: https://github.com/nodejs/node/releases/tag/v21.1.0 --- .../babel-preset-meteor/babel-presets-meteor/package.json | 3 ++- npm-packages/cordova-plugin-meteor-webapp/package.json | 3 ++- npm-packages/eslint-config-meteor/package.json | 3 ++- npm-packages/eslint-plugin-meteor/package.json | 3 ++- npm-packages/meteor-babel/package.json | 3 ++- npm-packages/meteor-installer/package.json | 3 ++- npm-packages/meteor-node-stubs/package.json | 3 ++- npm-packages/meteor-promise/package.json | 3 ++- 8 files changed, 16 insertions(+), 8 deletions(-) diff --git a/npm-packages/babel-preset-meteor/babel-presets-meteor/package.json b/npm-packages/babel-preset-meteor/babel-presets-meteor/package.json index ede8b177ef..fc00d9bed9 100644 --- a/npm-packages/babel-preset-meteor/babel-presets-meteor/package.json +++ b/npm-packages/babel-preset-meteor/babel-presets-meteor/package.json @@ -1,11 +1,12 @@ { "name": "babel-preset-meteor", - "version": "7.10.1", + "version": "7.10.2", "description": "Babel preset for ES2015+ features supported by Meteor", "author": "Ben Newman ", "license": "MIT", "repository": "https://github.com/meteor/babel-preset-meteor", "main": "index.js", + "type": "commonjs", "scripts": { "update-versions": "bash scripts/update-versions" }, diff --git a/npm-packages/cordova-plugin-meteor-webapp/package.json b/npm-packages/cordova-plugin-meteor-webapp/package.json index e1c2db748e..adafb7399e 100644 --- a/npm-packages/cordova-plugin-meteor-webapp/package.json +++ b/npm-packages/cordova-plugin-meteor-webapp/package.json @@ -1,6 +1,6 @@ { "name": "cordova-plugin-meteor-webapp", - "version": "2.0.2", + "version": "2.0.3", "description": "Cordova plugin that serves a Meteor web app through a local server and implements hot code push", "cordova": { "id": "cordova-plugin-meteor-webapp", @@ -22,6 +22,7 @@ ], "author": "Meteor Development Group", "license": "MIT", + "type": "commonjs", "scripts": { "pretest": "ios-sim start --devicetypeid=iPhone-11-Pro-Max", "test": "cordova-paramedic --plugin . --platform ios --target 'iPhone-11-Pro-Max' --args=--buildFlag='-UseModernBuildSystem=0' --verbose" diff --git a/npm-packages/eslint-config-meteor/package.json b/npm-packages/eslint-config-meteor/package.json index 6b1d62defe..001b65df52 100644 --- a/npm-packages/eslint-config-meteor/package.json +++ b/npm-packages/eslint-config-meteor/package.json @@ -1,6 +1,6 @@ { "name": "@meteorjs/eslint-config-meteor", - "version": "1.0.4", + "version": "1.0.5", "description": "Eslint configuration for Meteor", "main": "index.js", "scripts": { @@ -16,6 +16,7 @@ "url": "https://github.com/meteor/meteor/issues" }, "homepage": "https://github.com/meteor/meteor/tree/devel/npm-packages/eslint-config-meteor#readme", + "type": "commonjs", "peerDependencies": { "babel-eslint": ">= 7", "eslint": ">= 3", diff --git a/npm-packages/eslint-plugin-meteor/package.json b/npm-packages/eslint-plugin-meteor/package.json index 7845d884a3..8eb64bd0c1 100644 --- a/npm-packages/eslint-plugin-meteor/package.json +++ b/npm-packages/eslint-plugin-meteor/package.json @@ -1,9 +1,10 @@ { "name": "eslint-plugin-meteor", - "version": "7.4.0", + "version": "7.4.1", "author": "Dominik Ferber ", "description": "Meteor specific linting rules for ESLint", "main": "lib/index.js", + "type": "commonjs", "publishConfig": { "tag": "next" }, diff --git a/npm-packages/meteor-babel/package.json b/npm-packages/meteor-babel/package.json index c52337d855..a7ef54537d 100644 --- a/npm-packages/meteor-babel/package.json +++ b/npm-packages/meteor-babel/package.json @@ -1,8 +1,9 @@ { "name": "@meteorjs/babel", "author": "Meteor ", - "version": "7.18.0-beta.6", + "version": "7.18.0", "license": "MIT", + "type": "commonjs", "description": "Babel wrapper package for use with Meteor", "keywords": [ "meteor", diff --git a/npm-packages/meteor-installer/package.json b/npm-packages/meteor-installer/package.json index 0465731d17..53e0603ffa 100644 --- a/npm-packages/meteor-installer/package.json +++ b/npm-packages/meteor-installer/package.json @@ -1,6 +1,6 @@ { "name": "meteor", - "version": "2.13.3", + "version": "2.13.4", "description": "Install Meteor", "main": "install.js", "scripts": { @@ -8,6 +8,7 @@ }, "author": "zodern", "license": "MIT", + "type": "commonjs", "dependencies": { "7zip-bin": "^5.2.0", "cli-progress": "^3.11.1", diff --git a/npm-packages/meteor-node-stubs/package.json b/npm-packages/meteor-node-stubs/package.json index d422247d65..baf02fdbd3 100644 --- a/npm-packages/meteor-node-stubs/package.json +++ b/npm-packages/meteor-node-stubs/package.json @@ -2,10 +2,11 @@ "name": "meteor-node-stubs", "author": "Ben Newman ", "description": "Stub implementations of Node built-in modules, a la Browserify", - "version": "1.2.5", + "version": "1.2.6", "main": "index.js", "license": "MIT", "homepage": "https://github.com/meteor/meteor/blob/devel/npm-packages/meteor-node-stubs/README.md", + "type": "commonjs", "scripts": { "prepare": "node scripts/build-deps.js" }, diff --git a/npm-packages/meteor-promise/package.json b/npm-packages/meteor-promise/package.json index ddad4c87d8..3484721ce2 100644 --- a/npm-packages/meteor-promise/package.json +++ b/npm-packages/meteor-promise/package.json @@ -1,8 +1,9 @@ { "name": "meteor-promise", "author": "Ben Newman ", - "version": "0.9.1", + "version": "0.9.2", "description": "ES6 Promise polyfill with Fiber support", + "type": "commonjs", "keywords": [ "meteor", "promise", From eac0442c48a7600552a999617ab704129b15c262 Mon Sep 17 00:00:00 2001 From: Gabriel Grubba <70247653+Grubba27@users.noreply.github.com> Date: Wed, 25 Oct 2023 17:34:24 -0300 Subject: [PATCH 087/102] backport createUserAsync from #12787 --- packages/accounts-password/password_client.js | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/packages/accounts-password/password_client.js b/packages/accounts-password/password_client.js index 00eeb26dbe..d0cce4a147 100644 --- a/packages/accounts-password/password_client.js +++ b/packages/accounts-password/password_client.js @@ -121,6 +121,29 @@ Accounts.createUser = (options, callback) => { }); }; + +/** + * @summary Create a new user and returns a promise of its result. + * @locus Anywhere + * @param {Object} options + * @param {String} options.username A unique name for this user. + * @param {String} options.email The user's email address. + * @param {String} options.password The user's password. This is __not__ sent in plain text over the wire. + * @param {Object} options.profile The user's profile, typically including the `name` field. + * @importFromPackage accounts-base + */ +Accounts.createUserAsync = (options) => { + return new Promise((resolve, reject) => + Accounts.createUser(options, (e) => { + if (e) { + reject(e); + } else { + resolve(); + } + }) + ); +}; + // Change password. Must be logged in. // // @param oldPassword {String|null} By default servers no longer allow From 8032656753d9a70243dc59025c938d6501a2c2d1 Mon Sep 17 00:00:00 2001 From: Gabriel Grubba <70247653+Grubba27@users.noreply.github.com> Date: Thu, 26 Oct 2023 14:44:16 -0300 Subject: [PATCH 088/102] Update package.js of accounts-password --- packages/accounts-password/package.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/accounts-password/package.js b/packages/accounts-password/package.js index a6671e38af..7503faee04 100644 --- a/packages/accounts-password/package.js +++ b/packages/accounts-password/package.js @@ -5,7 +5,7 @@ Package.describe({ // 2.2.x in the future. The version was also bumped to 2.0.0 temporarily // during the Meteor 1.5.1 release process, so versions 2.0.0-beta.2 // through -beta.5 and -rc.0 have already been published. - version: '2.3.4', + version: '2.4.0', }); Npm.depends({ From f24ca55e7d2f761d0cfc2f8472db060bea780be2 Mon Sep 17 00:00:00 2001 From: Gabriel Grubba <70247653+Grubba27@users.noreply.github.com> Date: Thu, 26 Oct 2023 14:44:27 -0300 Subject: [PATCH 089/102] Add docs for createUserAsync --- docs/generators/changelog/versions/2.14.md | 5 ++ docs/history.md | 59 +++++++++++++++------- docs/source/api/passwords.md | 6 ++- 3 files changed, 51 insertions(+), 19 deletions(-) diff --git a/docs/generators/changelog/versions/2.14.md b/docs/generators/changelog/versions/2.14.md index a4af5686cb..cc7065445b 100644 --- a/docs/generators/changelog/versions/2.14.md +++ b/docs/generators/changelog/versions/2.14.md @@ -14,6 +14,8 @@ Hacktoberfest release! 🎉 * Appcache has been further deprecated and moved to the deprecated packages folder. +* Added `Accounts.createUserAsync` into the client. + #### Migration Steps TODO @@ -41,6 +43,9 @@ N/A * `accounts-base@get-version` - Ensure that `onLogin` callback fires properly +* `accounts-password@get-version` + - Add `Accounts.createUserAsync` to the client, a promise-based version of `Accounts.createUser` + * `accounts-passwordless@get-version` - Fix #12401, ensure that user is found with ID diff --git a/docs/history.md b/docs/history.md index 2189ad08ca..ca0be132a3 100644 --- a/docs/history.md +++ b/docs/history.md @@ -16,22 +16,22 @@ Hacktoberfest release! 🎉 -* 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. +* MongoDB driver has been updated to v4.17.0 + +* 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. #### Migration Steps TODO - -## New Features -- Option to disable sockjs cors headers. [PR](https://github.com/meteor/meteor/pull/12789) - -## Patch changes -- Fixed EACCESS typo. [PR](https://github.com/meteor/meteor/pull/12698) - ## Breaking Changes N/A @@ -48,29 +48,44 @@ N/A - Fixed links in skeletons - Fixed build issue in Vue skeleton - Updated `source-map-support` + - Fixed bugs in negated “in” and “instanceof” expressions -## Core dependencies +## Meteor Version Release * `accounts-base@2.2.8` - Ensure that `onLogin` callback fires properly +* `accounts-password@2.4.0` + - Add `Accounts.createUserAsync` to the client, a promise-based version of `Accounts.createUser` + +* `accounts-passwordless@2.1.3` + - Fix #12401, ensure that user is found with ID + * `ddp-server@2.6.2`: - Allow setting `DISABLE_SOCKJS_CORS` to prevent SockJS from setting CORS headers + - Added new publication strategy `NO_MERGE_MULTI` + +* `facebook-oauth@1.11.3`: + - Updated default version of Facebook GraphAPI to v17 * `fetch@0.1.4`: - Update `node-fetch` to version 1.6.12 - Update `whatwg-fetch` to version 3.6.17 -* `accounts-passwordless@2.1.3` - - Fix #12401, ensure that user is found with ID +* `logging@1.3.2`: + - Added TS types + +* `meteor@1.11.3`: + - Improve TS types + +* `npm-mongo@4.17.0`: + - Bumped MongoDB driver to version 4.17 * `react-fast-refresh@0.2.7`: - - Updated `semver` to version 7.5.4 + - Updated `semver` to version 7.5.4 -* `facebook-oauth@1.11.3`: - - Updated default version of Facebook GraphAPI to v17 -## Dependencies +## Independent releases * `google-oauth@1.4.4`: - Remove logging request/response in google_server @@ -78,15 +93,23 @@ N/A * 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 + ## Contributors -- [@StorytellerCZ](https://github.com/sponsors/StorytellerCZ). +- [@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) For making this great framework even better! @@ -1276,7 +1299,7 @@ Read our [Migration Guide](https://guide.meteor.com/2.6-migration.html) for this - useUnifiedTopology is not an option anymore, it defaults to true. - native parser is not an option anymore, it defaults to false in the mongo connection. - poolSize not an option anymore, we are using max/minPoolSize for the same behavior on mongo connection. - - fields option is deprecated, we are maintaining a translation layer to "projection" field (now prefered) until the next minor version, where we will start showing alerts. + - 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. @@ -9741,7 +9764,7 @@ Patches contributed by GitHub user benjaminchelli. * Terminate `phantomjs` properly on error when using the `spiderable` package. [#571](https://github.com/meteor/meteor/issues/571) -* Stop serving non-cacheable files with caching headers. [#631](https://github.com/meteor/meteor/issues/631) +* Stop serving non-cachable files with caching headers. [#631](https://github.com/meteor/meteor/issues/631) * Fix race condition if server restarted between page load and initial DDP connection. [#653](https://github.com/meteor/meteor/issues/653) diff --git a/docs/source/api/passwords.md b/docs/source/api/passwords.md index a1967e174e..0a643930d7 100644 --- a/docs/source/api/passwords.md +++ b/docs/source/api/passwords.md @@ -27,6 +27,10 @@ include a turn-key user interface for password-based sign-in. {% apibox "Accounts.createUser" %} +Or a promise based version of `Accounts.createUser`: + +{% apibox "Accounts.createUserAsync" %} + On the client, this function logs in as the newly created user on successful completion. On the server, it returns the newly created user id. @@ -60,7 +64,7 @@ email with a link the user can use to verify their email address. {% apibox "Accounts.verifyEmail" %} If the user trying to verify the email has 2FA enabled, this error will be thrown: -* "Email verified, but user not logged in because 2FA is enabled [2fa-enabled]": No longer signing in the user automatically if the user has 2FA enabled. +* "Email verified, but user not logged in because 2FA is enabled [2fa-enabled]": No longer signing in the user automatically if the user has 2FA enabled. This function accepts tokens passed into the callback registered with From 5b8a8e71bf042b61e8ebd60a192a4620d6986d3a Mon Sep 17 00:00:00 2001 From: Jan Dvorak Date: Fri, 27 Oct 2023 14:35:27 +0200 Subject: [PATCH 090/102] Update changelog with latest merges --- docs/generators/changelog/versions/2.14.md | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/docs/generators/changelog/versions/2.14.md b/docs/generators/changelog/versions/2.14.md index cc7065445b..990b47b537 100644 --- a/docs/generators/changelog/versions/2.14.md +++ b/docs/generators/changelog/versions/2.14.md @@ -42,12 +42,22 @@ N/A * `accounts-base@get-version` - Ensure that `onLogin` callback fires properly + - Indexes are now created asynchronously + +* `accounts-oauth@get-version` + - Indexes are now created asynchronously * `accounts-password@get-version` - Add `Accounts.createUserAsync` to the client, a promise-based version of `Accounts.createUser` + - Indexes are now created asynchronously * `accounts-passwordless@get-version` - Fix #12401, ensure that user is found with ID + - Indexes are now created asynchronously + +* `crosswalk@get-version` + - Updated `cordova-plugin-crosswalk-webview` to v2.4.0 + - Deprecated the package * `ddp-server@get-version`: - Allow setting `DISABLE_SOCKJS_CORS` to prevent SockJS from setting CORS headers @@ -66,12 +76,21 @@ N/A * `meteor@get-version`: - Improve TS types +* `modern-browsers@get-version` + - Added `appleMail` user agent to allow modern bundle on iPads + * `npm-mongo@get-version`: - Bumped MongoDB driver to version 4.17 +* `oauth@get-version` + - Indexes are now created asynchronously + * `react-fast-refresh@get-version`: - Updated `semver` to version 7.5.4 +* `service-configuration@get-version` + - Indexes are now created asynchronously + ## Independent releases @@ -98,6 +117,7 @@ N/A - [@ebroder](https://github.com/ebroder) - [@BANSAL-NISHU](https://github.com/BANSAL-NISHU) - [@salmanhasni](https://github.com/salmanhasni) +- [@jdgjsag67251](https://github.com/jdgjsag67251) For making this great framework even better! From 9b41068dad34cc621e475cce8701f13bd4ce02ac Mon Sep 17 00:00:00 2001 From: harryadel Date: Mon, 30 Oct 2023 08:26:47 +0200 Subject: [PATCH 091/102] [service-configuration] Add types for ConfigError --- packages/service-configuration/service-configuration.d.ts | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/packages/service-configuration/service-configuration.d.ts b/packages/service-configuration/service-configuration.d.ts index 3c18cfaac3..eb833b3352 100644 --- a/packages/service-configuration/service-configuration.d.ts +++ b/packages/service-configuration/service-configuration.d.ts @@ -5,6 +5,12 @@ export interface Configuration { secret: string; } +export interface ConfigError extends Error { + constructor(serviceName?: string); + message: string; +} + export declare var ServiceConfiguration: { configurations: Mongo.Collection; + ConfigError: ConfigError }; From f1dd06783a4f2e7d9c3b1e46d799e463ab514d10 Mon Sep 17 00:00:00 2001 From: harryadel Date: Mon, 30 Oct 2023 08:59:31 +0200 Subject: [PATCH 092/102] [service-configuration] Convert ConfigError to a class --- packages/service-configuration/service-configuration.d.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/service-configuration/service-configuration.d.ts b/packages/service-configuration/service-configuration.d.ts index eb833b3352..c735adc1cc 100644 --- a/packages/service-configuration/service-configuration.d.ts +++ b/packages/service-configuration/service-configuration.d.ts @@ -5,12 +5,12 @@ export interface Configuration { secret: string; } -export interface ConfigError extends Error { +class ConfigError extends Error { constructor(serviceName?: string); message: string; } export declare var ServiceConfiguration: { configurations: Mongo.Collection; - ConfigError: ConfigError + ConfigError }; From 07e5c6ed83d8211ad9770210eac14a23b0104295 Mon Sep 17 00:00:00 2001 From: harryadel Date: Mon, 30 Oct 2023 11:49:03 +0200 Subject: [PATCH 093/102] [meteor] Add types for makeErrorType and meteorRelease --- packages/meteor/meteor.d.ts | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/packages/meteor/meteor.d.ts b/packages/meteor/meteor.d.ts index 8ebc07618b..41d35b919e 100644 --- a/packages/meteor/meteor.d.ts +++ b/packages/meteor/meteor.d.ts @@ -19,6 +19,15 @@ export namespace Meteor { * of Meteor. */ var release: string; + + var meteorRelease: string; + + interface ErrorConstructor { + new (...args: any[]): Error; + errorType: string; + } + + function makeErrorType(name: string, constructor: Function): ErrorConstructor; /** Global props **/ /** Settings **/ From 9eb5e670dbd1399728fe55ceae8687135d9cadaa Mon Sep 17 00:00:00 2001 From: harryadel Date: Mon, 30 Oct 2023 14:08:02 +0200 Subject: [PATCH 094/102] Fix links in tracker README --- packages/tracker/README.md | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/packages/tracker/README.md b/packages/tracker/README.md index 33448d8caf..ad3a22cba8 100644 --- a/packages/tracker/README.md +++ b/packages/tracker/README.md @@ -50,7 +50,7 @@ The current temperature is 71.9 F (printed a few minutes later) The function passed to `Tracker.autorun` is called once immediately, and then it's called again whenever there are any changes to any of the _reactive data sources_ that it referenced. To make this work, `currentTemperatureCelsius` just needs to register with Tracker as a reactive data source when it's called, which takes only a few lines of code. -Or, instead of calling `Tracker.autorun` ourselves, we might use `currentTemperatureFahrenheit` in a [Blaze](https://www.meteor.com/blaze) template: +Or, instead of calling `Tracker.autorun` ourselves, we might use `currentTemperatureFahrenheit` in a [Blaze](https://www.blazejs.org/) template: ```handlebars @@ -100,9 +100,9 @@ It's easy for a library to detect if Tracker is available, and cooperate with it The Meteor project provides a variety of Tracker-aware libraries: -- [Blaze](https://www.meteor.com/blaze) is a reactive templating/DOM update library designed to work well with Tracker. +- [Blaze](https://www.blazejs.org/) is a reactive templating/DOM update library designed to work well with Tracker. -- [Minimongo](https://www.meteor.com/mini-databases) is a Tracker-aware reimplementation of the MongoDB API in JavaScript, very useful for storing and querying client-side data. We also have a ["full stack database driver"](https://www.meteor.com/full-stack-db-drivers) for Mongo that replicates data from a real server-side MongoDB database into Minimongo. +- [Minimongo](https://github.com/meteor/meteor/tree/devel/packages/minimongo) is a Tracker-aware reimplementation of the MongoDB API in JavaScript, very useful for storing and querying client-side data. We also have a ["full stack database driver"](https://docs.meteor.com/api/collections.html#Mongo-Collection) for Mongo that replicates data from a real server-side MongoDB database into Minimongo. - [reactive-dict](https://atmospherejs.com/meteor/reactive-dict), and [reactive-var](https://atmospherejs.com/meteor/reactive-var) provide @@ -113,7 +113,7 @@ code. - Other Meteor core packages are generally Tracker-aware wherever it makes sense. For example, the current connection status is reactive - in Meteor's [DDP](https://www.meteor.com/ddp) implementation, and + in Meteor's [DDP](https://github.com/meteor/meteor/tree/devel/packages/ddp) implementation, and the currently logged in user is reactive in [Meteor Accounts](https://docs.meteor.com/api/accounts) system. @@ -126,4 +126,3 @@ Ideas for future work include: - Providing a contract for _settable_ reactive values, to make it easier to build bidirectionally bound forms. There is some discussion of this [here](https://meteor.hackpad.com/Lickable-Forms-and-Components-6CVspZsVwJY). - Making it possible to control invalidation order, for example by specifying that if autorun B was created inside autorun A, then if both A and B are invalidated and eligible to be rerun, then A will rerun before B. It is easy to construct theoretical situations where this would be valuable, but situations where this makes a difference in real apps seem to be surprisingly rare. -Also as described on the project pages for [Mini databases](https://www.meteor.com/mini-databases) and [Full stack database drivers](https://www.meteor.com/full-stack-db-drivers), the Meteor project intends to eventually sponsor development of Tracker-aware libraries that emulate other server-side databases besides Mongo. From 08a9dd6e748bebbeead070af523b5e6c0fa46308 Mon Sep 17 00:00:00 2001 From: Doran Date: Tue, 31 Oct 2023 10:08:20 +0100 Subject: [PATCH 095/102] Don't flatten ObjectIDs in oplogV2V1Converter (fixes #12855) --- packages/mongo/oplog_v2_converter.js | 3 ++- packages/mongo/oplog_v2_converter_tests.js | 4 ++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/packages/mongo/oplog_v2_converter.js b/packages/mongo/oplog_v2_converter.js index 43c6e64411..6cb6b4c726 100644 --- a/packages/mongo/oplog_v2_converter.js +++ b/packages/mongo/oplog_v2_converter.js @@ -47,7 +47,8 @@ function isArrayOperator(operator) { } function flattenObjectInto(target, source, prefix) { - if (Array.isArray(source) || typeof source !== 'object' || source === null) { + if (Array.isArray(source) || typeof source !== 'object' || source === null || + source instanceof Mongo.ObjectID) { target[prefix] = source; } else { const entries = Object.entries(source); diff --git a/packages/mongo/oplog_v2_converter_tests.js b/packages/mongo/oplog_v2_converter_tests.js index 79bcbada93..89c95c5587 100644 --- a/packages/mongo/oplog_v2_converter_tests.js +++ b/packages/mongo/oplog_v2_converter_tests.js @@ -77,6 +77,10 @@ const cases = [ { $v: 2, diff: { u: { params: { e: { _str: '5f953cde8ceca90030bdb86f' } } } } }, { $v: 2, $set: { params: { e: { _str: '5f953cde8ceca90030bdb86f' } } } }, ], + [ + { $v: 2, diff: { i: { id: new Mongo.ObjectID('ffffffffffffffffffffffff') } } }, + { $v: 2, $set: { id: new Mongo.ObjectID('ffffffffffffffffffffffff') } }, + ], [ { $v: 2, From 68f53600bc0f2a5e8110a3a837648ac304a31d26 Mon Sep 17 00:00:00 2001 From: Jan Dvorak Date: Tue, 31 Oct 2023 11:46:48 +0100 Subject: [PATCH 096/102] Small fixes for docs --- docs/generators/changelog/versions/2.14.md | 2 +- docs/source/api/pubsub.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/generators/changelog/versions/2.14.md b/docs/generators/changelog/versions/2.14.md index 990b47b537..49676e6770 100644 --- a/docs/generators/changelog/versions/2.14.md +++ b/docs/generators/changelog/versions/2.14.md @@ -8,7 +8,7 @@ Hacktoberfest release! 🎉 * 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 #12789] -* Added guide on (how to prepare for Meteor 3.0 migration)[https://guide.meteor.com/prepare-meteor-3.0]. +* 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 #12742] diff --git a/docs/source/api/pubsub.md b/docs/source/api/pubsub.md index 6de5c89879..6420455723 100644 --- a/docs/source/api/pubsub.md +++ b/docs/source/api/pubsub.md @@ -268,7 +268,7 @@ stay subscribed to your private messages. > The following features are available from Meteor 2.4 or `ddp-server@2.5.0` Once you start scaling your application you might want to have more control on how the data from publications is being handled on the client. -There are three publications strategies: +There are four publications strategies: #### SERVER_MERGE `SERVER_MERGE` is the default strategy. When using this strategy, the server maintains a copy of all data a connection is subscribed to. From d64a43c11b5cec2a4bc21b4c56d77f8b68d9afbd Mon Sep 17 00:00:00 2001 From: Jan Dvorak Date: Tue, 31 Oct 2023 16:41:53 +0100 Subject: [PATCH 097/102] Added `on server` to deprecated messages --- packages/mongo/mongo.d.ts | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/packages/mongo/mongo.d.ts b/packages/mongo/mongo.d.ts index 21328eef90..48ef98708e 100644 --- a/packages/mongo/mongo.d.ts +++ b/packages/mongo/mongo.d.ts @@ -109,7 +109,7 @@ export namespace Mongo { ): Promise; /** - * @deprecated since 2.8. Check migration guide {@link https://guide.meteor.com/2.8-migration} + * @deprecated on server since 2.8. Check migration guide {@link https://guide.meteor.com/2.8-migration} * @see createIndexAsync */ createIndex( @@ -155,14 +155,14 @@ export namespace Mongo { ): Cursor>; /** * Finds the first document that matches the selector, as ordered by sort and skip options. Returns `undefined` if no matching document is found. - * @deprecated since 2.8. Check migration guide {@link https://guide.meteor.com/2.8-migration} + * @deprecated on server since 2.8. Check migration guide {@link https://guide.meteor.com/2.8-migration} * @see findOneAsync * @param selector A query describing the documents to find */ findOne(selector?: Selector | ObjectID | string): U | undefined; /** * Finds the first document that matches the selector, as ordered by sort and skip options. Returns `undefined` if no matching document is found. - * @deprecated since 2.8. Check migration guide {@link https://guide.meteor.com/2.8-migration} + * @deprecated on server since 2.8. Check migration guide {@link https://guide.meteor.com/2.8-migration} * @see findOneAsync * @param selector A query describing the documents to find */ @@ -198,7 +198,7 @@ export namespace Mongo { estimatedDocumentCount(options?: NpmModuleMongodb.EstimatedDocumentCountOptions): Promise; /** * Insert a document in the collection. Returns its unique _id. - * @deprecated since 2.8. Check migration guide {@link https://guide.meteor.com/2.8-migration} + * @deprecated on server since 2.8. Check migration guide {@link https://guide.meteor.com/2.8-migration} * @see insertAsync * @param doc The document to insert. May not yet have an _id attribute, in which case Meteor will generate one for you. * @param callback If present, called with an error object as the first argument and, if no error, the _id as the second. @@ -222,7 +222,7 @@ export namespace Mongo { rawDatabase(): NpmModuleMongodb.Db; /** * Remove documents from the collection - * @deprecated since 2.8. Check migration guide {@link https://guide.meteor.com/2.8-migration} + * @deprecated on server since 2.8. Check migration guide {@link https://guide.meteor.com/2.8-migration} * @see removeAsync * @param selector Specifies which documents to remove * @param callback If present, called with an error object as its argument. @@ -242,7 +242,7 @@ export namespace Mongo { ): Promise; /** * Modify one or more documents in the collection. Returns the number of matched documents. - * @deprecated since 2.8. Check migration guide {@link https://guide.meteor.com/2.8-migration} + * @deprecated on server since 2.8. Check migration guide {@link https://guide.meteor.com/2.8-migration} * @see updateAsync * @param selector Specifies which documents to modify * @param modifier Specifies how to modify the documents @@ -289,7 +289,7 @@ export namespace Mongo { /** * Modify one or more documents in the collection, or insert one if no matching documents were found. Returns an object with keys `numberAffected` (the number of documents modified) and * `insertedId` (the unique _id of the document that was inserted, if any). - * @deprecated since 2.8. Check migration guide {@link https://guide.meteor.com/2.8-migration} + * @deprecated on server since 2.8. Check migration guide {@link https://guide.meteor.com/2.8-migration} * @see upsertAsync * @param selector Specifies which documents to modify * @param modifier Specifies how to modify the documents @@ -334,7 +334,7 @@ export namespace Mongo { ): void; _dropCollection(): Promise; /** - * @deprecated since 2.8. Check migration guide {@link https://guide.meteor.com/2.8-migration} + * @deprecated on server since 2.8. Check migration guide {@link https://guide.meteor.com/2.8-migration} * @see dropIndexAsync */ _dropIndex(indexName: string): void; From f288e813b0d56f553dbe906aa2514e9d60913176 Mon Sep 17 00:00:00 2001 From: Jan Dvorak Date: Tue, 31 Oct 2023 16:46:02 +0100 Subject: [PATCH 098/102] Changelog entry for PR #12826 --- docs/generators/changelog/versions/2.14.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docs/generators/changelog/versions/2.14.md b/docs/generators/changelog/versions/2.14.md index 49676e6770..cc42b4d0d3 100644 --- a/docs/generators/changelog/versions/2.14.md +++ b/docs/generators/changelog/versions/2.14.md @@ -79,6 +79,9 @@ N/A * `modern-browsers@get-version` - Added `appleMail` user agent to allow modern bundle on iPads +* `mongo@get-version` + - Added deprecation messages into type definitions + * `npm-mongo@get-version`: - Bumped MongoDB driver to version 4.17 @@ -118,6 +121,7 @@ N/A - [@BANSAL-NISHU](https://github.com/BANSAL-NISHU) - [@salmanhasni](https://github.com/salmanhasni) - [@jdgjsag67251](https://github.com/jdgjsag67251) +- [@guncebektas](https://github.com/guncebektas) For making this great framework even better! From 3e9544299e59fdd293e48654ab8f554c927b13a4 Mon Sep 17 00:00:00 2001 From: Jan Dvorak Date: Tue, 31 Oct 2023 16:54:10 +0100 Subject: [PATCH 099/102] Changelog notes for PR #12849 and #12856 --- docs/generators/changelog/versions/2.14.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docs/generators/changelog/versions/2.14.md b/docs/generators/changelog/versions/2.14.md index cc42b4d0d3..6b4e43fe12 100644 --- a/docs/generators/changelog/versions/2.14.md +++ b/docs/generators/changelog/versions/2.14.md @@ -81,6 +81,7 @@ N/A * `mongo@get-version` - Added deprecation messages into type definitions + - Fix ObjectIDs handling in oplogV2V1Converter * `npm-mongo@get-version`: - Bumped MongoDB driver to version 4.17 @@ -93,6 +94,7 @@ N/A * `service-configuration@get-version` - Indexes are now created asynchronously + - Add types for ConfigError ## Independent releases @@ -122,6 +124,8 @@ N/A - [@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) For making this great framework even better! From f8babd8610ad42192129eae8342c0ee69a80b748 Mon Sep 17 00:00:00 2001 From: Gabriel Grubba <70247653+Grubba27@users.noreply.github.com> Date: Tue, 31 Oct 2023 17:16:43 -0300 Subject: [PATCH 100/102] =?UTF-8?q?Meteor=20version=20to=202.14-beta.0?= =?UTF-8?q?=C2=A0:comet:?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/accounts-base/package.js | 2 +- packages/accounts-oauth/package.js | 2 +- packages/accounts-password/package.js | 2 +- packages/accounts-passwordless/package.js | 2 +- packages/crosswalk/package.js | 2 +- packages/ddp-server/package.js | 2 +- packages/facebook-oauth/package.js | 2 +- packages/fetch/package.js | 2 +- packages/logging/package.js | 2 +- packages/meteor-tool/package.js | 2 +- packages/meteor/package.js | 2 +- packages/modern-browsers/package.js | 2 +- packages/mongo/package.js | 2 +- packages/npm-mongo/package.js | 2 +- packages/oauth/package.js | 2 +- packages/react-fast-refresh/package.js | 2 +- packages/service-configuration/package.js | 2 +- packages/test-in-browser/package.js | 2 +- scripts/admin/meteor-release-experimental.json | 2 +- 19 files changed, 19 insertions(+), 19 deletions(-) diff --git a/packages/accounts-base/package.js b/packages/accounts-base/package.js index 702dd3b3e0..7fe3b7efc9 100644 --- a/packages/accounts-base/package.js +++ b/packages/accounts-base/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: 'A user account system', - version: '2.2.8', + version: '2.2.9-beta2140.0', }); Package.onUse(api => { diff --git a/packages/accounts-oauth/package.js b/packages/accounts-oauth/package.js index d26a1ff571..124773ef38 100644 --- a/packages/accounts-oauth/package.js +++ b/packages/accounts-oauth/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "Common code for OAuth-based login services", - version: "1.4.2", + version: "1.4.3-beta2140.0", }); Package.onUse(api => { diff --git a/packages/accounts-password/package.js b/packages/accounts-password/package.js index 7503faee04..4f7daa27ee 100644 --- a/packages/accounts-password/package.js +++ b/packages/accounts-password/package.js @@ -5,7 +5,7 @@ Package.describe({ // 2.2.x in the future. The version was also bumped to 2.0.0 temporarily // during the Meteor 1.5.1 release process, so versions 2.0.0-beta.2 // through -beta.5 and -rc.0 have already been published. - version: '2.4.0', + version: '2.4.0-beta2140.0', }); Npm.depends({ diff --git a/packages/accounts-passwordless/package.js b/packages/accounts-passwordless/package.js index 2743b88aaf..ff8033e240 100644 --- a/packages/accounts-passwordless/package.js +++ b/packages/accounts-passwordless/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: 'No-password login/sign-up support for accounts', - version: '2.1.3', + version: '2.1.4-beta2140.0', }); Package.onUse(api => { diff --git a/packages/crosswalk/package.js b/packages/crosswalk/package.js index 90083482c2..7cf318d97d 100644 --- a/packages/crosswalk/package.js +++ b/packages/crosswalk/package.js @@ -1,7 +1,7 @@ Package.describe({ summary: "Makes your Cordova application use the Crosswalk WebView \ instead of the System WebView on Android", - version: '1.7.1', + version: '1.7.2-beta2140.0', documentation: null, deprecated: true }); diff --git a/packages/ddp-server/package.js b/packages/ddp-server/package.js index a88a70d07e..3063345bd1 100644 --- a/packages/ddp-server/package.js +++ b/packages/ddp-server/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "Meteor's latency-compensated distributed data server", - version: '2.6.2', + version: '2.7.0-beta2140.0', documentation: null }); diff --git a/packages/facebook-oauth/package.js b/packages/facebook-oauth/package.js index 5845188323..36c4de0246 100644 --- a/packages/facebook-oauth/package.js +++ b/packages/facebook-oauth/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "Facebook OAuth flow", - version: '1.11.3' + version: '1.11.3-beta2140.0' }); Package.onUse(api => { diff --git a/packages/fetch/package.js b/packages/fetch/package.js index ec4bb5dc09..5fa914b53f 100644 --- a/packages/fetch/package.js +++ b/packages/fetch/package.js @@ -1,6 +1,6 @@ Package.describe({ name: "fetch", - version: '0.1.4', + version: '0.1.4-beta2140.0', summary: "Isomorphic modern/legacy/Node polyfill for WHATWG fetch()", documentation: "README.md" }); diff --git a/packages/logging/package.js b/packages/logging/package.js index f0c46a84b3..4240d9f39d 100644 --- a/packages/logging/package.js +++ b/packages/logging/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: 'Logging facility.', - version: '1.3.2', + version: '1.3.3-beta2140.0', }); Npm.depends({ diff --git a/packages/meteor-tool/package.js b/packages/meteor-tool/package.js index f891d8afaa..5902d900d0 100644 --- a/packages/meteor-tool/package.js +++ b/packages/meteor-tool/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: 'The Meteor command-line tool', - version: '2.13.3', + version: '2.14.0-beta.0', }); Package.includeTool(); diff --git a/packages/meteor/package.js b/packages/meteor/package.js index e537ce4a9d..2cd2b3db59 100644 --- a/packages/meteor/package.js +++ b/packages/meteor/package.js @@ -2,7 +2,7 @@ Package.describe({ summary: "Core Meteor environment", - version: '1.11.3', + version: '1.11.4-beta2140.0', }); Package.registerBuildPlugin({ diff --git a/packages/modern-browsers/package.js b/packages/modern-browsers/package.js index 7ca4b6d41c..efc4e49dd8 100644 --- a/packages/modern-browsers/package.js +++ b/packages/modern-browsers/package.js @@ -1,6 +1,6 @@ Package.describe({ name: 'modern-browsers', - version: '0.1.9', + version: '0.1.10-beta2140.0', summary: 'API for defining the boundary between modern and legacy ' + 'JavaScript clients', diff --git a/packages/mongo/package.js b/packages/mongo/package.js index 5058e52517..70e0bcba61 100644 --- a/packages/mongo/package.js +++ b/packages/mongo/package.js @@ -9,7 +9,7 @@ Package.describe({ summary: "Adaptor for using MongoDB and Minimongo over DDP", - version: '1.16.7', + version: '1.16.8-beta2140.0', }); Npm.depends({ diff --git a/packages/npm-mongo/package.js b/packages/npm-mongo/package.js index e381d9425d..c1f976a5c6 100644 --- a/packages/npm-mongo/package.js +++ b/packages/npm-mongo/package.js @@ -3,7 +3,7 @@ Package.describe({ summary: "Wrapper around the mongo npm package", - version: '4.17.0', + version: '4.17.0-beta2140.0', documentation: null }); diff --git a/packages/oauth/package.js b/packages/oauth/package.js index 6c5be60f67..e8bbc4a255 100644 --- a/packages/oauth/package.js +++ b/packages/oauth/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "Common code for OAuth-based services", - version: '2.2.0', + version: '2.2.1-beta2140.0', }); Package.onUse(api => { diff --git a/packages/react-fast-refresh/package.js b/packages/react-fast-refresh/package.js index 7cb2338079..c740e922c8 100644 --- a/packages/react-fast-refresh/package.js +++ b/packages/react-fast-refresh/package.js @@ -1,6 +1,6 @@ Package.describe({ name: 'react-fast-refresh', - version: '0.2.7', + version: '0.2.8-beta2140.0', summary: 'Automatically update React components with HMR', documentation: 'README.md', devOnly: true, diff --git a/packages/service-configuration/package.js b/packages/service-configuration/package.js index a3042eb333..31303d4c2d 100644 --- a/packages/service-configuration/package.js +++ b/packages/service-configuration/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: 'Manage the configuration for third-party services', - version: '1.3.1', + version: '1.3.2-beta2140.0', }); Package.onUse(function(api) { diff --git a/packages/test-in-browser/package.js b/packages/test-in-browser/package.js index 5f0c6b2c1e..65f34bd1d8 100644 --- a/packages/test-in-browser/package.js +++ b/packages/test-in-browser/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "Run tests interactively in the browser", - version: '1.3.3', + version: '1.3.4-beta2140.0', documentation: null }); diff --git a/scripts/admin/meteor-release-experimental.json b/scripts/admin/meteor-release-experimental.json index f6a2edccb5..e85cdab45d 100644 --- a/scripts/admin/meteor-release-experimental.json +++ b/scripts/admin/meteor-release-experimental.json @@ -1,6 +1,6 @@ { "track": "METEOR", - "version": "2.13.3-rc.1", + "version": "2.14-beta.0", "recommended": false, "official": false, "description": "Meteor experimental release" From d541d34adba58b7520beb0a50f46673bb2767ea6 Mon Sep 17 00:00:00 2001 From: Gabriel Grubba <70247653+Grubba27@users.noreply.github.com> Date: Tue, 31 Oct 2023 17:17:05 -0300 Subject: [PATCH 101/102] Add lockfiles --- .../fetch/.npm/package/npm-shrinkwrap.json | 27 +- .../.npm/package/npm-shrinkwrap.json | 579 ++++++++++-------- .../.npm/package/npm-shrinkwrap.json | 6 +- 3 files changed, 337 insertions(+), 275 deletions(-) diff --git a/packages/fetch/.npm/package/npm-shrinkwrap.json b/packages/fetch/.npm/package/npm-shrinkwrap.json index 45e425d6da..5915dd5d8c 100644 --- a/packages/fetch/.npm/package/npm-shrinkwrap.json +++ b/packages/fetch/.npm/package/npm-shrinkwrap.json @@ -2,14 +2,29 @@ "lockfileVersion": 1, "dependencies": { "node-fetch": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.3.0.tgz", - "integrity": "sha512-MOd8pV3fxENbryESLgVIeaGKrdl+uaYhCSSVkjeOb/31/njTpcis5aWfdqgNlHIrKOLRbMnfPINPOML2CIFeXA==" + "version": "2.6.12", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.12.tgz", + "integrity": "sha512-C/fGU2E8ToujUivIO0H+tpQ6HWo4eEmchoPIoXtxCrVghxdKq+QOHqEZW7tuP3KlV3bC8FRMO5nMCC7Zm1VP6g==" + }, + "tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" + }, + "webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" }, "whatwg-fetch": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-2.0.4.tgz", - "integrity": "sha512-dcQ1GWpOD/eEQ97k66aiEVpNnapVj90/+R+SXTPYGHpYBBypfKJEQjLrvMZ7YXbKm21gXd4NcuxUTjiv1YtLng==" + "version": "3.6.17", + "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.17.tgz", + "integrity": "sha512-c4ghIvG6th0eudYwKZY5keb81wtFz9/WeAHAoy8+r18kcWlitUIrmGFQ2rWEl4UCKUilD3zCLHOIPheHx5ypRQ==" + }, + "whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==" } } } diff --git a/packages/npm-mongo/.npm/package/npm-shrinkwrap.json b/packages/npm-mongo/.npm/package/npm-shrinkwrap.json index 8bb6a45975..757c435ce0 100644 --- a/packages/npm-mongo/.npm/package/npm-shrinkwrap.json +++ b/packages/npm-mongo/.npm/package/npm-shrinkwrap.json @@ -1,6 +1,18 @@ { "lockfileVersion": 1, "dependencies": { + "@aws-crypto/crc32": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/crc32/-/crc32-3.0.0.tgz", + "integrity": "sha512-IzSgsrxUcsrejQbPVilIKy16kAT52EwB6zSaI+M3xxIhKh5+aldEyvI+z6erM7TCLB2BJsFrtHjp6/4/sr+3dA==", + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + } + } + }, "@aws-crypto/ie11-detection": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/@aws-crypto/ie11-detection/-/ie11-detection-3.0.0.tgz", @@ -61,315 +73,350 @@ } } }, - "@aws-sdk/abort-controller": { - "version": "3.310.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/abort-controller/-/abort-controller-3.310.0.tgz", - "integrity": "sha512-v1zrRQxDLA1MdPim159Vx/CPHqsB4uybSxRi1CnfHO5ZjHryx3a5htW2gdGAykVCul40+yJXvfpufMrELVxH+g==" - }, "@aws-sdk/client-cognito-identity": { - "version": "3.316.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-cognito-identity/-/client-cognito-identity-3.316.0.tgz", - "integrity": "sha512-+x0FvG+zXwR40O/gmksxpMUc2DHTdezZZZjOMmd8Z413zb6JZEu4lBweA9pYjXiUYuYrLCd+MP70JI8xzjs17w==" + "version": "3.438.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-cognito-identity/-/client-cognito-identity-3.438.0.tgz", + "integrity": "sha512-ZaMx8S2Uex5UXk1R5Qje2aE8lhXz1bw5Pk0Kjjz/8mo+CBiQDgtHu5SrS9ccLfBrFIcz6HtDWsJazEQaBaLplQ==" }, "@aws-sdk/client-sso": { - "version": "3.316.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.316.0.tgz", - "integrity": "sha512-wGXfIhR0lJGB8QTT0fwSwwklHePHxd2GW3IQt3trXnEYe0frmJ7vYRnVL5CSRKsikLDmaU7ll3SdsshMzQzo3w==" - }, - "@aws-sdk/client-sso-oidc": { - "version": "3.316.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.316.0.tgz", - "integrity": "sha512-e2fvC7o42YV+LcZYfXCcvBn4L7NM9oNccnZ7T+pS6SFpHZlaqkw4uuQMRE6iUAof+Id7Mt7xDrz1x2yGlP+8GA==" + "version": "3.438.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.438.0.tgz", + "integrity": "sha512-L/xKq+K78PShLku8x5gM6lZDUp7LhFJ2ksKH7Vll+exSZq+QUaxuzjp4gqdzh6B0oIshv2jssQlUa0ScOmVRMg==" }, "@aws-sdk/client-sts": { - "version": "3.316.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.316.0.tgz", - "integrity": "sha512-5SD59+DRVy1mKckGs/5J8OwWpRS3E5v4BX19XaX/s9JJ5Rw9aZd9DP4SZVpeNXztIPjkQSEzHgrUVlZFB1QJgg==" + "version": "3.438.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.438.0.tgz", + "integrity": "sha512-UBxLZKVVvbR4LHwSNSqaKx22YBSOGkavrh4SyDP8o8XOlXeRxTCllfSfjL9K5Mktp+ZwQ2NiubNcwmvUcGKbbg==" }, - "@aws-sdk/config-resolver": { - "version": "3.310.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/config-resolver/-/config-resolver-3.310.0.tgz", - "integrity": "sha512-8vsT+/50lOqfDxka9m/rRt6oxv1WuGZoP8oPMk0Dt+TxXMbAzf4+rejBgiB96wshI1k3gLokYRjSQZn+dDtT8g==" + "@aws-sdk/core": { + "version": "3.436.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/core/-/core-3.436.0.tgz", + "integrity": "sha512-vX5/LjXvCejC2XUY6TSg1oozjqK6BvkE75t0ys9dgqyr5PlZyZksMoeAFHUlj0sCjhT3ziWCujP1oiSpPWY9hg==" }, "@aws-sdk/credential-provider-cognito-identity": { - "version": "3.316.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-cognito-identity/-/credential-provider-cognito-identity-3.316.0.tgz", - "integrity": "sha512-tHfYEhVfAwauEFkHCgqTWASm3AN8jD3C8ecbnBFIFuBKZFQG+QwlUrJc05jOMx2xRctA7NRm8lD3YmvWmfYw1g==" + "version": "3.438.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-cognito-identity/-/credential-provider-cognito-identity-3.438.0.tgz", + "integrity": "sha512-/HgSPPvzIQ25SMII0vYlarJbijOAsXZCjayKWZ7+hilzju22hMB0ZTPM1E3QopWoZ6os76K59aAACfjhVAfIUg==" }, "@aws-sdk/credential-provider-env": { - "version": "3.310.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.310.0.tgz", - "integrity": "sha512-vvIPQpI16fj95xwS7M3D48F7QhZJBnnCgB5lR+b7So+vsG9ibm1mZRVGzVpdxCvgyOhHFbvrby9aalNJmmIP1A==" + "version": "3.433.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.433.0.tgz", + "integrity": "sha512-Vl7Qz5qYyxBurMn6hfSiNJeUHSqfVUlMt0C1Bds3tCkl3IzecRWwyBOlxtxO3VCrgVeW3HqswLzCvhAFzPH6nQ==" }, - "@aws-sdk/credential-provider-imds": { - "version": "3.310.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-imds/-/credential-provider-imds-3.310.0.tgz", - "integrity": "sha512-baxK7Zp6dai5AGW01FIW27xS2KAaPUmKLIXv5SvFYsUgXXvNW55im4uG3b+2gA0F7V+hXvVBH08OEqmwW6we5w==" + "@aws-sdk/credential-provider-http": { + "version": "3.435.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-http/-/credential-provider-http-3.435.0.tgz", + "integrity": "sha512-i07YSy3+IrXwAzp3goCMo2OYzAwqRGIWPNMUX5ziFgA1eMlRWNC2slnbqJzax6xHrU8HdpNESAfflnQvUVBqYQ==" }, "@aws-sdk/credential-provider-ini": { - "version": "3.316.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.316.0.tgz", - "integrity": "sha512-ZADkpdEjFCAXyzEpYbCRENlZ/AQEwevWdPd2yshjNo7xvOcepv4pPIBpYd8h9LvRafSLGA7zlWDz84hkIt+HKA==" + "version": "3.438.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.438.0.tgz", + "integrity": "sha512-WYPQR3pXoHJjn9/RMWipUhsUNFy6zhOiII6u8LJ5w84aNqIjV4+BdRYztRNGJD98jdtekhbkX0YKoSuZqP+unQ==" }, "@aws-sdk/credential-provider-node": { - "version": "3.316.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.316.0.tgz", - "integrity": "sha512-oE1LTXP8XZp4bT8LhBeolMRiz0RwnmHDC2XpUmWO8LTmbDNrQO0mVzxEvXDLeKaN5BIFIJqNFlMgjWUMa9Kwcw==" + "version": "3.438.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.438.0.tgz", + "integrity": "sha512-uaw3D2R0svyrC32qyZ2aOv/l0AT9eClh+eQsZJTQD3Kz9q+2VdeOBThQ8fsMfRtm26nUbZo6A/CRwxkm6okI+w==" }, "@aws-sdk/credential-provider-process": { - "version": "3.310.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.310.0.tgz", - "integrity": "sha512-h73sg6GPMUWC+3zMCbA1nZ2O03nNJt7G96JdmnantiXBwHpRKWW8nBTLzx5uhXn6hTuTaoQRP/P+oxQJKYdMmA==" + "version": "3.433.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.433.0.tgz", + "integrity": "sha512-W7FcGlQjio9Y/PepcZGRyl5Bpwb0uWU7qIUCh+u4+q2mW4D5ZngXg8V/opL9/I/p4tUH9VXZLyLGwyBSkdhL+A==" }, "@aws-sdk/credential-provider-sso": { - "version": "3.316.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.316.0.tgz", - "integrity": "sha512-8/O2twlsoV1bDkZ9jd7JCMWsftfyoTyRT1UYscsKZGUDEgZRAxRkzS3GLYuLXEWNuxb1OB9rYk/cEJoxwy7T9g==" + "version": "3.438.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.438.0.tgz", + "integrity": "sha512-Xykli/64xR18cBV5P0XFxcH120omtfAjC/cFy/9nFU/+dPvbk0uu1yEOZYteWHyGGkPN4PkHmbh60GiUCLQkWQ==" }, "@aws-sdk/credential-provider-web-identity": { - "version": "3.310.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.310.0.tgz", - "integrity": "sha512-H4SzuZXILNhK6/IR1uVvsUDZvzc051hem7GLyYghBCu8mU+tq28YhKE8MfSroi6eL2e5Vujloij1OM2EQQkPkw==" + "version": "3.433.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.433.0.tgz", + "integrity": "sha512-RlwjP1I5wO+aPpwyCp23Mk8nmRbRL33hqRASy73c4JA2z2YiRua+ryt6MalIxehhwQU6xvXUKulJnPG9VaMFZg==" }, "@aws-sdk/credential-providers": { - "version": "3.316.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-providers/-/credential-providers-3.316.0.tgz", - "integrity": "sha512-PH5qpgVEcRTHnG/xJ01NlYu85YBhHr2ZTgPweuHS5RDNvzuEaoCH5U7BNC8CSfpHXaGACCNYalG8kjPSFiFmjA==" - }, - "@aws-sdk/fetch-http-handler": { - "version": "3.310.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/fetch-http-handler/-/fetch-http-handler-3.310.0.tgz", - "integrity": "sha512-Bi9vIwzdkw1zMcvi/zGzlWS9KfIEnAq4NNhsnCxbQ4OoIRU9wvU+WGZdBBhxg0ZxZmpp1j1aZhU53lLjA07MHw==" - }, - "@aws-sdk/hash-node": { - "version": "3.310.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/hash-node/-/hash-node-3.310.0.tgz", - "integrity": "sha512-NvE2fhRc8GRwCXBfDehxVAWCmVwVMILliAKVPAEr4yz2CkYs0tqU51S48x23dtna07H4qHtgpeNqVTthcIQOEQ==" - }, - "@aws-sdk/invalid-dependency": { - "version": "3.310.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/invalid-dependency/-/invalid-dependency-3.310.0.tgz", - "integrity": "sha512-1s5RG5rSPXoa/aZ/Kqr5U/7lqpx+Ry81GprQ2bxWqJvWQIJ0IRUwo5pk8XFxbKVr/2a+4lZT/c3OGoBOM1yRRA==" - }, - "@aws-sdk/is-array-buffer": { - "version": "3.310.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/is-array-buffer/-/is-array-buffer-3.310.0.tgz", - "integrity": "sha512-urnbcCR+h9NWUnmOtet/s4ghvzsidFmspfhYaHAmSRdy9yDjdjBJMFjjsn85A1ODUktztm+cVncXjQ38WCMjMQ==" - }, - "@aws-sdk/middleware-content-length": { - "version": "3.310.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-content-length/-/middleware-content-length-3.310.0.tgz", - "integrity": "sha512-P8tQZxgDt6CAh1wd/W6WPzjc+uWPJwQkm+F7rAwRlM+k9q17HrhnksGDKcpuuLyIhPQYdmOMIkpKVgXGa4avhQ==" - }, - "@aws-sdk/middleware-endpoint": { - "version": "3.310.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-endpoint/-/middleware-endpoint-3.310.0.tgz", - "integrity": "sha512-Z+N2vOL8K354/lstkClxLLsr6hCpVRh+0tCMXrVj66/NtKysCEZ/0b9LmqOwD9pWHNiI2mJqXwY0gxNlKAroUg==" + "version": "3.438.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-providers/-/credential-providers-3.438.0.tgz", + "integrity": "sha512-EBtcczPtUyXsN/yNGvZxGU/Ildl8kJeq7Vt7MsFLtOmYXDWoMsSIEVuSYbBdzBal1z03fmd/Mmjr0DhYiSAqMg==" }, "@aws-sdk/middleware-host-header": { - "version": "3.310.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.310.0.tgz", - "integrity": "sha512-QWSA+46/hXorXyWa61ic2K7qZzwHTiwfk2e9mRRjeIRepUgI3qxFjsYqrWtrOGBjmFmq0pYIY8Bb/DCJuQqcoA==" + "version": "3.433.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.433.0.tgz", + "integrity": "sha512-mBTq3UWv1UzeHG+OfUQ2MB/5GEkt5LTKFaUqzL7ESwzW8XtpBgXnjZvIwu3Vcd3sEetMwijwaGiJhY0ae/YyaA==" }, "@aws-sdk/middleware-logger": { - "version": "3.310.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.310.0.tgz", - "integrity": "sha512-Lurm8XofrASBRnAVtiSNuDSRsRqPNg27RIFLLsLp/pqog9nFJ0vz0kgdb9S5Z+zw83Mm+UlqOe6D8NTUNp4fVg==" + "version": "3.433.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.433.0.tgz", + "integrity": "sha512-We346Fb5xGonTGVZC9Nvqtnqy74VJzYuTLLiuuftA5sbNzftBDy/22QCfvYSTOAl3bvif+dkDUzQY2ihc5PwOQ==" }, "@aws-sdk/middleware-recursion-detection": { - "version": "3.310.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.310.0.tgz", - "integrity": "sha512-SuB75/xk/gyue24gkriTwO2jFd7YcUGZDClQYuRejgbXSa3CO0lWyawQtfLcSSEBp9izrEVXuFH24K1eAft5nQ==" - }, - "@aws-sdk/middleware-retry": { - "version": "3.310.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-retry/-/middleware-retry-3.310.0.tgz", - "integrity": "sha512-oTPsRy2W4s+dfxbJPW7Km+hHtv/OMsNsVfThAq8DDYKC13qlr1aAyOqGLD+dpBy2aKe7ss517Sy2HcHtHqm7/g==" + "version": "3.433.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.433.0.tgz", + "integrity": "sha512-HEvYC9PQlWY/ccUYtLvAlwwf1iCif2TSAmLNr3YTBRVa98x6jKL0hlCrHWYklFeqOGSKy6XhE+NGJMUII0/HaQ==" }, "@aws-sdk/middleware-sdk-sts": { - "version": "3.310.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-sts/-/middleware-sdk-sts-3.310.0.tgz", - "integrity": "sha512-+5PFwlYNLvLLIfw0ASAoWV/iIF8Zv6R6QGtyP0CclhRSvNjgbQDVnV0g95MC5qvh+GB/Yjlkt8qAjLSPjHfsrQ==" - }, - "@aws-sdk/middleware-serde": { - "version": "3.310.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-serde/-/middleware-serde-3.310.0.tgz", - "integrity": "sha512-RNeeTVWSLTaentUeCgQKZhAl+C6hxtwD78cQWS10UymWpQFwbaxztzKUu4UQS5xA2j6PxwPRRUjqa4jcFjfLsg==" + "version": "3.433.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-sts/-/middleware-sdk-sts-3.433.0.tgz", + "integrity": "sha512-ORYbJnBejUyonFl5FwIqhvI3Cq6sAp9j+JpkKZtFNma9tFPdrhmYgfCeNH32H/wGTQV/tUoQ3luh0gA4cuk6DA==" }, "@aws-sdk/middleware-signing": { - "version": "3.310.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-signing/-/middleware-signing-3.310.0.tgz", - "integrity": "sha512-f9mKq+XMdW207Af3hKjdTnpNhdtwqWuvFs/ZyXoOkp/g1MY1O6L23Jy6i52m29LxbT4AuNRG1oKODfXM0vYVjQ==" - }, - "@aws-sdk/middleware-stack": { - "version": "3.310.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-stack/-/middleware-stack-3.310.0.tgz", - "integrity": "sha512-010O1PD+UAcZVKRvqEusE1KJqN96wwrf6QsqbRM0ywsKQ21NDweaHvEDlds2VHpgmofxkRLRu/IDrlPkKRQrRg==" + "version": "3.433.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-signing/-/middleware-signing-3.433.0.tgz", + "integrity": "sha512-jxPvt59NZo/epMNLNTu47ikmP8v0q217I6bQFGJG7JVFnfl36zDktMwGw+0xZR80qiK47/2BWrNpta61Zd2FxQ==" }, "@aws-sdk/middleware-user-agent": { - "version": "3.310.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.310.0.tgz", - "integrity": "sha512-x3IOwSwSbwKidlxRk3CNVHVUb06SRuaELxggCaR++QVI8NU6qD/l4VHXKVRvbTHiC/cYxXE/GaBDgQVpDR7V/g==" + "version": "3.438.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.438.0.tgz", + "integrity": "sha512-a+xHT1wOxT6EA6YyLmrfaroKWOkwwyiktUfXKM0FsUutGzNi4fKhb5NZ2al58NsXzHgHFrasSDp+Lqbd/X2cEw==" }, - "@aws-sdk/node-config-provider": { - "version": "3.310.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/node-config-provider/-/node-config-provider-3.310.0.tgz", - "integrity": "sha512-T/Pp6htc6hq/Cq+MLNDSyiwWCMVF6GqbBbXKVlO5L8rdHx4sq9xPdoPveZhGWrxvkanjA6eCwUp6E0riBOSVng==" - }, - "@aws-sdk/node-http-handler": { - "version": "3.310.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/node-http-handler/-/node-http-handler-3.310.0.tgz", - "integrity": "sha512-irv9mbcM9xC2xYjArQF5SYmHBMu4ciMWtGsoHII1nRuFOl9FoT4ffTvEPuLlfC6pznzvKt9zvnm6xXj7gDChKg==" - }, - "@aws-sdk/property-provider": { - "version": "3.310.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/property-provider/-/property-provider-3.310.0.tgz", - "integrity": "sha512-3lxDb0akV6BBzmFe4nLPaoliQbAifyWJhuvuDOu7e8NzouvpQXs0275w9LePhhcgjKAEVXUIse05ZW2DLbxo/g==" - }, - "@aws-sdk/protocol-http": { - "version": "3.310.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/protocol-http/-/protocol-http-3.310.0.tgz", - "integrity": "sha512-fgZ1aw/irQtnrsR58pS8ThKOWo57Py3xX6giRvwSgZDEcxHfVzuQjy9yPuV++v04fdmdtgpbGf8WfvAAJ11yXQ==" - }, - "@aws-sdk/querystring-builder": { - "version": "3.310.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/querystring-builder/-/querystring-builder-3.310.0.tgz", - "integrity": "sha512-ZHH8GV/80+pWGo7DzsvwvXR5xVxUHXUvPJPFAkhr6nCf78igdoF8gR10ScFoEKbtEapoNTaZlKHPXxpD8aPG7A==" - }, - "@aws-sdk/querystring-parser": { - "version": "3.310.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/querystring-parser/-/querystring-parser-3.310.0.tgz", - "integrity": "sha512-YkIznoP6lsiIUHinx++/lbb3tlMURGGqMpo0Pnn32zYzGrJXA6eC3D0as2EcMjo55onTfuLcIiX4qzXes2MYOA==" - }, - "@aws-sdk/service-error-classification": { - "version": "3.310.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/service-error-classification/-/service-error-classification-3.310.0.tgz", - "integrity": "sha512-PuyC7k3qfIKeH2LCnDwbttMOKq3qAx4buvg0yfnJtQOz6t1AR8gsnAq0CjKXXyfkXwNKWTqCpE6lVNUIkXgsMw==" - }, - "@aws-sdk/shared-ini-file-loader": { - "version": "3.310.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/shared-ini-file-loader/-/shared-ini-file-loader-3.310.0.tgz", - "integrity": "sha512-N0q9pG0xSjQwc690YQND5bofm+4nfUviQ/Ppgan2kU6aU0WUq8KwgHJBto/YEEI+VlrME30jZJnxtOvcZJc2XA==" - }, - "@aws-sdk/signature-v4": { - "version": "3.310.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/signature-v4/-/signature-v4-3.310.0.tgz", - "integrity": "sha512-1M60P1ZBNAjCFv9sYW29OF6okktaeibWyW3lMXqzoHF70lHBZh+838iUchznXUA5FLabfn4jBFWMRxlAXJUY2Q==" - }, - "@aws-sdk/smithy-client": { - "version": "3.316.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/smithy-client/-/smithy-client-3.316.0.tgz", - "integrity": "sha512-6YXOKbRnXeS8r8RWzuL6JMBolDYM5Wa4fD/VY6x/wK78i2xErHOvqzHgyyeLI1MMw4uqyd4wRNJNWC9TMPduXw==" + "@aws-sdk/region-config-resolver": { + "version": "3.433.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/region-config-resolver/-/region-config-resolver-3.433.0.tgz", + "integrity": "sha512-xpjRjCZW+CDFdcMmmhIYg81ST5UAnJh61IHziQEk0FXONrg4kjyYPZAOjEdzXQ+HxJQuGQLKPhRdzxmQnbX7pg==" }, "@aws-sdk/token-providers": { - "version": "3.316.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.316.0.tgz", - "integrity": "sha512-foJ2YmB8A/mtp52riO2zdmBgzA3IpASNgUhY9FZg1BKpGcjqLQDGYP+BY3BA0H7CFsMa4PCf13M5wWwn1onyBA==" + "version": "3.438.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.438.0.tgz", + "integrity": "sha512-G2fUfTtU6/1ayYRMu0Pd9Ln4qYSvwJOWCqJMdkDgvXSwdgcOSOLsnAIk1AHGJDAvgLikdCzuyOsdJiexr9Vnww==" }, "@aws-sdk/types": { - "version": "3.310.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.310.0.tgz", - "integrity": "sha512-j8eamQJ7YcIhw7fneUfs8LYl3t01k4uHi4ZDmNRgtbmbmTTG3FZc2MotStZnp3nZB6vLiPF1o5aoJxWVvkzS6A==" - }, - "@aws-sdk/url-parser": { - "version": "3.310.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/url-parser/-/url-parser-3.310.0.tgz", - "integrity": "sha512-mCLnCaSB9rQvAgx33u0DujLvr4d5yEm/W5r789GblwwQnlNXedVu50QRizMLTpltYWyAUoXjJgQnJHmJMaKXhw==" - }, - "@aws-sdk/util-base64": { - "version": "3.310.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-base64/-/util-base64-3.310.0.tgz", - "integrity": "sha512-v3+HBKQvqgdzcbL+pFswlx5HQsd9L6ZTlyPVL2LS9nNXnCcR3XgGz9jRskikRUuUvUXtkSG1J88GAOnJ/apTPg==" - }, - "@aws-sdk/util-body-length-browser": { - "version": "3.310.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-body-length-browser/-/util-body-length-browser-3.310.0.tgz", - "integrity": "sha512-sxsC3lPBGfpHtNTUoGXMQXLwjmR0zVpx0rSvzTPAuoVILVsp5AU/w5FphNPxD5OVIjNbZv9KsKTuvNTiZjDp9g==" - }, - "@aws-sdk/util-body-length-node": { - "version": "3.310.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-body-length-node/-/util-body-length-node-3.310.0.tgz", - "integrity": "sha512-2tqGXdyKhyA6w4zz7UPoS8Ip+7sayOg9BwHNidiGm2ikbDxm1YrCfYXvCBdwaJxa4hJfRVz+aL9e+d3GqPI9pQ==" - }, - "@aws-sdk/util-buffer-from": { - "version": "3.310.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-buffer-from/-/util-buffer-from-3.310.0.tgz", - "integrity": "sha512-i6LVeXFtGih5Zs8enLrt+ExXY92QV25jtEnTKHsmlFqFAuL3VBeod6boeMXkN2p9lbSVVQ1sAOOYZOHYbYkntw==" - }, - "@aws-sdk/util-config-provider": { - "version": "3.310.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-config-provider/-/util-config-provider-3.310.0.tgz", - "integrity": "sha512-xIBaYo8dwiojCw8vnUcIL4Z5tyfb1v3yjqyJKJWV/dqKUFOOS0U591plmXbM+M/QkXyML3ypon1f8+BoaDExrg==" - }, - "@aws-sdk/util-defaults-mode-browser": { - "version": "3.316.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-defaults-mode-browser/-/util-defaults-mode-browser-3.316.0.tgz", - "integrity": "sha512-6FSqLhYmaihtH2n1s4b2rlLW0ABU8N6VZIfzLfe2ING4PF0MzfaMMhnTFUHVXfKCVGoR8yP6iyFTRCyHGVEL1w==" - }, - "@aws-sdk/util-defaults-mode-node": { - "version": "3.316.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-defaults-mode-node/-/util-defaults-mode-node-3.316.0.tgz", - "integrity": "sha512-dkYy10hdjPSScXXvnjGpZpnJxllkb6ICHgLMwZ4JczLHhPM12T/4PQ758YN8HS+muiYDGX1Bl2z1jd/bMcewBQ==" + "version": "3.433.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.433.0.tgz", + "integrity": "sha512-0jEE2mSrNDd8VGFjTc1otYrwYPIkzZJEIK90ZxisKvQ/EURGBhNzWn7ejWB9XCMFT6XumYLBR0V9qq5UPisWtA==" }, "@aws-sdk/util-endpoints": { - "version": "3.310.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.310.0.tgz", - "integrity": "sha512-zG+/d/O5KPmAaeOMPd6bW1abifdT0H03f42keLjYEoRZzYtHPC5DuPE0UayiWGckI6BCDgy0sRKXCYS49UNFaQ==" - }, - "@aws-sdk/util-hex-encoding": { - "version": "3.310.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-hex-encoding/-/util-hex-encoding-3.310.0.tgz", - "integrity": "sha512-sVN7mcCCDSJ67pI1ZMtk84SKGqyix6/0A1Ab163YKn+lFBQRMKexleZzpYzNGxYzmQS6VanP/cfU7NiLQOaSfA==" + "version": "3.438.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.438.0.tgz", + "integrity": "sha512-6VyPTq1kN3GWxwFt5DdZfOsr6cJZPLjWh0troY/0uUv3hK74C9o3Y0Xf/z8UAUvQFkVqZse12O0/BgPVMImvfA==" }, "@aws-sdk/util-locate-window": { "version": "3.310.0", "resolved": "https://registry.npmjs.org/@aws-sdk/util-locate-window/-/util-locate-window-3.310.0.tgz", "integrity": "sha512-qo2t/vBTnoXpjKxlsC2e1gBrRm80M3bId27r0BRB2VniSSe7bL1mmzM+/HFtujm0iAxtPM+aLEflLJlJeDPg0w==" }, - "@aws-sdk/util-middleware": { - "version": "3.310.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-middleware/-/util-middleware-3.310.0.tgz", - "integrity": "sha512-FTSUKL/eRb9X6uEZClrTe27QFXUNNp7fxYrPndZwk1hlaOP5ix+MIHBcI7pIiiY/JPfOUmPyZOu+HetlFXjWog==" - }, - "@aws-sdk/util-retry": { - "version": "3.310.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-retry/-/util-retry-3.310.0.tgz", - "integrity": "sha512-FwWGhCBLfoivTMUHu1LIn4NjrN9JLJ/aX5aZmbcPIOhZVFJj638j0qDgZXyfvVqBuBZh7M8kGq0Oahy3dp69OA==" - }, - "@aws-sdk/util-uri-escape": { - "version": "3.310.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-uri-escape/-/util-uri-escape-3.310.0.tgz", - "integrity": "sha512-drzt+aB2qo2LgtDoiy/3sVG8w63cgLkqFIa2NFlGpUgHFWTXkqtbgf4L5QdjRGKWhmZsnqkbtL7vkSWEcYDJ4Q==" - }, "@aws-sdk/util-user-agent-browser": { - "version": "3.310.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.310.0.tgz", - "integrity": "sha512-yU/4QnHHuQ5z3vsUqMQVfYLbZGYwpYblPiuZx4Zo9+x0PBkNjYMqctdDcrpoH9Z2xZiDN16AmQGK1tix117ZKw==" + "version": "3.433.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.433.0.tgz", + "integrity": "sha512-2Cf/Lwvxbt5RXvWFXrFr49vXv0IddiUwrZoAiwhDYxvsh+BMnh+NUFot+ZQaTrk/8IPZVDeLPWZRdVy00iaVXQ==" }, "@aws-sdk/util-user-agent-node": { - "version": "3.310.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.310.0.tgz", - "integrity": "sha512-Ra3pEl+Gn2BpeE7KiDGpi4zj7WJXZA5GXnGo3mjbi9+Y3zrbuhJAbdZO3mO/o7xDgMC6ph4xCTbaSGzU6b6EDg==" - }, - "@aws-sdk/util-utf8": { - "version": "3.310.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-utf8/-/util-utf8-3.310.0.tgz", - "integrity": "sha512-DnLfFT8uCO22uOJc0pt0DsSNau1GTisngBCDw8jQuWT5CqogMJu4b/uXmwEqfj8B3GX6Xsz8zOd6JpRlPftQoA==" + "version": "3.437.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.437.0.tgz", + "integrity": "sha512-JVEcvWaniamtYVPem4UthtCNoTBCfFTwYj7Y3CrWZ2Qic4TqrwLkAfaBGtI2TGrhIClVr77uzLI6exqMTN7orA==" }, "@aws-sdk/util-utf8-browser": { "version": "3.259.0", "resolved": "https://registry.npmjs.org/@aws-sdk/util-utf8-browser/-/util-utf8-browser-3.259.0.tgz", "integrity": "sha512-UvFa/vR+e19XookZF8RzFZBrw2EUkQWxiBW0yYQAhvk3C+QVGl0H3ouca8LDBlBfQKXwmW3huo/59H8rwb1wJw==" }, + "@mongodb-js/saslprep": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@mongodb-js/saslprep/-/saslprep-1.1.1.tgz", + "integrity": "sha512-t7c5K033joZZMspnHg/gWPE4kandgc2OxE74aYOtGKfgB9VPuVJPix0H6fhmm2erj5PBJ21mqcx34lpIGtUCsQ==" + }, + "@smithy/abort-controller": { + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/@smithy/abort-controller/-/abort-controller-2.0.12.tgz", + "integrity": "sha512-YIJyefe1mi3GxKdZxEBEuzYOeQ9xpYfqnFmWzojCssRAuR7ycxwpoRQgp965vuW426xUAQhCV5rCaWElQ7XsaA==" + }, + "@smithy/config-resolver": { + "version": "2.0.16", + "resolved": "https://registry.npmjs.org/@smithy/config-resolver/-/config-resolver-2.0.16.tgz", + "integrity": "sha512-1k+FWHQDt2pfpXhJsOmNMmlAZ3NUQ98X5tYsjQhVGq+0X6cOBMhfh6Igd0IX3Ut6lEO6DQAdPMI/blNr3JZfMQ==" + }, + "@smithy/credential-provider-imds": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/@smithy/credential-provider-imds/-/credential-provider-imds-2.0.18.tgz", + "integrity": "sha512-QnPBi6D2zj6AHJdUTo5zXmk8vwHJ2bNevhcVned1y+TZz/OI5cizz5DsYNkqFUIDn8tBuEyKNgbmKVNhBbuY3g==" + }, + "@smithy/eventstream-codec": { + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/@smithy/eventstream-codec/-/eventstream-codec-2.0.12.tgz", + "integrity": "sha512-ZZQLzHBJkbiAAdj2C5K+lBlYp/XJ+eH2uy+jgJgYIFW/o5AM59Hlj7zyI44/ZTDIQWmBxb3EFv/c5t44V8/g8A==" + }, + "@smithy/fetch-http-handler": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/@smithy/fetch-http-handler/-/fetch-http-handler-2.2.4.tgz", + "integrity": "sha512-gIPRFEGi+c6V52eauGKrjDzPWF2Cu7Z1r5F8A3j2wcwz25sPG/t8kjsbEhli/tS/2zJp/ybCZXe4j4ro3yv/HA==" + }, + "@smithy/hash-node": { + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/@smithy/hash-node/-/hash-node-2.0.12.tgz", + "integrity": "sha512-fDZnTr5j9t5qcbeJ037aMZXxMka13Znqwrgy3PAqYj6Dm3XHXHftTH3q+NWgayUxl1992GFtQt1RuEzRMy3NnQ==" + }, + "@smithy/invalid-dependency": { + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/@smithy/invalid-dependency/-/invalid-dependency-2.0.12.tgz", + "integrity": "sha512-p5Y+iMHV3SoEpy3VSR7mifbreHQwVSvHSAz/m4GdoXfOzKzaYC8hYv10Ks7Deblkf7lhas8U+lAp9ThbBM+ZXA==" + }, + "@smithy/is-array-buffer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@smithy/is-array-buffer/-/is-array-buffer-2.0.0.tgz", + "integrity": "sha512-z3PjFjMyZNI98JFRJi/U0nGoLWMSJlDjAW4QUX2WNZLas5C0CmVV6LJ01JI0k90l7FvpmixjWxPFmENSClQ7ug==" + }, + "@smithy/middleware-content-length": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/@smithy/middleware-content-length/-/middleware-content-length-2.0.14.tgz", + "integrity": "sha512-poUNgKTw9XwPXfX9nEHpVgrMNVpaSMZbshqvPxFVoalF4wp6kRzYKOfdesSVectlQ51VtigoLfbXcdyPwvxgTg==" + }, + "@smithy/middleware-endpoint": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@smithy/middleware-endpoint/-/middleware-endpoint-2.1.3.tgz", + "integrity": "sha512-ZrQ0/YX6hNVTxqMEHtEaDbDv6pNeEji/a5Vk3HuFC5R3ZY8lfoATyxmOGxBVYnF3NUvZLNC7umEv1WzWGWvCGQ==" + }, + "@smithy/middleware-retry": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/@smithy/middleware-retry/-/middleware-retry-2.0.18.tgz", + "integrity": "sha512-VyrHQRldGSb3v9oFOB5yPxmLT7U2sQic2ytylOnYlnsmVOLlFIaI6sW22c+w2675yq+XZ6HOuzV7x2OBYCWRNA==" + }, + "@smithy/middleware-serde": { + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/@smithy/middleware-serde/-/middleware-serde-2.0.12.tgz", + "integrity": "sha512-IBeco157lIScecq2Z+n0gq56i4MTnfKxS7rbfrAORveDJgnbBAaEQgYqMqp/cYqKrpvEXcyTjwKHrBjCCIZh2A==" + }, + "@smithy/middleware-stack": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@smithy/middleware-stack/-/middleware-stack-2.0.6.tgz", + "integrity": "sha512-YSvNZeOKWLJ0M/ycxwDIe2Ztkp6Qixmcml1ggsSv2fdHKGkBPhGrX5tMzPGMI1yyx55UEYBi2OB4s+RriXX48A==" + }, + "@smithy/node-config-provider": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-2.1.3.tgz", + "integrity": "sha512-J6lXvRHGVnSX3n1PYi+e1L5HN73DkkJpUviV3Ebf+8wSaIjAf+eVNbzyvh/S5EQz7nf4KVfwbD5vdoZMAthAEQ==" + }, + "@smithy/node-http-handler": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/@smithy/node-http-handler/-/node-http-handler-2.1.8.tgz", + "integrity": "sha512-KZylM7Wff/So5SmCiwg2kQNXJ+RXgz34wkxS7WNwIUXuZrZZpY/jKJCK+ZaGyuESDu3TxcaY+zeYGJmnFKbQsA==" + }, + "@smithy/property-provider": { + "version": "2.0.13", + "resolved": "https://registry.npmjs.org/@smithy/property-provider/-/property-provider-2.0.13.tgz", + "integrity": "sha512-VJqUf2CbsQX6uUiC5dUPuoEATuFjkbkW3lJHbRnpk9EDC9X+iKqhfTK+WP+lve5EQ9TcCI1Q6R7hrg41FyC54w==" + }, + "@smithy/protocol-http": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/@smithy/protocol-http/-/protocol-http-3.0.8.tgz", + "integrity": "sha512-SHJvYeWq8q0FK8xHk+xjV9dzDUDjFMT+G1pZbV+XB6OVoac/FSVshlMNPeUJ8AmSkcDKHRu5vASnRqZHgD3qhw==" + }, + "@smithy/querystring-builder": { + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/@smithy/querystring-builder/-/querystring-builder-2.0.12.tgz", + "integrity": "sha512-cDbF07IuCjiN8CdGvPzfJjXIrmDSelScRfyJYrYBNBbKl2+k7QD/KqiHhtRyEKgID5mmEVrV6KE6L/iPJ98sFw==" + }, + "@smithy/querystring-parser": { + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/@smithy/querystring-parser/-/querystring-parser-2.0.12.tgz", + "integrity": "sha512-fytyTcXaMzPBuNtPlhj5v6dbl4bJAnwKZFyyItAGt4Tgm9HFPZNo7a9r1SKPr/qdxUEBzvL9Rh+B9SkTX3kFxg==" + }, + "@smithy/service-error-classification": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@smithy/service-error-classification/-/service-error-classification-2.0.5.tgz", + "integrity": "sha512-M0SeJnEgD2ywJyV99Fb1yKFzmxDe9JfpJiYTVSRMyRLc467BPU0qsuuDPzMCdB1mU8M8u1rVOdkqdoyFN8UFTw==" + }, + "@smithy/shared-ini-file-loader": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-2.2.2.tgz", + "integrity": "sha512-noyQUPn7b1M8uB0GEXc/Zyxq+5K2b7aaqWnLp+hgJ7+xu/FCvtyWy5eWLDjQEsHnAet2IZhS5QF8872OR69uNg==" + }, + "@smithy/signature-v4": { + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/@smithy/signature-v4/-/signature-v4-2.0.12.tgz", + "integrity": "sha512-6Kc2lCZEVmb1nNYngyNbWpq0d82OZwITH11SW/Q0U6PX5fH7B2cIcFe7o6eGEFPkTZTP8itTzmYiGcECL0D0Lw==" + }, + "@smithy/smithy-client": { + "version": "2.1.12", + "resolved": "https://registry.npmjs.org/@smithy/smithy-client/-/smithy-client-2.1.12.tgz", + "integrity": "sha512-XXqhridfkKnpj+lt8vM6HRlZbqUAqBjVC74JIi13F/AYQd/zTj9SOyGfxnbp4mjY9q28LityxIuV8CTinr9r5w==" + }, + "@smithy/types": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@smithy/types/-/types-2.4.0.tgz", + "integrity": "sha512-iH1Xz68FWlmBJ9vvYeHifVMWJf82ONx+OybPW8ZGf5wnEv2S0UXcU4zwlwJkRXuLKpcSLHrraHbn2ucdVXLb4g==" + }, + "@smithy/url-parser": { + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/@smithy/url-parser/-/url-parser-2.0.12.tgz", + "integrity": "sha512-qgkW2mZqRvlNUcBkxYB/gYacRaAdck77Dk3/g2iw0S9F0EYthIS3loGfly8AwoWpIvHKhkTsCXXQfzksgZ4zIA==" + }, + "@smithy/util-base64": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@smithy/util-base64/-/util-base64-2.0.0.tgz", + "integrity": "sha512-Zb1E4xx+m5Lud8bbeYi5FkcMJMnn+1WUnJF3qD7rAdXpaL7UjkFQLdmW5fHadoKbdHpwH9vSR8EyTJFHJs++tA==" + }, + "@smithy/util-body-length-browser": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@smithy/util-body-length-browser/-/util-body-length-browser-2.0.0.tgz", + "integrity": "sha512-JdDuS4ircJt+FDnaQj88TzZY3+njZ6O+D3uakS32f2VNnDo3vyEuNdBOh/oFd8Df1zSZOuH1HEChk2AOYDezZg==" + }, + "@smithy/util-body-length-node": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@smithy/util-body-length-node/-/util-body-length-node-2.1.0.tgz", + "integrity": "sha512-/li0/kj/y3fQ3vyzn36NTLGmUwAICb7Jbe/CsWCktW363gh1MOcpEcSO3mJ344Gv2dqz8YJCLQpb6hju/0qOWw==" + }, + "@smithy/util-buffer-from": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@smithy/util-buffer-from/-/util-buffer-from-2.0.0.tgz", + "integrity": "sha512-/YNnLoHsR+4W4Vf2wL5lGv0ksg8Bmk3GEGxn2vEQt52AQaPSCuaO5PM5VM7lP1K9qHRKHwrPGktqVoAHKWHxzw==" + }, + "@smithy/util-config-provider": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@smithy/util-config-provider/-/util-config-provider-2.0.0.tgz", + "integrity": "sha512-xCQ6UapcIWKxXHEU4Mcs2s7LcFQRiU3XEluM2WcCjjBtQkUN71Tb+ydGmJFPxMUrW/GWMgQEEGipLym4XG0jZg==" + }, + "@smithy/util-defaults-mode-browser": { + "version": "2.0.16", + "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-2.0.16.tgz", + "integrity": "sha512-Uv5Cu8nVkuvLn0puX+R9zWbSNpLIR3AxUlPoLJ7hC5lvir8B2WVqVEkJLwtixKAncVLasnTVjPDCidtAUTGEQw==" + }, + "@smithy/util-defaults-mode-node": { + "version": "2.0.21", + "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-2.0.21.tgz", + "integrity": "sha512-cUEsttVZ79B7Al2rWK2FW03HBpD9LyuqFtm+1qFty5u9sHSdesr215gS2Ln53fTopNiPgeXpdoM3IgjvIO0rJw==" + }, + "@smithy/util-endpoints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@smithy/util-endpoints/-/util-endpoints-1.0.2.tgz", + "integrity": "sha512-QEdq+sP68IJHAMVB2ugKVVZEWeKQtZLuf+akHzc8eTVElsZ2ZdVLWC6Cp+uKjJ/t4yOj1qu6ZzyxJQEQ8jdEjg==" + }, + "@smithy/util-hex-encoding": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@smithy/util-hex-encoding/-/util-hex-encoding-2.0.0.tgz", + "integrity": "sha512-c5xY+NUnFqG6d7HFh1IFfrm3mGl29lC+vF+geHv4ToiuJCBmIfzx6IeHLg+OgRdPFKDXIw6pvi+p3CsscaMcMA==" + }, + "@smithy/util-middleware": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@smithy/util-middleware/-/util-middleware-2.0.5.tgz", + "integrity": "sha512-1lyT3TcaMJQe+OFfVI+TlomDkPuVzb27NZYdYtmSTltVmLaUjdCyt4KE+OH1CnhZKsz4/cdCL420Lg9UH5Z2Mw==" + }, + "@smithy/util-retry": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@smithy/util-retry/-/util-retry-2.0.5.tgz", + "integrity": "sha512-x3t1+MQAJ6QONk3GTbJNcugCFDVJ+Bkro5YqQQK1EyVesajNDqxFtCx9WdOFNGm/Cbm7tUdwVEmfKQOJoU2Vtw==" + }, + "@smithy/util-stream": { + "version": "2.0.17", + "resolved": "https://registry.npmjs.org/@smithy/util-stream/-/util-stream-2.0.17.tgz", + "integrity": "sha512-fP/ZQ27rRvHsqItds8yB7jerwMpZFTL3QqbQbidUiG0+mttMoKdP0ZqnvM8UK5q0/dfc3/pN7g4XKPXOU7oRWw==" + }, + "@smithy/util-uri-escape": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@smithy/util-uri-escape/-/util-uri-escape-2.0.0.tgz", + "integrity": "sha512-ebkxsqinSdEooQduuk9CbKcI+wheijxEb3utGXkCoYQkJnwTnLbH1JXGimJtUkQwNQbsbuYwG2+aFVyZf5TLaw==" + }, + "@smithy/util-utf8": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@smithy/util-utf8/-/util-utf8-2.0.0.tgz", + "integrity": "sha512-rctU1VkziY84n5OXe3bPNpKR001ZCME2JCaBBFgtiM2hfKbHFudc/BkMuPab8hRbLd0j3vbnBTTZ1igBf0wgiQ==" + }, "@types/node": { - "version": "18.15.12", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.15.12.tgz", - "integrity": "sha512-Wha1UwsB3CYdqUm2PPzh/1gujGCNtWVUYF0mB00fJFoR4gTyWTDPjSm+zBF787Ahw8vSGgBja90MkgFwvB86Dg==" + "version": "20.8.10", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.8.10.tgz", + "integrity": "sha512-TlgT8JntpcbmKUFzjhsyhGfP2fsiz1Mv56im6enJ905xG1DAYesxJaeSbGqQmAw8OWPdhyJGhGSQGKRNJ45u9w==" }, "@types/webidl-conversions": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@types/webidl-conversions/-/webidl-conversions-7.0.0.tgz", - "integrity": "sha512-xTE1E+YF4aWPJJeUzaZI5DRntlkY3+BCVJi0axFptnjGmAoWxkyREIh/XMrfxVLejwQxMCfDXdICo0VLxThrog==" + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@types/webidl-conversions/-/webidl-conversions-7.0.2.tgz", + "integrity": "sha512-uNv6b/uGRLlCVmelat2rA8bcVd3k/42mV2EmjhPh6JLkd35T5bgwR/t6xy7a9MWhd9sixIeBUzhBenvk3NO+DQ==" }, "@types/whatwg-url": { "version": "8.2.2", @@ -397,9 +444,9 @@ "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==" }, "fast-xml-parser": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.1.2.tgz", - "integrity": "sha512-CDYeykkle1LiA/uqQyNwYpFbyF6Axec6YapmpUP+/RHWIoR1zKjocdvNaTsxCxZzQ6v9MLXaSYm9Qq0thv0DHg==" + "version": "4.2.5", + "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.2.5.tgz", + "integrity": "sha512-B9/wizE4WngqQftFPmdaMYlXoJlJOYxGQOanC77fq9k8+Z0v5dDSVh+3glErdIROP//s/jgb7ZuxKfB8nVyo0g==" }, "ieee754": { "version": "1.2.1", @@ -417,9 +464,9 @@ "integrity": "sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg==" }, "mongodb": { - "version": "4.16.0", - "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-4.16.0.tgz", - "integrity": "sha512-0EB113Fsucaq1wsY0dOhi1fmZOwFtLOtteQkiqOXGklvWMnSH3g2QS53f0KTP+/6qOkuoXE2JksubSZNmxeI+g==" + "version": "4.17.0", + "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-4.17.0.tgz", + "integrity": "sha512-LZGMIPjPfWEfhPJATk1s9IvVTD18tyfKdT/0blCMih5vGagk2SwA9wFAUPMdtJpTrhXmyfGgwAaMkvneX2bn2A==" }, "mongodb-connection-string-url": { "version": "2.6.0", @@ -427,14 +474,9 @@ "integrity": "sha512-WvTZlI9ab0QYtTYnuMLgobULWhokRjtC7db9LtcVfJ+Hsnyr5eo6ZtNAt3Ly24XZScGMelOcGtm7lSn0332tPQ==" }, "punycode": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", - "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==" - }, - "saslprep": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/saslprep/-/saslprep-1.0.3.tgz", - "integrity": "sha512-/MY/PEMbk2SuY5sScONwhUDsV2p77Znkb/q3nSVstq/yQzYJOH/Azh29p9oJLsl3LnQwSvZDKagDGBsBwSooag==" + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==" }, "smart-buffer": { "version": "4.2.0", @@ -462,9 +504,14 @@ "integrity": "sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==" }, "tslib": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", - "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==" + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" + }, + "undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==" }, "uuid": { "version": "8.3.2", diff --git a/packages/react-fast-refresh/.npm/package/npm-shrinkwrap.json b/packages/react-fast-refresh/.npm/package/npm-shrinkwrap.json index 5c9b603b02..1205d69749 100644 --- a/packages/react-fast-refresh/.npm/package/npm-shrinkwrap.json +++ b/packages/react-fast-refresh/.npm/package/npm-shrinkwrap.json @@ -12,9 +12,9 @@ "integrity": "sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ==" }, "semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==" + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==" }, "yallist": { "version": "4.0.0", From e61e93ad1c6bfa56cde2d20c3b4983bc56fcc87e Mon Sep 17 00:00:00 2001 From: Jan Dvorak Date: Thu, 2 Nov 2023 19:37:06 +0100 Subject: [PATCH 102/102] Fix type per @radekmie #12849 comment --- packages/service-configuration/service-configuration.d.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/service-configuration/service-configuration.d.ts b/packages/service-configuration/service-configuration.d.ts index c735adc1cc..828a517409 100644 --- a/packages/service-configuration/service-configuration.d.ts +++ b/packages/service-configuration/service-configuration.d.ts @@ -12,5 +12,5 @@ class ConfigError extends Error { export declare var ServiceConfiguration: { configurations: Mongo.Collection; - ConfigError + ConfigError: typeof ConfigError };