diff --git a/spec/AdaptableController.spec.js b/spec/AdaptableController.spec.js index 2bb61adde5..86214f9729 100644 --- a/spec/AdaptableController.spec.js +++ b/spec/AdaptableController.spec.js @@ -1,7 +1,7 @@ -const AdaptableController = require("../src/Controllers/AdaptableController").AdaptableController; -const FilesAdapter = require("../src/Adapters/Files/FilesAdapter").default; -const FilesController = require("../src/Controllers/FilesController").FilesController; +const { AdaptableController } = require("../src/Controllers/AdaptableController"); +const { FilesAdapter } = require("../src/Adapters/Files/FilesAdapter"); +const { FilesController } = require("../src/Controllers/FilesController"); const MockController = function(options) { AdaptableController.call(this, options); diff --git a/spec/AdapterLoader.spec.js b/spec/AdapterLoader.spec.js index 7afec6fd67..5fc7bdb717 100644 --- a/spec/AdapterLoader.spec.js +++ b/spec/AdapterLoader.spec.js @@ -1,8 +1,8 @@ const loadAdapter = require("../src/Adapters/AdapterLoader").loadAdapter; -const FilesAdapter = require("@parse/fs-files-adapter").default; -const S3Adapter = require("@parse/s3-files-adapter").default; -const ParsePushAdapter = require("@parse/push-adapter").default; +const FilesAdapter = require("@parse/fs-files-adapter"); +const S3Adapter = require("@parse/s3-files-adapter"); +const ParsePushAdapter = require("@parse/push-adapter").ParsePushAdapter; const Config = require('../src/Config'); describe("AdapterLoader", ()=>{ diff --git a/spec/AuthenticationAdapters.spec.js b/spec/AuthenticationAdapters.spec.js index ad77d0b7c7..339add4049 100644 --- a/spec/AuthenticationAdapters.spec.js +++ b/spec/AuthenticationAdapters.spec.js @@ -277,7 +277,7 @@ describe('AuthenticationProviders', function() { expect(appIdSpy).not.toHaveBeenCalled(); done(); }, (err) => { - jfail(err); + done.fail(err); done(); }) }); @@ -296,7 +296,7 @@ describe('AuthenticationProviders', function() { }).then(() => { done(); }, (err) => { - jfail(err); + done.fail(err); done(); }) }); @@ -315,7 +315,7 @@ describe('AuthenticationProviders', function() { }).then(() => { done(); }, (err) => { - jfail(err); + done.fail(err); done(); }) }); diff --git a/spec/CLI.spec.js b/spec/CLI.spec.js index 066bd64455..3af13b1796 100644 --- a/spec/CLI.spec.js +++ b/spec/CLI.spec.js @@ -1,7 +1,7 @@ 'use strict'; -import commander from '../src/cli/utils/commander'; -import definitions from '../src/cli/definitions/parse-server'; -import liveQueryDefinitions from '../src/cli/definitions/parse-live-query-server'; +const commander = require('../src/cli/utils/commander'); +const { definitions } = require('../src/cli/definitions/parse-server'); +const { liveQueryDefinitions } = require('../src/cli/definitions/parse-live-query-server'); const testDefinitions = { 'arg0': 'PROGRAM_ARG_0', diff --git a/spec/CacheController.spec.js b/spec/CacheController.spec.js index 219dc89dd8..95fcc6454f 100644 --- a/spec/CacheController.spec.js +++ b/spec/CacheController.spec.js @@ -1,4 +1,4 @@ -const CacheController = require('../src/Controllers/CacheController.js').default; +const { CacheController } = require('../src/Controllers/CacheController.js'); describe('CacheController', function() { let FakeCacheAdapter; diff --git a/spec/CloudCode.spec.js b/spec/CloudCode.spec.js index 98e52e056e..458e7ee41e 100644 --- a/spec/CloudCode.spec.js +++ b/spec/CloudCode.spec.js @@ -974,7 +974,7 @@ describe('Cloud Code', () => { expect(aBeforeSaveObj.get('remove')).toEqual(undefined); done(); }).catch((err) => { - jfail(err); + done.fail(err); done(); }); }); @@ -1007,7 +1007,7 @@ describe('Cloud Code', () => { expect(object.get('remove')).toBeUndefined(); done(); }).fail((err) => { - jfail(err); + done.fail(err); done(); }); }); @@ -1032,7 +1032,7 @@ describe('Cloud Code', () => { expect(() => { objectAgain.relation('testsRelation') }).not.toThrow(); done(); }).fail((err) => { - jfail(err); + done.fail(err); done(); }) }); @@ -1200,7 +1200,7 @@ describe('Cloud Code', () => { done(); }).catch(err => { console.error(err); - jfail(err); + done.fail(err); done(); }); }); @@ -1227,7 +1227,7 @@ describe('Cloud Code', () => { expect(jobStatus.get('status')).toEqual('failed'); done(); }).catch(err => { - jfail(err); + done.fail(err); done(); }); }); @@ -1838,8 +1838,7 @@ describe('afterFind hooks', () => { }).then((results) => { expect(results[0].objectId).toEqual(null); expect(hook.method).not.toHaveBeenCalled(); - done(); - }); + }).then(done).catch(done.fail) }); it('should skip afterFind hooks for distinct', (done) => { diff --git a/spec/EmailVerificationToken.spec.js b/spec/EmailVerificationToken.spec.js index b6e05a29e2..a1a198ce74 100644 --- a/spec/EmailVerificationToken.spec.js +++ b/spec/EmailVerificationToken.spec.js @@ -41,10 +41,7 @@ describe("Email Verification Token Expiration: ", () => { done(); }); }, 1000); - }).catch((err) => { - jfail(err); - done(); - }); + }).catch(done.fail); }); it('emailVerified should set to false, if the user does not verify their email before the email verify token expires', done => { @@ -84,13 +81,13 @@ describe("Email Verification Token Expiration: ", () => { done(); }) .catch(() => { - jfail(error); + done.fail(error); done(); }); }); }, 1000); }).catch((error) => { - jfail(error); + done.fail(error); done(); }); }); @@ -126,7 +123,7 @@ describe("Email Verification Token Expiration: ", () => { done(); }); }).catch((error) => { - jfail(error); + done.fail(error); done(); }); }); @@ -164,12 +161,12 @@ describe("Email Verification Token Expiration: ", () => { done(); }) .catch((error) => { - jfail(error); + done.fail(error); done(); }); }); }).catch((error) => { - jfail(error); + done.fail(error); done(); }); }); @@ -208,12 +205,12 @@ describe("Email Verification Token Expiration: ", () => { done(); }) .catch((error) => { - jfail(error); + done.fail(error); done(); }); }); }).catch((error) => { - jfail(error); + done.fail(error); done(); }); }); @@ -256,7 +253,7 @@ describe("Email Verification Token Expiration: ", () => { done(); }) .catch(error => { - jfail(error); + done.fail(error); done(); }); }); @@ -301,16 +298,10 @@ describe("Email Verification Token Expiration: ", () => { expect(typeof user._email_verify_token_expires_at).toBe('undefined'); done(); }) - .catch(error => { - jfail(error); - done(); - }); + .catch(done.fail); }); }) - .catch(error => { - jfail(error); - done(); - }); + .catch(done.fail); }); it('clicking on the email verify link by an email VERIFIED user that was setup before enabling the expire email verify token should show email verify email success', done => { @@ -364,7 +355,7 @@ describe("Email Verification Token Expiration: ", () => { }); }) .catch((error) => { - jfail(error); + done.fail(error); done(); }); }); @@ -414,7 +405,7 @@ describe("Email Verification Token Expiration: ", () => { }); }) .catch((error) => { - jfail(error); + done.fail(error); done(); }); }); @@ -477,10 +468,7 @@ describe("Email Verification Token Expiration: ", () => { expect(sendEmailOptions).toBeDefined(); done(); }) - .catch((error) => { - jfail(error); - done(); - }); + .catch(done.fail); }); it('should send a new verification email when a resend is requested and the user is UNVERIFIED', done => { @@ -553,10 +541,7 @@ describe("Email Verification Token Expiration: ", () => { expect(userBeforeRequest._email_verify_token_expires_at).not.toEqual(userAfterRequest.__email_verify_token_expires_at); done(); }) - .catch(error => { - jfail(error); - done(); - }); + .catch(done.fail); }); it('should not send a new verification email when a resend is requested and the user is VERIFIED', done => { @@ -618,7 +603,7 @@ describe("Email Verification Token Expiration: ", () => { }); }) .catch(error => { - jfail(error); + done.fail(error); done(); }); }); @@ -663,7 +648,7 @@ describe("Email Verification Token Expiration: ", () => { }); }) .catch(error => { - jfail(error); + done.fail(error); done(); }); }); @@ -707,7 +692,7 @@ describe("Email Verification Token Expiration: ", () => { }); }) .catch(error => { - jfail(error); + done.fail(error); done(); }); }); @@ -751,7 +736,7 @@ describe("Email Verification Token Expiration: ", () => { }); }) .catch(error => { - jfail(error); + done.fail(error); done(); }); }); @@ -789,12 +774,12 @@ describe("Email Verification Token Expiration: ", () => { done(); }) .catch(error => { - jfail(error); + done.fail(error); done(); }); }).catch((error) => { - jfail(error); + done.fail(error); done(); }); }); @@ -848,12 +833,12 @@ describe("Email Verification Token Expiration: ", () => { }); }) .catch((error) => { - jfail(error); + done.fail(error); done(); }); }); }).catch((error) => { - jfail(error); + done.fail(error); done(); }); }); diff --git a/spec/FilesController.spec.js b/spec/FilesController.spec.js index 3cb5f3e3fa..bdf53c72db 100644 --- a/spec/FilesController.spec.js +++ b/spec/FilesController.spec.js @@ -2,7 +2,7 @@ const LoggerController = require('../src/Controllers/LoggerController').LoggerCo const WinstonLoggerAdapter = require('../src/Adapters/Logger/WinstonLoggerAdapter').WinstonLoggerAdapter; const GridStoreAdapter = require("../src/Adapters/Files/GridStoreAdapter").GridStoreAdapter; const Config = require("../src/Config"); -const FilesController = require('../src/Controllers/FilesController').default; +const FilesController = require('../src/Controllers/FilesController').FilesController; const mockAdapter = { createFile: () => { diff --git a/spec/GridStoreAdapter.js b/spec/GridStoreAdapter.js index 2cc16fdbbd..4c44deecc3 100644 --- a/spec/GridStoreAdapter.js +++ b/spec/GridStoreAdapter.js @@ -3,7 +3,7 @@ const GridStore = require("mongodb").GridStore; const GridStoreAdapter = require("../src/Adapters/Files/GridStoreAdapter").GridStoreAdapter; const Config = require("../src/Config"); -const FilesController = require('../src/Controllers/FilesController').default; +const FilesController = require('../src/Controllers/FilesController').FilesController; // Small additional tests to improve overall coverage diff --git a/spec/HTTPRequest.spec.js b/spec/HTTPRequest.spec.js index e867b9e993..28f38af882 100644 --- a/spec/HTTPRequest.spec.js +++ b/spec/HTTPRequest.spec.js @@ -1,7 +1,7 @@ 'use strict'; const httpRequest = require("../src/cloud-code/httpRequest"), - HTTPResponse = require('../src/cloud-code/HTTPResponse').default, + HTTPResponse = require('../src/cloud-code/HTTPResponse'), bodyParser = require('body-parser'), express = require("express"); diff --git a/spec/InMemoryCache.spec.js b/spec/InMemoryCache.spec.js index d095c1f5f6..9844907ed7 100644 --- a/spec/InMemoryCache.spec.js +++ b/spec/InMemoryCache.spec.js @@ -1,4 +1,4 @@ -const InMemoryCache = require('../src/Adapters/Cache/InMemoryCache').default; +const InMemoryCache = require('../src/Adapters/Cache/InMemoryCache').InMemoryCache; describe('InMemoryCache', function() { diff --git a/spec/InMemoryCacheAdapter.spec.js b/spec/InMemoryCacheAdapter.spec.js index ac041a7533..82a855bb30 100644 --- a/spec/InMemoryCacheAdapter.spec.js +++ b/spec/InMemoryCacheAdapter.spec.js @@ -1,4 +1,4 @@ -const InMemoryCacheAdapter = require('../src/Adapters/Cache/InMemoryCacheAdapter').default; +const InMemoryCacheAdapter = require('../src/Adapters/Cache/InMemoryCacheAdapter').InMemoryCacheAdapter; describe('InMemoryCacheAdapter', function() { const KEY = 'hello'; diff --git a/spec/InstallationsRouter.spec.js b/spec/InstallationsRouter.spec.js index 47dd6df290..33823b76b4 100644 --- a/spec/InstallationsRouter.spec.js +++ b/spec/InstallationsRouter.spec.js @@ -75,7 +75,7 @@ describe('InstallationsRouter', () => { expect(results.length).toEqual(1); done(); }).catch((err) => { - jfail(err); + done.fail(err); done(); }); }); diff --git a/spec/LoggerController.spec.js b/spec/LoggerController.spec.js index 4a8e63f4d3..35671e21bb 100644 --- a/spec/LoggerController.spec.js +++ b/spec/LoggerController.spec.js @@ -13,7 +13,7 @@ describe('LoggerController', () => { expect(res.length).not.toBe(0); done(); }).catch((err) => { - jfail(err); + done.fail(err); done(); }) }).not.toThrow(); @@ -75,7 +75,7 @@ describe('LoggerController', () => { expect(res.length).toBe(0); done(); }).catch((err) => { - jfail(err); + done.fail(err); fail("should not fail"); done(); }) diff --git a/spec/MongoSchemaCollectionAdapter.spec.js b/spec/MongoSchemaCollectionAdapter.spec.js index f5f75442f6..95887c788f 100644 --- a/spec/MongoSchemaCollectionAdapter.spec.js +++ b/spec/MongoSchemaCollectionAdapter.spec.js @@ -1,6 +1,6 @@ 'use strict'; -const MongoSchemaCollection = require('../src/Adapters/Storage/Mongo/MongoSchemaCollection').default; +const MongoSchemaCollection = require('../src/Adapters/Storage/Mongo/MongoSchemaCollection').MongoSchemaCollection; describe('MongoSchemaCollection', () => { it('can transform legacy _client_permissions keys to parse format', done => { diff --git a/spec/MongoStorageAdapter.spec.js b/spec/MongoStorageAdapter.spec.js index 961568b9d3..b76db44ae6 100644 --- a/spec/MongoStorageAdapter.spec.js +++ b/spec/MongoStorageAdapter.spec.js @@ -1,6 +1,6 @@ 'use strict'; -import MongoStorageAdapter from '../src/Adapters/Storage/Mongo/MongoStorageAdapter'; +const { MongoStorageAdapter } = require('../src/Adapters/Storage/Mongo/MongoStorageAdapter'); const { MongoClient } = require('mongodb'); const databaseURI = 'mongodb://localhost:27017/parseServerMongoAdapterTestDatabase'; diff --git a/spec/NullCacheAdapter.spec.js b/spec/NullCacheAdapter.spec.js index d1d6b0a91e..9a46ce2b1e 100644 --- a/spec/NullCacheAdapter.spec.js +++ b/spec/NullCacheAdapter.spec.js @@ -1,4 +1,4 @@ -const NullCacheAdapter = require('../src/Adapters/Cache/NullCacheAdapter').default; +const NullCacheAdapter = require('../src/Adapters/Cache/NullCacheAdapter').NullCacheAdapter; describe('NullCacheAdapter', function() { const KEY = 'hello'; diff --git a/spec/Parse.Push.spec.js b/spec/Parse.Push.spec.js index 90558284d6..3fbafc1c13 100644 --- a/spec/Parse.Push.spec.js +++ b/spec/Parse.Push.spec.js @@ -90,7 +90,7 @@ describe('Parse.Push', () => { }).then(() => { done(); }).catch((err) => { - jfail(err); + done.fail(err); done(); }); }); @@ -111,7 +111,7 @@ describe('Parse.Push', () => { }).then(() => { done(); }).catch((err) => { - jfail(err); + done.fail(err); done(); }); }); @@ -140,7 +140,7 @@ describe('Parse.Push', () => { done(); }); }).catch((err) => { - jfail(err); + done.fail(err); done(); }); }); @@ -171,12 +171,12 @@ describe('Parse.Push', () => { expect(body.results[0].query).toEqual('{"deviceType":"ios"}'); expect(body.results[0].payload).toEqual('{"badge":"increment","alert":"Hello world!"}'); } catch(e) { - jfail(e); + done.fail(e); } done(); }); }).catch((err) => { - jfail(err); + done.fail(err); done(); }); }); @@ -199,7 +199,7 @@ describe('Parse.Push', () => { expect(err.code).toEqual(Parse.Error.PUSH_MISCONFIGURED); done(); }).catch((err) => { - jfail(err); + done.fail(err); done(); }); }); diff --git a/spec/ParseAPI.spec.js b/spec/ParseAPI.spec.js index a9919483ab..ae104e307a 100644 --- a/spec/ParseAPI.spec.js +++ b/spec/ParseAPI.spec.js @@ -647,7 +647,7 @@ describe('miscellaneous', function() { expect(triggerTime).toBe(2); done(); }, function(error) { - jfail(error); + done.fail(error); done(); }); }); @@ -694,7 +694,7 @@ describe('miscellaneous', function() { expect(triggerTime).toBe(2); done(); }, function(error) { - jfail(error); + done.fail(error); done(); }); }); @@ -731,7 +731,7 @@ describe('miscellaneous', function() { expect(triggerTime).toBe(2); done(); }, error => { - jfail(error); + done.fail(error); done(); }); }); @@ -770,7 +770,7 @@ describe('miscellaneous', function() { expect(triggerTime).toBe(2); done(); }, error => { - jfail(error); + done.fail(error); done(); }); }); @@ -809,7 +809,7 @@ describe('miscellaneous', function() { expect(triggerTime).toBe(2); done(); }, error => { - jfail(error); + done.fail(error); done(); }); }); @@ -852,7 +852,7 @@ describe('miscellaneous', function() { // updatedAt is always set expect(body.updatedAt).not.toBeUndefined(); }catch(e) { - jfail(e); + done.fail(e); } done(); }); @@ -1234,7 +1234,7 @@ describe('miscellaneous', function() { done(); }); }).catch((err) => { - jfail(err); + done.fail(err); done(); }) }); @@ -1400,7 +1400,7 @@ describe('miscellaneous', function() { }); done(); }).catch((e) => { - jfail(e); + done.fail(e); done(); }); }); @@ -1548,7 +1548,7 @@ describe('miscellaneous', function() { expect(fields.secret).toBeUndefined(); done(); }, (err) => { - jfail(err); + done.fail(err); done(); }); }); diff --git a/spec/ParseFile.spec.js b/spec/ParseFile.spec.js index 9f19a87119..9433de7e12 100644 --- a/spec/ParseFile.spec.js +++ b/spec/ParseFile.spec.js @@ -58,7 +58,7 @@ describe('Parse.File testing', () => { expect(error).toBe(null); expect(body).toEqual('\n'); } catch(e) { - jfail(e); + done.fail(e); } done(); }); @@ -127,7 +127,7 @@ describe('Parse.File testing', () => { try { expect(response.statusCode).toEqual(404); } catch(e) { - jfail(e); + done.fail(e); } done(); }); @@ -501,7 +501,7 @@ describe('Parse.File testing', () => { expect(fileAgain.url()).toEqual('http://meep.meep'); done(); }).catch((e) => { - jfail(e); + done.fail(e); done(); }); }); @@ -524,7 +524,7 @@ describe('Parse.File testing', () => { ); done(); }).catch((e) => { - jfail(e); + done.fail(e); done(); }); }); @@ -547,7 +547,7 @@ describe('Parse.File testing', () => { ); done(); }).catch((e) => { - jfail(e); + done.fail(e); done(); }); }); @@ -567,7 +567,7 @@ describe('Parse.File testing', () => { expect(fileAgain.url()).toMatch(/123.txt$/); done(); }).catch((e) => { - jfail(e); + done.fail(e); done(); }); }); @@ -591,7 +591,7 @@ describe('Parse.File testing', () => { expect(fileAgain.url().indexOf('https://mydomain/parse')).toBe(0); done(); }).catch((e) => { - jfail(e); + done.fail(e); done(); }); }); diff --git a/spec/ParseGeoPoint.spec.js b/spec/ParseGeoPoint.spec.js index ec6ec79295..1bca7b0dd7 100644 --- a/spec/ParseGeoPoint.spec.js +++ b/spec/ParseGeoPoint.spec.js @@ -146,7 +146,7 @@ describe('Parse.GeoPoint testing', () => { done(); }, (err) => { fail("Couldn't query GeoPoint"); - jfail(err) + done.fail(err) }); }); diff --git a/spec/ParseGlobalConfig.spec.js b/spec/ParseGlobalConfig.spec.js index 46f9c0785c..d6502a9749 100644 --- a/spec/ParseGlobalConfig.spec.js +++ b/spec/ParseGlobalConfig.spec.js @@ -18,7 +18,7 @@ describe('a GlobalConfig', () => { query, { params: { companies: ['US', 'DK'] } } ).then(done, (err) => { - jfail(err); + done.fail(err); done(); }); }); @@ -35,7 +35,7 @@ describe('a GlobalConfig', () => { try { expect(response.statusCode).toEqual(200); expect(body.params.companies).toEqual(['US', 'DK']); - } catch(e) { jfail(e); } + } catch(e) { done.fail(e); } done(); }); }); @@ -124,7 +124,7 @@ describe('a GlobalConfig', () => { expect(body.params.companies).toBeUndefined(); expect(body.params.foo).toBe('bar'); expect(Object.keys(body.params).length).toBe(1); - } catch(e) { jfail(e); } + } catch(e) { done.fail(e); } done(); }); }); @@ -166,7 +166,7 @@ describe('a GlobalConfig', () => { done(); }); }).catch((e) => { - jfail(e); + done.fail(e); done(); }); }); diff --git a/spec/ParseHooks.spec.js b/spec/ParseHooks.spec.js index 659ecca180..e15425188c 100644 --- a/spec/ParseHooks.spec.js +++ b/spec/ParseHooks.spec.js @@ -2,7 +2,7 @@ /* global describe, it, expect, fail, Parse */ const request = require('request'); const triggers = require('../src/triggers'); -const HooksController = require('../src/Controllers/HooksController').default; +const HooksController = require('../src/Controllers/HooksController').HooksController; const express = require("express"); const bodyParser = require('body-parser'); @@ -28,7 +28,7 @@ describe('Hooks', () => { expect(res.constructor).toBe(Array.prototype.constructor); done(); }, (err) => { - jfail(err); + done.fail(err); done(); }); }); @@ -38,7 +38,7 @@ describe('Hooks', () => { expect(res.constructor).toBe(Array.prototype.constructor); done(); }, (err) => { - jfail(err); + done.fail(err); done(); }); }); @@ -79,7 +79,7 @@ describe('Hooks', () => { }) }) .catch(error => { - jfail(error); + done.fail(error); done(); }) }); @@ -103,7 +103,7 @@ describe('Hooks', () => { // delete return Parse.Hooks.updateTrigger("MyClass","beforeDelete", "http://anotherurl"); }, (err) => { - jfail(err); + done.fail(err); done(); }).then((res) => { expect(res.className).toBe("MyClass"); @@ -112,13 +112,13 @@ describe('Hooks', () => { return Parse.Hooks.removeTrigger("MyClass","beforeDelete"); }, (err) => { - jfail(err); + done.fail(err); done(); }).then(() => { // Find again! but should be deleted return Parse.Hooks.getTrigger("MyClass","beforeDelete"); }, (err) => { - jfail(err); + done.fail(err); done(); }).then(function(){ fail("should not succeed"); @@ -170,7 +170,7 @@ describe('Hooks', () => { }).then(() => { done(); }, (err) => { - jfail(err); + done.fail(err); done(); }) }); @@ -193,7 +193,7 @@ describe('Hooks', () => { }).then(() => { done(); }, (err) => { - jfail(err); + done.fail(err); done(); }) }); @@ -298,7 +298,7 @@ describe('Hooks', () => { const hooksController = new HooksController(Parse.applicationId, AppCache.get('test').databaseController); return hooksController.load() }, (err) => { - jfail(err); + done.fail(err); fail('Should properly create all hooks'); done(); }).then(function() { @@ -308,7 +308,7 @@ describe('Hooks', () => { } done(); }, (err) => { - jfail(err); + done.fail(err); fail('should properly load all hooks'); done(); }) @@ -323,14 +323,14 @@ describe('Hooks', () => { Parse.Hooks.createFunction("SOME_TEST_FUNCTION", hookServerURL + "/SomeFunction").then(function(){ return Parse.Cloud.run("SOME_TEST_FUNCTION") }, (err) => { - jfail(err); + done.fail(err); fail("Should not fail creating a function"); done(); }).then(function(res){ expect(res).toBe("OK!"); done(); }, (err) => { - jfail(err); + done.fail(err); fail("Should not fail calling a function"); done(); }); @@ -345,7 +345,7 @@ describe('Hooks', () => { Parse.Hooks.createFunction("SOME_TEST_FUNCTION", hookServerURL + "/SomeFunctionError").then(function(){ return Parse.Cloud.run("SOME_TEST_FUNCTION") }, (err) => { - jfail(err); + done.fail(err); fail("Should not fail creating a function"); done(); }).then(function() { @@ -375,14 +375,14 @@ describe('Hooks', () => { Parse.Hooks.createFunction("SOME_TEST_FUNCTION", hookServerURL + "/ExpectingKey").then(function(){ return Parse.Cloud.run("SOME_TEST_FUNCTION") }, (err) => { - jfail(err); + done.fail(err); fail("Should not fail creating a function"); done(); }).then(function(res){ expect(res).toBe("correct key provided"); done(); }, (err) => { - jfail(err); + done.fail(err); fail("Should not fail calling a function"); done(); }); @@ -402,7 +402,7 @@ describe('Hooks', () => { Parse.Hooks.createFunction("SOME_TEST_FUNCTION", hookServerURL + "/ExpectingKeyAlso").then(function(){ return Parse.Cloud.run("SOME_TEST_FUNCTION") }, (err) => { - jfail(err); + done.fail(err); fail("Should not fail creating a function"); done(); }).then(function(){ @@ -442,7 +442,7 @@ describe('Hooks', () => { expect(res.get("hello")).toEqual("world"); done(); }).fail((err) => { - jfail(err); + done.fail(err); fail("Should not fail creating a function"); done(); }); @@ -498,7 +498,7 @@ describe('Hooks', () => { expect(res.get("foo")).toEqual("bar"); done(); }).fail((err) => { - jfail(err); + done.fail(err); fail("Should not fail creating a function"); done(); }); diff --git a/spec/ParseInstallation.spec.js b/spec/ParseInstallation.spec.js index 9102291bcc..8e2bc844f4 100644 --- a/spec/ParseInstallation.spec.js +++ b/spec/ParseInstallation.spec.js @@ -40,7 +40,7 @@ describe('Installations', () => { expect(obj.installationId).toEqual(installId); expect(obj.deviceType).toEqual(device); done(); - }).catch((error) => { console.log(error); jfail(error); done(); }); + }).catch((error) => { console.log(error); done.fail(error); done(); }); }); it('creates an ios installation with ids', (done) => { @@ -58,7 +58,7 @@ describe('Installations', () => { expect(obj.deviceToken).toEqual(t); expect(obj.deviceType).toEqual(device); done(); - }).catch((error) => { console.log(error); jfail(error); done(); }); + }).catch((error) => { console.log(error); done.fail(error); done(); }); }); it('creates an embedded installation with ids', (done) => { @@ -76,7 +76,7 @@ describe('Installations', () => { expect(obj.installationId).toEqual(installId); expect(obj.deviceType).toEqual(device); done(); - }).catch((error) => { console.log(error); jfail(error); done(); }); + }).catch((error) => { console.log(error); done.fail(error); done(); }); }); it('creates an android installation with all fields', (done) => { @@ -99,7 +99,7 @@ describe('Installations', () => { expect(obj.channels[0]).toEqual('foo'); expect(obj.channels[1]).toEqual('bar'); done(); - }).catch((error) => { console.log(error); jfail(error); done(); }); + }).catch((error) => { console.log(error); done.fail(error); done(); }); }); it('creates an ios installation with all fields', (done) => { @@ -122,7 +122,7 @@ describe('Installations', () => { expect(obj.channels[0]).toEqual('foo'); expect(obj.channels[1]).toEqual('bar'); done(); - }).catch((error) => { console.log(error); jfail(error); done(); }); + }).catch((error) => { console.log(error); done.fail(error); done(); }); }); it('should properly fail queying installations', (done) => { @@ -293,7 +293,7 @@ describe('Installations', () => { expect(results[0]['_id']).toEqual(secondObject._id); done(); }).catch((error) => { - jfail(error); + done.fail(error); done(); }); }); @@ -352,7 +352,7 @@ describe('Installations', () => { expect(results[0].channels[0]).toEqual('baz'); done(); }).catch(error => { - jfail(error); + done.fail(error); done(); }); }); @@ -429,7 +429,7 @@ describe('Installations', () => { expect(results[0].deviceToken).toEqual(u); done(); }).catch(err => { - jfail(err); + done.fail(err); done(); }) }); @@ -522,7 +522,7 @@ describe('Installations', () => { expect(results.length).toEqual(0); done(); }).catch(error => { - jfail(error); + done.fail(error); done(); }); }); @@ -571,7 +571,7 @@ describe('Installations', () => { expect(results.length).toEqual(0); done(); }).catch(error => { - jfail(error); + done.fail(error); done(); }); }); @@ -599,7 +599,7 @@ describe('Installations', () => { expect(results[0].installationId).toEqual(installId2); done(); }).catch(error => { - jfail(error); + done.fail(error); done(); }); }); @@ -629,7 +629,7 @@ describe('Installations', () => { expect(results[0].channels.length).toEqual(0); done(); }).catch(error => { - jfail(error); + done.fail(error); done(); }); }); @@ -667,7 +667,7 @@ describe('Installations', () => { expect(results[0].deviceType).toEqual('ios'); done(); }).catch(error => { - jfail(error); + done.fail(error); done(); }); }); @@ -710,7 +710,7 @@ describe('Installations', () => { expect(results[0].score).toEqual(1); done(); }).catch(error => { - jfail(error); + done.fail(error); done(); }); }); @@ -753,7 +753,7 @@ describe('Installations', () => { expect(results[0].deviceToken).toEqual(t); done(); }).catch(error => { - jfail(error); + done.fail(error); done(); }); }); @@ -801,7 +801,7 @@ describe('Installations', () => { expect(results[0].score).toEqual(1); done(); }).catch(error => { - jfail(error); + done.fail(error); done(); }); }); @@ -809,7 +809,7 @@ describe('Installations', () => { it('ios merge existing same token no installation id', (done) => { // Test creating installation when there is an existing object with the // same device token but no installation ID. This is possible when - // developers import device tokens from another push provider; the import + // developers const { device tokens } = require(another push provider); the import // process does not generate installation IDs. When they later integrate // the Parse SDK, their app is going to save the installation. This save // op will have a client-generated installation ID as well as a device @@ -951,7 +951,7 @@ describe('Installations', () => { }).then(() => { done(); }, (err) => { - jfail(err) + done.fail(err) done(); }); }); diff --git a/spec/ParseLiveQueryServer.spec.js b/spec/ParseLiveQueryServer.spec.js index 88f6faa113..ff4d1bb372 100644 --- a/spec/ParseLiveQueryServer.spec.js +++ b/spec/ParseLiveQueryServer.spec.js @@ -1,6 +1,6 @@ const Parse = require('parse/node'); const ParseLiveQueryServer = require('../src/LiveQuery/ParseLiveQueryServer').ParseLiveQueryServer; -const ParseServer = require('../src/ParseServer').default; +const ParseServer = require('../src/ParseServer').ParseServer; // Global mock info const queryHashValue = 'hash'; diff --git a/spec/ParseObject.spec.js b/spec/ParseObject.spec.js index 954d21a6f4..276952bf0b 100644 --- a/spec/ParseObject.spec.js +++ b/spec/ParseObject.spec.js @@ -605,7 +605,7 @@ describe('Parse.Object testing', () => { done(); }, (error) => { on_db('mongo', () => { - jfail(error); + done.fail(error); }); on_db('postgres', () => { expect(error.message).toEqual("Postgres does not support AddUnique operator."); @@ -642,7 +642,7 @@ describe('Parse.Object testing', () => { expect(found).toBe(target.length); done(); }, (error) => { - jfail(error); + done.fail(error); done(); }); }); @@ -663,7 +663,7 @@ describe('Parse.Object testing', () => { expect(x3.get('stuff')).toEqual([1, {'foo': 'bar'}]); done(); }, (error) => { - jfail(error); + done.fail(error); done(); }); }); @@ -1854,7 +1854,7 @@ describe('Parse.Object testing', () => { expect(foo["_more"]["_nested"]).toEqual("key"); done(); }).fail(err => { - jfail(err); + done.fail(err); fail("should not fail"); done(); }); @@ -1913,7 +1913,7 @@ describe('Parse.Object testing', () => { expect(res.get("obj").get("obj")).toBe(undefined); done(); }).catch(err => { - jfail(err); + done.fail(err); done(); }) }); @@ -1946,7 +1946,7 @@ describe('Parse.Object testing', () => { expect(array[2].get("key").get("foo")).toEqual("bar"); done(); }).catch(err => { - jfail(err); + done.fail(err); done(); }) }); @@ -1976,7 +1976,7 @@ describe('Parse.Object testing', () => { expect(gameScore.get("score")).toBe(1234); done(); }).catch(err => { - jfail(err); + done.fail(err); done(); }) }); diff --git a/spec/ParsePolygon.spec.js b/spec/ParsePolygon.spec.js index 25d4edffa3..99e924cb43 100644 --- a/spec/ParsePolygon.spec.js +++ b/spec/ParsePolygon.spec.js @@ -1,5 +1,5 @@ const TestObject = Parse.Object.extend('TestObject'); -import MongoStorageAdapter from '../src/Adapters/Storage/Mongo/MongoStorageAdapter'; +const { MongoStorageAdapter } = require('../src/Adapters/Storage/Mongo/MongoStorageAdapter'); const mongoURI = 'mongodb://localhost:27017/parseServerMongoAdapterTestDatabase'; const rp = require('request-promise'); const defaultHeaders = { diff --git a/spec/ParseQuery.FullTextSearch.spec.js b/spec/ParseQuery.FullTextSearch.spec.js index 9116410742..44b519a05d 100644 --- a/spec/ParseQuery.FullTextSearch.spec.js +++ b/spec/ParseQuery.FullTextSearch.spec.js @@ -1,8 +1,8 @@ 'use strict'; -import MongoStorageAdapter from '../src/Adapters/Storage/Mongo/MongoStorageAdapter'; +const { MongoStorageAdapter } = require('../src/Adapters/Storage/Mongo/MongoStorageAdapter'); const mongoURI = 'mongodb://localhost:27017/parseServerMongoAdapterTestDatabase'; -import PostgresStorageAdapter from '../src/Adapters/Storage/Postgres/PostgresStorageAdapter'; +const { PostgresStorageAdapter } = require('../src/Adapters/Storage/Postgres/PostgresStorageAdapter'); const postgresURI = 'postgres://localhost:5432/parse_server_postgres_adapter_test_database'; const Parse = require('parse/node'); const rp = require('request-promise'); diff --git a/spec/ParseQuery.spec.js b/spec/ParseQuery.spec.js index ef4a19908a..086ed1c2bc 100644 --- a/spec/ParseQuery.spec.js +++ b/spec/ParseQuery.spec.js @@ -231,7 +231,7 @@ describe('Parse.Query testing', () => { }).then(function(){ done(); }).catch((err) => { - jfail(err); + done.fail(err); done(); }) }); @@ -308,12 +308,12 @@ describe('Parse.Query testing', () => { done(); }, error: function(e) { - jfail(e); + done.fail(e); done(); } }); }, (e) => { - jfail(e); + done.fail(e); done(); }); }); @@ -383,12 +383,12 @@ describe('Parse.Query testing', () => { done(); }, error: function(err) { - jfail(err); + done.fail(err); done(); }, }); }).catch((err) => { - jfail(err); + done.fail(err); done(); }); }); @@ -410,7 +410,7 @@ describe('Parse.Query testing', () => { } }); }).catch((err) => { - jfail(err); + done.fail(err); done(); }); }); @@ -464,7 +464,7 @@ describe('Parse.Query testing', () => { done(); }, error: function(e) { - jfail(e); + done.fail(e); done(); }, }); @@ -1673,7 +1673,7 @@ describe('Parse.Query testing', () => { equal(results[3].get("string"), "b"); done(); }, (err) => { - jfail(err); + done.fail(err); done(); }); }); @@ -1729,7 +1729,7 @@ describe('Parse.Query testing', () => { })); }, (err) => { - jfail(err); + done.fail(err); done(); }); }); @@ -1818,7 +1818,7 @@ describe('Parse.Query testing', () => { done(); }, error: function(e) { - jfail(e); + done.fail(e); done(); }, }); @@ -2041,7 +2041,7 @@ describe('Parse.Query testing', () => { done(); }, error: function(err) { - jfail(err); + done.fail(err); done(); } }); @@ -2486,7 +2486,7 @@ describe('Parse.Query testing', () => { expect(total).toBe(0); done() }, (err) => { - jfail(err); + done.fail(err); fail('should not fail'); done(); }) @@ -2646,7 +2646,7 @@ describe('Parse.Query testing', () => { expect(results.length).toEqual(2); done(); }, (error) => { - jfail(error); + done.fail(error); done(); }); }); @@ -3218,7 +3218,7 @@ describe('Parse.Query testing', () => { }).then(function() { done(); }, function(err) { - jfail(err); + done.fail(err); done(); }); }); @@ -3378,7 +3378,7 @@ describe('Parse.Query testing', () => { query.find().then(() => { done(); }, (err) => { - jfail(err); + done.fail(err); fail("should not failt"); done(); }) @@ -3414,7 +3414,7 @@ describe('Parse.Query testing', () => { }).then(() => { done(); }, (err) => { - jfail(err); + done.fail(err); fail("should not fail"); done(); }); @@ -3482,7 +3482,7 @@ describe('Parse.Query testing', () => { } done(); }).fail((err) => { - jfail(err); + done.fail(err); fail('should not fail'); done(); }) @@ -3814,7 +3814,7 @@ describe('Parse.Query testing', () => { done(); }).catch((error) => { fail('should not fail'); - jfail(error); + done.fail(error); done(); }) }); diff --git a/spec/ParseRelation.spec.js b/spec/ParseRelation.spec.js index c780781995..39411b669d 100644 --- a/spec/ParseRelation.spec.js +++ b/spec/ParseRelation.spec.js @@ -359,7 +359,7 @@ describe('Parse.Relation testing', () => { }); }); }).catch(err => { - jfail(err); + done.fail(err); done(); }); }); diff --git a/spec/ParseServer.spec.js b/spec/ParseServer.spec.js index 9f85240996..9f08b23249 100644 --- a/spec/ParseServer.spec.js +++ b/spec/ParseServer.spec.js @@ -1,9 +1,9 @@ 'use strict'; /* Tests for ParseServer.js */ const express = require('express'); -import MongoStorageAdapter from '../src/Adapters/Storage/Mongo/MongoStorageAdapter'; -import PostgresStorageAdapter from '../src/Adapters/Storage/Postgres/PostgresStorageAdapter'; -import ParseServer from '../src/ParseServer'; +const { MongoStorageAdapter } = require('../src/Adapters/Storage/Mongo/MongoStorageAdapter'); +const { PostgresStorageAdapter } = require('../src/Adapters/Storage/Postgres/PostgresStorageAdapter'); +const { ParseServer } = require('../src/ParseServer'); describe('Server Url Checks', () => { diff --git a/spec/ParseServerRESTController.spec.js b/spec/ParseServerRESTController.spec.js index a33244c0ba..a0aeed9758 100644 --- a/spec/ParseServerRESTController.spec.js +++ b/spec/ParseServerRESTController.spec.js @@ -1,5 +1,5 @@ const ParseServerRESTController = require('../src/ParseServerRESTController').ParseServerRESTController; -const ParseServer = require('../src/ParseServer').default; +const ParseServer = require('../src/ParseServer').ParseServer; const Parse = require('parse/node').Parse; let RESTController; @@ -16,7 +16,7 @@ describe('ParseServerRESTController', () => { done(); }, (err) => { console.log(err); - jfail(err); + done.fail(err); done(); }); }); @@ -26,7 +26,7 @@ describe('ParseServerRESTController', () => { expect(res.results.length).toBe(0); done(); }, (err) => { - jfail(err); + done.fail(err); done(); }); }); @@ -52,7 +52,7 @@ describe('ParseServerRESTController', () => { expect(res.length).toBe(3); done(); }, (err) => { - jfail(err); + done.fail(err); done(); }); }); @@ -66,7 +66,7 @@ describe('ParseServerRESTController', () => { done(); }).fail((err) => { console.log(err); - jfail(err); + done.fail(err); done(); }); }); @@ -83,7 +83,7 @@ describe('ParseServerRESTController', () => { done(); }).fail((err) => { console.log(err); - jfail(err); + done.fail(err); done(); }); }); @@ -100,14 +100,14 @@ describe('ParseServerRESTController', () => { expect(res.results[0].objectId).toEqual(userId); done(); }, (err) => { - jfail(err); + done.fail(err); done(); }); }); it('ensures no user is created when passing an empty username', (done) => { RESTController.request("POST", "/classes/_User", {username: "", password: "world"}).then(() => { - jfail(new Error('Success callback should not be called when passing an empty username.')); + done.fail(new Error('Success callback should not be called when passing an empty username.')); done(); }, (err) => { expect(err.code).toBe(Parse.Error.USERNAME_MISSING); @@ -118,7 +118,7 @@ describe('ParseServerRESTController', () => { it('ensures no user is created when passing an empty password', (done) => { RESTController.request("POST", "/classes/_User", {username: "hello", password: ""}).then(() => { - jfail(new Error('Success callback should not be called when passing an empty password.')); + done.fail(new Error('Success callback should not be called when passing an empty password.')); done(); }, (err) => { expect(err.code).toBe(Parse.Error.PASSWORD_MISSING); @@ -148,7 +148,7 @@ describe('ParseServerRESTController', () => { expect(sessions[0].get('installationId')).toBe('my-installation'); done(); }, (err) => { - jfail(err); + done.fail(err); done(); }); }); diff --git a/spec/ParseUser.spec.js b/spec/ParseUser.spec.js index c453ee9738..a92e497353 100644 --- a/spec/ParseUser.spec.js +++ b/spec/ParseUser.spec.js @@ -7,7 +7,7 @@ "use strict"; -import MongoStorageAdapter from '../src/Adapters/Storage/Mongo/MongoStorageAdapter'; +const { MongoStorageAdapter } = require('../src/Adapters/Storage/Mongo/MongoStorageAdapter'); const request = require('request'); const passwordCrypto = require('../src/password'); const Config = require('../src/Config'); diff --git a/spec/PasswordPolicy.spec.js b/spec/PasswordPolicy.spec.js index b03ca7fff9..2f7b48b7c3 100644 --- a/spec/PasswordPolicy.spec.js +++ b/spec/PasswordPolicy.spec.js @@ -29,7 +29,7 @@ describe("Password Policy: ", () => { return user.signUp(); }).then(() => { Parse.User.requestPasswordReset("user@parse.com").catch((err) => { - jfail(err); + done.fail(err); fail("Reset password request should not fail"); done(); }); @@ -52,7 +52,7 @@ describe("Password Policy: ", () => { }); }, 1000); }).catch((err) => { - jfail(err); + done.fail(err); done(); }); }); @@ -82,7 +82,7 @@ describe("Password Policy: ", () => { return user.signUp(); }).then(() => { Parse.User.requestPasswordReset('user@parse.com').catch((err) => { - jfail(err); + done.fail(err); fail("Reset password request should not fail"); done(); }); @@ -106,7 +106,7 @@ describe("Password Policy: ", () => { }); }, 1000); }).catch((err) => { - jfail(err); + done.fail(err); done(); }); }); @@ -258,17 +258,17 @@ describe("Password Policy: ", () => { Parse.User.logIn("user1", "1digit").then(function () { done(); }).catch((err) => { - jfail(err); + done.fail(err); fail("Should be able to login"); done(); }); }).catch((error) => { - jfail(error); + done.fail(error); fail('logout should have succeeded'); done(); }); }).catch((error) => { - jfail(error); + done.fail(error); fail('Signup should have succeeded as password conforms to the policy.'); done(); }); @@ -292,17 +292,17 @@ describe("Password Policy: ", () => { Parse.User.logIn("user1", "p@sswrod").then(function () { done(); }).catch((err) => { - jfail(err); + done.fail(err); fail("Should be able to login"); done(); }); }).catch((error) => { - jfail(error); + done.fail(error); fail('logout should have succeeded'); done(); }); }).catch((error) => { - jfail(error); + done.fail(error); fail('Signup should have succeeded as password conforms to the policy.'); done(); }); @@ -348,17 +348,17 @@ describe("Password Policy: ", () => { Parse.User.logIn("user1", "oneUpper").then(function () { done(); }).catch((err) => { - jfail(err); + done.fail(err); fail("Should be able to login"); done(); }); }).catch(error => { - jfail(error); + done.fail(error); fail("Logout should have succeeded"); done(); }); }).catch((error) => { - jfail(error); + done.fail(error); fail('Should have succeeded as password conforms to the policy.'); done(); }); @@ -429,17 +429,17 @@ describe("Password Policy: ", () => { Parse.User.logIn("user1", "oneUpper").then(function () { done(); }).catch((err) => { - jfail(err); + done.fail(err); fail("Should be able to login"); done(); }); }).catch(error => { - jfail(error); + done.fail(error); fail("logout should have succeeded"); done(); }); }).catch((error) => { - jfail(error); + done.fail(error); fail('Should have succeeded as password conforms to the policy.'); done(); }); @@ -483,17 +483,17 @@ describe("Password Policy: ", () => { Parse.User.logIn("user1", "has2init").then(function () { done(); }).catch((err) => { - jfail(err); + done.fail(err); fail("should login with new password"); done(); }); }).catch((error) => { - jfail(error); + done.fail(error); fail("Failed to POST request password reset"); done(); }); }).catch((error) => { - jfail(error); + done.fail(error); fail("Failed to get the reset link"); done(); }); @@ -515,12 +515,12 @@ describe("Password Policy: ", () => { user.set('email', 'user1@parse.com'); user.signUp().then(() => { Parse.User.requestPasswordReset('user1@parse.com').catch((err) => { - jfail(err); + done.fail(err); fail("Reset password request should not fail"); done(); }); }).catch(error => { - jfail(error); + done.fail(error); fail("signUp should not fail"); done(); }); @@ -564,17 +564,17 @@ describe("Password Policy: ", () => { Parse.User.logIn("user1", "has 1 digit").then(function () { done(); }).catch((err) => { - jfail(err); + done.fail(err); fail("should login with old password"); done(); }); }).catch((error) => { - jfail(error); + done.fail(error); fail("Failed to POST request password reset"); done(); }); }).catch((error) => { - jfail(error); + done.fail(error); fail("Failed to get the reset link"); done(); }); @@ -596,12 +596,12 @@ describe("Password Policy: ", () => { user.set('email', 'user1@parse.com'); user.signUp().then(() => { Parse.User.requestPasswordReset('user1@parse.com').catch((err) => { - jfail(err); + done.fail(err); fail("Reset password request should not fail"); done(); }); }).catch(error => { - jfail(error); + done.fail(error); fail("signUp should not fail"); done(); }); @@ -726,18 +726,18 @@ describe("Password Policy: ", () => { Parse.User.logIn("user1", "r@nd0m").then(function () { done(); }).catch((err) => { - jfail(err); + done.fail(err); fail("should login with old password"); done(); }); }).catch((error) => { - jfail(error); + done.fail(error); fail("Failed to POST request password reset"); done(); }); }).catch((error) => { - jfail(error); + done.fail(error); fail("Failed to get the reset link"); done(); }); @@ -759,12 +759,12 @@ describe("Password Policy: ", () => { user.set('email', 'user1@parse.com'); user.signUp().then(() => { Parse.User.requestPasswordReset('user1@parse.com').catch((err) => { - jfail(err); + done.fail(err); fail("Reset password request should not fail"); done(); }); }).catch(error => { - jfail(error); + done.fail(error); fail("signUp should not fail"); done(); }); @@ -808,17 +808,17 @@ describe("Password Policy: ", () => { Parse.User.logIn("user1", "uuser11").then(function () { done(); }).catch(err => { - jfail(err); + done.fail(err); fail("should login with new password"); done(); }); }).catch(error => { - jfail(error); + done.fail(error); fail("Failed to POST request password reset"); }); }).catch(error => { - jfail(error); + done.fail(error); fail("Failed to get the reset link"); }); }, @@ -840,13 +840,13 @@ describe("Password Policy: ", () => { user.set('email', 'user1@parse.com'); user.signUp().then(() => { Parse.User.requestPasswordReset('user1@parse.com').catch((err) => { - jfail(err); + done.fail(err); fail("Reset password request should not fail"); done(); }); }); }).catch(error => { - jfail(error); + done.fail(error); fail("signUp should not fail"); done(); }); @@ -900,12 +900,12 @@ describe("Password Policy: ", () => { Parse.User.logIn("user1", "user1").then(() => { done(); }).catch((error) => { - jfail(error); + done.fail(error); fail('Login should have succeeded before password expiry.'); done(); }); }).catch((error) => { - jfail(error); + done.fail(error); fail('Signup failed.'); done(); }); @@ -937,7 +937,7 @@ describe("Password Policy: ", () => { }); }, 1000); }).catch((error) => { - jfail(error); + done.fail(error); fail('Signup failed.'); done(); }); @@ -976,23 +976,23 @@ describe("Password Policy: ", () => { }); }, 2000); }).catch(error => { - jfail(error); + done.fail(error); fail("logout should have succeeded"); done(); }); }).catch((error) => { - jfail(error); + done.fail(error); fail('Login failed.'); done(); }); }); }).catch(error => { - jfail(error); + done.fail(error); fail("logout should have succeeded"); done(); }); }).catch((error) => { - jfail(error); + done.fail(error); fail('Signup failed.'); done(); }); @@ -1037,16 +1037,16 @@ describe("Password Policy: ", () => { Parse.User.logIn("user1", "uuser11").then(function () { done(); }).catch(err => { - jfail(err); + done.fail(err); fail("should login with new password"); done(); }); }).catch(error => { - jfail(error); + done.fail(error); fail("Failed to POST request password reset"); }); }).catch(error => { - jfail(error); + done.fail(error); fail("Failed to get the reset link"); }); }, @@ -1074,14 +1074,14 @@ describe("Password Policy: ", () => { expect(error.code).toEqual(Parse.Error.OBJECT_NOT_FOUND); expect(error.message).toEqual('Your password has expired. Please reset your password.'); Parse.User.requestPasswordReset('user1@parse.com').catch((err) => { - jfail(err); + done.fail(err); fail("Reset password request should not fail"); done(); }); }); }, 1000); }).catch((error) => { - jfail(error); + done.fail(error); fail('Signup failed.'); done(); }); @@ -1180,7 +1180,7 @@ describe("Password Policy: ", () => { done(); return Promise.resolve(); }).catch(error => { - jfail(error); + done.fail(error); fail("Repeat password test failed"); done(); }); @@ -1205,7 +1205,7 @@ describe("Password Policy: ", () => { }).then(() => { return Parse.User.requestPasswordReset('user1@parse.com'); }).catch(error => { - jfail(error); + done.fail(error); fail("SignUp or reset request failed"); done(); }); diff --git a/spec/PointerPermissions.spec.js b/spec/PointerPermissions.spec.js index 32830059bc..85ed1915c3 100644 --- a/spec/PointerPermissions.spec.js +++ b/spec/PointerPermissions.spec.js @@ -165,7 +165,7 @@ describe('Pointer Permissions', () => { expect(res.length).toBe(1); done(); }).catch((err) => { - jfail(err); + done.fail(err); fail('should not fail'); done(); }) @@ -206,7 +206,7 @@ describe('Pointer Permissions', () => { expect(res.length).toBe(0); done(); }).catch((err) => { - jfail(err); + done.fail(err); fail('should not fail'); done(); }) diff --git a/spec/PostgresInitOptions.spec.js b/spec/PostgresInitOptions.spec.js index 7f519b01cd..f56cb39b56 100644 --- a/spec/PostgresInitOptions.spec.js +++ b/spec/PostgresInitOptions.spec.js @@ -1,5 +1,5 @@ const Parse = require('parse/node').Parse; -import PostgresStorageAdapter from '../src/Adapters/Storage/Postgres/PostgresStorageAdapter'; +const { PostgresStorageAdapter } = require('../src/Adapters/Storage/Postgres/PostgresStorageAdapter'); const postgresURI = 'postgres://localhost:5432/parse_server_postgres_adapter_test_database'; const ParseServer = require("../src/index"); const express = require('express'); diff --git a/spec/PostgresStorageAdapter.spec.js b/spec/PostgresStorageAdapter.spec.js index 559368bf50..6449c3d2f8 100644 --- a/spec/PostgresStorageAdapter.spec.js +++ b/spec/PostgresStorageAdapter.spec.js @@ -1,4 +1,4 @@ -import PostgresStorageAdapter from '../src/Adapters/Storage/Postgres/PostgresStorageAdapter'; +const { PostgresStorageAdapter } = require('../src/Adapters/Storage/Postgres/PostgresStorageAdapter'); const databaseURI = 'postgres://localhost:5432/parse_server_postgres_adapter_test_database'; const getColumns = (client, className) => { diff --git a/spec/PromiseRouter.spec.js b/spec/PromiseRouter.spec.js index d0ce63b0eb..14a923733c 100644 --- a/spec/PromiseRouter.spec.js +++ b/spec/PromiseRouter.spec.js @@ -1,4 +1,4 @@ -const PromiseRouter = require("../src/PromiseRouter").default; +const PromiseRouter = require("../src/PromiseRouter").PromiseRouter; describe("PromiseRouter", () => { it("should properly handle rejects", (done) => { @@ -13,7 +13,7 @@ describe("PromiseRouter", () => { }); router.routes[0].handler({}).then((result) => { - jfail(result); + done.fail(result); fail("this should not be called"); done(); }, (error)=> { diff --git a/spec/PushController.spec.js b/spec/PushController.spec.js index 60dc4619b4..f1bce0975f 100644 --- a/spec/PushController.spec.js +++ b/spec/PushController.spec.js @@ -240,7 +240,7 @@ describe('PushController', () => { } done() }).catch((err) => { - jfail(err); + done.fail(err); done(); }); }); @@ -311,7 +311,7 @@ describe('PushController', () => { } done() }).catch((err) => { - jfail(err); + done.fail(err); done(); }); }); @@ -656,7 +656,7 @@ describe('PushController', () => { expect(pushStatus.get('numSent')).toBe(3); done(); }).catch((err) => { - jfail(err); + done.fail(err); done(); }); }); diff --git a/spec/PushQueue.spec.js b/spec/PushQueue.spec.js index 3e9aedae98..a57ddbf547 100644 --- a/spec/PushQueue.spec.js +++ b/spec/PushQueue.spec.js @@ -1,5 +1,5 @@ -import Config from "../src/Config"; -import {PushQueue} from "../src/Push/PushQueue"; +const Config = require("../src/Config"); +const { PushQueue } = require("../src/Push/PushQueue"); describe('PushQueue', () => { describe('With a defined channel', () => { diff --git a/spec/PushWorker.spec.js b/spec/PushWorker.spec.js index 43d49ac5bc..f27ee37b32 100644 --- a/spec/PushWorker.spec.js +++ b/spec/PushWorker.spec.js @@ -54,7 +54,7 @@ describe('PushWorker', () => { expect(sendCount).toBe(10); done(); }).catch(err => { - jfail(err); + done.fail(err); }) }); diff --git a/spec/RedisCacheAdapter.spec.js b/spec/RedisCacheAdapter.spec.js index 4669d341a3..f8f7a8185c 100644 --- a/spec/RedisCacheAdapter.spec.js +++ b/spec/RedisCacheAdapter.spec.js @@ -1,4 +1,4 @@ -const RedisCacheAdapter = require('../src/Adapters/Cache/RedisCacheAdapter').default; +const RedisCacheAdapter = require('../src/Adapters/Cache/RedisCacheAdapter').RedisCacheAdapter; /* To run this test part of the complete suite set PARSE_SERVER_TEST_CACHE='redis' diff --git a/spec/RestQuery.spec.js b/spec/RestQuery.spec.js index 5d1c888163..73418ce337 100644 --- a/spec/RestQuery.spec.js +++ b/spec/RestQuery.spec.js @@ -199,7 +199,7 @@ describe('rest query', () => { }); return Promise.all([p0, p1]); }).then(done).catch((err) => { - jfail(err); + done.fail(err); fail('should not fail'); done(); }) diff --git a/spec/RevocableSessionsUpgrade.spec.js b/spec/RevocableSessionsUpgrade.spec.js index f9d87536bd..5a2b9ef355 100644 --- a/spec/RevocableSessionsUpgrade.spec.js +++ b/spec/RevocableSessionsUpgrade.spec.js @@ -43,7 +43,7 @@ describe_only_db('mongo')('revocable sessions', () => { }).then(() => { done(); }, (err) => { - jfail(err); + done.fail(err); done(); }); }); @@ -64,7 +64,7 @@ describe_only_db('mongo')('revocable sessions', () => { }).then(() => { done(); }, (err) => { - jfail(err); + done.fail(err); done(); }); }); diff --git a/spec/Schema.spec.js b/spec/Schema.spec.js index c00f930c6c..a53fd39023 100644 --- a/spec/Schema.spec.js +++ b/spec/Schema.spec.js @@ -30,7 +30,7 @@ describe('SchemaController', () => { }).then(() => { done(); }, (error) => { - jfail(error); + done.fail(error); done(); }); }); @@ -41,7 +41,7 @@ describe('SchemaController', () => { }).then(() => { done(); }, (error) => { - jfail(error); + done.fail(error); done(); }); }); @@ -702,7 +702,7 @@ describe('SchemaController', () => { }) .catch(error => { fail('Couldn\'t create class'); - jfail(error); + done.fail(error); }); }) .catch(() => fail('Couldn\'t load schema')); @@ -783,7 +783,7 @@ describe('SchemaController', () => { } done(); }, error => { - jfail(error); + done.fail(error); done(); }); }); @@ -863,7 +863,7 @@ describe('SchemaController', () => { }); }) .catch(error => { - jfail(error); + done.fail(error); done(); }); }); diff --git a/spec/SchemaCache.spec.js b/spec/SchemaCache.spec.js index ffbe918399..f6bda675a0 100644 --- a/spec/SchemaCache.spec.js +++ b/spec/SchemaCache.spec.js @@ -1,6 +1,6 @@ -const CacheController = require('../src/Controllers/CacheController.js').default; -const InMemoryCacheAdapter = require('../src/Adapters/Cache/InMemoryCacheAdapter').default; -const SchemaCache = require('../src/Controllers/SchemaCache').default; +const CacheController = require('../src/Controllers/CacheController.js').CacheController; +const InMemoryCacheAdapter = require('../src/Adapters/Cache/InMemoryCacheAdapter').InMemoryCacheAdapter; +const SchemaCache = require('../src/Controllers/SchemaCache').SchemaCache; describe('SchemaCache', () => { let cacheController; diff --git a/spec/ValidationAndPasswordsReset.spec.js b/spec/ValidationAndPasswordsReset.spec.js index 99367a0bbd..786dd9eeee 100644 --- a/spec/ValidationAndPasswordsReset.spec.js +++ b/spec/ValidationAndPasswordsReset.spec.js @@ -319,11 +319,11 @@ describe("Custom Pages, Email Verification, Password Reset", () => { done(); }); }, (err) => { - jfail(err); + done.fail(err); fail("this should not fail"); done(); }).catch((err) => { - jfail(err); + done.fail(err); done(); }) }); @@ -625,11 +625,11 @@ describe("Custom Pages, Email Verification, Password Reset", () => { expect(user.get('emailVerified')).toEqual(true); done(); }, (err) => { - jfail(err); + done.fail(err); fail("this should not fail"); done(); }).catch((err) => { - jfail(err); + done.fail(err); done(); }) }); @@ -753,7 +753,7 @@ describe("Custom Pages, Email Verification, Password Reset", () => { followRedirect: false, }, (error, response) => { if (error) { - jfail(error); + done.fail(error); fail("Failed to get the reset link"); return; } @@ -778,7 +778,7 @@ describe("Custom Pages, Email Verification, Password Reset", () => { user.signUp().then(() => { Parse.User.requestPasswordReset('user@parse.com', { error: (err) => { - jfail(err); + done.fail(err); fail("Should not fail requesting a password"); done(); } @@ -818,7 +818,7 @@ describe("Custom Pages, Email Verification, Password Reset", () => { followRedirect: false, }, (error, response) => { if (error) { - jfail(error); + done.fail(error); fail("Failed to get the reset link"); return; } @@ -841,7 +841,7 @@ describe("Custom Pages, Email Verification, Password Reset", () => { followRedirect: false, }, (error, response) => { if (error) { - jfail(error); + done.fail(error); fail("Failed to POST request password reset"); return; } @@ -858,7 +858,7 @@ describe("Custom Pages, Email Verification, Password Reset", () => { done(); }); }, (err) => { - jfail(err); + done.fail(err); fail("should login with new password"); done(); }); @@ -881,7 +881,7 @@ describe("Custom Pages, Email Verification, Password Reset", () => { user.signUp().then(() => { Parse.User.requestPasswordReset('user@parse.com', { error: (err) => { - jfail(err); + done.fail(err); fail("Should not fail"); done(); } diff --git a/spec/WinstonLoggerAdapter.spec.js b/spec/WinstonLoggerAdapter.spec.js index 555a3feeeb..83999590e7 100644 --- a/spec/WinstonLoggerAdapter.spec.js +++ b/spec/WinstonLoggerAdapter.spec.js @@ -91,9 +91,6 @@ describe('verbose logs', () => { done(); }); }); - }).catch((err) => { - fail(JSON.stringify(err)); - done(); - }) + }).catch(done.fail); }); }); diff --git a/spec/helper.js b/spec/helper.js index 9d84f8d4b2..0efba9ef1c 100644 --- a/spec/helper.js +++ b/spec/helper.js @@ -23,15 +23,15 @@ if (global._babelPolyfill) { process.exit(1); } -const cache = require('../src/cache').default; +const cache = require('../src/cache').AppCache; const ParseServer = require('../src/index').ParseServer; const path = require('path'); const TestUtils = require('../src/TestUtils'); -const GridStoreAdapter = require('../src/Adapters/Files/GridStoreAdapter').GridStoreAdapter; +const { GridStoreAdapter } = require('../src/Adapters/Files/GridStoreAdapter'); const FSAdapter = require('@parse/fs-files-adapter'); -import PostgresStorageAdapter from '../src/Adapters/Storage/Postgres/PostgresStorageAdapter'; -import MongoStorageAdapter from '../src/Adapters/Storage/Mongo/MongoStorageAdapter'; -const RedisCacheAdapter = require('../src/Adapters/Cache/RedisCacheAdapter').default; +const { PostgresStorageAdapter } = require('../src/Adapters/Storage/Postgres/PostgresStorageAdapter'); +const { MongoStorageAdapter } = require('../src/Adapters/Storage/Mongo/MongoStorageAdapter'); +const { RedisCacheAdapter } = require('../src/Adapters/Cache/RedisCacheAdapter'); const mongoURI = 'mongodb://localhost:27017/parseServerMongoAdapterTestDatabase'; const postgresURI = 'postgres://localhost:5432/parse_server_postgres_adapter_test_database'; diff --git a/spec/index.spec.js b/spec/index.spec.js index 335a8ac3fc..c69433f912 100644 --- a/spec/index.spec.js +++ b/spec/index.spec.js @@ -6,7 +6,7 @@ const ParseServer = require("../src/index"); const Config = require('../src/Config'); const express = require('express'); -import MongoStorageAdapter from '../src/Adapters/Storage/Mongo/MongoStorageAdapter'; +const { MongoStorageAdapter } = require('../src/Adapters/Storage/Mongo/MongoStorageAdapter'); describe('server', () => { it('requires a master key and app id', done => { diff --git a/spec/rest.spec.js b/spec/rest.spec.js index af6ce8c41f..1a516ca571 100644 --- a/spec/rest.spec.js +++ b/spec/rest.spec.js @@ -257,7 +257,7 @@ describe('rest create', () => { expect(r.get('username')).toEqual('hello'); done(); }).catch((err) => { - jfail(err); + done.fail(err); done(); }) }); @@ -314,7 +314,7 @@ describe('rest create', () => { expect(output.user.objectId).toEqual(newUserSignedUpByFacebookObjectId); done(); }).catch(err => { - jfail(err); + done.fail(err); done(); }) }); @@ -437,7 +437,7 @@ describe('rest create', () => { done(); }).catch(err => { - jfail(err); + done.fail(err); done(); }); }); diff --git a/spec/schemas.spec.js b/spec/schemas.spec.js index ffc2650ba1..b25ddffcde 100644 --- a/spec/schemas.spec.js +++ b/spec/schemas.spec.js @@ -1352,7 +1352,7 @@ describe('schemas', () => { expect(results.length).toBe(1); done(); }).catch((err) => { - jfail(err); + done.fail(err); done(); }) }); @@ -1415,7 +1415,7 @@ describe('schemas', () => { expect(results.length).toBe(1); done(); }).catch((err) => { - jfail(err); + done.fail(err); done(); }) }); @@ -1473,7 +1473,7 @@ describe('schemas', () => { expect(results.length).toBe(1); done(); }).catch((err) => { - jfail(err); + done.fail(err); done(); }); }); @@ -1539,7 +1539,7 @@ describe('schemas', () => { expect(results.length).toBe(1); done(); }).catch((err) => { - jfail(err); + done.fail(err); done(); }) }); @@ -1633,7 +1633,7 @@ describe('schemas', () => { expect(res[0].get('anotherObject')).not.toBeUndefined(); done(); }).catch((err) => { - jfail(err); + done.fail(err); done(); }) }); @@ -1758,7 +1758,7 @@ describe('schemas', () => { done(); }).catch((err) => { fail('should not fail'); - jfail(err); + done.fail(err); done(); }); }); @@ -1823,7 +1823,7 @@ describe('schemas', () => { expect(user.get('userProfile')).not.toBeUndefined(); done(); }, (err) => { - jfail(err); + done.fail(err); done(); }); }); diff --git a/spec/testing-routes.js b/spec/testing-routes.js index ac982ffce8..0701d4f0f4 100644 --- a/spec/testing-routes.js +++ b/spec/testing-routes.js @@ -1,8 +1,8 @@ // testing-routes.js -import AppCache from '../src/cache'; -import * as middlewares from '../src/middlewares'; -import { ParseServer } from '../src/index'; -import { Parse } from 'parse/node'; +const { AppCache } = require('../src/cache'); +const middlewares = require('../src/middlewares'); +const { ParseServer } = require('../src/index'); +const { Parse } = require('parse/node'); const express = require('express'), cryptoUtils = require('../src/cryptoUtils'); diff --git a/src/AccountLockout.js b/src/AccountLockout.js index 358f1ac402..45f69a51e4 100644 --- a/src/AccountLockout.js +++ b/src/AccountLockout.js @@ -1,7 +1,7 @@ // This class handles the Account Lockout Policy settings. -import Parse from 'parse/node'; +const Parse = require('parse/node'); -export class AccountLockout { +class AccountLockout { constructor(user, config) { this._user = user; this._config = config; @@ -151,4 +151,4 @@ export class AccountLockout { } -export default AccountLockout; +module.exports = { AccountLockout }; diff --git a/src/Adapters/AdapterLoader.js b/src/Adapters/AdapterLoader.js index cd7f33f348..8316e7da4f 100644 --- a/src/Adapters/AdapterLoader.js +++ b/src/Adapters/AdapterLoader.js @@ -1,4 +1,4 @@ -export function loadAdapter(adapter, defaultAdapter, options) { +function loadAdapter(adapter, defaultAdapter, options) { if (!adapter) { if (!defaultAdapter) { return options; @@ -35,4 +35,4 @@ export function loadAdapter(adapter, defaultAdapter, options) { return adapter; } -export default loadAdapter; +module.exports = { loadAdapter }; diff --git a/src/Adapters/Analytics/AnalyticsAdapter.js b/src/Adapters/Analytics/AnalyticsAdapter.js index 7d13ef96a3..5d64fafe69 100644 --- a/src/Adapters/Analytics/AnalyticsAdapter.js +++ b/src/Adapters/Analytics/AnalyticsAdapter.js @@ -1,5 +1,5 @@ /*eslint no-unused-vars: "off"*/ -export class AnalyticsAdapter { +class AnalyticsAdapter { /* @param parameters: the analytics request body, analytics info will be in the dimensions property @@ -19,4 +19,4 @@ export class AnalyticsAdapter { } } -export default AnalyticsAdapter; +module.exports = { AnalyticsAdapter }; diff --git a/src/Adapters/Auth/AuthAdapter.js b/src/Adapters/Auth/AuthAdapter.js index dd8fd838c3..ea23c85d87 100644 --- a/src/Adapters/Auth/AuthAdapter.js +++ b/src/Adapters/Auth/AuthAdapter.js @@ -1,5 +1,5 @@ /*eslint no-unused-vars: "off"*/ -export class AuthAdapter { +class AuthAdapter { /* @param appIds: the specified app ids in the configuration @@ -19,4 +19,4 @@ export class AuthAdapter { } } -export default AuthAdapter; +module.exports = { AuthAdapter }; diff --git a/src/Adapters/Auth/index.js b/src/Adapters/Auth/index.js index 77101935b5..b77bab38b2 100755 --- a/src/Adapters/Auth/index.js +++ b/src/Adapters/Auth/index.js @@ -1,4 +1,4 @@ -import loadAdapter from '../AdapterLoader'; +const { loadAdapter } = require('../AdapterLoader'); const facebook = require('./facebook'); const facebookaccountkit = require('./facebookaccountkit'); diff --git a/src/Adapters/Cache/CacheAdapter.js b/src/Adapters/Cache/CacheAdapter.js index 1c8c0ce202..e7814c4879 100644 --- a/src/Adapters/Cache/CacheAdapter.js +++ b/src/Adapters/Cache/CacheAdapter.js @@ -1,5 +1,5 @@ /*eslint no-unused-vars: "off"*/ -export class CacheAdapter { +class CacheAdapter { /** * Get a value in the cache * @param key Cache key to get @@ -26,3 +26,5 @@ export class CacheAdapter { */ clear() {} } + +module.exports = { CacheAdapter }; diff --git a/src/Adapters/Cache/InMemoryCache.js b/src/Adapters/Cache/InMemoryCache.js index 38a0e0f39a..379ce71751 100644 --- a/src/Adapters/Cache/InMemoryCache.js +++ b/src/Adapters/Cache/InMemoryCache.js @@ -1,7 +1,7 @@ const DEFAULT_CACHE_TTL = 5 * 1000; -export class InMemoryCache { +class InMemoryCache { constructor({ ttl = DEFAULT_CACHE_TTL }) { @@ -62,4 +62,4 @@ export class InMemoryCache { } -export default InMemoryCache; +module.exports = { InMemoryCache }; diff --git a/src/Adapters/Cache/InMemoryCacheAdapter.js b/src/Adapters/Cache/InMemoryCacheAdapter.js index 585e2eadde..927d654c94 100644 --- a/src/Adapters/Cache/InMemoryCacheAdapter.js +++ b/src/Adapters/Cache/InMemoryCacheAdapter.js @@ -1,6 +1,6 @@ -import {LRUCache} from './LRUCache'; +const { LRUCache } = require('./LRUCache'); -export class InMemoryCacheAdapter { +class InMemoryCacheAdapter { constructor(ctx) { this.cache = new LRUCache(ctx) @@ -30,4 +30,4 @@ export class InMemoryCacheAdapter { } } -export default InMemoryCacheAdapter; +module.exports = { InMemoryCacheAdapter }; diff --git a/src/Adapters/Cache/LRUCache.js b/src/Adapters/Cache/LRUCache.js index a580768a74..a8d32cb2c6 100644 --- a/src/Adapters/Cache/LRUCache.js +++ b/src/Adapters/Cache/LRUCache.js @@ -1,7 +1,7 @@ -import LRU from 'lru-cache'; -import defaults from '../../defaults'; +const LRU = require('lru-cache'); +const defaults = require('../../defaults'); -export class LRUCache { +class LRUCache { constructor({ ttl = defaults.cacheTTL, maxSize = defaults.cacheMaxSize, @@ -30,4 +30,4 @@ export class LRUCache { } -export default LRUCache; +module.exports = { LRUCache }; diff --git a/src/Adapters/Cache/NullCacheAdapter.js b/src/Adapters/Cache/NullCacheAdapter.js index aafd8eaa95..0402308c99 100644 --- a/src/Adapters/Cache/NullCacheAdapter.js +++ b/src/Adapters/Cache/NullCacheAdapter.js @@ -1,4 +1,4 @@ -export class NullCacheAdapter { +class NullCacheAdapter { constructor() {} @@ -21,4 +21,4 @@ export class NullCacheAdapter { } } -export default NullCacheAdapter; +module.exports = { NullCacheAdapter }; diff --git a/src/Adapters/Cache/RedisCacheAdapter.js b/src/Adapters/Cache/RedisCacheAdapter.js index a59f1c7e4e..f289aa3edb 100644 --- a/src/Adapters/Cache/RedisCacheAdapter.js +++ b/src/Adapters/Cache/RedisCacheAdapter.js @@ -1,5 +1,5 @@ -import redis from 'redis'; -import logger from '../../logger'; +const redis = require('redis'); +const logger = require('../../logger'); const DEFAULT_REDIS_TTL = 30 * 1000; // 30 seconds in milliseconds @@ -7,7 +7,7 @@ function debug() { logger.debug.apply(logger, ['RedisCacheAdapter', ...arguments]); } -export class RedisCacheAdapter { +class RedisCacheAdapter { constructor(redisCtx, ttl = DEFAULT_REDIS_TTL) { this.client = redis.createClient(redisCtx); @@ -81,4 +81,4 @@ export class RedisCacheAdapter { } } -export default RedisCacheAdapter; +module.exports = { RedisCacheAdapter }; diff --git a/src/Adapters/Email/MailAdapter.js b/src/Adapters/Email/MailAdapter.js index e11a129976..30d8ea0fb1 100644 --- a/src/Adapters/Email/MailAdapter.js +++ b/src/Adapters/Email/MailAdapter.js @@ -3,7 +3,7 @@ Mail Adapter prototype A MailAdapter should implement at least sendMail() */ -export class MailAdapter { +class MailAdapter { /* * A method for sending mail * @param options would have the parameters @@ -20,4 +20,4 @@ export class MailAdapter { // sendPasswordResetEmail({ link, appName, user }) {} } -export default MailAdapter; +module.exports = { MailAdapter }; diff --git a/src/Adapters/Files/FilesAdapter.js b/src/Adapters/Files/FilesAdapter.js index 906ac2dbbd..6e033911d5 100644 --- a/src/Adapters/Files/FilesAdapter.js +++ b/src/Adapters/Files/FilesAdapter.js @@ -15,7 +15,7 @@ import type { Config } from '../../Config' -export class FilesAdapter { +class FilesAdapter { /* Responsible for storing the file in order to be retrieved later by its filename * @@ -54,4 +54,4 @@ export class FilesAdapter { getFileLocation(config: Config, filename: string): string { } } -export default FilesAdapter; +module.exports = { FilesAdapter, adapter: FilesAdapter }; diff --git a/src/Adapters/Files/GridStoreAdapter.js b/src/Adapters/Files/GridStoreAdapter.js index 2a33b1af08..df31162949 100644 --- a/src/Adapters/Files/GridStoreAdapter.js +++ b/src/Adapters/Files/GridStoreAdapter.js @@ -7,11 +7,11 @@ */ // @flow-disable-next -import { MongoClient, GridStore, Db} from 'mongodb'; -import { FilesAdapter } from './FilesAdapter'; -import defaults from '../../defaults'; +const { MongoClient, GridStore, Db} = require('mongodb'); +const { FilesAdapter } = require('./FilesAdapter'); +const defaults = require('../../defaults'); -export class GridStoreAdapter extends FilesAdapter { +class GridStoreAdapter extends FilesAdapter { _databaseURI: string; _connectionPromise: Promise; @@ -78,4 +78,4 @@ export class GridStoreAdapter extends FilesAdapter { } } -export default GridStoreAdapter; +module.exports = { GridStoreAdapter }; diff --git a/src/Adapters/Logger/LoggerAdapter.js b/src/Adapters/Logger/LoggerAdapter.js index f8b2be5baa..a2872e2b6c 100644 --- a/src/Adapters/Logger/LoggerAdapter.js +++ b/src/Adapters/Logger/LoggerAdapter.js @@ -8,9 +8,9 @@ // * query(options, callback) /* optional */ // Default is WinstonLoggerAdapter.js -export class LoggerAdapter { +class LoggerAdapter { constructor(options) {} log(level, message, /* meta */) {} } -export default LoggerAdapter; +module.exports = { LoggerAdapter }; diff --git a/src/Adapters/Logger/WinstonLogger.js b/src/Adapters/Logger/WinstonLogger.js index 4cf75cb7ae..a44cb5275b 100644 --- a/src/Adapters/Logger/WinstonLogger.js +++ b/src/Adapters/Logger/WinstonLogger.js @@ -1,9 +1,9 @@ -import winston from 'winston'; -import fs from 'fs'; -import path from 'path'; -import DailyRotateFile from 'winston-daily-rotate-file'; -import _ from 'lodash'; -import defaults from '../../defaults'; +const winston = require('winston'); +const fs = require('fs'); +const path = require('path'); +const DailyRotateFile = require('winston-daily-rotate-file'); +const _ = require('lodash'); +const defaults = require('../../defaults'); const logger = new winston.Logger(); const additionalTransports = []; @@ -45,7 +45,7 @@ function updateTransports(options) { }); } -export function configureLogger({ +function configureLogger({ logsFolder = defaults.logsFolder, jsonLogs = defaults.jsonLogs, logLevel = winston.level, @@ -78,12 +78,12 @@ export function configureLogger({ updateTransports(options); } -export function addTransport(transport) { +function addTransport(transport) { additionalTransports.push(transport); updateTransports(); } -export function removeTransport(transport) { +function removeTransport(transport) { const transportName = typeof transport == 'string' ? transport : transport.name; const transports = Object.assign({}, logger.transports); delete transports[transportName]; @@ -95,5 +95,4 @@ export function removeTransport(transport) { }); } -export { logger }; -export default logger; +module.exports = { logger, configureLogger, addTransport, removeTransport }; diff --git a/src/Adapters/Logger/WinstonLoggerAdapter.js b/src/Adapters/Logger/WinstonLoggerAdapter.js index 70616bbd56..c626cb3607 100644 --- a/src/Adapters/Logger/WinstonLoggerAdapter.js +++ b/src/Adapters/Logger/WinstonLoggerAdapter.js @@ -1,9 +1,9 @@ -import { LoggerAdapter } from './LoggerAdapter'; -import { logger, addTransport, configureLogger } from './WinstonLogger'; +const { LoggerAdapter } = require('./LoggerAdapter'); +const { logger, addTransport, configureLogger } = require('./WinstonLogger'); const MILLISECONDS_IN_A_DAY = 24 * 60 * 60 * 1000; -export class WinstonLoggerAdapter extends LoggerAdapter { +class WinstonLoggerAdapter extends LoggerAdapter { constructor(options) { super(); if (options) { @@ -59,4 +59,4 @@ export class WinstonLoggerAdapter extends LoggerAdapter { } } -export default WinstonLoggerAdapter; +module.exports = { WinstonLoggerAdapter }; diff --git a/src/Adapters/MessageQueue/EventEmitterMQ.js b/src/Adapters/MessageQueue/EventEmitterMQ.js index e23bc83d59..7bebbca31b 100644 --- a/src/Adapters/MessageQueue/EventEmitterMQ.js +++ b/src/Adapters/MessageQueue/EventEmitterMQ.js @@ -1,4 +1,4 @@ -import events from 'events'; +const events = require('events'); const emitter = new events.EventEmitter(); const subscriptions = new Map(); diff --git a/src/Adapters/PubSub/EventEmitterPubSub.js b/src/Adapters/PubSub/EventEmitterPubSub.js index f81388192b..5d259f9e09 100644 --- a/src/Adapters/PubSub/EventEmitterPubSub.js +++ b/src/Adapters/PubSub/EventEmitterPubSub.js @@ -1,4 +1,4 @@ -import events from 'events'; +const events = require('events'); const emitter = new events.EventEmitter(); diff --git a/src/Adapters/PubSub/RedisPubSub.js b/src/Adapters/PubSub/RedisPubSub.js index 7fb62dfca2..6d995f5c48 100644 --- a/src/Adapters/PubSub/RedisPubSub.js +++ b/src/Adapters/PubSub/RedisPubSub.js @@ -1,4 +1,4 @@ -import redis from 'redis'; +const redis = require('redis'); function createPublisher({redisURL}): any { return redis.createClient(redisURL, { no_ready_check: true }); diff --git a/src/Adapters/Push/PushAdapter.js b/src/Adapters/Push/PushAdapter.js index 58e50df1e6..bacdc97ebd 100644 --- a/src/Adapters/Push/PushAdapter.js +++ b/src/Adapters/Push/PushAdapter.js @@ -11,7 +11,7 @@ // Default is ParsePushAdapter, which uses GCM for // android push and APNS for ios push. -export class PushAdapter { +class PushAdapter { send(body: any, installations: any[], pushStatus: any): ?Promise<*> {} /** @@ -23,4 +23,4 @@ export class PushAdapter { } } -export default PushAdapter; +module.exports = { PushAdapter }; diff --git a/src/Adapters/Storage/Mongo/MongoCollection.js b/src/Adapters/Storage/Mongo/MongoCollection.js index 128395121b..25afa78cff 100644 --- a/src/Adapters/Storage/Mongo/MongoCollection.js +++ b/src/Adapters/Storage/Mongo/MongoCollection.js @@ -1,7 +1,7 @@ const mongodb = require('mongodb'); const Collection = mongodb.Collection; -export default class MongoCollection { +class MongoCollection { _mongoCollection:Collection; constructor(mongoCollection:Collection) { @@ -107,3 +107,5 @@ export default class MongoCollection { return this._mongoCollection.drop(); } } + +module.exports = { MongoCollection }; diff --git a/src/Adapters/Storage/Mongo/MongoSchemaCollection.js b/src/Adapters/Storage/Mongo/MongoSchemaCollection.js index db52fd4479..cb6af6a3fd 100644 --- a/src/Adapters/Storage/Mongo/MongoSchemaCollection.js +++ b/src/Adapters/Storage/Mongo/MongoSchemaCollection.js @@ -1,5 +1,5 @@ -import MongoCollection from './MongoCollection'; -import Parse from 'parse/node'; +const MongoCollection = require('./MongoCollection'); +const Parse = require('parse/node'); function mongoFieldToParseSchemaField(type) { if (type[0] === '*') { @@ -208,4 +208,4 @@ class MongoSchemaCollection { MongoSchemaCollection._TESTmongoSchemaToParseSchema = mongoSchemaToParseSchema MongoSchemaCollection.parseFieldTypeToMongoFieldType = parseFieldTypeToMongoFieldType -export default MongoSchemaCollection +module.exports = { MongoSchemaCollection }; diff --git a/src/Adapters/Storage/Mongo/MongoStorageAdapter.js b/src/Adapters/Storage/Mongo/MongoStorageAdapter.js index 68e59f66be..a8945ed455 100644 --- a/src/Adapters/Storage/Mongo/MongoStorageAdapter.js +++ b/src/Adapters/Storage/Mongo/MongoStorageAdapter.js @@ -1,7 +1,7 @@ // @flow -import MongoCollection from './MongoCollection'; -import MongoSchemaCollection from './MongoSchemaCollection'; -import { StorageAdapter } from '../StorageAdapter'; +const { MongoCollection } = require('./MongoCollection'); +const { MongoSchemaCollection } = require('./MongoSchemaCollection'); +import { StorageAdapter } from '../StorageAdapter'; import type { SchemaType, QueryType, StorageClass, @@ -19,11 +19,11 @@ import { transformPointerString, } from './MongoTransform'; // @flow-disable-next -import Parse from 'parse/node'; +const Parse = require('parse/node'); // @flow-disable-next -import _ from 'lodash'; -import defaults from '../../../defaults'; -import logger from '../../../logger'; +const _ = require('lodash'); +const defaults = require('../../../defaults'); +const logger = require('../../../logger'); // @flow-disable-next const mongodb = require('mongodb'); @@ -99,7 +99,7 @@ const mongoSchemaFromFieldsAndClassNameAndCLP = (fields, className, classLevelPe } -export class MongoStorageAdapter implements StorageAdapter { +class MongoStorageAdapter implements StorageAdapter { // Private _uri: string; _collectionPrefix: string; @@ -829,4 +829,4 @@ export class MongoStorageAdapter implements StorageAdapter { } } -export default MongoStorageAdapter; +module.exports = { MongoStorageAdapter }; diff --git a/src/Adapters/Storage/Mongo/MongoTransform.js b/src/Adapters/Storage/Mongo/MongoTransform.js index 453bddef70..9e5b73a966 100644 --- a/src/Adapters/Storage/Mongo/MongoTransform.js +++ b/src/Adapters/Storage/Mongo/MongoTransform.js @@ -1,5 +1,5 @@ -import log from '../../../logger'; -import _ from 'lodash'; +const log = require('../../../logger'); +const _ = require('lodash'); var mongodb = require('mongodb'); var Parse = require('parse/node').Parse; diff --git a/src/Adapters/Storage/Postgres/PostgresClient.js b/src/Adapters/Storage/Postgres/PostgresClient.js index 47cafbefa7..ee5b35740e 100644 --- a/src/Adapters/Storage/Postgres/PostgresClient.js +++ b/src/Adapters/Storage/Postgres/PostgresClient.js @@ -1,7 +1,7 @@ const parser = require('./PostgresConfigParser'); -export function createClient(uri, databaseOptions) { +function createClient(uri, databaseOptions) { let dbOptions = {}; databaseOptions = databaseOptions || {}; @@ -25,3 +25,5 @@ export function createClient(uri, databaseOptions) { return { client, pgp }; } + +module.exports = { createClient }; diff --git a/src/Adapters/Storage/Postgres/PostgresStorageAdapter.js b/src/Adapters/Storage/Postgres/PostgresStorageAdapter.js index 332c178d1f..aa6161321d 100644 --- a/src/Adapters/Storage/Postgres/PostgresStorageAdapter.js +++ b/src/Adapters/Storage/Postgres/PostgresStorageAdapter.js @@ -1,10 +1,10 @@ // @flow -import { createClient } from './PostgresClient'; +const { createClient } = require('./PostgresClient'); // @flow-disable-next -import Parse from 'parse/node'; +const Parse = require('parse/node'); // @flow-disable-next -import _ from 'lodash'; -import sql from './sql'; +const _ = require('lodash'); +const sql = require('./sql'); const PostgresRelationDoesNotExistError = '42P01'; const PostgresDuplicateRelationError = '42P07'; @@ -685,7 +685,7 @@ const buildWhereClause = ({ schema, query, index }): WhereClause => { return { pattern: patterns.join(' AND '), values, sorts }; } -export class PostgresStorageAdapter implements StorageAdapter { +class PostgresStorageAdapter implements StorageAdapter { canSortOnJoinTables: boolean; @@ -2023,4 +2023,4 @@ var GeoPointCoder = { } }; -export default PostgresStorageAdapter; +module.exports = { PostgresStorageAdapter }; diff --git a/src/Config.js b/src/Config.js index d9eec85da7..daa66ab083 100644 --- a/src/Config.js +++ b/src/Config.js @@ -2,10 +2,10 @@ // configured. // mount is the URL for the root of the API; includes http, domain, etc. -import AppCache from './cache'; -import SchemaCache from './Controllers/SchemaCache'; -import DatabaseController from './Controllers/DatabaseController'; -import net from 'net'; +const { AppCache } = require('./cache'); +const { SchemaCache } = require('./Controllers/SchemaCache'); +const DatabaseController = require('./Controllers/DatabaseController'); +const net = require('net'); function removeTrailingSlash(str) { if (!str) { @@ -17,7 +17,7 @@ function removeTrailingSlash(str) { return str; } -export class Config { +class Config { static get(applicationId: string, mount: string) { const cacheInfo = AppCache.get(applicationId); if (!cacheInfo) { @@ -271,5 +271,5 @@ export class Config { } } -export default Config; +module.exports = { Config }; module.exports = Config; diff --git a/src/Controllers/AdaptableController.js b/src/Controllers/AdaptableController.js index 2638db65ca..1a3952506a 100644 --- a/src/Controllers/AdaptableController.js +++ b/src/Controllers/AdaptableController.js @@ -10,9 +10,9 @@ based on the parameters passed // _adapter is private, use Symbol var _adapter = Symbol(); -import Config from '../Config'; +const Config = require('../Config'); -export class AdaptableController { +class AdaptableController { constructor(adapter, appId, options) { this.options = options; @@ -71,4 +71,4 @@ export class AdaptableController { } } -export default AdaptableController; +module.exports = { AdaptableController }; diff --git a/src/Controllers/AnalyticsController.js b/src/Controllers/AnalyticsController.js index 74b43932d7..bcd2b9b6ff 100644 --- a/src/Controllers/AnalyticsController.js +++ b/src/Controllers/AnalyticsController.js @@ -1,7 +1,7 @@ -import AdaptableController from './AdaptableController'; -import { AnalyticsAdapter } from '../Adapters/Analytics/AnalyticsAdapter'; +const { AdaptableController } = require('./AdaptableController'); +const { AnalyticsAdapter } = require('../Adapters/Analytics/AnalyticsAdapter'); -export class AnalyticsController extends AdaptableController { +class AnalyticsController extends AdaptableController { appOpened(req) { return Promise.resolve().then(() => { return this.adapter.appOpened(req.body, req); @@ -27,4 +27,4 @@ export class AnalyticsController extends AdaptableController { } } -export default AnalyticsController; +module.exports = { AnalyticsController }; diff --git a/src/Controllers/CacheController.js b/src/Controllers/CacheController.js index 78e102e470..abddac5cea 100644 --- a/src/Controllers/CacheController.js +++ b/src/Controllers/CacheController.js @@ -1,5 +1,5 @@ -import AdaptableController from './AdaptableController'; -import CacheAdapter from '../Adapters/Cache/CacheAdapter'; +const { AdaptableController } = require('./AdaptableController'); +const { CacheAdapter } = require('../Adapters/Cache/CacheAdapter'); const KEY_SEPARATOR_CHAR = ':'; @@ -12,7 +12,7 @@ function joinKeys(...keys) { * * eg "Role" or "Session" */ -export class SubCache { +class SubCache { constructor(prefix, cacheController, ttl) { this.prefix = prefix; this.cache = cacheController; @@ -40,7 +40,7 @@ export class SubCache { } -export class CacheController extends AdaptableController { +class CacheController extends AdaptableController { constructor(adapter, appId, options = {}) { super(adapter, appId, options); @@ -73,4 +73,4 @@ export class CacheController extends AdaptableController { } } -export default CacheController; +module.exports = { CacheController }; diff --git a/src/Controllers/DatabaseController.js b/src/Controllers/DatabaseController.js index 7de82a1053..e0d62a8d86 100644 --- a/src/Controllers/DatabaseController.js +++ b/src/Controllers/DatabaseController.js @@ -2,19 +2,20 @@ // A database adapter that works with data exported from the hosted // Parse database. +import { StorageAdapter } from '../Adapters/Storage/StorageAdapter'; +import type { QueryOptions, + FullQueryOptions } from '../Adapters/Storage/StorageAdapter'; + // @flow-disable-next -import { Parse } from 'parse/node'; +const { Parse } = require('parse/node'); // @flow-disable-next -import _ from 'lodash'; +const _ = require('lodash'); // @flow-disable-next -import intersect from 'intersect'; +const intersect = require('intersect'); // @flow-disable-next -import deepcopy from 'deepcopy'; -import logger from '../logger'; -import * as SchemaController from './SchemaController'; -import { StorageAdapter } from '../Adapters/Storage/StorageAdapter'; -import type { QueryOptions, - FullQueryOptions } from '../Adapters/Storage/StorageAdapter'; +const deepcopy = require('deepcopy'); +const logger = require('../logger'); +const SchemaController = require('./SchemaController'); function addWriteACL(query, acl) { const newQuery = _.cloneDeep(query); @@ -164,7 +165,7 @@ const filterSensitiveData = (isMaster, aclGroup, className, object) => { return object; }; -import type { LoadSchemaOptions } from './types'; +const { LoadSchemaOptions } = require('./types'); // Runs an update on the database. // Returns a promise for an object with the new values for field @@ -1064,21 +1065,21 @@ class DatabaseController { const usernameUniqueness = userClassPromise .then(() => this.adapter.ensureUniqueness('_User', requiredUserFields, ['username'])) .catch(error => { - logger.warn('Unable to ensure uniqueness for usernames: ', error); + require('../logger').getLogger().warn('Unable to ensure uniqueness for usernames: ', error); throw error; }); const emailUniqueness = userClassPromise .then(() => this.adapter.ensureUniqueness('_User', requiredUserFields, ['email'])) .catch(error => { - logger.warn('Unable to ensure uniqueness for user email addresses: ', error); + logger.getLogger().warn('Unable to ensure uniqueness for user email addresses: ', error); throw error; }); const roleUniqueness = roleClassPromise .then(() => this.adapter.ensureUniqueness('_Role', requiredRoleFields, ['name'])) .catch(error => { - logger.warn('Unable to ensure uniqueness for role name: ', error); + logger.getLogger().warn('Unable to ensure uniqueness for role name: ', error); throw error; }); diff --git a/src/Controllers/FilesController.js b/src/Controllers/FilesController.js index 2ea83412db..01afbdedca 100644 --- a/src/Controllers/FilesController.js +++ b/src/Controllers/FilesController.js @@ -1,13 +1,13 @@ // FilesController.js -import { randomHexString } from '../cryptoUtils'; -import AdaptableController from './AdaptableController'; -import { FilesAdapter } from '../Adapters/Files/FilesAdapter'; -import path from 'path'; -import mime from 'mime'; +const { randomHexString } = require('../cryptoUtils'); +const { AdaptableController } = require('./AdaptableController'); +const { FilesAdapter } = require('../Adapters/Files/FilesAdapter'); +const path = require('path'); +const mime = require('mime'); const legacyFilesRegex = new RegExp("^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}-.*"); -export class FilesController extends AdaptableController { +class FilesController extends AdaptableController { getFileData(config, filename) { return this.adapter.getFileData(filename); @@ -87,4 +87,4 @@ export class FilesController extends AdaptableController { } } -export default FilesController; +module.exports = { FilesController }; diff --git a/src/Controllers/HooksController.js b/src/Controllers/HooksController.js index db87c57153..f7ceac593d 100644 --- a/src/Controllers/HooksController.js +++ b/src/Controllers/HooksController.js @@ -1,13 +1,13 @@ /** @flow weak */ -import * as triggers from "../triggers"; +const triggers = require("../triggers"); // @flow-disable-next -import * as Parse from "parse/node"; +const Parse = require("parse/node"); // @flow-disable-next -import * as request from "request"; -import { logger } from '../logger'; -import http from 'http'; -import https from 'https'; +const request = require("request"); +const { logger } = require('../logger'); +const http = require('http'); +const https = require('https'); const DefaultHooksCollectionName = "_Hooks"; const HTTPAgents = { @@ -15,7 +15,7 @@ const HTTPAgents = { https: new https.Agent({ keepAlive: true }), } -export class HooksController { +class HooksController { _applicationId:string; _webhookKey:string; database: any; @@ -230,4 +230,4 @@ function wrapToHTTPRequest(hook, key) { } } -export default HooksController; +module.exports = { HooksController }; diff --git a/src/Controllers/LiveQueryController.js b/src/Controllers/LiveQueryController.js index 7f741c359c..b41787b92c 100644 --- a/src/Controllers/LiveQueryController.js +++ b/src/Controllers/LiveQueryController.js @@ -1,6 +1,6 @@ -import { ParseCloudCodePublisher } from '../LiveQuery/ParseCloudCodePublisher'; -import { LiveQueryOptions } from '../Options'; -export class LiveQueryController { +const { ParseCloudCodePublisher } = require('../LiveQuery/ParseCloudCodePublisher'); +const { LiveQueryOptions } = require('../Options'); +class LiveQueryController { classNames: any; liveQueryPublisher: any; @@ -47,4 +47,4 @@ export class LiveQueryController { } } -export default LiveQueryController; +module.exports = { LiveQueryController }; diff --git a/src/Controllers/LoggerController.js b/src/Controllers/LoggerController.js index cc8f5318e3..4819513cdf 100644 --- a/src/Controllers/LoggerController.js +++ b/src/Controllers/LoggerController.js @@ -1,7 +1,7 @@ -import { Parse } from 'parse/node'; -import AdaptableController from './AdaptableController'; -import { LoggerAdapter } from '../Adapters/Logger/LoggerAdapter'; -import url from 'url'; +const { Parse } = require('parse/node'); +const { AdaptableController } = require('./AdaptableController'); +const { LoggerAdapter } = require('../Adapters/Logger/LoggerAdapter'); +const url = require('url'); const MILLISECONDS_IN_A_DAY = 24 * 60 * 60 * 1000; const LOG_STRING_TRUNCATE_LENGTH = 1000; @@ -26,7 +26,7 @@ const logLevels = [ 'silly', ] -export class LoggerController extends AdaptableController { +class LoggerController extends AdaptableController { constructor(adapter, appId, options = {logLevel: 'info'}) { super(adapter, appId, options); @@ -244,4 +244,4 @@ export class LoggerController extends AdaptableController { } } -export default LoggerController; +module.exports = { LoggerController }; diff --git a/src/Controllers/PushController.js b/src/Controllers/PushController.js index 416b0ea4ff..3db49a71e9 100644 --- a/src/Controllers/PushController.js +++ b/src/Controllers/PushController.js @@ -1,11 +1,11 @@ -import { Parse } from 'parse/node'; -import RestQuery from '../RestQuery'; -import RestWrite from '../RestWrite'; -import { master } from '../Auth'; -import { pushStatusHandler } from '../StatusHandler'; -import { applyDeviceTokenExists } from '../Push/utils'; +const { Parse } = require('parse/node'); +const RestQuery = require('../RestQuery'); +const RestWrite = require('../RestWrite'); +const { master } = require('../Auth'); +const { pushStatusHandler } = require('../StatusHandler'); +const { applyDeviceTokenExists } = require('../Push/utils'); -export class PushController { +class PushController { sendPush(body = {}, where = {}, config, auth, onPushStatusSaved = () => {}, now = new Date()) { if (!config.hasPushSupport) { @@ -197,4 +197,4 @@ export class PushController { } } -export default PushController; +module.exports = { PushController }; diff --git a/src/Controllers/SchemaCache.js b/src/Controllers/SchemaCache.js index 8284d16f7e..61b3008a95 100644 --- a/src/Controllers/SchemaCache.js +++ b/src/Controllers/SchemaCache.js @@ -2,10 +2,10 @@ const MAIN_SCHEMA = "__MAIN_SCHEMA"; const SCHEMA_CACHE_PREFIX = "__SCHEMA"; const ALL_KEYS = "__ALL_KEYS"; -import { randomString } from '../cryptoUtils'; -import defaults from '../defaults'; +const { randomString } = require('../cryptoUtils'); +const defaults = require('../defaults'); -export default class SchemaCache { +class SchemaCache { cache: Object; constructor(cacheController, ttl = defaults.schemaCacheTTL, singleCache = false) { @@ -83,3 +83,5 @@ export default class SchemaCache { }); } } + +module.exports = { SchemaCache }; diff --git a/src/Controllers/SchemaController.js b/src/Controllers/SchemaController.js index 7c133f269c..a39e568c1d 100644 --- a/src/Controllers/SchemaController.js +++ b/src/Controllers/SchemaController.js @@ -16,8 +16,8 @@ // TODO: hide all schema logic inside the database adapter. // @flow-disable-next const Parse = require('parse/node').Parse; -import { StorageAdapter } from '../Adapters/Storage/StorageAdapter'; -import DatabaseController from './DatabaseController'; +import { StorageAdapter } from '../Adapters/Storage/StorageAdapter'; +const DatabaseController = require('./DatabaseController'); import type { Schema, SchemaFields, @@ -372,7 +372,7 @@ const typeToString = (type: SchemaField | string): string => { // Stores the entire schema of the app in a weird hybrid format somewhere between // the mongo format and the Parse format. Soon, this will all be Parse format. -export default class SchemaController { +class SchemaController { _dbAdapter: StorageAdapter; data: any; perms: any; @@ -1094,7 +1094,7 @@ function getObjectType(obj): ?(SchemaField | string) { return 'Object'; } -export { +module.exports = { load, classNameIsValid, fieldNameIsValid, diff --git a/src/Controllers/UserController.js b/src/Controllers/UserController.js index 76a5066242..18a3844b1c 100644 --- a/src/Controllers/UserController.js +++ b/src/Controllers/UserController.js @@ -1,14 +1,14 @@ -import { randomString } from '../cryptoUtils'; -import { inflate } from '../triggers'; -import AdaptableController from './AdaptableController'; -import MailAdapter from '../Adapters/Email/MailAdapter'; -import rest from '../rest'; -import Parse from 'parse/node'; +const { randomString } = require('../cryptoUtils'); +const { inflate } = require('../triggers'); +const { AdaptableController } = require('./AdaptableController'); +const { MailAdapter } = require('../Adapters/Email/MailAdapter'); +const rest = require('../rest'); +const Parse = require('parse/node'); var RestQuery = require('../RestQuery'); var Auth = require('../Auth'); -export class UserController extends AdaptableController { +class UserController extends AdaptableController { constructor(adapter, appId, options = {}) { super(adapter, appId, options); @@ -252,4 +252,4 @@ function buildEmailLink(destination, username, token, config) { } } -export default UserController; +module.exports = { UserController }; diff --git a/src/Controllers/index.js b/src/Controllers/index.js index 6bbcc7f299..84d80ca41c 100644 --- a/src/Controllers/index.js +++ b/src/Controllers/index.js @@ -1,32 +1,32 @@ -import authDataManager from '../Adapters/Auth'; -import { ParseServerOptions } from '../Options'; -import { loadAdapter } from '../Adapters/AdapterLoader'; -import defaults from '../defaults'; -import url from 'url'; +const authDataManager = require('../Adapters/Auth'); +const { ParseServerOptions } = require('../Options'); +const { loadAdapter } = require('../Adapters/AdapterLoader'); +const defaults = require('../defaults'); +const url = require('url'); // Controllers -import { LoggerController } from './LoggerController'; -import { FilesController } from './FilesController'; -import { HooksController } from './HooksController'; -import { UserController } from './UserController'; -import { CacheController } from './CacheController'; -import { LiveQueryController } from './LiveQueryController'; -import { AnalyticsController } from './AnalyticsController'; -import { PushController } from './PushController'; -import { PushQueue } from '../Push/PushQueue'; -import { PushWorker } from '../Push/PushWorker'; -import DatabaseController from './DatabaseController'; -import SchemaCache from './SchemaCache'; +const { LoggerController } = require('./LoggerController'); +const { FilesController } = require('./FilesController'); +const { HooksController } = require('./HooksController'); +const { UserController } = require('./UserController'); +const { CacheController } = require('./CacheController'); +const { LiveQueryController } = require('./LiveQueryController'); +const { AnalyticsController } = require('./AnalyticsController'); +const { PushController } = require('./PushController'); +const { PushQueue } = require('../Push/PushQueue'); +const { PushWorker } = require('../Push/PushWorker'); +const DatabaseController = require('./DatabaseController'); +const { SchemaCache } = require('./SchemaCache'); // Adapters -import { GridStoreAdapter } from '../Adapters/Files/GridStoreAdapter'; -import { WinstonLoggerAdapter } from '../Adapters/Logger/WinstonLoggerAdapter'; -import { InMemoryCacheAdapter } from '../Adapters/Cache/InMemoryCacheAdapter'; -import { AnalyticsAdapter } from '../Adapters/Analytics/AnalyticsAdapter'; -import MongoStorageAdapter from '../Adapters/Storage/Mongo/MongoStorageAdapter'; -import PostgresStorageAdapter from '../Adapters/Storage/Postgres/PostgresStorageAdapter'; -import ParsePushAdapter from '@parse/push-adapter'; - -export function getControllers(options: ParseServerOptions) { +const { GridStoreAdapter } = require('../Adapters/Files/GridStoreAdapter'); +const { WinstonLoggerAdapter } = require('../Adapters/Logger/WinstonLoggerAdapter'); +const { InMemoryCacheAdapter } = require('../Adapters/Cache/InMemoryCacheAdapter'); +const { AnalyticsAdapter } = require('../Adapters/Analytics/AnalyticsAdapter'); +const { MongoStorageAdapter } = require('../Adapters/Storage/Mongo/MongoStorageAdapter'); +const { PostgresStorageAdapter } = require('../Adapters/Storage/Postgres/PostgresStorageAdapter'); +const { ParsePushAdapter } = require('@parse/push-adapter'); + +function getControllers(options: ParseServerOptions) { const loggerController = getLoggerController(options); const filesController = getFilesController(options); const userController = getUserController(options); @@ -61,7 +61,11 @@ export function getControllers(options: ParseServerOptions) { }; } -export function getLoggerController(options: ParseServerOptions): LoggerController { +module.exports = { + getControllers, +} + +function getLoggerController(options: ParseServerOptions): LoggerController { const { appId, jsonLogs, @@ -76,7 +80,7 @@ export function getLoggerController(options: ParseServerOptions): LoggerControll return new LoggerController(loggerControllerAdapter, appId, loggerOptions); } -export function getFilesController(options: ParseServerOptions): FilesController { +function getFilesController(options: ParseServerOptions): FilesController { const { appId, databaseURI, @@ -92,7 +96,7 @@ export function getFilesController(options: ParseServerOptions): FilesController return new FilesController(filesControllerAdapter, appId); } -export function getUserController(options: ParseServerOptions): UserController { +function getUserController(options: ParseServerOptions): UserController { const { appId, emailAdapter, @@ -102,7 +106,7 @@ export function getUserController(options: ParseServerOptions): UserController { return new UserController(emailControllerAdapter, appId, { verifyUserEmails }); } -export function getCacheController(options: ParseServerOptions): CacheController { +function getCacheController(options: ParseServerOptions): CacheController { const { appId, cacheAdapter, @@ -113,7 +117,7 @@ export function getCacheController(options: ParseServerOptions): CacheController return new CacheController(cacheControllerAdapter, appId); } -export function getAnalyticsController(options: ParseServerOptions): AnalyticsController { +function getAnalyticsController(options: ParseServerOptions): AnalyticsController { const { analyticsAdapter, } = options; @@ -121,11 +125,11 @@ export function getAnalyticsController(options: ParseServerOptions): AnalyticsCo return new AnalyticsController(analyticsControllerAdapter); } -export function getLiveQueryController(options: ParseServerOptions): LiveQueryController { +function getLiveQueryController(options: ParseServerOptions): LiveQueryController { return new LiveQueryController(options.liveQuery); } -export function getDatabaseController(options: ParseServerOptions, cacheController: CacheController): DatabaseController { +function getDatabaseController(options: ParseServerOptions, cacheController: CacheController): DatabaseController { const { databaseURI, databaseOptions, @@ -146,7 +150,7 @@ export function getDatabaseController(options: ParseServerOptions, cacheControll return new DatabaseController(databaseAdapter, new SchemaCache(cacheController, schemaCacheTTL, enableSingleSchemaCache)); } -export function getHooksController(options: ParseServerOptions, databaseController: DatabaseController): HooksController { +function getHooksController(options: ParseServerOptions, databaseController: DatabaseController): HooksController { const { appId, webhookKey, @@ -161,7 +165,7 @@ interface PushControlling { pushWorker: PushWorker } -export function getPushController(options: ParseServerOptions): PushControlling { +function getPushController(options: ParseServerOptions): PushControlling { const { scheduledPush, push, @@ -199,7 +203,7 @@ export function getPushController(options: ParseServerOptions): PushControlling } } -export function getAuthDataManager(options: ParseServerOptions) { +function getAuthDataManager(options: ParseServerOptions) { const { auth, enableAnonymousUsers @@ -207,7 +211,7 @@ export function getAuthDataManager(options: ParseServerOptions) { return authDataManager(auth, enableAnonymousUsers) } -export function getDatabaseAdapter(databaseURI, collectionPrefix, databaseOptions) { +function getDatabaseAdapter(databaseURI, collectionPrefix, databaseOptions) { let protocol; try { const parsedURI = url.parse(databaseURI); diff --git a/src/LiveQuery/Client.js b/src/LiveQuery/Client.js index 4c88635d26..ccb3a23816 100644 --- a/src/LiveQuery/Client.js +++ b/src/LiveQuery/Client.js @@ -1,6 +1,6 @@ -import logger from '../logger'; +const logger = require('../logger').logger; -import type { FlattenedObjectData } from './Subscription'; +const { FlattenedObjectData } = require('./Subscription'); export type Message = { [attr: string]: any }; const dafaultFields = ['className', 'objectId', 'updatedAt', 'createdAt', 'ACL']; @@ -100,6 +100,6 @@ class Client { } } -export { +module.exports = { Client } diff --git a/src/LiveQuery/ParseCloudCodePublisher.js b/src/LiveQuery/ParseCloudCodePublisher.js index 5b1645bbe1..c81e6880a8 100644 --- a/src/LiveQuery/ParseCloudCodePublisher.js +++ b/src/LiveQuery/ParseCloudCodePublisher.js @@ -1,6 +1,6 @@ -import { ParsePubSub } from './ParsePubSub'; -import Parse from 'parse/node'; -import logger from '../logger'; +const { ParsePubSub } = require('./ParsePubSub'); +const Parse = require('parse/node'); +const logger = require('../logger').logger; class ParseCloudCodePublisher { parsePublisher: Object; diff --git a/src/LiveQuery/ParseLiveQueryServer.js b/src/LiveQuery/ParseLiveQueryServer.js index b8b7bf3d8c..90f2a5d101 100644 --- a/src/LiveQuery/ParseLiveQueryServer.js +++ b/src/LiveQuery/ParseLiveQueryServer.js @@ -1,16 +1,16 @@ -import tv4 from 'tv4'; -import Parse from 'parse/node'; -import { Subscription } from './Subscription'; -import { Client } from './Client'; -import { ParseWebSocketServer } from './ParseWebSocketServer'; -import logger from '../logger'; -import RequestSchema from './RequestSchema'; -import { matchesQuery, queryHash } from './QueryTools'; -import { ParsePubSub } from './ParsePubSub'; -import { SessionTokenCache } from './SessionTokenCache'; -import _ from 'lodash'; -import uuid from 'uuid'; -import { runLiveQueryEventHandlers } from '../triggers'; +const tv4 = require('tv4'); +const Parse = require('parse/node'); +const { Subscription } = require('./Subscription'); +const { Client } = require('./Client'); +const { ParseWebSocketServer } = require('./ParseWebSocketServer'); +const logger = require('../logger').logger; +const RequestSchema = require('./RequestSchema'); +const { matchesQuery, queryHash } = require('./QueryTools'); +const { ParsePubSub } = require('./ParsePubSub'); +const { SessionTokenCache } = require('./SessionTokenCache'); +const _ = require('lodash'); +const uuid = require('uuid'); +const { runLiveQueryEventHandlers } = require('../triggers'); class ParseLiveQueryServer { clients: Map; @@ -573,6 +573,6 @@ class ParseLiveQueryServer { } } -export { +module.exports = { ParseLiveQueryServer } diff --git a/src/LiveQuery/ParsePubSub.js b/src/LiveQuery/ParsePubSub.js index ff321889a1..522e2e4a79 100644 --- a/src/LiveQuery/ParsePubSub.js +++ b/src/LiveQuery/ParsePubSub.js @@ -1,4 +1,4 @@ -import { loadAdapter } from '../Adapters/AdapterLoader'; +const { loadAdapter } = require('../Adapters/AdapterLoader'); import { EventEmitterPubSub } from '../Adapters/PubSub/EventEmitterPubSub'; diff --git a/src/LiveQuery/ParseWebSocketServer.js b/src/LiveQuery/ParseWebSocketServer.js index c76c36f752..2389e5cc59 100644 --- a/src/LiveQuery/ParseWebSocketServer.js +++ b/src/LiveQuery/ParseWebSocketServer.js @@ -1,4 +1,4 @@ -import logger from '../logger'; +const logger = require('../logger').logger; const typeMap = new Map([['disconnect', 'close']]); const getWS = function() { @@ -9,7 +9,7 @@ const getWS = function() { } } -export class ParseWebSocketServer { +class ParseWebSocketServer { server: Object; constructor(server: any, onConnect: Function, websocketTimeout: number = 10 * 1000) { @@ -33,7 +33,7 @@ export class ParseWebSocketServer { } } -export class ParseWebSocket { +class ParseWebSocket { ws: any; constructor(ws: any) { @@ -49,3 +49,5 @@ export class ParseWebSocket { this.ws.send(message); } } + +module.exports = { ParseWebSocketServer, ParseWebSocket }; diff --git a/src/LiveQuery/RequestSchema.js b/src/LiveQuery/RequestSchema.js index 37fec6f2d8..40950a155e 100644 --- a/src/LiveQuery/RequestSchema.js +++ b/src/LiveQuery/RequestSchema.js @@ -138,4 +138,4 @@ const RequestSchema = { 'unsubscribe': unsubscribe } -export default RequestSchema; +module.exports = { RequestSchema }; diff --git a/src/LiveQuery/SessionTokenCache.js b/src/LiveQuery/SessionTokenCache.js index a38c951c79..4668685d5c 100644 --- a/src/LiveQuery/SessionTokenCache.js +++ b/src/LiveQuery/SessionTokenCache.js @@ -1,6 +1,6 @@ -import Parse from 'parse/node'; -import LRU from 'lru-cache'; -import logger from '../logger'; +const Parse = require('parse/node'); +const LRU = require('lru-cache'); +const logger = require('../logger').logger; function userForSessionToken(sessionToken){ var q = new Parse.Query("_Session"); diff --git a/src/LiveQuery/Subscription.js b/src/LiveQuery/Subscription.js index 53d3938748..94e0767e59 100644 --- a/src/LiveQuery/Subscription.js +++ b/src/LiveQuery/Subscription.js @@ -1,4 +1,4 @@ -import logger from '../logger'; +const logger = require('../logger'); export type FlattenedObjectData = { [attr: string]: any }; export type QueryData = { [attr: string]: any }; @@ -28,13 +28,13 @@ class Subscription { deleteClientSubscription(clientId: number, requestId: number): void { const requestIds = this.clientRequestIds.get(clientId); if (typeof requestIds === 'undefined') { - logger.error('Can not find client %d to delete', clientId); + logger.logger.error('Can not find client %d to delete', clientId); return; } const index = requestIds.indexOf(requestId); if (index < 0) { - logger.error('Can not find client %d subscription %d to delete', clientId, requestId); + logger.logger.error('Can not find client %d subscription %d to delete', clientId, requestId); return; } requestIds.splice(index, 1); @@ -49,6 +49,6 @@ class Subscription { } } -export { +module.exports = { Subscription } diff --git a/src/ParseMessageQueue.js b/src/ParseMessageQueue.js index 7195642400..389216aad9 100644 --- a/src/ParseMessageQueue.js +++ b/src/ParseMessageQueue.js @@ -1,4 +1,4 @@ -import { loadAdapter } from './Adapters/AdapterLoader'; +const { loadAdapter } = require('./Adapters/AdapterLoader'); import { EventEmitterMQ } from './Adapters/MessageQueue/EventEmitterMQ'; diff --git a/src/ParseServer.js b/src/ParseServer.js index 76631ea3d9..cdf934310d 100644 --- a/src/ParseServer.js +++ b/src/ParseServer.js @@ -9,35 +9,35 @@ var batch = require('./batch'), import { ParseServerOptions, LiveQueryServerOptions } from './Options'; -import defaults from './defaults'; -import * as logging from './logger'; -import Config from './Config'; -import PromiseRouter from './PromiseRouter'; -import requiredParameter from './requiredParameter'; -import { AnalyticsRouter } from './Routers/AnalyticsRouter'; -import { ClassesRouter } from './Routers/ClassesRouter'; -import { FeaturesRouter } from './Routers/FeaturesRouter'; -import { FilesRouter } from './Routers/FilesRouter'; -import { FunctionsRouter } from './Routers/FunctionsRouter'; -import { GlobalConfigRouter } from './Routers/GlobalConfigRouter'; -import { HooksRouter } from './Routers/HooksRouter'; -import { IAPValidationRouter } from './Routers/IAPValidationRouter'; -import { InstallationsRouter } from './Routers/InstallationsRouter'; -import { LogsRouter } from './Routers/LogsRouter'; -import { ParseLiveQueryServer } from './LiveQuery/ParseLiveQueryServer'; -import { PublicAPIRouter } from './Routers/PublicAPIRouter'; -import { PushRouter } from './Routers/PushRouter'; -import { CloudCodeRouter } from './Routers/CloudCodeRouter'; -import { RolesRouter } from './Routers/RolesRouter'; -import { SchemasRouter } from './Routers/SchemasRouter'; -import { SessionsRouter } from './Routers/SessionsRouter'; -import { UsersRouter } from './Routers/UsersRouter'; -import { PurgeRouter } from './Routers/PurgeRouter'; -import { AudiencesRouter } from './Routers/AudiencesRouter'; -import { AggregateRouter } from './Routers/AggregateRouter'; - -import { ParseServerRESTController } from './ParseServerRESTController'; -import * as controllers from './Controllers'; +const defaults = require('./defaults'); +const logging = require('./logger'); +const Config = require('./Config'); +const { PromiseRouter } = require('./PromiseRouter'); +const requiredParameter = require('./requiredParameter'); +const { AnalyticsRouter } = require('./Routers/AnalyticsRouter'); +const { ClassesRouter } = require('./Routers/ClassesRouter'); +const { FeaturesRouter } = require('./Routers/FeaturesRouter'); +const { FilesRouter } = require('./Routers/FilesRouter'); +const { FunctionsRouter } = require('./Routers/FunctionsRouter'); +const { GlobalConfigRouter } = require('./Routers/GlobalConfigRouter'); +const { HooksRouter } = require('./Routers/HooksRouter'); +const { IAPValidationRouter } = require('./Routers/IAPValidationRouter'); +const { InstallationsRouter } = require('./Routers/InstallationsRouter'); +const { LogsRouter } = require('./Routers/LogsRouter'); +const { ParseLiveQueryServer } = require('./LiveQuery/ParseLiveQueryServer'); +const { PublicAPIRouter } = require('./Routers/PublicAPIRouter'); +const { PushRouter } = require('./Routers/PushRouter'); +const { CloudCodeRouter } = require('./Routers/CloudCodeRouter'); +const { RolesRouter } = require('./Routers/RolesRouter'); +const { SchemasRouter } = require('./Routers/SchemasRouter'); +const { SessionsRouter } = require('./Routers/SessionsRouter'); +const { UsersRouter } = require('./Routers/UsersRouter'); +const { PurgeRouter } = require('./Routers/PurgeRouter'); +const { AudiencesRouter } = require('./Routers/AudiencesRouter'); +const { AggregateRouter } = require('./Routers/AggregateRouter'); + +const { ParseServerRESTController } = require('./ParseServerRESTController'); +const controllers = require('./Controllers'); // Mutate the Parse object to add the Cloud Code handlers addParseCloud(); @@ -343,4 +343,4 @@ function configureListeners(parseServer) { process.on('SIGINT', handleShutdown); } -export default ParseServer; +module.exports = { ParseServer }; diff --git a/src/ParseServerRESTController.js b/src/ParseServerRESTController.js index 63e8d0a41f..086e9a8013 100644 --- a/src/ParseServerRESTController.js +++ b/src/ParseServerRESTController.js @@ -96,5 +96,5 @@ function ParseServerRESTController(applicationId, router) { }; } -export default ParseServerRESTController; +module.exports = { ParseServerRESTController }; export { ParseServerRESTController }; diff --git a/src/PromiseRouter.js b/src/PromiseRouter.js index e57b577ff3..d4dbc3bca3 100644 --- a/src/PromiseRouter.js +++ b/src/PromiseRouter.js @@ -5,10 +5,10 @@ // themselves use our routing information, without disturbing express // components that external developers may be modifying. -import Parse from 'parse/node'; -import express from 'express'; -import log from './logger'; -import {inspect} from 'util'; +const Parse = require('parse/node'); +const express = require('express'); +const log = require('./logger').logger; +const {inspect} = require('util'); const Layer = require('express/lib/router/layer'); function validateParameter(key, value) { @@ -26,7 +26,7 @@ function validateParameter(key, value) { } -export default class PromiseRouter { +class PromiseRouter { // Each entry should be an object with: // path: the path to route, in express format // method: the HTTP method that this route handles. @@ -202,3 +202,5 @@ function maskSensitiveUrl(req) { } return maskUrl; } + +module.exports = { PromiseRouter }; diff --git a/src/Push/PushQueue.js b/src/Push/PushQueue.js index 33c84994bd..22e225b60e 100644 --- a/src/Push/PushQueue.js +++ b/src/Push/PushQueue.js @@ -1,12 +1,12 @@ -import { ParseMessageQueue } from '../ParseMessageQueue'; -import rest from '../rest'; -import { applyDeviceTokenExists } from './utils'; -import Parse from 'parse/node'; +const { ParseMessageQueue } = require('../ParseMessageQueue'); +const rest = require('../rest'); +const { applyDeviceTokenExists } = require('./utils'); +const Parse = require('parse/node'); const PUSH_CHANNEL = 'parse-server-push'; const DEFAULT_BATCH_SIZE = 100; -export class PushQueue { +class PushQueue { parsePublisher: Object; channel: String; batchSize: Number; @@ -60,3 +60,5 @@ export class PushQueue { }); } } + +module.exports = { PushQueue }; diff --git a/src/Push/PushWorker.js b/src/Push/PushWorker.js index 92729ec45a..304c99b92b 100644 --- a/src/Push/PushWorker.js +++ b/src/Push/PushWorker.js @@ -1,16 +1,16 @@ // @flow // @flow-disable-next -import deepcopy from 'deepcopy'; -import AdaptableController from '../Controllers/AdaptableController'; -import { master } from '../Auth'; -import Config from '../Config'; -import { PushAdapter } from '../Adapters/Push/PushAdapter'; -import rest from '../rest'; -import { pushStatusHandler } from '../StatusHandler'; -import * as utils from './utils'; -import { ParseMessageQueue } from '../ParseMessageQueue'; -import { PushQueue } from './PushQueue'; -import logger from '../logger'; +const deepcopy = require('deepcopy'); +const { AdaptableController } = require('../Controllers/AdaptableController'); +const { master } = require('../Auth'); +const Config = require('../Config'); +const { PushAdapter } = require('../Adapters/Push/PushAdapter'); +const rest = require('../rest'); +const { pushStatusHandler } = require('../StatusHandler'); +const utils = require('./utils'); +const { ParseMessageQueue } = require('../ParseMessageQueue'); +const { PushQueue } = require('./PushQueue'); +const logger = require('../logger').logger; function groupByBadge(installations) { return installations.reduce((map, installation) => { @@ -21,7 +21,7 @@ function groupByBadge(installations) { }, {}); } -export class PushWorker { +class PushWorker { subscriber: ?any; adapter: any; channel: string; @@ -102,4 +102,4 @@ export class PushWorker { } } -export default PushWorker; +module.exports = { PushWorker }; diff --git a/src/Push/utils.js b/src/Push/utils.js index ed33a66a14..6e6031844c 100644 --- a/src/Push/utils.js +++ b/src/Push/utils.js @@ -1,7 +1,7 @@ -import Parse from 'parse/node'; -import deepcopy from 'deepcopy'; +const Parse = require('parse/node'); +const deepcopy = require('deepcopy'); -export function isPushIncrementing(body) { +function isPushIncrementing(body) { return body.data && body.data.badge && typeof body.data.badge == 'string' && @@ -10,7 +10,7 @@ export function isPushIncrementing(body) { const localizableKeys = ['alert', 'title']; -export function getLocalesFromPush(body) { +function getLocalesFromPush(body) { const data = body.data; if (!data) { return []; @@ -25,7 +25,7 @@ export function getLocalesFromPush(body) { }, []))]; } -export function transformPushBodyForLocale(body, locale) { +function transformPushBodyForLocale(body, locale) { const data = body.data; if (!data) { return body; @@ -40,7 +40,7 @@ export function transformPushBodyForLocale(body, locale) { return stripLocalesFromBody(body); } -export function stripLocalesFromBody(body) { +function stripLocalesFromBody(body) { if (!body.data) { return body; } Object.keys(body.data).forEach((key) => { localizableKeys.forEach((localizableKey) => { @@ -52,7 +52,7 @@ export function stripLocalesFromBody(body) { return body; } -export function bodiesPerLocales(body, locales = []) { +function bodiesPerLocales(body, locales = []) { // Get all tranformed bodies for each locale const result = locales.reduce((memo, locale) => { memo[locale] = transformPushBodyForLocale(body, locale); @@ -63,7 +63,7 @@ export function bodiesPerLocales(body, locales = []) { return result; } -export function groupByLocaleIdentifier(installations, locales = []) { +function groupByLocaleIdentifier(installations, locales = []) { return installations.reduce((map, installation) => { let added = false; locales.forEach((locale) => { @@ -88,7 +88,7 @@ export function groupByLocaleIdentifier(installations, locales = []) { * @param {Object} where A query condition * @param {Array} validPushTypes An array of valid push types(string) */ -export function validatePushType(where = {}, validPushTypes = []) { +function validatePushType(where = {}, validPushTypes = []) { var deviceTypeField = where.deviceType || {}; var deviceTypes = []; if (typeof deviceTypeField === 'string') { @@ -105,10 +105,21 @@ export function validatePushType(where = {}, validPushTypes = []) { } } -export function applyDeviceTokenExists(where) { +function applyDeviceTokenExists(where) { where = deepcopy(where); if (!where.hasOwnProperty('deviceToken')) { where['deviceToken'] = {'$exists': true}; } return where; } + +module.exports = { + isPushIncrementing, + getLocalesFromPush, + bodiesPerLocales, + groupByLocaleIdentifier, + stripLocalesFromBody, + validatePushType, + applyDeviceTokenExists, + transformPushBodyForLocale, +} diff --git a/src/RestWrite.js b/src/RestWrite.js index 0e246c3f30..1d8673f993 100644 --- a/src/RestWrite.js +++ b/src/RestWrite.js @@ -11,9 +11,9 @@ var passwordCrypto = require('./password'); var Parse = require('parse/node'); var triggers = require('./triggers'); var ClientSDK = require('./ClientSDK'); -import RestQuery from './RestQuery'; -import _ from 'lodash'; -import logger from './logger'; +const RestQuery = require('./RestQuery'); +const _ = require('lodash'); +const { logger } = require('./logger'); // query and data are both provided in REST API format. So data // types are encoded by plain old objects. @@ -1225,5 +1225,5 @@ RestWrite.prototype._updateResponseWithData = function(response, data) { return response; } -export default RestWrite; +module.exports = { RestWrite }; module.exports = RestWrite; diff --git a/src/Routers/AggregateRouter.js b/src/Routers/AggregateRouter.js index c99436f380..68b2fe96c1 100644 --- a/src/Routers/AggregateRouter.js +++ b/src/Routers/AggregateRouter.js @@ -1,8 +1,8 @@ -import ClassesRouter from './ClassesRouter'; -import rest from '../rest'; -import * as middleware from '../middlewares'; -import Parse from 'parse/node'; -import UsersRouter from './UsersRouter'; +const { ClassesRouter } = require('./ClassesRouter'); +const rest = require('../rest'); +const middleware = require('../middlewares'); +const Parse = require('parse/node'); +const { UsersRouter } = require('./UsersRouter'); const BASE_KEYS = ['where', 'distinct']; @@ -36,7 +36,7 @@ const PIPELINE_KEYS = [ const ALLOWED_KEYS = [...BASE_KEYS, ...PIPELINE_KEYS]; -export class AggregateRouter extends ClassesRouter { +class AggregateRouter extends ClassesRouter { handleFind(req) { const body = Object.assign(req.body, ClassesRouter.JSONFromQuery(req.query)); @@ -103,4 +103,4 @@ export class AggregateRouter extends ClassesRouter { } } -export default AggregateRouter; +module.exports = { AggregateRouter }; diff --git a/src/Routers/AnalyticsRouter.js b/src/Routers/AnalyticsRouter.js index 511781d807..e1a91ce641 100644 --- a/src/Routers/AnalyticsRouter.js +++ b/src/Routers/AnalyticsRouter.js @@ -1,5 +1,5 @@ // AnalyticsRouter.js -import PromiseRouter from '../PromiseRouter'; +const { PromiseRouter } = require('../PromiseRouter'); function appOpened(req) { const analyticsController = req.config.analyticsController; @@ -12,9 +12,11 @@ function trackEvent(req) { } -export class AnalyticsRouter extends PromiseRouter { +class AnalyticsRouter extends PromiseRouter { mountRoutes() { this.route('POST','/events/AppOpened', appOpened); this.route('POST','/events/:eventName', trackEvent); } } + +module.exports = { AnalyticsRouter }; diff --git a/src/Routers/AudiencesRouter.js b/src/Routers/AudiencesRouter.js index 3dbb94cf85..b08c885ee0 100644 --- a/src/Routers/AudiencesRouter.js +++ b/src/Routers/AudiencesRouter.js @@ -1,8 +1,8 @@ -import ClassesRouter from './ClassesRouter'; -import rest from '../rest'; -import * as middleware from '../middlewares'; +const { ClassesRouter } = require('./ClassesRouter'); +const rest = require('../rest'); +const middleware = require('../middlewares'); -export class AudiencesRouter extends ClassesRouter { +class AudiencesRouter extends ClassesRouter { className() { return '_Audience'; @@ -41,4 +41,4 @@ export class AudiencesRouter extends ClassesRouter { } } -export default AudiencesRouter; +module.exports = { AudiencesRouter }; diff --git a/src/Routers/ClassesRouter.js b/src/Routers/ClassesRouter.js index e7205015b8..437dfcedc3 100644 --- a/src/Routers/ClassesRouter.js +++ b/src/Routers/ClassesRouter.js @@ -1,12 +1,12 @@ -import PromiseRouter from '../PromiseRouter'; -import rest from '../rest'; -import _ from 'lodash'; -import Parse from 'parse/node'; +const { PromiseRouter } = require('../PromiseRouter'); +const rest = require('../rest'); +const _ = require('lodash'); +const Parse = require('parse/node'); const ALLOWED_GET_QUERY_KEYS = ['keys', 'include']; -export class ClassesRouter extends PromiseRouter { +class ClassesRouter extends PromiseRouter { className(req) { return req.params.className; @@ -143,4 +143,4 @@ export class ClassesRouter extends PromiseRouter { } } -export default ClassesRouter; +module.exports = { ClassesRouter }; diff --git a/src/Routers/CloudCodeRouter.js b/src/Routers/CloudCodeRouter.js index d1ca9009e6..28b09b8b7f 100644 --- a/src/Routers/CloudCodeRouter.js +++ b/src/Routers/CloudCodeRouter.js @@ -1,6 +1,6 @@ -import PromiseRouter from '../PromiseRouter'; -import Parse from 'parse/node'; -import rest from '../rest'; +const { PromiseRouter } = require('../PromiseRouter'); +const Parse = require('parse/node'); +const rest = require('../rest'); const triggers = require('../triggers'); const middleware = require('../middlewares'); @@ -18,7 +18,7 @@ function validateJobSchedule(config, job_schedule) { } } -export class CloudCodeRouter extends PromiseRouter { +class CloudCodeRouter extends PromiseRouter { mountRoutes() { this.route('GET', '/cloud_code/jobs', middleware.promiseEnforceMasterKeyAccess, CloudCodeRouter.getJobs); this.route('GET', '/cloud_code/jobs/data', middleware.promiseEnforceMasterKeyAccess, CloudCodeRouter.getJobsData); @@ -74,3 +74,5 @@ export class CloudCodeRouter extends PromiseRouter { }); } } + +module.exports = { CloudCodeRouter }; diff --git a/src/Routers/FeaturesRouter.js b/src/Routers/FeaturesRouter.js index 47d1a0980c..a406d40ca0 100644 --- a/src/Routers/FeaturesRouter.js +++ b/src/Routers/FeaturesRouter.js @@ -1,8 +1,8 @@ -import { version } from '../../package.json'; -import PromiseRouter from '../PromiseRouter'; -import * as middleware from "../middlewares"; +const { version } = require('../../package.json'); +const { PromiseRouter } = require('../PromiseRouter'); +const middleware = require("../middlewares"); -export class FeaturesRouter extends PromiseRouter { +class FeaturesRouter extends PromiseRouter { mountRoutes() { this.route('GET','/serverInfo', middleware.promiseEnforceMasterKeyAccess, req => { const features = { @@ -54,3 +54,5 @@ export class FeaturesRouter extends PromiseRouter { }); } } + +module.exports = { FeaturesRouter }; diff --git a/src/Routers/FilesRouter.js b/src/Routers/FilesRouter.js index 8312526f30..a9836698a5 100644 --- a/src/Routers/FilesRouter.js +++ b/src/Routers/FilesRouter.js @@ -1,12 +1,12 @@ -import express from 'express'; -import BodyParser from 'body-parser'; -import * as Middlewares from '../middlewares'; -import Parse from 'parse/node'; -import Config from '../Config'; -import mime from 'mime'; -import logger from '../logger'; +const express = require('express'); +const BodyParser = require('body-parser'); +const Middlewares = require('../middlewares'); +const Parse = require('parse/node'); +const Config = require('../Config'); +const mime = require('mime'); +const logger = require('../logger').logger; -export class FilesRouter { +class FilesRouter { expressRouter({ maxUploadSize = '20Mb' } = {}) { var router = express.Router(); @@ -183,3 +183,5 @@ function handleFileStream(stream, req, res, contentType) { }); }); } + +module.exports = { FilesRouter }; diff --git a/src/Routers/FunctionsRouter.js b/src/Routers/FunctionsRouter.js index 1bb077acd7..32ed58a9a3 100644 --- a/src/Routers/FunctionsRouter.js +++ b/src/Routers/FunctionsRouter.js @@ -3,11 +3,11 @@ var Parse = require('parse/node').Parse, triggers = require('../triggers'); -import PromiseRouter from '../PromiseRouter'; -import { promiseEnforceMasterKeyAccess } from '../middlewares'; -import { jobStatusHandler } from '../StatusHandler'; -import _ from 'lodash'; -import { logger } from '../logger'; +const { PromiseRouter } = require('../PromiseRouter'); +const { promiseEnforceMasterKeyAccess } = require('../middlewares'); +const { jobStatusHandler } = require('../StatusHandler'); +const _ = require('lodash'); +const { logger } = require('../logger'); function parseObject(obj) { if (Array.isArray(obj)) { @@ -29,7 +29,7 @@ function parseParams(params) { return _.mapValues(params, parseObject); } -export class FunctionsRouter extends PromiseRouter { +class FunctionsRouter extends PromiseRouter { mountRoutes() { this.route('POST', '/functions/:functionName', FunctionsRouter.handleCloudFunction); @@ -172,3 +172,5 @@ export class FunctionsRouter extends PromiseRouter { } } } + +module.exports = { FunctionsRouter }; diff --git a/src/Routers/GlobalConfigRouter.js b/src/Routers/GlobalConfigRouter.js index 42ba581938..6c5e83d733 100644 --- a/src/Routers/GlobalConfigRouter.js +++ b/src/Routers/GlobalConfigRouter.js @@ -1,9 +1,9 @@ // global_config.js -import Parse from 'parse/node'; -import PromiseRouter from '../PromiseRouter'; -import * as middleware from "../middlewares"; +const Parse = require('parse/node'); +const { PromiseRouter } = require('../PromiseRouter'); +const middleware = require("../middlewares"); -export class GlobalConfigRouter extends PromiseRouter { +class GlobalConfigRouter extends PromiseRouter { getGlobalConfig(req) { return req.config.database.find('_GlobalConfig', { objectId: "1" }, { limit: 1 }).then((results) => { if (results.length != 1) { @@ -34,4 +34,4 @@ export class GlobalConfigRouter extends PromiseRouter { } } -export default GlobalConfigRouter; +module.exports = { GlobalConfigRouter }; diff --git a/src/Routers/HooksRouter.js b/src/Routers/HooksRouter.js index 6c299c82ca..73bb42b0ca 100644 --- a/src/Routers/HooksRouter.js +++ b/src/Routers/HooksRouter.js @@ -1,8 +1,8 @@ -import { Parse } from 'parse/node'; -import PromiseRouter from '../PromiseRouter'; -import * as middleware from "../middlewares"; +const { Parse } = require('parse/node'); +const { PromiseRouter } = require('../PromiseRouter'); +const middleware = require("../middlewares"); -export class HooksRouter extends PromiseRouter { +class HooksRouter extends PromiseRouter { createHook(aHook, config) { return config.hooksController.createHook(aHook).then((hook) => ({response: hook})); } @@ -97,4 +97,4 @@ export class HooksRouter extends PromiseRouter { } } -export default HooksRouter; +module.exports = { HooksRouter }; diff --git a/src/Routers/IAPValidationRouter.js b/src/Routers/IAPValidationRouter.js index 565b87079b..29967654b1 100644 --- a/src/Routers/IAPValidationRouter.js +++ b/src/Routers/IAPValidationRouter.js @@ -1,7 +1,7 @@ -import PromiseRouter from '../PromiseRouter'; +const { PromiseRouter } = require('../PromiseRouter'); var request = require("request"); var rest = require("../rest"); -import Parse from 'parse/node'; +const Parse = require('parse/node'); // TODO move validation logic in IAPValidationController const IAP_SANDBOX_URL = "https://sandbox.itunes.apple.com/verifyReceipt"; @@ -56,7 +56,7 @@ function getFileForProductIdentifier(productIdentifier, req) { } -export class IAPValidationRouter extends PromiseRouter { +class IAPValidationRouter extends PromiseRouter { handleRequest(req) { let receipt = req.body.receipt; @@ -109,3 +109,5 @@ export class IAPValidationRouter extends PromiseRouter { this.route("POST","/validate_purchase", this.handleRequest); } } + +module.exports = { IAPValidationRouter }; diff --git a/src/Routers/InstallationsRouter.js b/src/Routers/InstallationsRouter.js index 90ab113eb6..1dbcbb4b3e 100644 --- a/src/Routers/InstallationsRouter.js +++ b/src/Routers/InstallationsRouter.js @@ -1,9 +1,9 @@ // InstallationsRouter.js -import ClassesRouter from './ClassesRouter'; -import rest from '../rest'; +const { ClassesRouter } = require('./ClassesRouter'); +const rest = require('../rest'); -export class InstallationsRouter extends ClassesRouter { +class InstallationsRouter extends ClassesRouter { className() { return '_Installation'; } @@ -27,4 +27,4 @@ export class InstallationsRouter extends ClassesRouter { } } -export default InstallationsRouter; +module.exports = { InstallationsRouter }; diff --git a/src/Routers/LogsRouter.js b/src/Routers/LogsRouter.js index 5848aa4738..a5d8ac03cd 100644 --- a/src/Routers/LogsRouter.js +++ b/src/Routers/LogsRouter.js @@ -1,8 +1,8 @@ -import { Parse } from 'parse/node'; -import PromiseRouter from '../PromiseRouter'; -import * as middleware from "../middlewares"; +const { Parse } = require('parse/node'); +const { PromiseRouter } = require('../PromiseRouter'); +const middleware = require("../middlewares"); -export class LogsRouter extends PromiseRouter { +class LogsRouter extends PromiseRouter { mountRoutes() { this.route('GET','/scriptlog', middleware.promiseEnforceMasterKeyAccess, this.validateRequest, (req) => { @@ -51,4 +51,4 @@ export class LogsRouter extends PromiseRouter { } } -export default LogsRouter; +module.exports = { LogsRouter }; diff --git a/src/Routers/PublicAPIRouter.js b/src/Routers/PublicAPIRouter.js index a126423cb0..3fa43750fa 100644 --- a/src/Routers/PublicAPIRouter.js +++ b/src/Routers/PublicAPIRouter.js @@ -1,14 +1,14 @@ -import PromiseRouter from '../PromiseRouter'; -import Config from '../Config'; -import express from 'express'; -import path from 'path'; -import fs from 'fs'; -import qs from 'querystring'; +const { PromiseRouter } = require('../PromiseRouter'); +const Config = require('../Config'); +const express = require('express'); +const path = require('path'); +const fs = require('fs'); +const qs = require('querystring'); const public_html = path.resolve(__dirname, "../../public_html"); const views = path.resolve(__dirname, '../../views'); -export class PublicAPIRouter extends PromiseRouter { +class PublicAPIRouter extends PromiseRouter { verifyEmail(req) { const { token, username } = req.query; @@ -233,4 +233,4 @@ export class PublicAPIRouter extends PromiseRouter { } } -export default PublicAPIRouter; +module.exports = { PublicAPIRouter }; diff --git a/src/Routers/PurgeRouter.js b/src/Routers/PurgeRouter.js index b9009453c6..110929bf6f 100644 --- a/src/Routers/PurgeRouter.js +++ b/src/Routers/PurgeRouter.js @@ -1,8 +1,8 @@ -import PromiseRouter from '../PromiseRouter'; -import * as middleware from '../middlewares'; -import Parse from 'parse/node'; +const { PromiseRouter } = require('../PromiseRouter'); +const middleware = require('../middlewares'); +const Parse = require('parse/node'); -export class PurgeRouter extends PromiseRouter { +class PurgeRouter extends PromiseRouter { handlePurge(req) { if (req.auth.isReadOnly) { @@ -30,4 +30,4 @@ export class PurgeRouter extends PromiseRouter { } } -export default PurgeRouter; +module.exports = { PurgeRouter }; diff --git a/src/Routers/PushRouter.js b/src/Routers/PushRouter.js index 14def667e6..4b68a7d60c 100644 --- a/src/Routers/PushRouter.js +++ b/src/Routers/PushRouter.js @@ -1,8 +1,8 @@ -import PromiseRouter from '../PromiseRouter'; -import * as middleware from "../middlewares"; -import { Parse } from "parse/node"; +const { PromiseRouter } = require('../PromiseRouter'); +const middleware = require("../middlewares"); +const { Parse } = require("parse/node"); -export class PushRouter extends PromiseRouter { +class PushRouter extends PromiseRouter { mountRoutes() { this.route("POST", "/push", middleware.promiseEnforceMasterKeyAccess, PushRouter.handlePOST); @@ -68,4 +68,4 @@ export class PushRouter extends PromiseRouter { } } -export default PushRouter; +module.exports = { PushRouter }; diff --git a/src/Routers/RolesRouter.js b/src/Routers/RolesRouter.js index 67fea13817..6f3d8a2077 100644 --- a/src/Routers/RolesRouter.js +++ b/src/Routers/RolesRouter.js @@ -1,7 +1,7 @@ -import ClassesRouter from './ClassesRouter'; +const { ClassesRouter } = require('./ClassesRouter'); -export class RolesRouter extends ClassesRouter { +class RolesRouter extends ClassesRouter { className() { return '_Role'; } @@ -15,4 +15,4 @@ export class RolesRouter extends ClassesRouter { } } -export default RolesRouter; +module.exports = { RolesRouter }; diff --git a/src/Routers/SchemasRouter.js b/src/Routers/SchemasRouter.js index f21c14c217..b349ec2d19 100644 --- a/src/Routers/SchemasRouter.js +++ b/src/Routers/SchemasRouter.js @@ -3,8 +3,8 @@ var Parse = require('parse/node').Parse, SchemaController = require('../Controllers/SchemaController'); -import PromiseRouter from '../PromiseRouter'; -import * as middleware from "../middlewares"; +const { PromiseRouter } = require('../PromiseRouter'); +const middleware = require("../middlewares"); function classNameMismatchResponse(bodyClass, pathClass) { throw new Parse.Error( @@ -80,7 +80,7 @@ const deleteSchema = req => { .then(() => ({ response: {} })); } -export class SchemasRouter extends PromiseRouter { +class SchemasRouter extends PromiseRouter { mountRoutes() { this.route('GET', '/schemas', middleware.promiseEnforceMasterKeyAccess, getAllSchemas); this.route('GET', '/schemas/:className', middleware.promiseEnforceMasterKeyAccess, getOneSchema); @@ -90,3 +90,5 @@ export class SchemasRouter extends PromiseRouter { this.route('DELETE', '/schemas/:className', middleware.promiseEnforceMasterKeyAccess, deleteSchema); } } + +module.exports = { SchemasRouter }; diff --git a/src/Routers/SessionsRouter.js b/src/Routers/SessionsRouter.js index 52b9ba6f5a..8b2bc474a3 100644 --- a/src/Routers/SessionsRouter.js +++ b/src/Routers/SessionsRouter.js @@ -1,10 +1,10 @@ -import ClassesRouter from './ClassesRouter'; -import Parse from 'parse/node'; -import rest from '../rest'; -import Auth from '../Auth'; +const { ClassesRouter } = require('./ClassesRouter'); +const Parse = require('parse/node'); +const rest = require('../rest'); +const Auth = require('../Auth'); -export class SessionsRouter extends ClassesRouter { +class SessionsRouter extends ClassesRouter { className() { return '_Session'; @@ -70,4 +70,4 @@ export class SessionsRouter extends ClassesRouter { } } -export default SessionsRouter; +module.exports = { SessionsRouter }; diff --git a/src/Routers/UsersRouter.js b/src/Routers/UsersRouter.js index 3c8690ea50..22ee6e4623 100644 --- a/src/Routers/UsersRouter.js +++ b/src/Routers/UsersRouter.js @@ -1,14 +1,14 @@ // These methods handle the User-related routes. -import Parse from 'parse/node'; -import Config from '../Config'; -import AccountLockout from '../AccountLockout'; -import ClassesRouter from './ClassesRouter'; -import rest from '../rest'; -import Auth from '../Auth'; -import passwordCrypto from '../password'; +const Parse = require('parse/node'); +const Config = require('../Config'); +const { AccountLockout } = require('../AccountLockout'); +const { ClassesRouter } = require('./ClassesRouter'); +const rest = require('../rest'); +const Auth = require('../Auth'); +const passwordCrypto = require('../password'); -export class UsersRouter extends ClassesRouter { +class UsersRouter extends ClassesRouter { className() { return '_User'; @@ -330,4 +330,4 @@ export class UsersRouter extends ClassesRouter { } } -export default UsersRouter; +module.exports = { UsersRouter }; diff --git a/src/StatusHandler.js b/src/StatusHandler.js index 601fbfe53f..b76a89f78f 100644 --- a/src/StatusHandler.js +++ b/src/StatusHandler.js @@ -1,11 +1,17 @@ -import { md5Hash, newObjectId } from './cryptoUtils'; -import { logger } from './logger'; -import rest from './rest'; -import Auth from './Auth'; +const { md5Hash, newObjectId } = require('./cryptoUtils'); +const { logger } = require('./logger'); +const rest = require('./rest'); +const Auth = require('./Auth'); const PUSH_STATUS_COLLECTION = '_PushStatus'; const JOB_STATUS_COLLECTION = '_JobStatus'; +module.exports = { + jobStatusHandler, + pushStatusHandler, + flatten, +}; + const incrementOp = function(object = {}, key, amount = 1) { if (!object[key]) { object[key] = {__op: 'Increment', amount: amount} @@ -15,7 +21,7 @@ const incrementOp = function(object = {}, key, amount = 1) { return object[key]; } -export function flatten(array) { +function flatten(array) { var flattened = []; for(var i = 0; i < array.length; i++) { if(Array.isArray(array[i])) { @@ -84,7 +90,7 @@ function restStatusHandler(className, config) { }) } -export function jobStatusHandler(config) { +function jobStatusHandler(config) { let jobStatus; const objectId = newObjectId(config.objectIdSize); const database = config.database; @@ -137,7 +143,7 @@ export function jobStatusHandler(config) { }); } -export function pushStatusHandler(config, existingObjectId) { +function pushStatusHandler(config, existingObjectId) { let pushStatus; const database = config.database; diff --git a/src/TestUtils.js b/src/TestUtils.js index b0ebf4cf5b..e1d9da7a0d 100644 --- a/src/TestUtils.js +++ b/src/TestUtils.js @@ -1,7 +1,7 @@ -import AppCache from './cache'; +const { AppCache } = require('./cache'); //Used by tests -export function destroyAllDataPermanently() { +function destroyAllDataPermanently() { if (!process.env.TESTING) { throw 'Only supported in test environment'; } @@ -14,3 +14,5 @@ export function destroyAllDataPermanently() { } })); } + +module.exports = { destroyAllDataPermanently }; diff --git a/src/cache.js b/src/cache.js index 96b00b4534..3a5bbd79bd 100644 --- a/src/cache.js +++ b/src/cache.js @@ -1,4 +1,4 @@ -import {InMemoryCache} from './Adapters/Cache/InMemoryCache'; +const {InMemoryCache} = require('./Adapters/Cache/InMemoryCache'); export var AppCache = new InMemoryCache({ttl: NaN}); -export default AppCache; +module.exports = { AppCache }; diff --git a/src/cli/definitions/parse-live-query-server.js b/src/cli/definitions/parse-live-query-server.js index 0fd2fca6c9..c2a20183f0 100644 --- a/src/cli/definitions/parse-live-query-server.js +++ b/src/cli/definitions/parse-live-query-server.js @@ -1,2 +1,2 @@ const LiveQueryServerOptions = require('../../Options/Definitions').LiveQueryServerOptions; -export default LiveQueryServerOptions; +module.exports = { LiveQueryServerOptions }; diff --git a/src/cli/definitions/parse-server.js b/src/cli/definitions/parse-server.js index d19dcc5d8a..d0866618cb 100644 --- a/src/cli/definitions/parse-server.js +++ b/src/cli/definitions/parse-server.js @@ -1,2 +1,2 @@ const ParseServerDefinitions = require('../../Options/Definitions').ParseServerOptions; -export default ParseServerDefinitions; +module.exports = { ParseServerDefinitions }; diff --git a/src/cli/parse-live-query-server.js b/src/cli/parse-live-query-server.js index c9b00a0c77..bdd30eec66 100644 --- a/src/cli/parse-live-query-server.js +++ b/src/cli/parse-live-query-server.js @@ -1,6 +1,6 @@ -import definitions from './definitions/parse-live-query-server'; -import runner from './utils/runner'; -import { ParseServer } from '../index'; +const definitions = require('./definitions/parse-live-query-server'); +const runner = require('./utils/runner'); +const { ParseServer } = require('../index'); runner({ definitions, diff --git a/src/cli/parse-server.js b/src/cli/parse-server.js index 9bb5f6ce15..1f978ed6c9 100755 --- a/src/cli/parse-server.js +++ b/src/cli/parse-server.js @@ -1,9 +1,9 @@ /* eslint-disable no-console */ -import ParseServer from '../index'; -import definitions from './definitions/parse-server'; -import cluster from 'cluster'; -import os from 'os'; -import runner from './utils/runner'; +const ParseServer = require('../index'); +const definitions = require('./definitions/parse-server'); +const cluster = require('cluster'); +const os = require('os'); +const runner = require('./utils/runner'); const help = function(){ console.log(' Get Started guide:'); diff --git a/src/cli/utils/commander.js b/src/cli/utils/commander.js index 8ac47804e8..7fbdf3dd82 100644 --- a/src/cli/utils/commander.js +++ b/src/cli/utils/commander.js @@ -1,6 +1,6 @@ /* eslint-disable no-console */ -import { Command } from 'commander'; -import path from 'path'; +const { Command } = require('commander'); +const path = require('path'); let _definitions; let _reverseDefinitions; let _defaults; @@ -124,5 +124,5 @@ Command.prototype.getOptions = function() { }, {}); }; -export default new Command(); +module.exports = new Command(); /* eslint-enable no-console */ diff --git a/src/cli/utils/runner.js b/src/cli/utils/runner.js index 1c0c0af302..47b15b91b5 100644 --- a/src/cli/utils/runner.js +++ b/src/cli/utils/runner.js @@ -1,5 +1,5 @@ -import program from './commander'; +const program = require('./commander'); function logStartupOptions(options) { for (const key in options) { diff --git a/src/cloud-code/HTTPResponse.js b/src/cloud-code/HTTPResponse.js index 85613c8747..507f7b7ab2 100644 --- a/src/cloud-code/HTTPResponse.js +++ b/src/cloud-code/HTTPResponse.js @@ -1,5 +1,5 @@ -export default class HTTPResponse { +class HTTPResponse { constructor(response, body) { let _text, _data; this.status = response.statusCode; @@ -47,3 +47,5 @@ export default class HTTPResponse { }); } } + +module.exports = HTTPResponse; diff --git a/src/cloud-code/Parse.Cloud.js b/src/cloud-code/Parse.Cloud.js index 7344f1d593..3db8ef3174 100644 --- a/src/cloud-code/Parse.Cloud.js +++ b/src/cloud-code/Parse.Cloud.js @@ -1,5 +1,5 @@ -import { Parse } from 'parse/node'; -import * as triggers from '../triggers'; +const { Parse } = require('parse/node'); +const triggers = require('../triggers'); function getClassName(parseClass) { if (parseClass && parseClass.className) { diff --git a/src/cloud-code/httpRequest.js b/src/cloud-code/httpRequest.js index 32102341ef..2dd51fd703 100644 --- a/src/cloud-code/httpRequest.js +++ b/src/cloud-code/httpRequest.js @@ -1,8 +1,8 @@ -import request from 'request'; -import Parse from 'parse/node'; -import HTTPResponse from './HTTPResponse'; -import querystring from 'querystring'; -import log from '../logger'; +const request = require('request'); +const Parse = require('parse/node'); +const HTTPResponse = require('./HTTPResponse'); +const querystring = require('querystring'); +const log = require('../logger').logger; var encodeBody = function({body, headers = {}}) { if (typeof body !== 'object') { diff --git a/src/cryptoUtils.js b/src/cryptoUtils.js index c90e74cae4..135251f0a5 100644 --- a/src/cryptoUtils.js +++ b/src/cryptoUtils.js @@ -1,9 +1,9 @@ /* @flow */ -import { randomBytes, createHash } from 'crypto'; +const { randomBytes, createHash } = require('crypto'); // Returns a new random hex string of the given even size. -export function randomHexString(size: number): string { +function randomHexString(size: number): string { if (size === 0) { throw new Error('Zero-length randomHexString is useless.'); } @@ -19,7 +19,7 @@ export function randomHexString(size: number): string { // because chars length of 62 doesn't divide the number of all bytes // (256) evenly. Such bias is acceptable for most cases when the output // length is long enough and doesn't need to be uniform. -export function randomString(size: number): string { +function randomString(size: number): string { if (size === 0) { throw new Error('Zero-length randomString is useless.'); } @@ -35,15 +35,23 @@ export function randomString(size: number): string { } // Returns a new random alphanumeric string suitable for object ID. -export function newObjectId(size: number = 10): string { +function newObjectId(size: number = 10): string { return randomString(size); } // Returns a new random hex string suitable for secure tokens. -export function newToken(): string { +function newToken(): string { return randomHexString(32); } -export function md5Hash(string: string): string { +function md5Hash(string: string): string { return createHash('md5').update(string).digest('hex'); } + +module.exports = { + randomString, + randomHexString, + md5Hash, + newToken, + newObjectId, +} diff --git a/src/defaults.js b/src/defaults.js index be205f4e5b..2dfb7f1cd8 100644 --- a/src/defaults.js +++ b/src/defaults.js @@ -1,4 +1,4 @@ -import { nullParser } from './Options/parsers'; +const { nullParser } = require('./Options/parsers'); const { ParseServerOptions } = require('./Options/Definitions'); const logsFolder = (() => { let folder = './logs/'; @@ -32,5 +32,5 @@ const computedDefaults = { level, } -export default Object.assign({}, DefinitionDefaults, computedDefaults); +module.exports = Object.assign({}, DefinitionDefaults, computedDefaults); export const DefaultMongoURI = DefinitionDefaults.databaseURI; diff --git a/src/deprecated.js b/src/deprecated.js index 7192336c2c..13a24029ef 100644 --- a/src/deprecated.js +++ b/src/deprecated.js @@ -1,5 +1,7 @@ -export function useExternal(name, moduleName) { +function useExternal(name, moduleName) { return function() { throw `${name} is not provided by parse-server anymore; please install ${moduleName}`; } } + +module.exports = { useExternal }; diff --git a/src/index.js b/src/index.js index 0cceb23489..a3edee3881 100644 --- a/src/index.js +++ b/src/index.js @@ -1,15 +1,15 @@ -import ParseServer from './ParseServer'; -import S3Adapter from '@parse/s3-files-adapter' -import FileSystemAdapter from '@parse/fs-files-adapter' -import InMemoryCacheAdapter from './Adapters/Cache/InMemoryCacheAdapter' -import NullCacheAdapter from './Adapters/Cache/NullCacheAdapter' -import RedisCacheAdapter from './Adapters/Cache/RedisCacheAdapter' -import LRUCacheAdapter from './Adapters/Cache/LRUCache.js' -import * as TestUtils from './TestUtils'; -import { useExternal } from './deprecated'; -import { getLogger } from './logger'; -import { PushWorker } from './Push/PushWorker'; -import { ParseServerOptions } from './Options'; +const { ParseServer } = require('./ParseServer'); +const S3Adapter = require('@parse/s3-files-adapter'); +const FileSystemAdapter = require('@parse/fs-files-adapter'); +const { InMemoryCacheAdapter } = require('./Adapters/Cache/InMemoryCacheAdapter'); +const { NullCacheAdapter } = require('./Adapters/Cache/NullCacheAdapter'); +const { RedisCacheAdapter } = require('./Adapters/Cache/RedisCacheAdapter'); +const { LRUCacheAdapter } = require('./Adapters/Cache/LRUCache.js'); +const TestUtils = require('./TestUtils'); +const { useExternal } = require('./deprecated'); +const { getLogger } = require('./logger'); +const { PushWorker } = require('./Push/PushWorker'); +const { ParseServerOptions } = require('./Options'); // Factory function const _ParseServer = function(options: ParseServerOptions) { @@ -26,8 +26,8 @@ Object.defineProperty(module.exports, 'logger', { get: getLogger }); -export default ParseServer; -export { +module.exports = { + default: ParseServer, S3Adapter, GCSAdapter, FileSystemAdapter, @@ -37,5 +37,5 @@ export { LRUCacheAdapter, TestUtils, PushWorker, - _ParseServer as ParseServer + ParseServer: _ParseServer }; diff --git a/src/logger.js b/src/logger.js index ee69c42cf0..8260d1e2e4 100644 --- a/src/logger.js +++ b/src/logger.js @@ -1,7 +1,7 @@ 'use strict'; -import defaults from './defaults'; -import { WinstonLoggerAdapter } from './Adapters/Logger/WinstonLoggerAdapter'; -import { LoggerController } from './Controllers/LoggerController'; +const defaults = require('./defaults'); +const { WinstonLoggerAdapter } = require('./Adapters/Logger/WinstonLoggerAdapter'); +const { LoggerController } = require('./Controllers/LoggerController'); function defaultLogger() { const options = { @@ -15,20 +15,31 @@ function defaultLogger() { let logger = defaultLogger(); -export function setLogger(aLogger) { +function setLogger(aLogger) { logger = aLogger; } -export function getLogger() { +function getLogger() { return logger; } +// Object.defineProperty(module, 'exports', { +// get: getLogger +// }); + // for: `import logger from './logger'` -Object.defineProperty(module.exports, 'default', { +// Object.defineProperty(module.exports, 'default', { +// get: getLogger +// }); +module.exports = { + setLogger, + getLogger, +}; +// // for: `import { logger } from './logger'` +Object.defineProperty(module.exports, 'logger', { get: getLogger }); -// for: `import { logger } from './logger'` -Object.defineProperty(module.exports, 'logger', { +Object.defineProperty(exports, 'logger', { get: getLogger }); diff --git a/src/middlewares.js b/src/middlewares.js index 0606ab8f38..d473917739 100644 --- a/src/middlewares.js +++ b/src/middlewares.js @@ -1,9 +1,9 @@ -import AppCache from './cache'; -import log from './logger'; -import Parse from 'parse/node'; -import auth from './Auth'; -import Config from './Config'; -import ClientSDK from './ClientSDK'; +const { AppCache } = require('./cache'); +const log = require('./logger').logger; +const Parse = require('parse/node'); +const auth = require('./Auth'); +const Config = require('./Config'); +const ClientSDK = require('./ClientSDK'); // Checks that the request is authorized for this app and checks user // auth too. @@ -11,7 +11,7 @@ import ClientSDK from './ClientSDK'; // Adds info to the request: // req.config - the Config for this app // req.auth - the Auth for this request -export function handleParseHeaders(req, res, next) { +function handleParseHeaders(req, res, next) { var mountPathLength = req.originalUrl.length - req.url.length; var mountPath = req.originalUrl.slice(0, mountPathLength); var mount = req.protocol + '://' + req.get('host') + mountPath; @@ -243,7 +243,7 @@ function decodeBase64(str) { return new Buffer(str, 'base64').toString() } -export function allowCrossDomain(req, res, next) { +function allowCrossDomain(req, res, next) { res.header('Access-Control-Allow-Origin', '*'); res.header('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE,OPTIONS'); res.header('Access-Control-Allow-Headers', 'X-Parse-Master-Key, X-Parse-REST-API-Key, X-Parse-Javascript-Key, X-Parse-Application-Id, X-Parse-Client-Version, X-Parse-Session-Token, X-Requested-With, X-Parse-Revocable-Session, Content-Type'); @@ -257,7 +257,7 @@ export function allowCrossDomain(req, res, next) { } } -export function allowMethodOverride(req, res, next) { +function allowMethodOverride(req, res, next) { if (req.method === 'POST' && req.body._method) { req.originalMethod = req.method; req.method = req.body._method; @@ -266,7 +266,7 @@ export function allowMethodOverride(req, res, next) { next(); } -export function handleParseErrors(err, req, res, next) { +function handleParseErrors(err, req, res, next) { if (err instanceof Parse.Error) { let httpStatus; // TODO: fill out this mapping @@ -300,7 +300,7 @@ export function handleParseErrors(err, req, res, next) { } -export function enforceMasterKeyAccess(req, res, next) { +function enforceMasterKeyAccess(req, res, next) { if (!req.auth.isMaster) { res.status(403); res.end('{"error":"unauthorized: master key is required"}'); @@ -309,7 +309,7 @@ export function enforceMasterKeyAccess(req, res, next) { next(); } -export function promiseEnforceMasterKeyAccess(request) { +function promiseEnforceMasterKeyAccess(request) { if (!request.auth.isMaster) { const error = new Error(); error.status = 403; @@ -323,3 +323,12 @@ function invalidRequest(req, res) { res.status(403); res.end('{"error":"unauthorized"}'); } + +module.exports = { + handleParseHeaders, + allowCrossDomain, + allowMethodOverride, + handleParseErrors, + enforceMasterKeyAccess, + promiseEnforceMasterKeyAccess, +}; diff --git a/src/requiredParameter.js b/src/requiredParameter.js index f6d5dd4278..917651758c 100644 --- a/src/requiredParameter.js +++ b/src/requiredParameter.js @@ -1,2 +1,2 @@ /** @flow */ -export default (errorMessage: string): any => { throw errorMessage } +module.exports = (errorMessage: string): any => { throw errorMessage } diff --git a/src/triggers.js b/src/triggers.js index cb9d1b0caf..56cd2e34ab 100644 --- a/src/triggers.js +++ b/src/triggers.js @@ -1,8 +1,8 @@ // triggers.js -import Parse from 'parse/node'; -import { logger } from './logger'; +const Parse = require('parse/node'); +const { logger } = require('./logger'); -export const Types = { +const Types = { beforeSave: 'beforeSave', afterSave: 'afterSave', beforeDelete: 'beforeDelete', @@ -46,47 +46,47 @@ function validateClassNameForTriggers(className, type) { const _triggerStore = {}; -export function addFunction(functionName, handler, validationHandler, applicationId) { +function addFunction(functionName, handler, validationHandler, applicationId) { applicationId = applicationId || Parse.applicationId; _triggerStore[applicationId] = _triggerStore[applicationId] || baseStore(); _triggerStore[applicationId].Functions[functionName] = handler; _triggerStore[applicationId].Validators[functionName] = validationHandler; } -export function addJob(jobName, handler, applicationId) { +function addJob(jobName, handler, applicationId) { applicationId = applicationId || Parse.applicationId; _triggerStore[applicationId] = _triggerStore[applicationId] || baseStore(); _triggerStore[applicationId].Jobs[jobName] = handler; } -export function addTrigger(type, className, handler, applicationId) { +function addTrigger(type, className, handler, applicationId) { validateClassNameForTriggers(className, type); applicationId = applicationId || Parse.applicationId; _triggerStore[applicationId] = _triggerStore[applicationId] || baseStore(); _triggerStore[applicationId].Triggers[type][className] = handler; } -export function addLiveQueryEventHandler(handler, applicationId) { +function addLiveQueryEventHandler(handler, applicationId) { applicationId = applicationId || Parse.applicationId; _triggerStore[applicationId] = _triggerStore[applicationId] || baseStore(); _triggerStore[applicationId].LiveQuery.push(handler); } -export function removeFunction(functionName, applicationId) { +function removeFunction(functionName, applicationId) { applicationId = applicationId || Parse.applicationId; delete _triggerStore[applicationId].Functions[functionName] } -export function removeTrigger(type, className, applicationId) { +function removeTrigger(type, className, applicationId) { applicationId = applicationId || Parse.applicationId; delete _triggerStore[applicationId].Triggers[type][className] } -export function _unregisterAll() { +function _unregisterAll() { Object.keys(_triggerStore).forEach(appId => delete _triggerStore[appId]); } -export function getTrigger(className, triggerType, applicationId) { +function getTrigger(className, triggerType, applicationId) { if (!applicationId) { throw "Missing ApplicationID"; } @@ -100,11 +100,11 @@ export function getTrigger(className, triggerType, applicationId) { return undefined; } -export function triggerExists(className: string, type: string, applicationId: string): boolean { +function triggerExists(className: string, type: string, applicationId: string): boolean { return (getTrigger(className, type, applicationId) != undefined); } -export function getFunction(functionName, applicationId) { +function getFunction(functionName, applicationId) { var manager = _triggerStore[applicationId]; if (manager && manager.Functions) { return manager.Functions[functionName]; @@ -112,7 +112,7 @@ export function getFunction(functionName, applicationId) { return undefined; } -export function getJob(jobName, applicationId) { +function getJob(jobName, applicationId) { var manager = _triggerStore[applicationId]; if (manager && manager.Jobs) { return manager.Jobs[jobName]; @@ -120,7 +120,7 @@ export function getJob(jobName, applicationId) { return undefined; } -export function getJobs(applicationId) { +function getJobs(applicationId) { var manager = _triggerStore[applicationId]; if (manager && manager.Jobs) { return manager.Jobs; @@ -129,7 +129,7 @@ export function getJobs(applicationId) { } -export function getValidator(functionName, applicationId) { +function getValidator(functionName, applicationId) { var manager = _triggerStore[applicationId]; if (manager && manager.Validators) { return manager.Validators[functionName]; @@ -137,7 +137,7 @@ export function getValidator(functionName, applicationId) { return undefined; } -export function getRequestObject(triggerType, auth, parseObject, originalParseObject, config) { +function getRequestObject(triggerType, auth, parseObject, originalParseObject, config) { var request = { triggerName: triggerType, object: parseObject, @@ -166,7 +166,7 @@ export function getRequestObject(triggerType, auth, parseObject, originalParseOb return request; } -export function getRequestQueryObject(triggerType, auth, query, count, config, isGet) { +function getRequestQueryObject(triggerType, auth, query, count, config, isGet) { isGet = !!isGet; var request = { @@ -199,7 +199,7 @@ export function getRequestQueryObject(triggerType, auth, query, count, config, i // The API will call this with REST API formatted objects, this will // transform them to Parse.Object instances expected by Cloud Code. // Any changes made to the object in a beforeSave will be included. -export function getResponseObject(request, resolve, reject) { +function getResponseObject(request, resolve, reject) { return { success: function(response) { if (request.triggerName === Types.afterFind) { @@ -269,7 +269,7 @@ function logTriggerErrorBeforeHook(triggerType, className, input, auth, error) { }); } -export function maybeRunAfterFindTrigger(triggerType, auth, className, objects, config) { +function maybeRunAfterFindTrigger(triggerType, auth, className, objects, config) { return new Promise((resolve, reject) => { const trigger = getTrigger(className, triggerType, config.applicationId); if (!trigger) { @@ -305,7 +305,7 @@ export function maybeRunAfterFindTrigger(triggerType, auth, className, objects, }); } -export function maybeRunQueryTrigger(triggerType, className, restWhere, restOptions, config, auth, isGet) { +function maybeRunQueryTrigger(triggerType, className, restWhere, restOptions, config, auth, isGet) { const trigger = getTrigger(className, triggerType, config.applicationId); if (!trigger) { return Promise.resolve({ @@ -393,7 +393,7 @@ export function maybeRunQueryTrigger(triggerType, className, restWhere, restOpti // Resolves to an object, empty or containing an object key. A beforeSave // trigger will set the object key to the rest format object to save. // originalParseObject is optional, we only need that for before/afterSave functions -export function maybeRunTrigger(triggerType, auth, parseObject, originalParseObject, config) { +function maybeRunTrigger(triggerType, auth, parseObject, originalParseObject, config) { if (!parseObject) { return Promise.resolve({}); } @@ -436,7 +436,7 @@ export function maybeRunTrigger(triggerType, auth, parseObject, originalParseObj // Converts a REST-format object to a Parse.Object // data is either className or an object -export function inflate(data, restObject) { +function inflate(data, restObject) { var copy = typeof data == 'object' ? data : {className: data}; for (var key in restObject) { copy[key] = restObject[key]; @@ -444,7 +444,32 @@ export function inflate(data, restObject) { return Parse.Object.fromJSON(copy); } -export function runLiveQueryEventHandlers(data, applicationId = Parse.applicationId) { +function runLiveQueryEventHandlers(data, applicationId = Parse.applicationId) { if (!_triggerStore || !_triggerStore[applicationId] || !_triggerStore[applicationId].LiveQuery) { return; } _triggerStore[applicationId].LiveQuery.forEach((handler) => handler(data)); } + +module.exports = { + Types, + addFunction, + addJob, + addTrigger, + addLiveQueryEventHandler, + removeFunction, + removeTrigger, + getTrigger, + triggerExists, + getFunction, + getJob, + getJobs, + getValidator, + maybeRunAfterFindTrigger, + maybeRunQueryTrigger, + maybeRunTrigger, + inflate, + runLiveQueryEventHandlers +}; + +if (process.env.TESTING == '1') { + module.exports._unregisterAll = _unregisterAll; +}