@flowcore/pathways 0.13.2 → 0.15.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.
- package/CHANGELOG.md +29 -0
- package/README.md +48 -45
- package/esm/contracts/event.d.ts +11 -19
- package/esm/contracts/event.d.ts.map +1 -1
- package/esm/contracts/event.js +1 -15
- package/esm/pathways/builder.d.ts +26 -18
- package/esm/pathways/builder.d.ts.map +1 -1
- package/esm/pathways/builder.js +57 -117
- package/esm/pathways/session-pathway.d.ts +5 -2
- package/esm/pathways/session-pathway.d.ts.map +1 -1
- package/esm/pathways/session-pathway.js +1 -1
- package/esm/pathways/types.d.ts +20 -3
- package/esm/pathways/types.d.ts.map +1 -1
- package/esm/pathways/types.js +18 -1
- package/package.json +4 -3
- package/script/contracts/event.d.ts +11 -19
- package/script/contracts/event.d.ts.map +1 -1
- package/script/contracts/event.js +0 -16
- package/script/pathways/builder.d.ts +26 -18
- package/script/pathways/builder.d.ts.map +1 -1
- package/script/pathways/builder.js +57 -117
- package/script/pathways/session-pathway.d.ts +5 -2
- package/script/pathways/session-pathway.d.ts.map +1 -1
- package/script/pathways/session-pathway.js +1 -1
- package/script/pathways/types.d.ts +20 -3
- package/script/pathways/types.d.ts.map +1 -1
- package/script/pathways/types.js +19 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,34 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.15.0](https://github.com/flowcore-io/flowcore-pathways/compare/v0.14.0...v0.15.0) (2025-05-27)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### Features
|
|
7
|
+
|
|
8
|
+
* file writer + changes to write and writeBatch args ([5cbbb8f](https://github.com/flowcore-io/flowcore-pathways/commit/5cbbb8f83c5b8cdba11436565c4d36c1ad3faa61))
|
|
9
|
+
* unified write method ([19f00bd](https://github.com/flowcore-io/flowcore-pathways/commit/19f00bd550d5b167e0104d9c8ef5a2751a909041))
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
### Bug Fixes
|
|
13
|
+
|
|
14
|
+
* fix session pathway ([5b8b1a0](https://github.com/flowcore-io/flowcore-pathways/commit/5b8b1a0b846f97adb679ce79ddd61bdc8868caf9))
|
|
15
|
+
* fix types ([2235058](https://github.com/flowcore-io/flowcore-pathways/commit/22350588845db0a1e320d80928653210048b9a29))
|
|
16
|
+
* update readme ([2285c96](https://github.com/flowcore-io/flowcore-pathways/commit/2285c960d9f3d95c09092c91ab8b93b4fc98a94f))
|
|
17
|
+
* update tests and readme ([c3af713](https://github.com/flowcore-io/flowcore-pathways/commit/c3af7133196bb5da5cf7f342c2922bb7ad778fe9))
|
|
18
|
+
|
|
19
|
+
## [0.14.0](https://github.com/flowcore-io/flowcore-pathways/compare/v0.13.2...v0.14.0) (2025-05-23)
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
### Features
|
|
23
|
+
|
|
24
|
+
* switch from typebox to zod ([e20e8f8](https://github.com/flowcore-io/flowcore-pathways/commit/e20e8f81a9cf68eaa598be5d43ef34f346f136ea))
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
### Bug Fixes
|
|
28
|
+
|
|
29
|
+
* fix tests ([05496b9](https://github.com/flowcore-io/flowcore-pathways/commit/05496b993669449d8bfe758e2647d4f2a2dbbf06))
|
|
30
|
+
* set defaults on write and process ([c01ac59](https://github.com/flowcore-io/flowcore-pathways/commit/c01ac59cd4097d832c009e90e7259644e84a9612))
|
|
31
|
+
|
|
3
32
|
## [0.13.2](https://github.com/flowcore-io/flowcore-pathways/compare/v0.13.1...v0.13.2) (2025-05-14)
|
|
4
33
|
|
|
5
34
|
|
package/README.md
CHANGED
|
@@ -55,14 +55,14 @@ yarn add @flowcore/pathways
|
|
|
55
55
|
Here's a basic example to get you started with Flowcore Pathways:
|
|
56
56
|
|
|
57
57
|
```typescript
|
|
58
|
-
import {
|
|
58
|
+
import { z } from "zod"
|
|
59
59
|
import { PathwaysBuilder } from "@flowcore/pathways"
|
|
60
60
|
|
|
61
61
|
// Define your event schema
|
|
62
|
-
const userSchema =
|
|
63
|
-
id:
|
|
64
|
-
name:
|
|
65
|
-
email:
|
|
62
|
+
const userSchema = z.object({
|
|
63
|
+
id: z.string(),
|
|
64
|
+
name: z.string(),
|
|
65
|
+
email: z.string(),
|
|
66
66
|
})
|
|
67
67
|
|
|
68
68
|
// Create a pathways builder
|
|
@@ -88,9 +88,11 @@ pathways
|
|
|
88
88
|
|
|
89
89
|
// You can write to another pathway if needed
|
|
90
90
|
await pathways.write("notifications/sent", {
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
91
|
+
data: {
|
|
92
|
+
userId: event.payload.id,
|
|
93
|
+
message: `Welcome ${event.payload.name}!`,
|
|
94
|
+
channel: "email",
|
|
95
|
+
},
|
|
94
96
|
})
|
|
95
97
|
})
|
|
96
98
|
```
|
|
@@ -130,17 +132,17 @@ const pathways = new PathwaysBuilder({
|
|
|
130
132
|
Register pathways with their schemas for type-safe event handling:
|
|
131
133
|
|
|
132
134
|
```typescript
|
|
133
|
-
import {
|
|
135
|
+
import { z } from "zod"
|
|
134
136
|
|
|
135
137
|
// Define your event schema
|
|
136
|
-
const orderSchema =
|
|
137
|
-
orderId:
|
|
138
|
-
userId:
|
|
139
|
-
total:
|
|
140
|
-
items:
|
|
141
|
-
|
|
142
|
-
id:
|
|
143
|
-
quantity:
|
|
138
|
+
const orderSchema = z.object({
|
|
139
|
+
orderId: z.string(),
|
|
140
|
+
userId: z.string(),
|
|
141
|
+
total: z.number(),
|
|
142
|
+
items: z.array(
|
|
143
|
+
z.Object({
|
|
144
|
+
id: z.string(),
|
|
145
|
+
quantity: z.number(),
|
|
144
146
|
}),
|
|
145
147
|
),
|
|
146
148
|
})
|
|
@@ -182,31 +184,32 @@ Send events to pathways:
|
|
|
182
184
|
```typescript
|
|
183
185
|
// Basic write
|
|
184
186
|
const eventId = await pathways.write("order/placed", {
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
187
|
+
data: {
|
|
188
|
+
orderId: "ord-123",
|
|
189
|
+
userId: "user-456",
|
|
190
|
+
total: 99.99,
|
|
191
|
+
items: [
|
|
192
|
+
{ id: "item-1", quantity: 2 },
|
|
193
|
+
],
|
|
194
|
+
},
|
|
191
195
|
})
|
|
192
196
|
|
|
193
197
|
// Write with metadata
|
|
194
|
-
const eventId2 = await pathways.write(
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
{
|
|
198
|
+
const eventId2 = await pathways.write("order/placed", {
|
|
199
|
+
data: orderData,
|
|
200
|
+
metadata: {
|
|
198
201
|
correlationId: "corr-789",
|
|
199
202
|
source: "checkout-service",
|
|
200
203
|
},
|
|
201
|
-
)
|
|
204
|
+
})
|
|
202
205
|
|
|
203
206
|
// Fire-and-forget mode (doesn't wait for processing)
|
|
204
|
-
const eventId3 = await pathways.write(
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
)
|
|
207
|
+
const eventId3 = await pathways.write("order/placed", {
|
|
208
|
+
data: orderData,
|
|
209
|
+
options: {
|
|
210
|
+
fireAndForget: true,
|
|
211
|
+
},
|
|
212
|
+
})
|
|
210
213
|
```
|
|
211
214
|
|
|
212
215
|
### Error Handling
|
|
@@ -486,19 +489,19 @@ Events written through a session builder automatically include the session ID:
|
|
|
486
489
|
```typescript
|
|
487
490
|
// Write an event with session context
|
|
488
491
|
await session.write("order/placed", {
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
492
|
+
data: {
|
|
493
|
+
orderId: "ord-123",
|
|
494
|
+
userId: "user-456",
|
|
495
|
+
total: 99.99,
|
|
496
|
+
items: [{ id: "item-1", quantity: 2 }],
|
|
497
|
+
},
|
|
493
498
|
})
|
|
494
499
|
|
|
495
500
|
// You can override the session ID for a specific write
|
|
496
|
-
await session.write(
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
{ sessionId: "different-session" },
|
|
501
|
-
)
|
|
501
|
+
await session.write("order/placed", {
|
|
502
|
+
data: orderData,
|
|
503
|
+
options: { sessionId: "different-session" },
|
|
504
|
+
})
|
|
502
505
|
```
|
|
503
506
|
|
|
504
507
|
#### Session ID in Audit Events
|
|
@@ -513,7 +516,7 @@ pathways.withAudit((path, event) => {
|
|
|
513
516
|
})
|
|
514
517
|
|
|
515
518
|
// Now when writing events through a session
|
|
516
|
-
await session.write("order/placed", orderData)
|
|
519
|
+
await session.write("order/placed", { data: orderData })
|
|
517
520
|
// The session ID is automatically included in the audit metadata
|
|
518
521
|
```
|
|
519
522
|
|
package/esm/contracts/event.d.ts
CHANGED
|
@@ -1,20 +1,12 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
metadata: TRecord<TString, TUnknown>;
|
|
13
|
-
payload: TRecord<TString, TUnknown>;
|
|
14
|
-
validTime: TString;
|
|
15
|
-
}>;
|
|
16
|
-
/**
|
|
17
|
-
* The type for an event
|
|
18
|
-
*/
|
|
19
|
-
export type FlowcoreEvent = Static<typeof FlowcoreEventSchema>;
|
|
1
|
+
export interface FlowcoreEvent<Payload = unknown, Metadata = Record<string, unknown>> {
|
|
2
|
+
eventId: string;
|
|
3
|
+
timeBucket: string;
|
|
4
|
+
tenant: string;
|
|
5
|
+
dataCoreId: string;
|
|
6
|
+
flowType: string;
|
|
7
|
+
eventType: string;
|
|
8
|
+
metadata: Metadata;
|
|
9
|
+
payload: Payload;
|
|
10
|
+
validTime: string;
|
|
11
|
+
}
|
|
20
12
|
//# sourceMappingURL=event.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event.d.ts","sourceRoot":"","sources":["../../src/contracts/event.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"event.d.ts","sourceRoot":"","sources":["../../src/contracts/event.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,aAAa,CAAC,OAAO,GAAG,OAAO,EAAE,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAClF,OAAO,EAAE,MAAM,CAAA;IACf,UAAU,EAAE,MAAM,CAAA;IAClB,MAAM,EAAE,MAAM,CAAA;IACd,UAAU,EAAE,MAAM,CAAA;IAClB,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,QAAQ,CAAA;IAClB,OAAO,EAAE,OAAO,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;CAClB"}
|
package/esm/contracts/event.js
CHANGED
|
@@ -1,15 +1 @@
|
|
|
1
|
-
|
|
2
|
-
/**
|
|
3
|
-
* The schema for an event
|
|
4
|
-
*/
|
|
5
|
-
export const FlowcoreEventSchema = Type.Object({
|
|
6
|
-
eventId: Type.String(),
|
|
7
|
-
timeBucket: Type.String(),
|
|
8
|
-
tenant: Type.String(),
|
|
9
|
-
dataCoreId: Type.String(),
|
|
10
|
-
flowType: Type.String(),
|
|
11
|
-
eventType: Type.String(),
|
|
12
|
-
metadata: Type.Record(Type.String(), Type.Unknown()),
|
|
13
|
-
payload: Type.Record(Type.String(), Type.Unknown()),
|
|
14
|
-
validTime: Type.String(),
|
|
15
|
-
});
|
|
1
|
+
export {};
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import { type
|
|
1
|
+
import { type AnyZodObject, z } from "zod";
|
|
2
2
|
import type { WebhookSendOptions } from "@flowcore/sdk-transformer-core";
|
|
3
3
|
import type { FlowcoreEvent } from "../contracts/event.js";
|
|
4
4
|
import type { Logger } from "./logger.js";
|
|
5
5
|
import type { EventMetadata, PathwayContract, PathwayKey, PathwayState, PathwayWriteOptions, WritablePathway } from "./types.js";
|
|
6
|
+
import { FileEventSchema, FileInputSchema } from "./types.js";
|
|
6
7
|
/**
|
|
7
8
|
* Defines the mode for auditing pathway operations
|
|
8
9
|
* - "user": Normal user-initiated operations
|
|
@@ -45,7 +46,7 @@ export interface AuditWebhookSendOptions extends WebhookSendOptions {
|
|
|
45
46
|
* @property warn Log level for warn messages
|
|
46
47
|
* @property error Log level for error messages
|
|
47
48
|
*/
|
|
48
|
-
export type LogLevel = keyof Pick<Logger,
|
|
49
|
+
export type LogLevel = keyof Pick<Logger, "debug" | "info" | "warn" | "error">;
|
|
49
50
|
/**
|
|
50
51
|
* Configuration for log levels
|
|
51
52
|
* @property writeSuccess Log level used when a write operation is successful. Defaults to 'info'.
|
|
@@ -118,7 +119,10 @@ export declare class SessionUser implements SessionUserResolver {
|
|
|
118
119
|
* @template TPathway Record type that maps pathway keys to their payload types
|
|
119
120
|
* @template TWritablePaths Union type of pathway keys that can be written to
|
|
120
121
|
*/
|
|
121
|
-
export declare class PathwaysBuilder<TPathway extends Record<string,
|
|
122
|
+
export declare class PathwaysBuilder<TPathway extends Record<string, {
|
|
123
|
+
input: unknown;
|
|
124
|
+
output: unknown;
|
|
125
|
+
}> = {}, TWritablePaths extends keyof TPathway = never> {
|
|
122
126
|
private readonly pathways;
|
|
123
127
|
private readonly handlers;
|
|
124
128
|
private readonly beforeObservable;
|
|
@@ -127,7 +131,9 @@ export declare class PathwaysBuilder<TPathway extends Record<string, unknown> =
|
|
|
127
131
|
private readonly globalErrorSubject;
|
|
128
132
|
private readonly writers;
|
|
129
133
|
private readonly batchWriters;
|
|
134
|
+
private readonly fileWriters;
|
|
130
135
|
private readonly schemas;
|
|
136
|
+
private readonly inputSchemas;
|
|
131
137
|
private readonly writable;
|
|
132
138
|
private readonly timeouts;
|
|
133
139
|
private readonly maxRetries;
|
|
@@ -239,16 +245,20 @@ export declare class PathwaysBuilder<TPathway extends Record<string, unknown> =
|
|
|
239
245
|
* Registers a new pathway with the given contract
|
|
240
246
|
* @template F The flow type string
|
|
241
247
|
* @template E The event type string
|
|
242
|
-
* @template S The schema type extending
|
|
248
|
+
* @template S The schema type extending ZodTypeAny
|
|
243
249
|
* @template W Boolean indicating if the pathway is writable (defaults to true)
|
|
244
250
|
* @param contract The pathway contract describing the pathway
|
|
245
251
|
* @returns The PathwaysBuilder instance with the new pathway registered
|
|
246
252
|
*/
|
|
247
|
-
register<F extends string, E extends string, S extends
|
|
253
|
+
register<F extends string, E extends string, S extends AnyZodObject = AnyZodObject, W extends boolean = true, FP extends boolean = false>(contract: PathwayContract<F, E, S> & {
|
|
248
254
|
writable?: W;
|
|
249
255
|
maxRetries?: number;
|
|
250
256
|
retryDelayMs?: number;
|
|
251
|
-
|
|
257
|
+
isFilePathway?: FP;
|
|
258
|
+
}): PathwaysBuilder<TPathway & Record<PathwayKey<F, E>, {
|
|
259
|
+
output: FP extends true ? z.infer<typeof FileEventSchema> & z.infer<S> : z.infer<S>;
|
|
260
|
+
input: FP extends true ? z.input<typeof FileInputSchema> & z.input<S> : z.input<S>;
|
|
261
|
+
}>, TWritablePaths | WritablePathway<PathwayKey<F, E>, W>>;
|
|
252
262
|
/**
|
|
253
263
|
* Gets a pathway instance by its path
|
|
254
264
|
*
|
|
@@ -256,7 +266,7 @@ export declare class PathwaysBuilder<TPathway extends Record<string, unknown> =
|
|
|
256
266
|
* @param path The pathway key to get
|
|
257
267
|
* @returns The pathway instance
|
|
258
268
|
*/
|
|
259
|
-
get<TPath extends keyof TPathway>(path: TPath): TPathway[TPath];
|
|
269
|
+
get<TPath extends keyof TPathway>(path: TPath): TPathway[TPath]["output"];
|
|
260
270
|
/**
|
|
261
271
|
* Sets a handler function for a pathway
|
|
262
272
|
*
|
|
@@ -268,26 +278,20 @@ export declare class PathwaysBuilder<TPathway extends Record<string, unknown> =
|
|
|
268
278
|
* @param handler The function that will process events for this pathway
|
|
269
279
|
* @throws Error if the pathway doesn't exist or already has a handler
|
|
270
280
|
*/
|
|
271
|
-
handle<TPath extends keyof TPathway>(path: TPath, handler: (event:
|
|
272
|
-
payload: TPathway[TPath];
|
|
273
|
-
}) => Promise<void> | void): PathwaysBuilder<TPathway, TWritablePaths>;
|
|
281
|
+
handle<TPath extends keyof TPathway>(path: TPath, handler: (event: FlowcoreEvent<TPathway[TPath]["output"]>) => Promise<void> | void): PathwaysBuilder<TPathway, TWritablePaths>;
|
|
274
282
|
/**
|
|
275
283
|
* Subscribe to pathway events (before or after processing)
|
|
276
284
|
* @param path The pathway to subscribe to
|
|
277
285
|
* @param handler The handler function for the events
|
|
278
286
|
* @param type The event type to subscribe to (before, after, or all)
|
|
279
287
|
*/
|
|
280
|
-
subscribe<TPath extends keyof TPathway>(path: TPath, handler: (event:
|
|
281
|
-
payload: TPathway[TPath];
|
|
282
|
-
}) => void, type?: "before" | "after" | "all"): PathwaysBuilder<TPathway, TWritablePaths>;
|
|
288
|
+
subscribe<TPath extends keyof TPathway>(path: TPath, handler: (event: FlowcoreEvent<TPathway[TPath]["output"]>) => void, type?: "before" | "after" | "all"): PathwaysBuilder<TPathway, TWritablePaths>;
|
|
283
289
|
/**
|
|
284
290
|
* Subscribe to errors for a specific pathway
|
|
285
291
|
* @param path The pathway to subscribe to errors for
|
|
286
292
|
* @param handler The handler function that receives the error and event
|
|
287
293
|
*/
|
|
288
|
-
onError<TPath extends keyof TPathway>(path: TPath, handler: (error: Error, event:
|
|
289
|
-
payload: TPathway[TPath];
|
|
290
|
-
}) => void): PathwaysBuilder<TPathway, TWritablePaths>;
|
|
294
|
+
onError<TPath extends keyof TPathway>(path: TPath, handler: (error: Error, event: FlowcoreEvent<TPathway[TPath]["output"]>) => void): PathwaysBuilder<TPathway, TWritablePaths>;
|
|
291
295
|
/**
|
|
292
296
|
* Subscribe to errors for all pathways
|
|
293
297
|
* @param handler The handler function that receives the error, event, and pathway name
|
|
@@ -301,8 +305,12 @@ export declare class PathwaysBuilder<TPathway extends Record<string, unknown> =
|
|
|
301
305
|
* @param options Optional write options
|
|
302
306
|
* @returns A promise that resolves to the event ID(s)
|
|
303
307
|
*/
|
|
304
|
-
write<TPath extends TWritablePaths>(path: TPath,
|
|
305
|
-
|
|
308
|
+
write<TPath extends TWritablePaths, B extends boolean = false>(path: TPath, input: {
|
|
309
|
+
batch?: B;
|
|
310
|
+
data: B extends true ? TPathway[TPath]["input"][] : TPathway[TPath]["input"];
|
|
311
|
+
metadata?: EventMetadata;
|
|
312
|
+
options?: PathwayWriteOptions;
|
|
313
|
+
}): Promise<string | string[]>;
|
|
306
314
|
/**
|
|
307
315
|
* Waits for a specific event to be processed
|
|
308
316
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../../src/pathways/builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,
|
|
1
|
+
{"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../../src/pathways/builder.ts"],"names":[],"mappings":"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"}
|