chz-telegram-bot 0.7.5 → 0.7.7

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 (62) hide show
  1. package/dist/entities/actions/commandAction.d.ts.map +1 -1
  2. package/dist/entities/actions/commandAction.js +4 -2
  3. package/dist/entities/actions/inlineQueryAction.d.ts.map +1 -1
  4. package/dist/entities/actions/inlineQueryAction.js +4 -2
  5. package/dist/entities/actions/replyCaptureAction.d.ts.map +1 -1
  6. package/dist/entities/actions/replyCaptureAction.js +4 -2
  7. package/dist/entities/actions/scheduledAction.d.ts.map +1 -1
  8. package/dist/entities/actions/scheduledAction.js +8 -4
  9. package/dist/entities/botInstance.d.ts.map +1 -1
  10. package/dist/entities/botInstance.js +7 -4
  11. package/dist/entities/taskRecord.d.ts +3 -1
  12. package/dist/entities/taskRecord.d.ts.map +1 -1
  13. package/dist/entities/taskRecord.js +3 -1
  14. package/dist/index.d.ts +1 -1
  15. package/dist/index.d.ts.map +1 -1
  16. package/dist/services/actionProcessingService.d.ts.map +1 -1
  17. package/dist/services/actionProcessingService.js +2 -2
  18. package/dist/services/actionProcessors/baseProcessor.d.ts.map +1 -1
  19. package/dist/services/actionProcessors/baseProcessor.js +4 -4
  20. package/dist/services/actionProcessors/commandActionProcessor.d.ts +2 -1
  21. package/dist/services/actionProcessors/commandActionProcessor.d.ts.map +1 -1
  22. package/dist/services/actionProcessors/commandActionProcessor.js +13 -7
  23. package/dist/services/actionProcessors/inlineQueryActionProcessor.d.ts.map +1 -1
  24. package/dist/services/actionProcessors/inlineQueryActionProcessor.js +17 -9
  25. package/dist/services/actionProcessors/scheduledActionProcessor.d.ts +1 -0
  26. package/dist/services/actionProcessors/scheduledActionProcessor.d.ts.map +1 -1
  27. package/dist/services/actionProcessors/scheduledActionProcessor.js +9 -2
  28. package/dist/services/jsonFileStorage.d.ts +1 -3
  29. package/dist/services/jsonFileStorage.d.ts.map +1 -1
  30. package/dist/services/jsonFileStorage.js +4 -33
  31. package/dist/services/nodeTimeoutScheduler.d.ts +2 -1
  32. package/dist/services/nodeTimeoutScheduler.d.ts.map +1 -1
  33. package/dist/services/nodeTimeoutScheduler.js +15 -6
  34. package/dist/services/telegramApi.d.ts +2 -1
  35. package/dist/services/telegramApi.d.ts.map +1 -1
  36. package/dist/services/telegramApi.js +14 -10
  37. package/dist/types/events.d.ts +20 -37
  38. package/dist/types/events.d.ts.map +1 -1
  39. package/dist/types/events.js +0 -8
  40. package/package.json +1 -1
  41. package/src/entities/actions/commandAction.ts +4 -2
  42. package/src/entities/actions/inlineQueryAction.ts +4 -2
  43. package/src/entities/actions/replyCaptureAction.ts +4 -2
  44. package/src/entities/actions/scheduledAction.ts +8 -4
  45. package/src/entities/botInstance.ts +7 -9
  46. package/src/entities/taskRecord.ts +7 -9
  47. package/src/index.ts +4 -1
  48. package/src/services/actionProcessingService.ts +3 -2
  49. package/src/services/actionProcessors/baseProcessor.ts +7 -4
  50. package/src/services/actionProcessors/commandActionProcessor.ts +15 -7
  51. package/src/services/actionProcessors/inlineQueryActionProcessor.ts +24 -16
  52. package/src/services/actionProcessors/scheduledActionProcessor.ts +13 -8
  53. package/src/services/jsonFileStorage.ts +2 -41
  54. package/src/services/nodeTimeoutScheduler.ts +16 -6
  55. package/src/services/telegramApi.ts +18 -12
  56. package/src/types/events.ts +20 -39
  57. package/tests/entities/taskRecord.test.ts +100 -10
  58. package/tests/services/actionProcessors/baseActionProcessor.test.ts +6 -6
  59. package/tests/services/actionProcessors/commandActionProcessor.test.ts +34 -8
  60. package/tests/services/actionProcessors/inlineQueryActionProcessor.test.ts +1 -1
  61. package/tests/services/jsonFileStorage.test.ts +59 -130
  62. package/tests/services/nodeTimeoutScheduler.test.ts +11 -5
@@ -1 +1 @@
1
- {"version":3,"file":"commandAction.d.ts","sourceRoot":"","sources":["../../../src/entities/actions/commandAction.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAGhE,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAEjE,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAG5D,OAAO,EAAE,IAAI,IAAI,SAAS,EAAE,MAAM,YAAY,CAAC;AAO/C,OAAO,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AACzE,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAGnD,qBAAa,aAAa,CACtB,YAAY,SAAS,YAAY,CACnC,YAAW,gBAAgB,CAAC,YAAY,CAAC;IACvC,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAA8C;IACnF,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAyC;IAC1E,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAErC;IACF,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAErC;IACF,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAErC;IAEF,QAAQ,CAAC,GAAG,EAAE,SAAS,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,mBAAmB,yBAAgC;IAC5D,QAAQ,CAAC,gCAAgC,EAAE,MAAM,CAAC;IAElD,QAAQ,CAAC,QAAQ,EAAE,cAAc,EAAE,CAAC;IAEpC,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC,YAAY,CAAC,CAAC;IAC/C,QAAQ,CAAC,SAAS,EAAE,gBAAgB,CAAC,YAAY,CAAC,CAAC;IACnD,QAAQ,CAAC,gBAAgB,EAAE,MAAM,YAAY,CAAC;IAC9C,QAAQ,CAAC,aAAa,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,MAAM,CAAC;IAEpD,OAAO,CAAC,kBAAkB,CAAsB;gBAG5C,OAAO,EAAE,cAAc,GAAG,cAAc,EAAE,EAC1C,OAAO,EAAE,cAAc,CAAC,YAAY,CAAC,EACrC,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,sBAAsB,EACjC,gCAAgC,EAAE,MAAM,EACxC,SAAS,EAAE,gBAAgB,CAAC,YAAY,CAAC,EACzC,gBAAgB,EAAE,MAAM,YAAY,EACpC,aAAa,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,MAAM;IAsBxC,IAAI,CACN,GAAG,EAAE,sBAAsB,CAAC,YAAY,CAAC,GAC1C,OAAO,CAAC,WAAW,EAAE,CAAC;IAmFzB,OAAO,CAAC,uBAAuB;IA6D/B,OAAO,CAAC,YAAY;CAuCvB"}
1
+ {"version":3,"file":"commandAction.d.ts","sourceRoot":"","sources":["../../../src/entities/actions/commandAction.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAGhE,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAEjE,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAG5D,OAAO,EAAE,IAAI,IAAI,SAAS,EAAE,MAAM,YAAY,CAAC;AAO/C,OAAO,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AACzE,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAGnD,qBAAa,aAAa,CACtB,YAAY,SAAS,YAAY,CACnC,YAAW,gBAAgB,CAAC,YAAY,CAAC;IACvC,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAA8C;IACnF,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAyC;IAC1E,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAErC;IACF,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAErC;IACF,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAErC;IAEF,QAAQ,CAAC,GAAG,EAAE,SAAS,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,mBAAmB,yBAAgC;IAC5D,QAAQ,CAAC,gCAAgC,EAAE,MAAM,CAAC;IAElD,QAAQ,CAAC,QAAQ,EAAE,cAAc,EAAE,CAAC;IAEpC,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC,YAAY,CAAC,CAAC;IAC/C,QAAQ,CAAC,SAAS,EAAE,gBAAgB,CAAC,YAAY,CAAC,CAAC;IACnD,QAAQ,CAAC,gBAAgB,EAAE,MAAM,YAAY,CAAC;IAC9C,QAAQ,CAAC,aAAa,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,MAAM,CAAC;IAEpD,OAAO,CAAC,kBAAkB,CAAsB;gBAG5C,OAAO,EAAE,cAAc,GAAG,cAAc,EAAE,EAC1C,OAAO,EAAE,cAAc,CAAC,YAAY,CAAC,EACrC,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,sBAAsB,EACjC,gCAAgC,EAAE,MAAM,EACxC,SAAS,EAAE,gBAAgB,CAAC,YAAY,CAAC,EACzC,gBAAgB,EAAE,MAAM,YAAY,EACpC,aAAa,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,MAAM;IAsBxC,IAAI,CACN,GAAG,EAAE,sBAAsB,CAAC,YAAY,CAAC,GAC1C,OAAO,CAAC,WAAW,EAAE,CAAC;IAqFzB,OAAO,CAAC,uBAAuB;IA6D/B,OAAO,CAAC,YAAY;CAuCvB"}
@@ -66,7 +66,8 @@ export class CommandAction {
66
66
  ctx.eventEmitter.emit(BotEventType.commandActionExecuting, {
67
67
  action: this,
68
68
  ctx,
69
- state
69
+ state,
70
+ traceId: ctx.traceId
70
71
  });
71
72
  ctx.matchResults = matchResults;
72
73
  await this.handler(ctx, state);
@@ -81,7 +82,8 @@ export class CommandAction {
81
82
  ctx.eventEmitter.emit(BotEventType.commandActionExecuted, {
82
83
  action: this,
83
84
  ctx,
84
- state
85
+ state,
86
+ traceId: ctx.traceId
85
87
  });
86
88
  return ctx.responses;
87
89
  }
@@ -1 +1 @@
1
- {"version":3,"file":"inlineQueryAction.d.ts","sourceRoot":"","sources":["../../../src/entities/actions/inlineQueryAction.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,4BAA4B,EAAE,MAAM,8BAA8B,CAAC;AAI5E,qBAAa,iBAAkB,YAAW,OAAO;IAC7C,QAAQ,CAAC,GAAG,EAAE,SAAS,CAAC;IACxB,QAAQ,CAAC,gBAAgB,EAAE,4BAA4B,CAAC,OAAO,CAAC,CAAC;IACjE,QAAQ,CAAC,OAAO,EAAE,kBAAkB,CAAC;IACrC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;gBAGrB,OAAO,EAAE,kBAAkB,EAC3B,IAAI,EAAE,MAAM,EACZ,cAAc,EAAE,4BAA4B,CAAC,OAAO,CAAC,EACrD,OAAO,EAAE,MAAM;IAUb,IAAI,CAAC,GAAG,EAAE,0BAA0B;CAgD7C"}
1
+ {"version":3,"file":"inlineQueryAction.d.ts","sourceRoot":"","sources":["../../../src/entities/actions/inlineQueryAction.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,4BAA4B,EAAE,MAAM,8BAA8B,CAAC;AAI5E,qBAAa,iBAAkB,YAAW,OAAO;IAC7C,QAAQ,CAAC,GAAG,EAAE,SAAS,CAAC;IACxB,QAAQ,CAAC,gBAAgB,EAAE,4BAA4B,CAAC,OAAO,CAAC,CAAC;IACjE,QAAQ,CAAC,OAAO,EAAE,kBAAkB,CAAC;IACrC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;gBAGrB,OAAO,EAAE,kBAAkB,EAC3B,IAAI,EAAE,MAAM,EACZ,cAAc,EAAE,4BAA4B,CAAC,OAAO,CAAC,EACrD,OAAO,EAAE,MAAM;IAUb,IAAI,CAAC,GAAG,EAAE,0BAA0B;CAkD7C"}
@@ -38,12 +38,14 @@ export class InlineQueryAction {
38
38
  ctx.matchResults = matchResults;
39
39
  ctx.eventEmitter.emit(BotEventType.inlineActionExecuting, {
40
40
  action: this,
41
- ctx
41
+ ctx,
42
+ traceId: ctx.traceId
42
43
  });
43
44
  await this.handler(ctx);
44
45
  ctx.eventEmitter.emit(BotEventType.inlineActionExecuted, {
45
46
  action: this,
46
- ctx
47
+ ctx,
48
+ traceId: ctx.traceId
47
49
  });
48
50
  return [
49
51
  new InlineQueryResponse(ctx.queryResults, ctx.queryId, ctx.traceId, ctx.action)
@@ -1 +1 @@
1
- {"version":3,"file":"replyCaptureAction.d.ts","sourceRoot":"","sources":["../../../src/entities/actions/replyCaptureAction.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAG/D,qBAAa,kBAAkB,CAC3B,kBAAkB,SAAS,YAAY,CACzC,YAAW,OAAO;IAChB,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,GAAG,EAAE,SAAS,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,CACd,YAAY,EAAE,oBAAoB,CAAC,kBAAkB,CAAC,KACrD,OAAO,CAAC,IAAI,CAAC,CAAC;IACnB,QAAQ,CAAC,QAAQ,EAAE,cAAc,EAAE,CAAC;IACpC,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAC;gBAGtC,eAAe,EAAE,MAAM,EACvB,YAAY,EAAE,OAAO,EACrB,OAAO,EAAE,CACL,YAAY,EAAE,oBAAoB,CAAC,kBAAkB,CAAC,KACrD,OAAO,CAAC,IAAI,CAAC,EAClB,QAAQ,EAAE,cAAc,EAAE,EAC1B,eAAe,EAAE,eAAe;IAY9B,IAAI,CAAC,GAAG,EAAE,oBAAoB,CAAC,kBAAkB,CAAC;IAyBxD,OAAO,CAAC,uBAAuB;CA4ClC"}
1
+ {"version":3,"file":"replyCaptureAction.d.ts","sourceRoot":"","sources":["../../../src/entities/actions/replyCaptureAction.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAG/D,qBAAa,kBAAkB,CAC3B,kBAAkB,SAAS,YAAY,CACzC,YAAW,OAAO;IAChB,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,GAAG,EAAE,SAAS,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,CACd,YAAY,EAAE,oBAAoB,CAAC,kBAAkB,CAAC,KACrD,OAAO,CAAC,IAAI,CAAC,CAAC;IACnB,QAAQ,CAAC,QAAQ,EAAE,cAAc,EAAE,CAAC;IACpC,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAC;gBAGtC,eAAe,EAAE,MAAM,EACvB,YAAY,EAAE,OAAO,EACrB,OAAO,EAAE,CACL,YAAY,EAAE,oBAAoB,CAAC,kBAAkB,CAAC,KACrD,OAAO,CAAC,IAAI,CAAC,EAClB,QAAQ,EAAE,cAAc,EAAE,EAC1B,eAAe,EAAE,eAAe;IAY9B,IAAI,CAAC,GAAG,EAAE,oBAAoB,CAAC,kBAAkB,CAAC;IA2BxD,OAAO,CAAC,uBAAuB;CA4ClC"}
@@ -24,13 +24,15 @@ export class ReplyCaptureAction {
24
24
  return Noop.NoResponse;
25
25
  ctx.eventEmitter.emit(BotEventType.replyActionExecuting, {
26
26
  action: this,
27
- ctx
27
+ ctx,
28
+ traceId: ctx.traceId
28
29
  });
29
30
  ctx.matchResults = matchResults;
30
31
  await this.handler(ctx);
31
32
  ctx.eventEmitter.emit(BotEventType.replyActionExecuted, {
32
33
  action: this,
33
- ctx
34
+ ctx,
35
+ traceId: ctx.traceId
34
36
  });
35
37
  return ctx.responses;
36
38
  }
@@ -1 +1 @@
1
- {"version":3,"file":"scheduledAction.d.ts","sourceRoot":"","sources":["../../../src/entities/actions/scheduledAction.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,IAAI,SAAS,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAGxD,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAI7D,OAAO,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAG3E,qBAAa,eAAe,CACxB,YAAY,SAAS,YAAY,CACnC,YAAW,gBAAgB,CAAC,YAAY,CAAC;IACvC,MAAM,CAAC,QAAQ,CAAC,KAAK,yBAAgC;IAErD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,GAAG,EAAE,SAAS,CAAC;IAExB,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAA8C;IAClF,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA2C;IAC1E,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAErC;IAEF,QAAQ,CAAC,WAAW,uBAA8B;IAClD,QAAQ,CAAC,gBAAgB,EAAE,MAAM,YAAY,CAAC;IAC9C,QAAQ,CAAC,oBAAoB,EAAE,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;IAC/D,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAC,YAAY,CAAC,CAAC;gBAG7C,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,gBAAgB,CAAC,YAAY,CAAC,EACvC,SAAS,EAAE,wBAAwB,EACnC,oBAAoB,EAAE,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC,EACrD,gBAAgB,EAAE,MAAM,YAAY;IAclC,IAAI,CAAC,GAAG,EAAE,mBAAmB,CAAC,YAAY,CAAC;YA2CnC,cAAc;IA2D5B,OAAO,CAAC,uBAAuB;CAgBlC"}
1
+ {"version":3,"file":"scheduledAction.d.ts","sourceRoot":"","sources":["../../../src/entities/actions/scheduledAction.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,IAAI,SAAS,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAGxD,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAI7D,OAAO,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAG3E,qBAAa,eAAe,CACxB,YAAY,SAAS,YAAY,CACnC,YAAW,gBAAgB,CAAC,YAAY,CAAC;IACvC,MAAM,CAAC,QAAQ,CAAC,KAAK,yBAAgC;IAErD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,GAAG,EAAE,SAAS,CAAC;IAExB,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAA8C;IAClF,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA2C;IAC1E,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAErC;IAEF,QAAQ,CAAC,WAAW,uBAA8B;IAClD,QAAQ,CAAC,gBAAgB,EAAE,MAAM,YAAY,CAAC;IAC9C,QAAQ,CAAC,oBAAoB,EAAE,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;IAC/D,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAC,YAAY,CAAC,CAAC;gBAG7C,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,gBAAgB,CAAC,YAAY,CAAC,EACvC,SAAS,EAAE,wBAAwB,EACnC,oBAAoB,EAAE,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC,EACrD,gBAAgB,EAAE,MAAM,YAAY;IAclC,IAAI,CAAC,GAAG,EAAE,mBAAmB,CAAC,YAAY,CAAC;YA6CnC,cAAc;IA6D5B,OAAO,CAAC,uBAAuB;CAgBlC"}
@@ -36,7 +36,8 @@ export class ScheduledAction {
36
36
  ctx.eventEmitter.emit(BotEventType.scheduledActionExecuting, {
37
37
  action: this,
38
38
  ctx,
39
- state
39
+ state,
40
+ traceId: ctx.traceId
40
41
  });
41
42
  await this.handler(ctx, (key) => this.getCachedValue(key, ctx), state);
42
43
  state.lastExecutedDate = moment().valueOf();
@@ -44,7 +45,8 @@ export class ScheduledAction {
44
45
  ctx.eventEmitter.emit(BotEventType.scheduledActionExecuted, {
45
46
  action: this,
46
47
  ctx,
47
- state
48
+ state,
49
+ traceId: ctx.traceId
48
50
  });
49
51
  return ctx.responses;
50
52
  }
@@ -60,7 +62,8 @@ export class ScheduledAction {
60
62
  ctx.eventEmitter.emit(BotEventType.scheduledActionCacheValueCreating, {
61
63
  action: this,
62
64
  ctx,
63
- key
65
+ key,
66
+ traceId: ctx.traceId
64
67
  });
65
68
  const value = await cachedItemFactory.getValue();
66
69
  this.cachedState.set(key, value);
@@ -71,7 +74,8 @@ export class ScheduledAction {
71
74
  ctx.eventEmitter.emit(BotEventType.scheduledActionCacheValueReturned, {
72
75
  action: this,
73
76
  ctx,
74
- key
77
+ key,
78
+ traceId: ctx.traceId
75
79
  });
76
80
  semaphore.release();
77
81
  }
@@ -1 +1 @@
1
- {"version":3,"file":"botInstance.d.ts","sourceRoot":"","sources":["../../src/entities/botInstance.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEhD,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAEhE,OAAO,EAAgB,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAElE,qBAAa,WAAW;IACpB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAiB;IACzC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAa;IACvC,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAA0B;IAElE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,YAAY,oBAA2B;gBAEpC,OAAO,EAAE;QACjB,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE;YACL,QAAQ,EAAE,aAAa,CAAC,YAAY,CAAC,EAAE,CAAC;YACxC,SAAS,EAAE,eAAe,CAAC,YAAY,CAAC,EAAE,CAAC;YAC3C,aAAa,EAAE,iBAAiB,EAAE,CAAC;SACtC,CAAC;QACF,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC9B,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,QAAQ,CAAC,EAAE;YACP,aAAa,CAAC,EAAE,cAAc,CAAC;YAC/B,SAAS,CAAC,EAAE,UAAU,CAAC;SAC1B,CAAC;KACL;IA4BK,KAAK,CACP,KAAK,EAAE,MAAM,EACb,OAAO,EAAE;QACL,QAAQ,EAAE,aAAa,CAAC,YAAY,CAAC,EAAE,CAAC;QACxC,SAAS,EAAE,eAAe,CAAC,YAAY,CAAC,EAAE,CAAC;QAC3C,aAAa,EAAE,iBAAiB,EAAE,CAAC;KACtC,EACD,eAAe,CAAC,EAAE,OAAO;IAavB,IAAI;CASb"}
1
+ {"version":3,"file":"botInstance.d.ts","sourceRoot":"","sources":["../../src/entities/botInstance.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEhD,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAEhE,OAAO,EAAgB,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAGlE,qBAAa,WAAW;IACpB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAiB;IACzC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAa;IACvC,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAA0B;IAElE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,YAAY,oBAA2B;gBAEpC,OAAO,EAAE;QACjB,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE;YACL,QAAQ,EAAE,aAAa,CAAC,YAAY,CAAC,EAAE,CAAC;YACxC,SAAS,EAAE,eAAe,CAAC,YAAY,CAAC,EAAE,CAAC;YAC3C,aAAa,EAAE,iBAAiB,EAAE,CAAC;SACtC,CAAC;QACF,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC9B,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,QAAQ,CAAC,EAAE;YACP,aAAa,CAAC,EAAE,cAAc,CAAC;YAC/B,SAAS,CAAC,EAAE,UAAU,CAAC;SAC1B,CAAC;KACL;IAuBK,KAAK,CACP,KAAK,EAAE,MAAM,EACb,OAAO,EAAE;QACL,QAAQ,EAAE,aAAa,CAAC,YAAY,CAAC,EAAE,CAAC;QACxC,SAAS,EAAE,eAAe,CAAC,YAAY,CAAC,EAAE,CAAC;QAC3C,aAAa,EAAE,iBAAiB,EAAE,CAAC;KACtC,EACD,eAAe,CAAC,EAAE,OAAO;IAcvB,IAAI;CAUb"}
@@ -2,6 +2,7 @@ import { JsonFileStorage } from '../services/jsonFileStorage';
2
2
  import { NodeTimeoutScheduler } from '../services/nodeTimeoutScheduler';
3
3
  import { ActionProcessingService } from '../services/actionProcessingService';
4
4
  import { BotEventType, TypedEventEmitter } from '../types/events';
5
+ import { createTrace } from '../helpers/traceFactory';
5
6
  export class BotInstance {
6
7
  storage;
7
8
  scheduler;
@@ -16,21 +17,23 @@ export class BotInstance {
16
17
  this.name = options.name;
17
18
  this.scheduler =
18
19
  options.services?.scheduler ??
19
- new NodeTimeoutScheduler(this.eventEmitter);
20
+ new NodeTimeoutScheduler(this.eventEmitter, this.name);
20
21
  this.storage =
21
22
  options.services?.storageClient ??
22
- new JsonFileStorage(options.name, actions, this.eventEmitter, options.storagePath);
23
+ new JsonFileStorage(options.name, actions, options.storagePath);
23
24
  this.actionProcessingService = new ActionProcessingService(this.name, options.chats, this.storage, this.scheduler, this.eventEmitter);
24
25
  }
25
26
  async start(token, actions, scheduledPeriod) {
26
27
  this.eventEmitter.emit(BotEventType.botStarting, {
27
- botName: this.name
28
+ botName: this.name,
29
+ traceId: createTrace(this, this.name, 'startup')
28
30
  });
29
31
  await this.actionProcessingService.initialize(token, actions, scheduledPeriod);
30
32
  }
31
33
  async stop() {
32
34
  this.eventEmitter.emit(BotEventType.botStopping, {
33
- botName: this.name
35
+ botName: this.name,
36
+ traceId: createTrace(this, this.name, 'stop')
34
37
  });
35
38
  this.scheduler.stopAll();
36
39
  await this.storage.close();
@@ -1,8 +1,10 @@
1
1
  import { Milliseconds } from '../types/timeValues';
2
+ import { TraceId } from '../types/trace';
2
3
  export declare class TaskRecord {
3
4
  readonly name: string;
4
5
  readonly taskId: NodeJS.Timeout;
5
6
  readonly interval: Milliseconds;
6
- constructor(name: string, taskId: NodeJS.Timeout, interval: Milliseconds);
7
+ readonly traceId: TraceId;
8
+ constructor(name: string, taskId: NodeJS.Timeout, interval: Milliseconds, traceId: TraceId);
7
9
  }
8
10
  //# sourceMappingURL=taskRecord.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"taskRecord.d.ts","sourceRoot":"","sources":["../../src/entities/taskRecord.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEnD,qBAAa,UAAU;IACnB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC;IAChC,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAC;gBAEpB,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,OAAO,EAAE,QAAQ,EAAE,YAAY;CAK3E"}
1
+ {"version":3,"file":"taskRecord.d.ts","sourceRoot":"","sources":["../../src/entities/taskRecord.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAEzC,qBAAa,UAAU;IAEf,QAAQ,CAAC,IAAI,EAAE,MAAM;IACrB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO;IAC/B,QAAQ,CAAC,QAAQ,EAAE,YAAY;IAC/B,QAAQ,CAAC,OAAO,EAAE,OAAO;gBAHhB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,CAAC,OAAO,EACtB,QAAQ,EAAE,YAAY,EACtB,OAAO,EAAE,OAAO;CAEhC"}
@@ -2,9 +2,11 @@ export class TaskRecord {
2
2
  name;
3
3
  taskId;
4
4
  interval;
5
- constructor(name, taskId, interval) {
5
+ traceId;
6
+ constructor(name, taskId, interval, traceId) {
6
7
  this.name = name;
7
8
  this.taskId = taskId;
8
9
  this.interval = interval;
10
+ this.traceId = traceId;
9
11
  }
10
12
  }
package/dist/index.d.ts CHANGED
@@ -23,5 +23,5 @@ export { ICaptureController } from './types/capture';
23
23
  export { ChatInfo } from './dtos/chatInfo';
24
24
  export { MessageInfo } from './dtos/messageInfo';
25
25
  export { UserInfo } from './dtos/userInfo';
26
- export { BotEventType } from './types/events';
26
+ export { BotEventType, BotEventMap as BotEventArgumentsMap } from './types/events';
27
27
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC;AACvB,cAAc,6CAA6C,CAAC;AAC5D,cAAc,yCAAyC,CAAC;AACxD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,qBAAqB,CAAC;AACpC,cAAc,mCAAmC,CAAC;AAClD,cAAc,sBAAsB,CAAC;AACrC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,gBAAgB,CAAC;AAC/B,cAAc,yBAAyB,CAAC;AACxC,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAC;AACzE,OAAO,EAAE,kBAAkB,EAAE,MAAM,uCAAuC,CAAC;AAC3E,OAAO,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AACrE,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAClE,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,uCAAuC,CAAC;AAC3E,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC;AACvB,cAAc,6CAA6C,CAAC;AAC5D,cAAc,yCAAyC,CAAC;AACxD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,qBAAqB,CAAC;AACpC,cAAc,mCAAmC,CAAC;AAClD,cAAc,sBAAsB,CAAC;AACrC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,gBAAgB,CAAC;AAC/B,cAAc,yBAAyB,CAAC;AACxC,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAC;AACzE,OAAO,EAAE,kBAAkB,EAAE,MAAM,uCAAuC,CAAC;AAC3E,OAAO,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AACrE,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAClE,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,uCAAuC,CAAC;AAC3E,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EACH,YAAY,EACZ,WAAW,IAAI,oBAAoB,EACtC,MAAM,gBAAgB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"actionProcessingService.d.ts","sourceRoot":"","sources":["../../src/services/actionProcessingService.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAuB,MAAM,qBAAqB,CAAC;AACnE,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,OAAO,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAC;AAC1E,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAClE,OAAO,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAC;AAOtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEpD,qBAAa,uBAAuB;IAChC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAoB;IACjD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAiB;IACzC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAyB;IAC1D,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAA2B;IAC9D,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAA6B;IAElE,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IAEjC,OAAO,CAAC,WAAW,CAAe;gBAG9B,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC7B,OAAO,EAAE,cAAc,EACvB,SAAS,EAAE,UAAU,EACrB,YAAY,EAAE,iBAAiB;IA4B7B,UAAU,CACZ,KAAK,EAAE,MAAM,EACb,OAAO,EAAE;QACL,QAAQ,EAAE,aAAa,CAAC,YAAY,CAAC,EAAE,CAAC;QACxC,SAAS,EAAE,eAAe,CAAC,YAAY,CAAC,EAAE,CAAC;QAC3C,aAAa,EAAE,iBAAiB,EAAE,CAAC;KACtC,EACD,eAAe,CAAC,EAAE,OAAO;IAoD7B,IAAI;CAGP"}
1
+ {"version":3,"file":"actionProcessingService.d.ts","sourceRoot":"","sources":["../../src/services/actionProcessingService.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAuB,MAAM,qBAAqB,CAAC;AACnE,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,OAAO,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAC;AAC1E,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAClE,OAAO,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAC;AAOtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEpD,qBAAa,uBAAuB;IAChC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAoB;IACjD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAiB;IACzC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAyB;IAC1D,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAA2B;IAC9D,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAA6B;IAElE,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IAEjC,OAAO,CAAC,WAAW,CAAe;gBAG9B,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC7B,OAAO,EAAE,cAAc,EACvB,SAAS,EAAE,UAAU,EACrB,YAAY,EAAE,iBAAiB;IA4B7B,UAAU,CACZ,KAAK,EAAE,MAAM,EACb,OAAO,EAAE;QACL,QAAQ,EAAE,aAAa,CAAC,YAAY,CAAC,EAAE,CAAC;QACxC,SAAS,EAAE,eAAe,CAAC,YAAY,CAAC,EAAE,CAAC;QAC3C,aAAa,EAAE,iBAAiB,EAAE,CAAC;KACtC,EACD,eAAe,CAAC,EAAE,OAAO;IAqD7B,IAAI;CAGP"}
@@ -23,8 +23,8 @@ export class ActionProcessingService {
23
23
  }
24
24
  async initialize(token, actions, scheduledPeriod) {
25
25
  this.telegramBot = new Telegraf(token);
26
- const api = new TelegramApiService(this.botName, this.telegramBot.telegram, this.storage, this.eventEmitter, (capture, id, chatInfo) => {
27
- this.commandProcessor.captureRegistrationCallback(capture, id, chatInfo);
26
+ const api = new TelegramApiService(this.botName, this.telegramBot.telegram, this.storage, this.eventEmitter, (capture, id, chatInfo, traceId) => {
27
+ this.commandProcessor.captureRegistrationCallback(capture, id, chatInfo, traceId);
28
28
  });
29
29
  const botInfo = await this.telegramBot.telegram.getMe();
30
30
  const commandActions = actions.commands.length > 0 && botInfo.username
@@ -1 +1 @@
1
- {"version":3,"file":"baseProcessor.d.ts","sourceRoot":"","sources":["../../../src/services/actionProcessors/baseProcessor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,EAAgB,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAErE,8BAAsB,mBAAmB;IACrC,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC;IAC3C,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,UAAU,CAAC;IACzC,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,iBAAiB,CAAC;IAEnD,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAEnC,SAAS,CAAC,GAAG,EAAG,kBAAkB,CAAC;gBAG/B,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,cAAc,EACvB,SAAS,EAAE,UAAU,EACrB,YAAY,EAAE,iBAAiB;IASnC,OAAO,CAAC,mBAAmB;IAQ3B,sBAAsB,CAAC,GAAG,EAAE,kBAAkB;IAIxC,aAAa,CACf,OAAO,SAAS,OAAO,EACvB,cAAc,SAAS,mBAAmB,CAAC,OAAO,CAAC,EAEnD,MAAM,EAAE,OAAO,EACf,GAAG,EAAE,cAAc,EACnB,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,cAAc,KAAK,IAAI;CAgBjE"}
1
+ {"version":3,"file":"baseProcessor.d.ts","sourceRoot":"","sources":["../../../src/services/actionProcessors/baseProcessor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,EAAgB,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAErE,8BAAsB,mBAAmB;IACrC,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC;IAC3C,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,UAAU,CAAC;IACzC,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,iBAAiB,CAAC;IAEnD,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAEnC,SAAS,CAAC,GAAG,EAAG,kBAAkB,CAAC;gBAG/B,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,cAAc,EACvB,SAAS,EAAE,UAAU,EACrB,YAAY,EAAE,iBAAiB;IASnC,OAAO,CAAC,mBAAmB;IAW3B,sBAAsB,CAAC,GAAG,EAAE,kBAAkB;IAIxC,aAAa,CACf,OAAO,SAAS,OAAO,EACvB,cAAc,SAAS,mBAAmB,CAAC,OAAO,CAAC,EAEnD,MAAM,EAAE,OAAO,EACf,GAAG,EAAE,cAAc,EACnB,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,cAAc,KAAK,IAAI;CAgBjE"}
@@ -11,11 +11,11 @@ export class BaseActionProcessor {
11
11
  this.eventEmitter = eventEmitter;
12
12
  this.botName = botName;
13
13
  }
14
- defaultErrorHandler(error) {
14
+ defaultErrorHandler(error, ctx) {
15
15
  console.error(error);
16
16
  this.eventEmitter.emit(BotEventType.error, {
17
- message: error.message,
18
- name: error.name
17
+ error,
18
+ traceId: ctx.traceId
19
19
  });
20
20
  }
21
21
  initializeDependencies(api) {
@@ -32,7 +32,7 @@ export class BaseActionProcessor {
32
32
  errorHandler(error, ctx);
33
33
  }
34
34
  else {
35
- this.defaultErrorHandler(error);
35
+ this.defaultErrorHandler(error, ctx);
36
36
  }
37
37
  }
38
38
  }
@@ -5,13 +5,14 @@ import { IReplyCapture } from '../../types/capture';
5
5
  import { ChatInfo } from '../../dtos/chatInfo';
6
6
  import { BaseActionProcessor } from './baseProcessor';
7
7
  import { BotInfo, TelegramBot } from '../../types/externalAliases';
8
+ import { TraceId } from '../../types/trace';
8
9
  export declare class CommandActionProcessor extends BaseActionProcessor {
9
10
  private readonly replyCaptures;
10
11
  private readonly chatHistory;
11
12
  private botInfo;
12
13
  private commands;
13
14
  initialize(api: TelegramApiService, telegram: TelegramBot, commands: CommandAction<IActionState>[], botInfo: BotInfo): void;
14
- captureRegistrationCallback(capture: IReplyCapture, parentMessageId: number, chatInfo: ChatInfo): void;
15
+ captureRegistrationCallback(capture: IReplyCapture, parentMessageId: number, chatInfo: ChatInfo, traceId: TraceId): void;
15
16
  private startMessageProcessing;
16
17
  }
17
18
  //# sourceMappingURL=commandActionProcessor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"commandActionProcessor.d.ts","sourceRoot":"","sources":["../../../src/services/actionProcessors/commandActionProcessor.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AAIrE,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAM/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAGtD,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAKnE,qBAAa,sBAAuB,SAAQ,mBAAmB;IAC3D,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA0C;IACxE,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA2C;IACvE,OAAO,CAAC,OAAO,CAAW;IAE1B,OAAO,CAAC,QAAQ,CAKd;IAEF,UAAU,CACN,GAAG,EAAE,kBAAkB,EACvB,QAAQ,EAAE,WAAW,EACrB,QAAQ,EAAE,aAAa,CAAC,YAAY,CAAC,EAAE,EACvC,OAAO,EAAE,OAAO;IA+CpB,2BAA2B,CACvB,OAAO,EAAE,aAAa,EACtB,eAAe,EAAE,MAAM,EACvB,QAAQ,EAAE,QAAQ;IA4BtB,OAAO,CAAC,sBAAsB;CA6FjC"}
1
+ {"version":3,"file":"commandActionProcessor.d.ts","sourceRoot":"","sources":["../../../src/services/actionProcessors/commandActionProcessor.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AAIrE,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAM/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAGtD,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAEnE,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAI5C,qBAAa,sBAAuB,SAAQ,mBAAmB;IAC3D,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA0C;IACxE,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA2C;IACvE,OAAO,CAAC,OAAO,CAAW;IAE1B,OAAO,CAAC,QAAQ,CAKd;IAEF,UAAU,CACN,GAAG,EAAE,kBAAkB,EACvB,QAAQ,EAAE,WAAW,EACrB,QAAQ,EAAE,aAAa,CAAC,YAAY,CAAC,EAAE,EACvC,OAAO,EAAE,OAAO;IAgDpB,2BAA2B,CACvB,OAAO,EAAE,aAAa,EACtB,eAAe,EAAE,MAAM,EACvB,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,OAAO;IA8BpB,OAAO,CAAC,sBAAsB;CAgGjC"}
@@ -37,17 +37,19 @@ export class CommandActionProcessor extends BaseActionProcessor {
37
37
  const internalMessage = new IncomingMessage(message, this.botName, getOrSetIfNotExists(this.chatHistory, message.chat.id, []));
38
38
  this.eventEmitter.emit(BotEventType.messageRecieved, {
39
39
  botInfo: this.botInfo,
40
- message: internalMessage
40
+ message: internalMessage,
41
+ traceId: internalMessage.traceId
41
42
  });
42
43
  this.startMessageProcessing(internalMessage);
43
44
  });
44
45
  }
45
46
  }
46
- captureRegistrationCallback(capture, parentMessageId, chatInfo) {
47
+ captureRegistrationCallback(capture, parentMessageId, chatInfo, traceId) {
47
48
  const replyAction = new ReplyCaptureAction(parentMessageId, capture.action, capture.handler, capture.trigger, capture.abortController);
48
49
  this.eventEmitter.emit(BotEventType.commandActionCaptureStarted, {
49
50
  parentMessageId,
50
- chatInfo
51
+ chatInfo,
52
+ traceId
51
53
  });
52
54
  this.replyCaptures.push(replyAction);
53
55
  capture.abortController.signal.addEventListener('abort', () => {
@@ -55,14 +57,16 @@ export class CommandActionProcessor extends BaseActionProcessor {
55
57
  this.replyCaptures.splice(index, 1);
56
58
  this.eventEmitter.emit(BotEventType.commandActionCaptureAborted, {
57
59
  parentMessageId,
58
- chatInfo
60
+ chatInfo,
61
+ traceId
59
62
  });
60
63
  });
61
64
  }
62
65
  startMessageProcessing(msg) {
63
66
  this.eventEmitter.emit(BotEventType.messageProcessingStarted, {
64
67
  botInfo: this.botInfo,
65
- message: msg
68
+ message: msg,
69
+ traceId: msg.traceId
66
70
  });
67
71
  const chatHistoryArray = getOrSetIfNotExists(this.chatHistory, msg.chatInfo.id, []);
68
72
  while (chatHistoryArray.length > MESSAGE_HISTORY_LENGTH_LIMIT)
@@ -77,7 +81,8 @@ export class CommandActionProcessor extends BaseActionProcessor {
77
81
  this.eventEmitter.emit(BotEventType.beforeActionsExecuting, {
78
82
  botInfo: this.botInfo,
79
83
  message: msg,
80
- commands: commandsToCheck
84
+ commands: commandsToCheck,
85
+ traceId: msg.traceId
81
86
  });
82
87
  const promises = [...commandsToCheck].map((command) => {
83
88
  const ctx = new MessageContextInternal(this.storage, this.scheduler, this.eventEmitter, command, msg, this.botName, this.botInfo);
@@ -103,7 +108,8 @@ export class CommandActionProcessor extends BaseActionProcessor {
103
108
  void Promise.allSettled(promises).then(() => {
104
109
  this.eventEmitter.emit(BotEventType.messageProcessingFinished, {
105
110
  botInfo: this.botInfo,
106
- message: msg
111
+ message: msg,
112
+ traceId: msg.traceId
107
113
  });
108
114
  });
109
115
  }
@@ -1 +1 @@
1
- {"version":3,"file":"inlineQueryActionProcessor.d.ts","sourceRoot":"","sources":["../../../src/services/actionProcessors/inlineQueryActionProcessor.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,0CAA0C,CAAC;AAI7E,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAEtD,qBAAa,0BAA2B,SAAQ,mBAAmB;IAC/D,OAAO,CAAC,aAAa,CAAuB;IAC5C,yDAAyD;IACzD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAI3B;IAEF,UAAU,CACN,GAAG,EAAE,kBAAkB,EACvB,QAAQ,EAAE,WAAW,EACrB,aAAa,EAAE,iBAAiB,EAAE,EAClC,MAAM,EAAE,YAAY;CAoI3B"}
1
+ {"version":3,"file":"inlineQueryActionProcessor.d.ts","sourceRoot":"","sources":["../../../src/services/actionProcessors/inlineQueryActionProcessor.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,0CAA0C,CAAC;AAI7E,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAEtD,qBAAa,0BAA2B,SAAQ,mBAAmB;IAC/D,OAAO,CAAC,aAAa,CAAuB;IAC5C,yDAAyD;IACzD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAI3B;IAEF,UAAU,CACN,GAAG,EAAE,kBAAkB,EACvB,QAAQ,EAAE,WAAW,EACrB,aAAa,EAAE,iBAAiB,EAAE,EAClC,MAAM,EAAE,YAAY;CA4I3B"}
@@ -17,13 +17,15 @@ export class InlineQueryActionProcessor extends BaseActionProcessor {
17
17
  telegram.on('inline_query', ({ inlineQuery }) => {
18
18
  const query = new IncomingInlineQuery(inlineQuery.id, inlineQuery.query, inlineQuery.from.id, createTrace('InlineQuery', this.botName, inlineQuery.id));
19
19
  this.eventEmitter.emit(BotEventType.inlineQueryRecieved, {
20
- query
20
+ query,
21
+ traceId: query.traceId
21
22
  });
22
23
  const queryBeingProcessed = queriesInProcessing.get(query.userId);
23
24
  if (queryBeingProcessed) {
24
25
  this.eventEmitter.emit(BotEventType.inlineProcessingAborting, {
25
26
  newQuery: query,
26
- abortedQuery: queryBeingProcessed
27
+ abortedQuery: queryBeingProcessed,
28
+ traceId: query.traceId
27
29
  });
28
30
  queryBeingProcessed.abortController.abort();
29
31
  queriesInProcessing.delete(query.userId);
@@ -32,11 +34,14 @@ export class InlineQueryActionProcessor extends BaseActionProcessor {
32
34
  pendingInlineQueries.push(query);
33
35
  });
34
36
  this.scheduler.createTask('InlineQueryProcessing', () => {
35
- this.eventEmitter.emit(BotEventType.inlineProcessingStarted, this.botName);
36
37
  const queriesToProcess = [...pendingInlineQueries];
37
38
  pendingInlineQueries = [];
38
39
  const promises = [];
39
40
  for (const inlineQuery of queriesToProcess) {
41
+ this.eventEmitter.emit(BotEventType.inlineProcessingStarted, {
42
+ botName: this.botName,
43
+ traceId: inlineQuery.traceId
44
+ });
40
45
  queriesInProcessing.set(inlineQuery.userId, inlineQuery);
41
46
  const actionPromises = this.inlineQueries.map((inlineQueryAction) => {
42
47
  const ctx = new InlineQueryContextInternal(this.storage, this.scheduler, this.eventEmitter, inlineQueryAction, inlineQuery, this.fakeChatInfo, this.botName);
@@ -44,13 +49,14 @@ export class InlineQueryActionProcessor extends BaseActionProcessor {
44
49
  const executePromise = this.executeAction(inlineQueryAction, proxy, (error, _) => {
45
50
  if (error.name == 'AbortError') {
46
51
  this.eventEmitter.emit(BotEventType.inlineProcessingAborted, {
47
- abortedQuery: inlineQuery
52
+ abortedQuery: inlineQuery,
53
+ traceId: inlineQuery.traceId
48
54
  });
49
55
  }
50
56
  else {
51
57
  this.eventEmitter.emit(BotEventType.error, {
52
- message: error.message,
53
- name: error.name
58
+ error,
59
+ traceId: inlineQuery.traceId
54
60
  });
55
61
  }
56
62
  });
@@ -61,12 +67,14 @@ export class InlineQueryActionProcessor extends BaseActionProcessor {
61
67
  });
62
68
  const queryPromise = Promise.allSettled(actionPromises).then(() => {
63
69
  queriesInProcessing.delete(inlineQuery.userId);
70
+ this.eventEmitter.emit(BotEventType.inlineProcessingFinished, {
71
+ botName: this.botName,
72
+ traceId: inlineQuery.traceId
73
+ });
64
74
  });
65
75
  promises.push(queryPromise);
66
76
  }
67
- void Promise.allSettled(promises).then(() => {
68
- this.eventEmitter.emit(BotEventType.inlineProcessingFinished, this.botName);
69
- });
77
+ void Promise.allSettled(promises);
70
78
  }, period, false, this.botName);
71
79
  }
72
80
  }
@@ -8,6 +8,7 @@ import { BaseActionProcessor } from './baseProcessor';
8
8
  import { TypedEventEmitter } from '../../types/events';
9
9
  export declare class ScheduledActionProcessor extends BaseActionProcessor {
10
10
  private readonly chats;
11
+ private readonly taskTrace;
11
12
  private scheduled;
12
13
  constructor(botName: string, chats: Record<string, number>, storage: IStorageClient, scheduler: IScheduler, eventEmitter: TypedEventEmitter);
13
14
  initialize(api: TelegramApiService, scheduled: ScheduledAction<IActionState>[], period: Seconds): void;
@@ -1 +1 @@
1
- {"version":3,"file":"scheduledActionProcessor.d.ts","sourceRoot":"","sources":["../../../src/services/actionProcessors/scheduledActionProcessor.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,wCAAwC,CAAC;AAIzE,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,OAAO,EAAgB,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAgB,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAErE,qBAAa,wBAAyB,SAAQ,mBAAmB;IAC7D,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAyB;IAE/C,OAAO,CAAC,SAAS,CAAmC;gBAGhD,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC7B,OAAO,EAAE,cAAc,EACvB,SAAS,EAAE,UAAU,EACrB,YAAY,EAAE,iBAAiB;IAMnC,UAAU,CACN,GAAG,EAAE,kBAAkB,EACvB,SAAS,EAAE,eAAe,CAAC,YAAY,CAAC,EAAE,EAC1C,MAAM,EAAE,OAAO;IAkDnB,OAAO,CAAC,YAAY;CA+CvB"}
1
+ {"version":3,"file":"scheduledActionProcessor.d.ts","sourceRoot":"","sources":["../../../src/services/actionProcessors/scheduledActionProcessor.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,wCAAwC,CAAC;AAIzE,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,OAAO,EAAgB,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAgB,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAErE,qBAAa,wBAAyB,SAAQ,mBAAmB;IAC7D,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAyB;IAC/C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAIxB;IAEF,OAAO,CAAC,SAAS,CAAmC;gBAGhD,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC7B,OAAO,EAAE,cAAc,EACvB,SAAS,EAAE,UAAU,EACrB,YAAY,EAAE,iBAAiB;IAMnC,UAAU,CACN,GAAG,EAAE,kBAAkB,EACvB,SAAS,EAAE,eAAe,CAAC,YAAY,CAAC,EAAE,EAC1C,MAAM,EAAE,OAAO;IAkDnB,OAAO,CAAC,YAAY;CA+CvB"}
@@ -7,6 +7,7 @@ import { BaseActionProcessor } from './baseProcessor';
7
7
  import { BotEventType } from '../../types/events';
8
8
  export class ScheduledActionProcessor extends BaseActionProcessor {
9
9
  chats;
10
+ taskTrace = createTrace(this, this.botName, 'ScheduledActionsTaskRun');
10
11
  scheduled;
11
12
  constructor(botName, chats, storage, scheduler, eventEmitter) {
12
13
  super(botName, storage, scheduler, eventEmitter);
@@ -37,7 +38,10 @@ export class ScheduledActionProcessor extends BaseActionProcessor {
37
38
  }
38
39
  }
39
40
  runScheduled() {
40
- this.eventEmitter.emit(BotEventType.scheduledProcessingStarted, this.botName);
41
+ this.eventEmitter.emit(BotEventType.scheduledProcessingStarted, {
42
+ botName: this.botName,
43
+ traceId: this.taskTrace
44
+ });
41
45
  const promises = Object.entries(this.chats).flatMap(([chatName, chatId]) => {
42
46
  const chatInfo = new ChatInfo(chatId, chatName, []);
43
47
  return this.scheduled.map((scheduledAction) => {
@@ -51,7 +55,10 @@ export class ScheduledActionProcessor extends BaseActionProcessor {
51
55
  });
52
56
  });
53
57
  void Promise.allSettled(promises).then(() => {
54
- this.eventEmitter.emit(BotEventType.scheduledProcessingStarted, this.botName);
58
+ this.eventEmitter.emit(BotEventType.scheduledProcessingStarted, {
59
+ botName: this.botName,
60
+ traceId: this.taskTrace
61
+ });
55
62
  });
56
63
  }
57
64
  }
@@ -1,12 +1,10 @@
1
1
  import { IStorageClient } from '../types/storage';
2
2
  import { IActionState } from '../types/actionState';
3
3
  import { IActionWithState } from '../types/action';
4
- import { TypedEventEmitter } from '../types/events';
5
4
  export declare class JsonFileStorage implements IStorageClient {
6
- private readonly eventEmitter;
7
5
  private readonly locks;
8
6
  private readonly data;
9
- constructor(botName: string, actions: IActionWithState<IActionState>[], eventEmitter: TypedEventEmitter, path?: string);
7
+ constructor(botName: string, actions: IActionWithState<IActionState>[], path?: string);
10
8
  private lock;
11
9
  load<TActionState extends IActionState>(action: IActionWithState<TActionState>): Record<number, TActionState>;
12
10
  getActionState<TActionState extends IActionState>(action: IActionWithState<TActionState>, chatId: number): TActionState;
@@ -1 +1 @@
1
- {"version":3,"file":"jsonFileStorage.d.ts","sourceRoot":"","sources":["../../src/services/jsonFileStorage.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAa,MAAM,iBAAiB,CAAC;AAE9D,OAAO,EAAgB,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AA6GlE,qBAAa,eAAgB,YAAW,cAAc;IAClD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAoB;IACjD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAmC;IAEzD,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAmB;gBAGpC,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,gBAAgB,CAAC,YAAY,CAAC,EAAE,EACzC,YAAY,EAAE,iBAAiB,EAC/B,IAAI,CAAC,EAAE,MAAM;YAgBH,IAAI;IAelB,IAAI,CAAC,YAAY,SAAS,YAAY,EAClC,MAAM,EAAE,gBAAgB,CAAC,YAAY,CAAC;IAK1C,cAAc,CAAC,YAAY,SAAS,YAAY,EAC5C,MAAM,EAAE,gBAAgB,CAAC,YAAY,CAAC,EACtC,MAAM,EAAE,MAAM;IAkBZ,yBAAyB,CAAC,YAAY,SAAS,YAAY,EAC7D,MAAM,EAAE,gBAAgB,CAAC,YAAY,CAAC,EACtC,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,YAAY;IAWjB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAMtB,cAAc,CAAC,YAAY,SAAS,YAAY,EAClD,MAAM,EAAE,gBAAgB,CAAC,YAAY,CAAC,EACtC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;CAa5D"}
1
+ {"version":3,"file":"jsonFileStorage.d.ts","sourceRoot":"","sources":["../../src/services/jsonFileStorage.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAa,MAAM,iBAAiB,CAAC;AA+F9D,qBAAa,eAAgB,YAAW,cAAc;IAClD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAmC;IAEzD,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAmB;gBAGpC,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,gBAAgB,CAAC,YAAY,CAAC,EAAE,EACzC,IAAI,CAAC,EAAE,MAAM;YASH,IAAI;IAYlB,IAAI,CAAC,YAAY,SAAS,YAAY,EAClC,MAAM,EAAE,gBAAgB,CAAC,YAAY,CAAC;IAK1C,cAAc,CAAC,YAAY,SAAS,YAAY,EAC5C,MAAM,EAAE,gBAAgB,CAAC,YAAY,CAAC,EACtC,MAAM,EAAE,MAAM;IAOZ,yBAAyB,CAAC,YAAY,SAAS,YAAY,EAC7D,MAAM,EAAE,gBAAgB,CAAC,YAAY,CAAC,EACtC,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,YAAY;IAWjB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAMtB,cAAc,CAAC,YAAY,SAAS,YAAY,EAClD,MAAM,EAAE,gBAAgB,CAAC,YAAY,CAAC,EACtC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;CAa5D"}
@@ -2,18 +2,15 @@ import { existsSync, mkdirSync, readFileSync } from 'fs';
2
2
  import { writeFile } from 'fs/promises';
3
3
  import { Sema as Semaphore } from 'async-sema';
4
4
  import { getOrSetIfNotExists } from '../helpers/mapUtils';
5
- import { BotEventType } from '../types/events';
6
5
  function buildPath(storagePath, botName, actionKey) {
7
6
  return `${storagePath}/${botName}/${actionKey.replaceAll(':', '/')}.json`;
8
7
  }
9
8
  class CachedDataSource {
10
- eventEmitter;
11
9
  cache;
12
10
  filePaths = new Map();
13
11
  botName;
14
12
  storagePath;
15
- constructor(botName, actions, eventEmitter, path) {
16
- this.eventEmitter = eventEmitter;
13
+ constructor(botName, actions, path) {
17
14
  this.cache = new Map();
18
15
  this.botName = botName;
19
16
  this.storagePath = path ?? 'storage';
@@ -28,9 +25,6 @@ class CachedDataSource {
28
25
  }
29
26
  tryGetFromCache(key) {
30
27
  const cachedValue = this.cache.get(key);
31
- if (cachedValue == undefined) {
32
- this.eventEmitter.emit(BotEventType.storageCacheMiss, key);
33
- }
34
28
  return cachedValue;
35
29
  }
36
30
  loadFromFile(key) {
@@ -53,59 +47,36 @@ class CachedDataSource {
53
47
  this.loadFromFile(action.key));
54
48
  }
55
49
  async save(data, action) {
56
- this.eventEmitter.emit(BotEventType.storageStateSaving, {
57
- data,
58
- key: action.key
59
- });
60
50
  this.cache.set(action.key, data);
61
51
  const targetPath = getOrSetIfNotExists(this.filePaths, action.key, buildPath(this.storagePath, this.botName, action.key));
62
52
  await writeFile(targetPath, JSON.stringify(data), { flag: 'w+' });
63
- this.eventEmitter.emit(BotEventType.storageStateSaved, {
64
- data,
65
- key: action.key
66
- });
67
53
  }
68
54
  }
69
55
  export class JsonFileStorage {
70
- eventEmitter;
71
56
  locks = new Map();
72
57
  data;
73
- constructor(botName, actions, eventEmitter, path) {
74
- this.eventEmitter = eventEmitter;
75
- this.data = new CachedDataSource(botName, actions, eventEmitter, path ?? 'storage');
58
+ constructor(botName, actions, path) {
59
+ this.data = new CachedDataSource(botName, actions, path ?? 'storage');
76
60
  for (const action of actions) {
77
61
  this.locks.set(action.key, new Semaphore(1));
78
62
  }
79
63
  }
80
64
  async lock(key, action) {
81
65
  const lock = getOrSetIfNotExists(this.locks, key, new Semaphore(1));
82
- this.eventEmitter.emit(BotEventType.storageLockAcquiring, key);
83
66
  await lock.acquire();
84
- this.eventEmitter.emit(BotEventType.storageLockAcquired, key);
85
67
  try {
86
68
  return await action();
87
69
  }
88
70
  finally {
89
71
  lock.release();
90
- this.eventEmitter.emit(BotEventType.storageLockReleased, key);
91
72
  }
92
73
  }
93
74
  load(action) {
94
75
  return this.data.load(action);
95
76
  }
96
77
  getActionState(action, chatId) {
97
- this.eventEmitter.emit(BotEventType.storageStateLoading, {
98
- action,
99
- chatId
100
- });
101
78
  const value = this.data.load(action);
102
- const result = value[chatId] ?? action.stateConstructor();
103
- this.eventEmitter.emit(BotEventType.storageStateLoaded, {
104
- action,
105
- chatId,
106
- state: result
107
- });
108
- return result;
79
+ return value[chatId] ?? action.stateConstructor();
109
80
  }
110
81
  async saveActionExecutionResult(action, chatId, state) {
111
82
  await this.lock(action.key, async () => {
@@ -4,8 +4,9 @@ import { IScheduler } from '../types/scheduler';
4
4
  import { Milliseconds } from '../types/timeValues';
5
5
  export declare class NodeTimeoutScheduler implements IScheduler {
6
6
  readonly eventEmitter: TypedEventEmitter;
7
+ readonly botName: string;
7
8
  readonly activeTasks: TaskRecord[];
8
- constructor(eventEmitter: TypedEventEmitter);
9
+ constructor(eventEmitter: TypedEventEmitter, botName: string);
9
10
  stopAll(): void;
10
11
  createTask(name: string, action: () => unknown, interval: Milliseconds, executeRightAway: boolean, ownerName: string): void;
11
12
  createOnetimeTask(name: string, action: () => unknown, delay: Milliseconds, ownerName: string): void;