@hotmeshio/hotmesh 0.3.8 → 0.3.9

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 (154) hide show
  1. package/README.md +2 -17
  2. package/build/index.d.ts +4 -2
  3. package/build/index.js +6 -3
  4. package/build/modules/key.js +1 -1
  5. package/build/modules/utils.d.ts +12 -4
  6. package/build/modules/utils.js +1 -1
  7. package/build/package.json +14 -7
  8. package/build/services/activities/activity.d.ts +9 -9
  9. package/build/services/activities/activity.js +1 -1
  10. package/build/services/activities/await.d.ts +2 -2
  11. package/build/services/activities/await.js +1 -1
  12. package/build/services/activities/cycle.d.ts +2 -2
  13. package/build/services/activities/cycle.js +1 -1
  14. package/build/services/activities/hook.d.ts +2 -2
  15. package/build/services/activities/hook.js +1 -1
  16. package/build/services/activities/index.js +1 -1
  17. package/build/services/activities/interrupt.js +1 -1
  18. package/build/services/activities/signal.js +1 -1
  19. package/build/services/activities/trigger.d.ts +3 -3
  20. package/build/services/activities/trigger.js +1 -1
  21. package/build/services/activities/worker.d.ts +2 -2
  22. package/build/services/activities/worker.js +1 -1
  23. package/build/services/collator/index.d.ts +9 -9
  24. package/build/services/collator/index.js +1 -1
  25. package/build/services/compiler/deployer.d.ts +4 -4
  26. package/build/services/compiler/deployer.js +1 -1
  27. package/build/services/compiler/index.d.ts +4 -4
  28. package/build/services/compiler/index.js +1 -1
  29. package/build/services/compiler/validator.d.ts +3 -3
  30. package/build/services/compiler/validator.js +1 -1
  31. package/build/services/connector/factory.d.ts +6 -0
  32. package/build/services/connector/factory.js +56 -0
  33. package/build/services/connector/index.d.ts +13 -4
  34. package/build/services/connector/index.js +30 -23
  35. package/build/services/connector/providers/ioredis.d.ts +9 -0
  36. package/build/services/connector/providers/ioredis.js +26 -0
  37. package/build/services/connector/providers/nats.d.ts +9 -0
  38. package/build/services/connector/providers/nats.js +26 -0
  39. package/build/services/connector/providers/postgres.d.ts +9 -0
  40. package/build/services/connector/providers/postgres.js +39 -0
  41. package/build/services/connector/providers/redis.d.ts +9 -0
  42. package/build/services/connector/providers/redis.js +38 -0
  43. package/build/services/engine/index.d.ts +12 -12
  44. package/build/services/engine/index.js +1 -1
  45. package/build/services/exporter/index.d.ts +3 -3
  46. package/build/services/exporter/index.js +1 -1
  47. package/build/services/hotmesh/index.js +4 -4
  48. package/build/services/mapper/index.js +1 -1
  49. package/build/services/meshcall/index.d.ts +5 -4
  50. package/build/services/meshcall/index.js +31 -14
  51. package/build/services/meshdata/index.d.ts +6 -6
  52. package/build/services/meshdata/index.js +7 -15
  53. package/build/services/meshflow/connection.d.ts +3 -2
  54. package/build/services/meshflow/exporter.d.ts +3 -3
  55. package/build/services/meshflow/exporter.js +1 -1
  56. package/build/services/meshflow/search.js +12 -4
  57. package/build/services/meshflow/worker.js +7 -7
  58. package/build/services/meshos/index.d.ts +1 -4
  59. package/build/services/meshos/index.js +11 -44
  60. package/build/services/pipe/functions/array.js +1 -1
  61. package/build/services/pipe/functions/bitwise.js +1 -1
  62. package/build/services/pipe/functions/conditional.js +1 -1
  63. package/build/services/pipe/functions/cron.d.ts +2 -0
  64. package/build/services/pipe/functions/cron.js +1 -1
  65. package/build/services/pipe/functions/date.js +1 -1
  66. package/build/services/pipe/functions/index.js +1 -1
  67. package/build/services/pipe/functions/json.js +1 -1
  68. package/build/services/pipe/functions/logical.js +1 -1
  69. package/build/services/pipe/functions/math.js +1 -1
  70. package/build/services/pipe/functions/number.js +1 -1
  71. package/build/services/pipe/functions/object.js +1 -1
  72. package/build/services/pipe/functions/string.js +1 -1
  73. package/build/services/pipe/functions/symbol.js +1 -1
  74. package/build/services/pipe/functions/unary.js +1 -1
  75. package/build/services/pipe/index.js +1 -1
  76. package/build/services/quorum/index.d.ts +5 -5
  77. package/build/services/quorum/index.js +1 -1
  78. package/build/services/reporter/index.d.ts +2 -2
  79. package/build/services/reporter/index.js +1 -1
  80. package/build/services/router/index.d.ts +8 -13
  81. package/build/services/router/index.js +1 -1
  82. package/build/services/search/factory.d.ts +2 -2
  83. package/build/services/search/factory.js +1 -1
  84. package/build/services/search/index.d.ts +5 -4
  85. package/build/services/search/providers/redis/ioredis.js +1 -1
  86. package/build/services/search/providers/redis/redis.js +1 -1
  87. package/build/services/serializer/index.js +1 -1
  88. package/build/services/store/factory.d.ts +3 -3
  89. package/build/services/store/factory.js +1 -1
  90. package/build/services/store/index.d.ts +18 -17
  91. package/build/services/store/providers/redis/_base.d.ts +13 -15
  92. package/build/services/store/providers/redis/_base.js +1 -1
  93. package/build/services/store/providers/redis/ioredis.d.ts +2 -2
  94. package/build/services/store/providers/redis/ioredis.js +1 -1
  95. package/build/services/store/providers/redis/redis.d.ts +2 -2
  96. package/build/services/store/providers/redis/redis.js +1 -1
  97. package/build/services/store/providers/store-initializable.js +1 -1
  98. package/build/services/stream/factory.d.ts +3 -3
  99. package/build/services/stream/factory.js +16 -4
  100. package/build/services/stream/index.d.ts +57 -18
  101. package/build/services/stream/index.js +2 -1
  102. package/build/services/stream/providers/nats/nats.d.ts +59 -0
  103. package/build/services/stream/providers/nats/nats.js +1 -0
  104. package/build/services/stream/providers/postgres/_deploy.d.ts +2 -1
  105. package/build/services/stream/providers/postgres/_deploy.js +1 -1
  106. package/build/services/stream/providers/postgres/postgres.d.ts +0 -0
  107. package/build/services/stream/providers/postgres/postgres.js +0 -0
  108. package/build/services/stream/providers/redis/ioredis.d.ts +53 -14
  109. package/build/services/stream/providers/redis/ioredis.js +1 -1
  110. package/build/services/stream/providers/redis/redis.d.ts +54 -15
  111. package/build/services/stream/providers/redis/redis.js +1 -1
  112. package/build/services/stream/providers/stream-initializable.d.ts +1 -2
  113. package/build/services/stream/providers/stream-initializable.js +1 -1
  114. package/build/services/sub/factory.d.ts +2 -2
  115. package/build/services/sub/factory.js +1 -1
  116. package/build/services/sub/index.d.ts +6 -5
  117. package/build/services/sub/providers/redis/ioredis.d.ts +1 -1
  118. package/build/services/sub/providers/redis/ioredis.js +1 -1
  119. package/build/services/sub/providers/redis/redis.d.ts +4 -4
  120. package/build/services/sub/providers/redis/redis.js +1 -1
  121. package/build/services/task/index.d.ts +5 -5
  122. package/build/services/task/index.js +1 -1
  123. package/build/services/telemetry/index.js +1 -1
  124. package/build/services/worker/index.d.ts +9 -9
  125. package/build/services/worker/index.js +1 -1
  126. package/build/types/hotmesh.d.ts +26 -14
  127. package/build/types/index.d.ts +6 -5
  128. package/build/types/manifest.d.ts +1 -9
  129. package/build/types/meshcall.d.ts +12 -7
  130. package/build/types/meshflow.d.ts +3 -7
  131. package/build/types/nats.d.ts +150 -0
  132. package/build/types/nats.js +2 -0
  133. package/build/types/postgres.d.ts +48 -0
  134. package/build/types/postgres.js +2 -0
  135. package/build/types/provider.d.ts +26 -0
  136. package/build/types/provider.js +2 -0
  137. package/build/types/redis.d.ts +33 -15
  138. package/build/types/stream.d.ts +65 -1
  139. package/index.ts +8 -5
  140. package/package.json +14 -7
  141. package/types/hotmesh.ts +139 -22
  142. package/types/index.ts +26 -17
  143. package/types/manifest.ts +1 -10
  144. package/types/meshcall.ts +38 -13
  145. package/types/meshflow.ts +2 -7
  146. package/types/nats.ts +231 -0
  147. package/types/postgres.ts +54 -0
  148. package/types/provider.ts +71 -0
  149. package/types/redis.ts +63 -18
  150. package/types/stream.ts +85 -1
  151. package/build/services/connector/clients/ioredis.d.ts +0 -13
  152. package/build/services/connector/clients/ioredis.js +0 -48
  153. package/build/services/connector/clients/redis.d.ts +0 -13
  154. package/build/services/connector/clients/redis.js +0 -60
@@ -1,21 +1,60 @@
1
- import { KeyStoreParams, KeyType } from '../../../../modules/key';
2
1
  import { ILogger } from '../../../logger';
3
2
  import { StreamService } from '../../index';
4
- import { IORedisClientType as RedisClientType, IORedisMultiType as RedisMultiType } from '../../../../types/redis';
5
- import { ReclaimedMessageType } from '../../../../types/stream';
6
- declare class IORedisStreamService extends StreamService<RedisClientType, RedisMultiType> {
7
- constructor(streamClient: RedisClientType, storeClient: RedisClientType);
3
+ import { IORedisClientType, IORedisMultiType } from '../../../../types/redis';
4
+ import { PublishMessageConfig, StreamConfig, StreamMessage, StreamStats } from '../../../../types/stream';
5
+ import { KeyStoreParams, StringAnyType } from '../../../../types';
6
+ import { KeyType } from '../../../../modules/key';
7
+ import { ProviderTransaction } from '../../../../types/provider';
8
+ declare class IORedisStreamService extends StreamService<IORedisClientType, IORedisMultiType> {
9
+ constructor(streamClient: IORedisClientType, storeClient: IORedisClientType, config?: StreamConfig);
8
10
  init(namespace: string, appId: string, logger: ILogger): Promise<void>;
9
- getMulti(): RedisMultiType;
10
11
  mintKey(type: KeyType, params: KeyStoreParams): string;
11
- consumeMessages(groupName: string, consumerName: string, blockTime: number | string, streamName: string): Promise<string[][][] | null>;
12
- getPendingMessages(key: string, group: string, count?: number, consumer?: string): Promise<[string, string, number, [string, number][]][] | [string, string, number, number] | unknown[]>;
13
- claimMessage(key: string, group: string, consumer: string, minIdleTime: number, id: string, ...args: string[]): Promise<ReclaimedMessageType>;
14
- ackAndDelete(key: string, group: string, id: string): Promise<number | RedisMultiType>;
15
- acknowledgeMessage(key: string, group: string, id: string, multi?: RedisMultiType): Promise<number | RedisMultiType>;
16
- deleteMessage(key: string, id: string, multi?: RedisMultiType): Promise<number | RedisMultiType>;
12
+ transact(): ProviderTransaction;
13
+ createStream(streamName: string): Promise<boolean>;
14
+ deleteStream(streamName: string): Promise<boolean>;
17
15
  createConsumerGroup(key: string, groupName: string): Promise<boolean>;
18
- publishMessage(key: string, id: string, messageId: string, messageValue: string, multi?: RedisMultiType): Promise<string | RedisMultiType>;
19
- getMessageDepth(key: string, multi?: RedisMultiType): Promise<number | RedisMultiType>;
16
+ deleteConsumerGroup(streamName: string, groupName: string): Promise<boolean>;
17
+ publishMessages(streamName: string, messages: string[], options?: PublishMessageConfig): Promise<string[]>;
18
+ consumeMessages(streamName: string, groupName: string, consumerName: string, options?: {
19
+ batchSize?: number;
20
+ blockTimeout?: number;
21
+ }): Promise<StreamMessage[]>;
22
+ ackAndDelete(stream: string, group: string, ids: string[]): Promise<number>;
23
+ acknowledgeMessages(stream: string, group: string, ids: string[], options?: StringAnyType): Promise<number | IORedisMultiType>;
24
+ deleteMessages(stream: string, group: string, ids: string[], options?: StringAnyType): Promise<number | IORedisMultiType>;
25
+ getPendingMessages(stream: string, group: string, count?: number, consumer?: string): Promise<[string, string, number, [string, number][]][] | [string, string, number, number] | unknown[]>;
26
+ retryMessages(streamName: string, groupName: string, options?: {
27
+ consumerName?: string;
28
+ minIdleTime?: number;
29
+ messageIds?: string[];
30
+ delay?: number;
31
+ maxRetries?: number;
32
+ limit?: number;
33
+ }): Promise<StreamMessage[]>;
34
+ claimMessage(streamName: string, groupName: string, consumerName: string, minIdleTime: number, messageId: string, ...args: string[]): Promise<StreamMessage>;
35
+ getStreamStats(streamName: string): Promise<StreamStats>;
36
+ getStreamDepth(streamName: string, options?: {
37
+ multi: IORedisMultiType;
38
+ }): Promise<number>;
39
+ getStreamDepths(streamNames: {
40
+ stream: string;
41
+ }[]): Promise<{
42
+ stream: string;
43
+ depth: number;
44
+ }[]>;
45
+ trimStream(streamName: string, options: {
46
+ maxLen?: number;
47
+ maxAge?: number;
48
+ exactLimit?: boolean;
49
+ }): Promise<number>;
50
+ getProviderSpecificFeatures(): {
51
+ supportsBatching: boolean;
52
+ supportsDeadLetterQueue: boolean;
53
+ supportsOrdering: boolean;
54
+ supportsTrimming: boolean;
55
+ supportsRetry: boolean;
56
+ maxMessageSize: number;
57
+ maxBatchSize: number;
58
+ };
20
59
  }
21
60
  export { IORedisStreamService };
@@ -1 +1 @@
1
- 'use strict';(function(_0xa850c6,_0x432fca){const _0x451523=_0x5764,_0x3301de=_0xa850c6();while(!![]){try{const _0x4ea93f=parseInt(_0x451523(0xb4))/0x1+parseInt(_0x451523(0xb6))/0x2+-parseInt(_0x451523(0xb0))/0x3+-parseInt(_0x451523(0xb2))/0x4+-parseInt(_0x451523(0xb5))/0x5*(-parseInt(_0x451523(0xb1))/0x6)+-parseInt(_0x451523(0xb3))/0x7+-parseInt(_0x451523(0xb7))/0x8;if(_0x4ea93f===_0x432fca)break;else _0x3301de['push'](_0x3301de['shift']());}catch(_0x304449){_0x3301de['push'](_0x3301de['shift']());}}}(_0x35ee,0x42143));Object['defineProperty'](exports,'__esModule',{'value':!![]}),exports['IORedisStreamService']=void 0x0;function _0x5764(_0xb2056f,_0x51f224){const _0x35eede=_0x35ee();return _0x5764=function(_0x576404,_0x5d27a3){_0x576404=_0x576404-0xb0;let _0xbb05f6=_0x35eede[_0x576404];return _0xbb05f6;},_0x5764(_0xb2056f,_0x51f224);}const key_1=require('../../../../modules/key'),index_1=require('../../index');function _0x35ee(){const _0x4de5bb=['2356722EyVGxE','105988xDVKrT','1590176HPXoaV','522310xVeQRG','5RlaFyC','1015050YzXShK','4801592EPWHkQ','894297OORKdw'];_0x35ee=function(){return _0x4de5bb;};return _0x35ee();}class IORedisStreamService extends index_1['StreamService']{constructor(_0x150415,_0x330ba7){super(_0x150415,_0x330ba7);}async['init'](_0x3d6e25=key_1['HMNS'],_0x141956,_0x4115b4){this['namespace']=_0x3d6e25,this['logger']=_0x4115b4,this['appId']=_0x141956;}['getMulti'](){return this['streamClient']['multi']();}['mintKey'](_0xe2c861,_0x2bd765){if(!this['namespace'])throw new Error('namespace\x20not\x20set');return key_1['KeyService']['mintKey'](this['namespace'],_0xe2c861,_0x2bd765);}async['consumeMessages'](_0x3dc811,_0x5dd31c,_0x587b42,_0x8f9b66){const _0x50b210='GROUP',_0x17ed47='BLOCK',_0x50cfbc='STREAMS',_0x6f4aee='>';try{return await this['streamClient']['xreadgroup'](_0x50b210,_0x3dc811,_0x5dd31c,_0x17ed47,_0x587b42,_0x50cfbc,_0x8f9b66,_0x6f4aee);}catch(_0x9d41bb){this['logger']['error']('Error\x20reading\x20stream\x20data\x20[Stream\x20'+_0x8f9b66+']\x20[Group\x20'+_0x3dc811+']',{..._0x9d41bb});throw _0x9d41bb;}}async['getPendingMessages'](_0x22f23e,_0x100e55,_0x388819,_0x5f1031){const _0x4d8f11='-',_0x26297d='+';try{const _0x45e5a3=[_0x22f23e,_0x100e55];if(_0x4d8f11)_0x45e5a3['push'](_0x4d8f11);if(_0x26297d)_0x45e5a3['push'](_0x26297d);if(_0x388819!==undefined)_0x45e5a3['push'](_0x388819['toString']());if(_0x5f1031)_0x45e5a3['push'](_0x5f1031);try{return await this['streamClient']['call']('XPENDING',..._0x45e5a3);}catch(_0xf41c59){this['logger']['error']('err,\x20args',{..._0xf41c59},_0x45e5a3);}}catch(_0x31f6c7){this['logger']['error']('Error\x20in\x20retrieving\x20pending\x20messages\x20for\x20[stream\x20'+_0x22f23e+'],\x20[group\x20'+_0x100e55+']',{..._0x31f6c7});throw _0x31f6c7;}}async['claimMessage'](_0x24fd94,_0x205c30,_0x46500,_0x312419,_0xf5cd74,..._0x37de79){try{return await this['streamClient']['xclaim'](_0x24fd94,_0x205c30,_0x46500,_0x312419,_0xf5cd74,..._0x37de79);}catch(_0x2bbdeb){this['logger']['error']('Error\x20in\x20claiming\x20message\x20with\x20id:\x20'+_0xf5cd74+'\x20in\x20group:\x20'+_0x205c30+'\x20for\x20key:\x20'+_0x24fd94,{..._0x2bbdeb});throw _0x2bbdeb;}}async['ackAndDelete'](_0x22ebd0,_0x11896f,_0x61cee6){const _0x124fbc=this['getMulti']();return this['acknowledgeMessage'](_0x22ebd0,_0x11896f,_0x61cee6,_0x124fbc),this['deleteMessage'](_0x22ebd0,_0x61cee6,_0x124fbc),await _0x124fbc['exec']();}async['acknowledgeMessage'](_0xbb645b,_0x17fd1b,_0x320fff,_0x4c4033){try{return await(_0x4c4033||this['streamClient'])['xack'](_0xbb645b,_0x17fd1b,_0x320fff);}catch(_0x39a5bc){this['logger']['error']('Error\x20in\x20acknowledging\x20messages\x20in\x20group:\x20'+_0x17fd1b+'\x20for\x20key:\x20'+_0xbb645b,{..._0x39a5bc});throw _0x39a5bc;}}async['deleteMessage'](_0x486737,_0x5935b0,_0x9a58f1){try{return await(_0x9a58f1||this['streamClient'])['xdel'](_0x486737,_0x5935b0);}catch(_0x4abf18){this['logger']['error']('Error\x20in\x20deleting\x20messages\x20with\x20id:\x20'+_0x5935b0+'\x20for\x20key:\x20'+_0x486737,{..._0x4abf18});throw _0x4abf18;}}async['createConsumerGroup'](_0x5651e1,_0x2b201a){try{return await this['storeClient']['xgroup']('CREATE',_0x5651e1,_0x2b201a,'$','MKSTREAM')==='OK';}catch(_0x243dde){this['logger']['debug']('stream-mkstream-caught',{'key':_0x5651e1,'group':_0x2b201a});throw _0x243dde;}}async['publishMessage'](_0x3c3aa9,_0x37a4f9,_0x1c1eef,_0x2ba8e5,_0x27a527){try{return await(_0x27a527||this['storeClient'])['xadd'](_0x3c3aa9,_0x37a4f9,_0x1c1eef,_0x2ba8e5);}catch(_0x4d3e71){this['logger']['error']('Error\x20publishingMessage\x20[xadd];\x20key:\x20'+_0x3c3aa9,{..._0x4d3e71});throw _0x4d3e71;}}async['getMessageDepth'](_0x7bc8a9,_0x3e3d0f){try{return await(_0x3e3d0f||this['storeClient'])['xlen'](_0x7bc8a9);}catch(_0x1b93e5){this['logger']['error']('Error\x20getting\x20stream\x20depth:\x20'+_0x7bc8a9,{..._0x1b93e5});throw _0x1b93e5;}}}exports['IORedisStreamService']=IORedisStreamService;
1
+ 'use strict';(function(_0x21b0e0,_0x59aa00){const _0x74640b=_0x15d5,_0x107563=_0x21b0e0();while(!![]){try{const _0x3e231f=-parseInt(_0x74640b(0x187))/0x1*(-parseInt(_0x74640b(0x182))/0x2)+-parseInt(_0x74640b(0x186))/0x3+parseInt(_0x74640b(0x184))/0x4+-parseInt(_0x74640b(0x189))/0x5+-parseInt(_0x74640b(0x188))/0x6+parseInt(_0x74640b(0x185))/0x7+-parseInt(_0x74640b(0x18a))/0x8*(parseInt(_0x74640b(0x183))/0x9);if(_0x3e231f===_0x59aa00)break;else _0x107563['push'](_0x107563['shift']());}catch(_0x18fb66){_0x107563['push'](_0x107563['shift']());}}}(_0x40ec,0xe9742));Object['defineProperty'](exports,'__esModule',{'value':!![]}),exports['IORedisStreamService']=void 0x0;function _0x15d5(_0x7222ed,_0x4a7e70){const _0x40ecc8=_0x40ec();return _0x15d5=function(_0x15d5e7,_0x4a965c){_0x15d5e7=_0x15d5e7-0x182;let _0x32b565=_0x40ecc8[_0x15d5e7];return _0x32b565;},_0x15d5(_0x7222ed,_0x4a7e70);}const index_1=require('../../index'),utils_1=require('../../../../modules/utils'),key_1=require('../../../../modules/key'),enums_1=require('../../../../modules/enums');function _0x40ec(){const _0xbe111=['2715144DFzrcc','57UfjNHf','2411166VySLIq','90505dmhLOL','25000YpjCho','67004pNtiFv','4347ballwU','6144164XiykUG','2414692oAnVda'];_0x40ec=function(){return _0xbe111;};return _0x40ec();}class IORedisStreamService extends index_1['StreamService']{constructor(_0xcd8b94,_0x4aed6a,_0x46f41a={}){super(_0xcd8b94,_0x4aed6a,_0x46f41a);}async['init'](_0x2d44c5,_0x5e6022,_0x3f3382){this['namespace']=_0x2d44c5,this['logger']=_0x3f3382,this['appId']=_0x5e6022;}['mintKey'](_0x435025,_0x2922ed){if(!this['namespace'])throw new Error('namespace\x20not\x20set');return key_1['KeyService']['mintKey'](this['namespace'],_0x435025,{..._0x2922ed,'appId':this['appId']});}['transact'](){return this['streamClient']['multi']();}async['createStream'](_0xb66e31){try{const _0x46ff0c=await this['streamClient']['xadd'](_0xb66e31,'*','field','value');return await this['streamClient']['xdel'](_0xb66e31,_0x46ff0c),!![];}catch(_0x56e1ad){this['logger']['error']('Error\x20creating\x20stream\x20'+_0xb66e31,{'error':_0x56e1ad});throw _0x56e1ad;}}async['deleteStream'](_0x127e8c){try{const _0x17434c=await this['streamClient']['del'](_0x127e8c);return _0x17434c>0x0;}catch(_0x361bbb){this['logger']['error']('Error\x20deleting\x20stream\x20'+_0x127e8c,{'error':_0x361bbb});throw _0x361bbb;}}async['createConsumerGroup'](_0x3eb7da,_0x45716a){try{return await this['storeClient']['xgroup']('CREATE',_0x3eb7da,_0x45716a,'$','MKSTREAM')==='OK';}catch(_0x329e66){this['logger']['debug']('stream-mkstream-caught',{'key':_0x3eb7da,'group':_0x45716a});throw _0x329e66;}}async['deleteConsumerGroup'](_0xae1126,_0x57d27b){try{const _0x27d0d4=await this['streamClient']['xgroup']('DESTROY',_0xae1126,_0x57d27b);return _0x27d0d4===0x1;}catch(_0x2a7ea7){this['logger']['error']('Error\x20deleting\x20consumer\x20group\x20'+_0x57d27b+'\x20for\x20stream\x20'+_0xae1126,{'error':_0x2a7ea7});throw _0x2a7ea7;}}async['publishMessages'](_0x5c0fc9,_0x4c6cfa,_0x4aa848){try{const _0x2cb2a6=_0x4aa848?.['transaction']||_0x4c6cfa['length']>0x1&&this['storeClient']['multi']();let _0x566af0;for(const _0x3491cd of _0x4c6cfa){_0x566af0=await(_0x2cb2a6||this['storeClient'])['xadd'](_0x5c0fc9,'*','message',_0x3491cd);}return _0x2cb2a6&&!_0x4aa848?.['transaction']?(await _0x2cb2a6['exec']())['map'](_0x1c8b42=>_0x1c8b42[0x1]):[_0x566af0];}catch(_0x5ee643){this['logger']['error']('ioredis-xadd-error\x20key:\x20'+_0x5c0fc9,{..._0x5ee643});throw _0x5ee643;}}async['consumeMessages'](_0x58cde1,_0x31d031,_0x5cb86c,_0x18283b){try{const _0x2fb222=await this['streamClient']['xreadgroup']('GROUP',_0x31d031,_0x5cb86c,'BLOCK',_0x18283b?.['blockTimeout']??enums_1['HMSH_BLOCK_TIME_MS'],'STREAMS',_0x58cde1,'>'),_0x1dfa36=[];if((0x0,utils_1['isStreamMessage'])(_0x2fb222)){const [[,_0x1b0ddd]]=_0x2fb222;for(const [_0x1f5bdf,_0x4deb98]of _0x1b0ddd){_0x1dfa36['push']({'id':_0x1f5bdf,'data':(0x0,utils_1['parseStreamMessage'])(_0x4deb98[0x1])});}}else return[];return _0x1dfa36;}catch(_0x50aa9f){this['logger']['error']('Error\x20consuming\x20messages\x20from\x20'+_0x58cde1,{'error':_0x50aa9f});throw _0x50aa9f;}}async['ackAndDelete'](_0x5b5d35,_0x5eaf8f,_0x2d8e92){const _0x2879fe=this['storeClient']['multi']();return this['acknowledgeMessages'](_0x5b5d35,_0x5eaf8f,_0x2d8e92,{'multi':_0x2879fe}),this['deleteMessages'](_0x5b5d35,_0x5eaf8f,_0x2d8e92,{'multi':_0x2879fe}),await _0x2879fe['exec'](),_0x2d8e92['length'];}async['acknowledgeMessages'](_0xb2c7c7,_0x71f03c,_0x55552d,_0x556852){try{return _0x556852?.['multi']?(_0x556852['multi']['xack'](_0xb2c7c7,_0x71f03c,..._0x55552d),_0x556852['multi']):await this['streamClient']['xack'](_0xb2c7c7,_0x71f03c,..._0x55552d);}catch(_0x309682){this['logger']['error']('Error\x20in\x20acknowledging\x20messages:\x20['+_0x55552d+']\x20in\x20group:\x20'+_0x71f03c+'\x20for\x20key:\x20'+_0xb2c7c7,{..._0x309682});throw _0x309682;}}async['deleteMessages'](_0x2f5aab,_0x2a2f18,_0x2e6a66,_0x4ff037){try{return _0x4ff037?.['multi']?(_0x4ff037['multi']['xdel'](_0x2f5aab,..._0x2e6a66),_0x4ff037['multi']):await this['streamClient']['xdel'](_0x2f5aab,..._0x2e6a66);}catch(_0xd054cc){this['logger']['error']('Error\x20in\x20deleting\x20messages:\x20'+_0x2e6a66+'\x20for\x20key:\x20'+_0x2f5aab,{..._0xd054cc});throw _0xd054cc;}}async['getPendingMessages'](_0xbc2ad9,_0x3d2d47,_0x48f2bd,_0x14fb79){const _0x3fd7c1='-',_0x34b903='+';try{const _0x176058=[_0xbc2ad9,_0x3d2d47];if(_0x3fd7c1)_0x176058['push'](_0x3fd7c1);if(_0x34b903)_0x176058['push'](_0x34b903);if(_0x48f2bd!==undefined)_0x176058['push'](_0x48f2bd['toString']());if(_0x14fb79)_0x176058['push'](_0x14fb79);try{return await this['streamClient']['call']('XPENDING',..._0x176058);}catch(_0xe73967){this['logger']['error']('err,\x20args',{..._0xe73967},_0x176058);}}catch(_0x2d2338){this['logger']['error']('Error\x20in\x20retrieving\x20pending\x20messages\x20for\x20[stream\x20'+_0xbc2ad9+'],\x20[group\x20'+_0x3d2d47+']',{..._0x2d2338});throw _0x2d2338;}}async['retryMessages'](_0x32e6fc,_0x4b6d2e,_0x9bcd4c){let _0x4a1adc=[];const _0x129009=await this['getPendingMessages'](_0x32e6fc,_0x4b6d2e,_0x9bcd4c?.['limit']);for(const _0x5069cb of _0x129009){if(Array['isArray'](_0x5069cb)){const [_0x7c19e4,,_0x20e873,_0x1f9afa]=_0x5069cb;if(_0x20e873>_0x9bcd4c?.['minIdleTime']){const _0x1c25d9=await this['claimMessage'](_0x32e6fc,_0x4b6d2e,_0x9bcd4c?.['consumerName'],_0x9bcd4c?.['minIdleTime'],_0x7c19e4);_0x4a1adc=_0x4a1adc['concat'](_0x1c25d9);}}}return _0x4a1adc;}async['claimMessage'](_0x556d62,_0x31bdfd,_0x1dcb5b,_0x47f572,_0x55b734,..._0x247988){try{const _0x494a47=await this['streamClient']['xclaim'](_0x556d62,_0x31bdfd,_0x1dcb5b,_0x47f572,_0x55b734,..._0x247988);return{'id':_0x494a47[0x0][0x0],'data':(0x0,utils_1['parseStreamMessage'])(_0x494a47[0x0][0x1][0x1])};}catch(_0x133598){this['logger']['error']('Error\x20in\x20claiming\x20message\x20with\x20id:\x20'+_0x55b734+'\x20in\x20group:\x20'+_0x31bdfd+'\x20for\x20key:\x20'+_0x556d62,{..._0x133598});throw _0x133598;}}async['getStreamStats'](_0x50b9b7){return{'messageCount':await this['getStreamDepth'](_0x50b9b7)};}async['getStreamDepth'](_0x4194a1,_0x419fa2){try{if(_0x419fa2?.['multi'])return _0x419fa2['multi']['xlen'](_0x4194a1),0x0;const _0xcba5b5=await this['streamClient']['xlen'](_0x4194a1);return _0xcba5b5;}catch(_0x57a045){this['logger']['error']('Error\x20getting\x20depth\x20for\x20'+_0x4194a1,{'error':_0x57a045});throw _0x57a045;}}async['getStreamDepths'](_0x3697f2){const _0x567165=this['storeClient']['multi'](),_0x5c4cd5=new Map();_0x3697f2['forEach'](_0x4b733b=>{!_0x5c4cd5['has'](_0x4b733b['stream'])&&(_0x5c4cd5['set'](_0x4b733b['stream'],-0x1),this['getStreamDepth'](_0x4b733b['stream'],{'multi':_0x567165}));});const _0x597e18=await _0x567165['exec']();Array['from'](_0x5c4cd5['keys']())['forEach']((_0x397d17,_0x30a9d3)=>{_0x5c4cd5['set'](_0x397d17,_0x597e18[_0x30a9d3][0x1]);});const _0x5dc0ce=_0x3697f2['map'](_0x29659e=>{return{'stream':_0x29659e['stream'],'depth':_0x5c4cd5['get'](_0x29659e['stream'])||0x0};});return _0x5dc0ce;}async['trimStream'](_0xfab72a,_0x131148){return 0x0;}['getProviderSpecificFeatures'](){return{'supportsBatching':!![],'supportsDeadLetterQueue':![],'supportsOrdering':!![],'supportsTrimming':!![],'supportsRetry':!![],'maxMessageSize':0x200*0x400*0x400,'maxBatchSize':0x3e8};}}exports['IORedisStreamService']=IORedisStreamService;
@@ -1,21 +1,60 @@
1
- import { KeyStoreParams, KeyType } from '../../../../modules/key';
2
1
  import { ILogger } from '../../../logger';
3
2
  import { StreamService } from '../../index';
4
- import { RedisRedisClientType as RedisClientType, RedisRedisMultiType as RedisMultiType } from '../../../../types/redis';
5
- import { ReclaimedMessageType } from '../../../../types/stream';
6
- declare class RedisStreamService extends StreamService<RedisClientType, RedisMultiType> {
7
- constructor(streamClient: RedisClientType, storeClient: RedisClientType);
3
+ import { RedisRedisClientType, RedisRedisMultiType } from '../../../../types/redis';
4
+ import { PublishMessageConfig, StreamConfig, StreamMessage, StreamStats } from '../../../../types/stream';
5
+ import { KeyStoreParams, StringAnyType } from '../../../../types';
6
+ import { KeyType } from '../../../../modules/key';
7
+ import { ProviderTransaction } from '../../../../types/provider';
8
+ declare class RedisStreamService extends StreamService<RedisRedisClientType, RedisRedisMultiType> {
9
+ constructor(streamClient: RedisRedisClientType, storeClient: RedisRedisClientType, config?: StreamConfig);
8
10
  init(namespace: string, appId: string, logger: ILogger): Promise<void>;
9
- getMulti(): RedisMultiType;
10
11
  mintKey(type: KeyType, params: KeyStoreParams): string;
11
- consumeMessages(groupName: string, consumerName: string, blockTime: number | string, streamName: string): Promise<string[][][] | null>;
12
- getPendingMessages(key: string, group: string, count?: number, consumer?: string): Promise<[string, string, number, [string, number][]][] | [string, string, number, number]>;
13
- claimMessage(key: string, group: string, consumer: string, minIdleTime: number, id: string, ...args: string[]): Promise<ReclaimedMessageType>;
14
- ackAndDelete(key: string, group: string, id: string): Promise<number | RedisMultiType>;
15
- acknowledgeMessage(key: string, group: string, id: string, multi?: RedisMultiType): Promise<number | RedisMultiType>;
16
- deleteMessage(key: string, id: string, multi?: RedisMultiType): Promise<number | RedisMultiType>;
17
- createConsumerGroup(key: string, groupName: string): Promise<boolean>;
18
- publishMessage(key: string, id: string, messageId: string, messageValue: string, multi?: RedisMultiType): Promise<string | RedisMultiType>;
19
- getMessageDepth(key: string, multi?: RedisMultiType): Promise<number | RedisMultiType>;
12
+ transact(): ProviderTransaction;
13
+ createStream(streamName: string): Promise<boolean>;
14
+ deleteStream(streamName: string): Promise<boolean>;
15
+ createConsumerGroup(streamName: string, groupName: string): Promise<boolean>;
16
+ deleteConsumerGroup(streamName: string, groupName: string): Promise<boolean>;
17
+ publishMessages(streamName: string, messages: string[], options?: PublishMessageConfig): Promise<string[]>;
18
+ consumeMessages(streamName: string, groupName: string, consumerName: string, options?: {
19
+ batchSize?: number;
20
+ blockTimeout?: number;
21
+ }): Promise<StreamMessage[]>;
22
+ ackAndDelete(stream: string, group: string, ids: string[]): Promise<number>;
23
+ acknowledgeMessages(stream: string, group: string, ids: string[], options?: StringAnyType): Promise<number | RedisRedisMultiType>;
24
+ deleteMessages(stream: string, group: string, ids: string[], options?: StringAnyType): Promise<number | RedisRedisMultiType>;
25
+ getPendingMessages(stream: string, group: string, count?: number, consumer?: string): Promise<[string, string, number, [string, number][]][] | [string, string, number, number]>;
26
+ retryMessages(streamName: string, groupName: string, options?: {
27
+ consumerName?: string;
28
+ minIdleTime?: number;
29
+ messageIds?: string[];
30
+ delay?: number;
31
+ maxRetries?: number;
32
+ limit?: number;
33
+ }): Promise<StreamMessage[]>;
34
+ claimMessage(stream: string, group: string, consumer: string, minIdleTime: number, id: string, ...args: string[]): Promise<StreamMessage>;
35
+ getStreamStats(streamName: string): Promise<StreamStats>;
36
+ getStreamDepth(streamName: string, options?: {
37
+ multi: RedisRedisMultiType;
38
+ }): Promise<number>;
39
+ getStreamDepths(streamNames: {
40
+ stream: string;
41
+ }[]): Promise<{
42
+ stream: string;
43
+ depth: number;
44
+ }[]>;
45
+ trimStream(streamName: string, options: {
46
+ maxLen?: number;
47
+ maxAge?: number;
48
+ exactLimit?: boolean;
49
+ }): Promise<number>;
50
+ getProviderSpecificFeatures(): {
51
+ supportsBatching: boolean;
52
+ supportsDeadLetterQueue: boolean;
53
+ supportsOrdering: boolean;
54
+ supportsTrimming: boolean;
55
+ supportsRetry: boolean;
56
+ maxMessageSize: number;
57
+ maxBatchSize: number;
58
+ };
20
59
  }
21
60
  export { RedisStreamService };
@@ -1 +1 @@
1
- 'use strict';function _0x4167(_0x22045b,_0x54ab53){const _0x2d6a01=_0x2d6a();return _0x4167=function(_0x4167f7,_0x2f41e1){_0x4167f7=_0x4167f7-0x84;let _0x117caf=_0x2d6a01[_0x4167f7];return _0x117caf;},_0x4167(_0x22045b,_0x54ab53);}(function(_0x3ed708,_0x9bfd14){const _0x41cdc9=_0x4167,_0x524c0e=_0x3ed708();while(!![]){try{const _0x1f15e=-parseInt(_0x41cdc9(0x85))/0x1+parseInt(_0x41cdc9(0x84))/0x2+-parseInt(_0x41cdc9(0x88))/0x3*(-parseInt(_0x41cdc9(0x86))/0x4)+parseInt(_0x41cdc9(0x8c))/0x5*(parseInt(_0x41cdc9(0x8d))/0x6)+-parseInt(_0x41cdc9(0x8a))/0x7+parseInt(_0x41cdc9(0x87))/0x8+-parseInt(_0x41cdc9(0x89))/0x9*(parseInt(_0x41cdc9(0x8b))/0xa);if(_0x1f15e===_0x9bfd14)break;else _0x524c0e['push'](_0x524c0e['shift']());}catch(_0x47c373){_0x524c0e['push'](_0x524c0e['shift']());}}}(_0x2d6a,0x86b25));function _0x2d6a(){const _0x389e25=['14150euNtrN','1962zSmmse','1588628UJRRvV','598246kdiGdB','1848HiImsx','1812568OESbRZ','1845TIMRtx','1899shHwCH','3576811WTSnWn','26990JYoRrG'];_0x2d6a=function(){return _0x389e25;};return _0x2d6a();}Object['defineProperty'](exports,'__esModule',{'value':!![]}),exports['RedisStreamService']=void 0x0;const key_1=require('../../../../modules/key'),index_1=require('../../index');class RedisStreamService extends index_1['StreamService']{constructor(_0x1f880c,_0xedc2d0){super(_0x1f880c,_0xedc2d0);}async['init'](_0x5eafc2=key_1['HMNS'],_0x4fcdd8,_0x252bb1){this['namespace']=_0x5eafc2,this['logger']=_0x252bb1,this['appId']=_0x4fcdd8;}['getMulti'](){return this['streamClient']['multi']();}['mintKey'](_0x1cd6ae,_0x39143b){if(!this['namespace'])throw new Error('namespace\x20not\x20set');return key_1['KeyService']['mintKey'](this['namespace'],_0x1cd6ae,_0x39143b);}async['consumeMessages'](_0x3d198c,_0x485824,_0x5ce0eb,_0xaa4803){const _0x2c3ebe='GROUP',_0x39f384='BLOCK',_0x37e0fd='STREAMS',_0x360c59='>';try{return await this['streamClient']['sendCommand'](['XREADGROUP',_0x2c3ebe,_0x3d198c,_0x485824,_0x39f384,_0x5ce0eb['toString'](),_0x37e0fd,_0xaa4803,_0x360c59]);}catch(_0x16f34d){this['logger']['error']('Error\x20reading\x20stream\x20data\x20[Stream\x20'+_0xaa4803+']\x20[Group\x20'+_0x3d198c+']',{..._0x16f34d});throw _0x16f34d;}}async['getPendingMessages'](_0x1c3a92,_0x42bbc0,_0x27cef4,_0x4b5905){try{const _0x3f3605='-',_0xae14d9='+',_0x5b9f81=[_0x1c3a92,_0x42bbc0];if(_0x3f3605)_0x5b9f81['push'](_0x3f3605);if(_0xae14d9)_0x5b9f81['push'](_0xae14d9);if(_0x27cef4!==undefined)_0x5b9f81['push'](_0x27cef4['toString']());if(_0x4b5905)_0x5b9f81['push'](_0x4b5905);try{return await this['streamClient']['sendCommand'](['XPENDING',..._0x5b9f81]);}catch(_0x1d955a){this['logger']['error']('error,\x20args',{..._0x1d955a},_0x5b9f81);}}catch(_0xd4a708){this['logger']['error']('Error\x20retrieving\x20pending\x20messages\x20for\x20group:\x20'+_0x42bbc0+'\x20in\x20key:\x20'+_0x1c3a92,{..._0xd4a708});throw _0xd4a708;}}async['claimMessage'](_0x6243a5,_0x3f1660,_0xf97a91,_0x4a1b0e,_0x215048,..._0xf39985){try{return await this['streamClient']['sendCommand'](['XCLAIM',_0x6243a5,_0x3f1660,_0xf97a91,_0x4a1b0e['toString'](),_0x215048,..._0xf39985]);}catch(_0x69be2f){this['logger']['error']('Error\x20in\x20claiming\x20message\x20with\x20id:\x20'+_0x215048+'\x20in\x20group:\x20'+_0x3f1660+'\x20for\x20key:\x20'+_0x6243a5,{..._0x69be2f});throw _0x69be2f;}}async['ackAndDelete'](_0x4b34d0,_0x1ef5f0,_0x8640f8){const _0x23fcca=this['getMulti']();return this['acknowledgeMessage'](_0x4b34d0,_0x1ef5f0,_0x8640f8,_0x23fcca),this['deleteMessage'](_0x4b34d0,_0x8640f8,_0x23fcca),await _0x23fcca['exec']();}async['acknowledgeMessage'](_0x939833,_0x59e645,_0x3a7502,_0x2f8cec){try{return _0x2f8cec?(_0x2f8cec['XACK'](_0x939833,_0x59e645,_0x3a7502),_0x2f8cec):await this['streamClient']['XACK'](_0x939833,_0x59e645,_0x3a7502);}catch(_0x47858c){this['logger']['error']('Error\x20in\x20acknowledging\x20messages\x20in\x20group:\x20'+_0x59e645+'\x20for\x20key:\x20'+_0x939833,{..._0x47858c});throw _0x47858c;}}async['deleteMessage'](_0x39ca79,_0x1d40a1,_0x3c8bd5){try{return _0x3c8bd5?(_0x3c8bd5['XDEL'](_0x39ca79,_0x1d40a1),_0x3c8bd5):await this['streamClient']['XDEL'](_0x39ca79,_0x1d40a1);}catch(_0x571f9b){this['logger']['error']('Error\x20in\x20deleting\x20messages\x20with\x20ids:\x20'+_0x1d40a1+'\x20for\x20key:\x20'+_0x39ca79,{..._0x571f9b});throw _0x571f9b;}}async['createConsumerGroup'](_0x2a77f8,_0x201d8e){try{return await this['storeClient']['sendCommand'](['XGROUP','CREATE',_0x2a77f8,_0x201d8e,'$','MKSTREAM'])===0x1;}catch(_0x542f76){const _0x1cd069='with\x20MKSTREAM';this['logger']['debug']('x-group-error\x20'+_0x1cd069+'\x20for\x20key:\x20'+_0x2a77f8+'\x20and\x20group:\x20'+_0x201d8e,{..._0x542f76});throw _0x542f76;}}async['publishMessage'](_0x218b19,_0x5bc715,_0x111305,_0x292fdd,_0x484471){try{return await(_0x484471||this['storeClient'])['XADD'](_0x218b19,_0x5bc715,{[_0x111305]:_0x292fdd});}catch(_0x239f0a){this['logger']['error']('Error\x20publishingMessage\x20[xadd];\x20key:\x20'+_0x218b19,{..._0x239f0a});throw _0x239f0a;}}async['getMessageDepth'](_0x5c04a0,_0x487720){try{return _0x487720?(_0x487720['XLEN'](_0x5c04a0),_0x487720):await this['storeClient']['XLEN'](_0x5c04a0);}catch(_0x42effa){this['logger']['error']('Error\x20getting\x20stream\x20depth:\x20'+_0x5c04a0,{..._0x42effa});throw _0x42effa;}}}exports['RedisStreamService']=RedisStreamService;
1
+ 'use strict';function _0x5096(){const _0x27524f=['3972628EBHmdO','1181330LArEbt','546500CaqakB','781968UaMwQN','14VKVeYM','328088AmfBQz','581600jrUKdu','5pMosZt','9XjIOlJ','281753OUJSMi','3inyAcu'];_0x5096=function(){return _0x27524f;};return _0x5096();}(function(_0x42a12a,_0x2ca1af){const _0x5f1625=_0x34be,_0x3d5b18=_0x42a12a();while(!![]){try{const _0x285f41=parseInt(_0x5f1625(0x13b))/0x1+parseInt(_0x5f1625(0x13f))/0x2*(-parseInt(_0x5f1625(0x13c))/0x3)+-parseInt(_0x5f1625(0x143))/0x4*(parseInt(_0x5f1625(0x144))/0x5)+parseInt(_0x5f1625(0x140))/0x6+-parseInt(_0x5f1625(0x141))/0x7*(parseInt(_0x5f1625(0x142))/0x8)+parseInt(_0x5f1625(0x13a))/0x9*(-parseInt(_0x5f1625(0x13e))/0xa)+parseInt(_0x5f1625(0x13d))/0xb;if(_0x285f41===_0x2ca1af)break;else _0x3d5b18['push'](_0x3d5b18['shift']());}catch(_0x47ef1c){_0x3d5b18['push'](_0x3d5b18['shift']());}}}(_0x5096,0x25b38));Object['defineProperty'](exports,'__esModule',{'value':!![]}),exports['RedisStreamService']=void 0x0;function _0x34be(_0x362367,_0x2f0027){const _0x50969e=_0x5096();return _0x34be=function(_0x34be2e,_0x379ae4){_0x34be2e=_0x34be2e-0x13a;let _0x3a94bd=_0x50969e[_0x34be2e];return _0x3a94bd;},_0x34be(_0x362367,_0x2f0027);}const index_1=require('../../index'),utils_1=require('../../../../modules/utils'),key_1=require('../../../../modules/key'),enums_1=require('../../../../modules/enums');class RedisStreamService extends index_1['StreamService']{constructor(_0x105035,_0x4b7462,_0x41fa35={}){super(_0x105035,_0x4b7462,_0x41fa35);}async['init'](_0x1b0acd,_0x58e866,_0x3197db){this['namespace']=_0x1b0acd,this['logger']=_0x3197db,this['appId']=_0x58e866;}['mintKey'](_0x300539,_0x242660){if(!this['namespace'])throw new Error('namespace\x20not\x20set');return key_1['KeyService']['mintKey'](this['namespace'],_0x300539,{..._0x242660,'appId':this['appId']});}['transact'](){return this['streamClient']['multi']();}async['createStream'](_0x1406b2){try{const _0x3e466d=await this['streamClient']['XADD'](_0x1406b2,'*',{'field':'value'});return await this['streamClient']['XDEL'](_0x1406b2,_0x3e466d),!![];}catch(_0x981183){this['logger']['error']('Error\x20creating\x20stream\x20'+_0x1406b2,{'error':_0x981183});throw _0x981183;}}async['deleteStream'](_0x12f8d1){try{const _0x44898a=await this['streamClient']['DEL'](_0x12f8d1);return _0x44898a>0x0;}catch(_0x2c0d48){this['logger']['error']('Error\x20deleting\x20stream\x20'+_0x12f8d1,{'error':_0x2c0d48});throw _0x2c0d48;}}async['createConsumerGroup'](_0x2eb18e,_0x12789a){try{const _0x10530a=await this['storeClient']['sendCommand'](['XGROUP','CREATE',_0x2eb18e,_0x12789a,'$','MKSTREAM']);return _0x10530a==='OK';}catch(_0x794d25){const _0x475e62='with\x20MKSTREAM';this['logger']['debug']('x-group-error\x20'+_0x475e62+'\x20for\x20key:\x20'+_0x2eb18e+'\x20and\x20group:\x20'+_0x12789a,{..._0x794d25});throw _0x794d25;}}async['deleteConsumerGroup'](_0x1bce96,_0x71c641){try{const _0x2f07b7=await this['streamClient']['xGroupDestroy'](_0x1bce96,_0x71c641);return _0x2f07b7;}catch(_0x8b4ac9){this['logger']['error']('Error\x20deleting\x20consumer\x20group\x20'+_0x71c641+'\x20for\x20stream\x20'+_0x1bce96,{'error':_0x8b4ac9});throw _0x8b4ac9;}}async['publishMessages'](_0x114f1f,_0x1cf940,_0x1e7f29){try{const _0x10ffd8=_0x1e7f29?.['transaction']||_0x1cf940['length']>0x1&&this['storeClient']['multi']();let _0x3e6d6b;for(const _0x511642 of _0x1cf940){_0x3e6d6b=await(_0x10ffd8||this['storeClient'])['XADD'](_0x114f1f,'*',{'message':_0x511642});}return _0x10ffd8&&!_0x1e7f29?.['transaction']?(await _0x10ffd8['exec']())['map'](_0x4da02a=>_0x4da02a[0x1]):[_0x3e6d6b];}catch(_0x2e9523){this['logger']['error']('ioredis-xadd-error\x20key:\x20'+_0x114f1f,{..._0x2e9523});throw _0x2e9523;}}async['consumeMessages'](_0x48954e,_0x1bf458,_0x10f36e,_0x584ad1){const _0x55f4d3='GROUP',_0x9e6a1b='BLOCK',_0xcd1ff0='STREAMS',_0xd7b4cb='>';try{const _0x596129=await this['streamClient']['sendCommand'](['XREADGROUP',_0x55f4d3,_0x1bf458,_0x10f36e,_0x9e6a1b,_0x584ad1?.['blockTimeout']?.['toString']()??enums_1['HMSH_BLOCK_TIME_MS']['toString'](),_0xcd1ff0,_0x48954e,_0xd7b4cb]),_0xf73782=[];if((0x0,utils_1['isStreamMessage'])(_0x596129)){const [[,_0x37a4df]]=_0x596129;for(const [_0x4f08c4,_0x4ee4f2]of _0x37a4df){_0xf73782['push']({'id':_0x4f08c4,'data':(0x0,utils_1['parseStreamMessage'])(_0x4ee4f2[0x1])});}}else return[];return _0xf73782;}catch(_0x3df342){this['logger']['error']('Error\x20consuming\x20messages\x20from\x20'+_0x48954e,{'error':_0x3df342});throw _0x3df342;}}async['ackAndDelete'](_0x447694,_0x553644,_0x5a6b52){const _0x411bb6=this['storeClient']['multi']();return await this['acknowledgeMessages'](_0x447694,_0x553644,_0x5a6b52,{'multi':_0x411bb6}),await this['deleteMessages'](_0x447694,_0x553644,_0x5a6b52,{'multi':_0x411bb6}),await _0x411bb6['exec'](),_0x5a6b52['length'];}async['acknowledgeMessages'](_0x168801,_0x5315bb,_0x1e90a6,_0x357c41){try{return _0x357c41?.['multi']?(_0x357c41['multi']['XACK'](_0x168801,_0x5315bb,_0x1e90a6),_0x357c41['multi']):await this['streamClient']['XACK'](_0x168801,_0x5315bb,..._0x1e90a6);}catch(_0x4dd85a){this['logger']['error']('Error\x20in\x20acknowledging\x20messages\x20in\x20group:\x20'+_0x5315bb+'\x20for\x20key:\x20'+_0x168801,{'error':_0x4dd85a});throw _0x4dd85a;}}async['deleteMessages'](_0x1aee1b,_0x5570ec,_0xd0e994,_0x193ebd){try{return _0x193ebd?.['multi']?(_0x193ebd['multi']['xDel'](_0x1aee1b,_0xd0e994),_0x193ebd['multi']):await this['streamClient']['XDEL'](_0x1aee1b,..._0xd0e994);}catch(_0x5dd0b1){this['logger']['error']('Error\x20in\x20deleting\x20messages\x20with\x20ids:\x20'+_0xd0e994['join'](',')+'\x20for\x20key:\x20'+_0x1aee1b,{'error':_0x5dd0b1});throw _0x5dd0b1;}}async['getPendingMessages'](_0x3a9bbd,_0x1c6649,_0x249f5a,_0x313278){try{const _0x45a80c='-',_0x1c009a='+',_0x29da2e=[_0x3a9bbd,_0x1c6649];if(_0x45a80c)_0x29da2e['push'](_0x45a80c);if(_0x1c009a)_0x29da2e['push'](_0x1c009a);if(_0x249f5a!==undefined)_0x29da2e['push'](_0x249f5a['toString']());if(_0x313278)_0x29da2e['push'](_0x313278);try{return await this['streamClient']['sendCommand'](['XPENDING',..._0x29da2e]);}catch(_0x950561){this['logger']['error']('error,\x20args',{..._0x950561},_0x29da2e);}}catch(_0x10b7de){this['logger']['error']('Error\x20retrieving\x20pending\x20messages\x20for\x20group:\x20'+_0x1c6649+'\x20in\x20key:\x20'+_0x3a9bbd,{..._0x10b7de});throw _0x10b7de;}}async['retryMessages'](_0x2e712b,_0x3fe147,_0x4cf351){let _0x5bf790=[];const _0x2ec8dd=await this['getPendingMessages'](_0x2e712b,_0x3fe147,_0x4cf351?.['limit']);for(const _0x5aa686 of _0x2ec8dd){if(Array['isArray'](_0x5aa686)){const [_0x470dbc,,_0x4531e0,_0x189579]=_0x5aa686;if(_0x4531e0>_0x4cf351?.['minIdleTime']){const _0x1ae791=await this['claimMessage'](_0x2e712b,_0x3fe147,_0x4cf351?.['consumerName'],_0x4cf351?.['minIdleTime'],_0x470dbc);_0x5bf790=_0x5bf790['concat'](_0x1ae791);}}}return _0x5bf790;}async['claimMessage'](_0x4d36d4,_0x3a64ac,_0xc1feeb,_0xe94e4f,_0x365925,..._0x617601){try{const _0x213569=await this['streamClient']['sendCommand'](['XCLAIM',_0x4d36d4,_0x3a64ac,_0xc1feeb,_0xe94e4f['toString'](),_0x365925,..._0x617601]);return{'id':_0x213569[0x0][0x0],'data':(0x0,utils_1['parseStreamMessage'])(_0x213569[0x0][0x1][0x1])};}catch(_0x52600d){this['logger']['error']('Error\x20in\x20claiming\x20message\x20with\x20id:\x20'+_0x365925+'\x20in\x20group:\x20'+_0x3a64ac+'\x20for\x20key:\x20'+_0x4d36d4,{..._0x52600d});throw _0x52600d;}}async['getStreamStats'](_0x292d5a){return{'messageCount':await this['getStreamDepth'](_0x292d5a)};}async['getStreamDepth'](_0x160291,_0x51938a){try{if(_0x51938a?.['multi'])return _0x51938a['multi']['XLEN'](_0x160291),0x0;const _0x23f5cb=await this['streamClient']['XLEN'](_0x160291);return _0x23f5cb;}catch(_0x3188b0){this['logger']['error']('Error\x20getting\x20depth\x20for\x20'+_0x160291,{'error':_0x3188b0});throw _0x3188b0;}}async['getStreamDepths'](_0x48f294){const _0x2a1a49=this['storeClient']['multi'](),_0x4618ac=new Map();_0x48f294['forEach'](_0x25f7a0=>{!_0x4618ac['has'](_0x25f7a0['stream'])&&(_0x4618ac['set'](_0x25f7a0['stream'],-0x1),this['getStreamDepth'](_0x25f7a0['stream'],{'multi':_0x2a1a49}));});const _0x167cf1=await _0x2a1a49['exec']();return Array['from'](_0x4618ac['keys']())['forEach']((_0x56a6da,_0x36a341)=>{_0x4618ac['set'](_0x56a6da,_0x167cf1[_0x36a341]);}),_0x48f294['map'](_0x1932ad=>{return{'stream':_0x1932ad['stream'],'depth':_0x4618ac['get'](_0x1932ad['stream'])||0x0};});}async['trimStream'](_0x370014,_0x2eb61f){return 0x0;}['getProviderSpecificFeatures'](){return{'supportsBatching':!![],'supportsDeadLetterQueue':![],'supportsOrdering':!![],'supportsTrimming':!![],'supportsRetry':!![],'maxMessageSize':0x200*0x400*0x400,'maxBatchSize':0x3e8};}}exports['RedisStreamService']=RedisStreamService;
@@ -1,5 +1,4 @@
1
1
  import { ILogger } from '../../logger';
2
- export interface StreamInitializable<T, U> {
2
+ export interface StreamInitializable {
3
3
  init(namespace: string, appId: string, logger: ILogger): Promise<void>;
4
- getMulti(): U;
5
4
  }
@@ -1 +1 @@
1
- 'use strict';(function(_0x442378,_0x222980){var _0x48a556=_0x5e27,_0x3170f0=_0x442378();while(!![]){try{var _0x55a740=parseInt(_0x48a556(0x1f8))/0x1+-parseInt(_0x48a556(0x1f1))/0x2*(parseInt(_0x48a556(0x1f4))/0x3)+parseInt(_0x48a556(0x1f7))/0x4*(parseInt(_0x48a556(0x1fa))/0x5)+parseInt(_0x48a556(0x1f9))/0x6+-parseInt(_0x48a556(0x1f2))/0x7*(parseInt(_0x48a556(0x1fb))/0x8)+parseInt(_0x48a556(0x1f3))/0x9*(-parseInt(_0x48a556(0x1f6))/0xa)+parseInt(_0x48a556(0x1f5))/0xb;if(_0x55a740===_0x222980)break;else _0x3170f0['push'](_0x3170f0['shift']());}catch(_0x361c7a){_0x3170f0['push'](_0x3170f0['shift']());}}}(_0x194c,0xc8d3d));function _0x5e27(_0x58cb04,_0x452fcb){var _0x194cfd=_0x194c();return _0x5e27=function(_0x5e2734,_0x52aacf){_0x5e2734=_0x5e2734-0x1f1;var _0x185c2c=_0x194cfd[_0x5e2734];return _0x185c2c;},_0x5e27(_0x58cb04,_0x452fcb);}Object['defineProperty'](exports,'__esModule',{'value':!![]});function _0x194c(){var _0xb9bc5a=['18VmoCup','1862079SRqNqe','18668463ZqTzps','5688870SreUCu','4qCzavC','207224iAiSmj','2553732rxLCuw','7853425jhWYVJ','1984uPwRZA','2MOnhTH','37247tBKToJ'];_0x194c=function(){return _0xb9bc5a;};return _0x194c();}
1
+ 'use strict';function _0x5d72(_0x1347c0,_0x127eaf){var _0x39c15e=_0x39c1();return _0x5d72=function(_0x5d7244,_0x59e758){_0x5d7244=_0x5d7244-0x18b;var _0x643560=_0x39c15e[_0x5d7244];return _0x643560;},_0x5d72(_0x1347c0,_0x127eaf);}function _0x39c1(){var _0x899579=['11qHlqpB','6938630veBZom','148076NaKviM','1077656dArcJx','4lOrbxK','1239056VssxYi','5lEYlTE','6BUDqeE','6824HeCFkA','846XiuwRd','4673312RpyKpY','168FMPsVm','1643184LxCKwO'];_0x39c1=function(){return _0x899579;};return _0x39c1();}(function(_0x2fd27d,_0x3ae08f){var _0x2f7b99=_0x5d72,_0x17ff27=_0x2fd27d();while(!![]){try{var _0x193311=-parseInt(_0x2f7b99(0x196))/0x1*(parseInt(_0x2f7b99(0x18b))/0x2)+parseInt(_0x2f7b99(0x18e))/0x3*(parseInt(_0x2f7b99(0x197))/0x4)+-parseInt(_0x2f7b99(0x18d))/0x5*(-parseInt(_0x2f7b99(0x193))/0x6)+parseInt(_0x2f7b99(0x191))/0x7+-parseInt(_0x2f7b99(0x18f))/0x8*(parseInt(_0x2f7b99(0x190))/0x9)+-parseInt(_0x2f7b99(0x195))/0xa*(-parseInt(_0x2f7b99(0x194))/0xb)+parseInt(_0x2f7b99(0x192))/0xc*(-parseInt(_0x2f7b99(0x18c))/0xd);if(_0x193311===_0x3ae08f)break;else _0x17ff27['push'](_0x17ff27['shift']());}catch(_0x1ecda8){_0x17ff27['push'](_0x17ff27['shift']());}}}(_0x39c1,0x7126d));Object['defineProperty'](exports,'__esModule',{'value':!![]});
@@ -1,7 +1,7 @@
1
- import { RedisClient } from '../../types/redis';
2
1
  import { ILogger } from '../logger';
2
+ import { ProviderClient, ProviderTransaction } from '../../types/provider';
3
3
  import { SubService } from './index';
4
4
  declare class SubServiceFactory {
5
- static init(redisClient: RedisClient, redisStoreClient: RedisClient, namespace: string, appId: string, engineId: string, logger: ILogger): Promise<SubService<any, any>>;
5
+ static init(redisClient: ProviderClient, redisStoreClient: ProviderClient, namespace: string, appId: string, engineId: string, logger: ILogger): Promise<SubService<ProviderClient, ProviderTransaction>>;
6
6
  }
7
7
  export { SubServiceFactory };
@@ -7,7 +7,7 @@ const redis_1 = require("./providers/redis/redis");
7
7
  class SubServiceFactory {
8
8
  static async init(redisClient, redisStoreClient, namespace, appId, engineId, logger) {
9
9
  let service;
10
- if ((0, utils_1.identifyRedisType)(redisClient) === 'redis') {
10
+ if ((0, utils_1.identifyProvider)(redisClient) === 'redis') {
11
11
  service = new redis_1.RedisSubService(redisClient, redisStoreClient);
12
12
  }
13
13
  else {
@@ -1,15 +1,16 @@
1
1
  import { KeyStoreParams, KeyType } from '../../modules/key';
2
2
  import { ILogger } from '../logger';
3
3
  import { SubscriptionCallback } from '../../types/quorum';
4
- declare abstract class SubService<Client, MultiClient> {
5
- protected eventClient: Client;
6
- protected storeClient: Client;
4
+ import { ProviderClient, ProviderTransaction } from '../../types/provider';
5
+ declare abstract class SubService<ClientProvider extends ProviderClient, TransactionProvider extends ProviderTransaction> {
6
+ protected eventClient: ClientProvider;
7
+ protected storeClient: ProviderClient;
7
8
  protected namespace: string;
8
9
  protected logger: ILogger;
9
10
  protected appId: string;
10
- constructor(eventClient: Client, storeClient: Client);
11
+ constructor(eventClient: ClientProvider, storeClient: ProviderClient);
11
12
  abstract init(namespace: string, appId: string, engineId: string, logger: ILogger): Promise<void>;
12
- abstract getMulti(): MultiClient;
13
+ abstract transact(): TransactionProvider;
13
14
  abstract mintKey(type: KeyType, params: KeyStoreParams): string;
14
15
  abstract subscribe(keyType: KeyType.QUORUM, callback: SubscriptionCallback, appId: string, engineId?: string): Promise<void>;
15
16
  abstract unsubscribe(keyType: KeyType.QUORUM, appId: string, engineId?: string): Promise<void>;
@@ -6,7 +6,7 @@ import { SubscriptionCallback } from '../../../../types/quorum';
6
6
  declare class IORedisSubService extends SubService<RedisClientType, RedisMultiType> {
7
7
  constructor(eventClient: RedisClientType, storeClient: RedisClientType);
8
8
  init(namespace: string, appId: string, engineId: string, logger: ILogger): Promise<void>;
9
- getMulti(): RedisMultiType;
9
+ transact(): RedisMultiType;
10
10
  mintKey(type: KeyType, params: KeyStoreParams): string;
11
11
  subscribe(keyType: KeyType.QUORUM, callback: SubscriptionCallback, appId: string, engineId?: string): Promise<void>;
12
12
  unsubscribe(keyType: KeyType.QUORUM, appId: string, engineId?: string): Promise<void>;
@@ -1 +1 @@
1
- 'use strict';(function(_0x4fb24e,_0x4d9491){const _0x5231a6=_0x5ad7,_0x310b15=_0x4fb24e();while(!![]){try{const _0x33c0ef=-parseInt(_0x5231a6(0x1e5))/0x1*(parseInt(_0x5231a6(0x1e3))/0x2)+-parseInt(_0x5231a6(0x1e6))/0x3+parseInt(_0x5231a6(0x1e2))/0x4+-parseInt(_0x5231a6(0x1e0))/0x5+parseInt(_0x5231a6(0x1e1))/0x6*(-parseInt(_0x5231a6(0x1de))/0x7)+parseInt(_0x5231a6(0x1dd))/0x8*(parseInt(_0x5231a6(0x1dc))/0x9)+parseInt(_0x5231a6(0x1df))/0xa*(parseInt(_0x5231a6(0x1e4))/0xb);if(_0x33c0ef===_0x4d9491)break;else _0x310b15['push'](_0x310b15['shift']());}catch(_0x58ad97){_0x310b15['push'](_0x310b15['shift']());}}}(_0xbc18,0xb3721));function _0x5ad7(_0x37b643,_0x591584){const _0xbc1848=_0xbc18();return _0x5ad7=function(_0x5ad791,_0x2169b6){_0x5ad791=_0x5ad791-0x1dc;let _0x110efd=_0xbc1848[_0x5ad791];return _0x110efd;},_0x5ad7(_0x37b643,_0x591584);}Object['defineProperty'](exports,'__esModule',{'value':!![]}),exports['IORedisSubService']=void 0x0;const key_1=require('../../../../modules/key'),index_1=require('../../index');class IORedisSubService extends index_1['SubService']{constructor(_0x5dbaf6,_0x47bba9){super(_0x5dbaf6,_0x47bba9);}async['init'](_0x385e9d=key_1['HMNS'],_0x48c392,_0x180563,_0x17aab4){this['namespace']=_0x385e9d,this['logger']=_0x17aab4,this['appId']=_0x48c392;}['getMulti'](){return this['eventClient']['multi']();}['mintKey'](_0x381b82,_0x383a24){if(!this['namespace'])throw new Error('namespace\x20not\x20set');return key_1['KeyService']['mintKey'](this['namespace'],_0x381b82,_0x383a24);}async['subscribe'](_0x57563f,_0x588c61,_0x4d15ce,_0x362646){const _0x5479eb=this,_0x2cae8b=this['mintKey'](_0x57563f,{'appId':_0x4d15ce,'engineId':_0x362646});await this['eventClient']['subscribe'](_0x2cae8b,_0x4fdea9=>{_0x4fdea9&&_0x5479eb['logger']['error']('Error\x20subscribing\x20to:\x20'+_0x2cae8b,_0x4fdea9);}),this['eventClient']['on']('message',(_0x1ab494,_0x2af8ff)=>{if(_0x1ab494===_0x2cae8b)try{const _0x556410=JSON['parse'](_0x2af8ff);_0x588c61(_0x2cae8b,_0x556410);}catch(_0x4cccbe){_0x5479eb['logger']['error']('Error\x20parsing\x20message:\x20'+_0x2af8ff,_0x4cccbe);}});}async['unsubscribe'](_0x4b38a4,_0x3bccd0,_0x570bba){const _0x16200a=this['mintKey'](_0x4b38a4,{'appId':_0x3bccd0,'engineId':_0x570bba});await this['eventClient']['unsubscribe'](_0x16200a);}async['psubscribe'](_0x5116d5,_0xd86de2,_0x40a1a0,_0x21063f){const _0x562b68=this,_0x3f7310=this['mintKey'](_0x5116d5,{'appId':_0x40a1a0,'engineId':_0x21063f});await this['eventClient']['psubscribe'](_0x3f7310,_0x87e05c=>{_0x87e05c&&_0x562b68['logger']['error']('Error\x20subscribing\x20to:\x20'+_0x3f7310,_0x87e05c);}),this['eventClient']['on']('pmessage',(_0x139da2,_0x5bda6c,_0x26c3a0)=>{if(_0x139da2===_0x3f7310)try{const _0x463104=JSON['parse'](_0x26c3a0);_0xd86de2(_0x5bda6c,_0x463104);}catch(_0x3f1116){_0x562b68['logger']['error']('Error\x20parsing\x20message:\x20'+_0x26c3a0,_0x3f1116);}});}async['punsubscribe'](_0x1bddfe,_0xeee61e,_0x35d385){const _0x4b10bc=this['mintKey'](_0x1bddfe,{'appId':_0xeee61e,'engineId':_0x35d385});await this['eventClient']['punsubscribe'](_0x4b10bc);}async['publish'](_0x58affa,_0x24c58f,_0xb86db5,_0x1e3207){const _0x39a6c1=this['mintKey'](_0x58affa,{'appId':_0xb86db5,'engineId':_0x1e3207}),_0x6b381a=await this['storeClient']['publish'](_0x39a6c1,JSON['stringify'](_0x24c58f));return _0x6b381a===0x1;}}exports['IORedisSubService']=IORedisSubService;function _0xbc18(){const _0x37becf=['1290uLXctB','4692460eglTBR','165894DOqBLR','2979744hhNYHx','177766VNVKvs','35739JtGgsq','4cwPDGB','719982tDFmkB','12433140QDAVlJ','8YDIAxY','70ftToRv'];_0xbc18=function(){return _0x37becf;};return _0xbc18();}
1
+ 'use strict';(function(_0x2f9fe4,_0x3eb705){const _0x22cef7=_0x572c,_0x5cadd9=_0x2f9fe4();while(!![]){try{const _0x163769=-parseInt(_0x22cef7(0x103))/0x1+parseInt(_0x22cef7(0x102))/0x2+parseInt(_0x22cef7(0x101))/0x3*(-parseInt(_0x22cef7(0x105))/0x4)+-parseInt(_0x22cef7(0x106))/0x5+-parseInt(_0x22cef7(0x107))/0x6+parseInt(_0x22cef7(0x104))/0x7+parseInt(_0x22cef7(0x108))/0x8;if(_0x163769===_0x3eb705)break;else _0x5cadd9['push'](_0x5cadd9['shift']());}catch(_0x15a7d0){_0x5cadd9['push'](_0x5cadd9['shift']());}}}(_0x3fa9,0x536a6));function _0x572c(_0xdd3db7,_0x19cdf5){const _0x3fa9b5=_0x3fa9();return _0x572c=function(_0x572c0d,_0x4eeb1c){_0x572c0d=_0x572c0d-0x101;let _0x5848c9=_0x3fa9b5[_0x572c0d];return _0x5848c9;},_0x572c(_0xdd3db7,_0x19cdf5);}Object['defineProperty'](exports,'__esModule',{'value':!![]}),exports['IORedisSubService']=void 0x0;const key_1=require('../../../../modules/key'),index_1=require('../../index');class IORedisSubService extends index_1['SubService']{constructor(_0x3e22e7,_0x3e3b40){super(_0x3e22e7,_0x3e3b40);}async['init'](_0x287c3a=key_1['HMNS'],_0x3af763,_0x2a426a,_0x21f1f2){this['namespace']=_0x287c3a,this['logger']=_0x21f1f2,this['appId']=_0x3af763;}['transact'](){return this['eventClient']['multi']();}['mintKey'](_0x133226,_0x2263c2){if(!this['namespace'])throw new Error('namespace\x20not\x20set');return key_1['KeyService']['mintKey'](this['namespace'],_0x133226,_0x2263c2);}async['subscribe'](_0x1ac571,_0xa5d4a,_0x353d5c,_0x31d5bb){const _0x1513f0=this,_0x3a689a=this['mintKey'](_0x1ac571,{'appId':_0x353d5c,'engineId':_0x31d5bb});await this['eventClient']['subscribe'](_0x3a689a,_0x139fa3=>{_0x139fa3&&_0x1513f0['logger']['error']('Error\x20subscribing\x20to:\x20'+_0x3a689a,_0x139fa3);}),this['eventClient']['on']('message',(_0x15de69,_0x9e996d)=>{if(_0x15de69===_0x3a689a)try{const _0x3151d5=JSON['parse'](_0x9e996d);_0xa5d4a(_0x3a689a,_0x3151d5);}catch(_0x197279){_0x1513f0['logger']['error']('Error\x20parsing\x20message:\x20'+_0x9e996d,_0x197279);}});}async['unsubscribe'](_0x201bbd,_0x10e0aa,_0x145c12){const _0x559e34=this['mintKey'](_0x201bbd,{'appId':_0x10e0aa,'engineId':_0x145c12});await this['eventClient']['unsubscribe'](_0x559e34);}async['psubscribe'](_0x49e259,_0x5ae322,_0x445e1b,_0x2314c1){const _0x39f7e4=this,_0x5e200a=this['mintKey'](_0x49e259,{'appId':_0x445e1b,'engineId':_0x2314c1});await this['eventClient']['psubscribe'](_0x5e200a,_0x1bd314=>{_0x1bd314&&_0x39f7e4['logger']['error']('Error\x20subscribing\x20to:\x20'+_0x5e200a,_0x1bd314);}),this['eventClient']['on']('pmessage',(_0x4a1014,_0x358ff3,_0x62b4c8)=>{if(_0x4a1014===_0x5e200a)try{const _0x382c98=JSON['parse'](_0x62b4c8);_0x5ae322(_0x358ff3,_0x382c98);}catch(_0x5093d6){_0x39f7e4['logger']['error']('Error\x20parsing\x20message:\x20'+_0x62b4c8,_0x5093d6);}});}async['punsubscribe'](_0x5441c3,_0x98145f,_0x41c486){const _0x25293e=this['mintKey'](_0x5441c3,{'appId':_0x98145f,'engineId':_0x41c486});await this['eventClient']['punsubscribe'](_0x25293e);}async['publish'](_0x152478,_0x3536ee,_0x4f538e,_0x46a7ed){const _0x496722=this['mintKey'](_0x152478,{'appId':_0x4f538e,'engineId':_0x46a7ed}),_0x4d02d8=await this['storeClient']['publish'](_0x496722,JSON['stringify'](_0x3536ee));return _0x4d02d8===0x1;}}function _0x3fa9(){const _0x4d46d2=['752022PuMctu','67432ueahcI','4703447kkbEoj','301460MLvQLr','3007450BfzMAi','3468000uzUgze','5531120HFXdzm','6SIPJlC'];_0x3fa9=function(){return _0x4d46d2;};return _0x3fa9();}exports['IORedisSubService']=IORedisSubService;
@@ -1,12 +1,12 @@
1
1
  import { KeyStoreParams, KeyType } from '../../../../modules/key';
2
2
  import { ILogger } from '../../../logger';
3
3
  import { SubService } from '../../index';
4
- import { RedisRedisClientType as RedisClientType, RedisRedisMultiType as RedisMultiType } from '../../../../types/redis';
4
+ import { RedisRedisClientType as ClientProvider, RedisRedisMultiType as TransactionProvider } from '../../../../types/redis';
5
5
  import { SubscriptionCallback } from '../../../../types/quorum';
6
- declare class RedisSubService extends SubService<RedisClientType, RedisMultiType> {
7
- constructor(eventClient: RedisClientType, storeClient: RedisClientType);
6
+ declare class RedisSubService extends SubService<ClientProvider, TransactionProvider> {
7
+ constructor(eventClient: ClientProvider, storeClient: ClientProvider);
8
8
  init(namespace: string, appId: string, engineId: string, logger: ILogger): Promise<void>;
9
- getMulti(): RedisMultiType;
9
+ transact(): TransactionProvider;
10
10
  mintKey(type: KeyType, params: KeyStoreParams): string;
11
11
  subscribe(keyType: KeyType.QUORUM, callback: SubscriptionCallback, appId: string, engineId?: string): Promise<void>;
12
12
  unsubscribe(keyType: KeyType.QUORUM, appId: string, engineId?: string): Promise<void>;
@@ -1 +1 @@
1
- 'use strict';(function(_0x52fffa,_0x3b8e75){const _0x1474c0=_0x7eae,_0x13c407=_0x52fffa();while(!![]){try{const _0x1421b9=parseInt(_0x1474c0(0xc7))/0x1+parseInt(_0x1474c0(0xc4))/0x2*(parseInt(_0x1474c0(0xc8))/0x3)+parseInt(_0x1474c0(0xc6))/0x4+parseInt(_0x1474c0(0xc5))/0x5+-parseInt(_0x1474c0(0xc9))/0x6*(-parseInt(_0x1474c0(0xc3))/0x7)+parseInt(_0x1474c0(0xc2))/0x8+parseInt(_0x1474c0(0xc1))/0x9*(-parseInt(_0x1474c0(0xc0))/0xa);if(_0x1421b9===_0x3b8e75)break;else _0x13c407['push'](_0x13c407['shift']());}catch(_0x32a4b3){_0x13c407['push'](_0x13c407['shift']());}}}(_0x4d68,0xdb528));Object['defineProperty'](exports,'__esModule',{'value':!![]}),exports['RedisSubService']=void 0x0;const key_1=require('../../../../modules/key'),index_1=require('../../index');function _0x7eae(_0x1a4648,_0x50bd6d){const _0x4d6857=_0x4d68();return _0x7eae=function(_0x7eae9d,_0x482139){_0x7eae9d=_0x7eae9d-0xc0;let _0x5a1be8=_0x4d6857[_0x7eae9d];return _0x5a1be8;},_0x7eae(_0x1a4648,_0x50bd6d);}function _0x4d68(){const _0x3c2c87=['10448248XrgBpq','91wykINc','12ybsKFZ','4535260tJgktY','351336KuMlKn','260625LsyAXo','304629OybkWs','723642rpkoUz','38403470UnxaeR','9hNmGbM'];_0x4d68=function(){return _0x3c2c87;};return _0x4d68();}class RedisSubService extends index_1['SubService']{constructor(_0x5b0e54,_0x489b0e){super(_0x5b0e54,_0x489b0e);}async['init'](_0x520489=key_1['HMNS'],_0x339e65,_0x42596f,_0xa76a54){this['namespace']=_0x520489,this['logger']=_0xa76a54,this['appId']=_0x339e65;}['getMulti'](){const _0x5e79fa=this['eventClient']['multi']();return _0x5e79fa;}['mintKey'](_0x3ae1d8,_0x3fb409){if(!this['namespace'])throw new Error('namespace\x20not\x20set');return key_1['KeyService']['mintKey'](this['namespace'],_0x3ae1d8,_0x3fb409);}async['subscribe'](_0x3069ed,_0x26bb8d,_0x3e1827,_0x4994e){if(this['eventClient']){const _0x42dd67=this,_0x5707cb=this['mintKey'](_0x3069ed,{'appId':_0x3e1827,'engineId':_0x4994e});await this['eventClient']['subscribe'](_0x5707cb,_0x2871df=>{try{const _0xd1f131=JSON['parse'](_0x2871df);_0x26bb8d(_0x5707cb,_0xd1f131);}catch(_0x432d16){_0x42dd67['logger']['error']('Error\x20parsing\x20message:\x20'+_0x2871df,_0x432d16);}});}}async['unsubscribe'](_0x34c3ed,_0x16b78a,_0x7bf929){const _0x283286=this['mintKey'](_0x34c3ed,{'appId':_0x16b78a,'engineId':_0x7bf929});await this['eventClient']['unsubscribe'](_0x283286);}async['psubscribe'](_0x18b275,_0x13e36b,_0x47eeb6,_0x2a7ab3){if(this['eventClient']){const _0x1467f3=this,_0x406aae=this['mintKey'](_0x18b275,{'appId':_0x47eeb6,'engineId':_0x2a7ab3});await this['eventClient']['pSubscribe'](_0x406aae,(_0x7098e,_0x5ba37b)=>{try{const _0x2cd4a7=JSON['parse'](_0x7098e);_0x13e36b(_0x5ba37b,_0x2cd4a7);}catch(_0x4e0b33){_0x1467f3['logger']['error']('Error\x20parsing\x20message:\x20'+_0x7098e,_0x4e0b33);}});}}async['punsubscribe'](_0x1fd302,_0x5a96ea,_0x47dafa){const _0x5219a6=this['mintKey'](_0x1fd302,{'appId':_0x5a96ea,'engineId':_0x47dafa});await this['eventClient']['pUnsubscribe'](_0x5219a6);}async['publish'](_0x5b3e7a,_0x58f7e1,_0x40ccfe,_0x515597){const _0x44f4a5=this['mintKey'](_0x5b3e7a,{'appId':_0x40ccfe,'engineId':_0x515597}),_0x5ee3f1=await this['storeClient']['publish'](_0x44f4a5,JSON['stringify'](_0x58f7e1));return _0x5ee3f1>0x0;}}exports['RedisSubService']=RedisSubService;
1
+ 'use strict';(function(_0x409dd9,_0x22280b){const _0xc72929=_0x19e9,_0x22aa6f=_0x409dd9();while(!![]){try{const _0x268eba=-parseInt(_0xc72929(0x89))/0x1+-parseInt(_0xc72929(0x8a))/0x2*(-parseInt(_0xc72929(0x86))/0x3)+-parseInt(_0xc72929(0x8c))/0x4+-parseInt(_0xc72929(0x8b))/0x5+-parseInt(_0xc72929(0x8d))/0x6+parseInt(_0xc72929(0x87))/0x7*(parseInt(_0xc72929(0x85))/0x8)+parseInt(_0xc72929(0x88))/0x9;if(_0x268eba===_0x22280b)break;else _0x22aa6f['push'](_0x22aa6f['shift']());}catch(_0x53427c){_0x22aa6f['push'](_0x22aa6f['shift']());}}}(_0x394c,0x76154));Object['defineProperty'](exports,'__esModule',{'value':!![]}),exports['RedisSubService']=void 0x0;function _0x19e9(_0x245abe,_0x70cfe8){const _0x394cac=_0x394c();return _0x19e9=function(_0x19e945,_0x320b02){_0x19e945=_0x19e945-0x85;let _0x164fa9=_0x394cac[_0x19e945];return _0x164fa9;},_0x19e9(_0x245abe,_0x70cfe8);}const key_1=require('../../../../modules/key'),index_1=require('../../index');function _0x394c(){const _0x1099e1=['3922720RSRxvl','3298932FoMvZQ','208428HQnnsh','8616aSfHbx','533217iaSPfK','3962VszKeg','20346678wPvxBN','920380jENunU','2JcVpvG'];_0x394c=function(){return _0x1099e1;};return _0x394c();}class RedisSubService extends index_1['SubService']{constructor(_0x48069f,_0x15633a){super(_0x48069f,_0x15633a);}async['init'](_0x43d417=key_1['HMNS'],_0x2c49e9,_0x24fac2,_0x4a1205){this['namespace']=_0x43d417,this['logger']=_0x4a1205,this['appId']=_0x2c49e9;}['transact'](){const _0x13ddf7=this['eventClient']['multi']();return _0x13ddf7;}['mintKey'](_0x51f539,_0xb2ed5d){if(!this['namespace'])throw new Error('namespace\x20not\x20set');return key_1['KeyService']['mintKey'](this['namespace'],_0x51f539,_0xb2ed5d);}async['subscribe'](_0x2871ec,_0xf24e20,_0xbba844,_0x5bc6e8){if(this['eventClient']){const _0x5db5de=this,_0x5b2eeb=this['mintKey'](_0x2871ec,{'appId':_0xbba844,'engineId':_0x5bc6e8});await this['eventClient']['subscribe'](_0x5b2eeb,_0x30ccd3=>{try{const _0x29b9ad=JSON['parse'](_0x30ccd3);_0xf24e20(_0x5b2eeb,_0x29b9ad);}catch(_0x2da7f9){_0x5db5de['logger']['error']('Error\x20parsing\x20message:\x20'+_0x30ccd3,_0x2da7f9);}});}}async['unsubscribe'](_0x5797ca,_0x33a629,_0x20d909){const _0x11497a=this['mintKey'](_0x5797ca,{'appId':_0x33a629,'engineId':_0x20d909});await this['eventClient']['unsubscribe'](_0x11497a);}async['psubscribe'](_0x176511,_0x2395a1,_0xe80ce1,_0xbb5fee){if(this['eventClient']){const _0x31298f=this,_0x1fb9a1=this['mintKey'](_0x176511,{'appId':_0xe80ce1,'engineId':_0xbb5fee});await this['eventClient']['pSubscribe'](_0x1fb9a1,(_0x4a48b8,_0x30362e)=>{try{const _0x31933d=JSON['parse'](_0x4a48b8);_0x2395a1(_0x30362e,_0x31933d);}catch(_0x11057e){_0x31298f['logger']['error']('Error\x20parsing\x20message:\x20'+_0x4a48b8,_0x11057e);}});}}async['punsubscribe'](_0x110002,_0x5c749a,_0x3a9d71){const _0x2c6a55=this['mintKey'](_0x110002,{'appId':_0x5c749a,'engineId':_0x3a9d71});await this['eventClient']['pUnsubscribe'](_0x2c6a55);}async['publish'](_0x4fe92d,_0x5ddfce,_0x42bfe9,_0x1fc528){const _0x4f6ac7=this['mintKey'](_0x4fe92d,{'appId':_0x42bfe9,'engineId':_0x1fc528}),_0x1651e3=await this['storeClient']['publish'](_0x4f6ac7,JSON['stringify'](_0x5ddfce));return _0x1651e3>0x0;}}exports['RedisSubService']=RedisSubService;
@@ -3,24 +3,24 @@ import { ILogger } from '../logger';
3
3
  import { StoreService } from '../store';
4
4
  import { HookInterface, HookRule } from '../../types/hook';
5
5
  import { JobCompletionOptions, JobState } from '../../types/job';
6
- import { RedisClient, RedisMulti } from '../../types/redis';
6
+ import { ProviderClient, ProviderTransaction } from '../../types/provider';
7
7
  import { WorkListTaskType } from '../../types/task';
8
8
  declare class TaskService {
9
- store: StoreService<RedisClient, RedisMulti>;
9
+ store: StoreService<ProviderClient, ProviderTransaction>;
10
10
  logger: ILogger;
11
11
  cleanupTimeout: NodeJS.Timeout | null;
12
12
  isScout: boolean;
13
13
  errorCount: number;
14
- constructor(store: StoreService<RedisClient, RedisMulti>, logger: ILogger);
14
+ constructor(store: StoreService<ProviderClient, ProviderTransaction>, logger: ILogger);
15
15
  processWebHooks(hookEventCallback: HookInterface): Promise<void>;
16
16
  enqueueWorkItems(keys: string[]): Promise<void>;
17
17
  registerJobForCleanup(jobId: string, inSeconds: number, options: JobCompletionOptions): Promise<void>;
18
- registerTimeHook(jobId: string, gId: string, activityId: string, type: WorkListTaskType, inSeconds: number, dad: string, multi?: RedisMulti): Promise<void>;
18
+ registerTimeHook(jobId: string, gId: string, activityId: string, type: WorkListTaskType, inSeconds: number, dad: string, transaction?: ProviderTransaction): Promise<void>;
19
19
  shouldScout(): Promise<boolean>;
20
20
  processTimeHooks(timeEventCallback: (jobId: string, gId: string, activityId: string, type: WorkListTaskType) => Promise<void>, listKey?: string): Promise<void>;
21
21
  cancelCleanup(): void;
22
22
  getHookRule(topic: string): Promise<HookRule | undefined>;
23
- registerWebHook(topic: string, context: JobState, dad: string, expire: number, multi?: RedisMulti): Promise<string>;
23
+ registerWebHook(topic: string, context: JobState, dad: string, expire: number, transaction?: ProviderTransaction): Promise<string>;
24
24
  processWebHookSignal(topic: string, data: Record<string, unknown>): Promise<[string, string, string, string] | undefined>;
25
25
  deleteWebHookSignal(topic: string, data: Record<string, unknown>): Promise<number>;
26
26
  }
@@ -1 +1 @@
1
- 'use strict';(function(_0x26181d,_0x52eead){const _0x1e6770=_0x4508,_0x102a1c=_0x26181d();while(!![]){try{const _0x1bddce=-parseInt(_0x1e6770(0x1bc))/0x1*(parseInt(_0x1e6770(0x1b9))/0x2)+-parseInt(_0x1e6770(0x1c1))/0x3*(parseInt(_0x1e6770(0x1bf))/0x4)+parseInt(_0x1e6770(0x1ba))/0x5+-parseInt(_0x1e6770(0x1b8))/0x6+parseInt(_0x1e6770(0x1c0))/0x7+parseInt(_0x1e6770(0x1be))/0x8+-parseInt(_0x1e6770(0x1bd))/0x9*(-parseInt(_0x1e6770(0x1bb))/0xa);if(_0x1bddce===_0x52eead)break;else _0x102a1c['push'](_0x102a1c['shift']());}catch(_0xf15315){_0x102a1c['push'](_0x102a1c['shift']());}}}(_0x5637,0x6c58d));Object['defineProperty'](exports,'__esModule',{'value':!![]}),exports['TaskService']=void 0x0;const enums_1=require('../../modules/enums'),utils_1=require('../../modules/utils'),pipe_1=require('../pipe'),hotmesh_1=require('../../types/hotmesh'),key_1=require('../../modules/key');class TaskService{constructor(_0x3a41b1,_0x1411a4){this['cleanupTimeout']=null,this['isScout']=![],this['errorCount']=0x0,this['logger']=_0x1411a4,this['store']=_0x3a41b1;}async['processWebHooks'](_0x41a51a){const _0x554543=await this['store']['getActiveTaskQueue']();if(_0x554543){const [_0x353f4a,_0x143a55,_0x242d18,..._0x395e76]=_0x554543['split'](key_1['WEBSEP']),_0x2eca9b=JSON['parse'](_0x395e76['join'](key_1['WEBSEP'])),_0x4eae6c=_0x143a55+':processed',_0x4774ae=await this['store']['processTaskQueue'](_0x143a55,_0x4eae6c);_0x4774ae?await _0x41a51a(_0x353f4a,{..._0x2eca9b,'id':_0x4774ae}):await this['store']['deleteProcessedTaskQueue'](_0x554543,_0x143a55,_0x4eae6c,_0x242d18==='true'),setImmediate(()=>this['processWebHooks'](_0x41a51a));}}async['enqueueWorkItems'](_0xf3d214){await this['store']['addTaskQueues'](_0xf3d214);}async['registerJobForCleanup'](_0x15d53c,_0x80c4af=enums_1['HMSH_EXPIRE_DURATION'],_0x23de7a){_0x80c4af>0x0&&await this['store']['expireJob'](_0x15d53c,_0x80c4af);}async['registerTimeHook'](_0x28c4ce,_0x72178b,_0x2e8975,_0x59691f,_0x309ff5=enums_1['HMSH_FIDELITY_SECONDS'],_0x373643,_0x13c464){const _0x273611=Date['now']()+_0x309ff5*0x3e8,_0x382b5d=enums_1['HMSH_FIDELITY_SECONDS']*0x3e8,_0x569b7e=Math['floor'](_0x273611/_0x382b5d)*_0x382b5d;await this['store']['registerTimeHook'](_0x28c4ce,_0x72178b,_0x2e8975,_0x59691f,_0x569b7e,_0x373643,_0x13c464);}async['shouldScout'](){const _0x32bb83=this['isScout'],_0x1fce95=_0x32bb83||(this['isScout']=await this['store']['reserveScoutRole']('time'));if(_0x1fce95)return!_0x32bb83&&setTimeout(()=>{this['isScout']=![];},enums_1['HMSH_SCOUT_INTERVAL_SECONDS']*0x3e8),!![];return![];}async['processTimeHooks'](_0x2b1577,_0x19ab23){if(await this['shouldScout']())try{const _0x44650c=await this['store']['getNextTask'](_0x19ab23);if(Array['isArray'](_0x44650c)){const [_0x3b475b,_0x4f4717,_0x19bf08,_0x3f46a9,_0x2c9834]=_0x44650c;if(_0x2c9834==='child'){}else{if(_0x2c9834==='delist'){const _0x69794d=this['store']['mintKey'](hotmesh_1['KeyType']['SIGNALS'],{'appId':this['store']['appId']});await this['store']['delistSignalKey'](_0x69794d,_0x4f4717);}else await _0x2b1577(_0x4f4717,_0x19bf08,_0x3f46a9,_0x2c9834);}await(0x0,utils_1['sleepFor'])(0x0),this['errorCount']=0x0,this['processTimeHooks'](_0x2b1577,_0x3b475b);}else{if(_0x44650c)await(0x0,utils_1['sleepFor'])(0x0),this['errorCount']=0x0,this['processTimeHooks'](_0x2b1577);else{const _0x51a2df=(0x0,utils_1['XSleepFor'])(enums_1['HMSH_FIDELITY_SECONDS']*0x3e8);this['cleanupTimeout']=_0x51a2df['timerId'],await _0x51a2df['promise'],this['errorCount']=0x0,this['processTimeHooks'](_0x2b1577);}}}catch(_0x34029f){this['logger']['warn']('task-process-timehooks-error',_0x34029f),await(0x0,utils_1['sleepFor'])(0x3e8*this['errorCount']++),this['errorCount']<0x5&&this['processTimeHooks'](_0x2b1577);}else{const _0x1f952a=(0x0,utils_1['XSleepFor'])(enums_1['HMSH_SCOUT_INTERVAL_SECONDS']*0x3e8*0x2*Math['random']());this['cleanupTimeout']=_0x1f952a['timerId'],await _0x1f952a['promise'],this['processTimeHooks'](_0x2b1577);}}['cancelCleanup'](){this['cleanupTimeout']!==undefined&&(clearTimeout(this['cleanupTimeout']),this['cleanupTimeout']=undefined);}async['getHookRule'](_0x41a000){const _0x13c138=await this['store']['getHookRules']();return _0x13c138?.[_0x41a000]?.[0x0];}async['registerWebHook'](_0x31d216,_0x233162,_0x2850f0,_0x4edc34,_0x1c99ef){const _0x4c745f=await this['getHookRule'](_0x31d216);if(_0x4c745f){const _0x3fefe3=_0x4c745f['conditions']['match'][0x0]['expected'],_0x325830=pipe_1['Pipe']['resolve'](_0x3fefe3,_0x233162),_0x11e0da=_0x233162['metadata']['jid'],_0x92993=_0x233162['metadata']['gid'],_0x4ddf03=_0x4c745f['to'],_0x58fbf5=[_0x4ddf03,_0x2850f0,_0x92993,_0x11e0da]['join'](key_1['WEBSEP']),_0x5b9ad3={'topic':_0x31d216,'resolved':_0x325830,'jobId':_0x58fbf5,'expire':_0x4edc34};return await this['store']['setHookSignal'](_0x5b9ad3,_0x1c99ef),_0x11e0da;}else throw new Error('signaler.registerWebHook:error:\x20hook\x20rule\x20not\x20found');}async['processWebHookSignal'](_0x11b6e9,_0x1636f6){const _0x1fcbe2=await this['getHookRule'](_0x11b6e9);if(_0x1fcbe2){const _0x1abeae={'$self':{'hook':{'data':_0x1636f6}},'$hook':{'data':_0x1636f6}},_0x3e8287=_0x1fcbe2['conditions']['match'][0x0]['actual'],_0x5ad578=pipe_1['Pipe']['resolve'](_0x3e8287,_0x1abeae),_0x507e3f=await this['store']['getHookSignal'](_0x11b6e9,_0x5ad578);if(!_0x507e3f)return undefined;const [_0x56180a,_0x2bd2d2,_0x33ac04,..._0x4c96ad]=_0x507e3f['split'](key_1['WEBSEP']);return[_0x4c96ad['join'](key_1['WEBSEP']),_0x1fcbe2['to'],_0x2bd2d2,_0x33ac04];}else throw new Error('signal-not-found');}async['deleteWebHookSignal'](_0x5304d1,_0x5724a0){const _0x2bebfb=await this['getHookRule'](_0x5304d1);if(_0x2bebfb){const _0x44b97d={'$self':{'hook':{'data':_0x5724a0}},'$hook':{'data':_0x5724a0}},_0x2c1003=_0x2bebfb['conditions']['match'][0x0]['actual'],_0x5f36d0=pipe_1['Pipe']['resolve'](_0x2c1003,_0x44b97d);return await this['store']['deleteHookSignal'](_0x5304d1,_0x5f36d0);}else throw new Error('signaler.process:error:\x20hook\x20rule\x20not\x20found');}}exports['TaskService']=TaskService;function _0x4508(_0x1239d7,_0x20e4af){const _0x563750=_0x5637();return _0x4508=function(_0x450822,_0x4d2fb2){_0x450822=_0x450822-0x1b8;let _0x3886ae=_0x563750[_0x450822];return _0x3886ae;},_0x4508(_0x1239d7,_0x20e4af);}function _0x5637(){const _0x4a1ba9=['891kstixb','3959856nwwefi','4281856lEuwEA','3556GTzDNx','5593210jmuCYi','2715FyJWKA','1347972VesaWv','1816HcoFdx','2538890QbQXCT','10McNCJM'];_0x5637=function(){return _0x4a1ba9;};return _0x5637();}
1
+ 'use strict';(function(_0x4d0fdd,_0x3a2255){const _0x382c0c=_0x3225,_0x30b394=_0x4d0fdd();while(!![]){try{const _0x3fa072=parseInt(_0x382c0c(0x85))/0x1+-parseInt(_0x382c0c(0x82))/0x2*(-parseInt(_0x382c0c(0x83))/0x3)+parseInt(_0x382c0c(0x81))/0x4+parseInt(_0x382c0c(0x86))/0x5*(parseInt(_0x382c0c(0x7d))/0x6)+parseInt(_0x382c0c(0x80))/0x7*(-parseInt(_0x382c0c(0x7f))/0x8)+parseInt(_0x382c0c(0x7e))/0x9+-parseInt(_0x382c0c(0x84))/0xa;if(_0x3fa072===_0x3a2255)break;else _0x30b394['push'](_0x30b394['shift']());}catch(_0x550b2f){_0x30b394['push'](_0x30b394['shift']());}}}(_0x3e1f,0x6b96a));Object['defineProperty'](exports,'__esModule',{'value':!![]}),exports['TaskService']=void 0x0;const enums_1=require('../../modules/enums'),utils_1=require('../../modules/utils'),pipe_1=require('../pipe'),hotmesh_1=require('../../types/hotmesh'),key_1=require('../../modules/key');class TaskService{constructor(_0x4da4a2,_0x22fe6b){this['cleanupTimeout']=null,this['isScout']=![],this['errorCount']=0x0,this['logger']=_0x22fe6b,this['store']=_0x4da4a2;}async['processWebHooks'](_0x1e43f9){const _0xafbbf7=await this['store']['getActiveTaskQueue']();if(_0xafbbf7){const [_0xe54e20,_0xf97d2d,_0x57fff9,..._0x517147]=_0xafbbf7['split'](key_1['WEBSEP']),_0x430282=JSON['parse'](_0x517147['join'](key_1['WEBSEP'])),_0x1ac1e4=_0xf97d2d+':processed',_0x3a2c34=await this['store']['processTaskQueue'](_0xf97d2d,_0x1ac1e4);_0x3a2c34?await _0x1e43f9(_0xe54e20,{..._0x430282,'id':_0x3a2c34}):await this['store']['deleteProcessedTaskQueue'](_0xafbbf7,_0xf97d2d,_0x1ac1e4,_0x57fff9==='true'),setImmediate(()=>this['processWebHooks'](_0x1e43f9));}}async['enqueueWorkItems'](_0x4eec65){await this['store']['addTaskQueues'](_0x4eec65);}async['registerJobForCleanup'](_0x181f62,_0x1818b4=enums_1['HMSH_EXPIRE_DURATION'],_0x5b38a9){_0x1818b4>0x0&&await this['store']['expireJob'](_0x181f62,_0x1818b4);}async['registerTimeHook'](_0xf7a250,_0x1f1b78,_0x56dc72,_0x399ae5,_0x3bac7a=enums_1['HMSH_FIDELITY_SECONDS'],_0x411aab,_0x388121){const _0x3c5ecc=Date['now']()+_0x3bac7a*0x3e8,_0x3eac34=enums_1['HMSH_FIDELITY_SECONDS']*0x3e8,_0x481036=Math['floor'](_0x3c5ecc/_0x3eac34)*_0x3eac34;await this['store']['registerTimeHook'](_0xf7a250,_0x1f1b78,_0x56dc72,_0x399ae5,_0x481036,_0x411aab,_0x388121);}async['shouldScout'](){const _0xc79b76=this['isScout'],_0x3bd7fa=_0xc79b76||(this['isScout']=await this['store']['reserveScoutRole']('time'));if(_0x3bd7fa)return!_0xc79b76&&setTimeout(()=>{this['isScout']=![];},enums_1['HMSH_SCOUT_INTERVAL_SECONDS']*0x3e8),!![];return![];}async['processTimeHooks'](_0x34ffc1,_0x2a5663){if(await this['shouldScout']())try{const _0x3b6eed=await this['store']['getNextTask'](_0x2a5663);if(Array['isArray'](_0x3b6eed)){const [_0x2ecd64,_0x9eb4df,_0xd11c9a,_0x2afe89,_0xfa8ecf]=_0x3b6eed;if(_0xfa8ecf==='child'){}else{if(_0xfa8ecf==='delist'){const _0x17fcea=this['store']['mintKey'](hotmesh_1['KeyType']['SIGNALS'],{'appId':this['store']['appId']});await this['store']['delistSignalKey'](_0x17fcea,_0x9eb4df);}else await _0x34ffc1(_0x9eb4df,_0xd11c9a,_0x2afe89,_0xfa8ecf);}await(0x0,utils_1['sleepFor'])(0x0),this['errorCount']=0x0,this['processTimeHooks'](_0x34ffc1,_0x2ecd64);}else{if(_0x3b6eed)await(0x0,utils_1['sleepFor'])(0x0),this['errorCount']=0x0,this['processTimeHooks'](_0x34ffc1);else{const _0x54be3e=(0x0,utils_1['XSleepFor'])(enums_1['HMSH_FIDELITY_SECONDS']*0x3e8);this['cleanupTimeout']=_0x54be3e['timerId'],await _0x54be3e['promise'],this['errorCount']=0x0,this['processTimeHooks'](_0x34ffc1);}}}catch(_0x39e877){this['logger']['warn']('task-process-timehooks-error',_0x39e877),await(0x0,utils_1['sleepFor'])(0x3e8*this['errorCount']++),this['errorCount']<0x5&&this['processTimeHooks'](_0x34ffc1);}else{const _0x352a68=(0x0,utils_1['XSleepFor'])(enums_1['HMSH_SCOUT_INTERVAL_SECONDS']*0x3e8*0x2*Math['random']());this['cleanupTimeout']=_0x352a68['timerId'],await _0x352a68['promise'],this['processTimeHooks'](_0x34ffc1);}}['cancelCleanup'](){this['cleanupTimeout']!==undefined&&(clearTimeout(this['cleanupTimeout']),this['cleanupTimeout']=undefined);}async['getHookRule'](_0x563980){const _0xab47fd=await this['store']['getHookRules']();return _0xab47fd?.[_0x563980]?.[0x0];}async['registerWebHook'](_0x4709f3,_0x1063b8,_0x315f36,_0x2711ad,_0x235ada){const _0x2aed4d=await this['getHookRule'](_0x4709f3);if(_0x2aed4d){const _0x4c0972=_0x2aed4d['conditions']['match'][0x0]['expected'],_0x12c610=pipe_1['Pipe']['resolve'](_0x4c0972,_0x1063b8),_0x35e23b=_0x1063b8['metadata']['jid'],_0x4ff6b0=_0x1063b8['metadata']['gid'],_0x3fbb21=_0x2aed4d['to'],_0x24d7a6=[_0x3fbb21,_0x315f36,_0x4ff6b0,_0x35e23b]['join'](key_1['WEBSEP']),_0x352ad9={'topic':_0x4709f3,'resolved':_0x12c610,'jobId':_0x24d7a6,'expire':_0x2711ad};return await this['store']['setHookSignal'](_0x352ad9,_0x235ada),_0x35e23b;}else throw new Error('signaler.registerWebHook:error:\x20hook\x20rule\x20not\x20found');}async['processWebHookSignal'](_0x2ae69a,_0x22d661){const _0xbbdca=await this['getHookRule'](_0x2ae69a);if(_0xbbdca){const _0x4dadef={'$self':{'hook':{'data':_0x22d661}},'$hook':{'data':_0x22d661}},_0x4a93dd=_0xbbdca['conditions']['match'][0x0]['actual'],_0x2cf6c9=pipe_1['Pipe']['resolve'](_0x4a93dd,_0x4dadef),_0x4fdcf8=await this['store']['getHookSignal'](_0x2ae69a,_0x2cf6c9);if(!_0x4fdcf8)return undefined;const [_0x3de97c,_0xd5813d,_0x74cf6c,..._0x44b1ce]=_0x4fdcf8['split'](key_1['WEBSEP']);return[_0x44b1ce['join'](key_1['WEBSEP']),_0xbbdca['to'],_0xd5813d,_0x74cf6c];}else throw new Error('signal-not-found');}async['deleteWebHookSignal'](_0x23c2ae,_0x353711){const _0x59a896=await this['getHookRule'](_0x23c2ae);if(_0x59a896){const _0x17396f={'$self':{'hook':{'data':_0x353711}},'$hook':{'data':_0x353711}},_0x207673=_0x59a896['conditions']['match'][0x0]['actual'],_0x196d2c=pipe_1['Pipe']['resolve'](_0x207673,_0x17396f);return await this['store']['deleteHookSignal'](_0x23c2ae,_0x196d2c);}else throw new Error('signaler.process:error:\x20hook\x20rule\x20not\x20found');}}function _0x3e1f(){const _0x88a05c=['11735sptsZx','1548tyOEbC','3636603biHpAU','152FYGqSt','38059wsCbSD','2562472umnugY','891516FNBqRQ','3ZgDYVE','18303910BzEkoa','278407BmKHbN'];_0x3e1f=function(){return _0x88a05c;};return _0x3e1f();}function _0x3225(_0x30eb6d,_0x4f1495){const _0x3e1f18=_0x3e1f();return _0x3225=function(_0x322551,_0x253267){_0x322551=_0x322551-0x7d;let _0xc58d9=_0x3e1f18[_0x322551];return _0xc58d9;},_0x3225(_0x30eb6d,_0x4f1495);}exports['TaskService']=TaskService;
@@ -1 +1 @@
1
- 'use strict';function _0x54f6(){const _0x2dc0a4=['11BnHJNk','3815dkgGoC','10356vKYsce','466262rMpfLy','1534770DXPPdl','15512RbQRBL','1983968DSGOcs','3537roSujV','34879730gnBbbL','4622336OKkTYK','6tMFQxd'];_0x54f6=function(){return _0x2dc0a4;};return _0x54f6();}(function(_0x3e1ec2,_0x452542){const _0x2876fc=_0x2586,_0x72f43f=_0x3e1ec2();while(!![]){try{const _0x5411a0=-parseInt(_0x2876fc(0xec))/0x1*(-parseInt(_0x2876fc(0xf0))/0x2)+-parseInt(_0x2876fc(0xf1))/0x3+-parseInt(_0x2876fc(0xeb))/0x4+parseInt(_0x2876fc(0xee))/0x5*(-parseInt(_0x2876fc(0xef))/0x6)+-parseInt(_0x2876fc(0xf3))/0x7+parseInt(_0x2876fc(0xf2))/0x8*(-parseInt(_0x2876fc(0xe9))/0x9)+-parseInt(_0x2876fc(0xea))/0xa*(-parseInt(_0x2876fc(0xed))/0xb);if(_0x5411a0===_0x452542)break;else _0x72f43f['push'](_0x72f43f['shift']());}catch(_0x424a2c){_0x72f43f['push'](_0x72f43f['shift']());}}}(_0x54f6,0xd146c));function _0x2586(_0x5a08be,_0x2803ff){const _0x54f68c=_0x54f6();return _0x2586=function(_0x258620,_0x355d0d){_0x258620=_0x258620-0xe9;let _0x2906ae=_0x54f68c[_0x258620];return _0x2906ae;},_0x2586(_0x5a08be,_0x2803ff);}var __importDefault=this&&this['__importDefault']||function(_0x3558b8){return _0x3558b8&&_0x3558b8['__esModule']?_0x3558b8:{'default':_0x3558b8};};Object['defineProperty'](exports,'__esModule',{'value':!![]}),exports['TelemetryService']=void 0x0;const package_json_1=__importDefault(require('../../package.json')),mapper_1=require('../mapper'),stream_1=require('../../types/stream'),telemetry_1=require('../../types/telemetry'),utils_1=require('../../modules/utils');class TelemetryService{constructor(_0x3887c8,_0xa3eeef,_0x52d368,_0x3e8bdc){this['leg']=0x1,this['appId']=_0x3887c8,this['config']=_0xa3eeef,this['metadata']=_0x52d368,this['context']=_0x3e8bdc;}['getJobParentSpanId'](){return this['context']['metadata']['spn'];}['getActivityParentSpanId'](_0x3ca853){return _0x3ca853===0x1?this['context'][this['config']['parent']]['output']?.['metadata']?.['l2s']:this['context']['$self']['output']?.['metadata']?.['l1s'];}['getTraceId'](){return this['context']['metadata']['trc'];}['startJobSpan'](){const _0x56f44b='JOB/'+this['appId']+'/'+this['config']['subscribes']+'/1',_0x25ecfe=this['getTraceId'](),_0xe3682c=this['getJobParentSpanId'](),_0x57c17a=this['getSpanAttrs'](0x1),_0x1c1d12=this['startSpan'](_0x25ecfe,_0xe3682c,_0x56f44b,_0x57c17a);return this['jobSpan']=_0x1c1d12,this['setTelemetryContext'](_0x1c1d12,0x1),this;}['startActivitySpan'](_0x169a91=this['leg']){const _0x1d02a1=this['config']['type']['toUpperCase']()+'/'+this['appId']+'/'+this['metadata']['aid']+'/'+_0x169a91,_0x3e88fa=this['getTraceId'](),_0x32ea3d=this['getActivityParentSpanId'](_0x169a91),_0x460731=this['getSpanAttrs'](_0x169a91),_0x1dc4e6=this['startSpan'](_0x3e88fa,_0x32ea3d,_0x1d02a1,_0x460731);return this['setTelemetryContext'](_0x1dc4e6,_0x169a91),this['span']=_0x1dc4e6,this;}['startStreamSpan'](_0x2a188d,_0x52a9d7){let _0x58084f;if(_0x52a9d7===stream_1['StreamRole']['SYSTEM'])_0x58084f='SYSTEM';else{if(_0x52a9d7===stream_1['StreamRole']['WORKER'])_0x58084f='EXECUTE';else _0x2a188d['type']===stream_1['StreamDataType']['RESULT']||_0x2a188d['type']===stream_1['StreamDataType']['RESPONSE']?_0x58084f='FANIN':_0x58084f='FANOUT';}const _0x5d42a2=_0x2a188d['metadata']['topic']?'/'+_0x2a188d['metadata']['topic']:'',_0x18c7f5=_0x58084f+'/'+this['appId']+'/'+_0x2a188d['metadata']['aid']+_0x5d42a2,_0xc6520=this['getStreamSpanAttrs'](_0x2a188d),_0x8ffd83=this['startSpan'](_0x2a188d['metadata']['trc'],_0x2a188d['metadata']['spn'],_0x18c7f5,_0xc6520);return this['span']=_0x8ffd83,this;}['startSpan'](_0x3b63cf,_0x205dca,_0x13bfe6,_0x31ebc5){this['traceId']=_0x3b63cf,this['spanId']=_0x205dca;const _0x5e499c=telemetry_1['trace']['getTracer'](package_json_1['default']['name'],package_json_1['default']['version']),_0x2a6767=this['getParentSpanContext'](),_0x4ed0c5=_0x5e499c['startSpan'](_0x13bfe6,{'kind':telemetry_1['SpanKind']['CLIENT'],'attributes':_0x31ebc5,'root':!_0x2a6767},_0x2a6767);return _0x4ed0c5;}['mapActivityAttributes'](){if(this['config']['telemetry']){const _0x459123=new mapper_1['MapperService'](this['config']['telemetry'],this['context'])['mapRules'](),_0x5d4530={...Object['keys'](_0x459123)['reduce']((_0x3661d5,_0x3ac216)=>{return['string','boolean','number']['includes'](typeof _0x459123[_0x3ac216])&&(_0x3661d5['app.activity.data.'+_0x3ac216]=_0x459123[_0x3ac216]),_0x3661d5;},{})};this['span']?.['setAttributes'](_0x5d4530);}}['setActivityAttributes'](_0x2999b2){this['span']?.['setAttributes'](_0x2999b2);}['setStreamAttributes'](_0x28889e){this['span']?.['setAttributes'](_0x28889e);}['setJobAttributes'](_0x53ce4e){this['jobSpan']?.['setAttributes'](_0x53ce4e);}['endJobSpan'](){this['endSpan'](this['jobSpan']);}['endActivitySpan'](){this['endSpan'](this['span']);}['endStreamSpan'](){this['endSpan'](this['span']);}['endSpan'](_0x3cb543){_0x3cb543&&_0x3cb543['end']();}['getParentSpanContext'](){if(this['traceId']&&this['spanId']){const _0x20c1de={'traceId':this['traceId'],'spanId':this['spanId'],'isRemote':!![],'traceFlags':0x1},_0x2a3621=telemetry_1['trace']['setSpanContext'](telemetry_1['context']['active'](),_0x20c1de);return _0x2a3621;}}['getSpanAttrs'](_0x119323){return{...Object['keys'](this['context']['metadata'])['reduce']((_0x5f3aca,_0x3998f3)=>{return _0x3998f3!=='trc'&&(_0x5f3aca['app.job.'+_0x3998f3]=this['context']['metadata'][_0x3998f3]),_0x5f3aca;},{}),...Object['keys'](this['metadata'])['reduce']((_0x5eb4fe,_0x5d7a12)=>{return _0x5eb4fe['app.activity.'+_0x5d7a12]=this['metadata'][_0x5d7a12],_0x5eb4fe;},{}),'app.activity.leg':_0x119323};}['getStreamSpanAttrs'](_0x540659){return{...Object['keys'](_0x540659['metadata'])['reduce']((_0x533cc7,_0x3267c4)=>{return _0x3267c4!=='trc'&&_0x3267c4!=='spn'&&(_0x533cc7['app.stream.'+_0x3267c4]=_0x540659['metadata'][_0x3267c4]),_0x533cc7;},{})};}['setTelemetryContext'](_0xf990b0,_0x121493){!this['context']['metadata']['trc']&&(this['context']['metadata']['trc']=_0xf990b0['spanContext']()['traceId']),_0x121493===0x1?(!this['context']['$self']['output']['metadata']&&(this['context']['$self']['output']['metadata']={}),this['context']['$self']['output']['metadata']['l1s']=_0xf990b0['spanContext']()['spanId']):(!this['context']['$self']['output']['metadata']&&(this['context']['$self']['output']['metadata']={}),this['context']['$self']['output']['metadata']['l2s']=_0xf990b0['spanContext']()['spanId']);}['setActivityError'](_0x2051ae){this['span']?.['setStatus']({'code':telemetry_1['SpanStatusCode']['ERROR'],'message':_0x2051ae});}['setStreamError'](_0x2cc301){this['span']?.['setStatus']({'code':telemetry_1['SpanStatusCode']['ERROR'],'message':_0x2cc301});}static['addTargetTelemetryPaths'](_0x32beaa,_0x4ffe53,_0x2c2094,_0x229d66){_0x229d66===0x1?(!(_0x4ffe53['parent']in _0x32beaa)&&(_0x32beaa[_0x4ffe53['parent']]=[]),_0x32beaa[_0x4ffe53['parent']]['push'](_0x4ffe53['parent']+'/output/metadata/l2s')):(!(_0x2c2094['aid']in _0x32beaa)&&(_0x32beaa[_0x2c2094['aid']]=[]),_0x32beaa[_0x2c2094['aid']]['push'](_0x2c2094['aid']+'/output/metadata/l1s'));}static['bindJobTelemetryToState'](_0xf597f7,_0x13494e,_0x53386f){_0x13494e['type']==='trigger'&&(_0xf597f7['metadata/trc']=_0x53386f['metadata']['trc']);}static['bindActivityTelemetryToState'](_0x5467dd,_0x1ad064,_0x2581e1,_0x531f24,_0x4a101c){if(_0x1ad064['type']==='trigger')_0x5467dd[_0x2581e1['aid']+'/output/metadata/l1s']=_0x531f24['$self']['output']['metadata']['l1s'],_0x5467dd[_0x2581e1['aid']+'/output/metadata/l2s']=_0x531f24['$self']['output']['metadata']['l2s'];else{if(utils_1['polyfill']['resolveActivityType'](_0x1ad064['type'])==='hook'&&_0x4a101c===0x1)_0x5467dd[_0x2581e1['aid']+'/output/metadata/l1s']=_0x531f24['$self']['output']['metadata']['l1s'],_0x5467dd[_0x2581e1['aid']+'/output/metadata/l2s']=_0x531f24['$self']['output']['metadata']['l1s'];else{if(_0x1ad064['type']==='signal'&&_0x4a101c===0x1)_0x5467dd[_0x2581e1['aid']+'/output/metadata/l1s']=_0x531f24['$self']['output']['metadata']['l1s'],_0x5467dd[_0x2581e1['aid']+'/output/metadata/l2s']=_0x531f24['$self']['output']['metadata']['l1s'];else{const _0xa91000='l'+_0x4a101c+'s';_0x5467dd[_0x2581e1['aid']+'/output/metadata/'+_0xa91000]=_0x531f24['$self']['output']['metadata'][_0xa91000];}}}}}exports['TelemetryService']=TelemetryService;
1
+ 'use strict';(function(_0x3158bb,_0x573522){const _0xd93480=_0x5a83,_0x3d8e6f=_0x3158bb();while(!![]){try{const _0x2873a8=parseInt(_0xd93480(0x1f0))/0x1*(parseInt(_0xd93480(0x1f2))/0x2)+-parseInt(_0xd93480(0x1ed))/0x3*(-parseInt(_0xd93480(0x1f1))/0x4)+-parseInt(_0xd93480(0x1ee))/0x5+parseInt(_0xd93480(0x1eb))/0x6+-parseInt(_0xd93480(0x1f4))/0x7+parseInt(_0xd93480(0x1ec))/0x8+parseInt(_0xd93480(0x1f3))/0x9*(-parseInt(_0xd93480(0x1ef))/0xa);if(_0x2873a8===_0x573522)break;else _0x3d8e6f['push'](_0x3d8e6f['shift']());}catch(_0x32f449){_0x3d8e6f['push'](_0x3d8e6f['shift']());}}}(_0x21cd,0xf26bb));var __importDefault=this&&this['__importDefault']||function(_0x16467f){return _0x16467f&&_0x16467f['__esModule']?_0x16467f:{'default':_0x16467f};};Object['defineProperty'](exports,'__esModule',{'value':!![]}),exports['TelemetryService']=void 0x0;const package_json_1=__importDefault(require('../../package.json')),mapper_1=require('../mapper'),stream_1=require('../../types/stream'),telemetry_1=require('../../types/telemetry'),utils_1=require('../../modules/utils');function _0x21cd(){const _0x20f192=['57MhnTLR','7286875JkUTMB','350GMhJVl','1759614kKCqIu','315804yJqFGV','2PLisng','458397ARKwUn','4631662emrrng','3401760HiVpDY','8544064wJlZNM'];_0x21cd=function(){return _0x20f192;};return _0x21cd();}function _0x5a83(_0x1957f6,_0x5c110c){const _0x21cd78=_0x21cd();return _0x5a83=function(_0x5a83cc,_0x2170dd){_0x5a83cc=_0x5a83cc-0x1eb;let _0x4a898c=_0x21cd78[_0x5a83cc];return _0x4a898c;},_0x5a83(_0x1957f6,_0x5c110c);}class TelemetryService{constructor(_0x47c986,_0x1bc5fb,_0x5a1e05,_0x163a31){this['leg']=0x1,this['appId']=_0x47c986,this['config']=_0x1bc5fb,this['metadata']=_0x5a1e05,this['context']=_0x163a31;}['getJobParentSpanId'](){return this['context']['metadata']['spn'];}['getActivityParentSpanId'](_0x5300c6){return _0x5300c6===0x1?this['context'][this['config']['parent']]['output']?.['metadata']?.['l2s']:this['context']['$self']['output']?.['metadata']?.['l1s'];}['getTraceId'](){return this['context']['metadata']['trc'];}['startJobSpan'](){const _0x436663='JOB/'+this['appId']+'/'+this['config']['subscribes']+'/1',_0x383499=this['getTraceId'](),_0x319979=this['getJobParentSpanId'](),_0x155fad=this['getSpanAttrs'](0x1),_0x207d3e=this['startSpan'](_0x383499,_0x319979,_0x436663,_0x155fad);return this['jobSpan']=_0x207d3e,this['setTelemetryContext'](_0x207d3e,0x1),this;}['startActivitySpan'](_0x2f6481=this['leg']){const _0x35af2f=this['config']['type']['toUpperCase']()+'/'+this['appId']+'/'+this['metadata']['aid']+'/'+_0x2f6481,_0x24584c=this['getTraceId'](),_0x476e5b=this['getActivityParentSpanId'](_0x2f6481),_0x22ac5b=this['getSpanAttrs'](_0x2f6481),_0x4a803c=this['startSpan'](_0x24584c,_0x476e5b,_0x35af2f,_0x22ac5b);return this['setTelemetryContext'](_0x4a803c,_0x2f6481),this['span']=_0x4a803c,this;}['startStreamSpan'](_0x1b2163,_0x43b458){let _0xadb8c1;if(_0x43b458===stream_1['StreamRole']['SYSTEM'])_0xadb8c1='SYSTEM';else{if(_0x43b458===stream_1['StreamRole']['WORKER'])_0xadb8c1='EXECUTE';else _0x1b2163['type']===stream_1['StreamDataType']['RESULT']||_0x1b2163['type']===stream_1['StreamDataType']['RESPONSE']?_0xadb8c1='FANIN':_0xadb8c1='FANOUT';}const _0xbe6ed7=_0x1b2163['metadata']['topic']?'/'+_0x1b2163['metadata']['topic']:'',_0x3782d6=_0xadb8c1+'/'+this['appId']+'/'+_0x1b2163['metadata']['aid']+_0xbe6ed7,_0x6c9b6d=this['getStreamSpanAttrs'](_0x1b2163),_0x3b54b1=this['startSpan'](_0x1b2163['metadata']['trc'],_0x1b2163['metadata']['spn'],_0x3782d6,_0x6c9b6d);return this['span']=_0x3b54b1,this;}['startSpan'](_0x268da5,_0x1d7ac4,_0x6f947d,_0xe77be7){this['traceId']=_0x268da5,this['spanId']=_0x1d7ac4;const _0x53ea25=telemetry_1['trace']['getTracer'](package_json_1['default']['name'],package_json_1['default']['version']),_0x2cab42=this['getParentSpanContext'](),_0x220eea=_0x53ea25['startSpan'](_0x6f947d,{'kind':telemetry_1['SpanKind']['CLIENT'],'attributes':_0xe77be7,'root':!_0x2cab42},_0x2cab42);return _0x220eea;}['mapActivityAttributes'](){if(this['config']['telemetry']){const _0x1c8fe6=new mapper_1['MapperService'](this['config']['telemetry'],this['context'])['mapRules'](),_0x308fe3={...Object['keys'](_0x1c8fe6)['reduce']((_0x52cc49,_0x1cb10c)=>{return['string','boolean','number']['includes'](typeof _0x1c8fe6[_0x1cb10c])&&(_0x52cc49['app.activity.data.'+_0x1cb10c]=_0x1c8fe6[_0x1cb10c]),_0x52cc49;},{})};this['span']?.['setAttributes'](_0x308fe3);}}['setActivityAttributes'](_0x4ea511){this['span']?.['setAttributes'](_0x4ea511);}['setStreamAttributes'](_0x20c3b1){this['span']?.['setAttributes'](_0x20c3b1);}['setJobAttributes'](_0x55986b){this['jobSpan']?.['setAttributes'](_0x55986b);}['endJobSpan'](){this['endSpan'](this['jobSpan']);}['endActivitySpan'](){this['endSpan'](this['span']);}['endStreamSpan'](){this['endSpan'](this['span']);}['endSpan'](_0x3de755){_0x3de755&&_0x3de755['end']();}['getParentSpanContext'](){if(this['traceId']&&this['spanId']){const _0x59a160={'traceId':this['traceId'],'spanId':this['spanId'],'isRemote':!![],'traceFlags':0x1},_0x13574d=telemetry_1['trace']['setSpanContext'](telemetry_1['context']['active'](),_0x59a160);return _0x13574d;}}['getSpanAttrs'](_0x2aa0d3){return{...Object['keys'](this['context']['metadata'])['reduce']((_0x1d2c82,_0x4cea97)=>{return _0x4cea97!=='trc'&&(_0x1d2c82['app.job.'+_0x4cea97]=this['context']['metadata'][_0x4cea97]),_0x1d2c82;},{}),...Object['keys'](this['metadata'])['reduce']((_0x3b40ba,_0x112679)=>{return _0x3b40ba['app.activity.'+_0x112679]=this['metadata'][_0x112679],_0x3b40ba;},{}),'app.activity.leg':_0x2aa0d3};}['getStreamSpanAttrs'](_0x23012f){return{...Object['keys'](_0x23012f['metadata'])['reduce']((_0x33687d,_0x219d12)=>{return _0x219d12!=='trc'&&_0x219d12!=='spn'&&(_0x33687d['app.stream.'+_0x219d12]=_0x23012f['metadata'][_0x219d12]),_0x33687d;},{})};}['setTelemetryContext'](_0x163475,_0x483b13){!this['context']['metadata']['trc']&&(this['context']['metadata']['trc']=_0x163475['spanContext']()['traceId']),_0x483b13===0x1?(!this['context']['$self']['output']['metadata']&&(this['context']['$self']['output']['metadata']={}),this['context']['$self']['output']['metadata']['l1s']=_0x163475['spanContext']()['spanId']):(!this['context']['$self']['output']['metadata']&&(this['context']['$self']['output']['metadata']={}),this['context']['$self']['output']['metadata']['l2s']=_0x163475['spanContext']()['spanId']);}['setActivityError'](_0x450664){this['span']?.['setStatus']({'code':telemetry_1['SpanStatusCode']['ERROR'],'message':_0x450664});}['setStreamError'](_0x50ba48){this['span']?.['setStatus']({'code':telemetry_1['SpanStatusCode']['ERROR'],'message':_0x50ba48});}static['addTargetTelemetryPaths'](_0x4cdb4b,_0x372a2e,_0x3e6354,_0x4b84bd){_0x4b84bd===0x1?(!(_0x372a2e['parent']in _0x4cdb4b)&&(_0x4cdb4b[_0x372a2e['parent']]=[]),_0x4cdb4b[_0x372a2e['parent']]['push'](_0x372a2e['parent']+'/output/metadata/l2s')):(!(_0x3e6354['aid']in _0x4cdb4b)&&(_0x4cdb4b[_0x3e6354['aid']]=[]),_0x4cdb4b[_0x3e6354['aid']]['push'](_0x3e6354['aid']+'/output/metadata/l1s'));}static['bindJobTelemetryToState'](_0x2fe4ee,_0xabc143,_0x55993b){_0xabc143['type']==='trigger'&&(_0x2fe4ee['metadata/trc']=_0x55993b['metadata']['trc']);}static['bindActivityTelemetryToState'](_0x20ee3c,_0x1ad4a1,_0x4f41af,_0x47301f,_0x2e1829){if(_0x1ad4a1['type']==='trigger')_0x20ee3c[_0x4f41af['aid']+'/output/metadata/l1s']=_0x47301f['$self']['output']['metadata']['l1s'],_0x20ee3c[_0x4f41af['aid']+'/output/metadata/l2s']=_0x47301f['$self']['output']['metadata']['l2s'];else{if(utils_1['polyfill']['resolveActivityType'](_0x1ad4a1['type'])==='hook'&&_0x2e1829===0x1)_0x20ee3c[_0x4f41af['aid']+'/output/metadata/l1s']=_0x47301f['$self']['output']['metadata']['l1s'],_0x20ee3c[_0x4f41af['aid']+'/output/metadata/l2s']=_0x47301f['$self']['output']['metadata']['l1s'];else{if(_0x1ad4a1['type']==='signal'&&_0x2e1829===0x1)_0x20ee3c[_0x4f41af['aid']+'/output/metadata/l1s']=_0x47301f['$self']['output']['metadata']['l1s'],_0x20ee3c[_0x4f41af['aid']+'/output/metadata/l2s']=_0x47301f['$self']['output']['metadata']['l1s'];else{const _0x19c2c8='l'+_0x2e1829+'s';_0x20ee3c[_0x4f41af['aid']+'/output/metadata/'+_0x19c2c8]=_0x47301f['$self']['output']['metadata'][_0x19c2c8];}}}}}exports['TelemetryService']=TelemetryService;