@flowcore/data-pump 0.11.0 → 0.12.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.
Files changed (46) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/esm/data-pump/data-pump.d.ts +1 -0
  3. package/esm/data-pump/data-pump.d.ts.map +1 -1
  4. package/esm/data-pump/data-pump.js +11 -0
  5. package/esm/data-pump/no-op-logger.d.ts +3 -0
  6. package/esm/data-pump/no-op-logger.d.ts.map +1 -0
  7. package/esm/data-pump/no-op-logger.js +6 -0
  8. package/esm/data-pump/notifier.js +1 -1
  9. package/esm/mod.d.ts +1 -2
  10. package/esm/mod.d.ts.map +1 -1
  11. package/esm/mod.js +1 -2
  12. package/package.json +1 -1
  13. package/script/data-pump/data-pump.d.ts +1 -0
  14. package/script/data-pump/data-pump.d.ts.map +1 -1
  15. package/script/data-pump/data-pump.js +11 -0
  16. package/script/data-pump/no-op-logger.d.ts +3 -0
  17. package/script/data-pump/no-op-logger.d.ts.map +1 -0
  18. package/script/data-pump/no-op-logger.js +9 -0
  19. package/script/data-pump/notifier.js +2 -2
  20. package/script/mod.d.ts +1 -2
  21. package/script/mod.d.ts.map +1 -1
  22. package/script/mod.js +1 -2
  23. package/esm/lib/data-pump-create.d.ts +0 -46
  24. package/esm/lib/data-pump-create.d.ts.map +0 -1
  25. package/esm/lib/data-pump-create.js +0 -64
  26. package/esm/lib/data-pump.d.ts +0 -80
  27. package/esm/lib/data-pump.d.ts.map +0 -1
  28. package/esm/lib/data-pump.js +0 -437
  29. package/esm/lib/nats-notifier.d.ts +0 -18
  30. package/esm/lib/nats-notifier.d.ts.map +0 -1
  31. package/esm/lib/nats-notifier.js +0 -88
  32. package/esm/lib/ws-notifier.d.ts +0 -37
  33. package/esm/lib/ws-notifier.d.ts.map +0 -1
  34. package/esm/lib/ws-notifier.js +0 -86
  35. package/script/lib/data-pump-create.d.ts +0 -46
  36. package/script/lib/data-pump-create.d.ts.map +0 -1
  37. package/script/lib/data-pump-create.js +0 -68
  38. package/script/lib/data-pump.d.ts +0 -80
  39. package/script/lib/data-pump.d.ts.map +0 -1
  40. package/script/lib/data-pump.js +0 -441
  41. package/script/lib/nats-notifier.d.ts +0 -18
  42. package/script/lib/nats-notifier.d.ts.map +0 -1
  43. package/script/lib/nats-notifier.js +0 -115
  44. package/script/lib/ws-notifier.d.ts +0 -37
  45. package/script/lib/ws-notifier.d.ts.map +0 -1
  46. package/script/lib/ws-notifier.js +0 -90
package/CHANGELOG.md CHANGED
@@ -1,5 +1,18 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.12.0](https://github.com/flowcore-io/data-pump/compare/v0.11.0...v0.12.0) (2025-04-14)
4
+
5
+
6
+ ### Features
7
+
8
+ * remove old datapump code ([d940e25](https://github.com/flowcore-io/data-pump/commit/d940e25bf9e5c67a6609d33f741c23b3dad3ca23))
9
+
10
+
11
+ ### Bug Fixes
12
+
13
+ * add 1 sec delay when rechecking for events in livemode ([024a9e0](https://github.com/flowcore-io/data-pump/commit/024a9e09dbd9998e36257f29c154d50ed82ff7a4))
14
+ * add no op logger ([fd83978](https://github.com/flowcore-io/data-pump/commit/fd83978275b1102b80c853dd53c00764b747a9c7))
15
+
3
16
  ## [0.11.0](https://github.com/flowcore-io/data-pump/compare/v0.10.0...v0.11.0) (2025-04-14)
4
17
 
5
18
 
@@ -43,6 +43,7 @@ export declare class FlowcoreDataPump {
43
43
  private buffer;
44
44
  private bufferState;
45
45
  private stopAtState?;
46
+ private isLive;
46
47
  private constructor();
47
48
  get isRunning(): boolean;
48
49
  static create(options: FlowcoreDataPumpOptions, dataSourceOverride?: FlowcoreDataSource): 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,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,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;CACrB;AAkBD,qBAAa,gBAAgB;IASzB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;IAZ1B,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;IAE3C,OAAO;IAaP,IAAW,SAAS,IAAI,OAAO,CAE9B;WAEa,MAAM,CAAC,OAAO,EAAE,uBAAuB,EAAE,kBAAkB,CAAC,EAAE,kBAAkB,GAAG,gBAAgB;IAiCpG,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAyC9D,OAAO,CAAC,KAAK,EAAE,qBAAqB,EAAE,MAAM,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI;IAQjE,IAAI,CAAC,SAAS,UAAQ,GAAG,IAAI;IAWpC,OAAO,CAAC,WAAW;YAaL,IAAI;IAqEL,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAoCjD,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE;IA0B9B,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE;YA4BtB,MAAM;YAiDN,WAAW;IAiBzB,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"}
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,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,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;CACrB;AAkBD,qBAAa,gBAAgB;IAUzB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;IAb1B,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;IAEtB,OAAO;IAaP,IAAW,SAAS,IAAI,OAAO,CAE9B;WAEa,MAAM,CAAC,OAAO,EAAE,uBAAuB,EAAE,kBAAkB,CAAC,EAAE,kBAAkB,GAAG,gBAAgB;IAiCpG,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;IAWpC,OAAO,CAAC,WAAW;YAaL,IAAI;IAwEL,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAoCjD,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE;IA0B9B,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE;YA4BtB,MAAM;YAiDN,WAAW;IAiBzB,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"}
@@ -72,6 +72,12 @@ export class FlowcoreDataPump {
72
72
  writable: true,
73
73
  value: void 0
74
74
  });
75
+ Object.defineProperty(this, "isLive", {
76
+ enumerable: true,
77
+ configurable: true,
78
+ writable: true,
79
+ value: false
80
+ });
75
81
  // #endregion
76
82
  // #region Waiters
77
83
  Object.defineProperty(this, "waiterEvents", {
@@ -127,6 +133,7 @@ export class FlowcoreDataPump {
127
133
  }, options.logger);
128
134
  }
129
135
  async start(callback) {
136
+ this.isLive = false;
130
137
  if (this.running) {
131
138
  throw new Error("Data pump already running");
132
139
  }
@@ -224,10 +231,14 @@ export class FlowcoreDataPump {
224
231
  const previousTimeBucket = this.bufferState.timeBucket;
225
232
  this.bufferState.timeBucket = format(startOfHour(utc(new Date())), "yyyyMMddHH0000");
226
233
  if (previousTimeBucket === this.bufferState.timeBucket && !events.length) {
234
+ this.isLive = true;
227
235
  this.logger?.debug("Going live...");
228
236
  this.abortController = new AbortController();
229
237
  await this.notifier.wait(this.abortController.signal);
230
238
  }
239
+ else if (this.isLive) {
240
+ await new Promise((resolve) => setTimeout(resolve, 1000));
241
+ }
231
242
  }
232
243
  }
233
244
  } while (this.running);
@@ -0,0 +1,3 @@
1
+ import type { FlowcoreLogger } from "./types.js";
2
+ export declare const noOpLogger: FlowcoreLogger;
3
+ //# sourceMappingURL=no-op-logger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"no-op-logger.d.ts","sourceRoot":"","sources":["../../src/data-pump/no-op-logger.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAEhD,eAAO,MAAM,UAAU,EAAE,cAKxB,CAAA"}
@@ -0,0 +1,6 @@
1
+ export const noOpLogger = {
2
+ debug: () => { },
3
+ info: () => { },
4
+ warn: () => { },
5
+ error: console.error,
6
+ };
@@ -2,7 +2,7 @@ import { NotificationClient } from "../deps/jsr.io/@flowcore/sdk/1.26.3/src/mod.
2
2
  import * as Nats from "nats";
3
3
  import { Subject } from "rxjs";
4
4
  import { FlowcoreDataSource } from "./data-source.js";
5
- import { noOpLogger } from "../lib/data-pump-create.js";
5
+ import { noOpLogger } from "./no-op-logger.js";
6
6
  const DEFAULT_TIMEOUT_MS = 20_000;
7
7
  export class FlowcoreNotifier {
8
8
  constructor(options) {
package/esm/mod.d.ts CHANGED
@@ -1,8 +1,7 @@
1
1
  import "./_dnt.polyfills.js";
2
- export * from "./lib/data-pump.js";
3
- export * from "./lib/data-pump-create.js";
4
2
  export * from "./data-pump/data-pump.js";
5
3
  export * from "./data-pump/data-source.js";
6
4
  export * from "./data-pump/metrics.js";
7
5
  export * from "./data-pump/types.js";
6
+ export * from "./data-pump/no-op-logger.js";
8
7
  //# sourceMappingURL=mod.d.ts.map
package/esm/mod.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../src/mod.ts"],"names":[],"mappings":"AAAA,OAAO,qBAAqB,CAAC;AAC7B,cAAc,oBAAoB,CAAA;AAClC,cAAc,2BAA2B,CAAA;AAEzC,cAAc,0BAA0B,CAAA;AACxC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,wBAAwB,CAAA;AACtC,cAAc,sBAAsB,CAAA"}
1
+ {"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../src/mod.ts"],"names":[],"mappings":"AAAA,OAAO,qBAAqB,CAAC;AAC7B,cAAc,0BAA0B,CAAA;AACxC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,wBAAwB,CAAA;AACtC,cAAc,sBAAsB,CAAA;AACpC,cAAc,6BAA6B,CAAA"}
package/esm/mod.js CHANGED
@@ -1,7 +1,6 @@
1
1
  import "./_dnt.polyfills.js";
2
- export * from "./lib/data-pump.js";
3
- export * from "./lib/data-pump-create.js";
4
2
  export * from "./data-pump/data-pump.js";
5
3
  export * from "./data-pump/data-source.js";
6
4
  export * from "./data-pump/metrics.js";
7
5
  export * from "./data-pump/types.js";
6
+ export * from "./data-pump/no-op-logger.js";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@flowcore/data-pump",
3
- "version": "0.11.0",
3
+ "version": "0.12.0",
4
4
  "description": "Flowcore Data Pump",
5
5
  "homepage": "https://github.com/flowcore-io/flowcore-data-pump#readme",
6
6
  "repository": {
@@ -43,6 +43,7 @@ export declare class FlowcoreDataPump {
43
43
  private buffer;
44
44
  private bufferState;
45
45
  private stopAtState?;
46
+ private isLive;
46
47
  private constructor();
47
48
  get isRunning(): boolean;
48
49
  static create(options: FlowcoreDataPumpOptions, dataSourceOverride?: FlowcoreDataSource): 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,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,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;CACrB;AAkBD,qBAAa,gBAAgB;IASzB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;IAZ1B,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;IAE3C,OAAO;IAaP,IAAW,SAAS,IAAI,OAAO,CAE9B;WAEa,MAAM,CAAC,OAAO,EAAE,uBAAuB,EAAE,kBAAkB,CAAC,EAAE,kBAAkB,GAAG,gBAAgB;IAiCpG,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAyC9D,OAAO,CAAC,KAAK,EAAE,qBAAqB,EAAE,MAAM,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI;IAQjE,IAAI,CAAC,SAAS,UAAQ,GAAG,IAAI;IAWpC,OAAO,CAAC,WAAW;YAaL,IAAI;IAqEL,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAoCjD,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE;IA0B9B,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE;YA4BtB,MAAM;YAiDN,WAAW;IAiBzB,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"}
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,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,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;CACrB;AAkBD,qBAAa,gBAAgB;IAUzB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;IAb1B,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;IAEtB,OAAO;IAaP,IAAW,SAAS,IAAI,OAAO,CAE9B;WAEa,MAAM,CAAC,OAAO,EAAE,uBAAuB,EAAE,kBAAkB,CAAC,EAAE,kBAAkB,GAAG,gBAAgB;IAiCpG,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;IAWpC,OAAO,CAAC,WAAW;YAaL,IAAI;IAwEL,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAoCjD,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE;IA0B9B,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE;YA4BtB,MAAM;YAiDN,WAAW;IAiBzB,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"}
@@ -75,6 +75,12 @@ class FlowcoreDataPump {
75
75
  writable: true,
76
76
  value: void 0
77
77
  });
78
+ Object.defineProperty(this, "isLive", {
79
+ enumerable: true,
80
+ configurable: true,
81
+ writable: true,
82
+ value: false
83
+ });
78
84
  // #endregion
79
85
  // #region Waiters
80
86
  Object.defineProperty(this, "waiterEvents", {
@@ -130,6 +136,7 @@ class FlowcoreDataPump {
130
136
  }, options.logger);
131
137
  }
132
138
  async start(callback) {
139
+ this.isLive = false;
133
140
  if (this.running) {
134
141
  throw new Error("Data pump already running");
135
142
  }
@@ -227,10 +234,14 @@ class FlowcoreDataPump {
227
234
  const previousTimeBucket = this.bufferState.timeBucket;
228
235
  this.bufferState.timeBucket = (0, date_fns_1.format)((0, date_fns_1.startOfHour)((0, utc_1.utc)(new Date())), "yyyyMMddHH0000");
229
236
  if (previousTimeBucket === this.bufferState.timeBucket && !events.length) {
237
+ this.isLive = true;
230
238
  this.logger?.debug("Going live...");
231
239
  this.abortController = new AbortController();
232
240
  await this.notifier.wait(this.abortController.signal);
233
241
  }
242
+ else if (this.isLive) {
243
+ await new Promise((resolve) => setTimeout(resolve, 1000));
244
+ }
234
245
  }
235
246
  }
236
247
  } while (this.running);
@@ -0,0 +1,3 @@
1
+ import type { FlowcoreLogger } from "./types.js";
2
+ export declare const noOpLogger: FlowcoreLogger;
3
+ //# sourceMappingURL=no-op-logger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"no-op-logger.d.ts","sourceRoot":"","sources":["../../src/data-pump/no-op-logger.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAEhD,eAAO,MAAM,UAAU,EAAE,cAKxB,CAAA"}
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.noOpLogger = void 0;
4
+ exports.noOpLogger = {
5
+ debug: () => { },
6
+ info: () => { },
7
+ warn: () => { },
8
+ error: console.error,
9
+ };
@@ -28,7 +28,7 @@ const mod_js_1 = require("../deps/jsr.io/@flowcore/sdk/1.26.3/src/mod.js");
28
28
  const Nats = __importStar(require("nats"));
29
29
  const rxjs_1 = require("rxjs");
30
30
  const data_source_js_1 = require("./data-source.js");
31
- const data_pump_create_js_1 = require("../lib/data-pump-create.js");
31
+ const no_op_logger_js_1 = require("./no-op-logger.js");
32
32
  const DEFAULT_TIMEOUT_MS = 20_000;
33
33
  class FlowcoreNotifier {
34
34
  constructor(options) {
@@ -147,7 +147,7 @@ class FlowcoreNotifier {
147
147
  dataCore: this.dataSource.dataCore,
148
148
  flowType: this.dataSource.flowType,
149
149
  }, {
150
- logger: this.options.logger ?? data_pump_create_js_1.noOpLogger,
150
+ logger: this.options.logger ?? no_op_logger_js_1.noOpLogger,
151
151
  reconnectInterval: 1000,
152
152
  });
153
153
  await this.notificationClient.connect();
package/script/mod.d.ts CHANGED
@@ -1,8 +1,7 @@
1
1
  import "./_dnt.polyfills.js";
2
- export * from "./lib/data-pump.js";
3
- export * from "./lib/data-pump-create.js";
4
2
  export * from "./data-pump/data-pump.js";
5
3
  export * from "./data-pump/data-source.js";
6
4
  export * from "./data-pump/metrics.js";
7
5
  export * from "./data-pump/types.js";
6
+ export * from "./data-pump/no-op-logger.js";
8
7
  //# sourceMappingURL=mod.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../src/mod.ts"],"names":[],"mappings":"AAAA,OAAO,qBAAqB,CAAC;AAC7B,cAAc,oBAAoB,CAAA;AAClC,cAAc,2BAA2B,CAAA;AAEzC,cAAc,0BAA0B,CAAA;AACxC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,wBAAwB,CAAA;AACtC,cAAc,sBAAsB,CAAA"}
1
+ {"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../src/mod.ts"],"names":[],"mappings":"AAAA,OAAO,qBAAqB,CAAC;AAC7B,cAAc,0BAA0B,CAAA;AACxC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,wBAAwB,CAAA;AACtC,cAAc,sBAAsB,CAAA;AACpC,cAAc,6BAA6B,CAAA"}
package/script/mod.js CHANGED
@@ -15,9 +15,8 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  require("./_dnt.polyfills.js");
18
- __exportStar(require("./lib/data-pump.js"), exports);
19
- __exportStar(require("./lib/data-pump-create.js"), exports);
20
18
  __exportStar(require("./data-pump/data-pump.js"), exports);
21
19
  __exportStar(require("./data-pump/data-source.js"), exports);
22
20
  __exportStar(require("./data-pump/metrics.js"), exports);
23
21
  __exportStar(require("./data-pump/types.js"), exports);
22
+ __exportStar(require("./data-pump/no-op-logger.js"), exports);
@@ -1,46 +0,0 @@
1
- import { type FlowcoreEvent } from "../deps/jsr.io/@flowcore/sdk/1.26.3/src/mod.js";
2
- import { DataPump, type DataPumpStateManager, type Logger } from "./data-pump.js";
3
- export declare const noOpLogger: Logger;
4
- interface DataPumpClientOptionsAuthOidcClient {
5
- oidcClient: {
6
- getToken: () => Promise<{
7
- accessToken: string;
8
- }>;
9
- };
10
- }
11
- interface DataPumpClientOptionsAuthApiKey {
12
- apiKey: string;
13
- apiKeyId: string;
14
- }
15
- type DataPumpClientOptionsAuth = DataPumpClientOptionsAuthOidcClient | DataPumpClientOptionsAuthApiKey;
16
- /**
17
- * Create data pump client options
18
- */
19
- export interface DataPumpClientOptions {
20
- logger?: Logger;
21
- auth: DataPumpClientOptionsAuth;
22
- dataSource: {
23
- tenant: string;
24
- dataCore: string;
25
- flowType: string;
26
- eventTypes: string[];
27
- };
28
- buffer?: {
29
- size?: number;
30
- threshold?: number;
31
- maxRedeliveryCount?: number;
32
- achknowledgeTimeoutMs?: number;
33
- };
34
- stateManager?: DataPumpStateManager;
35
- processor?: {
36
- concurrency?: number;
37
- onEvents: (events: FlowcoreEvent[]) => Promise<boolean> | boolean;
38
- onFailedEvents?: (events: FlowcoreEvent[]) => Promise<void> | void;
39
- onDone?: () => Promise<void> | void;
40
- };
41
- stopAt?: Date;
42
- natsServers?: string[];
43
- }
44
- export declare function createDataPump(options: DataPumpClientOptions): DataPump;
45
- export {};
46
- //# sourceMappingURL=data-pump-create.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"data-pump-create.d.ts","sourceRoot":"","sources":["../../src/lib/data-pump-create.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,KAAK,aAAa,EAAE,MAAM,gDAAgD,CAAA;AACnG,OAAO,EAAE,QAAQ,EAAE,KAAK,oBAAoB,EAAE,KAAK,MAAM,EAAE,MAAM,gBAAgB,CAAA;AAIjF,eAAO,MAAM,UAAU,EAAE,MAKxB,CAAA;AAED,UAAU,mCAAmC;IAC3C,UAAU,EAAE;QACV,QAAQ,EAAE,MAAM,OAAO,CAAC;YAAE,WAAW,EAAE,MAAM,CAAA;SAAE,CAAC,CAAA;KACjD,CAAA;CACF;AAED,UAAU,+BAA+B;IACvC,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED,KAAK,yBAAyB,GAAG,mCAAmC,GAAG,+BAA+B,CAAA;AAEtG;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,yBAAyB,CAAA;IAC/B,UAAU,EAAE;QACV,MAAM,EAAE,MAAM,CAAA;QACd,QAAQ,EAAE,MAAM,CAAA;QAChB,QAAQ,EAAE,MAAM,CAAA;QAChB,UAAU,EAAE,MAAM,EAAE,CAAA;KACrB,CAAA;IACD,MAAM,CAAC,EAAE;QACP,IAAI,CAAC,EAAE,MAAM,CAAA;QACb,SAAS,CAAC,EAAE,MAAM,CAAA;QAClB,kBAAkB,CAAC,EAAE,MAAM,CAAA;QAC3B,qBAAqB,CAAC,EAAE,MAAM,CAAA;KAC/B,CAAA;IACD,YAAY,CAAC,EAAE,oBAAoB,CAAA;IACnC,SAAS,CAAC,EAAE;QACV,WAAW,CAAC,EAAE,MAAM,CAAA;QACpB,QAAQ,EAAE,CAAC,MAAM,EAAE,aAAa,EAAE,KAAK,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAA;QACjE,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,aAAa,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;QAClE,MAAM,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;KACpC,CAAA;IACD,MAAM,CAAC,EAAE,IAAI,CAAA;IACb,WAAW,CAAC,EAAE,MAAM,EAAE,CAAA;CACvB;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,qBAAqB,GAAG,QAAQ,CA0DvE"}
@@ -1,64 +0,0 @@
1
- import { FlowcoreClient } from "../deps/jsr.io/@flowcore/sdk/1.26.3/src/mod.js";
2
- import { DataPump } from "./data-pump.js";
3
- import { WebSocketNotifier } from "./ws-notifier.js";
4
- import { NatsNotifier } from "./nats-notifier.js";
5
- export const noOpLogger = {
6
- debug: () => { },
7
- info: () => { },
8
- warn: () => { },
9
- error: console.error,
10
- };
11
- export function createDataPump(options) {
12
- let flowcoreClient;
13
- if ("oidcClient" in options.auth) {
14
- const authClient = options.auth.oidcClient;
15
- flowcoreClient = new FlowcoreClient({
16
- getBearerToken: async () => (await authClient.getToken()).accessToken ?? null,
17
- });
18
- }
19
- else {
20
- flowcoreClient = new FlowcoreClient({
21
- apiKey: options.auth.apiKey,
22
- apiKeyId: options.auth.apiKeyId,
23
- });
24
- }
25
- const stateManager = options.stateManager ?? {
26
- getState: () => null,
27
- setState: () => { },
28
- };
29
- const notifier = options.natsServers
30
- ? new NatsNotifier({
31
- servers: options.natsServers,
32
- })
33
- : new WebSocketNotifier({
34
- auth: options.auth,
35
- dataSource: options.dataSource,
36
- logger: options.logger,
37
- });
38
- const bufferSize = options.buffer?.size ?? 1000;
39
- const buffer = {
40
- size: bufferSize,
41
- threshold: options.buffer?.threshold ?? Math.round(bufferSize * 0.1),
42
- maxRedeliveryCount: options.buffer?.maxRedeliveryCount ?? 3,
43
- achknowledgeTimeoutMs: options.buffer?.achknowledgeTimeoutMs ?? 10_000,
44
- };
45
- const processor = options.processor
46
- ? {
47
- concurrency: options.processor.concurrency ?? 1,
48
- onEvents: options.processor.onEvents,
49
- onFailedEvents: options.processor.onFailedEvents,
50
- onDone: options.processor.onDone,
51
- }
52
- : undefined;
53
- const dataPump = new DataPump({
54
- flowcoreClient,
55
- stateManager,
56
- dataSource: options.dataSource,
57
- buffer,
58
- processor,
59
- notifier: notifier.getNotifier(),
60
- logger: options.logger,
61
- stopAt: options.stopAt,
62
- });
63
- return dataPump;
64
- }
@@ -1,80 +0,0 @@
1
- import { type FlowcoreClient, type FlowcoreEvent } from "../deps/jsr.io/@flowcore/sdk/1.26.3/src/mod.js";
2
- export interface Logger {
3
- debug(message: string, ...meta: unknown[]): void;
4
- info(message: string, ...meta: unknown[]): void;
5
- warn(message: string, ...meta: unknown[]): void;
6
- error(message: string | Error, ...meta: unknown[]): void;
7
- }
8
- interface DataPumpOptions {
9
- flowcoreClient: FlowcoreClient;
10
- stateManager: DataPumpStateManager;
11
- logger?: Logger;
12
- notifier: DataPumpNotifier;
13
- dataSource: {
14
- tenant: string;
15
- dataCore: string;
16
- flowType: string;
17
- eventTypes: string[];
18
- };
19
- buffer: {
20
- size: number;
21
- threshold: number;
22
- maxRedeliveryCount: number;
23
- achknowledgeTimeoutMs: number;
24
- };
25
- processor?: {
26
- concurrency: number;
27
- onEvents: (events: FlowcoreEvent[]) => Promise<boolean> | boolean;
28
- onFailedEvents?: (events: FlowcoreEvent[]) => Promise<void> | void;
29
- onDone?: () => Promise<void> | void;
30
- };
31
- stopAt?: Date;
32
- }
33
- export interface DataPumpState {
34
- timeBucket: string;
35
- eventId?: string;
36
- }
37
- export interface DataPumpStateManager {
38
- getState: () => Promise<DataPumpState | null> | DataPumpState | null;
39
- setState?: (state: DataPumpState) => Promise<void> | void;
40
- stopAt?: () => Date;
41
- }
42
- export interface DataPumpNotifier {
43
- wait(dataSource: DataPumpOptions["dataSource"] & {
44
- dataCoreId: string;
45
- }, signal?: AbortSignal): Promise<void>;
46
- }
47
- export declare class DataPump {
48
- private options;
49
- private logger?;
50
- private state;
51
- private _timeBuckets;
52
- private buffer;
53
- private bufferWaiter;
54
- private waiter;
55
- private running;
56
- private notifierAbortController?;
57
- private dataCoreId?;
58
- private stopAt?;
59
- constructor(options: DataPumpOptions);
60
- start(): Promise<void>;
61
- stop(): void;
62
- private proceccor;
63
- private eventBufferLoop;
64
- private reOpen;
65
- private updateState;
66
- private get timeBuckets();
67
- private getClosestTimeBucket;
68
- private updateTimeBuckets;
69
- private pullInner;
70
- private acknowledgeInner;
71
- private waitForNotifier;
72
- private waitForEvents;
73
- private waitForBufferThreshold;
74
- private getNowTimeBucket;
75
- private getDataCoreId;
76
- pull(amount: number): Promise<FlowcoreEvent[]>;
77
- acknowledge(eventIds: string[]): Promise<void>;
78
- }
79
- export {};
80
- //# sourceMappingURL=data-pump.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"data-pump.d.ts","sourceRoot":"","sources":["../../src/lib/data-pump.ts"],"names":[],"mappings":"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"}