[16.3.0] - 2024-07-24
Added
- Service factory
createService
acceptsonStopCallback
[16.2.0] - 2024-07-18
Added
eventConsumer
event Zod schema support. It consumes only events satisfying schema if schema is presented, consumes all events of given type otherwise
[16.1.1] - 2024-06-21
Fixed
Auth0AuthenticationClient.login
was failing if no scope was provided
[16.1.0] - 2024-06-20
Added
AmqpEventConsumer
logs consumed events to stdout
[16.0.0] - 2024-06-18
Removed
- Package
@swc/core
is not installed automatically because it using too much disk space (install it as a peer dependency instead)
[15.7.2] - 2024-06-11
Fixed
- The getNextTimerEvent function returns correct timer type according to the provided argument
[15.7.1] - 2024-06-05
Fixed
- Upgraded Auth0 dependency to v4.3.1, upgraded Express
[15.7.0] - 2024-05-28
Added
- New type
RenameProperty
- Pretty printed JSON log format to Winston logger
Fixed
- TypeError: Do not know how to serialize a BigInt on Debug mongo events
[15.6.0] - 2024-05-21
Added
- Function
expectType
for TypeScript testing types
[15.5.3] - 2024-05-02
Deprecated
- Functions related to
notification
andsynchronization
ineventQueue
logic
[15.5.2] - 2024-04-25
Fixed
- AWS S3 client supports the default value for
forcePathStyle
from environment variableAWS_S3_FORCE_PATH_STYLE_URLS
[15.5.1] - 2024-04-25
Fixed
- Service endpoint
/status
is public because it's currently used by Pingdom
[15.5.0] - 2024-04-23
Added
- Add watchInsteadOfServe parameter to Bundler.build()
- Allow bundler to watch files without serving them
Fixed
- Remove Bundler.buildPolyfill
[15.4.1] - 2024-04-03
Fixed
parseBasicConfig
andparseServiceConfig
fields parsed from package.json -devDependencies
,devDependencies
,peerDependencies
andoptionalPeerDependencies
are always objects
[15.4.0] - 2024-04-02
Added
parseBasicConfig
andparseServiceConfig
include parsed data from package.json file
[15.3.0] - 2024-03-27
Added
jsonStringSchema
for app config validation
[15.2.0] - 2024-03-18
Added
- MongoDB connection exports metrics
Deprecated
- Deprecated
createMongodbConnection
in favor of newMongoDBConnection
class
[15.1.0] - 2024-03-13
Added
- Add allowServe parameter to Bundler.build()
- Service HTTP server logs access logs via the standard logger
- MongoDB client debug logs all commands
Fixed
- loading configuration variables to process.env
[15.0.0] - 2024-02-23
Changed
- Service serves monitoring-related endpoints (
/status
,/ready
,/alive
,/metrics
) on a different port for security reasons (by default port 9999) - Service factory accepts config in the same format as the output of
parseServiceConfig
[14.6.1] - 2024-02-22
Fixed
- Updated prom-client dependency to
^15.1.0
[14.6.0] - 2024-02-22
Added
- Service HTTP server
/alive
endpoint for Kubernetes liveness probe - Service custom readiness callback
isReady
may return simply boolean value instead of a full object with custom response
[14.5.1] - 2024-02-21
Fixed
- Better documented ILogger interface
parseBasicConfig
andparseServiceConfig
throw a more descriptive error with a link to the Wiki
[14.5.0] - 2024-02-20
Added
- Service object returned by
createService
also contains express app (service.httpServer.express
) - Calling
stop()
on a service object will wait, until all connections to the HTTP server are closed - HTTP server parses comma separated values in query to arrays
[14.4.0] - 2024-02-14
Added
- Esbuild assets bundler
- Standard logger
[14.3.0] - 2024-02-06
Added
- S3 uploadFile and uploadContent methods accept optional
contentType
parameter
[14.2.1] - 2024-01-31
Fixed
- AWS S3 logs debug logs
- Rollback isomorphic-ws to 4.0.1 because of es6 module issues
[14.2.0] - 2024-01-19
Added
- AWS S3 client methods
downloadFile
andlistFiles
[14.1.0] - 2024-01-15
Added
createAwsNpmCredentialsProvider
optionally accepts region- AWS S3 client method
uploadContent
[14.0.0] - 2024-01-11
Changed
- Upgraded to node 20
- Upgraded mongodb to 6 and mongoose to 8
Added
- AWS S3 client
AwsS3
[13.2.3] - 2023-12-20
Fixed
parseBasicConfig
for webpack bundler
[13.2.2] - 2023-12-20
Fixed
- Missing node-fetch dependency when calling
downloadFile
[13.2.1] - 2023-12-20
Fixed
- Don't rely on env var
npm_package_name
when parsing config
[13.2.0] - 2023-12-19
Added
- Export types that represent return types of functions
parseBasicConfig
andparseServiceConfig
for convenience createTmpDirectory
downloadFile
- Auth0AuthenticationClient
[13.1.1] - 2023-12-11
Fixed
sentry_enabled
will also be defined as boolean, when parsing basic params from env
[13.1.0] - 2023-12-07
Added
- Upgraded to redis 3
Security
- CVE-2021-29469
[13.0.2] - 2023-12-06
Fixed
- Support
proprietaryCluster
options in latest mongoose version
[13.0.0] - 2023-12-05
Changed
- Upgraded to Node.js 14
- Upgraded mongodb driver to 5.9.1
- Upgraded mongoose to 7.6.6
Fixed
- Upgraded auth0 to 3.7.2
- Upgraded moment-timezone to 0.5.43
- Upgraded debug to 4.3.4
[12.6.0] - 2023-11-21
Added
- Auth0ManagementClient
Fixed
- Upgraded Zod library because of faulty email validation
- Enable to log errors in
retryAsyncUntil
function
[12.5.0] - 2023-10-26
Added
- Schemas
intSchema
andboolSchema
for parsing primitive types boolean and integer from env vars
[12.4.0] - 2023-10-25
Added
- NpmClient
downloadPackage
returns path to the downloaded package tarball - NpmClient
downloadPackage
argumentversion
is optional and defaults tolatest
- MockNpmClient for testing purposes
[12.3.2] - 2023-10-25
Fixed
- Add
castEnum
utility - Add
ShortWeekday
andLongWeekday
union counterparts toShortWeekdayEnum
andLongWeekdayEnum
[12.3.1] - 2023-10-24
Fixed
- Fix NpmPackPlugin with webpack4
[12.3.0] - 2023-10-18
Added
- Convenience functions
parseBasicConfig
andparseServiceConfig
for parsing common configuration from environment variables - Add getTimerEventsFromShortWeekday, getLastTimerEvent
- Add timerType to ITimerEvent
- Add convertWeekday util
Fix
- Deprecate shouldBeOnByTimers, TimerWeekday, ShortWeekday, LongWeekdayEnum, ILongWeekdayTimer, ILegacyTimer
[12.2.0] - 2023-10-13
Added
- Next timer event computing
- NPM client library
[12.1.2] - 2023-09-21
Fixed
retryAsyncUntil
function. It should wait in each recursion call if the callback promise is resolved successfully but the predicate is not met.
[12.1.1] - 2023-09-14
Fixed
- Service factory doesn't require uid
[12.1.0] - 2023-09-14
Added
- AmqpEventConsumer - high level abstraction for consuming events from AMQP with a simple interface
- InMemoryEventConsumer - easy to use in-memory event consumer for testing purposes
[12.0.0] - 2023-09-12
Changed
- Webpack Major version upgrade to 5 (for NpmPackPlugin)
[11.2.1] - 2023-08-25
Fixed
- Replace unnecessary Faker lib from prod dependencies and refactor its usage
[11.2.0] - 2023-08-23
Added
- Service factory allows providing a custom readiness callback
Fixed
- Prevent
retryAsyncUntil
function from stuck in an infinite loop if a predicate is not met - Move express and http-status to prod dependencies because service factory depends on them
[11.1.0] - 2023-08-17
Added
- Removed obsolete actions log queue that nobody is using anymore
- Option to pick queue type in deviceActionsQueue for actions from device
- AMQP connection emits events "connection_open" and "connection_closed"
[11.0.0] - 2023-08-17
Changed
- Send device and action logs to an exchange instead of directly to queue
[10.23.0] - 2023-08-16
Added
- Common reusable implementation of a service
- Methods for getting current and next timeout of the progressiveWait function
- Timeoutable promise helper
- Option to specify custom prefetchCount when binding commands from command queue
[10.22.0] - 2023-08-09
Added
nonConcurrentInterval
[10.21.1] - 2023-08-07
Fixed
- Function
retryAsyncUntil
is counting down for predicate callback
[10.21.0] - 2023-08-02
Added
- New function
withTimeout
path
property into Server Socket interface
[10.20.0] - 2023-08-01
Added
getEnumFromString
helper- New retry functions
retryAsync
andretryAsyncUntil
[10.19.2] - 2023-05-29
Fixed
- Updated common types package - new Feature Flags
[10.19.1] - 2023-05-29
Fixed
- Updated common types package - new Feature Flags
[10.19.0] - 2023-05-25
Added
- New extension pack of typescript type:
NullableFromPartial
[10.18.1] - 2023-05-23
Security
- Fixed potential NPM vulnerabilities
[10.18.0] - 2023-05-23
Added
- Debug decorator logs invocation uid for each log so that similar logs can be correlated in a large log output
- Debug decorator can optionally log duration of the method call
[10.17.1] - 2023-05-16
Fixed
isDefinedForEnvironment
naming convention
[10.17.0] - 2023-05-16
Added
- Test coverage tool
c8
isDefinedForEnvironment
check function
[10.16.0] - 2023-04-26
Added
- Option to globally switch debugDecorator to serialize logged method arguments so that the entire log fits in one line
- Methods for getting current and next timeout of the
progressiveWait
function
Fixed
waitUntil
function enhancement
[10.15.0] - 2023-04-12
Added
formatZodError
andformatIfZodError
ofZod/zodError.ts
helper
Deprecated
formatZodErrorMessage
ofZod/zod.ts
moved toZod/zodError.ts
[10.14.2] - 2023-04-06
Fixed
- Power Timer logic accepts any number of timers with type in
TIMER_${number}
format
[10.14.1] - 2023-03-31
Fixed
locked
decorator works in Node 6 >=
[10.14.0] - 2023-03-31
Added
wait
returns cancelable promise
[10.13.0] - 2023-03-28
Added
- Better ZodError message formatting
[10.12.0] - 2023-03-02
Added
headers
field to current socket object
[10.11.0] - 2023-02-24
Added
parseBoolean
function
[10.10.0] - 2023-01-31
Added
- AMQP consume options has
noAck
option
[10.9.0] - 2023-01-25
Added
- Zod utils
- String utils
Fixed
- Restricted node and npm versions to
12
and6
respectively
[10.8.0] - 2023-01-23
Added
deviceActionsQueue
wait for response from device only when not specifiedsessionUid
memoryCache
function wrapper for caching function results in memory
[10.7.1] - 2023-01-19
Fixed
- Too much pending tasks in AMQP logic
- Count prefetch for deviceActionsQueue increased to 500
[10.7.0] - 2023-01-13
Added
- Zod error helper
[10.6.0] - 2022-11-28
Added
- Custom error message in function
rejectAfterTimeout
- (internal) TS targets are both
ES6
andES5
[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 inGenericGracefulExit
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 forpackage-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
nameddynamicPriority
. It selects available server based on the priority (located inproprietaryPriorityPath
, by defaultproprietaryClusterSettings.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
andprepareRejectedDetached
accepts new options for automatic redelivering of rejected messages - AMQP event queue
bindRejectedMany
andprepareRejectedMany
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 obsoleteclassic
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 newbindMany
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