@flowcore/pathways 0.7.0 → 0.8.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 +7 -0
- package/esm/pathways/builder.d.ts +14 -5
- package/esm/pathways/builder.d.ts.map +1 -1
- package/esm/pathways/builder.js +63 -42
- package/esm/pathways/index.d.ts +2 -0
- package/esm/pathways/index.d.ts.map +1 -1
- package/esm/pathways/index.js +2 -0
- package/esm/pathways/session-pathway.d.ts +37 -0
- package/esm/pathways/session-pathway.d.ts.map +1 -0
- package/esm/pathways/session-pathway.js +73 -0
- package/esm/pathways/types.d.ts +5 -0
- package/esm/pathways/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/script/pathways/builder.d.ts +14 -5
- package/script/pathways/builder.d.ts.map +1 -1
- package/script/pathways/builder.js +63 -42
- package/script/pathways/index.d.ts +2 -0
- package/script/pathways/index.d.ts.map +1 -1
- package/script/pathways/index.js +2 -0
- package/script/pathways/session-pathway.d.ts +37 -0
- package/script/pathways/session-pathway.d.ts.map +1 -0
- package/script/pathways/session-pathway.js +77 -0
- package/script/pathways/types.d.ts +5 -0
- package/script/pathways/types.d.ts.map +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.8.0](https://github.com/flowcore-io/flowcore-pathways/compare/v0.7.0...v0.8.0) (2025-03-18)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### Features
|
|
7
|
+
|
|
8
|
+
* **pathways:** :sparkles: Add session-specific user resolver functionality ([0e0c074](https://github.com/flowcore-io/flowcore-pathways/commit/0e0c074b451b15d3a83ea49f0d838ed559306290))
|
|
9
|
+
|
|
3
10
|
## [0.7.0](https://github.com/flowcore-io/flowcore-pathways/compare/v0.6.0...v0.7.0) (2025-03-18)
|
|
4
11
|
|
|
5
12
|
|
|
@@ -62,6 +62,7 @@ export declare class PathwaysBuilder<TPathway extends Record<string, unknown> =
|
|
|
62
62
|
private pathwayTimeoutMs;
|
|
63
63
|
private auditHandler?;
|
|
64
64
|
private userIdResolver?;
|
|
65
|
+
private readonly sessionUserResolvers;
|
|
65
66
|
private readonly logger;
|
|
66
67
|
private readonly baseUrl;
|
|
67
68
|
private readonly tenant;
|
|
@@ -103,6 +104,19 @@ export declare class PathwaysBuilder<TPathway extends Record<string, unknown> =
|
|
|
103
104
|
* @returns The PathwaysBuilder instance with custom user ID resolver configured
|
|
104
105
|
*/
|
|
105
106
|
withUserResolver(resolver: UserIdResolver): PathwaysBuilder<TPathway, TWritablePaths>;
|
|
107
|
+
/**
|
|
108
|
+
* Registers a user resolver for a specific session
|
|
109
|
+
* @param sessionId The session ID to associate with this resolver
|
|
110
|
+
* @param resolver The resolver function that resolves to the user ID for this session
|
|
111
|
+
* @returns The PathwaysBuilder instance for chaining
|
|
112
|
+
*/
|
|
113
|
+
withSessionUserResolver(sessionId: string, resolver: UserIdResolver): PathwaysBuilder<TPathway, TWritablePaths>;
|
|
114
|
+
/**
|
|
115
|
+
* Gets a user resolver for a specific session ID
|
|
116
|
+
* @param sessionId The session ID to get the resolver for
|
|
117
|
+
* @returns The resolver function for the session, or undefined if none exists
|
|
118
|
+
*/
|
|
119
|
+
getSessionUserResolver(sessionId: string): UserIdResolver | undefined;
|
|
106
120
|
/**
|
|
107
121
|
* Process a pathway event with error handling and retries
|
|
108
122
|
* @param pathway The pathway to process
|
|
@@ -189,10 +203,5 @@ export declare class PathwaysBuilder<TPathway extends Record<string, unknown> =
|
|
|
189
203
|
* @throws Error if the timeout is exceeded
|
|
190
204
|
*/
|
|
191
205
|
private waitForPathwayToBeProcessed;
|
|
192
|
-
/**
|
|
193
|
-
* Creates a new instance of PathwaysBuilder with the same configuration
|
|
194
|
-
* @returns A new PathwaysBuilder instance with the same type parameters and configuration
|
|
195
|
-
*/
|
|
196
|
-
clone(): PathwaysBuilder<TPathway, TWritablePaths>;
|
|
197
206
|
}
|
|
198
207
|
//# sourceMappingURL=builder.d.ts.map
|
|
@@ -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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"}
|
package/esm/pathways/builder.js
CHANGED
|
@@ -150,6 +150,13 @@ export class PathwaysBuilder {
|
|
|
150
150
|
writable: true,
|
|
151
151
|
value: void 0
|
|
152
152
|
});
|
|
153
|
+
// Session-specific user resolvers
|
|
154
|
+
Object.defineProperty(this, "sessionUserResolvers", {
|
|
155
|
+
enumerable: true,
|
|
156
|
+
configurable: true,
|
|
157
|
+
writable: true,
|
|
158
|
+
value: new Map()
|
|
159
|
+
});
|
|
153
160
|
// Logger instance (but not using it yet due to TypeScript errors)
|
|
154
161
|
Object.defineProperty(this, "logger", {
|
|
155
162
|
enumerable: true,
|
|
@@ -240,6 +247,25 @@ export class PathwaysBuilder {
|
|
|
240
247
|
this.userIdResolver = resolver;
|
|
241
248
|
return this;
|
|
242
249
|
}
|
|
250
|
+
/**
|
|
251
|
+
* Registers a user resolver for a specific session
|
|
252
|
+
* @param sessionId The session ID to associate with this resolver
|
|
253
|
+
* @param resolver The resolver function that resolves to the user ID for this session
|
|
254
|
+
* @returns The PathwaysBuilder instance for chaining
|
|
255
|
+
*/
|
|
256
|
+
withSessionUserResolver(sessionId, resolver) {
|
|
257
|
+
this.logger.debug('Configuring session-specific user resolver', { sessionId });
|
|
258
|
+
this.sessionUserResolvers.set(sessionId, resolver);
|
|
259
|
+
return this;
|
|
260
|
+
}
|
|
261
|
+
/**
|
|
262
|
+
* Gets a user resolver for a specific session ID
|
|
263
|
+
* @param sessionId The session ID to get the resolver for
|
|
264
|
+
* @returns The resolver function for the session, or undefined if none exists
|
|
265
|
+
*/
|
|
266
|
+
getSessionUserResolver(sessionId) {
|
|
267
|
+
return this.sessionUserResolvers.get(sessionId);
|
|
268
|
+
}
|
|
243
269
|
/**
|
|
244
270
|
* Process a pathway event with error handling and retries
|
|
245
271
|
* @param pathway The pathway to process
|
|
@@ -534,7 +560,8 @@ export class PathwaysBuilder {
|
|
|
534
560
|
pathway: pathStr,
|
|
535
561
|
metadata,
|
|
536
562
|
options: {
|
|
537
|
-
fireAndForget: options?.fireAndForget
|
|
563
|
+
fireAndForget: options?.fireAndForget,
|
|
564
|
+
sessionId: options?.sessionId
|
|
538
565
|
}
|
|
539
566
|
});
|
|
540
567
|
if (!this.pathways[path]) {
|
|
@@ -558,17 +585,43 @@ export class PathwaysBuilder {
|
|
|
558
585
|
}
|
|
559
586
|
// Create a copy of the metadata to avoid modifying the original
|
|
560
587
|
const finalMetadata = metadata ? { ...metadata } : {};
|
|
588
|
+
// Check for session-specific user resolver
|
|
589
|
+
let userId;
|
|
590
|
+
if (options?.sessionId) {
|
|
591
|
+
const sessionUserResolver = this.sessionUserResolvers.get(options.sessionId);
|
|
592
|
+
if (sessionUserResolver) {
|
|
593
|
+
try {
|
|
594
|
+
userId = await sessionUserResolver();
|
|
595
|
+
this.logger.debug(`Using session-specific user resolver`, {
|
|
596
|
+
pathway: pathStr,
|
|
597
|
+
sessionId: options.sessionId,
|
|
598
|
+
userId
|
|
599
|
+
});
|
|
600
|
+
}
|
|
601
|
+
catch (error) {
|
|
602
|
+
this.logger.error(`Error resolving session user ID`, error instanceof Error ? error : new Error(String(error)), {
|
|
603
|
+
pathway: pathStr,
|
|
604
|
+
sessionId: options.sessionId
|
|
605
|
+
});
|
|
606
|
+
}
|
|
607
|
+
}
|
|
608
|
+
}
|
|
561
609
|
// Process audit metadata if audit is configured
|
|
562
610
|
if (this.userIdResolver) {
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
611
|
+
// Only use global resolver if we don't already have a user ID from a session resolver
|
|
612
|
+
if (!userId) {
|
|
613
|
+
this.logger.debug(`Resolving user ID for audit metadata`, { pathway: pathStr });
|
|
614
|
+
userId = await this.userIdResolver();
|
|
615
|
+
}
|
|
616
|
+
}
|
|
617
|
+
// Determine the audit mode: default is "user" unless explicitly specified as "system"
|
|
618
|
+
const auditMode = options?.auditMode ?? "user";
|
|
619
|
+
this.logger.debug(`Adding audit metadata`, {
|
|
620
|
+
pathway: pathStr,
|
|
621
|
+
auditMode,
|
|
622
|
+
userId
|
|
623
|
+
});
|
|
624
|
+
if (userId) {
|
|
572
625
|
// Add appropriate audit metadata based on mode
|
|
573
626
|
if (auditMode === "system") {
|
|
574
627
|
finalMetadata["audit/user-id"] = "system";
|
|
@@ -654,36 +707,4 @@ export class PathwaysBuilder {
|
|
|
654
707
|
attempts
|
|
655
708
|
});
|
|
656
709
|
}
|
|
657
|
-
/**
|
|
658
|
-
* Creates a new instance of PathwaysBuilder with the same configuration
|
|
659
|
-
* @returns A new PathwaysBuilder instance with the same type parameters and configuration
|
|
660
|
-
*/
|
|
661
|
-
clone() {
|
|
662
|
-
this.logger.debug('Building new PathwaysBuilder instance with same configuration');
|
|
663
|
-
// Create new instance with same base configuration
|
|
664
|
-
const builder = new PathwaysBuilder({
|
|
665
|
-
baseUrl: this.baseUrl,
|
|
666
|
-
tenant: this.tenant,
|
|
667
|
-
dataCore: this.dataCore,
|
|
668
|
-
apiKey: this.apiKey,
|
|
669
|
-
pathwayTimeoutMs: this.pathwayTimeoutMs,
|
|
670
|
-
logger: this.logger
|
|
671
|
-
});
|
|
672
|
-
// Copy pathway state configuration if custom
|
|
673
|
-
if (!(this.pathwayState instanceof InternalPathwayState)) {
|
|
674
|
-
builder.withPathwayState(this.pathwayState);
|
|
675
|
-
}
|
|
676
|
-
// Copy audit configuration if present
|
|
677
|
-
if (this.auditHandler) {
|
|
678
|
-
builder.withAudit(this.auditHandler);
|
|
679
|
-
}
|
|
680
|
-
// Copy user resolver if present
|
|
681
|
-
if (this.userIdResolver) {
|
|
682
|
-
builder.withUserResolver(this.userIdResolver);
|
|
683
|
-
}
|
|
684
|
-
// The new instance will have the same type parameters but
|
|
685
|
-
// it will be empty of pathways until they are registered again
|
|
686
|
-
this.logger.info('New PathwaysBuilder instance created');
|
|
687
|
-
return builder;
|
|
688
|
-
}
|
|
689
710
|
}
|
package/esm/pathways/index.d.ts
CHANGED
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Exports all components needed to build and manage pathways including:
|
|
5
5
|
* - Pathway builder
|
|
6
|
+
* - Session pathway builder
|
|
6
7
|
* - State management
|
|
7
8
|
* - Storage adapters (KV, Postgres)
|
|
8
9
|
* - Logging
|
|
@@ -15,5 +16,6 @@ export * from "./internal-pathway.state.js";
|
|
|
15
16
|
export * from "./kv/kv-adapter.js";
|
|
16
17
|
export * from "./logger.js";
|
|
17
18
|
export * from "./postgres/index.js";
|
|
19
|
+
export * from "./session-pathway.js";
|
|
18
20
|
export * from "./types.js";
|
|
19
21
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/pathways/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/pathways/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,cAAc,cAAc,CAAC;AAC7B,cAAc,6BAA6B,CAAC;AAC5C,cAAc,oBAAoB,CAAC;AACnC,cAAc,aAAa,CAAC;AAC5B,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,YAAY,CAAC"}
|
package/esm/pathways/index.js
CHANGED
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Exports all components needed to build and manage pathways including:
|
|
5
5
|
* - Pathway builder
|
|
6
|
+
* - Session pathway builder
|
|
6
7
|
* - State management
|
|
7
8
|
* - Storage adapters (KV, Postgres)
|
|
8
9
|
* - Logging
|
|
@@ -15,4 +16,5 @@ export * from "./internal-pathway.state.js";
|
|
|
15
16
|
export * from "./kv/kv-adapter.js";
|
|
16
17
|
export * from "./logger.js";
|
|
17
18
|
export * from "./postgres/index.js";
|
|
19
|
+
export * from "./session-pathway.js";
|
|
18
20
|
export * from "./types.js";
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import type { PathwaysBuilder } from "./builder.js";
|
|
2
|
+
import type { EventMetadata, PathwayWriteOptions } from "./types.js";
|
|
3
|
+
/**
|
|
4
|
+
* SessionPathwayBuilder wraps a PathwaysBuilder instance and automatically
|
|
5
|
+
* associates a session ID with all pathway writes.
|
|
6
|
+
*
|
|
7
|
+
* This provides a convenient way to track operations within a user session
|
|
8
|
+
* by automatically including the session ID in metadata.
|
|
9
|
+
*/
|
|
10
|
+
export declare class SessionPathwayBuilder<TPathway extends Record<string, unknown> = {}, TWritablePaths extends keyof TPathway = never> {
|
|
11
|
+
private readonly pathwaysBuilder;
|
|
12
|
+
private readonly sessionId;
|
|
13
|
+
/**
|
|
14
|
+
* Creates a new SessionPathwayBuilder
|
|
15
|
+
*
|
|
16
|
+
* @param pathwaysBuilder The configured PathwaysBuilder instance to wrap
|
|
17
|
+
* @param sessionId Optional session ID to associate with all operations. If not provided, one will be generated automatically.
|
|
18
|
+
*/
|
|
19
|
+
constructor(pathwaysBuilder: PathwaysBuilder<TPathway, TWritablePaths>, sessionId?: string);
|
|
20
|
+
/**
|
|
21
|
+
* Gets the current session ID
|
|
22
|
+
*
|
|
23
|
+
* @returns The session ID associated with this instance
|
|
24
|
+
*/
|
|
25
|
+
getSessionId(): string;
|
|
26
|
+
/**
|
|
27
|
+
* Writes data to a pathway, proxying to the underlying PathwaysBuilder
|
|
28
|
+
*
|
|
29
|
+
* @param path The pathway to write to
|
|
30
|
+
* @param data The data to write
|
|
31
|
+
* @param metadata Optional metadata to include with the event
|
|
32
|
+
* @param options Optional write options
|
|
33
|
+
* @returns A promise that resolves to the event ID(s)
|
|
34
|
+
*/
|
|
35
|
+
write<TPath extends TWritablePaths>(path: TPath, data: TPathway[TPath], metadata?: EventMetadata, options?: PathwayWriteOptions): Promise<string | string[]>;
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=session-pathway.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-pathway.d.ts","sourceRoot":"","sources":["../../src/pathways/session-pathway.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,KAAK,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAqBrE;;;;;;GAMG;AACH,qBAAa,qBAAqB,CAEhC,QAAQ,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,EAAE,EAC7C,cAAc,SAAS,MAAM,QAAQ,GAAG,KAAK;IAE7C,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA4C;IAC5E,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IAEnC;;;;;OAKG;gBAED,eAAe,EAAE,eAAe,CAAC,QAAQ,EAAE,cAAc,CAAC,EAC1D,SAAS,CAAC,EAAE,MAAM;IAMpB;;;;OAIG;IACH,YAAY,IAAI,MAAM;IAItB;;;;;;;;OAQG;IACG,KAAK,CAAC,KAAK,SAAS,cAAc,EACtC,IAAI,EAAE,KAAK,EACX,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC,EACrB,QAAQ,CAAC,EAAE,aAAa,EACxB,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,MAAM,GAAG,MAAM,EAAE,CAAC;CAU9B"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generates a UUID v4 in a cross-platform compatible way (Deno, Bun, Node.js)
|
|
3
|
+
* @returns A random UUID v4 string
|
|
4
|
+
*/
|
|
5
|
+
function generateUUID() {
|
|
6
|
+
// Check for Deno or browser crypto.randomUUID support
|
|
7
|
+
if (typeof crypto !== 'undefined' && crypto.randomUUID) {
|
|
8
|
+
return crypto.randomUUID();
|
|
9
|
+
}
|
|
10
|
+
// Fallback to manual UUID generation (compatible with all platforms)
|
|
11
|
+
// Implementation based on RFC4122 version 4
|
|
12
|
+
return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => {
|
|
13
|
+
const r = Math.random() * 16 | 0;
|
|
14
|
+
const v = c === 'x' ? r : (r & 0x3 | 0x8);
|
|
15
|
+
return v.toString(16);
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* SessionPathwayBuilder wraps a PathwaysBuilder instance and automatically
|
|
20
|
+
* associates a session ID with all pathway writes.
|
|
21
|
+
*
|
|
22
|
+
* This provides a convenient way to track operations within a user session
|
|
23
|
+
* by automatically including the session ID in metadata.
|
|
24
|
+
*/
|
|
25
|
+
export class SessionPathwayBuilder {
|
|
26
|
+
/**
|
|
27
|
+
* Creates a new SessionPathwayBuilder
|
|
28
|
+
*
|
|
29
|
+
* @param pathwaysBuilder The configured PathwaysBuilder instance to wrap
|
|
30
|
+
* @param sessionId Optional session ID to associate with all operations. If not provided, one will be generated automatically.
|
|
31
|
+
*/
|
|
32
|
+
constructor(pathwaysBuilder, sessionId) {
|
|
33
|
+
Object.defineProperty(this, "pathwaysBuilder", {
|
|
34
|
+
enumerable: true,
|
|
35
|
+
configurable: true,
|
|
36
|
+
writable: true,
|
|
37
|
+
value: void 0
|
|
38
|
+
});
|
|
39
|
+
Object.defineProperty(this, "sessionId", {
|
|
40
|
+
enumerable: true,
|
|
41
|
+
configurable: true,
|
|
42
|
+
writable: true,
|
|
43
|
+
value: void 0
|
|
44
|
+
});
|
|
45
|
+
this.pathwaysBuilder = pathwaysBuilder;
|
|
46
|
+
this.sessionId = sessionId ?? generateUUID();
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Gets the current session ID
|
|
50
|
+
*
|
|
51
|
+
* @returns The session ID associated with this instance
|
|
52
|
+
*/
|
|
53
|
+
getSessionId() {
|
|
54
|
+
return this.sessionId;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Writes data to a pathway, proxying to the underlying PathwaysBuilder
|
|
58
|
+
*
|
|
59
|
+
* @param path The pathway to write to
|
|
60
|
+
* @param data The data to write
|
|
61
|
+
* @param metadata Optional metadata to include with the event
|
|
62
|
+
* @param options Optional write options
|
|
63
|
+
* @returns A promise that resolves to the event ID(s)
|
|
64
|
+
*/
|
|
65
|
+
async write(path, data, metadata, options) {
|
|
66
|
+
// Create new options object with session ID
|
|
67
|
+
const finalOptions = options ? { ...options } : {};
|
|
68
|
+
// Always include the session ID in the options
|
|
69
|
+
finalOptions.sessionId = options?.sessionId ?? this.sessionId;
|
|
70
|
+
// The PathwaysBuilder will handle session-specific user resolvers
|
|
71
|
+
return await this.pathwaysBuilder.write(path, data, metadata, finalOptions);
|
|
72
|
+
}
|
|
73
|
+
}
|
package/esm/pathways/types.d.ts
CHANGED
|
@@ -132,6 +132,11 @@ export type PathwayWriteOptions = WebhookSendOptions & {
|
|
|
132
132
|
* @default "user"
|
|
133
133
|
*/
|
|
134
134
|
auditMode?: "user" | "system";
|
|
135
|
+
/**
|
|
136
|
+
* Session ID for this write operation
|
|
137
|
+
* Used to associate the operation with a specific session
|
|
138
|
+
*/
|
|
139
|
+
sessionId?: string;
|
|
135
140
|
};
|
|
136
141
|
export {};
|
|
137
142
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -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;
|
|
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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@flowcore/pathways",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.8.0",
|
|
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-sdk#readme",
|
|
6
6
|
"repository": {
|
|
@@ -62,6 +62,7 @@ export declare class PathwaysBuilder<TPathway extends Record<string, unknown> =
|
|
|
62
62
|
private pathwayTimeoutMs;
|
|
63
63
|
private auditHandler?;
|
|
64
64
|
private userIdResolver?;
|
|
65
|
+
private readonly sessionUserResolvers;
|
|
65
66
|
private readonly logger;
|
|
66
67
|
private readonly baseUrl;
|
|
67
68
|
private readonly tenant;
|
|
@@ -103,6 +104,19 @@ export declare class PathwaysBuilder<TPathway extends Record<string, unknown> =
|
|
|
103
104
|
* @returns The PathwaysBuilder instance with custom user ID resolver configured
|
|
104
105
|
*/
|
|
105
106
|
withUserResolver(resolver: UserIdResolver): PathwaysBuilder<TPathway, TWritablePaths>;
|
|
107
|
+
/**
|
|
108
|
+
* Registers a user resolver for a specific session
|
|
109
|
+
* @param sessionId The session ID to associate with this resolver
|
|
110
|
+
* @param resolver The resolver function that resolves to the user ID for this session
|
|
111
|
+
* @returns The PathwaysBuilder instance for chaining
|
|
112
|
+
*/
|
|
113
|
+
withSessionUserResolver(sessionId: string, resolver: UserIdResolver): PathwaysBuilder<TPathway, TWritablePaths>;
|
|
114
|
+
/**
|
|
115
|
+
* Gets a user resolver for a specific session ID
|
|
116
|
+
* @param sessionId The session ID to get the resolver for
|
|
117
|
+
* @returns The resolver function for the session, or undefined if none exists
|
|
118
|
+
*/
|
|
119
|
+
getSessionUserResolver(sessionId: string): UserIdResolver | undefined;
|
|
106
120
|
/**
|
|
107
121
|
* Process a pathway event with error handling and retries
|
|
108
122
|
* @param pathway The pathway to process
|
|
@@ -189,10 +203,5 @@ export declare class PathwaysBuilder<TPathway extends Record<string, unknown> =
|
|
|
189
203
|
* @throws Error if the timeout is exceeded
|
|
190
204
|
*/
|
|
191
205
|
private waitForPathwayToBeProcessed;
|
|
192
|
-
/**
|
|
193
|
-
* Creates a new instance of PathwaysBuilder with the same configuration
|
|
194
|
-
* @returns A new PathwaysBuilder instance with the same type parameters and configuration
|
|
195
|
-
*/
|
|
196
|
-
clone(): PathwaysBuilder<TPathway, TWritablePaths>;
|
|
197
206
|
}
|
|
198
207
|
//# sourceMappingURL=builder.d.ts.map
|
|
@@ -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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"}
|
|
@@ -153,6 +153,13 @@ class PathwaysBuilder {
|
|
|
153
153
|
writable: true,
|
|
154
154
|
value: void 0
|
|
155
155
|
});
|
|
156
|
+
// Session-specific user resolvers
|
|
157
|
+
Object.defineProperty(this, "sessionUserResolvers", {
|
|
158
|
+
enumerable: true,
|
|
159
|
+
configurable: true,
|
|
160
|
+
writable: true,
|
|
161
|
+
value: new Map()
|
|
162
|
+
});
|
|
156
163
|
// Logger instance (but not using it yet due to TypeScript errors)
|
|
157
164
|
Object.defineProperty(this, "logger", {
|
|
158
165
|
enumerable: true,
|
|
@@ -243,6 +250,25 @@ class PathwaysBuilder {
|
|
|
243
250
|
this.userIdResolver = resolver;
|
|
244
251
|
return this;
|
|
245
252
|
}
|
|
253
|
+
/**
|
|
254
|
+
* Registers a user resolver for a specific session
|
|
255
|
+
* @param sessionId The session ID to associate with this resolver
|
|
256
|
+
* @param resolver The resolver function that resolves to the user ID for this session
|
|
257
|
+
* @returns The PathwaysBuilder instance for chaining
|
|
258
|
+
*/
|
|
259
|
+
withSessionUserResolver(sessionId, resolver) {
|
|
260
|
+
this.logger.debug('Configuring session-specific user resolver', { sessionId });
|
|
261
|
+
this.sessionUserResolvers.set(sessionId, resolver);
|
|
262
|
+
return this;
|
|
263
|
+
}
|
|
264
|
+
/**
|
|
265
|
+
* Gets a user resolver for a specific session ID
|
|
266
|
+
* @param sessionId The session ID to get the resolver for
|
|
267
|
+
* @returns The resolver function for the session, or undefined if none exists
|
|
268
|
+
*/
|
|
269
|
+
getSessionUserResolver(sessionId) {
|
|
270
|
+
return this.sessionUserResolvers.get(sessionId);
|
|
271
|
+
}
|
|
246
272
|
/**
|
|
247
273
|
* Process a pathway event with error handling and retries
|
|
248
274
|
* @param pathway The pathway to process
|
|
@@ -537,7 +563,8 @@ class PathwaysBuilder {
|
|
|
537
563
|
pathway: pathStr,
|
|
538
564
|
metadata,
|
|
539
565
|
options: {
|
|
540
|
-
fireAndForget: options?.fireAndForget
|
|
566
|
+
fireAndForget: options?.fireAndForget,
|
|
567
|
+
sessionId: options?.sessionId
|
|
541
568
|
}
|
|
542
569
|
});
|
|
543
570
|
if (!this.pathways[path]) {
|
|
@@ -561,17 +588,43 @@ class PathwaysBuilder {
|
|
|
561
588
|
}
|
|
562
589
|
// Create a copy of the metadata to avoid modifying the original
|
|
563
590
|
const finalMetadata = metadata ? { ...metadata } : {};
|
|
591
|
+
// Check for session-specific user resolver
|
|
592
|
+
let userId;
|
|
593
|
+
if (options?.sessionId) {
|
|
594
|
+
const sessionUserResolver = this.sessionUserResolvers.get(options.sessionId);
|
|
595
|
+
if (sessionUserResolver) {
|
|
596
|
+
try {
|
|
597
|
+
userId = await sessionUserResolver();
|
|
598
|
+
this.logger.debug(`Using session-specific user resolver`, {
|
|
599
|
+
pathway: pathStr,
|
|
600
|
+
sessionId: options.sessionId,
|
|
601
|
+
userId
|
|
602
|
+
});
|
|
603
|
+
}
|
|
604
|
+
catch (error) {
|
|
605
|
+
this.logger.error(`Error resolving session user ID`, error instanceof Error ? error : new Error(String(error)), {
|
|
606
|
+
pathway: pathStr,
|
|
607
|
+
sessionId: options.sessionId
|
|
608
|
+
});
|
|
609
|
+
}
|
|
610
|
+
}
|
|
611
|
+
}
|
|
564
612
|
// Process audit metadata if audit is configured
|
|
565
613
|
if (this.userIdResolver) {
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
614
|
+
// Only use global resolver if we don't already have a user ID from a session resolver
|
|
615
|
+
if (!userId) {
|
|
616
|
+
this.logger.debug(`Resolving user ID for audit metadata`, { pathway: pathStr });
|
|
617
|
+
userId = await this.userIdResolver();
|
|
618
|
+
}
|
|
619
|
+
}
|
|
620
|
+
// Determine the audit mode: default is "user" unless explicitly specified as "system"
|
|
621
|
+
const auditMode = options?.auditMode ?? "user";
|
|
622
|
+
this.logger.debug(`Adding audit metadata`, {
|
|
623
|
+
pathway: pathStr,
|
|
624
|
+
auditMode,
|
|
625
|
+
userId
|
|
626
|
+
});
|
|
627
|
+
if (userId) {
|
|
575
628
|
// Add appropriate audit metadata based on mode
|
|
576
629
|
if (auditMode === "system") {
|
|
577
630
|
finalMetadata["audit/user-id"] = "system";
|
|
@@ -657,37 +710,5 @@ class PathwaysBuilder {
|
|
|
657
710
|
attempts
|
|
658
711
|
});
|
|
659
712
|
}
|
|
660
|
-
/**
|
|
661
|
-
* Creates a new instance of PathwaysBuilder with the same configuration
|
|
662
|
-
* @returns A new PathwaysBuilder instance with the same type parameters and configuration
|
|
663
|
-
*/
|
|
664
|
-
clone() {
|
|
665
|
-
this.logger.debug('Building new PathwaysBuilder instance with same configuration');
|
|
666
|
-
// Create new instance with same base configuration
|
|
667
|
-
const builder = new PathwaysBuilder({
|
|
668
|
-
baseUrl: this.baseUrl,
|
|
669
|
-
tenant: this.tenant,
|
|
670
|
-
dataCore: this.dataCore,
|
|
671
|
-
apiKey: this.apiKey,
|
|
672
|
-
pathwayTimeoutMs: this.pathwayTimeoutMs,
|
|
673
|
-
logger: this.logger
|
|
674
|
-
});
|
|
675
|
-
// Copy pathway state configuration if custom
|
|
676
|
-
if (!(this.pathwayState instanceof internal_pathway_state_js_1.InternalPathwayState)) {
|
|
677
|
-
builder.withPathwayState(this.pathwayState);
|
|
678
|
-
}
|
|
679
|
-
// Copy audit configuration if present
|
|
680
|
-
if (this.auditHandler) {
|
|
681
|
-
builder.withAudit(this.auditHandler);
|
|
682
|
-
}
|
|
683
|
-
// Copy user resolver if present
|
|
684
|
-
if (this.userIdResolver) {
|
|
685
|
-
builder.withUserResolver(this.userIdResolver);
|
|
686
|
-
}
|
|
687
|
-
// The new instance will have the same type parameters but
|
|
688
|
-
// it will be empty of pathways until they are registered again
|
|
689
|
-
this.logger.info('New PathwaysBuilder instance created');
|
|
690
|
-
return builder;
|
|
691
|
-
}
|
|
692
713
|
}
|
|
693
714
|
exports.PathwaysBuilder = PathwaysBuilder;
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Exports all components needed to build and manage pathways including:
|
|
5
5
|
* - Pathway builder
|
|
6
|
+
* - Session pathway builder
|
|
6
7
|
* - State management
|
|
7
8
|
* - Storage adapters (KV, Postgres)
|
|
8
9
|
* - Logging
|
|
@@ -15,5 +16,6 @@ export * from "./internal-pathway.state.js";
|
|
|
15
16
|
export * from "./kv/kv-adapter.js";
|
|
16
17
|
export * from "./logger.js";
|
|
17
18
|
export * from "./postgres/index.js";
|
|
19
|
+
export * from "./session-pathway.js";
|
|
18
20
|
export * from "./types.js";
|
|
19
21
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/pathways/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/pathways/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,cAAc,cAAc,CAAC;AAC7B,cAAc,6BAA6B,CAAC;AAC5C,cAAc,oBAAoB,CAAC;AACnC,cAAc,aAAa,CAAC;AAC5B,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,YAAY,CAAC"}
|
package/script/pathways/index.js
CHANGED
|
@@ -19,6 +19,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
19
19
|
*
|
|
20
20
|
* Exports all components needed to build and manage pathways including:
|
|
21
21
|
* - Pathway builder
|
|
22
|
+
* - Session pathway builder
|
|
22
23
|
* - State management
|
|
23
24
|
* - Storage adapters (KV, Postgres)
|
|
24
25
|
* - Logging
|
|
@@ -31,4 +32,5 @@ __exportStar(require("./internal-pathway.state.js"), exports);
|
|
|
31
32
|
__exportStar(require("./kv/kv-adapter.js"), exports);
|
|
32
33
|
__exportStar(require("./logger.js"), exports);
|
|
33
34
|
__exportStar(require("./postgres/index.js"), exports);
|
|
35
|
+
__exportStar(require("./session-pathway.js"), exports);
|
|
34
36
|
__exportStar(require("./types.js"), exports);
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import type { PathwaysBuilder } from "./builder.js";
|
|
2
|
+
import type { EventMetadata, PathwayWriteOptions } from "./types.js";
|
|
3
|
+
/**
|
|
4
|
+
* SessionPathwayBuilder wraps a PathwaysBuilder instance and automatically
|
|
5
|
+
* associates a session ID with all pathway writes.
|
|
6
|
+
*
|
|
7
|
+
* This provides a convenient way to track operations within a user session
|
|
8
|
+
* by automatically including the session ID in metadata.
|
|
9
|
+
*/
|
|
10
|
+
export declare class SessionPathwayBuilder<TPathway extends Record<string, unknown> = {}, TWritablePaths extends keyof TPathway = never> {
|
|
11
|
+
private readonly pathwaysBuilder;
|
|
12
|
+
private readonly sessionId;
|
|
13
|
+
/**
|
|
14
|
+
* Creates a new SessionPathwayBuilder
|
|
15
|
+
*
|
|
16
|
+
* @param pathwaysBuilder The configured PathwaysBuilder instance to wrap
|
|
17
|
+
* @param sessionId Optional session ID to associate with all operations. If not provided, one will be generated automatically.
|
|
18
|
+
*/
|
|
19
|
+
constructor(pathwaysBuilder: PathwaysBuilder<TPathway, TWritablePaths>, sessionId?: string);
|
|
20
|
+
/**
|
|
21
|
+
* Gets the current session ID
|
|
22
|
+
*
|
|
23
|
+
* @returns The session ID associated with this instance
|
|
24
|
+
*/
|
|
25
|
+
getSessionId(): string;
|
|
26
|
+
/**
|
|
27
|
+
* Writes data to a pathway, proxying to the underlying PathwaysBuilder
|
|
28
|
+
*
|
|
29
|
+
* @param path The pathway to write to
|
|
30
|
+
* @param data The data to write
|
|
31
|
+
* @param metadata Optional metadata to include with the event
|
|
32
|
+
* @param options Optional write options
|
|
33
|
+
* @returns A promise that resolves to the event ID(s)
|
|
34
|
+
*/
|
|
35
|
+
write<TPath extends TWritablePaths>(path: TPath, data: TPathway[TPath], metadata?: EventMetadata, options?: PathwayWriteOptions): Promise<string | string[]>;
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=session-pathway.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-pathway.d.ts","sourceRoot":"","sources":["../../src/pathways/session-pathway.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,KAAK,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAqBrE;;;;;;GAMG;AACH,qBAAa,qBAAqB,CAEhC,QAAQ,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,EAAE,EAC7C,cAAc,SAAS,MAAM,QAAQ,GAAG,KAAK;IAE7C,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA4C;IAC5E,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IAEnC;;;;;OAKG;gBAED,eAAe,EAAE,eAAe,CAAC,QAAQ,EAAE,cAAc,CAAC,EAC1D,SAAS,CAAC,EAAE,MAAM;IAMpB;;;;OAIG;IACH,YAAY,IAAI,MAAM;IAItB;;;;;;;;OAQG;IACG,KAAK,CAAC,KAAK,SAAS,cAAc,EACtC,IAAI,EAAE,KAAK,EACX,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC,EACrB,QAAQ,CAAC,EAAE,aAAa,EACxB,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,MAAM,GAAG,MAAM,EAAE,CAAC;CAU9B"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SessionPathwayBuilder = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Generates a UUID v4 in a cross-platform compatible way (Deno, Bun, Node.js)
|
|
6
|
+
* @returns A random UUID v4 string
|
|
7
|
+
*/
|
|
8
|
+
function generateUUID() {
|
|
9
|
+
// Check for Deno or browser crypto.randomUUID support
|
|
10
|
+
if (typeof crypto !== 'undefined' && crypto.randomUUID) {
|
|
11
|
+
return crypto.randomUUID();
|
|
12
|
+
}
|
|
13
|
+
// Fallback to manual UUID generation (compatible with all platforms)
|
|
14
|
+
// Implementation based on RFC4122 version 4
|
|
15
|
+
return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => {
|
|
16
|
+
const r = Math.random() * 16 | 0;
|
|
17
|
+
const v = c === 'x' ? r : (r & 0x3 | 0x8);
|
|
18
|
+
return v.toString(16);
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* SessionPathwayBuilder wraps a PathwaysBuilder instance and automatically
|
|
23
|
+
* associates a session ID with all pathway writes.
|
|
24
|
+
*
|
|
25
|
+
* This provides a convenient way to track operations within a user session
|
|
26
|
+
* by automatically including the session ID in metadata.
|
|
27
|
+
*/
|
|
28
|
+
class SessionPathwayBuilder {
|
|
29
|
+
/**
|
|
30
|
+
* Creates a new SessionPathwayBuilder
|
|
31
|
+
*
|
|
32
|
+
* @param pathwaysBuilder The configured PathwaysBuilder instance to wrap
|
|
33
|
+
* @param sessionId Optional session ID to associate with all operations. If not provided, one will be generated automatically.
|
|
34
|
+
*/
|
|
35
|
+
constructor(pathwaysBuilder, sessionId) {
|
|
36
|
+
Object.defineProperty(this, "pathwaysBuilder", {
|
|
37
|
+
enumerable: true,
|
|
38
|
+
configurable: true,
|
|
39
|
+
writable: true,
|
|
40
|
+
value: void 0
|
|
41
|
+
});
|
|
42
|
+
Object.defineProperty(this, "sessionId", {
|
|
43
|
+
enumerable: true,
|
|
44
|
+
configurable: true,
|
|
45
|
+
writable: true,
|
|
46
|
+
value: void 0
|
|
47
|
+
});
|
|
48
|
+
this.pathwaysBuilder = pathwaysBuilder;
|
|
49
|
+
this.sessionId = sessionId ?? generateUUID();
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Gets the current session ID
|
|
53
|
+
*
|
|
54
|
+
* @returns The session ID associated with this instance
|
|
55
|
+
*/
|
|
56
|
+
getSessionId() {
|
|
57
|
+
return this.sessionId;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Writes data to a pathway, proxying to the underlying PathwaysBuilder
|
|
61
|
+
*
|
|
62
|
+
* @param path The pathway to write to
|
|
63
|
+
* @param data The data to write
|
|
64
|
+
* @param metadata Optional metadata to include with the event
|
|
65
|
+
* @param options Optional write options
|
|
66
|
+
* @returns A promise that resolves to the event ID(s)
|
|
67
|
+
*/
|
|
68
|
+
async write(path, data, metadata, options) {
|
|
69
|
+
// Create new options object with session ID
|
|
70
|
+
const finalOptions = options ? { ...options } : {};
|
|
71
|
+
// Always include the session ID in the options
|
|
72
|
+
finalOptions.sessionId = options?.sessionId ?? this.sessionId;
|
|
73
|
+
// The PathwaysBuilder will handle session-specific user resolvers
|
|
74
|
+
return await this.pathwaysBuilder.write(path, data, metadata, finalOptions);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
exports.SessionPathwayBuilder = SessionPathwayBuilder;
|
|
@@ -132,6 +132,11 @@ export type PathwayWriteOptions = WebhookSendOptions & {
|
|
|
132
132
|
* @default "user"
|
|
133
133
|
*/
|
|
134
134
|
auditMode?: "user" | "system";
|
|
135
|
+
/**
|
|
136
|
+
* Session ID for this write operation
|
|
137
|
+
* Used to associate the operation with a specific session
|
|
138
|
+
*/
|
|
139
|
+
sessionId?: string;
|
|
135
140
|
};
|
|
136
141
|
export {};
|
|
137
142
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -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;
|
|
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"}
|