rascal 13.0.6 → 13.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (70) hide show
  1. package/.husky/pre-commit +1 -1
  2. package/.prettierrc.json +1 -0
  3. package/CHANGELOG.md +204 -1
  4. package/README.md +634 -396
  5. package/examples/advanced/cluster.js +8 -8
  6. package/examples/advanced/config.js +117 -114
  7. package/examples/advanced/handlers/deleteUser.js +23 -17
  8. package/examples/advanced/handlers/saveUser.js +38 -32
  9. package/examples/advanced/index.js +105 -78
  10. package/examples/busy-publisher/config.js +14 -17
  11. package/examples/busy-publisher/index.js +27 -22
  12. package/examples/default-exchange/config.js +10 -10
  13. package/examples/default-exchange/index.js +27 -18
  14. package/examples/mocha/config.js +9 -11
  15. package/examples/mocha/test.js +42 -35
  16. package/examples/promises/config.js +11 -13
  17. package/examples/promises/index.js +24 -17
  18. package/examples/simple/config.js +18 -18
  19. package/examples/simple/index.js +25 -23
  20. package/index.js +7 -7
  21. package/lib/amqp/Broker.js +154 -99
  22. package/lib/amqp/BrokerAsPromised.js +56 -35
  23. package/lib/amqp/Publication.js +219 -78
  24. package/lib/amqp/PublicationSession.js +13 -14
  25. package/lib/amqp/SubscriberError.js +293 -132
  26. package/lib/amqp/SubscriberSession.js +95 -56
  27. package/lib/amqp/SubscriberSessionAsPromised.js +4 -6
  28. package/lib/amqp/Subscription.js +328 -110
  29. package/lib/amqp/Vhost.js +366 -171
  30. package/lib/amqp/tasks/applyBindings.js +51 -18
  31. package/lib/amqp/tasks/assertExchanges.js +20 -11
  32. package/lib/amqp/tasks/assertQueues.js +13 -9
  33. package/lib/amqp/tasks/assertVhost.js +21 -17
  34. package/lib/amqp/tasks/bounceVhost.js +1 -1
  35. package/lib/amqp/tasks/checkExchanges.js +13 -9
  36. package/lib/amqp/tasks/checkQueues.js +13 -9
  37. package/lib/amqp/tasks/checkVhost.js +21 -17
  38. package/lib/amqp/tasks/closeChannel.js +3 -4
  39. package/lib/amqp/tasks/closeConnection.js +3 -3
  40. package/lib/amqp/tasks/createChannel.js +3 -4
  41. package/lib/amqp/tasks/createConnection.js +71 -51
  42. package/lib/amqp/tasks/deleteExchanges.js +14 -10
  43. package/lib/amqp/tasks/deleteQueues.js +13 -9
  44. package/lib/amqp/tasks/deleteVhost.js +26 -17
  45. package/lib/amqp/tasks/forewarnVhost.js +1 -1
  46. package/lib/amqp/tasks/index.js +25 -25
  47. package/lib/amqp/tasks/initCounters.js +18 -13
  48. package/lib/amqp/tasks/initPublications.js +17 -13
  49. package/lib/amqp/tasks/initShovels.js +29 -20
  50. package/lib/amqp/tasks/initSubscriptions.js +23 -13
  51. package/lib/amqp/tasks/initVhosts.js +21 -17
  52. package/lib/amqp/tasks/nukeVhost.js +1 -1
  53. package/lib/amqp/tasks/purgeQueues.js +13 -9
  54. package/lib/amqp/tasks/purgeVhost.js +1 -1
  55. package/lib/amqp/tasks/shutdownVhost.js +1 -1
  56. package/lib/backoff/exponential.js +9 -8
  57. package/lib/backoff/index.js +3 -3
  58. package/lib/backoff/linear.js +5 -7
  59. package/lib/config/baseline.js +26 -34
  60. package/lib/config/configure.js +274 -101
  61. package/lib/config/fqn.js +3 -3
  62. package/lib/config/tests.js +32 -29
  63. package/lib/config/validate.js +460 -70
  64. package/lib/counters/inMemory.js +3 -3
  65. package/lib/counters/inMemoryCluster.js +48 -30
  66. package/lib/counters/index.js +4 -4
  67. package/lib/counters/stub.js +2 -3
  68. package/lib/management/client.js +47 -17
  69. package/lib/utils/setTimeoutUnref.js +1 -1
  70. package/package.json +12 -4
package/.husky/pre-commit CHANGED
@@ -1,4 +1,4 @@
1
1
  #!/bin/sh
2
2
  . "$(dirname "$0")/_/husky.sh"
3
3
 
4
- npm run lint && npm run test
4
+ npm run lint-staged && npm run test
@@ -0,0 +1 @@
1
+ {}
package/CHANGELOG.md CHANGED
@@ -1,445 +1,648 @@
1
1
  # Change Log
2
2
 
3
+ ## 13.1.3
4
+
5
+ - Fixed minor memory leak in recovery strategy loop
6
+ - Move to prettier
7
+ - Remove unnecessary eslint install from github
8
+
9
+ ## 13.1.2
10
+
11
+ - Fixed various issues when queue names contained period characters. Reported in https://github.com/guidesmiths/rascal/issues/166
12
+
13
+ ## 13.1.1
14
+
15
+ - Moved setMaxListeners to createConnection task to suppress misleading 'Possible EventEmitter memory leak detected' warning. See https://github.com/guidesmiths/rascal/issues/164 for more details.
16
+
17
+ ## 13.1.0
18
+
19
+ - Fixed bug where Rascal could wait indefinitely for channels to be destroyed if shutdown was called following a heartbeat timeout. See https://github.com/guidesmiths/rascal/issues/158 for more details.
20
+
3
21
  ## 13.0.6
22
+
4
23
  - Fixed bug where Rascal attempted to remove a listener from a nulled connection and crashed.
5
24
 
6
25
  ## 13.0.5
26
+
7
27
  - Set channel pool acquireTimeoutMillis in default configuration - thanks @matej-prokop
8
28
  - Add snyk package health badge
9
29
 
10
30
  ## 13.0.4
31
+
11
32
  - Fixed https://github.com/guidesmiths/rascal/issues/156
12
33
 
13
34
  ## 13.0.3
35
+
14
36
  - Bump dev deps
15
37
 
16
38
  ## 13.0.2
39
+
17
40
  - Fixed https://github.com/guidesmiths/rascal/issues/150
18
41
 
19
42
  ## 13.0.1
43
+
20
44
  - Improved readme
21
45
  - Update zUnit
22
46
 
23
47
  ## 13.0.0
48
+
24
49
  - Switched to eslint-config-esnext and updated style
25
50
  - Update production dependencies
26
51
  - Fix vhost management cluster support
27
52
 
28
53
  ## 12.0.4
54
+
29
55
  - Bump dev dependencies
30
56
  - Upgraded to husky 5
31
57
 
32
58
  ## 12.0.3
59
+
33
60
  - Fix https://github.com/guidesmiths/rascal/issues/141
34
61
  - Fix error message typos
35
62
  - Bump lodash
36
63
 
37
64
  ## 12.0.2
65
+
38
66
  - Exclude various files (including the 12M cc-test-reporter binary) from the npm package.
39
67
 
40
68
  ## 12.0.1
69
+
41
70
  - Moved from travis to github actions
42
71
  - Fix broker waiting indefinitely when shutdown is called after losing a connection. See [#126](https://github.com/guidesmiths/rascal/issues/126)
43
72
 
44
73
  ## 12.0.0
74
+
45
75
  - Removed node 8 support
46
76
 
47
77
  ## 11.0.1
78
+
48
79
  - Replaced mocha with zunit
49
80
 
50
81
  ## 11.0.0
82
+
51
83
  - Reworked tests to remove mocha --exit flag
52
84
  - Exposed partially initialied brokerAsPromised on the rejected error via a symbol
53
85
  - clear keep active interval on broker nuke
54
86
  - Updated engine >= 8.0.0
55
87
 
56
88
  ## 10.2.6
89
+
57
90
  ### Updated
91
+
58
92
  - Dependencies
59
93
  - Removing Synk
60
94
 
61
95
  ## 10.2.5
96
+
62
97
  ### Updated
98
+
63
99
  - Improved readme as per issue [#111](https://github.com/guidesmiths/rascal/issues/111)
64
100
 
65
101
  ### Fixed
102
+
66
103
  - Fixed issue [#123](https://github.com/guidesmiths/rascal/issues/123), where a race condition was causing channels to be closed twice. Thanks @cinnq346.
67
104
 
68
105
  ## 10.2.4
106
+
69
107
  ### Fixed
108
+
70
109
  - Fixed issue [#122](https://github.com/guidesmiths/rascal/issues/122), where error listeners were registered once, so repeated errors could bubble up and crash node
71
110
 
72
111
  ## 10.2.3
112
+
73
113
  ### Fixed
114
+
74
115
  - Fixed second part of issue [#121](https://github.com/guidesmiths/rascal/issues/121), where the generic-pool could cause tight loops and memory leaks
75
116
 
76
117
  ## 10.2.2
118
+
77
119
  ### Fixed
120
+
78
121
  - Fixed issue [#121](https://github.com/guidesmiths/rascal/issues/121), which caused rascals connection index to permanently increment rather than cycling back to 0. Consequently if all nodes in a cluster failed, Rascal could crash the application.
79
122
 
80
123
  ## 10.2.1
124
+
81
125
  ### Updated
126
+
82
127
  - Support amqplib 0.6.0
83
128
 
84
129
  ## 10.2.0
130
+
85
131
  ### Added
132
+
86
133
  - Added broker.getConnections()
87
134
 
88
135
  ### Updated
136
+
89
137
  - Updated dependencies
90
138
 
91
139
  ## 10.1.0
140
+
92
141
  ### Added
142
+
93
143
  - Added publication statistics
94
144
  - Support for node 14
95
145
 
96
146
  ## 10.0.1
147
+
97
148
  ### Updated
149
+
98
150
  - Set vhost max event listeners to inifinity (see https://github.com/guidesmiths/rascal/issues/99)
99
151
 
100
152
  ## 10.0.0
153
+
101
154
  ### Updated
155
+
102
156
  - Using rascal to consume messages published with broker.forward no longer restores original routing headers by default, unless used in the context of a recovery strategy. See the broker.forward section of the readme for more information.
103
157
 
104
158
  ## 9.4.0
159
+
105
160
  ### Added
161
+
106
162
  - vhost_initialised event
107
163
  - publication paused notifications
108
164
  - publication.abort
109
165
 
110
166
  ### Updated
167
+
111
168
  - broker error events now include vhost connection details
112
169
 
113
170
  ## 9.3.0
171
+
114
172
  ### Updated
173
+
115
174
  - [Fixed #78](https://github.com/guidesmiths/rascal/issues/78) by using a baseline config, and only laying connection options via withDefaultConfig
116
175
 
117
176
  ## 9.2.0
177
+
118
178
  ### Added
179
+
119
180
  - [Fixed #93](https://github.com/guidesmiths/rascal/issues/93) through use of setInterval to keep node process active in the event of broker restart.
120
181
 
121
182
  ### Updated
183
+
122
184
  - Dependencies
123
185
  - Patched lodash
124
186
  - Added snyk
125
187
 
126
188
  ## 9.1.3
189
+
127
190
  ### Updated
191
+
128
192
  - Fixed bug where channels were destroyed instead of returned to the pool
129
193
 
130
194
  ## 9.1.2
195
+
131
196
  ### Updated
197
+
132
198
  - Test to see whether setTimeout.unref is available before calling it
133
199
 
134
200
  ## 9.1.1
201
+
135
202
  ### Added
203
+
136
204
  - Expose cloned subscription config on session
137
205
 
138
206
  ## 9.1.0
207
+
139
208
  ### Added
209
+
140
210
  - Optionally promisify ackOrNack
141
211
 
142
212
  ## 9.0.0
213
+
143
214
  ### Updated
215
+
144
216
  - Broker functions (publish, forward, nuke, etc) no longer return the broker.
145
217
 
146
218
  ### Added
219
+
147
220
  - Added broker.subscribeAll
148
221
 
149
222
  ## 8.2.0
223
+
150
224
  ### Added
225
+
151
226
  - Publication timeouts (default value is 10 seconds).
152
227
 
153
228
  ## 8.1.0
229
+
154
230
  ### Updated
231
+
155
232
  - Fixed [#86](https://github.com/guidesmiths/rascal/issues/85)
156
233
  - Fixed [#84](https://github.com/guidesmiths/rascal/issues/84). Thanks @huikaihoo
157
234
 
158
235
  ### Added
236
+
159
237
  - Added a new subscription `subscribed` event
160
238
 
161
239
  ## 8.0.1
240
+
162
241
  ### Updated
242
+
163
243
  - emit error when publishFn err Channel closed as oer https://github.com/guidesmiths/rascal/pull/81. Thanks @zijin-m
164
244
 
165
245
  ## 8.0.0
246
+
166
247
  ### Updated
248
+
167
249
  - Drop support for Node 6
168
250
  - Updated dependencies as per https://github.com/guidesmiths/rascal/pull/75. Thanks @ravihara
169
251
 
170
252
  ## 7.0.0
253
+
171
254
  ### Updated
255
+
172
256
  - Rascal attempts to resubscribe following a consumer cancel. See the README for more details
173
257
  - Undocumented SubscriberSession.close function has been removed (Use .cancel instead)
174
258
 
175
259
  ## 6.0.3
260
+
176
261
  ### Fixed
262
+
177
263
  - Fixed [#72](https://github.com/guidesmiths/rascal/issues/72) which meant published messages waiting for a channel would be lost on connection error
178
264
 
179
265
  ## 6.0.2
266
+
180
267
  ### Fixed
268
+
181
269
  - Fixed bug that caused management credentials to be ignored. Thanks @juliendangers
182
270
 
183
271
  ## 6.0.1
272
+
184
273
  ### Updated
185
274
 
186
275
  ## 6.0.0
276
+
187
277
  - Improved channel pool management (includes a breaking config change - see https://github.com/guidesmiths/rascal#channel-pooling).
188
278
 
189
279
  ## 5.1.0
280
+
190
281
  ### Added
282
+
191
283
  - Added potential for flow control / throttling via broker 'busy' and 'ready' events.
192
284
 
193
285
  ## 5.0.0
286
+
194
287
  ### Updated
288
+
195
289
  - Wait for subscriber channels to be closed before shutting down the broker
196
290
  - Reduced default close channel deferral from 1 minute to 10 seconds in default config and from 1 minute to 100ms in test config
197
291
 
198
292
  ## 4.7.0
293
+
199
294
  ### Updated
295
+
200
296
  - Dependencies
201
297
 
202
298
  ### Added
299
+
203
300
  - Support for active/passive connection management
204
301
 
205
302
  ## 4.6.2
303
+
206
304
  ### Fixed
305
+
207
306
  - Fixed a bug where you could not re-initialise a vhost
208
307
 
209
308
  ## 4.6.1
309
+
210
310
  ### Added
311
+
211
312
  - Automated codeclimate reporting
212
313
 
213
314
  ### Fixed
315
+
214
316
  - Fixed a bug where the connection index could be undefined
215
317
 
216
318
  ## 4.6.0
319
+
217
320
  ### Updated
321
+
218
322
  - Fixes for #60 and #61. Thanks @rossj.
219
323
  - Depend on amqplib ^0.5.5
220
324
 
221
325
  ## 4.5.2
326
+
222
327
  ### Updated
328
+
223
329
  - Depend on version 0.5.3 of amqplib (peer) until https://github.com/squaremo/amqp.node/issues/534 is fixed
224
330
 
225
331
  ## 4.5.1
332
+
226
333
  ### Updated
334
+
227
335
  - Depend on version 0.5.3 of amqplib until https://github.com/squaremo/amqp.node/issues/534 is fixed
228
336
  - Update dependencies
229
337
 
230
338
  ## 4.5.0
339
+
231
340
  ### Updated
341
+
232
342
  - Replaced request with superagent. Thanks @ksnll
233
343
  - Updated dependencies
234
344
  - Added node 12 to travis config
235
345
 
236
346
  ## 4.4.0
347
+
237
348
  ### Updated
349
+
238
350
  - Throw error when using cluster based redeliveries counter outside of a cluster
239
351
 
240
352
  ## 4.3.1
353
+
241
354
  ### Updated
355
+
242
356
  - Dependencies
243
357
  - Moved amqplib to peer dependency
244
358
 
245
359
  ## Added
360
+
246
361
  - broker.connect(vhost)
247
362
 
248
363
  ## 4.2.1
364
+
249
365
  ### Updated
366
+
250
367
  - Dependencies
251
368
  - Fixed vararg related bug in Broker.create
252
369
 
253
370
  ## 4.2.2
371
+
254
372
  ### Updated
373
+
255
374
  - Updated various dev dependencies
256
375
  - Readme
257
376
  - Switched from istanbul to nyc
258
377
  - Fix flakey travis tests
259
378
 
260
379
  ## 4.2.1
380
+
261
381
  ### Updated
382
+
262
383
  - Updated lodash
263
384
 
264
385
  ## 4.2.0
386
+
265
387
  ### Added
388
+
266
389
  - Support for RabbitMQs default exchange
267
390
 
268
391
  ## 4.1.0
392
+
269
393
  ### Added
394
+
270
395
  - Publisher error events are passed the messageId where possible
271
396
 
272
397
  ## 4.0.0
398
+
273
399
  ### Updated
400
+
274
401
  - Improved connection failure error message
275
402
  - It is possible to go async between broker.subscribe and subscription.on('message'). This unlocks the possibility of promise support.
276
403
  - Support promises
277
404
  - Discourage use of broker.init
278
405
 
279
406
  ## 3.2.3
407
+
280
408
  ### Updated
409
+
281
410
  - Fix connection handler leak caused by re-subscription
282
411
  - Fix channel leak when channel.consume fails
283
412
  - amqplib version to 0.5.3
284
413
  - test on Node 11
285
414
 
286
415
  ## 3.2.2
416
+
287
417
  ### Added
418
+
288
419
  - Some additional debug
289
420
 
290
421
  ## 3.2.1
422
+
291
423
  ### Fixed
424
+
292
425
  - Catch and return encryption errors via publish callback
426
+
293
427
  ### Added
428
+
294
429
  - Assert vhosts into exhistence using the RabbitMQ management API
295
430
 
296
431
  ### Updated
432
+
297
433
  - Changed new Buffer() to Buffer.from to silence Node 10 deprecation warning
298
434
 
299
435
  ## 3.2.0
436
+
300
437
  ### Added
438
+
301
439
  - Transparent encryption / decryption
302
440
 
303
441
  ## 3.1.3
442
+
304
443
  ### Updated
444
+
305
445
  - Modernise code style
306
446
 
307
447
  ## 3.1.2
448
+
308
449
  ### Updated
450
+
309
451
  - Fix redelivery counter defaults
310
452
 
311
453
  ## 3.1.1
454
+
312
455
  ### Updated
456
+
313
457
  - Fix channelMax default
314
458
 
315
459
  ## 3.1.0
316
- ### Added
460
+
461
+ ### Added
462
+
317
463
  - Handling of redelivery counter errors and timeouts
318
464
 
319
465
  ## 3.0.0
466
+
320
467
  ### Updated
468
+
321
469
  - Using lodash defaultsDeep instead of merge-defaults (fixes hoek vulnerability). The behaviour seems consistent but releasing as a breaking change as a precaution.
322
470
  - Unqualified default publications and subscriptions are no longer supported. See https://github.com/guidesmiths/rascal/issues/20
323
471
  - Testing on node 10
324
472
 
325
473
  ## 2.12.2
474
+
326
475
  ### Updated
476
+
327
477
  - Update dependencies (fixes hoek vulnerability)
328
478
 
329
479
  ## 2.12.1
480
+
330
481
  ### Updated
482
+
331
483
  - Fixed bug that prevented publication from emitting channel errors
332
484
 
333
485
  ## 2.12.0
486
+
334
487
  ### Updated
488
+
335
489
  - Update dependencies
336
490
  - Update dev dependencies
337
491
 
338
492
  ## 2.11.3
493
+
339
494
  ### Updated
495
+
340
496
  - npm issue
341
497
 
342
498
  ## 2.11.2
499
+
343
500
  ### Updated
501
+
344
502
  - npm issue
345
503
 
346
504
  ## 2.11.1
505
+
347
506
  ### Fixed
507
+
348
508
  - Fixed undefined error in Vhost.bounce
349
509
 
350
510
  ## 2.11.0
511
+
351
512
  ### Fixed
513
+
352
514
  - Support for queue and exchange names containeing period and hyphens
353
515
 
354
516
  ## 2.10.0
517
+
355
518
  ### Fixed
519
+
356
520
  - Workaround for non deterministic amqplib channel handling, see https://github.com/squaremo/amqp.node/issues/388
357
521
 
358
522
  ## 2.9.0
523
+
359
524
  ### Fixed
525
+
360
526
  - Randomising vhost connections on startup rather than on each connection request
361
527
 
362
528
  ## 2.8.0
529
+
363
530
  ### Fixed
531
+
364
532
  - Workaround for non deterministic amqplib connection handling, see https://github.com/squaremo/amqp.node/issues/388
365
533
 
366
534
  ## 2.7.0
535
+
367
536
  ### Added
537
+
368
538
  - AckOrNack emits/returns an error if an attempt was made to ack/nack a message using a closed channel
369
539
  - Adjusting default connection_timeout and channel_max url parameters
370
540
 
371
541
  ## 2.6.0
542
+
372
543
  ### Added
544
+
373
545
  - Exponential backoff for re-connections and channel re-subscriptions
374
546
  - Fixed typo in deprecation warning
375
547
 
376
548
  ## 2.5.0
549
+
377
550
  ### Fixed
551
+
378
552
  - Subscriber session could attempt to ack/nack messages using a closed channel. Leaving the channel open for 1 minute after cancelling subscription.
379
553
 
380
554
  ## 2.4.0
555
+
381
556
  ### Added
557
+
382
558
  - Socket options can be specified in the vhost connection configuration. Connection timeout defaults to 1 minute.
383
559
 
384
560
  ## 2.3.2
561
+
385
562
  ### Updated
563
+
386
564
  - Use self instead of this for code which called broker.nuke without binding context
387
565
 
388
566
  ## 2.3.1
567
+
389
568
  ### Updated
569
+
390
570
  - Updated dependences
391
571
 
392
572
  ## 2.3.0
573
+
393
574
  ### Added
575
+
394
576
  - Broker.unsubscribeAll to remove subscriptons. Mostly useful for automated tests
395
577
 
396
578
  ## 2.2.0
579
+
397
580
  ### Added
581
+
398
582
  - Decorate inbound messages with originalVhost header
399
583
 
400
584
  ## 2.1.0
585
+
401
586
  ### Added
587
+
402
588
  - Default publications and subscriptions are marked with an autoCreated flag
403
589
 
404
590
  ### Changed
591
+
405
592
  - Default publications and subscriptions are are qualified with the vhost
406
593
 
407
594
  ### Deprecated
595
+
408
596
  - Unqualified publications and subscriptions have been deprecated. A console.warn is logged once per subscription and publication but can be disabled by setting RASCAL_DISABLE_ALL_DEPRECATION_WARNINGS=true or RASCAL_DISABLE_UNQUALIFIED_NAME_DEPRECATION_WARNING=true
409
597
 
410
598
  ## 2.0.0
599
+
411
600
  ### Fixed
601
+
412
602
  - Connection pool was leaking connections following a connection error. With a pool size of 1, this locked up all publishers
413
603
  - Listening to close and error events caused multiple channels to be created which appears to result in an unknown delivery tag error. See https://github.com/squaremo/amqp.node/issues/271
414
604
  - Incorrect documenation said to listen for invalid_content, but in reality the event was invalid_message. Now emitting invalid_message only if invalid_content is not handled.
415
605
  - Fixed examples
416
606
 
417
607
  ## 1.4.1
608
+
418
609
  ### Fixed
610
+
419
611
  - confirmPoolSize option as per https://github.com/guidesmiths/rascal/pull/19
420
612
 
421
613
  ## 1.4.0
614
+
422
615
  ### Added
616
+
423
617
  - Listing to connection close events as per #18
424
618
  - Fixed bug with configuration which caused vhost config errors to be masked
425
619
 
426
620
  ## 1.3.1
621
+
427
622
  ### Added
623
+
428
624
  - Channel pooling (makes publishing much faster)
429
625
 
430
626
  ### Updated
627
+
431
628
  - Dependencies
432
629
 
433
630
  ## 1.2.1
631
+
434
632
  ### Updated
633
+
435
634
  - Used wrong argument in callback
436
635
 
437
636
  ## 1.2.0
637
+
438
638
  ### Added
639
+
439
640
  - Workaround for https://github.com/guidesmiths/rascal/issues/17
440
641
 
441
642
  ## 1.1.0
643
+
442
644
  ### Added
645
+
443
646
  - This changelog
444
647
  - License
445
648
  - Badges