@hotmeshio/hotmesh 0.3.8 → 0.3.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (154) hide show
  1. package/README.md +2 -17
  2. package/build/index.d.ts +4 -2
  3. package/build/index.js +6 -3
  4. package/build/modules/key.js +1 -1
  5. package/build/modules/utils.d.ts +12 -4
  6. package/build/modules/utils.js +1 -1
  7. package/build/package.json +14 -7
  8. package/build/services/activities/activity.d.ts +9 -9
  9. package/build/services/activities/activity.js +1 -1
  10. package/build/services/activities/await.d.ts +2 -2
  11. package/build/services/activities/await.js +1 -1
  12. package/build/services/activities/cycle.d.ts +2 -2
  13. package/build/services/activities/cycle.js +1 -1
  14. package/build/services/activities/hook.d.ts +2 -2
  15. package/build/services/activities/hook.js +1 -1
  16. package/build/services/activities/index.js +1 -1
  17. package/build/services/activities/interrupt.js +1 -1
  18. package/build/services/activities/signal.js +1 -1
  19. package/build/services/activities/trigger.d.ts +3 -3
  20. package/build/services/activities/trigger.js +1 -1
  21. package/build/services/activities/worker.d.ts +2 -2
  22. package/build/services/activities/worker.js +1 -1
  23. package/build/services/collator/index.d.ts +9 -9
  24. package/build/services/collator/index.js +1 -1
  25. package/build/services/compiler/deployer.d.ts +4 -4
  26. package/build/services/compiler/deployer.js +1 -1
  27. package/build/services/compiler/index.d.ts +4 -4
  28. package/build/services/compiler/index.js +1 -1
  29. package/build/services/compiler/validator.d.ts +3 -3
  30. package/build/services/compiler/validator.js +1 -1
  31. package/build/services/connector/factory.d.ts +6 -0
  32. package/build/services/connector/factory.js +56 -0
  33. package/build/services/connector/index.d.ts +13 -4
  34. package/build/services/connector/index.js +30 -23
  35. package/build/services/connector/providers/ioredis.d.ts +9 -0
  36. package/build/services/connector/providers/ioredis.js +26 -0
  37. package/build/services/connector/providers/nats.d.ts +9 -0
  38. package/build/services/connector/providers/nats.js +26 -0
  39. package/build/services/connector/providers/postgres.d.ts +9 -0
  40. package/build/services/connector/providers/postgres.js +39 -0
  41. package/build/services/connector/providers/redis.d.ts +9 -0
  42. package/build/services/connector/providers/redis.js +38 -0
  43. package/build/services/engine/index.d.ts +12 -12
  44. package/build/services/engine/index.js +1 -1
  45. package/build/services/exporter/index.d.ts +3 -3
  46. package/build/services/exporter/index.js +1 -1
  47. package/build/services/hotmesh/index.js +4 -4
  48. package/build/services/mapper/index.js +1 -1
  49. package/build/services/meshcall/index.d.ts +5 -4
  50. package/build/services/meshcall/index.js +31 -14
  51. package/build/services/meshdata/index.d.ts +6 -6
  52. package/build/services/meshdata/index.js +7 -15
  53. package/build/services/meshflow/connection.d.ts +3 -2
  54. package/build/services/meshflow/exporter.d.ts +3 -3
  55. package/build/services/meshflow/exporter.js +1 -1
  56. package/build/services/meshflow/search.js +12 -4
  57. package/build/services/meshflow/worker.js +7 -7
  58. package/build/services/meshos/index.d.ts +1 -4
  59. package/build/services/meshos/index.js +11 -44
  60. package/build/services/pipe/functions/array.js +1 -1
  61. package/build/services/pipe/functions/bitwise.js +1 -1
  62. package/build/services/pipe/functions/conditional.js +1 -1
  63. package/build/services/pipe/functions/cron.d.ts +2 -0
  64. package/build/services/pipe/functions/cron.js +1 -1
  65. package/build/services/pipe/functions/date.js +1 -1
  66. package/build/services/pipe/functions/index.js +1 -1
  67. package/build/services/pipe/functions/json.js +1 -1
  68. package/build/services/pipe/functions/logical.js +1 -1
  69. package/build/services/pipe/functions/math.js +1 -1
  70. package/build/services/pipe/functions/number.js +1 -1
  71. package/build/services/pipe/functions/object.js +1 -1
  72. package/build/services/pipe/functions/string.js +1 -1
  73. package/build/services/pipe/functions/symbol.js +1 -1
  74. package/build/services/pipe/functions/unary.js +1 -1
  75. package/build/services/pipe/index.js +1 -1
  76. package/build/services/quorum/index.d.ts +5 -5
  77. package/build/services/quorum/index.js +1 -1
  78. package/build/services/reporter/index.d.ts +2 -2
  79. package/build/services/reporter/index.js +1 -1
  80. package/build/services/router/index.d.ts +8 -13
  81. package/build/services/router/index.js +1 -1
  82. package/build/services/search/factory.d.ts +2 -2
  83. package/build/services/search/factory.js +1 -1
  84. package/build/services/search/index.d.ts +5 -4
  85. package/build/services/search/providers/redis/ioredis.js +1 -1
  86. package/build/services/search/providers/redis/redis.js +1 -1
  87. package/build/services/serializer/index.js +1 -1
  88. package/build/services/store/factory.d.ts +3 -3
  89. package/build/services/store/factory.js +1 -1
  90. package/build/services/store/index.d.ts +18 -17
  91. package/build/services/store/providers/redis/_base.d.ts +13 -15
  92. package/build/services/store/providers/redis/_base.js +1 -1
  93. package/build/services/store/providers/redis/ioredis.d.ts +2 -2
  94. package/build/services/store/providers/redis/ioredis.js +1 -1
  95. package/build/services/store/providers/redis/redis.d.ts +2 -2
  96. package/build/services/store/providers/redis/redis.js +1 -1
  97. package/build/services/store/providers/store-initializable.js +1 -1
  98. package/build/services/stream/factory.d.ts +3 -3
  99. package/build/services/stream/factory.js +16 -4
  100. package/build/services/stream/index.d.ts +57 -18
  101. package/build/services/stream/index.js +2 -1
  102. package/build/services/stream/providers/nats/nats.d.ts +59 -0
  103. package/build/services/stream/providers/nats/nats.js +1 -0
  104. package/build/services/stream/providers/postgres/_deploy.d.ts +2 -1
  105. package/build/services/stream/providers/postgres/_deploy.js +1 -1
  106. package/build/services/stream/providers/postgres/postgres.d.ts +0 -0
  107. package/build/services/stream/providers/postgres/postgres.js +0 -0
  108. package/build/services/stream/providers/redis/ioredis.d.ts +53 -14
  109. package/build/services/stream/providers/redis/ioredis.js +1 -1
  110. package/build/services/stream/providers/redis/redis.d.ts +54 -15
  111. package/build/services/stream/providers/redis/redis.js +1 -1
  112. package/build/services/stream/providers/stream-initializable.d.ts +1 -2
  113. package/build/services/stream/providers/stream-initializable.js +1 -1
  114. package/build/services/sub/factory.d.ts +2 -2
  115. package/build/services/sub/factory.js +1 -1
  116. package/build/services/sub/index.d.ts +6 -5
  117. package/build/services/sub/providers/redis/ioredis.d.ts +1 -1
  118. package/build/services/sub/providers/redis/ioredis.js +1 -1
  119. package/build/services/sub/providers/redis/redis.d.ts +4 -4
  120. package/build/services/sub/providers/redis/redis.js +1 -1
  121. package/build/services/task/index.d.ts +5 -5
  122. package/build/services/task/index.js +1 -1
  123. package/build/services/telemetry/index.js +1 -1
  124. package/build/services/worker/index.d.ts +9 -9
  125. package/build/services/worker/index.js +1 -1
  126. package/build/types/hotmesh.d.ts +26 -14
  127. package/build/types/index.d.ts +6 -5
  128. package/build/types/manifest.d.ts +1 -9
  129. package/build/types/meshcall.d.ts +12 -7
  130. package/build/types/meshflow.d.ts +3 -7
  131. package/build/types/nats.d.ts +150 -0
  132. package/build/types/nats.js +2 -0
  133. package/build/types/postgres.d.ts +48 -0
  134. package/build/types/postgres.js +2 -0
  135. package/build/types/provider.d.ts +26 -0
  136. package/build/types/provider.js +2 -0
  137. package/build/types/redis.d.ts +33 -15
  138. package/build/types/stream.d.ts +65 -1
  139. package/index.ts +8 -5
  140. package/package.json +14 -7
  141. package/types/hotmesh.ts +139 -22
  142. package/types/index.ts +26 -17
  143. package/types/manifest.ts +1 -10
  144. package/types/meshcall.ts +38 -13
  145. package/types/meshflow.ts +2 -7
  146. package/types/nats.ts +231 -0
  147. package/types/postgres.ts +54 -0
  148. package/types/provider.ts +71 -0
  149. package/types/redis.ts +63 -18
  150. package/types/stream.ts +85 -1
  151. package/build/services/connector/clients/ioredis.d.ts +0 -13
  152. package/build/services/connector/clients/ioredis.js +0 -48
  153. package/build/services/connector/clients/redis.d.ts +0 -13
  154. package/build/services/connector/clients/redis.js +0 -60
@@ -1,17 +1,15 @@
1
1
  /// <reference types="node" />
2
2
  import { ILogger } from '../logger';
3
- import { StoreService } from '../store';
4
3
  import { StreamService } from '../stream';
5
- import { RedisClient, RedisMulti } from '../../types/redis';
6
- import { ReclaimedMessageType, StreamConfig, StreamData, StreamDataResponse, StreamRole } from '../../types/stream';
7
- declare class Router {
8
- static instances: Set<Router>;
4
+ import { RouterConfig, StreamData, StreamDataResponse, StreamRole } from '../../types/stream';
5
+ import { ProviderClient, ProviderTransaction } from '../../types/provider';
6
+ declare class Router<S extends StreamService<ProviderClient, ProviderTransaction>> {
7
+ static instances: Set<Router<any>>;
9
8
  appId: string;
10
9
  guid: string;
11
10
  role: StreamRole;
12
11
  topic: string | undefined;
13
- store: StoreService<RedisClient, RedisMulti>;
14
- stream: StreamService<RedisClient, RedisMulti>;
12
+ stream: S;
15
13
  reclaimDelay: number;
16
14
  reclaimCount: number;
17
15
  logger: ILogger;
@@ -27,16 +25,16 @@ declare class Router {
27
25
  isSleeping: boolean;
28
26
  sleepTimout: NodeJS.Timeout | null;
29
27
  readonly: boolean;
30
- constructor(config: StreamConfig, stream: StreamService<RedisClient, RedisMulti>, store: StoreService<RedisClient, RedisMulti>, logger: ILogger);
28
+ constructor(config: RouterConfig, stream: S, logger: ILogger);
31
29
  private resetThrottleState;
32
30
  createGroup(stream: string, group: string): Promise<void>;
33
- publishMessage(topic: string, streamData: StreamData | StreamDataResponse, multi?: RedisMulti): Promise<string | RedisMulti>;
31
+ publishMessage(topic: string, streamData: StreamData | StreamDataResponse, transaction?: ProviderTransaction): Promise<string | ProviderTransaction>;
34
32
  customSleep(): Promise<void>;
35
33
  consumeMessages(stream: string, group: string, consumer: string, callback: (streamData: StreamData) => Promise<StreamDataResponse | void>): Promise<void>;
36
34
  isStreamMessage(result: any): boolean;
37
35
  isPaused(): boolean;
38
36
  isStopped(group: string, consumer: string, stream: string): boolean;
39
- consumeOne(stream: string, group: string, id: string, message: string[], callback: (streamData: StreamData) => Promise<StreamDataResponse | void>): Promise<void>;
37
+ consumeOne(stream: string, group: string, id: string, input: StreamData, callback: (streamData: StreamData) => Promise<StreamDataResponse | void>): Promise<void>;
40
38
  execStreamLeg(input: StreamData, stream: string, id: string, callback: (streamData: StreamData) => Promise<StreamDataResponse | void>): Promise<StreamData>;
41
39
  ackAndDelete(stream: string, group: string, id: string): Promise<void>;
42
40
  publishResponse(input: StreamData, output: StreamDataResponse | void): Promise<string>;
@@ -48,8 +46,5 @@ declare class Router {
48
46
  stopConsuming(): Promise<void>;
49
47
  cancelThrottle(): void;
50
48
  setThrottle(delayInMillis: number): void;
51
- claimUnacknowledged(stream: string, group: string, consumer: string, idleTimeMs?: number, limit?: number): Promise<[string, [string, string]][]>;
52
- expireUnacknowledged(reclaimedMessage: ReclaimedMessageType, stream: string, group: string, consumer: string, id: string, count: number): Promise<void>;
53
- parseStreamData(str: string): [undefined, StreamData] | [Error];
54
49
  }
55
50
  export { Router };
@@ -1 +1 @@
1
- 'use strict';(function(_0x59722d,_0x229905){const _0xbf2560=_0x1497,_0x3810af=_0x59722d();while(!![]){try{const _0x3a8fc5=parseInt(_0xbf2560(0x133))/0x1+-parseInt(_0xbf2560(0x132))/0x2+parseInt(_0xbf2560(0x12b))/0x3+parseInt(_0xbf2560(0x12f))/0x4+-parseInt(_0xbf2560(0x12c))/0x5*(-parseInt(_0xbf2560(0x12a))/0x6)+parseInt(_0xbf2560(0x130))/0x7*(parseInt(_0xbf2560(0x131))/0x8)+parseInt(_0xbf2560(0x12e))/0x9*(-parseInt(_0xbf2560(0x12d))/0xa);if(_0x3a8fc5===_0x229905)break;else _0x3810af['push'](_0x3810af['shift']());}catch(_0x22f558){_0x3810af['push'](_0x3810af['shift']());}}}(_0x3857,0xec2cc));Object['defineProperty'](exports,'__esModule',{'value':!![]}),exports['Router']=void 0x0;function _0x1497(_0xebafa5,_0x2c96c4){const _0x385716=_0x3857();return _0x1497=function(_0x149737,_0x498101){_0x149737=_0x149737-0x12a;let _0x40313=_0x385716[_0x149737];return _0x40313;},_0x1497(_0xebafa5,_0x2c96c4);}function _0x3857(){const _0x297259=['1687509fiKasR','23325qtJbSd','1444070CscMws','261jIVtFI','3448588lRoyEb','14ZDVEEE','6651448syIWjE','399446KRSgqH','1012501uIygYT','1614RdjOSS'];_0x3857=function(){return _0x297259;};return _0x3857();}const enums_1=require('../../modules/enums'),key_1=require('../../modules/key'),utils_1=require('../../modules/utils'),telemetry_1=require('../telemetry'),stream_1=require('../../types/stream');class Router{constructor(_0x1bbcdc,_0x211153,_0x43c661,_0x3b4dfe){this['throttle']=0x0,this['errorCount']=0x0,this['counts']={},this['currentTimerId']=null,this['sleepPromiseResolve']=null,this['innerPromiseResolve']=null,this['isSleeping']=![],this['sleepTimout']=null,this['appId']=_0x1bbcdc['appId'],this['guid']=_0x1bbcdc['guid'],this['role']=_0x1bbcdc['role'],this['topic']=_0x1bbcdc['topic'],this['stream']=_0x211153,this['store']=_0x43c661,this['throttle']=_0x1bbcdc['throttle'],this['reclaimDelay']=_0x1bbcdc['reclaimDelay']||enums_1['HMSH_XCLAIM_DELAY_MS'],this['reclaimCount']=_0x1bbcdc['reclaimCount']||enums_1['HMSH_XCLAIM_COUNT'],this['logger']=_0x3b4dfe,this['readonly']=_0x1bbcdc['readonly']||![],this['resetThrottleState']();}['resetThrottleState'](){this['sleepPromiseResolve']=null,this['innerPromiseResolve']=null,this['isSleeping']=![],this['sleepTimout']=null;}async['createGroup'](_0x20434c,_0x3ede67){try{await this['stream']['createConsumerGroup'](_0x20434c,_0x3ede67);}catch(_0x507f2b){this['logger']['debug']('router-stream-group-exists',{'stream':_0x20434c,'group':_0x3ede67});}}async['publishMessage'](_0x62eba2,_0xe3a98a,_0x174b4a){const _0x244ad3=_0xe3a98a?.['code']||'200';this['counts'][_0x244ad3]=(this['counts'][_0x244ad3]||0x0)+0x1;const _0x55768d=this['store']['mintKey'](key_1['KeyType']['STREAMS'],{'appId':this['store']['appId'],'topic':_0x62eba2});return await this['stream']['publishMessage'](_0x55768d,'*','message',JSON['stringify'](_0xe3a98a),_0x174b4a);}async['customSleep'](){if(this['throttle']===0x0)return;if(this['isSleeping'])return;this['isSleeping']=!![];const _0x57e443=Date['now']();await new Promise(async _0x305289=>{this['sleepPromiseResolve']=_0x305289;let _0x4a54ac=Date['now']()-_0x57e443;while(_0x4a54ac<this['throttle']){await new Promise(_0xe5409f=>{this['innerPromiseResolve']=_0xe5409f,this['sleepTimout']=setTimeout(_0xe5409f,this['throttle']-_0x4a54ac);}),_0x4a54ac=Date['now']()-_0x57e443;}this['resetThrottleState'](),_0x305289();});}async['consumeMessages'](_0x1ed84f,_0x456233,_0xbf91a2,_0xa09e7c){if(this['readonly']){this['logger']['info']('router-stream-readonly',{'group':_0x456233,'consumer':_0xbf91a2,'stream':_0x1ed84f});return;}this['logger']['info']('router-stream-starting',{'group':_0x456233,'consumer':_0xbf91a2,'stream':_0x1ed84f}),Router['instances']['add'](this),this['shouldConsume']=!![],await this['createGroup'](_0x1ed84f,_0x456233);let _0x1c00cf=Date['now']();async function _0x13d0e3(){await this['customSleep']();if(this['isStopped'](_0x456233,_0xbf91a2,_0x1ed84f))return;else{if(this['isPaused']()){setImmediate(_0x13d0e3['bind'](this));return;}}try{const _0x2b8451=enums_1['HMSH_BLOCK_TIME_MS']+Math['round'](enums_1['HMSH_BLOCK_TIME_MS']*Math['random']()),_0x104a66=await this['stream']['consumeMessages'](_0x456233,_0xbf91a2,_0x2b8451,_0x1ed84f);if(this['isStopped'](_0x456233,_0xbf91a2,_0x1ed84f))return;else{if(this['isPaused']()){setImmediate(_0x13d0e3['bind'](this));return;}}if(this['isStreamMessage'](_0x104a66)){const [[,_0x1f92d8]]=_0x104a66;for(const [_0x43a09a,_0x44d96b]of _0x1f92d8){await this['consumeOne'](_0x1ed84f,_0x456233,_0x43a09a,_0x44d96b,_0xa09e7c);}}const _0x57053a=Date['now']();if(_0x57053a-_0x1c00cf>this['reclaimDelay']){_0x1c00cf=_0x57053a;const _0x141bd4=await this['claimUnacknowledged'](_0x1ed84f,_0x456233,_0xbf91a2);for(const [_0x468617,_0x8abd3f]of _0x141bd4){await this['consumeOne'](_0x1ed84f,_0x456233,_0x468617,_0x8abd3f,_0xa09e7c);}}setImmediate(_0x13d0e3['bind'](this));}catch(_0x3ef181){if(this['shouldConsume']&&process['env']['NODE_ENV']!=='test'){this['logger']['error']('router-stream-error',{'err':_0x3ef181,'stream':_0x1ed84f,'group':_0x456233,'consumer':_0xbf91a2}),this['errorCount']++;const _0x340004=Math['min'](enums_1['HMSH_GRADUATED_INTERVAL_MS']*0x2**this['errorCount'],enums_1['HMSH_MAX_TIMEOUT_MS']);setTimeout(_0x13d0e3['bind'](this),_0x340004);}}}_0x13d0e3['call'](this);}['isStreamMessage'](_0x384b96){return Array['isArray'](_0x384b96)&&Array['isArray'](_0x384b96[0x0]);}['isPaused'](){return this['throttle']===enums_1['MAX_DELAY'];}['isStopped'](_0x582ccb,_0xdaa0c9,_0x53101e){return!this['shouldConsume']&&this['logger']['info']('router-stream-stopped',{'group':_0x582ccb,'consumer':_0xdaa0c9,'stream':_0x53101e}),!this['shouldConsume'];}async['consumeOne'](_0xc902a,_0x478bd2,_0x471dec,_0x11d08d,_0x5e99c5){this['logger']['debug']('stream-read-one',{'group':_0x478bd2,'stream':_0xc902a,'id':_0x471dec});const [_0x53602f,_0x1afdac]=this['parseStreamData'](_0x11d08d[0x1]);let _0x3dfef7,_0x44e791;try{_0x44e791=new telemetry_1['TelemetryService'](this['appId']),_0x44e791['startStreamSpan'](_0x1afdac,this['role']),_0x3dfef7=await this['execStreamLeg'](_0x1afdac,_0xc902a,_0x471dec,_0x5e99c5['bind'](this)),_0x3dfef7?.['status']===stream_1['StreamStatus']['ERROR']&&_0x44e791['setStreamError']('Function\x20Status\x20Code\x20'+(_0x3dfef7['code']||enums_1['HMSH_CODE_UNKNOWN'])),this['errorCount']=0x0;}catch(_0x3b89b2){this['logger']['error']('stream-read-one-error',{'group':_0x478bd2,'stream':_0xc902a,'id':_0x471dec,'err':_0x3b89b2}),_0x44e791['setStreamError'](_0x3b89b2['message']);}const _0x42122a=await this['publishResponse'](_0x1afdac,_0x3dfef7);_0x44e791['setStreamAttributes']({'app.worker.mid':_0x42122a}),await this['ackAndDelete'](_0xc902a,_0x478bd2,_0x471dec),_0x44e791['endStreamSpan'](),this['logger']['debug']('stream-read-one-end',{'group':_0x478bd2,'stream':_0xc902a,'id':_0x471dec});}async['execStreamLeg'](_0x1f5d34,_0x3fe92c,_0x5452da,_0x27d2fe){let _0x3141d;try{_0x3141d=await _0x27d2fe(_0x1f5d34);}catch(_0xf6bbf1){this['logger']['error']('stream-call-function-error',{..._0xf6bbf1,'input':_0x1f5d34,'stack':_0xf6bbf1['stack'],'message':_0xf6bbf1['message'],'name':_0xf6bbf1['name'],'stream':_0x3fe92c,'id':_0x5452da}),_0x3141d=this['structureUnhandledError'](_0x1f5d34,_0xf6bbf1);}return _0x3141d;}async['ackAndDelete'](_0xd1a166,_0x435f48,_0x2b71bb){await this['stream']['ackAndDelete'](_0xd1a166,_0x435f48,_0x2b71bb);}async['publishResponse'](_0xb25818,_0x1061ad){if(_0x1061ad&&typeof _0x1061ad==='object'){if(_0x1061ad['status']==='error'){const [_0x4de53f,_0x514ec4]=this['shouldRetry'](_0xb25818,_0x1061ad);if(_0x4de53f)return await(0x0,utils_1['sleepFor'])(_0x514ec4),await this['publishMessage'](_0xb25818['metadata']['topic'],{'data':_0xb25818['data'],'metadata':{..._0xb25818['metadata'],'try':(_0xb25818['metadata']['try']||0x0)+0x1},'policies':_0xb25818['policies']});else _0x1061ad=this['structureError'](_0xb25818,_0x1061ad);}else typeof _0x1061ad['metadata']!=='object'?_0x1061ad['metadata']={..._0xb25818['metadata'],'guid':(0x0,utils_1['guid'])()}:_0x1061ad['metadata']['guid']=(0x0,utils_1['guid'])();return _0x1061ad['type']=stream_1['StreamDataType']['RESPONSE'],await this['publishMessage'](null,_0x1061ad);}}['shouldRetry'](_0x15b065,_0x4630c6){const _0x320c86=_0x15b065['policies']?.['retry'],_0x38d047=_0x4630c6['code']['toString'](),_0x270835=_0x320c86?.[_0x38d047],_0x2d0671=_0x270835?.[0x0],_0x4a2e7f=Math['min'](_0x15b065['metadata']['try']||0x0,enums_1['HMSH_MAX_RETRIES']);if(_0x2d0671>_0x4a2e7f)return[!![],Math['pow'](0xa,_0x4a2e7f+0x1)];return[![],0x0];}['structureUnhandledError'](_0x1cc755,_0x227eeb){const _0x4a753c={};return typeof _0x227eeb['message']==='string'?_0x4a753c['message']=_0x227eeb['message']:_0x4a753c['message']=enums_1['HMSH_STATUS_UNKNOWN'],typeof _0x227eeb['stack']==='string'&&(_0x4a753c['stack']=_0x227eeb['stack']),typeof _0x227eeb['name']==='string'&&(_0x4a753c['name']=_0x227eeb['name']),{'status':'error','code':enums_1['HMSH_CODE_UNKNOWN'],'metadata':{..._0x1cc755['metadata'],'guid':(0x0,utils_1['guid'])()},'data':_0x4a753c};}['structureUnacknowledgedError'](_0x4124c3){const _0x46e0f4='stream\x20message\x20max\x20delivery\x20count\x20exceeded',_0x17bfdb=enums_1['HMSH_CODE_UNACKED'],_0x540ddd={'message':_0x46e0f4,'code':_0x17bfdb},_0xb11a5e={'metadata':{..._0x4124c3['metadata'],'guid':(0x0,utils_1['guid'])()},'status':stream_1['StreamStatus']['ERROR'],'code':_0x17bfdb,'data':_0x540ddd};return delete _0xb11a5e['metadata']['topic'],_0xb11a5e;}['structureError'](_0x22b3bc,_0x1d2480){const _0x512ccf=_0x1d2480['data']?.['message']?_0x1d2480['data']?.['message']['toString']():enums_1['HMSH_STATUS_UNKNOWN'],_0x4ea3e2=_0x1d2480['code']||_0x1d2480['data']?.['code'],_0x2c2b25=isNaN(_0x4ea3e2)?enums_1['HMSH_CODE_UNKNOWN']:parseInt(_0x4ea3e2['toString']()),_0x22cc05=_0x1d2480['data']?.['stack']?_0x1d2480['data']?.['stack']['toString']():undefined,_0x573ab4={'message':_0x512ccf,'code':_0x2c2b25,'stack':_0x22cc05};return typeof _0x1d2480['data']?.['error']==='object'&&(_0x573ab4['error']={..._0x1d2480['data']['error']}),{'status':stream_1['StreamStatus']['ERROR'],'code':_0x2c2b25,'stack':_0x22cc05,'metadata':{..._0x22b3bc['metadata'],'guid':(0x0,utils_1['guid'])()},'data':_0x573ab4};}static async['stopConsuming'](){for(const _0x3d9a28 of[...Router['instances']]){_0x3d9a28['stopConsuming']();}await(0x0,utils_1['sleepFor'])(enums_1['HMSH_BLOCK_TIME_MS']*0x2);}async['stopConsuming'](){this['shouldConsume']=![],this['logger']['info']('router-stream-stopping',this['topic']?{'topic':this['topic']}:undefined),this['cancelThrottle']();}['cancelThrottle'](){this['sleepTimout']&&clearTimeout(this['sleepTimout']),this['resetThrottleState']();}['setThrottle'](_0x3cb4f1){if(!Number['isInteger'](_0x3cb4f1)||_0x3cb4f1<0x0||_0x3cb4f1>enums_1['MAX_DELAY'])throw new Error('Throttle\x20must\x20be\x20a\x20non-negative\x20integer\x20and\x20not\x20exceed\x20'+enums_1['MAX_DELAY']+'\x20ms;\x20send\x20-1\x20to\x20throttle\x20indefinitely');const _0x4da5f8=_0x3cb4f1<this['throttle'];this['throttle']=_0x3cb4f1,_0x4da5f8&&(this['sleepTimout']&&clearTimeout(this['sleepTimout']),this['innerPromiseResolve']&&this['innerPromiseResolve']());}async['claimUnacknowledged'](_0x47d7da,_0x44fadb,_0x419390,_0xd34721=this['reclaimDelay'],_0x3e553d=enums_1['HMSH_XPENDING_COUNT']){let _0x2cd959=[];const _0x34e400=await this['stream']['getPendingMessages'](_0x47d7da,_0x44fadb,_0x3e553d);for(const _0x240e0f of _0x34e400){if(Array['isArray'](_0x240e0f)){const [_0x1f732a,,_0x39967a,_0x2ec6d3]=_0x240e0f;if(_0x39967a>_0xd34721){const _0x3f9973=await this['stream']['claimMessage'](_0x47d7da,_0x44fadb,_0x419390,_0xd34721,_0x1f732a);_0x3f9973['length']&&(_0x2ec6d3<=this['reclaimCount']?_0x2cd959=_0x2cd959['concat'](_0x3f9973):await this['expireUnacknowledged'](_0x3f9973,_0x47d7da,_0x44fadb,_0x419390,_0x1f732a,_0x2ec6d3));}}}return _0x2cd959;}async['expireUnacknowledged'](_0x33eb80,_0x3ff700,_0x3b82f1,_0x447e77,_0x17536a,_0x20f24f){this['logger']['error']('stream-message-max-delivery-count-exceeded',{'id':_0x17536a,'stream':_0x3ff700,'group':_0x3b82f1,'consumer':_0x447e77,'code':enums_1['HMSH_CODE_UNACKED'],'count':_0x20f24f});const _0x5c26d0=_0x33eb80[0x0]?.[0x1]?.[0x1],[_0x24d49f,_0x5f1ccd]=this['parseStreamData'](_0x5c26d0);if(_0x24d49f)return this['logger']['error']('expire-unacknowledged-parse-fatal-error',{'id':_0x17536a,'err':_0x24d49f});else{if(!_0x5f1ccd||!_0x5f1ccd['metadata'])return this['logger']['error']('expire-unacknowledged-parse-fatal-error',{'id':_0x17536a});}let _0x1ea3cd,_0x2d7626;try{_0x1ea3cd=new telemetry_1['TelemetryService'](this['appId']),_0x1ea3cd['startStreamSpan'](_0x5f1ccd,stream_1['StreamRole']['SYSTEM']),_0x1ea3cd['setStreamError']('Stream\x20Message\x20Max\x20Delivery\x20Count\x20Exceeded');const _0x36314c=this['structureUnacknowledgedError'](_0x5f1ccd);_0x2d7626=await this['publishResponse'](_0x5f1ccd,_0x36314c),_0x1ea3cd['setStreamAttributes']({'app.worker.mid':_0x2d7626}),await this['ackAndDelete'](_0x3ff700,_0x3b82f1,_0x17536a);}catch(_0x451ad5){_0x2d7626?(this['logger']['error']('expire-unacknowledged-pub-fatal-error',{'id':_0x17536a,'err':_0x451ad5,..._0x5f1ccd['metadata']}),_0x1ea3cd['setStreamAttributes']({'app.system.fatal':'expire-unacknowledged-pub-fatal-error'})):(this['logger']['error']('expire-unacknowledged-ack-fatal-error',{'id':_0x17536a,'err':_0x451ad5,..._0x5f1ccd['metadata']}),_0x1ea3cd['setStreamAttributes']({'app.system.fatal':'expire-unacknowledged-ack-fatal-error'}));}finally{_0x1ea3cd['endStreamSpan']();}}['parseStreamData'](_0x7d8d37){try{return[,JSON['parse'](_0x7d8d37)];}catch(_0x5eef93){return[_0x5eef93];}}}exports['Router']=Router,Router['instances']=new Set();
1
+ 'use strict';(function(_0x5c8f96,_0x9cdb42){const _0x1085e6=_0x3b95,_0x5c0df3=_0x5c8f96();while(!![]){try{const _0x5f39bb=parseInt(_0x1085e6(0x1c1))/0x1*(-parseInt(_0x1085e6(0x1c4))/0x2)+parseInt(_0x1085e6(0x1c3))/0x3+-parseInt(_0x1085e6(0x1c2))/0x4*(-parseInt(_0x1085e6(0x1bf))/0x5)+parseInt(_0x1085e6(0x1bd))/0x6+-parseInt(_0x1085e6(0x1bc))/0x7*(parseInt(_0x1085e6(0x1c5))/0x8)+parseInt(_0x1085e6(0x1c0))/0x9+-parseInt(_0x1085e6(0x1be))/0xa;if(_0x5f39bb===_0x9cdb42)break;else _0x5c0df3['push'](_0x5c0df3['shift']());}catch(_0x469cce){_0x5c0df3['push'](_0x5c0df3['shift']());}}}(_0x4412,0x86783));Object['defineProperty'](exports,'__esModule',{'value':!![]}),exports['Router']=void 0x0;const enums_1=require('../../modules/enums'),key_1=require('../../modules/key'),utils_1=require('../../modules/utils'),telemetry_1=require('../telemetry'),stream_1=require('../../types/stream');function _0x3b95(_0x395eea,_0x14ec09){const _0x4412db=_0x4412();return _0x3b95=function(_0x3b9558,_0xa5f74f){_0x3b9558=_0x3b9558-0x1bc;let _0x13264d=_0x4412db[_0x3b9558];return _0x13264d;},_0x3b95(_0x395eea,_0x14ec09);}class Router{constructor(_0x3a7d99,_0x586bf7,_0x8662e8){this['throttle']=0x0,this['errorCount']=0x0,this['counts']={},this['currentTimerId']=null,this['sleepPromiseResolve']=null,this['innerPromiseResolve']=null,this['isSleeping']=![],this['sleepTimout']=null,this['appId']=_0x3a7d99['appId'],this['guid']=_0x3a7d99['guid'],this['role']=_0x3a7d99['role'],this['topic']=_0x3a7d99['topic'],this['stream']=_0x586bf7,this['throttle']=_0x3a7d99['throttle'],this['reclaimDelay']=_0x3a7d99['reclaimDelay']||enums_1['HMSH_XCLAIM_DELAY_MS'],this['reclaimCount']=_0x3a7d99['reclaimCount']||enums_1['HMSH_XCLAIM_COUNT'],this['logger']=_0x8662e8,this['readonly']=_0x3a7d99['readonly']||![],this['resetThrottleState']();}['resetThrottleState'](){this['sleepPromiseResolve']=null,this['innerPromiseResolve']=null,this['isSleeping']=![],this['sleepTimout']=null;}async['createGroup'](_0xfed0dd,_0x2a77fc){try{await this['stream']['createConsumerGroup'](_0xfed0dd,_0x2a77fc);}catch(_0x5d5ccd){this['logger']['debug']('router-stream-group-exists',{'stream':_0xfed0dd,'group':_0x2a77fc});}}async['publishMessage'](_0x4364d4,_0x379baa,_0x25839f){const _0x3ed51d=_0x379baa?.['code']||'200';this['counts'][_0x3ed51d]=(this['counts'][_0x3ed51d]||0x0)+0x1;const _0x1c52a3=this['stream']['mintKey'](key_1['KeyType']['STREAMS'],{'topic':_0x4364d4}),_0x2767c1=await this['stream']['publishMessages'](_0x1c52a3,[JSON['stringify'](_0x379baa)],{'transaction':_0x25839f});return _0x2767c1[0x0];}async['customSleep'](){if(this['throttle']===0x0)return;if(this['isSleeping'])return;this['isSleeping']=!![];const _0x438cc3=Date['now']();await new Promise(async _0x301bf4=>{this['sleepPromiseResolve']=_0x301bf4;let _0x113a1b=Date['now']()-_0x438cc3;while(_0x113a1b<this['throttle']){await new Promise(_0x558388=>{this['innerPromiseResolve']=_0x558388,this['sleepTimout']=setTimeout(_0x558388,this['throttle']-_0x113a1b);}),_0x113a1b=Date['now']()-_0x438cc3;}this['resetThrottleState'](),_0x301bf4();});}async['consumeMessages'](_0x2c087e,_0x56493a,_0x199916,_0x481ec6){if(this['readonly']){this['logger']['info']('router-stream-readonly',{'group':_0x56493a,'consumer':_0x199916,'stream':_0x2c087e});return;}this['logger']['info']('router-stream-starting',{'group':_0x56493a,'consumer':_0x199916,'stream':_0x2c087e}),Router['instances']['add'](this),this['shouldConsume']=!![],await this['createGroup'](_0x2c087e,_0x56493a);let _0x20d19a=Date['now']();async function _0x1aeb7(){await this['customSleep']();if(this['isStopped'](_0x56493a,_0x199916,_0x2c087e))return;else{if(this['isPaused']()){setImmediate(_0x1aeb7['bind'](this));return;}}const _0x17d687=enums_1['HMSH_BLOCK_TIME_MS']+Math['round'](enums_1['HMSH_BLOCK_TIME_MS']*Math['random']());try{const _0x260cbc=await this['stream']['consumeMessages'](_0x2c087e,_0x56493a,_0x199916,{'blockTimeout':_0x17d687});if(this['isStopped'](_0x56493a,_0x199916,_0x2c087e))return;else{if(this['isPaused']()){setImmediate(_0x1aeb7['bind'](this));return;}}for(let _0x8d9804=0x0;_0x8d9804<_0x260cbc['length'];_0x8d9804++){const _0x15afba=_0x260cbc[_0x8d9804];await this['consumeOne'](_0x2c087e,_0x56493a,_0x15afba['id'],_0x15afba['data'],_0x481ec6);}const _0x4887b8=Date['now']();if(this['stream']['getProviderSpecificFeatures']()['supportsRetry']&&_0x4887b8-_0x20d19a>this['reclaimDelay']){_0x20d19a=_0x4887b8;const _0x81f574=await this['stream']['retryMessages'](_0x2c087e,_0x56493a,{'consumerName':_0x199916,'minIdleTime':this['reclaimDelay'],'limit':enums_1['HMSH_XPENDING_COUNT']});for(let _0x52b0ec=0x0;_0x52b0ec<_0x81f574['length'];_0x52b0ec++){const _0x4c0eb3=_0x81f574[_0x52b0ec];await this['consumeOne'](_0x2c087e,_0x56493a,_0x4c0eb3['id'],_0x4c0eb3['data'],_0x481ec6);}}setImmediate(_0x1aeb7['bind'](this));}catch(_0x1aed15){if(this['shouldConsume']&&process['env']['NODE_ENV']!=='test'){this['logger']['error']('router-stream-error',{'err':_0x1aed15,'stream':_0x2c087e,'group':_0x56493a,'consumer':_0x199916}),this['errorCount']++;const _0x169483=Math['min'](enums_1['HMSH_GRADUATED_INTERVAL_MS']*0x2**this['errorCount'],enums_1['HMSH_MAX_TIMEOUT_MS']);setTimeout(_0x1aeb7['bind'](this),_0x169483);}}}_0x1aeb7['call'](this);}['isStreamMessage'](_0x2795ad){return Array['isArray'](_0x2795ad)&&Array['isArray'](_0x2795ad[0x0]);}['isPaused'](){return this['throttle']===enums_1['MAX_DELAY'];}['isStopped'](_0x3263f0,_0x17a9ac,_0x4e51c9){return!this['shouldConsume']&&this['logger']['info']('router-stream-stopped',{'group':_0x3263f0,'consumer':_0x17a9ac,'stream':_0x4e51c9}),!this['shouldConsume'];}async['consumeOne'](_0xa545c7,_0x3c3b21,_0x45db2c,_0x1f8e26,_0x96522b){this['logger']['debug']('stream-read-one',{'group':_0x3c3b21,'stream':_0xa545c7,'id':_0x45db2c});let _0xbdd5bc,_0x23232c;try{_0x23232c=new telemetry_1['TelemetryService'](this['appId']),_0x23232c['startStreamSpan'](_0x1f8e26,this['role']),_0xbdd5bc=await this['execStreamLeg'](_0x1f8e26,_0xa545c7,_0x45db2c,_0x96522b['bind'](this)),_0xbdd5bc?.['status']===stream_1['StreamStatus']['ERROR']&&_0x23232c['setStreamError']('Function\x20Status\x20Code\x20'+(_0xbdd5bc['code']||enums_1['HMSH_CODE_UNKNOWN'])),this['errorCount']=0x0;}catch(_0x22c46a){this['logger']['error']('stream-read-one-error',{'group':_0x3c3b21,'stream':_0xa545c7,'id':_0x45db2c,'err':_0x22c46a}),_0x23232c['setStreamError'](_0x22c46a['message']);}const _0x24b5e6=await this['publishResponse'](_0x1f8e26,_0xbdd5bc);_0x23232c['setStreamAttributes']({'app.worker.mid':_0x24b5e6}),await this['ackAndDelete'](_0xa545c7,_0x3c3b21,_0x45db2c),_0x23232c['endStreamSpan'](),this['logger']['debug']('stream-read-one-end',{'group':_0x3c3b21,'stream':_0xa545c7,'id':_0x45db2c});}async['execStreamLeg'](_0xe80a90,_0x2360ca,_0x390689,_0x51acbc){let _0x4a540b;try{_0x4a540b=await _0x51acbc(_0xe80a90);}catch(_0x3b4f92){this['logger']['error']('stream-call-function-error',{..._0x3b4f92,'input':_0xe80a90,'stack':_0x3b4f92['stack'],'message':_0x3b4f92['message'],'name':_0x3b4f92['name'],'stream':_0x2360ca,'id':_0x390689}),_0x4a540b=this['structureUnhandledError'](_0xe80a90,_0x3b4f92);}return _0x4a540b;}async['ackAndDelete'](_0x197172,_0x2ef30a,_0x3c8576){await this['stream']['ackAndDelete'](_0x197172,_0x2ef30a,[_0x3c8576]);}async['publishResponse'](_0x6fc5a7,_0x583e03){if(_0x583e03&&typeof _0x583e03==='object'){if(_0x583e03['status']==='error'){const [_0x32b1de,_0x4f061a]=this['shouldRetry'](_0x6fc5a7,_0x583e03);if(_0x32b1de)return await(0x0,utils_1['sleepFor'])(_0x4f061a),await this['publishMessage'](_0x6fc5a7['metadata']['topic'],{'data':_0x6fc5a7['data'],'metadata':{..._0x6fc5a7['metadata'],'try':(_0x6fc5a7['metadata']['try']||0x0)+0x1},'policies':_0x6fc5a7['policies']});else _0x583e03=this['structureError'](_0x6fc5a7,_0x583e03);}else typeof _0x583e03['metadata']!=='object'?_0x583e03['metadata']={..._0x6fc5a7['metadata'],'guid':(0x0,utils_1['guid'])()}:_0x583e03['metadata']['guid']=(0x0,utils_1['guid'])();return _0x583e03['type']=stream_1['StreamDataType']['RESPONSE'],await this['publishMessage'](null,_0x583e03);}}['shouldRetry'](_0x5a9b34,_0x5aa66e){const _0x31868=_0x5a9b34['policies']?.['retry'],_0x494ba5=_0x5aa66e['code']['toString'](),_0x48dd9a=_0x31868?.[_0x494ba5],_0x384574=_0x48dd9a?.[0x0],_0x3fc7ca=Math['min'](_0x5a9b34['metadata']['try']||0x0,enums_1['HMSH_MAX_RETRIES']);if(_0x384574>_0x3fc7ca)return[!![],Math['pow'](0xa,_0x3fc7ca+0x1)];return[![],0x0];}['structureUnhandledError'](_0x1394d7,_0x4b14ae){const _0x1acb45={};return typeof _0x4b14ae['message']==='string'?_0x1acb45['message']=_0x4b14ae['message']:_0x1acb45['message']=enums_1['HMSH_STATUS_UNKNOWN'],typeof _0x4b14ae['stack']==='string'&&(_0x1acb45['stack']=_0x4b14ae['stack']),typeof _0x4b14ae['name']==='string'&&(_0x1acb45['name']=_0x4b14ae['name']),{'status':'error','code':enums_1['HMSH_CODE_UNKNOWN'],'metadata':{..._0x1394d7['metadata'],'guid':(0x0,utils_1['guid'])()},'data':_0x1acb45};}['structureUnacknowledgedError'](_0x257b3a){const _0x47a393='stream\x20message\x20max\x20delivery\x20count\x20exceeded',_0x387219=enums_1['HMSH_CODE_UNACKED'],_0x332741={'message':_0x47a393,'code':_0x387219},_0x5999d6={'metadata':{..._0x257b3a['metadata'],'guid':(0x0,utils_1['guid'])()},'status':stream_1['StreamStatus']['ERROR'],'code':_0x387219,'data':_0x332741};return delete _0x5999d6['metadata']['topic'],_0x5999d6;}['structureError'](_0x264052,_0xeb93d5){const _0x4b113d=_0xeb93d5['data']?.['message']?_0xeb93d5['data']?.['message']['toString']():enums_1['HMSH_STATUS_UNKNOWN'],_0x520117=_0xeb93d5['code']||_0xeb93d5['data']?.['code'],_0x5bc39f=isNaN(_0x520117)?enums_1['HMSH_CODE_UNKNOWN']:parseInt(_0x520117['toString']()),_0x4516c5=_0xeb93d5['data']?.['stack']?_0xeb93d5['data']?.['stack']['toString']():undefined,_0x5b1d76={'message':_0x4b113d,'code':_0x5bc39f,'stack':_0x4516c5};return typeof _0xeb93d5['data']?.['error']==='object'&&(_0x5b1d76['error']={..._0xeb93d5['data']['error']}),{'status':stream_1['StreamStatus']['ERROR'],'code':_0x5bc39f,'stack':_0x4516c5,'metadata':{..._0x264052['metadata'],'guid':(0x0,utils_1['guid'])()},'data':_0x5b1d76};}static async['stopConsuming'](){for(const _0x3ab7ff of[...Router['instances']]){_0x3ab7ff['stopConsuming']();}await(0x0,utils_1['sleepFor'])(enums_1['HMSH_BLOCK_TIME_MS']*0x2);}async['stopConsuming'](){this['shouldConsume']=![],this['logger']['info']('router-stream-stopping',this['topic']?{'topic':this['topic']}:undefined),this['cancelThrottle']();}['cancelThrottle'](){this['sleepTimout']&&clearTimeout(this['sleepTimout']),this['resetThrottleState']();}['setThrottle'](_0x3d770e){if(!Number['isInteger'](_0x3d770e)||_0x3d770e<0x0||_0x3d770e>enums_1['MAX_DELAY'])throw new Error('Throttle\x20must\x20be\x20a\x20non-negative\x20integer\x20and\x20not\x20exceed\x20'+enums_1['MAX_DELAY']+'\x20ms;\x20send\x20-1\x20to\x20throttle\x20indefinitely');const _0x22f4cb=_0x3d770e<this['throttle'];this['throttle']=_0x3d770e,_0x22f4cb&&(this['sleepTimout']&&clearTimeout(this['sleepTimout']),this['innerPromiseResolve']&&this['innerPromiseResolve']());}}function _0x4412(){const _0xb6519f=['1157274SnoHQe','2650350yaqGQW','2847055AtsHYM','8850429oOhSbi','10uYxEBH','4MkFWee','1264233sNxiBD','163494xTOsEI','284688bqMimq','105BcedKo'];_0x4412=function(){return _0xb6519f;};return _0x4412();}exports['Router']=Router,Router['instances']=new Set();
@@ -1,7 +1,7 @@
1
- import { RedisClient } from '../../types/redis';
2
1
  import { ILogger } from '../logger';
2
+ import { ProviderClient } from '../../types/provider';
3
3
  import { SearchService } from './index';
4
4
  declare class SearchServiceFactory {
5
- static init(redisClient: RedisClient, redisStoreClient: RedisClient | undefined, namespace: string, appId: string, logger: ILogger): Promise<SearchService<any>>;
5
+ static init(redisClient: ProviderClient, redisStoreClient: ProviderClient | undefined, namespace: string, appId: string, logger: ILogger): Promise<SearchService<ProviderClient>>;
6
6
  }
7
7
  export { SearchServiceFactory };
@@ -7,7 +7,7 @@ const redis_1 = require("./providers/redis/redis");
7
7
  class SearchServiceFactory {
8
8
  static async init(redisClient, redisStoreClient, namespace, appId, 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.RedisSearchService(redisClient, redisStoreClient);
12
12
  }
13
13
  else {
@@ -1,11 +1,12 @@
1
1
  import { ILogger } from '../logger';
2
- declare abstract class SearchService<Client> {
3
- protected searchClient: Client;
4
- protected storeClient: Client;
2
+ import { ProviderClient } from '../../types/provider';
3
+ declare abstract class SearchService<ClientProvider extends ProviderClient> {
4
+ protected searchClient: ClientProvider;
5
+ protected storeClient: ClientProvider;
5
6
  protected namespace: string;
6
7
  protected logger: ILogger;
7
8
  protected appId: string;
8
- constructor(searchClient: Client, storeClient?: Client);
9
+ constructor(searchClient: ClientProvider, storeClient?: ClientProvider);
9
10
  abstract init(namespace: string, appId: string, logger: ILogger): Promise<void>;
10
11
  abstract createSearchIndex(indexName: string, prefixes: string[], schema: string[]): Promise<void>;
11
12
  abstract listSearchIndexes(): Promise<string[]>;
@@ -1 +1 @@
1
- 'use strict';(function(_0x140112,_0x3296e1){const _0x172cda=_0x32d6,_0x1063f7=_0x140112();while(!![]){try{const _0x53bfeb=parseInt(_0x172cda(0x173))/0x1*(-parseInt(_0x172cda(0x16c))/0x2)+-parseInt(_0x172cda(0x170))/0x3*(parseInt(_0x172cda(0x16e))/0x4)+parseInt(_0x172cda(0x16f))/0x5*(parseInt(_0x172cda(0x16b))/0x6)+-parseInt(_0x172cda(0x172))/0x7+parseInt(_0x172cda(0x174))/0x8+parseInt(_0x172cda(0x171))/0x9*(-parseInt(_0x172cda(0x175))/0xa)+parseInt(_0x172cda(0x16d))/0xb;if(_0x53bfeb===_0x3296e1)break;else _0x1063f7['push'](_0x1063f7['shift']());}catch(_0x4c23c4){_0x1063f7['push'](_0x1063f7['shift']());}}}(_0x1dc2,0x2f363));function _0x32d6(_0x543a26,_0x541f51){const _0x1dc29a=_0x1dc2();return _0x32d6=function(_0x32d6b1,_0xd16bb7){_0x32d6b1=_0x32d6b1-0x16b;let _0x239d7f=_0x1dc29a[_0x32d6b1];return _0x239d7f;},_0x32d6(_0x543a26,_0x541f51);}function _0x1dc2(){const _0x45e64a=['3VqlSKm','643128zYordL','462390KCvERZ','948zgdwQY','214010wekVlG','7485742dzhrkW','1222388oBbQja','8495Vocjvw','3azSChF','27ecHsqU','494529sUMbgv'];_0x1dc2=function(){return _0x45e64a;};return _0x1dc2();}Object['defineProperty'](exports,'__esModule',{'value':!![]}),exports['IORedisSearchService']=void 0x0;const index_1=require('../../index');class IORedisSearchService extends index_1['SearchService']{constructor(_0x32106b,_0x2de46b){super(_0x32106b,_0x2de46b);}async['init'](_0x2acc28,_0x472757,_0x403a86){this['namespace']=_0x2acc28,this['appId']=_0x472757,this['logger']=_0x403a86;}async['createSearchIndex'](_0x2a8f94,_0x419f2a,_0x56184f){try{await this['searchClient']['call']('FT.CREATE',_0x2a8f94,'ON','HASH','PREFIX',_0x419f2a['length']['toString'](),..._0x419f2a,'SCHEMA',..._0x56184f);}catch(_0x13b7bf){this['logger']['info']('Error\x20creating\x20search\x20index',{'error':_0x13b7bf});throw _0x13b7bf;}}async['listSearchIndexes'](){try{const _0x335693=await this['searchClient']['call']('FT._LIST');return _0x335693;}catch(_0x2a946d){this['logger']['info']('Error\x20listing\x20search\x20indexes',{'error':_0x2a946d});throw _0x2a946d;}}async['setFields'](_0x2ab6be,_0x401373){try{const _0x22ce54=await this['searchClient']['hset'](_0x2ab6be,_0x401373);return Number(_0x22ce54);}catch(_0x179ad7){this['logger']['error']('Error\x20setting\x20fields\x20for\x20key:\x20'+_0x2ab6be,{'error':_0x179ad7});throw _0x179ad7;}}async['getField'](_0x14f333,_0x367a8f){try{return await this['searchClient']['hget'](_0x14f333,_0x367a8f);}catch(_0xcb004a){this['logger']['error']('Error\x20getting\x20field\x20'+_0x367a8f+'\x20for\x20key:\x20'+_0x14f333,{'error':_0xcb004a});throw _0xcb004a;}}async['getFields'](_0x2dfd26,_0x52d5b4){try{return await this['searchClient']['hmget'](_0x2dfd26,[..._0x52d5b4]);}catch(_0x381c30){this['logger']['error']('Error\x20getting\x20fields\x20for\x20key:\x20'+_0x2dfd26,{'error':_0x381c30});throw _0x381c30;}}async['getAllFields'](_0x5cba52){try{return await this['searchClient']['hgetall'](_0x5cba52);}catch(_0x41e8f9){this['logger']['error']('Error\x20getting\x20fields\x20for\x20key:\x20'+_0x5cba52,{'error':_0x41e8f9});throw _0x41e8f9;}}async['deleteFields'](_0x385947,_0x371d13){try{const _0x23294f=await this['searchClient']['hdel'](_0x385947,..._0x371d13);return Number(_0x23294f);}catch(_0x1b7bfd){this['logger']['error']('Error\x20deleting\x20fields\x20for\x20key:\x20'+_0x385947,{'error':_0x1b7bfd});throw _0x1b7bfd;}}async['incrementFieldByFloat'](_0x471399,_0x23a927,_0x463bc9){try{const _0x24c1a9=await this['searchClient']['hincrbyfloat'](_0x471399,_0x23a927,_0x463bc9);return Number(_0x24c1a9);}catch(_0x161a55){this['logger']['error']('Error\x20incrementing\x20field\x20'+_0x23a927+'\x20for\x20key:\x20'+_0x471399,{'error':_0x161a55});throw _0x161a55;}}async['sendQuery'](..._0x2a1678){try{return await this['searchClient']['call'](..._0x2a1678);}catch(_0x12a860){this['logger']['error']('Error\x20executing\x20query',{'error':_0x12a860});throw _0x12a860;}}async['sendIndexedQuery'](_0xe736f1,_0x387c2c){try{if(_0x387c2c[0x0]?.['startsWith']('FT.')){const [_0x159f80,..._0x474ab0]=_0x387c2c;return await this['searchClient']['call'](_0x159f80,..._0x474ab0);}return await this['searchClient']['call']('FT.SEARCH',_0xe736f1,..._0x387c2c);}catch(_0x4a715a){this['logger']['error']('Error\x20executing\x20query',{'error':_0x4a715a});throw _0x4a715a;}}}exports['IORedisSearchService']=IORedisSearchService;
1
+ 'use strict';(function(_0x467f37,_0xea5eb1){const _0x44b6af=_0x5dee,_0x9ce86=_0x467f37();while(!![]){try{const _0x3beded=parseInt(_0x44b6af(0x90))/0x1+-parseInt(_0x44b6af(0x8d))/0x2*(-parseInt(_0x44b6af(0x89))/0x3)+-parseInt(_0x44b6af(0x8b))/0x4+-parseInt(_0x44b6af(0x8a))/0x5+-parseInt(_0x44b6af(0x8e))/0x6+parseInt(_0x44b6af(0x8f))/0x7*(parseInt(_0x44b6af(0x8c))/0x8)+parseInt(_0x44b6af(0x91))/0x9;if(_0x3beded===_0xea5eb1)break;else _0x9ce86['push'](_0x9ce86['shift']());}catch(_0x16e8d9){_0x9ce86['push'](_0x9ce86['shift']());}}}(_0x68e9,0xd34ea));Object['defineProperty'](exports,'__esModule',{'value':!![]}),exports['IORedisSearchService']=void 0x0;function _0x5dee(_0x126713,_0x1ab2d6){const _0x68e9a6=_0x68e9();return _0x5dee=function(_0x5deeb7,_0x217d93){_0x5deeb7=_0x5deeb7-0x89;let _0x4a8adb=_0x68e9a6[_0x5deeb7];return _0x4a8adb;},_0x5dee(_0x126713,_0x1ab2d6);}const index_1=require('../../index');function _0x68e9(){const _0x3b6192=['715083PJtfQI','5131510zwEfsk','2378032cZTkQx','390784FgPNCJ','4uUSlXQ','5874582lyYXTy','147PTNQPM','1444656jeLUcq','4664115BgHSLz'];_0x68e9=function(){return _0x3b6192;};return _0x68e9();}class IORedisSearchService extends index_1['SearchService']{constructor(_0x1a19f3,_0x2cae98){super(_0x1a19f3,_0x2cae98);}async['init'](_0xc6c83c,_0x8c7395,_0x16d05e){this['namespace']=_0xc6c83c,this['appId']=_0x8c7395,this['logger']=_0x16d05e;}async['createSearchIndex'](_0x1257bf,_0x44d640,_0x3ca377){try{await this['searchClient']['call']('FT.CREATE',_0x1257bf,'ON','HASH','PREFIX',_0x44d640['length']['toString'](),..._0x44d640,'SCHEMA',..._0x3ca377);}catch(_0x1a4228){this['logger']['info']('Error\x20creating\x20search\x20index',{'error':_0x1a4228});throw _0x1a4228;}}async['listSearchIndexes'](){try{const _0x1ea037=await this['searchClient']['call']('FT._LIST');return _0x1ea037;}catch(_0x3471b8){this['logger']['info']('Error\x20listing\x20search\x20indexes',{'error':_0x3471b8});throw _0x3471b8;}}async['setFields'](_0x2ef389,_0x24022e){try{const _0x2ab26d=await this['searchClient']['hset'](_0x2ef389,_0x24022e);return Number(_0x2ab26d);}catch(_0x5b7616){this['logger']['error']('Error\x20setting\x20fields\x20for\x20key:\x20'+_0x2ef389,{'error':_0x5b7616});throw _0x5b7616;}}async['getField'](_0x1deeb3,_0x5ba87a){try{return await this['searchClient']['hget'](_0x1deeb3,_0x5ba87a);}catch(_0x35ce45){this['logger']['error']('Error\x20getting\x20field\x20'+_0x5ba87a+'\x20for\x20key:\x20'+_0x1deeb3,{'error':_0x35ce45});throw _0x35ce45;}}async['getFields'](_0x4826a9,_0x28884a){try{return await this['searchClient']['hmget'](_0x4826a9,[..._0x28884a]);}catch(_0x13c083){this['logger']['error']('Error\x20getting\x20fields\x20for\x20key:\x20'+_0x4826a9,{'error':_0x13c083});throw _0x13c083;}}async['getAllFields'](_0x2b33c3){try{return await this['searchClient']['hgetall'](_0x2b33c3);}catch(_0x2bff31){this['logger']['error']('Error\x20getting\x20fields\x20for\x20key:\x20'+_0x2b33c3,{'error':_0x2bff31});throw _0x2bff31;}}async['deleteFields'](_0x49ff1f,_0x86641c){try{const _0xc3c07a=await this['searchClient']['hdel'](_0x49ff1f,..._0x86641c);return Number(_0xc3c07a);}catch(_0x47b0c7){this['logger']['error']('Error\x20deleting\x20fields\x20for\x20key:\x20'+_0x49ff1f,{'error':_0x47b0c7});throw _0x47b0c7;}}async['incrementFieldByFloat'](_0xd79ca9,_0x35c448,_0x184bd4){try{const _0x2f517b=await this['searchClient']['hincrbyfloat'](_0xd79ca9,_0x35c448,_0x184bd4);return Number(_0x2f517b);}catch(_0x1cb5f9){this['logger']['error']('Error\x20incrementing\x20field\x20'+_0x35c448+'\x20for\x20key:\x20'+_0xd79ca9,{'error':_0x1cb5f9});throw _0x1cb5f9;}}async['sendQuery'](..._0x3b24f6){try{return await this['searchClient']['call'](..._0x3b24f6);}catch(_0x1b01ac){this['logger']['error']('Error\x20executing\x20query',{'error':_0x1b01ac});throw _0x1b01ac;}}async['sendIndexedQuery'](_0x5cabb5,_0x389e09){try{if(_0x389e09[0x0]?.['startsWith']('FT.')){const [_0x444749,..._0x3e3bd2]=_0x389e09;return await this['searchClient']['call'](_0x444749,..._0x3e3bd2);}return await this['searchClient']['call']('FT.SEARCH',_0x5cabb5,..._0x389e09);}catch(_0x2eaa9d){this['logger']['error']('Error\x20executing\x20query',{'error':_0x2eaa9d});throw _0x2eaa9d;}}}exports['IORedisSearchService']=IORedisSearchService;
@@ -1 +1 @@
1
- 'use strict';(function(_0x2f1d8b,_0x2d6f3f){const _0x5c7c93=_0x26e5,_0x47095c=_0x2f1d8b();while(!![]){try{const _0x1113bf=-parseInt(_0x5c7c93(0x9b))/0x1+parseInt(_0x5c7c93(0x9e))/0x2*(parseInt(_0x5c7c93(0x97))/0x3)+-parseInt(_0x5c7c93(0x9d))/0x4*(parseInt(_0x5c7c93(0x98))/0x5)+-parseInt(_0x5c7c93(0x9a))/0x6+-parseInt(_0x5c7c93(0x95))/0x7*(parseInt(_0x5c7c93(0x9c))/0x8)+parseInt(_0x5c7c93(0x99))/0x9+parseInt(_0x5c7c93(0x96))/0xa;if(_0x1113bf===_0x2d6f3f)break;else _0x47095c['push'](_0x47095c['shift']());}catch(_0x3a3aeb){_0x47095c['push'](_0x47095c['shift']());}}}(_0x5a10,0x96174));Object['defineProperty'](exports,'__esModule',{'value':!![]}),exports['RedisSearchService']=void 0x0;const index_1=require('../../index');class RedisSearchService extends index_1['SearchService']{constructor(_0xd92816,_0x43ffe2){super(_0xd92816,_0x43ffe2);}async['init'](_0x2bdbea,_0x23e070,_0x582273){this['namespace']=_0x2bdbea,this['appId']=_0x23e070,this['logger']=_0x582273;}async['createSearchIndex'](_0x174cfa,_0x48bacb,_0x4bcf55){try{await this['searchClient']['sendCommand'](['FT.CREATE',_0x174cfa,'ON','HASH','PREFIX',_0x48bacb['length']['toString'](),..._0x48bacb,'SCHEMA',..._0x4bcf55]);}catch(_0x28b256){this['logger']['info']('Error\x20creating\x20search\x20index',{'error':_0x28b256});throw _0x28b256;}}async['listSearchIndexes'](){try{const _0x2f6d17=await this['searchClient']['sendCommand'](['FT._LIST']);return _0x2f6d17;}catch(_0x3a41e7){this['logger']['info']('Error\x20listing\x20search\x20indexes',{'error':_0x3a41e7});throw _0x3a41e7;}}async['setFields'](_0x37bf96,_0x17bca7){try{const _0x1fbb36=await this['searchClient']['HSET'](_0x37bf96,_0x17bca7);return Number(_0x1fbb36);}catch(_0x5431c7){this['logger']['error']('Error\x20setting\x20fields\x20for\x20key:\x20'+_0x37bf96,{'error':_0x5431c7});throw _0x5431c7;}}async['getField'](_0x4305e5,_0x5eedba){try{return await this['searchClient']['HGET'](_0x4305e5,_0x5eedba);}catch(_0x3489c4){this['logger']['error']('Error\x20getting\x20field\x20'+_0x5eedba+'\x20for\x20key:\x20'+_0x4305e5,{'error':_0x3489c4});throw _0x3489c4;}}async['getFields'](_0x24a8ec,_0x3812ec){try{return await this['searchClient']['HMGET'](_0x24a8ec,[..._0x3812ec]);}catch(_0x2d2b56){this['logger']['error']('Error\x20getting\x20fields\x20for\x20key:\x20'+_0x24a8ec,{'error':_0x2d2b56});throw _0x2d2b56;}}async['getAllFields'](_0x4d510d){try{return await this['searchClient']['HGETALL'](_0x4d510d);}catch(_0x2b0666){this['logger']['error']('Error\x20getting\x20fields\x20for\x20key:\x20'+_0x4d510d,{'error':_0x2b0666});throw _0x2b0666;}}async['deleteFields'](_0x4f7267,_0x9c9d93){try{const _0x76dd47=await this['searchClient']['HDEL'](_0x4f7267,_0x9c9d93);return Number(_0x76dd47);}catch(_0x3677c0){this['logger']['error']('Error\x20deleting\x20fields\x20for\x20key:\x20'+_0x4f7267,{'error':_0x3677c0});throw _0x3677c0;}}async['incrementFieldByFloat'](_0x168aac,_0x1134e5,_0x36a7c5){try{const _0x4d48ed=await this['searchClient']['HINCRBYFLOAT'](_0x168aac,_0x1134e5,_0x36a7c5);return Number(_0x4d48ed);}catch(_0x3a857f){this['logger']['error']('Error\x20incrementing\x20field\x20'+_0x1134e5+'\x20for\x20key:\x20'+_0x168aac,{'error':_0x3a857f});throw _0x3a857f;}}async['sendQuery'](..._0x2b6640){try{return await this['searchClient']['sendCommand'](_0x2b6640);}catch(_0x518ae8){this['logger']['error']('Error\x20executing\x20query',{'error':_0x518ae8});throw _0x518ae8;}}async['sendIndexedQuery'](_0x2ab5e4,_0x4a3ad1){try{if(_0x4a3ad1[0x0]?.['startsWith']('FT.'))return await this['searchClient']['sendCommand'](_0x4a3ad1);return await this['searchClient']['sendCommand'](['FT.SEARCH',_0x2ab5e4,..._0x4a3ad1]);}catch(_0x19ff6a){this['logger']['error']('Error\x20executing\x20query',{'error':_0x19ff6a});throw _0x19ff6a;}}}function _0x26e5(_0x13b726,_0x5bcc32){const _0x5a106d=_0x5a10();return _0x26e5=function(_0x26e5a3,_0x114b70){_0x26e5a3=_0x26e5a3-0x95;let _0x14d743=_0x5a106d[_0x26e5a3];return _0x14d743;},_0x26e5(_0x13b726,_0x5bcc32);}exports['RedisSearchService']=RedisSearchService;function _0x5a10(){const _0x389f01=['4094730eFGHuR','495082rjCIbT','6952224RXBMWU','76XLghbw','2TjoNMv','7wBBXQs','28747330gQZcLm','275511gwhqGk','154235oYeiSB','2527740VLohFK'];_0x5a10=function(){return _0x389f01;};return _0x5a10();}
1
+ 'use strict';(function(_0x71c3c9,_0x1bd4af){const _0x19dadd=_0x17cc,_0x224e07=_0x71c3c9();while(!![]){try{const _0x245712=-parseInt(_0x19dadd(0x104))/0x1+parseInt(_0x19dadd(0x103))/0x2+parseInt(_0x19dadd(0xfe))/0x3+parseInt(_0x19dadd(0xfd))/0x4*(-parseInt(_0x19dadd(0x102))/0x5)+parseInt(_0x19dadd(0x100))/0x6+-parseInt(_0x19dadd(0xfb))/0x7*(-parseInt(_0x19dadd(0x101))/0x8)+-parseInt(_0x19dadd(0xff))/0x9*(parseInt(_0x19dadd(0xfc))/0xa);if(_0x245712===_0x1bd4af)break;else _0x224e07['push'](_0x224e07['shift']());}catch(_0x102aae){_0x224e07['push'](_0x224e07['shift']());}}}(_0x3664,0xeb2ad));Object['defineProperty'](exports,'__esModule',{'value':!![]}),exports['RedisSearchService']=void 0x0;function _0x17cc(_0x248aca,_0x449f62){const _0x3664eb=_0x3664();return _0x17cc=function(_0x17ccec,_0x1c8f27){_0x17ccec=_0x17ccec-0xfb;let _0xbf2d42=_0x3664eb[_0x17ccec];return _0xbf2d42;},_0x17cc(_0x248aca,_0x449f62);}function _0x3664(){const _0x32acf6=['7loHZwt','20VTqXfy','1862136zLhjZn','2570322JJvJWN','10210311lqvZHt','8509662UUOLHc','13040952UVNgIz','10CYZYWy','1388690KqbgUQ','436244WGuNTi'];_0x3664=function(){return _0x32acf6;};return _0x3664();}const index_1=require('../../index');class RedisSearchService extends index_1['SearchService']{constructor(_0x1ae04f,_0x101988){super(_0x1ae04f,_0x101988);}async['init'](_0x3b5a3e,_0x46c77c,_0x2a9e5c){this['namespace']=_0x3b5a3e,this['appId']=_0x46c77c,this['logger']=_0x2a9e5c;}async['createSearchIndex'](_0x4a5326,_0x41a733,_0x56eea9){try{await this['searchClient']['sendCommand'](['FT.CREATE',_0x4a5326,'ON','HASH','PREFIX',_0x41a733['length']['toString'](),..._0x41a733,'SCHEMA',..._0x56eea9]);}catch(_0x167939){this['logger']['info']('Error\x20creating\x20search\x20index',{'error':_0x167939});throw _0x167939;}}async['listSearchIndexes'](){try{const _0x40b37d=await this['searchClient']['sendCommand'](['FT._LIST']);return _0x40b37d;}catch(_0x5bbda0){this['logger']['info']('Error\x20listing\x20search\x20indexes',{'error':_0x5bbda0});throw _0x5bbda0;}}async['setFields'](_0xcf1d5,_0x5b3091){try{const _0x59b45b=await this['searchClient']['HSET'](_0xcf1d5,_0x5b3091);return Number(_0x59b45b);}catch(_0x1e0622){this['logger']['error']('Error\x20setting\x20fields\x20for\x20key:\x20'+_0xcf1d5,{'error':_0x1e0622});throw _0x1e0622;}}async['getField'](_0x156c05,_0x8905a6){try{return await this['searchClient']['HGET'](_0x156c05,_0x8905a6);}catch(_0x451aa5){this['logger']['error']('Error\x20getting\x20field\x20'+_0x8905a6+'\x20for\x20key:\x20'+_0x156c05,{'error':_0x451aa5});throw _0x451aa5;}}async['getFields'](_0x3b7ebf,_0x15053f){try{return await this['searchClient']['HMGET'](_0x3b7ebf,[..._0x15053f]);}catch(_0x1dac64){this['logger']['error']('Error\x20getting\x20fields\x20for\x20key:\x20'+_0x3b7ebf,{'error':_0x1dac64});throw _0x1dac64;}}async['getAllFields'](_0x586746){try{return await this['searchClient']['HGETALL'](_0x586746);}catch(_0xd8bc5){this['logger']['error']('Error\x20getting\x20fields\x20for\x20key:\x20'+_0x586746,{'error':_0xd8bc5});throw _0xd8bc5;}}async['deleteFields'](_0x1e1970,_0x2d6c4a){try{const _0x4519b2=await this['searchClient']['HDEL'](_0x1e1970,_0x2d6c4a);return Number(_0x4519b2);}catch(_0x24b30f){this['logger']['error']('Error\x20deleting\x20fields\x20for\x20key:\x20'+_0x1e1970,{'error':_0x24b30f});throw _0x24b30f;}}async['incrementFieldByFloat'](_0x2b33f8,_0xe3ea5f,_0x5932a2){try{const _0x28c65a=await this['searchClient']['HINCRBYFLOAT'](_0x2b33f8,_0xe3ea5f,_0x5932a2);return Number(_0x28c65a);}catch(_0x1b92d8){this['logger']['error']('Error\x20incrementing\x20field\x20'+_0xe3ea5f+'\x20for\x20key:\x20'+_0x2b33f8,{'error':_0x1b92d8});throw _0x1b92d8;}}async['sendQuery'](..._0x2b6314){try{return await this['searchClient']['sendCommand'](_0x2b6314);}catch(_0x2b1780){this['logger']['error']('Error\x20executing\x20query',{'error':_0x2b1780});throw _0x2b1780;}}async['sendIndexedQuery'](_0x196673,_0x4892f5){try{if(_0x4892f5[0x0]?.['startsWith']('FT.'))return await this['searchClient']['sendCommand'](_0x4892f5);return await this['searchClient']['sendCommand'](['FT.SEARCH',_0x196673,..._0x4892f5]);}catch(_0x2ae9d5){this['logger']['error']('Error\x20executing\x20query',{'error':_0x2ae9d5});throw _0x2ae9d5;}}}exports['RedisSearchService']=RedisSearchService;
@@ -1 +1 @@
1
- 'use strict';(function(_0x294a32,_0x260eca){const _0x44c690=_0x15ff,_0x4d338b=_0x294a32();while(!![]){try{const _0x2943e2=-parseInt(_0x44c690(0x137))/0x1*(parseInt(_0x44c690(0x136))/0x2)+parseInt(_0x44c690(0x13f))/0x3+-parseInt(_0x44c690(0x13a))/0x4*(parseInt(_0x44c690(0x13b))/0x5)+-parseInt(_0x44c690(0x138))/0x6*(-parseInt(_0x44c690(0x13d))/0x7)+parseInt(_0x44c690(0x135))/0x8+parseInt(_0x44c690(0x140))/0x9*(parseInt(_0x44c690(0x139))/0xa)+parseInt(_0x44c690(0x13e))/0xb*(-parseInt(_0x44c690(0x13c))/0xc);if(_0x2943e2===_0x260eca)break;else _0x4d338b['push'](_0x4d338b['shift']());}catch(_0x5b2da1){_0x4d338b['push'](_0x4d338b['shift']());}}}(_0x506a,0x574fa));function _0x506a(){const _0x30a5b9=['18520GllXWj','12YmLhli','21BtaSsr','3351843uhslfc','953529VIKswW','44487fdjIbl','3290808JnpJZC','268JXhctq','3335kZQyrw','912120fhMUDk','1210fglUZI','728YmNSID'];_0x506a=function(){return _0x30a5b9;};return _0x506a();}Object['defineProperty'](exports,'__esModule',{'value':!![]}),exports['SerializerService']=exports['MDATA_SYMBOLS']=void 0x0;const utils_1=require('../../modules/utils'),dateReg=/^"\d{4}-\d{2}-\d{2}(?:T\d{2}:\d{2}:\d{2}(?:\.\d{3})?Z)?"$/;exports['MDATA_SYMBOLS']={'SLOTS':0x1a,'ACTIVITY':{'KEYS':['aid','dad','as','atp','stp','ac','au','err','l1s','l2s']},'ACTIVITY_UPDATE':{'KEYS':['au','err','l2s']},'JOB':{'KEYS':['ngn','tpc','pj','pg','pd','px','pa','key','app','vrs','jid','gid','aid','ts','jc','ju','js','err','trc']},'JOB_UPDATE':{'KEYS':['ju','err']}};class SerializerService{constructor(){this['resetSymbols']({},{},{});}['abbreviate'](_0x267184,_0x47ab94,_0x2fac0a=[]){for(const _0x4b4791 of _0x47ab94){const _0x10c32e=this['symKeys']['get'](_0x4b4791),_0x5d5269=_0x267184[_0x4b4791];for(const _0xe2edbf of _0x5d5269){const _0xc2c044=_0x10c32e['get'](_0xe2edbf);if(_0xc2c044){const _0x3c3684=this['resolveDimensionalIndex'](_0xe2edbf);_0x2fac0a['push'](''+_0xc2c044+_0x3c3684);}else _0x2fac0a['push'](_0xe2edbf);}}return _0x2fac0a;}['resolveDimensionalIndex'](_0x50bf22){if(this['isJobPath'](_0x50bf22))return'';else{const [_0x1074c9]=_0x50bf22['split']('/');if(_0x1074c9 in this['dIds'])return this['dIds'][_0x1074c9];else{if('$ADJACENT'in this['dIds'])return this['dIds']['$ADJACENT'];}return',0';}}['isJobPath'](_0x34d0ec){return _0x34d0ec['startsWith']('data/')||_0x34d0ec['startsWith']('metadata/');}['resetSymbols'](_0x343824,_0x69299f,_0x31f32e){this['symKeys']=new Map(),this['symReverseKeys']=new Map();for(const _0x297ff9 in _0x343824){this['symKeys']['set'](_0x297ff9,new Map(Object['entries'](_0x343824[_0x297ff9])));}this['symValMaps']=new Map(Object['entries'](_0x69299f)),this['symValReverseMaps']=this['getReverseValueMap'](this['symValMaps']),this['dIds']=_0x31f32e;}['getReverseKeyMap'](_0x54612d,_0x1437e7){let _0x72d6f1=this['symReverseKeys']['get'](_0x1437e7);if(!_0x72d6f1){_0x72d6f1=new Map();for(const [_0x149f91,_0x43f84e]of _0x54612d['entries']()){_0x72d6f1['set'](_0x43f84e,_0x149f91);}this['symReverseKeys']['set'](_0x1437e7,_0x72d6f1);}return _0x72d6f1;}['getReverseValueMap'](_0x30ffac){const _0x4a9966=new Map();for(const [_0x43e935,_0x2b1f91]of _0x30ffac['entries']()){_0x4a9966['set'](_0x2b1f91,_0x43e935);}return _0x4a9966;}static['filterSymVals'](_0x2b941b,_0x2cc868,_0x3dd0bf,_0x3c899f){const _0x38ee45={},_0x26b8af={..._0x3dd0bf},_0x3bcd6a=new Set(Object['values'](_0x26b8af));for(const _0x17be7a of _0x3c899f){if(!_0x3bcd6a['has'](_0x17be7a)){if(_0x2b941b>_0x2cc868)return _0x38ee45;const _0x406465=(0x0,utils_1['getSymVal'])(_0x2b941b);_0x2b941b++,_0x38ee45[_0x406465]=_0x17be7a,_0x3bcd6a['add'](_0x17be7a);}}return _0x38ee45;}['compress'](_0x2143d3,_0x305fb5){if(this['symKeys']['size']===0x0)return _0x2143d3;const _0x1900c5={..._0x2143d3},_0x412eaf={},_0x2c6068=(_0x20fb90,_0x444345)=>{for(const _0x513431 in _0x1900c5){if(_0x513431['startsWith'](_0x444345+'/')||_0x444345['startsWith']('$')&&['data','metadata']['includes'](_0x513431['split']('/')[0x0])){const _0x1366a6=this['resolveDimensionalIndex'](_0x513431),_0x40e306=_0x20fb90['get'](_0x513431)||_0x513431,_0x4d5d0c=''+_0x40e306+_0x1366a6;_0x412eaf[_0x4d5d0c]=_0x1900c5[_0x513431];}else!(_0x513431 in _0x412eaf)&&this['isLiteralKeyType'](_0x513431)&&(_0x412eaf[_0x513431]=_0x1900c5[_0x513431]);}};for(const _0x2315aa of _0x305fb5){const _0x551c4a=this['symKeys']['get'](_0x2315aa);_0x551c4a&&_0x2c6068(_0x551c4a,_0x2315aa);}return _0x412eaf;}['isLiteralKeyType'](_0xe8e256){return _0xe8e256['startsWith']('-')||_0xe8e256['startsWith']('_');}['decompress'](_0x2cba9a,_0x49138e){if(this['symKeys']['size']===0x0)return _0x2cba9a;const _0x239a64={..._0x2cba9a},_0x5ae495=(_0x3b06bc,_0x15a31f)=>{const _0x19ba64=this['getReverseKeyMap'](_0x3b06bc,_0x15a31f);for(const _0x37ac7c in _0x239a64){const _0x574f7b=_0x37ac7c['split'](',')[0x0],_0x315e8e=_0x19ba64['get'](_0x574f7b);_0x315e8e&&(_0x239a64[_0x315e8e]=_0x239a64[_0x37ac7c],delete _0x239a64[_0x37ac7c]);}};for(const _0x3e8776 of _0x49138e){const _0x224b9b=this['symKeys']['get'](_0x3e8776);_0x224b9b&&_0x5ae495(_0x224b9b,_0x3e8776);}return _0x239a64;}['stringify'](_0x2a7aa9){const _0x450be5={};for(const _0x2dc452 in _0x2a7aa9){const _0x41f305=SerializerService['toString'](_0x2a7aa9[_0x2dc452]);_0x41f305&&(_0x450be5[_0x2dc452]=_0x41f305);}return _0x450be5;}['parse'](_0x1f3e14){const _0x4560c5={};for(const [_0x477a49,_0x39203a]of Object['entries'](_0x1f3e14)){if(_0x39203a===undefined||_0x39203a===null)continue;_0x4560c5[_0x477a49]=SerializerService['fromString'](_0x39203a);}return _0x4560c5;}static['toString'](_0x97ecf3){switch(typeof _0x97ecf3){case'string':break;case'boolean':_0x97ecf3=_0x97ecf3?'/t':'/f';break;case'number':_0x97ecf3='/d'+_0x97ecf3['toString']();break;case'undefined':return undefined;case'object':_0x97ecf3===null?_0x97ecf3='/n':_0x97ecf3='/s'+JSON['stringify'](_0x97ecf3);break;}return _0x97ecf3;}static['fromString'](_0x2da360){if(typeof _0x2da360!=='string')return undefined;const _0x1f116d=_0x2da360['slice'](0x0,0x2),_0x5ef74f=_0x2da360['slice'](0x2);switch(_0x1f116d){case'/t':return!![];case'/f':return![];case'/d':return Number(_0x5ef74f);case'/n':return null;case'/s':if(dateReg['exec'](_0x5ef74f))return new Date(JSON['parse'](_0x5ef74f));return JSON['parse'](_0x5ef74f);default:return _0x2da360;}}['package'](_0xe0c08c,_0x2cb676){const _0x46b6=this['stringify'](_0xe0c08c);return this['compress'](_0x46b6,_0x2cb676);}['unpackage'](_0x3d2bf4,_0x51dee7){const _0x4bf0f5=this['decompress'](_0x3d2bf4,_0x51dee7);return this['parse'](_0x4bf0f5);}['export'](){const _0x20d9e8={};for(const [_0x373b71,_0x381948]of this['symKeys']['entries']()){_0x20d9e8[_0x373b71]={};for(const [_0x3aed83,_0x17969c]of _0x381948['entries']()){_0x20d9e8[_0x373b71][_0x3aed83]=_0x17969c;}}return _0x20d9e8;}}function _0x15ff(_0x1e0068,_0x1c161d){const _0x506a8e=_0x506a();return _0x15ff=function(_0x15ff46,_0x357d3b){_0x15ff46=_0x15ff46-0x135;let _0x1a8151=_0x506a8e[_0x15ff46];return _0x1a8151;},_0x15ff(_0x1e0068,_0x1c161d);}exports['SerializerService']=SerializerService;
1
+ 'use strict';(function(_0x387477,_0x26f3c8){const _0x1504a2=_0x2590,_0x41c878=_0x387477();while(!![]){try{const _0x524f34=-parseInt(_0x1504a2(0x1d7))/0x1*(parseInt(_0x1504a2(0x1da))/0x2)+-parseInt(_0x1504a2(0x1d0))/0x3+parseInt(_0x1504a2(0x1d9))/0x4*(-parseInt(_0x1504a2(0x1d5))/0x5)+parseInt(_0x1504a2(0x1d1))/0x6+-parseInt(_0x1504a2(0x1db))/0x7*(parseInt(_0x1504a2(0x1d3))/0x8)+-parseInt(_0x1504a2(0x1d2))/0x9*(parseInt(_0x1504a2(0x1d8))/0xa)+-parseInt(_0x1504a2(0x1d6))/0xb*(-parseInt(_0x1504a2(0x1d4))/0xc);if(_0x524f34===_0x26f3c8)break;else _0x41c878['push'](_0x41c878['shift']());}catch(_0x1893aa){_0x41c878['push'](_0x41c878['shift']());}}}(_0x4ad5,0x3e5b1));Object['defineProperty'](exports,'__esModule',{'value':!![]}),exports['SerializerService']=exports['MDATA_SYMBOLS']=void 0x0;const utils_1=require('../../modules/utils'),dateReg=/^"\d{4}-\d{2}-\d{2}(?:T\d{2}:\d{2}:\d{2}(?:\.\d{3})?Z)?"$/;exports['MDATA_SYMBOLS']={'SLOTS':0x1a,'ACTIVITY':{'KEYS':['aid','dad','as','atp','stp','ac','au','err','l1s','l2s']},'ACTIVITY_UPDATE':{'KEYS':['au','err','l2s']},'JOB':{'KEYS':['ngn','tpc','pj','pg','pd','px','pa','key','app','vrs','jid','gid','aid','ts','jc','ju','js','err','trc']},'JOB_UPDATE':{'KEYS':['ju','err']}};function _0x2590(_0x2e63f0,_0x45e9f7){const _0x4ad5b5=_0x4ad5();return _0x2590=function(_0x259040,_0x41b8b6){_0x259040=_0x259040-0x1d0;let _0x3f1a72=_0x4ad5b5[_0x259040];return _0x3f1a72;},_0x2590(_0x2e63f0,_0x45e9f7);}class SerializerService{constructor(){this['resetSymbols']({},{},{});}['abbreviate'](_0x349af3,_0x2d3edd,_0x330e8b=[]){for(const _0x4e4d5e of _0x2d3edd){const _0x30ad05=this['symKeys']['get'](_0x4e4d5e),_0x1ef830=_0x349af3[_0x4e4d5e];for(const _0x342731 of _0x1ef830){const _0x3608f9=_0x30ad05['get'](_0x342731);if(_0x3608f9){const _0x2aba9c=this['resolveDimensionalIndex'](_0x342731);_0x330e8b['push'](''+_0x3608f9+_0x2aba9c);}else _0x330e8b['push'](_0x342731);}}return _0x330e8b;}['resolveDimensionalIndex'](_0x110d01){if(this['isJobPath'](_0x110d01))return'';else{const [_0x5de13f]=_0x110d01['split']('/');if(_0x5de13f in this['dIds'])return this['dIds'][_0x5de13f];else{if('$ADJACENT'in this['dIds'])return this['dIds']['$ADJACENT'];}return',0';}}['isJobPath'](_0x4186b7){return _0x4186b7['startsWith']('data/')||_0x4186b7['startsWith']('metadata/');}['resetSymbols'](_0x399b0c,_0xab3350,_0x34d2cc){this['symKeys']=new Map(),this['symReverseKeys']=new Map();for(const _0x5d1290 in _0x399b0c){this['symKeys']['set'](_0x5d1290,new Map(Object['entries'](_0x399b0c[_0x5d1290])));}this['symValMaps']=new Map(Object['entries'](_0xab3350)),this['symValReverseMaps']=this['getReverseValueMap'](this['symValMaps']),this['dIds']=_0x34d2cc;}['getReverseKeyMap'](_0x1ecaea,_0x2a1583){let _0x49b527=this['symReverseKeys']['get'](_0x2a1583);if(!_0x49b527){_0x49b527=new Map();for(const [_0x2032a1,_0xcd9cc5]of _0x1ecaea['entries']()){_0x49b527['set'](_0xcd9cc5,_0x2032a1);}this['symReverseKeys']['set'](_0x2a1583,_0x49b527);}return _0x49b527;}['getReverseValueMap'](_0x59c352){const _0x4a09f7=new Map();for(const [_0x4b8a47,_0x414ec3]of _0x59c352['entries']()){_0x4a09f7['set'](_0x414ec3,_0x4b8a47);}return _0x4a09f7;}static['filterSymVals'](_0x2c912f,_0x410e8a,_0x5d4a22,_0xbe4a58){const _0x5a4ec3={},_0x310866={..._0x5d4a22},_0x5c48b7=new Set(Object['values'](_0x310866));for(const _0x126273 of _0xbe4a58){if(!_0x5c48b7['has'](_0x126273)){if(_0x2c912f>_0x410e8a)return _0x5a4ec3;const _0x40cad9=(0x0,utils_1['getSymVal'])(_0x2c912f);_0x2c912f++,_0x5a4ec3[_0x40cad9]=_0x126273,_0x5c48b7['add'](_0x126273);}}return _0x5a4ec3;}['compress'](_0x383f74,_0xd8fd87){if(this['symKeys']['size']===0x0)return _0x383f74;const _0x16648b={..._0x383f74},_0x373b8b={},_0x4b736c=(_0x2172f0,_0x321a57)=>{for(const _0xa21fa4 in _0x16648b){if(_0xa21fa4['startsWith'](_0x321a57+'/')||_0x321a57['startsWith']('$')&&['data','metadata']['includes'](_0xa21fa4['split']('/')[0x0])){const _0x2bfe41=this['resolveDimensionalIndex'](_0xa21fa4),_0x49af84=_0x2172f0['get'](_0xa21fa4)||_0xa21fa4,_0x5cf0a7=''+_0x49af84+_0x2bfe41;_0x373b8b[_0x5cf0a7]=_0x16648b[_0xa21fa4];}else!(_0xa21fa4 in _0x373b8b)&&this['isLiteralKeyType'](_0xa21fa4)&&(_0x373b8b[_0xa21fa4]=_0x16648b[_0xa21fa4]);}};for(const _0x21a0f9 of _0xd8fd87){const _0x245ba9=this['symKeys']['get'](_0x21a0f9);_0x245ba9&&_0x4b736c(_0x245ba9,_0x21a0f9);}return _0x373b8b;}['isLiteralKeyType'](_0x49a51a){return _0x49a51a['startsWith']('-')||_0x49a51a['startsWith']('_');}['decompress'](_0x4376a0,_0x5cbf8a){if(this['symKeys']['size']===0x0)return _0x4376a0;const _0x40548b={..._0x4376a0},_0x7dfb45=(_0x45d316,_0x5e8296)=>{const _0x154cf7=this['getReverseKeyMap'](_0x45d316,_0x5e8296);for(const _0x5e46ac in _0x40548b){const _0x401244=_0x5e46ac['split'](',')[0x0],_0x2c1a52=_0x154cf7['get'](_0x401244);_0x2c1a52&&(_0x40548b[_0x2c1a52]=_0x40548b[_0x5e46ac],delete _0x40548b[_0x5e46ac]);}};for(const _0x2fd9ab of _0x5cbf8a){const _0x34fb66=this['symKeys']['get'](_0x2fd9ab);_0x34fb66&&_0x7dfb45(_0x34fb66,_0x2fd9ab);}return _0x40548b;}['stringify'](_0x3d7138){const _0xa1a32={};for(const _0x28d5a8 in _0x3d7138){const _0x2b2d2a=SerializerService['toString'](_0x3d7138[_0x28d5a8]);_0x2b2d2a&&(_0xa1a32[_0x28d5a8]=_0x2b2d2a);}return _0xa1a32;}['parse'](_0x39effe){const _0x3fd089={};for(const [_0x50c6e9,_0x5938fc]of Object['entries'](_0x39effe)){if(_0x5938fc===undefined||_0x5938fc===null)continue;_0x3fd089[_0x50c6e9]=SerializerService['fromString'](_0x5938fc);}return _0x3fd089;}static['toString'](_0x22ab7b){switch(typeof _0x22ab7b){case'string':break;case'boolean':_0x22ab7b=_0x22ab7b?'/t':'/f';break;case'number':_0x22ab7b='/d'+_0x22ab7b['toString']();break;case'undefined':return undefined;case'object':_0x22ab7b===null?_0x22ab7b='/n':_0x22ab7b='/s'+JSON['stringify'](_0x22ab7b);break;}return _0x22ab7b;}static['fromString'](_0x5220d0){if(typeof _0x5220d0!=='string')return undefined;const _0x2ac429=_0x5220d0['slice'](0x0,0x2),_0xc3967=_0x5220d0['slice'](0x2);switch(_0x2ac429){case'/t':return!![];case'/f':return![];case'/d':return Number(_0xc3967);case'/n':return null;case'/s':if(dateReg['exec'](_0xc3967))return new Date(JSON['parse'](_0xc3967));return JSON['parse'](_0xc3967);default:return _0x5220d0;}}['package'](_0x349fb7,_0x56c581){const _0x14bfbf=this['stringify'](_0x349fb7);return this['compress'](_0x14bfbf,_0x56c581);}['unpackage'](_0x4fc138,_0x516b55){const _0x57762b=this['decompress'](_0x4fc138,_0x516b55);return this['parse'](_0x57762b);}['export'](){const _0x1f76cb={};for(const [_0xd2b27f,_0x2e90c2]of this['symKeys']['entries']()){_0x1f76cb[_0xd2b27f]={};for(const [_0x15880a,_0x5cd29c]of _0x2e90c2['entries']()){_0x1f76cb[_0xd2b27f][_0x15880a]=_0x5cd29c;}}return _0x1f76cb;}}function _0x4ad5(){const _0x3c785c=['135357aXDYbK','1636890BUAeuN','32013nUXMEZ','699144HVJinT','763536nzdFXw','3175xYoMLg','253AGAhTX','10pikMgK','1130lBRqVr','1956woxvLn','57262rqykiC','35OcPsFL'];_0x4ad5=function(){return _0x3c785c;};return _0x4ad5();}exports['SerializerService']=SerializerService;
@@ -1,8 +1,8 @@
1
- import { RedisClient } from '../../types/redis';
2
1
  import { ILogger } from '../logger';
3
- import { StoreService } from './index';
2
+ import { ProviderClient, ProviderTransaction } from '../../types/provider';
4
3
  import { StoreInitializable } from './providers/store-initializable';
4
+ import { StoreService } from './index';
5
5
  declare class StoreServiceFactory {
6
- static init(redisClient: RedisClient, namespace: string, appId: string, logger: ILogger): Promise<StoreService<any, any> & StoreInitializable>;
6
+ static init(redisClient: ProviderClient, namespace: string, appId: string, logger: ILogger): Promise<StoreService<ProviderClient, ProviderTransaction> & StoreInitializable>;
7
7
  }
8
8
  export { StoreServiceFactory };
@@ -7,7 +7,7 @@ const redis_1 = require("./providers/redis/redis");
7
7
  class StoreServiceFactory {
8
8
  static async init(redisClient, namespace, appId, 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.RedisStoreService(redisClient);
12
12
  }
13
13
  else {
@@ -1,24 +1,25 @@
1
+ import { KeyStoreParams, KeyType } from '../../modules/key';
1
2
  import { ILogger } from '../logger';
2
3
  import { SerializerService as Serializer } from '../serializer';
3
- import { HotMeshSettings } from '../../types/hotmesh';
4
- import { Cache } from './cache';
5
- import { KeyStoreParams, KeyType } from '../../modules/key';
6
4
  import { Consumes } from '../../types/activity';
7
- import { StringAnyType, Symbols, StringStringType, SymbolSets } from '../../types/serializer';
8
- import { IdsData, JobStatsRange, StatsType } from '../../types/stats';
9
5
  import { AppVID } from '../../types/app';
10
6
  import { HookRule, HookSignal } from '../../types/hook';
7
+ import { HotMeshSettings } from '../../types/hotmesh';
8
+ import { ProviderClient, ProviderTransaction } from '../../types/provider';
11
9
  import { ThrottleOptions } from '../../types/quorum';
10
+ import { StringAnyType, Symbols, StringStringType, SymbolSets } from '../../types/serializer';
11
+ import { IdsData, JobStatsRange, StatsType } from '../../types/stats';
12
12
  import { WorkListTaskType } from '../../types/task';
13
- declare abstract class StoreService<Client, MultiClient> {
14
- storeClient: Client;
13
+ import { Cache } from './cache';
14
+ declare abstract class StoreService<Provider extends ProviderClient, TransactionProvider extends ProviderTransaction> {
15
+ storeClient: Provider;
15
16
  namespace: string;
16
17
  appId: string;
17
18
  logger: ILogger;
18
19
  cache: Cache;
19
20
  serializer: Serializer;
20
- constructor(client: Client);
21
- abstract getMulti(): MultiClient;
21
+ constructor(client: Provider);
22
+ abstract transact(): TransactionProvider;
22
23
  abstract mintKey(type: KeyType, params: KeyStoreParams): string;
23
24
  abstract getSettings(bCreate?: boolean): Promise<HotMeshSettings>;
24
25
  abstract setSettings(manifest: HotMeshSettings): Promise<any>;
@@ -33,18 +34,18 @@ declare abstract class StoreService<Client, MultiClient> {
33
34
  abstract getSymbolValues(): Promise<Symbols>;
34
35
  abstract addSymbolValues(symvals: Symbols): Promise<boolean>;
35
36
  abstract getSymbolKeys(symbolNames: string[]): Promise<SymbolSets>;
36
- abstract setStats(jobKey: string, jobId: string, dateTime: string, stats: StatsType, appVersion: AppVID, multi?: MultiClient): Promise<any>;
37
+ abstract setStats(jobKey: string, jobId: string, dateTime: string, stats: StatsType, appVersion: AppVID, transaction?: TransactionProvider): Promise<any>;
37
38
  abstract getJobStats(jobKeys: string[]): Promise<JobStatsRange>;
38
39
  abstract getJobIds(indexKeys: string[], idRange: [number, number]): Promise<IdsData>;
39
- abstract setStatus(collationKeyStatus: number, jobId: string, appId: string, multi?: MultiClient): Promise<any>;
40
+ abstract setStatus(collationKeyStatus: number, jobId: string, appId: string, transaction?: TransactionProvider): Promise<any>;
40
41
  abstract getStatus(jobId: string, appId: string): Promise<number>;
41
42
  abstract setStateNX(jobId: string, appId: string, status?: number): Promise<boolean>;
42
- abstract setState(state: StringAnyType, status: number | null, jobId: string, symbolNames: string[], dIds: StringStringType, multi?: MultiClient): Promise<string>;
43
+ abstract setState(state: StringAnyType, status: number | null, jobId: string, symbolNames: string[], dIds: StringStringType, transaction?: TransactionProvider): Promise<string>;
43
44
  abstract getQueryState(jobId: string, fields: string[]): Promise<StringAnyType>;
44
45
  abstract getState(jobId: string, consumes: Consumes, dIds: StringStringType): Promise<[StringAnyType, number] | undefined>;
45
46
  abstract getRaw(jobId: string): Promise<StringStringType>;
46
- abstract collate(jobId: string, activityId: string, amount: number, dIds: StringStringType, multi?: MultiClient): Promise<number>;
47
- abstract collateSynthetic(jobId: string, guid: string, amount: number, multi?: MultiClient): Promise<number>;
47
+ abstract collate(jobId: string, activityId: string, amount: number, dIds: StringStringType, transaction?: TransactionProvider): Promise<number>;
48
+ abstract collateSynthetic(jobId: string, guid: string, amount: number, transaction?: TransactionProvider): Promise<number>;
48
49
  abstract getSchema(activityId: string, appVersion: AppVID): Promise<any>;
49
50
  abstract getSchemas(appVersion: AppVID): Promise<Record<string, any>>;
50
51
  abstract setSchemas(schemas: Record<string, any>, appVersion: AppVID): Promise<any>;
@@ -56,17 +57,17 @@ declare abstract class StoreService<Client, MultiClient> {
56
57
  abstract setHookRules(hookRules: Record<string, HookRule[]>): Promise<any>;
57
58
  abstract getHookRules(): Promise<Record<string, HookRule[]>>;
58
59
  abstract getAllSymbols(): Promise<Symbols>;
59
- abstract setHookSignal(hook: HookSignal, multi?: MultiClient): Promise<any>;
60
+ abstract setHookSignal(hook: HookSignal, transaction?: TransactionProvider): Promise<any>;
60
61
  abstract getHookSignal(topic: string, resolved: string): Promise<string | undefined>;
61
62
  abstract deleteHookSignal(topic: string, resolved: string): Promise<number | undefined>;
62
63
  abstract addTaskQueues(keys: string[]): Promise<void>;
63
64
  abstract getActiveTaskQueue(): Promise<string | null>;
64
65
  abstract deleteProcessedTaskQueue(workItemKey: string, key: string, processedKey: string, scrub?: boolean): Promise<void>;
65
66
  abstract processTaskQueue(sourceKey: string, destinationKey: string): Promise<any>;
66
- abstract expireJob(jobId: string, inSeconds: number, redisMulti?: MultiClient): Promise<void>;
67
+ abstract expireJob(jobId: string, inSeconds: number, redisMulti?: TransactionProvider): Promise<void>;
67
68
  abstract getDependencies(jobId: string): Promise<string[]>;
68
69
  abstract delistSignalKey(key: string, target: string): Promise<void>;
69
- abstract registerTimeHook(jobId: string, gId: string, activityId: string, type: WorkListTaskType, deletionTime: number, dad: string, multi?: MultiClient): Promise<void>;
70
+ abstract registerTimeHook(jobId: string, gId: string, activityId: string, type: WorkListTaskType, deletionTime: number, dad: string, transaction?: TransactionProvider): Promise<void>;
70
71
  abstract getNextTask(listKey?: string): Promise<[
71
72
  listKey: string,
72
73
  jobId: string,
@@ -4,6 +4,7 @@ import { ActivityType, Consumes } from '../../../../types/activity';
4
4
  import { AppVID } from '../../../../types/app';
5
5
  import { HookRule, HookSignal } from '../../../../types/hook';
6
6
  import { HotMeshApp, HotMeshApps, HotMeshSettings } from '../../../../types/hotmesh';
7
+ import { ProviderClient, ProviderTransaction } from '../../../../types/provider';
7
8
  import { SymbolSets, StringStringType, StringAnyType, Symbols } from '../../../../types/serializer';
8
9
  import { IdsData, JobStatsRange, StatsType } from '../../../../types/stats';
9
10
  import { Transitions } from '../../../../types/transition';
@@ -11,19 +12,16 @@ import { JobInterruptOptions } from '../../../../types/job';
11
12
  import { WorkListTaskType } from '../../../../types/task';
12
13
  import { ThrottleOptions } from '../../../../types/quorum';
13
14
  import { StoreService } from '../..';
14
- interface AbstractRedisClient {
15
- exec(): Promise<any>;
16
- }
17
- declare abstract class RedisStoreBase<Client, MultiClient extends AbstractRedisClient> extends StoreService<Client, MultiClient> {
15
+ declare abstract class RedisStoreBase<ClientProvider extends ProviderClient, TransactionProvider extends ProviderTransaction> extends StoreService<ClientProvider, TransactionProvider> {
18
16
  commands: Record<string, string>;
19
- abstract getMulti(): MultiClient;
17
+ abstract transact(): TransactionProvider;
20
18
  abstract exec(...args: any[]): Promise<any>;
21
19
  abstract setnxex(key: string, value: string, expireSeconds: number): Promise<boolean>;
22
- constructor(storeClient: Client);
20
+ constructor(storeClient: ClientProvider);
23
21
  init(namespace: string, appId: string, logger: ILogger): Promise<HotMeshApps>;
24
22
  isSuccessful(result: any): boolean;
25
23
  delistSignalKey(key: string, target: string): Promise<void>;
26
- zAdd(key: string, score: number | string, value: string | number, redisMulti?: MultiClient): Promise<any>;
24
+ zAdd(key: string, score: number | string, value: string | number, redisMulti?: TransactionProvider): Promise<any>;
27
25
  zRangeByScoreWithScores(key: string, score: number | string, value: string | number): Promise<string | null>;
28
26
  zRangeByScore(key: string, score: number | string, value: string | number): Promise<string | null>;
29
27
  mintKey(type: KeyType, params: KeyStoreParams): string;
@@ -46,18 +44,18 @@ declare abstract class RedisStoreBase<Client, MultiClient extends AbstractRedisC
46
44
  setApp(id: string, version: string): Promise<HotMeshApp>;
47
45
  activateAppVersion(id: string, version: string): Promise<boolean>;
48
46
  registerAppVersion(appId: string, version: string): Promise<any>;
49
- setStats(jobKey: string, jobId: string, dateTime: string, stats: StatsType, appVersion: AppVID, multi?: MultiClient): Promise<any>;
47
+ setStats(jobKey: string, jobId: string, dateTime: string, stats: StatsType, appVersion: AppVID, transaction?: TransactionProvider): Promise<any>;
50
48
  hGetAllResult(result: any): any;
51
49
  getJobStats(jobKeys: string[]): Promise<JobStatsRange>;
52
50
  getJobIds(indexKeys: string[], idRange: [number, number]): Promise<IdsData>;
53
- setStatus(collationKeyStatus: number, jobId: string, appId: string, multi?: MultiClient): Promise<any>;
51
+ setStatus(collationKeyStatus: number, jobId: string, appId: string, transaction?: TransactionProvider): Promise<any>;
54
52
  getStatus(jobId: string, appId: string): Promise<number>;
55
- setState({ ...state }: StringAnyType, status: number | null, jobId: string, symbolNames: string[], dIds: StringStringType, multi?: MultiClient): Promise<string>;
53
+ setState({ ...state }: StringAnyType, status: number | null, jobId: string, symbolNames: string[], dIds: StringStringType, transaction?: TransactionProvider): Promise<string>;
56
54
  getQueryState(jobId: string, fields: string[]): Promise<StringAnyType>;
57
55
  getState(jobId: string, consumes: Consumes, dIds: StringStringType): Promise<[StringAnyType, number] | undefined>;
58
56
  getRaw(jobId: string): Promise<StringStringType>;
59
- collate(jobId: string, activityId: string, amount: number, dIds: StringStringType, multi?: MultiClient): Promise<number>;
60
- collateSynthetic(jobId: string, guid: string, amount: number, multi?: MultiClient): Promise<number>;
57
+ collate(jobId: string, activityId: string, amount: number, dIds: StringStringType, transaction?: TransactionProvider): Promise<number>;
58
+ collateSynthetic(jobId: string, guid: string, amount: number, transaction?: TransactionProvider): Promise<number>;
61
59
  setStateNX(jobId: string, appId: string, status?: number): Promise<boolean>;
62
60
  getSchema(activityId: string, appVersion: AppVID): Promise<ActivityType>;
63
61
  getSchemas(appVersion: AppVID): Promise<Record<string, ActivityType>>;
@@ -69,16 +67,16 @@ declare abstract class RedisStoreBase<Client, MultiClient extends AbstractRedisC
69
67
  getTransitions(appVersion: AppVID): Promise<Transitions>;
70
68
  setHookRules(hookRules: Record<string, HookRule[]>): Promise<any>;
71
69
  getHookRules(): Promise<Record<string, HookRule[]>>;
72
- setHookSignal(hook: HookSignal, multi?: MultiClient): Promise<any>;
70
+ setHookSignal(hook: HookSignal, transaction?: TransactionProvider): Promise<any>;
73
71
  getHookSignal(topic: string, resolved: string): Promise<string | undefined>;
74
72
  deleteHookSignal(topic: string, resolved: string): Promise<number | undefined>;
75
73
  addTaskQueues(keys: string[]): Promise<void>;
76
74
  getActiveTaskQueue(): Promise<string | null>;
77
75
  deleteProcessedTaskQueue(workItemKey: string, key: string, processedKey: string, scrub?: boolean): Promise<void>;
78
76
  processTaskQueue(sourceKey: string, destinationKey: string): Promise<any>;
79
- expireJob(jobId: string, inSeconds: number, redisMulti?: MultiClient): Promise<void>;
77
+ expireJob(jobId: string, inSeconds: number, redisMulti?: TransactionProvider): Promise<void>;
80
78
  getDependencies(jobId: string): Promise<string[]>;
81
- registerTimeHook(jobId: string, gId: string, activityId: string, type: WorkListTaskType, deletionTime: number, dad: string, multi?: MultiClient): Promise<void>;
79
+ registerTimeHook(jobId: string, gId: string, activityId: string, type: WorkListTaskType, deletionTime: number, dad: string, transaction?: TransactionProvider): Promise<void>;
82
80
  getNextTask(listKey?: string): Promise<[
83
81
  listKey: string,
84
82
  jobId: string,