* Fix types to describe native Promise (Miroslav Bajtoš)
* feat: after operation hook in case of errors (spurreiter)
* Fix for #1724 - Added options to attribute updates (#1725) (Bill Matson)
* Add support for Node.js 12.x (Miroslav Bajtoš)
* fix: coerce primitive properties on update (biniam)
* fix: coerce date array properties (biniam)
* fix: normalize include with boolean or number (spurreiter)
* Improve tests for empty vs. default values (Miroslav Bajtoš)
* Do not apply default values on data from database (Miroslav Bajtoš)
* Update datasource-connector.md (#1703) (Jam Risser)
* feat: support array within array (Hage Yaapa)
* fix: update lodash (#1696) (Janny)
* Update LTS versions in README (Miroslav Bajtoš)
* Switch from Bluebird to native Promise (Miroslav Bajtoš)
* Start 4.0 development, drop support for Node 6 (Miroslav Bajtoš)
This is a breaking change. Juggler methods are no longer returning
instances of Bluebird Promise, but return a native Promise instead.
As a result, API consumers can no longer use sugar APIs provided by
Bluebird, e.g. `spread`, `delay`, etc.
Migration guide: rewrite your code from `.then()` style into `async`
functions using `await` statements.
* Add IBM copyright and MIT license headers (Raymond Feng)
* Allow List to take items as instances of a class (Raymond Feng)
* fix: ignore extra properties when strict=filter (#1423) (Tom Kirkpatrick)
* Add EventEmitter type info to DataSource type (shimks)
The new version of our config enabled function-paren-newline rule,
this commit fixes the codebase to use more consistent handling
of newlines when calling functions.
The uniq function does currently not work when the database is mongodb.
In the case of mongodb, the function will receive an array of bson
object of bson type ObjectID. The indexOf function will return a
different index, even if the mongodb ID is the same, as it is wrapped
in the ObjectID. This commit first transforms any ObjectID in the array
to a string representation. We can then use indexOf to check for
uniqueness.
* Add a better way to handle transactions (Jürg Lehni)
* validations: use new regex per evaluation (#1479) (Joost de Bruijn)
* Transaction: Bind timeout to tx instance (#1484) (Jürg Lehni)
* CODEOWNERS: add lehni (#1483) (Miroslav Bajtoš)
* Add node8 support for travis (loay)
* Add nyc coverage, report data to coveralls.io (Miroslav Bajtoš)
* Update translations from TVT (Allen Boone)
* Add test coverage for hasAndBelongsToMany (loay)
* package: use qs@6.5.0 (#1471) (Kevin Delisle)
* fix assert, make the test case more clear (rashmihunt)
* code review, better asserts (rashmihunt)
* test case to exclude base props (rashmihunt)
* handle excludeBaseProperties (rashmihunt)
* create sequence for nosql id (#1354) (Janny)
* Fix order of query results (Loay)
* Add DateString type (Kevin Delisle)
* datatype.test: use predefined date (Kevin Delisle)
* Update api documents (Loay)
* Datasource documentation tune-up (Kevin Delisle)
* Added unit tests specific to DateType where null (#1349) (Andrew McDonnell)
* Fix/geo null (#1334) (paulussup)
* replace exception thrown for invalid dates (Diana Lau)
* Revert PR #1326 (#1336) (Sakib Hasan)
* Make lib peerDepend on loopback-connector (#1326) (Russ Tyndall)
* Add test case using updateAttributes (Loay)
* Fix forceId bug for updateOrCreate (Loay)
* Fix typo in description (jannyHou)
* Fix relations test case (loay)
* Add instructions for running the tests (#1330) (Andrew McDonnell)
* handle deep geo-near queries (#1314) (Eric Barault)
* Unskip test case (Loay)
* Make tests work for other connectors as well as C* (Tetsuo Seto)
* Remove debugger statement (Tetsuo Seto)
* Fixup test support for Cassandra connector (Tetsuo Seto)
* Add test support for Cassandra connector (Tetsuo Seto)
* package: use loopback-connector@^4.0.0 (Kevin Delisle)
* Revert "handle deep geo-near queries (#1216)" (Sakib Hasan)
* Revert "Allow `after save` hook to see count of records changed (#1231)" (Sakib Hasan)
* Allow `after save` hook to see count of records changed (#1231) (Joshua Chaitin-Pollak)
* handle deep geo-near queries (#1216) (Corentin H)
* Fix model def column name method (#1224) (destillat)
* Added notify flag for create and upsert (#1277) (Jonathan Sheely)
* Custom Table Names on rels (#1303) (Waldemar Zahn)
* Support multiple fk relations (#1308) (Sakib Hasan)
* #1261 Property name "constructor" is not allowed in 'Model' data (#1284) (Thaer Abbas)
* make geo nearFilter support minDistance (#987) (Vincent Wen)
* Disallow regexp string in arrays for coerce (#1279) (Mikhail)
* Fix - `_targetClass` on scope function (#1280) (Clark Wang)
* Fixes#1275. `Include` filter transforms fields property into array. (#1276) (Nick Oikonomou)
* Included models from include operations do not change defined `strict` model option (#1259) (Dimitris)
* Using a filter with exclusion of a non existent property, removes an existing one (#1257) (Dimitris)
* Clean version of PR 1272 (#1273) (Sakib Hasan)
* Replicate new issue_template from loopback (Siddhi Pai)
* Replicate issue_template from loopback repo (Siddhi Pai)
* Update README.md (Rand McKinney)
* FindOrCreate missing error callback (Diana Lau)
* Fixes#1230 coerceArray converts empty Objects (#1269) (Dimitris)
* override collection name for arangodb (#1243) (Matteo Padovano)
* Add test coverage for `validatesInclusionOf` (#1249) (Rémi Bèges)
* dao: catch errors on Model creation in find (Kevin Delisle)
* dao: catch sync errors on setAttributes (Kevin Delisle)
* Update error message (Loay)
* Fix Order query test case (Loay)
* Doc:Add option for discoverModelDefinitions (jannyHou)
* Add tests for validatesExclusionOf (#1248) (Rémi Bèges)
* Fix id update error message formatting (Rémi Bèges)
* Add test case for all connectors (jannyHou)
* Add proper statusCode for duplicate (Loay)
* Fix datasource to report connector-loading errors (Miroslav Bajtoš)
* Ensure replaceById returns 404 when id not found (Loay)
* Upgrade eslint-config, fix new violations (Miroslav Bajtoš)
* Fix option propagation in relation methods (Miroslav Bajtoš)
* Refactor logic of options.allowExtendedOperators (Matteo Padovano)
* Fix forceId validation error (Loay)
* Add two basic tests for "inq" operator (Miroslav Bajtoš)
Before this change, when resolving full connector path, all errors were
ignored. As a result, when the connector was installed but not
correctly built (e.g. loopback-connector-db2 which uses a native addon),
a very confusing message was reported by LoopBack.
In this commit, I am fixing the code handling `require()` errors
to ignore only MODULE_NOT_FOUND errors that contain the name
of the required module.
* Add missing "done" arg in test/kvao/ttl.suite (Miroslav Bajtoš)
* Support nested queries for arrays (pponugo)
* Refactor TTL tests for KV memory connector (Simon Ho)
* Fix test case for expire (Simon Ho)
* Fix failures of upsertWithWhere (Amir Jafarian)
* Remove expired item before executing expire (Simon Ho)
* Disable `strict` for a few files (Amir Jafarian)
* Partition by foreign key for pagination (Raymond Feng)
* Fix style errors (Raymond Feng)
* fix remaining eslint issues (Miroslav Bajtoš)
* eslint --fix (Miroslav Bajtoš)
* Add eslint as "npm run lint" and "posttest" hook (Miroslav Bajtoš)
* Remove unused support/ files (Miroslav Bajtoš)
* Insert copyright headers (Ryan Graham)
* Relicense as MIT only (Ryan Graham)
* Fix Mongo compatibility issue (Amir Jafarian)
* Add automigrate to setup tables for replace test cases (Amir Jafarian)
* Allow test folder to be published (Amir Jafarian)
* support custom field settings under the connector's namespace (bitmage)
* Update error message for missing connector (gunjpan)
* Fix tests for mysql (Amir Jafarian)
* Add forgotten unit test (Miroslav Bajtoš)
* fix nin support for in memory datasource (Horia Radu)
* Improve error message on connector init error (Miroslav Bajtoš)
* discoverSchemas returns an error when modelName is not found, discoverSchema forwards that error and does not hang when no columns, no errors are returned (bitmage)
Rework the test script to call directly mocha and skip Makefile. This
allows CI enviroments to detect that this module is using Mocha as
the test runner.
* Explicitly initialize column of partition by clause and pass it in find()'s options argument (eugene-frb)
* Fix for issue #774 (Pradeep Kumar Tippa)
* silence a warning that introduced in bluebird 3.0 (Clark Wang)
* fixed a bug where an error was sent to the updateAttributesCallback and then ignored (Abe BW)
* Capture includeHasMany() as a find()'s caller by findCaller option (eugene-frb)
* UpdateAttributes: Raises an error if database fails (Wilson Júnior)
* fixes#753 (Joseph M. Persie)
* typo fix (nennad)
* Fix foreignKey length issue (nennad)
* Correction of a regression introduced by commit 632898b: when querying an empty array ([]) with a 'neq' filter, there were no matching. (Michael Diguet)
* dropped unused functions and tests fixed (Wert_Lex)
* One more comment (Wert_Lex)
* Looks better now (Wert_Lex)
* home-written map extended with proper .set() method (Wert_Lex)
* on the halfway to keeping original keys (Wert_Lex)
* with updated map which stores original key and tests for them (Wert_Lex)
* Moved inst initialization to place where it used (Wert_Lex)
* All tests passed (Wert_Lex)
* Dirty merge. Tests are broken (Wert_Lex)
* include utils add. Tests ported to should.js (Wert_Lex)
* Fix the typo (Raymond Feng)
* fix typo (Clark Wang)
* fix global leak that mocha complains (Clark Wang)
* Refer to licenses with a link (Sam Roberts)
* Added missing callback when a model is not found (Federico Rampazzo)
* Rewrite of variable (mdartic)
* Filtering relations of a model with an order specified (mdartic)
* Ability to define normalization of undefined query (Ryan Schumacher)
* findByIds would fail when an array of 0 length was passed as its first argument (James Cooke)
* Use strongloop conventions for licensing (Sam Roberts)
* Fix id comparision in tests so that they work with mongodb object id (Raymond Feng)
* Update validations.js (Rand McKinney)
* Add support for using UUID V4 as defaultFn (Bram Borggreve)
* primaryKey for hasMany and belongsTo relations (sklyukin)
* primaryKey to hasOne relation (sklyukin)
* Add direct copmarison value for array matching (Laurent Villeneuve)
* Add support for matching array values à la mongo. (Laurent Villeneuve)
* Fixed ReferencesMany .findById to check the given id in the ids array of the model instance (Satyadeep)
* Support embedded query in memory connector. Fix memory connector bug (Laurent Villeneuve)
* Use idEquals when comparing ids in relation definitions (Laurent Villeneuve)
* Handle possible undefined id (Laurent Villeneuve)
* Fix id copmarison by using strings (Laurent Villeneuve)
* Refactor idEquals to utils (Raymond Feng)
* Do not coerce RegExp objects to strings (Simon Ho)
* Indicate result of destroyById/protototype.destroy (Fabien Franzen)
* Removed extra ")" (Chris Finn)
* Fixed typo & added the filter units (Chris Finn)
* Remove test for unused utility function (Simon Ho)
* Remove try/catch from find function (Simon Ho)
* Add support for regex operator (Simon Ho)
* Async 'loaded' hook for find (Pradnya Baviskar)
* Promisify all 'discover' methods (Pradnya Baviskar)
* Fix 'persist' hook for updateAttributes() (Pradnya Baviskar)
* Add NOTICE (Raymond Feng)
* prevent upsert overwriting default values with applyDefaultValues option (Bryan Clark)
* use fromDb to deserialize data after save in Memory connector (Bryan Clark)
* Correctly handle validatesUniquenessOf(idName) (Fabien Franzen)
* Assert the existence of instance (Raymond Feng)
* Make sure operator/options are honored (Raymond Feng)
* Fix coercion from ObjectID to String (Raymond Feng)
* Fix#623 - use actual id order (Fabien Franzen)
* test: fix persistence-hooks failures in MySQL (Miroslav Bajtoš)
* Includes with transaction support (Rus1)
* Fix updateOrCreate transaction propagation (Rus1)
* Fix promise chaining in case of error (Rus1)
* Promisify 'autoupdate' (Pradnya Baviskar)
* Add new hook 'loaded' (Pradnya Baviskar)
* Promisify 'automigrate' (Pradnya Baviskar)
* check object exists before setting __cachedRelations (ningsuhen)
* Fix the test case as updateAll takes `where` directly (Raymond Feng)
* Fix for issues #622 & #623 (ningsuhen)
* Add new hook 'persist' (Pradnya Baviskar)
* Create a script to describe operation hooks (Miroslav Bajtoš)
* Allow 0 as the FK (Raymond Feng)
* fix typo (Clark Wang)
* Dedupe ids args of inq for include (Raymond Feng)
* Enhance the apis and add more tests (Raymond Feng)
* Fix for https://github.com/strongloop/loopback/issues/1401 (Raymond Feng)
* Fix ReferenceError: definition is not defined (Dmitry Manannikov)
* Mix in observer apis to the connector (Raymond Feng)
* Enhance fieldsToArray to consider strict mode (Raymond Feng)
* Fix the target id resolution (Raymond Feng)
* DB Call Optimization in relation includes - Fixes#408 & #166 (ningsuhen)
* Conditionally pass options to connector CRUD methods (Raymond Feng)
* Pass-through options from save to create (Fabien Franzen)
* dao: support validateUpsert:false (Miroslav Bajtoš)
* Changes to API docs per Dennis (Rand McKinney)
* Add unit-test for "array" type (Miroslav Bajtoš)
* Fix test for "after save" called on save/CREATE (Miroslav Bajtoš)
* Code cleanup in lib/dao.js (Miroslav Bajtoš)
* Save parent model of embedded relations (Fabien Franzen)
* Pass options in operation hooks context. (Fabien Franzen)
* check if id does not exist a bit more explicitly (Pulkit Singhal)
* Fix persistUndefinedAsNull tests w/ SQL connectors (Miroslav Bajtoš)
* Implement scope.updateAll (Fabien Franzen)
* Fix the test cases so that they be run with the mssql connector (Raymond Feng)
* Add model setting "persistUndefinedAsNull" (Miroslav Bajtoš)
* Add abilities to remove and clear observers - Operation Hooks. (0angelic0)
* Code cleanup in updateAll/deleteAll (Miroslav Bajtoš)
* Return scope object from DAO.scope (Fabien Franzen)
* Remove all usages of lodash. (Miroslav Bajtoš)
* Clean up delete and update tests (Simon Ho)
* Clean up wording in update/delete tests (Simon Ho)
* Fix wording in update test (Simon Ho)
* Properly support embedsMany destroyAll (Fabien Franzen)
* Clean up update/delete manipulation tests (Simon Ho)
* test: fix test failure in MySQL connector (Miroslav Bajtoš)
* Improve test failure messages (Miroslav Bajtoš)
* Fix regression in prototype.save (Miroslav Bajtoš)
* Enable more CRUD remoting methods for embedsOne (Fabien Franzen)
* Implement scope.findOne (Fabien Franzen)
* use findOrCreate for HasManyThrough#create (Clark Wang)
* Enhance id comparision for updateAttributes (Raymond Feng)
* Enable custom methods on singular relations (Fabien Franzen)
* Implement scope.findById (Fabien Franzen)
* Fix updateAll callback in "transient" connector (Miroslav Bajtoš)
* Memory connector returns updated records count (Simon Ho)
* Add ctx.isNewInstance for "save" hooks (Miroslav Bajtoš)
* deleteAll returns number of deleted records (Miroslav Bajtoš)
* Use the correct way to iterate over an array (Raymond Feng)
* DAO: Fix updateOrCreate to set persisted:true (Miroslav Bajtoš)
* Reject CREATE with a duplicate id (Miroslav Bajtoš)
* add tests for between in memory connector (Daniel B. Vasquez)
* enable between filter for memory db connector (Daniel B. Vasquez)
* fix#429 Multiple Models can't mixin same class (Clark Wang)
This commit is dropping lodash in favour of hand-written implementation
based on ES5 Array methods. As a result, the size of the (unminified)
loopback browser bundle is decreased by approx 360KB.
* Improved and corrected API docs (crandmck)
* Fix problems in annotations that prvented validateAsync and validate functions from appearing in API docs. (crandmck)
* Deprecate DAO events (Miroslav Bajtoš)
* Deprecate Model hooks (Miroslav Bajtoš)
* Add Promises to DAO (Partap Davis)
* test for updateAll (rudzon)
* enhance the coercion for boolean/date types (rudzon)
* enhance updateAll to coerce the data per property definitions (rudzon)
* relation-definition: remove trailing whitespace (Miroslav Bajtoš)
List of deprecated hooks:
- beforeValidate
- afterValidate
- beforeCreate
- afterCreate
- beforeSave
- afterSave
- beforeUpdate
- afterUpdate
- beforeDestroy
- afterDestroy
Also add a lightweight browser version of "depd", because the "depd"
does not support browser and it is not trivial to fix that.
This commits adds a lightweight implementation of depd's "deprecate"
function.
* Fix the idType so that it works with both MongoDB and RDBs (Raymond Feng)
* Tidy up tests so that they will work with RDBs (Raymond Feng)
* Fix JS style issues (Raymond Feng)
* Add a new property option `defaultFn` (Miroslav Bajtoš)
* Fix the null/undefined check (Raymond Feng)
* Fix createdAt type so that it won't overflow SQL server int (Raymond Feng)
* ModelBaseClass: promise mode for notifyObserversOf (Miroslav Bajtoš)
* ModelBaseClass: support promise-based observers (Miroslav Bajtoš)
* use lodash to update the findBelongsTo which now returns an array of matches (Bryan Clark)
* Add $now as shortcut default value for date property (Pradnya Baviskar)
* Fix `deleteById(id)` and other test failures (Miroslav Bajtoš)
The property allows developers to specify that the default value
should be retrieved via a named function.
Only two built-in functions are supported at the moment:
"guid", "uuid" - generate a new GUID/UUID
"now" - use the current date and time
Support for custom (user-provided) functions is not implemented yet.