# Change Log

All notable changes to this project will be documented in this file
automatically by Versionist. DO NOT EDIT THIS FILE MANUALLY!
This project adheres to [Semantic Versioning](http://semver.org/).

## 12.4.0 - 2020-09-07


<details>
<summary> Update pinejs-client-core to 6.9.0 to support getOrCreate() [Thodoris Greasidis] </summary>

> ### pinejs-client-js-6.9.0 - 2020-09-07
> 
> * Add 'getOrCreate' method supporting natural keys [Thodoris Greasidis]
> 
> ### pinejs-client-js-6.8.0 - 2020-09-03
> 
> * Add support for $format [Pagan Gazzard]
> 
> ### pinejs-client-js-6.7.3 - 2020-08-26
> 
> * Improve $orderby typing to allow `[{a: 'desc'}, {b: 'asc'}]` [Pagan Gazzard]
> 
> ### pinejs-client-js-6.7.2 - 2020-08-24
> 
> * Update dev dependencies [Pagan Gazzard]
> 
> ### pinejs-client-js-6.7.1 - 2020-08-12
> 
> * Fix prepare $count typings [Pagan Gazzard]
> 
> ### pinejs-client-js-6.7.0 - 2020-08-12
> 
> * Improve typings for request/post/put/patch/delete [Pagan Gazzard]
> 
</details>

## 12.3.0 - 2020-08-12


<details>
<summary> Update pinejs-client-core to 6.6.1 [Pagan Gazzard] </summary>

> ### pinejs-client-js-6.6.1 - 2020-08-11
> 
> * Fix typing when id is specified to be `AnyObject | undefined` [Pagan Gazzard]
> 
> ### pinejs-client-js-6.6.0 - 2020-08-11
> 
> * Deprecate `$expand: { 'a/$count': {...} }` [Pagan Gazzard]
> * Deprecate `resource: 'a/$count'` and update typings to reflect it [Pagan Gazzard]
> 
> ### pinejs-client-js-6.5.0 - 2020-08-11
> 
> * Add `options: { $count: { ... } }` sugar for top level $count [Pagan Gazzard]
> * Add `$expand: { a: { $count: { ... } } }` sugar for $count in expands [Pagan Gazzard]
> 
> ### pinejs-client-js-6.4.0 - 2020-08-11
> 
> * Improve return typing of `subscribe` method [Pagan Gazzard]
> 
> ### pinejs-client-js-6.3.0 - 2020-08-11
> 
> * Fix Poll.on typings [Pagan Gazzard]
> * Improve return typing when id is passed to GET methods [Pagan Gazzard]
> * Remove `PromiseResult` type, use `Promise<PromiseResultTypes>` instead [Pagan Gazzard]
> * Remove `PromiseObj` type, use `Promise<{}>` instead [Pagan Gazzard]
> 
> ### pinejs-client-js-6.2.0 - 2020-08-10
> 
> * Add `$filter: { a: { $count: 1 } }` sugar for $count in filters [Pagan Gazzard]
> 
> ### pinejs-client-js-6.1.2 - 2020-08-10
> 
> * Remove redundant ParamsObj/SubscribeParamsObj types [Pagan Gazzard]
> 
> ### pinejs-client-js-6.1.1 - 2020-08-10
> 
> * Make use of `mapObj` helper in more places [Pagan Gazzard]
> * Use `Object.keys` in preference to `hasOwnProperty` where applicable [Pagan Gazzard]
> 
</details>

## 12.2.0 - 2020-07-22


<details>
<summary> Update pinejs-client-core [Pagan Gazzard] </summary>

> ### pinejs-client-js-6.1.0 - 2020-07-21
> 
> * Add support for using named ids [Pagan Gazzard]
> 
</details>

## 12.1.1 - 2020-07-13

* Add .versionbot/CHANGELOG.yml for nested changelogs [Pagan Gazzard]

## 12.1.0 - 2020-07-06

* Update balena-auth to 4.x and balena-request to 11.x [Pagan Gazzard]

## 12.0.1 - 2020-07-03

* Use typescript import helpers [Pagan Gazzard]

## 12.0.0 - 2020-06-26

* Drop the API_PREFIX property in favor of the apiPrefix [Thodoris Greasidis]
* Drop getPine() in favor of an es6 export of the BalenaPine class [Thodoris Greasidis]
* Convert to async await [Thodoris Greasidis]
* Bump @balena/lint to v5 [Thodoris Greasidis]
* Stop actively supporting node 8 [Thodoris Greasidis]
* Add balenaCI repo.yml [Thodoris Greasidis]

<details>
<summary> Bump to pinejs-client v6 which requires es2015 & drops Bluebird promises [Thodoris Greasidis] </summary>

> ### pinejs-client-js-6.0.1 - 2020-06-19
> 
> * Drop unnecessary async from request() [Thodoris Greasidis]

> ### pinejs-client-js-6.0.0 - 2020-06-04
> 
> * Increase minimum es version to es2015 [Pagan Gazzard]
> * Convert to async/await [Pagan Gazzard]
> * Remove now unnecessary PinejsClientCoreFactory [Pagan Gazzard]
> * Switch to using native promises [Pagan Gazzard]
> * Drop support for deprecated request overrides [Pagan Gazzard]
> * Drop support for deprecated `query` method [Pagan Gazzard]
> * Drop support for deprecated string based requests [Pagan Gazzard]
> * Use `;` for expand options instead of `&` [Pagan Gazzard]
</details>

# v11.2.1
## (2020-06-15)

* Bump balena-config-karma to v3 [Thodoris Greasidis]
* Convert karma.conf to js [Thodoris Greasidis]

# v11.2.0
## (2020-06-02)

* Generate optional builds for es2015/es2018 as well as the default es5 [Pagan Gazzard]

# v11.1.0
## (2020-06-01)

* Convert to typescript and expose types [Pagan Gazzard]

# v11.0.2
## (2020-06-01)

* Run build and tests directly [Pagan Gazzard]
* Switch to @balena/lint for linting [Pagan Gazzard]

# v11.0.1
## (2020-04-20)

* Remove lodash dependency [Pagan Gazzard]

# v11.0.0
## (2020-04-10)

* Allow unauthenticated pine calls [Thodoris Greasidis]

# v10.1.3
## (2020-04-10)

* Add tests for public resources [Thodoris Greasidis]

# v10.1.2
## (2020-04-10)

* CircleCI: Remove deploy job as it's handled by balenaCI [Thodoris Greasidis]
* Exclude the build output from the repo [Thodoris Greasidis]
* Use a prepack step to be balenaCI compliant [Thodoris Greasidis]
* Run build before tests [Thodoris Greasidis]

## 10.1.1 - 2020-01-21

* Update dependencies [Pagan Gazzard]

## 10.1.0 - 2019-08-02

* Bump pinejs client to add the 'upsert' method, requires Pinejs ^10.19.1 [Thodoris Greasidis]

## 10.0.1 - 2019-07-17

* README: Fix appveyor build status badge [Thodoris Greasidis]

## 10.0.0 - 2019-07-16

* Bump balena errors and pine client version [Stevche Radevski]

## v9.0.0 - 2018-10-18

* Rename everything 'resin' to 'balena' [Tim Perry]

## v8.1.0 - 2018-10-15

* Add an anonymous flag to allow anonymous pine requests [Tim Perry]

## v8.0.0 - 2018-09-17

* Switch to pinejs-client-core ^5.3.4, dropping support for node 4 [Pagan Gazzard]

## v7.0.2 - 2018-09-17

* Update scripts for newer npm versions [Pagan Gazzard]
* Add tests against node 10 [Pagan Gazzard]

## v7.0.1 - 2018-09-14

* Appveyor: Use npm v5 since v6 errors on node v4 [Thodoris Greasidis]
* Chore: Add headless Chrome parameters to work on ResinCi [Thodoris Greasidis]
* Test with Mockttp now that request._setFetch has been removed [Tim Perry]

## v7.0.0 - 2018-02-09

* *BREAKING*: Upgrade pinejs-client to v4 #43 [Tim Perry]

## v6.0.5 - 2018-01-02

* Fix 404 in Readme #41 [Lucian Buzzo]

## v6.0.4 - 2017-11-20

* Fix deploys by removing npm caching, since it's breaking workspace restoring #39 [Tim Perry]

## v6.0.3 - 2017-11-03

* Ensure autodeploy has built output available for publishing #38 [Tim Perry]

## v6.0.2 - 2017-11-02

* Ensure autodeploy actually triggers when a tag is pushed #37 [Tim Perry]

## v6.0.1 - 2017-11-02

* Autodeploy successful tagged builds to npm #36 [Tim Perry]

## v6.0.0 - 2017-11-01

* Use resin-auth instead of resin-token and resin-request version 9.0.0 #34 [MoranF]

## v5.0.4 - 2017-11-01

* Reformat changelog to add versionbot #35 [Tim Perry]
* Fix tests to work with resin-request version 8.6.0 #35 [MoranF]

## v5.0.3 - 2017-04-03

- Peer depend on resin-token 4.0.0

## v5.0.2 - 2017-03-22

- Upgrade `pinejs-client` to `3.1.0`, which adds support for empty expand options

## v5.0.1 - 2017-01-06

### Changed

- Internal refactoring to the tests

## v5.0.0 - 2017-01-05

### Changed

- **Breaking**: Resin-Request and Resin-Token are now required to be injected, rather than being created internally.
- Upgraded `pinejs-client` to 3.0.0, which adds support for dates.
- Isomorphic-fetch is no longer required, as `resin-request` now uses its own `fetch` implementation
- **Breaking**: Timeouts in requests now use the Bluebird implementation. This changes how errors are thrown slightly: a Promise.TimeoutError is now thrown instead of a raw Error, with the message "operation timed out" instead of "timeout".

## v4.0.0 - 2016-11-24

### Changed

- **Breaking!** Switch to factory pattern in order to make it work with the new `resin-request` and `resin-token`

## v3.1.1 - 2016-03-22

### Changed

- Pass absolute URL to `resin-request`.

## v3.1.0 - 2016-03-14

### Added

- Add API keys support.

## v3.0.0 - 2016-03-09

### Added

- Add back token support.

### Changed

- Upgrade outdated dependencies

### Removed

- Remove API key support.

## v2.0.1 - 2015-12-04

- Omit tests from NPM package.

## v2.0.0 - 2015-09-23

- Upgrade `resin-request` to v3.0.0, which uses api keys.
- Refactor to handle api keys instead of auth tokens.

## v1.3.1 - 2015-09-07

### Changed

- Upgrade `resin-errors` to v2.0.0.
- Upgrade `resin-request` to v2.2.2.
- Upgrade `resin-token` to v2.4.0.
- Upgrade `resin-settings-client` to v3.0.0.

## v1.3.0 - 2015-06-19

### Added

- Check the existance of a session token before triggering a request.

## v1.2.0 - 2015-06-19

### Changed

- Make use of new `resin-request`.
- Limit request timeout.

## v1.1.1 - 2015-05-18

### Changed

- Upgrade Resin Settings Client to v1.0.1, which defaults remoteUrl to api.resin.io.

## v1.1.0 - 2015-03-19

### Changed

- Make use of [resin-errors](https://github.com/resin-io/resin-errors).
