@flowcore/data-pump 0.20.0 → 0.21.1
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 +1 -0
- package/esm/data-pump/data-pump.d.ts.map +1 -1
- package/esm/data-pump/data-pump.js +4 -1
- package/esm/data-pump/notifier.d.ts +12 -0
- package/esm/data-pump/notifier.d.ts.map +1 -1
- package/esm/data-pump/notifier.js +23 -12
- package/esm/data-pump/pulse.d.ts +1 -0
- package/esm/data-pump/pulse.d.ts.map +1 -1
- package/esm/data-pump/pulse.js +8 -2
- package/package.json +1 -1
- package/script/data-pump/data-pump.d.ts +1 -0
- package/script/data-pump/data-pump.d.ts.map +1 -1
- package/script/data-pump/data-pump.js +4 -1
- package/script/data-pump/notifier.d.ts +12 -0
- package/script/data-pump/notifier.d.ts.map +1 -1
- package/script/data-pump/notifier.js +24 -13
- package/script/data-pump/pulse.d.ts +1 -0
- package/script/data-pump/pulse.d.ts.map +1 -1
- package/script/data-pump/pulse.js +8 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,19 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.21.1](https://github.com/flowcore-io/data-pump/compare/v0.21.0...v0.21.1) (2026-05-10)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### Bug Fixes
|
|
7
|
+
|
|
8
|
+
* **notifier:** resolve waitWebSocket promise on WS error to prevent pull-loop wedge ([#72](https://github.com/flowcore-io/data-pump/issues/72)) ([d76ee0f](https://github.com/flowcore-io/data-pump/commit/d76ee0f0b5431f6a250a46948ad0c39693135c9c))
|
|
9
|
+
|
|
10
|
+
## [0.21.0](https://github.com/flowcore-io/data-pump/compare/v0.20.0...v0.21.0) (2026-04-24)
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
### Features
|
|
14
|
+
|
|
15
|
+
* thread sourceId through PulseEmitter ([#70](https://github.com/flowcore-io/data-pump/issues/70)) ([119f364](https://github.com/flowcore-io/data-pump/commit/119f3641fc3c9360b8581e512dcb6ebbb6e4cda1))
|
|
16
|
+
|
|
3
17
|
## [0.20.0](https://github.com/flowcore-io/data-pump/compare/v0.19.1...v0.20.0) (2026-04-08)
|
|
4
18
|
|
|
5
19
|
|
|
@@ -36,6 +36,7 @@ export interface FlowcoreDataPumpOptions {
|
|
|
36
36
|
url: string;
|
|
37
37
|
intervalMs?: number;
|
|
38
38
|
pathwayId: string;
|
|
39
|
+
sourceId?: string;
|
|
39
40
|
/** Log level for successful pulses. Defaults to 'debug'. */
|
|
40
41
|
successLogLevel?: "debug" | "info" | "warn" | "error";
|
|
41
42
|
/** Log level for pulse failures. Defaults to 'warn'. */
|
|
@@ -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;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;
|
|
1
|
+
{"version":3,"file":"data-pump.d.ts","sourceRoot":"","sources":["../../src/data-pump/data-pump.ts"],"names":[],"mappings":"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"}
|
|
@@ -210,6 +210,7 @@ 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,
|
|
@@ -219,8 +220,10 @@ export class FlowcoreDataPump {
|
|
|
219
220
|
failureLogLevel: options.pulse.failureLogLevel,
|
|
220
221
|
}, () => {
|
|
221
222
|
const snapshot = pump.getSnapshot();
|
|
222
|
-
if (snapshot)
|
|
223
|
+
if (snapshot) {
|
|
223
224
|
snapshot.pathwayId = pathwayId;
|
|
225
|
+
snapshot.sourceId = sourceId;
|
|
226
|
+
}
|
|
224
227
|
return snapshot;
|
|
225
228
|
});
|
|
226
229
|
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { NotificationClient } from "../deps/jsr.io/@flowcore/sdk/1.79.0/src/mod.js";
|
|
1
2
|
import { NatsConnectionManager } from "./nats-connection.js";
|
|
2
3
|
import type { FlowcoreDataPumpAuth, FlowcoreDataPumpDataSource, FlowcoreLogger } from "./types.js";
|
|
3
4
|
export interface FlowcoreNotifierOptions {
|
|
@@ -27,4 +28,15 @@ export declare class FlowcoreNotifier {
|
|
|
27
28
|
private waitWebSocket;
|
|
28
29
|
private webSocketAuth;
|
|
29
30
|
}
|
|
31
|
+
/**
|
|
32
|
+
* Test seam for stubbing the NotificationClient constructor. Production code
|
|
33
|
+
* routes through `_internals.createNotificationClient`; tests replace this
|
|
34
|
+
* property with a fake factory to drive the subject manually. Not part of the
|
|
35
|
+
* public API.
|
|
36
|
+
*/
|
|
37
|
+
type NotificationClientFactory = (...args: any[]) => NotificationClient;
|
|
38
|
+
export declare const _internals: {
|
|
39
|
+
createNotificationClient: NotificationClientFactory;
|
|
40
|
+
};
|
|
41
|
+
export {};
|
|
30
42
|
//# sourceMappingURL=notifier.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"notifier.d.ts","sourceRoot":"","sources":["../../src/data-pump/notifier.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"notifier.d.ts","sourceRoot":"","sources":["../../src/data-pump/notifier.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAA0B,MAAM,gDAAgD,CAAA;AAG3G,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAA;AAC5D,OAAO,KAAK,EAAE,oBAAoB,EAAE,0BAA0B,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAKlG,MAAM,WAAW,uBAAuB;IACtC,UAAU,EAAE,0BAA0B,CAAA;IACtC,IAAI,EAAE,oBAAoB,CAAA;IAC1B,WAAW,CAAC,EAAE,MAAM,EAAE,CAAA;IACtB,qBAAqB,CAAC,EAAE,qBAAqB,CAAA;IAC7C,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,MAAM,CAAC,EAAE,cAAc,CAAA;IACvB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,aAAa,CAAC,EAAE,OAAO,CAAA;CACxB;AAED,qBAAa,gBAAgB;IASf,OAAO,CAAC,QAAQ,CAAC,OAAO;IARpC,OAAO,CAAC,UAAU,CAAoB;IACtC,OAAO,CAAC,WAAW,CAAC,CAAuB;IAC3C,OAAO,CAAC,OAAO,CAAC,CAA4B;IAC5C,OAAO,CAAC,kBAAkB,CAAC,CAAoB;IAC/C,OAAO,CAAC,aAAa,CAAC,CAAY;IAElC,OAAO,CAAC,KAAK,CAAC,CAAK;gBAEU,OAAO,EAAE,uBAAuB;IAetD,IAAI,CAAC,MAAM,CAAC,EAAE,WAAW;YASlB,UAAU;YAUV,QAAQ;IAoCtB,OAAO,CAAC,gBAAgB;YAMV,aAAa;IA2C3B,OAAO,CAAC,aAAa;CAiBtB;AAED;;;;;GAKG;AAEH,KAAK,yBAAyB,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,kBAAkB,CAAA;AACvE,eAAO,MAAM,UAAU,EAAE;IAAE,wBAAwB,EAAE,yBAAyB,CAAA;CAG7E,CAAA"}
|
|
@@ -113,12 +113,18 @@ export class FlowcoreNotifier {
|
|
|
113
113
|
}
|
|
114
114
|
async waitWebSocket(signal) {
|
|
115
115
|
this.options.logger?.debug("Waiting for web socket");
|
|
116
|
+
const promise = new Promise((resolve) => {
|
|
117
|
+
this.eventResolver = resolve;
|
|
118
|
+
});
|
|
116
119
|
this.subject = new Subject();
|
|
117
120
|
this.subject.subscribe({
|
|
118
121
|
next: this.onWebSocketEvent.bind(this),
|
|
119
|
-
error: (error) =>
|
|
122
|
+
error: (error) => {
|
|
123
|
+
this.options.logger?.error("Notification stream error:", { error });
|
|
124
|
+
this.eventResolver?.();
|
|
125
|
+
},
|
|
120
126
|
});
|
|
121
|
-
this.notificationClient =
|
|
127
|
+
this.notificationClient = _internals.createNotificationClient(this.subject, this.webSocketAuth(), {
|
|
122
128
|
tenant: this.dataSource.tenant,
|
|
123
129
|
dataCore: this.dataSource.dataCore,
|
|
124
130
|
flowType: this.dataSource.flowType,
|
|
@@ -126,16 +132,18 @@ export class FlowcoreNotifier {
|
|
|
126
132
|
logger: this.options.logger ?? noOpLogger,
|
|
127
133
|
reconnectInterval: 1000,
|
|
128
134
|
});
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
this.
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
135
|
+
try {
|
|
136
|
+
await this.notificationClient.connect();
|
|
137
|
+
clearTimeout(this.timer);
|
|
138
|
+
this.timer = setTimeout(() => this.eventResolver?.(), this.options.timeoutMs ?? DEFAULT_TIMEOUT_MS);
|
|
139
|
+
signal?.addEventListener("abort", () => this.eventResolver?.());
|
|
140
|
+
await promise;
|
|
141
|
+
}
|
|
142
|
+
finally {
|
|
143
|
+
clearTimeout(this.timer);
|
|
144
|
+
this.eventResolver = undefined;
|
|
145
|
+
this.notificationClient.disconnect();
|
|
146
|
+
}
|
|
139
147
|
}
|
|
140
148
|
webSocketAuth() {
|
|
141
149
|
if ("apiKey" in this.options.auth) {
|
|
@@ -155,3 +163,6 @@ export class FlowcoreNotifier {
|
|
|
155
163
|
};
|
|
156
164
|
}
|
|
157
165
|
}
|
|
166
|
+
export const _internals = {
|
|
167
|
+
createNotificationClient: (...args) => new NotificationClient(...args),
|
|
168
|
+
};
|
package/esm/data-pump/pulse.d.ts
CHANGED
|
@@ -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;;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,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;
|
|
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
|
@@ -93,8 +93,13 @@ export class PulseEmitter {
|
|
|
93
93
|
if (!snapshot)
|
|
94
94
|
return;
|
|
95
95
|
const client = getFlowcoreClient(this.options.auth, this.options.url);
|
|
96
|
-
|
|
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 = {
|
|
97
101
|
pathwayId: snapshot.pathwayId,
|
|
102
|
+
sourceId: snapshot.sourceId,
|
|
98
103
|
flowType: snapshot.flowType,
|
|
99
104
|
timeBucket: snapshot.timeBucket,
|
|
100
105
|
eventId: snapshot.eventId ?? null,
|
|
@@ -110,7 +115,8 @@ export class PulseEmitter {
|
|
|
110
115
|
pulled: snapshot.pulledTotal,
|
|
111
116
|
},
|
|
112
117
|
uptimeMs: snapshot.uptimeMs,
|
|
113
|
-
}
|
|
118
|
+
};
|
|
119
|
+
await client.execute(new SendPumpPulseCommand(input));
|
|
114
120
|
this.logger?.[this.successLogLevel]?.("Pulse sent", {
|
|
115
121
|
pathwayId: snapshot.pathwayId,
|
|
116
122
|
flowType: snapshot.flowType,
|
package/package.json
CHANGED
|
@@ -36,6 +36,7 @@ export interface FlowcoreDataPumpOptions {
|
|
|
36
36
|
url: string;
|
|
37
37
|
intervalMs?: number;
|
|
38
38
|
pathwayId: string;
|
|
39
|
+
sourceId?: string;
|
|
39
40
|
/** Log level for successful pulses. Defaults to 'debug'. */
|
|
40
41
|
successLogLevel?: "debug" | "info" | "warn" | "error";
|
|
41
42
|
/** Log level for pulse failures. Defaults to 'warn'. */
|
|
@@ -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;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;
|
|
1
|
+
{"version":3,"file":"data-pump.d.ts","sourceRoot":"","sources":["../../src/data-pump/data-pump.ts"],"names":[],"mappings":"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"}
|
|
@@ -213,6 +213,7 @@ 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,
|
|
@@ -222,8 +223,10 @@ class FlowcoreDataPump {
|
|
|
222
223
|
failureLogLevel: options.pulse.failureLogLevel,
|
|
223
224
|
}, () => {
|
|
224
225
|
const snapshot = pump.getSnapshot();
|
|
225
|
-
if (snapshot)
|
|
226
|
+
if (snapshot) {
|
|
226
227
|
snapshot.pathwayId = pathwayId;
|
|
228
|
+
snapshot.sourceId = sourceId;
|
|
229
|
+
}
|
|
227
230
|
return snapshot;
|
|
228
231
|
});
|
|
229
232
|
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { NotificationClient } from "../deps/jsr.io/@flowcore/sdk/1.79.0/src/mod.js";
|
|
1
2
|
import { NatsConnectionManager } from "./nats-connection.js";
|
|
2
3
|
import type { FlowcoreDataPumpAuth, FlowcoreDataPumpDataSource, FlowcoreLogger } from "./types.js";
|
|
3
4
|
export interface FlowcoreNotifierOptions {
|
|
@@ -27,4 +28,15 @@ export declare class FlowcoreNotifier {
|
|
|
27
28
|
private waitWebSocket;
|
|
28
29
|
private webSocketAuth;
|
|
29
30
|
}
|
|
31
|
+
/**
|
|
32
|
+
* Test seam for stubbing the NotificationClient constructor. Production code
|
|
33
|
+
* routes through `_internals.createNotificationClient`; tests replace this
|
|
34
|
+
* property with a fake factory to drive the subject manually. Not part of the
|
|
35
|
+
* public API.
|
|
36
|
+
*/
|
|
37
|
+
type NotificationClientFactory = (...args: any[]) => NotificationClient;
|
|
38
|
+
export declare const _internals: {
|
|
39
|
+
createNotificationClient: NotificationClientFactory;
|
|
40
|
+
};
|
|
41
|
+
export {};
|
|
30
42
|
//# sourceMappingURL=notifier.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"notifier.d.ts","sourceRoot":"","sources":["../../src/data-pump/notifier.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"notifier.d.ts","sourceRoot":"","sources":["../../src/data-pump/notifier.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAA0B,MAAM,gDAAgD,CAAA;AAG3G,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAA;AAC5D,OAAO,KAAK,EAAE,oBAAoB,EAAE,0BAA0B,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAKlG,MAAM,WAAW,uBAAuB;IACtC,UAAU,EAAE,0BAA0B,CAAA;IACtC,IAAI,EAAE,oBAAoB,CAAA;IAC1B,WAAW,CAAC,EAAE,MAAM,EAAE,CAAA;IACtB,qBAAqB,CAAC,EAAE,qBAAqB,CAAA;IAC7C,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,MAAM,CAAC,EAAE,cAAc,CAAA;IACvB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,aAAa,CAAC,EAAE,OAAO,CAAA;CACxB;AAED,qBAAa,gBAAgB;IASf,OAAO,CAAC,QAAQ,CAAC,OAAO;IARpC,OAAO,CAAC,UAAU,CAAoB;IACtC,OAAO,CAAC,WAAW,CAAC,CAAuB;IAC3C,OAAO,CAAC,OAAO,CAAC,CAA4B;IAC5C,OAAO,CAAC,kBAAkB,CAAC,CAAoB;IAC/C,OAAO,CAAC,aAAa,CAAC,CAAY;IAElC,OAAO,CAAC,KAAK,CAAC,CAAK;gBAEU,OAAO,EAAE,uBAAuB;IAetD,IAAI,CAAC,MAAM,CAAC,EAAE,WAAW;YASlB,UAAU;YAUV,QAAQ;IAoCtB,OAAO,CAAC,gBAAgB;YAMV,aAAa;IA2C3B,OAAO,CAAC,aAAa;CAiBtB;AAED;;;;;GAKG;AAEH,KAAK,yBAAyB,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,kBAAkB,CAAA;AACvE,eAAO,MAAM,UAAU,EAAE;IAAE,wBAAwB,EAAE,yBAAyB,CAAA;CAG7E,CAAA"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.FlowcoreNotifier = void 0;
|
|
3
|
+
exports._internals = exports.FlowcoreNotifier = void 0;
|
|
4
4
|
const mod_js_1 = require("../deps/jsr.io/@flowcore/sdk/1.79.0/src/mod.js");
|
|
5
5
|
const rxjs_1 = require("rxjs");
|
|
6
6
|
const data_source_js_1 = require("./data-source.js");
|
|
@@ -116,12 +116,18 @@ class FlowcoreNotifier {
|
|
|
116
116
|
}
|
|
117
117
|
async waitWebSocket(signal) {
|
|
118
118
|
this.options.logger?.debug("Waiting for web socket");
|
|
119
|
+
const promise = new Promise((resolve) => {
|
|
120
|
+
this.eventResolver = resolve;
|
|
121
|
+
});
|
|
119
122
|
this.subject = new rxjs_1.Subject();
|
|
120
123
|
this.subject.subscribe({
|
|
121
124
|
next: this.onWebSocketEvent.bind(this),
|
|
122
|
-
error: (error) =>
|
|
125
|
+
error: (error) => {
|
|
126
|
+
this.options.logger?.error("Notification stream error:", { error });
|
|
127
|
+
this.eventResolver?.();
|
|
128
|
+
},
|
|
123
129
|
});
|
|
124
|
-
this.notificationClient =
|
|
130
|
+
this.notificationClient = exports._internals.createNotificationClient(this.subject, this.webSocketAuth(), {
|
|
125
131
|
tenant: this.dataSource.tenant,
|
|
126
132
|
dataCore: this.dataSource.dataCore,
|
|
127
133
|
flowType: this.dataSource.flowType,
|
|
@@ -129,16 +135,18 @@ class FlowcoreNotifier {
|
|
|
129
135
|
logger: this.options.logger ?? no_op_logger_js_1.noOpLogger,
|
|
130
136
|
reconnectInterval: 1000,
|
|
131
137
|
});
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
this.
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
138
|
+
try {
|
|
139
|
+
await this.notificationClient.connect();
|
|
140
|
+
clearTimeout(this.timer);
|
|
141
|
+
this.timer = setTimeout(() => this.eventResolver?.(), this.options.timeoutMs ?? DEFAULT_TIMEOUT_MS);
|
|
142
|
+
signal?.addEventListener("abort", () => this.eventResolver?.());
|
|
143
|
+
await promise;
|
|
144
|
+
}
|
|
145
|
+
finally {
|
|
146
|
+
clearTimeout(this.timer);
|
|
147
|
+
this.eventResolver = undefined;
|
|
148
|
+
this.notificationClient.disconnect();
|
|
149
|
+
}
|
|
142
150
|
}
|
|
143
151
|
webSocketAuth() {
|
|
144
152
|
if ("apiKey" in this.options.auth) {
|
|
@@ -159,3 +167,6 @@ class FlowcoreNotifier {
|
|
|
159
167
|
}
|
|
160
168
|
}
|
|
161
169
|
exports.FlowcoreNotifier = FlowcoreNotifier;
|
|
170
|
+
exports._internals = {
|
|
171
|
+
createNotificationClient: (...args) => new mod_js_1.NotificationClient(...args),
|
|
172
|
+
};
|
|
@@ -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;;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,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;
|
|
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"}
|
|
@@ -96,8 +96,13 @@ class PulseEmitter {
|
|
|
96
96
|
if (!snapshot)
|
|
97
97
|
return;
|
|
98
98
|
const client = (0, flowcore_client_js_1.getFlowcoreClient)(this.options.auth, this.options.url);
|
|
99
|
-
|
|
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 = {
|
|
100
104
|
pathwayId: snapshot.pathwayId,
|
|
105
|
+
sourceId: snapshot.sourceId,
|
|
101
106
|
flowType: snapshot.flowType,
|
|
102
107
|
timeBucket: snapshot.timeBucket,
|
|
103
108
|
eventId: snapshot.eventId ?? null,
|
|
@@ -113,7 +118,8 @@ class PulseEmitter {
|
|
|
113
118
|
pulled: snapshot.pulledTotal,
|
|
114
119
|
},
|
|
115
120
|
uptimeMs: snapshot.uptimeMs,
|
|
116
|
-
}
|
|
121
|
+
};
|
|
122
|
+
await client.execute(new mod_js_1.SendPumpPulseCommand(input));
|
|
117
123
|
this.logger?.[this.successLogLevel]?.("Pulse sent", {
|
|
118
124
|
pathwayId: snapshot.pathwayId,
|
|
119
125
|
flowType: snapshot.flowType,
|