@flowcore/data-pump 0.19.1 → 0.21.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 +14 -0
- package/esm/data-pump/data-pump.d.ts +5 -0
- package/esm/data-pump/data-pump.d.ts.map +1 -1
- package/esm/data-pump/data-pump.js +6 -1
- package/esm/data-pump/pulse.d.ts +11 -0
- package/esm/data-pump/pulse.d.ts.map +1 -1
- package/esm/data-pump/pulse.js +36 -3
- package/package.json +1 -1
- package/script/data-pump/data-pump.d.ts +5 -0
- package/script/data-pump/data-pump.d.ts.map +1 -1
- package/script/data-pump/data-pump.js +6 -1
- package/script/data-pump/pulse.d.ts +11 -0
- package/script/data-pump/pulse.d.ts.map +1 -1
- package/script/data-pump/pulse.js +36 -3
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,19 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.21.0](https://github.com/flowcore-io/data-pump/compare/v0.20.0...v0.21.0) (2026-04-24)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### Features
|
|
7
|
+
|
|
8
|
+
* thread sourceId through PulseEmitter ([#70](https://github.com/flowcore-io/data-pump/issues/70)) ([119f364](https://github.com/flowcore-io/data-pump/commit/119f3641fc3c9360b8581e512dcb6ebbb6e4cda1))
|
|
9
|
+
|
|
10
|
+
## [0.20.0](https://github.com/flowcore-io/data-pump/compare/v0.19.1...v0.20.0) (2026-04-08)
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
### Features
|
|
14
|
+
|
|
15
|
+
* configurable log levels for pulse success and failure ([#68](https://github.com/flowcore-io/data-pump/issues/68)) ([71fe82a](https://github.com/flowcore-io/data-pump/commit/71fe82a0a9976b018fd71d5fd54b98cf9b6d5017))
|
|
16
|
+
|
|
3
17
|
## [0.19.1](https://github.com/flowcore-io/data-pump/compare/v0.19.0...v0.19.1) (2026-03-31)
|
|
4
18
|
|
|
5
19
|
|
|
@@ -36,6 +36,11 @@ export interface FlowcoreDataPumpOptions {
|
|
|
36
36
|
url: string;
|
|
37
37
|
intervalMs?: number;
|
|
38
38
|
pathwayId: string;
|
|
39
|
+
sourceId?: string;
|
|
40
|
+
/** Log level for successful pulses. Defaults to 'debug'. */
|
|
41
|
+
successLogLevel?: "debug" | "info" | "warn" | "error";
|
|
42
|
+
/** Log level for pulse failures. Defaults to 'warn'. */
|
|
43
|
+
failureLogLevel?: "debug" | "info" | "warn" | "error";
|
|
39
44
|
};
|
|
40
45
|
}
|
|
41
46
|
export declare class FlowcoreDataPump {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data-pump.d.ts","sourceRoot":"","sources":["../../src/data-pump/data-pump.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gDAAgD,CAAA;AAGnF,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAA;AAGrD,OAAO,EAAgB,KAAK,aAAa,EAAE,MAAM,YAAY,CAAA;AAC7D,OAAO,KAAK,EACV,oBAAoB,EACpB,0BAA0B,EAC1B,yBAAyB,EACzB,qBAAqB,EACrB,4BAA4B,EAC5B,cAAc,EACf,MAAM,YAAY,CAAA;AAEnB,UAAU,mCAAmC;IAC3C,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,EAAE,CAAA;CAClB;AAED,UAAU,wCAAwC;IAChD,IAAI,EAAE,WAAW,CAAA;CAClB;AAED,UAAU,qCAAqC;IAC7C,IAAI,EAAE,QAAQ,CAAA;IACd;;OAEG;IACH,UAAU,EAAE,MAAM,CAAA;CACnB;AAED,KAAK,+BAA+B,GAChC,mCAAmC,GACnC,wCAAwC,GACxC,qCAAqC,CAAA;AAEzC,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,oBAAoB,CAAA;IAC1B,UAAU,EAAE,0BAA0B,CAAA;IACtC,YAAY,EAAE,4BAA4B,CAAA;IAC1C,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,qBAAqB,CAAC,EAAE,MAAM,CAAA;IAC9B,oBAAoB,CAAC,EAAE,OAAO,CAAA;IAC9B,SAAS,CAAC,EAAE,yBAAyB,CAAA;IACrC,QAAQ,CAAC,EAAE,+BAA+B,CAAA;IAC1C,MAAM,CAAC,EAAE,cAAc,CAAA;IACvB,MAAM,CAAC,EAAE,IAAI,CAAA;IACb,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,KAAK,CAAC,EAAE;QACN,GAAG,EAAE,MAAM,CAAA;QACX,UAAU,CAAC,EAAE,MAAM,CAAA;QACnB,SAAS,EAAE,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"data-pump.d.ts","sourceRoot":"","sources":["../../src/data-pump/data-pump.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gDAAgD,CAAA;AAGnF,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAA;AAGrD,OAAO,EAAgB,KAAK,aAAa,EAAE,MAAM,YAAY,CAAA;AAC7D,OAAO,KAAK,EACV,oBAAoB,EACpB,0BAA0B,EAC1B,yBAAyB,EACzB,qBAAqB,EACrB,4BAA4B,EAC5B,cAAc,EACf,MAAM,YAAY,CAAA;AAEnB,UAAU,mCAAmC;IAC3C,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,EAAE,CAAA;CAClB;AAED,UAAU,wCAAwC;IAChD,IAAI,EAAE,WAAW,CAAA;CAClB;AAED,UAAU,qCAAqC;IAC7C,IAAI,EAAE,QAAQ,CAAA;IACd;;OAEG;IACH,UAAU,EAAE,MAAM,CAAA;CACnB;AAED,KAAK,+BAA+B,GAChC,mCAAmC,GACnC,wCAAwC,GACxC,qCAAqC,CAAA;AAEzC,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,oBAAoB,CAAA;IAC1B,UAAU,EAAE,0BAA0B,CAAA;IACtC,YAAY,EAAE,4BAA4B,CAAA;IAC1C,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,qBAAqB,CAAC,EAAE,MAAM,CAAA;IAC9B,oBAAoB,CAAC,EAAE,OAAO,CAAA;IAC9B,SAAS,CAAC,EAAE,yBAAyB,CAAA;IACrC,QAAQ,CAAC,EAAE,+BAA+B,CAAA;IAC1C,MAAM,CAAC,EAAE,cAAc,CAAA;IACvB,MAAM,CAAC,EAAE,IAAI,CAAA;IACb,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,KAAK,CAAC,EAAE;QACN,GAAG,EAAE,MAAM,CAAA;QACX,UAAU,CAAC,EAAE,MAAM,CAAA;QACnB,SAAS,EAAE,MAAM,CAAA;QACjB,QAAQ,CAAC,EAAE,MAAM,CAAA;QACjB,4DAA4D;QAC5D,eAAe,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAA;QACrD,wDAAwD;QACxD,eAAe,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAA;KACtD,CAAA;CACF;AAmBD,qBAAa,gBAAgB;aAkBT,UAAU,EAAE,kBAAkB;IAC9C,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;IArB1B,OAAO,CAAC,UAAU,CAAC,CAAQ;IAC3B,OAAO,CAAC,OAAO,CAAQ;IACvB,OAAO,CAAC,SAAS,CAAC,CAAuB;IACzC,OAAO,CAAC,eAAe,CAAC,CAAiB;IACzC,OAAO,CAAC,MAAM,CAAmC;IACjD,OAAO,CAAC,WAAW,CAAuB;IAC1C,OAAO,CAAC,WAAW,CAAC,CAAuB;IAC3C,OAAO,CAAC,MAAM,CAAQ;IACtB,OAAO,CAAC,oBAAoB,CAAC,CAAmD;IAChF,OAAO,CAAC,YAAY,CAAC,CAAc;IACnC,OAAO,CAAC,SAAS,CAAI;IACrB,OAAO,CAAC,iBAAiB,CAAI;IAC7B,OAAO,CAAC,WAAW,CAAI;IACvB,OAAO,CAAC,WAAW,CAAI;IACvB,OAAO,CAAC,0BAA0B,CAAI;IAEtC,OAAO;IAaP,IAAW,SAAS,IAAI,OAAO,CAE9B;IAEM,WAAW,IAAI,aAAa,GAAG,IAAI;WAoB5B,MAAM,CAAC,OAAO,EAAE,uBAAuB,EAAE,kBAAkB,CAAC,EAAE,kBAAkB,GAAG,gBAAgB;IAmEpG,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IA0C9D,OAAO,CAAC,KAAK,EAAE,qBAAqB,EAAE,MAAM,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI;IAQjE,IAAI,CAAC,SAAS,UAAQ,GAAG,IAAI;IAapC,OAAO,CAAC,WAAW;YAaL,IAAI;IAoFL,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAqCvD,cAAc,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE,aAAa,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;IAInE,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE;IA2B9B,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE;YA6BtB,MAAM;IAkDpB,OAAO,CAAC,gBAAgB;YAcV,WAAW;IAkBzB,OAAO,CAAC,mBAAmB;IA4D3B,OAAO,CAAC,iBAAiB;IA0CzB,OAAO,CAAC,YAAY,CAAC,CAAY;YACnB,aAAa;IAO3B,OAAO,CAAC,qBAAqB,CAAC,CAAY;YAC5B,sBAAsB;IAOpC,OAAO,CAAC,iBAAiB,CAAC,CAAY;YACxB,kBAAkB;CAWjC"}
|
|
@@ -210,15 +210,20 @@ export class FlowcoreDataPump {
|
|
|
210
210
|
}, options.logger);
|
|
211
211
|
if (options.pulse) {
|
|
212
212
|
const pathwayId = options.pulse.pathwayId;
|
|
213
|
+
const sourceId = options.pulse.sourceId;
|
|
213
214
|
pump.pulseEmitter = new PulseEmitter({
|
|
214
215
|
url: options.pulse.url,
|
|
215
216
|
intervalMs: options.pulse.intervalMs,
|
|
216
217
|
auth: options.auth,
|
|
217
218
|
logger: options.logger,
|
|
219
|
+
successLogLevel: options.pulse.successLogLevel,
|
|
220
|
+
failureLogLevel: options.pulse.failureLogLevel,
|
|
218
221
|
}, () => {
|
|
219
222
|
const snapshot = pump.getSnapshot();
|
|
220
|
-
if (snapshot)
|
|
223
|
+
if (snapshot) {
|
|
221
224
|
snapshot.pathwayId = pathwayId;
|
|
225
|
+
snapshot.sourceId = sourceId;
|
|
226
|
+
}
|
|
222
227
|
return snapshot;
|
|
223
228
|
});
|
|
224
229
|
}
|
package/esm/data-pump/pulse.d.ts
CHANGED
|
@@ -1,12 +1,21 @@
|
|
|
1
1
|
import type { FlowcoreDataPumpAuth, FlowcoreLogger } from "./types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Log level for pulse emitter events. Corresponds to FlowcoreLogger methods.
|
|
4
|
+
*/
|
|
5
|
+
export type PulseLogLevel = "debug" | "info" | "warn" | "error";
|
|
2
6
|
export interface PulseEmitterOptions {
|
|
3
7
|
url: string;
|
|
4
8
|
intervalMs?: number;
|
|
5
9
|
auth: FlowcoreDataPumpAuth;
|
|
6
10
|
logger?: FlowcoreLogger;
|
|
11
|
+
/** Log level for successful pulses. Defaults to 'debug'. */
|
|
12
|
+
successLogLevel?: PulseLogLevel;
|
|
13
|
+
/** Log level for pulse failures. Defaults to 'warn'. */
|
|
14
|
+
failureLogLevel?: PulseLogLevel;
|
|
7
15
|
}
|
|
8
16
|
export interface PulseSnapshot {
|
|
9
17
|
pathwayId: string;
|
|
18
|
+
sourceId?: string;
|
|
10
19
|
flowType: string;
|
|
11
20
|
timeBucket: string;
|
|
12
21
|
eventId: string | undefined;
|
|
@@ -26,6 +35,8 @@ export declare class PulseEmitter {
|
|
|
26
35
|
private startTimeout;
|
|
27
36
|
private readonly intervalMs;
|
|
28
37
|
private readonly logger?;
|
|
38
|
+
private readonly successLogLevel;
|
|
39
|
+
private readonly failureLogLevel;
|
|
29
40
|
constructor(options: PulseEmitterOptions, getSnapshot: () => PulseSnapshot | null);
|
|
30
41
|
start(): void;
|
|
31
42
|
stop(): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pulse.d.ts","sourceRoot":"","sources":["../../src/data-pump/pulse.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAGtE,MAAM,WAAW,mBAAmB;IAClC,GAAG,EAAE,MAAM,CAAA;IACX,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,IAAI,EAAE,oBAAoB,CAAA;IAC1B,MAAM,CAAC,EAAE,cAAc,CAAA;
|
|
1
|
+
{"version":3,"file":"pulse.d.ts","sourceRoot":"","sources":["../../src/data-pump/pulse.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAGtE;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAA;AAE/D,MAAM,WAAW,mBAAmB;IAClC,GAAG,EAAE,MAAM,CAAA;IACX,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,IAAI,EAAE,oBAAoB,CAAA;IAC1B,MAAM,CAAC,EAAE,cAAc,CAAA;IACvB,4DAA4D;IAC5D,eAAe,CAAC,EAAE,aAAa,CAAA;IAC/B,wDAAwD;IACxD,eAAe,CAAC,EAAE,aAAa,CAAA;CAChC;AAED,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,MAAM,CAAA;IAChB,UAAU,EAAE,MAAM,CAAA;IAClB,OAAO,EAAE,MAAM,GAAG,SAAS,CAAA;IAC3B,MAAM,EAAE,OAAO,CAAA;IACf,WAAW,EAAE,MAAM,CAAA;IACnB,cAAc,EAAE,MAAM,CAAA;IACtB,eAAe,EAAE,MAAM,CAAA;IACvB,iBAAiB,EAAE,MAAM,CAAA;IACzB,WAAW,EAAE,MAAM,CAAA;IACnB,WAAW,EAAE,MAAM,CAAA;IACnB,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED,qBAAa,YAAY;IASrB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,WAAW;IAT9B,OAAO,CAAC,QAAQ,CAA8C;IAC9D,OAAO,CAAC,YAAY,CAA6C;IACjE,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAQ;IACnC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAgB;IACxC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAe;IAC/C,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAe;gBAG5B,OAAO,EAAE,mBAAmB,EAC5B,WAAW,EAAE,MAAM,aAAa,GAAG,IAAI;IAQ1D,KAAK,IAAI,IAAI;IAYb,IAAI,IAAI,IAAI;IAWZ,OAAO,CAAC,QAAQ;YAaF,IAAI;CAyCnB"}
|
package/esm/data-pump/pulse.js
CHANGED
|
@@ -38,8 +38,22 @@ export class PulseEmitter {
|
|
|
38
38
|
writable: true,
|
|
39
39
|
value: void 0
|
|
40
40
|
});
|
|
41
|
+
Object.defineProperty(this, "successLogLevel", {
|
|
42
|
+
enumerable: true,
|
|
43
|
+
configurable: true,
|
|
44
|
+
writable: true,
|
|
45
|
+
value: void 0
|
|
46
|
+
});
|
|
47
|
+
Object.defineProperty(this, "failureLogLevel", {
|
|
48
|
+
enumerable: true,
|
|
49
|
+
configurable: true,
|
|
50
|
+
writable: true,
|
|
51
|
+
value: void 0
|
|
52
|
+
});
|
|
41
53
|
this.intervalMs = options.intervalMs ?? 30_000;
|
|
42
54
|
this.logger = options.logger;
|
|
55
|
+
this.successLogLevel = options.successLogLevel ?? "debug";
|
|
56
|
+
this.failureLogLevel = options.failureLogLevel ?? "warn";
|
|
43
57
|
}
|
|
44
58
|
start() {
|
|
45
59
|
if (this.interval || this.startTimeout)
|
|
@@ -64,8 +78,14 @@ export class PulseEmitter {
|
|
|
64
78
|
}
|
|
65
79
|
emitSafe() {
|
|
66
80
|
this.emit().catch((err) => {
|
|
81
|
+
const snapshot = this.getSnapshot();
|
|
67
82
|
const msg = err instanceof Error ? err.message : String(err);
|
|
68
|
-
this.logger?.
|
|
83
|
+
this.logger?.[this.failureLogLevel]?.("Pulse emission failed", {
|
|
84
|
+
error: msg,
|
|
85
|
+
url: this.options.url,
|
|
86
|
+
pathwayId: snapshot?.pathwayId,
|
|
87
|
+
flowType: snapshot?.flowType,
|
|
88
|
+
});
|
|
69
89
|
});
|
|
70
90
|
}
|
|
71
91
|
async emit() {
|
|
@@ -73,8 +93,13 @@ export class PulseEmitter {
|
|
|
73
93
|
if (!snapshot)
|
|
74
94
|
return;
|
|
75
95
|
const client = getFlowcoreClient(this.options.auth, this.options.url);
|
|
76
|
-
|
|
96
|
+
// sourceId is accepted by the server (data-pathways CP) and added to
|
|
97
|
+
// @flowcore/sdk's SendPumpPulseInput on the 3.x train. data-pump is still
|
|
98
|
+
// pinned to sdk ^1.78.0, so we widen the literal type locally until the
|
|
99
|
+
// sdk-3 migration lands. Remove the cast then.
|
|
100
|
+
const input = {
|
|
77
101
|
pathwayId: snapshot.pathwayId,
|
|
102
|
+
sourceId: snapshot.sourceId,
|
|
78
103
|
flowType: snapshot.flowType,
|
|
79
104
|
timeBucket: snapshot.timeBucket,
|
|
80
105
|
eventId: snapshot.eventId ?? null,
|
|
@@ -90,6 +115,14 @@ export class PulseEmitter {
|
|
|
90
115
|
pulled: snapshot.pulledTotal,
|
|
91
116
|
},
|
|
92
117
|
uptimeMs: snapshot.uptimeMs,
|
|
93
|
-
}
|
|
118
|
+
};
|
|
119
|
+
await client.execute(new SendPumpPulseCommand(input));
|
|
120
|
+
this.logger?.[this.successLogLevel]?.("Pulse sent", {
|
|
121
|
+
pathwayId: snapshot.pathwayId,
|
|
122
|
+
flowType: snapshot.flowType,
|
|
123
|
+
timeBucket: snapshot.timeBucket,
|
|
124
|
+
isLive: snapshot.isLive,
|
|
125
|
+
bufferDepth: snapshot.bufferDepth,
|
|
126
|
+
});
|
|
94
127
|
}
|
|
95
128
|
}
|
package/package.json
CHANGED
|
@@ -36,6 +36,11 @@ export interface FlowcoreDataPumpOptions {
|
|
|
36
36
|
url: string;
|
|
37
37
|
intervalMs?: number;
|
|
38
38
|
pathwayId: string;
|
|
39
|
+
sourceId?: string;
|
|
40
|
+
/** Log level for successful pulses. Defaults to 'debug'. */
|
|
41
|
+
successLogLevel?: "debug" | "info" | "warn" | "error";
|
|
42
|
+
/** Log level for pulse failures. Defaults to 'warn'. */
|
|
43
|
+
failureLogLevel?: "debug" | "info" | "warn" | "error";
|
|
39
44
|
};
|
|
40
45
|
}
|
|
41
46
|
export declare class FlowcoreDataPump {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data-pump.d.ts","sourceRoot":"","sources":["../../src/data-pump/data-pump.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gDAAgD,CAAA;AAGnF,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAA;AAGrD,OAAO,EAAgB,KAAK,aAAa,EAAE,MAAM,YAAY,CAAA;AAC7D,OAAO,KAAK,EACV,oBAAoB,EACpB,0BAA0B,EAC1B,yBAAyB,EACzB,qBAAqB,EACrB,4BAA4B,EAC5B,cAAc,EACf,MAAM,YAAY,CAAA;AAEnB,UAAU,mCAAmC;IAC3C,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,EAAE,CAAA;CAClB;AAED,UAAU,wCAAwC;IAChD,IAAI,EAAE,WAAW,CAAA;CAClB;AAED,UAAU,qCAAqC;IAC7C,IAAI,EAAE,QAAQ,CAAA;IACd;;OAEG;IACH,UAAU,EAAE,MAAM,CAAA;CACnB;AAED,KAAK,+BAA+B,GAChC,mCAAmC,GACnC,wCAAwC,GACxC,qCAAqC,CAAA;AAEzC,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,oBAAoB,CAAA;IAC1B,UAAU,EAAE,0BAA0B,CAAA;IACtC,YAAY,EAAE,4BAA4B,CAAA;IAC1C,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,qBAAqB,CAAC,EAAE,MAAM,CAAA;IAC9B,oBAAoB,CAAC,EAAE,OAAO,CAAA;IAC9B,SAAS,CAAC,EAAE,yBAAyB,CAAA;IACrC,QAAQ,CAAC,EAAE,+BAA+B,CAAA;IAC1C,MAAM,CAAC,EAAE,cAAc,CAAA;IACvB,MAAM,CAAC,EAAE,IAAI,CAAA;IACb,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,KAAK,CAAC,EAAE;QACN,GAAG,EAAE,MAAM,CAAA;QACX,UAAU,CAAC,EAAE,MAAM,CAAA;QACnB,SAAS,EAAE,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"data-pump.d.ts","sourceRoot":"","sources":["../../src/data-pump/data-pump.ts"],"names":[],"mappings":"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"}
|
|
@@ -213,15 +213,20 @@ class FlowcoreDataPump {
|
|
|
213
213
|
}, options.logger);
|
|
214
214
|
if (options.pulse) {
|
|
215
215
|
const pathwayId = options.pulse.pathwayId;
|
|
216
|
+
const sourceId = options.pulse.sourceId;
|
|
216
217
|
pump.pulseEmitter = new pulse_js_1.PulseEmitter({
|
|
217
218
|
url: options.pulse.url,
|
|
218
219
|
intervalMs: options.pulse.intervalMs,
|
|
219
220
|
auth: options.auth,
|
|
220
221
|
logger: options.logger,
|
|
222
|
+
successLogLevel: options.pulse.successLogLevel,
|
|
223
|
+
failureLogLevel: options.pulse.failureLogLevel,
|
|
221
224
|
}, () => {
|
|
222
225
|
const snapshot = pump.getSnapshot();
|
|
223
|
-
if (snapshot)
|
|
226
|
+
if (snapshot) {
|
|
224
227
|
snapshot.pathwayId = pathwayId;
|
|
228
|
+
snapshot.sourceId = sourceId;
|
|
229
|
+
}
|
|
225
230
|
return snapshot;
|
|
226
231
|
});
|
|
227
232
|
}
|
|
@@ -1,12 +1,21 @@
|
|
|
1
1
|
import type { FlowcoreDataPumpAuth, FlowcoreLogger } from "./types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Log level for pulse emitter events. Corresponds to FlowcoreLogger methods.
|
|
4
|
+
*/
|
|
5
|
+
export type PulseLogLevel = "debug" | "info" | "warn" | "error";
|
|
2
6
|
export interface PulseEmitterOptions {
|
|
3
7
|
url: string;
|
|
4
8
|
intervalMs?: number;
|
|
5
9
|
auth: FlowcoreDataPumpAuth;
|
|
6
10
|
logger?: FlowcoreLogger;
|
|
11
|
+
/** Log level for successful pulses. Defaults to 'debug'. */
|
|
12
|
+
successLogLevel?: PulseLogLevel;
|
|
13
|
+
/** Log level for pulse failures. Defaults to 'warn'. */
|
|
14
|
+
failureLogLevel?: PulseLogLevel;
|
|
7
15
|
}
|
|
8
16
|
export interface PulseSnapshot {
|
|
9
17
|
pathwayId: string;
|
|
18
|
+
sourceId?: string;
|
|
10
19
|
flowType: string;
|
|
11
20
|
timeBucket: string;
|
|
12
21
|
eventId: string | undefined;
|
|
@@ -26,6 +35,8 @@ export declare class PulseEmitter {
|
|
|
26
35
|
private startTimeout;
|
|
27
36
|
private readonly intervalMs;
|
|
28
37
|
private readonly logger?;
|
|
38
|
+
private readonly successLogLevel;
|
|
39
|
+
private readonly failureLogLevel;
|
|
29
40
|
constructor(options: PulseEmitterOptions, getSnapshot: () => PulseSnapshot | null);
|
|
30
41
|
start(): void;
|
|
31
42
|
stop(): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pulse.d.ts","sourceRoot":"","sources":["../../src/data-pump/pulse.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAGtE,MAAM,WAAW,mBAAmB;IAClC,GAAG,EAAE,MAAM,CAAA;IACX,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,IAAI,EAAE,oBAAoB,CAAA;IAC1B,MAAM,CAAC,EAAE,cAAc,CAAA;
|
|
1
|
+
{"version":3,"file":"pulse.d.ts","sourceRoot":"","sources":["../../src/data-pump/pulse.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAGtE;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAA;AAE/D,MAAM,WAAW,mBAAmB;IAClC,GAAG,EAAE,MAAM,CAAA;IACX,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,IAAI,EAAE,oBAAoB,CAAA;IAC1B,MAAM,CAAC,EAAE,cAAc,CAAA;IACvB,4DAA4D;IAC5D,eAAe,CAAC,EAAE,aAAa,CAAA;IAC/B,wDAAwD;IACxD,eAAe,CAAC,EAAE,aAAa,CAAA;CAChC;AAED,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,MAAM,CAAA;IAChB,UAAU,EAAE,MAAM,CAAA;IAClB,OAAO,EAAE,MAAM,GAAG,SAAS,CAAA;IAC3B,MAAM,EAAE,OAAO,CAAA;IACf,WAAW,EAAE,MAAM,CAAA;IACnB,cAAc,EAAE,MAAM,CAAA;IACtB,eAAe,EAAE,MAAM,CAAA;IACvB,iBAAiB,EAAE,MAAM,CAAA;IACzB,WAAW,EAAE,MAAM,CAAA;IACnB,WAAW,EAAE,MAAM,CAAA;IACnB,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED,qBAAa,YAAY;IASrB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,WAAW;IAT9B,OAAO,CAAC,QAAQ,CAA8C;IAC9D,OAAO,CAAC,YAAY,CAA6C;IACjE,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAQ;IACnC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAgB;IACxC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAe;IAC/C,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAe;gBAG5B,OAAO,EAAE,mBAAmB,EAC5B,WAAW,EAAE,MAAM,aAAa,GAAG,IAAI;IAQ1D,KAAK,IAAI,IAAI;IAYb,IAAI,IAAI,IAAI;IAWZ,OAAO,CAAC,QAAQ;YAaF,IAAI;CAyCnB"}
|
|
@@ -41,8 +41,22 @@ class PulseEmitter {
|
|
|
41
41
|
writable: true,
|
|
42
42
|
value: void 0
|
|
43
43
|
});
|
|
44
|
+
Object.defineProperty(this, "successLogLevel", {
|
|
45
|
+
enumerable: true,
|
|
46
|
+
configurable: true,
|
|
47
|
+
writable: true,
|
|
48
|
+
value: void 0
|
|
49
|
+
});
|
|
50
|
+
Object.defineProperty(this, "failureLogLevel", {
|
|
51
|
+
enumerable: true,
|
|
52
|
+
configurable: true,
|
|
53
|
+
writable: true,
|
|
54
|
+
value: void 0
|
|
55
|
+
});
|
|
44
56
|
this.intervalMs = options.intervalMs ?? 30_000;
|
|
45
57
|
this.logger = options.logger;
|
|
58
|
+
this.successLogLevel = options.successLogLevel ?? "debug";
|
|
59
|
+
this.failureLogLevel = options.failureLogLevel ?? "warn";
|
|
46
60
|
}
|
|
47
61
|
start() {
|
|
48
62
|
if (this.interval || this.startTimeout)
|
|
@@ -67,8 +81,14 @@ class PulseEmitter {
|
|
|
67
81
|
}
|
|
68
82
|
emitSafe() {
|
|
69
83
|
this.emit().catch((err) => {
|
|
84
|
+
const snapshot = this.getSnapshot();
|
|
70
85
|
const msg = err instanceof Error ? err.message : String(err);
|
|
71
|
-
this.logger?.
|
|
86
|
+
this.logger?.[this.failureLogLevel]?.("Pulse emission failed", {
|
|
87
|
+
error: msg,
|
|
88
|
+
url: this.options.url,
|
|
89
|
+
pathwayId: snapshot?.pathwayId,
|
|
90
|
+
flowType: snapshot?.flowType,
|
|
91
|
+
});
|
|
72
92
|
});
|
|
73
93
|
}
|
|
74
94
|
async emit() {
|
|
@@ -76,8 +96,13 @@ class PulseEmitter {
|
|
|
76
96
|
if (!snapshot)
|
|
77
97
|
return;
|
|
78
98
|
const client = (0, flowcore_client_js_1.getFlowcoreClient)(this.options.auth, this.options.url);
|
|
79
|
-
|
|
99
|
+
// sourceId is accepted by the server (data-pathways CP) and added to
|
|
100
|
+
// @flowcore/sdk's SendPumpPulseInput on the 3.x train. data-pump is still
|
|
101
|
+
// pinned to sdk ^1.78.0, so we widen the literal type locally until the
|
|
102
|
+
// sdk-3 migration lands. Remove the cast then.
|
|
103
|
+
const input = {
|
|
80
104
|
pathwayId: snapshot.pathwayId,
|
|
105
|
+
sourceId: snapshot.sourceId,
|
|
81
106
|
flowType: snapshot.flowType,
|
|
82
107
|
timeBucket: snapshot.timeBucket,
|
|
83
108
|
eventId: snapshot.eventId ?? null,
|
|
@@ -93,7 +118,15 @@ class PulseEmitter {
|
|
|
93
118
|
pulled: snapshot.pulledTotal,
|
|
94
119
|
},
|
|
95
120
|
uptimeMs: snapshot.uptimeMs,
|
|
96
|
-
}
|
|
121
|
+
};
|
|
122
|
+
await client.execute(new mod_js_1.SendPumpPulseCommand(input));
|
|
123
|
+
this.logger?.[this.successLogLevel]?.("Pulse sent", {
|
|
124
|
+
pathwayId: snapshot.pathwayId,
|
|
125
|
+
flowType: snapshot.flowType,
|
|
126
|
+
timeBucket: snapshot.timeBucket,
|
|
127
|
+
isLive: snapshot.isLive,
|
|
128
|
+
bufferDepth: snapshot.bufferDepth,
|
|
129
|
+
});
|
|
97
130
|
}
|
|
98
131
|
}
|
|
99
132
|
exports.PulseEmitter = PulseEmitter;
|