@hotmeshio/hotmesh 0.3.7 → 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 (157) hide show
  1. package/README.md +15 -18
  2. package/build/index.d.ts +4 -1
  3. package/build/index.js +7 -1
  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/index.d.ts +2 -0
  57. package/build/services/meshflow/index.js +2 -0
  58. package/build/services/meshflow/search.js +12 -4
  59. package/build/services/meshflow/worker.js +7 -7
  60. package/build/services/meshos/index.d.ts +1 -4
  61. package/build/services/meshos/index.js +11 -44
  62. package/build/services/pipe/functions/array.js +1 -1
  63. package/build/services/pipe/functions/bitwise.js +1 -1
  64. package/build/services/pipe/functions/conditional.js +1 -1
  65. package/build/services/pipe/functions/cron.d.ts +2 -0
  66. package/build/services/pipe/functions/cron.js +1 -1
  67. package/build/services/pipe/functions/date.js +1 -1
  68. package/build/services/pipe/functions/index.js +1 -1
  69. package/build/services/pipe/functions/json.js +1 -1
  70. package/build/services/pipe/functions/logical.js +1 -1
  71. package/build/services/pipe/functions/math.js +1 -1
  72. package/build/services/pipe/functions/number.js +1 -1
  73. package/build/services/pipe/functions/object.js +1 -1
  74. package/build/services/pipe/functions/string.js +1 -1
  75. package/build/services/pipe/functions/symbol.js +1 -1
  76. package/build/services/pipe/functions/unary.js +1 -1
  77. package/build/services/pipe/index.js +1 -1
  78. package/build/services/quorum/index.d.ts +5 -5
  79. package/build/services/quorum/index.js +1 -1
  80. package/build/services/reporter/index.d.ts +2 -2
  81. package/build/services/reporter/index.js +1 -1
  82. package/build/services/router/index.d.ts +8 -13
  83. package/build/services/router/index.js +1 -1
  84. package/build/services/search/factory.d.ts +2 -2
  85. package/build/services/search/factory.js +1 -1
  86. package/build/services/search/index.d.ts +5 -4
  87. package/build/services/search/providers/redis/ioredis.js +1 -1
  88. package/build/services/search/providers/redis/redis.js +1 -1
  89. package/build/services/serializer/index.js +1 -1
  90. package/build/services/store/factory.d.ts +3 -3
  91. package/build/services/store/factory.js +1 -1
  92. package/build/services/store/index.d.ts +18 -17
  93. package/build/services/store/providers/redis/_base.d.ts +13 -15
  94. package/build/services/store/providers/redis/_base.js +1 -1
  95. package/build/services/store/providers/redis/ioredis.d.ts +2 -2
  96. package/build/services/store/providers/redis/ioredis.js +1 -1
  97. package/build/services/store/providers/redis/redis.d.ts +2 -2
  98. package/build/services/store/providers/redis/redis.js +1 -1
  99. package/build/services/store/providers/store-initializable.js +1 -1
  100. package/build/services/stream/factory.d.ts +3 -3
  101. package/build/services/stream/factory.js +16 -4
  102. package/build/services/stream/index.d.ts +57 -18
  103. package/build/services/stream/index.js +2 -1
  104. package/build/services/stream/providers/nats/nats.d.ts +59 -0
  105. package/build/services/stream/providers/nats/nats.js +1 -0
  106. package/build/services/stream/providers/postgres/_deploy.d.ts +2 -1
  107. package/build/services/stream/providers/postgres/_deploy.js +1 -1
  108. package/build/services/stream/providers/postgres/postgres.d.ts +0 -0
  109. package/build/services/stream/providers/postgres/postgres.js +0 -0
  110. package/build/services/stream/providers/redis/ioredis.d.ts +53 -14
  111. package/build/services/stream/providers/redis/ioredis.js +1 -1
  112. package/build/services/stream/providers/redis/redis.d.ts +54 -15
  113. package/build/services/stream/providers/redis/redis.js +1 -1
  114. package/build/services/stream/providers/stream-initializable.d.ts +1 -2
  115. package/build/services/stream/providers/stream-initializable.js +1 -1
  116. package/build/services/sub/factory.d.ts +2 -2
  117. package/build/services/sub/factory.js +1 -1
  118. package/build/services/sub/index.d.ts +6 -5
  119. package/build/services/sub/providers/redis/ioredis.d.ts +1 -1
  120. package/build/services/sub/providers/redis/ioredis.js +1 -1
  121. package/build/services/sub/providers/redis/redis.d.ts +4 -4
  122. package/build/services/sub/providers/redis/redis.js +1 -1
  123. package/build/services/task/index.d.ts +5 -5
  124. package/build/services/task/index.js +1 -1
  125. package/build/services/telemetry/index.js +1 -1
  126. package/build/services/worker/index.d.ts +9 -9
  127. package/build/services/worker/index.js +1 -1
  128. package/build/types/hotmesh.d.ts +26 -14
  129. package/build/types/index.d.ts +6 -5
  130. package/build/types/manifest.d.ts +1 -9
  131. package/build/types/meshcall.d.ts +12 -7
  132. package/build/types/meshflow.d.ts +3 -7
  133. package/build/types/nats.d.ts +150 -0
  134. package/build/types/nats.js +2 -0
  135. package/build/types/postgres.d.ts +48 -0
  136. package/build/types/postgres.js +2 -0
  137. package/build/types/provider.d.ts +26 -0
  138. package/build/types/provider.js +2 -0
  139. package/build/types/redis.d.ts +33 -15
  140. package/build/types/stream.d.ts +65 -1
  141. package/index.ts +10 -4
  142. package/package.json +14 -7
  143. package/typedoc.json +2 -1
  144. package/types/hotmesh.ts +139 -22
  145. package/types/index.ts +26 -17
  146. package/types/manifest.ts +1 -10
  147. package/types/meshcall.ts +38 -13
  148. package/types/meshflow.ts +2 -7
  149. package/types/nats.ts +231 -0
  150. package/types/postgres.ts +54 -0
  151. package/types/provider.ts +71 -0
  152. package/types/redis.ts +63 -18
  153. package/types/stream.ts +85 -1
  154. package/build/services/connector/clients/ioredis.d.ts +0 -13
  155. package/build/services/connector/clients/ioredis.js +0 -48
  156. package/build/services/connector/clients/redis.d.ts +0 -13
  157. 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(_0x56645f,_0xb12794){const _0x5ba241=_0x1db9,_0x5b2c26=_0x56645f();while(!![]){try{const _0x339335=-parseInt(_0x5ba241(0x1b9))/0x1*(parseInt(_0x5ba241(0x1c0))/0x2)+-parseInt(_0x5ba241(0x1ba))/0x3+-parseInt(_0x5ba241(0x1be))/0x4*(-parseInt(_0x5ba241(0x1bb))/0x5)+-parseInt(_0x5ba241(0x1bc))/0x6+parseInt(_0x5ba241(0x1b7))/0x7+-parseInt(_0x5ba241(0x1bf))/0x8*(-parseInt(_0x5ba241(0x1bd))/0x9)+-parseInt(_0x5ba241(0x1b6))/0xa*(-parseInt(_0x5ba241(0x1b8))/0xb);if(_0x339335===_0xb12794)break;else _0x5b2c26['push'](_0x5b2c26['shift']());}catch(_0x3afb0d){_0x5b2c26['push'](_0x5b2c26['shift']());}}}(_0xa5db,0x71eb0));Object['defineProperty'](exports,'__esModule',{'value':!![]}),exports['IORedisStreamService']=void 0x0;function _0x1db9(_0x53d182,_0xda3a27){const _0xa5db3d=_0xa5db();return _0x1db9=function(_0x1db9ee,_0x3f6f83){_0x1db9ee=_0x1db9ee-0x1b6;let _0x1cc956=_0xa5db3d[_0x1db9ee];return _0x1cc956;},_0x1db9(_0x53d182,_0xda3a27);}function _0xa5db(){const _0x43f535=['48411tSvMsI','22996Qbayow','872dSVfSj','14eFGMlk','10xjDrNV','5267220FNhlcv','400840guXBQq','22891UnAGNz','2588691aLpwWy','725FAbPCm','4314444dKMMlz'];_0xa5db=function(){return _0x43f535;};return _0xa5db();}const key_1=require('../../../../modules/key'),index_1=require('../../index');class IORedisStreamService extends index_1['StreamService']{constructor(_0xed8134,_0x4b3485){super(_0xed8134,_0x4b3485);}async['init'](_0x4405ed=key_1['HMNS'],_0x33c0de,_0x11a043){this['namespace']=_0x4405ed,this['logger']=_0x11a043,this['appId']=_0x33c0de;}['getMulti'](){return this['streamClient']['multi']();}['mintKey'](_0x21239d,_0x101812){if(!this['namespace'])throw new Error('namespace\x20not\x20set');return key_1['KeyService']['mintKey'](this['namespace'],_0x21239d,_0x101812);}async['consumeMessages'](_0x125460,_0x495b25,_0x4e1786,_0x2448d3){const _0x26077b='GROUP',_0x480201='BLOCK',_0x50ecad='STREAMS',_0x525a5e='>';try{return await this['streamClient']['xreadgroup'](_0x26077b,_0x125460,_0x495b25,_0x480201,_0x4e1786,_0x50ecad,_0x2448d3,_0x525a5e);}catch(_0x3b2d8){this['logger']['error']('Error\x20reading\x20stream\x20data\x20[Stream\x20'+_0x2448d3+']\x20[Group\x20'+_0x125460+']',{..._0x3b2d8});throw _0x3b2d8;}}async['getPendingMessages'](_0x2c93f1,_0x2130fb,_0x5ac069,_0xd3ab42){const _0x5b4270='-',_0x9ba475='+';try{const _0x18869f=[_0x2c93f1,_0x2130fb];if(_0x5b4270)_0x18869f['push'](_0x5b4270);if(_0x9ba475)_0x18869f['push'](_0x9ba475);if(_0x5ac069!==undefined)_0x18869f['push'](_0x5ac069['toString']());if(_0xd3ab42)_0x18869f['push'](_0xd3ab42);try{return await this['streamClient']['call']('XPENDING',..._0x18869f);}catch(_0x4136c2){this['logger']['error']('err,\x20args',{..._0x4136c2},_0x18869f);}}catch(_0x18992b){this['logger']['error']('Error\x20in\x20retrieving\x20pending\x20messages\x20for\x20[stream\x20'+_0x2c93f1+'],\x20[group\x20'+_0x2130fb+']',{..._0x18992b});throw _0x18992b;}}async['claimMessage'](_0x55d663,_0xf1b74b,_0x5f4237,_0x39cc2a,_0x40ff7d,..._0x380b7f){try{return await this['streamClient']['xclaim'](_0x55d663,_0xf1b74b,_0x5f4237,_0x39cc2a,_0x40ff7d,..._0x380b7f);}catch(_0x202d52){this['logger']['error']('Error\x20in\x20claiming\x20message\x20with\x20id:\x20'+_0x40ff7d+'\x20in\x20group:\x20'+_0xf1b74b+'\x20for\x20key:\x20'+_0x55d663,{..._0x202d52});throw _0x202d52;}}async['ackAndDelete'](_0x573320,_0x2a3393,_0x499675){const _0x51efab=this['getMulti']();return this['acknowledgeMessage'](_0x573320,_0x2a3393,_0x499675,_0x51efab),this['deleteMessage'](_0x573320,_0x499675,_0x51efab),await _0x51efab['exec']();}async['acknowledgeMessage'](_0x40246b,_0xfa24d2,_0x35fd5e,_0x4458b5){try{return await(_0x4458b5||this['streamClient'])['xack'](_0x40246b,_0xfa24d2,_0x35fd5e);}catch(_0x56f741){this['logger']['error']('Error\x20in\x20acknowledging\x20messages\x20in\x20group:\x20'+_0xfa24d2+'\x20for\x20key:\x20'+_0x40246b,{..._0x56f741});throw _0x56f741;}}async['deleteMessage'](_0x2d1851,_0x21173b,_0x2ba5e6){try{return await(_0x2ba5e6||this['streamClient'])['xdel'](_0x2d1851,_0x21173b);}catch(_0x1926bb){this['logger']['error']('Error\x20in\x20deleting\x20messages\x20with\x20id:\x20'+_0x21173b+'\x20for\x20key:\x20'+_0x2d1851,{..._0x1926bb});throw _0x1926bb;}}async['createConsumerGroup'](_0x3749e7,_0x1c510d){try{return await this['storeClient']['xgroup']('CREATE',_0x3749e7,_0x1c510d,'$','MKSTREAM')==='OK';}catch(_0x11f10b){this['logger']['debug']('stream-mkstream-caught',{'key':_0x3749e7,'group':_0x1c510d});throw _0x11f10b;}}async['publishMessage'](_0x21146b,_0x197eae,_0x5e4843,_0x29fdfa,_0x52d2e8){try{return await(_0x52d2e8||this['storeClient'])['xadd'](_0x21146b,_0x197eae,_0x5e4843,_0x29fdfa);}catch(_0x26efd0){this['logger']['error']('Error\x20publishingMessage\x20[xadd];\x20key:\x20'+_0x21146b,{..._0x26efd0});throw _0x26efd0;}}async['getMessageDepth'](_0x49ed43,_0x348655){try{return await(_0x348655||this['storeClient'])['xlen'](_0x49ed43);}catch(_0x432220){this['logger']['error']('Error\x20getting\x20stream\x20depth:\x20'+_0x49ed43,{..._0x432220});throw _0x432220;}}}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(_0x6d47eb,_0x634a9){const _0x4ea238=_0x2ecb,_0x2231f6=_0x6d47eb();while(!![]){try{const _0x56c0fe=-parseInt(_0x4ea238(0x1a6))/0x1+parseInt(_0x4ea238(0x1a7))/0x2+parseInt(_0x4ea238(0x1a5))/0x3*(parseInt(_0x4ea238(0x1a3))/0x4)+parseInt(_0x4ea238(0x1a4))/0x5*(-parseInt(_0x4ea238(0x1a1))/0x6)+parseInt(_0x4ea238(0x19e))/0x7+parseInt(_0x4ea238(0x19f))/0x8+-parseInt(_0x4ea238(0x1a2))/0x9*(parseInt(_0x4ea238(0x1a0))/0xa);if(_0x56c0fe===_0x634a9)break;else _0x2231f6['push'](_0x2231f6['shift']());}catch(_0x1fd2a7){_0x2231f6['push'](_0x2231f6['shift']());}}}(_0x205c,0x8ca81));Object['defineProperty'](exports,'__esModule',{'value':!![]}),exports['RedisStreamService']=void 0x0;function _0x205c(){const _0x510e85=['658547GahBKp','2284220ceGBNE','4367916vhsyig','1693816pGKrnW','44350dXYouS','643002HvqSzD','1989zHnFEY','121028uJhrRs','20axAlXg','66NHlzKU'];_0x205c=function(){return _0x510e85;};return _0x205c();}const key_1=require('../../../../modules/key'),index_1=require('../../index');class RedisStreamService extends index_1['StreamService']{constructor(_0x57c8db,_0x5d7945){super(_0x57c8db,_0x5d7945);}async['init'](_0x346ef4=key_1['HMNS'],_0x5b6295,_0x10d0a7){this['namespace']=_0x346ef4,this['logger']=_0x10d0a7,this['appId']=_0x5b6295;}['getMulti'](){return this['streamClient']['multi']();}['mintKey'](_0x451e97,_0x43cdc0){if(!this['namespace'])throw new Error('namespace\x20not\x20set');return key_1['KeyService']['mintKey'](this['namespace'],_0x451e97,_0x43cdc0);}async['consumeMessages'](_0x2c4676,_0x48024a,_0xda03dc,_0x4a55f9){const _0x2d64de='GROUP',_0x3137ba='BLOCK',_0x2f1d08='STREAMS',_0x843405='>';try{return await this['streamClient']['sendCommand'](['XREADGROUP',_0x2d64de,_0x2c4676,_0x48024a,_0x3137ba,_0xda03dc['toString'](),_0x2f1d08,_0x4a55f9,_0x843405]);}catch(_0x5357a5){this['logger']['error']('Error\x20reading\x20stream\x20data\x20[Stream\x20'+_0x4a55f9+']\x20[Group\x20'+_0x2c4676+']',{..._0x5357a5});throw _0x5357a5;}}async['getPendingMessages'](_0x3cb2e4,_0x225e15,_0x406417,_0x2a8564){try{const _0x323c96='-',_0x251d12='+',_0x298a62=[_0x3cb2e4,_0x225e15];if(_0x323c96)_0x298a62['push'](_0x323c96);if(_0x251d12)_0x298a62['push'](_0x251d12);if(_0x406417!==undefined)_0x298a62['push'](_0x406417['toString']());if(_0x2a8564)_0x298a62['push'](_0x2a8564);try{return await this['streamClient']['sendCommand'](['XPENDING',..._0x298a62]);}catch(_0x47ad5d){this['logger']['error']('error,\x20args',{..._0x47ad5d},_0x298a62);}}catch(_0x590e46){this['logger']['error']('Error\x20retrieving\x20pending\x20messages\x20for\x20group:\x20'+_0x225e15+'\x20in\x20key:\x20'+_0x3cb2e4,{..._0x590e46});throw _0x590e46;}}async['claimMessage'](_0x431bda,_0x66a1f2,_0x35f6a7,_0x2e75d6,_0x27d42a,..._0x186181){try{return await this['streamClient']['sendCommand'](['XCLAIM',_0x431bda,_0x66a1f2,_0x35f6a7,_0x2e75d6['toString'](),_0x27d42a,..._0x186181]);}catch(_0x46a9a5){this['logger']['error']('Error\x20in\x20claiming\x20message\x20with\x20id:\x20'+_0x27d42a+'\x20in\x20group:\x20'+_0x66a1f2+'\x20for\x20key:\x20'+_0x431bda,{..._0x46a9a5});throw _0x46a9a5;}}async['ackAndDelete'](_0xd6e015,_0x2449b4,_0x52c91b){const _0x161b40=this['getMulti']();return this['acknowledgeMessage'](_0xd6e015,_0x2449b4,_0x52c91b,_0x161b40),this['deleteMessage'](_0xd6e015,_0x52c91b,_0x161b40),await _0x161b40['exec']();}async['acknowledgeMessage'](_0x2ed49b,_0x11ee3d,_0x508359,_0x25e745){try{return _0x25e745?(_0x25e745['XACK'](_0x2ed49b,_0x11ee3d,_0x508359),_0x25e745):await this['streamClient']['XACK'](_0x2ed49b,_0x11ee3d,_0x508359);}catch(_0x554322){this['logger']['error']('Error\x20in\x20acknowledging\x20messages\x20in\x20group:\x20'+_0x11ee3d+'\x20for\x20key:\x20'+_0x2ed49b,{..._0x554322});throw _0x554322;}}async['deleteMessage'](_0x561d4c,_0x4aa0b8,_0x5e5dad){try{return _0x5e5dad?(_0x5e5dad['XDEL'](_0x561d4c,_0x4aa0b8),_0x5e5dad):await this['streamClient']['XDEL'](_0x561d4c,_0x4aa0b8);}catch(_0x58bc13){this['logger']['error']('Error\x20in\x20deleting\x20messages\x20with\x20ids:\x20'+_0x4aa0b8+'\x20for\x20key:\x20'+_0x561d4c,{..._0x58bc13});throw _0x58bc13;}}async['createConsumerGroup'](_0x15cfbd,_0x1a14ef){try{return await this['storeClient']['sendCommand'](['XGROUP','CREATE',_0x15cfbd,_0x1a14ef,'$','MKSTREAM'])===0x1;}catch(_0x5438bc){const _0xa4d34d='with\x20MKSTREAM';this['logger']['debug']('x-group-error\x20'+_0xa4d34d+'\x20for\x20key:\x20'+_0x15cfbd+'\x20and\x20group:\x20'+_0x1a14ef,{..._0x5438bc});throw _0x5438bc;}}async['publishMessage'](_0x5ba277,_0x1b6eb2,_0x49b246,_0x3fa4bd,_0x42bd0b){try{return await(_0x42bd0b||this['storeClient'])['XADD'](_0x5ba277,_0x1b6eb2,{[_0x49b246]:_0x3fa4bd});}catch(_0x36568a){this['logger']['error']('Error\x20publishingMessage\x20[xadd];\x20key:\x20'+_0x5ba277,{..._0x36568a});throw _0x36568a;}}async['getMessageDepth'](_0x3382ee,_0x541c4e){try{return _0x541c4e?(_0x541c4e['XLEN'](_0x3382ee),_0x541c4e):await this['storeClient']['XLEN'](_0x3382ee);}catch(_0x4ff742){this['logger']['error']('Error\x20getting\x20stream\x20depth:\x20'+_0x3382ee,{..._0x4ff742});throw _0x4ff742;}}}function _0x2ecb(_0x25e258,_0x4386d){const _0x205cf0=_0x205c();return _0x2ecb=function(_0x2ecb61,_0x3510a0){_0x2ecb61=_0x2ecb61-0x19e;let _0x4fcbb4=_0x205cf0[_0x2ecb61];return _0x4fcbb4;},_0x2ecb(_0x25e258,_0x4386d);}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 _0x2cbd(_0x416fe3,_0x3368f0){var _0x5034a8=_0x5034();return _0x2cbd=function(_0x2cbdf8,_0x342a61){_0x2cbdf8=_0x2cbdf8-0x110;var _0x2a20d9=_0x5034a8[_0x2cbdf8];return _0x2a20d9;},_0x2cbd(_0x416fe3,_0x3368f0);}function _0x5034(){var _0x55b873=['3997989NowtOc','6IzZeAI','552682GgPlSq','1404545zTQnic','110150VUqsKY','2392636nhkybo','611891lMyEyS','8aakVza','3ulPSMg','380208sYCGxJ'];_0x5034=function(){return _0x55b873;};return _0x5034();}(function(_0x8a6bbe,_0x10ddde){var _0x309a21=_0x2cbd,_0xb0dcc0=_0x8a6bbe();while(!![]){try{var _0x539565=-parseInt(_0x309a21(0x110))/0x1+-parseInt(_0x309a21(0x113))/0x2*(-parseInt(_0x309a21(0x119))/0x3)+parseInt(_0x309a21(0x116))/0x4+parseInt(_0x309a21(0x114))/0x5*(parseInt(_0x309a21(0x112))/0x6)+-parseInt(_0x309a21(0x117))/0x7*(-parseInt(_0x309a21(0x118))/0x8)+-parseInt(_0x309a21(0x111))/0x9+-parseInt(_0x309a21(0x115))/0xa;if(_0x539565===_0x10ddde)break;else _0xb0dcc0['push'](_0xb0dcc0['shift']());}catch(_0x151713){_0xb0dcc0['push'](_0xb0dcc0['shift']());}}}(_0x5034,0x63752));Object['defineProperty'](exports,'__esModule',{'value':!![]});
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(_0x2c1587,_0x3436fd){const _0x1b6696=_0x1e53,_0x4ffbf8=_0x2c1587();while(!![]){try{const _0x1bd43f=-parseInt(_0x1b6696(0x1b7))/0x1*(parseInt(_0x1b6696(0x1b2))/0x2)+parseInt(_0x1b6696(0x1b8))/0x3+-parseInt(_0x1b6696(0x1b5))/0x4*(parseInt(_0x1b6696(0x1b6))/0x5)+-parseInt(_0x1b6696(0x1b0))/0x6+parseInt(_0x1b6696(0x1b4))/0x7+parseInt(_0x1b6696(0x1b1))/0x8+parseInt(_0x1b6696(0x1b3))/0x9;if(_0x1bd43f===_0x3436fd)break;else _0x4ffbf8['push'](_0x4ffbf8['shift']());}catch(_0x5e6f54){_0x4ffbf8['push'](_0x4ffbf8['shift']());}}}(_0x47f9,0x37ce7));Object['defineProperty'](exports,'__esModule',{'value':!![]}),exports['IORedisSubService']=void 0x0;const key_1=require('../../../../modules/key'),index_1=require('../../index');function _0x1e53(_0x28a45a,_0x1cd91a){const _0x47f984=_0x47f9();return _0x1e53=function(_0x1e53e1,_0x182c8c){_0x1e53e1=_0x1e53e1-0x1b0;let _0x4d4305=_0x47f984[_0x1e53e1];return _0x4d4305;},_0x1e53(_0x28a45a,_0x1cd91a);}function _0x47f9(){const _0x317dbc=['2609526txTyLb','949112ffJaut','2vTSZfK','5011659ZUWHHD','1696303SCvzFK','3812WkzCUn','455itFBCG','204880mIXpgP','111864btAzim'];_0x47f9=function(){return _0x317dbc;};return _0x47f9();}class IORedisSubService extends index_1['SubService']{constructor(_0x53ef1e,_0xcc4763){super(_0x53ef1e,_0xcc4763);}async['init'](_0x1a06bf=key_1['HMNS'],_0x22e284,_0x4420f4,_0x4683e7){this['namespace']=_0x1a06bf,this['logger']=_0x4683e7,this['appId']=_0x22e284;}['getMulti'](){return this['eventClient']['multi']();}['mintKey'](_0x2dfb44,_0x56bfbd){if(!this['namespace'])throw new Error('namespace\x20not\x20set');return key_1['KeyService']['mintKey'](this['namespace'],_0x2dfb44,_0x56bfbd);}async['subscribe'](_0x9e1e52,_0x8f9f,_0x47e434,_0x3339f7){const _0x346ae3=this,_0x343090=this['mintKey'](_0x9e1e52,{'appId':_0x47e434,'engineId':_0x3339f7});await this['eventClient']['subscribe'](_0x343090,_0x1fa2a6=>{_0x1fa2a6&&_0x346ae3['logger']['error']('Error\x20subscribing\x20to:\x20'+_0x343090,_0x1fa2a6);}),this['eventClient']['on']('message',(_0x188154,_0x53c82b)=>{if(_0x188154===_0x343090)try{const _0x921522=JSON['parse'](_0x53c82b);_0x8f9f(_0x343090,_0x921522);}catch(_0x2bde53){_0x346ae3['logger']['error']('Error\x20parsing\x20message:\x20'+_0x53c82b,_0x2bde53);}});}async['unsubscribe'](_0x4d316f,_0x56d641,_0x4c2fbb){const _0x47a5ee=this['mintKey'](_0x4d316f,{'appId':_0x56d641,'engineId':_0x4c2fbb});await this['eventClient']['unsubscribe'](_0x47a5ee);}async['psubscribe'](_0x3080fe,_0x58de9c,_0x1f1662,_0x57c8a0){const _0x477e6a=this,_0x4f0249=this['mintKey'](_0x3080fe,{'appId':_0x1f1662,'engineId':_0x57c8a0});await this['eventClient']['psubscribe'](_0x4f0249,_0x5cf3fc=>{_0x5cf3fc&&_0x477e6a['logger']['error']('Error\x20subscribing\x20to:\x20'+_0x4f0249,_0x5cf3fc);}),this['eventClient']['on']('pmessage',(_0xfea79b,_0x3bf9e7,_0x3892ae)=>{if(_0xfea79b===_0x4f0249)try{const _0x4251fc=JSON['parse'](_0x3892ae);_0x58de9c(_0x3bf9e7,_0x4251fc);}catch(_0x353254){_0x477e6a['logger']['error']('Error\x20parsing\x20message:\x20'+_0x3892ae,_0x353254);}});}async['punsubscribe'](_0xe49e61,_0x232bc1,_0x10f7aa){const _0x53b9a2=this['mintKey'](_0xe49e61,{'appId':_0x232bc1,'engineId':_0x10f7aa});await this['eventClient']['punsubscribe'](_0x53b9a2);}async['publish'](_0x469140,_0x4d9787,_0x1bc189,_0xdcd21c){const _0x51dca3=this['mintKey'](_0x469140,{'appId':_0x1bc189,'engineId':_0xdcd21c}),_0x59fa09=await this['storeClient']['publish'](_0x51dca3,JSON['stringify'](_0x4d9787));return _0x59fa09===0x1;}}exports['IORedisSubService']=IORedisSubService;
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 _0x24b2(_0x1a7d5f,_0x2e2262){const _0x5ea4dd=_0x5ea4();return _0x24b2=function(_0x24b23d,_0x154a85){_0x24b23d=_0x24b23d-0x191;let _0x439784=_0x5ea4dd[_0x24b23d];return _0x439784;},_0x24b2(_0x1a7d5f,_0x2e2262);}(function(_0x120590,_0x4e1403){const _0x56db43=_0x24b2,_0x3f3fca=_0x120590();while(!![]){try{const _0x21ae04=parseInt(_0x56db43(0x196))/0x1*(-parseInt(_0x56db43(0x19a))/0x2)+parseInt(_0x56db43(0x195))/0x3+parseInt(_0x56db43(0x198))/0x4*(parseInt(_0x56db43(0x192))/0x5)+parseInt(_0x56db43(0x197))/0x6+-parseInt(_0x56db43(0x194))/0x7+-parseInt(_0x56db43(0x193))/0x8*(parseInt(_0x56db43(0x199))/0x9)+-parseInt(_0x56db43(0x191))/0xa;if(_0x21ae04===_0x4e1403)break;else _0x3f3fca['push'](_0x3f3fca['shift']());}catch(_0x477b3c){_0x3f3fca['push'](_0x3f3fca['shift']());}}}(_0x5ea4,0x28b10));function _0x5ea4(){const _0x14e1f8=['962549YaxOFp','369384KXsRZM','33638yDntTP','1580898nsUIwo','24HsszAN','9GyblJj','12fJTREb','1510730iUzozk','270425ZWzAID','432328IpmDWw'];_0x5ea4=function(){return _0x14e1f8;};return _0x5ea4();}Object['defineProperty'](exports,'__esModule',{'value':!![]}),exports['RedisSubService']=void 0x0;const key_1=require('../../../../modules/key'),index_1=require('../../index');class RedisSubService extends index_1['SubService']{constructor(_0x16004c,_0x1c4363){super(_0x16004c,_0x1c4363);}async['init'](_0x4b6516=key_1['HMNS'],_0x3b35dc,_0x421e95,_0x21d9fe){this['namespace']=_0x4b6516,this['logger']=_0x21d9fe,this['appId']=_0x3b35dc;}['getMulti'](){const _0xbb07=this['eventClient']['multi']();return _0xbb07;}['mintKey'](_0x25389b,_0x4b16ce){if(!this['namespace'])throw new Error('namespace\x20not\x20set');return key_1['KeyService']['mintKey'](this['namespace'],_0x25389b,_0x4b16ce);}async['subscribe'](_0x34a92c,_0x5ad9b3,_0x439dcc,_0x324fe4){if(this['eventClient']){const _0x48a018=this,_0x31de35=this['mintKey'](_0x34a92c,{'appId':_0x439dcc,'engineId':_0x324fe4});await this['eventClient']['subscribe'](_0x31de35,_0x254f02=>{try{const _0x38efe6=JSON['parse'](_0x254f02);_0x5ad9b3(_0x31de35,_0x38efe6);}catch(_0x463423){_0x48a018['logger']['error']('Error\x20parsing\x20message:\x20'+_0x254f02,_0x463423);}});}}async['unsubscribe'](_0x4f9745,_0x6bad7d,_0x10a9b7){const _0x1d212f=this['mintKey'](_0x4f9745,{'appId':_0x6bad7d,'engineId':_0x10a9b7});await this['eventClient']['unsubscribe'](_0x1d212f);}async['psubscribe'](_0x31df6a,_0x525a5d,_0x3e9221,_0x4559d5){if(this['eventClient']){const _0x3feee0=this,_0x54d4c6=this['mintKey'](_0x31df6a,{'appId':_0x3e9221,'engineId':_0x4559d5});await this['eventClient']['pSubscribe'](_0x54d4c6,(_0x1be9d3,_0x3e02ec)=>{try{const _0x21f5a0=JSON['parse'](_0x1be9d3);_0x525a5d(_0x3e02ec,_0x21f5a0);}catch(_0x1dc59d){_0x3feee0['logger']['error']('Error\x20parsing\x20message:\x20'+_0x1be9d3,_0x1dc59d);}});}}async['punsubscribe'](_0x22a3b0,_0x29c639,_0x1c3279){const _0x41c904=this['mintKey'](_0x22a3b0,{'appId':_0x29c639,'engineId':_0x1c3279});await this['eventClient']['pUnsubscribe'](_0x41c904);}async['publish'](_0x450f37,_0x2b12e1,_0x9f85eb,_0x42a462){const _0x39d7e6=this['mintKey'](_0x450f37,{'appId':_0x9f85eb,'engineId':_0x42a462}),_0x34a930=await this['storeClient']['publish'](_0x39d7e6,JSON['stringify'](_0x2b12e1));return _0x34a930>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 _0x508b(_0x3f4edc,_0x20f5bf){const _0x315ab9=_0x315a();return _0x508b=function(_0x508bf8,_0x455352){_0x508bf8=_0x508bf8-0x158;let _0x1b771c=_0x315ab9[_0x508bf8];return _0x1b771c;},_0x508b(_0x3f4edc,_0x20f5bf);}(function(_0x3ac7e7,_0x40222a){const _0x2de3eb=_0x508b,_0x32f57d=_0x3ac7e7();while(!![]){try{const _0x5a7642=-parseInt(_0x2de3eb(0x15e))/0x1+parseInt(_0x2de3eb(0x158))/0x2+-parseInt(_0x2de3eb(0x15b))/0x3+parseInt(_0x2de3eb(0x159))/0x4+-parseInt(_0x2de3eb(0x15f))/0x5*(parseInt(_0x2de3eb(0x15a))/0x6)+-parseInt(_0x2de3eb(0x15d))/0x7*(parseInt(_0x2de3eb(0x160))/0x8)+parseInt(_0x2de3eb(0x15c))/0x9;if(_0x5a7642===_0x40222a)break;else _0x32f57d['push'](_0x32f57d['shift']());}catch(_0x5084b4){_0x32f57d['push'](_0x32f57d['shift']());}}}(_0x315a,0xba900));function _0x315a(){const _0x446ef2=['1421gXWdVH','176338hJgXZu','6490qpWkDr','49792pbJlIi','761502AoFmGY','5257400BXRxyh','3966fsXKtQ','2279970ABYKPv','19141533xjoKDx'];_0x315a=function(){return _0x446ef2;};return _0x315a();}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(_0x404d61,_0x368e05){this['cleanupTimeout']=null,this['isScout']=![],this['errorCount']=0x0,this['logger']=_0x368e05,this['store']=_0x404d61;}async['processWebHooks'](_0x431226){const _0x4ec2d9=await this['store']['getActiveTaskQueue']();if(_0x4ec2d9){const [_0x493133,_0x490b2f,_0x446088,..._0x58de83]=_0x4ec2d9['split'](key_1['WEBSEP']),_0x47a61d=JSON['parse'](_0x58de83['join'](key_1['WEBSEP'])),_0x4e0bcb=_0x490b2f+':processed',_0x51d4ca=await this['store']['processTaskQueue'](_0x490b2f,_0x4e0bcb);_0x51d4ca?await _0x431226(_0x493133,{..._0x47a61d,'id':_0x51d4ca}):await this['store']['deleteProcessedTaskQueue'](_0x4ec2d9,_0x490b2f,_0x4e0bcb,_0x446088==='true'),setImmediate(()=>this['processWebHooks'](_0x431226));}}async['enqueueWorkItems'](_0xe87799){await this['store']['addTaskQueues'](_0xe87799);}async['registerJobForCleanup'](_0x4df570,_0x1f2147=enums_1['HMSH_EXPIRE_DURATION'],_0xd8e453){_0x1f2147>0x0&&await this['store']['expireJob'](_0x4df570,_0x1f2147);}async['registerTimeHook'](_0x457cf7,_0x314134,_0x13da99,_0x2d7a21,_0x37f298=enums_1['HMSH_FIDELITY_SECONDS'],_0x3368ac,_0x14d7d5){const _0x437250=Date['now']()+_0x37f298*0x3e8,_0x5277ae=enums_1['HMSH_FIDELITY_SECONDS']*0x3e8,_0xb41ee9=Math['floor'](_0x437250/_0x5277ae)*_0x5277ae;await this['store']['registerTimeHook'](_0x457cf7,_0x314134,_0x13da99,_0x2d7a21,_0xb41ee9,_0x3368ac,_0x14d7d5);}async['shouldScout'](){const _0x1fe813=this['isScout'],_0x3f1112=_0x1fe813||(this['isScout']=await this['store']['reserveScoutRole']('time'));if(_0x3f1112)return!_0x1fe813&&setTimeout(()=>{this['isScout']=![];},enums_1['HMSH_SCOUT_INTERVAL_SECONDS']*0x3e8),!![];return![];}async['processTimeHooks'](_0x1ed338,_0x435d8a){if(await this['shouldScout']())try{const _0x463ded=await this['store']['getNextTask'](_0x435d8a);if(Array['isArray'](_0x463ded)){const [_0x2de765,_0x1845a4,_0x42da2b,_0x23ed81,_0x303857]=_0x463ded;if(_0x303857==='child'){}else{if(_0x303857==='delist'){const _0x4e0582=this['store']['mintKey'](hotmesh_1['KeyType']['SIGNALS'],{'appId':this['store']['appId']});await this['store']['delistSignalKey'](_0x4e0582,_0x1845a4);}else await _0x1ed338(_0x1845a4,_0x42da2b,_0x23ed81,_0x303857);}await(0x0,utils_1['sleepFor'])(0x0),this['errorCount']=0x0,this['processTimeHooks'](_0x1ed338,_0x2de765);}else{if(_0x463ded)await(0x0,utils_1['sleepFor'])(0x0),this['errorCount']=0x0,this['processTimeHooks'](_0x1ed338);else{const _0x50a78a=(0x0,utils_1['XSleepFor'])(enums_1['HMSH_FIDELITY_SECONDS']*0x3e8);this['cleanupTimeout']=_0x50a78a['timerId'],await _0x50a78a['promise'],this['errorCount']=0x0,this['processTimeHooks'](_0x1ed338);}}}catch(_0x19b642){this['logger']['warn']('task-process-timehooks-error',_0x19b642),await(0x0,utils_1['sleepFor'])(0x3e8*this['errorCount']++),this['errorCount']<0x5&&this['processTimeHooks'](_0x1ed338);}else{const _0x43f7e5=(0x0,utils_1['XSleepFor'])(enums_1['HMSH_SCOUT_INTERVAL_SECONDS']*0x3e8*0x2*Math['random']());this['cleanupTimeout']=_0x43f7e5['timerId'],await _0x43f7e5['promise'],this['processTimeHooks'](_0x1ed338);}}['cancelCleanup'](){this['cleanupTimeout']!==undefined&&(clearTimeout(this['cleanupTimeout']),this['cleanupTimeout']=undefined);}async['getHookRule'](_0x1e8b5c){const _0x42f7a4=await this['store']['getHookRules']();return _0x42f7a4?.[_0x1e8b5c]?.[0x0];}async['registerWebHook'](_0x21d73a,_0x7a6d83,_0x209c60,_0x1dec4c,_0x25442f){const _0xb613b2=await this['getHookRule'](_0x21d73a);if(_0xb613b2){const _0x90d389=_0xb613b2['conditions']['match'][0x0]['expected'],_0x8a68fe=pipe_1['Pipe']['resolve'](_0x90d389,_0x7a6d83),_0x3d0781=_0x7a6d83['metadata']['jid'],_0x54ecfc=_0x7a6d83['metadata']['gid'],_0x2db1f2=_0xb613b2['to'],_0x21d7b9=[_0x2db1f2,_0x209c60,_0x54ecfc,_0x3d0781]['join'](key_1['WEBSEP']),_0x42e12a={'topic':_0x21d73a,'resolved':_0x8a68fe,'jobId':_0x21d7b9,'expire':_0x1dec4c};return await this['store']['setHookSignal'](_0x42e12a,_0x25442f),_0x3d0781;}else throw new Error('signaler.registerWebHook:error:\x20hook\x20rule\x20not\x20found');}async['processWebHookSignal'](_0x2c63d0,_0x2d4879){const _0x5b1fd6=await this['getHookRule'](_0x2c63d0);if(_0x5b1fd6){const _0x4c7291={'$self':{'hook':{'data':_0x2d4879}},'$hook':{'data':_0x2d4879}},_0xd417d6=_0x5b1fd6['conditions']['match'][0x0]['actual'],_0x412327=pipe_1['Pipe']['resolve'](_0xd417d6,_0x4c7291),_0x1047e3=await this['store']['getHookSignal'](_0x2c63d0,_0x412327);if(!_0x1047e3)return undefined;const [_0x3e6ace,_0x14e34,_0x221446,..._0x4f9f40]=_0x1047e3['split'](key_1['WEBSEP']);return[_0x4f9f40['join'](key_1['WEBSEP']),_0x5b1fd6['to'],_0x14e34,_0x221446];}else throw new Error('signal-not-found');}async['deleteWebHookSignal'](_0x2ccfe4,_0x5a2c4f){const _0x292b9=await this['getHookRule'](_0x2ccfe4);if(_0x292b9){const _0xefeb62={'$self':{'hook':{'data':_0x5a2c4f}},'$hook':{'data':_0x5a2c4f}},_0x3d2dd5=_0x292b9['conditions']['match'][0x0]['actual'],_0x234e8b=pipe_1['Pipe']['resolve'](_0x3d2dd5,_0xefeb62);return await this['store']['deleteHookSignal'](_0x2ccfe4,_0x234e8b);}else throw new Error('signaler.process:error:\x20hook\x20rule\x20not\x20found');}}exports['TaskService']=TaskService;
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(_0x5b1599,_0x35b4aa){const _0x44b384=_0x2611,_0x283bc2=_0x5b1599();while(!![]){try{const _0x567a2e=-parseInt(_0x44b384(0x172))/0x1*(-parseInt(_0x44b384(0x174))/0x2)+parseInt(_0x44b384(0x16f))/0x3+-parseInt(_0x44b384(0x175))/0x4+-parseInt(_0x44b384(0x170))/0x5*(-parseInt(_0x44b384(0x176))/0x6)+parseInt(_0x44b384(0x173))/0x7+-parseInt(_0x44b384(0x171))/0x8*(-parseInt(_0x44b384(0x178))/0x9)+-parseInt(_0x44b384(0x177))/0xa;if(_0x567a2e===_0x35b4aa)break;else _0x283bc2['push'](_0x283bc2['shift']());}catch(_0x13c51e){_0x283bc2['push'](_0x283bc2['shift']());}}}(_0x2101,0xbe074));var __importDefault=this&&this['__importDefault']||function(_0x3998cd){return _0x3998cd&&_0x3998cd['__esModule']?_0x3998cd:{'default':_0x3998cd};};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(_0x4bfc09,_0x486276,_0x42e4f2,_0x45e2cc){this['leg']=0x1,this['appId']=_0x4bfc09,this['config']=_0x486276,this['metadata']=_0x42e4f2,this['context']=_0x45e2cc;}['getJobParentSpanId'](){return this['context']['metadata']['spn'];}['getActivityParentSpanId'](_0x21ebd2){return _0x21ebd2===0x1?this['context'][this['config']['parent']]['output']?.['metadata']?.['l2s']:this['context']['$self']['output']?.['metadata']?.['l1s'];}['getTraceId'](){return this['context']['metadata']['trc'];}['startJobSpan'](){const _0x1bf4e3='JOB/'+this['appId']+'/'+this['config']['subscribes']+'/1',_0x4d5e3d=this['getTraceId'](),_0x4ac9b7=this['getJobParentSpanId'](),_0xadc2b5=this['getSpanAttrs'](0x1),_0xf104d3=this['startSpan'](_0x4d5e3d,_0x4ac9b7,_0x1bf4e3,_0xadc2b5);return this['jobSpan']=_0xf104d3,this['setTelemetryContext'](_0xf104d3,0x1),this;}['startActivitySpan'](_0x4b4a9f=this['leg']){const _0x5048e2=this['config']['type']['toUpperCase']()+'/'+this['appId']+'/'+this['metadata']['aid']+'/'+_0x4b4a9f,_0x132d8c=this['getTraceId'](),_0x520e6b=this['getActivityParentSpanId'](_0x4b4a9f),_0x356e03=this['getSpanAttrs'](_0x4b4a9f),_0xdf51b3=this['startSpan'](_0x132d8c,_0x520e6b,_0x5048e2,_0x356e03);return this['setTelemetryContext'](_0xdf51b3,_0x4b4a9f),this['span']=_0xdf51b3,this;}['startStreamSpan'](_0x39bf44,_0x4103c4){let _0x4bdb26;if(_0x4103c4===stream_1['StreamRole']['SYSTEM'])_0x4bdb26='SYSTEM';else{if(_0x4103c4===stream_1['StreamRole']['WORKER'])_0x4bdb26='EXECUTE';else _0x39bf44['type']===stream_1['StreamDataType']['RESULT']||_0x39bf44['type']===stream_1['StreamDataType']['RESPONSE']?_0x4bdb26='FANIN':_0x4bdb26='FANOUT';}const _0x45547c=_0x39bf44['metadata']['topic']?'/'+_0x39bf44['metadata']['topic']:'',_0x1b4f3e=_0x4bdb26+'/'+this['appId']+'/'+_0x39bf44['metadata']['aid']+_0x45547c,_0x380ee5=this['getStreamSpanAttrs'](_0x39bf44),_0x568cd5=this['startSpan'](_0x39bf44['metadata']['trc'],_0x39bf44['metadata']['spn'],_0x1b4f3e,_0x380ee5);return this['span']=_0x568cd5,this;}['startSpan'](_0x58c6d3,_0xa122f0,_0x3c24bc,_0x166a9a){this['traceId']=_0x58c6d3,this['spanId']=_0xa122f0;const _0x5b961b=telemetry_1['trace']['getTracer'](package_json_1['default']['name'],package_json_1['default']['version']),_0x14c2b4=this['getParentSpanContext'](),_0x32fa43=_0x5b961b['startSpan'](_0x3c24bc,{'kind':telemetry_1['SpanKind']['CLIENT'],'attributes':_0x166a9a,'root':!_0x14c2b4},_0x14c2b4);return _0x32fa43;}['mapActivityAttributes'](){if(this['config']['telemetry']){const _0x3f0c9f=new mapper_1['MapperService'](this['config']['telemetry'],this['context'])['mapRules'](),_0x1ea13d={...Object['keys'](_0x3f0c9f)['reduce']((_0x49e4c7,_0x2a4534)=>{return['string','boolean','number']['includes'](typeof _0x3f0c9f[_0x2a4534])&&(_0x49e4c7['app.activity.data.'+_0x2a4534]=_0x3f0c9f[_0x2a4534]),_0x49e4c7;},{})};this['span']?.['setAttributes'](_0x1ea13d);}}['setActivityAttributes'](_0x4424d4){this['span']?.['setAttributes'](_0x4424d4);}['setStreamAttributes'](_0x595dc0){this['span']?.['setAttributes'](_0x595dc0);}['setJobAttributes'](_0x421b00){this['jobSpan']?.['setAttributes'](_0x421b00);}['endJobSpan'](){this['endSpan'](this['jobSpan']);}['endActivitySpan'](){this['endSpan'](this['span']);}['endStreamSpan'](){this['endSpan'](this['span']);}['endSpan'](_0x4aca7e){_0x4aca7e&&_0x4aca7e['end']();}['getParentSpanContext'](){if(this['traceId']&&this['spanId']){const _0x40aa13={'traceId':this['traceId'],'spanId':this['spanId'],'isRemote':!![],'traceFlags':0x1},_0x277e1c=telemetry_1['trace']['setSpanContext'](telemetry_1['context']['active'](),_0x40aa13);return _0x277e1c;}}['getSpanAttrs'](_0x4e5820){return{...Object['keys'](this['context']['metadata'])['reduce']((_0x35d1cf,_0x266fa6)=>{return _0x266fa6!=='trc'&&(_0x35d1cf['app.job.'+_0x266fa6]=this['context']['metadata'][_0x266fa6]),_0x35d1cf;},{}),...Object['keys'](this['metadata'])['reduce']((_0x2eaadd,_0x3e114b)=>{return _0x2eaadd['app.activity.'+_0x3e114b]=this['metadata'][_0x3e114b],_0x2eaadd;},{}),'app.activity.leg':_0x4e5820};}['getStreamSpanAttrs'](_0x53aaa2){return{...Object['keys'](_0x53aaa2['metadata'])['reduce']((_0x22a39f,_0x494c92)=>{return _0x494c92!=='trc'&&_0x494c92!=='spn'&&(_0x22a39f['app.stream.'+_0x494c92]=_0x53aaa2['metadata'][_0x494c92]),_0x22a39f;},{})};}['setTelemetryContext'](_0x1df869,_0x5cdb38){!this['context']['metadata']['trc']&&(this['context']['metadata']['trc']=_0x1df869['spanContext']()['traceId']),_0x5cdb38===0x1?(!this['context']['$self']['output']['metadata']&&(this['context']['$self']['output']['metadata']={}),this['context']['$self']['output']['metadata']['l1s']=_0x1df869['spanContext']()['spanId']):(!this['context']['$self']['output']['metadata']&&(this['context']['$self']['output']['metadata']={}),this['context']['$self']['output']['metadata']['l2s']=_0x1df869['spanContext']()['spanId']);}['setActivityError'](_0x144ef0){this['span']?.['setStatus']({'code':telemetry_1['SpanStatusCode']['ERROR'],'message':_0x144ef0});}['setStreamError'](_0x2b98f5){this['span']?.['setStatus']({'code':telemetry_1['SpanStatusCode']['ERROR'],'message':_0x2b98f5});}static['addTargetTelemetryPaths'](_0x1f1e1c,_0x258aea,_0x3d4021,_0x5b31ee){_0x5b31ee===0x1?(!(_0x258aea['parent']in _0x1f1e1c)&&(_0x1f1e1c[_0x258aea['parent']]=[]),_0x1f1e1c[_0x258aea['parent']]['push'](_0x258aea['parent']+'/output/metadata/l2s')):(!(_0x3d4021['aid']in _0x1f1e1c)&&(_0x1f1e1c[_0x3d4021['aid']]=[]),_0x1f1e1c[_0x3d4021['aid']]['push'](_0x3d4021['aid']+'/output/metadata/l1s'));}static['bindJobTelemetryToState'](_0x5c4d5e,_0x4c0b16,_0x344323){_0x4c0b16['type']==='trigger'&&(_0x5c4d5e['metadata/trc']=_0x344323['metadata']['trc']);}static['bindActivityTelemetryToState'](_0x371298,_0x4444c4,_0x340dc9,_0x5e5a4b,_0x4ac4fe){if(_0x4444c4['type']==='trigger')_0x371298[_0x340dc9['aid']+'/output/metadata/l1s']=_0x5e5a4b['$self']['output']['metadata']['l1s'],_0x371298[_0x340dc9['aid']+'/output/metadata/l2s']=_0x5e5a4b['$self']['output']['metadata']['l2s'];else{if(utils_1['polyfill']['resolveActivityType'](_0x4444c4['type'])==='hook'&&_0x4ac4fe===0x1)_0x371298[_0x340dc9['aid']+'/output/metadata/l1s']=_0x5e5a4b['$self']['output']['metadata']['l1s'],_0x371298[_0x340dc9['aid']+'/output/metadata/l2s']=_0x5e5a4b['$self']['output']['metadata']['l1s'];else{if(_0x4444c4['type']==='signal'&&_0x4ac4fe===0x1)_0x371298[_0x340dc9['aid']+'/output/metadata/l1s']=_0x5e5a4b['$self']['output']['metadata']['l1s'],_0x371298[_0x340dc9['aid']+'/output/metadata/l2s']=_0x5e5a4b['$self']['output']['metadata']['l1s'];else{const _0x4d8a1e='l'+_0x4ac4fe+'s';_0x371298[_0x340dc9['aid']+'/output/metadata/'+_0x4d8a1e]=_0x5e5a4b['$self']['output']['metadata'][_0x4d8a1e];}}}}}exports['TelemetryService']=TelemetryService;function _0x2611(_0x2ac1bf,_0x345b60){const _0x2101b0=_0x2101();return _0x2611=function(_0x2611cc,_0x214cc0){_0x2611cc=_0x2611cc-0x16f;let _0x1c5dae=_0x2101b0[_0x2611cc];return _0x1c5dae;},_0x2611(_0x2ac1bf,_0x345b60);}function _0x2101(){const _0x41678e=['26415kFLvqc','438060qaueVd','2423170SxWfWG','3864FHtRgC','206qfLFtS','685160xjeIht','458NNUCji','1334980PRkHVJ','18WFWrfw','20504800lJqbTL'];_0x2101=function(){return _0x41678e;};return _0x2101();}
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;