@hotmeshio/hotmesh 0.3.7 → 0.3.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +15 -18
- package/build/index.d.ts +4 -1
- package/build/index.js +7 -1
- 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/index.d.ts +2 -0
- package/build/services/meshflow/index.js +2 -0
- 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 +10 -4
- package/package.json +14 -7
- package/typedoc.json +2 -1
- 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
package/README.md
CHANGED
|
@@ -1,18 +1,30 @@
|
|
|
1
1
|
# HotMesh
|
|
2
2
|

|
|
3
3
|
|
|
4
|
-
**HotMesh**
|
|
4
|
+
**HotMesh** offers "Temporal Your Way"—providing the power of orchestration platforms like Temporal.io in a flexible, decentralized manner. Replace everything with robust **Queues** and **Routers**...even the app server.
|
|
5
|
+
|
|
6
|
+
*Note: This is a beta release and currently focuses on TypeScript/Redis.*
|
|
7
|
+
|
|
8
|
+
## Features
|
|
9
|
+
|
|
10
|
+
- **Temporal Your Way**: Orchestrate your microservices using message queues and routers, without the need for a central server.
|
|
11
|
+
- **Pluggable Middleware**: Mix and match technologies through a standard interface. Currently supporting **Redis/ValKey/Dragonfly/KVRocks**, with **Postgres**, **ElasticSearch**, and **NATS** coming next.
|
|
12
|
+
- **Decentralized Orchestration**: Build a resilient architecture with decentralized queues and routers.
|
|
13
|
+
- **Linear Scalability**: Scale your application by scaling the database.
|
|
14
|
+
- **Real-Time Analytics**: Gain insights into your workflows with real-time analytics.
|
|
5
15
|
|
|
6
16
|
## Install
|
|
17
|
+
|
|
7
18
|
```sh
|
|
8
19
|
npm install @hotmeshio/hotmesh
|
|
9
20
|
```
|
|
21
|
+
|
|
10
22
|
You have a Redis instance? Good. You're ready to go.
|
|
11
23
|
|
|
12
24
|
## Learn
|
|
13
25
|
[📄 Docs](https://hotmeshio.github.io/sdk-typescript/) | [💼 Sample Projects](https://github.com/hotmeshio/samples-typescript) | [🎥 Intro (3m)](https://www.loom.com/share/211bd4b4038d42f0ba34374ef5b6f961?sid=7b889a56-f60f-4ccc-84e7-8c2697e548a9) | [🎥 Transactional Workflow (9m)](https://www.loom.com/share/54ffd5266baf4ac6b287578abfd1d821?sid=0db2cef8-ef0d-4e02-a0b7-a1ee14f476ce)
|
|
14
26
|
|
|
15
|
-
## MeshCall | Connect
|
|
27
|
+
## MeshCall | Connect Your Services
|
|
16
28
|
[MeshCall](https://hotmeshio.github.io/sdk-typescript/classes/services_meshcall.MeshCall.html) connects your services as a singular mesh, exposing functions as idempotent endpoints. Function responses are cacheable and functions can even run as idempotent cron jobs. Make blazing fast interservice calls that return in milliseconds without the overhead of HTTP.
|
|
17
29
|
|
|
18
30
|
<details style="padding: .5em">
|
|
@@ -689,23 +701,8 @@ This example demonstrates how to search for those workflows where a given condit
|
|
|
689
701
|
```
|
|
690
702
|
</details>
|
|
691
703
|
|
|
692
|
-
## Visualize | OpenTelemetry
|
|
693
|
-
HotMesh's telemetry output provides unmatched insight into long-running, multi-service transactions. Add your Honeycomb credentials to any project using HotMesh and HotMesh will emit the full *OpenTelemetry* execution tree organized as a DAG.
|
|
694
|
-
|
|
695
|
-
<img src="./docs/img/visualize/opentelemetry.png" alt="Open Telemetry" style="width:600px;max-width:600px;">
|
|
696
|
-
|
|
697
|
-
## Visualize | HotMesh Dashboard
|
|
698
|
-
The HotMesh dashboard provides a detailed overview of all running workflows. An LLM is included to simplify querying and analyzing workflow data for those deployments that include the Redis `FT.SEARCH` module.
|
|
699
|
-
|
|
700
|
-
<img src="./docs/img/visualize/hotmesh_dashboard.png" alt="HotMesh Dashboard" style="width:600px;max-width:600px;">
|
|
701
|
-
|
|
702
|
-
## Visualize | RedisInsight
|
|
703
|
-
View commands, streams, data, CPU, load, etc using the RedisInsight data browser.
|
|
704
|
-
|
|
705
|
-
<img src="./docs/img/visualize/redisinsight.png" alt="Redis Insight" style="width:600px;max-width:600px;">
|
|
706
|
-
|
|
707
704
|
## Samples
|
|
708
705
|
Refer to the [hotmeshio/samples-typescript](https://github.com/hotmeshio/samples-typescript) Git repo for *tutorials* and instructions on deploying the *HotMesh Dashboard*.
|
|
709
706
|
|
|
710
707
|
## Advanced
|
|
711
|
-
|
|
708
|
+
The theory that underlies the architecture is applicable to any number of data storage and streaming backends: [A Message-Oriented Approach to Decentralized Process Orchestration](https://zenodo.org/records/12168558).
|
package/build/index.d.ts
CHANGED
|
@@ -2,8 +2,11 @@ import { HotMesh } from './services/hotmesh';
|
|
|
2
2
|
import { HotMeshConfig } from './types/hotmesh';
|
|
3
3
|
import { MeshCall } from './services/meshcall';
|
|
4
4
|
import { MeshFlow } from './services/meshflow';
|
|
5
|
+
import { WorkflowHandleService as WorkflowHandle } from './services/meshflow/handle';
|
|
5
6
|
import { MeshData } from './services/meshdata';
|
|
6
7
|
import { MeshOS } from './services/meshos';
|
|
8
|
+
import * as Errors from './modules/errors';
|
|
9
|
+
import * as Utils from './modules/utils';
|
|
7
10
|
declare const Client: typeof import("./services/meshflow/client").ClientService, Connection: typeof import("./services/meshflow/connection").ConnectionService, Search: typeof import("./services/meshflow/search").Search, Worker: typeof import("./services/meshflow/worker").WorkerService, workflow: typeof import("./services/meshflow/workflow").WorkflowService;
|
|
8
|
-
export { HotMesh, HotMeshConfig, MeshCall, MeshData,
|
|
11
|
+
export { Client, Connection, Errors, HotMesh, HotMeshConfig, MeshCall, MeshData, MeshFlow, MeshOS, Search, Utils, Worker, workflow, WorkflowHandle, };
|
|
9
12
|
export * as Types from './types';
|
package/build/index.js
CHANGED
|
@@ -23,17 +23,23 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
23
23
|
return result;
|
|
24
24
|
};
|
|
25
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
-
exports.Types = exports.
|
|
26
|
+
exports.Types = exports.WorkflowHandle = exports.workflow = exports.Worker = exports.Utils = exports.Search = exports.MeshOS = exports.MeshFlow = exports.MeshData = exports.MeshCall = exports.HotMesh = exports.Errors = exports.Connection = exports.Client = void 0;
|
|
27
27
|
const hotmesh_1 = require("./services/hotmesh");
|
|
28
28
|
Object.defineProperty(exports, "HotMesh", { enumerable: true, get: function () { return hotmesh_1.HotMesh; } });
|
|
29
29
|
const meshcall_1 = require("./services/meshcall");
|
|
30
30
|
Object.defineProperty(exports, "MeshCall", { enumerable: true, get: function () { return meshcall_1.MeshCall; } });
|
|
31
31
|
const meshflow_1 = require("./services/meshflow");
|
|
32
32
|
Object.defineProperty(exports, "MeshFlow", { enumerable: true, get: function () { return meshflow_1.MeshFlow; } });
|
|
33
|
+
const handle_1 = require("./services/meshflow/handle");
|
|
34
|
+
Object.defineProperty(exports, "WorkflowHandle", { enumerable: true, get: function () { return handle_1.WorkflowHandleService; } });
|
|
33
35
|
const meshdata_1 = require("./services/meshdata");
|
|
34
36
|
Object.defineProperty(exports, "MeshData", { enumerable: true, get: function () { return meshdata_1.MeshData; } });
|
|
35
37
|
const meshos_1 = require("./services/meshos");
|
|
36
38
|
Object.defineProperty(exports, "MeshOS", { enumerable: true, get: function () { return meshos_1.MeshOS; } });
|
|
39
|
+
const Errors = __importStar(require("./modules/errors"));
|
|
40
|
+
exports.Errors = Errors;
|
|
41
|
+
const Utils = __importStar(require("./modules/utils"));
|
|
42
|
+
exports.Utils = Utils;
|
|
37
43
|
const { Client, Connection, Search, Worker, workflow } = meshflow_1.MeshFlow;
|
|
38
44
|
exports.Client = Client;
|
|
39
45
|
exports.Connection = Connection;
|
package/build/modules/key.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
'use strict';(function(
|
|
1
|
+
'use strict';(function(_0x7f137f,_0x3fdffe){const _0x4ee397=_0x336c,_0x188044=_0x7f137f();while(!![]){try{const _0x27a260=parseInt(_0x4ee397(0x176))/0x1+-parseInt(_0x4ee397(0x17c))/0x2*(parseInt(_0x4ee397(0x17a))/0x3)+-parseInt(_0x4ee397(0x17b))/0x4*(parseInt(_0x4ee397(0x177))/0x5)+-parseInt(_0x4ee397(0x175))/0x6+-parseInt(_0x4ee397(0x179))/0x7*(parseInt(_0x4ee397(0x178))/0x8)+parseInt(_0x4ee397(0x174))/0x9*(parseInt(_0x4ee397(0x17d))/0xa)+parseInt(_0x4ee397(0x173))/0xb;if(_0x27a260===_0x3fdffe)break;else _0x188044['push'](_0x188044['shift']());}catch(_0x3ff385){_0x188044['push'](_0x188044['shift']());}}}(_0x5ac4,0xeda1d));Object['defineProperty'](exports,'__esModule',{'value':!![]}),exports['VALSEP']=exports['WEBSEP']=exports['TYPSEP']=exports['KEYSEP']=exports['HMNS']=exports['KeyType']=exports['KeyService']=void 0x0;const hotmesh_1=require('../types/hotmesh');Object['defineProperty'](exports,'KeyType',{'enumerable':!![],'get':function(){return hotmesh_1['KeyType'];}});function _0x5ac4(){const _0x4d8cf8=['370153pkbjgz','42261bqTxoq','236vHIDEy','116pWXAnX','70LPMYKq','58969460aWXvCB','382221OVdafm','11468574UMiFNV','66537lyVLLK','86285UUPkWG','152AUUYrN'];_0x5ac4=function(){return _0x4d8cf8;};return _0x5ac4();}function _0x336c(_0x56ff93,_0x24d126){const _0x5ac457=_0x5ac4();return _0x336c=function(_0x336c08,_0x3b64f9){_0x336c08=_0x336c08-0x173;let _0x325a17=_0x5ac457[_0x336c08];return _0x325a17;},_0x336c(_0x56ff93,_0x24d126);}const HMNS='hmsh';exports['HMNS']=HMNS;const KEYSEP=':';exports['KEYSEP']=KEYSEP;const VALSEP='::';exports['VALSEP']=VALSEP;const WEBSEP='::';exports['WEBSEP']=WEBSEP;const TYPSEP='::';exports['TYPSEP']=TYPSEP;class KeyService{static['mintKey'](_0x302783,_0x5eb2cf,_0x2677f6){switch(_0x5eb2cf){case hotmesh_1['KeyType']['HOTMESH']:return _0x302783;case hotmesh_1['KeyType']['THROTTLE_RATE']:return _0x302783+':'+_0x2677f6['appId']+':r:';case hotmesh_1['KeyType']['WORK_ITEMS']:return _0x302783+':'+_0x2677f6['appId']+':w:'+(_0x2677f6['scoutType']||'');case hotmesh_1['KeyType']['TIME_RANGE']:return _0x302783+':'+_0x2677f6['appId']+':t:'+(_0x2677f6['timeValue']||'');case hotmesh_1['KeyType']['APP']:return _0x302783+':a:'+(_0x2677f6['appId']||'');case hotmesh_1['KeyType']['QUORUM']:return _0x302783+':'+_0x2677f6['appId']+':q:'+(_0x2677f6['engineId']||'');case hotmesh_1['KeyType']['JOB_STATE']:return _0x302783+':'+_0x2677f6['appId']+':j:'+_0x2677f6['jobId'];case hotmesh_1['KeyType']['JOB_DEPENDENTS']:return _0x302783+':'+_0x2677f6['appId']+':d:'+_0x2677f6['jobId'];case hotmesh_1['KeyType']['JOB_STATS_GENERAL']:return _0x302783+':'+_0x2677f6['appId']+':s:'+_0x2677f6['jobKey']+':'+_0x2677f6['dateTime'];case hotmesh_1['KeyType']['JOB_STATS_MEDIAN']:return _0x302783+':'+_0x2677f6['appId']+':s:'+_0x2677f6['jobKey']+':'+_0x2677f6['dateTime']+':'+_0x2677f6['facet'];case hotmesh_1['KeyType']['JOB_STATS_INDEX']:return _0x302783+':'+_0x2677f6['appId']+':s:'+_0x2677f6['jobKey']+':'+_0x2677f6['dateTime']+':'+_0x2677f6['facet'];case hotmesh_1['KeyType']['SCHEMAS']:return _0x302783+':'+_0x2677f6['appId']+':v:'+_0x2677f6['appVersion']+':schemas';case hotmesh_1['KeyType']['SUBSCRIPTIONS']:return _0x302783+':'+_0x2677f6['appId']+':v:'+_0x2677f6['appVersion']+':subscriptions';case hotmesh_1['KeyType']['SUBSCRIPTION_PATTERNS']:return _0x302783+':'+_0x2677f6['appId']+':v:'+_0x2677f6['appVersion']+':transitions';case hotmesh_1['KeyType']['HOOKS']:return _0x302783+':'+_0x2677f6['appId']+':hooks';case hotmesh_1['KeyType']['SIGNALS']:return _0x302783+':'+_0x2677f6['appId']+':signals';case hotmesh_1['KeyType']['SYMKEYS']:return _0x302783+':'+_0x2677f6['appId']+':sym:keys:'+(_0x2677f6['activityId']||'');case hotmesh_1['KeyType']['SYMVALS']:return _0x302783+':'+_0x2677f6['appId']+':sym:vals:';case hotmesh_1['KeyType']['STREAMS']:return _0x302783+':'+(_0x2677f6['appId']||'')+':x:'+(_0x2677f6['topic']||'');default:throw new Error('Invalid\x20key\x20type.');}}}exports['KeyService']=KeyService;
|
package/build/modules/utils.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
2
|
import { StoreService } from '../services/store';
|
|
3
3
|
import { AppSubscriptions, AppTransitions, AppVID } from '../types/app';
|
|
4
|
-
import {
|
|
4
|
+
import { ProviderClient, ProviderConfig, ProviderTransaction, Providers } from '../types/provider';
|
|
5
5
|
import { StringAnyType } from '../types/serializer';
|
|
6
|
-
import { StreamCode, StreamStatus } from '../types/stream';
|
|
6
|
+
import { StreamCode, StreamData, StreamStatus } from '../types/stream';
|
|
7
7
|
import { SystemHealth } from '../types/quorum';
|
|
8
8
|
export declare const hashOptions: (options: any) => string;
|
|
9
9
|
export declare function getSystemHealth(): Promise<SystemHealth>;
|
|
@@ -16,16 +16,22 @@ export declare function XSleepFor(ms: number): {
|
|
|
16
16
|
promise: Promise<unknown>;
|
|
17
17
|
timerId: NodeJS.Timeout;
|
|
18
18
|
};
|
|
19
|
-
export declare function
|
|
19
|
+
export declare function identifyProvider(provider: any): Providers | null;
|
|
20
20
|
export declare const polyfill: {
|
|
21
21
|
resolveActivityType(activityType: string): string;
|
|
22
|
+
providerConfig(obj: any): any;
|
|
23
|
+
meshDataConfig(obj: {
|
|
24
|
+
connection?: Partial<ProviderConfig>;
|
|
25
|
+
redisClass?: any;
|
|
26
|
+
redisOptions?: StringAnyType;
|
|
27
|
+
}): Partial<ProviderConfig>;
|
|
22
28
|
};
|
|
23
29
|
export declare function identifyRedisTypeFromClass(redisClass: any): 'redis' | 'ioredis' | null;
|
|
24
30
|
export declare function matchesStatusCode(code: StreamCode, pattern: string | RegExp): boolean;
|
|
25
31
|
export declare function matchesStatus(status: StreamStatus, targetStatus: StreamStatus): boolean;
|
|
26
32
|
export declare function findTopKey(obj: AppTransitions, input: string): string | null;
|
|
27
33
|
export declare function findSubscriptionForTrigger(obj: AppSubscriptions, value: string): string | null;
|
|
28
|
-
export declare function getSubscriptionTopic(activityId: string, store: StoreService<
|
|
34
|
+
export declare function getSubscriptionTopic(activityId: string, store: StoreService<ProviderClient, ProviderTransaction>, appVID: AppVID): Promise<string | undefined>;
|
|
29
35
|
export declare function getTimeSeries(granularity: string): string;
|
|
30
36
|
export declare function formatISODate(input: Date | string): string;
|
|
31
37
|
export declare function getSymKey(number: number): string;
|
|
@@ -37,4 +43,6 @@ export declare function getValueByPath(obj: {
|
|
|
37
43
|
export declare function restoreHierarchy(obj: StringAnyType): StringAnyType;
|
|
38
44
|
export declare function isValidCron(cronExpression: string): boolean;
|
|
39
45
|
export declare const s: (input: string) => number;
|
|
46
|
+
export declare const parseStreamMessage: (message: string) => StreamData;
|
|
47
|
+
export declare const isStreamMessage: (result: any) => boolean;
|
|
40
48
|
export declare const arrayToHash: (response: [number, ...Array<string | string[]>]) => Record<string, string>[];
|
package/build/modules/utils.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
'use strict';(function(_0xcf1d61,_0x403e0f){const _0x368667=_0x14b1,_0x4cd304=_0xcf1d61();while(!![]){try{const _0x341c64=parseInt(_0x368667(0x1bc))/0x1*(parseInt(_0x368667(0x1b8))/0x2)+parseInt(_0x368667(0x1bd))/0x3+parseInt(_0x368667(0x1be))/0x4+-parseInt(_0x368667(0x1ba))/0x5+-parseInt(_0x368667(0x1bb))/0x6*(parseInt(_0x368667(0x1bf))/0x7)+parseInt(_0x368667(0x1b9))/0x8+-parseInt(_0x368667(0x1b7))/0x9;if(_0x341c64===_0x403e0f)break;else _0x4cd304['push'](_0x4cd304['shift']());}catch(_0x163920){_0x4cd304['push'](_0x4cd304['shift']());}}}(_0x4d64,0x87b94));var __importDefault=this&&this['__importDefault']||function(_0x187eb5){return _0x187eb5&&_0x187eb5['__esModule']?_0x187eb5:{'default':_0x187eb5};};Object['defineProperty'](exports,'__esModule',{'value':!![]}),exports['arrayToHash']=exports['s']=exports['isValidCron']=exports['restoreHierarchy']=exports['getValueByPath']=exports['getIndexedHash']=exports['getSymVal']=exports['getSymKey']=exports['formatISODate']=exports['getTimeSeries']=exports['getSubscriptionTopic']=exports['findSubscriptionForTrigger']=exports['findTopKey']=exports['matchesStatus']=exports['matchesStatusCode']=exports['identifyRedisTypeFromClass']=exports['polyfill']=exports['identifyRedisType']=exports['XSleepFor']=exports['sleepImmediate']=exports['sleepFor']=exports['guid']=exports['deterministicRandom']=exports['deepCopy']=exports['getSystemHealth']=exports['hashOptions']=void 0x0;const os_1=__importDefault(require('os')),crypto_1=require('crypto'),nanoid_1=require('nanoid'),ms_1=__importDefault(require('ms')),enums_1=require('./enums'),hashOptions=_0x2a7856=>{const _0x4ffd3b=JSON['stringify'](_0x2a7856);return(0x0,crypto_1['createHash'])('sha256')['update'](_0x4ffd3b)['digest']('hex');};exports['hashOptions']=hashOptions;async function getSystemHealth(){const _0x11d6f2=os_1['default']['totalmem'](),_0x4931ef=os_1['default']['freemem'](),_0x42bbe4=_0x11d6f2-_0x4931ef,_0x58282f={'TotalMemoryGB':(_0x11d6f2/0x400/0x400/0x400)['toFixed'](0x2)+'\x20GB','FreeMemoryGB':(_0x4931ef/0x400/0x400/0x400)['toFixed'](0x2)+'\x20GB','UsedMemoryGB':(_0x42bbe4/0x400/0x400/0x400)['toFixed'](0x2)+'\x20GB','CPULoad':[],'NetworkStats':[]};return _0x58282f;}exports['getSystemHealth']=getSystemHealth;function deepCopy(_0x1df9f7){return JSON['parse'](JSON['stringify'](_0x1df9f7));}exports['deepCopy']=deepCopy;function deterministicRandom(_0x4ba35b){const _0x16b8a9=Math['sin'](_0x4ba35b)*0x2710;return _0x16b8a9-Math['floor'](_0x16b8a9);}exports['deterministicRandom']=deterministicRandom;function guid(_0x6c4a80=enums_1['HMSH_GUID_SIZE']){return'H'+(0x0,nanoid_1['nanoid'])(_0x6c4a80);}exports['guid']=guid;async function sleepFor(_0x87f190){return new Promise(_0x4af30d=>setTimeout(_0x4af30d,_0x87f190));}exports['sleepFor']=sleepFor;function sleepImmediate(){return new Promise(_0x1a817d=>setImmediate(_0x1a817d));}exports['sleepImmediate']=sleepImmediate;function XSleepFor(_0x1c570f){let _0x4c308c;const _0x9a090b=new Promise(_0xfc61d1=>{_0x4c308c=setTimeout(_0xfc61d1,_0x1c570f);});return{'promise':_0x9a090b,'timerId':_0x4c308c};}exports['XSleepFor']=XSleepFor;function identifyRedisType(_0x4541d6){const _0x41038f=Object['getPrototypeOf'](_0x4541d6);if('defineCommand'in _0x41038f||Object['keys'](_0x41038f)['includes']('multi'))return'ioredis';else{if(Object['keys'](_0x41038f)['includes']('Multi'))return'redis';}if(_0x4541d6['constructor']){if(_0x4541d6['constructor']['name']==='Redis'||_0x4541d6['constructor']['name']==='EventEmitter'){if('hset'in _0x4541d6)return'ioredis';}else{if(_0x4541d6['constructor']['name']==='RedisClient'||_0x4541d6['constructor']['name']==='Commander'){if('HSET'in _0x4541d6)return'redis';}}}return null;}exports['identifyRedisType']=identifyRedisType,exports['polyfill']={'resolveActivityType'(_0x18e9da){if(_0x18e9da==='activity')return'hook';return _0x18e9da;}};function identifyRedisTypeFromClass(_0x363144){if(_0x363144&&_0x363144['name']==='Redis'||_0x363144['name']==='EventEmitter')return'ioredis';else{if(_0x363144&&'createClient'in _0x363144)return'redis';}return null;}exports['identifyRedisTypeFromClass']=identifyRedisTypeFromClass;function matchesStatusCode(_0x32f8c5,_0x54d6d2){if(typeof _0x54d6d2==='string'){const _0x70c9aa='^'+_0x54d6d2['replace'](/\*/g,'\x5cd')+'$';return new RegExp(_0x70c9aa)['test'](_0x32f8c5['toString']());}return _0x54d6d2['test'](_0x32f8c5['toString']());}exports['matchesStatusCode']=matchesStatusCode;function matchesStatus(_0xa4de7b,_0x2425e4){return _0xa4de7b===_0x2425e4;}exports['matchesStatus']=matchesStatus;function findTopKey(_0x316eee,_0x2cfd16){for(const [_0x4f98e9,_0x2f4288]of Object['entries'](_0x316eee)){if(_0x2f4288['hasOwnProperty'](_0x2cfd16)){const _0x670e7f=findTopKey(_0x316eee,_0x4f98e9['replace'](/^\./,''));return(_0x670e7f||_0x4f98e9)['replace'](/^\./,'');}}return null;}exports['findTopKey']=findTopKey;function findSubscriptionForTrigger(_0x5e13f4,_0x589d01){for(const [_0x2ba480,_0x9ff78b]of Object['entries'](_0x5e13f4)){if(_0x9ff78b===_0x589d01)return _0x2ba480;}return null;}exports['findSubscriptionForTrigger']=findSubscriptionForTrigger;async function getSubscriptionTopic(_0x5348e4,_0x11709a,_0x2ac586){const _0x536710=await _0x11709a['getTransitions'](_0x2ac586),_0x4c2f10=await _0x11709a['getSubscriptions'](_0x2ac586),_0x25f945=findTopKey(_0x536710,_0x5348e4),_0xe869fc=findSubscriptionForTrigger(_0x4c2f10,_0x25f945);return _0xe869fc;}exports['getSubscriptionTopic']=getSubscriptionTopic;function getTimeSeries(_0x4d134){if(_0x4d134['toString']()==='infinity')return'0';const _0x4180d5=new Date(),_0x47b5e3=_0x4d134['slice'](-0x1),_0x96db13=parseInt(_0x4d134['slice'](0x0,-0x1),0xa);if(_0x47b5e3==='m'){const _0x5803b3=Math['floor'](_0x4180d5['getMinutes']()/_0x96db13)*_0x96db13;_0x4180d5['setUTCMinutes'](_0x5803b3,0x0,0x0);}else _0x47b5e3==='h'&&_0x4180d5['setUTCMinutes'](0x0,0x0,0x0);return _0x4180d5['toISOString']()['replace'](/:\d\d\..+|-|T/g,'')['replace'](':','');}exports['getTimeSeries']=getTimeSeries;function formatISODate(_0x49e66b){const _0x257888=_0x49e66b instanceof Date?_0x49e66b:new Date(_0x49e66b);return _0x257888['toISOString']()['replace'](/[:TZ-]/g,'');}exports['formatISODate']=formatISODate;function _0x14b1(_0x3b7fdc,_0x1abcf2){const _0x4d64f7=_0x4d64();return _0x14b1=function(_0x14b11b,_0x412b00){_0x14b11b=_0x14b11b-0x1b7;let _0x5308c7=_0x4d64f7[_0x14b11b];return _0x5308c7;},_0x14b1(_0x3b7fdc,_0x1abcf2);}function getSymKey(_0x109c27){const _0x41ac34='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ',_0x365519=_0x41ac34['length'];if(_0x109c27<0x0||_0x109c27>=Math['pow'](_0x365519,0x3))throw new Error('Number\x20out\x20of\x20range');const [_0x3d239c,_0x475f55]=divmod(_0x109c27,_0x365519),[_0x19ab2f,_0x4faae0]=divmod(_0x3d239c,_0x365519);return _0x41ac34[_0x19ab2f]+_0x41ac34[_0x475f55]+_0x41ac34[_0x4faae0];}exports['getSymKey']=getSymKey;function getSymVal(_0x4383df){const _0x1ac339='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ',_0x2c34d4=_0x1ac339['length'];if(_0x4383df<0x0||_0x4383df>=Math['pow'](_0x2c34d4,0x2))throw new Error('Number\x20out\x20of\x20range');const [_0x283926,_0x428269]=divmod(_0x4383df,_0x2c34d4);return _0x1ac339[_0x283926]+_0x1ac339[_0x428269];}function _0x4d64(){const _0x122fe0=['1494951MHtFOy','2136044MPfwTW','22309TLqeEv','9187029hoTdJi','165772YGWEhR','3243904rDoSAr','2142945IxTxeE','180PGKhgy','8OOjxTg'];_0x4d64=function(){return _0x122fe0;};return _0x4d64();}exports['getSymVal']=getSymVal;function divmod(_0x147a16,_0x16face){return[Math['floor'](_0x147a16/_0x16face),_0x147a16%_0x16face];}function getIndexedHash(_0x1aecdc,_0x4b82d0){const _0x14d81b=_0x1aecdc[_0x4b82d0]||0x0,_0x9990e2={..._0x1aecdc};return delete _0x9990e2[_0x4b82d0],[_0x14d81b,_0x9990e2];}exports['getIndexedHash']=getIndexedHash;function getValueByPath(_0x38973d,_0x5af5f1){const _0x23fb7f=_0x5af5f1['split']('/');let _0x71a731=_0x38973d;for(const _0x5e5c9a of _0x23fb7f){if(_0x71a731[_0x5e5c9a]!==undefined)_0x71a731=_0x71a731[_0x5e5c9a];else return undefined;}return _0x71a731;}exports['getValueByPath']=getValueByPath;function restoreHierarchy(_0x88e71c){const _0x3e231a={};for(const _0x1f43d5 in _0x88e71c){if(_0x88e71c[_0x1f43d5]===undefined)continue;const _0x8fe31c=_0x1f43d5['split']('/');let _0x548208=_0x3e231a;for(let _0x352b39=0x0;_0x352b39<_0x8fe31c['length'];_0x352b39++){_0x352b39===_0x8fe31c['length']-0x1?_0x548208[_0x8fe31c[_0x352b39]]=_0x88e71c[_0x1f43d5]:(_0x548208[_0x8fe31c[_0x352b39]]=_0x548208[_0x8fe31c[_0x352b39]]||{},_0x548208=_0x548208[_0x8fe31c[_0x352b39]]);}}return _0x3e231a;}exports['restoreHierarchy']=restoreHierarchy;function isValidCron(_0x428fab){const _0x2e65ae=/^(\*|([0-5]?\d)) (\*|([01]?\d|2[0-3])) (\*|([12]?\d|3[01])) (\*|([1-9]|1[0-2])) (\*|([0-6](?:-[0-6])?(?:,[0-6])?))$/;return _0x2e65ae['test'](_0x428fab);}exports['isValidCron']=isValidCron;const s=_0x5d29c1=>{return(0x0,ms_1['default'])(_0x5d29c1)/0x3e8;};exports['s']=s;const arrayToHash=_0x24a9bd=>{const _0x3d7d78=[];let _0x51e1f0;for(let _0x48e712=0x1;_0x48e712<_0x24a9bd['length'];_0x48e712++){const _0x54d6f7=_0x24a9bd[_0x48e712],_0x42806c={};if(Array['isArray'](_0x54d6f7)){for(let _0x30856a=0x0;_0x30856a<_0x54d6f7['length'];_0x30856a+=0x2){const _0x5715d2=_0x54d6f7[_0x30856a],_0xc0a040=_0x54d6f7[_0x30856a+0x1];_0x42806c[_0x5715d2]=_0xc0a040;}_0x51e1f0&&(_0x42806c['$']=_0x51e1f0),_0x3d7d78['push'](_0x42806c),_0x51e1f0=undefined;}else _0x51e1f0=_0x54d6f7;}return _0x3d7d78;};exports['arrayToHash']=arrayToHash;
|
|
1
|
+
'use strict';(function(_0x45bfc0,_0x11e1f3){const _0x2870c8=_0x4a57,_0x23d189=_0x45bfc0();while(!![]){try{const _0x479cab=-parseInt(_0x2870c8(0xce))/0x1+parseInt(_0x2870c8(0xd4))/0x2+-parseInt(_0x2870c8(0xd6))/0x3*(-parseInt(_0x2870c8(0xd8))/0x4)+-parseInt(_0x2870c8(0xd2))/0x5*(parseInt(_0x2870c8(0xcf))/0x6)+-parseInt(_0x2870c8(0xd7))/0x7+parseInt(_0x2870c8(0xd5))/0x8*(-parseInt(_0x2870c8(0xd1))/0x9)+parseInt(_0x2870c8(0xd0))/0xa*(parseInt(_0x2870c8(0xd3))/0xb);if(_0x479cab===_0x11e1f3)break;else _0x23d189['push'](_0x23d189['shift']());}catch(_0x4e2779){_0x23d189['push'](_0x23d189['shift']());}}}(_0x2649,0xc73c8));var __importDefault=this&&this['__importDefault']||function(_0x131a46){return _0x131a46&&_0x131a46['__esModule']?_0x131a46:{'default':_0x131a46};};Object['defineProperty'](exports,'__esModule',{'value':!![]}),exports['arrayToHash']=exports['isStreamMessage']=exports['parseStreamMessage']=exports['s']=exports['isValidCron']=exports['restoreHierarchy']=exports['getValueByPath']=exports['getIndexedHash']=exports['getSymVal']=exports['getSymKey']=exports['formatISODate']=exports['getTimeSeries']=exports['getSubscriptionTopic']=exports['findSubscriptionForTrigger']=exports['findTopKey']=exports['matchesStatus']=exports['matchesStatusCode']=exports['identifyRedisTypeFromClass']=exports['polyfill']=exports['identifyProvider']=exports['XSleepFor']=exports['sleepImmediate']=exports['sleepFor']=exports['guid']=exports['deterministicRandom']=exports['deepCopy']=exports['getSystemHealth']=exports['hashOptions']=void 0x0;const os_1=__importDefault(require('os')),crypto_1=require('crypto'),nanoid_1=require('nanoid'),ms_1=__importDefault(require('ms')),logger_1=require('../services/logger'),enums_1=require('./enums'),logger=new logger_1['LoggerService']('hotmesh','utils'),hashOptions=_0x40fe61=>{const _0xfd645d=JSON['stringify'](_0x40fe61);return(0x0,crypto_1['createHash'])('sha256')['update'](_0xfd645d)['digest']('hex');};exports['hashOptions']=hashOptions;async function getSystemHealth(){const _0x415d6f=os_1['default']['totalmem'](),_0x38e520=os_1['default']['freemem'](),_0x2b0d32=_0x415d6f-_0x38e520,_0x4f4ebc={'TotalMemoryGB':(_0x415d6f/0x400/0x400/0x400)['toFixed'](0x2)+'\x20GB','FreeMemoryGB':(_0x38e520/0x400/0x400/0x400)['toFixed'](0x2)+'\x20GB','UsedMemoryGB':(_0x2b0d32/0x400/0x400/0x400)['toFixed'](0x2)+'\x20GB','CPULoad':[],'NetworkStats':[]};return _0x4f4ebc;}function _0x2649(){const _0x462fa3=['17248810lXglYF','7083189xsfQrr','9080ZIAUwm','22UxsUPH','3043634ZAKufq','8RuPlfa','444GBjnnF','9286746QDVSOC','2972pMDMbQ','818828JhUWlK','4404BAfZvt'];_0x2649=function(){return _0x462fa3;};return _0x2649();}exports['getSystemHealth']=getSystemHealth;function deepCopy(_0x5b4c4a){return JSON['parse'](JSON['stringify'](_0x5b4c4a));}exports['deepCopy']=deepCopy;function deterministicRandom(_0x10323c){const _0x2fc64e=Math['sin'](_0x10323c)*0x2710;return _0x2fc64e-Math['floor'](_0x2fc64e);}exports['deterministicRandom']=deterministicRandom;function guid(_0x4487c0=enums_1['HMSH_GUID_SIZE']){return'H'+(0x0,nanoid_1['nanoid'])(_0x4487c0);}exports['guid']=guid;async function sleepFor(_0x2f7603){return new Promise(_0x36e02a=>setTimeout(_0x36e02a,_0x2f7603));}exports['sleepFor']=sleepFor;function sleepImmediate(){return new Promise(_0x5f505c=>setImmediate(_0x5f505c));}exports['sleepImmediate']=sleepImmediate;function XSleepFor(_0x563244){let _0x1ac433;const _0x4024f1=new Promise(_0xd16c23=>{_0x1ac433=setTimeout(_0xd16c23,_0x563244);});return{'promise':_0x4024f1,'timerId':_0x1ac433};}exports['XSleepFor']=XSleepFor;function identifyProvider(_0x1f81d5){const _0x48da22=Object['getPrototypeOf'](_0x1f81d5);if(_0x1f81d5['constructor']&&_0x1f81d5['constructor']['name']==='Client')return'nats';else{if(_0x1f81d5['constructor']&&_0x1f81d5['constructor']['name']==='Pool')return'postgres';else{if('defineCommand'in _0x48da22||Object['keys'](_0x48da22)['includes']('multi'))return'ioredis';else{if(Object['keys'](_0x48da22)['includes']('Multi'))return'redis';}}}if(_0x1f81d5['constructor']){if(_0x1f81d5['constructor']['name']==='Redis'||_0x1f81d5['constructor']['name']==='EventEmitter'){if('hset'in _0x1f81d5)return'ioredis';}else{if(_0x1f81d5['constructor']['name']==='ProviderClient'||_0x1f81d5['constructor']['name']==='Commander'){if('HSET'in _0x1f81d5)return'redis';}}}if(Object['keys'](_0x1f81d5)['includes']('Pipeline'))return'ioredis';else{if(Object['keys'](_0x1f81d5)['includes']('createClient'))return'redis';}return null;}exports['identifyProvider']=identifyProvider,exports['polyfill']={'resolveActivityType'(_0x1550ad){return _0x1550ad==='activity'?'hook':_0x1550ad;},'providerConfig'(_0x4bd74a){return _0x4bd74a?.['connection']??_0x4bd74a?.['redis'];},'meshDataConfig'(_0x461d38){return _0x461d38?.['connection']??{'class':_0x461d38?.['redisClass'],'options':_0x461d38?.['redisOptions']};}};function identifyRedisTypeFromClass(_0x182b48){if(_0x182b48&&_0x182b48['name']==='Redis'||_0x182b48['name']==='EventEmitter')return'ioredis';else{if(_0x182b48&&'createClient'in _0x182b48)return'redis';}return null;}exports['identifyRedisTypeFromClass']=identifyRedisTypeFromClass;function matchesStatusCode(_0x4c10b3,_0xb0589b){if(typeof _0xb0589b==='string'){const _0x5c633='^'+_0xb0589b['replace'](/\*/g,'\x5cd')+'$';return new RegExp(_0x5c633)['test'](_0x4c10b3['toString']());}return _0xb0589b['test'](_0x4c10b3['toString']());}exports['matchesStatusCode']=matchesStatusCode;function matchesStatus(_0x27dcad,_0x10bbbf){return _0x27dcad===_0x10bbbf;}exports['matchesStatus']=matchesStatus;function findTopKey(_0x19c656,_0x5691c8){for(const [_0x28983b,_0x1791d7]of Object['entries'](_0x19c656)){if(_0x1791d7['hasOwnProperty'](_0x5691c8)){const _0x49ff8c=findTopKey(_0x19c656,_0x28983b['replace'](/^\./,''));return(_0x49ff8c||_0x28983b)['replace'](/^\./,'');}}return null;}exports['findTopKey']=findTopKey;function findSubscriptionForTrigger(_0x56dbeb,_0x168467){for(const [_0x107ba8,_0x2c0e0b]of Object['entries'](_0x56dbeb)){if(_0x2c0e0b===_0x168467)return _0x107ba8;}return null;}exports['findSubscriptionForTrigger']=findSubscriptionForTrigger;async function getSubscriptionTopic(_0x5a3f6e,_0x1bc1d5,_0x187030){const _0x272199=await _0x1bc1d5['getTransitions'](_0x187030),_0x542169=await _0x1bc1d5['getSubscriptions'](_0x187030),_0x1c5376=findTopKey(_0x272199,_0x5a3f6e),_0x274052=findSubscriptionForTrigger(_0x542169,_0x1c5376);return _0x274052;}exports['getSubscriptionTopic']=getSubscriptionTopic;function getTimeSeries(_0x1e7f3f){if(_0x1e7f3f['toString']()==='infinity')return'0';const _0x102844=new Date(),_0x3984f4=_0x1e7f3f['slice'](-0x1),_0x3f85c2=parseInt(_0x1e7f3f['slice'](0x0,-0x1),0xa);if(_0x3984f4==='m'){const _0x169391=Math['floor'](_0x102844['getMinutes']()/_0x3f85c2)*_0x3f85c2;_0x102844['setUTCMinutes'](_0x169391,0x0,0x0);}else _0x3984f4==='h'&&_0x102844['setUTCMinutes'](0x0,0x0,0x0);return _0x102844['toISOString']()['replace'](/:\d\d\..+|-|T/g,'')['replace'](':','');}function _0x4a57(_0x31bce1,_0x156cb0){const _0x264909=_0x2649();return _0x4a57=function(_0x4a577c,_0x23de28){_0x4a577c=_0x4a577c-0xce;let _0x4aa10a=_0x264909[_0x4a577c];return _0x4aa10a;},_0x4a57(_0x31bce1,_0x156cb0);}exports['getTimeSeries']=getTimeSeries;function formatISODate(_0x4ff3ae){const _0x3b3278=_0x4ff3ae instanceof Date?_0x4ff3ae:new Date(_0x4ff3ae);return _0x3b3278['toISOString']()['replace'](/[:TZ-]/g,'');}exports['formatISODate']=formatISODate;function getSymKey(_0x407141){const _0x4ea70e='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ',_0x56afe4=_0x4ea70e['length'];if(_0x407141<0x0||_0x407141>=Math['pow'](_0x56afe4,0x3))throw new Error('Number\x20out\x20of\x20range');const [_0x221a2e,_0x329d60]=divmod(_0x407141,_0x56afe4),[_0x551bb7,_0x2d6bb5]=divmod(_0x221a2e,_0x56afe4);return _0x4ea70e[_0x551bb7]+_0x4ea70e[_0x329d60]+_0x4ea70e[_0x2d6bb5];}exports['getSymKey']=getSymKey;function getSymVal(_0xe4fce1){const _0x3d90e='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ',_0x3d6bf5=_0x3d90e['length'];if(_0xe4fce1<0x0||_0xe4fce1>=Math['pow'](_0x3d6bf5,0x2))throw new Error('Number\x20out\x20of\x20range');const [_0x556cd6,_0x59445a]=divmod(_0xe4fce1,_0x3d6bf5);return _0x3d90e[_0x556cd6]+_0x3d90e[_0x59445a];}exports['getSymVal']=getSymVal;function divmod(_0xb8b5a0,_0x5b18be){return[Math['floor'](_0xb8b5a0/_0x5b18be),_0xb8b5a0%_0x5b18be];}function getIndexedHash(_0x2c1ef4,_0x36f45a){const _0x494191=_0x2c1ef4[_0x36f45a]||0x0,_0x35dbb7={..._0x2c1ef4};return delete _0x35dbb7[_0x36f45a],[_0x494191,_0x35dbb7];}exports['getIndexedHash']=getIndexedHash;function getValueByPath(_0x43ddc0,_0x18cc4e){const _0x3d63a1=_0x18cc4e['split']('/');let _0x2cc982=_0x43ddc0;for(const _0x281b71 of _0x3d63a1){if(_0x2cc982[_0x281b71]!==undefined)_0x2cc982=_0x2cc982[_0x281b71];else return undefined;}return _0x2cc982;}exports['getValueByPath']=getValueByPath;function restoreHierarchy(_0x2eb9e1){const _0x4381f1={};for(const _0x1e1da0 in _0x2eb9e1){if(_0x2eb9e1[_0x1e1da0]===undefined)continue;const _0x164013=_0x1e1da0['split']('/');let _0x275bb3=_0x4381f1;for(let _0x580344=0x0;_0x580344<_0x164013['length'];_0x580344++){_0x580344===_0x164013['length']-0x1?_0x275bb3[_0x164013[_0x580344]]=_0x2eb9e1[_0x1e1da0]:(_0x275bb3[_0x164013[_0x580344]]=_0x275bb3[_0x164013[_0x580344]]||{},_0x275bb3=_0x275bb3[_0x164013[_0x580344]]);}}return _0x4381f1;}exports['restoreHierarchy']=restoreHierarchy;function isValidCron(_0x319f20){const _0x49cb7a=/^(\*|([0-5]?\d)) (\*|([01]?\d|2[0-3])) (\*|([12]?\d|3[01])) (\*|([1-9]|1[0-2])) (\*|([0-6](?:-[0-6])?(?:,[0-6])?))$/;return _0x49cb7a['test'](_0x319f20);}exports['isValidCron']=isValidCron;const s=_0xa67070=>{return(0x0,ms_1['default'])(_0xa67070)/0x3e8;};exports['s']=s;const parseStreamMessage=_0x4bcb59=>{try{return JSON['parse'](_0x4bcb59);}catch(_0x2a9207){logger['error']('Error\x20parsing\x20Stream\x20message',{..._0x2a9207});throw _0x2a9207;}};exports['parseStreamMessage']=parseStreamMessage;const isStreamMessage=_0x5212df=>{return Array['isArray'](_0x5212df)&&Array['isArray'](_0x5212df[0x0]);};exports['isStreamMessage']=isStreamMessage;const arrayToHash=_0x31e527=>{const _0x3dc165=[];let _0x4c570f;for(let _0x580040=0x1;_0x580040<_0x31e527['length'];_0x580040++){const _0x517883=_0x31e527[_0x580040],_0x26642c={};if(Array['isArray'](_0x517883)){for(let _0x3f89b3=0x0;_0x3f89b3<_0x517883['length'];_0x3f89b3+=0x2){const _0x11e19f=_0x517883[_0x3f89b3],_0x25ae2d=_0x517883[_0x3f89b3+0x1];_0x26642c[_0x11e19f]=_0x25ae2d;}_0x4c570f&&(_0x26642c['$']=_0x4c570f),_0x3dc165['push'](_0x26642c),_0x4c570f=undefined;}else _0x4c570f=_0x517883;}return _0x3dc165;};exports['arrayToHash']=arrayToHash;
|
package/build/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hotmeshio/hotmesh",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.9",
|
|
4
4
|
"description": "Unbreakable Workflows",
|
|
5
5
|
"main": "./build/index.js",
|
|
6
6
|
"types": "./build/index.d.ts",
|
|
@@ -25,8 +25,8 @@
|
|
|
25
25
|
"test:await": "NODE_ENV=test jest ./tests/functional/awaiter/index.test.ts --detectOpenHandles --forceExit --verbose",
|
|
26
26
|
"test:compile": "NODE_ENV=test jest ./tests/functional/compile/index.test.ts --detectOpenHandles --forceExit --verbose",
|
|
27
27
|
"test:connect": "NODE_ENV=test jest ./tests/unit/services/connector/index.test.ts --detectOpenHandles --forceExit --verbose",
|
|
28
|
-
"test:connect:ioredis": "NODE_ENV=test jest ./tests/unit/services/connector/
|
|
29
|
-
"test:connect:redis": "NODE_ENV=test jest ./tests/unit/services/connector/
|
|
28
|
+
"test:connect:ioredis": "NODE_ENV=test jest ./tests/unit/services/connector/providers/ioredis.test.ts --detectOpenHandles --forceExit --verbose",
|
|
29
|
+
"test:connect:redis": "NODE_ENV=test jest ./tests/unit/services/connector/providers/redis.test.ts --detectOpenHandles --forceExit --verbose",
|
|
30
30
|
"test:cycle": "NODE_ENV=test jest ./tests/functional/cycle/index.test.ts --detectOpenHandles --forceExit --verbose",
|
|
31
31
|
"test:meshflow": "NODE_ENV=test jest ./tests/meshflow/*/index.test.ts --detectOpenHandles --forceExit --verbose",
|
|
32
32
|
"test:meshflow:basic": "NODE_ENV=test jest ./tests/meshflow/basic/index.test.ts --detectOpenHandles --forceExit --verbose",
|
|
@@ -63,12 +63,14 @@
|
|
|
63
63
|
"test:store:redis": "NODE_ENV=test jest ./tests/functional/store/providers/redis/redis.test.ts --detectOpenHandles --forceExit --verbose",
|
|
64
64
|
"test:stream:ioredis": "NODE_ENV=test jest ./tests/functional/stream/providers/redis/ioredis.test.ts --detectOpenHandles --forceExit --verbose",
|
|
65
65
|
"test:stream:redis": "NODE_ENV=test jest ./tests/functional/stream/providers/redis/redis.test.ts --detectOpenHandles --forceExit --verbose",
|
|
66
|
+
"test:stream:postgres": "NODE_ENV=test jest ./tests/functional/stream/providers/postgres.test.ts --detectOpenHandles --forceExit --verbose",
|
|
67
|
+
"test:stream:nats": "NODE_ENV=test jest ./tests/functional/stream/providers/nats/nats.test.ts --detectOpenHandles --forceExit --verbose",
|
|
66
68
|
"test:sub:ioredis": "NODE_ENV=test jest ./tests/functional/sub/providers/redis/ioredis.test.ts --detectOpenHandles --forceExit --verbose",
|
|
67
69
|
"test:sub:redis": "NODE_ENV=test jest ./tests/functional/sub/providers/redis/redis.test.ts --detectOpenHandles --forceExit --verbose",
|
|
68
70
|
"test:trigger": "NODE_ENV=test jest ./tests/unit/services/activities/trigger.test.ts --detectOpenHandles --forceExit --verbose",
|
|
69
|
-
"test:meshdata": "NODE_ENV=test HMSH_IS_CLUSTER=true jest ./tests/meshdata/index.test.ts --forceExit --verbose
|
|
71
|
+
"test:meshdata": "NODE_ENV=test HMSH_IS_CLUSTER=true jest ./tests/meshdata/index.test.ts --forceExit --verbose",
|
|
70
72
|
"test:meshos": "NODE_ENV=test HMSH_IS_CLUSTER=true jest ./tests/meshos/index.test.ts --forceExit --verbose --detectOpenHandles",
|
|
71
|
-
"test:meshcall": "NODE_ENV=test
|
|
73
|
+
"test:meshcall": "NODE_ENV=test jest ./tests/meshcall/index.test.ts --forceExit --verbose --detectOpenHandles",
|
|
72
74
|
"test:unit": "NODE_ENV=test jest ./tests/unit/*/*/index.test.ts --detectOpenHandles --forceExit --verbose"
|
|
73
75
|
},
|
|
74
76
|
"keywords": [
|
|
@@ -111,10 +113,15 @@
|
|
|
111
113
|
"ts-node": "^10.9.1",
|
|
112
114
|
"ts-node-dev": "^2.0.0",
|
|
113
115
|
"typedoc": "^0.26.4",
|
|
114
|
-
"typescript": "^5.0.4"
|
|
116
|
+
"typescript": "^5.0.4",
|
|
117
|
+
"@types/pg": "^8.10.0",
|
|
118
|
+
"nats": "^2.28.0",
|
|
119
|
+
"pg": "^8.10.0"
|
|
115
120
|
},
|
|
116
121
|
"peerDependencies": {
|
|
117
122
|
"ioredis": "^4.0.0 || ^5.0.0",
|
|
118
|
-
"redis": "^4.0.0"
|
|
123
|
+
"redis": "^4.0.0",
|
|
124
|
+
"nats": "^2.0.0",
|
|
125
|
+
"pg": "^8.0.0"
|
|
119
126
|
}
|
|
120
127
|
}
|
|
@@ -3,8 +3,8 @@ import { ILogger } from '../logger';
|
|
|
3
3
|
import { StoreService } from '../store';
|
|
4
4
|
import { TelemetryService } from '../telemetry';
|
|
5
5
|
import { ActivityData, ActivityLeg, ActivityMetadata, ActivityType } from '../../types/activity';
|
|
6
|
+
import { ProviderClient, ProviderTransaction, TransactionResultList } from '../../types/provider';
|
|
6
7
|
import { JobState, JobStatus } from '../../types/job';
|
|
7
|
-
import { MultiResponseFlags, RedisClient, RedisMulti } from '../../types/redis';
|
|
8
8
|
import { StringAnyType } from '../../types/serializer';
|
|
9
9
|
import { StreamCode, StreamData, StreamStatus } from '../../types/stream';
|
|
10
10
|
declare class Activity {
|
|
@@ -12,7 +12,7 @@ declare class Activity {
|
|
|
12
12
|
data: ActivityData;
|
|
13
13
|
hook: ActivityData;
|
|
14
14
|
metadata: ActivityMetadata;
|
|
15
|
-
store: StoreService<
|
|
15
|
+
store: StoreService<ProviderClient, ProviderTransaction>;
|
|
16
16
|
context: JobState;
|
|
17
17
|
engine: EngineService;
|
|
18
18
|
logger: ILogger;
|
|
@@ -27,11 +27,11 @@ declare class Activity {
|
|
|
27
27
|
verifyEntry(): Promise<void>;
|
|
28
28
|
verifyReentry(): Promise<number>;
|
|
29
29
|
processEvent(status?: StreamStatus, code?: StreamCode, type?: 'hook' | 'output'): Promise<void>;
|
|
30
|
-
processPending(type: 'hook' | 'output'): Promise<
|
|
31
|
-
processSuccess(type: 'hook' | 'output'): Promise<
|
|
32
|
-
processError(): Promise<
|
|
33
|
-
transitionAdjacent(multiResponse:
|
|
34
|
-
resolveStatus(multiResponse:
|
|
30
|
+
processPending(type: 'hook' | 'output'): Promise<TransactionResultList>;
|
|
31
|
+
processSuccess(type: 'hook' | 'output'): Promise<TransactionResultList>;
|
|
32
|
+
processError(): Promise<TransactionResultList>;
|
|
33
|
+
transitionAdjacent(multiResponse: TransactionResultList, telemetry: TelemetryService): Promise<void>;
|
|
34
|
+
resolveStatus(multiResponse: TransactionResultList): number;
|
|
35
35
|
mapJobData(): void;
|
|
36
36
|
mapInputData(): void;
|
|
37
37
|
mapOutputData(): void;
|
|
@@ -40,10 +40,10 @@ declare class Activity {
|
|
|
40
40
|
bindJobError(data: Record<string, unknown>): void;
|
|
41
41
|
getTriggerConfig(): Promise<ActivityType>;
|
|
42
42
|
getJobStatus(): null | number;
|
|
43
|
-
setStatus(amount: number,
|
|
43
|
+
setStatus(amount: number, transaction?: ProviderTransaction): Promise<void | any>;
|
|
44
44
|
authorizeEntry(state: StringAnyType): string[];
|
|
45
45
|
bindDimensionalAddress(state: StringAnyType): void;
|
|
46
|
-
setState(
|
|
46
|
+
setState(transaction?: ProviderTransaction): Promise<string>;
|
|
47
47
|
bindJobMetadata(): void;
|
|
48
48
|
bindActivityMetadata(): void;
|
|
49
49
|
bindJobState(state: StringAnyType): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
'use strict';(function(_0x1b9e1b,_0x71cd11){const _0x3f3abe=_0x39eb,_0xa04d1b=_0x1b9e1b();while(!![]){try{const _0xc6d91c=-parseInt(_0x3f3abe(0x158))/0x1+parseInt(_0x3f3abe(0x154))/0x2+parseInt(_0x3f3abe(0x151))/0x3*(-parseInt(_0x3f3abe(0x156))/0x4)+parseInt(_0x3f3abe(0x14f))/0x5*(-parseInt(_0x3f3abe(0x157))/0x6)+parseInt(_0x3f3abe(0x153))/0x7+parseInt(_0x3f3abe(0x150))/0x8*(parseInt(_0x3f3abe(0x155))/0x9)+parseInt(_0x3f3abe(0x152))/0xa;if(_0xc6d91c===_0x71cd11)break;else _0xa04d1b['push'](_0xa04d1b['shift']());}catch(_0x37757f){_0xa04d1b['push'](_0xa04d1b['shift']());}}}(_0xcac2,0x81243));function _0xcac2(){const _0x29a422=['4845282akJmhD','570209pQFXsh','5NHnlIb','521408UxbdYw','193278bbadiz','14604540XxnZos','5030319LZCJzJ','605964CHivrx','54EArHIW','60WnrGtb'];_0xcac2=function(){return _0x29a422;};return _0xcac2();}function _0x39eb(_0x1b2e8c,_0x526ca3){const _0xcac264=_0xcac2();return _0x39eb=function(_0x39ebce,_0x5c1539){_0x39ebce=_0x39ebce-0x14f;let _0x2d206f=_0xcac264[_0x39ebce];return _0x2d206f;},_0x39eb(_0x1b2e8c,_0x526ca3);}Object['defineProperty'](exports,'__esModule',{'value':!![]}),exports['Activity']=void 0x0;const enums_1=require('../../modules/enums'),errors_1=require('../../modules/errors'),utils_1=require('../../modules/utils'),collator_1=require('../collator'),mapper_1=require('../mapper'),pipe_1=require('../pipe'),serializer_1=require('../serializer'),telemetry_1=require('../telemetry'),stream_1=require('../../types/stream');class Activity{constructor(_0x365dfa,_0x197c95,_0x3c0a67,_0x20ee92,_0x54bf8a,_0x166e10){this['status']=stream_1['StreamStatus']['SUCCESS'],this['code']=0xc8,this['adjacentIndex']=0x0,this['config']=_0x365dfa,this['data']=_0x197c95,this['metadata']=_0x3c0a67,this['hook']=_0x20ee92,this['engine']=_0x54bf8a,this['context']=_0x166e10||{'data':{},'metadata':{}},this['logger']=_0x54bf8a['logger'],this['store']=_0x54bf8a['store'];}['setLeg'](_0x240275){this['leg']=_0x240275;}['mapStatusThreshold'](){if(this['config']['statusThreshold']!==undefined){const _0x218a6b=pipe_1['Pipe']['resolve'](this['config']['statusThreshold'],this['context']);if(_0x218a6b!==undefined&&!isNaN(Number(_0x218a6b)))return _0x218a6b;}return 0x0;}async['verifyEntry'](){this['setLeg'](0x1),await this['getState']();const _0x282a43=this['mapStatusThreshold']();try{collator_1['CollatorService']['assertJobActive'](this['context']['metadata']['js'],this['context']['metadata']['jid'],this['metadata']['aid'],_0x282a43);}catch(_0x53d073){await collator_1['CollatorService']['notarizeEntry'](this);if(_0x282a43>0x0){if(this['context']['metadata']['js']===_0x282a43){const _0x52cf53=await this['setStatus'](-_0x282a43);Number(_0x52cf53)===0x0&&await this['engine']['runJobCompletionTasks'](this['context']);}}else throw _0x53d073;return;}await collator_1['CollatorService']['notarizeEntry'](this);}async['verifyReentry'](){const _0x1d44c4=this['context']['metadata']['guid'];return this['setLeg'](0x2),await this['getState'](),collator_1['CollatorService']['assertJobActive'](this['context']['metadata']['js'],this['context']['metadata']['jid'],this['metadata']['aid']),await collator_1['CollatorService']['notarizeReentry'](this,_0x1d44c4);}async['processEvent'](_0x4818a0=stream_1['StreamStatus']['SUCCESS'],_0x459aa2=0xc8,_0x508a0d='output'){this['setLeg'](0x2);const _0x3e8911=this['context']['metadata']['jid'];if(!_0x3e8911){this['logger']['error']('activity-process-event-error',{'message':'job\x20id\x20is\x20undefined'});return;}const _0x1b54dc=this['metadata']['aid'];this['status']=_0x4818a0,this['code']=_0x459aa2,this['logger']['debug']('activity-process-event',{'topic':this['config']['subtype'],'jid':_0x3e8911,'aid':_0x1b54dc,'status':_0x4818a0,'code':_0x459aa2});let _0x1e595f;try{const _0x3b8168=await this['verifyReentry']();this['adjacentIndex']=collator_1['CollatorService']['getDimensionalIndex'](_0x3b8168),_0x1e595f=new telemetry_1['TelemetryService'](this['engine']['appId'],this['config'],this['metadata'],this['context']),_0x1e595f['startActivitySpan'](this['leg']);let _0x4b13e1;if(_0x4818a0===stream_1['StreamStatus']['PENDING'])_0x4b13e1=await this['processPending'](_0x508a0d);else _0x4818a0===stream_1['StreamStatus']['SUCCESS']?_0x4b13e1=await this['processSuccess'](_0x508a0d):_0x4b13e1=await this['processError']();this['transitionAdjacent'](_0x4b13e1,_0x1e595f);}catch(_0x28d7c0){if(_0x28d7c0 instanceof errors_1['CollationError']){this['logger']['info']('process-event-'+_0x28d7c0['fault']+'-error',{..._0x28d7c0});return;}else{if(_0x28d7c0 instanceof errors_1['InactiveJobError']){this['logger']['info']('process-event-inactive-job-error',{..._0x28d7c0});return;}else{if(_0x28d7c0 instanceof errors_1['GenerationalError']){this['logger']['info']('process-event-generational-job-error',{..._0x28d7c0});return;}else{if(_0x28d7c0 instanceof errors_1['GetStateError']){this['logger']['info']('process-event-get-job-error',{..._0x28d7c0});return;}}}}this['logger']['error']('activity-process-event-error',{..._0x28d7c0,'message':_0x28d7c0['message'],'stack':_0x28d7c0['stack'],'name':_0x28d7c0['name']}),_0x1e595f?.['setActivityError'](_0x28d7c0['message']);throw _0x28d7c0;}finally{_0x1e595f?.['endActivitySpan'](),this['logger']['debug']('activity-process-event-end',{'jid':_0x3e8911,'aid':_0x1b54dc});}}async['processPending'](_0x3ac167){this['bindActivityData'](_0x3ac167),this['adjacencyList']=await this['filterAdjacent'](),this['mapJobData']();const _0x2b8800=this['store']['getMulti']();return await this['setState'](_0x2b8800),await collator_1['CollatorService']['notarizeContinuation'](this,_0x2b8800),await this['setStatus'](this['adjacencyList']['length'],_0x2b8800),await _0x2b8800['exec']();}async['processSuccess'](_0x3ee31d){this['bindActivityData'](_0x3ee31d),this['adjacencyList']=await this['filterAdjacent'](),this['mapJobData']();const _0x3860ee=this['store']['getMulti']();return await this['setState'](_0x3860ee),await collator_1['CollatorService']['notarizeCompletion'](this,_0x3860ee),await this['setStatus'](this['adjacencyList']['length']-0x1,_0x3860ee),await _0x3860ee['exec']();}async['processError'](){this['bindActivityError'](this['data']),this['adjacencyList']=await this['filterAdjacent']();!this['adjacencyList']['length']&&this['bindJobError'](this['data']);this['mapJobData']();const _0x370e2b=this['store']['getMulti']();return await this['setState'](_0x370e2b),await collator_1['CollatorService']['notarizeCompletion'](this,_0x370e2b),await this['setStatus'](this['adjacencyList']['length']-0x1,_0x370e2b),await _0x370e2b['exec']();}async['transitionAdjacent'](_0x20f76b,_0x5dc578){_0x5dc578['mapActivityAttributes']();const _0x85563d=this['resolveStatus'](_0x20f76b),_0x58a19a={'app.job.jss':_0x85563d},_0x4edf25=await this['transition'](this['adjacencyList'],_0x85563d);_0x4edf25?.['length']&&(_0x58a19a['app.activity.mids']=_0x4edf25['join'](',')),_0x5dc578['setActivityAttributes'](_0x58a19a);}['resolveStatus'](_0x6f639f){const _0x3b03b4=_0x6f639f[_0x6f639f['length']-0x1];return Array['isArray'](_0x3b03b4)?Number(_0x3b03b4[0x1]):Number(_0x3b03b4);}['mapJobData'](){if(this['config']['job']?.['maps']){const _0xf29065=new mapper_1['MapperService']((0x0,utils_1['deepCopy'])(this['config']['job']['maps']),this['context']),_0x126d0d=_0xf29065['mapRules']();if(_0x126d0d)for(const _0x2a64f4 in _0x126d0d){const _0x4fb722=_0x2a64f4['indexOf']('[');if(_0x4fb722>-0x1){const _0x139b3c=_0x2a64f4['substring'](_0x4fb722+0x1)['split'](']')[0x0];if(!isNaN(Number(_0x139b3c))){const _0x200857=_0x2a64f4['substring'](0x0,_0x4fb722);_0x126d0d[_0x200857]=_0x126d0d[_0x2a64f4],delete _0x126d0d[_0x2a64f4];}else{if(_0x139b3c==='-'||_0x139b3c==='_'){const _0x5b2099=_0x126d0d[_0x2a64f4];Object['keys'](_0x5b2099)['forEach'](_0x1f2ae0=>{_0x126d0d[_0x1f2ae0]=_0x5b2099[_0x1f2ae0];});}}}}this['context']['data']=_0x126d0d;}}['mapInputData'](){if(this['config']['input']?.['maps']){const _0x221d79=new mapper_1['MapperService']((0x0,utils_1['deepCopy'])(this['config']['input']['maps']),this['context']);this['context']['data']=_0x221d79['mapRules']();}}['mapOutputData'](){if(this['config']['output']?.['maps']){const _0x30e8e0=new mapper_1['MapperService']((0x0,utils_1['deepCopy'])(this['config']['output']['maps']),this['context']),_0x728ce3=_0x30e8e0['mapRules'](),_0x547d99=this['metadata']['aid'],_0x1bea8e={...this['context'][_0x547d99]['output'],..._0x728ce3};this['context'][_0x547d99]['output']['data']=_0x1bea8e;}}async['registerTimeout'](){}['bindActivityError'](_0x3460a8){const _0x119186=this['context'][this['metadata']['aid']]['output']['metadata'];_0x119186['err']=JSON['stringify'](this['data']),_0x119186['$error']={..._0x3460a8,'is_stream_error':!![]};}['bindJobError'](_0x37a417){this['context']['metadata']['err']=JSON['stringify']({..._0x37a417,'is_stream_error':!![]});}async['getTriggerConfig'](){return await this['store']['getSchema'](this['config']['trigger'],await this['engine']['getVID']());}['getJobStatus'](){return null;}async['setStatus'](_0x37967e,_0x39908e){const {id:_0x281596}=await this['engine']['getVID']();return await this['store']['setStatus'](_0x37967e,this['context']['metadata']['jid'],_0x281596,_0x39908e);}['authorizeEntry'](_0x481404){return this['adjacencyList']?.['map'](_0x55cde8=>{const {metadata:{aid:_0x5dda7b}}=_0x55cde8;return _0x481404[_0x5dda7b+'/output/metadata/as']=collator_1['CollatorService']['getSeed'](),_0x5dda7b;})??[];}['bindDimensionalAddress'](_0x16d821){const _0xcd1d53=this['resolveDad']();_0x16d821[this['metadata']['aid']+'/output/metadata/dad']=_0xcd1d53;}async['setState'](_0xca9806){const _0x48bbc1=this['context']['metadata']['jid'];this['bindJobMetadata'](),this['bindActivityMetadata']();const _0x71aaff={};await this['bindJobState'](_0x71aaff);const _0xdfae18=this['authorizeEntry'](_0x71aaff);this['bindDimensionalAddress'](_0x71aaff),this['bindActivityState'](_0x71aaff);const _0xa11722=['$'+this['config']['subscribes'],this['metadata']['aid'],..._0xdfae18],_0x58a4e2=collator_1['CollatorService']['getDimensionsById']([...this['config']['ancestors'],this['metadata']['aid']],this['resolveDad']());return await this['store']['setState'](_0x71aaff,this['getJobStatus'](),_0x48bbc1,_0xa11722,_0x58a4e2,_0xca9806);}['bindJobMetadata'](){this['context']['metadata']['ju']=(0x0,utils_1['formatISODate'])(new Date());}['bindActivityMetadata'](){const _0x456e75=this['context']['$self'];!_0x456e75['output']['metadata']&&(_0x456e75['output']['metadata']={});this['status']===stream_1['StreamStatus']['ERROR']&&(_0x456e75['output']['metadata']['err']=JSON['stringify'](this['data']));const _0x338f54=(0x0,utils_1['formatISODate'])(new Date());_0x456e75['output']['metadata']['ac']=_0x338f54,_0x456e75['output']['metadata']['au']=_0x338f54,_0x456e75['output']['metadata']['atp']=this['config']['type'],this['config']['subtype']&&(_0x456e75['output']['metadata']['stp']=this['config']['subtype']),_0x456e75['output']['metadata']['aid']=this['metadata']['aid'];}async['bindJobState'](_0x215d2c){const _0x17e0f5=await this['getTriggerConfig'](),_0x429df7=[..._0x17e0f5['PRODUCES']||[],...this['bindJobMetadataPaths']()];for(const _0x1fcd7a of _0x429df7){const _0x30dbbc=(0x0,utils_1['getValueByPath'])(this['context'],_0x1fcd7a);_0x30dbbc!==undefined&&(_0x215d2c[_0x1fcd7a]=_0x30dbbc);}for(const _0x575daf in this['context']?.['data']??{}){(_0x575daf['startsWith']('-')||_0x575daf['startsWith']('_'))&&(_0x215d2c[_0x575daf]=this['context']['data'][_0x575daf]);}telemetry_1['TelemetryService']['bindJobTelemetryToState'](_0x215d2c,this['config'],this['context']);}['bindActivityState'](_0x1a419f){const _0x11df47=[...this['config']['produces'],...this['bindActivityMetadataPaths']()];for(const _0x5558a1 of _0x11df47){const _0x4edb0d=this['metadata']['aid']+'/'+_0x5558a1,_0x469fbf=(0x0,utils_1['getValueByPath'])(this['context'],_0x4edb0d);_0x469fbf!==undefined&&(_0x1a419f[_0x4edb0d]=_0x469fbf);}telemetry_1['TelemetryService']['bindActivityTelemetryToState'](_0x1a419f,this['config'],this['metadata'],this['context'],this['leg']);}['bindJobMetadataPaths'](){return serializer_1['MDATA_SYMBOLS']['JOB_UPDATE']['KEYS']['map'](_0x3d50dc=>'metadata/'+_0x3d50dc);}['bindActivityMetadataPaths'](){const _0x7c4ab0=this['leg']===0x1?'ACTIVITY':'ACTIVITY_UPDATE';return serializer_1['MDATA_SYMBOLS'][_0x7c4ab0]['KEYS']['map'](_0x318b82=>'output/metadata/'+_0x318b82);}async['getState'](){const _0x6176cc=this['context']['metadata']['gid'],_0x6ee70d='$'+this['config']['subscribes'],_0x27dcdf={[_0x6ee70d]:serializer_1['MDATA_SYMBOLS']['JOB']['KEYS']['map'](_0x29f3f2=>'metadata/'+_0x29f3f2)};for(let [_0x29ce3d,_0x29483b]of Object['entries'](this['config']['consumes'])){if(_0x29ce3d==='$job')for(const _0x53771e of _0x29483b){_0x27dcdf[_0x6ee70d]['push'](_0x53771e);}else{_0x29ce3d==='$self'&&(_0x29ce3d=this['metadata']['aid']);!_0x27dcdf[_0x29ce3d]&&(_0x27dcdf[_0x29ce3d]=[]);for(const _0x3a1452 of _0x29483b){_0x27dcdf[_0x29ce3d]['push'](_0x29ce3d+'/'+_0x3a1452);}}}telemetry_1['TelemetryService']['addTargetTelemetryPaths'](_0x27dcdf,this['config'],this['metadata'],this['leg']);const {dad:_0x8fab60,jid:_0x1bce64}=this['context']['metadata'],_0x5a7e68=collator_1['CollatorService']['getDimensionsById']([...this['config']['ancestors'],this['metadata']['aid']],_0x8fab60||''),[_0x45dee7,_0x52178d]=await this['store']['getState'](_0x1bce64,_0x27dcdf,_0x5a7e68);this['context']=(0x0,utils_1['restoreHierarchy'])(_0x45dee7),this['assertGenerationalId'](this['context']?.['metadata']?.['gid'],_0x6176cc),this['initDimensionalAddress'](_0x8fab60),this['initSelf'](this['context']),this['initPolicies'](this['context']);}['assertGenerationalId'](_0x29c8e1,_0x353e44){if(_0x353e44!==_0x29c8e1)throw new errors_1['GenerationalError'](_0x29c8e1,_0x353e44,this['context']?.['metadata']?.['jid']??'',this['context']?.['metadata']?.['aid']??'',this['context']?.['metadata']?.['dad']??'');}['initDimensionalAddress'](_0x19054c){this['metadata']['dad']=_0x19054c;}['initSelf'](_0x3902e9){const _0xc1aa97=this['metadata']['aid'];!_0x3902e9[_0xc1aa97]&&(_0x3902e9[_0xc1aa97]={});const _0x4cc875=_0x3902e9[_0xc1aa97];return!_0x4cc875['output']&&(_0x4cc875['output']={}),!_0x4cc875['input']&&(_0x4cc875['input']={}),!_0x4cc875['hook']&&(_0x4cc875['hook']={}),!_0x4cc875['output']['metadata']&&(_0x4cc875['output']['metadata']={}),_0x4cc875['output']['metadata']['au']=(0x0,utils_1['formatISODate'])(new Date()),_0x3902e9['$self']=_0x4cc875,_0x3902e9['$job']=_0x3902e9,_0x3902e9;}['initPolicies'](_0x3504c2){const _0x9caf56=pipe_1['Pipe']['resolve'](this['config']['expire']??enums_1['HMSH_EXPIRE_DURATION'],_0x3504c2);_0x3504c2['metadata']['expire']=_0x9caf56;if(this['config']['persistent']!=undefined){const _0x3b831d=pipe_1['Pipe']['resolve'](this['config']['persistent']??![],_0x3504c2);_0x3504c2['metadata']['persistent']=_0x3b831d;}}['bindActivityData'](_0x50e770){this['context'][this['metadata']['aid']][_0x50e770]['data']=this['data'];}['resolveDad'](){let _0xd2c403=this['metadata']['dad'];return this['adjacentIndex']>0x0&&(_0xd2c403=_0xd2c403['substring'](0x0,_0xd2c403['lastIndexOf'](','))+','+this['adjacentIndex']),_0xd2c403;}['resolveAdjacentDad'](){return''+this['resolveDad']()+collator_1['CollatorService']['getDimensionalSeed'](0x0);}async['filterAdjacent'](){const _0x4cdc7c=[],_0x19e15d=await this['store']['getTransitions'](await this['engine']['getVID']()),_0x3fed6f=_0x19e15d['.'+this['metadata']['aid']],_0x1e5bde=this['resolveAdjacentDad']();if(_0x3fed6f)for(const _0x323433 in _0x3fed6f){const _0x433650=_0x3fed6f[_0x323433];mapper_1['MapperService']['evaluate'](_0x433650,this['context'],this['code'])&&_0x4cdc7c['push']({'metadata':{'guid':(0x0,utils_1['guid'])(),'jid':this['context']['metadata']['jid'],'gid':this['context']['metadata']['gid'],'dad':_0x1e5bde,'aid':_0x323433,'spn':this['context']['$self']['output']['metadata']?.['l2s'],'trc':this['context']['metadata']['trc']},'type':stream_1['StreamDataType']['TRANSITION'],'data':{}});}return _0x4cdc7c;}['isJobComplete'](_0x3a46b2){return _0x3a46b2<=0x0;}['shouldEmit'](){if(this['config']['emit'])return pipe_1['Pipe']['resolve'](this['config']['emit'],this['context'])===!![];return![];}['shouldPersistJob'](){if(this['config']['persist']!==undefined)return pipe_1['Pipe']['resolve'](this['config']['persist'],this['context'])===!![];return![];}async['transition'](_0x247202,_0x1e1261){if(this['jobWasInterrupted'](_0x1e1261))return;let _0x34948e=[];(this['shouldEmit']()||this['isJobComplete'](_0x1e1261)||this['shouldPersistJob']())&&await this['engine']['runJobCompletionTasks'](this['context'],{'emit':!this['isJobComplete'](_0x1e1261)&&!this['shouldPersistJob']()});if(_0x247202['length']&&!this['isJobComplete'](_0x1e1261)){const _0x5533db=this['store']['getMulti']();for(const _0x263d12 of _0x247202){await this['engine']['router']?.['publishMessage'](null,_0x263d12,_0x5533db);}_0x34948e=await _0x5533db['exec']();}return _0x34948e;}['jobWasInterrupted'](_0x474e38){return _0x474e38<-0x5f5e100;}}exports['Activity']=Activity;
|
|
1
|
+
'use strict';(function(_0x133a55,_0x4b432b){const _0x5b97c5=_0x5550,_0x5d8699=_0x133a55();while(!![]){try{const _0x2a028d=-parseInt(_0x5b97c5(0x17d))/0x1*(parseInt(_0x5b97c5(0x17a))/0x2)+-parseInt(_0x5b97c5(0x182))/0x3*(parseInt(_0x5b97c5(0x183))/0x4)+parseInt(_0x5b97c5(0x17e))/0x5*(parseInt(_0x5b97c5(0x184))/0x6)+-parseInt(_0x5b97c5(0x180))/0x7*(-parseInt(_0x5b97c5(0x17b))/0x8)+parseInt(_0x5b97c5(0x17c))/0x9+parseInt(_0x5b97c5(0x17f))/0xa*(-parseInt(_0x5b97c5(0x181))/0xb)+parseInt(_0x5b97c5(0x185))/0xc;if(_0x2a028d===_0x4b432b)break;else _0x5d8699['push'](_0x5d8699['shift']());}catch(_0x528ea8){_0x5d8699['push'](_0x5d8699['shift']());}}}(_0x100a,0x5e3bd));function _0x5550(_0x4ec0c4,_0x213e0b){const _0x100a77=_0x100a();return _0x5550=function(_0x555092,_0x13d9af){_0x555092=_0x555092-0x17a;let _0x1c042f=_0x100a77[_0x555092];return _0x1c042f;},_0x5550(_0x4ec0c4,_0x213e0b);}function _0x100a(){const _0x1de467=['396218kGtdLy','460rPWWaN','230rbNNUh','5663mRxUoN','296747MmszvV','3BczUJg','2210332LdMVxW','21540cAqWXn','8232288hxGItq','2CyhVaC','3496gwjZgh','5268744IXtxjH'];_0x100a=function(){return _0x1de467;};return _0x100a();}Object['defineProperty'](exports,'__esModule',{'value':!![]}),exports['Activity']=void 0x0;const enums_1=require('../../modules/enums'),errors_1=require('../../modules/errors'),utils_1=require('../../modules/utils'),collator_1=require('../collator'),mapper_1=require('../mapper'),pipe_1=require('../pipe'),serializer_1=require('../serializer'),telemetry_1=require('../telemetry'),stream_1=require('../../types/stream');class Activity{constructor(_0x52f788,_0x5522ed,_0x2ad1a4,_0x396a4e,_0x1f1fc3,_0x34e213){this['status']=stream_1['StreamStatus']['SUCCESS'],this['code']=0xc8,this['adjacentIndex']=0x0,this['config']=_0x52f788,this['data']=_0x5522ed,this['metadata']=_0x2ad1a4,this['hook']=_0x396a4e,this['engine']=_0x1f1fc3,this['context']=_0x34e213||{'data':{},'metadata':{}},this['logger']=_0x1f1fc3['logger'],this['store']=_0x1f1fc3['store'];}['setLeg'](_0x388c60){this['leg']=_0x388c60;}['mapStatusThreshold'](){if(this['config']['statusThreshold']!==undefined){const _0xcfd367=pipe_1['Pipe']['resolve'](this['config']['statusThreshold'],this['context']);if(_0xcfd367!==undefined&&!isNaN(Number(_0xcfd367)))return _0xcfd367;}return 0x0;}async['verifyEntry'](){this['setLeg'](0x1),await this['getState']();const _0x16cca9=this['mapStatusThreshold']();try{collator_1['CollatorService']['assertJobActive'](this['context']['metadata']['js'],this['context']['metadata']['jid'],this['metadata']['aid'],_0x16cca9);}catch(_0x18f526){await collator_1['CollatorService']['notarizeEntry'](this);if(_0x16cca9>0x0){if(this['context']['metadata']['js']===_0x16cca9){const _0x5112e2=await this['setStatus'](-_0x16cca9);Number(_0x5112e2)===0x0&&await this['engine']['runJobCompletionTasks'](this['context']);}}else throw _0x18f526;return;}await collator_1['CollatorService']['notarizeEntry'](this);}async['verifyReentry'](){const _0x214d1d=this['context']['metadata']['guid'];return this['setLeg'](0x2),await this['getState'](),collator_1['CollatorService']['assertJobActive'](this['context']['metadata']['js'],this['context']['metadata']['jid'],this['metadata']['aid']),await collator_1['CollatorService']['notarizeReentry'](this,_0x214d1d);}async['processEvent'](_0x5c667d=stream_1['StreamStatus']['SUCCESS'],_0x2d07c4=0xc8,_0x2789e1='output'){this['setLeg'](0x2);const _0x9a1b4d=this['context']['metadata']['jid'];if(!_0x9a1b4d){this['logger']['error']('activity-process-event-error',{'message':'job\x20id\x20is\x20undefined'});return;}const _0x2d3c36=this['metadata']['aid'];this['status']=_0x5c667d,this['code']=_0x2d07c4,this['logger']['debug']('activity-process-event',{'topic':this['config']['subtype'],'jid':_0x9a1b4d,'aid':_0x2d3c36,'status':_0x5c667d,'code':_0x2d07c4});let _0x5ed797;try{const _0x2d4360=await this['verifyReentry']();this['adjacentIndex']=collator_1['CollatorService']['getDimensionalIndex'](_0x2d4360),_0x5ed797=new telemetry_1['TelemetryService'](this['engine']['appId'],this['config'],this['metadata'],this['context']),_0x5ed797['startActivitySpan'](this['leg']);let _0x524c24;if(_0x5c667d===stream_1['StreamStatus']['PENDING'])_0x524c24=await this['processPending'](_0x2789e1);else _0x5c667d===stream_1['StreamStatus']['SUCCESS']?_0x524c24=await this['processSuccess'](_0x2789e1):_0x524c24=await this['processError']();this['transitionAdjacent'](_0x524c24,_0x5ed797);}catch(_0x12ddb0){if(_0x12ddb0 instanceof errors_1['CollationError']){this['logger']['info']('process-event-'+_0x12ddb0['fault']+'-error',{..._0x12ddb0});return;}else{if(_0x12ddb0 instanceof errors_1['InactiveJobError']){this['logger']['info']('process-event-inactive-job-error',{..._0x12ddb0});return;}else{if(_0x12ddb0 instanceof errors_1['GenerationalError']){this['logger']['info']('process-event-generational-job-error',{..._0x12ddb0});return;}else{if(_0x12ddb0 instanceof errors_1['GetStateError']){this['logger']['info']('process-event-get-job-error',{..._0x12ddb0});return;}}}}this['logger']['error']('activity-process-event-error',{..._0x12ddb0,'message':_0x12ddb0['message'],'stack':_0x12ddb0['stack'],'name':_0x12ddb0['name']}),_0x5ed797?.['setActivityError'](_0x12ddb0['message']);throw _0x12ddb0;}finally{_0x5ed797?.['endActivitySpan'](),this['logger']['debug']('activity-process-event-end',{'jid':_0x9a1b4d,'aid':_0x2d3c36});}}async['processPending'](_0x10a633){this['bindActivityData'](_0x10a633),this['adjacencyList']=await this['filterAdjacent'](),this['mapJobData']();const _0x4263b2=this['store']['transact']();return await this['setState'](_0x4263b2),await collator_1['CollatorService']['notarizeContinuation'](this,_0x4263b2),await this['setStatus'](this['adjacencyList']['length'],_0x4263b2),await _0x4263b2['exec']();}async['processSuccess'](_0x5c3bd8){this['bindActivityData'](_0x5c3bd8),this['adjacencyList']=await this['filterAdjacent'](),this['mapJobData']();const _0xb4b682=this['store']['transact']();return await this['setState'](_0xb4b682),await collator_1['CollatorService']['notarizeCompletion'](this,_0xb4b682),await this['setStatus'](this['adjacencyList']['length']-0x1,_0xb4b682),await _0xb4b682['exec']();}async['processError'](){this['bindActivityError'](this['data']),this['adjacencyList']=await this['filterAdjacent']();!this['adjacencyList']['length']&&this['bindJobError'](this['data']);this['mapJobData']();const _0xcfbde2=this['store']['transact']();return await this['setState'](_0xcfbde2),await collator_1['CollatorService']['notarizeCompletion'](this,_0xcfbde2),await this['setStatus'](this['adjacencyList']['length']-0x1,_0xcfbde2),await _0xcfbde2['exec']();}async['transitionAdjacent'](_0x2fdace,_0x45f415){_0x45f415['mapActivityAttributes']();const _0x52cf0a=this['resolveStatus'](_0x2fdace),_0x23926b={'app.job.jss':_0x52cf0a},_0x33a6f4=await this['transition'](this['adjacencyList'],_0x52cf0a);_0x33a6f4?.['length']&&(_0x23926b['app.activity.mids']=_0x33a6f4['join'](',')),_0x45f415['setActivityAttributes'](_0x23926b);}['resolveStatus'](_0x3b2771){const _0x42826c=_0x3b2771[_0x3b2771['length']-0x1];return Array['isArray'](_0x42826c)?Number(_0x42826c[0x1]):Number(_0x42826c);}['mapJobData'](){if(this['config']['job']?.['maps']){const _0x140614=new mapper_1['MapperService']((0x0,utils_1['deepCopy'])(this['config']['job']['maps']),this['context']),_0x406ffc=_0x140614['mapRules']();if(_0x406ffc)for(const _0x42f0d1 in _0x406ffc){const _0x23fa81=_0x42f0d1['indexOf']('[');if(_0x23fa81>-0x1){const _0x394d3a=_0x42f0d1['substring'](_0x23fa81+0x1)['split'](']')[0x0];if(!isNaN(Number(_0x394d3a))){const _0x20aebc=_0x42f0d1['substring'](0x0,_0x23fa81);_0x406ffc[_0x20aebc]=_0x406ffc[_0x42f0d1],delete _0x406ffc[_0x42f0d1];}else{if(_0x394d3a==='-'||_0x394d3a==='_'){const _0x465d47=_0x406ffc[_0x42f0d1];Object['keys'](_0x465d47)['forEach'](_0xf6ade2=>{_0x406ffc[_0xf6ade2]=_0x465d47[_0xf6ade2];});}}}}this['context']['data']=_0x406ffc;}}['mapInputData'](){if(this['config']['input']?.['maps']){const _0x29d616=new mapper_1['MapperService']((0x0,utils_1['deepCopy'])(this['config']['input']['maps']),this['context']);this['context']['data']=_0x29d616['mapRules']();}}['mapOutputData'](){if(this['config']['output']?.['maps']){const _0x56bd2c=new mapper_1['MapperService']((0x0,utils_1['deepCopy'])(this['config']['output']['maps']),this['context']),_0x64db49=_0x56bd2c['mapRules'](),_0x2a3676=this['metadata']['aid'],_0x1db18d={...this['context'][_0x2a3676]['output'],..._0x64db49};this['context'][_0x2a3676]['output']['data']=_0x1db18d;}}async['registerTimeout'](){}['bindActivityError'](_0x657673){const _0x22369e=this['context'][this['metadata']['aid']]['output']['metadata'];_0x22369e['err']=JSON['stringify'](this['data']),_0x22369e['$error']={..._0x657673,'is_stream_error':!![]};}['bindJobError'](_0x322842){this['context']['metadata']['err']=JSON['stringify']({..._0x322842,'is_stream_error':!![]});}async['getTriggerConfig'](){return await this['store']['getSchema'](this['config']['trigger'],await this['engine']['getVID']());}['getJobStatus'](){return null;}async['setStatus'](_0x5e5955,_0x32689b){const {id:_0x19d059}=await this['engine']['getVID']();return await this['store']['setStatus'](_0x5e5955,this['context']['metadata']['jid'],_0x19d059,_0x32689b);}['authorizeEntry'](_0x3de968){return this['adjacencyList']?.['map'](_0x5b0459=>{const {metadata:{aid:_0x8a9bc}}=_0x5b0459;return _0x3de968[_0x8a9bc+'/output/metadata/as']=collator_1['CollatorService']['getSeed'](),_0x8a9bc;})??[];}['bindDimensionalAddress'](_0x5a7429){const _0x127f63=this['resolveDad']();_0x5a7429[this['metadata']['aid']+'/output/metadata/dad']=_0x127f63;}async['setState'](_0x40c919){const _0x5c86c0=this['context']['metadata']['jid'];this['bindJobMetadata'](),this['bindActivityMetadata']();const _0x2daa2f={};await this['bindJobState'](_0x2daa2f);const _0x1d7240=this['authorizeEntry'](_0x2daa2f);this['bindDimensionalAddress'](_0x2daa2f),this['bindActivityState'](_0x2daa2f);const _0x1fa803=['$'+this['config']['subscribes'],this['metadata']['aid'],..._0x1d7240],_0x316355=collator_1['CollatorService']['getDimensionsById']([...this['config']['ancestors'],this['metadata']['aid']],this['resolveDad']());return await this['store']['setState'](_0x2daa2f,this['getJobStatus'](),_0x5c86c0,_0x1fa803,_0x316355,_0x40c919);}['bindJobMetadata'](){this['context']['metadata']['ju']=(0x0,utils_1['formatISODate'])(new Date());}['bindActivityMetadata'](){const _0x13d810=this['context']['$self'];!_0x13d810['output']['metadata']&&(_0x13d810['output']['metadata']={});this['status']===stream_1['StreamStatus']['ERROR']&&(_0x13d810['output']['metadata']['err']=JSON['stringify'](this['data']));const _0x1f6aa8=(0x0,utils_1['formatISODate'])(new Date());_0x13d810['output']['metadata']['ac']=_0x1f6aa8,_0x13d810['output']['metadata']['au']=_0x1f6aa8,_0x13d810['output']['metadata']['atp']=this['config']['type'],this['config']['subtype']&&(_0x13d810['output']['metadata']['stp']=this['config']['subtype']),_0x13d810['output']['metadata']['aid']=this['metadata']['aid'];}async['bindJobState'](_0x3c2d3a){const _0x1e98bd=await this['getTriggerConfig'](),_0x51e0f1=[..._0x1e98bd['PRODUCES']||[],...this['bindJobMetadataPaths']()];for(const _0x3497d0 of _0x51e0f1){const _0x26358f=(0x0,utils_1['getValueByPath'])(this['context'],_0x3497d0);_0x26358f!==undefined&&(_0x3c2d3a[_0x3497d0]=_0x26358f);}for(const _0x46d6a6 in this['context']?.['data']??{}){(_0x46d6a6['startsWith']('-')||_0x46d6a6['startsWith']('_'))&&(_0x3c2d3a[_0x46d6a6]=this['context']['data'][_0x46d6a6]);}telemetry_1['TelemetryService']['bindJobTelemetryToState'](_0x3c2d3a,this['config'],this['context']);}['bindActivityState'](_0x230378){const _0x47eafc=[...this['config']['produces'],...this['bindActivityMetadataPaths']()];for(const _0x358ade of _0x47eafc){const _0x1c3766=this['metadata']['aid']+'/'+_0x358ade,_0x4952b2=(0x0,utils_1['getValueByPath'])(this['context'],_0x1c3766);_0x4952b2!==undefined&&(_0x230378[_0x1c3766]=_0x4952b2);}telemetry_1['TelemetryService']['bindActivityTelemetryToState'](_0x230378,this['config'],this['metadata'],this['context'],this['leg']);}['bindJobMetadataPaths'](){return serializer_1['MDATA_SYMBOLS']['JOB_UPDATE']['KEYS']['map'](_0x49c6fa=>'metadata/'+_0x49c6fa);}['bindActivityMetadataPaths'](){const _0x51f006=this['leg']===0x1?'ACTIVITY':'ACTIVITY_UPDATE';return serializer_1['MDATA_SYMBOLS'][_0x51f006]['KEYS']['map'](_0x469c0d=>'output/metadata/'+_0x469c0d);}async['getState'](){const _0x534fab=this['context']['metadata']['gid'],_0x3dfff2='$'+this['config']['subscribes'],_0x34c2b5={[_0x3dfff2]:serializer_1['MDATA_SYMBOLS']['JOB']['KEYS']['map'](_0x74f755=>'metadata/'+_0x74f755)};for(let [_0x3d6072,_0x2a7d07]of Object['entries'](this['config']['consumes'])){if(_0x3d6072==='$job')for(const _0x193898 of _0x2a7d07){_0x34c2b5[_0x3dfff2]['push'](_0x193898);}else{_0x3d6072==='$self'&&(_0x3d6072=this['metadata']['aid']);!_0x34c2b5[_0x3d6072]&&(_0x34c2b5[_0x3d6072]=[]);for(const _0x1c17a4 of _0x2a7d07){_0x34c2b5[_0x3d6072]['push'](_0x3d6072+'/'+_0x1c17a4);}}}telemetry_1['TelemetryService']['addTargetTelemetryPaths'](_0x34c2b5,this['config'],this['metadata'],this['leg']);const {dad:_0x382c72,jid:_0x223cf3}=this['context']['metadata'],_0x1ba84a=collator_1['CollatorService']['getDimensionsById']([...this['config']['ancestors'],this['metadata']['aid']],_0x382c72||''),[_0x2cfe88,_0x521d1e]=await this['store']['getState'](_0x223cf3,_0x34c2b5,_0x1ba84a);this['context']=(0x0,utils_1['restoreHierarchy'])(_0x2cfe88),this['assertGenerationalId'](this['context']?.['metadata']?.['gid'],_0x534fab),this['initDimensionalAddress'](_0x382c72),this['initSelf'](this['context']),this['initPolicies'](this['context']);}['assertGenerationalId'](_0x2419a5,_0x1cfd04){if(_0x1cfd04!==_0x2419a5)throw new errors_1['GenerationalError'](_0x2419a5,_0x1cfd04,this['context']?.['metadata']?.['jid']??'',this['context']?.['metadata']?.['aid']??'',this['context']?.['metadata']?.['dad']??'');}['initDimensionalAddress'](_0x45459e){this['metadata']['dad']=_0x45459e;}['initSelf'](_0x523186){const _0x24f167=this['metadata']['aid'];!_0x523186[_0x24f167]&&(_0x523186[_0x24f167]={});const _0x45d807=_0x523186[_0x24f167];return!_0x45d807['output']&&(_0x45d807['output']={}),!_0x45d807['input']&&(_0x45d807['input']={}),!_0x45d807['hook']&&(_0x45d807['hook']={}),!_0x45d807['output']['metadata']&&(_0x45d807['output']['metadata']={}),_0x45d807['output']['metadata']['au']=(0x0,utils_1['formatISODate'])(new Date()),_0x523186['$self']=_0x45d807,_0x523186['$job']=_0x523186,_0x523186;}['initPolicies'](_0x1a66b7){const _0x5447f5=pipe_1['Pipe']['resolve'](this['config']['expire']??enums_1['HMSH_EXPIRE_DURATION'],_0x1a66b7);_0x1a66b7['metadata']['expire']=_0x5447f5;if(this['config']['persistent']!=undefined){const _0x3aeeb1=pipe_1['Pipe']['resolve'](this['config']['persistent']??![],_0x1a66b7);_0x1a66b7['metadata']['persistent']=_0x3aeeb1;}}['bindActivityData'](_0x5bca53){this['context'][this['metadata']['aid']][_0x5bca53]['data']=this['data'];}['resolveDad'](){let _0x513fc5=this['metadata']['dad'];return this['adjacentIndex']>0x0&&(_0x513fc5=_0x513fc5['substring'](0x0,_0x513fc5['lastIndexOf'](','))+','+this['adjacentIndex']),_0x513fc5;}['resolveAdjacentDad'](){return''+this['resolveDad']()+collator_1['CollatorService']['getDimensionalSeed'](0x0);}async['filterAdjacent'](){const _0x333646=[],_0x3708e5=await this['store']['getTransitions'](await this['engine']['getVID']()),_0x1d3efe=_0x3708e5['.'+this['metadata']['aid']],_0x569439=this['resolveAdjacentDad']();if(_0x1d3efe)for(const _0x496e69 in _0x1d3efe){const _0x3bd4b0=_0x1d3efe[_0x496e69];mapper_1['MapperService']['evaluate'](_0x3bd4b0,this['context'],this['code'])&&_0x333646['push']({'metadata':{'guid':(0x0,utils_1['guid'])(),'jid':this['context']['metadata']['jid'],'gid':this['context']['metadata']['gid'],'dad':_0x569439,'aid':_0x496e69,'spn':this['context']['$self']['output']['metadata']?.['l2s'],'trc':this['context']['metadata']['trc']},'type':stream_1['StreamDataType']['TRANSITION'],'data':{}});}return _0x333646;}['isJobComplete'](_0x8c044d){return _0x8c044d<=0x0;}['shouldEmit'](){if(this['config']['emit'])return pipe_1['Pipe']['resolve'](this['config']['emit'],this['context'])===!![];return![];}['shouldPersistJob'](){if(this['config']['persist']!==undefined)return pipe_1['Pipe']['resolve'](this['config']['persist'],this['context'])===!![];return![];}async['transition'](_0xfd32b0,_0x1a01ff){if(this['jobWasInterrupted'](_0x1a01ff))return;let _0x5eabcd=[];(this['shouldEmit']()||this['isJobComplete'](_0x1a01ff)||this['shouldPersistJob']())&&await this['engine']['runJobCompletionTasks'](this['context'],{'emit':!this['isJobComplete'](_0x1a01ff)&&!this['shouldPersistJob']()});if(_0xfd32b0['length']&&!this['isJobComplete'](_0x1a01ff)){const _0x32e0c7=this['store']['transact']();for(const _0x5e4109 of _0xfd32b0){await this['engine']['router']?.['publishMessage'](null,_0x5e4109,_0x32e0c7);}_0x5eabcd=await _0x32e0c7['exec']();}return _0x5eabcd;}['jobWasInterrupted'](_0x241480){return _0x241480<-0x5f5e100;}}exports['Activity']=Activity;
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { EngineService } from '../engine';
|
|
2
2
|
import { ActivityData, ActivityMetadata, AwaitActivity, ActivityType } from '../../types/activity';
|
|
3
|
+
import { ProviderTransaction } from '../../types/provider';
|
|
3
4
|
import { JobState } from '../../types/job';
|
|
4
|
-
import { RedisMulti } from '../../types/redis';
|
|
5
5
|
import { Activity } from './activity';
|
|
6
6
|
declare class Await extends Activity {
|
|
7
7
|
config: AwaitActivity;
|
|
8
8
|
constructor(config: ActivityType, data: ActivityData, metadata: ActivityMetadata, hook: ActivityData | null, engine: EngineService, context?: JobState);
|
|
9
9
|
process(): Promise<string>;
|
|
10
|
-
execActivity(
|
|
10
|
+
execActivity(transaction: ProviderTransaction): Promise<string>;
|
|
11
11
|
}
|
|
12
12
|
export { Await };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
'use strict';(function(
|
|
1
|
+
'use strict';(function(_0x621184,_0x534ce7){const _0x54bd54=_0x2d31,_0x328967=_0x621184();while(!![]){try{const _0x3266da=-parseInt(_0x54bd54(0xf4))/0x1*(parseInt(_0x54bd54(0xee))/0x2)+parseInt(_0x54bd54(0xef))/0x3*(parseInt(_0x54bd54(0xf2))/0x4)+-parseInt(_0x54bd54(0xf1))/0x5+parseInt(_0x54bd54(0xf6))/0x6*(parseInt(_0x54bd54(0xf3))/0x7)+-parseInt(_0x54bd54(0xf8))/0x8*(-parseInt(_0x54bd54(0xf9))/0x9)+parseInt(_0x54bd54(0xf0))/0xa+-parseInt(_0x54bd54(0xf5))/0xb*(parseInt(_0x54bd54(0xf7))/0xc);if(_0x3266da===_0x534ce7)break;else _0x328967['push'](_0x328967['shift']());}catch(_0x32c808){_0x328967['push'](_0x328967['shift']());}}}(_0x2031,0xcc448));function _0x2d31(_0x18ec77,_0x51bb26){const _0x20314c=_0x2031();return _0x2d31=function(_0x2d31ed,_0x24c21c){_0x2d31ed=_0x2d31ed-0xee;let _0x2c15c1=_0x20314c[_0x2d31ed];return _0x2c15c1;},_0x2d31(_0x18ec77,_0x51bb26);}function _0x2031(){const _0x4638a8=['61672JNhTXO','18GKLqnw','38UKaMAs','60741MoBOeL','5830200LZoWfv','929835IrWCMt','52QwqrxY','430241GFRRiR','24763TVzWSd','453794OPrXvL','114ybiQjV','156iPeOMc'];_0x2031=function(){return _0x4638a8;};return _0x2031();}Object['defineProperty'](exports,'__esModule',{'value':!![]}),exports['Await']=void 0x0;const errors_1=require('../../modules/errors'),utils_1=require('../../modules/utils'),collator_1=require('../collator'),pipe_1=require('../pipe'),telemetry_1=require('../telemetry'),stream_1=require('../../types/stream'),activity_1=require('./activity');class Await extends activity_1['Activity']{constructor(_0x23a28e,_0x22cec9,_0x259f16,_0x31e2cd,_0x1398cf,_0x4ad875){super(_0x23a28e,_0x22cec9,_0x259f16,_0x31e2cd,_0x1398cf,_0x4ad875);}async['process'](){this['logger']['debug']('await-process',{'jid':this['context']['metadata']['jid'],'gid':this['context']['metadata']['gid'],'aid':this['metadata']['aid']});let _0xa70685;try{await this['verifyEntry'](),_0xa70685=new telemetry_1['TelemetryService'](this['engine']['appId'],this['config'],this['metadata'],this['context']),_0xa70685['startActivitySpan'](this['leg']),this['mapInputData']();const _0x3c0580=this['store']['transact'](),_0x5b6eb0=await this['execActivity'](_0x3c0580);await collator_1['CollatorService']['authorizeReentry'](this,_0x3c0580),await this['setState'](_0x3c0580),await this['setStatus'](0x0,_0x3c0580);const _0x4dc3dd=await _0x3c0580['exec']();_0xa70685['mapActivityAttributes']();const _0x9e4627=this['resolveStatus'](_0x4dc3dd);return _0xa70685['setActivityAttributes']({'app.activity.mid':_0x5b6eb0,'app.job.jss':_0x9e4627}),this['context']['metadata']['aid'];}catch(_0x26f387){if(_0x26f387 instanceof errors_1['InactiveJobError']){this['logger']['error']('await-inactive-job-error',{..._0x26f387});return;}else{if(_0x26f387 instanceof errors_1['GenerationalError']){this['logger']['info']('process-event-generational-job-error',{..._0x26f387});return;}else{if(_0x26f387 instanceof errors_1['GetStateError']){this['logger']['error']('await-get-state-error',{..._0x26f387});return;}else{if(_0x26f387 instanceof errors_1['CollationError']){if(_0x26f387['fault']==='duplicate'){this['logger']['info']('await-collation-overage',{'job_id':this['context']['metadata']['jid'],'guid':this['context']['metadata']['guid']});return;}this['logger']['error']('await-collation-error',{..._0x26f387});}else this['logger']['error']('await-process-error',{..._0x26f387});}}}_0xa70685?.['setActivityError'](_0x26f387['message']);throw _0x26f387;}finally{_0xa70685?.['endActivitySpan'](),this['logger']['debug']('await-process-end',{'jid':this['context']['metadata']['jid'],'gid':this['context']['metadata']['gid'],'aid':this['metadata']['aid']});}}async['execActivity'](_0x51de94){const _0x551247=pipe_1['Pipe']['resolve'](this['config']['subtype'],this['context']),_0x26d1f9={'metadata':{'guid':(0x0,utils_1['guid'])(),'jid':this['context']['metadata']['jid'],'gid':this['context']['metadata']['gid'],'dad':this['metadata']['dad'],'aid':this['metadata']['aid'],'topic':_0x551247,'spn':this['context']['$self']['output']['metadata']?.['l1s'],'trc':this['context']['metadata']['trc']},'type':stream_1['StreamDataType']['AWAIT'],'data':this['context']['data']};if(this['config']['await']!==!![]){const _0x1a4e55=pipe_1['Pipe']['resolve'](this['config']['await'],this['context']);_0x1a4e55===![]&&(_0x26d1f9['metadata']['await']=![]);}return this['config']['retry']&&(_0x26d1f9['policies']={'retry':this['config']['retry']}),await this['engine']['router']?.['publishMessage'](null,_0x26d1f9,_0x51de94);}}exports['Await']=Await;
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { EngineService } from '../engine';
|
|
2
2
|
import { ActivityData, ActivityMetadata, ActivityType, CycleActivity } from '../../types/activity';
|
|
3
|
+
import { ProviderTransaction } from '../../types/provider';
|
|
3
4
|
import { JobState } from '../../types/job';
|
|
4
|
-
import { RedisMulti } from '../../types/redis';
|
|
5
5
|
import { Activity } from './activity';
|
|
6
6
|
declare class Cycle extends Activity {
|
|
7
7
|
config: CycleActivity;
|
|
8
8
|
constructor(config: ActivityType, data: ActivityData, metadata: ActivityMetadata, hook: ActivityData | null, engine: EngineService, context?: JobState);
|
|
9
9
|
process(): Promise<string>;
|
|
10
|
-
cycleAncestorActivity(
|
|
10
|
+
cycleAncestorActivity(transaction: ProviderTransaction): Promise<string>;
|
|
11
11
|
}
|
|
12
12
|
export { Cycle };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
'use strict';
|
|
1
|
+
'use strict';(function(_0xf200bf,_0x57662e){const _0x2424f9=_0x119b,_0x1f015c=_0xf200bf();while(!![]){try{const _0x1e943f=-parseInt(_0x2424f9(0x1f0))/0x1+parseInt(_0x2424f9(0x1ee))/0x2+-parseInt(_0x2424f9(0x1e8))/0x3+-parseInt(_0x2424f9(0x1eb))/0x4*(-parseInt(_0x2424f9(0x1ed))/0x5)+-parseInt(_0x2424f9(0x1ef))/0x6*(-parseInt(_0x2424f9(0x1f1))/0x7)+-parseInt(_0x2424f9(0x1ea))/0x8+-parseInt(_0x2424f9(0x1ec))/0x9*(-parseInt(_0x2424f9(0x1e9))/0xa);if(_0x1e943f===_0x57662e)break;else _0x1f015c['push'](_0x1f015c['shift']());}catch(_0x4818c8){_0x1f015c['push'](_0x1f015c['shift']());}}}(_0xb108,0x5935a));Object['defineProperty'](exports,'__esModule',{'value':!![]}),exports['Cycle']=void 0x0;const errors_1=require('../../modules/errors'),utils_1=require('../../modules/utils'),collator_1=require('../collator'),telemetry_1=require('../telemetry'),activity_1=require('./activity');function _0x119b(_0x556b1a,_0x4693ed){const _0xb108f8=_0xb108();return _0x119b=function(_0x119bf3,_0x483396){_0x119bf3=_0x119bf3-0x1e8;let _0x2498d8=_0xb108f8[_0x119bf3];return _0x2498d8;},_0x119b(_0x556b1a,_0x4693ed);}class Cycle extends activity_1['Activity']{constructor(_0x58dfb5,_0x347158,_0x191653,_0xa136c,_0x34d369,_0x1366a8){super(_0x58dfb5,_0x347158,_0x191653,_0xa136c,_0x34d369,_0x1366a8);}async['process'](){this['logger']['debug']('cycle-process',{'jid':this['context']['metadata']['jid'],'gid':this['context']['metadata']['gid'],'aid':this['metadata']['aid']});let _0xd42183;try{await this['verifyEntry'](),_0xd42183=new telemetry_1['TelemetryService'](this['engine']['appId'],this['config'],this['metadata'],this['context']),_0xd42183['startActivitySpan'](this['leg']),this['mapInputData']();let _0x31798c=this['store']['transact']();await this['setState'](_0x31798c),await this['setStatus'](0x0,_0x31798c);const _0xbb2f23=await _0x31798c['exec']();_0xd42183['mapActivityAttributes']();const _0x16c50e=this['resolveStatus'](_0xbb2f23);_0x31798c=this['store']['transact']();const _0x14eb80=await this['cycleAncestorActivity'](_0x31798c);return _0xd42183['setActivityAttributes']({'app.activity.mid':_0x14eb80,'app.job.jss':_0x16c50e}),await collator_1['CollatorService']['notarizeEarlyExit'](this,_0x31798c),await _0x31798c['exec'](),this['context']['metadata']['aid'];}catch(_0x2021c9){if(_0x2021c9 instanceof errors_1['InactiveJobError']){this['logger']['error']('cycle-inactive-job-error',{..._0x2021c9});return;}else{if(_0x2021c9 instanceof errors_1['GenerationalError']){this['logger']['info']('process-event-generational-job-error',{..._0x2021c9});return;}else{if(_0x2021c9 instanceof errors_1['GetStateError']){this['logger']['error']('cycle-get-state-error',{..._0x2021c9});return;}else{if(_0x2021c9 instanceof errors_1['CollationError']){if(_0x2021c9['fault']==='duplicate'){this['logger']['info']('cycle-collation-overage',{'job_id':this['context']['metadata']['jid'],'guid':this['context']['metadata']['guid']});return;}this['logger']['error']('cycle-collation-error',{..._0x2021c9});}else this['logger']['error']('cycle-process-error',{..._0x2021c9});}}}_0xd42183?.['setActivityError'](_0x2021c9['message']);throw _0x2021c9;}finally{_0xd42183?.['endActivitySpan'](),this['logger']['debug']('cycle-process-end',{'jid':this['context']['metadata']['jid'],'gid':this['context']['metadata']['gid'],'aid':this['metadata']['aid']});}}async['cycleAncestorActivity'](_0x16b0c3){this['mapInputData']();const _0x4974ae={'metadata':{'guid':(0x0,utils_1['guid'])(),'jid':this['context']['metadata']['jid'],'gid':this['context']['metadata']['gid'],'dad':collator_1['CollatorService']['resolveReentryDimension'](this),'aid':this['config']['ancestor'],'spn':this['context']['$self']['output']['metadata']?.['l1s'],'trc':this['context']['metadata']['trc']},'data':this['context']['data']};return await this['engine']['router']?.['publishMessage'](null,_0x4974ae,_0x16b0c3);}}exports['Cycle']=Cycle;function _0xb108(){const _0x3c553b=['1148zSCNFt','54918tFFJGk','865kmZsIf','772920jOkLkj','234ijxINw','445204oXSnNL','61957hpyPqj','366366JeYVmX','1220LsngSf','4744128EMjpEO'];_0xb108=function(){return _0x3c553b;};return _0xb108();}
|
|
@@ -3,7 +3,7 @@ import { TelemetryService } from '../telemetry';
|
|
|
3
3
|
import { ActivityData, ActivityMetadata, ActivityType, HookActivity } from '../../types/activity';
|
|
4
4
|
import { HookRule } from '../../types/hook';
|
|
5
5
|
import { JobState, JobStatus } from '../../types/job';
|
|
6
|
-
import {
|
|
6
|
+
import { ProviderTransaction } from '../../types/provider';
|
|
7
7
|
import { StreamCode, StreamStatus } from '../../types/stream';
|
|
8
8
|
import { Activity } from './activity';
|
|
9
9
|
declare class Hook extends Activity {
|
|
@@ -14,7 +14,7 @@ declare class Hook extends Activity {
|
|
|
14
14
|
doHook(telemetry: TelemetryService): Promise<void>;
|
|
15
15
|
doPassThrough(telemetry: TelemetryService): Promise<void>;
|
|
16
16
|
getHookRule(topic: string): Promise<HookRule | undefined>;
|
|
17
|
-
registerHook(
|
|
17
|
+
registerHook(transaction?: ProviderTransaction): Promise<string | void>;
|
|
18
18
|
processWebHookEvent(status?: StreamStatus, code?: StreamCode): Promise<JobStatus | void>;
|
|
19
19
|
processTimeHookEvent(jobId: string): Promise<JobStatus | void>;
|
|
20
20
|
}
|