@hotmeshio/hotmesh 0.0.3 → 0.0.5
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 +3 -3
- package/build/{package.json → cjs/package.json} +12 -5
- package/build/{services → cjs/services}/activities/activity.d.ts +2 -0
- package/build/{services → cjs/services}/activities/activity.js +27 -9
- package/build/{services → cjs/services}/activities/trigger.js +2 -2
- package/build/{services → cjs/services}/activities/worker.js +1 -0
- package/build/{services → cjs/services}/collator/index.d.ts +7 -5
- package/build/{services → cjs/services}/collator/index.js +29 -6
- package/build/{services → cjs/services}/compiler/deployer.d.ts +4 -3
- package/build/{services → cjs/services}/compiler/deployer.js +14 -0
- package/build/{services → cjs/services}/connector/index.js +3 -3
- package/build/{services → cjs/services}/dimension/index.d.ts +1 -1
- package/build/{services → cjs/services}/durable/client.js +2 -2
- package/build/{services → cjs/services}/durable/connection.js +2 -2
- package/build/{services → cjs/services}/durable/handle.d.ts +1 -1
- package/build/{services → cjs/services}/engine/index.d.ts +1 -1
- package/build/{services → cjs/services}/engine/index.js +22 -5
- package/build/{services → cjs/services}/hotmesh/index.d.ts +1 -1
- package/build/{services → cjs/services}/hotmesh/index.js +4 -4
- package/build/{services → cjs/services}/mapper/index.d.ts +3 -3
- package/build/{services → cjs/services}/serializer/index.d.ts +6 -1
- package/build/{services → cjs/services}/serializer/index.js +55 -22
- package/build/{services → cjs/services}/signaler/stream.js +1 -0
- package/build/{services → cjs/services}/store/index.d.ts +3 -3
- package/build/{services → cjs/services}/store/index.js +11 -24
- package/build/{types → cjs/types}/activity.d.ts +1 -0
- package/build/esm/index.d.ts +4 -0
- package/build/esm/index.js +3 -0
- package/build/esm/modules/errors.d.ts +28 -0
- package/build/esm/modules/errors.js +41 -0
- package/build/esm/modules/key.d.ts +75 -0
- package/build/esm/modules/key.js +111 -0
- package/build/esm/modules/utils.d.ts +34 -0
- package/build/esm/modules/utils.js +154 -0
- package/build/esm/package.json +80 -0
- package/build/esm/services/activities/activity.d.ts +61 -0
- package/build/esm/services/activities/activity.js +411 -0
- package/build/esm/services/activities/await.d.ts +16 -0
- package/build/esm/services/activities/await.js +140 -0
- package/build/esm/services/activities/emit.d.ts +9 -0
- package/build/esm/services/activities/emit.js +10 -0
- package/build/esm/services/activities/index.d.ts +15 -0
- package/build/esm/services/activities/index.js +14 -0
- package/build/esm/services/activities/iterate.d.ts +9 -0
- package/build/esm/services/activities/iterate.js +10 -0
- package/build/esm/services/activities/trigger.d.ts +22 -0
- package/build/esm/services/activities/trigger.js +158 -0
- package/build/esm/services/activities/worker.d.ts +17 -0
- package/build/esm/services/activities/worker.js +162 -0
- package/build/esm/services/collator/index.d.ts +56 -0
- package/build/esm/services/collator/index.js +191 -0
- package/build/esm/services/compiler/deployer.d.ts +36 -0
- package/build/esm/services/compiler/deployer.js +423 -0
- package/build/esm/services/compiler/index.d.ts +30 -0
- package/build/esm/services/compiler/index.js +82 -0
- package/build/esm/services/compiler/validator.d.ts +32 -0
- package/build/esm/services/compiler/validator.js +131 -0
- package/build/esm/services/connector/clients/ioredis.d.ts +13 -0
- package/build/esm/services/connector/clients/ioredis.js +47 -0
- package/build/esm/services/connector/clients/redis.d.ts +13 -0
- package/build/esm/services/connector/clients/redis.js +59 -0
- package/build/esm/services/connector/index.d.ts +5 -0
- package/build/esm/services/connector/index.js +27 -0
- package/build/esm/services/dimension/index.d.ts +29 -0
- package/build/esm/services/dimension/index.js +32 -0
- package/build/esm/services/durable/asyncLocalStorage.d.ts +3 -0
- package/build/esm/services/durable/asyncLocalStorage.js +2 -0
- package/build/esm/services/durable/client.d.ts +15 -0
- package/build/esm/services/durable/client.js +114 -0
- package/build/esm/services/durable/connection.d.ts +4 -0
- package/build/esm/services/durable/connection.js +47 -0
- package/build/esm/services/durable/factory.d.ts +3 -0
- package/build/esm/services/durable/factory.js +119 -0
- package/build/esm/services/durable/handle.d.ts +8 -0
- package/build/esm/services/durable/handle.js +34 -0
- package/build/esm/services/durable/index.d.ts +57 -0
- package/build/esm/services/durable/index.js +55 -0
- package/build/esm/services/durable/native.d.ts +4 -0
- package/build/esm/services/durable/native.js +43 -0
- package/build/esm/services/durable/worker.d.ts +36 -0
- package/build/esm/services/durable/worker.js +258 -0
- package/build/esm/services/durable/workflow.d.ts +6 -0
- package/build/esm/services/durable/workflow.js +128 -0
- package/build/esm/services/engine/index.d.ts +82 -0
- package/build/esm/services/engine/index.js +522 -0
- package/build/esm/services/hotmesh/index.d.ts +45 -0
- package/build/esm/services/hotmesh/index.js +131 -0
- package/build/esm/services/logger/index.d.ts +17 -0
- package/build/esm/services/logger/index.js +70 -0
- package/build/esm/services/mapper/index.d.ts +24 -0
- package/build/esm/services/mapper/index.js +69 -0
- package/build/esm/services/pipe/functions/array.d.ts +24 -0
- package/build/esm/services/pipe/functions/array.js +66 -0
- package/build/esm/services/pipe/functions/bitwise.d.ts +9 -0
- package/build/esm/services/pipe/functions/bitwise.js +21 -0
- package/build/esm/services/pipe/functions/conditional.d.ts +10 -0
- package/build/esm/services/pipe/functions/conditional.js +24 -0
- package/build/esm/services/pipe/functions/date.d.ts +57 -0
- package/build/esm/services/pipe/functions/date.js +164 -0
- package/build/esm/services/pipe/functions/index.d.ts +25 -0
- package/build/esm/services/pipe/functions/index.js +24 -0
- package/build/esm/services/pipe/functions/json.d.ts +5 -0
- package/build/esm/services/pipe/functions/json.js +9 -0
- package/build/esm/services/pipe/functions/math.d.ts +38 -0
- package/build/esm/services/pipe/functions/math.js +108 -0
- package/build/esm/services/pipe/functions/number.d.ts +25 -0
- package/build/esm/services/pipe/functions/number.js +130 -0
- package/build/esm/services/pipe/functions/object.d.ts +22 -0
- package/build/esm/services/pipe/functions/object.js +60 -0
- package/build/esm/services/pipe/functions/string.d.ts +23 -0
- package/build/esm/services/pipe/functions/string.js +66 -0
- package/build/esm/services/pipe/functions/symbol.d.ts +12 -0
- package/build/esm/services/pipe/functions/symbol.js +30 -0
- package/build/esm/services/pipe/functions/unary.d.ts +7 -0
- package/build/esm/services/pipe/functions/unary.js +15 -0
- package/build/esm/services/pipe/index.d.ts +30 -0
- package/build/esm/services/pipe/index.js +122 -0
- package/build/esm/services/quorum/index.d.ts +34 -0
- package/build/esm/services/quorum/index.js +144 -0
- package/build/esm/services/reporter/index.d.ts +47 -0
- package/build/esm/services/reporter/index.js +327 -0
- package/build/esm/services/serializer/index.d.ts +41 -0
- package/build/esm/services/serializer/index.js +251 -0
- package/build/esm/services/signaler/store.d.ts +15 -0
- package/build/esm/services/signaler/store.js +50 -0
- package/build/esm/services/signaler/stream.d.ts +43 -0
- package/build/esm/services/signaler/stream.js +315 -0
- package/build/esm/services/store/cache.d.ts +66 -0
- package/build/esm/services/store/cache.js +124 -0
- package/build/esm/services/store/clients/ioredis.d.ts +27 -0
- package/build/esm/services/store/clients/ioredis.js +93 -0
- package/build/esm/services/store/clients/redis.d.ts +29 -0
- package/build/esm/services/store/clients/redis.js +140 -0
- package/build/esm/services/store/index.d.ts +88 -0
- package/build/esm/services/store/index.js +623 -0
- package/build/esm/services/stream/clients/ioredis.d.ts +23 -0
- package/build/esm/services/stream/clients/ioredis.js +112 -0
- package/build/esm/services/stream/clients/redis.d.ts +23 -0
- package/build/esm/services/stream/clients/redis.js +116 -0
- package/build/esm/services/stream/index.d.ts +21 -0
- package/build/esm/services/stream/index.js +6 -0
- package/build/esm/services/sub/clients/ioredis.d.ts +20 -0
- package/build/esm/services/sub/clients/ioredis.js +69 -0
- package/build/esm/services/sub/clients/redis.d.ts +20 -0
- package/build/esm/services/sub/clients/redis.js +60 -0
- package/build/esm/services/sub/index.d.ts +18 -0
- package/build/esm/services/sub/index.js +6 -0
- package/build/esm/services/task/index.d.ts +18 -0
- package/build/esm/services/task/index.js +70 -0
- package/build/esm/services/telemetry/index.d.ts +49 -0
- package/build/esm/services/telemetry/index.js +217 -0
- package/build/esm/services/worker/index.d.ts +30 -0
- package/build/esm/services/worker/index.js +102 -0
- package/build/esm/types/activity.d.ts +87 -0
- package/build/esm/types/activity.js +1 -0
- package/build/esm/types/app.d.ts +16 -0
- package/build/esm/types/app.js +1 -0
- package/build/esm/types/async.d.ts +5 -0
- package/build/esm/types/async.js +1 -0
- package/build/esm/types/cache.d.ts +1 -0
- package/build/esm/types/cache.js +1 -0
- package/build/esm/types/collator.d.ts +8 -0
- package/build/esm/types/collator.js +8 -0
- package/build/esm/types/durable.d.ts +59 -0
- package/build/esm/types/durable.js +1 -0
- package/build/esm/types/hook.d.ts +31 -0
- package/build/esm/types/hook.js +6 -0
- package/build/esm/types/hotmesh.d.ts +82 -0
- package/build/esm/types/hotmesh.js +1 -0
- package/build/esm/types/index.d.ts +20 -0
- package/build/esm/types/index.js +5 -0
- package/build/esm/types/ioredisclient.d.ts +5 -0
- package/build/esm/types/ioredisclient.js +2 -0
- package/build/esm/types/job.d.ts +50 -0
- package/build/esm/types/job.js +1 -0
- package/build/esm/types/logger.d.ts +6 -0
- package/build/esm/types/logger.js +1 -0
- package/build/esm/types/map.d.ts +4 -0
- package/build/esm/types/map.js +1 -0
- package/build/esm/types/pipe.d.ts +4 -0
- package/build/esm/types/pipe.js +1 -0
- package/build/esm/types/quorum.d.ts +46 -0
- package/build/esm/types/quorum.js +1 -0
- package/build/esm/types/redis.d.ts +8 -0
- package/build/esm/types/redis.js +1 -0
- package/build/esm/types/redisclient.d.ts +25 -0
- package/build/esm/types/redisclient.js +1 -0
- package/build/esm/types/serializer.d.ts +33 -0
- package/build/esm/types/serializer.js +1 -0
- package/build/esm/types/stats.d.ts +83 -0
- package/build/esm/types/stats.js +1 -0
- package/build/esm/types/stream.d.ts +67 -0
- package/build/esm/types/stream.js +22 -0
- package/build/esm/types/telemetry.d.ts +1 -0
- package/build/esm/types/telemetry.js +1 -0
- package/build/esm/types/transition.d.ts +17 -0
- package/build/esm/types/transition.js +1 -0
- package/package.json +12 -5
- package/services/activities/activity.ts +28 -9
- package/services/activities/trigger.ts +2 -2
- package/services/activities/worker.ts +1 -0
- package/services/collator/index.ts +38 -13
- package/services/compiler/deployer.ts +24 -9
- package/services/connector/index.ts +3 -3
- package/services/dimension/index.ts +1 -1
- package/services/durable/client.ts +2 -2
- package/services/durable/connection.ts +2 -2
- package/services/durable/handle.ts +2 -2
- package/services/engine/index.ts +23 -5
- package/services/hotmesh/index.ts +4 -4
- package/services/mapper/index.ts +6 -8
- package/services/serializer/index.ts +57 -22
- package/services/signaler/stream.ts +1 -0
- package/services/store/index.ts +13 -25
- package/tsconfig.cjs.json +8 -0
- package/tsconfig.esm.json +9 -0
- package/types/activity.ts +1 -0
- /package/build/{index.d.ts → cjs/index.d.ts} +0 -0
- /package/build/{index.js → cjs/index.js} +0 -0
- /package/build/{modules → cjs/modules}/errors.d.ts +0 -0
- /package/build/{modules → cjs/modules}/errors.js +0 -0
- /package/build/{modules → cjs/modules}/key.d.ts +0 -0
- /package/build/{modules → cjs/modules}/key.js +0 -0
- /package/build/{modules → cjs/modules}/utils.d.ts +0 -0
- /package/build/{modules → cjs/modules}/utils.js +0 -0
- /package/build/{services → cjs/services}/activities/await.d.ts +0 -0
- /package/build/{services → cjs/services}/activities/await.js +0 -0
- /package/build/{services → cjs/services}/activities/emit.d.ts +0 -0
- /package/build/{services → cjs/services}/activities/emit.js +0 -0
- /package/build/{services → cjs/services}/activities/index.d.ts +0 -0
- /package/build/{services → cjs/services}/activities/index.js +0 -0
- /package/build/{services → cjs/services}/activities/iterate.d.ts +0 -0
- /package/build/{services → cjs/services}/activities/iterate.js +0 -0
- /package/build/{services → cjs/services}/activities/trigger.d.ts +0 -0
- /package/build/{services → cjs/services}/activities/worker.d.ts +0 -0
- /package/build/{services → cjs/services}/compiler/index.d.ts +0 -0
- /package/build/{services → cjs/services}/compiler/index.js +0 -0
- /package/build/{services → cjs/services}/compiler/validator.d.ts +0 -0
- /package/build/{services → cjs/services}/compiler/validator.js +0 -0
- /package/build/{services → cjs/services}/connector/clients/ioredis.d.ts +0 -0
- /package/build/{services → cjs/services}/connector/clients/ioredis.js +0 -0
- /package/build/{services → cjs/services}/connector/clients/redis.d.ts +0 -0
- /package/build/{services → cjs/services}/connector/clients/redis.js +0 -0
- /package/build/{services → cjs/services}/connector/index.d.ts +0 -0
- /package/build/{services → cjs/services}/dimension/index.js +0 -0
- /package/build/{services → cjs/services}/durable/asyncLocalStorage.d.ts +0 -0
- /package/build/{services → cjs/services}/durable/asyncLocalStorage.js +0 -0
- /package/build/{services → cjs/services}/durable/client.d.ts +0 -0
- /package/build/{services → cjs/services}/durable/connection.d.ts +0 -0
- /package/build/{services → cjs/services}/durable/factory.d.ts +0 -0
- /package/build/{services → cjs/services}/durable/factory.js +0 -0
- /package/build/{services → cjs/services}/durable/handle.js +0 -0
- /package/build/{services → cjs/services}/durable/index.d.ts +0 -0
- /package/build/{services → cjs/services}/durable/index.js +0 -0
- /package/build/{services → cjs/services}/durable/native.d.ts +0 -0
- /package/build/{services → cjs/services}/durable/native.js +0 -0
- /package/build/{services → cjs/services}/durable/worker.d.ts +0 -0
- /package/build/{services → cjs/services}/durable/worker.js +0 -0
- /package/build/{services → cjs/services}/durable/workflow.d.ts +0 -0
- /package/build/{services → cjs/services}/durable/workflow.js +0 -0
- /package/build/{services → cjs/services}/logger/index.d.ts +0 -0
- /package/build/{services → cjs/services}/logger/index.js +0 -0
- /package/build/{services → cjs/services}/mapper/index.js +0 -0
- /package/build/{services → cjs/services}/pipe/functions/array.d.ts +0 -0
- /package/build/{services → cjs/services}/pipe/functions/array.js +0 -0
- /package/build/{services → cjs/services}/pipe/functions/bitwise.d.ts +0 -0
- /package/build/{services → cjs/services}/pipe/functions/bitwise.js +0 -0
- /package/build/{services → cjs/services}/pipe/functions/conditional.d.ts +0 -0
- /package/build/{services → cjs/services}/pipe/functions/conditional.js +0 -0
- /package/build/{services → cjs/services}/pipe/functions/date.d.ts +0 -0
- /package/build/{services → cjs/services}/pipe/functions/date.js +0 -0
- /package/build/{services → cjs/services}/pipe/functions/index.d.ts +0 -0
- /package/build/{services → cjs/services}/pipe/functions/index.js +0 -0
- /package/build/{services → cjs/services}/pipe/functions/json.d.ts +0 -0
- /package/build/{services → cjs/services}/pipe/functions/json.js +0 -0
- /package/build/{services → cjs/services}/pipe/functions/math.d.ts +0 -0
- /package/build/{services → cjs/services}/pipe/functions/math.js +0 -0
- /package/build/{services → cjs/services}/pipe/functions/number.d.ts +0 -0
- /package/build/{services → cjs/services}/pipe/functions/number.js +0 -0
- /package/build/{services → cjs/services}/pipe/functions/object.d.ts +0 -0
- /package/build/{services → cjs/services}/pipe/functions/object.js +0 -0
- /package/build/{services → cjs/services}/pipe/functions/string.d.ts +0 -0
- /package/build/{services → cjs/services}/pipe/functions/string.js +0 -0
- /package/build/{services → cjs/services}/pipe/functions/symbol.d.ts +0 -0
- /package/build/{services → cjs/services}/pipe/functions/symbol.js +0 -0
- /package/build/{services → cjs/services}/pipe/functions/unary.d.ts +0 -0
- /package/build/{services → cjs/services}/pipe/functions/unary.js +0 -0
- /package/build/{services → cjs/services}/pipe/index.d.ts +0 -0
- /package/build/{services → cjs/services}/pipe/index.js +0 -0
- /package/build/{services → cjs/services}/quorum/index.d.ts +0 -0
- /package/build/{services → cjs/services}/quorum/index.js +0 -0
- /package/build/{services → cjs/services}/reporter/index.d.ts +0 -0
- /package/build/{services → cjs/services}/reporter/index.js +0 -0
- /package/build/{services → cjs/services}/signaler/store.d.ts +0 -0
- /package/build/{services → cjs/services}/signaler/store.js +0 -0
- /package/build/{services → cjs/services}/signaler/stream.d.ts +0 -0
- /package/build/{services → cjs/services}/store/cache.d.ts +0 -0
- /package/build/{services → cjs/services}/store/cache.js +0 -0
- /package/build/{services → cjs/services}/store/clients/ioredis.d.ts +0 -0
- /package/build/{services → cjs/services}/store/clients/ioredis.js +0 -0
- /package/build/{services → cjs/services}/store/clients/redis.d.ts +0 -0
- /package/build/{services → cjs/services}/store/clients/redis.js +0 -0
- /package/build/{services → cjs/services}/stream/clients/ioredis.d.ts +0 -0
- /package/build/{services → cjs/services}/stream/clients/ioredis.js +0 -0
- /package/build/{services → cjs/services}/stream/clients/redis.d.ts +0 -0
- /package/build/{services → cjs/services}/stream/clients/redis.js +0 -0
- /package/build/{services → cjs/services}/stream/index.d.ts +0 -0
- /package/build/{services → cjs/services}/stream/index.js +0 -0
- /package/build/{services → cjs/services}/sub/clients/ioredis.d.ts +0 -0
- /package/build/{services → cjs/services}/sub/clients/ioredis.js +0 -0
- /package/build/{services → cjs/services}/sub/clients/redis.d.ts +0 -0
- /package/build/{services → cjs/services}/sub/clients/redis.js +0 -0
- /package/build/{services → cjs/services}/sub/index.d.ts +0 -0
- /package/build/{services → cjs/services}/sub/index.js +0 -0
- /package/build/{services → cjs/services}/task/index.d.ts +0 -0
- /package/build/{services → cjs/services}/task/index.js +0 -0
- /package/build/{services → cjs/services}/telemetry/index.d.ts +0 -0
- /package/build/{services → cjs/services}/telemetry/index.js +0 -0
- /package/build/{services → cjs/services}/worker/index.d.ts +0 -0
- /package/build/{services → cjs/services}/worker/index.js +0 -0
- /package/build/{types → cjs/types}/activity.js +0 -0
- /package/build/{types → cjs/types}/app.d.ts +0 -0
- /package/build/{types → cjs/types}/app.js +0 -0
- /package/build/{types → cjs/types}/async.d.ts +0 -0
- /package/build/{types → cjs/types}/async.js +0 -0
- /package/build/{types → cjs/types}/cache.d.ts +0 -0
- /package/build/{types → cjs/types}/cache.js +0 -0
- /package/build/{types → cjs/types}/collator.d.ts +0 -0
- /package/build/{types → cjs/types}/collator.js +0 -0
- /package/build/{types → cjs/types}/durable.d.ts +0 -0
- /package/build/{types → cjs/types}/durable.js +0 -0
- /package/build/{types → cjs/types}/hook.d.ts +0 -0
- /package/build/{types → cjs/types}/hook.js +0 -0
- /package/build/{types → cjs/types}/hotmesh.d.ts +0 -0
- /package/build/{types → cjs/types}/hotmesh.js +0 -0
- /package/build/{types → cjs/types}/index.d.ts +0 -0
- /package/build/{types → cjs/types}/index.js +0 -0
- /package/build/{types → cjs/types}/ioredisclient.d.ts +0 -0
- /package/build/{types → cjs/types}/ioredisclient.js +0 -0
- /package/build/{types → cjs/types}/job.d.ts +0 -0
- /package/build/{types → cjs/types}/job.js +0 -0
- /package/build/{types → cjs/types}/logger.d.ts +0 -0
- /package/build/{types → cjs/types}/logger.js +0 -0
- /package/build/{types → cjs/types}/map.d.ts +0 -0
- /package/build/{types → cjs/types}/map.js +0 -0
- /package/build/{types → cjs/types}/pipe.d.ts +0 -0
- /package/build/{types → cjs/types}/pipe.js +0 -0
- /package/build/{types → cjs/types}/quorum.d.ts +0 -0
- /package/build/{types → cjs/types}/quorum.js +0 -0
- /package/build/{types → cjs/types}/redis.d.ts +0 -0
- /package/build/{types → cjs/types}/redis.js +0 -0
- /package/build/{types → cjs/types}/redisclient.d.ts +0 -0
- /package/build/{types → cjs/types}/redisclient.js +0 -0
- /package/build/{types → cjs/types}/serializer.d.ts +0 -0
- /package/build/{types → cjs/types}/serializer.js +0 -0
- /package/build/{types → cjs/types}/stats.d.ts +0 -0
- /package/build/{types → cjs/types}/stats.js +0 -0
- /package/build/{types → cjs/types}/stream.d.ts +0 -0
- /package/build/{types → cjs/types}/stream.js +0 -0
- /package/build/{types → cjs/types}/telemetry.d.ts +0 -0
- /package/build/{types → cjs/types}/telemetry.js +0 -0
- /package/build/{types → cjs/types}/transition.d.ts +0 -0
- /package/build/{types → cjs/types}/transition.js +0 -0
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export { ActivityType, ActivityDataType, ActivityContext, ActivityData, ActivityDuplex, ActivityLeg, ActivityMetadata, Consumes, AwaitActivity, BaseActivity, EmitActivity, WorkerActivity, IterateActivity, TriggerActivity, TriggerActivityStats } from './activity';
|
|
2
|
+
export { App, AppVID, AppTransitions, AppSubscriptions } from './app';
|
|
3
|
+
export { AsyncSignal } from './async';
|
|
4
|
+
export { CacheMode } from './cache';
|
|
5
|
+
export { CollationFaultType, CollationStage } from './collator';
|
|
6
|
+
export { HookCondition, HookConditions, HookGate, HookInterface, HookRule, HookRules, HookSignal } from './hook';
|
|
7
|
+
export { RedisClientType as IORedisClientType, RedisMultiType as IORedisMultiType } from './ioredisclient';
|
|
8
|
+
export { ILogger } from './logger';
|
|
9
|
+
export { JobData, JobsData, JobMetadata, JobOutput, JobState, JobStatus, PartialJobState } from './job';
|
|
10
|
+
export { MappingStatements } from './map';
|
|
11
|
+
export { Pipe, PipeItem, PipeItems } from './pipe';
|
|
12
|
+
export { HotMesh, HotMeshApp, HotMeshApps, HotMeshConfig, HotMeshEngine, RedisConfig, HotMeshGraph, HotMeshManifest, HotMeshSettings, HotMeshWorker } from './hotmesh';
|
|
13
|
+
export { ActivateMessage, JobMessage, JobMessageCallback, PingMessage, PongMessage, QuorumMessage, SubscriptionCallback, ThrottleMessage, WorkMessage } from './quorum';
|
|
14
|
+
export { MultiResponseFlags, RedisClient, RedisMulti } from './redis';
|
|
15
|
+
export { RedisClientType, RedisMultiType } from './redisclient';
|
|
16
|
+
export { JSONSchema, StringAnyType, StringScalarType, StringStringType, SymbolMap, SymbolMaps, SymbolRanges, Symbols, SymbolSets } from './serializer';
|
|
17
|
+
export { AggregatedData, CountByFacet, GetStatsOptions, IdsData, Measure, MeasureIds, MetricTypes, StatType, StatsType, IdsResponse, JobStats, JobStatsInput, JobStatsRange, StatsResponse, Segment, TimeSegment } from './stats';
|
|
18
|
+
export { ReclaimedMessageType, StreamCode, StreamConfig, StreamData, StreamDataType, StreamError, StreamDataResponse, StreamRetryPolicy, StreamRole, StreamStatus } from './stream';
|
|
19
|
+
export { context, Context, Counter, Meter, metrics, propagation, SpanContext, Span, SpanStatus, SpanStatusCode, SpanKind, trace, Tracer, ValueType } from './telemetry';
|
|
20
|
+
export { TransitionMatch, TransitionRule, Transitions } from './transition';
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { CollationFaultType } from './collator';
|
|
2
|
+
export { HookGate } from './hook';
|
|
3
|
+
export { RedisClientType as IORedisClientType } from './ioredisclient';
|
|
4
|
+
export { StreamDataType, StreamRole, StreamStatus } from './stream';
|
|
5
|
+
export { context, metrics, propagation, SpanStatusCode, SpanKind, trace, ValueType } from './telemetry';
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
type JobData = Record<string, unknown | Record<string, unknown>>;
|
|
2
|
+
type JobsData = Record<string, unknown>;
|
|
3
|
+
type ActivityData = {
|
|
4
|
+
data: Record<string, unknown>;
|
|
5
|
+
metadata?: Record<string, unknown>;
|
|
6
|
+
};
|
|
7
|
+
type JobMetadata = {
|
|
8
|
+
key?: string;
|
|
9
|
+
jid: string;
|
|
10
|
+
dad: string;
|
|
11
|
+
aid: string;
|
|
12
|
+
pj?: string;
|
|
13
|
+
pd?: string;
|
|
14
|
+
pa?: string;
|
|
15
|
+
ngn?: string;
|
|
16
|
+
app: string;
|
|
17
|
+
vrs: string;
|
|
18
|
+
tpc: string;
|
|
19
|
+
ts: string;
|
|
20
|
+
jc: string;
|
|
21
|
+
ju: string;
|
|
22
|
+
js: JobStatus;
|
|
23
|
+
atp: string;
|
|
24
|
+
stp: string;
|
|
25
|
+
spn: string;
|
|
26
|
+
trc: string;
|
|
27
|
+
err?: string;
|
|
28
|
+
expire?: number;
|
|
29
|
+
};
|
|
30
|
+
type JobStatus = number;
|
|
31
|
+
type JobState = {
|
|
32
|
+
metadata: JobMetadata;
|
|
33
|
+
data: JobData;
|
|
34
|
+
[activityId: symbol]: {
|
|
35
|
+
input: ActivityData;
|
|
36
|
+
output: ActivityData;
|
|
37
|
+
hook: ActivityData;
|
|
38
|
+
settings: ActivityData;
|
|
39
|
+
errors: ActivityData;
|
|
40
|
+
};
|
|
41
|
+
};
|
|
42
|
+
type JobOutput = {
|
|
43
|
+
metadata: JobMetadata;
|
|
44
|
+
data: JobData;
|
|
45
|
+
};
|
|
46
|
+
type PartialJobState = {
|
|
47
|
+
metadata: JobMetadata | Pick<JobMetadata, 'jid' | 'dad' | 'aid'>;
|
|
48
|
+
data: JobData;
|
|
49
|
+
};
|
|
50
|
+
export { JobState, JobStatus, JobData, JobsData, JobMetadata, PartialJobState, JobOutput };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { JobOutput } from "./job";
|
|
2
|
+
/**
|
|
3
|
+
* The types in this file are used to define those messages that are sent
|
|
4
|
+
* to hotmesh client instances when a new version is about to be activated.
|
|
5
|
+
* These messages serve to coordinate the cache invalidation and switch-over
|
|
6
|
+
* to the new version without any downtime and a coordinating parent server.
|
|
7
|
+
*/
|
|
8
|
+
export type QuorumMessage = PingMessage | PongMessage | ActivateMessage | WorkMessage | JobMessage | ThrottleMessage;
|
|
9
|
+
export interface PingMessage {
|
|
10
|
+
type: 'ping';
|
|
11
|
+
originator: string;
|
|
12
|
+
}
|
|
13
|
+
export interface WorkMessage {
|
|
14
|
+
type: 'work';
|
|
15
|
+
originator: string;
|
|
16
|
+
}
|
|
17
|
+
export interface PongMessage {
|
|
18
|
+
type: 'pong';
|
|
19
|
+
originator: string;
|
|
20
|
+
guid: string;
|
|
21
|
+
}
|
|
22
|
+
export interface ActivateMessage {
|
|
23
|
+
type: 'activate';
|
|
24
|
+
cache_mode: 'nocache' | 'cache';
|
|
25
|
+
until_version: string;
|
|
26
|
+
}
|
|
27
|
+
export interface JobMessage {
|
|
28
|
+
type: 'job';
|
|
29
|
+
topic: string;
|
|
30
|
+
job: JobOutput;
|
|
31
|
+
}
|
|
32
|
+
export interface ThrottleMessage {
|
|
33
|
+
type: 'throttle';
|
|
34
|
+
guid?: string;
|
|
35
|
+
topic?: string;
|
|
36
|
+
throttle: number;
|
|
37
|
+
}
|
|
38
|
+
export interface JobMessageCallback {
|
|
39
|
+
(topic: string, message: JobOutput): void;
|
|
40
|
+
}
|
|
41
|
+
export interface SubscriptionCallback {
|
|
42
|
+
(topic: string, message: Record<string, any>): void;
|
|
43
|
+
}
|
|
44
|
+
export interface QuorumMessageCallback {
|
|
45
|
+
(topic: string, message: QuorumMessage): void;
|
|
46
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { RedisClassType, RedisClientType as RCT, RedisMultiType as RMT, RedisClientOptions as RCO } from './redisclient';
|
|
2
|
+
import { RedisClassType as IORRedisClassType, RedisClientType as IORCT, RedisMultiType as IORMT, RedisClientOptions as IORCO } from './ioredisclient';
|
|
3
|
+
type RedisClass = RedisClassType | IORRedisClassType;
|
|
4
|
+
type RedisClient = RCT | IORCT;
|
|
5
|
+
type RedisMulti = RMT | IORMT;
|
|
6
|
+
type RedisOptions = RCO | IORCO;
|
|
7
|
+
type MultiResponseFlags = (string | number)[];
|
|
8
|
+
export { RedisClass, RedisClient, RedisMulti, RedisOptions, MultiResponseFlags, };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { createClient, RedisClientOptions } from 'redis';
|
|
2
|
+
type RedisClientType = ReturnType<typeof createClient>;
|
|
3
|
+
interface RedisMultiType {
|
|
4
|
+
XADD(key: string, id: string, fields: any): this;
|
|
5
|
+
XACK(key: string, group: string, id: string): this;
|
|
6
|
+
XDEL(key: string, id: string): this;
|
|
7
|
+
HDEL(key: string, itemId: string): this;
|
|
8
|
+
HGET(key: string, itemId: string): this;
|
|
9
|
+
HGETALL(key: string): this;
|
|
10
|
+
HINCRBYFLOAT(key: string, itemId: string, value: number): this;
|
|
11
|
+
HMGET(key: string, itemIds: string[]): this;
|
|
12
|
+
HSET(key: string, values: Record<string, string>): this;
|
|
13
|
+
LRANGE(key: string, start: number, end: number): this;
|
|
14
|
+
RPUSH(key: string, value: string): this;
|
|
15
|
+
ZADD(key: string, values: {
|
|
16
|
+
score: string;
|
|
17
|
+
value: string;
|
|
18
|
+
}): this;
|
|
19
|
+
sendCommand(command: string[]): Promise<any>;
|
|
20
|
+
exec: () => Promise<unknown[]>;
|
|
21
|
+
}
|
|
22
|
+
type RedisClassType = {
|
|
23
|
+
createClient: (options: RedisClientOptions) => any;
|
|
24
|
+
};
|
|
25
|
+
export { RedisClassType, RedisClientType, RedisMultiType, RedisClientOptions, };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
export interface JSONSchema {
|
|
2
|
+
type?: string;
|
|
3
|
+
enum?: string[];
|
|
4
|
+
examples?: any[];
|
|
5
|
+
properties?: {
|
|
6
|
+
[key: string]: JSONSchema;
|
|
7
|
+
};
|
|
8
|
+
items?: JSONSchema;
|
|
9
|
+
description?: string;
|
|
10
|
+
'x-train'?: boolean;
|
|
11
|
+
}
|
|
12
|
+
export type SymbolRanges = {
|
|
13
|
+
[key: string]: number;
|
|
14
|
+
};
|
|
15
|
+
export type Symbols = {
|
|
16
|
+
[key: string]: string;
|
|
17
|
+
};
|
|
18
|
+
export type SymbolSets = {
|
|
19
|
+
[key: string]: {
|
|
20
|
+
[key: string]: string;
|
|
21
|
+
};
|
|
22
|
+
};
|
|
23
|
+
export type StringStringType = {
|
|
24
|
+
[key: string]: string;
|
|
25
|
+
};
|
|
26
|
+
export type StringAnyType = {
|
|
27
|
+
[key: string]: any;
|
|
28
|
+
};
|
|
29
|
+
export type StringScalarType = {
|
|
30
|
+
[key: string]: boolean | number | string;
|
|
31
|
+
};
|
|
32
|
+
export type SymbolMap = Map<string, string>;
|
|
33
|
+
export type SymbolMaps = Map<string, SymbolMap>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
type MetricTypes = 'count' | 'sum' | 'avg' | 'mdn' | 'max' | 'min' | 'index';
|
|
2
|
+
interface StatType {
|
|
3
|
+
target: string;
|
|
4
|
+
metric: MetricTypes;
|
|
5
|
+
value: number | string;
|
|
6
|
+
}
|
|
7
|
+
interface Measure {
|
|
8
|
+
target: string;
|
|
9
|
+
type: string;
|
|
10
|
+
value: number;
|
|
11
|
+
}
|
|
12
|
+
interface Segment {
|
|
13
|
+
time: string;
|
|
14
|
+
count: number;
|
|
15
|
+
measures: Measure[];
|
|
16
|
+
}
|
|
17
|
+
interface StatsType {
|
|
18
|
+
general: StatType[];
|
|
19
|
+
index: StatType[];
|
|
20
|
+
median: StatType[];
|
|
21
|
+
}
|
|
22
|
+
interface JobStats {
|
|
23
|
+
count?: number;
|
|
24
|
+
[field: string]: number;
|
|
25
|
+
}
|
|
26
|
+
interface JobStatsRange {
|
|
27
|
+
[key: string]: JobStats;
|
|
28
|
+
}
|
|
29
|
+
interface JobStatsInput {
|
|
30
|
+
data: Record<string, unknown>;
|
|
31
|
+
range?: string;
|
|
32
|
+
start?: string;
|
|
33
|
+
end?: string;
|
|
34
|
+
sparse?: boolean;
|
|
35
|
+
}
|
|
36
|
+
interface GetStatsOptions {
|
|
37
|
+
key: string;
|
|
38
|
+
granularity: string;
|
|
39
|
+
range?: string;
|
|
40
|
+
start?: string;
|
|
41
|
+
end?: string;
|
|
42
|
+
sparse?: boolean;
|
|
43
|
+
}
|
|
44
|
+
interface StatsResponse {
|
|
45
|
+
key: string;
|
|
46
|
+
granularity: string;
|
|
47
|
+
range: string;
|
|
48
|
+
end: string | Date;
|
|
49
|
+
count: number;
|
|
50
|
+
measures: Measure[];
|
|
51
|
+
segments?: Segment[];
|
|
52
|
+
}
|
|
53
|
+
interface AggregatedData {
|
|
54
|
+
[key: string]: number;
|
|
55
|
+
}
|
|
56
|
+
interface IdsData {
|
|
57
|
+
[target: string]: string[];
|
|
58
|
+
}
|
|
59
|
+
interface MeasureIds {
|
|
60
|
+
time: string;
|
|
61
|
+
target: string;
|
|
62
|
+
count: number;
|
|
63
|
+
type: 'ids';
|
|
64
|
+
ids: string[];
|
|
65
|
+
}
|
|
66
|
+
interface TimeSegment {
|
|
67
|
+
time: string;
|
|
68
|
+
measures: MeasureIds[];
|
|
69
|
+
}
|
|
70
|
+
interface CountByFacet {
|
|
71
|
+
facet: string;
|
|
72
|
+
count: number;
|
|
73
|
+
}
|
|
74
|
+
interface IdsResponse {
|
|
75
|
+
key: string;
|
|
76
|
+
facets: string[];
|
|
77
|
+
granularity: string;
|
|
78
|
+
range: string;
|
|
79
|
+
start: string;
|
|
80
|
+
counts: CountByFacet[];
|
|
81
|
+
segments: TimeSegment[];
|
|
82
|
+
}
|
|
83
|
+
export { StatsType, StatType, MetricTypes, JobStats, JobStatsRange, JobStatsInput, GetStatsOptions, StatsResponse, AggregatedData, Measure, Segment, IdsData, MeasureIds, TimeSegment, IdsResponse, CountByFacet };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
export interface StreamRetryPolicy {
|
|
2
|
+
[key: string]: [number, 'x'];
|
|
3
|
+
}
|
|
4
|
+
export type StreamCode = number;
|
|
5
|
+
export type StreamError = {
|
|
6
|
+
message: string;
|
|
7
|
+
code: number;
|
|
8
|
+
job_id?: string;
|
|
9
|
+
stack?: string;
|
|
10
|
+
name?: string;
|
|
11
|
+
error?: Record<string, unknown>;
|
|
12
|
+
};
|
|
13
|
+
export declare enum StreamStatus {
|
|
14
|
+
SUCCESS = "success",
|
|
15
|
+
ERROR = "error",
|
|
16
|
+
PENDING = "pending"
|
|
17
|
+
}
|
|
18
|
+
export declare enum StreamDataType {
|
|
19
|
+
TIMEHOOK = "timehook",
|
|
20
|
+
WEBHOOK = "webhook",
|
|
21
|
+
AWAIT = "await",
|
|
22
|
+
RESULT = "result",
|
|
23
|
+
WORKER = "worker",
|
|
24
|
+
RESPONSE = "response",
|
|
25
|
+
TRANSITION = "transition"
|
|
26
|
+
}
|
|
27
|
+
export interface StreamData {
|
|
28
|
+
metadata: {
|
|
29
|
+
topic?: string;
|
|
30
|
+
jid?: string;
|
|
31
|
+
dad?: string;
|
|
32
|
+
aid: string;
|
|
33
|
+
trc?: string;
|
|
34
|
+
spn?: string;
|
|
35
|
+
try?: number;
|
|
36
|
+
};
|
|
37
|
+
type?: StreamDataType;
|
|
38
|
+
data: Record<string, unknown>;
|
|
39
|
+
policies?: {
|
|
40
|
+
retry?: StreamRetryPolicy;
|
|
41
|
+
};
|
|
42
|
+
status?: StreamStatus;
|
|
43
|
+
code?: number;
|
|
44
|
+
}
|
|
45
|
+
export interface StreamDataResponse extends StreamData {
|
|
46
|
+
}
|
|
47
|
+
export declare enum StreamRole {
|
|
48
|
+
WORKER = "worker",
|
|
49
|
+
ENGINE = "engine",
|
|
50
|
+
SYSTEM = "system"
|
|
51
|
+
}
|
|
52
|
+
export type ReclaimedMessageType = [
|
|
53
|
+
messageId: string,
|
|
54
|
+
details: [
|
|
55
|
+
key: string,
|
|
56
|
+
value: string
|
|
57
|
+
]
|
|
58
|
+
][];
|
|
59
|
+
export type StreamConfig = {
|
|
60
|
+
namespace: string;
|
|
61
|
+
appId: string;
|
|
62
|
+
guid: string;
|
|
63
|
+
role: StreamRole;
|
|
64
|
+
topic?: string;
|
|
65
|
+
reclaimDelay?: number;
|
|
66
|
+
reclaimCount?: number;
|
|
67
|
+
};
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
export var StreamStatus;
|
|
2
|
+
(function (StreamStatus) {
|
|
3
|
+
StreamStatus["SUCCESS"] = "success";
|
|
4
|
+
StreamStatus["ERROR"] = "error";
|
|
5
|
+
StreamStatus["PENDING"] = "pending";
|
|
6
|
+
})(StreamStatus || (StreamStatus = {}));
|
|
7
|
+
export var StreamDataType;
|
|
8
|
+
(function (StreamDataType) {
|
|
9
|
+
StreamDataType["TIMEHOOK"] = "timehook";
|
|
10
|
+
StreamDataType["WEBHOOK"] = "webhook";
|
|
11
|
+
StreamDataType["AWAIT"] = "await";
|
|
12
|
+
StreamDataType["RESULT"] = "result";
|
|
13
|
+
StreamDataType["WORKER"] = "worker";
|
|
14
|
+
StreamDataType["RESPONSE"] = "response";
|
|
15
|
+
StreamDataType["TRANSITION"] = "transition";
|
|
16
|
+
})(StreamDataType || (StreamDataType = {}));
|
|
17
|
+
export var StreamRole;
|
|
18
|
+
(function (StreamRole) {
|
|
19
|
+
StreamRole["WORKER"] = "worker";
|
|
20
|
+
StreamRole["ENGINE"] = "engine";
|
|
21
|
+
StreamRole["SYSTEM"] = "system";
|
|
22
|
+
})(StreamRole || (StreamRole = {}));
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { context, Context, Counter, Meter, metrics, propagation, SpanContext, Span, SpanStatus, SpanStatusCode, SpanKind, trace, Tracer, ValueType } from '@opentelemetry/api';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { context, metrics, propagation, SpanStatusCode, SpanKind, trace, ValueType } from '@opentelemetry/api';
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { Pipe } from "./pipe";
|
|
2
|
+
export type TransitionMatch = {
|
|
3
|
+
expected: boolean | string | number | null;
|
|
4
|
+
actual: boolean | string | number | null | {
|
|
5
|
+
'@pipe': Pipe;
|
|
6
|
+
};
|
|
7
|
+
};
|
|
8
|
+
export type TransitionRule = {
|
|
9
|
+
gate?: 'and' | 'or';
|
|
10
|
+
code?: string;
|
|
11
|
+
match: Array<TransitionMatch>;
|
|
12
|
+
};
|
|
13
|
+
export type Transitions = {
|
|
14
|
+
[key: string]: {
|
|
15
|
+
[key: string]: TransitionRule;
|
|
16
|
+
};
|
|
17
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/package.json
CHANGED
|
@@ -1,9 +1,14 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hotmeshio/hotmesh",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.5",
|
|
4
4
|
"description": "Durable Workflows",
|
|
5
|
-
"main": "build/index.js",
|
|
6
|
-
"
|
|
5
|
+
"main": "build/cjs/index.js",
|
|
6
|
+
"module": "build/esm/index.js",
|
|
7
|
+
"types": "build/cjs/index.d.ts",
|
|
8
|
+
"exports": {
|
|
9
|
+
"import": "./build/esm/index.js",
|
|
10
|
+
"require": "./build/cjs/index.js"
|
|
11
|
+
},
|
|
7
12
|
"repository": {
|
|
8
13
|
"type": "git",
|
|
9
14
|
"url": "https://github.com/hotmeshio/sdk-typescript.git"
|
|
@@ -14,7 +19,9 @@
|
|
|
14
19
|
},
|
|
15
20
|
"scripts": {
|
|
16
21
|
"clean": "rimraf ./build",
|
|
17
|
-
"build": "tsc --build tsconfig.json",
|
|
22
|
+
"build:cjs": "tsc --build tsconfig.cjs.json",
|
|
23
|
+
"build:esm": "tsc --build tsconfig.esm.json",
|
|
24
|
+
"build": "npm run build:cjs && npm run build:esm",
|
|
18
25
|
"clean-build": "npm run clean && npm run build",
|
|
19
26
|
"lint": "eslint . --ext .ts",
|
|
20
27
|
"lint:fix": "eslint . --fix --ext .ts",
|
|
@@ -52,7 +59,7 @@
|
|
|
52
59
|
"@opentelemetry/api": "^1.4.1",
|
|
53
60
|
"js-yaml": "^4.1.0",
|
|
54
61
|
"ms": "^2.1.3",
|
|
55
|
-
"
|
|
62
|
+
"uuid": "^9.0.1",
|
|
56
63
|
"winston": "^3.8.2"
|
|
57
64
|
},
|
|
58
65
|
"devDependencies": {
|
|
@@ -142,7 +142,8 @@ class Activity {
|
|
|
142
142
|
const durationInSeconds = Pipe.resolve(this.config.sleep, this.context);
|
|
143
143
|
const jobId = this.context.metadata.jid;
|
|
144
144
|
const activityId = this.metadata.aid;
|
|
145
|
-
|
|
145
|
+
const dId = this.metadata.dad;
|
|
146
|
+
await this.engine.task.registerTimeHook(jobId, `${activityId}${dId||''}`, 'sleep', durationInSeconds);
|
|
146
147
|
return jobId;
|
|
147
148
|
}
|
|
148
149
|
}
|
|
@@ -206,6 +207,7 @@ class Activity {
|
|
|
206
207
|
telemetry.setActivityAttributes(attrs);
|
|
207
208
|
return jobStatus as number;
|
|
208
209
|
} catch (error) {
|
|
210
|
+
console.error('this error?', error);
|
|
209
211
|
this.logger.error('engine-process-hook-event-error', error);
|
|
210
212
|
telemetry.setActivityError(error.message);
|
|
211
213
|
throw error;
|
|
@@ -278,12 +280,11 @@ class Activity {
|
|
|
278
280
|
}
|
|
279
281
|
|
|
280
282
|
bindDimensionalAddress(state: StringAnyType) {
|
|
281
|
-
const
|
|
282
|
-
state[`${aid}/output/metadata/dad`] = dad;
|
|
283
|
+
const dad = this.resolveDad();
|
|
284
|
+
state[`${this.metadata.aid}/output/metadata/dad`] = dad;
|
|
283
285
|
}
|
|
284
286
|
|
|
285
287
|
async setState(multi?: RedisMulti): Promise<string> {
|
|
286
|
-
const { id: appId } = await this.engine.getVID();
|
|
287
288
|
const jobId = this.context.metadata.jid;
|
|
288
289
|
this.bindJobMetadata();
|
|
289
290
|
this.bindActivityMetadata();
|
|
@@ -298,7 +299,8 @@ class Activity {
|
|
|
298
299
|
this.metadata.aid,
|
|
299
300
|
...presets
|
|
300
301
|
];
|
|
301
|
-
|
|
302
|
+
const dIds = CollatorService.getDimensionsById([...this.config.ancestors, this.metadata.aid], this.resolveDad());
|
|
303
|
+
return await this.store.setState(state, this.getJobStatus(), jobId, symbolNames, dIds, multi);
|
|
302
304
|
}
|
|
303
305
|
|
|
304
306
|
bindJobMetadata(): void {
|
|
@@ -314,6 +316,7 @@ class Activity {
|
|
|
314
316
|
if (this.status === StreamStatus.ERROR) {
|
|
315
317
|
self.output.metadata.err = JSON.stringify(this.data);
|
|
316
318
|
}
|
|
319
|
+
//todo: verify leg2 never overwrites leg1 `ac`
|
|
317
320
|
self.output.metadata.ac =
|
|
318
321
|
self.output.metadata.au = formatISODate(new Date());
|
|
319
322
|
self.output.metadata.atp = this.config.type;
|
|
@@ -386,10 +389,11 @@ class Activity {
|
|
|
386
389
|
}
|
|
387
390
|
}
|
|
388
391
|
TelemetryService.addTargetTelemetryPaths(consumes, this.config, this.metadata, this.leg);
|
|
389
|
-
|
|
392
|
+
let { dad, jid } = this.context.metadata;
|
|
390
393
|
jobId = jobId || jid;
|
|
391
394
|
//`state` is a flat hash
|
|
392
|
-
const
|
|
395
|
+
const dIds = CollatorService.getDimensionsById([...this.config.ancestors, this.metadata.aid], dad);
|
|
396
|
+
const [state, status] = await this.store.getState(jobId, consumes, dIds);
|
|
393
397
|
//`context` is a tree
|
|
394
398
|
this.context = restoreHierarchy(state) as JobState;
|
|
395
399
|
this.initDimensionalAddress(dad);
|
|
@@ -429,11 +433,26 @@ class Activity {
|
|
|
429
433
|
this.context[this.metadata.aid][type].data = this.data;
|
|
430
434
|
}
|
|
431
435
|
|
|
436
|
+
resolveDad(): string {
|
|
437
|
+
let dad = this.metadata.dad;
|
|
438
|
+
if (this.adjacentIndex > 0) {
|
|
439
|
+
//if adjacent index > 0 the activity is cycling; replace last index with cycle index
|
|
440
|
+
dad = `${dad.substring(0, dad.lastIndexOf(','))},${this.adjacentIndex}`
|
|
441
|
+
}
|
|
442
|
+
return dad;
|
|
443
|
+
}
|
|
444
|
+
|
|
445
|
+
resolveAdjacentDad(): string {
|
|
446
|
+
//concat self and child dimension (all children (leg 1) begin life at 0)
|
|
447
|
+
return `${this.resolveDad()}${DimensionService.getSeed(0)}`;
|
|
448
|
+
};
|
|
449
|
+
|
|
432
450
|
async filterAdjacent(): Promise<StreamData[]> {
|
|
433
451
|
const adjacencyList: StreamData[] = [];
|
|
434
452
|
const transitions = await this.store.getTransitions(await this.engine.getVID());
|
|
435
453
|
const transition = transitions[`.${this.metadata.aid}`];
|
|
436
|
-
|
|
454
|
+
//resolve the dimensional address for adjacent children
|
|
455
|
+
const adjacentDad = this.resolveAdjacentDad();
|
|
437
456
|
if (transition) {
|
|
438
457
|
for (const toActivityId in transition) {
|
|
439
458
|
const transitionRule: boolean | TransitionRule = transition[toActivityId];
|
|
@@ -441,7 +460,7 @@ class Activity {
|
|
|
441
460
|
adjacencyList.push({
|
|
442
461
|
metadata: {
|
|
443
462
|
jid: this.context.metadata.jid,
|
|
444
|
-
dad:
|
|
463
|
+
dad: adjacentDad,
|
|
445
464
|
aid: toActivityId,
|
|
446
465
|
spn: this.context['$self'].output.metadata?.l2s,
|
|
447
466
|
trc: this.context.metadata.trc,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { v4 as uuidv4 } from 'uuid';
|
|
2
2
|
import { DuplicateJobError } from '../../modules/errors';
|
|
3
3
|
import { formatISODate, getTimeSeries } from '../../modules/utils';
|
|
4
4
|
import { Activity } from './activity';
|
|
@@ -161,7 +161,7 @@ class Trigger extends Activity {
|
|
|
161
161
|
|
|
162
162
|
resolveJobId(context: Partial<JobState>): string {
|
|
163
163
|
const jobId = this.config.stats?.id;
|
|
164
|
-
return jobId ? Pipe.resolve(jobId, context) :
|
|
164
|
+
return jobId ? Pipe.resolve(jobId, context) : uuidv4();
|
|
165
165
|
}
|
|
166
166
|
|
|
167
167
|
resolveJobKey(context: Partial<JobState>): string {
|
|
@@ -62,6 +62,7 @@ class Worker extends Activity {
|
|
|
62
62
|
if (error instanceof GetStateError) {
|
|
63
63
|
this.logger.error('worker-get-state-error', error);
|
|
64
64
|
} else {
|
|
65
|
+
console.error(error);
|
|
65
66
|
this.logger.error('worker-process-error', error);
|
|
66
67
|
}
|
|
67
68
|
telemetry.setActivityError(error.message);
|