@next-k8s/tickets 1.0.26 → 1.0.27

Sign up to get free protection for your applications and to get access to all the features.
Files changed (37) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/coverage/clover.xml +158 -17
  3. package/coverage/coverage-final.json +11 -1
  4. package/coverage/lcov-report/index.html +94 -19
  5. package/coverage/lcov-report/src/app.ts.html +17 -17
  6. package/coverage/lcov-report/src/events/listeners/_queue-group-name.ts.html +88 -0
  7. package/coverage/lcov-report/src/events/listeners/index.html +131 -0
  8. package/coverage/lcov-report/src/events/listeners/order-created.ts.html +151 -0
  9. package/coverage/lcov-report/src/events/publishers/created.ts.html +4 -4
  10. package/coverage/lcov-report/src/events/publishers/index.html +1 -1
  11. package/coverage/lcov-report/src/events/publishers/updated.ts.html +4 -4
  12. package/coverage/lcov-report/src/index.html +1 -1
  13. package/coverage/lcov-report/src/models/index.html +1 -1
  14. package/coverage/lcov-report/src/models/ticket.ts.html +20 -5
  15. package/coverage/lcov-report/src/routes/create.ts.html +11 -11
  16. package/coverage/lcov-report/src/routes/find.ts.html +1 -1
  17. package/coverage/lcov-report/src/routes/get.ts.html +25 -10
  18. package/coverage/lcov-report/src/routes/index.html +8 -23
  19. package/coverage/lcov-report/src/routes/index.ts.html +8 -11
  20. package/coverage/lcov-report/src/routes/update.ts.html +12 -12
  21. package/coverage/lcov-report/src/test/index.html +1 -1
  22. package/coverage/lcov-report/src/test/utils.ts.html +3 -3
  23. package/coverage/lcov-report/ticket.ts.html +1 -1
  24. package/coverage/lcov.info +241 -17
  25. package/package.json +3 -3
  26. package/pnpm-lock.yaml +311 -18
  27. package/src/events/listeners/__test__/order-created.test.ts +44 -0
  28. package/src/events/listeners/_queue-group-name.ts +1 -0
  29. package/src/events/listeners/order-created.ts +22 -0
  30. package/src/models/ticket.ts +7 -2
  31. package/src/routes/__test__/get.test.ts +15 -0
  32. package/src/routes/create.ts +1 -1
  33. package/src/routes/get.ts +5 -0
  34. package/src/routes/index.ts +1 -2
  35. package/src/routes/update.ts +1 -1
  36. package/src/routes/__test__/find.test.ts +0 -22
  37. package/src/routes/find.ts +0 -11
package/pnpm-lock.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  lockfileVersion: 5.4
2
2
 
3
3
  specifiers:
4
- '@next-k8s/common': ^0.1.33
4
+ '@next-k8s/common': ^0.1.34
5
5
  '@types/body-parser': ^1.19.2
6
6
  '@types/cookie-session': ^2.0.44
7
7
  '@types/express': ^4.17.13
@@ -28,7 +28,7 @@ specifiers:
28
28
  typescript: ^4.7.3
29
29
 
30
30
  dependencies:
31
- '@next-k8s/common': 0.1.33
31
+ '@next-k8s/common': 0.1.34
32
32
  '@types/cookie-session': 2.0.44
33
33
  '@types/express': 4.17.13
34
34
  '@types/jsonwebtoken': 8.5.8
@@ -42,7 +42,7 @@ dependencies:
42
42
  mongoose-bcrypt: 1.9.0
43
43
  mongoose-update-if-current: 1.4.0_mongoose@6.3.5
44
44
  node-nats-streaming: 0.3.2
45
- ts-node-dev: 2.0.0_mdwa2u5d66aaselucuqqyziihu
45
+ ts-node-dev: 2.0.0_5wtkacxpinmhju6afgo34cxoce
46
46
  typescript: 4.7.3
47
47
 
48
48
  devDependencies:
@@ -50,11 +50,11 @@ devDependencies:
50
50
  '@types/jest': 28.1.1
51
51
  '@types/mongoose': 5.11.97
52
52
  '@types/supertest': 2.0.12
53
- jest: 28.1.1_dnk3gtlqhswgyp7ytm36pfjzga
53
+ jest: 28.1.1_65ilqje34s6uvyxfgxdqff5awq
54
54
  mongodb-memory-server: 8.6.0
55
55
  node-notifier: 10.0.1
56
56
  supertest: 6.2.3
57
- ts-jest: 28.0.4_ighm2axwo4w2kweegjclfnfl74
57
+ ts-jest: 28.0.4_ovsx25e2d2qwifjprag2mtiuhu
58
58
 
59
59
  packages:
60
60
 
@@ -73,11 +73,23 @@ packages:
73
73
  '@babel/highlight': 7.17.12
74
74
  dev: true
75
75
 
76
+ /@babel/code-frame/7.18.6:
77
+ resolution: {integrity: sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==}
78
+ engines: {node: '>=6.9.0'}
79
+ dependencies:
80
+ '@babel/highlight': 7.18.6
81
+ dev: true
82
+
76
83
  /@babel/compat-data/7.17.10:
77
84
  resolution: {integrity: sha512-GZt/TCsG70Ms19gfZO1tM4CVnXsPgEPBCpJu+Qz3L0LUDsY5nZqFZglIoPC1kIYOtNBZlrnFT+klg12vFGZXrw==}
78
85
  engines: {node: '>=6.9.0'}
79
86
  dev: true
80
87
 
88
+ /@babel/compat-data/7.18.8:
89
+ resolution: {integrity: sha512-HSmX4WZPPK3FUxYp7g2T6EyO8j96HlZJlxmKPSh6KAcqwyDrfx7hKjXpAW/0FhFfTJsR0Yt4lAjLI2coMptIHQ==}
90
+ engines: {node: '>=6.9.0'}
91
+ dev: true
92
+
81
93
  /@babel/core/7.18.2:
82
94
  resolution: {integrity: sha512-A8pri1YJiC5UnkdrWcmfZTJTV85b4UXTAfImGmCfYmax4TR9Cw8sDS0MOk++Gp2mE/BefVJ5nwy5yzqNJbP/DQ==}
83
95
  engines: {node: '>=6.9.0'}
@@ -101,6 +113,29 @@ packages:
101
113
  - supports-color
102
114
  dev: true
103
115
 
116
+ /@babel/core/7.18.6:
117
+ resolution: {integrity: sha512-cQbWBpxcbbs/IUredIPkHiAGULLV8iwgNRMFzvbhEXISp4f3rUUXE5+TIw6KwUWUR3DwyI6gmBRnmAtYaWehwQ==}
118
+ engines: {node: '>=6.9.0'}
119
+ dependencies:
120
+ '@ampproject/remapping': 2.2.0
121
+ '@babel/code-frame': 7.18.6
122
+ '@babel/generator': 7.18.7
123
+ '@babel/helper-compilation-targets': 7.18.6_@babel+core@7.18.6
124
+ '@babel/helper-module-transforms': 7.18.8
125
+ '@babel/helpers': 7.18.6
126
+ '@babel/parser': 7.18.8
127
+ '@babel/template': 7.18.6
128
+ '@babel/traverse': 7.18.8
129
+ '@babel/types': 7.18.8
130
+ convert-source-map: 1.8.0
131
+ debug: 4.3.4
132
+ gensync: 1.0.0-beta.2
133
+ json5: 2.2.1
134
+ semver: 6.3.0
135
+ transitivePeerDependencies:
136
+ - supports-color
137
+ dev: true
138
+
104
139
  /@babel/generator/7.18.2:
105
140
  resolution: {integrity: sha512-W1lG5vUwFvfMd8HVXqdfbuG7RuaSrTCCD8cl8fP8wOivdbtbIg2Db3IWUcgvfxKbbn6ZBGYRW/Zk1MIwK49mgw==}
106
141
  engines: {node: '>=6.9.0'}
@@ -110,6 +145,15 @@ packages:
110
145
  jsesc: 2.5.2
111
146
  dev: true
112
147
 
148
+ /@babel/generator/7.18.7:
149
+ resolution: {integrity: sha512-shck+7VLlY72a2w9c3zYWuE1pwOKEiQHV7GTUbSnhyl5eu3i04t30tBY82ZRWrDfo3gkakCFtevExnxbkf2a3A==}
150
+ engines: {node: '>=6.9.0'}
151
+ dependencies:
152
+ '@babel/types': 7.18.8
153
+ '@jridgewell/gen-mapping': 0.3.2
154
+ jsesc: 2.5.2
155
+ dev: true
156
+
113
157
  /@babel/helper-compilation-targets/7.18.2_@babel+core@7.18.2:
114
158
  resolution: {integrity: sha512-s1jnPotJS9uQnzFtiZVBUxe67CuBa679oWFHpxYYnTpRL/1ffhyX44R9uYiXoa/pLXcY9H2moJta0iaanlk/rQ==}
115
159
  engines: {node: '>=6.9.0'}
@@ -123,11 +167,29 @@ packages:
123
167
  semver: 6.3.0
124
168
  dev: true
125
169
 
170
+ /@babel/helper-compilation-targets/7.18.6_@babel+core@7.18.6:
171
+ resolution: {integrity: sha512-vFjbfhNCzqdeAtZflUFrG5YIFqGTqsctrtkZ1D/NB0mDW9TwW3GmmUepYY4G9wCET5rY5ugz4OGTcLd614IzQg==}
172
+ engines: {node: '>=6.9.0'}
173
+ peerDependencies:
174
+ '@babel/core': ^7.0.0
175
+ dependencies:
176
+ '@babel/compat-data': 7.18.8
177
+ '@babel/core': 7.18.6
178
+ '@babel/helper-validator-option': 7.18.6
179
+ browserslist: 4.21.1
180
+ semver: 6.3.0
181
+ dev: true
182
+
126
183
  /@babel/helper-environment-visitor/7.18.2:
127
184
  resolution: {integrity: sha512-14GQKWkX9oJzPiQQ7/J36FTXcD4kSp8egKjO9nINlSKiHITRA9q/R74qu8S9xlc/b/yjsJItQUeeh3xnGN0voQ==}
128
185
  engines: {node: '>=6.9.0'}
129
186
  dev: true
130
187
 
188
+ /@babel/helper-environment-visitor/7.18.6:
189
+ resolution: {integrity: sha512-8n6gSfn2baOY+qlp+VSzsosjCVGFqWKmDF0cCWOybh52Dw3SEyoWR1KrhMJASjLwIEkkAufZ0xvr+SxLHSpy2Q==}
190
+ engines: {node: '>=6.9.0'}
191
+ dev: true
192
+
131
193
  /@babel/helper-function-name/7.17.9:
132
194
  resolution: {integrity: sha512-7cRisGlVtiVqZ0MW0/yFB4atgpGLWEHUVYnb448hZK4x+vih0YO5UoS11XIYtZYqHd0dIPMdUSv8q5K4LdMnIg==}
133
195
  engines: {node: '>=6.9.0'}
@@ -136,6 +198,14 @@ packages:
136
198
  '@babel/types': 7.18.4
137
199
  dev: true
138
200
 
201
+ /@babel/helper-function-name/7.18.6:
202
+ resolution: {integrity: sha512-0mWMxV1aC97dhjCah5U5Ua7668r5ZmSC2DLfH2EZnf9c3/dHZKiFa5pRLMH5tjSl471tY6496ZWk/kjNONBxhw==}
203
+ engines: {node: '>=6.9.0'}
204
+ dependencies:
205
+ '@babel/template': 7.18.6
206
+ '@babel/types': 7.18.8
207
+ dev: true
208
+
139
209
  /@babel/helper-hoist-variables/7.16.7:
140
210
  resolution: {integrity: sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==}
141
211
  engines: {node: '>=6.9.0'}
@@ -143,6 +213,13 @@ packages:
143
213
  '@babel/types': 7.18.4
144
214
  dev: true
145
215
 
216
+ /@babel/helper-hoist-variables/7.18.6:
217
+ resolution: {integrity: sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==}
218
+ engines: {node: '>=6.9.0'}
219
+ dependencies:
220
+ '@babel/types': 7.18.8
221
+ dev: true
222
+
146
223
  /@babel/helper-module-imports/7.16.7:
147
224
  resolution: {integrity: sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==}
148
225
  engines: {node: '>=6.9.0'}
@@ -150,6 +227,13 @@ packages:
150
227
  '@babel/types': 7.18.4
151
228
  dev: true
152
229
 
230
+ /@babel/helper-module-imports/7.18.6:
231
+ resolution: {integrity: sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==}
232
+ engines: {node: '>=6.9.0'}
233
+ dependencies:
234
+ '@babel/types': 7.18.8
235
+ dev: true
236
+
153
237
  /@babel/helper-module-transforms/7.18.0:
154
238
  resolution: {integrity: sha512-kclUYSUBIjlvnzN2++K9f2qzYKFgjmnmjwL4zlmU5f8ZtzgWe8s0rUPSTGy2HmK4P8T52MQsS+HTQAgZd3dMEA==}
155
239
  engines: {node: '>=6.9.0'}
@@ -166,6 +250,22 @@ packages:
166
250
  - supports-color
167
251
  dev: true
168
252
 
253
+ /@babel/helper-module-transforms/7.18.8:
254
+ resolution: {integrity: sha512-che3jvZwIcZxrwh63VfnFTUzcAM9v/lznYkkRxIBGMPt1SudOKHAEec0SIRCfiuIzTcF7VGj/CaTT6gY4eWxvA==}
255
+ engines: {node: '>=6.9.0'}
256
+ dependencies:
257
+ '@babel/helper-environment-visitor': 7.18.6
258
+ '@babel/helper-module-imports': 7.18.6
259
+ '@babel/helper-simple-access': 7.18.6
260
+ '@babel/helper-split-export-declaration': 7.18.6
261
+ '@babel/helper-validator-identifier': 7.18.6
262
+ '@babel/template': 7.18.6
263
+ '@babel/traverse': 7.18.8
264
+ '@babel/types': 7.18.8
265
+ transitivePeerDependencies:
266
+ - supports-color
267
+ dev: true
268
+
169
269
  /@babel/helper-plugin-utils/7.17.12:
170
270
  resolution: {integrity: sha512-JDkf04mqtN3y4iAbO1hv9U2ARpPyPL1zqyWs/2WG1pgSq9llHFjStX5jdxb84himgJm+8Ng+x0oiWF/nw/XQKA==}
171
271
  engines: {node: '>=6.9.0'}
@@ -178,6 +278,13 @@ packages:
178
278
  '@babel/types': 7.18.4
179
279
  dev: true
180
280
 
281
+ /@babel/helper-simple-access/7.18.6:
282
+ resolution: {integrity: sha512-iNpIgTgyAvDQpDj76POqg+YEt8fPxx3yaNBg3S30dxNKm2SWfYhD0TGrK/Eu9wHpUW63VQU894TsTg+GLbUa1g==}
283
+ engines: {node: '>=6.9.0'}
284
+ dependencies:
285
+ '@babel/types': 7.18.8
286
+ dev: true
287
+
181
288
  /@babel/helper-split-export-declaration/7.16.7:
182
289
  resolution: {integrity: sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==}
183
290
  engines: {node: '>=6.9.0'}
@@ -185,16 +292,33 @@ packages:
185
292
  '@babel/types': 7.18.4
186
293
  dev: true
187
294
 
295
+ /@babel/helper-split-export-declaration/7.18.6:
296
+ resolution: {integrity: sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==}
297
+ engines: {node: '>=6.9.0'}
298
+ dependencies:
299
+ '@babel/types': 7.18.8
300
+ dev: true
301
+
188
302
  /@babel/helper-validator-identifier/7.16.7:
189
303
  resolution: {integrity: sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==}
190
304
  engines: {node: '>=6.9.0'}
191
305
  dev: true
192
306
 
307
+ /@babel/helper-validator-identifier/7.18.6:
308
+ resolution: {integrity: sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g==}
309
+ engines: {node: '>=6.9.0'}
310
+ dev: true
311
+
193
312
  /@babel/helper-validator-option/7.16.7:
194
313
  resolution: {integrity: sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ==}
195
314
  engines: {node: '>=6.9.0'}
196
315
  dev: true
197
316
 
317
+ /@babel/helper-validator-option/7.18.6:
318
+ resolution: {integrity: sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==}
319
+ engines: {node: '>=6.9.0'}
320
+ dev: true
321
+
198
322
  /@babel/helpers/7.18.2:
199
323
  resolution: {integrity: sha512-j+d+u5xT5utcQSzrh9p+PaJX94h++KN+ng9b9WEJq7pkUPAd61FGqhjuUEdfknb3E/uDBb7ruwEeKkIxNJPIrg==}
200
324
  engines: {node: '>=6.9.0'}
@@ -206,6 +330,17 @@ packages:
206
330
  - supports-color
207
331
  dev: true
208
332
 
333
+ /@babel/helpers/7.18.6:
334
+ resolution: {integrity: sha512-vzSiiqbQOghPngUYt/zWGvK3LAsPhz55vc9XNN0xAl2gV4ieShI2OQli5duxWHD+72PZPTKAcfcZDE1Cwc5zsQ==}
335
+ engines: {node: '>=6.9.0'}
336
+ dependencies:
337
+ '@babel/template': 7.18.6
338
+ '@babel/traverse': 7.18.8
339
+ '@babel/types': 7.18.8
340
+ transitivePeerDependencies:
341
+ - supports-color
342
+ dev: true
343
+
209
344
  /@babel/highlight/7.17.12:
210
345
  resolution: {integrity: sha512-7yykMVF3hfZY2jsHZEEgLc+3x4o1O+fYyULu11GynEUQNwB6lua+IIQn1FiJxNucd5UlyJryrwsOh8PL9Sn8Qg==}
211
346
  engines: {node: '>=6.9.0'}
@@ -215,6 +350,15 @@ packages:
215
350
  js-tokens: 4.0.0
216
351
  dev: true
217
352
 
353
+ /@babel/highlight/7.18.6:
354
+ resolution: {integrity: sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==}
355
+ engines: {node: '>=6.9.0'}
356
+ dependencies:
357
+ '@babel/helper-validator-identifier': 7.18.6
358
+ chalk: 2.4.2
359
+ js-tokens: 4.0.0
360
+ dev: true
361
+
218
362
  /@babel/parser/7.18.4:
219
363
  resolution: {integrity: sha512-FDge0dFazETFcxGw/EXzOkN8uJp0PC7Qbm+Pe9T+av2zlBpOgunFHkQPPn+eRuClU73JF+98D531UgayY89tow==}
220
364
  engines: {node: '>=6.0.0'}
@@ -223,6 +367,14 @@ packages:
223
367
  '@babel/types': 7.18.4
224
368
  dev: true
225
369
 
370
+ /@babel/parser/7.18.8:
371
+ resolution: {integrity: sha512-RSKRfYX20dyH+elbJK2uqAkVyucL+xXzhqlMD5/ZXx+dAAwpyB7HsvnHe/ZUGOF+xLr5Wx9/JoXVTj6BQE2/oA==}
372
+ engines: {node: '>=6.0.0'}
373
+ hasBin: true
374
+ dependencies:
375
+ '@babel/types': 7.18.8
376
+ dev: true
377
+
226
378
  /@babel/plugin-syntax-async-generators/7.8.4_@babel+core@7.18.2:
227
379
  resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==}
228
380
  peerDependencies:
@@ -351,6 +503,15 @@ packages:
351
503
  '@babel/types': 7.18.4
352
504
  dev: true
353
505
 
506
+ /@babel/template/7.18.6:
507
+ resolution: {integrity: sha512-JoDWzPe+wgBsTTgdnIma3iHNFC7YVJoPssVBDjiHfNlyt4YcunDtcDOUmfVDfCK5MfdsaIoX9PkijPhjH3nYUw==}
508
+ engines: {node: '>=6.9.0'}
509
+ dependencies:
510
+ '@babel/code-frame': 7.18.6
511
+ '@babel/parser': 7.18.8
512
+ '@babel/types': 7.18.8
513
+ dev: true
514
+
354
515
  /@babel/traverse/7.18.2:
355
516
  resolution: {integrity: sha512-9eNwoeovJ6KH9zcCNnENY7DMFwTU9JdGCFtqNLfUAqtUHRCOsTOqWoffosP8vKmNYeSBUv3yVJXjfd8ucwOjUA==}
356
517
  engines: {node: '>=6.9.0'}
@@ -369,6 +530,24 @@ packages:
369
530
  - supports-color
370
531
  dev: true
371
532
 
533
+ /@babel/traverse/7.18.8:
534
+ resolution: {integrity: sha512-UNg/AcSySJYR/+mIcJQDCv00T+AqRO7j/ZEJLzpaYtgM48rMg5MnkJgyNqkzo88+p4tfRvZJCEiwwfG6h4jkRg==}
535
+ engines: {node: '>=6.9.0'}
536
+ dependencies:
537
+ '@babel/code-frame': 7.18.6
538
+ '@babel/generator': 7.18.7
539
+ '@babel/helper-environment-visitor': 7.18.6
540
+ '@babel/helper-function-name': 7.18.6
541
+ '@babel/helper-hoist-variables': 7.18.6
542
+ '@babel/helper-split-export-declaration': 7.18.6
543
+ '@babel/parser': 7.18.8
544
+ '@babel/types': 7.18.8
545
+ debug: 4.3.4
546
+ globals: 11.12.0
547
+ transitivePeerDependencies:
548
+ - supports-color
549
+ dev: true
550
+
372
551
  /@babel/types/7.18.4:
373
552
  resolution: {integrity: sha512-ThN1mBcMq5pG/Vm2IcBmPPfyPXbd8S02rS+OBIDENdufvqC7Z/jHPCv9IcP01277aKtDI8g/2XysBN4hA8niiw==}
374
553
  engines: {node: '>=6.9.0'}
@@ -377,6 +556,14 @@ packages:
377
556
  to-fast-properties: 2.0.0
378
557
  dev: true
379
558
 
559
+ /@babel/types/7.18.8:
560
+ resolution: {integrity: sha512-qwpdsmraq0aJ3osLJRApsc2ouSJCdnMeZwB0DhbtHAtRpZNZCdlbRnHIgcRKzdE1g0iOGg644fzjOBcdOz9cPw==}
561
+ engines: {node: '>=6.9.0'}
562
+ dependencies:
563
+ '@babel/helper-validator-identifier': 7.18.6
564
+ to-fast-properties: 2.0.0
565
+ dev: true
566
+
380
567
  /@bcoe/v8-coverage/0.2.3:
381
568
  resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==}
382
569
  dev: true
@@ -637,26 +824,56 @@ packages:
637
824
  '@jridgewell/trace-mapping': 0.3.9
638
825
  dev: true
639
826
 
827
+ /@jridgewell/gen-mapping/0.3.2:
828
+ resolution: {integrity: sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==}
829
+ engines: {node: '>=6.0.0'}
830
+ dependencies:
831
+ '@jridgewell/set-array': 1.1.2
832
+ '@jridgewell/sourcemap-codec': 1.4.14
833
+ '@jridgewell/trace-mapping': 0.3.14
834
+ dev: true
835
+
640
836
  /@jridgewell/resolve-uri/3.0.7:
641
837
  resolution: {integrity: sha512-8cXDaBBHOr2pQ7j77Y6Vp5VDT2sIqWyWQ56TjEq4ih/a4iST3dItRe8Q9fp0rrIl9DoKhWQtUQz/YpOxLkXbNA==}
642
838
  engines: {node: '>=6.0.0'}
643
839
 
840
+ /@jridgewell/resolve-uri/3.1.0:
841
+ resolution: {integrity: sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==}
842
+ engines: {node: '>=6.0.0'}
843
+ dev: true
844
+
644
845
  /@jridgewell/set-array/1.1.1:
645
846
  resolution: {integrity: sha512-Ct5MqZkLGEXTVmQYbGtx9SVqD2fqwvdubdps5D3djjAkgkKwT918VNOz65pEHFaYTeWcukmJmH5SwsA9Tn2ObQ==}
646
847
  engines: {node: '>=6.0.0'}
647
848
  dev: true
648
849
 
850
+ /@jridgewell/set-array/1.1.2:
851
+ resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==}
852
+ engines: {node: '>=6.0.0'}
853
+ dev: true
854
+
649
855
  /@jridgewell/sourcemap-codec/1.4.13:
650
856
  resolution: {integrity: sha512-GryiOJmNcWbovBxTfZSF71V/mXbgcV3MewDe3kIMCLyIh5e7SKAeUZs+rMnJ8jkMolZ/4/VsdBmMrw3l+VdZ3w==}
651
857
 
858
+ /@jridgewell/sourcemap-codec/1.4.14:
859
+ resolution: {integrity: sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==}
860
+ dev: true
861
+
862
+ /@jridgewell/trace-mapping/0.3.14:
863
+ resolution: {integrity: sha512-bJWEfQ9lPTvm3SneWwRFVLzrh6nhjwqw7TUFFBEMzwvg7t7PCDenf2lDwqo4NQXzdpgBXyFgDWnQA+2vkruksQ==}
864
+ dependencies:
865
+ '@jridgewell/resolve-uri': 3.1.0
866
+ '@jridgewell/sourcemap-codec': 1.4.14
867
+ dev: true
868
+
652
869
  /@jridgewell/trace-mapping/0.3.9:
653
870
  resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==}
654
871
  dependencies:
655
872
  '@jridgewell/resolve-uri': 3.0.7
656
873
  '@jridgewell/sourcemap-codec': 1.4.13
657
874
 
658
- /@next-k8s/common/0.1.33:
659
- resolution: {integrity: sha512-OMNES7oDpgNcI0NXFRI5zIsn1mRga29QwIJr2Km7wXKc0tvbL+t6bZEFzR7LTYlqX0PszTc1rR5NkkGy30VPFg==}
875
+ /@next-k8s/common/0.1.34:
876
+ resolution: {integrity: sha512-4Gz5RXxCtudcEIaPi+DuUO+YxYunSp6capFqowLf8l7RQ36nSbf1dcV56VZPEQTmTaYzuV9flVrXTrtaQmAhSA==}
660
877
  dependencies:
661
878
  cookie-session: 2.0.0
662
879
  express: 4.18.1
@@ -822,6 +1039,9 @@ packages:
822
1039
  /@types/node/17.0.40:
823
1040
  resolution: {integrity: sha512-UXdBxNGqTMtm7hCwh9HtncFVLrXoqA3oJW30j6XWp5BH/wu3mVeaxo7cq5benFdBw34HB3XDT2TRPI7rXZ+mDg==}
824
1041
 
1042
+ /@types/node/18.0.3:
1043
+ resolution: {integrity: sha512-HzNRZtp4eepNitP+BD6k2L6DROIDG4Q0fm4x+dwfsr6LGmROENnok75VGw40628xf+iR24WeMFcHuuBDUAzzsQ==}
1044
+
825
1045
  /@types/prettier/2.6.3:
826
1046
  resolution: {integrity: sha512-ymZk3LEC/fsut+/Q5qejp6R9O1rMxz3XaRHDV6kX8MrGAhOSPqVARbDi+EZvInBpw+BnCX3TD240byVkOfQsHg==}
827
1047
  dev: true
@@ -1122,6 +1342,17 @@ packages:
1122
1342
  picocolors: 1.0.0
1123
1343
  dev: true
1124
1344
 
1345
+ /browserslist/4.21.1:
1346
+ resolution: {integrity: sha512-Nq8MFCSrnJXSc88yliwlzQe3qNe3VntIjhsArW9IJOEPSHNx23FalwApUVbzAWABLhYJJ7y8AynWI/XM8OdfjQ==}
1347
+ engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
1348
+ hasBin: true
1349
+ dependencies:
1350
+ caniuse-lite: 1.0.30001365
1351
+ electron-to-chromium: 1.4.186
1352
+ node-releases: 2.0.6
1353
+ update-browserslist-db: 1.0.4_browserslist@4.21.1
1354
+ dev: true
1355
+
1125
1356
  /bs-logger/0.2.6:
1126
1357
  resolution: {integrity: sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==}
1127
1358
  engines: {node: '>= 6'}
@@ -1188,6 +1419,10 @@ packages:
1188
1419
  resolution: {integrity: sha512-GUgH8w6YergqPQDGWhJGt8GDRnY0L/iJVQcU3eJ46GYf52R8tk0Wxp0PymuFVZboJYXGiCqwozAYZNRjVj6IcA==}
1189
1420
  dev: true
1190
1421
 
1422
+ /caniuse-lite/1.0.30001365:
1423
+ resolution: {integrity: sha512-VDQZ8OtpuIPMBA4YYvZXECtXbddMCUFJk1qu8Mqxfm/SZJNSr1cy4IuLCOL7RJ/YASrvJcYg1Zh+UEUQ5m6z8Q==}
1424
+ dev: true
1425
+
1191
1426
  /chalk/2.4.2:
1192
1427
  resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==}
1193
1428
  engines: {node: '>=4'}
@@ -1466,6 +1701,10 @@ packages:
1466
1701
  resolution: {integrity: sha512-XaG2LpZi9fdiWYOqJh0dJy4SlVywCvpgYXhzOlZTp4JqSKqxn5URqOjbm9OMYB3aInA2GuHQiem1QUOc1yT0Pw==}
1467
1702
  dev: true
1468
1703
 
1704
+ /electron-to-chromium/1.4.186:
1705
+ resolution: {integrity: sha512-YoVeFrGd/7ROjz4R9uPoND1K/hSRC/xADy9639ZmIZeJSaBnKdYx3I6LMPsY7CXLpK7JFgKQVzeZ/dk2br6Eaw==}
1706
+ dev: true
1707
+
1469
1708
  /emittery/0.10.2:
1470
1709
  resolution: {integrity: sha512-aITqOwnLanpHLNXZJENbOgjUBeHocD+xsSJmNrjovKBW5HbSpW3d1pEls7GFQPUWXiwG9+0P4GtHfEqC/4M0Iw==}
1471
1710
  engines: {node: '>=12'}
@@ -2022,7 +2261,7 @@ packages:
2022
2261
  - supports-color
2023
2262
  dev: true
2024
2263
 
2025
- /jest-cli/28.1.1_dnk3gtlqhswgyp7ytm36pfjzga:
2264
+ /jest-cli/28.1.1_65ilqje34s6uvyxfgxdqff5awq:
2026
2265
  resolution: {integrity: sha512-+sUfVbJqb1OjBZ0OdBbI6OWfYM1i7bSfzYy6gze1F1w3OKWq8ZTEKkZ8a7ZQPq6G/G1qMh/uKqpdWhgl11NFQQ==}
2027
2266
  engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0}
2028
2267
  hasBin: true
@@ -2039,7 +2278,7 @@ packages:
2039
2278
  exit: 0.1.2
2040
2279
  graceful-fs: 4.2.10
2041
2280
  import-local: 3.1.0
2042
- jest-config: 28.1.1_@types+node@17.0.40
2281
+ jest-config: 28.1.1_@types+node@18.0.3
2043
2282
  jest-util: 28.1.1
2044
2283
  jest-validate: 28.1.1
2045
2284
  node-notifier: 10.0.1
@@ -2090,6 +2329,45 @@ packages:
2090
2329
  - supports-color
2091
2330
  dev: true
2092
2331
 
2332
+ /jest-config/28.1.1_@types+node@18.0.3:
2333
+ resolution: {integrity: sha512-tASynMhS+jVV85zKvjfbJ8nUyJS/jUSYZ5KQxLUN2ZCvcQc/OmhQl2j6VEL3ezQkNofxn5pQ3SPYWPHb0unTZA==}
2334
+ engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0}
2335
+ peerDependencies:
2336
+ '@types/node': '*'
2337
+ ts-node: '>=9.0.0'
2338
+ peerDependenciesMeta:
2339
+ '@types/node':
2340
+ optional: true
2341
+ ts-node:
2342
+ optional: true
2343
+ dependencies:
2344
+ '@babel/core': 7.18.2
2345
+ '@jest/test-sequencer': 28.1.1
2346
+ '@jest/types': 28.1.1
2347
+ '@types/node': 18.0.3
2348
+ babel-jest: 28.1.1_@babel+core@7.18.2
2349
+ chalk: 4.1.2
2350
+ ci-info: 3.3.1
2351
+ deepmerge: 4.2.2
2352
+ glob: 7.2.3
2353
+ graceful-fs: 4.2.10
2354
+ jest-circus: 28.1.1
2355
+ jest-environment-node: 28.1.1
2356
+ jest-get-type: 28.0.2
2357
+ jest-regex-util: 28.0.2
2358
+ jest-resolve: 28.1.1
2359
+ jest-runner: 28.1.1
2360
+ jest-util: 28.1.1
2361
+ jest-validate: 28.1.1
2362
+ micromatch: 4.0.5
2363
+ parse-json: 5.2.0
2364
+ pretty-format: 28.1.1
2365
+ slash: 3.0.0
2366
+ strip-json-comments: 3.1.1
2367
+ transitivePeerDependencies:
2368
+ - supports-color
2369
+ dev: true
2370
+
2093
2371
  /jest-diff/27.5.1:
2094
2372
  resolution: {integrity: sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw==}
2095
2373
  engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0}
@@ -2399,7 +2677,7 @@ packages:
2399
2677
  supports-color: 8.1.1
2400
2678
  dev: true
2401
2679
 
2402
- /jest/28.1.1_dnk3gtlqhswgyp7ytm36pfjzga:
2680
+ /jest/28.1.1_65ilqje34s6uvyxfgxdqff5awq:
2403
2681
  resolution: {integrity: sha512-qw9YHBnjt6TCbIDMPMpJZqf9E12rh6869iZaN08/vpOGgHJSAaLLUn6H8W3IAEuy34Ls3rct064mZLETkxJ2XA==}
2404
2682
  engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0}
2405
2683
  hasBin: true
@@ -2412,7 +2690,7 @@ packages:
2412
2690
  '@jest/core': 28.1.1_node-notifier@10.0.1
2413
2691
  '@jest/types': 28.1.1
2414
2692
  import-local: 3.1.0
2415
- jest-cli: 28.1.1_dnk3gtlqhswgyp7ytm36pfjzga
2693
+ jest-cli: 28.1.1_65ilqje34s6uvyxfgxdqff5awq
2416
2694
  node-notifier: 10.0.1
2417
2695
  transitivePeerDependencies:
2418
2696
  - '@types/node'
@@ -2811,6 +3089,10 @@ packages:
2811
3089
  resolution: {integrity: sha512-U9h1NLROZTq9uE1SNffn6WuPDg8icmi3ns4rEl/oTfIle4iLjTliCzgTsbaIFMq/Xn078/lfY/BL0GWZ+psK4Q==}
2812
3090
  dev: true
2813
3091
 
3092
+ /node-releases/2.0.6:
3093
+ resolution: {integrity: sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==}
3094
+ dev: true
3095
+
2814
3096
  /normalize-path/3.0.0:
2815
3097
  resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==}
2816
3098
  engines: {node: '>=0.10.0'}
@@ -3419,7 +3701,7 @@ packages:
3419
3701
  hasBin: true
3420
3702
  dev: false
3421
3703
 
3422
- /ts-jest/28.0.4_ighm2axwo4w2kweegjclfnfl74:
3704
+ /ts-jest/28.0.4_ovsx25e2d2qwifjprag2mtiuhu:
3423
3705
  resolution: {integrity: sha512-S6uRDDdCJBvnZqyGjB4VCnwbQrbgdL8WPeP4jevVSpYsBaeGRQAIS08o3Svav2Ex+oXwLgJ/m7F24TNq62kA1A==}
3424
3706
  engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0}
3425
3707
  hasBin: true
@@ -3437,10 +3719,10 @@ packages:
3437
3719
  esbuild:
3438
3720
  optional: true
3439
3721
  dependencies:
3440
- '@babel/core': 7.18.2
3722
+ '@babel/core': 7.18.6
3441
3723
  bs-logger: 0.2.6
3442
3724
  fast-json-stable-stringify: 2.1.0
3443
- jest: 28.1.1_dnk3gtlqhswgyp7ytm36pfjzga
3725
+ jest: 28.1.1_65ilqje34s6uvyxfgxdqff5awq
3444
3726
  jest-util: 28.1.1
3445
3727
  json5: 2.2.1
3446
3728
  lodash.memoize: 4.1.2
@@ -3456,7 +3738,7 @@ packages:
3456
3738
  tweetnacl: 1.0.3
3457
3739
  dev: false
3458
3740
 
3459
- /ts-node-dev/2.0.0_mdwa2u5d66aaselucuqqyziihu:
3741
+ /ts-node-dev/2.0.0_5wtkacxpinmhju6afgo34cxoce:
3460
3742
  resolution: {integrity: sha512-ywMrhCfH6M75yftYvrvNarLEY+SUXtUvU8/0Z6llrHQVBx12GiFk5sStF8UdfE/yfzk9IAq7O5EEbTQsxlBI8w==}
3461
3743
  engines: {node: '>=0.8.0'}
3462
3744
  hasBin: true
@@ -3476,7 +3758,7 @@ packages:
3476
3758
  rimraf: 2.7.1
3477
3759
  source-map-support: 0.5.21
3478
3760
  tree-kill: 1.2.2
3479
- ts-node: 10.8.1_fvkldoeufjjq5mlpfdkzhuqzdy
3761
+ ts-node: 10.8.1_whnhcsqzfmpkcjocawaar7phpy
3480
3762
  tsconfig: 7.0.0
3481
3763
  typescript: 4.7.3
3482
3764
  transitivePeerDependencies:
@@ -3485,7 +3767,7 @@ packages:
3485
3767
  - '@types/node'
3486
3768
  dev: false
3487
3769
 
3488
- /ts-node/10.8.1_fvkldoeufjjq5mlpfdkzhuqzdy:
3770
+ /ts-node/10.8.1_whnhcsqzfmpkcjocawaar7phpy:
3489
3771
  resolution: {integrity: sha512-Wwsnao4DQoJsN034wePSg5nZiw4YKXf56mPIAeD6wVmiv+RytNSWqc2f3fKvcUoV+Yn2+yocD71VOfQHbmVX4g==}
3490
3772
  hasBin: true
3491
3773
  peerDependencies:
@@ -3504,7 +3786,7 @@ packages:
3504
3786
  '@tsconfig/node12': 1.0.9
3505
3787
  '@tsconfig/node14': 1.0.1
3506
3788
  '@tsconfig/node16': 1.0.2
3507
- '@types/node': 17.0.40
3789
+ '@types/node': 18.0.3
3508
3790
  acorn: 8.7.1
3509
3791
  acorn-walk: 8.2.0
3510
3792
  arg: 4.1.3
@@ -3566,6 +3848,17 @@ packages:
3566
3848
  engines: {node: '>= 0.8'}
3567
3849
  dev: false
3568
3850
 
3851
+ /update-browserslist-db/1.0.4_browserslist@4.21.1:
3852
+ resolution: {integrity: sha512-jnmO2BEGUjsMOe/Fg9u0oczOe/ppIDZPebzccl1yDWGLFP16Pa1/RM5wEoKYPG2zstNcDuAStejyxsOuKINdGA==}
3853
+ hasBin: true
3854
+ peerDependencies:
3855
+ browserslist: '>= 4.21.0'
3856
+ dependencies:
3857
+ browserslist: 4.21.1
3858
+ escalade: 3.1.1
3859
+ picocolors: 1.0.0
3860
+ dev: true
3861
+
3569
3862
  /util-deprecate/1.0.2:
3570
3863
  resolution: {integrity: sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=}
3571
3864
  dev: true
@@ -0,0 +1,44 @@
1
+ import mongoose from 'mongoose'
2
+ import { Message } from 'node-nats-streaming'
3
+ import { OrderCreatedEvent, OrderStatus } from '@next-k8s/common'
4
+
5
+ import Ticket from '../../../models/ticket'
6
+ import natsClient from '../../../nats-client'
7
+ import OrderCreatedListener from '../order-created'
8
+
9
+ const setup = async () => {
10
+ const listener = new OrderCreatedListener(natsClient.client)
11
+ const ticket = new Ticket({ title: 'Test Ticket', price: 21000, owner: new mongoose.Types.ObjectId().toHexString() })
12
+ await ticket.save()
13
+
14
+ const data: OrderCreatedEvent['data'] = {
15
+ id: new mongoose.Types.ObjectId().toHexString(),
16
+ version: 0,
17
+ status: OrderStatus.Created,
18
+ owner: new mongoose.Types.ObjectId().toHexString(),
19
+ expiresAt: new Date().toUTCString(),
20
+ ticket: {
21
+ id: ticket.id,
22
+ price: ticket.price
23
+ }
24
+ }
25
+
26
+ // @ts-ignore
27
+ const message: Message = { ack: jest.fn() }
28
+ return { data, listener, message, ticket }
29
+ }
30
+
31
+ describe('[Order Created] Listener', () => {
32
+ it('should set the ticket owner', async () => {
33
+ const { data, listener, message, ticket } = await setup()
34
+ await listener.onMessage(data, message)
35
+ const updatedTicket = await Ticket.findById(ticket.id)
36
+ expect(updatedTicket.orderId).toBe(data.id)
37
+ })
38
+
39
+ it('should ack the message', async () =>{
40
+ const { data, listener, message } = await setup()
41
+ await listener.onMessage(data, message)
42
+ expect(message.ack).toHaveBeenCalled()
43
+ })
44
+ })
@@ -0,0 +1 @@
1
+ export default 'tickets-service'
@@ -0,0 +1,22 @@
1
+ import { Listener, NotFoundError, OrderCreatedEvent, Subjects } from '@next-k8s/common'
2
+ import { Message } from 'node-nats-streaming'
3
+ import Ticket from '../../models/ticket'
4
+ import TicketUpdatedPublisher from '../publishers/updated'
5
+
6
+ import queueGroupName from './_queue-group-name'
7
+
8
+ export class OrderCreatedListener extends Listener<OrderCreatedEvent> {
9
+ readonly subject = Subjects.OrderCreated
10
+ queueGroupName = queueGroupName
11
+
12
+ async onMessage (data: OrderCreatedEvent['data'], msg: Message) {
13
+ const ticket = await Ticket.findById(data.ticket.id)
14
+ if (!ticket) throw new NotFoundError('Ticket not found')
15
+ ticket.set({ orderId: data.id })
16
+ await ticket.save()
17
+
18
+ msg.ack()
19
+ }
20
+ }
21
+
22
+ export default OrderCreatedListener