@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.
- package/README.md +2 -17
- package/build/index.d.ts +4 -2
- package/build/index.js +6 -3
- package/build/modules/key.js +1 -1
- package/build/modules/utils.d.ts +12 -4
- package/build/modules/utils.js +1 -1
- package/build/package.json +14 -7
- package/build/services/activities/activity.d.ts +9 -9
- package/build/services/activities/activity.js +1 -1
- package/build/services/activities/await.d.ts +2 -2
- package/build/services/activities/await.js +1 -1
- package/build/services/activities/cycle.d.ts +2 -2
- package/build/services/activities/cycle.js +1 -1
- package/build/services/activities/hook.d.ts +2 -2
- package/build/services/activities/hook.js +1 -1
- package/build/services/activities/index.js +1 -1
- package/build/services/activities/interrupt.js +1 -1
- package/build/services/activities/signal.js +1 -1
- package/build/services/activities/trigger.d.ts +3 -3
- package/build/services/activities/trigger.js +1 -1
- package/build/services/activities/worker.d.ts +2 -2
- package/build/services/activities/worker.js +1 -1
- package/build/services/collator/index.d.ts +9 -9
- package/build/services/collator/index.js +1 -1
- package/build/services/compiler/deployer.d.ts +4 -4
- package/build/services/compiler/deployer.js +1 -1
- package/build/services/compiler/index.d.ts +4 -4
- package/build/services/compiler/index.js +1 -1
- package/build/services/compiler/validator.d.ts +3 -3
- package/build/services/compiler/validator.js +1 -1
- package/build/services/connector/factory.d.ts +6 -0
- package/build/services/connector/factory.js +56 -0
- package/build/services/connector/index.d.ts +13 -4
- package/build/services/connector/index.js +30 -23
- package/build/services/connector/providers/ioredis.d.ts +9 -0
- package/build/services/connector/providers/ioredis.js +26 -0
- package/build/services/connector/providers/nats.d.ts +9 -0
- package/build/services/connector/providers/nats.js +26 -0
- package/build/services/connector/providers/postgres.d.ts +9 -0
- package/build/services/connector/providers/postgres.js +39 -0
- package/build/services/connector/providers/redis.d.ts +9 -0
- package/build/services/connector/providers/redis.js +38 -0
- package/build/services/engine/index.d.ts +12 -12
- package/build/services/engine/index.js +1 -1
- package/build/services/exporter/index.d.ts +3 -3
- package/build/services/exporter/index.js +1 -1
- package/build/services/hotmesh/index.js +4 -4
- package/build/services/mapper/index.js +1 -1
- package/build/services/meshcall/index.d.ts +5 -4
- package/build/services/meshcall/index.js +31 -14
- package/build/services/meshdata/index.d.ts +6 -6
- package/build/services/meshdata/index.js +7 -15
- package/build/services/meshflow/connection.d.ts +3 -2
- package/build/services/meshflow/exporter.d.ts +3 -3
- package/build/services/meshflow/exporter.js +1 -1
- package/build/services/meshflow/search.js +12 -4
- package/build/services/meshflow/worker.js +7 -7
- package/build/services/meshos/index.d.ts +1 -4
- package/build/services/meshos/index.js +11 -44
- package/build/services/pipe/functions/array.js +1 -1
- package/build/services/pipe/functions/bitwise.js +1 -1
- package/build/services/pipe/functions/conditional.js +1 -1
- package/build/services/pipe/functions/cron.d.ts +2 -0
- package/build/services/pipe/functions/cron.js +1 -1
- package/build/services/pipe/functions/date.js +1 -1
- package/build/services/pipe/functions/index.js +1 -1
- package/build/services/pipe/functions/json.js +1 -1
- package/build/services/pipe/functions/logical.js +1 -1
- package/build/services/pipe/functions/math.js +1 -1
- package/build/services/pipe/functions/number.js +1 -1
- package/build/services/pipe/functions/object.js +1 -1
- package/build/services/pipe/functions/string.js +1 -1
- package/build/services/pipe/functions/symbol.js +1 -1
- package/build/services/pipe/functions/unary.js +1 -1
- package/build/services/pipe/index.js +1 -1
- package/build/services/quorum/index.d.ts +5 -5
- package/build/services/quorum/index.js +1 -1
- package/build/services/reporter/index.d.ts +2 -2
- package/build/services/reporter/index.js +1 -1
- package/build/services/router/index.d.ts +8 -13
- package/build/services/router/index.js +1 -1
- package/build/services/search/factory.d.ts +2 -2
- package/build/services/search/factory.js +1 -1
- package/build/services/search/index.d.ts +5 -4
- package/build/services/search/providers/redis/ioredis.js +1 -1
- package/build/services/search/providers/redis/redis.js +1 -1
- package/build/services/serializer/index.js +1 -1
- package/build/services/store/factory.d.ts +3 -3
- package/build/services/store/factory.js +1 -1
- package/build/services/store/index.d.ts +18 -17
- package/build/services/store/providers/redis/_base.d.ts +13 -15
- package/build/services/store/providers/redis/_base.js +1 -1
- package/build/services/store/providers/redis/ioredis.d.ts +2 -2
- package/build/services/store/providers/redis/ioredis.js +1 -1
- package/build/services/store/providers/redis/redis.d.ts +2 -2
- package/build/services/store/providers/redis/redis.js +1 -1
- package/build/services/store/providers/store-initializable.js +1 -1
- package/build/services/stream/factory.d.ts +3 -3
- package/build/services/stream/factory.js +16 -4
- package/build/services/stream/index.d.ts +57 -18
- package/build/services/stream/index.js +2 -1
- package/build/services/stream/providers/nats/nats.d.ts +59 -0
- package/build/services/stream/providers/nats/nats.js +1 -0
- package/build/services/stream/providers/postgres/_deploy.d.ts +2 -1
- package/build/services/stream/providers/postgres/_deploy.js +1 -1
- package/build/services/stream/providers/postgres/postgres.d.ts +0 -0
- package/build/services/stream/providers/postgres/postgres.js +0 -0
- package/build/services/stream/providers/redis/ioredis.d.ts +53 -14
- package/build/services/stream/providers/redis/ioredis.js +1 -1
- package/build/services/stream/providers/redis/redis.d.ts +54 -15
- package/build/services/stream/providers/redis/redis.js +1 -1
- package/build/services/stream/providers/stream-initializable.d.ts +1 -2
- package/build/services/stream/providers/stream-initializable.js +1 -1
- package/build/services/sub/factory.d.ts +2 -2
- package/build/services/sub/factory.js +1 -1
- package/build/services/sub/index.d.ts +6 -5
- package/build/services/sub/providers/redis/ioredis.d.ts +1 -1
- package/build/services/sub/providers/redis/ioredis.js +1 -1
- package/build/services/sub/providers/redis/redis.d.ts +4 -4
- package/build/services/sub/providers/redis/redis.js +1 -1
- package/build/services/task/index.d.ts +5 -5
- package/build/services/task/index.js +1 -1
- package/build/services/telemetry/index.js +1 -1
- package/build/services/worker/index.d.ts +9 -9
- package/build/services/worker/index.js +1 -1
- package/build/types/hotmesh.d.ts +26 -14
- package/build/types/index.d.ts +6 -5
- package/build/types/manifest.d.ts +1 -9
- package/build/types/meshcall.d.ts +12 -7
- package/build/types/meshflow.d.ts +3 -7
- package/build/types/nats.d.ts +150 -0
- package/build/types/nats.js +2 -0
- package/build/types/postgres.d.ts +48 -0
- package/build/types/postgres.js +2 -0
- package/build/types/provider.d.ts +26 -0
- package/build/types/provider.js +2 -0
- package/build/types/redis.d.ts +33 -15
- package/build/types/stream.d.ts +65 -1
- package/index.ts +8 -5
- package/package.json +14 -7
- package/types/hotmesh.ts +139 -22
- package/types/index.ts +26 -17
- package/types/manifest.ts +1 -10
- package/types/meshcall.ts +38 -13
- package/types/meshflow.ts +2 -7
- package/types/nats.ts +231 -0
- package/types/postgres.ts +54 -0
- package/types/provider.ts +71 -0
- package/types/redis.ts +63 -18
- package/types/stream.ts +85 -1
- package/build/services/connector/clients/ioredis.d.ts +0 -13
- package/build/services/connector/clients/ioredis.js +0 -48
- package/build/services/connector/clients/redis.d.ts +0 -13
- 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 {
|
|
6
|
-
import {
|
|
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
|
-
|
|
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:
|
|
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,
|
|
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,
|
|
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:
|
|
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.
|
|
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
|
-
|
|
3
|
-
|
|
4
|
-
protected
|
|
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:
|
|
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(
|
|
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(
|
|
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(
|
|
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 {
|
|
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:
|
|
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.
|
|
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
|
-
|
|
14
|
-
|
|
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:
|
|
21
|
-
abstract
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
47
|
-
abstract collateSynthetic(jobId: string, guid: string, amount: 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,
|
|
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?:
|
|
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,
|
|
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
|
-
|
|
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
|
|
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:
|
|
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?:
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
60
|
-
collateSynthetic(jobId: string, guid: string, amount: 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,
|
|
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?:
|
|
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,
|
|
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,
|