@zukhruf/sqlite-queue 0.0.0-stage → 0.3.42

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 (115) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +151 -2
  3. package/dist/activity.d.ts +10 -0
  4. package/dist/activity.d.ts.map +1 -0
  5. package/dist/activity.js +93 -0
  6. package/dist/activity.js.map +1 -0
  7. package/dist/attorney.d.ts +35 -0
  8. package/dist/attorney.d.ts.map +1 -0
  9. package/dist/attorney.js +367 -0
  10. package/dist/attorney.js.map +1 -0
  11. package/dist/claim-timer.d.ts +8 -0
  12. package/dist/claim-timer.d.ts.map +1 -0
  13. package/dist/claim-timer.js +80 -0
  14. package/dist/claim-timer.js.map +1 -0
  15. package/dist/completion-data.d.ts +6 -0
  16. package/dist/completion-data.d.ts.map +1 -0
  17. package/dist/completion-data.js +36 -0
  18. package/dist/completion-data.js.map +1 -0
  19. package/dist/database-error.d.ts +6 -0
  20. package/dist/database-error.d.ts.map +1 -0
  21. package/dist/database-error.js +12 -0
  22. package/dist/database-error.js.map +1 -0
  23. package/dist/database.d.ts +7 -0
  24. package/dist/database.d.ts.map +1 -0
  25. package/dist/database.js +28 -0
  26. package/dist/database.js.map +1 -0
  27. package/dist/in-flight.d.ts +7 -0
  28. package/dist/in-flight.d.ts.map +1 -0
  29. package/dist/in-flight.js +24 -0
  30. package/dist/in-flight.js.map +1 -0
  31. package/dist/index.d.ts +54 -0
  32. package/dist/index.d.ts.map +1 -0
  33. package/dist/index.js +1069 -0
  34. package/dist/index.js.map +1 -0
  35. package/dist/job-fetcher.d.ts +16 -0
  36. package/dist/job-fetcher.d.ts.map +1 -0
  37. package/dist/job-fetcher.js +227 -0
  38. package/dist/job-fetcher.js.map +1 -0
  39. package/dist/job-queue.d.ts +27 -0
  40. package/dist/job-queue.d.ts.map +1 -0
  41. package/dist/job-queue.js +2 -0
  42. package/dist/job-queue.js.map +1 -0
  43. package/dist/job-rows.d.ts +49 -0
  44. package/dist/job-rows.d.ts.map +1 -0
  45. package/dist/job-rows.js +155 -0
  46. package/dist/job-rows.js.map +1 -0
  47. package/dist/job-settler.d.ts +24 -0
  48. package/dist/job-settler.d.ts.map +1 -0
  49. package/dist/job-settler.js +240 -0
  50. package/dist/job-settler.js.map +1 -0
  51. package/dist/jsonb.d.ts +7 -0
  52. package/dist/jsonb.d.ts.map +1 -0
  53. package/dist/jsonb.js +85 -0
  54. package/dist/jsonb.js.map +1 -0
  55. package/dist/local-groups.d.ts +16 -0
  56. package/dist/local-groups.d.ts.map +1 -0
  57. package/dist/local-groups.js +113 -0
  58. package/dist/local-groups.js.map +1 -0
  59. package/dist/naive-timestamp.d.ts +6 -0
  60. package/dist/naive-timestamp.d.ts.map +1 -0
  61. package/dist/naive-timestamp.js +21 -0
  62. package/dist/naive-timestamp.js.map +1 -0
  63. package/dist/queue-cache.d.ts +9 -0
  64. package/dist/queue-cache.d.ts.map +1 -0
  65. package/dist/queue-cache.js +27 -0
  66. package/dist/queue-cache.js.map +1 -0
  67. package/dist/queue-rows.d.ts +25 -0
  68. package/dist/queue-rows.d.ts.map +1 -0
  69. package/dist/queue-rows.js +44 -0
  70. package/dist/queue-rows.js.map +1 -0
  71. package/dist/recurrence.d.ts +11 -0
  72. package/dist/recurrence.d.ts.map +1 -0
  73. package/dist/recurrence.js +226 -0
  74. package/dist/recurrence.js.map +1 -0
  75. package/dist/rows.d.ts +10 -0
  76. package/dist/rows.d.ts.map +1 -0
  77. package/dist/rows.js +46 -0
  78. package/dist/rows.js.map +1 -0
  79. package/dist/schema.d.ts +3 -0
  80. package/dist/schema.d.ts.map +1 -0
  81. package/dist/schema.js +139 -0
  82. package/dist/schema.js.map +1 -0
  83. package/dist/sql-values.d.ts +9 -0
  84. package/dist/sql-values.d.ts.map +1 -0
  85. package/dist/sql-values.js +26 -0
  86. package/dist/sql-values.js.map +1 -0
  87. package/dist/start-after.d.ts +10 -0
  88. package/dist/start-after.d.ts.map +1 -0
  89. package/dist/start-after.js +125 -0
  90. package/dist/start-after.js.map +1 -0
  91. package/dist/supervisor.d.ts +16 -0
  92. package/dist/supervisor.d.ts.map +1 -0
  93. package/dist/supervisor.js +288 -0
  94. package/dist/supervisor.js.map +1 -0
  95. package/dist/throttle.d.ts +6 -0
  96. package/dist/throttle.d.ts.map +1 -0
  97. package/dist/throttle.js +35 -0
  98. package/dist/throttle.js.map +1 -0
  99. package/dist/timekeeper.d.ts +36 -0
  100. package/dist/timekeeper.d.ts.map +1 -0
  101. package/dist/timekeeper.js +305 -0
  102. package/dist/timekeeper.js.map +1 -0
  103. package/dist/timers.d.ts +9 -0
  104. package/dist/timers.d.ts.map +1 -0
  105. package/dist/timers.js +50 -0
  106. package/dist/timers.js.map +1 -0
  107. package/dist/uuid.d.ts +7 -0
  108. package/dist/uuid.d.ts.map +1 -0
  109. package/dist/uuid.js +36 -0
  110. package/dist/uuid.js.map +1 -0
  111. package/dist/worker.d.ts +35 -0
  112. package/dist/worker.d.ts.map +1 -0
  113. package/dist/worker.js +147 -0
  114. package/dist/worker.js.map +1 -0
  115. package/package.json +53 -4
@@ -0,0 +1,24 @@
1
+ import { Latch } from '@zukhruf/async';
2
+ // An operation in flight that a later caller shares, as pg-boss shares its
3
+ // #starting, #stopping and #maintaining promises (node_modules/pg-boss/dist/
4
+ // index.js:111-131, 199-212, boss.js:173-199). It holds the outcome in a
5
+ // one-shot latch, so nothing rejects that no caller awaits.
6
+ export class InFlight {
7
+ #outcome = new Latch();
8
+ constructor(operation) {
9
+ operation.then((value) => this.#outcome.open({ value }), (error) => this.#outcome.open({ error }));
10
+ }
11
+ // The operation's own value or rejection.
12
+ async result() {
13
+ const outcome = await this.#outcome.wait();
14
+ if ('error' in outcome) {
15
+ throw outcome.error;
16
+ }
17
+ return outcome.value;
18
+ }
19
+ // Resolves when the operation settles, whichever way.
20
+ async settled() {
21
+ await this.#outcome.wait();
22
+ }
23
+ }
24
+ //# sourceMappingURL=in-flight.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"in-flight.js","sourceRoot":"","sources":["../src/in-flight.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAIvC,2EAA2E;AAC3E,6EAA6E;AAC7E,yEAAyE;AACzE,4DAA4D;AAC5D,MAAM,OAAO,QAAQ;IACV,QAAQ,GAAG,IAAI,KAAK,EAAc,CAAC;IAE5C,YAAY,SAAqB;QAC/B,SAAS,CAAC,IAAI,CACZ,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,EACxC,CAAC,KAAc,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,CAClD,CAAC;IACJ,CAAC;IAED,0CAA0C;IAC1C,KAAK,CAAC,MAAM;QACV,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QAC3C,IAAI,OAAO,IAAI,OAAO,EAAE,CAAC;YACvB,MAAM,OAAO,CAAC,KAAK,CAAC;QACtB,CAAC;QACD,OAAO,OAAO,CAAC,KAAK,CAAC;IACvB,CAAC;IAED,sDAAsD;IACtD,KAAK,CAAC,OAAO;QACX,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;IAC7B,CAAC;CACF"}
@@ -0,0 +1,54 @@
1
+ import { EventEmitter } from 'node:events';
2
+ import { DatabaseSync } from 'node:sqlite';
3
+ import { type Clock, type FindJobsOptions, type JobAttempt, type MaintenanceOptions, type OffWorkOptions, type PgBossEventMap, type Queue, type Request, type ScheduleOptions, type SchedulingOptions, type SendOptions, type StopOptions, type UpdateQueueOptions, type WorkHandler, type WorkOptions } from 'pg-boss';
4
+ import type { FoundJob, JobQueue } from './job-queue.ts';
5
+ export { DatabaseError } from './database-error.ts';
6
+ export { UnsupportedStartAfterError } from './start-after.ts';
7
+ export type { FoundJob, JobQueue } from './job-queue.ts';
8
+ export interface SqliteJobQueueOptions extends Pick<MaintenanceOptions, 'supervise' | 'superviseIntervalSeconds' | 'monitorIntervalSeconds' | 'maintenanceIntervalSeconds' | 'queueCacheIntervalSeconds' | 'warningQueueSize'>, Pick<SchedulingOptions, 'schedule' | 'cronMonitorIntervalSeconds' | 'cronWorkerIntervalSeconds' | 'clockMonitorIntervalSeconds'> {
9
+ path?: string;
10
+ database?: DatabaseSync;
11
+ clock?: Clock;
12
+ useListenNotify?: boolean;
13
+ }
14
+ export declare class SqliteJobQueue extends EventEmitter<Pick<PgBossEventMap, 'error' | 'warning' | 'wip' | 'stopped'>> implements JobQueue {
15
+ #private;
16
+ private readonly workers;
17
+ constructor(options?: string | SqliteJobQueueOptions);
18
+ private get db();
19
+ start(): Promise<this>;
20
+ stop(options?: StopOptions): Promise<void>;
21
+ offWork(name: string, options?: OffWorkOptions): Promise<void>;
22
+ createQueue(name: string, options?: Omit<Queue, 'name'>): Promise<void>;
23
+ updateQueue(name: string, options?: UpdateQueueOptions): Promise<void>;
24
+ deleteQueue(name: string): Promise<void>;
25
+ send(request: Request): Promise<string | null>;
26
+ send<TData extends object>(name: string, data?: TData | null, options?: SendOptions): Promise<string | null>;
27
+ work(name: string, handler: WorkHandler<unknown>): Promise<string>;
28
+ work(name: string, options: WorkOptions, handler: WorkHandler<unknown>): Promise<string>;
29
+ findJobs(name: string, options?: FindJobsOptions): Promise<FoundJob<unknown>[]>;
30
+ cancel(name: string, id: string | string[] | JobAttempt | JobAttempt[]): Promise<{
31
+ jobs: string[];
32
+ requested: number;
33
+ affected: number;
34
+ settled: string[];
35
+ }>;
36
+ fail(name: string, id: string | string[] | JobAttempt | JobAttempt[], data?: object | null): Promise<{
37
+ jobs: string[];
38
+ requested: number;
39
+ affected: number;
40
+ settled: string[];
41
+ }>;
42
+ schedule<TData extends object>(name: string, cron: string, data?: TData | null, options?: ScheduleOptions): Promise<void>;
43
+ unschedule(name: string, key?: string): Promise<void>;
44
+ private applySchema;
45
+ private mapQueueUpdateOptions;
46
+ private pushOption;
47
+ private pushClearableOption;
48
+ private findQueue;
49
+ private getQueueOrThrow;
50
+ private notifyQueue;
51
+ private wakeNotifyQueueWorkers;
52
+ private processJobs;
53
+ }
54
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAI3C,OAAO,EACL,KAAK,KAAK,EAEV,KAAK,eAAe,EACpB,KAAK,UAAU,EACf,KAAK,kBAAkB,EACvB,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,KAAK,EACV,KAAK,OAAO,EACZ,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACtB,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,KAAK,kBAAkB,EAEvB,KAAK,WAAW,EAChB,KAAK,WAAW,EAGjB,MAAM,SAAS,CAAC;AAWjB,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAuBzD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AAE9D,YAAY,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AA8BzD,MAAM,WAAW,qBACf,SACE,IAAI,CACF,kBAAkB,EAChB,WAAW,GACX,0BAA0B,GAC1B,wBAAwB,GACxB,4BAA4B,GAC5B,2BAA2B,GAC3B,kBAAkB,CACrB,EACD,IAAI,CACF,iBAAiB,EACf,UAAU,GACV,4BAA4B,GAC5B,2BAA2B,GAC3B,6BAA6B,CAChC;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAuBD,qBAAa,cACX,SAAQ,YAAY,CAClB,IAAI,CAAC,cAAc,EAAE,OAAO,GAAG,SAAS,GAAG,KAAK,GAAG,SAAS,CAAC,CAE/D,YAAW,QAAQ;;IA4CnB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAqC;gBAEjD,OAAO,CAAC,EAAE,MAAM,GAAG,qBAAqB;IAkDpD,OAAO,KAAK,EAAE,GAMb;IAIK,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IA0DtB,IAAI,CAAC,OAAO,GAAE,WAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IA0L9C,OAAO,CACX,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,cAA+B,GACvC,OAAO,CAAC,IAAI,CAAC;IAsDV,WAAW,CACf,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,IAAI,CAAC,KAAK,EAAE,MAAM,CAAM,GAChC,OAAO,CAAC,IAAI,CAAC;IAsDV,WAAW,CACf,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,kBAAuB,GAC/B,OAAO,CAAC,IAAI,CAAC;IA+CV,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA0B9C,IAAI,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAC9C,IAAI,CAAC,KAAK,SAAS,MAAM,EACvB,IAAI,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE,KAAK,GAAG,IAAI,EACnB,OAAO,CAAC,EAAE,WAAW,GACpB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAmLzB,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;IAClE,IAAI,CACF,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,WAAW,EACpB,OAAO,EAAE,WAAW,CAAC,OAAO,CAAC,GAC5B,OAAO,CAAC,MAAM,CAAC;IAsLZ,QAAQ,CACZ,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;IAwCzB,MAAM,CACV,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,UAAU,GAAG,UAAU,EAAE;;;;;;IAY7C,IAAI,CACR,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,UAAU,GAAG,UAAU,EAAE,EACjD,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI;;;;;;IAahB,QAAQ,CAAC,KAAK,SAAS,MAAM,EACjC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE,KAAK,GAAG,IAAI,EACnB,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC,IAAI,CAAC;IAkEV,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,SAAK,GAAG,OAAO,CAAC,IAAI,CAAC;IASvD,OAAO,CAAC,WAAW;IAQnB,OAAO,CAAC,qBAAqB;IAiC7B,OAAO,CAAC,UAAU;IAYlB,OAAO,CAAC,mBAAmB;IAU3B,OAAO,CAAC,SAAS;IAUjB,OAAO,CAAC,eAAe;IAgCvB,OAAO,CAAC,WAAW;IAYnB,OAAO,CAAC,sBAAsB;YAahB,WAAW;CAiN1B"}