mongodash 2.6.0 → 2.7.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 (64) hide show
  1. package/README.md +52 -0
  2. package/dist/lib/ConcurrentRunner.js +32 -2
  3. package/dist/lib/ConcurrentRunner.js.map +1 -1
  4. package/dist/lib/createContinuousLock.js +23 -6
  5. package/dist/lib/createContinuousLock.js.map +1 -1
  6. package/dist/lib/cronTasks.js +158 -19
  7. package/dist/lib/cronTasks.js.map +1 -1
  8. package/dist/lib/index.js +10 -6
  9. package/dist/lib/index.js.map +1 -1
  10. package/dist/lib/reactiveTasks/LeaderElector.js +21 -3
  11. package/dist/lib/reactiveTasks/LeaderElector.js.map +1 -1
  12. package/dist/lib/reactiveTasks/MetricsCollector.js +31 -5
  13. package/dist/lib/reactiveTasks/MetricsCollector.js.map +1 -1
  14. package/dist/lib/reactiveTasks/ReactiveTaskPlanner.js +66 -31
  15. package/dist/lib/reactiveTasks/ReactiveTaskPlanner.js.map +1 -1
  16. package/dist/lib/reactiveTasks/ReactiveTaskRepository.js +19 -1
  17. package/dist/lib/reactiveTasks/ReactiveTaskRepository.js.map +1 -1
  18. package/dist/lib/reactiveTasks/ReactiveTaskTypes.js +7 -1
  19. package/dist/lib/reactiveTasks/ReactiveTaskTypes.js.map +1 -1
  20. package/dist/lib/reactiveTasks/ReactiveTaskWorker.js +80 -5
  21. package/dist/lib/reactiveTasks/ReactiveTaskWorker.js.map +1 -1
  22. package/dist/lib/reactiveTasks/index.js +19 -12
  23. package/dist/lib/reactiveTasks/index.js.map +1 -1
  24. package/dist/lib/testing/assertNoReactiveTaskErrors.js +16 -12
  25. package/dist/lib/testing/assertNoReactiveTaskErrors.js.map +1 -1
  26. package/dist/lib/testing/index.js +2 -0
  27. package/dist/lib/testing/index.js.map +1 -1
  28. package/dist/lib/testing/resolveWhitelistFilter.js +48 -0
  29. package/dist/lib/testing/resolveWhitelistFilter.js.map +1 -0
  30. package/dist/lib/testing/waitUntilReactiveTasksIdle.js +17 -46
  31. package/dist/lib/testing/waitUntilReactiveTasksIdle.js.map +1 -1
  32. package/dist/types/ConcurrentRunner.d.ts +14 -0
  33. package/dist/types/createContinuousLock.d.ts +17 -1
  34. package/dist/types/cronTasks.d.ts +17 -2
  35. package/dist/types/index.d.ts +1 -1
  36. package/dist/types/reactiveTasks/LeaderElector.d.ts +15 -1
  37. package/dist/types/reactiveTasks/MetricsCollector.d.ts +8 -0
  38. package/dist/types/reactiveTasks/ReactiveTaskPlanner.d.ts +11 -0
  39. package/dist/types/reactiveTasks/ReactiveTaskRepository.d.ts +10 -1
  40. package/dist/types/reactiveTasks/ReactiveTaskTypes.d.ts +6 -0
  41. package/dist/types/reactiveTasks/index.d.ts +8 -2
  42. package/dist/types/testing/assertNoReactiveTaskErrors.d.ts +4 -4
  43. package/dist/types/testing/index.d.ts +2 -0
  44. package/dist/types/testing/resolveWhitelistFilter.d.ts +35 -0
  45. package/dist/types/testing/waitUntilReactiveTasksIdle.d.ts +7 -13
  46. package/docs/.vitepress/config.mts +9 -1
  47. package/docs/cron-tasks.md +130 -1
  48. package/docs/error-handling.md +156 -0
  49. package/docs/reactive-tasks/guides.md +1 -1
  50. package/docs/reactive-tasks/index.md +1 -1
  51. package/docs/reactive-tasks/monitoring.md +7 -0
  52. package/docs/reactive-tasks/testing.md +187 -0
  53. package/docs/testing.md +60 -94
  54. package/package.json +34 -24
  55. package/docs/.vitepress/cache/deps/_metadata.json +0 -31
  56. package/docs/.vitepress/cache/deps/chunk-LE5NDSFD.js +0 -12824
  57. package/docs/.vitepress/cache/deps/chunk-LE5NDSFD.js.map +0 -7
  58. package/docs/.vitepress/cache/deps/package.json +0 -3
  59. package/docs/.vitepress/cache/deps/vitepress___@vue_devtools-api.js +0 -4505
  60. package/docs/.vitepress/cache/deps/vitepress___@vue_devtools-api.js.map +0 -7
  61. package/docs/.vitepress/cache/deps/vitepress___@vueuse_core.js +0 -9731
  62. package/docs/.vitepress/cache/deps/vitepress___@vueuse_core.js.map +0 -7
  63. package/docs/.vitepress/cache/deps/vue.js +0 -347
  64. package/docs/.vitepress/cache/deps/vue.js.map +0 -7
@@ -63,17 +63,49 @@ class ReactiveTaskWorker {
63
63
  }
64
64
  }
65
65
  async processTask(taskRecord) {
66
- var _a, _b;
66
+ var _a, _b, _c;
67
67
  const taskDef = this.registry.getTask(taskRecord.task);
68
68
  const tasksCollection = taskDef.tasksCollection;
69
69
  let deferredTo;
70
70
  let throttledUntil;
71
71
  let isManuallyFinalized = false;
72
+ let lockLost = false;
73
+ // Set by the outer flow once the continuous-lock is stopped; used by
74
+ // markCompleted below so we can halt renewal *before* the finalize
75
+ // write changes nextRunAt. Without this the next CAS renewal would
76
+ // see its expected value no longer present and falsely report
77
+ // onLockLost for a completion the same worker performed.
78
+ let stopLock = async () => { };
72
79
  const finalizeTaskSuccess = async (duration, session) => {
73
- var _a;
80
+ var _a, _b;
81
+ if (lockLost) {
82
+ // Lock was stolen mid-handler. The new owner's claim rewrote
83
+ // nextRunAt; writing completion here would either clobber that
84
+ // claim or violate the at-least-once contract by marking the
85
+ // task complete before the new owner finishes.
86
+ return;
87
+ }
88
+ // Record the metric eagerly so scrapes that happen between the
89
+ // handler returning and this DB write observing the success are
90
+ // not misled. The finalize CAS below is a second line of defence
91
+ // against a stolen lock; if it fires we surface lock-lost but
92
+ // keep the duration sample (the handler did run successfully).
74
93
  (_a = this.metricsCollector) === null || _a === void 0 ? void 0 : _a.recordTaskExecution(taskRecord.task, 'success', duration);
75
94
  const entry = this.registry.getEntry(tasksCollection.collectionName);
76
- await entry.repository.finalizeTask(taskRecord, taskDef.retryStrategy, undefined, taskDef.debounceMs, { durationMs: duration }, taskDef.executionHistoryLimit, session ? { session } : undefined);
95
+ const finalized = await entry.repository.finalizeTask(taskRecord, taskDef.retryStrategy, undefined, taskDef.debounceMs, { durationMs: duration }, taskDef.executionHistoryLimit, session ? { session } : undefined);
96
+ if (!finalized && !lockLost) {
97
+ // Silent lock loss: startedAt changed out from under us
98
+ // between the continuous-lock CAS renewal ticks. Flip the
99
+ // flag so later paths skip their own writes, bump the
100
+ // lock-lost counter, and emit onInfo for operator visibility.
101
+ lockLost = true;
102
+ (_b = this.metricsCollector) === null || _b === void 0 ? void 0 : _b.recordLockLost(taskRecord.task);
103
+ (0, OnInfo_1.onInfo)({
104
+ message: `Reactive task '${taskRecord.task}' finalize skipped - lock lost (startedAt mismatch). Another worker is handling this task.`,
105
+ taskId: taskRecord._id.toString(),
106
+ code: ReactiveTaskTypes_1.CODE_REACTIVE_TASK_LOCK_LOST,
107
+ });
108
+ }
77
109
  };
78
110
  const context = {
79
111
  docId: taskRecord.sourceDocId,
@@ -108,6 +140,11 @@ class ReactiveTaskWorker {
108
140
  }
109
141
  isManuallyFinalized = true;
110
142
  const duration = Date.now() - start;
143
+ // Stop the continuous-lock renewal *before* finalize writes a
144
+ // new nextRunAt. Otherwise an in-flight renewal CAS would see
145
+ // its expected value overwritten and report a false
146
+ // onLockLost for a completion the same worker performed.
147
+ await stopLock();
111
148
  try {
112
149
  await finalizeTaskSuccess(duration, options === null || options === void 0 ? void 0 : options.session);
113
150
  }
@@ -117,7 +154,19 @@ class ReactiveTaskWorker {
117
154
  }
118
155
  },
119
156
  };
120
- const stopLock = (0, createContinuousLock_1.createContinuousLock)(tasksCollection, taskRecord._id, 'nextRunAt', this.internalOptions.visibilityTimeoutMs);
157
+ stopLock = (0, createContinuousLock_1.createContinuousLock)(tasksCollection, taskRecord._id, 'nextRunAt', this.internalOptions.visibilityTimeoutMs, {
158
+ expectedInitialValue: taskRecord.nextRunAt,
159
+ onLockLost: () => {
160
+ var _a;
161
+ lockLost = true;
162
+ (_a = this.metricsCollector) === null || _a === void 0 ? void 0 : _a.recordLockLost(taskRecord.task);
163
+ (0, OnInfo_1.onInfo)({
164
+ message: `Reactive task '${taskRecord.task}' lock lost - another worker took over (likely visibility timeout elapsed). Skipping finalize to preserve new claim.`,
165
+ taskId: taskRecord._id.toString(),
166
+ code: ReactiveTaskTypes_1.CODE_REACTIVE_TASK_LOCK_LOST,
167
+ });
168
+ },
169
+ });
121
170
  const processTheTask = async () => {
122
171
  const start = Date.now();
123
172
  (0, OnInfo_1.onInfo)({
@@ -173,6 +222,13 @@ class ReactiveTaskWorker {
173
222
  this.throttledUntil.set(taskRecord.task, throttledUntil);
174
223
  debug(`[Scheduler ${this.instanceId}] Throttling task '${taskRecord.task}' until ${throttledUntil.toISOString()}`);
175
224
  }
225
+ if (lockLost) {
226
+ // Another worker took over this task. Skip state transitions to
227
+ // avoid stomping on the new owner's updates. Side effects done
228
+ // by the handler have executed (at-least-once), the replacement
229
+ // worker will run the task again and finalize it.
230
+ return;
231
+ }
176
232
  if (deferredTo) {
177
233
  if (isManuallyFinalized) {
178
234
  (0, OnInfo_1.onInfo)({
@@ -195,9 +251,28 @@ class ReactiveTaskWorker {
195
251
  // Logging is already done in processTheTask via onInfo
196
252
  await stopLock();
197
253
  const duration = Date.now() - start;
254
+ if (lockLost) {
255
+ // Skip both metrics and finalize: the new owner will execute
256
+ // and record its own metrics. See the success branch above
257
+ // for the reasoning behind skipping finalize.
258
+ return;
259
+ }
198
260
  (_b = this.metricsCollector) === null || _b === void 0 ? void 0 : _b.recordTaskExecution(taskRecord.task, 'failed', duration);
199
261
  const entry = this.registry.getEntry(tasksCollection.collectionName);
200
- await entry.repository.finalizeTask(taskRecord, taskDef.retryStrategy, error, taskDef.debounceMs, { durationMs: duration }, taskDef.executionHistoryLimit);
262
+ const finalized = await entry.repository.finalizeTask(taskRecord, taskDef.retryStrategy, error, taskDef.debounceMs, { durationMs: duration }, taskDef.executionHistoryLimit);
263
+ if (!finalized) {
264
+ // Silent lock loss (startedAt no longer matches): another
265
+ // worker has re-claimed the task. The failure metric is
266
+ // kept (the handler did throw) but we surface lock-lost
267
+ // so operators can see why retry scheduling / dead-letter
268
+ // transitions did not persist.
269
+ (_c = this.metricsCollector) === null || _c === void 0 ? void 0 : _c.recordLockLost(taskRecord.task);
270
+ (0, OnInfo_1.onInfo)({
271
+ message: `Reactive task '${taskRecord.task}' error-finalize skipped - lock lost (startedAt mismatch). Another worker is handling this task.`,
272
+ taskId: taskRecord._id.toString(),
273
+ code: ReactiveTaskTypes_1.CODE_REACTIVE_TASK_LOCK_LOST,
274
+ });
275
+ }
201
276
  }
202
277
  }
203
278
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ReactiveTaskWorker.js","sourceRoot":"","sources":["../../../src/reactiveTasks/ReactiveTaskWorker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ReactiveTaskWorker.js","sourceRoot":"","sources":["../../../src/reactiveTasks/ReactiveTaskWorker.ts"],"names":[],"mappings":"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"}
@@ -11,7 +11,7 @@ var __rest = (this && this.__rest) || function (s, e) {
11
11
  return t;
12
12
  };
13
13
  Object.defineProperty(exports, "__esModule", { value: true });
14
- exports.ReactiveTaskScheduler = exports._scheduler = exports.TaskConditionFailedError = exports.REACTIVE_TASK_META_DOC_ID = exports.CODE_REACTIVE_TASK_STARTED = exports.CODE_REACTIVE_TASK_PLANNER_STREAM_ERROR = exports.CODE_REACTIVE_TASK_PLANNER_STOPPED = exports.CODE_REACTIVE_TASK_PLANNER_STARTED = exports.CODE_REACTIVE_TASK_PLANNER_RECONCILIATION_STARTED = exports.CODE_REACTIVE_TASK_PLANNER_RECONCILIATION_FINISHED = exports.CODE_REACTIVE_TASK_LEADER_LOCK_LOST = exports.CODE_REACTIVE_TASK_INITIALIZED = exports.CODE_REACTIVE_TASK_FINISHED = exports.CODE_REACTIVE_TASK_FAILED = exports.CODE_REACTIVE_TASK_CLEANUP = void 0;
14
+ exports.ReactiveTaskScheduler = exports._scheduler = exports.TaskConditionFailedError = exports.REACTIVE_TASK_META_DOC_ID = exports.CODE_REACTIVE_TASK_STARTED = exports.CODE_REACTIVE_TASK_PLANNER_STREAM_ERROR = exports.CODE_REACTIVE_TASK_PLANNER_STOPPED = exports.CODE_REACTIVE_TASK_PLANNER_STARTED = exports.CODE_REACTIVE_TASK_PLANNER_RECONCILIATION_STARTED = exports.CODE_REACTIVE_TASK_PLANNER_RECONCILIATION_FINISHED = exports.CODE_REACTIVE_TASK_LOCK_LOST = exports.CODE_REACTIVE_TASK_LEADER_LOCK_LOST = exports.CODE_REACTIVE_TASK_INITIALIZED = exports.CODE_REACTIVE_TASK_FINISHED = exports.CODE_REACTIVE_TASK_FAILED = exports.CODE_REACTIVE_TASK_CLEANUP = void 0;
15
15
  exports.init = init;
16
16
  exports.reactiveTask = reactiveTask;
17
17
  exports.stopReactiveTasks = stopReactiveTasks;
@@ -40,6 +40,7 @@ Object.defineProperty(exports, "CODE_REACTIVE_TASK_FAILED", { enumerable: true,
40
40
  Object.defineProperty(exports, "CODE_REACTIVE_TASK_FINISHED", { enumerable: true, get: function () { return ReactiveTaskTypes_2.CODE_REACTIVE_TASK_FINISHED; } });
41
41
  Object.defineProperty(exports, "CODE_REACTIVE_TASK_INITIALIZED", { enumerable: true, get: function () { return ReactiveTaskTypes_2.CODE_REACTIVE_TASK_INITIALIZED; } });
42
42
  Object.defineProperty(exports, "CODE_REACTIVE_TASK_LEADER_LOCK_LOST", { enumerable: true, get: function () { return ReactiveTaskTypes_2.CODE_REACTIVE_TASK_LEADER_LOCK_LOST; } });
43
+ Object.defineProperty(exports, "CODE_REACTIVE_TASK_LOCK_LOST", { enumerable: true, get: function () { return ReactiveTaskTypes_2.CODE_REACTIVE_TASK_LOCK_LOST; } });
43
44
  Object.defineProperty(exports, "CODE_REACTIVE_TASK_PLANNER_RECONCILIATION_FINISHED", { enumerable: true, get: function () { return ReactiveTaskTypes_2.CODE_REACTIVE_TASK_PLANNER_RECONCILIATION_FINISHED; } });
44
45
  Object.defineProperty(exports, "CODE_REACTIVE_TASK_PLANNER_RECONCILIATION_STARTED", { enumerable: true, get: function () { return ReactiveTaskTypes_2.CODE_REACTIVE_TASK_PLANNER_RECONCILIATION_STARTED; } });
45
46
  Object.defineProperty(exports, "CODE_REACTIVE_TASK_PLANNER_STARTED", { enumerable: true, get: function () { return ReactiveTaskTypes_2.CODE_REACTIVE_TASK_PLANNER_STARTED; } });
@@ -100,7 +101,7 @@ class ReactiveTaskScheduler {
100
101
  }
101
102
  configure(options) {
102
103
  if (this.concurrentRunner) {
103
- throw new Error('Cannot configure scheduler after initialization.');
104
+ throw new Error('Cannot configure reactive task scheduler after it has already been configured. Call configure() (or init()) only once, before startReactiveTasks().');
104
105
  }
105
106
  // Configure instanceId if provided
106
107
  if (options.instanceId) {
@@ -166,6 +167,8 @@ class ReactiveTaskScheduler {
166
167
  if (this.registry.getTask(taskDef.task)) {
167
168
  throw new Error(`Task with name '${taskDef.task}' already exists.`);
168
169
  }
170
+ // The registry stores tasks type-erased to Document; each task's handler
171
+ // was captured with its concrete T so it stays type-safe at invocation time.
169
172
  await this.registry.addTask(taskDef);
170
173
  }
171
174
  /**
@@ -200,17 +203,13 @@ class ReactiveTaskScheduler {
200
203
  // Initialize components
201
204
  this.taskPlanner = new ReactiveTaskPlanner_1.ReactiveTaskPlanner(globalsCollection, this.instanceId, this.registry, {
202
205
  onStreamError: () => {
203
- var _a;
206
+ var _a, _b;
204
207
  (0, OnInfo_1.onInfo)({
205
208
  message: `Change Stream error.`,
206
209
  code: ReactiveTaskTypes_1.CODE_REACTIVE_TASK_PLANNER_STREAM_ERROR,
207
210
  });
208
- // If stream fails, we should probably force lose leader to let someone else try,
209
- // or just restart if we are still leader.
210
- // LeaderElector handles its own loop.
211
- // If stream fails, Planner stops.
212
- // We can ask LeaderElector to give up leadership.
213
- (_a = this.leaderElector) === null || _a === void 0 ? void 0 : _a.forceLoseLeader();
211
+ (_a = this.metricsCollector) === null || _a === void 0 ? void 0 : _a.recordStreamError();
212
+ (_b = this.leaderElector) === null || _b === void 0 ? void 0 : _b.forceLoseLeader();
214
213
  },
215
214
  onTaskPlanned: (tasksCollectionName, debounceMs) => {
216
215
  setTimeout(() => {
@@ -218,6 +217,14 @@ class ReactiveTaskScheduler {
218
217
  (_a = this.concurrentRunner) === null || _a === void 0 ? void 0 : _a.speedUp(tasksCollectionName);
219
218
  }, debounceMs);
220
219
  },
220
+ onFlushFailure: () => {
221
+ var _a;
222
+ (_a = this.metricsCollector) === null || _a === void 0 ? void 0 : _a.recordFlushFailure();
223
+ },
224
+ onRequestRestart: () => {
225
+ var _a;
226
+ (_a = this.leaderElector) === null || _a === void 0 ? void 0 : _a.forceLoseLeader();
227
+ },
221
228
  }, {
222
229
  batchSize: this.internalOptions.batchSize,
223
230
  batchIntervalMs: this.internalOptions.batchIntervalMs,
@@ -233,14 +240,15 @@ class ReactiveTaskScheduler {
233
240
  metaDocId: ReactiveTaskTypes_1.REACTIVE_TASK_META_DOC_ID,
234
241
  }, {
235
242
  onBecomeLeader: async () => {
236
- var _a;
243
+ var _a, _b;
244
+ (_a = this.metricsCollector) === null || _a === void 0 ? void 0 : _a.recordLeaderElection();
237
245
  const tasks = this.registry.getAllTasks();
238
246
  if (tasks.length === 0) {
239
247
  debug(`[Scheduler ${this.instanceId}] Became leader, but no tasks registered. Skipping planner start.`);
240
248
  return;
241
249
  }
242
250
  debug(`[Scheduler ${this.instanceId}] Became leader, starting planner.`);
243
- await ((_a = this.taskPlanner) === null || _a === void 0 ? void 0 : _a.start());
251
+ await ((_b = this.taskPlanner) === null || _b === void 0 ? void 0 : _b.start());
244
252
  },
245
253
  onLoseLeader: async () => {
246
254
  var _a;
@@ -312,7 +320,6 @@ function init(initOptions) {
312
320
  scheduler.configure(schedulerOptions);
313
321
  }
314
322
  async function reactiveTask(taskDef) {
315
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
316
323
  await scheduler.addTask(taskDef);
317
324
  }
318
325
  async function stopReactiveTasks() {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/reactiveTasks/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/reactiveTasks/index.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.assertNoReactiveTaskErrors = assertNoReactiveTaskErrors;
4
4
  const reactiveTasks_1 = require("../reactiveTasks");
5
+ const resolveWhitelistFilter_1 = require("./resolveWhitelistFilter");
5
6
  /**
6
7
  * Asserts that no reactive tasks have failed during the test run.
7
8
  * Checks the 'executionHistory' and 'lastError' of tasks in all registered collections.
@@ -13,20 +14,23 @@ async function assertNoReactiveTaskErrors(options) {
13
14
  registry = schedulerToUse.getRegistry();
14
15
  const entries = registry.getAllEntries();
15
16
  const errorsFound = [];
17
+ const hasWhitelist = options.whitelist && options.whitelist.length > 0;
16
18
  for (const entry of entries) {
19
+ // If whitelist is active, check if this collection is relevant
20
+ let whitelistFilter = null;
21
+ if (hasWhitelist) {
22
+ const resolution = await (0, resolveWhitelistFilter_1.resolveWhitelistFilter)(options.whitelist, entry.sourceCollection);
23
+ if (resolution === 'skip')
24
+ continue;
25
+ if (resolution !== 'matchAll') {
26
+ whitelistFilter = resolution;
27
+ }
28
+ }
17
29
  // Build independent query for each collection
18
- const query = {
19
- // Optimization: Filter at database level for faster lookup
20
- $or: [
21
- { 'executionHistory.status': 'failed', 'executionHistory.at': { $gte: options.since } },
22
- // Also check lastError if it happened recently (though executionHistory covers history)
23
- // We rely on executionHistory for the time-based check.
24
- ],
30
+ const baseQuery = {
31
+ $or: [{ 'executionHistory.status': 'failed', 'executionHistory.at': { $gte: options.since } }],
25
32
  };
26
- if (options.sourceDocIds && options.sourceDocIds.length > 0) {
27
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
28
- query.sourceDocId = { $in: options.sourceDocIds };
29
- }
33
+ const query = whitelistFilter ? { $and: [baseQuery, whitelistFilter] } : baseQuery;
30
34
  const tasksWithHistory = await entry.tasksCollection.find(query).toArray();
31
35
  for (const taskRecord of tasksWithHistory) {
32
36
  if (!taskRecord.executionHistory)
@@ -39,7 +43,7 @@ async function assertNoReactiveTaskErrors(options) {
39
43
  if (item.status !== 'failed')
40
44
  continue;
41
45
  const errorMessage = item.error || 'Unknown error';
42
- // 3. Check Whitelist
46
+ // 3. Check Whitelist (excludeErrors)
43
47
  let isExcluded = false;
44
48
  if (options.excludeErrors) {
45
49
  for (const pattern of options.excludeErrors) {
@@ -1 +1 @@
1
- {"version":3,"file":"assertNoReactiveTaskErrors.js","sourceRoot":"","sources":["../../../src/testing/assertNoReactiveTaskErrors.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"assertNoReactiveTaskErrors.js","sourceRoot":"","sources":["../../../src/testing/assertNoReactiveTaskErrors.ts"],"names":[],"mappings":";;AAmCA,gEAuFC;AAzHD,oDAAyF;AACzF,qEAAiF;AA6BjF;;;GAGG;AACI,KAAK,UAAU,0BAA0B,CAAC,OAA0C;IACvF,IAAI,QAAQ,CAAC;IAEb,6BAA6B;IAC7B,MAAM,cAAc,GAAG,OAAO,CAAC,SAAS,IAAI,0BAAU,CAAC;IACvD,QAAQ,GAAG,cAAc,CAAC,WAAW,EAAE,CAAC;IAExC,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,EAAE,CAAC;IAEzC,MAAM,WAAW,GAKZ,EAAE,CAAC;IAER,MAAM,YAAY,GAAG,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;IAEvE,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC1B,+DAA+D;QAC/D,IAAI,eAAe,GAAsC,IAAI,CAAC;QAC9D,IAAI,YAAY,EAAE,CAAC;YACf,MAAM,UAAU,GAAG,MAAM,IAAA,+CAAsB,EAAC,OAAO,CAAC,SAAU,EAAE,KAAK,CAAC,gBAAgB,CAAC,CAAC;YAC5F,IAAI,UAAU,KAAK,MAAM;gBAAE,SAAS;YACpC,IAAI,UAAU,KAAK,UAAU,EAAE,CAAC;gBAC5B,eAAe,GAAG,UAAU,CAAC;YACjC,CAAC;QACL,CAAC;QAED,8CAA8C;QAC9C,MAAM,SAAS,GAA+B;YAC1C,GAAG,EAAE,CAAC,EAAE,yBAAyB,EAAE,QAAQ,EAAE,qBAAqB,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;SACjG,CAAC;QAEF,MAAM,KAAK,GAAG,eAAe,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,SAAS,EAAE,eAAe,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QAEnF,MAAM,gBAAgB,GAAG,MAAM,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC;QAE3E,KAAK,MAAM,UAAU,IAAI,gBAAgB,EAAE,CAAC;YACxC,IAAI,CAAC,UAAU,CAAC,gBAAgB;gBAAE,SAAS;YAE3C,KAAK,MAAM,IAAI,IAAI,UAAU,CAAC,gBAAgB,EAAE,CAAC;gBAC7C,gBAAgB;gBAChB,IAAI,IAAI,CAAC,EAAE,GAAG,OAAO,CAAC,KAAK;oBAAE,SAAS;gBACtC,kBAAkB;gBAClB,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ;oBAAE,SAAS;gBAEvC,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,IAAI,eAAe,CAAC;gBAEnD,qCAAqC;gBACrC,IAAI,UAAU,GAAG,KAAK,CAAC;gBACvB,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;oBACxB,KAAK,MAAM,OAAO,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;wBAC1C,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;4BAC9B,IAAI,OAAO,KAAK,YAAY,EAAE,CAAC;gCAC3B,UAAU,GAAG,IAAI,CAAC;gCAClB,MAAM;4BACV,CAAC;wBACL,CAAC;6BAAM,IAAI,OAAO,YAAY,MAAM,EAAE,CAAC;4BACnC,IAAI,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC;gCAC7B,UAAU,GAAG,IAAI,CAAC;gCAClB,MAAM;4BACV,CAAC;wBACL,CAAC;oBACL,CAAC;gBACL,CAAC;gBAED,IAAI,CAAC,UAAU,EAAE,CAAC;oBACd,WAAW,CAAC,IAAI,CAAC;wBACb,IAAI,EAAE,UAAU,CAAC,IAAI;wBACrB,WAAW,EAAE,UAAU,CAAC,WAAW;wBACnC,KAAK,EAAE,YAAY;wBACnB,EAAE,EAAE,IAAI,CAAC,EAAE;qBACd,CAAC,CAAC;gBACP,CAAC;YACL,CAAC;QACL,CAAC;IACL,CAAC;IAED,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzB,MAAM,YAAY,GAAG,WAAW;aAC3B,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC;aAC/C,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC,IAAI,WAAW,CAAC,CAAC,WAAW,MAAM,CAAC,CAAC,KAAK,EAAE,CAAC;aAC1F,IAAI,CAAC,IAAI,CAAC,CAAC;QAEhB,MAAM,IAAI,KAAK,CAAC,SAAS,WAAW,CAAC,MAAM,sCAAsC,YAAY,EAAE,CAAC,CAAC;IACrG,CAAC;AACL,CAAC"}
@@ -16,5 +16,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./assertNoReactiveTaskErrors"), exports);
18
18
  __exportStar(require("./configureForTesting"), exports);
19
+ __exportStar(require("./resolveWhitelistFilter"), exports);
20
+ __exportStar(require("./waitUntil"), exports);
19
21
  __exportStar(require("./waitUntilReactiveTasksIdle"), exports);
20
22
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/testing/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+DAA6C;AAC7C,wDAAsC;AACtC,+DAA6C"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/testing/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+DAA6C;AAC7C,wDAAsC;AACtC,2DAAyC;AACzC,8CAA4B;AAC5B,+DAA6C"}
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.resolveWhitelistFilter = resolveWhitelistFilter;
4
+ /**
5
+ * Build the `Filter<ReactiveTaskRecord>` for a single registry entry based on
6
+ * the provided whitelist rules. Extracted from `waitUntilReactiveTasksIdle` /
7
+ * `assertNoReactiveTaskErrors` so the two utilities cannot drift.
8
+ */
9
+ async function resolveWhitelistFilter(whitelist, sourceCollection) {
10
+ const rules = whitelist.filter((rule) => rule.collection === sourceCollection.collectionName);
11
+ if (rules.length === 0) {
12
+ return 'skip';
13
+ }
14
+ const criteria = [];
15
+ for (const rule of rules) {
16
+ let ruleIds = null;
17
+ if (rule.filter) {
18
+ const matchingDocs = (await sourceCollection.find(rule.filter, { projection: { _id: 1 } }).toArray());
19
+ ruleIds = matchingDocs.map((d) => d._id);
20
+ }
21
+ if (ruleIds === null && !rule.task) {
22
+ // Rule covers every document in this collection and every task.
23
+ return 'matchAll';
24
+ }
25
+ // A filter-scoped rule that matched zero source documents can never
26
+ // contribute tasks of its own - drop it even when a task is also
27
+ // specified (the AND of "task=X" and "sourceDocId IN []" is still
28
+ // empty, so emitting that filter just produces useless `$in: []` queries).
29
+ if (ruleIds !== null && ruleIds.length === 0) {
30
+ continue;
31
+ }
32
+ const ruleCriteria = {};
33
+ if (rule.task) {
34
+ ruleCriteria.task = rule.task;
35
+ }
36
+ if (ruleIds !== null) {
37
+ ruleCriteria.sourceDocId = { $in: ruleIds };
38
+ }
39
+ criteria.push(ruleCriteria);
40
+ }
41
+ if (criteria.length === 0) {
42
+ // Rules matched this collection but every rule resolved to an empty
43
+ // document set - nothing to wait for / check.
44
+ return 'skip';
45
+ }
46
+ return { $or: criteria };
47
+ }
48
+ //# sourceMappingURL=resolveWhitelistFilter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolveWhitelistFilter.js","sourceRoot":"","sources":["../../../src/testing/resolveWhitelistFilter.ts"],"names":[],"mappings":";;AAqCA,wDAiDC;AAtDD;;;;GAIG;AACI,KAAK,UAAU,sBAAsB,CACxC,SAA0B,EAC1B,gBAAuE;IAEvE,MAAM,KAAK,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,KAAK,gBAAgB,CAAC,cAAc,CAAC,CAAC;IAC9F,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrB,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,MAAM,QAAQ,GAAsC,EAAE,CAAC;IAEvD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACvB,IAAI,OAAO,GAAqB,IAAI,CAAC;QAErC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YACd,MAAM,YAAY,GAAG,CAAC,MAAM,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,UAAU,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAe,CAAC;YACpH,OAAO,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QAC7C,CAAC;QAED,IAAI,OAAO,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YACjC,gEAAgE;YAChE,OAAO,UAAU,CAAC;QACtB,CAAC;QAED,oEAAoE;QACpE,iEAAiE;QACjE,kEAAkE;QAClE,2EAA2E;QAC3E,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3C,SAAS;QACb,CAAC;QAED,MAAM,YAAY,GAA+B,EAAE,CAAC;QACpD,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACZ,YAAY,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QAClC,CAAC;QACD,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;YACnB,YAAY,CAAC,WAAW,GAAG,EAAE,GAAG,EAAE,OAA8C,EAAE,CAAC;QACvF,CAAC;QACD,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAChC,CAAC;IAED,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,oEAAoE;QACpE,8CAA8C;QAC9C,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC;AAC7B,CAAC"}
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.waitUntilReactiveTasksIdle = waitUntilReactiveTasksIdle;
4
4
  const _debug = require("debug");
5
5
  const reactiveTasks_1 = require("../reactiveTasks");
6
+ const resolveWhitelistFilter_1 = require("./resolveWhitelistFilter");
6
7
  const waitUntil_1 = require("./waitUntil");
7
8
  const debug = _debug('mongodash:testing');
8
9
  async function waitUntilReactiveTasksIdle(customOptions = {}) {
@@ -13,16 +14,22 @@ async function waitUntilReactiveTasksIdle(customOptions = {}) {
13
14
  const planner = reactiveTasks_1._scheduler.taskPlannerInstance;
14
15
  const runner = reactiveTasks_1._scheduler.concurrentRunnerInstance;
15
16
  const registry = reactiveTasks_1._scheduler.getRegistry();
16
- // --- 1. Global Checks (Always run) ---
17
- // 1. Check Internal Buffers (Planner)
17
+ // --- 1. Global Checks ---
18
+ // The planner buffer check is kept in whitelist mode too: change-stream
19
+ // events for *our* collections land there before task records exist,
20
+ // and skipping the check altogether would let us return idle before
21
+ // the events have been turned into rows the DB check below can see.
22
+ // The worker check is only applied globally - in whitelist mode
23
+ // other tests' workers must not block us.
18
24
  if (planner && !planner.isEmpty) {
19
25
  debug('Planner not empty');
20
26
  return false;
21
27
  }
22
- // 2. Check Active Workers (Runner)
23
- if (runner && runner.activeWorkers > 0) {
24
- debug(`Active workers: ${runner.activeWorkers}`);
25
- return false;
28
+ if (!hasWhitelist) {
29
+ if (runner && runner.activeWorkers > 0) {
30
+ debug(`Active workers: ${runner.activeWorkers}`);
31
+ return false;
32
+ }
26
33
  }
27
34
  // --- 2. Check Database ---
28
35
  const entries = registry.getAllEntries();
@@ -31,47 +38,11 @@ async function waitUntilReactiveTasksIdle(customOptions = {}) {
31
38
  // If whitelisting is active, we only check tasks that match the whitelist
32
39
  let whitelistFilter = null;
33
40
  if (hasWhitelist) {
34
- const rules = customOptions.whitelist.filter((rule) => rule.collection === entry.sourceCollection.collectionName);
35
- if (rules.length === 0) {
41
+ const resolution = await (0, resolveWhitelistFilter_1.resolveWhitelistFilter)(customOptions.whitelist, entry.sourceCollection);
42
+ if (resolution === 'skip')
36
43
  continue;
37
- }
38
- const criteria = [];
39
- let matchAll = false;
40
- for (const rule of rules) {
41
- let ruleIds = null;
42
- if (rule.filter) {
43
- // If we have a filter, we need to find which docs match it.
44
- // We can't filter tasks directly by source properties efficiently without joining,
45
- // so we find the matching source docs first.
46
- const matchingDocs = (await entry.sourceCollection.find(rule.filter, { projection: { _id: 1 } }).toArray());
47
- ruleIds = matchingDocs.map((d) => d._id);
48
- }
49
- if (ruleIds === null && !rule.task) {
50
- // One rule validates 'all', so we wait for everything in this collection
51
- matchAll = true;
52
- break;
53
- }
54
- if (rule.task) {
55
- criteria.push({ task: rule.task });
56
- }
57
- if (ruleIds !== null) {
58
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
59
- criteria.push({ sourceDocId: { $in: ruleIds } });
60
- }
61
- }
62
- if (!matchAll) {
63
- if (criteria.length > 0) {
64
- whitelistFilter = { $or: criteria };
65
- }
66
- else {
67
- // Whitelist is active, but we have rules that result in effectively "nothing"
68
- // (e.g. filter returned no docs).
69
- // If we have NO criteria and NO matchAll, it implies we wait for nothing on this collection?
70
- // Or should we treat it as blocking?
71
- // If filter didn't match any doc, then we effectively wait for nothing for that rule.
72
- // If ALL rules resulted in nothing, we continue to next entry.
73
- continue;
74
- }
44
+ if (resolution !== 'matchAll') {
45
+ whitelistFilter = resolution;
75
46
  }
76
47
  }
77
48
  const stableThresholdMs = (options.timeoutMs || 0) + (options.stabilityDurationMs || 0) + 100;
@@ -1 +1 @@
1
- {"version":3,"file":"waitUntilReactiveTasksIdle.js","sourceRoot":"","sources":["../../../src/testing/waitUntilReactiveTasksIdle.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"waitUntilReactiveTasksIdle.js","sourceRoot":"","sources":["../../../src/testing/waitUntilReactiveTasksIdle.ts"],"names":[],"mappings":";;AA+BA,gEA0EC;AAzGD,gCAAgC;AAEhC,oDAAkE;AAClE,qEAAiF;AACjF,2CAA0D;AAE1D,MAAM,KAAK,GAAG,MAAM,CAAC,mBAAmB,CAAC,CAAC;AAyBnC,KAAK,UAAU,0BAA0B,CAAC,gBAAmD,EAAE;IAClG,MAAM,OAAO,mBACT,SAAS,EAAE,KAAK,EAChB,cAAc,EAAE,EAAE,EAClB,mBAAmB,EAAE,GAAG,IACrB,aAAa,CACnB,CAAC;IAEF,MAAM,YAAY,GAAG,aAAa,CAAC,SAAS,IAAI,aAAa,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;IAEnF,MAAM,IAAA,qBAAS,EAAC,KAAK,IAAI,EAAE;QACvB,6BAA6B;QAC7B,MAAM,OAAO,GAAG,0BAAU,CAAC,mBAAmB,CAAC;QAC/C,MAAM,MAAM,GAAG,0BAAU,CAAC,wBAAwB,CAAC;QACnD,MAAM,QAAQ,GAAG,0BAAU,CAAC,WAAW,EAAE,CAAC;QAE1C,2BAA2B;QAC3B,wEAAwE;QACxE,qEAAqE;QACrE,oEAAoE;QACpE,oEAAoE;QACpE,gEAAgE;QAChE,0CAA0C;QAC1C,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;YAC9B,KAAK,CAAC,mBAAmB,CAAC,CAAC;YAC3B,OAAO,KAAK,CAAC;QACjB,CAAC;QACD,IAAI,CAAC,YAAY,EAAE,CAAC;YAChB,IAAI,MAAM,IAAI,MAAM,CAAC,aAAa,GAAG,CAAC,EAAE,CAAC;gBACrC,KAAK,CAAC,mBAAmB,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC;gBACjD,OAAO,KAAK,CAAC;YACjB,CAAC;QACL,CAAC;QAED,4BAA4B;QAC5B,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,EAAE,CAAC;QAEzC,wEAAwE;QACxE,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC1B,0EAA0E;YAC1E,IAAI,eAAe,GAAsC,IAAI,CAAC;YAE9D,IAAI,YAAY,EAAE,CAAC;gBACf,MAAM,UAAU,GAAG,MAAM,IAAA,+CAAsB,EAAC,aAAa,CAAC,SAAU,EAAE,KAAK,CAAC,gBAAgB,CAAC,CAAC;gBAClG,IAAI,UAAU,KAAK,MAAM;oBAAE,SAAS;gBACpC,IAAI,UAAU,KAAK,UAAU,EAAE,CAAC;oBAC5B,eAAe,GAAG,UAAU,CAAC;gBACjC,CAAC;YACL,CAAC;YAED,MAAM,iBAAiB,GAAG,CAAC,OAAO,CAAC,SAAS,IAAI,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,mBAAmB,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC;YAE9F,MAAM,SAAS,GAA+B;gBAC1C,GAAG,EAAE;oBACD,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,CAAC,YAAY,EAAE,kBAAkB,CAAC,EAAE,EAAE;oBACvD;wBACI,MAAM,EAAE,SAAS;wBACjB,GAAG,EAAE,CAAC,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,iBAAiB,CAAC,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;qBAChG;iBACJ;aACJ,CAAC;YAEF,MAAM,KAAK,GAA+B,eAAe,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,SAAS,EAAE,eAAe,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;YAE/G,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,eAAe,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;YAEhE,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;gBACZ,KAAK,CAAC,cAAc,KAAK,CAAC,eAAe,CAAC,cAAc,QAAQ,KAAK,eAAe,CAAC,CAAC;gBACtF,OAAO,KAAK,CAAC;YACjB,CAAC;QACL,CAAC;QAED,OAAO,IAAI,CAAC;IAChB,CAAC,EAAE,OAAO,CAAC,CAAC;AAChB,CAAC"}
@@ -23,6 +23,20 @@ export declare class ConcurrentRunner {
23
23
  start(tryRunATask: TryRunATaskCallback): void;
24
24
  stop(): Promise<void>;
25
25
  speedUp(sourceName: string): void;
26
+ /**
27
+ * Override the back-off schedule so the next poll for `sourceName`
28
+ * happens at approximately `runAt` (a millisecond epoch timestamp).
29
+ * Intended for callers that already know when their next unit of work
30
+ * is due - e.g. cron scheduling an hour out - to skip wasted polls.
31
+ *
32
+ * - `runAt` must be a finite number; non-finite values are ignored.
33
+ * - The timestamp is *not* clamped relative to `now`. Passing a value in
34
+ * the past is valid and behaves like {@link speedUp}; passing a value
35
+ * far in the future means the source will not be polled until then
36
+ * (or until `speedUp` / `setNextRunAt` is called again).
37
+ * - Back-off is reset so a subsequent wake-up fires at `minPollMs`.
38
+ */
39
+ setNextRunAt(sourceName: string, runAt: number): void;
26
40
  updateAllSources(options: Partial<SourceOptions>): void;
27
41
  private runWorker;
28
42
  private prolongNextRun;
@@ -1,6 +1,22 @@
1
1
  import { Collection, ObjectId } from 'mongodb';
2
2
  type StopContinuousLock = () => Promise<void>;
3
+ export interface CreateContinuousLockOptions {
4
+ /**
5
+ * Initial value of the lock property written by whoever acquired the lock.
6
+ * When provided, every renewal becomes a compare-and-swap: the update only
7
+ * succeeds if the lock still carries the previously-written value. If another
8
+ * actor has taken over the lock in the meantime, `onLockLost` is invoked and
9
+ * no further renewals are attempted. This prevents a slow renewal from
10
+ * accidentally extending a lock that has already been stolen.
11
+ */
12
+ expectedInitialValue?: unknown;
13
+ /**
14
+ * Invoked once when CAS detects we no longer own the lock. Only fires when
15
+ * `expectedInitialValue` is set. Renewals stop after this callback.
16
+ */
17
+ onLockLost?: () => void;
18
+ }
3
19
  export declare function createContinuousLock<DocumentType extends {
4
20
  _id: string | ObjectId;
5
- }>(collection: Collection<DocumentType>, documentId: DocumentType['_id'], lockProperty: keyof DocumentType, lockTime: number): StopContinuousLock;
21
+ }>(collection: Collection<DocumentType>, documentId: DocumentType['_id'], lockProperty: keyof DocumentType, lockTime: number, options?: CreateContinuousLockOptions): StopContinuousLock;
6
22
  export {};