diff --git a/package-lock.json b/package-lock.json index 94225efeeb..af1ea52422 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12988,24 +12988,24 @@ } }, "parse": { - "version": "3.4.2", - "resolved": "https://registry.npmjs.org/parse/-/parse-3.4.2.tgz", - "integrity": "sha512-Ruehcp/S7eB3A0lDG5eAPvZHa5pABCbUR+lMJL2gUNKJLZNcD9/s3RL255PwI5jTqa+TCJ7MdPqobUplouN1pQ==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/parse/-/parse-4.0.1.tgz", + "integrity": "sha512-ctv7zaVKlQIBSbarorB7TH3yacDzCvgWBP4ccpLKxlpe21QlaY88kv9V7ca7JdG/Txb3qWug4MwepQoPogXB6Q==", "requires": { - "@babel/runtime": "7.17.9", + "@babel/runtime": "7.18.0", "@babel/runtime-corejs3": "7.17.8", "crypto-js": "4.1.1", "idb-keyval": "6.0.3", "react-native-crypto-js": "1.0.0", "uuid": "3.4.0", - "ws": "7.5.1", + "ws": "8.6.0", "xmlhttprequest": "1.8.0" }, "dependencies": { "@babel/runtime": { - "version": "7.17.9", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.17.9.tgz", - "integrity": "sha512-lSiBBvodq29uShpWGNbgFdKYNiFDo5/HIYsaCEY9ff4sb10x9jizo2+pRrSyF4jKZCXqgzuqBOQKbUm90gQwJg==", + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.18.0.tgz", + "integrity": "sha512-YMQvx/6nKEaucl0MY56mwIG483xk8SDNdlUwb2Ts6FUpr7fm85DxEmsY18LXBNhcTz6tO6JwZV8w1W06v8UKeg==", "requires": { "regenerator-runtime": "^0.13.4" } @@ -13020,9 +13020,9 @@ } }, "core-js-pure": { - "version": "3.22.8", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.22.8.tgz", - "integrity": "sha512-bOxbZIy9S5n4OVH63XaLVXZ49QKicjowDx/UELyJ68vxfCRpYsbyh/WNZNfEfAk+ekA8vSjt+gCDpvh672bc3w==" + "version": "3.30.2", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.30.2.tgz", + "integrity": "sha512-p/npFUJXXBkCCTIlEGBdghofn00jWG6ZOtdoIXSJmAu2QBvN0IqpZXWweOytcwE6cfx8ZvVUy1vw8zxhe4Y2vg==" }, "idb-keyval": { "version": "6.0.3", @@ -13038,9 +13038,9 @@ "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==" }, "ws": { - "version": "7.5.1", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.1.tgz", - "integrity": "sha512-2c6faOUH/nhoQN6abwMloF7Iyl0ZS2E9HGtsiLrWn0zOOMWlhtDmdf/uihDt6jnuCxgtwGBNy6Onsoy2s2O2Ow==" + "version": "8.6.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.6.0.tgz", + "integrity": "sha512-AzmM3aH3gk0aX7/rZLYvjdvZooofDu3fFOzGqcSnQ1tOcTWwhM/o+q++E8mAyVVIyUdajrkzWUGftaVSDLn1bw==" } } }, diff --git a/package.json b/package.json index ea86b842a6..c2901bd633 100644 --- a/package.json +++ b/package.json @@ -45,7 +45,7 @@ "mime": "3.0.0", "mongodb": "4.10.0", "mustache": "4.2.0", - "parse": "3.4.2", + "parse": "4.0.1", "pg-monitor": "1.5.0", "pg-promise": "10.12.0", "pluralize": "8.0.0", diff --git a/src/ParseServer.js b/src/ParseServer.js index 9be0059d9c..2a8d2a05c8 100644 --- a/src/ParseServer.js +++ b/src/ParseServer.js @@ -388,6 +388,23 @@ function addParseCloud() { configurable: true, }); Object.assign(Parse.Cloud, ParseCloud); + Parse.Query.prototype._subscribe = Parse.Query.prototype.subscribe; + Parse.Query.prototype.subscribe = async function (...args) { + try { + Parse.CoreManager.getLiveQueryController().setDefaultLiveQueryClient(null); + return await this._subscribe(...args); + } catch (e) { + const emitter = { + on(message, func) { + this[message] = func; + }, + }; + setTimeout(() => { + emitter.error?.call(emitter, e.message); + }, 0); + return emitter; + } + }; global.Parse = Parse; }