@flowcore/pathways 0.10.0 → 0.12.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 (49) hide show
  1. package/CHANGELOG.md +98 -55
  2. package/README.md +128 -124
  3. package/esm/common/index.d.ts.map +1 -1
  4. package/esm/contracts/index.d.ts.map +1 -1
  5. package/esm/mod.d.ts.map +1 -1
  6. package/esm/pathways/builder.d.ts +63 -9
  7. package/esm/pathways/builder.d.ts.map +1 -1
  8. package/esm/pathways/builder.js +203 -41
  9. package/esm/pathways/index.d.ts.map +1 -1
  10. package/esm/pathways/internal-pathway.state.d.ts.map +1 -1
  11. package/esm/pathways/kv/bun-kv-adapter.d.ts.map +1 -1
  12. package/esm/pathways/kv/kv-adapter.d.ts +2 -2
  13. package/esm/pathways/kv/kv-adapter.d.ts.map +1 -1
  14. package/esm/pathways/kv/node-kv-adapter.d.ts.map +1 -1
  15. package/esm/pathways/kv/node-kv-adapter.js +1 -1
  16. package/esm/pathways/logger.js +7 -7
  17. package/esm/pathways/postgres/index.d.ts.map +1 -1
  18. package/esm/pathways/postgres/postgres-adapter.d.ts.map +1 -1
  19. package/esm/pathways/postgres/postgres-adapter.js +3 -2
  20. package/esm/pathways/session-pathway.d.ts.map +1 -1
  21. package/esm/pathways/session-pathway.js +3 -3
  22. package/esm/pathways/types.d.ts +7 -2
  23. package/esm/pathways/types.d.ts.map +1 -1
  24. package/esm/router/index.d.ts.map +1 -1
  25. package/esm/router/index.js +4 -4
  26. package/package.json +1 -1
  27. package/script/common/index.d.ts.map +1 -1
  28. package/script/contracts/index.d.ts.map +1 -1
  29. package/script/mod.d.ts.map +1 -1
  30. package/script/pathways/builder.d.ts +63 -9
  31. package/script/pathways/builder.d.ts.map +1 -1
  32. package/script/pathways/builder.js +205 -42
  33. package/script/pathways/index.d.ts.map +1 -1
  34. package/script/pathways/internal-pathway.state.d.ts.map +1 -1
  35. package/script/pathways/kv/bun-kv-adapter.d.ts.map +1 -1
  36. package/script/pathways/kv/kv-adapter.d.ts +2 -2
  37. package/script/pathways/kv/kv-adapter.d.ts.map +1 -1
  38. package/script/pathways/kv/node-kv-adapter.d.ts.map +1 -1
  39. package/script/pathways/kv/node-kv-adapter.js +1 -1
  40. package/script/pathways/logger.js +7 -7
  41. package/script/pathways/postgres/index.d.ts.map +1 -1
  42. package/script/pathways/postgres/postgres-adapter.d.ts.map +1 -1
  43. package/script/pathways/postgres/postgres-adapter.js +3 -2
  44. package/script/pathways/session-pathway.d.ts.map +1 -1
  45. package/script/pathways/session-pathway.js +3 -3
  46. package/script/pathways/types.d.ts +7 -2
  47. package/script/pathways/types.d.ts.map +1 -1
  48. package/script/router/index.d.ts.map +1 -1
  49. package/script/router/index.js +4 -4
@@ -89,6 +89,11 @@ export interface EventMetadata extends Record<string, unknown> {
89
89
  * @template EventPayload The type of the event payload
90
90
  */
91
91
  export type SendWebhook<EventPayload> = (payload: EventPayload, metadata?: EventMetadata, options?: WebhookSendOptions) => Promise<string>;
92
+ /**
93
+ * Function type for sending batch events to a webhook
94
+ * @template EventPayload The type of the event payload
95
+ */
96
+ export type SendWebhookBatch<EventPayload> = (payload: EventPayload[], metadata?: EventMetadata, options?: WebhookSendOptions) => Promise<string[]>;
92
97
  /**
93
98
  * Function type for sending a file to a webhook
94
99
  */
@@ -108,12 +113,12 @@ export type PathwayState = {
108
113
  * @param eventId The ID of the event to check
109
114
  * @returns Boolean indicating if the event has been processed
110
115
  */
111
- isProcessed: (eventId: string) => (boolean | Promise<boolean>);
116
+ isProcessed: (eventId: string) => boolean | Promise<boolean>;
112
117
  /**
113
118
  * Marks an event as processed
114
119
  * @param eventId The ID of the event to mark as processed
115
120
  */
116
- setProcessed: (eventId: string) => (void | Promise<void>);
121
+ setProcessed: (eventId: string) => void | Promise<void>;
117
122
  };
118
123
  /**
119
124
  * Options for pathway writes, extending WebhookSendOptions
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/pathways/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,KAAK,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAA;AAEzF;;;GAGG;AACH,KAAK,uBAAuB,CAAC,CAAC,SAAS,MAAM,IAAI,CAAC,GAAG;IACnD,QAAQ,CAAC,yBAAyB,EAAE,wGAAwG,CAAA;CAC7I,CAAA;AAED;;;;;GAKG;AACH,MAAM,WAAW,eAAe,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,OAAO;IACpF;;OAEG;IACH,QAAQ,EAAE,CAAC,CAAA;IAEX;;OAEG;IACH,SAAS,EAAE,CAAC,CAAA;IAEZ;;OAEG;IACH,MAAM,EAAE,CAAC,CAAA;IAET;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;IAElB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAA;IAEnB;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAA;IAErB;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAA;IAE3B;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;IAElB;;OAEG;IACH,aAAa,CAAC,EAAE,OAAO,CAAA;CACxB;AAED;;;;GAIG;AACH,MAAM,MAAM,UAAU,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,IAAI,GAAG,CAAC,IAAI,CAAC,EAAE,CAAA;AAExE;;GAEG;AACH,MAAM,WAAW,aAAc,SAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAAG;AAEjE;;;GAGG;AACH,MAAM,MAAM,WAAW,CAAC,YAAY,IAAI,CAAC,OAAO,EAAE,YAAY,EAAE,QAAQ,CAAC,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE,kBAAkB,KAAK,OAAO,CAAC,MAAM,CAAC,CAAA;AAE1I;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,EAAE,eAAe,EAAE,QAAQ,CAAC,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE,kBAAkB,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC,CAAA;AAElI;;;;GAIG;AACH,MAAM,MAAM,eAAe,CAAC,CAAC,SAAS,MAAM,EAAE,UAAU,SAAS,OAAO,IAAI,UAAU,SAAS,KAAK,GAAG,uBAAuB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;AAErI;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG;IACzB;;;;OAIG;IACH,WAAW,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAA;IAE9D;;;OAGG;IACH,YAAY,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAA;CAC1D,CAAA;AAED;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAAG,kBAAkB,GAAG;IACrD;;OAEG;IACH,aAAa,CAAC,EAAE,OAAO,CAAA;IAEvB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAEhC;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAA;IAE7B;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,CAAA"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/pathways/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,KAAK,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAA;AAEzF;;;GAGG;AACH,KAAK,uBAAuB,CAAC,CAAC,SAAS,MAAM,IAAI,CAAC,GAAG;IACnD,QAAQ,CAAC,yBAAyB,EAChC,wGAAwG,CAAA;CAC3G,CAAA;AAED;;;;;GAKG;AACH,MAAM,WAAW,eAAe,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,OAAO;IACpF;;OAEG;IACH,QAAQ,EAAE,CAAC,CAAA;IAEX;;OAEG;IACH,SAAS,EAAE,CAAC,CAAA;IAEZ;;OAEG;IACH,MAAM,EAAE,CAAC,CAAA;IAET;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;IAElB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAA;IAEnB;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAA;IAErB;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAA;IAE3B;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;IAElB;;OAEG;IACH,aAAa,CAAC,EAAE,OAAO,CAAA;CACxB;AAED;;;;GAIG;AACH,MAAM,MAAM,UAAU,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,IAAI,GAAG,CAAC,IAAI,CAAC,EAAE,CAAA;AAExE;;GAEG;AACH,MAAM,WAAW,aAAc,SAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAAG;AAEjE;;;GAGG;AACH,MAAM,MAAM,WAAW,CAAC,YAAY,IAAI,CACtC,OAAO,EAAE,YAAY,EACrB,QAAQ,CAAC,EAAE,aAAa,EACxB,OAAO,CAAC,EAAE,kBAAkB,KACzB,OAAO,CAAC,MAAM,CAAC,CAAA;AAEpB;;;GAGG;AACH,MAAM,MAAM,gBAAgB,CAAC,YAAY,IAAI,CAC3C,OAAO,EAAE,YAAY,EAAE,EACvB,QAAQ,CAAC,EAAE,aAAa,EACxB,OAAO,CAAC,EAAE,kBAAkB,KACzB,OAAO,CAAC,MAAM,EAAE,CAAC,CAAA;AAEtB;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,CACzB,OAAO,EAAE,eAAe,EACxB,QAAQ,CAAC,EAAE,aAAa,EACxB,OAAO,CAAC,EAAE,kBAAkB,KACzB,OAAO,CAAC,MAAM,EAAE,CAAC,CAAA;AAEtB;;;;GAIG;AACH,MAAM,MAAM,eAAe,CAAC,CAAC,SAAS,MAAM,EAAE,UAAU,SAAS,OAAO,IAAI,UAAU,SAAS,KAAK,GAChG,uBAAuB,CAAC,CAAC,CAAC,GAC1B,CAAC,CAAA;AAEL;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG;IACzB;;;;OAIG;IACH,WAAW,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IAE5D;;;OAGG;IACH,YAAY,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CACxD,CAAA;AAED;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAAG,kBAAkB,GAAG;IACrD;;OAEG;IACH,aAAa,CAAC,EAAE,OAAO,CAAA;IAEvB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAEhC;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAA;IAE7B;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/router/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AAErE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAC3D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAA;AAGnD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AACH,qBAAa,aAAa;IAatB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAb5B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAEhC;;;;;;;OAOG;gBAGgB,QAAQ,EAAE,eAAe,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,EAC9C,SAAS,EAAE,MAAM,EAClC,MAAM,CAAC,EAAE,MAAM;IAajB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6CG;IACG,YAAY,CAAC,KAAK,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;CAkDvH"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/router/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AAErE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAC3D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAA;AAGnD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AACH,qBAAa,aAAa;IAatB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAb5B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAQ;IAE/B;;;;;;;OAOG;gBAGgB,QAAQ,EAAE,eAAe,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,EAC9C,SAAS,EAAE,MAAM,EAClC,MAAM,CAAC,EAAE,MAAM;IAajB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6CG;IACG,YAAY,CAChB,KAAK,EAAE,mBAAmB,EAC1B,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;CAkDlD"}
@@ -145,7 +145,7 @@ class PathwayRouter {
145
145
  };
146
146
  const pathwayKey = `${compatibleEvent.flowType}/${compatibleEvent.eventType}`;
147
147
  this.logger.debug(`Processing event for pathway: ${pathwayKey}`, {
148
- eventId: compatibleEvent.eventId
148
+ eventId: compatibleEvent.eventId,
149
149
  });
150
150
  const pathway = this.pathways.get(pathwayKey);
151
151
  if (!pathway) {
@@ -156,19 +156,19 @@ class PathwayRouter {
156
156
  try {
157
157
  this.logger.debug(`Delegating event processing to pathway handler`, {
158
158
  pathwayKey,
159
- eventId: compatibleEvent.eventId
159
+ eventId: compatibleEvent.eventId,
160
160
  });
161
161
  await this.pathways.process(pathwayKey, compatibleEvent);
162
162
  this.logger.debug(`Event successfully processed through pathway`, {
163
163
  pathwayKey,
164
- eventId: compatibleEvent.eventId
164
+ eventId: compatibleEvent.eventId,
165
165
  });
166
166
  return { success: true, message: `Event processed through pathway ${pathwayKey}` };
167
167
  }
168
168
  catch (error) {
169
169
  const errorObj = error instanceof Error ? error : new Error(String(error));
170
170
  this.logger.error(`Error processing pathway ${pathwayKey}`, errorObj, {
171
- eventId: compatibleEvent.eventId
171
+ eventId: compatibleEvent.eventId,
172
172
  });
173
173
  // Rethrow the error with additional context
174
174
  throw new Error(`Failed to process event in pathway ${pathwayKey}: ${errorObj.message}`);