feat: Upgrade to Parse JS SDK 5 (#9022)

This commit is contained in:
Daniel
2024-03-17 14:08:52 +11:00
committed by GitHub
parent 1c2bb7ca28
commit ad4aa83983
3 changed files with 75 additions and 60 deletions

132
package-lock.json generated
View File

@@ -24,7 +24,7 @@
"deepcopy": "2.1.0", "deepcopy": "2.1.0",
"express": "4.18.2", "express": "4.18.2",
"express-rate-limit": "6.11.2", "express-rate-limit": "6.11.2",
"follow-redirects": "^1.15.6", "follow-redirects": "1.15.6",
"graphql": "16.8.1", "graphql": "16.8.1",
"graphql-list-fields": "2.0.4", "graphql-list-fields": "2.0.4",
"graphql-relay": "0.10.0", "graphql-relay": "0.10.0",
@@ -40,7 +40,7 @@
"mongodb": "5.9.0", "mongodb": "5.9.0",
"mustache": "4.2.0", "mustache": "4.2.0",
"otpauth": "9.2.2", "otpauth": "9.2.2",
"parse": "4.1.0", "parse": "5.0.0",
"path-to-regexp": "6.2.1", "path-to-regexp": "6.2.1",
"pg-monitor": "2.0.0", "pg-monitor": "2.0.0",
"pg-promise": "11.5.4", "pg-promise": "11.5.4",
@@ -5979,9 +5979,9 @@
} }
}, },
"node_modules/core-js-pure": { "node_modules/core-js-pure": {
"version": "3.26.1", "version": "3.36.0",
"resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.26.1.tgz", "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.36.0.tgz",
"integrity": "sha512-VVXcDpp/xJ21KdULRq/lXdLzQAtX7+37LzpyfFM973il0tWSsDEoyzG38G14AjTpK9VTfiNM9jnFauq/CpaWGQ==", "integrity": "sha512-cN28qmhRNgbMZZMc/RFu5w8pK9VJzpb2rJVR/lHuZJKwmXnoWOpXmMkxqBB514igkp1Hu8WGROsiOAzUcKdHOQ==",
"hasInstallScript": true, "hasInstallScript": true,
"funding": { "funding": {
"type": "opencollective", "type": "opencollective",
@@ -15653,22 +15653,22 @@
} }
}, },
"node_modules/parse": { "node_modules/parse": {
"version": "4.1.0", "version": "5.0.0",
"resolved": "https://registry.npmjs.org/parse/-/parse-4.1.0.tgz", "resolved": "https://registry.npmjs.org/parse/-/parse-5.0.0.tgz",
"integrity": "sha512-s0Ti+nWrKWj9DlFcmkEE05fGwa/K5ycZSdqCz01F8YL7Hevqv4WLXAmYGOwzq5UJSZ005seKgb20KwVwLdy/Zg==", "integrity": "sha512-6gOARZWiHjmGusbTskhC1qlRn527olMEsdt2LLj9cP2GY3n4VFOwFwV8z/vm2+YfzPfPcv8z7qLih1NzmqzO0g==",
"dependencies": { "dependencies": {
"@babel/runtime-corejs3": "7.21.0", "@babel/runtime-corejs3": "7.23.2",
"idb-keyval": "6.2.0", "idb-keyval": "6.2.1",
"react-native-crypto-js": "1.0.0", "react-native-crypto-js": "1.0.0",
"uuid": "9.0.0", "uuid": "9.0.1",
"ws": "8.12.0", "ws": "8.16.0",
"xmlhttprequest": "1.8.0" "xmlhttprequest": "1.8.0"
}, },
"engines": { "engines": {
"node": ">=14.21.0 <17 || >=18 <20" "node": ">=18 <21"
}, },
"optionalDependencies": { "optionalDependencies": {
"crypto-js": "4.1.1" "crypto-js": "4.2.0"
} }
}, },
"node_modules/parse-json": { "node_modules/parse-json": {
@@ -15698,33 +15698,33 @@
"node": ">=6" "node": ">=6"
} }
}, },
"node_modules/parse/node_modules/uuid": { "node_modules/parse/node_modules/@babel/runtime-corejs3": {
"version": "9.0.0", "version": "7.23.2",
"resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz", "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.23.2.tgz",
"integrity": "sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==", "integrity": "sha512-54cIh74Z1rp4oIjsHjqN+WM4fMyCBYe+LpZ9jWm51CZ1fbH3SkAzQD/3XLoNkjbJ7YEmjobLXyvQrFypRHOrXw==",
"bin": { "dependencies": {
"uuid": "dist/bin/uuid" "core-js-pure": "^3.30.2",
"regenerator-runtime": "^0.14.0"
},
"engines": {
"node": ">=6.9.0"
} }
}, },
"node_modules/parse/node_modules/ws": { "node_modules/parse/node_modules/crypto-js": {
"version": "8.12.0", "version": "4.2.0",
"resolved": "https://registry.npmjs.org/ws/-/ws-8.12.0.tgz", "resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-4.2.0.tgz",
"integrity": "sha512-kU62emKIdKVeEIOIKVegvqpXMSTAMLJozpHZaJNDYqBjzlSYXQGviYwN1osDLJ9av68qHd4a2oSjd7yD4pacig==", "integrity": "sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q==",
"engines": { "optional": true
"node": ">=10.0.0" },
}, "node_modules/parse/node_modules/idb-keyval": {
"peerDependencies": { "version": "6.2.1",
"bufferutil": "^4.0.1", "resolved": "https://registry.npmjs.org/idb-keyval/-/idb-keyval-6.2.1.tgz",
"utf-8-validate": ">=5.0.2" "integrity": "sha512-8Sb3veuYCyrZL+VBt9LJfZjLUPWVvqn8tG28VqYNFCo43KHcKuq+b4EiXGeuaLAQWL2YmyDgMp2aSpH9JHsEQg=="
}, },
"peerDependenciesMeta": { "node_modules/parse/node_modules/regenerator-runtime": {
"bufferutil": { "version": "0.14.1",
"optional": true "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz",
}, "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw=="
"utf-8-validate": {
"optional": true
}
}
}, },
"node_modules/parseurl": { "node_modules/parseurl": {
"version": "1.3.3", "version": "1.3.3",
@@ -24111,9 +24111,9 @@
} }
}, },
"core-js-pure": { "core-js-pure": {
"version": "3.26.1", "version": "3.36.0",
"resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.26.1.tgz", "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.36.0.tgz",
"integrity": "sha512-VVXcDpp/xJ21KdULRq/lXdLzQAtX7+37LzpyfFM973il0tWSsDEoyzG38G14AjTpK9VTfiNM9jnFauq/CpaWGQ==" "integrity": "sha512-cN28qmhRNgbMZZMc/RFu5w8pK9VJzpb2rJVR/lHuZJKwmXnoWOpXmMkxqBB514igkp1Hu8WGROsiOAzUcKdHOQ=="
}, },
"core-util-is": { "core-util-is": {
"version": "1.0.3", "version": "1.0.3",
@@ -31348,29 +31348,43 @@
} }
}, },
"parse": { "parse": {
"version": "4.1.0", "version": "5.0.0",
"resolved": "https://registry.npmjs.org/parse/-/parse-4.1.0.tgz", "resolved": "https://registry.npmjs.org/parse/-/parse-5.0.0.tgz",
"integrity": "sha512-s0Ti+nWrKWj9DlFcmkEE05fGwa/K5ycZSdqCz01F8YL7Hevqv4WLXAmYGOwzq5UJSZ005seKgb20KwVwLdy/Zg==", "integrity": "sha512-6gOARZWiHjmGusbTskhC1qlRn527olMEsdt2LLj9cP2GY3n4VFOwFwV8z/vm2+YfzPfPcv8z7qLih1NzmqzO0g==",
"requires": { "requires": {
"@babel/runtime-corejs3": "7.21.0", "@babel/runtime-corejs3": "7.23.2",
"crypto-js": "4.1.1", "crypto-js": "4.2.0",
"idb-keyval": "6.2.0", "idb-keyval": "6.2.1",
"react-native-crypto-js": "1.0.0", "react-native-crypto-js": "1.0.0",
"uuid": "9.0.0", "uuid": "9.0.1",
"ws": "8.12.0", "ws": "8.16.0",
"xmlhttprequest": "1.8.0" "xmlhttprequest": "1.8.0"
}, },
"dependencies": { "dependencies": {
"uuid": { "@babel/runtime-corejs3": {
"version": "9.0.0", "version": "7.23.2",
"resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz", "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.23.2.tgz",
"integrity": "sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==" "integrity": "sha512-54cIh74Z1rp4oIjsHjqN+WM4fMyCBYe+LpZ9jWm51CZ1fbH3SkAzQD/3XLoNkjbJ7YEmjobLXyvQrFypRHOrXw==",
"requires": {
"core-js-pure": "^3.30.2",
"regenerator-runtime": "^0.14.0"
}
}, },
"ws": { "crypto-js": {
"version": "8.12.0", "version": "4.2.0",
"resolved": "https://registry.npmjs.org/ws/-/ws-8.12.0.tgz", "resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-4.2.0.tgz",
"integrity": "sha512-kU62emKIdKVeEIOIKVegvqpXMSTAMLJozpHZaJNDYqBjzlSYXQGviYwN1osDLJ9av68qHd4a2oSjd7yD4pacig==", "integrity": "sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q==",
"requires": {} "optional": true
},
"idb-keyval": {
"version": "6.2.1",
"resolved": "https://registry.npmjs.org/idb-keyval/-/idb-keyval-6.2.1.tgz",
"integrity": "sha512-8Sb3veuYCyrZL+VBt9LJfZjLUPWVvqn8tG28VqYNFCo43KHcKuq+b4EiXGeuaLAQWL2YmyDgMp2aSpH9JHsEQg=="
},
"regenerator-runtime": {
"version": "0.14.1",
"resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz",
"integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw=="
} }
} }
}, },

View File

@@ -49,7 +49,7 @@
"mongodb": "5.9.0", "mongodb": "5.9.0",
"mustache": "4.2.0", "mustache": "4.2.0",
"otpauth": "9.2.2", "otpauth": "9.2.2",
"parse": "4.1.0", "parse": "5.0.0",
"path-to-regexp": "6.2.1", "path-to-regexp": "6.2.1",
"pg-monitor": "2.0.0", "pg-monitor": "2.0.0",
"pg-promise": "11.5.4", "pg-promise": "11.5.4",

View File

@@ -548,6 +548,7 @@ RestWrite.prototype.handleAuthData = async function (authData) {
const userResult = results[0]; const userResult = results[0];
// Prevent duplicate authData id // Prevent duplicate authData id
if (userId && userId !== userResult.objectId) { if (userId && userId !== userResult.objectId) {
await Auth.handleAuthDataValidation(authData, this, results[0]);
throw new Parse.Error(Parse.Error.ACCOUNT_ALREADY_LINKED, 'this auth is already used'); throw new Parse.Error(Parse.Error.ACCOUNT_ALREADY_LINKED, 'this auth is already used');
} }