@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.
@@ -111,6 +111,66 @@ var EventualConsistencyTimeoutError = class extends Error {
111
111
  }
112
112
  };
113
113
 
114
+ // src/runtime/clock.ts
115
+ var SLEW_DIVISOR = 16;
116
+ var MAX_TIMER_MS = 2147483647;
117
+ function scheduleLong(ms, onElapsed) {
118
+ let remaining = Math.max(0, ms);
119
+ let timer;
120
+ const step = () => {
121
+ const slice = Math.min(remaining, MAX_TIMER_MS);
122
+ remaining -= slice;
123
+ timer = setTimeout(remaining > 0 ? step : onElapsed, slice);
124
+ };
125
+ step();
126
+ return () => clearTimeout(timer);
127
+ }
128
+ function createLiveClock(source = Date.now) {
129
+ let lastSource = source();
130
+ let offsetMs = 0;
131
+ let slewCreditMs = 0;
132
+ const now2 = () => {
133
+ const observed = source();
134
+ if (observed < lastSource) {
135
+ offsetMs += lastSource - observed;
136
+ } else if (offsetMs > 0) {
137
+ slewCreditMs += observed - lastSource;
138
+ const repay = Math.floor(slewCreditMs / SLEW_DIVISOR);
139
+ if (repay > 0) {
140
+ slewCreditMs -= repay * SLEW_DIVISOR;
141
+ offsetMs -= Math.min(offsetMs, repay);
142
+ }
143
+ }
144
+ lastSource = observed;
145
+ return observed + offsetMs;
146
+ };
147
+ const sleep2 = (ms, signal) => new Promise((resolve, reject) => {
148
+ if (signal?.aborted) {
149
+ reject(signal.reason);
150
+ return;
151
+ }
152
+ const cancel = scheduleLong(ms, () => {
153
+ signal?.removeEventListener("abort", onAbort);
154
+ resolve();
155
+ });
156
+ function onAbort() {
157
+ cancel();
158
+ reject(signal?.reason);
159
+ }
160
+ signal?.addEventListener("abort", onAbort, { once: true });
161
+ });
162
+ const deadline = (ms) => {
163
+ const controller = new AbortController();
164
+ const cancel = scheduleLong(
165
+ ms,
166
+ () => controller.abort(new DOMException(`Timed out after ${ms}ms`, "TimeoutError"))
167
+ );
168
+ return { signal: controller.signal, dispose: cancel };
169
+ };
170
+ return { now: now2, sleep: sleep2, deadline };
171
+ }
172
+ var liveClock = createLiveClock();
173
+
114
174
  // src/runtime/typedVariables.ts
115
175
  var TypedVariablesError = class extends Error {
116
176
  constructor(message, options) {
@@ -5173,7 +5233,7 @@ function installAuthInterceptor(client2, getStrategy, getAuthHeaders) {
5173
5233
  }
5174
5234
 
5175
5235
  // src/runtime/version.ts
5176
- var packageVersion = "10.0.0-alpha.37";
5236
+ var packageVersion = "10.0.0-alpha.38";
5177
5237
 
5178
5238
  // src/runtime/supportLogger.ts
5179
5239
  var NoopSupportLogger = class {
@@ -7007,6 +7067,7 @@ var CamundaClientBase = class {
7007
7067
  _validation = new ValidationManager({ req: "none", res: "none" });
7008
7068
  _log = createLogger();
7009
7069
  _bp;
7070
+ _clock = liveClock;
7010
7071
  /** Registered job workers created via createJobWorker (lifecycle managed by user). */
7011
7072
  _workers = [];
7012
7073
  /** Shared thread pool for all threaded job workers (lazy-initialised on first use). */
@@ -7021,6 +7082,7 @@ var CamundaClientBase = class {
7021
7082
  _overrides = {};
7022
7083
  constructor(opts = {}) {
7023
7084
  if (opts.config) this._overrides = { ...opts.config };
7085
+ this._clock = opts.clock ?? liveClock;
7024
7086
  const { config } = hydrateConfig({ overrides: this._overrides, env: opts.env });
7025
7087
  this._config = deepFreeze2(config);
7026
7088
  this._log = createLogger({
@@ -7093,6 +7155,8 @@ var CamundaClientBase = class {
7093
7155
  this.emitSupportLogPreamble();
7094
7156
  this._bp = new BackpressureManager({
7095
7157
  logger: this._log.scope("bp"),
7158
+ now: () => this._clock.now(),
7159
+ sleep: (ms) => this._clock.sleep(ms),
7096
7160
  config: {
7097
7161
  enabled: this._config.backpressure.enabled,
7098
7162
  observeOnly: this._config.backpressure.observeOnly,
@@ -7295,6 +7359,10 @@ var CamundaClientBase = class {
7295
7359
  _evaluateResponse(raw, opId, buildBackpressureError) {
7296
7360
  return evaluateSdkResponse(raw, { opId, buildBackpressureError });
7297
7361
  }
7362
+ /** Clock backing SDK-internal cadence. The injected one when supplied, else the live clock. */
7363
+ get clock() {
7364
+ return this._clock;
7365
+ }
7298
7366
  /** Public accessor for current backpressure adaptive limiter state (stable) */
7299
7367
  getBackpressureState() {
7300
7368
  try {
@@ -21361,6 +21429,8 @@ export {
21361
21429
  isSdkError,
21362
21430
  CamundaValidationError,
21363
21431
  EventualConsistencyTimeoutError,
21432
+ createLiveClock,
21433
+ liveClock,
21364
21434
  TypedVariablesError,
21365
21435
  VariableScopeCollisionError,
21366
21436
  VariableDeserializationError,
@@ -21375,4 +21445,4 @@ export {
21375
21445
  createCamundaClient,
21376
21446
  CamundaClient
21377
21447
  };
21378
- //# sourceMappingURL=chunk-QMVXOINT.js.map
21448
+ //# sourceMappingURL=chunk-LPNUMNEM.js.map