@hotmeshio/hotmesh 0.8.0 → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (86) hide show
  1. package/.claude/settings.local.json +2 -1
  2. package/README.md +158 -38
  3. package/build/package.json +62 -67
  4. package/build/services/activities/activity.d.ts +58 -7
  5. package/build/services/activities/activity.js +66 -37
  6. package/build/services/activities/await.d.ts +101 -0
  7. package/build/services/activities/await.js +101 -0
  8. package/build/services/activities/cycle.d.ts +82 -0
  9. package/build/services/activities/cycle.js +86 -8
  10. package/build/services/activities/hook.d.ts +139 -1
  11. package/build/services/activities/hook.js +140 -2
  12. package/build/services/activities/interrupt.d.ts +112 -0
  13. package/build/services/activities/interrupt.js +118 -5
  14. package/build/services/activities/signal.d.ts +108 -3
  15. package/build/services/activities/signal.js +113 -8
  16. package/build/services/activities/trigger.d.ts +56 -4
  17. package/build/services/activities/trigger.js +119 -35
  18. package/build/services/activities/worker.d.ts +107 -0
  19. package/build/services/activities/worker.js +107 -0
  20. package/build/services/collator/index.d.ts +3 -15
  21. package/build/services/collator/index.js +7 -34
  22. package/build/services/engine/index.d.ts +18 -2
  23. package/build/services/engine/index.js +14 -4
  24. package/build/services/exporter/index.d.ts +2 -0
  25. package/build/services/exporter/index.js +1 -0
  26. package/build/services/hotmesh/index.d.ts +471 -236
  27. package/build/services/hotmesh/index.js +473 -238
  28. package/build/services/memflow/client.js +2 -2
  29. package/build/services/memflow/handle.js +1 -1
  30. package/build/services/memflow/index.d.ts +1 -1
  31. package/build/services/memflow/index.js +1 -1
  32. package/build/services/memflow/workflow/all.d.ts +28 -3
  33. package/build/services/memflow/workflow/all.js +28 -3
  34. package/build/services/memflow/workflow/context.d.ts +44 -1
  35. package/build/services/memflow/workflow/context.js +44 -1
  36. package/build/services/memflow/workflow/didRun.d.ts +23 -3
  37. package/build/services/memflow/workflow/didRun.js +23 -3
  38. package/build/services/memflow/workflow/emit.d.ts +43 -4
  39. package/build/services/memflow/workflow/emit.js +43 -4
  40. package/build/services/memflow/workflow/enrich.d.ts +32 -4
  41. package/build/services/memflow/workflow/enrich.js +32 -4
  42. package/build/services/memflow/workflow/entityMethods.d.ts +54 -7
  43. package/build/services/memflow/workflow/entityMethods.js +54 -7
  44. package/build/services/memflow/workflow/execChild.d.ts +96 -8
  45. package/build/services/memflow/workflow/execChild.js +96 -8
  46. package/build/services/memflow/workflow/execHook.d.ts +54 -39
  47. package/build/services/memflow/workflow/execHook.js +52 -38
  48. package/build/services/memflow/workflow/execHookBatch.d.ts +82 -29
  49. package/build/services/memflow/workflow/execHookBatch.js +80 -28
  50. package/build/services/memflow/workflow/hook.d.ts +68 -3
  51. package/build/services/memflow/workflow/hook.js +69 -4
  52. package/build/services/memflow/workflow/index.d.ts +65 -10
  53. package/build/services/memflow/workflow/index.js +65 -10
  54. package/build/services/memflow/workflow/interrupt.d.ts +50 -4
  55. package/build/services/memflow/workflow/interrupt.js +50 -4
  56. package/build/services/memflow/workflow/interruption.d.ts +49 -16
  57. package/build/services/memflow/workflow/interruption.js +49 -16
  58. package/build/services/memflow/workflow/isSideEffectAllowed.d.ts +21 -4
  59. package/build/services/memflow/workflow/isSideEffectAllowed.js +21 -4
  60. package/build/services/memflow/workflow/proxyActivities.d.ts +70 -42
  61. package/build/services/memflow/workflow/proxyActivities.js +70 -42
  62. package/build/services/memflow/workflow/random.d.ts +33 -3
  63. package/build/services/memflow/workflow/random.js +33 -3
  64. package/build/services/memflow/workflow/searchMethods.d.ts +49 -2
  65. package/build/services/memflow/workflow/searchMethods.js +49 -2
  66. package/build/services/memflow/workflow/signal.d.ts +51 -22
  67. package/build/services/memflow/workflow/signal.js +52 -23
  68. package/build/services/memflow/workflow/sleepFor.d.ts +57 -18
  69. package/build/services/memflow/workflow/sleepFor.js +57 -18
  70. package/build/services/memflow/workflow/trace.d.ts +39 -6
  71. package/build/services/memflow/workflow/trace.js +39 -6
  72. package/build/services/memflow/workflow/waitFor.d.ts +55 -18
  73. package/build/services/memflow/workflow/waitFor.js +55 -18
  74. package/build/services/store/index.d.ts +1 -1
  75. package/build/services/store/providers/postgres/postgres.d.ts +1 -1
  76. package/build/services/store/providers/postgres/postgres.js +4 -3
  77. package/build/services/telemetry/index.js +6 -0
  78. package/build/types/activity.d.ts +1 -1
  79. package/build/types/hotmesh.d.ts +1 -1
  80. package/build/types/job.d.ts +1 -1
  81. package/build/types/memflow.d.ts +1 -1
  82. package/build/types/quorum.d.ts +2 -2
  83. package/build/vitest.config.d.ts +2 -0
  84. package/build/vitest.config.js +18 -0
  85. package/package.json +62 -67
  86. package/vitest.config.ts +17 -0
@@ -183,7 +183,7 @@ class EngineService {
183
183
  * @private
184
184
  */
185
185
  async processWebHooks() {
186
- this.taskService.processWebHooks(this.hook.bind(this));
186
+ this.taskService.processWebHooks(this.signal.bind(this));
187
187
  }
188
188
  /**
189
189
  * @private
@@ -457,11 +457,17 @@ class EngineService {
457
457
  //todo: do not allow scrubbing of non-existent or actively running job
458
458
  await this.store.scrub(jobId);
459
459
  }
460
- // ****************** `HOOK` ACTIVITY RE-ENTRY POINT *****************
460
+ // ****************** `SIGNAL` ACTIVITY RE-ENTRY POINT ****************
461
461
  /**
462
+ * Delivers a signal (data payload) to a paused hook activity,
463
+ * resuming its Leg 2 execution. The `topic` must match a hook rule
464
+ * defined in the YAML graph's `hooks` section. The engine locates
465
+ * the target activity and dimension for reentry based on the hook
466
+ * rule's match conditions.
467
+ *
462
468
  * @private
463
469
  */
464
- async hook(topic, data, status = stream_1.StreamStatus.SUCCESS, code = 200, transaction) {
470
+ async signal(topic, data, status = stream_1.StreamStatus.SUCCESS, code = 200, transaction) {
465
471
  const hookRule = await this.taskService.getHookRule(topic);
466
472
  const [aid] = await this.getSchema(`.${hookRule.to}`);
467
473
  const streamData = {
@@ -503,9 +509,13 @@ class EngineService {
503
509
  await this.router?.publishMessage(null, streamData);
504
510
  }
505
511
  /**
512
+ * Fan-out variant of `signal()` that delivers data to **all**
513
+ * paused workflows matching a search query. Useful for resuming
514
+ * a batch of workflows waiting on the same external event.
515
+ *
506
516
  * @private
507
517
  */
508
- async hookAll(hookTopic, data, keyResolver, queryFacets = []) {
518
+ async signalAll(hookTopic, data, keyResolver, queryFacets = []) {
509
519
  const config = await this.getVID();
510
520
  const hookRule = await this.taskService.getHookRule(hookTopic);
511
521
  if (hookRule) {
@@ -10,8 +10,10 @@ import { StringStringType, Symbols } from '../../types/serializer';
10
10
  declare class ExporterService {
11
11
  appId: string;
12
12
  logger: ILogger;
13
+ /** @hidden */
13
14
  store: StoreService<ProviderClient, ProviderTransaction>;
14
15
  symbols: Promise<Symbols> | Symbols;
16
+ /** @hidden */
15
17
  constructor(appId: string, store: StoreService<ProviderClient, ProviderTransaction>, logger: ILogger);
16
18
  /**
17
19
  * Convert the job hash into a JobExport object.
@@ -9,6 +9,7 @@ const serializer_1 = require("../serializer");
9
9
  * includes dependency list
10
10
  */
11
11
  class ExporterService {
12
+ /** @hidden */
12
13
  constructor(appId, store, logger) {
13
14
  this.appId = appId;
14
15
  this.logger = logger;