<!-- markdownlint-disable no-duplicate-heading -->

# Change Log

## 0.9.0-beta (2025-05-23)

### Changed

- ids are now generated using CSPRNG
- `ws` is now an optional dependency
- **BREAKING** cluster config

### Added

- cluster config now supports static directory
- cluster config now supports websocket override

### Fixed
- use a micro-task when calling clients receive callback (to prevent re-entrancy with old state for local clients)
- websocket connection closing
- mesh node shutdown

## 0.8.3-beta (2024-12-05)

### Changed

- **BREAKING** cluster config is now mesh config

### Added

- timout for authenticators

## 0.8.2-beta (2024-12-03)

### Added

- visibility configuration

### Fixed

- fix metrics publisher typings

## 0.8.1-beta (2024-11-27)

### Added

- added ping handler in client opts

### Changed

- when duplicate `hello` is detected existing socket is pinged to stimulate close in case of time_wait

# 0.8.0-beta (2024-11-22)

### Changed

- IOConnectGateway namespace renamed to IOGateway
- relaxed `opts` parameter in `Gateway#client()` - no longer required.

### Fixed

- exports in package.json

# 0.7.0-beta (2024-10-26)

### Changed

- **BREAKING** ws server support moved to @interopio/gateway-server package
- IoConnectGateway namespace renamed to IOConnectGateway
- @interopio/gateway-metrics-api upgraded to 0.2.0-beta
- @interopio/gateway-auth-api upgraded to 0.3.0-beta
- IOConnectGateway.Encoding.Codec now supports non string output

### Added

- IOConnectGateway.Filtering namespace
- IOConnectGateway.Encoding.direct encoder

## 0.6.0-beta (2024-10-10)

### Added

- initial mesh support (remote gateway server)
- encoding types IoConnectGateway.Encoding namespace

### Changed
- logging types moved to IoConnectGateway.Logging namespace

### Fixed

- authenticator now expects providerContext (used by custom authenticators)

## 0.5.2-beta (2024-08-14)

### Fixed
- allow creating context without data (backward compatibility)

## 0.5.1-beta (2024-07-04)

### Added
- memory monitoring
- ws max connection limit

### Changed
- welcome options now have info

### Fixed
- fetch override for rest worker

# 0.5.0-beta (2024-07-04)

### Fixed
- browser exports
- rest metrics publisher will now send an initial GET request on startup (to allow authentication)
- ws-server shutdown

### Changes
- serialize-error is now included in `metrics-publisher-worker.js` module.
- use MIT license

## 0.4.1-beta (2024-06-25)

### Fixed
- package contents

# 0.4.0-beta (2024-06-25)

### Changed
- bump ws package to ^8.17.1 (to prevent DoS security vulnerability)

### Added
- support for custom authentication providers
- support for metrics publishers: _custom_, _rest_ and _file (nodejs only)_
- support for oauth2 authenticator

### Fixed
- fixed scavenge interval handling

# 0.3.0-beta (2024-02-27)

### Added
- 'retained' as possible default context lifetime

## 0.2.1-beta (2024-02-27)

### Fixed
- Fixed origin filters regexp support

# 0.2.0-beta (2024-02-26)

### Changed
- bump ws package to ^8.12.1
- bump jsrsasign package to ^11.1.0

### Fixed
- Fixed origin filters (filter iteration)

# 0.1.0-beta (2024-01-26)

### Added
- support for default_context_lifetime (defaults to 'ref-counted')

### Changed
- global domain is now version 2 (support for hello options)
- context domain is now version 3 (support for optional lifetime and join options)
- updated jsrsasign to 11.0.0 (address marvin attack vulnerability)

## 0.0.4-beta (2024-01-02)

### Changed
- log on console by default
- close ws connection with reason (4001: 'ping expected') when ping is not received

### Bug Fixes
- fixed build (use prepare instead of postinstall to generate code)

## 0.0.3-beta (2023-11-30)

### Added
- client scavenger
- ws server socket error handler
- validate source (peer goes through only one connection)
- secret verifier callback for basic auth provider
- info now returns version property

### Changed
- log config / log event types signatures
- logger names now use dot (.) for separator (better log4js interop)
- removed `anylogger` dependency
- updated `jsrsasign` dependency to `^10.9.0`

### Bug Fixes
- resolved identity machine was not used from client source endpoint
- deduplicate peers before announcing peer-factories-added

## 0.0.2-beta (2023-10-17)

Initial Release
