@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,21 +1,60 @@
|
|
|
1
|
-
import { KeyStoreParams, KeyType } from '../../../../modules/key';
|
|
2
1
|
import { ILogger } from '../../../logger';
|
|
3
2
|
import { StreamService } from '../../index';
|
|
4
|
-
import { IORedisClientType
|
|
5
|
-
import {
|
|
6
|
-
|
|
7
|
-
|
|
3
|
+
import { IORedisClientType, IORedisMultiType } from '../../../../types/redis';
|
|
4
|
+
import { PublishMessageConfig, StreamConfig, StreamMessage, StreamStats } from '../../../../types/stream';
|
|
5
|
+
import { KeyStoreParams, StringAnyType } from '../../../../types';
|
|
6
|
+
import { KeyType } from '../../../../modules/key';
|
|
7
|
+
import { ProviderTransaction } from '../../../../types/provider';
|
|
8
|
+
declare class IORedisStreamService extends StreamService<IORedisClientType, IORedisMultiType> {
|
|
9
|
+
constructor(streamClient: IORedisClientType, storeClient: IORedisClientType, config?: StreamConfig);
|
|
8
10
|
init(namespace: string, appId: string, logger: ILogger): Promise<void>;
|
|
9
|
-
getMulti(): RedisMultiType;
|
|
10
11
|
mintKey(type: KeyType, params: KeyStoreParams): string;
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
ackAndDelete(key: string, group: string, id: string): Promise<number | RedisMultiType>;
|
|
15
|
-
acknowledgeMessage(key: string, group: string, id: string, multi?: RedisMultiType): Promise<number | RedisMultiType>;
|
|
16
|
-
deleteMessage(key: string, id: string, multi?: RedisMultiType): Promise<number | RedisMultiType>;
|
|
12
|
+
transact(): ProviderTransaction;
|
|
13
|
+
createStream(streamName: string): Promise<boolean>;
|
|
14
|
+
deleteStream(streamName: string): Promise<boolean>;
|
|
17
15
|
createConsumerGroup(key: string, groupName: string): Promise<boolean>;
|
|
18
|
-
|
|
19
|
-
|
|
16
|
+
deleteConsumerGroup(streamName: string, groupName: string): Promise<boolean>;
|
|
17
|
+
publishMessages(streamName: string, messages: string[], options?: PublishMessageConfig): Promise<string[]>;
|
|
18
|
+
consumeMessages(streamName: string, groupName: string, consumerName: string, options?: {
|
|
19
|
+
batchSize?: number;
|
|
20
|
+
blockTimeout?: number;
|
|
21
|
+
}): Promise<StreamMessage[]>;
|
|
22
|
+
ackAndDelete(stream: string, group: string, ids: string[]): Promise<number>;
|
|
23
|
+
acknowledgeMessages(stream: string, group: string, ids: string[], options?: StringAnyType): Promise<number | IORedisMultiType>;
|
|
24
|
+
deleteMessages(stream: string, group: string, ids: string[], options?: StringAnyType): Promise<number | IORedisMultiType>;
|
|
25
|
+
getPendingMessages(stream: string, group: string, count?: number, consumer?: string): Promise<[string, string, number, [string, number][]][] | [string, string, number, number] | unknown[]>;
|
|
26
|
+
retryMessages(streamName: string, groupName: string, options?: {
|
|
27
|
+
consumerName?: string;
|
|
28
|
+
minIdleTime?: number;
|
|
29
|
+
messageIds?: string[];
|
|
30
|
+
delay?: number;
|
|
31
|
+
maxRetries?: number;
|
|
32
|
+
limit?: number;
|
|
33
|
+
}): Promise<StreamMessage[]>;
|
|
34
|
+
claimMessage(streamName: string, groupName: string, consumerName: string, minIdleTime: number, messageId: string, ...args: string[]): Promise<StreamMessage>;
|
|
35
|
+
getStreamStats(streamName: string): Promise<StreamStats>;
|
|
36
|
+
getStreamDepth(streamName: string, options?: {
|
|
37
|
+
multi: IORedisMultiType;
|
|
38
|
+
}): Promise<number>;
|
|
39
|
+
getStreamDepths(streamNames: {
|
|
40
|
+
stream: string;
|
|
41
|
+
}[]): Promise<{
|
|
42
|
+
stream: string;
|
|
43
|
+
depth: number;
|
|
44
|
+
}[]>;
|
|
45
|
+
trimStream(streamName: string, options: {
|
|
46
|
+
maxLen?: number;
|
|
47
|
+
maxAge?: number;
|
|
48
|
+
exactLimit?: boolean;
|
|
49
|
+
}): Promise<number>;
|
|
50
|
+
getProviderSpecificFeatures(): {
|
|
51
|
+
supportsBatching: boolean;
|
|
52
|
+
supportsDeadLetterQueue: boolean;
|
|
53
|
+
supportsOrdering: boolean;
|
|
54
|
+
supportsTrimming: boolean;
|
|
55
|
+
supportsRetry: boolean;
|
|
56
|
+
maxMessageSize: number;
|
|
57
|
+
maxBatchSize: number;
|
|
58
|
+
};
|
|
20
59
|
}
|
|
21
60
|
export { IORedisStreamService };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
'use strict';(function(
|
|
1
|
+
'use strict';(function(_0x21b0e0,_0x59aa00){const _0x74640b=_0x15d5,_0x107563=_0x21b0e0();while(!![]){try{const _0x3e231f=-parseInt(_0x74640b(0x187))/0x1*(-parseInt(_0x74640b(0x182))/0x2)+-parseInt(_0x74640b(0x186))/0x3+parseInt(_0x74640b(0x184))/0x4+-parseInt(_0x74640b(0x189))/0x5+-parseInt(_0x74640b(0x188))/0x6+parseInt(_0x74640b(0x185))/0x7+-parseInt(_0x74640b(0x18a))/0x8*(parseInt(_0x74640b(0x183))/0x9);if(_0x3e231f===_0x59aa00)break;else _0x107563['push'](_0x107563['shift']());}catch(_0x18fb66){_0x107563['push'](_0x107563['shift']());}}}(_0x40ec,0xe9742));Object['defineProperty'](exports,'__esModule',{'value':!![]}),exports['IORedisStreamService']=void 0x0;function _0x15d5(_0x7222ed,_0x4a7e70){const _0x40ecc8=_0x40ec();return _0x15d5=function(_0x15d5e7,_0x4a965c){_0x15d5e7=_0x15d5e7-0x182;let _0x32b565=_0x40ecc8[_0x15d5e7];return _0x32b565;},_0x15d5(_0x7222ed,_0x4a7e70);}const index_1=require('../../index'),utils_1=require('../../../../modules/utils'),key_1=require('../../../../modules/key'),enums_1=require('../../../../modules/enums');function _0x40ec(){const _0xbe111=['2715144DFzrcc','57UfjNHf','2411166VySLIq','90505dmhLOL','25000YpjCho','67004pNtiFv','4347ballwU','6144164XiykUG','2414692oAnVda'];_0x40ec=function(){return _0xbe111;};return _0x40ec();}class IORedisStreamService extends index_1['StreamService']{constructor(_0xcd8b94,_0x4aed6a,_0x46f41a={}){super(_0xcd8b94,_0x4aed6a,_0x46f41a);}async['init'](_0x2d44c5,_0x5e6022,_0x3f3382){this['namespace']=_0x2d44c5,this['logger']=_0x3f3382,this['appId']=_0x5e6022;}['mintKey'](_0x435025,_0x2922ed){if(!this['namespace'])throw new Error('namespace\x20not\x20set');return key_1['KeyService']['mintKey'](this['namespace'],_0x435025,{..._0x2922ed,'appId':this['appId']});}['transact'](){return this['streamClient']['multi']();}async['createStream'](_0xb66e31){try{const _0x46ff0c=await this['streamClient']['xadd'](_0xb66e31,'*','field','value');return await this['streamClient']['xdel'](_0xb66e31,_0x46ff0c),!![];}catch(_0x56e1ad){this['logger']['error']('Error\x20creating\x20stream\x20'+_0xb66e31,{'error':_0x56e1ad});throw _0x56e1ad;}}async['deleteStream'](_0x127e8c){try{const _0x17434c=await this['streamClient']['del'](_0x127e8c);return _0x17434c>0x0;}catch(_0x361bbb){this['logger']['error']('Error\x20deleting\x20stream\x20'+_0x127e8c,{'error':_0x361bbb});throw _0x361bbb;}}async['createConsumerGroup'](_0x3eb7da,_0x45716a){try{return await this['storeClient']['xgroup']('CREATE',_0x3eb7da,_0x45716a,'$','MKSTREAM')==='OK';}catch(_0x329e66){this['logger']['debug']('stream-mkstream-caught',{'key':_0x3eb7da,'group':_0x45716a});throw _0x329e66;}}async['deleteConsumerGroup'](_0xae1126,_0x57d27b){try{const _0x27d0d4=await this['streamClient']['xgroup']('DESTROY',_0xae1126,_0x57d27b);return _0x27d0d4===0x1;}catch(_0x2a7ea7){this['logger']['error']('Error\x20deleting\x20consumer\x20group\x20'+_0x57d27b+'\x20for\x20stream\x20'+_0xae1126,{'error':_0x2a7ea7});throw _0x2a7ea7;}}async['publishMessages'](_0x5c0fc9,_0x4c6cfa,_0x4aa848){try{const _0x2cb2a6=_0x4aa848?.['transaction']||_0x4c6cfa['length']>0x1&&this['storeClient']['multi']();let _0x566af0;for(const _0x3491cd of _0x4c6cfa){_0x566af0=await(_0x2cb2a6||this['storeClient'])['xadd'](_0x5c0fc9,'*','message',_0x3491cd);}return _0x2cb2a6&&!_0x4aa848?.['transaction']?(await _0x2cb2a6['exec']())['map'](_0x1c8b42=>_0x1c8b42[0x1]):[_0x566af0];}catch(_0x5ee643){this['logger']['error']('ioredis-xadd-error\x20key:\x20'+_0x5c0fc9,{..._0x5ee643});throw _0x5ee643;}}async['consumeMessages'](_0x58cde1,_0x31d031,_0x5cb86c,_0x18283b){try{const _0x2fb222=await this['streamClient']['xreadgroup']('GROUP',_0x31d031,_0x5cb86c,'BLOCK',_0x18283b?.['blockTimeout']??enums_1['HMSH_BLOCK_TIME_MS'],'STREAMS',_0x58cde1,'>'),_0x1dfa36=[];if((0x0,utils_1['isStreamMessage'])(_0x2fb222)){const [[,_0x1b0ddd]]=_0x2fb222;for(const [_0x1f5bdf,_0x4deb98]of _0x1b0ddd){_0x1dfa36['push']({'id':_0x1f5bdf,'data':(0x0,utils_1['parseStreamMessage'])(_0x4deb98[0x1])});}}else return[];return _0x1dfa36;}catch(_0x50aa9f){this['logger']['error']('Error\x20consuming\x20messages\x20from\x20'+_0x58cde1,{'error':_0x50aa9f});throw _0x50aa9f;}}async['ackAndDelete'](_0x5b5d35,_0x5eaf8f,_0x2d8e92){const _0x2879fe=this['storeClient']['multi']();return this['acknowledgeMessages'](_0x5b5d35,_0x5eaf8f,_0x2d8e92,{'multi':_0x2879fe}),this['deleteMessages'](_0x5b5d35,_0x5eaf8f,_0x2d8e92,{'multi':_0x2879fe}),await _0x2879fe['exec'](),_0x2d8e92['length'];}async['acknowledgeMessages'](_0xb2c7c7,_0x71f03c,_0x55552d,_0x556852){try{return _0x556852?.['multi']?(_0x556852['multi']['xack'](_0xb2c7c7,_0x71f03c,..._0x55552d),_0x556852['multi']):await this['streamClient']['xack'](_0xb2c7c7,_0x71f03c,..._0x55552d);}catch(_0x309682){this['logger']['error']('Error\x20in\x20acknowledging\x20messages:\x20['+_0x55552d+']\x20in\x20group:\x20'+_0x71f03c+'\x20for\x20key:\x20'+_0xb2c7c7,{..._0x309682});throw _0x309682;}}async['deleteMessages'](_0x2f5aab,_0x2a2f18,_0x2e6a66,_0x4ff037){try{return _0x4ff037?.['multi']?(_0x4ff037['multi']['xdel'](_0x2f5aab,..._0x2e6a66),_0x4ff037['multi']):await this['streamClient']['xdel'](_0x2f5aab,..._0x2e6a66);}catch(_0xd054cc){this['logger']['error']('Error\x20in\x20deleting\x20messages:\x20'+_0x2e6a66+'\x20for\x20key:\x20'+_0x2f5aab,{..._0xd054cc});throw _0xd054cc;}}async['getPendingMessages'](_0xbc2ad9,_0x3d2d47,_0x48f2bd,_0x14fb79){const _0x3fd7c1='-',_0x34b903='+';try{const _0x176058=[_0xbc2ad9,_0x3d2d47];if(_0x3fd7c1)_0x176058['push'](_0x3fd7c1);if(_0x34b903)_0x176058['push'](_0x34b903);if(_0x48f2bd!==undefined)_0x176058['push'](_0x48f2bd['toString']());if(_0x14fb79)_0x176058['push'](_0x14fb79);try{return await this['streamClient']['call']('XPENDING',..._0x176058);}catch(_0xe73967){this['logger']['error']('err,\x20args',{..._0xe73967},_0x176058);}}catch(_0x2d2338){this['logger']['error']('Error\x20in\x20retrieving\x20pending\x20messages\x20for\x20[stream\x20'+_0xbc2ad9+'],\x20[group\x20'+_0x3d2d47+']',{..._0x2d2338});throw _0x2d2338;}}async['retryMessages'](_0x32e6fc,_0x4b6d2e,_0x9bcd4c){let _0x4a1adc=[];const _0x129009=await this['getPendingMessages'](_0x32e6fc,_0x4b6d2e,_0x9bcd4c?.['limit']);for(const _0x5069cb of _0x129009){if(Array['isArray'](_0x5069cb)){const [_0x7c19e4,,_0x20e873,_0x1f9afa]=_0x5069cb;if(_0x20e873>_0x9bcd4c?.['minIdleTime']){const _0x1c25d9=await this['claimMessage'](_0x32e6fc,_0x4b6d2e,_0x9bcd4c?.['consumerName'],_0x9bcd4c?.['minIdleTime'],_0x7c19e4);_0x4a1adc=_0x4a1adc['concat'](_0x1c25d9);}}}return _0x4a1adc;}async['claimMessage'](_0x556d62,_0x31bdfd,_0x1dcb5b,_0x47f572,_0x55b734,..._0x247988){try{const _0x494a47=await this['streamClient']['xclaim'](_0x556d62,_0x31bdfd,_0x1dcb5b,_0x47f572,_0x55b734,..._0x247988);return{'id':_0x494a47[0x0][0x0],'data':(0x0,utils_1['parseStreamMessage'])(_0x494a47[0x0][0x1][0x1])};}catch(_0x133598){this['logger']['error']('Error\x20in\x20claiming\x20message\x20with\x20id:\x20'+_0x55b734+'\x20in\x20group:\x20'+_0x31bdfd+'\x20for\x20key:\x20'+_0x556d62,{..._0x133598});throw _0x133598;}}async['getStreamStats'](_0x50b9b7){return{'messageCount':await this['getStreamDepth'](_0x50b9b7)};}async['getStreamDepth'](_0x4194a1,_0x419fa2){try{if(_0x419fa2?.['multi'])return _0x419fa2['multi']['xlen'](_0x4194a1),0x0;const _0xcba5b5=await this['streamClient']['xlen'](_0x4194a1);return _0xcba5b5;}catch(_0x57a045){this['logger']['error']('Error\x20getting\x20depth\x20for\x20'+_0x4194a1,{'error':_0x57a045});throw _0x57a045;}}async['getStreamDepths'](_0x3697f2){const _0x567165=this['storeClient']['multi'](),_0x5c4cd5=new Map();_0x3697f2['forEach'](_0x4b733b=>{!_0x5c4cd5['has'](_0x4b733b['stream'])&&(_0x5c4cd5['set'](_0x4b733b['stream'],-0x1),this['getStreamDepth'](_0x4b733b['stream'],{'multi':_0x567165}));});const _0x597e18=await _0x567165['exec']();Array['from'](_0x5c4cd5['keys']())['forEach']((_0x397d17,_0x30a9d3)=>{_0x5c4cd5['set'](_0x397d17,_0x597e18[_0x30a9d3][0x1]);});const _0x5dc0ce=_0x3697f2['map'](_0x29659e=>{return{'stream':_0x29659e['stream'],'depth':_0x5c4cd5['get'](_0x29659e['stream'])||0x0};});return _0x5dc0ce;}async['trimStream'](_0xfab72a,_0x131148){return 0x0;}['getProviderSpecificFeatures'](){return{'supportsBatching':!![],'supportsDeadLetterQueue':![],'supportsOrdering':!![],'supportsTrimming':!![],'supportsRetry':!![],'maxMessageSize':0x200*0x400*0x400,'maxBatchSize':0x3e8};}}exports['IORedisStreamService']=IORedisStreamService;
|
|
@@ -1,21 +1,60 @@
|
|
|
1
|
-
import { KeyStoreParams, KeyType } from '../../../../modules/key';
|
|
2
1
|
import { ILogger } from '../../../logger';
|
|
3
2
|
import { StreamService } from '../../index';
|
|
4
|
-
import { RedisRedisClientType
|
|
5
|
-
import {
|
|
6
|
-
|
|
7
|
-
|
|
3
|
+
import { RedisRedisClientType, RedisRedisMultiType } from '../../../../types/redis';
|
|
4
|
+
import { PublishMessageConfig, StreamConfig, StreamMessage, StreamStats } from '../../../../types/stream';
|
|
5
|
+
import { KeyStoreParams, StringAnyType } from '../../../../types';
|
|
6
|
+
import { KeyType } from '../../../../modules/key';
|
|
7
|
+
import { ProviderTransaction } from '../../../../types/provider';
|
|
8
|
+
declare class RedisStreamService extends StreamService<RedisRedisClientType, RedisRedisMultiType> {
|
|
9
|
+
constructor(streamClient: RedisRedisClientType, storeClient: RedisRedisClientType, config?: StreamConfig);
|
|
8
10
|
init(namespace: string, appId: string, logger: ILogger): Promise<void>;
|
|
9
|
-
getMulti(): RedisMultiType;
|
|
10
11
|
mintKey(type: KeyType, params: KeyStoreParams): string;
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
12
|
+
transact(): ProviderTransaction;
|
|
13
|
+
createStream(streamName: string): Promise<boolean>;
|
|
14
|
+
deleteStream(streamName: string): Promise<boolean>;
|
|
15
|
+
createConsumerGroup(streamName: string, groupName: string): Promise<boolean>;
|
|
16
|
+
deleteConsumerGroup(streamName: string, groupName: string): Promise<boolean>;
|
|
17
|
+
publishMessages(streamName: string, messages: string[], options?: PublishMessageConfig): Promise<string[]>;
|
|
18
|
+
consumeMessages(streamName: string, groupName: string, consumerName: string, options?: {
|
|
19
|
+
batchSize?: number;
|
|
20
|
+
blockTimeout?: number;
|
|
21
|
+
}): Promise<StreamMessage[]>;
|
|
22
|
+
ackAndDelete(stream: string, group: string, ids: string[]): Promise<number>;
|
|
23
|
+
acknowledgeMessages(stream: string, group: string, ids: string[], options?: StringAnyType): Promise<number | RedisRedisMultiType>;
|
|
24
|
+
deleteMessages(stream: string, group: string, ids: string[], options?: StringAnyType): Promise<number | RedisRedisMultiType>;
|
|
25
|
+
getPendingMessages(stream: string, group: string, count?: number, consumer?: string): Promise<[string, string, number, [string, number][]][] | [string, string, number, number]>;
|
|
26
|
+
retryMessages(streamName: string, groupName: string, options?: {
|
|
27
|
+
consumerName?: string;
|
|
28
|
+
minIdleTime?: number;
|
|
29
|
+
messageIds?: string[];
|
|
30
|
+
delay?: number;
|
|
31
|
+
maxRetries?: number;
|
|
32
|
+
limit?: number;
|
|
33
|
+
}): Promise<StreamMessage[]>;
|
|
34
|
+
claimMessage(stream: string, group: string, consumer: string, minIdleTime: number, id: string, ...args: string[]): Promise<StreamMessage>;
|
|
35
|
+
getStreamStats(streamName: string): Promise<StreamStats>;
|
|
36
|
+
getStreamDepth(streamName: string, options?: {
|
|
37
|
+
multi: RedisRedisMultiType;
|
|
38
|
+
}): Promise<number>;
|
|
39
|
+
getStreamDepths(streamNames: {
|
|
40
|
+
stream: string;
|
|
41
|
+
}[]): Promise<{
|
|
42
|
+
stream: string;
|
|
43
|
+
depth: number;
|
|
44
|
+
}[]>;
|
|
45
|
+
trimStream(streamName: string, options: {
|
|
46
|
+
maxLen?: number;
|
|
47
|
+
maxAge?: number;
|
|
48
|
+
exactLimit?: boolean;
|
|
49
|
+
}): Promise<number>;
|
|
50
|
+
getProviderSpecificFeatures(): {
|
|
51
|
+
supportsBatching: boolean;
|
|
52
|
+
supportsDeadLetterQueue: boolean;
|
|
53
|
+
supportsOrdering: boolean;
|
|
54
|
+
supportsTrimming: boolean;
|
|
55
|
+
supportsRetry: boolean;
|
|
56
|
+
maxMessageSize: number;
|
|
57
|
+
maxBatchSize: number;
|
|
58
|
+
};
|
|
20
59
|
}
|
|
21
60
|
export { RedisStreamService };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
'use strict';function
|
|
1
|
+
'use strict';function _0x5096(){const _0x27524f=['3972628EBHmdO','1181330LArEbt','546500CaqakB','781968UaMwQN','14VKVeYM','328088AmfBQz','581600jrUKdu','5pMosZt','9XjIOlJ','281753OUJSMi','3inyAcu'];_0x5096=function(){return _0x27524f;};return _0x5096();}(function(_0x42a12a,_0x2ca1af){const _0x5f1625=_0x34be,_0x3d5b18=_0x42a12a();while(!![]){try{const _0x285f41=parseInt(_0x5f1625(0x13b))/0x1+parseInt(_0x5f1625(0x13f))/0x2*(-parseInt(_0x5f1625(0x13c))/0x3)+-parseInt(_0x5f1625(0x143))/0x4*(parseInt(_0x5f1625(0x144))/0x5)+parseInt(_0x5f1625(0x140))/0x6+-parseInt(_0x5f1625(0x141))/0x7*(parseInt(_0x5f1625(0x142))/0x8)+parseInt(_0x5f1625(0x13a))/0x9*(-parseInt(_0x5f1625(0x13e))/0xa)+parseInt(_0x5f1625(0x13d))/0xb;if(_0x285f41===_0x2ca1af)break;else _0x3d5b18['push'](_0x3d5b18['shift']());}catch(_0x47ef1c){_0x3d5b18['push'](_0x3d5b18['shift']());}}}(_0x5096,0x25b38));Object['defineProperty'](exports,'__esModule',{'value':!![]}),exports['RedisStreamService']=void 0x0;function _0x34be(_0x362367,_0x2f0027){const _0x50969e=_0x5096();return _0x34be=function(_0x34be2e,_0x379ae4){_0x34be2e=_0x34be2e-0x13a;let _0x3a94bd=_0x50969e[_0x34be2e];return _0x3a94bd;},_0x34be(_0x362367,_0x2f0027);}const index_1=require('../../index'),utils_1=require('../../../../modules/utils'),key_1=require('../../../../modules/key'),enums_1=require('../../../../modules/enums');class RedisStreamService extends index_1['StreamService']{constructor(_0x105035,_0x4b7462,_0x41fa35={}){super(_0x105035,_0x4b7462,_0x41fa35);}async['init'](_0x1b0acd,_0x58e866,_0x3197db){this['namespace']=_0x1b0acd,this['logger']=_0x3197db,this['appId']=_0x58e866;}['mintKey'](_0x300539,_0x242660){if(!this['namespace'])throw new Error('namespace\x20not\x20set');return key_1['KeyService']['mintKey'](this['namespace'],_0x300539,{..._0x242660,'appId':this['appId']});}['transact'](){return this['streamClient']['multi']();}async['createStream'](_0x1406b2){try{const _0x3e466d=await this['streamClient']['XADD'](_0x1406b2,'*',{'field':'value'});return await this['streamClient']['XDEL'](_0x1406b2,_0x3e466d),!![];}catch(_0x981183){this['logger']['error']('Error\x20creating\x20stream\x20'+_0x1406b2,{'error':_0x981183});throw _0x981183;}}async['deleteStream'](_0x12f8d1){try{const _0x44898a=await this['streamClient']['DEL'](_0x12f8d1);return _0x44898a>0x0;}catch(_0x2c0d48){this['logger']['error']('Error\x20deleting\x20stream\x20'+_0x12f8d1,{'error':_0x2c0d48});throw _0x2c0d48;}}async['createConsumerGroup'](_0x2eb18e,_0x12789a){try{const _0x10530a=await this['storeClient']['sendCommand'](['XGROUP','CREATE',_0x2eb18e,_0x12789a,'$','MKSTREAM']);return _0x10530a==='OK';}catch(_0x794d25){const _0x475e62='with\x20MKSTREAM';this['logger']['debug']('x-group-error\x20'+_0x475e62+'\x20for\x20key:\x20'+_0x2eb18e+'\x20and\x20group:\x20'+_0x12789a,{..._0x794d25});throw _0x794d25;}}async['deleteConsumerGroup'](_0x1bce96,_0x71c641){try{const _0x2f07b7=await this['streamClient']['xGroupDestroy'](_0x1bce96,_0x71c641);return _0x2f07b7;}catch(_0x8b4ac9){this['logger']['error']('Error\x20deleting\x20consumer\x20group\x20'+_0x71c641+'\x20for\x20stream\x20'+_0x1bce96,{'error':_0x8b4ac9});throw _0x8b4ac9;}}async['publishMessages'](_0x114f1f,_0x1cf940,_0x1e7f29){try{const _0x10ffd8=_0x1e7f29?.['transaction']||_0x1cf940['length']>0x1&&this['storeClient']['multi']();let _0x3e6d6b;for(const _0x511642 of _0x1cf940){_0x3e6d6b=await(_0x10ffd8||this['storeClient'])['XADD'](_0x114f1f,'*',{'message':_0x511642});}return _0x10ffd8&&!_0x1e7f29?.['transaction']?(await _0x10ffd8['exec']())['map'](_0x4da02a=>_0x4da02a[0x1]):[_0x3e6d6b];}catch(_0x2e9523){this['logger']['error']('ioredis-xadd-error\x20key:\x20'+_0x114f1f,{..._0x2e9523});throw _0x2e9523;}}async['consumeMessages'](_0x48954e,_0x1bf458,_0x10f36e,_0x584ad1){const _0x55f4d3='GROUP',_0x9e6a1b='BLOCK',_0xcd1ff0='STREAMS',_0xd7b4cb='>';try{const _0x596129=await this['streamClient']['sendCommand'](['XREADGROUP',_0x55f4d3,_0x1bf458,_0x10f36e,_0x9e6a1b,_0x584ad1?.['blockTimeout']?.['toString']()??enums_1['HMSH_BLOCK_TIME_MS']['toString'](),_0xcd1ff0,_0x48954e,_0xd7b4cb]),_0xf73782=[];if((0x0,utils_1['isStreamMessage'])(_0x596129)){const [[,_0x37a4df]]=_0x596129;for(const [_0x4f08c4,_0x4ee4f2]of _0x37a4df){_0xf73782['push']({'id':_0x4f08c4,'data':(0x0,utils_1['parseStreamMessage'])(_0x4ee4f2[0x1])});}}else return[];return _0xf73782;}catch(_0x3df342){this['logger']['error']('Error\x20consuming\x20messages\x20from\x20'+_0x48954e,{'error':_0x3df342});throw _0x3df342;}}async['ackAndDelete'](_0x447694,_0x553644,_0x5a6b52){const _0x411bb6=this['storeClient']['multi']();return await this['acknowledgeMessages'](_0x447694,_0x553644,_0x5a6b52,{'multi':_0x411bb6}),await this['deleteMessages'](_0x447694,_0x553644,_0x5a6b52,{'multi':_0x411bb6}),await _0x411bb6['exec'](),_0x5a6b52['length'];}async['acknowledgeMessages'](_0x168801,_0x5315bb,_0x1e90a6,_0x357c41){try{return _0x357c41?.['multi']?(_0x357c41['multi']['XACK'](_0x168801,_0x5315bb,_0x1e90a6),_0x357c41['multi']):await this['streamClient']['XACK'](_0x168801,_0x5315bb,..._0x1e90a6);}catch(_0x4dd85a){this['logger']['error']('Error\x20in\x20acknowledging\x20messages\x20in\x20group:\x20'+_0x5315bb+'\x20for\x20key:\x20'+_0x168801,{'error':_0x4dd85a});throw _0x4dd85a;}}async['deleteMessages'](_0x1aee1b,_0x5570ec,_0xd0e994,_0x193ebd){try{return _0x193ebd?.['multi']?(_0x193ebd['multi']['xDel'](_0x1aee1b,_0xd0e994),_0x193ebd['multi']):await this['streamClient']['XDEL'](_0x1aee1b,..._0xd0e994);}catch(_0x5dd0b1){this['logger']['error']('Error\x20in\x20deleting\x20messages\x20with\x20ids:\x20'+_0xd0e994['join'](',')+'\x20for\x20key:\x20'+_0x1aee1b,{'error':_0x5dd0b1});throw _0x5dd0b1;}}async['getPendingMessages'](_0x3a9bbd,_0x1c6649,_0x249f5a,_0x313278){try{const _0x45a80c='-',_0x1c009a='+',_0x29da2e=[_0x3a9bbd,_0x1c6649];if(_0x45a80c)_0x29da2e['push'](_0x45a80c);if(_0x1c009a)_0x29da2e['push'](_0x1c009a);if(_0x249f5a!==undefined)_0x29da2e['push'](_0x249f5a['toString']());if(_0x313278)_0x29da2e['push'](_0x313278);try{return await this['streamClient']['sendCommand'](['XPENDING',..._0x29da2e]);}catch(_0x950561){this['logger']['error']('error,\x20args',{..._0x950561},_0x29da2e);}}catch(_0x10b7de){this['logger']['error']('Error\x20retrieving\x20pending\x20messages\x20for\x20group:\x20'+_0x1c6649+'\x20in\x20key:\x20'+_0x3a9bbd,{..._0x10b7de});throw _0x10b7de;}}async['retryMessages'](_0x2e712b,_0x3fe147,_0x4cf351){let _0x5bf790=[];const _0x2ec8dd=await this['getPendingMessages'](_0x2e712b,_0x3fe147,_0x4cf351?.['limit']);for(const _0x5aa686 of _0x2ec8dd){if(Array['isArray'](_0x5aa686)){const [_0x470dbc,,_0x4531e0,_0x189579]=_0x5aa686;if(_0x4531e0>_0x4cf351?.['minIdleTime']){const _0x1ae791=await this['claimMessage'](_0x2e712b,_0x3fe147,_0x4cf351?.['consumerName'],_0x4cf351?.['minIdleTime'],_0x470dbc);_0x5bf790=_0x5bf790['concat'](_0x1ae791);}}}return _0x5bf790;}async['claimMessage'](_0x4d36d4,_0x3a64ac,_0xc1feeb,_0xe94e4f,_0x365925,..._0x617601){try{const _0x213569=await this['streamClient']['sendCommand'](['XCLAIM',_0x4d36d4,_0x3a64ac,_0xc1feeb,_0xe94e4f['toString'](),_0x365925,..._0x617601]);return{'id':_0x213569[0x0][0x0],'data':(0x0,utils_1['parseStreamMessage'])(_0x213569[0x0][0x1][0x1])};}catch(_0x52600d){this['logger']['error']('Error\x20in\x20claiming\x20message\x20with\x20id:\x20'+_0x365925+'\x20in\x20group:\x20'+_0x3a64ac+'\x20for\x20key:\x20'+_0x4d36d4,{..._0x52600d});throw _0x52600d;}}async['getStreamStats'](_0x292d5a){return{'messageCount':await this['getStreamDepth'](_0x292d5a)};}async['getStreamDepth'](_0x160291,_0x51938a){try{if(_0x51938a?.['multi'])return _0x51938a['multi']['XLEN'](_0x160291),0x0;const _0x23f5cb=await this['streamClient']['XLEN'](_0x160291);return _0x23f5cb;}catch(_0x3188b0){this['logger']['error']('Error\x20getting\x20depth\x20for\x20'+_0x160291,{'error':_0x3188b0});throw _0x3188b0;}}async['getStreamDepths'](_0x48f294){const _0x2a1a49=this['storeClient']['multi'](),_0x4618ac=new Map();_0x48f294['forEach'](_0x25f7a0=>{!_0x4618ac['has'](_0x25f7a0['stream'])&&(_0x4618ac['set'](_0x25f7a0['stream'],-0x1),this['getStreamDepth'](_0x25f7a0['stream'],{'multi':_0x2a1a49}));});const _0x167cf1=await _0x2a1a49['exec']();return Array['from'](_0x4618ac['keys']())['forEach']((_0x56a6da,_0x36a341)=>{_0x4618ac['set'](_0x56a6da,_0x167cf1[_0x36a341]);}),_0x48f294['map'](_0x1932ad=>{return{'stream':_0x1932ad['stream'],'depth':_0x4618ac['get'](_0x1932ad['stream'])||0x0};});}async['trimStream'](_0x370014,_0x2eb61f){return 0x0;}['getProviderSpecificFeatures'](){return{'supportsBatching':!![],'supportsDeadLetterQueue':![],'supportsOrdering':!![],'supportsTrimming':!![],'supportsRetry':!![],'maxMessageSize':0x200*0x400*0x400,'maxBatchSize':0x3e8};}}exports['RedisStreamService']=RedisStreamService;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
'use strict';(function(
|
|
1
|
+
'use strict';function _0x5d72(_0x1347c0,_0x127eaf){var _0x39c15e=_0x39c1();return _0x5d72=function(_0x5d7244,_0x59e758){_0x5d7244=_0x5d7244-0x18b;var _0x643560=_0x39c15e[_0x5d7244];return _0x643560;},_0x5d72(_0x1347c0,_0x127eaf);}function _0x39c1(){var _0x899579=['11qHlqpB','6938630veBZom','148076NaKviM','1077656dArcJx','4lOrbxK','1239056VssxYi','5lEYlTE','6BUDqeE','6824HeCFkA','846XiuwRd','4673312RpyKpY','168FMPsVm','1643184LxCKwO'];_0x39c1=function(){return _0x899579;};return _0x39c1();}(function(_0x2fd27d,_0x3ae08f){var _0x2f7b99=_0x5d72,_0x17ff27=_0x2fd27d();while(!![]){try{var _0x193311=-parseInt(_0x2f7b99(0x196))/0x1*(parseInt(_0x2f7b99(0x18b))/0x2)+parseInt(_0x2f7b99(0x18e))/0x3*(parseInt(_0x2f7b99(0x197))/0x4)+-parseInt(_0x2f7b99(0x18d))/0x5*(-parseInt(_0x2f7b99(0x193))/0x6)+parseInt(_0x2f7b99(0x191))/0x7+-parseInt(_0x2f7b99(0x18f))/0x8*(parseInt(_0x2f7b99(0x190))/0x9)+-parseInt(_0x2f7b99(0x195))/0xa*(-parseInt(_0x2f7b99(0x194))/0xb)+parseInt(_0x2f7b99(0x192))/0xc*(-parseInt(_0x2f7b99(0x18c))/0xd);if(_0x193311===_0x3ae08f)break;else _0x17ff27['push'](_0x17ff27['shift']());}catch(_0x1ecda8){_0x17ff27['push'](_0x17ff27['shift']());}}}(_0x39c1,0x7126d));Object['defineProperty'](exports,'__esModule',{'value':!![]});
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { RedisClient } from '../../types/redis';
|
|
2
1
|
import { ILogger } from '../logger';
|
|
2
|
+
import { ProviderClient, ProviderTransaction } from '../../types/provider';
|
|
3
3
|
import { SubService } from './index';
|
|
4
4
|
declare class SubServiceFactory {
|
|
5
|
-
static init(redisClient:
|
|
5
|
+
static init(redisClient: ProviderClient, redisStoreClient: ProviderClient, namespace: string, appId: string, engineId: string, logger: ILogger): Promise<SubService<ProviderClient, ProviderTransaction>>;
|
|
6
6
|
}
|
|
7
7
|
export { SubServiceFactory };
|
|
@@ -7,7 +7,7 @@ const redis_1 = require("./providers/redis/redis");
|
|
|
7
7
|
class SubServiceFactory {
|
|
8
8
|
static async init(redisClient, redisStoreClient, namespace, appId, engineId, logger) {
|
|
9
9
|
let service;
|
|
10
|
-
if ((0, utils_1.
|
|
10
|
+
if ((0, utils_1.identifyProvider)(redisClient) === 'redis') {
|
|
11
11
|
service = new redis_1.RedisSubService(redisClient, redisStoreClient);
|
|
12
12
|
}
|
|
13
13
|
else {
|
|
@@ -1,15 +1,16 @@
|
|
|
1
1
|
import { KeyStoreParams, KeyType } from '../../modules/key';
|
|
2
2
|
import { ILogger } from '../logger';
|
|
3
3
|
import { SubscriptionCallback } from '../../types/quorum';
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
protected
|
|
4
|
+
import { ProviderClient, ProviderTransaction } from '../../types/provider';
|
|
5
|
+
declare abstract class SubService<ClientProvider extends ProviderClient, TransactionProvider extends ProviderTransaction> {
|
|
6
|
+
protected eventClient: ClientProvider;
|
|
7
|
+
protected storeClient: ProviderClient;
|
|
7
8
|
protected namespace: string;
|
|
8
9
|
protected logger: ILogger;
|
|
9
10
|
protected appId: string;
|
|
10
|
-
constructor(eventClient:
|
|
11
|
+
constructor(eventClient: ClientProvider, storeClient: ProviderClient);
|
|
11
12
|
abstract init(namespace: string, appId: string, engineId: string, logger: ILogger): Promise<void>;
|
|
12
|
-
abstract
|
|
13
|
+
abstract transact(): TransactionProvider;
|
|
13
14
|
abstract mintKey(type: KeyType, params: KeyStoreParams): string;
|
|
14
15
|
abstract subscribe(keyType: KeyType.QUORUM, callback: SubscriptionCallback, appId: string, engineId?: string): Promise<void>;
|
|
15
16
|
abstract unsubscribe(keyType: KeyType.QUORUM, appId: string, engineId?: string): Promise<void>;
|
|
@@ -6,7 +6,7 @@ import { SubscriptionCallback } from '../../../../types/quorum';
|
|
|
6
6
|
declare class IORedisSubService extends SubService<RedisClientType, RedisMultiType> {
|
|
7
7
|
constructor(eventClient: RedisClientType, storeClient: RedisClientType);
|
|
8
8
|
init(namespace: string, appId: string, engineId: string, logger: ILogger): Promise<void>;
|
|
9
|
-
|
|
9
|
+
transact(): RedisMultiType;
|
|
10
10
|
mintKey(type: KeyType, params: KeyStoreParams): string;
|
|
11
11
|
subscribe(keyType: KeyType.QUORUM, callback: SubscriptionCallback, appId: string, engineId?: string): Promise<void>;
|
|
12
12
|
unsubscribe(keyType: KeyType.QUORUM, appId: string, engineId?: string): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
'use strict';(function(
|
|
1
|
+
'use strict';(function(_0x2f9fe4,_0x3eb705){const _0x22cef7=_0x572c,_0x5cadd9=_0x2f9fe4();while(!![]){try{const _0x163769=-parseInt(_0x22cef7(0x103))/0x1+parseInt(_0x22cef7(0x102))/0x2+parseInt(_0x22cef7(0x101))/0x3*(-parseInt(_0x22cef7(0x105))/0x4)+-parseInt(_0x22cef7(0x106))/0x5+-parseInt(_0x22cef7(0x107))/0x6+parseInt(_0x22cef7(0x104))/0x7+parseInt(_0x22cef7(0x108))/0x8;if(_0x163769===_0x3eb705)break;else _0x5cadd9['push'](_0x5cadd9['shift']());}catch(_0x15a7d0){_0x5cadd9['push'](_0x5cadd9['shift']());}}}(_0x3fa9,0x536a6));function _0x572c(_0xdd3db7,_0x19cdf5){const _0x3fa9b5=_0x3fa9();return _0x572c=function(_0x572c0d,_0x4eeb1c){_0x572c0d=_0x572c0d-0x101;let _0x5848c9=_0x3fa9b5[_0x572c0d];return _0x5848c9;},_0x572c(_0xdd3db7,_0x19cdf5);}Object['defineProperty'](exports,'__esModule',{'value':!![]}),exports['IORedisSubService']=void 0x0;const key_1=require('../../../../modules/key'),index_1=require('../../index');class IORedisSubService extends index_1['SubService']{constructor(_0x3e22e7,_0x3e3b40){super(_0x3e22e7,_0x3e3b40);}async['init'](_0x287c3a=key_1['HMNS'],_0x3af763,_0x2a426a,_0x21f1f2){this['namespace']=_0x287c3a,this['logger']=_0x21f1f2,this['appId']=_0x3af763;}['transact'](){return this['eventClient']['multi']();}['mintKey'](_0x133226,_0x2263c2){if(!this['namespace'])throw new Error('namespace\x20not\x20set');return key_1['KeyService']['mintKey'](this['namespace'],_0x133226,_0x2263c2);}async['subscribe'](_0x1ac571,_0xa5d4a,_0x353d5c,_0x31d5bb){const _0x1513f0=this,_0x3a689a=this['mintKey'](_0x1ac571,{'appId':_0x353d5c,'engineId':_0x31d5bb});await this['eventClient']['subscribe'](_0x3a689a,_0x139fa3=>{_0x139fa3&&_0x1513f0['logger']['error']('Error\x20subscribing\x20to:\x20'+_0x3a689a,_0x139fa3);}),this['eventClient']['on']('message',(_0x15de69,_0x9e996d)=>{if(_0x15de69===_0x3a689a)try{const _0x3151d5=JSON['parse'](_0x9e996d);_0xa5d4a(_0x3a689a,_0x3151d5);}catch(_0x197279){_0x1513f0['logger']['error']('Error\x20parsing\x20message:\x20'+_0x9e996d,_0x197279);}});}async['unsubscribe'](_0x201bbd,_0x10e0aa,_0x145c12){const _0x559e34=this['mintKey'](_0x201bbd,{'appId':_0x10e0aa,'engineId':_0x145c12});await this['eventClient']['unsubscribe'](_0x559e34);}async['psubscribe'](_0x49e259,_0x5ae322,_0x445e1b,_0x2314c1){const _0x39f7e4=this,_0x5e200a=this['mintKey'](_0x49e259,{'appId':_0x445e1b,'engineId':_0x2314c1});await this['eventClient']['psubscribe'](_0x5e200a,_0x1bd314=>{_0x1bd314&&_0x39f7e4['logger']['error']('Error\x20subscribing\x20to:\x20'+_0x5e200a,_0x1bd314);}),this['eventClient']['on']('pmessage',(_0x4a1014,_0x358ff3,_0x62b4c8)=>{if(_0x4a1014===_0x5e200a)try{const _0x382c98=JSON['parse'](_0x62b4c8);_0x5ae322(_0x358ff3,_0x382c98);}catch(_0x5093d6){_0x39f7e4['logger']['error']('Error\x20parsing\x20message:\x20'+_0x62b4c8,_0x5093d6);}});}async['punsubscribe'](_0x5441c3,_0x98145f,_0x41c486){const _0x25293e=this['mintKey'](_0x5441c3,{'appId':_0x98145f,'engineId':_0x41c486});await this['eventClient']['punsubscribe'](_0x25293e);}async['publish'](_0x152478,_0x3536ee,_0x4f538e,_0x46a7ed){const _0x496722=this['mintKey'](_0x152478,{'appId':_0x4f538e,'engineId':_0x46a7ed}),_0x4d02d8=await this['storeClient']['publish'](_0x496722,JSON['stringify'](_0x3536ee));return _0x4d02d8===0x1;}}function _0x3fa9(){const _0x4d46d2=['752022PuMctu','67432ueahcI','4703447kkbEoj','301460MLvQLr','3007450BfzMAi','3468000uzUgze','5531120HFXdzm','6SIPJlC'];_0x3fa9=function(){return _0x4d46d2;};return _0x3fa9();}exports['IORedisSubService']=IORedisSubService;
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { KeyStoreParams, KeyType } from '../../../../modules/key';
|
|
2
2
|
import { ILogger } from '../../../logger';
|
|
3
3
|
import { SubService } from '../../index';
|
|
4
|
-
import { RedisRedisClientType as
|
|
4
|
+
import { RedisRedisClientType as ClientProvider, RedisRedisMultiType as TransactionProvider } from '../../../../types/redis';
|
|
5
5
|
import { SubscriptionCallback } from '../../../../types/quorum';
|
|
6
|
-
declare class RedisSubService extends SubService<
|
|
7
|
-
constructor(eventClient:
|
|
6
|
+
declare class RedisSubService extends SubService<ClientProvider, TransactionProvider> {
|
|
7
|
+
constructor(eventClient: ClientProvider, storeClient: ClientProvider);
|
|
8
8
|
init(namespace: string, appId: string, engineId: string, logger: ILogger): Promise<void>;
|
|
9
|
-
|
|
9
|
+
transact(): TransactionProvider;
|
|
10
10
|
mintKey(type: KeyType, params: KeyStoreParams): string;
|
|
11
11
|
subscribe(keyType: KeyType.QUORUM, callback: SubscriptionCallback, appId: string, engineId?: string): Promise<void>;
|
|
12
12
|
unsubscribe(keyType: KeyType.QUORUM, appId: string, engineId?: string): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
'use strict';(function(
|
|
1
|
+
'use strict';(function(_0x409dd9,_0x22280b){const _0xc72929=_0x19e9,_0x22aa6f=_0x409dd9();while(!![]){try{const _0x268eba=-parseInt(_0xc72929(0x89))/0x1+-parseInt(_0xc72929(0x8a))/0x2*(-parseInt(_0xc72929(0x86))/0x3)+-parseInt(_0xc72929(0x8c))/0x4+-parseInt(_0xc72929(0x8b))/0x5+-parseInt(_0xc72929(0x8d))/0x6+parseInt(_0xc72929(0x87))/0x7*(parseInt(_0xc72929(0x85))/0x8)+parseInt(_0xc72929(0x88))/0x9;if(_0x268eba===_0x22280b)break;else _0x22aa6f['push'](_0x22aa6f['shift']());}catch(_0x53427c){_0x22aa6f['push'](_0x22aa6f['shift']());}}}(_0x394c,0x76154));Object['defineProperty'](exports,'__esModule',{'value':!![]}),exports['RedisSubService']=void 0x0;function _0x19e9(_0x245abe,_0x70cfe8){const _0x394cac=_0x394c();return _0x19e9=function(_0x19e945,_0x320b02){_0x19e945=_0x19e945-0x85;let _0x164fa9=_0x394cac[_0x19e945];return _0x164fa9;},_0x19e9(_0x245abe,_0x70cfe8);}const key_1=require('../../../../modules/key'),index_1=require('../../index');function _0x394c(){const _0x1099e1=['3922720RSRxvl','3298932FoMvZQ','208428HQnnsh','8616aSfHbx','533217iaSPfK','3962VszKeg','20346678wPvxBN','920380jENunU','2JcVpvG'];_0x394c=function(){return _0x1099e1;};return _0x394c();}class RedisSubService extends index_1['SubService']{constructor(_0x48069f,_0x15633a){super(_0x48069f,_0x15633a);}async['init'](_0x43d417=key_1['HMNS'],_0x2c49e9,_0x24fac2,_0x4a1205){this['namespace']=_0x43d417,this['logger']=_0x4a1205,this['appId']=_0x2c49e9;}['transact'](){const _0x13ddf7=this['eventClient']['multi']();return _0x13ddf7;}['mintKey'](_0x51f539,_0xb2ed5d){if(!this['namespace'])throw new Error('namespace\x20not\x20set');return key_1['KeyService']['mintKey'](this['namespace'],_0x51f539,_0xb2ed5d);}async['subscribe'](_0x2871ec,_0xf24e20,_0xbba844,_0x5bc6e8){if(this['eventClient']){const _0x5db5de=this,_0x5b2eeb=this['mintKey'](_0x2871ec,{'appId':_0xbba844,'engineId':_0x5bc6e8});await this['eventClient']['subscribe'](_0x5b2eeb,_0x30ccd3=>{try{const _0x29b9ad=JSON['parse'](_0x30ccd3);_0xf24e20(_0x5b2eeb,_0x29b9ad);}catch(_0x2da7f9){_0x5db5de['logger']['error']('Error\x20parsing\x20message:\x20'+_0x30ccd3,_0x2da7f9);}});}}async['unsubscribe'](_0x5797ca,_0x33a629,_0x20d909){const _0x11497a=this['mintKey'](_0x5797ca,{'appId':_0x33a629,'engineId':_0x20d909});await this['eventClient']['unsubscribe'](_0x11497a);}async['psubscribe'](_0x176511,_0x2395a1,_0xe80ce1,_0xbb5fee){if(this['eventClient']){const _0x31298f=this,_0x1fb9a1=this['mintKey'](_0x176511,{'appId':_0xe80ce1,'engineId':_0xbb5fee});await this['eventClient']['pSubscribe'](_0x1fb9a1,(_0x4a48b8,_0x30362e)=>{try{const _0x31933d=JSON['parse'](_0x4a48b8);_0x2395a1(_0x30362e,_0x31933d);}catch(_0x11057e){_0x31298f['logger']['error']('Error\x20parsing\x20message:\x20'+_0x4a48b8,_0x11057e);}});}}async['punsubscribe'](_0x110002,_0x5c749a,_0x3a9d71){const _0x2c6a55=this['mintKey'](_0x110002,{'appId':_0x5c749a,'engineId':_0x3a9d71});await this['eventClient']['pUnsubscribe'](_0x2c6a55);}async['publish'](_0x4fe92d,_0x5ddfce,_0x42bfe9,_0x1fc528){const _0x4f6ac7=this['mintKey'](_0x4fe92d,{'appId':_0x42bfe9,'engineId':_0x1fc528}),_0x1651e3=await this['storeClient']['publish'](_0x4f6ac7,JSON['stringify'](_0x5ddfce));return _0x1651e3>0x0;}}exports['RedisSubService']=RedisSubService;
|
|
@@ -3,24 +3,24 @@ import { ILogger } from '../logger';
|
|
|
3
3
|
import { StoreService } from '../store';
|
|
4
4
|
import { HookInterface, HookRule } from '../../types/hook';
|
|
5
5
|
import { JobCompletionOptions, JobState } from '../../types/job';
|
|
6
|
-
import {
|
|
6
|
+
import { ProviderClient, ProviderTransaction } from '../../types/provider';
|
|
7
7
|
import { WorkListTaskType } from '../../types/task';
|
|
8
8
|
declare class TaskService {
|
|
9
|
-
store: StoreService<
|
|
9
|
+
store: StoreService<ProviderClient, ProviderTransaction>;
|
|
10
10
|
logger: ILogger;
|
|
11
11
|
cleanupTimeout: NodeJS.Timeout | null;
|
|
12
12
|
isScout: boolean;
|
|
13
13
|
errorCount: number;
|
|
14
|
-
constructor(store: StoreService<
|
|
14
|
+
constructor(store: StoreService<ProviderClient, ProviderTransaction>, logger: ILogger);
|
|
15
15
|
processWebHooks(hookEventCallback: HookInterface): Promise<void>;
|
|
16
16
|
enqueueWorkItems(keys: string[]): Promise<void>;
|
|
17
17
|
registerJobForCleanup(jobId: string, inSeconds: number, options: JobCompletionOptions): Promise<void>;
|
|
18
|
-
registerTimeHook(jobId: string, gId: string, activityId: string, type: WorkListTaskType, inSeconds: number, dad: string,
|
|
18
|
+
registerTimeHook(jobId: string, gId: string, activityId: string, type: WorkListTaskType, inSeconds: number, dad: string, transaction?: ProviderTransaction): Promise<void>;
|
|
19
19
|
shouldScout(): Promise<boolean>;
|
|
20
20
|
processTimeHooks(timeEventCallback: (jobId: string, gId: string, activityId: string, type: WorkListTaskType) => Promise<void>, listKey?: string): Promise<void>;
|
|
21
21
|
cancelCleanup(): void;
|
|
22
22
|
getHookRule(topic: string): Promise<HookRule | undefined>;
|
|
23
|
-
registerWebHook(topic: string, context: JobState, dad: string, expire: number,
|
|
23
|
+
registerWebHook(topic: string, context: JobState, dad: string, expire: number, transaction?: ProviderTransaction): Promise<string>;
|
|
24
24
|
processWebHookSignal(topic: string, data: Record<string, unknown>): Promise<[string, string, string, string] | undefined>;
|
|
25
25
|
deleteWebHookSignal(topic: string, data: Record<string, unknown>): Promise<number>;
|
|
26
26
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
'use strict';(function(
|
|
1
|
+
'use strict';(function(_0x4d0fdd,_0x3a2255){const _0x382c0c=_0x3225,_0x30b394=_0x4d0fdd();while(!![]){try{const _0x3fa072=parseInt(_0x382c0c(0x85))/0x1+-parseInt(_0x382c0c(0x82))/0x2*(-parseInt(_0x382c0c(0x83))/0x3)+parseInt(_0x382c0c(0x81))/0x4+parseInt(_0x382c0c(0x86))/0x5*(parseInt(_0x382c0c(0x7d))/0x6)+parseInt(_0x382c0c(0x80))/0x7*(-parseInt(_0x382c0c(0x7f))/0x8)+parseInt(_0x382c0c(0x7e))/0x9+-parseInt(_0x382c0c(0x84))/0xa;if(_0x3fa072===_0x3a2255)break;else _0x30b394['push'](_0x30b394['shift']());}catch(_0x550b2f){_0x30b394['push'](_0x30b394['shift']());}}}(_0x3e1f,0x6b96a));Object['defineProperty'](exports,'__esModule',{'value':!![]}),exports['TaskService']=void 0x0;const enums_1=require('../../modules/enums'),utils_1=require('../../modules/utils'),pipe_1=require('../pipe'),hotmesh_1=require('../../types/hotmesh'),key_1=require('../../modules/key');class TaskService{constructor(_0x4da4a2,_0x22fe6b){this['cleanupTimeout']=null,this['isScout']=![],this['errorCount']=0x0,this['logger']=_0x22fe6b,this['store']=_0x4da4a2;}async['processWebHooks'](_0x1e43f9){const _0xafbbf7=await this['store']['getActiveTaskQueue']();if(_0xafbbf7){const [_0xe54e20,_0xf97d2d,_0x57fff9,..._0x517147]=_0xafbbf7['split'](key_1['WEBSEP']),_0x430282=JSON['parse'](_0x517147['join'](key_1['WEBSEP'])),_0x1ac1e4=_0xf97d2d+':processed',_0x3a2c34=await this['store']['processTaskQueue'](_0xf97d2d,_0x1ac1e4);_0x3a2c34?await _0x1e43f9(_0xe54e20,{..._0x430282,'id':_0x3a2c34}):await this['store']['deleteProcessedTaskQueue'](_0xafbbf7,_0xf97d2d,_0x1ac1e4,_0x57fff9==='true'),setImmediate(()=>this['processWebHooks'](_0x1e43f9));}}async['enqueueWorkItems'](_0x4eec65){await this['store']['addTaskQueues'](_0x4eec65);}async['registerJobForCleanup'](_0x181f62,_0x1818b4=enums_1['HMSH_EXPIRE_DURATION'],_0x5b38a9){_0x1818b4>0x0&&await this['store']['expireJob'](_0x181f62,_0x1818b4);}async['registerTimeHook'](_0xf7a250,_0x1f1b78,_0x56dc72,_0x399ae5,_0x3bac7a=enums_1['HMSH_FIDELITY_SECONDS'],_0x411aab,_0x388121){const _0x3c5ecc=Date['now']()+_0x3bac7a*0x3e8,_0x3eac34=enums_1['HMSH_FIDELITY_SECONDS']*0x3e8,_0x481036=Math['floor'](_0x3c5ecc/_0x3eac34)*_0x3eac34;await this['store']['registerTimeHook'](_0xf7a250,_0x1f1b78,_0x56dc72,_0x399ae5,_0x481036,_0x411aab,_0x388121);}async['shouldScout'](){const _0xc79b76=this['isScout'],_0x3bd7fa=_0xc79b76||(this['isScout']=await this['store']['reserveScoutRole']('time'));if(_0x3bd7fa)return!_0xc79b76&&setTimeout(()=>{this['isScout']=![];},enums_1['HMSH_SCOUT_INTERVAL_SECONDS']*0x3e8),!![];return![];}async['processTimeHooks'](_0x34ffc1,_0x2a5663){if(await this['shouldScout']())try{const _0x3b6eed=await this['store']['getNextTask'](_0x2a5663);if(Array['isArray'](_0x3b6eed)){const [_0x2ecd64,_0x9eb4df,_0xd11c9a,_0x2afe89,_0xfa8ecf]=_0x3b6eed;if(_0xfa8ecf==='child'){}else{if(_0xfa8ecf==='delist'){const _0x17fcea=this['store']['mintKey'](hotmesh_1['KeyType']['SIGNALS'],{'appId':this['store']['appId']});await this['store']['delistSignalKey'](_0x17fcea,_0x9eb4df);}else await _0x34ffc1(_0x9eb4df,_0xd11c9a,_0x2afe89,_0xfa8ecf);}await(0x0,utils_1['sleepFor'])(0x0),this['errorCount']=0x0,this['processTimeHooks'](_0x34ffc1,_0x2ecd64);}else{if(_0x3b6eed)await(0x0,utils_1['sleepFor'])(0x0),this['errorCount']=0x0,this['processTimeHooks'](_0x34ffc1);else{const _0x54be3e=(0x0,utils_1['XSleepFor'])(enums_1['HMSH_FIDELITY_SECONDS']*0x3e8);this['cleanupTimeout']=_0x54be3e['timerId'],await _0x54be3e['promise'],this['errorCount']=0x0,this['processTimeHooks'](_0x34ffc1);}}}catch(_0x39e877){this['logger']['warn']('task-process-timehooks-error',_0x39e877),await(0x0,utils_1['sleepFor'])(0x3e8*this['errorCount']++),this['errorCount']<0x5&&this['processTimeHooks'](_0x34ffc1);}else{const _0x352a68=(0x0,utils_1['XSleepFor'])(enums_1['HMSH_SCOUT_INTERVAL_SECONDS']*0x3e8*0x2*Math['random']());this['cleanupTimeout']=_0x352a68['timerId'],await _0x352a68['promise'],this['processTimeHooks'](_0x34ffc1);}}['cancelCleanup'](){this['cleanupTimeout']!==undefined&&(clearTimeout(this['cleanupTimeout']),this['cleanupTimeout']=undefined);}async['getHookRule'](_0x563980){const _0xab47fd=await this['store']['getHookRules']();return _0xab47fd?.[_0x563980]?.[0x0];}async['registerWebHook'](_0x4709f3,_0x1063b8,_0x315f36,_0x2711ad,_0x235ada){const _0x2aed4d=await this['getHookRule'](_0x4709f3);if(_0x2aed4d){const _0x4c0972=_0x2aed4d['conditions']['match'][0x0]['expected'],_0x12c610=pipe_1['Pipe']['resolve'](_0x4c0972,_0x1063b8),_0x35e23b=_0x1063b8['metadata']['jid'],_0x4ff6b0=_0x1063b8['metadata']['gid'],_0x3fbb21=_0x2aed4d['to'],_0x24d7a6=[_0x3fbb21,_0x315f36,_0x4ff6b0,_0x35e23b]['join'](key_1['WEBSEP']),_0x352ad9={'topic':_0x4709f3,'resolved':_0x12c610,'jobId':_0x24d7a6,'expire':_0x2711ad};return await this['store']['setHookSignal'](_0x352ad9,_0x235ada),_0x35e23b;}else throw new Error('signaler.registerWebHook:error:\x20hook\x20rule\x20not\x20found');}async['processWebHookSignal'](_0x2ae69a,_0x22d661){const _0xbbdca=await this['getHookRule'](_0x2ae69a);if(_0xbbdca){const _0x4dadef={'$self':{'hook':{'data':_0x22d661}},'$hook':{'data':_0x22d661}},_0x4a93dd=_0xbbdca['conditions']['match'][0x0]['actual'],_0x2cf6c9=pipe_1['Pipe']['resolve'](_0x4a93dd,_0x4dadef),_0x4fdcf8=await this['store']['getHookSignal'](_0x2ae69a,_0x2cf6c9);if(!_0x4fdcf8)return undefined;const [_0x3de97c,_0xd5813d,_0x74cf6c,..._0x44b1ce]=_0x4fdcf8['split'](key_1['WEBSEP']);return[_0x44b1ce['join'](key_1['WEBSEP']),_0xbbdca['to'],_0xd5813d,_0x74cf6c];}else throw new Error('signal-not-found');}async['deleteWebHookSignal'](_0x23c2ae,_0x353711){const _0x59a896=await this['getHookRule'](_0x23c2ae);if(_0x59a896){const _0x17396f={'$self':{'hook':{'data':_0x353711}},'$hook':{'data':_0x353711}},_0x207673=_0x59a896['conditions']['match'][0x0]['actual'],_0x196d2c=pipe_1['Pipe']['resolve'](_0x207673,_0x17396f);return await this['store']['deleteHookSignal'](_0x23c2ae,_0x196d2c);}else throw new Error('signaler.process:error:\x20hook\x20rule\x20not\x20found');}}function _0x3e1f(){const _0x88a05c=['11735sptsZx','1548tyOEbC','3636603biHpAU','152FYGqSt','38059wsCbSD','2562472umnugY','891516FNBqRQ','3ZgDYVE','18303910BzEkoa','278407BmKHbN'];_0x3e1f=function(){return _0x88a05c;};return _0x3e1f();}function _0x3225(_0x30eb6d,_0x4f1495){const _0x3e1f18=_0x3e1f();return _0x3225=function(_0x322551,_0x253267){_0x322551=_0x322551-0x7d;let _0xc58d9=_0x3e1f18[_0x322551];return _0xc58d9;},_0x3225(_0x30eb6d,_0x4f1495);}exports['TaskService']=TaskService;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
'use strict';
|
|
1
|
+
'use strict';(function(_0x3158bb,_0x573522){const _0xd93480=_0x5a83,_0x3d8e6f=_0x3158bb();while(!![]){try{const _0x2873a8=parseInt(_0xd93480(0x1f0))/0x1*(parseInt(_0xd93480(0x1f2))/0x2)+-parseInt(_0xd93480(0x1ed))/0x3*(-parseInt(_0xd93480(0x1f1))/0x4)+-parseInt(_0xd93480(0x1ee))/0x5+parseInt(_0xd93480(0x1eb))/0x6+-parseInt(_0xd93480(0x1f4))/0x7+parseInt(_0xd93480(0x1ec))/0x8+parseInt(_0xd93480(0x1f3))/0x9*(-parseInt(_0xd93480(0x1ef))/0xa);if(_0x2873a8===_0x573522)break;else _0x3d8e6f['push'](_0x3d8e6f['shift']());}catch(_0x32f449){_0x3d8e6f['push'](_0x3d8e6f['shift']());}}}(_0x21cd,0xf26bb));var __importDefault=this&&this['__importDefault']||function(_0x16467f){return _0x16467f&&_0x16467f['__esModule']?_0x16467f:{'default':_0x16467f};};Object['defineProperty'](exports,'__esModule',{'value':!![]}),exports['TelemetryService']=void 0x0;const package_json_1=__importDefault(require('../../package.json')),mapper_1=require('../mapper'),stream_1=require('../../types/stream'),telemetry_1=require('../../types/telemetry'),utils_1=require('../../modules/utils');function _0x21cd(){const _0x20f192=['57MhnTLR','7286875JkUTMB','350GMhJVl','1759614kKCqIu','315804yJqFGV','2PLisng','458397ARKwUn','4631662emrrng','3401760HiVpDY','8544064wJlZNM'];_0x21cd=function(){return _0x20f192;};return _0x21cd();}function _0x5a83(_0x1957f6,_0x5c110c){const _0x21cd78=_0x21cd();return _0x5a83=function(_0x5a83cc,_0x2170dd){_0x5a83cc=_0x5a83cc-0x1eb;let _0x4a898c=_0x21cd78[_0x5a83cc];return _0x4a898c;},_0x5a83(_0x1957f6,_0x5c110c);}class TelemetryService{constructor(_0x47c986,_0x1bc5fb,_0x5a1e05,_0x163a31){this['leg']=0x1,this['appId']=_0x47c986,this['config']=_0x1bc5fb,this['metadata']=_0x5a1e05,this['context']=_0x163a31;}['getJobParentSpanId'](){return this['context']['metadata']['spn'];}['getActivityParentSpanId'](_0x5300c6){return _0x5300c6===0x1?this['context'][this['config']['parent']]['output']?.['metadata']?.['l2s']:this['context']['$self']['output']?.['metadata']?.['l1s'];}['getTraceId'](){return this['context']['metadata']['trc'];}['startJobSpan'](){const _0x436663='JOB/'+this['appId']+'/'+this['config']['subscribes']+'/1',_0x383499=this['getTraceId'](),_0x319979=this['getJobParentSpanId'](),_0x155fad=this['getSpanAttrs'](0x1),_0x207d3e=this['startSpan'](_0x383499,_0x319979,_0x436663,_0x155fad);return this['jobSpan']=_0x207d3e,this['setTelemetryContext'](_0x207d3e,0x1),this;}['startActivitySpan'](_0x2f6481=this['leg']){const _0x35af2f=this['config']['type']['toUpperCase']()+'/'+this['appId']+'/'+this['metadata']['aid']+'/'+_0x2f6481,_0x24584c=this['getTraceId'](),_0x476e5b=this['getActivityParentSpanId'](_0x2f6481),_0x22ac5b=this['getSpanAttrs'](_0x2f6481),_0x4a803c=this['startSpan'](_0x24584c,_0x476e5b,_0x35af2f,_0x22ac5b);return this['setTelemetryContext'](_0x4a803c,_0x2f6481),this['span']=_0x4a803c,this;}['startStreamSpan'](_0x1b2163,_0x43b458){let _0xadb8c1;if(_0x43b458===stream_1['StreamRole']['SYSTEM'])_0xadb8c1='SYSTEM';else{if(_0x43b458===stream_1['StreamRole']['WORKER'])_0xadb8c1='EXECUTE';else _0x1b2163['type']===stream_1['StreamDataType']['RESULT']||_0x1b2163['type']===stream_1['StreamDataType']['RESPONSE']?_0xadb8c1='FANIN':_0xadb8c1='FANOUT';}const _0xbe6ed7=_0x1b2163['metadata']['topic']?'/'+_0x1b2163['metadata']['topic']:'',_0x3782d6=_0xadb8c1+'/'+this['appId']+'/'+_0x1b2163['metadata']['aid']+_0xbe6ed7,_0x6c9b6d=this['getStreamSpanAttrs'](_0x1b2163),_0x3b54b1=this['startSpan'](_0x1b2163['metadata']['trc'],_0x1b2163['metadata']['spn'],_0x3782d6,_0x6c9b6d);return this['span']=_0x3b54b1,this;}['startSpan'](_0x268da5,_0x1d7ac4,_0x6f947d,_0xe77be7){this['traceId']=_0x268da5,this['spanId']=_0x1d7ac4;const _0x53ea25=telemetry_1['trace']['getTracer'](package_json_1['default']['name'],package_json_1['default']['version']),_0x2cab42=this['getParentSpanContext'](),_0x220eea=_0x53ea25['startSpan'](_0x6f947d,{'kind':telemetry_1['SpanKind']['CLIENT'],'attributes':_0xe77be7,'root':!_0x2cab42},_0x2cab42);return _0x220eea;}['mapActivityAttributes'](){if(this['config']['telemetry']){const _0x1c8fe6=new mapper_1['MapperService'](this['config']['telemetry'],this['context'])['mapRules'](),_0x308fe3={...Object['keys'](_0x1c8fe6)['reduce']((_0x52cc49,_0x1cb10c)=>{return['string','boolean','number']['includes'](typeof _0x1c8fe6[_0x1cb10c])&&(_0x52cc49['app.activity.data.'+_0x1cb10c]=_0x1c8fe6[_0x1cb10c]),_0x52cc49;},{})};this['span']?.['setAttributes'](_0x308fe3);}}['setActivityAttributes'](_0x4ea511){this['span']?.['setAttributes'](_0x4ea511);}['setStreamAttributes'](_0x20c3b1){this['span']?.['setAttributes'](_0x20c3b1);}['setJobAttributes'](_0x55986b){this['jobSpan']?.['setAttributes'](_0x55986b);}['endJobSpan'](){this['endSpan'](this['jobSpan']);}['endActivitySpan'](){this['endSpan'](this['span']);}['endStreamSpan'](){this['endSpan'](this['span']);}['endSpan'](_0x3de755){_0x3de755&&_0x3de755['end']();}['getParentSpanContext'](){if(this['traceId']&&this['spanId']){const _0x59a160={'traceId':this['traceId'],'spanId':this['spanId'],'isRemote':!![],'traceFlags':0x1},_0x13574d=telemetry_1['trace']['setSpanContext'](telemetry_1['context']['active'](),_0x59a160);return _0x13574d;}}['getSpanAttrs'](_0x2aa0d3){return{...Object['keys'](this['context']['metadata'])['reduce']((_0x1d2c82,_0x4cea97)=>{return _0x4cea97!=='trc'&&(_0x1d2c82['app.job.'+_0x4cea97]=this['context']['metadata'][_0x4cea97]),_0x1d2c82;},{}),...Object['keys'](this['metadata'])['reduce']((_0x3b40ba,_0x112679)=>{return _0x3b40ba['app.activity.'+_0x112679]=this['metadata'][_0x112679],_0x3b40ba;},{}),'app.activity.leg':_0x2aa0d3};}['getStreamSpanAttrs'](_0x23012f){return{...Object['keys'](_0x23012f['metadata'])['reduce']((_0x33687d,_0x219d12)=>{return _0x219d12!=='trc'&&_0x219d12!=='spn'&&(_0x33687d['app.stream.'+_0x219d12]=_0x23012f['metadata'][_0x219d12]),_0x33687d;},{})};}['setTelemetryContext'](_0x163475,_0x483b13){!this['context']['metadata']['trc']&&(this['context']['metadata']['trc']=_0x163475['spanContext']()['traceId']),_0x483b13===0x1?(!this['context']['$self']['output']['metadata']&&(this['context']['$self']['output']['metadata']={}),this['context']['$self']['output']['metadata']['l1s']=_0x163475['spanContext']()['spanId']):(!this['context']['$self']['output']['metadata']&&(this['context']['$self']['output']['metadata']={}),this['context']['$self']['output']['metadata']['l2s']=_0x163475['spanContext']()['spanId']);}['setActivityError'](_0x450664){this['span']?.['setStatus']({'code':telemetry_1['SpanStatusCode']['ERROR'],'message':_0x450664});}['setStreamError'](_0x50ba48){this['span']?.['setStatus']({'code':telemetry_1['SpanStatusCode']['ERROR'],'message':_0x50ba48});}static['addTargetTelemetryPaths'](_0x4cdb4b,_0x372a2e,_0x3e6354,_0x4b84bd){_0x4b84bd===0x1?(!(_0x372a2e['parent']in _0x4cdb4b)&&(_0x4cdb4b[_0x372a2e['parent']]=[]),_0x4cdb4b[_0x372a2e['parent']]['push'](_0x372a2e['parent']+'/output/metadata/l2s')):(!(_0x3e6354['aid']in _0x4cdb4b)&&(_0x4cdb4b[_0x3e6354['aid']]=[]),_0x4cdb4b[_0x3e6354['aid']]['push'](_0x3e6354['aid']+'/output/metadata/l1s'));}static['bindJobTelemetryToState'](_0x2fe4ee,_0xabc143,_0x55993b){_0xabc143['type']==='trigger'&&(_0x2fe4ee['metadata/trc']=_0x55993b['metadata']['trc']);}static['bindActivityTelemetryToState'](_0x20ee3c,_0x1ad4a1,_0x4f41af,_0x47301f,_0x2e1829){if(_0x1ad4a1['type']==='trigger')_0x20ee3c[_0x4f41af['aid']+'/output/metadata/l1s']=_0x47301f['$self']['output']['metadata']['l1s'],_0x20ee3c[_0x4f41af['aid']+'/output/metadata/l2s']=_0x47301f['$self']['output']['metadata']['l2s'];else{if(utils_1['polyfill']['resolveActivityType'](_0x1ad4a1['type'])==='hook'&&_0x2e1829===0x1)_0x20ee3c[_0x4f41af['aid']+'/output/metadata/l1s']=_0x47301f['$self']['output']['metadata']['l1s'],_0x20ee3c[_0x4f41af['aid']+'/output/metadata/l2s']=_0x47301f['$self']['output']['metadata']['l1s'];else{if(_0x1ad4a1['type']==='signal'&&_0x2e1829===0x1)_0x20ee3c[_0x4f41af['aid']+'/output/metadata/l1s']=_0x47301f['$self']['output']['metadata']['l1s'],_0x20ee3c[_0x4f41af['aid']+'/output/metadata/l2s']=_0x47301f['$self']['output']['metadata']['l1s'];else{const _0x19c2c8='l'+_0x2e1829+'s';_0x20ee3c[_0x4f41af['aid']+'/output/metadata/'+_0x19c2c8]=_0x47301f['$self']['output']['metadata'][_0x19c2c8];}}}}}exports['TelemetryService']=TelemetryService;
|