@flowcore/pathways 0.16.0 → 0.16.2

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 CHANGED
@@ -1,81 +1,106 @@
1
1
  # Changelog
2
2
 
3
- ## [0.16.0](https://github.com/flowcore-io/flowcore-pathways/compare/v0.15.3...v0.16.0) (2025-06-03)
3
+ ## [0.16.2](https://github.com/flowcore-io/flowcore-pathways/compare/v0.16.1...v0.16.2) (2025-06-12)
4
4
 
5
5
 
6
- ### Features
6
+ ### Bug Fixes
7
7
 
8
- * **postgres:** :sparkles: add connection pool configuration options for PostgreSQL ([9ba9966](https://github.com/flowcore-io/flowcore-pathways/commit/9ba9966706c13bba441ef8538a0ecfe405191307))
8
+ * allow userIdResolver to be regular return also ([8420480](https://github.com/flowcore-io/flowcore-pathways/commit/84204800a8c6e7d27ca6c4bac3f95019159d301a))
9
+ * change metadata ([18dcbbd](https://github.com/flowcore-io/flowcore-pathways/commit/18dcbbd3573ec7c7b52fd6af20896a3730a1a388))
10
+ * change metadata ([a7a9bfa](https://github.com/flowcore-io/flowcore-pathways/commit/a7a9bfa5f98b2021660d99b7d864283b5cbca615))
11
+ * fix some tests ([705870c](https://github.com/flowcore-io/flowcore-pathways/commit/705870c7fd8d220b33be71a6e4aaddd50afcb9fe))
12
+ * make zod a peer dependency in npm package ([930033e](https://github.com/flowcore-io/flowcore-pathways/commit/930033e3d586a61ee0099a55ddb6ee5f48565c5a))
13
+ * make zod a peer dependency in npm package ([de3b93f](https://github.com/flowcore-io/flowcore-pathways/commit/de3b93fe8882199159d9090ba5f81f8b47e1a424))
14
+
15
+ ## [0.16.1](https://github.com/flowcore-io/flowcore-pathways/compare/v0.16.0...v0.16.1) (2025-06-04)
9
16
 
10
17
 
11
18
  ### Bug Fixes
12
19
 
13
- * **postgres:** :art: clean up whitespace in postgres-adapter.ts ([d16e0a9](https://github.com/flowcore-io/flowcore-pathways/commit/d16e0a9dfc0b02e533143dfcc5fe34e57bf22cea))
14
- * **postgres:** :art: update PostgresJsOptions interface for better type safety ([0fee92e](https://github.com/flowcore-io/flowcore-pathways/commit/0fee92eaad3ceb9a387cb6cee9d3029a254b8c15))
20
+ * **session-pathway:** :art: update write method to accept structured input ([86e54a7](https://github.com/flowcore-io/flowcore-pathways/commit/86e54a79cb8bef32677f308eb51a50eef6d1f071))
15
21
 
16
- ## [0.15.3](https://github.com/flowcore-io/flowcore-pathways/compare/v0.15.2...v0.15.3) (2025-06-03)
22
+ ## [0.16.0](https://github.com/flowcore-io/flowcore-pathways/compare/v0.15.3...v0.16.0) (2025-06-03)
17
23
 
24
+ ### Features
25
+
26
+ - **postgres:** :sparkles: add connection pool configuration options for PostgreSQL
27
+ ([9ba9966](https://github.com/flowcore-io/flowcore-pathways/commit/9ba9966706c13bba441ef8538a0ecfe405191307))
18
28
 
19
29
  ### Bug Fixes
20
30
 
21
- * add debug ([c5b0776](https://github.com/flowcore-io/flowcore-pathways/commit/c5b0776af5edfb64a568e497e31ed5181c59bb2d))
31
+ - **postgres:** :art: clean up whitespace in postgres-adapter.ts
32
+ ([d16e0a9](https://github.com/flowcore-io/flowcore-pathways/commit/d16e0a9dfc0b02e533143dfcc5fe34e57bf22cea))
33
+ - **postgres:** :art: update PostgresJsOptions interface for better type safety
34
+ ([0fee92e](https://github.com/flowcore-io/flowcore-pathways/commit/0fee92eaad3ceb9a387cb6cee9d3029a254b8c15))
22
35
 
23
- ## [0.15.2](https://github.com/flowcore-io/flowcore-pathways/compare/v0.15.1...v0.15.2) (2025-06-03)
36
+ ## [0.15.3](https://github.com/flowcore-io/flowcore-pathways/compare/v0.15.2...v0.15.3) (2025-06-03)
24
37
 
38
+ ### Bug Fixes
39
+
40
+ - add debug
41
+ ([c5b0776](https://github.com/flowcore-io/flowcore-pathways/commit/c5b0776af5edfb64a568e497e31ed5181c59bb2d))
42
+
43
+ ## [0.15.2](https://github.com/flowcore-io/flowcore-pathways/compare/v0.15.1...v0.15.2) (2025-06-03)
25
44
 
26
45
  ### Bug Fixes
27
46
 
28
- * update transformer core ([1b621ef](https://github.com/flowcore-io/flowcore-pathways/commit/1b621ef076016d6ef0cf378a883a113df6c022c0))
47
+ - update transformer core
48
+ ([1b621ef](https://github.com/flowcore-io/flowcore-pathways/commit/1b621ef076016d6ef0cf378a883a113df6c022c0))
29
49
 
30
50
  ## [0.15.1](https://github.com/flowcore-io/flowcore-pathways/compare/v0.15.0...v0.15.1) (2025-05-28)
31
51
 
32
-
33
52
  ### Bug Fixes
34
53
 
35
- * export file types ([203cc73](https://github.com/flowcore-io/flowcore-pathways/commit/203cc735aaedcf9bf44f045fd8a15916917b7ac1))
54
+ - export file types
55
+ ([203cc73](https://github.com/flowcore-io/flowcore-pathways/commit/203cc735aaedcf9bf44f045fd8a15916917b7ac1))
36
56
 
37
57
  ## [0.15.0](https://github.com/flowcore-io/flowcore-pathways/compare/v0.14.0...v0.15.0) (2025-05-27)
38
58
 
39
-
40
59
  ### Features
41
60
 
42
- * file writer + changes to write and writeBatch args ([5cbbb8f](https://github.com/flowcore-io/flowcore-pathways/commit/5cbbb8f83c5b8cdba11436565c4d36c1ad3faa61))
43
- * unified write method ([19f00bd](https://github.com/flowcore-io/flowcore-pathways/commit/19f00bd550d5b167e0104d9c8ef5a2751a909041))
44
-
61
+ - file writer + changes to write and writeBatch args
62
+ ([5cbbb8f](https://github.com/flowcore-io/flowcore-pathways/commit/5cbbb8f83c5b8cdba11436565c4d36c1ad3faa61))
63
+ - unified write method
64
+ ([19f00bd](https://github.com/flowcore-io/flowcore-pathways/commit/19f00bd550d5b167e0104d9c8ef5a2751a909041))
45
65
 
46
66
  ### Bug Fixes
47
67
 
48
- * fix session pathway ([5b8b1a0](https://github.com/flowcore-io/flowcore-pathways/commit/5b8b1a0b846f97adb679ce79ddd61bdc8868caf9))
49
- * fix types ([2235058](https://github.com/flowcore-io/flowcore-pathways/commit/22350588845db0a1e320d80928653210048b9a29))
50
- * update readme ([2285c96](https://github.com/flowcore-io/flowcore-pathways/commit/2285c960d9f3d95c09092c91ab8b93b4fc98a94f))
51
- * update tests and readme ([c3af713](https://github.com/flowcore-io/flowcore-pathways/commit/c3af7133196bb5da5cf7f342c2922bb7ad778fe9))
68
+ - fix session pathway
69
+ ([5b8b1a0](https://github.com/flowcore-io/flowcore-pathways/commit/5b8b1a0b846f97adb679ce79ddd61bdc8868caf9))
70
+ - fix types
71
+ ([2235058](https://github.com/flowcore-io/flowcore-pathways/commit/22350588845db0a1e320d80928653210048b9a29))
72
+ - update readme
73
+ ([2285c96](https://github.com/flowcore-io/flowcore-pathways/commit/2285c960d9f3d95c09092c91ab8b93b4fc98a94f))
74
+ - update tests and readme
75
+ ([c3af713](https://github.com/flowcore-io/flowcore-pathways/commit/c3af7133196bb5da5cf7f342c2922bb7ad778fe9))
52
76
 
53
77
  ## [0.14.0](https://github.com/flowcore-io/flowcore-pathways/compare/v0.13.2...v0.14.0) (2025-05-23)
54
78
 
55
-
56
79
  ### Features
57
80
 
58
- * switch from typebox to zod ([e20e8f8](https://github.com/flowcore-io/flowcore-pathways/commit/e20e8f81a9cf68eaa598be5d43ef34f346f136ea))
59
-
81
+ - switch from typebox to zod
82
+ ([e20e8f8](https://github.com/flowcore-io/flowcore-pathways/commit/e20e8f81a9cf68eaa598be5d43ef34f346f136ea))
60
83
 
61
84
  ### Bug Fixes
62
85
 
63
- * fix tests ([05496b9](https://github.com/flowcore-io/flowcore-pathways/commit/05496b993669449d8bfe758e2647d4f2a2dbbf06))
64
- * set defaults on write and process ([c01ac59](https://github.com/flowcore-io/flowcore-pathways/commit/c01ac59cd4097d832c009e90e7259644e84a9612))
86
+ - fix tests
87
+ ([05496b9](https://github.com/flowcore-io/flowcore-pathways/commit/05496b993669449d8bfe758e2647d4f2a2dbbf06))
88
+ - set defaults on write and process
89
+ ([c01ac59](https://github.com/flowcore-io/flowcore-pathways/commit/c01ac59cd4097d832c009e90e7259644e84a9612))
65
90
 
66
91
  ## [0.13.2](https://github.com/flowcore-io/flowcore-pathways/compare/v0.13.1...v0.13.2) (2025-05-14)
67
92
 
68
-
69
93
  ### Performance Improvements
70
94
 
71
- * ability to adjust the log level of internal logs ([eaeb9c5](https://github.com/flowcore-io/flowcore-pathways/commit/eaeb9c58a53be3effb6ba54621535a531b11e82e))
95
+ - ability to adjust the log level of internal logs
96
+ ([eaeb9c5](https://github.com/flowcore-io/flowcore-pathways/commit/eaeb9c58a53be3effb6ba54621535a531b11e82e))
72
97
 
73
98
  ## [0.13.1](https://github.com/flowcore-io/flowcore-pathways/compare/v0.13.0...v0.13.1) (2025-04-22)
74
99
 
75
-
76
100
  ### Bug Fixes
77
101
 
78
- * **pathways:** :art: extract audit constants for better readability ([9a349b8](https://github.com/flowcore-io/flowcore-pathways/commit/9a349b865e8bc5627a50a4b132d368fcba4bf986))
102
+ - **pathways:** :art: extract audit constants for better readability
103
+ ([9a349b8](https://github.com/flowcore-io/flowcore-pathways/commit/9a349b865e8bc5627a50a4b132d368fcba4bf986))
79
104
 
80
105
  ## [0.13.0](https://github.com/flowcore-io/flowcore-pathways/compare/v0.12.0...v0.13.0) (2025-04-22)
81
106
 
package/README.md CHANGED
@@ -23,6 +23,7 @@ Pathways helps you build event-driven applications with type-safe pathways for p
23
23
  - [Custom Loggers](#custom-loggers)
24
24
  - [Retry Mechanisms](#retry-mechanisms)
25
25
  - [Session Pathways](#session-pathways)
26
+ - [File Pathways](#file-pathways)
26
27
  - [API Reference](#api-reference)
27
28
 
28
29
  ## Installation
@@ -210,6 +211,21 @@ const eventId3 = await pathways.write("order/placed", {
210
211
  fireAndForget: true,
211
212
  },
212
213
  })
214
+
215
+ // Batch write multiple events
216
+ const eventIds = await pathways.write("order/placed", {
217
+ batch: true,
218
+ data: [orderData1, orderData2, orderData3],
219
+ })
220
+
221
+ // Batch write with metadata
222
+ const eventIds2 = await pathways.write("order/placed", {
223
+ batch: true,
224
+ data: [orderData1, orderData2],
225
+ metadata: {
226
+ source: "bulk-import",
227
+ },
228
+ })
213
229
  ```
214
230
 
215
231
  ### Error Handling
@@ -354,18 +370,18 @@ Enable auditing to track events:
354
370
 
355
371
  ```typescript
356
372
  // Set up auditing
357
- pathways.withAudit(
358
- // Audit handler
359
- (path, event) => {
373
+ pathways
374
+ .withAudit((path, event) => {
360
375
  console.log(`Audit: ${path} event ${event.eventId}`)
361
376
  logToAuditSystem(path, event)
362
- },
363
- // User ID resolver
364
- async () => {
377
+ })
378
+ .withUserResolver(async () => {
365
379
  // Get the current user ID from context
366
- return getCurrentUserId()
367
- },
368
- )
380
+ return {
381
+ entityId: "user-123",
382
+ entityType: "user",
383
+ }
384
+ })
369
385
  ```
370
386
 
371
387
  ### Custom Loggers
@@ -502,6 +518,12 @@ await session.write("order/placed", {
502
518
  data: orderData,
503
519
  options: { sessionId: "different-session" },
504
520
  })
521
+
522
+ // Batch write events with session context
523
+ await session.write("user/actions", {
524
+ batch: true,
525
+ data: [actionData1, actionData2, actionData3],
526
+ })
505
527
  ```
506
528
 
507
529
  #### Session ID in Audit Events
@@ -520,6 +542,228 @@ await session.write("order/placed", { data: orderData })
520
542
  // The session ID is automatically included in the audit metadata
521
543
  ```
522
544
 
545
+ ### File Pathways
546
+
547
+ File pathways provide a specialized way to handle file uploads and processing in your Flowcore applications. They
548
+ automatically handle file type detection, binary content processing, and provide a structured approach to file
549
+ management.
550
+
551
+ #### Registering File Pathways
552
+
553
+ Register a file pathway by setting the `isFilePathway` flag to `true`:
554
+
555
+ ```typescript
556
+ import { z } from "zod"
557
+
558
+ // Define additional properties schema for your file
559
+ const documentSchema = z.object({
560
+ documentType: z.enum(["invoice", "receipt", "contract"]),
561
+ department: z.string(),
562
+ metadata: z.record(z.string()).optional(),
563
+ })
564
+
565
+ // Register a file pathway
566
+ pathways.register({
567
+ flowType: "document",
568
+ eventType: "uploaded",
569
+ schema: documentSchema, // Additional properties beyond the file itself
570
+ isFilePathway: true, // This marks it as a file pathway
571
+ writable: true,
572
+ })
573
+ ```
574
+
575
+ #### Writing Files to Pathways
576
+
577
+ File pathways use a special input format that includes file content and metadata:
578
+
579
+ ```typescript
580
+ import { readFile } from "node:fs/promises"
581
+
582
+ // Read file content (as Buffer for Node.js/Bun, Uint8Array for Deno)
583
+ const fileContent = await readFile("./invoice.pdf")
584
+
585
+ // Write a file to a pathway
586
+ const eventId = await pathways.write("document/uploaded", {
587
+ data: {
588
+ fileId: "file-123", // Unique identifier for the file
589
+ fileName: "invoice-2024.pdf", // Original filename
590
+ fileContent: fileContent, // File content as Buffer/Uint8Array
591
+ // Additional properties defined in your schema
592
+ documentType: "invoice",
593
+ department: "finance",
594
+ metadata: {
595
+ customer: "ACME Corp",
596
+ amount: "1500.00",
597
+ },
598
+ },
599
+ })
600
+ ```
601
+
602
+ #### File Input Schema
603
+
604
+ File pathways automatically include these required fields:
605
+
606
+ ```typescript
607
+ // Built-in file fields (automatically added)
608
+ interface FileInput {
609
+ fileId: string // Unique identifier for the file
610
+ fileName: string // Original filename with extension
611
+ fileContent: Buffer | Uint8Array // Binary file content
612
+ // ... your additional schema properties
613
+ }
614
+ ```
615
+
616
+ #### File Event Schema
617
+
618
+ When processed, file events include automatic file type detection:
619
+
620
+ ```typescript
621
+ // Built-in file event fields (automatically added to your schema)
622
+ interface FileEvent {
623
+ fileId: string // Unique identifier for the file
624
+ fileName: string // Original filename
625
+ fileType: string // MIME type (automatically detected)
626
+ fileContent: Blob // File content as Blob
627
+ // ... your additional schema properties
628
+ }
629
+ ```
630
+
631
+ #### Handling File Events
632
+
633
+ Handle file events just like regular events, but with access to file-specific properties:
634
+
635
+ ```typescript
636
+ pathways.handle("document/uploaded", async (event) => {
637
+ const { fileId, fileName, fileType, fileContent, documentType, department } = event.payload
638
+
639
+ console.log(`Processing file: ${fileName} (${fileType})`)
640
+ console.log(`Document type: ${documentType}, Department: ${department}`)
641
+
642
+ // Process the file content
643
+ if (fileType === "application/pdf") {
644
+ await processPDFDocument(fileContent, event.payload.metadata)
645
+ } else if (fileType.startsWith("image/")) {
646
+ await processImageFile(fileContent, documentType)
647
+ }
648
+
649
+ // Store file metadata
650
+ await storeFileMetadata({
651
+ fileId,
652
+ fileName,
653
+ fileType,
654
+ documentType,
655
+ department,
656
+ processedAt: new Date(),
657
+ })
658
+ })
659
+ ```
660
+
661
+ #### File Pathway Limitations
662
+
663
+ File pathways have some specific limitations:
664
+
665
+ ```typescript
666
+ // ❌ Batch writes are NOT supported for file pathways
667
+ // This will throw an error:
668
+ await pathways.write("document/uploaded", {
669
+ batch: true, // Error: Batch is not possible for file pathways
670
+ data: [fileData1, fileData2],
671
+ })
672
+
673
+ // ✅ Write files individually instead:
674
+ for (const fileData of fileDataArray) {
675
+ await pathways.write("document/uploaded", { data: fileData })
676
+ }
677
+ ```
678
+
679
+ #### Complete File Pathway Example
680
+
681
+ Here's a complete example of setting up and using file pathways:
682
+
683
+ ```typescript
684
+ import { PathwaysBuilder } from "@flowcore/pathways"
685
+ import { z } from "zod"
686
+ import { readFile } from "node:fs/promises"
687
+
688
+ // Define schema for additional file properties
689
+ const documentSchema = z.object({
690
+ documentType: z.enum(["invoice", "receipt", "contract", "report"]),
691
+ department: z.string(),
692
+ tags: z.array(z.string()).optional(),
693
+ metadata: z.record(z.string()).optional(),
694
+ })
695
+
696
+ const pathways = new PathwaysBuilder({
697
+ baseUrl: "https://api.flowcore.io",
698
+ tenant: "your-tenant",
699
+ dataCore: "your-data-core",
700
+ apiKey: "your-api-key",
701
+ })
702
+
703
+ // Register file pathway
704
+ pathways
705
+ .register({
706
+ flowType: "document",
707
+ eventType: "uploaded",
708
+ schema: documentSchema,
709
+ isFilePathway: true,
710
+ })
711
+ .handle("document/uploaded", async (event) => {
712
+ const { fileId, fileName, fileType, documentType, department } = event.payload
713
+
714
+ console.log(`Processing ${documentType} from ${department}: ${fileName}`)
715
+
716
+ // File type-specific processing
717
+ switch (fileType) {
718
+ case "application/pdf":
719
+ await extractPDFText(event.payload.fileContent)
720
+ break
721
+ case "image/jpeg":
722
+ case "image/png":
723
+ await extractImageMetadata(event.payload.fileContent)
724
+ break
725
+ default:
726
+ console.log(`Unsupported file type: ${fileType}`)
727
+ }
728
+
729
+ // Trigger downstream processing
730
+ await pathways.write("document/processed", {
731
+ data: {
732
+ fileId,
733
+ fileName,
734
+ documentType,
735
+ department,
736
+ processedAt: new Date().toISOString(),
737
+ status: "completed",
738
+ },
739
+ })
740
+ })
741
+
742
+ // Upload a file
743
+ async function uploadDocument(filePath: string, documentType: string, department: string) {
744
+ const fileContent = await readFile(filePath)
745
+ const fileName = filePath.split("/").pop() || "unknown"
746
+
747
+ return await pathways.write("document/uploaded", {
748
+ data: {
749
+ fileId: `doc-${Date.now()}`,
750
+ fileName,
751
+ fileContent,
752
+ documentType,
753
+ department,
754
+ tags: ["automated-upload"],
755
+ metadata: {
756
+ uploadedAt: new Date().toISOString(),
757
+ source: "api",
758
+ },
759
+ },
760
+ })
761
+ }
762
+
763
+ // Usage
764
+ await uploadDocument("./invoice.pdf", "invoice", "finance")
765
+ ```
766
+
523
767
  ## API Reference
524
768
 
525
769
  For a complete API reference, please see the [API documentation](https://jsr.io/@flowcore/pathways).
@@ -29,7 +29,7 @@ export type UserResolverEntity = {
29
29
  * Async function that resolves to the current user ID
30
30
  * Used for audit functionality to track which user initiated an action
31
31
  */
32
- export type UserIdResolver = () => Promise<UserResolverEntity>;
32
+ export type UserIdResolver = () => Promise<UserResolverEntity> | UserResolverEntity;
33
33
  /**
34
34
  * Extended webhook send options with additional audit-specific options
35
35
  */
@@ -1 +1 @@
1
- {"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../../src/pathways/builder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../../src/pathways/builder.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,7 @@ import { Subject } from "rxjs";
4
4
  import { WebhookBuilder } from "../compatibility/flowcore-transformer-core.sdk.js";
5
5
  import { InternalPathwayState } from "./internal-pathway.state.js";
6
6
  import { NoopLogger } from "./logger.js";
7
- import { AUDIT_ENTITY_TYPE, AUDIT_MODE, AUDIT_ON_BEHALF_OF, AUDIT_SYSTEM_MODE, AUDIT_USER_ID, AUDIT_USER_MODE, } from "./constants.js";
7
+ import { AUDIT_ENTITY_ID, AUDIT_ENTITY_TYPE, AUDIT_MODE, AUDIT_ON_BEHALF_OF_ID, AUDIT_ON_BEHALF_OF_TYPE, AUDIT_SESSION_ID, AUDIT_SYSTEM_MODE, AUDIT_USER_MODE, } from "./constants.js";
8
8
  import { FileEventSchema, FileInputSchema } from "./types.js";
9
9
  import process from "node:process";
10
10
  /**
@@ -779,17 +779,21 @@ export class PathwaysBuilder {
779
779
  if (userId) {
780
780
  // Add appropriate audit metadata based on mode
781
781
  if (auditMode === AUDIT_SYSTEM_MODE) {
782
- finalMetadata[AUDIT_USER_ID] = "system";
783
- finalMetadata[AUDIT_ON_BEHALF_OF] = userId.entityId;
784
- finalMetadata[AUDIT_MODE] = "system";
785
- finalMetadata[AUDIT_ENTITY_TYPE] = userId.entityType;
782
+ finalMetadata[AUDIT_MODE] = AUDIT_SYSTEM_MODE;
783
+ finalMetadata[AUDIT_ENTITY_TYPE] = "system";
784
+ finalMetadata[AUDIT_ENTITY_ID] = "system";
785
+ finalMetadata[AUDIT_ON_BEHALF_OF_TYPE] = userId.entityType;
786
+ finalMetadata[AUDIT_ON_BEHALF_OF_ID] = userId.entityId;
786
787
  }
787
788
  else {
788
- finalMetadata[AUDIT_USER_ID] = userId.entityId;
789
- finalMetadata[AUDIT_MODE] = AUDIT_USER_MODE; // Always set mode for user
789
+ finalMetadata[AUDIT_MODE] = AUDIT_USER_MODE;
790
790
  finalMetadata[AUDIT_ENTITY_TYPE] = userId.entityType;
791
+ finalMetadata[AUDIT_ENTITY_ID] = userId.entityId;
791
792
  }
792
793
  }
794
+ if (options?.sessionId) {
795
+ finalMetadata[AUDIT_SESSION_ID] = options.sessionId;
796
+ }
793
797
  let eventIds = [];
794
798
  this.logger.debug(`Writing webhook data to pathway`, { pathway: pathStr, batch });
795
799
  if (batch) {
@@ -1,5 +1,7 @@
1
- export declare const AUDIT_USER_ID = "audit/user-id";
2
- export declare const AUDIT_ON_BEHALF_OF = "audit/on-behalf-of";
1
+ export declare const AUDIT_SESSION_ID = "audit/session-id";
2
+ export declare const AUDIT_ENTITY_ID = "audit/entity-id";
3
+ export declare const AUDIT_ON_BEHALF_OF_TYPE = "audit/on-behalf-of-type";
4
+ export declare const AUDIT_ON_BEHALF_OF_ID = "audit/on-behalf-of-id";
3
5
  export declare const AUDIT_MODE = "audit/mode";
4
6
  export declare const AUDIT_ENTITY_TYPE = "audit/entity-type";
5
7
  export declare const AUDIT_SYSTEM_MODE = "system";
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/pathways/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,aAAa,kBAAkB,CAAA;AAC5C,eAAO,MAAM,kBAAkB,uBAAuB,CAAA;AACtD,eAAO,MAAM,UAAU,eAAe,CAAA;AACtC,eAAO,MAAM,iBAAiB,sBAAsB,CAAA;AAEpD,eAAO,MAAM,iBAAiB,WAAW,CAAA;AACzC,eAAO,MAAM,eAAe,SAAS,CAAA;AAErC,eAAO,MAAM,sBAAsB,SAAS,CAAA;AAC5C,eAAO,MAAM,qBAAqB,QAAQ,CAAA"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/pathways/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,gBAAgB,qBAAqB,CAAA;AAElD,eAAO,MAAM,eAAe,oBAAoB,CAAA;AAEhD,eAAO,MAAM,uBAAuB,4BAA4B,CAAA;AAChE,eAAO,MAAM,qBAAqB,0BAA0B,CAAA;AAE5D,eAAO,MAAM,UAAU,eAAe,CAAA;AACtC,eAAO,MAAM,iBAAiB,sBAAsB,CAAA;AAEpD,eAAO,MAAM,iBAAiB,WAAW,CAAA;AACzC,eAAO,MAAM,eAAe,SAAS,CAAA;AAErC,eAAO,MAAM,sBAAsB,SAAS,CAAA;AAC5C,eAAO,MAAM,qBAAqB,QAAQ,CAAA"}
@@ -1,5 +1,7 @@
1
- export const AUDIT_USER_ID = "audit/user-id";
2
- export const AUDIT_ON_BEHALF_OF = "audit/on-behalf-of";
1
+ export const AUDIT_SESSION_ID = "audit/session-id";
2
+ export const AUDIT_ENTITY_ID = "audit/entity-id";
3
+ export const AUDIT_ON_BEHALF_OF_TYPE = "audit/on-behalf-of-type";
4
+ export const AUDIT_ON_BEHALF_OF_ID = "audit/on-behalf-of-id";
3
5
  export const AUDIT_MODE = "audit/mode";
4
6
  export const AUDIT_ENTITY_TYPE = "audit/entity-type";
5
7
  export const AUDIT_SYSTEM_MODE = "system";
@@ -33,8 +33,14 @@ import type { EventMetadata, PathwayWriteOptions } from "./types.js";
33
33
  * session.withUserResolver(async () => getCurrentUserId());
34
34
  *
35
35
  * // Write events with session context
36
- * await session.write("order/placed", orderData);
37
- * await session.write("user/action", actionData);
36
+ * await session.write("order/placed", { data: orderData });
37
+ * await session.write("user/action", { data: actionData });
38
+ *
39
+ * // Write batch events with session context
40
+ * await session.write("user/actions", {
41
+ * batch: true,
42
+ * data: [actionData1, actionData2]
43
+ * });
38
44
  *
39
45
  * // All events will be associated with the same session ID
40
46
  * ```
@@ -84,7 +90,7 @@ export declare class SessionPathwayBuilder<TPathway extends Record<string, {
84
90
  * });
85
91
  *
86
92
  * // When writing events, the user ID will be automatically included
87
- * await session.write("user/action", actionData);
93
+ * await session.write("user/action", { data: actionData });
88
94
  * ```
89
95
  */
90
96
  withUserResolver(resolver: UserIdResolver): this;
@@ -92,11 +98,14 @@ export declare class SessionPathwayBuilder<TPathway extends Record<string, {
92
98
  * Writes data to a pathway, proxying to the underlying PathwaysBuilder
93
99
  *
94
100
  * @param path The pathway to write to
95
- * @param data The data to write
96
- * @param metadata Optional metadata to include with the event
97
- * @param options Optional write options
101
+ * @param input Object containing the data, metadata, options, and optional batch flag
98
102
  * @returns A promise that resolves to the event ID(s)
99
103
  */
100
- write<TPath extends TWritablePaths>(path: TPath, data: TPathway[TPath]["input"], metadata?: EventMetadata, options?: PathwayWriteOptions): Promise<string | string[]>;
104
+ write<TPath extends TWritablePaths, B extends boolean = false>(path: TPath, input: {
105
+ batch?: B;
106
+ data: B extends true ? TPathway[TPath]["input"][] : TPathway[TPath]["input"];
107
+ metadata?: EventMetadata;
108
+ options?: PathwayWriteOptions;
109
+ }): Promise<string | string[]>;
101
110
  }
102
111
  //# sourceMappingURL=session-pathway.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"session-pathway.d.ts","sourceRoot":"","sources":["../../src/pathways/session-pathway.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AACnE,OAAO,KAAK,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAqBpE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,qBAAa,qBAAqB,CAEhC,QAAQ,SAAS,MAAM,CAAC,MAAM,EAAE;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE,CAAC,GAAG,EAAE,EACzE,cAAc,SAAS,MAAM,QAAQ,GAAG,KAAK;IAE7C,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA2C;IAC3E,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAQ;IAElC;;;;;OAKG;gBAED,eAAe,EAAE,eAAe,CAAC,QAAQ,EAAE,cAAc,CAAC,EAC1D,SAAS,CAAC,EAAE,MAAM;IAMpB;;;;OAIG;IACH,YAAY,IAAI,MAAM;IAItB;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;IACH,gBAAgB,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI;IAKhD;;;;;;;;OAQG;IACG,KAAK,CAAC,KAAK,SAAS,cAAc,EACtC,IAAI,EAAE,KAAK,EACX,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,EAC9B,QAAQ,CAAC,EAAE,aAAa,EACxB,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,MAAM,GAAG,MAAM,EAAE,CAAC;CAU9B"}
1
+ {"version":3,"file":"session-pathway.d.ts","sourceRoot":"","sources":["../../src/pathways/session-pathway.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AACnE,OAAO,KAAK,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAqBpE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AACH,qBAAa,qBAAqB,CAEhC,QAAQ,SAAS,MAAM,CAAC,MAAM,EAAE;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE,CAAC,GAAG,EAAE,EACzE,cAAc,SAAS,MAAM,QAAQ,GAAG,KAAK;IAE7C,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA2C;IAC3E,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAQ;IAElC;;;;;OAKG;gBAED,eAAe,EAAE,eAAe,CAAC,QAAQ,EAAE,cAAc,CAAC,EAC1D,SAAS,CAAC,EAAE,MAAM;IAMpB;;;;OAIG;IACH,YAAY,IAAI,MAAM;IAItB;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;IACH,gBAAgB,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI;IAKhD;;;;;;OAMG;IACG,KAAK,CAAC,KAAK,SAAS,cAAc,EAAE,CAAC,SAAS,OAAO,GAAG,KAAK,EACjE,IAAI,EAAE,KAAK,EACX,KAAK,EAAE;QACL,KAAK,CAAC,EAAE,CAAC,CAAA;QACT,IAAI,EAAE,CAAC,SAAS,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,EAAE,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAA;QAC5E,QAAQ,CAAC,EAAE,aAAa,CAAA;QACxB,OAAO,CAAC,EAAE,mBAAmB,CAAA;KAC9B,GACA,OAAO,CAAC,MAAM,GAAG,MAAM,EAAE,CAAC;CAiB9B"}
@@ -48,8 +48,14 @@ function generateUUID() {
48
48
  * session.withUserResolver(async () => getCurrentUserId());
49
49
  *
50
50
  * // Write events with session context
51
- * await session.write("order/placed", orderData);
52
- * await session.write("user/action", actionData);
51
+ * await session.write("order/placed", { data: orderData });
52
+ * await session.write("user/action", { data: actionData });
53
+ *
54
+ * // Write batch events with session context
55
+ * await session.write("user/actions", {
56
+ * batch: true,
57
+ * data: [actionData1, actionData2]
58
+ * });
53
59
  *
54
60
  * // All events will be associated with the same session ID
55
61
  * ```
@@ -111,7 +117,7 @@ export class SessionPathwayBuilder {
111
117
  * });
112
118
  *
113
119
  * // When writing events, the user ID will be automatically included
114
- * await session.write("user/action", actionData);
120
+ * await session.write("user/action", { data: actionData });
115
121
  * ```
116
122
  */
117
123
  withUserResolver(resolver) {
@@ -122,17 +128,21 @@ export class SessionPathwayBuilder {
122
128
  * Writes data to a pathway, proxying to the underlying PathwaysBuilder
123
129
  *
124
130
  * @param path The pathway to write to
125
- * @param data The data to write
126
- * @param metadata Optional metadata to include with the event
127
- * @param options Optional write options
131
+ * @param input Object containing the data, metadata, options, and optional batch flag
128
132
  * @returns A promise that resolves to the event ID(s)
129
133
  */
130
- async write(path, data, metadata, options) {
134
+ async write(path, input) {
135
+ const { data, metadata, options, batch } = input;
131
136
  // Create new options object with session ID
132
137
  const finalOptions = options ? { ...options } : {};
133
138
  // Always include the session ID in the options
134
139
  finalOptions.sessionId = options?.sessionId ?? this.sessionId;
135
140
  // The PathwaysBuilder will handle session-specific user resolvers
136
- return await this.pathwaysBuilder.write(path, { data, metadata, options: finalOptions });
141
+ return await this.pathwaysBuilder.write(path, {
142
+ batch,
143
+ data,
144
+ metadata,
145
+ options: finalOptions,
146
+ });
137
147
  }
138
148
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@flowcore/pathways",
3
- "version": "0.16.0",
3
+ "version": "0.16.2",
4
4
  "description": "A TypeScript Library for creating Flowcore Pathways, simplifying the integration with the flowcore platform",
5
5
  "homepage": "https://github.com/flowcore-io/flowcore-pathways#readme",
6
6
  "repository": {
@@ -27,8 +27,10 @@
27
27
  "file-type": "^21.0.0",
28
28
  "node-cache": "5.1.2",
29
29
  "postgres": "^3.4.3",
30
- "rxjs": "^7.8.1",
31
- "zod": "^3.25.23"
30
+ "rxjs": "^7.8.1"
31
+ },
32
+ "peerDependencies": {
33
+ "zod": "^3.25.63"
32
34
  },
33
35
  "devDependencies": {
34
36
  "@types/node": "^20.9.0",
@@ -29,7 +29,7 @@ export type UserResolverEntity = {
29
29
  * Async function that resolves to the current user ID
30
30
  * Used for audit functionality to track which user initiated an action
31
31
  */
32
- export type UserIdResolver = () => Promise<UserResolverEntity>;
32
+ export type UserIdResolver = () => Promise<UserResolverEntity> | UserResolverEntity;
33
33
  /**
34
34
  * Extended webhook send options with additional audit-specific options
35
35
  */
@@ -1 +1 @@
1
- {"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../../src/pathways/builder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../../src/pathways/builder.ts"],"names":[],"mappings":"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"}
@@ -786,17 +786,21 @@ class PathwaysBuilder {
786
786
  if (userId) {
787
787
  // Add appropriate audit metadata based on mode
788
788
  if (auditMode === constants_js_1.AUDIT_SYSTEM_MODE) {
789
- finalMetadata[constants_js_1.AUDIT_USER_ID] = "system";
790
- finalMetadata[constants_js_1.AUDIT_ON_BEHALF_OF] = userId.entityId;
791
- finalMetadata[constants_js_1.AUDIT_MODE] = "system";
792
- finalMetadata[constants_js_1.AUDIT_ENTITY_TYPE] = userId.entityType;
789
+ finalMetadata[constants_js_1.AUDIT_MODE] = constants_js_1.AUDIT_SYSTEM_MODE;
790
+ finalMetadata[constants_js_1.AUDIT_ENTITY_TYPE] = "system";
791
+ finalMetadata[constants_js_1.AUDIT_ENTITY_ID] = "system";
792
+ finalMetadata[constants_js_1.AUDIT_ON_BEHALF_OF_TYPE] = userId.entityType;
793
+ finalMetadata[constants_js_1.AUDIT_ON_BEHALF_OF_ID] = userId.entityId;
793
794
  }
794
795
  else {
795
- finalMetadata[constants_js_1.AUDIT_USER_ID] = userId.entityId;
796
- finalMetadata[constants_js_1.AUDIT_MODE] = constants_js_1.AUDIT_USER_MODE; // Always set mode for user
796
+ finalMetadata[constants_js_1.AUDIT_MODE] = constants_js_1.AUDIT_USER_MODE;
797
797
  finalMetadata[constants_js_1.AUDIT_ENTITY_TYPE] = userId.entityType;
798
+ finalMetadata[constants_js_1.AUDIT_ENTITY_ID] = userId.entityId;
798
799
  }
799
800
  }
801
+ if (options?.sessionId) {
802
+ finalMetadata[constants_js_1.AUDIT_SESSION_ID] = options.sessionId;
803
+ }
800
804
  let eventIds = [];
801
805
  this.logger.debug(`Writing webhook data to pathway`, { pathway: pathStr, batch });
802
806
  if (batch) {
@@ -1,5 +1,7 @@
1
- export declare const AUDIT_USER_ID = "audit/user-id";
2
- export declare const AUDIT_ON_BEHALF_OF = "audit/on-behalf-of";
1
+ export declare const AUDIT_SESSION_ID = "audit/session-id";
2
+ export declare const AUDIT_ENTITY_ID = "audit/entity-id";
3
+ export declare const AUDIT_ON_BEHALF_OF_TYPE = "audit/on-behalf-of-type";
4
+ export declare const AUDIT_ON_BEHALF_OF_ID = "audit/on-behalf-of-id";
3
5
  export declare const AUDIT_MODE = "audit/mode";
4
6
  export declare const AUDIT_ENTITY_TYPE = "audit/entity-type";
5
7
  export declare const AUDIT_SYSTEM_MODE = "system";
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/pathways/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,aAAa,kBAAkB,CAAA;AAC5C,eAAO,MAAM,kBAAkB,uBAAuB,CAAA;AACtD,eAAO,MAAM,UAAU,eAAe,CAAA;AACtC,eAAO,MAAM,iBAAiB,sBAAsB,CAAA;AAEpD,eAAO,MAAM,iBAAiB,WAAW,CAAA;AACzC,eAAO,MAAM,eAAe,SAAS,CAAA;AAErC,eAAO,MAAM,sBAAsB,SAAS,CAAA;AAC5C,eAAO,MAAM,qBAAqB,QAAQ,CAAA"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/pathways/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,gBAAgB,qBAAqB,CAAA;AAElD,eAAO,MAAM,eAAe,oBAAoB,CAAA;AAEhD,eAAO,MAAM,uBAAuB,4BAA4B,CAAA;AAChE,eAAO,MAAM,qBAAqB,0BAA0B,CAAA;AAE5D,eAAO,MAAM,UAAU,eAAe,CAAA;AACtC,eAAO,MAAM,iBAAiB,sBAAsB,CAAA;AAEpD,eAAO,MAAM,iBAAiB,WAAW,CAAA;AACzC,eAAO,MAAM,eAAe,SAAS,CAAA;AAErC,eAAO,MAAM,sBAAsB,SAAS,CAAA;AAC5C,eAAO,MAAM,qBAAqB,QAAQ,CAAA"}
@@ -1,8 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.AUDIT_KEY_ENTITY_TYPE = exports.AUDIT_USER_ENTITY_TYPE = exports.AUDIT_USER_MODE = exports.AUDIT_SYSTEM_MODE = exports.AUDIT_ENTITY_TYPE = exports.AUDIT_MODE = exports.AUDIT_ON_BEHALF_OF = exports.AUDIT_USER_ID = void 0;
4
- exports.AUDIT_USER_ID = "audit/user-id";
5
- exports.AUDIT_ON_BEHALF_OF = "audit/on-behalf-of";
3
+ exports.AUDIT_KEY_ENTITY_TYPE = exports.AUDIT_USER_ENTITY_TYPE = exports.AUDIT_USER_MODE = exports.AUDIT_SYSTEM_MODE = exports.AUDIT_ENTITY_TYPE = exports.AUDIT_MODE = exports.AUDIT_ON_BEHALF_OF_ID = exports.AUDIT_ON_BEHALF_OF_TYPE = exports.AUDIT_ENTITY_ID = exports.AUDIT_SESSION_ID = void 0;
4
+ exports.AUDIT_SESSION_ID = "audit/session-id";
5
+ exports.AUDIT_ENTITY_ID = "audit/entity-id";
6
+ exports.AUDIT_ON_BEHALF_OF_TYPE = "audit/on-behalf-of-type";
7
+ exports.AUDIT_ON_BEHALF_OF_ID = "audit/on-behalf-of-id";
6
8
  exports.AUDIT_MODE = "audit/mode";
7
9
  exports.AUDIT_ENTITY_TYPE = "audit/entity-type";
8
10
  exports.AUDIT_SYSTEM_MODE = "system";
@@ -33,8 +33,14 @@ import type { EventMetadata, PathwayWriteOptions } from "./types.js";
33
33
  * session.withUserResolver(async () => getCurrentUserId());
34
34
  *
35
35
  * // Write events with session context
36
- * await session.write("order/placed", orderData);
37
- * await session.write("user/action", actionData);
36
+ * await session.write("order/placed", { data: orderData });
37
+ * await session.write("user/action", { data: actionData });
38
+ *
39
+ * // Write batch events with session context
40
+ * await session.write("user/actions", {
41
+ * batch: true,
42
+ * data: [actionData1, actionData2]
43
+ * });
38
44
  *
39
45
  * // All events will be associated with the same session ID
40
46
  * ```
@@ -84,7 +90,7 @@ export declare class SessionPathwayBuilder<TPathway extends Record<string, {
84
90
  * });
85
91
  *
86
92
  * // When writing events, the user ID will be automatically included
87
- * await session.write("user/action", actionData);
93
+ * await session.write("user/action", { data: actionData });
88
94
  * ```
89
95
  */
90
96
  withUserResolver(resolver: UserIdResolver): this;
@@ -92,11 +98,14 @@ export declare class SessionPathwayBuilder<TPathway extends Record<string, {
92
98
  * Writes data to a pathway, proxying to the underlying PathwaysBuilder
93
99
  *
94
100
  * @param path The pathway to write to
95
- * @param data The data to write
96
- * @param metadata Optional metadata to include with the event
97
- * @param options Optional write options
101
+ * @param input Object containing the data, metadata, options, and optional batch flag
98
102
  * @returns A promise that resolves to the event ID(s)
99
103
  */
100
- write<TPath extends TWritablePaths>(path: TPath, data: TPathway[TPath]["input"], metadata?: EventMetadata, options?: PathwayWriteOptions): Promise<string | string[]>;
104
+ write<TPath extends TWritablePaths, B extends boolean = false>(path: TPath, input: {
105
+ batch?: B;
106
+ data: B extends true ? TPathway[TPath]["input"][] : TPathway[TPath]["input"];
107
+ metadata?: EventMetadata;
108
+ options?: PathwayWriteOptions;
109
+ }): Promise<string | string[]>;
101
110
  }
102
111
  //# sourceMappingURL=session-pathway.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"session-pathway.d.ts","sourceRoot":"","sources":["../../src/pathways/session-pathway.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AACnE,OAAO,KAAK,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAqBpE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,qBAAa,qBAAqB,CAEhC,QAAQ,SAAS,MAAM,CAAC,MAAM,EAAE;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE,CAAC,GAAG,EAAE,EACzE,cAAc,SAAS,MAAM,QAAQ,GAAG,KAAK;IAE7C,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA2C;IAC3E,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAQ;IAElC;;;;;OAKG;gBAED,eAAe,EAAE,eAAe,CAAC,QAAQ,EAAE,cAAc,CAAC,EAC1D,SAAS,CAAC,EAAE,MAAM;IAMpB;;;;OAIG;IACH,YAAY,IAAI,MAAM;IAItB;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;IACH,gBAAgB,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI;IAKhD;;;;;;;;OAQG;IACG,KAAK,CAAC,KAAK,SAAS,cAAc,EACtC,IAAI,EAAE,KAAK,EACX,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,EAC9B,QAAQ,CAAC,EAAE,aAAa,EACxB,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,MAAM,GAAG,MAAM,EAAE,CAAC;CAU9B"}
1
+ {"version":3,"file":"session-pathway.d.ts","sourceRoot":"","sources":["../../src/pathways/session-pathway.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AACnE,OAAO,KAAK,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAqBpE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AACH,qBAAa,qBAAqB,CAEhC,QAAQ,SAAS,MAAM,CAAC,MAAM,EAAE;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE,CAAC,GAAG,EAAE,EACzE,cAAc,SAAS,MAAM,QAAQ,GAAG,KAAK;IAE7C,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA2C;IAC3E,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAQ;IAElC;;;;;OAKG;gBAED,eAAe,EAAE,eAAe,CAAC,QAAQ,EAAE,cAAc,CAAC,EAC1D,SAAS,CAAC,EAAE,MAAM;IAMpB;;;;OAIG;IACH,YAAY,IAAI,MAAM;IAItB;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;IACH,gBAAgB,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI;IAKhD;;;;;;OAMG;IACG,KAAK,CAAC,KAAK,SAAS,cAAc,EAAE,CAAC,SAAS,OAAO,GAAG,KAAK,EACjE,IAAI,EAAE,KAAK,EACX,KAAK,EAAE;QACL,KAAK,CAAC,EAAE,CAAC,CAAA;QACT,IAAI,EAAE,CAAC,SAAS,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,EAAE,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAA;QAC5E,QAAQ,CAAC,EAAE,aAAa,CAAA;QACxB,OAAO,CAAC,EAAE,mBAAmB,CAAA;KAC9B,GACA,OAAO,CAAC,MAAM,GAAG,MAAM,EAAE,CAAC;CAiB9B"}
@@ -51,8 +51,14 @@ function generateUUID() {
51
51
  * session.withUserResolver(async () => getCurrentUserId());
52
52
  *
53
53
  * // Write events with session context
54
- * await session.write("order/placed", orderData);
55
- * await session.write("user/action", actionData);
54
+ * await session.write("order/placed", { data: orderData });
55
+ * await session.write("user/action", { data: actionData });
56
+ *
57
+ * // Write batch events with session context
58
+ * await session.write("user/actions", {
59
+ * batch: true,
60
+ * data: [actionData1, actionData2]
61
+ * });
56
62
  *
57
63
  * // All events will be associated with the same session ID
58
64
  * ```
@@ -114,7 +120,7 @@ class SessionPathwayBuilder {
114
120
  * });
115
121
  *
116
122
  * // When writing events, the user ID will be automatically included
117
- * await session.write("user/action", actionData);
123
+ * await session.write("user/action", { data: actionData });
118
124
  * ```
119
125
  */
120
126
  withUserResolver(resolver) {
@@ -125,18 +131,22 @@ class SessionPathwayBuilder {
125
131
  * Writes data to a pathway, proxying to the underlying PathwaysBuilder
126
132
  *
127
133
  * @param path The pathway to write to
128
- * @param data The data to write
129
- * @param metadata Optional metadata to include with the event
130
- * @param options Optional write options
134
+ * @param input Object containing the data, metadata, options, and optional batch flag
131
135
  * @returns A promise that resolves to the event ID(s)
132
136
  */
133
- async write(path, data, metadata, options) {
137
+ async write(path, input) {
138
+ const { data, metadata, options, batch } = input;
134
139
  // Create new options object with session ID
135
140
  const finalOptions = options ? { ...options } : {};
136
141
  // Always include the session ID in the options
137
142
  finalOptions.sessionId = options?.sessionId ?? this.sessionId;
138
143
  // The PathwaysBuilder will handle session-specific user resolvers
139
- return await this.pathwaysBuilder.write(path, { data, metadata, options: finalOptions });
144
+ return await this.pathwaysBuilder.write(path, {
145
+ batch,
146
+ data,
147
+ metadata,
148
+ options: finalOptions,
149
+ });
140
150
  }
141
151
  }
142
152
  exports.SessionPathwayBuilder = SessionPathwayBuilder;