# Change Log

All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
-  BREAKING CHANGES:
   - Module builder has been changed. All public class are now exported in "@iotize/device-client.js" entry file. Extensions are available "@iotize/device-client.js/<extension-name>"  
   - `SinglePacketSplitter`: change construtor options 

<a name="0.0.1-alpha.113"></a>

## [0.0.1-alpha.113](https://bitbucket.org/iotize-solutions/device-api.project/compare/v0.0.1-alpha.112...v0.0.1-alpha.113) (2019-12-20)

<a name="0.0.1-alpha.112"></a>

## [0.0.1-alpha.112](https://bitbucket.org/iotize-solutions/device-api.project/compare/v0.0.1-alpha.111...v0.0.1-alpha.112) (2019-12-13)

### Features

-   **Tap:** new Tap api features ([3ebe65a](https://bitbucket.org/iotize-solutions/device-api.project/commits/3ebe65a))

<a name="0.0.1-alpha.111"></a>

## [0.0.1-alpha.111](https://bitbucket.org/iotize-solutions/device-api.project/compare/v0.0.1-alpha.110...v0.0.1-alpha.111) (2019-12-12)

<a name="0.0.1-alpha.110"></a>

## [0.0.1-alpha.110](https://bitbucket.org/iotize-solutions/device-api.project/compare/v0.0.1-alpha.109...v0.0.1-alpha.110) (2019-12-12)

-   BREAKING CHANGES: api changed for Scram ([93244f8](https://bitbucket.org/iotize-solutions/device-api.project/commits/93244f8))

### BREAKING CHANGES

-   renamed ScramInterceptorOptions to EncryptionOptions

<a name="0.0.1-alpha.109"></a>

## [0.0.1-alpha.109](https://bitbucket.org/iotize-solutions/device-api.project/compare/v0.0.1-alpha.108...v0.0.1-alpha.109) (2019-12-03)

### Features

-   **Tap:** added `Tap.changePassword()` parameter to give the current user password
-   **Tap:** added `Tap.getSecurityOptions()` method

<a name="0.0.1-alpha.108"></a>

## [0.0.1-alpha.108](https://bitbucket.org/iotize-solutions/device-api.project/compare/v0.0.1-alpha.107...v0.0.1-alpha.108) (2019-11-22)

### Bug Fixes

-   Using `logger.log` instead of `logger.info` as it may not be defined in webview
-   Removed references to `SharedArrayBuffer` as it may not be defined in some environments

<a name="0.0.1-alpha.107"></a>

## [0.0.1-alpha.107](https://bitbucket.org/iotize-solutions/device-api.project/compare/v0.0.1-alpha.106...v0.0.1-alpha.107) (2019-11-04)

<a name="0.0.1-alpha.106"></a>

## [0.0.1-alpha.106](https://bitbucket.org/iotize-solutions/device-api.project/compare/v0.0.1-alpha.105...v0.0.1-alpha.106) (2019-10-30)

### Bug Fixes

-   **TaskQueue:** fix process clear when task throw an error ([984821a](https://bitbucket.org/iotize-solutions/device-api.project/commits/984821a))

### Features

-   **Apdu:** improved APDU related errors ([a7c5c92](https://bitbucket.org/iotize-solutions/device-api.project/commits/a7c5c92))
-   **Tap:** update Tap ([2a2d090](https://bitbucket.org/iotize-solutions/device-api.project/commits/2a2d090))

<a name="0.0.1-alpha.105"></a>

## [0.0.1-alpha.105](https://bitbucket.org/iotize-solutions/device-api.project/compare/v0.0.1-alpha.104...v0.0.1-alpha.105) (2019-10-23)

### Bug Fixes

-   ByteSwapConverter when starting by B0 ([bc01441](https://bitbucket.org/iotize-solutions/device-api.project/commits/bc01441))
-   fix TapError.initializationVectorNotSupported() error code ([3186325](https://bitbucket.org/iotize-solutions/device-api.project/commits/3186325))
-   fix typo Tap.setInitializationVectorRefreshPeriod ([2f65641](https://bitbucket.org/iotize-solutions/device-api.project/commits/2f65641))
-   improved error message for connect/disconnect timeout in QueueComProtocol ([529043e](https://bitbucket.org/iotize-solutions/device-api.project/commits/529043e))

### Features

-   added KeepAliveEngine and Tap.keepAlive extension ([3761510](https://bitbucket.org/iotize-solutions/device-api.project/commits/3761510))

<a name="0.0.1-alpha.104"></a>

## [0.0.1-alpha.104](https://bitbucket.org/iotize-solutions/device-api.project/compare/v0.0.1-alpha.103...v0.0.1-alpha.104) (2019-10-21)

### Bug Fixes

-   NumberConverter fix Litle/big ending parameter ([e3b1013](https://bitbucket.org/iotize-solutions/device-api.project/commits/e3b1013))
-   ScramInterceptor when IV refresh period > 1 and forcing encrypted communication ([139cf42](https://bitbucket.org/iotize-solutions/device-api.project/commits/139cf42))

### Features

-   **NumberConverter:** added converter factory functions int8(), int16(), int32(), uint8()... ([0f78b51](https://bitbucket.org/iotize-solutions/device-api.project/commits/0f78b51))
-   **Scram:** added scram resource ([58468c3](https://bitbucket.org/iotize-solutions/device-api.project/commits/58468c3))
-   added CCOM IV feature (encrypted communication with IV refreshed for each frame) ([b5c5d10](https://bitbucket.org/iotize-solutions/device-api.project/commits/b5c5d10))
-   added get/set/put TargetService.ProtocolConfiguration method ([0317444](https://bitbucket.org/iotize-solutions/device-api.project/commits/0317444))
-   added scram initialization vector feature Tap.refreshEncryptionInitializationVector() and Tap.encryption(enabled,refreshSessionKey, refreshInitializationVector) ([14ae335](https://bitbucket.org/iotize-solutions/device-api.project/commits/14ae335))
-   added tlv serializer implementation ([8ea57e5](https://bitbucket.org/iotize-solutions/device-api.project/commits/8ea57e5))

<a name="0.0.1-alpha.103"></a>

## [0.0.1-alpha.103](https://bitbucket.org/iotize-solutions/device-api.project/compare/v0.0.1-alpha.102...v0.0.1-alpha.103) (2019-09-18)

### BREAKING CHANGES

-   `ProtocolConfiguration` type has 2 new fields
-   `ServiceCallType`.`methodType` type changed

### Features

-   **Tap**: added multi requests feature (method `multiRequests()`)

<a name="0.0.1-alpha.102"></a>

## [0.0.1-alpha.102](https://bitbucket.org/iotize-solutions/device-api.project/compare/v0.0.1-alpha.100...v0.0.1-alpha.102) (2019-09-12)

### Bug Fixes

-   **Scram:** fix salt generator to generate non null salt ([2ea4f42](https://bitbucket.org/iotize-solutions/device-api.project/commits/2ea4f42))
-   **Tap:** fix enable encryption return type ([7f97701](https://bitbucket.org/iotize-solutions/device-api.project/commits/7f97701))

### Features

-   FormatHelper.toAsciiString() now accepts number[] as a parameter ([fb908f0](https://bitbucket.org/iotize-solutions/device-api.project/commits/fb908f0))
-   **DataLogger:** improved DataLogger ([8ec1461](https://bitbucket.org/iotize-solutions/device-api.project/commits/8ec1461))
-   **Tap:** added changePassword implementation when security is activated ([8fa8c5a](https://bitbucket.org/iotize-solutions/device-api.project/commits/8fa8c5a))
-   **Tap:** added Tap.currentSessionState() method ([4703031](https://bitbucket.org/iotize-solutions/device-api.project/commits/4703031))

<a name="0.0.1-alpha.101"></a>

## [0.0.1-alpha.101](https://bitbucket.org/iotize-solutions/device-api.project/compare/v0.0.1-alpha.100...v0.0.1-alpha.101) (2019-08-26)

### Bug Fixes

-   **Scram:** fix salt generator to generate non null salt ([2ea4f42](https://bitbucket.org/iotize-solutions/device-api.project/commits/2ea4f42))

### Features

-   **Tap:** added changePassword implementation when security is activated ([8fa8c5a](https://bitbucket.org/iotize-solutions/device-api.project/commits/8fa8c5a))

<a name="0.0.1-alpha.100"></a>

## [0.0.1-alpha.100](https://bitbucket.org/iotize-solutions/device-api.project/compare/v0.0.1-alpha.99...v0.0.1-alpha.100) (2019-08-22)

<a name="0.0.1-alpha.99"></a>

## [0.0.1-alpha.99](https://bitbucket.org/iotize-solutions/device-api.project/compare/v0.0.1-alpha.98...v0.0.1-alpha.99) (2019-08-22)

### Features

-   added ProtocolChangeEvent ([fc5d6ac](https://bitbucket.org/iotize-solutions/device-api.project/commits/fc5d6ac))
-   **Client:** added onProtocolChange() method. ([0aa8332](https://bitbucket.org/iotize-solutions/device-api.project/commits/0aa8332))

<a name="0.0.1-alpha.98"></a>

## [0.0.1-alpha.98](https://bitbucket.org/iotize-solutions/device-api.project/compare/v0.0.1-alpha.97...v0.0.1-alpha.98) (2019-08-09)

### Bug Fixes

-   **ResponseError:** fix circular dependency and changed ResponseError constructor to add second argmument) ([d1b7481](https://bitbucket.org/iotize-solutions/device-api.project/commits/d1b7481))
-   **StringConverter:** added missing import Buffer for StringConverter ([ff2402f](https://bitbucket.org/iotize-solutions/device-api.project/commits/ff2402f))
-   fixed circular dependencies ([b2310ab](https://bitbucket.org/iotize-solutions/device-api.project/commits/b2310ab))

### Features

-   added lwm2m HeaderInterface ([b7e8c66](https://bitbucket.org/iotize-solutions/device-api.project/commits/b7e8c66))
-   aded MockProtocol and MockClient into the core library ([e7e9684](https://bitbucket.org/iotize-solutions/device-api.project/commits/e7e9684))

<a name="0.0.1-alpha.97"></a>

## [0.0.1-alpha.97](https://bitbucket.org/iotize-solutions/device-api.project/compare/v0.0.1-alpha.96...v0.0.1-alpha.97) (2019-07-29)

### Features

-   **StringConverter:** improved StringConverter to handle other string encoding types ([2a949d2](https://bitbucket.org/iotize-solutions/device-api.project/commits/2a949d2))

<a name="0.0.1-alpha.96"></a>

## [0.0.1-alpha.96](https://bitbucket.org/iotize-solutions/device-api.project/compare/v0.0.1-alpha.95...v0.0.1-alpha.96) (2019-07-23)

### Bug Fixes

-   **Tap:** do not complete SessionState observable on disconnection anymore. ([a18222b](https://bitbucket.org/iotize-solutions/device-api.project/commits/a18222b))

<a name="0.0.1-alpha.95"></a>

## [0.0.1-alpha.95](https://bitbucket.org/iotize-solutions/device-api.project/compare/v0.0.1-alpha.94...v0.0.1-alpha.95) (2019-07-22)

### Bug Fixes

-   **TlvBundleConverter:** improved TlvBundleConverter class to support multiple variables that points to a same variable id ([1d07de8](https://bitbucket.org/iotize-solutions/device-api.project/commits/1d07de8))

### Features

-   **TapClient:** improved error handling by adding TapClientError class and errors codes ([5c369f3](https://bitbucket.org/iotize-solutions/device-api.project/commits/5c369f3))
-   improved error handling ([ebca30e](https://bitbucket.org/iotize-solutions/device-api.project/commits/ebca30e))

<a name="0.0.1-alpha.94"></a>

## [0.0.1-alpha.94](https://bitbucket.org/iotize-solutions/device-api.project/compare/v0.0.1-alpha.93...v0.0.1-alpha.94) (2019-06-25)

### Features

-   **Monitoring:** added VariableMonitorState enum ([b3208d4](https://bitbucket.org/iotize-solutions/device-api.project/commits/b3208d4))

<a name="0.0.1-alpha.93"></a>

## [0.0.1-alpha.93](https://bitbucket.org/iotize-solutions/device-api.project/compare/v0.0.1-alpha.91...v0.0.1-alpha.93) (2019-06-06)

### Bug Fixes

-   **Bundle:** fix create from bundle config to properly initialized converter ([54b14b2](https://bitbucket.org/iotize-solutions/device-api.project/commits/54b14b2))

### Features

-   **BundleManager:** allow `addFromConfig` now accept an array of config ([29a3d29](https://bitbucket.org/iotize-solutions/device-api.project/commits/29a3d29))
-   **ComProtocol:** improved error codes ([d5c0aba](https://bitbucket.org/iotize-solutions/device-api.project/commits/d5c0aba))

<a name="0.0.1-alpha.92"></a>

## [0.0.1-alpha.92](https://bitbucket.org/iotize-solutions/device-api.project/compare/v0.0.1-alpha.91...v0.0.1-alpha.92) (2019-05-24)

### Features

-   **ComProtocol:** improved error codes ([d5c0aba](https://bitbucket.org/iotize-solutions/device-api.project/commits/d5c0aba))

<a name="0.0.1-alpha.91"></a>

## [0.0.1-alpha.91](https://bitbucket.org/iotize-solutions/device-api.project/compare/v0.0.1-alpha.90...v0.0.1-alpha.91) (2019-05-22)

### Bug Fixes

-   **SinglePacket:** `SinglePacket.fillComputedField` is now using actual payload data length to compute padding ([c1c49ce](https://bitbucket.org/iotize-solutions/device-api.project/commits/c1c49ce))
-   **SinglePacketConverter:** fix CRC computation ([ebd9118](https://bitbucket.org/iotize-solutions/device-api.project/commits/ebd9118))

<a name="0.0.1-alpha.90"></a>

## [0.0.1-alpha.90](https://bitbucket.org/iotize-solutions/device-api.project/compare/v0.0.1-alpha.89...v0.0.1-alpha.90) (2019-05-21)

<a name="0.0.1-alpha.89"></a>

## [0.0.1-alpha.89](https://bitbucket.org/iotize-solutions/device-api.project/compare/v0.0.1-alpha.88...v0.0.1-alpha.89) (2019-05-17)

### Bug Fixes

-   **VariableMonitoring:** check tap response code when fetching variable value ([b042658](https://bitbucket.org/iotize-solutions/device-api.project/commits/b042658))

### Features

-   **Tap:** `Tap.loadSinglePacketInStore()` can now be cancel by unsubscribing from observable ([3e78dd1](https://bitbucket.org/iotize-solutions/device-api.project/commits/3e78dd1))

<a name="0.0.1-alpha.88"></a>

## [0.0.1-alpha.88](https://bitbucket.org/iotize-solutions/device-api.project/compare/v0.0.1-alpha.87...v0.0.1-alpha.88) (2019-05-14)

### Bug Fixes

-   **QueueComProtocol:** cancel breaking api changes ([0c40771](https://bitbucket.org/iotize-solutions/device-api.project/commits/0c40771))

<a name="0.0.1-alpha.87"></a>

## [0.0.1-alpha.87](https://bitbucket.org/iotize-solutions/device-api.project/compare/v0.0.1-alpha.86...v0.0.1-alpha.87) (2019-05-14)

### Bug Fixes

-   **QueueComProtocol:** revert \_send method visiblity change to private ([7e2c2fd](https://bitbucket.org/iotize-solutions/device-api.project/commits/7e2c2fd))

<a name="0.0.1-alpha.86"></a>

## [0.0.1-alpha.86](https://bitbucket.org/iotize-solutions/device-api.project/compare/v0.0.1-alpha.85...v0.0.1-alpha.86) (2019-05-14)

### Bug Fixes

-   **QueueComProtocol:** bug unhandled promise rejection when there is a timeout during send ([6ac419d](https://bitbucket.org/iotize-solutions/device-api.project/commits/6ac419d))

<a name="0.0.1-alpha.85"></a>

## [0.0.1-alpha.85](https://bitbucket.org/iotize-solutions/device-api.project/compare/v0.0.1-alpha.84...v0.0.1-alpha.85) (2019-05-10)

### Features

-   **Client:** added interceptor feature ([8935e88](https://bitbucket.org/iotize-solutions/device-api.project/commits/8935e88))

<a name="0.0.1-alpha.84"></a>

## [0.0.1-alpha.84](https://bitbucket.org/iotize-solutions/device-api.project/compare/v0.0.1-alpha.83...v0.0.1-alpha.84) (2019-05-09)

### Features

-   added AdpService to available tap service ([ea28c23](https://bitbucket.org/iotize-solutions/device-api.project/commits/ea28c23))

<a name="0.0.1-alpha.83"></a>

## [0.0.1-alpha.83](https://bitbucket.org/iotize-solutions/device-api.project/compare/v0.0.1-alpha.82...v0.0.1-alpha.83) (2019-05-09)

<a name="0.0.1-alpha.82"></a>

## [0.0.1-alpha.82](https://bitbucket.org/iotize-solutions/device-api.project/compare/v0.0.1-alpha.79...v0.0.1-alpha.82) (2019-05-07)

### Bug Fixes

-   TapStreamCore.readU2/readU4/readF4 are now calling the right method according to endianess ([61b63e0](https://bitbucket.org/iotize-solutions/device-api.project/commits/61b63e0))

### Features

-   added debug lib ([e5cd6bf](https://bitbucket.org/iotize-solutions/device-api.project/commits/e5cd6bf))
-   **Target:** added converter for getAdpStats() ([acda38e](https://bitbucket.org/iotize-solutions/device-api.project/commits/acda38e))

<a name="0.0.1-alpha.81"></a>

## [0.0.1-alpha.81](https://bitbucket.org/iotize-solutions/device-api.project/compare/v0.0.1-alpha.79...v0.0.1-alpha.81) (2019-05-06)

### Features

-   added debug lib ([e5cd6bf](https://bitbucket.org/iotize-solutions/device-api.project/commits/e5cd6bf))

<a name="0.0.1-alpha.80"></a>

## [0.0.1-alpha.80](https://bitbucket.org/iotize-solutions/device-api.project/compare/v0.0.1-alpha.79...v0.0.1-alpha.80) (2019-05-06)

<a name="0.0.1-alpha.79"></a>

## [0.0.1-alpha.79](https://bitbucket.org/iotize-solutions/device-api.project/compare/v0.0.1-alpha.78...v0.0.1-alpha.79) (2019-04-30)

### Bug Fixes

-   **TlvConverter:** fix buffer convertion from uint8array (using byteOffset) ([cbf00f6](https://bitbucket.org/iotize-solutions/device-api.project/commits/cbf00f6))

### Features

-   **DataLogger:** added data logger features ([e53acc2](https://bitbucket.org/iotize-solutions/device-api.project/commits/e53acc2))
-   added `VariableService.putName`, VariableService.putUnit`,`BundleService.putName` methods. Added AdpControlIn.Command and AdpControlOut.ResultCode extra values ([73bc468](https://bitbucket.org/iotize-solutions/device-api.project/commits/73bc468))

<a name="0.0.1-alpha.78"></a>

## [0.0.1-alpha.78](https://bitbucket.org/iotize-solutions/device-api.project/compare/v0.0.1-alpha.77...v0.0.1-alpha.78) (2019-03-27)

### Bug Fixes

-   **Tap:** fix useComProtocol to actually change protocol when there was already a protocol ([9a0e98b](https://bitbucket.org/iotize-solutions/device-api.project/commits/9a0e98b))

<a name="0.0.1-alpha.77"></a>

## 0.0.1-alpha.77 (2019-03-27)

### Features

-   **Client:** added function `send()`
-   **Tap:** added `nfcPairing()` function

<a name="0.0.1-alpha.76"></a>

## 0.0.1-alpha.76 (2019-03-27)

### Features

-   **Tap:** added `useComProtocol()` function to change current communication protocol

<a name="0.0.1-alpha.75"></a>

## 0.0.1-alpha.75 (2019-03-27)

### Features

-   **InterfaceService:** added `getNfcAutologProfileId()` and `putNfcAutologProfileId()`

### BREAKING CHANGES

-   **ScramService:** renamed `getScramHashIt()` to `getHashIteration()` and changed return type to `number`

<a name="0.0.1-alpha.74"></a>

## 0.0.1-alpha.74 (2019-03-19)

### Bug Fixes

-   **BundleService:** getAcl() now returns a uint16 (instead of uint8)
-   **VariableService:** putBundleId() now takes a uint16 as body (instead of uint32)

<a name="0.0.1-alpha.73"></a>

## [0.0.1-alpha.73](https://bitbucket.org/iotize-solutions/device-api.project/compare/v0.0.1-alpha.72...v0.0.1-alpha.73) (2019-03-19)

### Bug Fixes

-   **EnumConverter:** fix encoding ([566772b](https://bitbucket.org/iotize-solutions/device-api.project/commits/566772b))
-   **TargetProtocol:** fix TargetService.getAvailableProtocols() response converter ([fce3773](https://bitbucket.org/iotize-solutions/device-api.project/commits/fce3773))

<a name="0.0.1-alpha.72"></a>

## [0.0.1-alpha.72](https://bitbucket.org/iotize-solutions/device-api.project/compare/v0.0.1-alpha.71...v0.0.1-alpha.72) (2019-03-13)

### Bug Fixes

-   **Typings**:
    -   removed `PQueue` export

<a name="0.0.1-alpha.71"></a>

## 0.0.1-alpha.71 (2019-03-12)

### Bug Fixes

-   **Typings**:
    -   removed `Buffer` export in Tlv class (it fix tsc error TS2580: Cannot find name 'Buffer')
    -   added `@types/crypto-js` as a dependency

### Features

-   **Tap:** added static factory methods `Tap.create()` and `Tap.fromProtocol()`
-   **TargetService**:
    -   added `putProtocol()` method
-   **BundleService**
    -   added `create()` method
-   **VariableService**
    -   added `create()` method
    -   changed return type of `getFormat()` to `VariableFormat`
    -   changed parameter type of `putFormat()` to `VariableFormat`
-   **GroupService**
    -   added `create()` method
-   **InterfaceService**
    -   added `getSpecialFeatureProfile()`, `setSpecialFeatureProfile()`, `putSpecialFeatureProfile()` methods
-   **Models**: added `TargetProtocol.NONE` type

### BREAKING CHANGES

-   Change model `ReadWriteRights` (added field `groupId`)
-   Changed `GroupService.putAcl()` method arguments
-   Renamed method `TargetService.getModbusSubProtocol()` to `TargetService.getSubProtocol()`
-   Renamed method `TargetService.postModbusSubProtocol()` to `TargetService.setSubProtocol()`

<a name="0.0.1-alpha.70"></a>

## 0.0.1-alpha.70 (2019-03-06)

### Bug Fixes

-   **AdpService:** fix getControlIn() parameter

### Features

-   **TargetService:** added get TargetService.getReceivedCount()

### Others

-   Removed log messages. Most of theme are now displayed with `console.debug`

<a name="0.0.1-alpha.69"></a>

## 0.0.1-alpha.69 (2019-03-04)

### Bug Fixes

-   **Tap:** fix function loadSinglePacketInStore as it was never completed + properly catch error

<a name="0.0.1-alpha.68"></a>

## 0.0.1-alpha.68

### Bug Fixes

-   **TargetService.modbusWrite:** fix method type for modbusWrite (now POST)

### Features

-   **Monitoring:** added DefaultVariableMonitor.fromVariable() monitor factory function
-   **Monitoring:** improved monitor to work with modbus registers and memory address.
-   **Tap:** added Tap.loadSinglePacketInStore() function

### BREAKING CHANGES

-   **Monitoring:** renamed class Variable to VariableConfig

<a name="0.0.1-alpha.67"></a>

## 0.0.1-alpha.67 (2019-02-25)

### Features

-   **AdpControl:** added setter (setAdpControlOut) and getter (getAdpControlIn) ([2109827](https://bitbucket.org/iotize-solutions/device-api.project/commits/2109827))

### Bug fixes

-   **ModbusOptions**: fix encoding/decoding of ModbusOptions model

<a name="0.0.1-alpha.66"></a>

## 0.0.1-alpha.66 (2019-02-19)

### BREAKING CHANGES:

-   `ServiceCallType` now take an `EncoderFct` instead of `ConverterFunction` as `bodyEncoder` attribute

### Bug Fixes

-   **Client:** return error observable instead of throwing errors (impact encryption() and command())

### Features

-   **Api:** Added ConverterFunctionAdapter
-   **Api:** added encoder/decoder function definition
-   **Converter:** added ByteSwapConverter
-   **TapStreamWriter:** add constructor from buffer

<a name="0.0.1-alpha.65"></a>

## 0.0.1-alpha.65 (2019-02-18)

### Bug Fixes

-   **UartSettings:** fix converter

### Features

-   added adp methds in new service called _AdpService_
-   added **Variable::readProfile** resource
-   added **Interface::setAdpContronIn** resource
-   added **Interface::getAdpControlOut** resource

<a name="0.0.1-alpha.64"></a>

## 0.0.1-alpha.64 (2019-02-12)

### Bug Fixes

-   **TapStream:** fix TapStreamReader.fromArray() method when using array where its buffer is different

<a name="0.0.1-alpha.63"></a>

## 0.0.1-alpha.63 (2019-02-08)

### Bug Fixes

-   **InterfaceLock** fix scram option encoding/decoding
-   **EnumConverters** fix all enum converters

<a name="0.0.1-alpha.62"></a>

## 0.0.1-alpha.62 (2019-02-06)

### Bug Fixes

-   **build** removed missing dependency

<a name="0.0.1-alpha.60"></a>

## 0.0.1-alpha.59 (2019-01-22)

### Features

-   **TapDevice**:
    -   Added experimental `sendSinglePacket(packet)` function to send `SinglePacket` (not fully tested)

### BREAKING CHANGES:

Api has been regenerted, some services have been added.

-   Services
    -   **DatalogService** renamed to **DataLogService**
        -   All functions containing **datalog** have been renamed to **dataLog**
    -   **DeviceService::getPublicPassword()** has been **removed**
    -   **InterfaceService::postLoginUid()** has been **renamed** to **loginWithUID(uid)**
    -   **InterfaceService::getAuthorizedHostProtocol()** return type has been changed to **Array\<HostProtocol\>**
    -   **InterfaceService::postAuthorizedHostProtocol(Array\<HostProtocol\>)** parameter type changed
    -   **InterfaceService::multiCommands()** renamed to **multiRequests()**
    -   **InterfaceService::getCloudMqttPeriod()** renamed to **getUploadPeriod()**
    -   **GroupService::postPassword()** renamed to **changePassword()**
    -   **TargetService::getProtocolList()** renamed to **getAvailableProtocols()** and return type changed to **Array\<TargetProtocol\>**
    -   Added function **GroupService:changePasswordKey()**
    -   Secure element related functions have been moved to **SecureElementService**
-   Models:
    -   **ListAclEntry** renamed to **AclEntries**

<a name="0.0.1-alpha.59"></a>

## 0.0.1-alpha.59 (2018-12-17)

### Bug Fixes

-   **TargetService:** fix readBytes() and deprecated read() ([9c451da](https://github.com/iotize-solutions/iotize-device-client.js/commit/9c451da))

<a name="0.0.1-alpha.58"></a>

## 0.0.1-alpha.58 (2018-12-17)

### Features

-   **FormatHelper:** FormatHelper now accept a null parameter (returns empty string) ([af4136f](https://github.com/iotize-solutions/iotize-device-client.js/commit/af4136f))
-   **testing:** ConverterHelper::buffer() now checks if it's a valid hexadecimal string (throw error otherwise) ([8299f8c](https://github.com/iotize-solutions/iotize-device-client.js/commit/8299f8c))
-   **testing:** improve unit tests. they can now be run against a real or a mock device ([ec098c2](https://github.com/iotize-solutions/iotize-device-client.js/commit/ec098c2))

<a name="0.0.1-alpha.57"></a>

## 0.0.1-alpha.57 (2018-11-19)

### Bug Fixes

-   **NumberConverter:** fix toOpaqueMsb() when passing 16 bits number ([03ba12f](https://github.com/iotize-solutions/iotize-device-client.js/commit/03ba12f))

### Features

-   **NumberConverter:** fix NumberConverter with SIGNED value ([c6cd694](https://github.com/iotize-solutions/iotize-device-client.js/commit/c6cd694))
-   **Tap:** add alias type Tap on IoTizeDevice. Renamed TapDevice to TapInterface ([0863a28](https://github.com/iotize-solutions/iotize-device-client.js/commit/0863a28))
-   **TapDevice:** add second argument to ([9b20ff2](https://github.com/iotize-solutions/iotize-device-client.js/commit/9b20ff2))
-   **TLVParser:** logger can be pass as a parameter. Default value is console ([e4253ff](https://github.com/iotize-solutions/iotize-device-client.js/commit/e4253ff))

<a name="0.0.1-alpha.56"></a>

## 0.0.1-alpha.56 (2018-11-16)

### Bug Fixes

-   **NumberConverter:** fix toOpaqueMsb() when passing 16 bits number ([03ba12f](https://github.com/iotize-solutions/iotize-device-client.js/commit/03ba12f))

### Features

-   **Tap:** add alias type Tap on IoTizeDevice. Renamed TapDevice to TapInterface ([0863a28](https://github.com/iotize-solutions/iotize-device-client.js/commit/0863a28))
-   **Tap:** add second argument to ([9b20ff2](https://github.com/iotize-solutions/iotize-device-client.js/commit/9b20ff2))
-   **TLVParser:** logger can be pass as a parameter. Default value is console ([e4253ff](https://github.com/iotize-solutions/iotize-device-client.js/commit/e4253ff))

<a name="0.0.1-alpha.55"></a>

## 0.0.1-alpha.55 (2018-11-13)

### Bug Fixes

-   **NumberConverter:** fix NumberConverter with SIGNED value ([c6cd694](https://github.com/iotize-solutions/iotize-device-client.js/commit/c6cd694))

<a name="0.0.1-alpha.54"></a>

## 0.0.1-alpha.54 (2018-11-06)

### Bug Fixes

-   **bundle service:** fix putAclGroupId method ([eb44d9b](https://github.com/iotize-solutions/iotize-device-client.js/commit/eb44d9b))

<a name="0.0.1-alpha.53"></a>

## 0.0.1-alpha.53 (2018-11-06)

### Bug Fixes

-   **converter:** fix ipv4 string ENCODER ([34a54cd](https://github.com/iotize-solutions/iotize-device-client.js/commit/34a54cd))
-   **converter:** fix TargetCoreType ([324414f](https://github.com/iotize-solutions/iotize-device-client.js/commit/324414f))

### Features

-   **client:** add 4th parameter to lwm2m path for resource id (for example /1/2/3/4) ([9162f10](https://github.com/iotize-solutions/iotize-device-client.js/commit/9162f10))

<a name="0.0.1-alpha.52"></a>

## 0.0.1-alpha.52

### Bug Fixes

-   **MaskConverter:** fix mask converter when input array is too big to be converted as a number. It will now take at max the 4 first bytes of the input ([7c18be4](https://github.com/iotize-solutions/iotize-device-client.js/commit/7c18be4))
-   **service:** fix how absctact service deduce the return type of the request ([5848b77](https://github.com/iotize-solutions/iotize-device-client.js/commit/5848b77))

### Features

-   **unit test:** add functions to load device from a snapshot file for unit tests ([265ffaf](https://github.com/iotize-solutions/iotize-device-client.js/commit/265ffaf))

<a name="0.0.1-alpha.51"></a>

## 0.0.1-alpha.51

<a name="0.0.1-alpha.50"></a>

## 0.0.1-alpha.50 (2018-11-02)

### BREAKING CHANGES:

-   removed function `IoTizeDevice.lwm2mCall()` function in favor of object `IoTizeDevice.lwm2m`
-   Splited api default config and ApiConfig class
-   Removed getter `IoTizeDevice::converter` in favor of `IoTizeDevice::apiConfig`

### Features

-   **Encoder:** added encoder function type ([859f661](https://github.com/iotize-solutions/iotize-device-client.js/commit/859f661))
-   **PathParameter:** added function fillAllParams() ([3800c0c](https://github.com/iotize-solutions/iotize-device-client.js/commit/3800c0c))

<a name="0.0.1-alpha.49"></a>

## 0.0.1-alpha.49 (2018-11-01)

The api has been regenerated. There are several breaking changes.

### BREAKING CHANGES:

**Be carefull, this list not exaustive**

-   **services**:
    -   **DeviceService**:
        -   `postFactoryReset()` renamed to `factoryReset()`
        -   `postConfigVersion()` renamed to `reloadConfig()`
    -   **TargetService**:
        -   `postDisconnect()` renamed to `disconnect()`
        -   `postConnect()` renamed to `connect()`
-   **models**
    -   **UartSettings**
        -   field `parity` renamed to `bitParity`
    -   **LoginCredential**
        -   field `hash_password` renamed to `hashPassword`
    -   **InterfaceLock**
        -   field `scram_activated` renamed to `scramActivated`

<a name="0.0.1-alpha.48"></a>

## 0.0.1-alpha.48 (2018-10-15)

### Bug Fixes

-   **tlv:** removed lwm2m-codec dependency as it's not working in a browser and it's too heavy

<a name="0.0.1-alpha.47"></a>

## 0.0.1-alpha.47 (2018-10-12)

### BREAKING CHANGES:

-   **rxjs**: rxjs@^6 is now a peer dependency

### Bug Fixes

-   **converter:** fixing target protocol decoding ([1a44038](https://github.com/iotize-solutions/iotize-device-client.js/commit/1a44038))
-   **service:** fix return type of TargetService::read ([5d96504](https://github.com/iotize-solutions/iotize-device-client.js/commit/5d96504))

### Features

-   **TargetServer:** added send() function for transparent send to target without waiting for response ([b2fce34](https://github.com/iotize-solutions/iotize-device-client.js/commit/b2fce34))

<a name="0.0.1-alpha.46"></a>

## 0.0.1-alpha.46 (2018-10-03)

### Bug Fixes

-   **converter:** fixing target protocol decoding ([1a44038](https://github.com/iotize-solutions/iotize-device-client.js/commit/1a44038))

### Features

-   **TargetServer:** added send() function for transparent send to target without waiting for response ([b2fce34](https://github.com/iotize-solutions/iotize-device-client.js/commit/b2fce34))

<a name="0.0.1-alpha.45"></a>

## 0.0.1-alpha.45 (2018-10-02)

### Features

-   **device:** added target memory read / write services (usefull for tapnpass) ([beea38c](https://github.com/iotize-solutions/iotize-device-client.js/commit/beea38c))

<a name="0.0.1-alpha.44"></a>

## 0.0.1-alpha.44 (2018-09-28)

### BREAKING CHANGES:

-   **Mock protocol**: Mock protocol/Mock client is now part of an external library

### Features

-   **Device Configurator:** Added device configurator feature. Usefull for example to setup list of variables/bundles ([8902f1e](https://github.com/iotize-solutions/iotize-device-client.js/commit/8902f1e))
-   **Device Response:** method body() now take the decoder as an optional parameter ([73656cd](https://github.com/iotize-solutions/iotize-device-client.js/commit/73656cd))
-   **Optimization:** Cleanup and size optimization of bundle + added zipped output file ([fd8add7](https://github.com/iotize-solutions/iotize-device-client.js/commit/fd8add7))

<a name="0.0.1-alpha.43"></a>

## 0.0.1-alpha.43 (2018-09-11)

### Bug Fixes

-   **device:** Device login when scram activated is now returning true promise when successful ([c447a89](https://github.com/iotize-solutions/iotize-device-client.js/commit/c447a89))

### Features

-   **ByteByffer:** addNumber with endianess ([0c77849](https://github.com/iotize-solutions/iotize-device-client.js/commit/0c77849))

<a name="0.0.1-alpha.42"></a>

## 0.0.1-alpha.42 (2018-09-05)

### Features

-   **ByteByffer:** addNumber with endianess ([0c77849](https://github.com/iotize-solutions/iotize-device-client.js/commit/0c77849))

<a name="0.0.1-alpha.41"></a>

## 0.0.1-alpha.41 (2018-09-05)

### Features

-   **ByteBuffer:** Add setter for offset and improve readNumber function ([1654192](https://github.com/iotize-solutions/iotize-device-client.js/commit/1654192))
-   **monitoring:** Added bundle monitoring feature ([ebb47e4](https://github.com/iotize-solutions/iotize-device-client.js/commit/ebb47e4))
-   **utility:** add utility function to compute padding accoding to a length and a module ([68b3605](https://github.com/iotize-solutions/iotize-device-client.js/commit/68b3605))

<a name="0.0.1-alpha.38"></a>

## 0.0.1-alpha.38 (2018-08-23)

### Features

-   Added scram login / encrypted communication feature

### Features

-   Renamed actual VariableMonitor::stop() to VariableMonitor::pause() and added new function VariableMonitor::stop() that terminate observable (breaking change) ([072fb42](https://github.com/iotize-solutions/iotize-device-client.js/commit/072fb42))

<a name="0.0.1-alpha.37"></a>

## 0.0.1-alpha.37 (2018-08-03)

### Bug Fixes

-   bug service passing data to lwm2m ([719163f](https://github.com/iotize-solutions/iotize-device-client.js/commit/719163f))

<a name="0.0.1-alpha.36"></a>

## 0.0.1-alpha.36 (2018-07-30)

### Bug Fixes

-   fix vulerability issues ([0a10b64](https://github.com/iotize-solutions/iotize-device-client.js/commit/0a10b64))

### Features

-   added template type for payload in single packet ([45d7eac](https://github.com/iotize-solutions/iotize-device-client.js/commit/45d7eac))

<a name="0.0.1-alpha.35"></a>

## 0.0.1-alpha.35 (2018-07-25)

<a name="0.0.1-alpha.34"></a>

## 0.0.1-alpha.34 (2018-07-02)

### Breaking change

-   Body converter do not expect a Response object anymore but only a Uint8Array

<a name="0.0.1-alpha.33"></a>

## 0.0.1-alpha.33 (2018-06-28)

### Bug Fixes

-   browser compability for crypto hasher algo ([b70761e](https://github.com/iotize-solutions/iotize-device-client.js/commit/b70761e))

### Features

-   **device:** added login feature ([19978e6](https://github.com/iotize-solutions/iotize-device-client.js/commit/19978e6))
-   add isConnected function in device ([2a36c94](https://github.com/iotize-solutions/iotize-device-client.js/commit/2a36c94))

<a name="0.0.1-alpha.31"></a>

## 0.0.1-alpha.31 (2018-06-22)

### Bug Fixes

-   browser compability for crypto hasher algo ([b70761e](https://github.com/iotize-solutions/iotize-device-client.js/commit/b70761e))

<a name="0.0.1-alpha.30"></a>

## 0.0.1-alpha.30 (2018-06-22)

### Bug Fixes

-   browser compability for crypto hasher algo ([b70761e](https://github.com/iotize-solutions/iotize-device-client.js/commit/b70761e))

<a name="0.0.1-alpha.29"></a>

## 0.0.1-alpha.29 (2018-06-22)

### Features

-   added hasher to api ([5dcb9c2](https://github.com/iotize-solutions/iotize-device-client.js/commit/5dcb9c2))
-   added single packet converter ([5fd8ab1](https://github.com/iotize-solutions/iotize-device-client.js/commit/5fd8ab1))
-   updated generated device api ([45455bd](https://github.com/iotize-solutions/iotize-device-client.js/commit/45455bd))

<a name="0.0.1-alpha.23"></a>

## 0.0.1-alpha.23 (2018-06-12)

### Bug Fixes

-   several fixes ([fa59f80](https://github.com/iotize-solutions/iotize-device-client.js/commit/fa59f80))
-   **comunication:** Copy send data before queuing the request. This will fix monitoring bug ([97bc3ed](https://github.com/iotize-solutions/iotize-device-client.js/commit/97bc3ed))

### Features

-   first commit for device scanner definition ([928cd33](https://github.com/iotize-solutions/iotize-device-client.js/commit/928cd33))

<a name="0.0.1-alpha.20"></a>

## 0.0.1-alpha.20 (2018-06-11)

### Bug Fixes

-   several fixes ([fa59f80](https://github.com/iotize-solutions/iotize-device-client.js/commit/fa59f80))

### Features

-   first commit for device scanner definition ([928cd33](https://github.com/iotize-solutions/iotize-device-client.js/commit/928cd33))

<a name="0.0.1-alpha.19"></a>

## 0.0.1-alpha.19 (2018-06-08)

<a name="0.0.1-alpha.18"></a>

## 0.0.1-alpha.18 (2018-06-08)

<a name="0.0.1-alpha.17"></a>

## 0.0.1-alpha.17 (2018-06-08)

<a name="0.0.1-alpha.16"></a>

## 0.0.1-alpha.16 (2018-06-08)

<a name="0.0.1-alpha.15"></a>

## 0.0.1-alpha.15 (2018-06-08)

### Features

-   **device:** add device factory utility function ([3f514e9](https://github.com/iotize-solutions/iotize-device-client.js/commit/3f514e9))
-   **protocol:** add queuing protocol system ([6ae391c](https://github.com/iotize-solutions/iotize-device-client.js/commit/6ae391c))
-   add utility functions ([895d3ae](https://github.com/iotize-solutions/iotize-device-client.js/commit/895d3ae))
-   Adding target variable feature to monitor variables ([cc063c3](https://github.com/iotize-solutions/iotize-device-client.js/commit/cc063c3))

# Change log

<a name="0.0.1-alpha.14"></a>

## 0.0.1-alpha.14 (2018-06-07)

### Bug Fixes

-   bugfix in constructor. Remove unexpected call to service function ([d405544](https://github.com/iotize-solutions/iotize-device-client.js/commit/d405544))
-   fix client update for iotize device. It will now also change client reference for services ([d4c92c2](https://github.com/iotize-solutions/iotize-device-client.js/commit/d4c92c2))

### Features

-   **device:** getters/setters for converter map for Iotize Device ([df9ce38](https://github.com/iotize-solutions/iotize-device-client.js/commit/df9ce38))
-   add result code translation file ([bd9f120](https://github.com/iotize-solutions/iotize-device-client.js/commit/bd9f120))
-   Added password hasher converter feature ([bc2b095](https://github.com/iotize-solutions/iotize-device-client.js/commit/bc2b095))
-   added reponse error class for device response error ([7c2e5b3](https://github.com/iotize-solutions/iotize-device-client.js/commit/7c2e5b3))
-   errorcode is now an optional parameter for Response.ERROR() ([8773bdb](https://github.com/iotize-solutions/iotize-device-client.js/commit/8773bdb))

<a name="0.0.1-alpha.13"></a>

## 0.0.1-alpha.13 (2018-06-06)

### Features

-   Added connect/disconnect functions ([fdfd662](https://github.com/iotize-solutions/iotize-device-client.js/commit/fdfd662))
-   added float converter ([c1fca37](https://github.com/iotize-solutions/iotize-device-client.js/commit/c1fca37))
