@monque/core 1.5.2 → 1.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.
package/dist/index.d.cts CHANGED
@@ -801,6 +801,19 @@ interface MonqueOptions {
801
801
  * @default 5000
802
802
  */
803
803
  statsCacheTtlMs?: number;
804
+ /**
805
+ * Interval in milliseconds between safety polls when change streams are active.
806
+ *
807
+ * When change streams are connected, the scheduler uses them as the primary
808
+ * notification mechanism and only polls at this longer interval as a safety net
809
+ * to catch any missed events. When change streams are unavailable, the scheduler
810
+ * falls back to the standard `pollInterval`.
811
+ *
812
+ * This is separate from `heartbeatInterval`, which updates job liveness signals.
813
+ *
814
+ * @default 30000 (30 seconds)
815
+ */
816
+ safetyPollInterval?: number;
804
817
  }
805
818
  //#endregion
806
819
  //#region src/scheduler/monque.d.ts
@@ -875,6 +888,14 @@ declare class Monque extends EventEmitter {
875
888
  private workers;
876
889
  private isRunning;
877
890
  private isInitialized;
891
+ /**
892
+ * Resolve function for the reactive shutdown drain promise.
893
+ * Set during stop() when active jobs need to finish; called by
894
+ * onJobFinished() when the last active job completes.
895
+ *
896
+ * @private
897
+ */
898
+ private _drainResolve;
878
899
  private _scheduler;
879
900
  private _manager;
880
901
  private _query;
@@ -901,6 +922,15 @@ declare class Monque extends EventEmitter {
901
922
  private get changeStreamHandler();
902
923
  /** @throws {ConnectionError} if not initialized */
903
924
  private get lifecycleManager();
925
+ private validateSchedulingIdentifiers;
926
+ /**
927
+ * Handle a change-stream-triggered poll and reset the safety poll timer.
928
+ *
929
+ * Used as the `onPoll` callback for {@link ChangeStreamHandler}. Runs a
930
+ * targeted poll for the given worker names, then resets the adaptive safety
931
+ * poll timer so it doesn't fire redundantly.
932
+ */
933
+ private handleChangeStreamPoll;
904
934
  /**
905
935
  * Build the shared context for internal services.
906
936
  */
@@ -951,6 +981,7 @@ declare class Monque extends EventEmitter {
951
981
  * @param data - Job payload, will be passed to the worker handler
952
982
  * @param options - Scheduling and deduplication options
953
983
  * @returns Promise resolving to the created or existing job document
984
+ * @throws {InvalidJobIdentifierError} If `name` or `uniqueKey` fails public identifier validation
954
985
  * @throws {ConnectionError} If database operation fails or scheduler not initialized
955
986
  * @throws {PayloadTooLargeError} If payload exceeds configured `maxPayloadSize`
956
987
  *
@@ -992,6 +1023,7 @@ declare class Monque extends EventEmitter {
992
1023
  * @param name - Job type identifier, must match a registered worker
993
1024
  * @param data - Job payload, will be passed to the worker handler
994
1025
  * @returns Promise resolving to the created job document
1026
+ * @throws {InvalidJobIdentifierError} If `name` fails public identifier validation
995
1027
  * @throws {ConnectionError} If database operation fails or scheduler not initialized
996
1028
  *
997
1029
  * @example Send email immediately
@@ -1031,6 +1063,7 @@ declare class Monque extends EventEmitter {
1031
1063
  * @param data - Job payload, will be passed to the worker handler on each run
1032
1064
  * @param options - Scheduling options (uniqueKey for deduplication)
1033
1065
  * @returns Promise resolving to the created job document with `repeatInterval` set
1066
+ * @throws {InvalidJobIdentifierError} If `name` or `uniqueKey` fails public identifier validation
1034
1067
  * @throws {InvalidCronError} If cron expression is invalid
1035
1068
  * @throws {ConnectionError} If database operation fails or scheduler not initialized
1036
1069
  * @throws {PayloadTooLargeError} If payload exceeds configured `maxPayloadSize`
@@ -1371,6 +1404,7 @@ declare class Monque extends EventEmitter {
1371
1404
  * @param options - Worker configuration
1372
1405
  * @param options.concurrency - Maximum concurrent jobs for this worker (default: `defaultConcurrency`)
1373
1406
  * @param options.replace - When `true`, replace existing worker instead of throwing error
1407
+ * @throws {InvalidJobIdentifierError} If `name` fails public identifier validation
1374
1408
  * @throws {WorkerRegistrationError} When a worker is already registered for `name` and `replace` is not `true`
1375
1409
  *
1376
1410
  * @example Basic email worker
@@ -1539,6 +1573,13 @@ declare class Monque extends EventEmitter {
1539
1573
  * ```
1540
1574
  */
1541
1575
  isHealthy(): boolean;
1576
+ /**
1577
+ * Called when a job finishes processing. If a shutdown drain is pending
1578
+ * and no active jobs remain, resolves the drain promise.
1579
+ *
1580
+ * @private
1581
+ */
1582
+ private onJobFinished;
1542
1583
  /**
1543
1584
  * Ensure the scheduler is initialized before operations.
1544
1585
  *
@@ -1547,12 +1588,15 @@ declare class Monque extends EventEmitter {
1547
1588
  */
1548
1589
  private ensureInitialized;
1549
1590
  /**
1550
- * Get array of active job IDs across all workers.
1591
+ * Get total count of active jobs across all workers.
1592
+ *
1593
+ * Returns only the count (O(workers)) instead of allocating
1594
+ * a throw-away array of IDs, since callers only need `.length`.
1551
1595
  *
1552
1596
  * @private
1553
- * @returns Array of job ID strings currently being processed
1597
+ * @returns Number of jobs currently being processed
1554
1598
  */
1555
- private getActiveJobs;
1599
+ private getActiveJobCount;
1556
1600
  /**
1557
1601
  * Get list of active job documents (for shutdown timeout error).
1558
1602
  *
@@ -1703,6 +1747,25 @@ declare class JobStateError extends MonqueError {
1703
1747
  declare class InvalidCursorError extends MonqueError {
1704
1748
  constructor(message: string);
1705
1749
  }
1750
+ /**
1751
+ * Error thrown when a public job identifier fails validation.
1752
+ *
1753
+ * @example
1754
+ * ```typescript
1755
+ * try {
1756
+ * await monque.enqueue('invalid job name', {});
1757
+ * } catch (error) {
1758
+ * if (error instanceof InvalidJobIdentifierError) {
1759
+ * console.error(`Invalid ${error.field}: ${error.message}`);
1760
+ * }
1761
+ * }
1762
+ * ```
1763
+ */
1764
+ declare class InvalidJobIdentifierError extends MonqueError {
1765
+ readonly field: 'name' | 'uniqueKey';
1766
+ readonly value: string;
1767
+ constructor(field: 'name' | 'uniqueKey', value: string, message: string);
1768
+ }
1706
1769
  /**
1707
1770
  * Error thrown when a statistics aggregation times out.
1708
1771
  *
@@ -1830,5 +1893,21 @@ declare function getNextCronDate(expression: string, currentDate?: Date): Date;
1830
1893
  */
1831
1894
  declare function validateCronExpression(expression: string): void;
1832
1895
  //#endregion
1833
- export { AggregationTimeoutError, type BulkOperationResult, ConnectionError, CursorDirection, type CursorOptions, type CursorPage, DEFAULT_BASE_INTERVAL, DEFAULT_MAX_BACKOFF_DELAY, type EnqueueOptions, type GetJobsFilter, InvalidCronError, InvalidCursorError, type Job, type JobHandler, type JobSelector, JobStateError, JobStatus, type JobStatusType, Monque, MonqueError, type MonqueEventMap, type MonqueOptions, PayloadTooLargeError, type PersistedJob, type QueueStats, type ScheduleOptions, ShutdownTimeoutError, type WorkerOptions, WorkerRegistrationError, calculateBackoff, calculateBackoffDelay, getNextCronDate, isCancelledJob, isCompletedJob, isFailedJob, isPendingJob, isPersistedJob, isProcessingJob, isRecurringJob, isValidJobStatus, validateCronExpression };
1896
+ //#region src/shared/utils/job-identifiers.d.ts
1897
+ /**
1898
+ * Validate a public job name before it is registered or scheduled.
1899
+ *
1900
+ * @param name - The job name to validate
1901
+ * @throws {InvalidJobIdentifierError} If the job name is empty, too long, or contains unsupported characters
1902
+ */
1903
+ declare function validateJobName(name: string): void;
1904
+ /**
1905
+ * Validate a deduplication key before it is stored or used in a unique query.
1906
+ *
1907
+ * @param uniqueKey - The unique key to validate
1908
+ * @throws {InvalidJobIdentifierError} If the key is empty, too long, or contains control characters
1909
+ */
1910
+ declare function validateUniqueKey(uniqueKey: string): void;
1911
+ //#endregion
1912
+ export { AggregationTimeoutError, type BulkOperationResult, ConnectionError, CursorDirection, type CursorOptions, type CursorPage, DEFAULT_BASE_INTERVAL, DEFAULT_MAX_BACKOFF_DELAY, type EnqueueOptions, type GetJobsFilter, InvalidCronError, InvalidCursorError, InvalidJobIdentifierError, type Job, type JobHandler, type JobSelector, JobStateError, JobStatus, type JobStatusType, Monque, MonqueError, type MonqueEventMap, type MonqueOptions, PayloadTooLargeError, type PersistedJob, type QueueStats, type ScheduleOptions, ShutdownTimeoutError, type WorkerOptions, WorkerRegistrationError, calculateBackoff, calculateBackoffDelay, getNextCronDate, isCancelledJob, isCompletedJob, isFailedJob, isPendingJob, isPersistedJob, isProcessingJob, isRecurringJob, isValidJobStatus, validateCronExpression, validateJobName, validateUniqueKey };
1834
1913
  //# sourceMappingURL=index.d.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.cts","names":[],"sources":["../src/jobs/types.ts","../src/jobs/guards.ts","../src/events/types.ts","../src/workers/types.ts","../src/scheduler/types.ts","../src/scheduler/monque.ts","../src/shared/errors.ts","../src/shared/utils/backoff.ts","../src/shared/utils/cron.ts"],"mappings":"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"}
1
+ {"version":3,"file":"index.d.cts","names":[],"sources":["../src/jobs/types.ts","../src/jobs/guards.ts","../src/events/types.ts","../src/workers/types.ts","../src/scheduler/types.ts","../src/scheduler/monque.ts","../src/shared/errors.ts","../src/shared/utils/backoff.ts","../src/shared/utils/cron.ts","../src/shared/utils/job-identifiers.ts"],"mappings":"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"}
package/dist/index.d.mts CHANGED
@@ -801,6 +801,19 @@ interface MonqueOptions {
801
801
  * @default 5000
802
802
  */
803
803
  statsCacheTtlMs?: number;
804
+ /**
805
+ * Interval in milliseconds between safety polls when change streams are active.
806
+ *
807
+ * When change streams are connected, the scheduler uses them as the primary
808
+ * notification mechanism and only polls at this longer interval as a safety net
809
+ * to catch any missed events. When change streams are unavailable, the scheduler
810
+ * falls back to the standard `pollInterval`.
811
+ *
812
+ * This is separate from `heartbeatInterval`, which updates job liveness signals.
813
+ *
814
+ * @default 30000 (30 seconds)
815
+ */
816
+ safetyPollInterval?: number;
804
817
  }
805
818
  //#endregion
806
819
  //#region src/scheduler/monque.d.ts
@@ -875,6 +888,14 @@ declare class Monque extends EventEmitter {
875
888
  private workers;
876
889
  private isRunning;
877
890
  private isInitialized;
891
+ /**
892
+ * Resolve function for the reactive shutdown drain promise.
893
+ * Set during stop() when active jobs need to finish; called by
894
+ * onJobFinished() when the last active job completes.
895
+ *
896
+ * @private
897
+ */
898
+ private _drainResolve;
878
899
  private _scheduler;
879
900
  private _manager;
880
901
  private _query;
@@ -901,6 +922,15 @@ declare class Monque extends EventEmitter {
901
922
  private get changeStreamHandler();
902
923
  /** @throws {ConnectionError} if not initialized */
903
924
  private get lifecycleManager();
925
+ private validateSchedulingIdentifiers;
926
+ /**
927
+ * Handle a change-stream-triggered poll and reset the safety poll timer.
928
+ *
929
+ * Used as the `onPoll` callback for {@link ChangeStreamHandler}. Runs a
930
+ * targeted poll for the given worker names, then resets the adaptive safety
931
+ * poll timer so it doesn't fire redundantly.
932
+ */
933
+ private handleChangeStreamPoll;
904
934
  /**
905
935
  * Build the shared context for internal services.
906
936
  */
@@ -951,6 +981,7 @@ declare class Monque extends EventEmitter {
951
981
  * @param data - Job payload, will be passed to the worker handler
952
982
  * @param options - Scheduling and deduplication options
953
983
  * @returns Promise resolving to the created or existing job document
984
+ * @throws {InvalidJobIdentifierError} If `name` or `uniqueKey` fails public identifier validation
954
985
  * @throws {ConnectionError} If database operation fails or scheduler not initialized
955
986
  * @throws {PayloadTooLargeError} If payload exceeds configured `maxPayloadSize`
956
987
  *
@@ -992,6 +1023,7 @@ declare class Monque extends EventEmitter {
992
1023
  * @param name - Job type identifier, must match a registered worker
993
1024
  * @param data - Job payload, will be passed to the worker handler
994
1025
  * @returns Promise resolving to the created job document
1026
+ * @throws {InvalidJobIdentifierError} If `name` fails public identifier validation
995
1027
  * @throws {ConnectionError} If database operation fails or scheduler not initialized
996
1028
  *
997
1029
  * @example Send email immediately
@@ -1031,6 +1063,7 @@ declare class Monque extends EventEmitter {
1031
1063
  * @param data - Job payload, will be passed to the worker handler on each run
1032
1064
  * @param options - Scheduling options (uniqueKey for deduplication)
1033
1065
  * @returns Promise resolving to the created job document with `repeatInterval` set
1066
+ * @throws {InvalidJobIdentifierError} If `name` or `uniqueKey` fails public identifier validation
1034
1067
  * @throws {InvalidCronError} If cron expression is invalid
1035
1068
  * @throws {ConnectionError} If database operation fails or scheduler not initialized
1036
1069
  * @throws {PayloadTooLargeError} If payload exceeds configured `maxPayloadSize`
@@ -1371,6 +1404,7 @@ declare class Monque extends EventEmitter {
1371
1404
  * @param options - Worker configuration
1372
1405
  * @param options.concurrency - Maximum concurrent jobs for this worker (default: `defaultConcurrency`)
1373
1406
  * @param options.replace - When `true`, replace existing worker instead of throwing error
1407
+ * @throws {InvalidJobIdentifierError} If `name` fails public identifier validation
1374
1408
  * @throws {WorkerRegistrationError} When a worker is already registered for `name` and `replace` is not `true`
1375
1409
  *
1376
1410
  * @example Basic email worker
@@ -1539,6 +1573,13 @@ declare class Monque extends EventEmitter {
1539
1573
  * ```
1540
1574
  */
1541
1575
  isHealthy(): boolean;
1576
+ /**
1577
+ * Called when a job finishes processing. If a shutdown drain is pending
1578
+ * and no active jobs remain, resolves the drain promise.
1579
+ *
1580
+ * @private
1581
+ */
1582
+ private onJobFinished;
1542
1583
  /**
1543
1584
  * Ensure the scheduler is initialized before operations.
1544
1585
  *
@@ -1547,12 +1588,15 @@ declare class Monque extends EventEmitter {
1547
1588
  */
1548
1589
  private ensureInitialized;
1549
1590
  /**
1550
- * Get array of active job IDs across all workers.
1591
+ * Get total count of active jobs across all workers.
1592
+ *
1593
+ * Returns only the count (O(workers)) instead of allocating
1594
+ * a throw-away array of IDs, since callers only need `.length`.
1551
1595
  *
1552
1596
  * @private
1553
- * @returns Array of job ID strings currently being processed
1597
+ * @returns Number of jobs currently being processed
1554
1598
  */
1555
- private getActiveJobs;
1599
+ private getActiveJobCount;
1556
1600
  /**
1557
1601
  * Get list of active job documents (for shutdown timeout error).
1558
1602
  *
@@ -1703,6 +1747,25 @@ declare class JobStateError extends MonqueError {
1703
1747
  declare class InvalidCursorError extends MonqueError {
1704
1748
  constructor(message: string);
1705
1749
  }
1750
+ /**
1751
+ * Error thrown when a public job identifier fails validation.
1752
+ *
1753
+ * @example
1754
+ * ```typescript
1755
+ * try {
1756
+ * await monque.enqueue('invalid job name', {});
1757
+ * } catch (error) {
1758
+ * if (error instanceof InvalidJobIdentifierError) {
1759
+ * console.error(`Invalid ${error.field}: ${error.message}`);
1760
+ * }
1761
+ * }
1762
+ * ```
1763
+ */
1764
+ declare class InvalidJobIdentifierError extends MonqueError {
1765
+ readonly field: 'name' | 'uniqueKey';
1766
+ readonly value: string;
1767
+ constructor(field: 'name' | 'uniqueKey', value: string, message: string);
1768
+ }
1706
1769
  /**
1707
1770
  * Error thrown when a statistics aggregation times out.
1708
1771
  *
@@ -1830,5 +1893,21 @@ declare function getNextCronDate(expression: string, currentDate?: Date): Date;
1830
1893
  */
1831
1894
  declare function validateCronExpression(expression: string): void;
1832
1895
  //#endregion
1833
- export { AggregationTimeoutError, type BulkOperationResult, ConnectionError, CursorDirection, type CursorOptions, type CursorPage, DEFAULT_BASE_INTERVAL, DEFAULT_MAX_BACKOFF_DELAY, type EnqueueOptions, type GetJobsFilter, InvalidCronError, InvalidCursorError, type Job, type JobHandler, type JobSelector, JobStateError, JobStatus, type JobStatusType, Monque, MonqueError, type MonqueEventMap, type MonqueOptions, PayloadTooLargeError, type PersistedJob, type QueueStats, type ScheduleOptions, ShutdownTimeoutError, type WorkerOptions, WorkerRegistrationError, calculateBackoff, calculateBackoffDelay, getNextCronDate, isCancelledJob, isCompletedJob, isFailedJob, isPendingJob, isPersistedJob, isProcessingJob, isRecurringJob, isValidJobStatus, validateCronExpression };
1896
+ //#region src/shared/utils/job-identifiers.d.ts
1897
+ /**
1898
+ * Validate a public job name before it is registered or scheduled.
1899
+ *
1900
+ * @param name - The job name to validate
1901
+ * @throws {InvalidJobIdentifierError} If the job name is empty, too long, or contains unsupported characters
1902
+ */
1903
+ declare function validateJobName(name: string): void;
1904
+ /**
1905
+ * Validate a deduplication key before it is stored or used in a unique query.
1906
+ *
1907
+ * @param uniqueKey - The unique key to validate
1908
+ * @throws {InvalidJobIdentifierError} If the key is empty, too long, or contains control characters
1909
+ */
1910
+ declare function validateUniqueKey(uniqueKey: string): void;
1911
+ //#endregion
1912
+ export { AggregationTimeoutError, type BulkOperationResult, ConnectionError, CursorDirection, type CursorOptions, type CursorPage, DEFAULT_BASE_INTERVAL, DEFAULT_MAX_BACKOFF_DELAY, type EnqueueOptions, type GetJobsFilter, InvalidCronError, InvalidCursorError, InvalidJobIdentifierError, type Job, type JobHandler, type JobSelector, JobStateError, JobStatus, type JobStatusType, Monque, MonqueError, type MonqueEventMap, type MonqueOptions, PayloadTooLargeError, type PersistedJob, type QueueStats, type ScheduleOptions, ShutdownTimeoutError, type WorkerOptions, WorkerRegistrationError, calculateBackoff, calculateBackoffDelay, getNextCronDate, isCancelledJob, isCompletedJob, isFailedJob, isPendingJob, isPersistedJob, isProcessingJob, isRecurringJob, isValidJobStatus, validateCronExpression, validateJobName, validateUniqueKey };
1834
1913
  //# sourceMappingURL=index.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.mts","names":[],"sources":["../src/jobs/types.ts","../src/jobs/guards.ts","../src/events/types.ts","../src/workers/types.ts","../src/scheduler/types.ts","../src/scheduler/monque.ts","../src/shared/errors.ts","../src/shared/utils/backoff.ts","../src/shared/utils/cron.ts"],"mappings":"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"}
1
+ {"version":3,"file":"index.d.mts","names":[],"sources":["../src/jobs/types.ts","../src/jobs/guards.ts","../src/events/types.ts","../src/workers/types.ts","../src/scheduler/types.ts","../src/scheduler/monque.ts","../src/shared/errors.ts","../src/shared/utils/backoff.ts","../src/shared/utils/cron.ts","../src/shared/utils/job-identifiers.ts"],"mappings":"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"}