From 7b05e6b98ea51c2de164137fecaaafc8b12a71b1 Mon Sep 17 00:00:00 2001 From: Florent Vilmart Date: Thu, 16 Aug 2018 09:42:12 -0400 Subject: [PATCH 1/3] modernize cloud code --- integration/cloud/main.js | 30 ++++---- package-lock.json | 143 +++++++++++++++++++++++++++++++------- 2 files changed, 135 insertions(+), 38 deletions(-) diff --git a/integration/cloud/main.js b/integration/cloud/main.js index 931a2ccdb..d677209b5 100644 --- a/integration/cloud/main.js +++ b/integration/cloud/main.js @@ -1,26 +1,28 @@ /* global Parse */ -Parse.Cloud.define("bar", function(request, response) { +Parse.Cloud.define("bar", function(request) { if (request.params.key2 === "value1") { - response.success('Foo'); + return 'Foo'; } else { - response.error("bad stuff happened"); + throw "bad stuff happened"; } }); -Parse.Cloud.job('CloudJob1', function(request, response) { - response.success({ +Parse.Cloud.job('CloudJob1', function() { + return { status: 'cloud job completed' - }); + }; }); -Parse.Cloud.job('CloudJob2', function(request, response) { - setTimeout(function() { - response.success({ - status: 'cloud job completed' - }) - }, 3000); +Parse.Cloud.job('CloudJob2', function() { + return new Promise((resolve) => { + setTimeout(function() { + resolve({ + status: 'cloud job completed' + }) + }, 3000); + }); }); -Parse.Cloud.job('CloudJobFailing', function(request, response) { - response.error('cloud job failed'); +Parse.Cloud.job('CloudJobFailing', function() { + throw 'cloud job failed'; }); diff --git a/package-lock.json b/package-lock.json index 11a0576f0..a02e1f982 100644 --- a/package-lock.json +++ b/package-lock.json @@ -393,9 +393,9 @@ } }, "@parse/simple-mailgun-adapter": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@parse/simple-mailgun-adapter/-/simple-mailgun-adapter-1.0.2.tgz", - "integrity": "sha512-rex3JIoxZ/qK7I+dQFPTintCNta1fB18xOxOQH9vu0+1BEvkiNnzLeRZ0qivh1In7X9Q5jQiUXojfBVFmO8qAA==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@parse/simple-mailgun-adapter/-/simple-mailgun-adapter-1.1.0.tgz", + "integrity": "sha512-9Eaj25HQ7RpcA6gsTnimXtlLcyLpP9PKSFE9DF79ahgndbdyCjpNd9jQxpBaBlsCsDE+D5LlXfckMqqJPo+pjQ==", "dev": true, "requires": { "mailgun-js": "0.18.0" @@ -968,9 +968,9 @@ "dev": true }, "aws-sdk": { - "version": "2.291.0", - "resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.291.0.tgz", - "integrity": "sha512-al/oJuKN2mokw4nafloptGrmdzm4UZ8AeLuM2bFtPmb0nvwajOr/vSa/XhQTw+T07Vm9T8iJyWyqygq74E/YMQ==", + "version": "2.294.0", + "resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.294.0.tgz", + "integrity": "sha512-+QWSUuqNXQqNG3S6w4aI6E4Nf1UzJMMuHbuJ0HGxPRPc2D0xGc9en9nFYyBnais7/p8++4GWE5T6/k+7QMg2zg==", "dev": true, "requires": { "buffer": "4.9.1", @@ -3325,9 +3325,9 @@ } }, "bson": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/bson/-/bson-1.0.9.tgz", - "integrity": "sha512-IQX9/h7WdMBIW/q/++tGd+emQr0XMdeZ6icnT/74Xk9fnabWn+gZgpE+9V+gujL3hhJOoNrnDVY7tWdzc7NUTg==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/bson/-/bson-1.1.0.tgz", + "integrity": "sha512-9Aeai9TacfNtWXOYarkFJRW2CWo+dRon+fuLZYJmvLV3+MiUp0bEI6IAZfXEIg7/Pl/7IWlLaDnhzTsD81etQA==", "dev": true }, "buffer": { @@ -9984,21 +9984,21 @@ } }, "mongodb": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-3.1.1.tgz", - "integrity": "sha512-GU9oWK4pi8PC7NyGiwjFMwZyMqwGWoMEMvM0LZh7UKW/FFAqgmZKjjriD+5MEOCDUJE2dtHX93/K5UtDxO0otg==", + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-3.1.3.tgz", + "integrity": "sha512-hfzI54/fe+604w5gP+i9aJ5GGVxnquxZ09ZN1cyLTbpnBfDRpj78lN59SBdDRkF1VNTzmM2KcgDWhHHDHcsJxw==", "dev": true, "requires": { - "mongodb-core": "3.1.0" + "mongodb-core": "3.1.2" } }, "mongodb-core": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/mongodb-core/-/mongodb-core-3.1.0.tgz", - "integrity": "sha512-qRjG62Fu//CZhkgn0jA/k8jh5MhACIq8cOJUryH6sck87pgt+C222MSD02tsCq5zNo/B6ZFHtNodZ2qpf8E86g==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/mongodb-core/-/mongodb-core-3.1.2.tgz", + "integrity": "sha512-R2XxGzsmhlUeOK2jKATj1TWn3q3qNcJpKrSh0rhaBSHxJmV7WZ+ikjocdY8VdJxUkKqOxM8rxMqOAEzeJ3p1ww==", "dev": true, "requires": { - "bson": "~1.0.4", + "bson": "^1.1.0", "require_optional": "^1.0.1", "saslprep": "^1.0.0" } @@ -10082,9 +10082,9 @@ "dev": true }, "node-forge": { - "version": "0.7.5", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.7.5.tgz", - "integrity": "sha512-MmbQJ2MTESTjt3Gi/3yG1wGpIMhUfcIypUCGtTizFR9IiccFwxSpfp0vtIZlkFclEqERemxfnSdZEMR9VqqEFQ==", + "version": "0.7.6", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.7.6.tgz", + "integrity": "sha512-sol30LUpz1jQFBjOKwbjxijiE3b6pjd74YwfD0fJOKPjF+fONKb2Yg8rYgS6+bK6VDl+/wfr4IYpC7jDzLUIfw==", "dev": true }, "node-int64": { @@ -10594,14 +10594,14 @@ "dev": true }, "parse-server": { - "version": "github:parseplatform/parse-server#4802b1caecabaaa7e59cd4b6090d6a9bccf2cd26", + "version": "github:parseplatform/parse-server#942b9b5b1a80edbf74cabc0716f4be22e6f83d68", "from": "github:parseplatform/parse-server#master", "dev": true, "requires": { "@parse/fs-files-adapter": "1.0.1", "@parse/push-adapter": "3.0.0-alpha2", "@parse/s3-files-adapter": "1.2.1", - "@parse/simple-mailgun-adapter": "1.0.2", + "@parse/simple-mailgun-adapter": "1.1.0", "bcrypt": "3.0.0", "bcryptjs": "2.4.3", "body-parser": "1.18.3", @@ -10612,11 +10612,11 @@ "lodash": "4.17.5", "lru-cache": "4.1.3", "mime": "2.3.1", - "mongodb": "3.1.1", + "mongodb": "3.1.3", "parse": "2.0.1", "pg-promise": "8.4.5", "redis": "2.8.0", - "request": "2.87.0", + "request": "2.88.0", "semver": "5.5.0", "tv4": "1.3.0", "uuid": "^3.1.0", @@ -10626,6 +10626,12 @@ "ws": "6.0.0" }, "dependencies": { + "aws4": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz", + "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==", + "dev": true + }, "body-parser": { "version": "1.18.3", "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.18.3.tgz", @@ -10758,6 +10764,12 @@ } } }, + "extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "dev": true + }, "finalhandler": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.0.tgz", @@ -10773,6 +10785,16 @@ "unpipe": "~1.0.0" } }, + "har-validator": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.0.tgz", + "integrity": "sha512-+qnmNjI4OfH2ipQ9VQOw23bBd/ibtfbVdK2fYbY4acTDqKTW/YDp9McimZdDbG8iV9fZizUqQMD5xvriB146TA==", + "dev": true, + "requires": { + "ajv": "^5.3.0", + "har-schema": "^2.0.0" + } + }, "iconv-lite": { "version": "0.4.23", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz", @@ -10794,6 +10816,27 @@ "integrity": "sha512-OEUllcVoydBHGN1z84yfQDimn58pZNNNXgZlHXSboxMlFvgI6MXSWpWKpFRra7H1HxpVhHTkrghfRW49k6yjeg==", "dev": true }, + "mime-db": { + "version": "1.35.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.35.0.tgz", + "integrity": "sha512-JWT/IcCTsB0Io3AhWUMjRqucrHSPsSf2xKLaRldJVULioggvkJvggZ3VXNNSRkCddE6D+BUI4HEIZIA2OjwIvg==", + "dev": true + }, + "mime-types": { + "version": "2.1.19", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.19.tgz", + "integrity": "sha512-P1tKYHVSZ6uFo26mtnve4HQFE3koh1UWVkp8YUC+ESBHe945xWSoXuHHiGarDqcEZ+whpCDnlNw5LON0kLo+sw==", + "dev": true, + "requires": { + "mime-db": "~1.35.0" + } + }, + "oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", + "dev": true + }, "raw-body": { "version": "2.3.3", "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.3.3.tgz", @@ -10806,6 +10849,48 @@ "unpipe": "1.0.0" } }, + "request": { + "version": "2.88.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz", + "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", + "dev": true, + "requires": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.0", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.4.3", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "uuid": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", + "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==", + "dev": true + } + } + }, "safe-buffer": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", @@ -10864,6 +10949,16 @@ "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz", "integrity": "sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4=", "dev": true + }, + "tough-cookie": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz", + "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", + "dev": true, + "requires": { + "psl": "^1.1.24", + "punycode": "^1.4.1" + } } } }, From 8bfa81771e7307692dfdcce42a955b9b6c2d1074 Mon Sep 17 00:00:00 2001 From: Florent Vilmart Date: Thu, 16 Aug 2018 09:54:37 -0400 Subject: [PATCH 2/3] de-duplicate test names --- integration/test/ParseGeoPointTest.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/integration/test/ParseGeoPointTest.js b/integration/test/ParseGeoPointTest.js index 0a8bde4a4..54f78577b 100644 --- a/integration/test/ParseGeoPointTest.js +++ b/integration/test/ParseGeoPointTest.js @@ -251,7 +251,7 @@ describe('Geo Point', () => { }); }); - it('can measure distance within km - mid peninsula', (done) => { + it('can measure distance within miles - mid peninsula', (done) => { const sfo = new Parse.GeoPoint(37.6189722, -122.3748889); const query = new Parse.Query(TestPoint); query.withinMiles('location', sfo, 10.0); @@ -406,7 +406,7 @@ describe('Geo Point', () => { }); }); - it('can measure distance within km unsorted - mid peninsula', (done) => { + it('can measure distance within miles unsorted - mid peninsula', (done) => { const sfo = new Parse.GeoPoint(37.6189722, -122.3748889); const query = new Parse.Query(TestPoint); query.withinMiles('location', sfo, 10.0, false); From 188069b4fe435c7d3add19a8bc1e8e3cc5cb54e4 Mon Sep 17 00:00:00 2001 From: Florent Vilmart Date: Thu, 16 Aug 2018 10:10:04 -0400 Subject: [PATCH 3/3] improves test --- integration/test/ParseQueryTest.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/integration/test/ParseQueryTest.js b/integration/test/ParseQueryTest.js index 804aaae81..83038d82c 100644 --- a/integration/test/ParseQueryTest.js +++ b/integration/test/ParseQueryTest.js @@ -46,7 +46,7 @@ describe('Parse Query', () => { return query.find(); }).then((results) => { assert.equal(results.length, 1); - assert.equal(results[0].get('foo'), 'baz'); + assert.equal(['baz', 'qux'].includes(results[0].get('foo')), true); done(); }).catch(done.fail); });