@next-k8s/tickets 1.0.26 → 1.0.27

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 (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