Releases: kalm/kalm.js
Releases · kalm/kalm.js
v8.1.1
Minor changes
- Allowing socket objects to be passed to the Client constructor, enabling compatibility with other socket libraries.
- added warning on misnamed config parameters
- added a client disconnect() method that is an alias for destroy()
- added a secure property on ws transport config for simpler wss
- throws an error on channel subscription with non-function handler
- added path validation for ipc
- cleaned up residual timer when disconnecting a udp client
- updated documentations
v8.0.0
Breaking changes
- Updated bundling for greater compatibility (exports may behave differently)
- Deprecated the WebRTC Transport (too convoluted to fit the Kalm model)
- Changed the signature of the
frameevent handler from(frame: RawFrame, payloadBytes: number)to({ body: RawFrame, payloadBytes: number})to ensure all event handlers only have one arguments.
Minor changes
- Added support for the new native WS APIs in Node 22 and later
- Removed yarn from the toolchain. There's no reason to keep it now that NPM workspaces are more mature.
- Deprecated the
agentproperty for the WS Transport - Migrated the underlying Node EventEmitter to the cross-platform EventTarget system. A translation layer should keep end-user code intact.
- Fixed server connections not getting cleaned up
- Removed empty channels from frame payloads, saving bandwidth
- Changed the subscribe handler's second argument name from
frametocontext, to reduce confusion with its nestedframeproperty. - Fixed missing UDP client
connectevent. - Removed the potentially misleading argument in the
connectevent since it only exposes the unbound socket. - Bumped engines requirement to Node 20.x
v7.0.0
Major changes
- Added descriptions in TS definition file:
- Standardized parameter names and expected behavior
- Removed
secureWS option, instead checking ifcertandkeyare set - Routines.dynamic option
hzis nowmaxIntervaland is measured in milliseconds - Renamed
providerinternally toserverfor easier understanding - Removed previously deprecated UDP
connectTimeoutoption
- Removed
- Added UDP idle timeout behavior, configurable with
socketTimeout - Added WS idle timeout behavior, configurable with
socketTimeout - Added WS
agentoption for passing a custom https.Agent. - frameId counter now goes up to
0xffffffffbefore cycling instead of0xffff
Bug fixes
- Fixed an issue in Routines.tick where all queues shared the same frameId counter
- Routines.tick option
seednow correctly sets the frameId and starts the counter to match the expected pace - Fixed references to Node modules in TS definitions
Housekeeping
- Updated dependencies
- Removed extraneous linting packages (using recommended instead)
- Better ts definition management
Full Changelog: v6.0.0...v7.0.0
v6.0.0
Features
- Client reference in subscribe callback is now fully featured instead of a shallow config object.
- Client.remote is now a const instead of a function (breaking change)
- Client.local is now a const instead of a function (breaking change)
- Bumped
wsversion
Bug fixes
- Fixed importing when using typescript (breaking change)
- Fixed socket remote info
- Fixed multiple types, including opening
portvalue to be a string
v5.0.0
This build focuses on streamlining serialisation to increase performance, now properly fixing multiplexing and reducing the bundle size.
Features
- Fixed multiplexing
Breaking changes
- Changed default packet framing to be a pure json object
- Removed custom framing
- Added packet message hard cap (0xFF) across all channels for a client
- Frame Ids now cycle from 0-0xFFFF instead of 0-0xFF
v4.0.0
[v3.3.0]
[v3.2.2]
[v3.2.0]
- Reworked the entire typescript implementations
- Changed bundle module spec (exnext & rollup'd -> none)
- Centralized test tooling
- Fixed linting in the project
- Reworked documentation, naming and tooling
- Deprecated a few stats events, formally introduced
framesas a consumable event for decoded frames.