From 104ae8c6ee0e6d7327d205e6a1a0e8390a9b2716 Mon Sep 17 00:00:00 2001 From: Gabriel Grubba Date: Tue, 13 Dec 2022 16:58:20 -0300 Subject: [PATCH 1/9] chore: updated _config.yml --- docs/_config.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/_config.yml b/docs/_config.yml index 7a70499147..1bd31f0460 100644 --- a/docs/_config.yml +++ b/docs/_config.yml @@ -1,6 +1,7 @@ title: Meteor API Docs subtitle: API Docs versions: + - '2.9' - '2.8' - '2.7' - '2.6' From 647b9646bfc8584a8d497e7461c0efe92f82236e Mon Sep 17 00:00:00 2001 From: Gabriel Grubba Date: Tue, 13 Dec 2022 17:58:50 -0300 Subject: [PATCH 2/9] docs: updated breaking changes for more clarity --- docs/history.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/history.md b/docs/history.md index cf797a4e59..cf90d38dde 100644 --- a/docs/history.md +++ b/docs/history.md @@ -32,7 +32,8 @@ #### Breaking Changes -* Most of OAuth related code has been moved from `accounts-base` to `accounts-oauth`. +* OAuth related code has been moved from `accounts-base` to `accounts-oauth`, removing the dependency on `service-configuration` +more can be seen in this [discussion](https://github.com/meteor/meteor/discussions/12171) and in the [PR](https://github.com/meteor/meteor/pull/12202). #### Migration Steps From 73bc53a52ca1507b8d4be15b8585743f7539a5fb Mon Sep 17 00:00:00 2001 From: Gabriel Grubba Date: Wed, 14 Dec 2022 09:29:24 -0300 Subject: [PATCH 3/9] docs: update on history.md(breaking changes) --- docs/history.md | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/docs/history.md b/docs/history.md index cf90d38dde..2c41408d65 100644 --- a/docs/history.md +++ b/docs/history.md @@ -31,9 +31,18 @@ by [henriquealbert](https://github.com/henriquealbert). #### Breaking Changes + N/A -* OAuth related code has been moved from `accounts-base` to `accounts-oauth`, removing the dependency on `service-configuration` -more can be seen in this [discussion](https://github.com/meteor/meteor/discussions/12171) and in the [PR](https://github.com/meteor/meteor/pull/12202). +#### Internal API changes +* Internal methods from `OAuth` that are now async: + - _attemptLogin + - _loginMethod + - _runLoginHandlers + - OAuth.registerService now accepts async functions + +OAuth related code has been moved from `accounts-base` to `accounts-oauth`, removing the dependency on `service-configuration` +more can be seen in this [discussion](https://github.com/meteor/meteor/discussions/12171) and in the [PR](https://github.com/meteor/meteor/pull/12202). +This means that if you don’t use third-party login on your project, you don’t need to add the package service-configuration anymore. #### Migration Steps From 7d2de151539ba31e8e6233238ec85c5a46edbea8 Mon Sep 17 00:00:00 2001 From: Gabriel Grubba Date: Wed, 14 Dec 2022 12:19:11 -0300 Subject: [PATCH 4/9] chore: update dev bundle --- meteor | 2 +- npm-packages/meteor-babel/options.js | 6 +++--- npm-packages/meteor-babel/package.json | 2 +- npm-packages/meteor-babel/plugins/async-await.js | 2 +- scripts/dev-bundle-tool-package.js | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/meteor b/meteor index be2307e734..7003b348c5 100755 --- a/meteor +++ b/meteor @@ -1,6 +1,6 @@ #!/usr/bin/env bash -BUNDLE_VERSION=14.21.1.4 +BUNDLE_VERSION=14.21.1.5 # OS Check. Put here because here is where we download the precompiled # bundles that are arch specific. diff --git a/npm-packages/meteor-babel/options.js b/npm-packages/meteor-babel/options.js index 93bb21b905..6816d68179 100644 --- a/npm-packages/meteor-babel/options.js +++ b/npm-packages/meteor-babel/options.js @@ -185,12 +185,12 @@ function getDefaultsForNode8(features) { // Ensure that async functions run in a Fiber, while also taking // full advantage of native async/await support in Node 8. - + const isFiberDisabled = process.env.DISABLE_FIBERS || false; combined.plugins.push([require("./plugins/async-await.js"), { // Do not transform `await x` to `Promise.await(x)`, since Node // 8 has native support for await expressions. - useNativeAsyncAwait: !process.env.DISABLE_FIBERS, - isFiberDisabled: process.env.DISABLE_FIBERS, + useNativeAsyncAwait: !isFiberDisabled, + isFiberDisabled: isFiberDisabled, }]); // Enable async generator functions proposal. diff --git a/npm-packages/meteor-babel/package.json b/npm-packages/meteor-babel/package.json index f3b5642e8a..61c50ee1d5 100644 --- a/npm-packages/meteor-babel/package.json +++ b/npm-packages/meteor-babel/package.json @@ -1,7 +1,7 @@ { "name": "@meteorjs/babel", "author": "Meteor ", - "version": "7.18.0-beta.1", + "version": "7.18.0-beta.2", "license": "MIT", "description": "Babel wrapper package for use with Meteor", "keywords": [ diff --git a/npm-packages/meteor-babel/plugins/async-await.js b/npm-packages/meteor-babel/plugins/async-await.js index 2d1de3e9e1..c0872399eb 100644 --- a/npm-packages/meteor-babel/plugins/async-await.js +++ b/npm-packages/meteor-babel/plugins/async-await.js @@ -9,7 +9,7 @@ module.exports = function (babel) { Function: { exit: function (path) { const node = path.node; - if (!node.async || !this.opts.isFiberDisabled) { + if (!node.async || this.opts.isFiberDisabled) { return; } diff --git a/scripts/dev-bundle-tool-package.js b/scripts/dev-bundle-tool-package.js index 9fb98228b9..03fe5abf53 100644 --- a/scripts/dev-bundle-tool-package.js +++ b/scripts/dev-bundle-tool-package.js @@ -15,7 +15,7 @@ var packageJson = { "node-gyp": "8.0.0", "node-pre-gyp": "0.15.0", typescript: "4.5.4", - "@meteorjs/babel": "7.18.0-beta.1", + "@meteorjs/babel": "7.18.0-beta.2", // Keep the versions of these packages consistent with the versions // found in dev-bundle-server-package.js. "meteor-promise": "0.9.0", From 61fa84efc768b91cc83ab200a168f39c0d61a5c1 Mon Sep 17 00:00:00 2001 From: denihs Date: Wed, 14 Dec 2022 14:43:47 -0400 Subject: [PATCH 5/9] new meteor-babel version --- npm-packages/meteor-babel/options.js | 1 + npm-packages/meteor-babel/package.json | 2 +- .../meteor-babel/plugins/async-await.js | 17 ++++++++++++----- scripts/dev-bundle-tool-package.js | 2 +- 4 files changed, 15 insertions(+), 7 deletions(-) diff --git a/npm-packages/meteor-babel/options.js b/npm-packages/meteor-babel/options.js index 6816d68179..e1287b8ca5 100644 --- a/npm-packages/meteor-babel/options.js +++ b/npm-packages/meteor-babel/options.js @@ -191,6 +191,7 @@ function getDefaultsForNode8(features) { // 8 has native support for await expressions. useNativeAsyncAwait: !isFiberDisabled, isFiberDisabled: isFiberDisabled, + overwriteFiberExit: process.env.OVERWRITE_FIBERS_EXIT === '1', }]); // Enable async generator functions proposal. diff --git a/npm-packages/meteor-babel/package.json b/npm-packages/meteor-babel/package.json index 61c50ee1d5..cb7a5fb0ed 100644 --- a/npm-packages/meteor-babel/package.json +++ b/npm-packages/meteor-babel/package.json @@ -1,7 +1,7 @@ { "name": "@meteorjs/babel", "author": "Meteor ", - "version": "7.18.0-beta.2", + "version": "7.18.0-beta.3", "license": "MIT", "description": "Babel wrapper package for use with Meteor", "keywords": [ diff --git a/npm-packages/meteor-babel/plugins/async-await.js b/npm-packages/meteor-babel/plugins/async-await.js index c0872399eb..38abbff65f 100644 --- a/npm-packages/meteor-babel/plugins/async-await.js +++ b/npm-packages/meteor-babel/plugins/async-await.js @@ -9,14 +9,10 @@ module.exports = function (babel) { Function: { exit: function (path) { const node = path.node; - if (!node.async || this.opts.isFiberDisabled) { + if (!node.async) { return; } - // The original function becomes a non-async function that - // returns a Promise. - node.async = false; - // The inner function should inherit lexical environment items // like `this`, `super`, and `arguments` from the outer // function, and arrow functions provide exactly that behavior. @@ -30,6 +26,17 @@ module.exports = function (babel) { !! this.opts.useNativeAsyncAwait ); + if (this.opts.isFiberDisabled && this.opts.overwriteFiberExit) { + if (node.type === "ArrowFunctionExpression") { + node.body = innerFn; + } + return; + } + + // The original function becomes a non-async function that + // returns a Promise. + node.async = false; + const promiseResultExpression = t.callExpression( t.memberExpression( t.identifier("Promise"), diff --git a/scripts/dev-bundle-tool-package.js b/scripts/dev-bundle-tool-package.js index 03fe5abf53..d053cff797 100644 --- a/scripts/dev-bundle-tool-package.js +++ b/scripts/dev-bundle-tool-package.js @@ -15,7 +15,7 @@ var packageJson = { "node-gyp": "8.0.0", "node-pre-gyp": "0.15.0", typescript: "4.5.4", - "@meteorjs/babel": "7.18.0-beta.2", + "@meteorjs/babel": "7.18.0-beta.3", // Keep the versions of these packages consistent with the versions // found in dev-bundle-server-package.js. "meteor-promise": "0.9.0", From 6d24edca5dab36d705e5892a64eee73af770ba61 Mon Sep 17 00:00:00 2001 From: Gabriel Grubba Date: Wed, 14 Dec 2022 15:46:07 -0300 Subject: [PATCH 6/9] feat: new dev bundle :commet: --- meteor | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meteor b/meteor index 7003b348c5..dadfa87b20 100755 --- a/meteor +++ b/meteor @@ -1,6 +1,6 @@ #!/usr/bin/env bash -BUNDLE_VERSION=14.21.1.5 +BUNDLE_VERSION=14.21.1.6 # OS Check. Put here because here is where we download the precompiled # bundles that are arch specific. From 6b61f03d9f5732c32b83fc0b1b077316e6ad5066 Mon Sep 17 00:00:00 2001 From: denihs Date: Wed, 14 Dec 2022 16:15:05 -0400 Subject: [PATCH 7/9] Fixing ddp-server tests --- packages/ddp-server/livedata_server_async_tests.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/ddp-server/livedata_server_async_tests.js b/packages/ddp-server/livedata_server_async_tests.js index c2ca9fcdee..e326a59a0a 100644 --- a/packages/ddp-server/livedata_server_async_tests.js +++ b/packages/ddp-server/livedata_server_async_tests.js @@ -166,8 +166,8 @@ Tinytest.addAsync('livedata server - async publish cursor', function( const remoteCollection = new Mongo.Collection('names', { connection: clientConn, }); - clientConn.subscribe('asyncPublishCursor', () => { - const actual = remoteCollection.find().fetch(); + clientConn.subscribe('asyncPublishCursor', async () => { + const actual = await remoteCollection.find().fetch(); test.equal(actual[0].name, 'async'); onComplete(); }); From 0ee038b24b95b3a955cb3c9b18cdaec3b0f8f9fd Mon Sep 17 00:00:00 2001 From: denihs Date: Thu, 15 Dec 2022 10:30:45 -0400 Subject: [PATCH 8/9] Create new version for meteor-babel New flag to ignore async plugin --- npm-packages/meteor-babel/options.js | 17 +++++++++-------- npm-packages/meteor-babel/package.json | 2 +- .../meteor-babel/plugins/async-await.js | 15 ++++----------- scripts/dev-bundle-tool-package.js | 2 +- 4 files changed, 15 insertions(+), 21 deletions(-) diff --git a/npm-packages/meteor-babel/options.js b/npm-packages/meteor-babel/options.js index e1287b8ca5..4454148783 100644 --- a/npm-packages/meteor-babel/options.js +++ b/npm-packages/meteor-babel/options.js @@ -185,15 +185,16 @@ function getDefaultsForNode8(features) { // Ensure that async functions run in a Fiber, while also taking // full advantage of native async/await support in Node 8. - const isFiberDisabled = process.env.DISABLE_FIBERS || false; - combined.plugins.push([require("./plugins/async-await.js"), { - // Do not transform `await x` to `Promise.await(x)`, since Node - // 8 has native support for await expressions. - useNativeAsyncAwait: !isFiberDisabled, - isFiberDisabled: isFiberDisabled, - overwriteFiberExit: process.env.OVERWRITE_FIBERS_EXIT === '1', - }]); + const isFiberDisabled = process.env.DISABLE_FIBERS === '1'; + const ignoreAsyncPlugin = process.env.IGNORE_ASYNC_PLUGIN === '1'; + if (!ignoreAsyncPlugin) { + combined.plugins.push([require("./plugins/async-await.js"), { + // Do not transform `await x` to `Promise.await(x)`, since Node + // 8 has native support for await expressions. + useNativeAsyncAwait: isFiberDisabled, + }]); + } // Enable async generator functions proposal. combined.plugins.push(require("@babel/plugin-proposal-async-generator-functions")); } diff --git a/npm-packages/meteor-babel/package.json b/npm-packages/meteor-babel/package.json index cb7a5fb0ed..56a18465f3 100644 --- a/npm-packages/meteor-babel/package.json +++ b/npm-packages/meteor-babel/package.json @@ -1,7 +1,7 @@ { "name": "@meteorjs/babel", "author": "Meteor ", - "version": "7.18.0-beta.3", + "version": "7.18.0-beta.4", "license": "MIT", "description": "Babel wrapper package for use with Meteor", "keywords": [ diff --git a/npm-packages/meteor-babel/plugins/async-await.js b/npm-packages/meteor-babel/plugins/async-await.js index 38abbff65f..9110ae383a 100644 --- a/npm-packages/meteor-babel/plugins/async-await.js +++ b/npm-packages/meteor-babel/plugins/async-await.js @@ -13,6 +13,10 @@ module.exports = function (babel) { return; } + // The original function becomes a non-async function that + // returns a Promise. + node.async = false; + // The inner function should inherit lexical environment items // like `this`, `super`, and `arguments` from the outer // function, and arrow functions provide exactly that behavior. @@ -26,17 +30,6 @@ module.exports = function (babel) { !! this.opts.useNativeAsyncAwait ); - if (this.opts.isFiberDisabled && this.opts.overwriteFiberExit) { - if (node.type === "ArrowFunctionExpression") { - node.body = innerFn; - } - return; - } - - // The original function becomes a non-async function that - // returns a Promise. - node.async = false; - const promiseResultExpression = t.callExpression( t.memberExpression( t.identifier("Promise"), diff --git a/scripts/dev-bundle-tool-package.js b/scripts/dev-bundle-tool-package.js index d053cff797..13c5ba5771 100644 --- a/scripts/dev-bundle-tool-package.js +++ b/scripts/dev-bundle-tool-package.js @@ -15,7 +15,7 @@ var packageJson = { "node-gyp": "8.0.0", "node-pre-gyp": "0.15.0", typescript: "4.5.4", - "@meteorjs/babel": "7.18.0-beta.3", + "@meteorjs/babel": "7.18.0-beta.4", // Keep the versions of these packages consistent with the versions // found in dev-bundle-server-package.js. "meteor-promise": "0.9.0", From c3d11410a9140fcf91834ad70ce859feb7843b5e Mon Sep 17 00:00:00 2001 From: denihs Date: Thu, 15 Dec 2022 10:51:03 -0400 Subject: [PATCH 9/9] New dev bundle version --- meteor | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meteor b/meteor index dadfa87b20..b99b7aedde 100755 --- a/meteor +++ b/meteor @@ -1,6 +1,6 @@ #!/usr/bin/env bash -BUNDLE_VERSION=14.21.1.6 +BUNDLE_VERSION=14.21.1.7 # OS Check. Put here because here is where we download the precompiled # bundles that are arch specific.