# Changelog

All notable changes and version updates will be documented in this file.

## [1.5.3] - 2024-06-29

- Fixed an error in keepalive handling and timeout detection.

## [1.5.2] - 2023-10-17

- Fixed an error in how duplicate role names were handled in get_role_map()
  which could lead to an infinite loop.

## [1.5.1] - 2022-03-07

- Fixed a small error in the typescript exports.

## [1.5.0] - 2022-03-07

- Changed the export structure and removed explicit export definitions
  from package.json.

- Added correct typescript declarations for the browser export. This export
  can be imported using `aes70/src/index.browser`.

- Improved some error handling and recovery when connections are being
  closed.

## [1.4.1] - 2022-03-05

- Add typescript declarations for WebSocketConnection

- Raise an 'error' event on AES70 parsing errors in non-udp connections.

- Hand the error object from 'errors' events in WebSocketConnections to the
  application

- Fixed the type of Values in OcaPositionDescriptors. It was previously
  implemented as a Float32, while it should be Float32[6].

## [1.4] - 2022-12-07

- Change the signature of events: Events are now emitted as specified in the
  aes70 standard with a single argument which is the corresponding event data
  struct.

- Fix the encoding of OcaMediaConnectorElement. It was - incorrectly - encoded
  as a single byte.

- Fix typescript declarations of OcaManagerDefaultObjectNumbers

- Introduce explicit types for bitsets for the typescript declarations.

## [1.3.8] - 2022-09-28

- Split UDP Connection into an abstract implementation and a concrete one
  to be used with NodeJS.

## [1.3.7] - 2022-06-26

- Fixed a bug in the testsuite which could lead tests to spuriously fail if they
  run too long.
- Introduce an optional callback based variant for all remote methods in control
  classes.
- UDPConnection: Improve the estimation of the time a command has been sent.
  This can prevent commands from failing spuriously in situations in which the
  send queue is very long.
- Corrected some control class method attributes which were incorrect in the
  standards documents.

## [1.3.6] - 2022-03-13

- Add conditional 'exports' entry for NodeJS and
  'default' for browser environments
- Add wildcard 'exports' entry for files in './src'
- Add 'exports' entry for AES70.es5.js
- Fix handling of incoming notifications without
  parameter data. This bug was triggered by the
  OcaIdentificationSensor.Identify event.

## [1.3.5] - 2022-01-17

- Fix OcaLibrary.GetVolume() signature

## [1.3.4] - 2021-10-04

- Add OCP1 parser to exports as './OCP1'

## [1.3.3] - 2021-08-30

- Fix WebSocket connection under nodejs
- Add index.js to 'exports' as '.'

## [1.3.2] - 2021-08-12

- Fixed some keepalive and close handling errors in
  UDPConnection
- Added new message generator implementation which
  merges PDUs into larger messages
- Improve UDP command retry logic to handle situations
  where many commands are queued in a burst. Previously,
  command could time out while they were still buffered
- Add explicit 'exports' to package.json

## [1.3.0] - 2021-08-02

- Added TypeScript declaration files
- Generate documentation using sphinx-js

## [1.2.0] - 2021-06-06

- Added new OCP.1 implementation
- Fixed encoding of OcaDBr type
- Added eslint subproject
- Deprecate non module version of npm module

## [1.1.15] - 2020-07-29

- Added missing shebang to bin/printDevice.js

## [1.1.14] - 2020-07-29

- Fixed utf8 encoder in NodeJS

## [1.1.13] - 2020-07-13

- Fixed encoding bug in STRING typ
- Fixed encoding of OcaDBr

## [1.1.12] - 2020-03-07

- Added missing OcaUint64Sensor

## [1.1.11] - 2020-02-12

- Included es6 module src in the npm package

## [1.1.10] - 2020-02-07

- Removed some debugging

## [1.1.9] - 2020-02-07

- Allow configuring the maximum number of bytes per writes
  for all connections. This can be useful for devices which
  have limited network buffer space

## [1.1.8] - 2020-02-06

- Handle decoding errors incoming data in UDP connections gracefully

## [1.1.5] - 2019-11-29

- Handle decoding errors for response payloads gracefully

## [1.1.4] - 2019-10-26

- Fixed two bugs in unicode handling of OcaString encoders
- Better error handling when decoding paremeter data

## [1.1.3] - 2019-07-13

- Renamed some getters/setters to match the corresponding property types

## [1.1.2] - 2019-05-14

### Fixed
- Fixed a bug in define_custom_class when using complex
  property types.

### Fixed
- Fixed a bug in define_custom_class

## [1.1.1] - 2019-05-14

### Fixed
- Fixed a bug in define_custom_class

## [1.1.0] - 2019-05-14

### Added

- Added an API for defining custom classes. This can be used to implement
  proprietary classes which are not part of the AES70 standard.

## [1.0.1] - 2019-04-27

### Added
- More documentation
- A new intake from the updated specification
- Added more options to make UDP connections
  reliable in situations of packet loss

### Fixed
- updated npm dependencies
- better handling of promise rejections
- (more) complete cleanup code when calling
  Dispose on e.g. events

## [1.0.0] - 2019-01-03

### Added
- Initial release based on AES70-2018
