Lib

Have more questions? Submit a request

[10.6.0] - 2022-11-28

Added

  • Custom error message in function rejectAfterTimeout
  • (internal) TS targets are both ES6 and ES5

[10.5.0] - 2022-11-04

Added

  • Prometheus /metrics scraping endpoint

[10.4.2] - 2022-10-31

Fixed

  • check-deps script missing expectRanges in .check-depsrc.json config

[10.4.1] - 2022-10-27

Fixed

  • Set default value for onExit callback in GenericGracefulExit class

[10.4.0] - 2022-10-24

Added

  • Class decorator that facilitate debugging of all methods of the class
  • Word string helper with capitalize, uncapitalize, pascal and camel case conversions.
  • Tool check-deps can check expected range of versions instead of just exact match.

[10.3.0] - 2022-10-12

Added

  • Hostname (domain) field to current socket object

Fixed

  • Tool version-upgrade new works properly event for package-lock.json files with new Node 16 format.

[10.2.1] - 2022-09-02

Fixed

  • Password encryption limitation for preEncryptPassword result only

[10.2.0] - 2022-07-22

Added

  • New proprietaryServerSelectionStrategy named dynamicPriority. It selects available server based on the priority (located in proprietaryPriorityPath, by default proprietaryClusterSettings.priority /collection=proprietaryClusterSettings, property=priority/ ).

[10.1.0] - 2022-07-18

Added

  • check-deps tool ignore file .check-depsignore

[10.0.0] - 2022-06-28

Changed

  • AMQP event queue bindRejectedDetached and prepareRejectedDetached accepts new options for automatic redelivering of rejected messages
  • AMQP event queue bindRejectedMany and prepareRejectedMany accepts new options for automatic redelivering of rejected messages

[9.4.1] - 2022-06-22

Fixed

  • moment-timezone version sync with other repositories

[9.4.0] - 2022-06-01

Added

  • WebSocket server emits custom codes and reasons in special cases when the socket is closed from the server side for better debugging

[9.3.1] - 2022-05-31

Fixed

  • Lowered prefetch for action logs
  • Lowered prefetch for device logs

[9.3.0] - 2022-05-30

Added

  • Device logs

[9.2.0] - 2022-04-13

Added

  • Add getFileExtension function

[9.1.0] - 2022-03-07

Added

  • onExit callback in constructor is not mandatory in connection factories
  • optional timeout argument for InfluxDB connect method
  • Binding of rejected detached events of ES

[9.0.0] - 2022-02-18

Changed

  • Connection factories require onExit callback in constructor

Fixed

  • Fix getObjectWithOmittedValuesBy

[8.4.0] - 2022-02-07

Added

  • Object util getObjectKeys. Which is typed version of the object keys

[8.3.0] - 2022-01-31

Added

  • Add object utils omitByRecursively and getObjectWithOmittedValuesBy

Fixed

  • Allow white spaces in changelog change types

[8.2.0] - 2022-01-24

Added

  • Redis connection factory creates even connection pool
  • Function isValidTimestamp for validating UNIX timestamp
  • Function getDateTimeWithoutOffset gets date time without offset

[8.1.1] - 2021-12-10

Fixed

  • MongodD proprietary cluster ordinary connection strategy.

[8.1.0] - 2021-11-17

Added

  • redis connection factory supports graceful exit after connection error
  • mongo connection factory supports graceful exit after connection error
  • amqp connection factory supports graceful exit after connection error
  • postgres connection factory supports graceful exit after connection error
  • locked decoration can be instances scoped & this argument can be used in key callback

Fixed

  • AMQP channel provider will not be blocked by other connection instances

[8.0.0] - 2021-10-25

Changed

  • Device actions from device can have more separated queues

[7.0.1] - 2021-09-22

Fixed

  • Commands can be non persistent

[7.0.0] - 2021-09-08

Changed

  • Rewrite of AMQP architecture of device actions to dramatically improve performance

Fixed

  • AMQP won't send a RCP response if the consumer nacked the message
  • Closing connection to AMQP will not stuck forever

[6.2.2] - 2021-08-30

Fixed

  • Updated moment-timezone to the latest version

[6.2.1] - 2021-08-27

Fixed

  • Add missing path option prefix for socket.io server factory

[6.2.0] - 2021-08-26

Added

  • InfluxDB connection wrapper

[6.1.3] - 2021-08-13

Fixed

  • Added optional timestamp parameter to sendFromDevice function
  • Added optional timestamp parameter to bindPlatform function

[6.1.2] - 2021-08-09

Fixed

  • Binding queues when it has x-expires RabbitMQ flag set too short
  • Not autoDeleting queue immediately after device is disconnected (only expire queue)
  • AMQP retrying of subscription is done randomly from 0 - 10 seconds

[6.1.1] - 2021-08-04

Fixed

  • Race condition failures in AQMP channels & connections
  • Prevent channels borking when more consumers are trying to connect
  • Make device actions different sockets independent

[6.1.0] - 2021-07-26

Added

  • New option for mongodb proprietary cluster server selection strategy called ordinary
  • API for getting specific database number of redis connection

[6.0.1] - 2021-06-25

Fixed

  • Month end is calculated correctly

[6.0.0] - 2021-06-21

Changed

  • Event queues are a quorum queue type now instead of obsolete classic type.

[5.3.0] - 2021-06-01

Added

  • Observable helper function flatten
  • Redis connection infinite reconnecting

Fixed

  • Redis connection close waits to disconnect

[5.2.0] - 2021-04-21

Added

  • Allow to iterate database cursors (only forward)

Fixed

  • Correctly get date of the end of month
  • Validation of changelog for duplications

[5.1.0] - 2021-03-10

Fixed

  • Add missing prod dependencies (lodash)
  • DateTime stats logic in february times

Added

  • New interfaces for power timer logic

Deprecated

  • Old interfaces for power time logic

[5.0.4] - 2021-01-29

Fixed

  • Make sentry init lib isomorphic (support for browser)

[5.0.2] - 2020-10-28

Fixed

  • PowerTimerSettings can save null timerOn and timerOff values

[5.0.1] - 2020-10-26

Fixed

  • Optimize event queue synchronization messages to be non-persistent

[5.0.0] - 2020-10-15

Changed

  • Default number of iterations in token encryption function (currently 10000)

[4.8.0] - 2020-10-12

Added

  • Added function that enrich httpServer object with status methods

[4.7.0] - 2020-10-09

Added

  • Domain argument in rejected event queue fetching
  • Parametrize event queue binding with suppressFirstError & redeliverDelayMs

Fixed

  • Memory leak in fetching rejected event queue
  • Loosing "many" & "rejected many" events when preparing them

[4.6.1] - 2020-09-22

Fixed

  • Fetching rejected events one-by-one without locking events in queue

[4.6.0] - 2020-09-21

Added

  • Enqueue events to specific queue name (not only consumer type)
  • Adjusting dead letter parameters for fetchNext events
  • Queue for rejected domain events
  • Optionally rejecting with requeue=false (dead lettering) simple consumption using special options flag deadLetterIfRedeliveredAndErred.

[4.5.0] - 2020-09-18

Added

  • Event queue function bindMany which consumes many specified event types but using the single queue with more bindings over events exchanges.
  • Event queue can be bound with singleActiveConsumer option.
  • Command successful process response contains timestamp property.

Deprecated

  • Event queue function bindMore. Use new bindMany instead.

[4.4.1] - 2020-09-15

Fixed

  • Fixed changelog for proper version update

[4.4.0] - 2020-09-15

Added

  • Added functions for getting first/last days in month/year for statistics usage

[4.3.0] - 2020-09-07

Added

  • Event contains required secondaryIndex property and id is required as well

[4.2.0] - 2020-09-03

Added

  • Optionally enable websocket client checking that the connection is still alive

[4.1.0] - 2020-08-31

Added

  • events emitter helper to wait for either a success or fail event, resolve/reject the promise and cleanup the listeners

[4.0.3] - 2020-08-21

Fixed

  • wait synchronization in eventQueue has to be explicitly canceled & closed when used
  • Incorrect type of synchronization exchange made synchronization shared across multiple listeners

[4.0.2] - 2020-08-19

Fixed

  • Removing ununsed synchronization event queues (sometime it was kept existing unused in memory til consumer is disconnected)

[4.0.1] - 2020-08-17

Fixed

  • process command accepts second type parameters CommandError optionally

[4.0.0] - 2020-08-13

Fixed

  • Moved optional respond argument in amqp subscribe logic under standard consume options

Changed

  • Simplify types of ICommand of CQRS
  • Require command id when creating or dispatching command to CQRS

Added

  • New synchronization exchanges and queues for event sourcing

[3.2.0] - 2020-07-27

Added

  • New mongodb proprietary replica set strategy: lowReadLatency

[3.1.5] - 2020-07-14

Fixed

  • Brutal bug in device action queue when delivering postponable actions to device

[3.1.4] - 2020-07-13

Fixed

  • Another repeating (duplicating) messages when some postponable action type was bound in the past, but now it is not bound.

[3.1.3] - 2020-07-13

Fixed

  • Accidentally repeating (duplicating) messages in AMQP device actions queues when device is not reachable

[3.1.2] - 2020-06-21

Fixed

  • Fix version-upgrade tool if package-lock.json is not a part of project

[3.1.1] - 2020-06-19

Fixed

  • AMQP library: Prevent persistent device action queue failed actions to keep unacked when unexpected error happen
  • New optional tool with check deps (are exact and has no prerelease)

[3.1.0] - 2020-06-09

Added

  • AMQP library accepts proprietary autoDeleteDeadLetter

Fixed

  • AMQP consume persistent option is renamed to autoDelete (internal API)

[3.0.0] - 2020-06-05

Added

  • Notifications support for events of AMQP ES
  • Added webalize function for converting strings into url safe strings
  • Options for socket autoreconnecting using progresive wait

Fixed

  • Optimize action logs, storage commands and aggregated commands using not persistent messages
  • Added amqp eventSourcing fetchAll method to easily retrieve all events of given type
  • Possibly options for amqp generic-pool
  • Improve socket connections client/server

Changed

  • Optimized events binding (compatibility break of exchnages usage)
  • RedisLock is now capable of using much shorter redis TTL with the same releaseTimeouts settings
  • Change underlying architecture of device action queue (now uses redis for persistency and amqp only for connected devices, not compatible with all amqp schema)

[2.6.0] - 2019-11-08

Added

  • AMQP consumption can be delayed & first error rejection can be overlooked by options

[2.5.0] - 2019-09-18

Added

  • New auto-reconnecting implementation of WS socket client

[2.4.5] - 2019-08-13

Fixed

  • Prefetch 500 action logs instead of 100

[2.4.3] - 2019-07-04

Fixed

  • New optional parameter which proprietryReplicaSet and proprietaryServerSelectionStrategy=random for mongodb connection

[2.4.0] - 2019-06-19

Added

  • MongoDB connection has optional session inside used for transactions
  • Allow publish events in queue to specific consumer (for replay ES)

[2.3.2] - 2019-05-24

Fixed

  • add possibility to ack, nack aggregated commands by self (not just by throwing error)

[2.3.0] - 2019-05-20

Added

  • New stored_commands queues for optimization of command storing in mongo

Fixed

  • Device actions are stored primarely to memory only to boost up the processing
  • Semver of version in changelog can now contains even prerelease tags

[2.2.3] - 2019-04-18

Fixed

  • Queues created by healthchecking status page are not persisted (kept in rabbit forever)
  • HTTP health checking that sometimes failed because of a misused timeout parameter

[2.2.1] - 2019-04-09

Fixed

  • Allow WebSocket server to be prefixed by some path

[2.2.0] - 2019-04-08

Added

  • Added WebSocket & socket.io adapter abstraction even for client

[2.1.2] - 2019-03-14

Fixed

  • Additional callback in status middleware can use Request object now

[2.1.1] - 2019-03-13

Fixed

  • Update and unified MongoDBConnection

[2.1.0] - 2019-03-13

Added

  • Add status check library for amqp, mongo, postgre, redis and rethink

[2.0.1] - 2019-03-12

Fixed

  • Possible memory leaks in WebSocket server factory and AMQP consumption

[2.0.0] - 2019-03-11

Changed

  • Device action queues are bound to self exchange for every simple device
  • Web Socket handler abstraction has changed API to be more descriptive (not event emitter style)

Added

  • Allow set amqp binding with exclusive consumption

Fixed

  • Fix of WebSocket pinging to closed connection
  • Add exclusivity on amqp response queue
  • Fixes of possible AMQP memory leaks

[1.4.10] - 2019-03-01

Fixed

  • This time REALLY the fixed bug with AMQP double consumption

[1.4.9] - 2019-02-27

Fixed

  • Fixed bug in AMQP consumption when sometimes it would resubscribe even when it was supposed to be cancelled

[1.4.8] - 2019-02-01

Fixed

  • When web socket is closed by the server, wait 30 seconds and if it doesn't close, close it forcefully

[1.4.7] - 2019-02-01

Fixed

  • When web socket is closed explicitly by the server, make sure it still emits disconnect event

[1.4.6] - 2019-01-24

Fixed

  • Fix closing websocket server - explicitly close the server instance so that all connections are closed

[1.4.5] - 2019-01-21

Fixed

  • Minor fixes in commands sending expecting response
  • Unit tests failing
  • Posix for other than 2018 year

[1.4.2] - 2018-11-09

Fixed

  • Better raven exception handling

[1.4.1] - 2018-11-06

Fixed

  • Log more detailed information in AMQP when an error is thrown during canceling consumption of response queue

[1.4.0] - 2018-11-02

Added

  • Separate AMQP cancel consumption and close channel to allow cancelling consumption but keep using the channel

Fixed

  • Fix dangling response queues in AMQP

[1.3.0] - 2018-09-24

Added

  • New rsync copy helper function for copy over sh or ssh

[1.2.2] - 2018-09-24

Fixed

  • Timer/wait now returns Promise, not Promise<{}>

[1.2.1] - 2018-09-21

Fixed

  • Fix outdated socket server interface declaration

[1.2.0] - 2018-09-21

Added

  • Moved web socket and socket.io factories here from platform so they can be re-used in other repositories

[1.1.6] - 2018-09-18

Fixed

  • Fix async iterator polyfill error when it's already defined by the platform (Node.js 10)

[1.1.0] - 2018-05-07

Added

  • Changelog file containing all changes in current project
Was this article helpful?
0 out of 0 found this helpful
Share