* Refactoring method `addFieldIfNotExists`
* Using ES6 Generators syntax
* Passing in the context into method `createClass`, to reuse the connection
* Extending method `createClass` to reuse connections
* Update PostgresStorageAdapter.js
forgot: extending method `createClass` to reuse the connection.
* Update PostgresStorageAdapter.js
fixing the re-throw logic.
Method `setClassLevelPermissions` should use `.task` to share the connection for the two consecutive operations. It doesn't need a transaction, because the first operation does not need to roll back when the second one fails.
* Refactoring method createTable
Replacing the weird task + transaction chain, by replacing it with just one transaction that encapsulates the complete logic.
* Update PostgresStorageAdapter.js
correcting the sequence to match the original exactly.
* Update PostgresStorageAdapter.js
Nesting the transaction inside a task, so it can execute successfully no matter if the containing task succeeds or fails.
* Update PostgresStorageAdapter.js
adding the missing bracket.
Fixing invalid database code in method `setIndexesWithSchemaFormat`:
* It must be a transaction, not a task, as it executes multiple database changes
* It should contain the initial queries inside the transaction, providing the context, not outside it;
* Replaced the code with the ES6 Generator notation
* Removing the use of batch, as the value of the result promise is irrelevant, only success/failure that matters
* refactoring database code
Starting to refactor the database code for better use of promises + ES6 generators, to prepare for ES7 await/async.
* Update PostgresStorageAdapter.js
* Update PostgresStorageAdapter.js
naming the transaction.
Added a generic email plugin to send Parse Server password reset and verification emails with generic accounts like Gmail. This module uses the nodemailer library.
* Create SECURITY.md
* Update SECURITY.md
* Update SECURITY.md
* Update ISSUE_TEMPLATE.md
* Update ISSUE_TEMPLATE.md
* Clarify time table from contact to fix
* change times to days
* Fix eslint errors on Windows
On Windows, when run `npm run lint`, a **LOT** of the following errors
appeared:
```
error Expected linebreaks to be 'LF' but found 'CRLF' linebreak-style
```
This error only occurs on Windows because the `linebreak-style` eslint
setting was set to "unix". This is fixed by making the eslint config
file a Javascript script and setting the platform based on the build
platform.
Thus, the `linebreak-style` will be "windows" or "unix" depending on the
users platform.
* Remove linespace ending check in Lint
Add .gitattributes that will convert line endings automatically to LF when uploading to GitHub
* Remove bat file extension from gitattributes
Include lint check for line endings
* Change tabs to spaces
* Force LF line endings for each file upon downloading
Restore eslint linebreak style check for unix since LF line endings will be enforced
* Add a few more text files to the gitattributes
* Added png as binary file to gitattributes file
This was necessary because git was showing that the CRLF line endings were being converted to LF for PNG files on Windows
* Add Indexes to Schema API
* error handling
* ci errors
* postgres support
* full text compound indexes
* pg clean up
* get indexes on startup
* test compound index on startup
* add default _id to index, full Text index on startup
* lint
* fix test
* let travis build against 3.x
* Cleanup dependencies and bump min version to current LTS
* Makes npm-git push all branches to -preview
* restores releases
* Bumps mime to 2.0.3 (requires node 6+)
* Bumps express to latest version
* Fixes linting issue after upgrade
* Use travis-branch for partial releases
* Update CONTRIBUTING.md
Clean up some of the language in the document.
Add command to run for testing on Windows
* Update CONTRIBUTING.md
Update coverage directory
* Update CONTRIBUTING.md
Add details about how to run test coverage
* Add handleShutdown Test of MongoStorageAdapter.
* Add `handleShutdown` function in PostgresStorageAdapter, with it's test.
* Replace the _pgp to _client
* Use `adapter._client.$pool.ending` to ckeck is ending
* Add `handleShutdown()` in ParseServer.spec.js
* Trigger
* Set Server to Default
* Support for Aggregate Queries
* improve pg and coverage
* Mongo 3.4 aggregates and tests
* replace _id with objectId
* improve tests for objectId
* project with group query
* typo
* Fix for unhandled undefined config
When an invalid application id is passed either for reset/change password or email verification, config.get returns undefined. This causes internal server.
* Throwing a 403 exception instead of returning a 404 for an invalid app id
Also, added a missing semicolon
* Fix indent issues
* Fix invalid colon to semicolon
* Fix space and indent issues
* Tests for the fix for unhandled undefined config