@camunda8/orchestration-cluster-api 10.0.0-alpha.37 → 10.0.0-alpha.38

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.
@@ -14156,7 +14156,7 @@ function createLogger(opts = {}) {
14156
14156
  }
14157
14157
 
14158
14158
  // src/runtime/version.ts
14159
- var packageVersion = "10.0.0-alpha.37";
14159
+ var packageVersion = "10.0.0-alpha.38";
14160
14160
 
14161
14161
  // src/runtime/supportLogger.ts
14162
14162
  var NoopSupportLogger = class {
@@ -15188,6 +15188,66 @@ var BackpressureManager = class {
15188
15188
  }
15189
15189
  };
15190
15190
 
15191
+ // src/runtime/clock.ts
15192
+ var SLEW_DIVISOR = 16;
15193
+ var MAX_TIMER_MS = 2147483647;
15194
+ function scheduleLong(ms, onElapsed) {
15195
+ let remaining = Math.max(0, ms);
15196
+ let timer;
15197
+ const step = () => {
15198
+ const slice = Math.min(remaining, MAX_TIMER_MS);
15199
+ remaining -= slice;
15200
+ timer = setTimeout(remaining > 0 ? step : onElapsed, slice);
15201
+ };
15202
+ step();
15203
+ return () => clearTimeout(timer);
15204
+ }
15205
+ function createLiveClock(source = Date.now) {
15206
+ let lastSource = source();
15207
+ let offsetMs = 0;
15208
+ let slewCreditMs = 0;
15209
+ const now2 = () => {
15210
+ const observed = source();
15211
+ if (observed < lastSource) {
15212
+ offsetMs += lastSource - observed;
15213
+ } else if (offsetMs > 0) {
15214
+ slewCreditMs += observed - lastSource;
15215
+ const repay = Math.floor(slewCreditMs / SLEW_DIVISOR);
15216
+ if (repay > 0) {
15217
+ slewCreditMs -= repay * SLEW_DIVISOR;
15218
+ offsetMs -= Math.min(offsetMs, repay);
15219
+ }
15220
+ }
15221
+ lastSource = observed;
15222
+ return observed + offsetMs;
15223
+ };
15224
+ const sleep2 = (ms, signal) => new Promise((resolve, reject) => {
15225
+ if (signal?.aborted) {
15226
+ reject(signal.reason);
15227
+ return;
15228
+ }
15229
+ const cancel = scheduleLong(ms, () => {
15230
+ signal?.removeEventListener("abort", onAbort);
15231
+ resolve();
15232
+ });
15233
+ function onAbort() {
15234
+ cancel();
15235
+ reject(signal?.reason);
15236
+ }
15237
+ signal?.addEventListener("abort", onAbort, { once: true });
15238
+ });
15239
+ const deadline = (ms) => {
15240
+ const controller = new AbortController();
15241
+ const cancel = scheduleLong(
15242
+ ms,
15243
+ () => controller.abort(new DOMException(`Timed out after ${ms}ms`, "TimeoutError"))
15244
+ );
15245
+ return { signal: controller.signal, dispose: cancel };
15246
+ };
15247
+ return { now: now2, sleep: sleep2, deadline };
15248
+ }
15249
+ var liveClock = createLiveClock();
15250
+
15191
15251
  // src/runtime/typedVariables.ts
15192
15252
  var TypedVariablesError = class extends Error {
15193
15253
  constructor(message, options) {
@@ -16607,6 +16667,7 @@ var CamundaClientBase = class {
16607
16667
  _validation = new ValidationManager({ req: "none", res: "none" });
16608
16668
  _log = createLogger();
16609
16669
  _bp;
16670
+ _clock = liveClock;
16610
16671
  /** Registered job workers created via createJobWorker (lifecycle managed by user). */
16611
16672
  _workers = [];
16612
16673
  /** Shared thread pool for all threaded job workers (lazy-initialised on first use). */
@@ -16621,6 +16682,7 @@ var CamundaClientBase = class {
16621
16682
  _overrides = {};
16622
16683
  constructor(opts = {}) {
16623
16684
  if (opts.config) this._overrides = { ...opts.config };
16685
+ this._clock = opts.clock ?? liveClock;
16624
16686
  const { config } = hydrateConfig({ overrides: this._overrides, env: opts.env });
16625
16687
  this._config = deepFreeze2(config);
16626
16688
  this._log = createLogger({
@@ -16693,6 +16755,8 @@ var CamundaClientBase = class {
16693
16755
  this.emitSupportLogPreamble();
16694
16756
  this._bp = new BackpressureManager({
16695
16757
  logger: this._log.scope("bp"),
16758
+ now: () => this._clock.now(),
16759
+ sleep: (ms) => this._clock.sleep(ms),
16696
16760
  config: {
16697
16761
  enabled: this._config.backpressure.enabled,
16698
16762
  observeOnly: this._config.backpressure.observeOnly,
@@ -16895,6 +16959,10 @@ var CamundaClientBase = class {
16895
16959
  _evaluateResponse(raw, opId, buildBackpressureError) {
16896
16960
  return evaluateSdkResponse(raw, { opId, buildBackpressureError });
16897
16961
  }
16962
+ /** Clock backing SDK-internal cadence. The injected one when supplied, else the live clock. */
16963
+ get clock() {
16964
+ return this._clock;
16965
+ }
16898
16966
  /** Public accessor for current backpressure adaptive limiter state (stable) */
16899
16967
  getBackpressureState() {
16900
16968
  try {