mirror of
https://github.com/meteor/meteor.git
synced 2026-05-02 03:01:46 -04:00
Merge branch 'refs/heads/release-3.0' into fix/method-back-from-offile
# Conflicts: # packages/npm-mongo/.npm/package/npm-shrinkwrap.json
This commit is contained in:
@@ -224,15 +224,19 @@ export const loadAsyncStubHelpers = () => {
|
||||
};
|
||||
|
||||
let oldSend = Connection.prototype._send;
|
||||
Connection.prototype._send = function () {
|
||||
if (!queueSend) {
|
||||
Connection.prototype._send = function (params, shouldQueue) {
|
||||
if (this._stream._neverQueued) {
|
||||
return oldSend.apply(this, arguments);
|
||||
}
|
||||
|
||||
if (!queueSend && !shouldQueue) {
|
||||
return oldSend.call(this, params);
|
||||
}
|
||||
|
||||
queueSend = false;
|
||||
queueFunction((resolve) => {
|
||||
try {
|
||||
oldSend.apply(this, arguments);
|
||||
oldSend.call(this, params);
|
||||
} finally {
|
||||
resolve();
|
||||
}
|
||||
|
||||
@@ -456,7 +456,7 @@ export class Connection {
|
||||
this.ready && this.readyDeps.changed();
|
||||
},
|
||||
stop() {
|
||||
this.connection._send({ msg: 'unsub', id: id });
|
||||
this.connection._sendQueued({ msg: 'unsub', id: id });
|
||||
this.remove();
|
||||
|
||||
if (callbacks.onStop) {
|
||||
@@ -1031,6 +1031,13 @@ export class Connection {
|
||||
this._stream.send(DDPCommon.stringifyDDP(obj));
|
||||
}
|
||||
|
||||
// Always queues the call before sending the message
|
||||
// Used, for example, on subscription.[id].stop() to make sure a "sub" message is always called before an "unsub" message
|
||||
// https://github.com/meteor/meteor/issues/13212
|
||||
_sendQueued(obj) {
|
||||
this._send(obj, true);
|
||||
}
|
||||
|
||||
// We detected via DDP-level heartbeats that we've lost the
|
||||
// connection. Unlike `disconnect` or `close`, a lost connection
|
||||
// will be automatically retried.
|
||||
|
||||
@@ -2509,6 +2509,47 @@ if (Meteor.isClient) {
|
||||
test.equal((await coll.findOneAsync('aaa')).method, 222);
|
||||
test.equal((await coll.findOneAsync('aaa')).subscription, 112);
|
||||
});
|
||||
|
||||
Tinytest.addAsync(
|
||||
"livedata connection - make sure the sub and unsub run in the correct order",
|
||||
async function (test, onComplete) {
|
||||
const stream = new StubStream();
|
||||
// Make sure to disable this flag so the subscribe and unsubscribe are queued
|
||||
stream._neverQueued = false;
|
||||
const conn = newConnection(stream);
|
||||
|
||||
const sub = conn.subscribe("test_data");
|
||||
|
||||
// the subscribe message is still in the queue
|
||||
test.isFalse(conn._readyToMigrate());
|
||||
test.length(stream.sent, 0);
|
||||
|
||||
// unsubscribe
|
||||
sub.stop();
|
||||
|
||||
// the queue still holds the data and no message arrived yet
|
||||
test.isFalse(conn._readyToMigrate());
|
||||
test.length(stream.sent, 0);
|
||||
|
||||
// waits until the queue is empty
|
||||
await waitUntil(conn._readyToMigrate);
|
||||
|
||||
// the first message is the sub message
|
||||
let subMessage = JSON.parse(stream.sent.shift());
|
||||
test.equal(subMessage, {
|
||||
msg: "sub",
|
||||
name: "test_data",
|
||||
params: [],
|
||||
id: subMessage.id,
|
||||
});
|
||||
test.length(stream.sent, 1);
|
||||
|
||||
// the second message is the unsub
|
||||
subMessage = JSON.parse(stream.sent.shift());
|
||||
test.equal(subMessage, { msg: "unsub", id: subMessage.id });
|
||||
test.length(stream.sent, 0);
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
// XXX also test:
|
||||
|
||||
@@ -32,9 +32,9 @@
|
||||
"integrity": "sha512-fKSWtyNQTclfi1A+s2KU91/r1mfANG1ZibxTdCwJGfV1J9UwcV22plFOm0wkaq4WzqW87zxiAkyp2Ho1Wn1NnA=="
|
||||
},
|
||||
"caniuse-db": {
|
||||
"version": "1.0.30001620",
|
||||
"resolved": "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30001620.tgz",
|
||||
"integrity": "sha512-dYQIgCcUpy2l/IfiEA6xgNHCgr5jmDWF4i89MRv6DqCiEt4MNJguYsVeVZSxyqWfb8GfhWEZEMkjI3vhIYRrvw=="
|
||||
"version": "1.0.30001640",
|
||||
"resolved": "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30001640.tgz",
|
||||
"integrity": "sha512-K8/5iWoH/NULlqJz/iaopQJraQCHGcFGvs8dmTpAH7GyvoQu2Xq8ht3jq2c+wNck4bgQu/PHu2GN2mJfUj9qtw=="
|
||||
},
|
||||
"concat-map": {
|
||||
"version": "0.0.1",
|
||||
@@ -47,9 +47,9 @@
|
||||
"integrity": "sha512-OI38lO4JQQX2GSisTqwiSFxiWNmLajXdW4tCCxAuiwGKjusHALQadSHBSxGlU8lrFp47IkLuU2AfSYz31qpETQ=="
|
||||
},
|
||||
"debug": {
|
||||
"version": "4.3.4",
|
||||
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
|
||||
"integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ=="
|
||||
"version": "4.3.5",
|
||||
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.5.tgz",
|
||||
"integrity": "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg=="
|
||||
},
|
||||
"fs.realpath": {
|
||||
"version": "1.0.0",
|
||||
|
||||
48
packages/npm-mongo/.npm/package/npm-shrinkwrap.json
generated
48
packages/npm-mongo/.npm/package/npm-shrinkwrap.json
generated
@@ -56,9 +56,9 @@
|
||||
}
|
||||
},
|
||||
"@aws-sdk/client-cognito-identity": {
|
||||
"version": "3.613.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/client-cognito-identity/-/client-cognito-identity-3.613.0.tgz",
|
||||
"integrity": "sha512-it0EObqPTyHjcSxIcY4d/FMcDemgoH1IU2BUpputWkTjiJrXitv6r1kZUGNhUsDnTyD3KEZEvh0/OkeNpXhEEA=="
|
||||
"version": "3.609.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/client-cognito-identity/-/client-cognito-identity-3.609.0.tgz",
|
||||
"integrity": "sha512-3kDTpia1iN/accayoH3MbZRbDvX2tzrKrBTU7wNNoazVrh+gOMS8KCOWrOB72F0V299l4FsfQhnl9BDMVrc1iw=="
|
||||
},
|
||||
"@aws-sdk/client-sso": {
|
||||
"version": "3.609.0",
|
||||
@@ -66,14 +66,14 @@
|
||||
"integrity": "sha512-gqXGFDkIpKHCKAbeJK4aIDt3tiwJ26Rf5Tqw9JS6BYXsdMeOB8FTzqD9R+Yc1epHd8s5L94sdqXT5PapgxFZrg=="
|
||||
},
|
||||
"@aws-sdk/client-sso-oidc": {
|
||||
"version": "3.613.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.613.0.tgz",
|
||||
"integrity": "sha512-VINgHA30f6Itjtj6ZAxkx86XhyFYa7UBfv2Ju+9QGcAr2Y3HU+Mh9g6QaTwDqIM5QG6Pgss24NaAItWGJHFf5A=="
|
||||
"version": "3.609.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.609.0.tgz",
|
||||
"integrity": "sha512-0bNPAyPdkWkS9EGB2A9BZDkBNrnVCBzk5lYRezoT4K3/gi9w1DTYH5tuRdwaTZdxW19U1mq7CV0YJJARKO1L9Q=="
|
||||
},
|
||||
"@aws-sdk/client-sts": {
|
||||
"version": "3.613.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.613.0.tgz",
|
||||
"integrity": "sha512-S+KvQI4XEivY3vyIY+IPY7Fw8vFvX/q3pkNC9qEhnAs+/w7vT6vhVBHsaugYVlsMuNtNvmyc8P+Q/gzOEtLCTw=="
|
||||
"version": "3.609.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.609.0.tgz",
|
||||
"integrity": "sha512-A0B3sDKFoFlGo8RYRjDBWHXpbgirer2bZBkCIzhSPHc1vOFHt/m2NcUoE2xnBKXJFrptL1xDkvo1P+XYp/BfcQ=="
|
||||
},
|
||||
"@aws-sdk/core": {
|
||||
"version": "3.609.0",
|
||||
@@ -81,9 +81,9 @@
|
||||
"integrity": "sha512-ptqw+DTxLr01+pKjDUuo53SEDzI+7nFM3WfQaEo0yhDg8vWw8PER4sWj1Ysx67ksctnZesPUjqxd5SHbtdBxiA=="
|
||||
},
|
||||
"@aws-sdk/credential-provider-cognito-identity": {
|
||||
"version": "3.613.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-cognito-identity/-/credential-provider-cognito-identity-3.613.0.tgz",
|
||||
"integrity": "sha512-kyzVox9VzIqUmu0TDl+Xdu+qHz5lUyVsggmewbmhlsk3BwE30jojXS+sQGTUPoTKcipU7xGH2bSENwIc53JrZg=="
|
||||
"version": "3.609.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-cognito-identity/-/credential-provider-cognito-identity-3.609.0.tgz",
|
||||
"integrity": "sha512-BqrpAXRr64dQ/uZsRB2wViGKTkVRlfp8Q+Zd7Bc8Ikk+YXjPtl+IyWXKtdKQ3LBO255KwAcPmra5oFC+2R1GOQ=="
|
||||
},
|
||||
"@aws-sdk/credential-provider-env": {
|
||||
"version": "3.609.0",
|
||||
@@ -91,19 +91,19 @@
|
||||
"integrity": "sha512-v69ZCWcec2iuV9vLVJMa6fAb5xwkzN4jYIT8yjo2c4Ia/j976Q+TPf35Pnz5My48Xr94EFcaBazrWedF+kwfuQ=="
|
||||
},
|
||||
"@aws-sdk/credential-provider-http": {
|
||||
"version": "3.613.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-http/-/credential-provider-http-3.613.0.tgz",
|
||||
"integrity": "sha512-MCiUFxowFzprzIXFXsqbp/3DViJ7nFmBW+XJkoRQWqNmThbkz/E8sb40WmL9UFdZHJph2KDjzABKYH5f0lHZaA=="
|
||||
"version": "3.609.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-http/-/credential-provider-http-3.609.0.tgz",
|
||||
"integrity": "sha512-GQQfB9Mk4XUZwaPsk4V3w8MqleS6ApkZKVQn3vTLAKa8Y7B2Imcpe5zWbKYjDd8MPpMWjHcBGFTVlDRFP4zwSQ=="
|
||||
},
|
||||
"@aws-sdk/credential-provider-ini": {
|
||||
"version": "3.613.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.613.0.tgz",
|
||||
"integrity": "sha512-scHV7K0YpllYMWxPnqxssWU+7S3WNXH1m5Rw8Ax96pfcfnaoatiWXps2XSSdGlChdF9gNVnewjRKFOTLyyzdAw=="
|
||||
"version": "3.609.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.609.0.tgz",
|
||||
"integrity": "sha512-hwaBfXuBTv6/eAdEsDfGcteYUW6Km7lvvubbxEdxIuJNF3vswR7RMGIXaEC37hhPkTTgd3H0TONammhwZIfkog=="
|
||||
},
|
||||
"@aws-sdk/credential-provider-node": {
|
||||
"version": "3.613.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.613.0.tgz",
|
||||
"integrity": "sha512-n3yd0CDuUKcQFhjRLAQfQpZyZ2ddrHC7QOKQqE+Fkx+Fs5zoG+NRLK1EBkBW/G9zk8Ck4+rG3OOI3CuNpJ2PCw=="
|
||||
"version": "3.609.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.609.0.tgz",
|
||||
"integrity": "sha512-4J8/JRuqfxJDGD9jTHVCBxCvYt7/Vgj2Stlhj930mrjFPO/yRw8ilAAZxBWe0JHPX3QwepCmh4ErZe53F5ysxQ=="
|
||||
},
|
||||
"@aws-sdk/credential-provider-process": {
|
||||
"version": "3.609.0",
|
||||
@@ -121,9 +121,9 @@
|
||||
"integrity": "sha512-U+PG8NhlYYF45zbr1km3ROtBMYqyyj/oK8NRp++UHHeuavgrP+4wJ4wQnlEaKvJBjevfo3+dlIBcaeQ7NYejWg=="
|
||||
},
|
||||
"@aws-sdk/credential-providers": {
|
||||
"version": "3.613.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/credential-providers/-/credential-providers-3.613.0.tgz",
|
||||
"integrity": "sha512-HsE68oJuhh7w4AFWuXk1avWuKXUKsNLOakZ4SnejEl77iFA+NywsGt1nm4VI/zsnjln4qrL32OnJ1fX3K+Xt0Q=="
|
||||
"version": "3.609.0",
|
||||
"resolved": "https://registry.npmjs.org/@aws-sdk/credential-providers/-/credential-providers-3.609.0.tgz",
|
||||
"integrity": "sha512-bJKMY4QwRVderh8R2s9kukoZhuNZew/xzwPa9DRRFVOIsznsS0faAdmAAFrKb8e06YyQq6DiZP0BfFyVHAXE2A=="
|
||||
},
|
||||
"@aws-sdk/middleware-host-header": {
|
||||
"version": "3.609.0",
|
||||
|
||||
Reference in New Issue
Block a user