Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

levelup

Package Overview
Dependencies
Maintainers
4
Versions
101
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

levelup - npm Package Compare versions

Comparing version 3.0.1 to 3.1.0

CONTRIBUTORS.md

942

CHANGELOG.md

@@ -5,606 +5,735 @@ # Changelog

## [3.1.0] - 2018-06-22
### Changed
- Upgrade `airtap` from `0.0.6` to `0.0.7` ([**@ralphtheninja**](https://github.com/ralphtheninja))
- Update `.npmignore` ([**@ralphtheninja**](https://github.com/ralphtheninja))
- Tweak copyright year for less maintenance ([**@ralphtheninja**](https://github.com/ralphtheninja))
### Added
- Expose `db.iterator()` ([**@vweevers**](https://github.com/vweevers))
- Add `remark` tooling ([**@vweevers**](https://github.com/vweevers))
### Removed
- Remove `contributors` from `package.json` ([**@ralphtheninja**](https://github.com/ralphtheninja))
- Remove copyright headers from code ([**@ralphtheninja**](https://github.com/ralphtheninja))
- Remove LevelDB and Snappy credits ([**@vweevers**](https://github.com/vweevers))
### Fixed
- Replace `remark` with `remark-cli` ([**@ralphtheninja**](https://github.com/ralphtheninja))
## [3.0.1] - 2018-05-24
### Changed
* Update `airtap` to `0.0.6` (@ralphtheninja)
- Upgrade `airtap` to `0.0.6` ([**@ralphtheninja**](https://github.com/ralphtheninja))
### Removed
* Remove `.jshintrc` (@ralphtheninja)
* Remove `brfs` and use `Buffer.from()` in favor of `fs.readFileSync()` (@ralphtheninja)
- Remove `.jshintrc` ([**@ralphtheninja**](https://github.com/ralphtheninja))
- Remove `brfs` and use `Buffer.from()` in favor of `fs.readFileSync()` ([**@ralphtheninja**](https://github.com/ralphtheninja))
## [3.0.0] - 2018-05-23
### Added
* Add node 10 to Travis (@ralphtheninja)
* Add browser support to test suite (@vweevers)
* Add `airtap` for browser tests in Sauce Labs (@vweevers)
- Add node 10 to Travis ([**@ralphtheninja**](https://github.com/ralphtheninja))
- Add browser support to test suite ([**@vweevers**](https://github.com/vweevers))
- Add `airtap` for browser tests in Sauce Labs ([**@vweevers**](https://github.com/vweevers))
### Changed
* Update `memdown` to `^3.0.0` (@vweevers)
* Update `encoding-down` to `^5.0.0` (@ralphtheninja)
* Update `deferred-leveldown` to `~4.0.0` (@ralphtheninja)
* Update `standard` to `^11.0.0` (@ralphtheninja)
* Update `level-errors` to `~2.0.0` (@ralphtheninja)
* Update `bl` to `^2.0.0` (@ralphtheninja)
* README: tweak api sub sections (@ralphtheninja)
- Upgrade `memdown` to `^3.0.0` ([**@vweevers**](https://github.com/vweevers))
- Upgrade `encoding-down` to `^5.0.0` ([**@ralphtheninja**](https://github.com/ralphtheninja))
- Upgrade `deferred-leveldown` to `~4.0.0` ([**@ralphtheninja**](https://github.com/ralphtheninja))
- Upgrade `standard` to `^11.0.0` ([**@ralphtheninja**](https://github.com/ralphtheninja))
- Upgrade `level-errors` to `~2.0.0` ([**@ralphtheninja**](https://github.com/ralphtheninja))
- Upgrade `bl` to `^2.0.0` ([**@ralphtheninja**](https://github.com/ralphtheninja))
- README: tweak api sub sections ([**@ralphtheninja**](https://github.com/ralphtheninja))
### Fixed
* Fix defunct `keyEncoding` in `inject-encoding-test.js` (@vweevers)
- Fix defunct `keyEncoding` in `inject-encoding-test.js` ([**@vweevers**](https://github.com/vweevers))
### Removed
* Remove irrelevant `leveldown-substitution-test.js` (@ralphtheninja)
* Remove node 4 from Travis (@ralphtheninja)
* Remove batch operations defaulting to `put` (@vweevers)
* Remove compiler toolchain from Travis (@vweevers)
- Remove irrelevant `leveldown-substitution-test.js` ([**@ralphtheninja**](https://github.com/ralphtheninja))
- Remove node 4 from Travis ([**@ralphtheninja**](https://github.com/ralphtheninja))
- Remove batch operations defaulting to `put` ([**@vweevers**](https://github.com/vweevers))
- Remove compiler toolchain from Travis ([**@vweevers**](https://github.com/vweevers))
## [2.0.2] - 2018-02-12
### Added
* Add 9 to Travis (@ralphtheninja)
- Add 9 to Travis ([**@ralphtheninja**](https://github.com/ralphtheninja))
### Changed
* Update `browserify` to `16.0.0` (@ralphtheninja)
* Update `leveldown` to `3.0.0` (@ralphtheninja)
* Update `deferred-leveldown` to `3.0.0` (@ralphtheninja)
* README: normalize readme style (@ralphtheninja)
* README: use markdown links instead of `<a href></a>` (@ralphtheninja)
* Clarify 'must provide db' error message (@adityapurwa)
* Update copyright year to 2018 (@adityapurwa)
- Upgrade `browserify` to `16.0.0` ([**@ralphtheninja**](https://github.com/ralphtheninja))
- Upgrade `leveldown` to `3.0.0` ([**@ralphtheninja**](https://github.com/ralphtheninja))
- Upgrade `deferred-leveldown` to `3.0.0` ([**@ralphtheninja**](https://github.com/ralphtheninja))
- README: normalize readme style ([**@ralphtheninja**](https://github.com/ralphtheninja))
- README: use markdown links instead of `<a href></a>` ([**@ralphtheninja**](https://github.com/ralphtheninja))
- Clarify 'must provide db' error message ([**@adityapurwa**](https://github.com/adityapurwa))
- Update copyright year to 2018 ([**@adityapurwa**](https://github.com/adityapurwa))
### Removed
* Remove `abstract-leveldown` devDependency (@ralphtheninja)
- Remove `abstract-leveldown` devDependency ([**@ralphtheninja**](https://github.com/ralphtheninja))
## [2.0.1] - 2017-11-11
### Changed
* README: clarify that options are specific to the underlying store (@ralphtheninja)
* Update `abstract-leveldown` to `3.0.0` (@ralphtheninja)
* Update `encoding-down` to `3.0.0` (@ralphtheninja)
- README: clarify that options are specific to the underlying store ([**@ralphtheninja**](https://github.com/ralphtheninja))
- Upgrade `abstract-leveldown` to `3.0.0` ([**@ralphtheninja**](https://github.com/ralphtheninja))
- Upgrade `encoding-down` to `3.0.0` ([**@ralphtheninja**](https://github.com/ralphtheninja))
### Fixed
* Restore support for node 4 (@farskipper)
- Restore support for node 4 ([**@farskipper**](https://github.com/farskipper))
## [2.0.0] - 2017-10-10
### Added
* Add default export (@zixia)
* Test that key and value of queued operation is not serialized (@vweevers)
* Test JSON encoding with stream (@vweevers)
* Add smoke test for `levelup` and `leveldown` without `encoding-down` (@vweevers)
- Add default export ([**@zixia**](https://github.com/zixia))
- Test that key and value of queued operation is not serialized ([**@vweevers**](https://github.com/vweevers))
- Test JSON encoding with stream ([**@vweevers**](https://github.com/vweevers))
- Add smoke test for `levelup` and `leveldown` without `encoding-down` ([**@vweevers**](https://github.com/vweevers))
### Changed
* Update `leveldown` (@ralphtheninja)
* README: prefer 'underlying store' over database, backend etc (@vweevers)
* README: update badges (@ralphtheninja)
* README: unquote properties (@vweevers)
* README: clarify what excluding callback means (@vweevers)
* README: 'arbitrary data object' => 'of any type' (@vweevers)
* README: reduce 'supported platforms' section (@vweevers)
* README: rewrite intro and relationship with leveldown (@vweevers)
* README: cleanup (@vweevers)
* README: fix bad async code example (@ralphtheninja)
* Update `deferred-leveldown` (@ralphtheninja)
- Upgrade `leveldown` ([**@ralphtheninja**](https://github.com/ralphtheninja))
- README: prefer 'underlying store' over database, backend etc ([**@vweevers**](https://github.com/vweevers))
- README: update badges ([**@ralphtheninja**](https://github.com/ralphtheninja))
- README: unquote properties ([**@vweevers**](https://github.com/vweevers))
- README: clarify what excluding callback means ([**@vweevers**](https://github.com/vweevers))
- README: 'arbitrary data object' => 'of any type' ([**@vweevers**](https://github.com/vweevers))
- README: reduce 'supported platforms' section ([**@vweevers**](https://github.com/vweevers))
- README: rewrite intro and relationship with leveldown ([**@vweevers**](https://github.com/vweevers))
- README: cleanup ([**@vweevers**](https://github.com/vweevers))
- README: fix bad async code example ([**@ralphtheninja**](https://github.com/ralphtheninja))
- Upgrade `deferred-leveldown` ([**@ralphtheninja**](https://github.com/ralphtheninja))
### Removed
* Remove unstable typings and Typescript tests (@MeirionHughes)
- Remove unstable typings and Typescript tests ([**@MeirionHughes**](https://github.com/MeirionHughes))
## [2.0.0-rc3] - 2017-09-15
### Changed
* Refactor typings, use `abstract-leveldown` types (@MeirionHughes)
* Update `leveldown` (@MeirionHughes)
- Refactor typings, use `abstract-leveldown` types ([**@MeirionHughes**](https://github.com/MeirionHughes))
- Upgrade `leveldown` ([**@MeirionHughes**](https://github.com/MeirionHughes))
### Fixed
* Correct bad encoding options in tests (@MeirionHughes)
- Correct bad encoding options in tests ([**@MeirionHughes**](https://github.com/MeirionHughes))
## [2.0.0-rc2] - 2017-09-11
### Added
* README: add node version badge (@ralphtheninja)
* Add Typescript definitions and testing (@MeirionHughes)
- README: add node version badge ([**@ralphtheninja**](https://github.com/ralphtheninja))
- Add Typescript definitions and testing ([**@MeirionHughes**](https://github.com/MeirionHughes))
### Changed
* README: homogenize readme style (@vweevers)
* Update `level-errors` (@ralphtheninja)
* Optimize Typescript tests (@vweevers)
- README: homogenize readme style ([**@vweevers**](https://github.com/vweevers))
- Upgrade `level-errors` ([**@ralphtheninja**](https://github.com/ralphtheninja))
- Optimize Typescript tests ([**@vweevers**](https://github.com/vweevers))
### Removed
* Remove 7 from Travis (@ralphtheninja)
- Remove 7 from Travis ([**@ralphtheninja**](https://github.com/ralphtheninja))
## [2.0.0-rc1] - 2017-09-01
### Added
* Add `Promise` to the API if callbacks are omitted (@juliangruber)
* Add Greenkeeper badge (@ralphtheninja)
* Add tests for `maybeError()` calling back synchronously if db is closed (@ralphtheninja)
- Add `Promise` to the API if callbacks are omitted ([**@juliangruber**](https://github.com/juliangruber))
- Add Greenkeeper badge ([**@ralphtheninja**](https://github.com/ralphtheninja))
- Add tests for `maybeError()` calling back synchronously if db is closed ([**@ralphtheninja**](https://github.com/ralphtheninja))
### Changed
* Update `deferred-leveldown` to `2.0.0` (@ralphtheninja)
* Change `levelup` constructor to take store as first parameter (@ralphtheninja)
* Switch to use `AbstractLevelDOWN#status` (@ralphtheninja)
* Update copyright year to 2017 (@ralphtheninja)
* Rename `lib/util.js` to `lib/promisify.js` (@ralphtheninja)
- Upgrade `deferred-leveldown` to `2.0.0` ([**@ralphtheninja**](https://github.com/ralphtheninja))
- Change `levelup` constructor to take store as first parameter ([**@ralphtheninja**](https://github.com/ralphtheninja))
- Switch to use `AbstractLevelDOWN#status` ([**@ralphtheninja**](https://github.com/ralphtheninja))
- Upgrade copyright year to 2017 ([**@ralphtheninja**](https://github.com/ralphtheninja))
- Rename `lib/util.js` to `lib/promisify.js` ([**@ralphtheninja**](https://github.com/ralphtheninja))
### Removed
* Remove `approximateSize()` (@ralphtheninja)
* Remove `destroy()` (@ralphtheninja)
* Remove `repair()` (@ralphtheninja)
* Remove `getProperty()` (@ralphtheninja)
* Remove `.errorIfExists` (@ralphtheninja)
* Remove `.createIfMissing` (@ralphtheninja)
* Remove `.compression` (@ralphtheninja)
* Remove `.cacheSize` (@ralphtheninja)
* Remove `.sync` (@ralphtheninja)
* Remove `.fillCache` (@ralphtheninja)
* Remove optional `leveldown` (@ralphtheninja)
* Remove unused `options` parameter from `maybeError` (@ralphtheninja)
* Remove `browser` field from `package.json` (@ralphtheninja)
* Remove 0.12 and 4 from Travis (@juliangruber)
* Remove unused `isDefined` from `lib/util.js` (@ralphtheninja)
* Remove encodings (@ralphtheninja)
* Remove `dispatchError()`, callback is always a function (@ralphtheninja)
- Remove `approximateSize()` ([**@ralphtheninja**](https://github.com/ralphtheninja))
- Remove `destroy()` ([**@ralphtheninja**](https://github.com/ralphtheninja))
- Remove `repair()` ([**@ralphtheninja**](https://github.com/ralphtheninja))
- Remove `getProperty()` ([**@ralphtheninja**](https://github.com/ralphtheninja))
- Remove `.errorIfExists` ([**@ralphtheninja**](https://github.com/ralphtheninja))
- Remove `.createIfMissing` ([**@ralphtheninja**](https://github.com/ralphtheninja))
- Remove `.compression` ([**@ralphtheninja**](https://github.com/ralphtheninja))
- Remove `.cacheSize` ([**@ralphtheninja**](https://github.com/ralphtheninja))
- Remove `.sync` ([**@ralphtheninja**](https://github.com/ralphtheninja))
- Remove `.fillCache` ([**@ralphtheninja**](https://github.com/ralphtheninja))
- Remove optional `leveldown` ([**@ralphtheninja**](https://github.com/ralphtheninja))
- Remove unused `options` parameter from `maybeError` ([**@ralphtheninja**](https://github.com/ralphtheninja))
- Remove `browser` field from `package.json` ([**@ralphtheninja**](https://github.com/ralphtheninja))
- Remove 0.12 and 4 from Travis ([**@juliangruber**](https://github.com/juliangruber))
- Remove unused `isDefined` from `lib/util.js` ([**@ralphtheninja**](https://github.com/ralphtheninja))
- Remove encodings ([**@ralphtheninja**](https://github.com/ralphtheninja))
- Remove `dispatchError()`, callback is always a function ([**@ralphtheninja**](https://github.com/ralphtheninja))
### Fixed
* Fix problems with zalgo in `maybeError()` (@ralphtheninja)
- Fix problems with zalgo in `maybeError()` ([**@ralphtheninja**](https://github.com/ralphtheninja))
## [1.3.9] - 2017-07-26
### Added
* Add `standard` for linting (@ralphtheninja)
* Add 8 to Travis (@ralphtheninja)
- Add `standard` for linting ([**@ralphtheninja**](https://github.com/ralphtheninja))
- Add 8 to Travis ([**@ralphtheninja**](https://github.com/ralphtheninja))
### Changed
* Ignore `package-lock.json` and `yarn.lock` (@ralphtheninja)
* README: make code examples adhere to `standard` (@ralphtheninja)
* Update dependencies (@ralphtheninja)
- Ignore `package-lock.json` and `yarn.lock` ([**@ralphtheninja**](https://github.com/ralphtheninja))
- README: make code examples adhere to `standard` ([**@ralphtheninja**](https://github.com/ralphtheninja))
- Upgrade dependencies ([**@ralphtheninja**](https://github.com/ralphtheninja))
## [1.3.8] - 2017-05-29
### Changed
* Revert previous `getLevelDOWN` fix (@ralphtheninja)
* Throw more descriptive error if db factory is not a function (@ralphtheninja)
- Revert previous `getLevelDOWN` fix ([**@ralphtheninja**](https://github.com/ralphtheninja))
- Throw more descriptive error if db factory is not a function ([**@ralphtheninja**](https://github.com/ralphtheninja))
## [1.3.7] - 2017-05-24
### Fixed
* Avoid calling `getLevelDOWN` if not present (@diasdavid)
- Avoid calling `getLevelDOWN` if not present ([**@diasdavid**](https://github.com/diasdavid))
## [1.3.6] - 2017-05-10
### Changed
* Pull `LevelDOWN` loader out to non browserified module (@kemitchell)
- Pull `LevelDOWN` loader out to non browserified module ([**@kemitchell**](https://github.com/kemitchell))
## [1.3.5] - 2017-03-02
### Changed
* Explicitly require `leveldown/package.json` (@PascalTemel)
- Explicitly require `leveldown/package.json` ([**@PascalTemel**](https://github.com/PascalTemel))
## [1.3.4] - 2017-03-02
### Added
* Add 7 to Travis (@ralphtheninja)
- Add 7 to Travis ([**@ralphtheninja**](https://github.com/ralphtheninja))
### Removed
* Remove 0.10 and 5 from Travis (@ralphtheninja)
- Remove 0.10 and 5 from Travis ([**@ralphtheninja**](https://github.com/ralphtheninja))
## [1.3.3] - 2016-10-09
### Changed
* README: fix typo (@jamesgrayling)
* README: fix typo (@danielravina)
* README: fix typo (@juliangruber)
- README: fix typo ([**@jamesgrayling**](https://github.com/jamesgrayling))
- README: fix typo ([**@danielravina**](https://github.com/danielravina))
- README: fix typo ([**@juliangruber**](https://github.com/juliangruber))
## [1.3.2] - 2016-05-17
### Added
* Add node 6 to Travis (@ralphtheninja)
- Add node 6 to Travis ([**@ralphtheninja**](https://github.com/ralphtheninja))
### Changed
* Use `sudo: false` to run tests in containers on Travis (@ralphtheninja)
* Update `package.json` (@0x00A)
* README: fix typos (@pra85)
* README: changed build status ticker from png to svg (@montyanderson)
* README: link build badge to master branch (@a0viedo)
* Update copyright year to 2016 (@ralphtheninja)
* Rename `appromixate-size-test.js` to `approximate-size-test.js` (@ralphtheninja)
- Use `sudo: false` to run tests in containers on Travis ([**@ralphtheninja**](https://github.com/ralphtheninja))
- Update `package.json` ([**@0x00A**](https://github.com/0x00A))
- README: fix typos ([**@pra85**](https://github.com/pra85))
- README: changed build status ticker from png to svg ([**@montyanderson**](https://github.com/montyanderson))
- README: link build badge to master branch ([**@a0viedo**](https://github.com/a0viedo))
- Update copyright year to 2016 ([**@ralphtheninja**](https://github.com/ralphtheninja))
- Rename `appromixate-size-test.js` to `approximate-size-test.js` ([**@ralphtheninja**](https://github.com/ralphtheninja))
### Removed
* Remove non supported versions from Travis (@ralphtheninja)
- Remove non supported versions from Travis ([**@ralphtheninja**](https://github.com/ralphtheninja))
### Fixed
* Ensure Travis can compile in case no prebuilt binaries can be found (@ralphtheninja)
* Fix deprecation test (@juliangruber)
- Ensure Travis can compile in case no prebuilt binaries can be found ([**@ralphtheninja**](https://github.com/ralphtheninja))
- Fix deprecation test ([**@juliangruber**](https://github.com/juliangruber))
## [1.3.1] - 2015-12-10
### Added
* Add node 5 to travis (@ralphtheninja)
- Add node 5 to travis ([**@ralphtheninja**](https://github.com/ralphtheninja))
### Changed
* Update outdated dependencies (@ralphtheninja)
* Test on latest node 2, node 3 (@ralphtheninja)
- Upgrade outdated dependencies ([**@ralphtheninja**](https://github.com/ralphtheninja))
- Test on latest node 2, node 3 ([**@ralphtheninja**](https://github.com/ralphtheninja))
## [1.3.0] - 2015-11-12
### Changed
* README: fixed small typo (Stephen Sawchuck)
* README: update url to Snappy (@hansott)
* README: add dependency badge (@ralphtheninja)
* Test on all major abi versions (@ralphtheninja)
* Update outdated dependencies (@ralphtheninja)
* Track and expose chained batch ops queue length (@kemitchell)
- README: fixed small typo (Stephen Sawchuck)
- README: update url to Snappy ([**@hansott**](https://github.com/hansott))
- README: add dependency badge ([**@ralphtheninja**](https://github.com/ralphtheninja))
- Test on all major abi versions ([**@ralphtheninja**](https://github.com/ralphtheninja))
- Upgrade outdated dependencies ([**@ralphtheninja**](https://github.com/ralphtheninja))
- Track and expose chained batch ops queue length ([**@kemitchell**](https://github.com/kemitchell))
### Fixed
* Dev depend on `tap` to fix `npm@3` warning (@ralphtheninja)
- Dev depend on `tap` to fix `npm@3` warning ([**@ralphtheninja**](https://github.com/ralphtheninja))
## [1.2.1] - 2015-06-10
### Changed
* Improve error message when trying to require `leveldown` (@ralphtheninja)
- Improve error message when trying to require `leveldown` ([**@ralphtheninja**](https://github.com/ralphtheninja))
## [1.2.0] - 2015-06-04
### Changed
* Less restrictive version on `leveldown` (@ralphtheninja)
- Less restrictive version on `leveldown` ([**@ralphtheninja**](https://github.com/ralphtheninja))
### Fixed
* Handle errors in benchmarks (@juliangruber)
- Handle errors in benchmarks ([**@juliangruber**](https://github.com/juliangruber))
## [1.1.1] - 2015-05-29
### Added
* Add link to `level/community` (@ralphtheninja)
- Add link to `level/community` ([**@ralphtheninja**](https://github.com/ralphtheninja))
### Changed
* Update `leveldown` dependency (@juliangruber)
- Upgrade `leveldown` dependency ([**@juliangruber**](https://github.com/juliangruber))
### Removed
* Remove compression tests (@juliangruber)
- Remove compression tests ([**@juliangruber**](https://github.com/juliangruber))
## [1.1.0] - 2015-05-17
### Changed
* Batch operation default to `'put'` (@ralphtheninja)
- Batch operation default to `'put'` ([**@ralphtheninja**](https://github.com/ralphtheninja))
## [1.0.0] - 2015-05-14
### Removed
* Remove return values from `dispatchError()` and `readError()`, they are used as voids (@ralphtheninja)
- Remove return values from `dispatchError()` and `readError()`, they are used as voids ([**@ralphtheninja**](https://github.com/ralphtheninja))
## [1.0.0-5] - 2015-05-07
### Changed
* Target multiple iojs versions, remove notifications (@ralphtheninja)
* Deprecate static functions `destroy()` and `repair()` (@juliangruber)
- Target multiple iojs versions, remove notifications ([**@ralphtheninja**](https://github.com/ralphtheninja))
- Deprecate static functions `destroy()` and `repair()` ([**@juliangruber**](https://github.com/juliangruber))
## [1.0.0-4] - 2015-05-06
### Changed
* Deprecate `.approximateSize()` (@juliangruber)
- Deprecate `.approximateSize()` ([**@juliangruber**](https://github.com/juliangruber))
## [1.0.0-3] - 2015-05-05
### Changed
* Replace `tap` with `tape` + `faucet` (@ralphtheninja)
* Refactor read streams using `level-iterator-stream` and `level-codec` (@juliangruber)
- Replace `tap` with `tape` + `faucet` ([**@ralphtheninja**](https://github.com/ralphtheninja))
- Refactor read streams using `level-iterator-stream` and `level-codec` ([**@juliangruber**](https://github.com/juliangruber))
## [1.0.0-2] - 2015-04-30
### Changed
* Refactor ltgt encoding (@juliangruber)
- Refactor ltgt encoding ([**@juliangruber**](https://github.com/juliangruber))
### Fixed
* Fix readStream \*AsBuffer options (@juliangruber)
- Fix readStream \*AsBuffer options ([**@juliangruber**](https://github.com/juliangruber))
## [1.0.0-1] - 2015-04-28
### Added
* Add test for `valueEncoding` `'hex'` for `createReadStream` (@braydonf)
- Add test for `valueEncoding` `'hex'` for `createReadStream` ([**@braydonf**](https://github.com/braydonf))
### Changed
* Update dependencies (@ralphtheninja)
- Upgrade dependencies ([**@ralphtheninja**](https://github.com/ralphtheninja))
### Fixed
* Fix `valueEncoding` bug by passing options without array (@braydonf)
- Fix `valueEncoding` bug by passing options without array ([**@braydonf**](https://github.com/braydonf))
## [1.0.0-0] - 2015-04-28
### Added
* Add @jcrugzz as contributor
* Add 0.12 and iojs to Travis (@ralphtheninja)
- Add [**@jcrugzz**](https://github.com/jcrugzz) as contributor
- Add 0.12 and iojs to Travis ([**@ralphtheninja**](https://github.com/ralphtheninja))
### Changed
* Support values to be `null` or `undefined` (@kesla)
* README: explain callback arguments to `del` (@bewest)
* README: update logo and copyright (@ralphtheninja)
* README: remove docs on `createWriteStream()` and add note on what happened to it (@jcrugzz)
* README: tweak explanation on why `createWriteStream()` was removed (@ralphtheninja)
* README: clean up old `level-ws` reference (@ralphtheninja)
* README: changed options for get to same as put (@RichardLitt)
* README: remove reference to write-stream and iterators (@ralphtheninja)
* Explicit devdep versions (@rvagg)
* Update Travis and `package.json` scripts (@jcrugzz)
* Added errors to the available namespace when requiring `levelup` (@braydonf)
* Extract error codes into `level-errors` module (@ralphtheninja)
* Use `level-codec` (@juliangruber)
* Refactor iterators using new `deferred-leveldown` (@juliangruber)
- Support values to be `null` or `undefined` ([**@kesla**](https://github.com/kesla))
- README: explain callback arguments to `del` ([**@bewest**](https://github.com/bewest))
- README: update logo and copyright ([**@ralphtheninja**](https://github.com/ralphtheninja))
- README: remove docs on `createWriteStream()` and add note on what happened to it ([**@jcrugzz**](https://github.com/jcrugzz))
- README: tweak explanation on why `createWriteStream()` was removed ([**@ralphtheninja**](https://github.com/ralphtheninja))
- README: clean up old `level-ws` reference ([**@ralphtheninja**](https://github.com/ralphtheninja))
- README: changed options for get to same as put ([**@RichardLitt**](https://github.com/RichardLitt))
- README: remove reference to write-stream and iterators ([**@ralphtheninja**](https://github.com/ralphtheninja))
- Explicit devdep versions ([**@rvagg**](https://github.com/rvagg))
- Update Travis and `package.json` scripts ([**@jcrugzz**](https://github.com/jcrugzz))
- Added errors to the available namespace when requiring `levelup` ([**@braydonf**](https://github.com/braydonf))
- Extract error codes into `level-errors` module ([**@ralphtheninja**](https://github.com/ralphtheninja))
- Use `level-codec` ([**@juliangruber**](https://github.com/juliangruber))
- Refactor iterators using new `deferred-leveldown` ([**@juliangruber**](https://github.com/juliangruber))
### Removed
* Remove 0.8 from Travis (@rvagg)
* Remove references to write-stream in tests (@jcrugzz)
* Remove references to write-stream (@jcrugzz)
* Remove fstream based tests (@jcrugzz)
* Remove `copy` as it requires write-stream (@jcrugzz)
* Remove unused dependencies (@ralphtheninja)
* Remove `encoding` option (@juliangruber)
* Remove `leveled` benchmarks (@juliangruber)
- Remove 0.8 from Travis ([**@rvagg**](https://github.com/rvagg))
- Remove references to write-stream in tests ([**@jcrugzz**](https://github.com/jcrugzz))
- Remove references to write-stream ([**@jcrugzz**](https://github.com/jcrugzz))
- Remove fstream based tests ([**@jcrugzz**](https://github.com/jcrugzz))
- Remove `copy` as it requires write-stream ([**@jcrugzz**](https://github.com/jcrugzz))
- Remove unused dependencies ([**@ralphtheninja**](https://github.com/ralphtheninja))
- Remove `encoding` option ([**@juliangruber**](https://github.com/juliangruber))
- Remove `leveled` benchmarks ([**@juliangruber**](https://github.com/juliangruber))
### Fixed
* README: fix the leveldb link (@seriousManual)
* Use newer memdown store (@sorribas)
* Check `notFound` on err (@doowb)
* Fix benchmarks by installing `leveldown@^0.10.4` (@juliangruber)
* Fix `stream-bench.js` (@juliangruber)
* Replace `rvagg/node-` with `level` (@ralphtheninja)
- README: fix the leveldb link ([**@seriousManual**](https://github.com/seriousManual))
- Use newer memdown store ([**@sorribas**](https://github.com/sorribas))
- Check `notFound` on err ([**@doowb**](https://github.com/doowb))
- Fix benchmarks by installing `leveldown@^0.10.4` ([**@juliangruber**](https://github.com/juliangruber))
- Fix `stream-bench.js` ([**@juliangruber**](https://github.com/juliangruber))
- Replace `rvagg/node-` with `level` ([**@ralphtheninja**](https://github.com/ralphtheninja))
## [0.19.1] - 2016-01-23
### Added
* Add 0.12, 1.0, 1.8, 2, 3, 4, 5 to Travis (@ralphtheninja)
* Add `tape@4.x.x` (@ralphtheninja)
- Add 0.12, 1.0, 1.8, 2, 3, 4, 5 to Travis ([**@ralphtheninja**](https://github.com/ralphtheninja))
- Add `tape@4.x.x` ([**@ralphtheninja**](https://github.com/ralphtheninja))
### Changed
* Update `semver` (@ralphtheninja)
* Update `tap` (@ralphtheninja)
* Update compiler on Travis (@ralphtheninja)
* Fix `bustermove` version (@ralphtheninja)
- Upgrade `semver` ([**@ralphtheninja**](https://github.com/ralphtheninja))
- Upgrade `tap` ([**@ralphtheninja**](https://github.com/ralphtheninja))
- Update compiler on Travis ([**@ralphtheninja**](https://github.com/ralphtheninja))
- Fix `bustermove` version ([**@ralphtheninja**](https://github.com/ralphtheninja))
### Removed
* Remove 0.8 from Travis (@ralphtheninja)
- Remove 0.8 from Travis ([**@ralphtheninja**](https://github.com/ralphtheninja))
## [0.19.0] - 2014-08-26
### Added
* Add suport for `lt`, `lte`, `gt`, and `gte` (@dominictarr)
* Add `isDefined` to util (@dominictarr)
- Add suport for `lt`, `lte`, `gt`, and `gte` ([**@dominictarr**](https://github.com/dominictarr))
- Add `isDefined` to util ([**@dominictarr**](https://github.com/dominictarr))
### Changed
* Refactor encodings and codec from util to separate file (@dominictarr)
* Decouple codec from levelup parts for allowing arbitrary encoding strategies (@dominictarr)
* Decouple read-stream from encoding and opening stuff (@dominictarr)
* Keep codec on the db as `db._codec` (@dominictarr)
* Refactor error checks (@dominictarr)
* README: document `lt`, `lte`, `gt`, and `gte` (@dominictarr)
* README: clarify ltgt (@dominictarr)
* README: unmention bops (@dominictarr)
* README: discourage the use of `start` and `end` a bit (@raboof)
* README: document what `limit` does in reverse mode (@raboof)
* README: use highest/lowest instead of largest/smallest (@raboof)
* Binary encoding in the browser (@calvinmetcalf)
* Document code with comments (@dominictarr)
* Minor style fixes (@rvagg)
* Minor whitespace changes (@rvagg)
* Update nodeico badge (@rvagg)
- Refactor encodings and codec from util to separate file ([**@dominictarr**](https://github.com/dominictarr))
- Decouple codec from levelup parts for allowing arbitrary encoding strategies ([**@dominictarr**](https://github.com/dominictarr))
- Decouple read-stream from encoding and opening stuff ([**@dominictarr**](https://github.com/dominictarr))
- Keep codec on the db as `db._codec` ([**@dominictarr**](https://github.com/dominictarr))
- Refactor error checks ([**@dominictarr**](https://github.com/dominictarr))
- README: document `lt`, `lte`, `gt`, and `gte` ([**@dominictarr**](https://github.com/dominictarr))
- README: clarify ltgt ([**@dominictarr**](https://github.com/dominictarr))
- README: unmention bops ([**@dominictarr**](https://github.com/dominictarr))
- README: discourage the use of `start` and `end` a bit ([**@raboof**](https://github.com/raboof))
- README: document what `limit` does in reverse mode ([**@raboof**](https://github.com/raboof))
- README: use highest/lowest instead of largest/smallest ([**@raboof**](https://github.com/raboof))
- Binary encoding in the browser ([**@calvinmetcalf**](https://github.com/calvinmetcalf))
- Document code with comments ([**@dominictarr**](https://github.com/dominictarr))
- Minor style fixes ([**@rvagg**](https://github.com/rvagg))
- Minor whitespace changes ([**@rvagg**](https://github.com/rvagg))
- Update nodeico badge ([**@rvagg**](https://github.com/rvagg))
### Fixed
* Fix license (@rvagg)
- Fix license ([**@rvagg**](https://github.com/rvagg))
## [0.18.6] - 2014-07-26
### Changed
* Change from MIT +no-false-attribs License to plain MIT (@andrewrk)
* Upgrade `bl` dependency (@raynos)
- Change from MIT +no-false-attribs License to plain MIT ([**@andrewrk**](https://github.com/andrewrk))
- Upgrade `bl` dependency ([**@raynos**](https://github.com/raynos))
## [0.18.5] - 2014-06-26
### Fixed
* Replace `concat-stream` with `bl`, fixes [#251](https://github.com/Level/levelup/issues/251) (@rvagg)
- Replace `concat-stream` with `bl`, fixes [#251](https://github.com/Level/levelup/issues/251) ([**@rvagg**](https://github.com/rvagg))
## [0.18.4] - 2014-06-24
### Changed
* Reorder dependencies (@juliangruber)
* Update dependencies (@rvagg)
- Reorder dependencies ([**@juliangruber**](https://github.com/juliangruber))
- Upgrade dependencies ([**@rvagg**](https://github.com/rvagg))
### Fixed
* Fix race condition on read stream's `self._iterator` (@nolanlawson)
- Fix race condition on read stream's `self._iterator` ([**@nolanlawson**](https://github.com/nolanlawson))
## [0.18.3] - 2014-04-26
### Changed
* README: fix formatting (@rvagg)
* README: minor corrections (@guybrush)
* README: fix leveldown method wording (@juliangruber)
* README: clarify `start`, `end` and `limit` options in `createReadStream` docs (@maxogden)
- README: fix formatting ([**@rvagg**](https://github.com/rvagg))
- README: minor corrections ([**@guybrush**](https://github.com/guybrush))
- README: fix leveldown method wording ([**@juliangruber**](https://github.com/juliangruber))
- README: clarify `start`, `end` and `limit` options in `createReadStream` docs ([**@maxogden**](https://github.com/maxogden))
### Removed
* Remove `bops` and use `Buffer` instead (@nolanlawson)
- Remove `bops` and use `Buffer` instead ([**@nolanlawson**](https://github.com/nolanlawson))
## [0.18.2] - 2013-11-26
### Added
* Add `DNT` configuration (@rvagg)
- Add `DNT` configuration ([**@rvagg**](https://github.com/rvagg))
### Changed
* Use `readable-stream` from user land across all node version (@rvagg)
- Use `readable-stream` from user land across all node version ([**@rvagg**](https://github.com/rvagg))
## [0.18.1] - 2013-11-20
### Changed
* Make chained-batch obey global LevelUP object options (@mcavage)
- Make chained-batch obey global LevelUP object options ([**@mcavage**](https://github.com/mcavage))
## [0.18.0] - 2013-11-18
### Changed
* Upgrade to `LevelDOWN@0.10.0` (and bops@0.1.0 and readable-stream@1.1.9) (@rvagg)
- Upgrade to `LevelDOWN@0.10.0` (and bops@0.1.0 and readable-stream@1.1.9) ([**@rvagg**](https://github.com/rvagg))
## [0.17.0] - 2013-10-01
### Changed
* Undo factory pattern, use plain prototypal object and expose full prototype (@rvagg)
* Move Batch object to batch.js and expose (@rvagg)
* Use new package, DeferredLevelDOWN to handle all deferred open logic (@rvagg)
* Code cleanup, update deps (xtend) (@rvagg, @juliangruber)
- Undo factory pattern, use plain prototypal object and expose full prototype ([**@rvagg**](https://github.com/rvagg))
- Move Batch object to batch.js and expose ([**@rvagg**](https://github.com/rvagg))
- Use new package, DeferredLevelDOWN to handle all deferred open logic ([**@rvagg**](https://github.com/rvagg))
- Code cleanup, update deps (xtend) ([**@rvagg**](https://github.com/rvagg), [**@juliangruber**](https://github.com/juliangruber))
## [0.16.0] - 2013-09-10
### Added
* Add `notFound` boolean property and `status=404` property to NotFoundError (@rvagg)
- Add `notFound` boolean property and `status=404` property to NotFoundError ([**@rvagg**](https://github.com/rvagg))
### Changed
* Upgrade to `errno@0.1.0` which aliases `.type` and `.name` properties (@rvagg)
* ReadStream gracefully handles multiple `destroy()` calls (@mcollina)
- Upgrade to `errno@0.1.0` which aliases `.type` and `.name` properties ([**@rvagg**](https://github.com/rvagg))
- ReadStream gracefully handles multiple `destroy()` calls ([**@mcollina**](https://github.com/mcollina))
## [0.15.0] - 2013-08-26
### Added
* Add @substack as contributor
- Add [**@substack**](https://github.com/substack) as contributor
### Changed
* New ReadStream: upgrade to streams2, remove all state-management cruft, remove fstream support (@substack)
* Update LevelDOWN dependency to ~0.8.0 with Iterator lt/lte/gt/gte support and NAN as a dependency (@rvagg)
- New ReadStream: upgrade to streams2, remove all state-management cruft, remove fstream support ([**@substack**](https://github.com/substack))
- Upgrade LevelDOWN dependency to ~0.8.0 with Iterator lt/lte/gt/gte support and NAN as a dependency ([**@rvagg**](https://github.com/rvagg))
## [0.14.0] - 2013-08-19
### Changed
* Encodings overhaul, allow custom encoders/decoders for `keyEncoding` or `valueEncoding` (@dominictarr)
- Encodings overhaul, allow custom encoders/decoders for `keyEncoding` or `valueEncoding` ([**@dominictarr**](https://github.com/dominictarr))
## [0.13.0] - 2013-08-11
### Changed
* Update LevelDOWN dependency version ~0.7.0 for Node 0.8->0.11 compatibility (@rvagg)
- Upgrade LevelDOWN dependency version ~0.7.0 for Node 0.8->0.11 compatibility ([**@rvagg**](https://github.com/rvagg))
## [0.12.0] - 2013-07-25
### Changed
* Update LevelDOWN dependency version ~0.6.2 (@rvagg)
- Upgrade LevelDOWN dependency version ~0.6.2 ([**@rvagg**](https://github.com/rvagg))
## [0.11.0] - 2013-07-17
### Added
* Add @pgte as contributor
- Add [**@pgte**](https://github.com/pgte) as contributor
### Changed
* Switch from direct Buffer access to bops for better browser compatibility (@juliangruber)
* WriteStream#end accepts `data` argument (@pgte)
- Switch from direct Buffer access to bops for better browser compatibility ([**@juliangruber**](https://github.com/juliangruber))
- WriteStream#end accepts `data` argument ([**@pgte**](https://github.com/pgte))
### Removed
* Remove all Function#bind calls for better browser compatibility (@juliangruber)
- Remove all Function#bind calls for better browser compatibility ([**@juliangruber**](https://github.com/juliangruber))
## [0.10.0] - 2013-06-14
### Changed
* Upgrade to `LevelDOWN@0.6.0` which upgrades to `LevelDB@1.11.0`, some important bugfixes: https://groups.google.com/forum/#!topic/leveldb/vS1JvmGlp4E (@rvagg)
- Upgrade to `LevelDOWN@0.6.0` which upgrades to `LevelDB@1.11.0`, some important bugfixes: <https://groups.google.com/forum/#!topic/leveldb/vS1JvmGlp4E> ([**@rvagg**](https://github.com/rvagg))
## [0.9.0] - 2013-05-21
### Changed
* Use LevelDOWN@0.5.0, see https://github.com/level/leveldown/blob/master/CHANGELOG.md for details (@rvagg)
* Race-condition(ish) fixed in ReadStream--createReadStream() does not start immediately and therefore allowed put()s to happen before the stream starts (@dominictarr)
* ReadStream doesn't emit "ready" event (@dominictarr)
* Allow separate encodings per operation in db.batch() (@juliangruber)
* Allow separate encodings per write() in WriteStream (@juliangruber)
* WriteStream supports "type" option ("put" [default] or "del") on constructor and individual write()s (@mcollina)
* Expose LevelDOWN (or LevelDOWN substitute) as `db` property on LevelUP instance (e.g. db.db.approximateSize()) (@rvagg)
* Chained batch exposed from LevelDOWN, invoked with argument-less db.batch() (@juliangruber, @rvagg)
* Significantly improve ReadStream performance by replacing .bind() and .apply() (@mcollina, @kesla)
* Better Browserify support (@rvagg, @juliangruber, @maxogden, etc.)
* Deprecate secondary LevelDB-specific operations on LevelUP, prefer direct LevelDOWN access (approximateSize(), repair(), destroy(), getProperty()--new in LevelDOWN@0.5.0) (@rvagg)
- Use LevelDOWN@0.5.0, see <https://github.com/level/leveldown/blob/master/CHANGELOG.md> for details ([**@rvagg**](https://github.com/rvagg))
- Race-condition(ish) fixed in ReadStream--createReadStream() does not start immediately and therefore allowed put()s to happen before the stream starts ([**@dominictarr**](https://github.com/dominictarr))
- ReadStream doesn't emit "ready" event ([**@dominictarr**](https://github.com/dominictarr))
- Allow separate encodings per operation in db.batch() ([**@juliangruber**](https://github.com/juliangruber))
- Allow separate encodings per write() in WriteStream ([**@juliangruber**](https://github.com/juliangruber))
- WriteStream supports "type" option ("put" [default] or "del") on constructor and individual write()s ([**@mcollina**](https://github.com/mcollina))
- Expose LevelDOWN (or LevelDOWN substitute) as `db` property on LevelUP instance (e.g. db.db.approximateSize()) ([**@rvagg**](https://github.com/rvagg))
- Chained batch exposed from LevelDOWN, invoked with argument-less db.batch() ([**@juliangruber**](https://github.com/juliangruber), [**@rvagg**](https://github.com/rvagg))
- Significantly improve ReadStream performance by replacing .bind() and .apply() ([**@mcollina**](https://github.com/mcollina), [**@kesla**](https://github.com/kesla))
- Better Browserify support ([**@rvagg**](https://github.com/rvagg), [**@juliangruber**](https://github.com/juliangruber), [**@maxogden**](https://github.com/maxogden), etc.)
- Deprecate secondary LevelDB-specific operations on LevelUP, prefer direct LevelDOWN access (approximateSize(), repair(), destroy(), getProperty()--new in LevelDOWN@0.5.0) ([**@rvagg**](https://github.com/rvagg))
### Removed
* Remove "leveldown" from dependencies (see http://r.va.gg/2013/05/levelup-v0.9-some-major-changes.html) (@rvagg)
- Remove "leveldown" from dependencies (see <http://r.va.gg/2013/05/levelup-v0.9-some-major-changes.html>) ([**@rvagg**](https://github.com/rvagg))
## [0.8.0] - 2013-04-17
### Changed
* More comprehensive argument checking, will now report back directly or throw if there is a problem rather than on nextTick (@rvagg)
* Expose `.options` property on LevelUP instances. (@rvagg)
* Further clarify 'encoding' -> 'valueEncoding' shift. db.options.valueEncoding is now authoritative even if user used 'encoding' on initialisation. (@rvagg)
* `level` package now published to npm that bundles `LevelUP` and `LevelDOWN` and exposes `LevelUP` directly; for planned shift to detaching LevelDOWN as a direct-dependency of LevelUP. (@rvagg)
- More comprehensive argument checking, will now report back directly or throw if there is a problem rather than on nextTick ([**@rvagg**](https://github.com/rvagg))
- Expose `.options` property on LevelUP instances. ([**@rvagg**](https://github.com/rvagg))
- Further clarify 'encoding' -> 'valueEncoding' shift. db.options.valueEncoding is now authoritative even if user used 'encoding' on initialisation. ([**@rvagg**](https://github.com/rvagg))
- `level` package now published to npm that bundles `LevelUP` and `LevelDOWN` and exposes `LevelUP` directly; for planned shift to detaching LevelDOWN as a direct-dependency of LevelUP. ([**@rvagg**](https://github.com/rvagg))
## [0.7.0] - 2013-04-08
### Added
* Add windows support in `LevelDOWN@0.2.0` (@rvagg)
* Add 'db' option on constructor to replace LevelDOWN (@rvagg)
* Add `repair()` and `destroy()` aliases for LevelDOWN implementations (@rvagg)
- Add windows support in `LevelDOWN@0.2.0` ([**@rvagg**](https://github.com/rvagg))
- Add 'db' option on constructor to replace LevelDOWN ([**@rvagg**](https://github.com/rvagg))
- Add `repair()` and `destroy()` aliases for LevelDOWN implementations ([**@rvagg**](https://github.com/rvagg))
### Changed
* Improved ReadStream reverse=true start key handling (@kesla)
* ReadStream empty start and end keys ignored rather than segfault (@kesla)
* 'encoding' option now an alias for `valueEncoding` only, `keyEncoding` defaults to `'utf8'` and must be changed explicitly (@rvagg)
- Improved ReadStream reverse=true start key handling ([**@kesla**](https://github.com/kesla))
- ReadStream empty start and end keys ignored rather than segfault ([**@kesla**](https://github.com/kesla))
- 'encoding' option now an alias for `valueEncoding` only, `keyEncoding` defaults to `'utf8'` and must be changed explicitly ([**@rvagg**](https://github.com/rvagg))
### Fixed
* Fix early `close` emit in WriteStream (@rvagg)
- Fix early `close` emit in WriteStream ([**@rvagg**](https://github.com/rvagg))
## [0.6.2] - 2013-03-04
### Changed
* Use `xtend` package instead of internal `util._extend` (@ralphtheninja)
* Internal cleanup of `callback` argument detection (@ralphtheninja)
* Move deferred-open-operations into an internal `this._db` wrapper rather than make them call public .get()/.put() etc. for a second time (@dominictarr)
- Use `xtend` package instead of internal `util._extend` ([**@ralphtheninja**](https://github.com/ralphtheninja))
- Internal cleanup of `callback` argument detection ([**@ralphtheninja**](https://github.com/ralphtheninja))
- Move deferred-open-operations into an internal `this._db` wrapper rather than make them call public .get()/.put() etc. for a second time ([**@dominictarr**](https://github.com/dominictarr))
## [0.6.1] - 2013-03-01
### Changed
* Internal code cleanup and refactoring (@ralphtheninja)
- Internal code cleanup and refactoring ([**@ralphtheninja**](https://github.com/ralphtheninja))
### Fixed
* Fix multiple `iterator.end()` calls in ReadStreams throwing errors, destroy() called while read/next is in progress #82 #83 #84 (@rvagg)
- Fix multiple `iterator.end()` calls in ReadStreams throwing errors, destroy() called while read/next is in progress [#82](https://github.com/level/levelup/issues/82) [#83](https://github.com/level/levelup/issues/83) [#84](https://github.com/level/levelup/issues/84) ([**@rvagg**](https://github.com/rvagg))
## [0.6.0] - 2013-02-25
### Changed
* Rename `ReadStream`, `KeyStream` and `ValueStream` to `createReadStream`, `createKeyStream` and `createValueStream` (@rvagg)
* Complete transition to `LevelDOWN` for the `LevelDB` binding. No native code left in `LevelUP` (@rvagg)
- LevelDOWN now keeps its own ChangeLog at: https://github.com/level/leveldown/blob/master/CHANGELOG.md
- LevelDB@1.9.0 and Snappy@1.1.0 are included in LevelDOWN@0.1.2
- Rename `ReadStream`, `KeyStream` and `ValueStream` to `createReadStream`, `createKeyStream` and `createValueStream` ([**@rvagg**](https://github.com/rvagg))
- Complete transition to `LevelDOWN` for the `LevelDB` binding. No native code left in `LevelUP` ([**@rvagg**](https://github.com/rvagg))
- LevelDOWN now keeps its own ChangeLog at: <https://github.com/level/leveldown/blob/master/CHANGELOG.md>
- LevelDB@1.9.0 and Snappy@1.1.0 are included in LevelDOWN@0.1.2
## [0.6.0-rc1] - 2013-02-24
### Changed
* Refactor and simplify db state code (@ralphtheninja)
* Extract all binding code to `leveldown` project (@rvagg)
* Depend on `leveldown@0.0.1` (@rvagg)
* Simplify callback signature by removing extra, undocumented properties from some callbacks (@rvagg, @dominictarr)
- Refactor and simplify db state code ([**@ralphtheninja**](https://github.com/ralphtheninja))
- Extract all binding code to `leveldown` project ([**@rvagg**](https://github.com/rvagg))
- Depend on `leveldown@0.0.1` ([**@rvagg**](https://github.com/rvagg))
- Simplify callback signature by removing extra, undocumented properties from some callbacks ([**@rvagg**](https://github.com/rvagg), [**@dominictarr**](https://github.com/dominictarr))
## [0.5.4] - 2013-02-15
### Changed
* Move `encodingOpts` from `levelup.js` to `util.js` (@ralphtheninja)
* Allow one `next()` at a time, improve `end()` handling (@rvagg)
* Use explicit namespaces in C++ (@rvagg)
- Move `encodingOpts` from `levelup.js` to `util.js` ([**@ralphtheninja**](https://github.com/ralphtheninja))
- Allow one `next()` at a time, improve `end()` handling ([**@rvagg**](https://github.com/rvagg))
- Use explicit namespaces in C++ ([**@rvagg**](https://github.com/rvagg))
### Removed
* Remove `CloseError` (@ralphtheninja)
* Remove `.useBatch` in `copy()` (@ralphtheninja)
* Ensure iterator `end` and `next` don't conflict (@rvagg)
- Remove `CloseError` ([**@ralphtheninja**](https://github.com/ralphtheninja))
- Remove `.useBatch` in `copy()` ([**@ralphtheninja**](https://github.com/ralphtheninja))
- Ensure iterator `end` and `next` don't conflict ([**@rvagg**](https://github.com/rvagg))
### Fixed
* Fix `put`/`batch` bug in `WriteStream#_process()` (@ralphtheninja)
* Fix memory leak, `Persistent<Function>` callback not Dispose()d for `readStream()` (@rvagg)
- Fix `put`/`batch` bug in `WriteStream#_process()` ([**@ralphtheninja**](https://github.com/ralphtheninja))
- Fix memory leak, `Persistent<Function>` callback not Dispose()d for `readStream()` ([**@rvagg**](https://github.com/rvagg))
## [0.5.3-1] - 2013-02-05
### Changed
* Non shrinkwrapped release @rvagg
- Non shrinkwrapped release [**@rvagg**](https://github.com/rvagg)
## [0.5.3] - 2013-01-28
### Changed
* Disable all sqlite3 benchmarks (@ralphtheninja)
* Put `LevelUP()` into closure (@ralphtheninja)
* Swap `bufferstream` dependency for `simple-bufferstream` (@rvagg)
* Make `location` a read-only property on db object (@rvagg)
- Disable all sqlite3 benchmarks ([**@ralphtheninja**](https://github.com/ralphtheninja))
- Put `LevelUP()` into closure ([**@ralphtheninja**](https://github.com/ralphtheninja))
- Swap `bufferstream` dependency for `simple-bufferstream` ([**@rvagg**](https://github.com/rvagg))
- Make `location` a read-only property on db object ([**@rvagg**](https://github.com/rvagg))
## [0.5.2] - 2013-01-23
### Fixed
* Fix incorrect scope in approximateSize function (@sandfox)
- Fix incorrect scope in approximateSize function ([**@sandfox**](https://github.com/sandfox))
## [0.5.1] - 2013-01-10
### Changed
* Version bump (@rvagg)
- Version bump ([**@rvagg**](https://github.com/rvagg))
## [0.5.0-1] - 2013-01-09

@@ -615,193 +744,232 @@

### Changed
* Change `createIfMissing` option default to `true` (@rvagg)
* Use `util._extend` instead of local variant (@rvagg)
- Change `createIfMissing` option default to `true` ([**@rvagg**](https://github.com/rvagg))
- Use `util._extend` instead of local variant ([**@rvagg**](https://github.com/rvagg))
## [0.5.0] - 2013-01-08
### Added
* Add support for setting size of LRU-cache (@kesla)
- Add support for setting size of LRU-cache ([**@kesla**](https://github.com/kesla))
### Changed
* Use `util.inherits()` from node core (@ralphtheninja)
* Adjust copyright & contributors (@rvagg)
- Use `util.inherits()` from node core ([**@ralphtheninja**](https://github.com/ralphtheninja))
- Adjust copyright & contributors ([**@rvagg**](https://github.com/rvagg))
### Fixed
* Idempotent open and close, and emit _state as events (@dominictarr)
* Check that UINT32_OPTION_VALUE is a Uint32 (@kesla)
- Idempotent open and close, and emit \_state as events ([**@dominictarr**](https://github.com/dominictarr))
- Check that UINT32_OPTION_VALUE is a Uint32 ([**@kesla**](https://github.com/kesla))
## [0.4.4] - 2013-01-01
### Fixed
* Set `.maxListeners` to `Infinity` to prevent warnings when using deferred open (@juliangruber)
- Set `.maxListeners` to `Infinity` to prevent warnings when using deferred open ([**@juliangruber**](https://github.com/juliangruber))
## [0.4.3] - 2012-12-30
### Added
* Add @kesla to contributors list (@rvagg)
* Add `approximateSize()` (@kesla)
- Add [**@kesla**](https://github.com/kesla) to contributors list ([**@rvagg**](https://github.com/rvagg))
- Add `approximateSize()` ([**@kesla**](https://github.com/kesla))
## [0.4.2] - 2012-12-30
### Added
* Add @ralphtheninja to contributors list (@rvagg)
- Add [**@ralphtheninja**](https://github.com/ralphtheninja) to contributors list ([**@rvagg**](https://github.com/rvagg))
### Fixed
* Use `setImmediate` instead of `process.nextTick` for `node@0.9.5` compatibility (@rvagg)
- Use `setImmediate` instead of `process.nextTick` for `node@0.9.5` compatibility ([**@rvagg**](https://github.com/rvagg))
## [0.4.1] - 2012-12-19
### Removed
* Remove `useBatch` option on `writeStream()` @rvagg
- Remove `useBatch` option on `writeStream()` [**@rvagg**](https://github.com/rvagg)
## [0.4.0] - 2012-12-17
### Added
* Add SQLite3 to test suite (@rvagg)
* Add basic `get()` benchmarks (@rvagg)
* Add `compress` boolean on `open()` (@rvagg)
- Add SQLite3 to test suite ([**@rvagg**](https://github.com/rvagg))
- Add basic `get()` benchmarks ([**@rvagg**](https://github.com/rvagg))
- Add `compress` boolean on `open()` ([**@rvagg**](https://github.com/rvagg))
### Changed
* Speed up `batch()` and allow non-Strings to C++ (@rvagg)
* Improved compression test (@rvagg)
* Return Strings not Buffers from C++ when possible (@rvagg)
* Optimised encoders and decoders (@rvagg)
* Revamped benchmark suite (@rvagg)
* Allow JS Strings through to native layer (@rvagg)
* Cleaner build for osx (@rvagg)
* Update to `LevelDB@1.7` (@rvagg)
- Speed up `batch()` and allow non-Strings to C++ ([**@rvagg**](https://github.com/rvagg))
- Improved compression test ([**@rvagg**](https://github.com/rvagg))
- Return Strings not Buffers from C++ when possible ([**@rvagg**](https://github.com/rvagg))
- Optimised encoders and decoders ([**@rvagg**](https://github.com/rvagg))
- Revamped benchmark suite ([**@rvagg**](https://github.com/rvagg))
- Allow JS Strings through to native layer ([**@rvagg**](https://github.com/rvagg))
- Cleaner build for osx ([**@rvagg**](https://github.com/rvagg))
- Upgrade to `LevelDB@1.7` ([**@rvagg**](https://github.com/rvagg))
### Removed
* Remove old and unused util functions (@rvagg)
* Remove compile warnings on osx (@rvagg)
* Remove compile warnings for solaris (@rvagg)
- Remove old and unused util functions ([**@rvagg**](https://github.com/rvagg))
- Remove compile warnings on osx ([**@rvagg**](https://github.com/rvagg))
- Remove compile warnings for solaris ([**@rvagg**](https://github.com/rvagg))
### Fixed
* Fix `batch()` benchmarks (@rvagg)
- Fix `batch()` benchmarks ([**@rvagg**](https://github.com/rvagg))
## [0.3.3] - 2012-12-14
### Added
* Add compression tests (@rvagg)
- Add compression tests ([**@rvagg**](https://github.com/rvagg))
### Fixed
* Fix Snappy compression (@rvagg)
- Fix Snappy compression ([**@rvagg**](https://github.com/rvagg))
## [0.3.2] - 2012-11-24
### Added
* Add more functional tests (@rvagg)
* Add snapshot tests (@rvagg)
- Add more functional tests ([**@rvagg**](https://github.com/rvagg))
- Add snapshot tests ([**@rvagg**](https://github.com/rvagg))
### Changed
* Emit raw keys and values in events (@rvagg)
- Emit raw keys and values in events ([**@rvagg**](https://github.com/rvagg))
## [0.3.1] - 2012-11-21
### Added
* Add benchmark suite (@rvagg)
* Add `limit` option to `ReadStream` (@rvagg)
- Add benchmark suite ([**@rvagg**](https://github.com/rvagg))
- Add `limit` option to `ReadStream` ([**@rvagg**](https://github.com/rvagg))
## [0.3.0] - 2012-11-18
### Added
* Add `.status` property to keep track of db status (@raynos, @rvagg)
* Add `CloseError` error type (@raynos, @rvagg)
* Add tests for deferred operations (@rvagg)
- Add `.status` property to keep track of db status ([**@raynos**](https://github.com/raynos), [**@rvagg**](https://github.com/rvagg))
- Add `CloseError` error type ([**@raynos**](https://github.com/raynos), [**@rvagg**](https://github.com/rvagg))
- Add tests for deferred operations ([**@rvagg**](https://github.com/rvagg))
### Changed
* Document events (@rvagg)
* Run the encoding on `start` and `end` in case your keys are JSON encoded (@raynos)
* First attempt at deferring operations. All operations that used to throw when called before open are now called once the database is open (@raynos, @rvagg)
- Document events ([**@rvagg**](https://github.com/rvagg))
- Run the encoding on `start` and `end` in case your keys are JSON encoded ([**@raynos**](https://github.com/raynos))
- First attempt at deferring operations. All operations that used to throw when called before open are now called once the database is open ([**@raynos**](https://github.com/raynos), [**@rvagg**](https://github.com/rvagg))
### Fixed
* If status is `'closing'`, call callback after db is closed (@raynos, @rvagg)
- If status is `'closing'`, call callback after db is closed ([**@raynos**](https://github.com/raynos), [**@rvagg**](https://github.com/rvagg))
## [0.2.1] - 2012-10-28
### Fixed
* Fix db GC when using multiple `ReadStream` (@rvagg)
- Fix db GC when using multiple `ReadStream` ([**@rvagg**](https://github.com/rvagg))
## [0.2.0] - 2012-10-28
### Added
* Add support for Solaris/SunOS/SmartOS (@rvagg)
- Add support for Solaris/SunOS/SmartOS ([**@rvagg**](https://github.com/rvagg))
## [0.1.2] - 2012-10-26
### Fixed
* Fix bug with falsey values on `start` and `end`, fixes [#8](https://github.com/Level/levelup/issues/8) (@rvagg)
- Fix bug with falsey values on `start` and `end`, fixes [#8](https://github.com/Level/levelup/issues/8) ([**@rvagg**](https://github.com/rvagg))
## [0.1.1] - 2012-10-17
### Fixed
* Fix bug with sticky options, fixes [#6](https://github.com/Level/levelup/issues/6) (@rvagg)
- Fix bug with sticky options, fixes [#6](https://github.com/Level/levelup/issues/6) ([**@rvagg**](https://github.com/rvagg))
## [0.1.0] - 2012-09-28
### Added
* Add Travis setup (@rvagg)
* Add `KeyStream()` and `ValueStream()` (@rvagg)
- Add Travis setup ([**@rvagg**](https://github.com/rvagg))
- Add `KeyStream()` and `ValueStream()` ([**@rvagg**](https://github.com/rvagg))
## [0.0.5-1] - 2012-09-28
### Added
* Add description to `package.json` (@rvagg)
- Add description to `package.json` ([**@rvagg**](https://github.com/rvagg))
## [0.0.5] - 2012-09-22
### Changed
* Native layer errors if `key` or `value` are `undefined` or `null` (@rvagg)
- Native layer errors if `key` or `value` are `undefined` or `null` ([**@rvagg**](https://github.com/rvagg))
## [0.0.4] - 2012-09-12
### Fixed
* Fix bug with `options` not being passed to readable streams (@rvagg)
- Fix bug with `options` not being passed to readable streams ([**@rvagg**](https://github.com/rvagg))
## [0.0.3] - 2012-09-09
### Added
* Add `reverse` functionality to readable streams (@rvagg)
- Add `reverse` functionality to readable streams ([**@rvagg**](https://github.com/rvagg))
## [0.0.2-1] - 2012-09-07
### Added
* Add repository information to `package.json` (@rvagg)
- Add repository information to `package.json` ([**@rvagg**](https://github.com/rvagg))
## [0.0.2] - 2012-09-07
### Changed
* Do not encourage using async `throw` in documentation (@rvagg)
* Return to classical prototypal inheritance (@rvagg)
- Do not encourage using async `throw` in documentation ([**@rvagg**](https://github.com/rvagg))
- Return to classical prototypal inheritance ([**@rvagg**](https://github.com/rvagg))
### Fixed
* Fix typos in documentation (@rvagg)
- Fix typos in documentation ([**@rvagg**](https://github.com/rvagg))
## [0.0.1] - 2012-08-31
### Added
* Add `start` and `end` options for readable streams (@rvagg)
* Add `'json'` encoding (@rvagg)
* Add `.nextLocation()`, `.checkBinaryTestData()`, `.loadBinaryTestData()`, `.openTestDatabase()`, `.commonTearDown()`, `.commonSetup()` and `.binaryTestDataMD5Sum` to `test/common.js` (@rvagg)
* Add tests for `.readStream()` with `start` being midway key (@rvagg)
* Add keywords to `package.json` (@rvagg)
- Add `start` and `end` options for readable streams ([**@rvagg**](https://github.com/rvagg))
- Add `'json'` encoding ([**@rvagg**](https://github.com/rvagg))
- Add `.nextLocation()`, `.checkBinaryTestData()`, `.loadBinaryTestData()`, `.openTestDatabase()`, `.commonTearDown()`, `.commonSetup()` and `.binaryTestDataMD5Sum` to `test/common.js` ([**@rvagg**](https://github.com/rvagg))
- Add tests for `.readStream()` with `start` being midway key ([**@rvagg**](https://github.com/rvagg))
- Add keywords to `package.json` ([**@rvagg**](https://github.com/rvagg))
### Changed
* New API. Database constructor now accepts callback (@rvagg)
* Update documentation for new API (@rvagg)
- New API. Database constructor now accepts callback ([**@rvagg**](https://github.com/rvagg))
- Update documentation for new API ([**@rvagg**](https://github.com/rvagg))
### Removed
* Remove usage of `global` in tests (@rvagg)
- Remove usage of `global` in tests ([**@rvagg**](https://github.com/rvagg))
## [0.0.0-1] - 2012-08-18
### Added
* Add `bufferstream` dependency (@rvagg)
- Add `bufferstream` dependency ([**@rvagg**](https://github.com/rvagg))
### Changed
* Document `ReadStream` and `WriteStream` (@rvagg)
* Start using `~` in dependencies (@rvagg)
- Document `ReadStream` and `WriteStream` ([**@rvagg**](https://github.com/rvagg))
- Start using `~` in dependencies ([**@rvagg**](https://github.com/rvagg))
### Removed
* Remove unused `inherits` variable (@rvagg)
- Remove unused `inherits` variable ([**@rvagg**](https://github.com/rvagg))
## 0.0.0 - 2012-08-17

@@ -811,84 +979,168 @@

[Unreleased]: https://github.com/level/levelup/compare/v3.0.1...HEAD
[unreleased]: https://github.com/level/levelup/compare/v3.1.0...HEAD
[3.1.0]: https://github.com/level/levelup/compare/v3.0.1...v3.1.0
[3.0.1]: https://github.com/level/levelup/compare/v3.0.0...v3.0.1
[3.0.0]: https://github.com/level/levelup/compare/v2.0.2...v3.0.0
[2.0.2]: https://github.com/level/levelup/compare/v2.0.1...v2.0.2
[2.0.1]: https://github.com/level/levelup/compare/v2.0.0...v2.0.1
[2.0.0]: https://github.com/level/levelup/compare/v2.0.0-rc3...v2.0.0
[2.0.0-rc3]: https://github.com/level/levelup/compare/v2.0.0-rc2...v2.0.0-rc3
[2.0.0-rc2]: https://github.com/level/levelup/compare/v2.0.0-rc1...v2.0.0-rc2
[2.0.0-rc1]: https://github.com/level/levelup/compare/v1.3.9...v2.0.0-rc1
[1.3.9]: https://github.com/level/levelup/compare/v1.3.8...v1.3.9
[1.3.8]: https://github.com/level/levelup/compare/v1.3.7...v1.3.8
[1.3.7]: https://github.com/level/levelup/compare/v1.3.6...v1.3.7
[1.3.6]: https://github.com/level/levelup/compare/v1.3.5...v1.3.6
[1.3.5]: https://github.com/level/levelup/compare/v1.3.4...v1.3.5
[1.3.4]: https://github.com/level/levelup/compare/v1.3.3...v1.3.4
[1.3.3]: https://github.com/level/levelup/compare/v1.3.2...v1.3.3
[1.3.2]: https://github.com/level/levelup/compare/v1.3.1...v1.3.2
[1.3.1]: https://github.com/level/levelup/compare/v1.3.0...v1.3.1
[1.3.0]: https://github.com/level/levelup/compare/v1.2.1...v1.3.0
[1.2.1]: https://github.com/level/levelup/compare/v1.2.0...v1.2.1
[1.2.0]: https://github.com/level/levelup/compare/v1.1.1...v1.2.0
[1.1.1]: https://github.com/level/levelup/compare/v1.1.0...v1.1.1
[1.1.0]: https://github.com/level/levelup/compare/v1.0.0...v1.1.0
[1.0.0]: https://github.com/level/levelup/compare/v1.0.0-5...v1.0.0
[1.0.0-5]: https://github.com/level/levelup/compare/v1.0.0-4...v1.0.0-5
[1.0.0-4]: https://github.com/level/levelup/compare/v1.0.0-3...v1.0.0-4
[1.0.0-3]: https://github.com/level/levelup/compare/v1.0.0-2...v1.0.0-3
[1.0.0-2]: https://github.com/level/levelup/compare/v1.0.0-1...v1.0.0-2
[1.0.0-1]: https://github.com/level/levelup/compare/v1.0.0-0...v1.0.0-1
[1.0.0-0]: https://github.com/level/levelup/compare/v0.19.0...v1.0.0-0
[0.19.1]: https://github.com/level/levelup/compare/v0.19.0...v0.19.1
[0.19.0]: https://github.com/level/levelup/compare/v0.18.6...v0.19.0
[0.18.6]: https://github.com/level/levelup/compare/v0.18.5...v0.18.6
[0.18.5]: https://github.com/level/levelup/compare/v0.18.4...v0.18.5
[0.18.4]: https://github.com/level/levelup/compare/v0.18.3...v0.18.4
[0.18.3]: https://github.com/level/levelup/compare/v0.18.2...v0.18.3
[0.18.2]: https://github.com/level/levelup/compare/v0.18.1...v0.18.2
[0.18.1]: https://github.com/level/levelup/compare/0.18.0...v0.18.1
[0.18.0]: https://github.com/level/levelup/compare/0.17.0...0.18.0
[0.17.0]: https://github.com/level/levelup/compare/0.16.0...0.17.0
[0.16.0]: https://github.com/level/levelup/compare/0.15.0...0.16.0
[0.15.0]: https://github.com/level/levelup/compare/0.14.0...0.15.0
[0.14.0]: https://github.com/level/levelup/compare/0.13.0...0.14.0
[0.13.0]: https://github.com/level/levelup/compare/0.12.0...0.13.0
[0.12.0]: https://github.com/level/levelup/compare/0.11.0...0.12.0
[0.11.0]: https://github.com/level/levelup/compare/0.10.0...0.11.0
[0.10.0]: https://github.com/level/levelup/compare/0.9.0...0.10.0
[0.9.0]: https://github.com/level/levelup/compare/0.8.0...0.9.0
[0.8.0]: https://github.com/level/levelup/compare/0.7.0...0.8.0
[0.7.0]: https://github.com/level/levelup/compare/0.6.2...0.7.0
[0.6.2]: https://github.com/level/levelup/compare/0.6.1...0.6.2
[0.6.1]: https://github.com/level/levelup/compare/0.6.0...0.6.1
[0.6.0]: https://github.com/level/levelup/compare/0.6.0-rc1...0.6.0
[0.6.0-rc1]: https://github.com/level/levelup/compare/0.5.4...0.6.0-rc1
[0.5.4]: https://github.com/level/levelup/compare/0.5.3-1...0.5.4
[0.5.3-1]: https://github.com/level/levelup/compare/0.5.3...0.5.3-1
[0.5.3]: https://github.com/level/levelup/compare/0.5.2...0.5.3
[0.5.2]: https://github.com/level/levelup/compare/0.5.1...0.5.2
[0.5.1]: https://github.com/level/levelup/compare/0.5.0-1...0.5.1
[0.5.0-1]: https://github.com/level/levelup/compare/0.5.0...0.5.0-1
[0.5.0]: https://github.com/level/levelup/compare/0.4.4...0.5.0
[0.4.4]: https://github.com/level/levelup/compare/0.4.3...0.4.4
[0.4.3]: https://github.com/level/levelup/compare/0.4.2...0.4.3
[0.4.2]: https://github.com/level/levelup/compare/0.4.1...0.4.2
[0.4.1]: https://github.com/level/levelup/compare/0.4.0...0.4.1
[0.4.0]: https://github.com/level/levelup/compare/0.3.3...0.4.0
[0.3.3]: https://github.com/level/levelup/compare/0.3.2...0.3.3
[0.3.2]: https://github.com/level/levelup/compare/0.3.1...0.3.2
[0.3.1]: https://github.com/level/levelup/compare/0.3.0...0.3.1
[0.3.0]: https://github.com/level/levelup/compare/0.2.1...0.3.0
[0.2.1]: https://github.com/level/levelup/compare/0.2.0...0.2.1
[0.2.0]: https://github.com/level/levelup/compare/0.1.2...0.2.0
[0.1.2]: https://github.com/level/levelup/compare/0.1.1...0.1.2
[0.1.1]: https://github.com/level/levelup/compare/0.1.0...0.1.1
[0.1.0]: https://github.com/level/levelup/compare/0.0.5-1...0.1.0
[0.0.5-1]: https://github.com/level/levelup/compare/0.0.5...0.0.5-1
[0.0.5]: https://github.com/level/levelup/compare/0.0.4...0.0.5
[0.0.4]: https://github.com/level/levelup/compare/0.0.3...0.0.4
[0.0.3]: https://github.com/level/levelup/compare/0.0.2-1...0.0.3
[0.0.2-1]: https://github.com/level/levelup/compare/0.0.2...0.0.2-1
[0.0.2]: https://github.com/level/levelup/compare/0.0.1...0.0.2
[0.0.1]: https://github.com/level/levelup/compare/0.0.0-1...0.0.1
[0.0.0-1]: https://github.com/level/levelup/compare/0.0.0...0.0.0-1

@@ -1,7 +0,1 @@

/* Copyright (c) 2012-2018 LevelUP contributors
* See list at <https://github.com/level/levelup#contributing>
* MIT License
* <https://github.com/level/levelup/blob/master/LICENSE.md>
*/
var WriteError = require('level-errors').WriteError

@@ -8,0 +2,0 @@ var promisify = require('./promisify')

@@ -1,7 +0,1 @@

/* Copyright (c) 2012-2018 LevelUP contributors
* See list at <https://github.com/level/levelup#contributing>
* MIT License
* <https://github.com/level/levelup/blob/master/LICENSE.md>
*/
var EventEmitter = require('events').EventEmitter

@@ -270,2 +264,6 @@ var inherits = require('util').inherits

LevelUP.prototype.iterator = function (options) {
return this.db.iterator(options)
}
LevelUP.prototype.readStream =

@@ -272,0 +270,0 @@ LevelUP.prototype.createReadStream = function (options) {

@@ -1,7 +0,1 @@

/* Copyright (c) 2012-2018 LevelUP contributors
* See list at <https://github.com/level/levelup#contributing>
* MIT License
* <https://github.com/level/levelup/blob/master/LICENSE.md>
*/
function promisify () {

@@ -8,0 +2,0 @@ var callback

@@ -1,9 +0,5 @@

The MIT License (MIT)
=====================
# The MIT License (MIT)
Copyright (c) 2012-2018 LevelUP contributors
---------------------------------------
**Copyright © 2012-present `levelup` [Contributors](CONTRIBUTORS.md).**
*LevelUP contributors listed at <https://github.com/level/levelup#contributors>*
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

@@ -10,0 +6,0 @@

{
"name": "levelup",
"description": "Fast & simple storage - a Node.js-style LevelDB wrapper",
"version": "3.0.1",
"contributors": [
"Rod Vagg <r@va.gg> (https://github.com/rvagg)",
"John Chesley <john@chesl.es> (https://github.com/chesles/)",
"Jake Verbaten <raynos2@gmail.com> (https://github.com/raynos)",
"Dominic Tarr <dominic.tarr@gmail.com> (https://github.com/dominictarr)",
"Max Ogden <max@maxogden.com> (https://github.com/maxogden)",
"Lars-Magnus Skog <ralphtheninja@riseup.net> (https://github.com/ralphtheninja)",
"David Björklund <david.bjorklund@gmail.com> (https://github.com/kesla)",
"Julian Gruber <julian@juliangruber.com> (https://github.com/juliangruber)",
"Paolo Fragomeni <paolo@async.ly> (https://github.com/0x00a)",
"Anton Whalley <anton.whalley@nearform.com> (https://github.com/No9)",
"Matteo Collina <matteo.collina@gmail.com> (https://github.com/mcollina)",
"Pedro Teixeira <pedro.teixeira@gmail.com> (https://github.com/pgte)",
"James Halliday <mail@substack.net> (https://github.com/substack)",
"Jarrett Cruger <jcrugzz@gmail.com> (https://github.com/jcrugzz)",
"Meirion Hughes <crakinshot@yahoo.com> (https://github.com/meirionhughes)"
],
"version": "3.1.0",
"repository": {

@@ -45,3 +28,3 @@ "type": "git",

"after": "^0.8.2",
"airtap": "0.0.6",
"airtap": "0.0.7",
"async": "^2.5.0",

@@ -55,5 +38,11 @@ "bl": "^2.0.0",

"faucet": "~0.0.1",
"level-community": "~3.0.0",
"memdown": "^3.0.0",
"pinkie": "~2.0.4",
"referee": "~1.2.0",
"remark-cli": "^5.0.0",
"remark-collapse": "~0.1.2",
"remark-git-contributors": "~0.2.1",
"remark-github": "~7.0.3",
"remark-toc": "~5.0.0",
"safe-buffer": "^5.1.0",

@@ -67,4 +56,30 @@ "standard": "^11.0.0",

"test-browsers": "airtap --sauce-connect --loopback airtap.local --no-coverage test/index.js",
"test-browser-local": "airtap --local --no-coverage test/index.js"
"test-browser-local": "airtap --local --no-coverage test/index.js",
"remark": "remark README.md CHANGELOG.md UPGRADING.md CONTRIBUTORS.md -o"
},
"remarkConfig": {
"plugins": [
[
"remark-git-contributors",
"level-community"
],
[
"remark-github"
],
[
"remark-toc",
{
"maxDepth": 2,
"tight": true
}
],
[
"remark-collapse",
{
"test": "Table of Contents",
"summary": "Click to expand"
}
]
]
},
"engines": {

@@ -71,0 +86,0 @@ "node": ">=6"

@@ -11,17 +11,21 @@ # levelup

* [Introduction](#introduction)
* [Supported Platforms](#supported-platforms)
* [Usage](#usage)
* [API](#api)
* [Promise Support](#promise-support)
* [Events](#events)
* [Extending](#extending)
* [Multi-process Access](#multi-process-access)
* [Support](#support)
* [Contributing](#contributing)
* [Big Thanks](#big-thanks)
* [License](#license)
## Table of Contents
**If you are upgrading:** please see [`UPGRADING.md`](UPGRADING.md).
<details><summary>Click to expand</summary>
- [Introduction](#introduction)
- [Supported Platforms](#supported-platforms)
- [Usage](#usage)
- [API](#api)
- [Promise Support](#promise-support)
- [Events](#events)
- [Extending](#extending)
- [Multi-process Access](#multi-process-access)
- [Support](#support)
- [Contributing](#contributing)
- [Big Thanks](#big-thanks)
- [License](#license)
</details>
## Introduction

@@ -31,3 +35,3 @@

LevelDB is a simple key-value store built by Google. It's used in Google Chrome and many other products. LevelDB supports arbitrary byte arrays as both keys and values, singular *get*, *put* and *delete* operations, *batched put and delete*, bi-directional iterators and simple compression using the very fast [Snappy](http://google.github.io/snappy/) algorithm.
LevelDB is a simple key-value store built by Google. It's used in Google Chrome and many other products. LevelDB supports arbitrary byte arrays as both keys and values, singular _get_, _put_ and _delete_ operations, _batched put and delete_, bi-directional iterators and simple compression using the very fast [Snappy](http://google.github.io/snappy/) algorithm.

@@ -48,2 +52,4 @@ LevelDB stores entries sorted lexicographically by keys. This makes the [streaming interface](#createReadStream) of `levelup` - which exposes LevelDB iterators as [Readable Streams](https://nodejs.org/docs/latest/api/stream.html#stream_readable_streams) - a very powerful query mechanism.

**If you are upgrading:** please see [`UPGRADING.md`](UPGRADING.md).
First you need to install `levelup`! No stores are included so you must also install `leveldown` (for example).

@@ -80,26 +86,29 @@

* [<code><b>levelup()</b></code>](#ctor)
* [<code>db.<b>open()</b></code>](#open)
* [<code>db.<b>close()</b></code>](#close)
* [<code>db.<b>put()</b></code>](#put)
* [<code>db.<b>get()</b></code>](#get)
* [<code>db.<b>del()</b></code>](#del)
* [<code>db.<b>batch()</b></code> *(array form)*](#batch)
* [<code>db.<b>batch()</b></code> *(chained form)*](#batch_chained)
* [<code>db.<b>isOpen()</b></code>](#isOpen)
* [<code>db.<b>isClosed()</b></code>](#isClosed)
* [<code>db.<b>createReadStream()</b></code>](#createReadStream)
* [<code>db.<b>createKeyStream()</b></code>](#createKeyStream)
* [<code>db.<b>createValueStream()</b></code>](#createValueStream)
- [<code><b>levelup()</b></code>](#ctor)
- [<code>db.<b>open()</b></code>](#open)
- [<code>db.<b>close()</b></code>](#close)
- [<code>db.<b>put()</b></code>](#put)
- [<code>db.<b>get()</b></code>](#get)
- [<code>db.<b>del()</b></code>](#del)
- [<code>db.<b>batch()</b></code> _(array form)_](#batch)
- [<code>db.<b>batch()</b></code> _(chained form)_](#batch_chained)
- [<code>db.<b>isOpen()</b></code>](#isOpen)
- [<code>db.<b>isClosed()</b></code>](#isClosed)
- [<code>db.<b>createReadStream()</b></code>](#createReadStream)
- [<code>db.<b>createKeyStream()</b></code>](#createKeyStream)
- [<code>db.<b>createValueStream()</b></code>](#createValueStream)
- [<code>db.<b>iterator()</b></code>](#iterator)
### Special Notes
* <a href="#writeStreams">What happened to <code><b>db.createWriteStream()</b></code></a>
- <a href="#writeStreams">What happened to <code><b>db.createWriteStream()</b></code></a>
<a name="ctor"></a>
### `levelup(db[, options[, callback]])`
The main entry point for creating a new `levelup` instance.
- `db` must be an [`abstract-leveldown`](https://github.com/level/abstract-leveldown) compliant store.
- `options` is passed on to the underlying store when opened and is specific to the type of store being used
- `db` must be an [`abstract-leveldown`](https://github.com/level/abstract-leveldown) compliant store.
- `options` is passed on to the underlying store when opened and is specific to the type of store being used

@@ -134,6 +143,8 @@ Calling `levelup(db)` will also open the underlying store. This is an asynchronous operation which will trigger your callback if you provide one. The callback should take the form `function (err, db) {}` where `db` is the `levelup` instance. If you don't provide a callback, any read & write operations are simply queued internally until the store is fully opened.

<a name="open"></a>
### `db.open([callback])`
Opens the underlying store. In general you should never need to call this method directly as it's automatically called by <a href="#ctor"><code>levelup()</code></a>.
However, it is possible to *reopen* the store after it has been closed with <a href="#close"><code>close()</code></a>, although this is not generally advised.
However, it is possible to _reopen_ the store after it has been closed with <a href="#close"><code>close()</code></a>, although this is not generally advised.

@@ -143,3 +154,5 @@ If no callback is passed, a promise is returned.

<a name="close"></a>
### `db.close([callback])`
<code>close()</code> closes the underlying store. The callback will receive any error encountered during closing as the first argument.

@@ -152,3 +165,5 @@

<a name="put"></a>
### `db.put(key, value[, options][, callback])`
<code>put()</code> is the primary method for inserting data into the store. Both `key` and `value` can be of any type as far as `levelup` is concerned.

@@ -161,3 +176,5 @@

<a name="get"></a>
### `db.get(key[, options][, callback])`
<code>get()</code> is the primary method for fetching data from the store. The `key` can be of any type. If it doesn't exist in the store then the callback or promise will receive an error. A not-found err object will be of type `'NotFoundError'` so you can `err.type == 'NotFoundError'` or you can perform a truthy test on the property `err.notFound`.

@@ -185,4 +202,7 @@

<a name="del"></a>
### `db.del(key[, options][, callback])`
<code>del()</code> is the primary method for removing data from the store.
```js

@@ -200,7 +220,9 @@ db.del('foo', function (err) {

<a name="batch"></a>
### `db.batch(array[, options][, callback])` *(array form)*
<code>batch()</code> can be used for very fast bulk-write operations (both *put* and *delete*). The `array` argument should contain a list of operations to be executed sequentially, although as a whole they are performed as an atomic operation inside the underlying store.
Each operation is contained in an object having the following properties: `type`, `key`, `value`, where the *type* is either `'put'` or `'del'`. In the case of `'del'` the `value` property is ignored. Any entries with a `key` of `null` or `undefined` will cause an error to be returned on the `callback` and any `type: 'put'` entry with a `value` of `null` or `undefined` will return an error.
### `db.batch(array[, options][, callback])` _(array form)_
<code>batch()</code> can be used for very fast bulk-write operations (both _put_ and _delete_). The `array` argument should contain a list of operations to be executed sequentially, although as a whole they are performed as an atomic operation inside the underlying store.
Each operation is contained in an object having the following properties: `type`, `key`, `value`, where the _type_ is either `'put'` or `'del'`. In the case of `'del'` the `value` property is ignored. Any entries with a `key` of `null` or `undefined` will cause an error to be returned on the `callback` and any `type: 'put'` entry with a `value` of `null` or `undefined` will return an error.
```js

@@ -226,3 +248,5 @@ var ops = [

<a name="batch_chained"></a>
### `db.batch()` *(chained form)*
### `db.batch()` _(chained form)_
<code>batch()</code>, when called with no arguments will return a `Batch` object which can be used to build, and eventually commit, an atomic batch operation. Depending on how it's used, it is possible to obtain greater performance when using the chained form of `batch()` over the array form.

@@ -242,3 +266,3 @@

Queue a *put* operation on the current batch, not committed until a `write()` is called on the batch.
Queue a _put_ operation on the current batch, not committed until a `write()` is called on the batch.

@@ -249,3 +273,3 @@ This method may `throw` a `WriteError` if there is a problem with your put (such as the `value` being `null` or `undefined`).

Queue a *del* operation on the current batch, not committed until a `write()` is called on the batch.
Queue a _del_ operation on the current batch, not committed until a `write()` is called on the batch.

@@ -264,3 +288,3 @@ This method may `throw` a `WriteError` if there is a problem with your delete.

Commit the queued operations for this batch. All operations not *cleared* will be written to the underlying store atomically, that is, they will either all succeed or fail with no partial commits.
Commit the queued operations for this batch. All operations not _cleared_ will be written to the underlying store atomically, that is, they will either all succeed or fail with no partial commits.

@@ -270,2 +294,3 @@ If no callback is passed, a promise is returned.

<a name="isOpen"></a>
### `db.isOpen()`

@@ -275,7 +300,7 @@

* *"new"* - newly created, not opened or closed
* *"opening"* - waiting for the underlying store to be opened
* *"open"* - successfully opened the store, available for use
* *"closing"* - waiting for the store to be closed
* *"closed"* - store has been successfully closed, should not be used
- _"new"_ - newly created, not opened or closed
- _"opening"_ - waiting for the underlying store to be opened
- _"open"_ - successfully opened the store, available for use
- _"closing"_ - waiting for the store to be closed
- _"closed"_ - store has been successfully closed, should not be used

@@ -285,9 +310,11 @@ `isOpen()` will return `true` only when the state is "open".

<a name="isClosed"></a>
### `db.isClosed()`
*See <a href="#put"><code>isOpen()</code></a>*
_See <a href="#put"><code>isOpen()</code></a>_
`isClosed()` will return `true` only when the state is "closing" *or* "closed", it can be useful for determining if read and write operations are permissible.
`isClosed()` will return `true` only when the state is "closing" _or_ "closed", it can be useful for determining if read and write operations are permissible.
<a name="createReadStream"></a>
### `db.createReadStream([options])`

@@ -315,21 +342,22 @@

* `gt` (greater than), `gte` (greater than or equal) define the lower bound of the range to be streamed. Only entries where the key is greater than (or equal to) this option will be included in the range. When `reverse=true` the order will be reversed, but the entries streamed will be the same.
- `gt` (greater than), `gte` (greater than or equal) define the lower bound of the range to be streamed. Only entries where the key is greater than (or equal to) this option will be included in the range. When `reverse=true` the order will be reversed, but the entries streamed will be the same.
* `lt` (less than), `lte` (less than or equal) define the higher bound of the range to be streamed. Only entries where the key is less than (or equal to) this option will be included in the range. When `reverse=true` the order will be reversed, but the entries streamed will be the same.
- `lt` (less than), `lte` (less than or equal) define the higher bound of the range to be streamed. Only entries where the key is less than (or equal to) this option will be included in the range. When `reverse=true` the order will be reversed, but the entries streamed will be the same.
* `reverse` *(boolean, default: `false`)*: stream entries in reverse order. Beware that due to the way that stores like LevelDB work, a reverse seek can be slower than a forward seek.
- `reverse` _(boolean, default: `false`)_: stream entries in reverse order. Beware that due to the way that stores like LevelDB work, a reverse seek can be slower than a forward seek.
* `limit` *(number, default: `-1`)*: limit the number of entries collected by this stream. This number represents a *maximum* number of entries and may not be reached if you get to the end of the range first. A value of `-1` means there is no limit. When `reverse=true` the entries with the highest keys will be returned instead of the lowest keys.
- `limit` _(number, default: `-1`)_: limit the number of entries collected by this stream. This number represents a _maximum_ number of entries and may not be reached if you get to the end of the range first. A value of `-1` means there is no limit. When `reverse=true` the entries with the highest keys will be returned instead of the lowest keys.
* `keys` *(boolean, default: `true`)*: whether the results should contain keys. If set to `true` and `values` set to `false` then results will simply be keys, rather than objects with a `key` property. Used internally by the `createKeyStream()` method.
- `keys` _(boolean, default: `true`)_: whether the results should contain keys. If set to `true` and `values` set to `false` then results will simply be keys, rather than objects with a `key` property. Used internally by the `createKeyStream()` method.
* `values` *(boolean, default: `true`)*: whether the results should contain values. If set to `true` and `keys` set to `false` then results will simply be values, rather than objects with a `value` property. Used internally by the `createValueStream()` method.
- `values` _(boolean, default: `true`)_: whether the results should contain values. If set to `true` and `keys` set to `false` then results will simply be values, rather than objects with a `value` property. Used internally by the `createValueStream()` method.
Legacy options:
* `start`: instead use `gte`
- `start`: instead use `gte`
* `end`: instead use `lte`
- `end`: instead use `lte`
<a name="createKeyStream"></a>
### `db.createKeyStream([options])`

@@ -355,2 +383,3 @@

<a name="createValueStream"></a>
### `db.createValueStream([options])`

@@ -375,3 +404,10 @@

<a name="iterator"></a>
### `db.iterator([options])`
Returns an [`abstract-leveldown` iterator](https://github.com/Level/abstract-leveldown/#abstractleveldown_iteratoroptions), which is what powers the readable streams above. Options are the same as the range options of [`createReadStream()`](#createReadStream) and are passed to the underlying store.
<a name="writeStreams"></a>
#### What happened to `db.createWriteStream`?

@@ -391,7 +427,7 @@

- `db.get(key[, options])`
- `db.put(key, value[, options])`
- `db.del(key[, options])`
- `db.batch(ops[, options])`
- `db.batch().write()`
- `db.get(key[, options])`
- `db.put(key, value[, options])`
- `db.del(key[, options])`
- `db.batch(ops[, options])`
- `db.batch().write()`

@@ -427,3 +463,3 @@ The only exception is the `levelup` constructor itself, which if no callback is passed will lazily open the underlying store in the background.

| Event | Description | Arguments |
|:----------|:----------------------------|:---------------------|
| :-------- | :-------------------------- | :------------------- |
| `put` | Key has been updated | `key, value` (any) |

@@ -460,5 +496,5 @@ | `del` | Key has been deleted | `key` (any) |

* **IRC:** you'll find an active group of `levelup` users in the **##leveldb** channel on Freenode, including most of the contributors to this project.
* **Mailing list:** there is an active [Node.js LevelDB](https://groups.google.com/forum/#!forum/node-levelup) Google Group.
* **GitHub:** you're welcome to open an issue here on this GitHub repository if you have a question.
- **IRC:** you'll find an active group of `levelup` users in the **##leveldb** channel on Freenode, including most of the contributors to this project.
- **Mailing list:** there is an active [Node.js LevelDB](https://groups.google.com/forum/#!forum/node-levelup) Google Group.
- **GitHub:** you're welcome to open an issue here on this GitHub repository if you have a question.

@@ -481,8 +517,4 @@ ## Contributing

Copyright &copy; 2012-2018 `levelup` [contributors](https://github.com/level/community#contributors).
[MIT](LICENSE.md) © 2012-present `levelup` [Contributors](CONTRIBUTORS.md).
`levelup` is licensed under the MIT license. All rights not explicitly granted in the MIT license are reserved. See the included `LICENSE.md` file for more details.
*`levelup` builds on the excellent work of the LevelDB and Snappy teams from Google and additional contributors. LevelDB and Snappy are both issued under the [New BSD License](http://opensource.org/licenses/BSD-3-Clause).*
[level-badge]: http://leveldb.org/img/badge.svg

@@ -7,4 +7,4 @@ # Upgrade Guide

1. Dropped support for node 4.
1. Batch operations no longer default to `'put'`. If `type` isn't specified, an error will be thrown, courtesy of `abstract-leveldown`.
1. Dropped support for node 4.
2. Batch operations no longer default to `'put'`. If `type` isn't specified, an error will be thrown, courtesy of `abstract-leveldown`.

@@ -17,6 +17,6 @@ ## v2

1. Make `levelup` more generic by reducing focus on [`leveldown`](https://github.com/Level/leveldown) and [`LevelDB`](https://github.com/google/leveldb).
2. Make `levelup` more generic by removing code related to encodings, which would allow \*down implementations to manage encodings themselves.
3. Use [`standard`](https://github.com/standard/standard) as linter to avoid bikeshedding.
4. Add a native `Promise` API for promise using geeks. Many have been asking for this. Also `async/await` is awesome. Breaking change: previously, if you did not pass a callback to an async function and there was an error, `levelup` would emit an `error` event instead. This is no longer true.
1. Make `levelup` more generic by reducing focus on [`leveldown`](https://github.com/Level/leveldown) and [`LevelDB`](https://github.com/google/leveldb).
2. Make `levelup` more generic by removing code related to encodings, which would allow \*down implementations to manage encodings themselves.
3. Use [`standard`](https://github.com/standard/standard) as linter to avoid bikeshedding.
4. Add a native `Promise` API for promise using geeks. Many have been asking for this. Also `async/await` is awesome. Breaking change: previously, if you did not pass a callback to an async function and there was an error, `levelup` would emit an `error` event instead. This is no longer true.

@@ -31,5 +31,3 @@ Point `1` and `2` also helps out with reducing complexity.

```
$ npm i levelup leveldown --save
```
$ npm i levelup leveldown --save

@@ -36,0 +34,0 @@ And in your code you did something like:

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc