HISTORY.md
0.10.1 - 6 April 2015
======
Force overwrite botched publish 0.10.0. Identical release.
Added:
- `.ids()` method to add ids (handles empty and undefined)
- Enable setting middleware by passing array of fns
- `.raw(qe)` manually setting a raw Qe on chainable method
Fixed:
- Supports nested match conditions `.mc( mc )`
- Post middleware chains pass `(err, res)` correctly
Changed:
- `.body()` handles empty and undefined values
- Enable calling `.match(obj)` with a raw object (not just MC)
Internal:
- Added `.editorconfig` http://editorconfig.org
0.9.0 - 10 February 2015
=====
Added:
- Support for the `any` match operator
Changed:
- **BREAKING** Middleware hooks now chain with `next()` (see docs)
Removed:
- `.toObject()` method in favour of direct access to `.qe` property
Internal:
- Build system switched to `npm run` from Makefile
- Updated dev dependencies
0.8.0 - 9 December 2014
=====
Changed:
- License to MPLv2
Internal:
- Update dev dependencies
0.7.0 - 9 November 2014
=====
Supporting Qe 0.6.0
Changed:
- `.populate`, `.update`, `.select` to 0.6.0 spec
- Rename `.from|resource()` to `.on()`
- References to `Qe`, `qe` and Query envelopes
Added:
- Nested matching using `MatchContainer` and `query.mc(op, mos)`
- `.body()`, `.do()` direct setting methods
Internal:
- Major Readme docs overhaul
0.6.0 - 6 November 2014
=====
Massive update to support changes in latest Qo spec and to simplify library
Changed:
- Query object core naming and features to match Qo 0.3.0 conventions
- `content` to `body`
- `identifiers` to `ids`
- `display` object flattened out to `limit` and `offset` at root level
- `fields` to `include`
- `excludeFields` to `exclude`
- `modifiers` to `update`
- `constraints` to `match`
- `order` to `sort`
- Sorting is done by strings (not objects) eg. "-age name"
- removed `idField` descriptor
- removed `rename` modifier/update type
- Match and Update object structures to match Qo 0.5.0 conventions
- `{$field:{$op:$value}}`
- Qo is stored as `.qo` property on each `query#` instance
- Adapters and middleware are passed a POJO `Qo` rather than a query# instance
- Blank Qo is now valid (Qo 0.4.0)
Added:
- `.meta(obj)` for adding to meta field
- `.populate( field, key, query )` support (Qo 0.5.0)
Removed:
- `save` as a supported action
- `.skip()` alias for offset
- `.select()` in favour of the new `.include`
- `.use( adapterString )` to "lookup" adapters from an "adapterClass"
- `.adapterClass( acl )` previously used as an 'adapter accessor'
0.5.0 - 14 July 2014 (The "No Zalgo" release)
=====
Changed:
- **NO ZALGO**: Delegate callback is always async. Th͏e Da҉rk Pońy Lo͘r͠d HE ́C͡OM̴E̸S
- Callback parameter in `.done(cb)` delegate is now optional
- `.remove(ids)` action uses identifiers field rather than constraints
- Executing `.done(cb)` with no adapter now includes an error in `cb(err, qry)`
0.4.0 - 7 July 2014
=====
Added:
- Support for `all` action middleware. eg. `pre( fn )` applies hook to all actions.
Removed:
- `mekanika-utils.map` dependency. Using Array#map
Internal:
- Switched over to Chai.expect for test suite
- Removed blanket from npm scripts
0.3.0 - 17 June 2014
=====
Changed:
- Removed `.delete()` method alias (sticking with `remove()`)
- Modified default remove action string is now `remove`
- Test coverage generated by `istanbul`
Updated:
- Module dependencies
0.2.0 - 9 December 2013
=====
- Constraints related to ids are converted prior to query
- `utils.isEmpty` checks objects as well as arrays
- License update to LGPL3+
0.1.0
=====
- Initial release of stable query object structure and API