@azlib/scheduler 1.0.5 → 1.1.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 (48) hide show
  1. package/Dockerfile +14 -0
  2. package/README.md +40 -0
  3. package/compose.yaml +28 -0
  4. package/dist/cli-config-7F2U8qPM.mjs +462 -0
  5. package/dist/cli-config-7F2U8qPM.mjs.map +1 -0
  6. package/dist/cli-config-Cz8QP_4I.cjs +512 -0
  7. package/dist/dashboard/cli.cjs +30 -0
  8. package/dist/dashboard/cli.d.cts +6 -0
  9. package/dist/dashboard/cli.d.cts.map +1 -0
  10. package/dist/dashboard/cli.d.mts +6 -0
  11. package/dist/dashboard/cli.d.mts.map +1 -0
  12. package/dist/dashboard/cli.mjs +31 -0
  13. package/dist/dashboard/cli.mjs.map +1 -0
  14. package/dist/dashboard/public/assets/index-CbmpG6_w.css +2 -0
  15. package/dist/dashboard/public/assets/index-eWhp41cY.js +12 -0
  16. package/dist/dashboard/public/index.html +13 -0
  17. package/dist/dashboard-types-BHjRLcxJ.d.cts +127 -0
  18. package/dist/dashboard-types-BHjRLcxJ.d.cts.map +1 -0
  19. package/dist/dashboard-types-BHjRLcxJ.d.mts +127 -0
  20. package/dist/dashboard-types-BHjRLcxJ.d.mts.map +1 -0
  21. package/dist/dashboard.cjs +9 -0
  22. package/dist/dashboard.d.cts +20 -0
  23. package/dist/dashboard.d.cts.map +1 -0
  24. package/dist/dashboard.d.mts +20 -0
  25. package/dist/dashboard.d.mts.map +1 -0
  26. package/dist/dashboard.mjs +4 -0
  27. package/dist/http-server-DN6Lg464.d.cts +19 -0
  28. package/dist/http-server-DN6Lg464.d.cts.map +1 -0
  29. package/dist/http-server-DPQ9HIK-.d.mts +19 -0
  30. package/dist/http-server-DPQ9HIK-.d.mts.map +1 -0
  31. package/dist/index.cjs +49 -442
  32. package/dist/index.d.cts +3 -158
  33. package/dist/index.d.cts.map +1 -1
  34. package/dist/index.d.mts +3 -158
  35. package/dist/index.d.mts.map +1 -1
  36. package/dist/index.mjs +44 -439
  37. package/dist/index.mjs.map +1 -1
  38. package/dist/queue-dashboard-service-BFXcnfUr.cjs +55 -0
  39. package/dist/queue-dashboard-service-C0QapgOg.mjs +52 -0
  40. package/dist/queue-dashboard-service-C0QapgOg.mjs.map +1 -0
  41. package/dist/store-dashboard-C44d7sdh.d.cts +59 -0
  42. package/dist/store-dashboard-C44d7sdh.d.cts.map +1 -0
  43. package/dist/store-dashboard-Cyf_JILa.mjs +515 -0
  44. package/dist/store-dashboard-Cyf_JILa.mjs.map +1 -0
  45. package/dist/store-dashboard-D-yIxXxL.d.mts +59 -0
  46. package/dist/store-dashboard-D-yIxXxL.d.mts.map +1 -0
  47. package/dist/store-dashboard-Sg4BBWiJ.cjs +554 -0
  48. package/package.json +55 -7
package/dist/index.d.cts CHANGED
@@ -1,93 +1,5 @@
1
- import { SqlClientAdapter, SqlDialectAdapter } from "@azlib/persistence";
2
- //#region src/contracts/scheduler-types.d.ts
3
- type SchedulerMode = "standalone" | "embedded";
4
- type ScheduleType = "once" | "cron";
5
- type SchedulerOverlapPolicy = "skip" | "enqueue" | "coalesce";
6
- type SchedulerMissedRunPolicy = "run-immediately" | "skip-missed";
7
- interface SchedulerScheduleConfig {
8
- scheduleType: ScheduleType;
9
- expression: string;
10
- timezone: string;
11
- overlapPolicy?: SchedulerOverlapPolicy;
12
- missedRunPolicy?: SchedulerMissedRunPolicy;
13
- }
14
- interface SchedulerJobDefinition<TConfig = unknown> {
15
- name: string;
16
- handlerKey: string;
17
- schedule: SchedulerScheduleConfig;
18
- config: TConfig;
19
- enabled?: boolean;
20
- }
21
- interface SchedulerJobRecord<TConfig = unknown> extends SchedulerJobDefinition<TConfig> {
22
- jobId: string;
23
- enabled: boolean;
24
- createdAt: string;
25
- updatedAt: string;
26
- }
27
- interface SchedulerExecutionRecord {
28
- executionId: string;
29
- jobId: string;
30
- scheduledFor: string;
31
- triggeredAt: string;
32
- status: "queued" | "running" | "succeeded" | "failed" | "dead-letter";
33
- queueTaskId?: string;
34
- attemptCount: number;
35
- lastError?: string;
36
- }
37
- interface SchedulerJobListItem {
38
- jobId: string;
39
- name: string;
40
- enabled: boolean;
41
- nextRunAt?: string;
42
- timezone: string;
43
- }
44
- interface SchedulerExecutionQuery {
45
- jobId?: string;
46
- status?: SchedulerExecutionRecord["status"];
47
- from?: string;
48
- to?: string;
49
- limit?: number;
50
- }
51
- interface SchedulerService {
52
- registerJob<TConfig>(job: SchedulerJobDefinition<TConfig>): Promise<{
53
- jobId: string;
54
- }>;
55
- updateJob<TConfig>(jobId: string, patch: Partial<SchedulerJobDefinition<TConfig>>): Promise<void>;
56
- pauseJob(jobId: string): Promise<void>;
57
- resumeJob(jobId: string): Promise<void>;
58
- deleteJob(jobId: string): Promise<void>;
59
- listJobs(): Promise<SchedulerJobListItem[]>;
60
- listExecutions(query?: SchedulerExecutionQuery): Promise<SchedulerExecutionRecord[]>;
61
- retryFailedExecution(executionId: string): Promise<void>;
62
- start(): Promise<void>;
63
- stop(): Promise<void>;
64
- }
65
- interface SchedulerServiceOptions {
66
- mode: SchedulerMode;
67
- queueName?: string;
68
- queueService?: import("@azlib/queue").QueueService;
69
- cache?: import("@azlib/cache").Cache<string>;
70
- logger?: {
71
- debug(message: string, meta?: Record<string, unknown>): void;
72
- info(message: string, meta?: Record<string, unknown>): void;
73
- warn(message: string, meta?: Record<string, unknown>): void;
74
- error(message: string, meta?: Record<string, unknown>): void;
75
- };
76
- tickIntervalMs?: number;
77
- maxDueJobsPerTick?: number;
78
- persistence?: SchedulerPersistenceConfig;
79
- }
80
- interface SchedulerPersistenceConfig {
81
- client: SqlClientAdapter;
82
- dialect: SqlDialectAdapter;
83
- namespace?: string;
84
- }
85
- interface SchedulerHandlerRegistry {
86
- register<TConfig>(handlerKey: string, handler: (input: TConfig) => Promise<void>): void;
87
- resolve(handlerKey: string): ((input: unknown) => Promise<void>) | null;
88
- has(handlerKey: string): boolean;
89
- }
90
- //#endregion
1
+ import { a as SchedulerHandlerRegistry, c as SchedulerMissedRunPolicy, d as SchedulerPersistenceConfig, f as SchedulerScheduleConfig, l as SchedulerMode, m as SchedulerServiceOptions, n as SchedulerDashboardItem, o as SchedulerJobDefinition, p as SchedulerService, r as SchedulerDashboardService, s as SchedulerJobRecord, t as SchedulerDashboardHealth, u as SchedulerOverlapPolicy } from "./dashboard-types-BHjRLcxJ.cjs";
2
+ import { i as createSchedulerDashboardService, n as createSchedulerDashboardFromStores, r as createSchedulerPersistence, t as createSchedulerDashboardFromPersistence } from "./store-dashboard-C44d7sdh.cjs";
91
3
  //#region src/contracts/scheduler-host.d.ts
92
4
  interface SchedulerHostAdapter {
93
5
  onStart(listener: () => Promise<void> | void): void;
@@ -142,78 +54,11 @@ declare class CronExpressionBuilder {
142
54
  }
143
55
  declare function createCronExpression(): CronExpressionBuilder;
144
56
  //#endregion
145
- //#region src/dashboard/queue-queries.d.ts
146
- interface SchedulerDashboardHealth {
147
- totalJobs: number;
148
- enabledJobs: number;
149
- pausedJobs: number;
150
- failedExecutions: number;
151
- }
152
- declare function querySchedulerHealth(scheduler: SchedulerService): Promise<SchedulerDashboardHealth>;
153
- declare function querySchedulerItems(scheduler: SchedulerService): Promise<{
154
- jobId: string;
155
- name: string;
156
- enabled: boolean;
157
- nextRunAt?: string;
158
- timezone: string;
159
- executions: SchedulerExecutionRecord[];
160
- }[]>;
161
- //#endregion
162
- //#region src/dashboard/queue-dashboard-service.d.ts
163
- interface SchedulerDashboardService {
164
- getHealth(): ReturnType<typeof querySchedulerHealth>;
165
- listItems(): ReturnType<typeof querySchedulerItems>;
166
- pauseJob(jobId: string): Promise<void>;
167
- resumeJob(jobId: string): Promise<void>;
168
- retryExecution(executionId: string): Promise<void>;
169
- }
170
- declare function createSchedulerDashboardService(scheduler: SchedulerService): SchedulerDashboardService;
171
- //#endregion
172
- //#region src/core/job-execution-store.d.ts
173
- interface JobExecutionStore {
174
- create(record: SchedulerExecutionRecord): Promise<SchedulerExecutionRecord>;
175
- update(executionId: string, patch: Partial<Omit<SchedulerExecutionRecord, "executionId">>): Promise<SchedulerExecutionRecord | null>;
176
- listByJob(jobId: string): Promise<SchedulerExecutionRecord[]>;
177
- }
178
- //#endregion
179
- //#region src/core/schedule-cursor-store.d.ts
180
- interface ScheduleCursorRecord {
181
- jobId: string;
182
- lastEvaluatedAt: string;
183
- lastTriggeredAt?: string;
184
- nextRunAt: string;
185
- version: number;
186
- }
187
- interface ScheduleCursorStore {
188
- set(jobId: string, nextRunAt: string, now: string): Promise<ScheduleCursorRecord>;
189
- markTriggered(jobId: string, triggeredAt: string): Promise<ScheduleCursorRecord | null>;
190
- get(jobId: string): Promise<ScheduleCursorRecord | null>;
191
- remove(jobId: string): Promise<boolean>;
192
- }
193
- //#endregion
194
- //#region src/core/scheduler-job-store.d.ts
195
- interface SchedulerJobStore {
196
- create(jobId: string, definition: SchedulerJobDefinition): Promise<SchedulerJobRecord>;
197
- update(jobId: string, patch: Partial<SchedulerJobDefinition>): Promise<SchedulerJobRecord | null>;
198
- setEnabled(jobId: string, enabled: boolean): Promise<SchedulerJobRecord | null>;
199
- get(jobId: string): Promise<SchedulerJobRecord | null>;
200
- list(): Promise<SchedulerJobRecord[]>;
201
- remove(jobId: string): Promise<boolean>;
202
- }
203
- //#endregion
204
- //#region src/core/persistence.d.ts
205
- interface SchedulerPersistence {
206
- jobStore: SchedulerJobStore;
207
- cursorStore: ScheduleCursorStore;
208
- executionStore: JobExecutionStore;
209
- }
210
- declare function createSchedulerPersistence(config: SchedulerPersistenceConfig): SchedulerPersistence;
211
- //#endregion
212
57
  //#region index.d.ts
213
58
  declare function createSchedulerService(options: SchedulerServiceOptions): {
214
59
  service: SchedulerService;
215
60
  handlers: SchedulerHandlerRegistry;
216
61
  };
217
62
  //#endregion
218
- export { CronWeekday, type CronWeekdayValue, type SchedulerHandlerRegistry, type SchedulerHostAdapter, type SchedulerJobDefinition, type SchedulerJobRecord, type SchedulerMissedRunPolicy, type SchedulerMode, type SchedulerOverlapPolicy, type SchedulerPersistenceConfig, type SchedulerScheduleConfig, type SchedulerService, type SchedulerServiceOptions, bindSchedulerToHost, createCronExpression, createSchedulerDashboardService, createSchedulerPersistence, createSchedulerService };
63
+ export { CronWeekday, type CronWeekdayValue, type SchedulerDashboardHealth, type SchedulerDashboardItem, type SchedulerDashboardService, type SchedulerHandlerRegistry, type SchedulerHostAdapter, type SchedulerJobDefinition, type SchedulerJobRecord, type SchedulerMissedRunPolicy, type SchedulerMode, type SchedulerOverlapPolicy, type SchedulerPersistenceConfig, type SchedulerScheduleConfig, type SchedulerService, type SchedulerServiceOptions, bindSchedulerToHost, createCronExpression, createSchedulerDashboardFromPersistence, createSchedulerDashboardFromStores, createSchedulerDashboardService, createSchedulerPersistence, createSchedulerService };
219
64
  //# sourceMappingURL=index.d.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.cts","names":[],"sources":["../src/contracts/scheduler-types.ts","../src/contracts/scheduler-host.ts","../src/core/scheduler-host-binding.ts","../src/core/cron-expression-builder.ts","../src/dashboard/queue-queries.ts","../src/dashboard/queue-dashboard-service.ts","../src/core/job-execution-store.ts","../src/core/schedule-cursor-store.ts","../src/core/scheduler-job-store.ts","../src/core/persistence.ts","../index.ts"],"mappings":";;KAEY;KAEA;KAEA;KAEA;UAEK;EACf,cAAc;EACd;EACA;EACA,gBAAgB;EAChB,kBAAkB;;UAGH,uBAAuB;EACtC;EACA;EACA,UAAU;EACV,QAAQ;EACR;;UAGe,mBACf,2BACQ,uBAAuB;EAC/B;EACA;EACA;EACA;;UAGe;EACf;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;UAGe;EACf;EACA;EACA;EACA;EACA;;UAGe;EACf;EACA,SAAS;EACT;EACA;EACA;;UAGe;EACf,YAAY,SACV,KAAK,uBAAuB,WAC3B;IAAU;;EACb,UAAU,SACR,eACA,OAAO,QAAQ,uBAAuB,YACrC;EACH,SAAS,gBAAgB;EACzB,UAAU,gBAAgB;EAC1B,UAAU,gBAAgB;EAC1B,YAAY,QAAQ;EACpB,eACE,QAAQ,0BACP,QAAQ;EACX,qBAAqB,sBAAsB;EAC3C,SAAS;EACT,QAAQ;;UAGO;EACf,MAAM;EACN;EACA,sCAAsC;EACtC,+BAA+B;EAC/B;IACE,MAAM,iBAAiB,OAAO;IAC9B,KAAK,iBAAiB,OAAO;IAC7B,KAAK,iBAAiB,OAAO;IAC7B,MAAM,iBAAiB,OAAO;;EAEhC;EACA;EACA,cAAc;;UAGC;EACf,QAAQ;EACR,SAAS;EACT;;UAGe;EACf,SAAS,SACP,oBACA,UAAU,OAAO,YAAY;EAE/B,QAAQ,uBAAuB,mBAAmB;EAClD,IAAI;;;;UC9GW;EACf,QAAQ,gBAAgB;EACxB,OAAO,gBAAgB;;;;iBCCT,oBACd,WAAW,kBACX,MAAM;;;cCHK;WACX;WACA;WACA;WACA;WACA;WACA;WACA;;KAGU,2BAA2B,0BAA0B;cAgCpD;UACH;UACA;UACA;UACA;UACA;EAER;EAKA,cAAc;EAMd,SAAS;EAMT,UAAU;EASV;EAKA,YAAY;EAMZ,OAAO;EAMP,QAAQ;EASR,aAAa;EAMb,cAAc;EASd,kBAAkB;EAMlB;EAKA,QAAQ;EAMR,SAAS;EAST,aAAa;EAMb,UAAU,SAAS;EAMnB,WAAW,UAAU;EAWrB,eAAe;EAMf;EAKA;EAKA,QAAQ,cAAc;EAStB,SAAS,SAAS,kBAAkB,eAAU;EAS9C,UAAU,oBAAoB,eAAU;EASxC;EAIA;;iBAKc,wBAAwB;;;UCzNvB;EACf;EACA;EACA;EACA;;iBAGoB,qBACpB,WAAW,mBACV,QAAQ;iBAYW,oBAAoB,WAAW,mBAAgB;;;;;;cAAhB;;;;UCpBpC;EACf,aAAa,kBAAkB;EAC/B,aAAa,kBAAkB;EAC/B,SAAS,gBAAgB;EACzB,UAAU,gBAAgB;EAC1B,eAAe,sBAAsB;;iBAGvB,gCACd,WAAW,mBACV;;;UCXc;EACf,OAAO,QAAQ,2BAA2B,QAAQ;EAClD,OACE,qBACA,OAAO,QAAQ,KAAK,4CACnB,QAAQ;EACX,UAAU,gBAAgB,QAAQ;;;;UCRnB;EACf;EACA;EACA;EACA;EACA;;UAGe;EACf,IACE,eACA,mBACA,cACC,QAAQ;EACX,cACE,eACA,sBACC,QAAQ;EACX,IAAI,gBAAgB,QAAQ;EAC5B,OAAO,gBAAgB;;;;UCdR;EACf,OACE,eACA,YAAY,yBACX,QAAQ;EACX,OACE,eACA,OAAO,QAAQ,0BACd,QAAQ;EACX,WACE,eACA,mBACC,QAAQ;EACX,IAAI,gBAAgB,QAAQ;EAC5B,QAAQ,QAAQ;EAChB,OAAO,gBAAgB;;;;UCyLR;EACf,UAAU;EACV,aAAa;EACb,gBAAgB;;iBAGF,2BACd,QAAQ,6BACP;;;iBCtLa,uBAAuB,SAAS;EAC9C,SAAS;EACT,UAAU"}
1
+ {"version":3,"file":"index.d.cts","names":[],"sources":["../src/contracts/scheduler-host.ts","../src/core/scheduler-host-binding.ts","../src/core/cron-expression-builder.ts","../index.ts"],"mappings":";;;UAAiB;EACf,QAAQ,gBAAgB;EACxB,OAAO,gBAAgB;;;;iBCCT,oBACd,WAAW,kBACX,MAAM;;;cCHK;WACX;WACA;WACA;WACA;WACA;WACA;WACA;;KAGU,2BAA2B,0BAA0B;cAgCpD;UACH;UACA;UACA;UACA;UACA;EAER;EAKA,cAAc;EAMd,SAAS;EAMT,UAAU;EASV;EAKA,YAAY;EAMZ,OAAO;EAMP,QAAQ;EASR,aAAa;EAMb,cAAc;EASd,kBAAkB;EAMlB;EAKA,QAAQ;EAMR,SAAS;EAST,aAAa;EAMb,UAAU,SAAS;EAMnB,WAAW,UAAU;EAWrB,eAAe;EAMf;EAKA;EAKA,QAAQ,cAAc;EAStB,SAAS,SAAS,kBAAkB,eAAU;EAS9C,UAAU,oBAAoB,eAAU;EASxC;EAIA;;iBAKc,wBAAwB;;;iBCnLxB,uBAAuB,SAAS;EAC9C,SAAS;EACT,UAAU"}
package/dist/index.d.mts CHANGED
@@ -1,93 +1,5 @@
1
- import { SqlClientAdapter, SqlDialectAdapter } from "@azlib/persistence";
2
- //#region src/contracts/scheduler-types.d.ts
3
- type SchedulerMode = "standalone" | "embedded";
4
- type ScheduleType = "once" | "cron";
5
- type SchedulerOverlapPolicy = "skip" | "enqueue" | "coalesce";
6
- type SchedulerMissedRunPolicy = "run-immediately" | "skip-missed";
7
- interface SchedulerScheduleConfig {
8
- scheduleType: ScheduleType;
9
- expression: string;
10
- timezone: string;
11
- overlapPolicy?: SchedulerOverlapPolicy;
12
- missedRunPolicy?: SchedulerMissedRunPolicy;
13
- }
14
- interface SchedulerJobDefinition<TConfig = unknown> {
15
- name: string;
16
- handlerKey: string;
17
- schedule: SchedulerScheduleConfig;
18
- config: TConfig;
19
- enabled?: boolean;
20
- }
21
- interface SchedulerJobRecord<TConfig = unknown> extends SchedulerJobDefinition<TConfig> {
22
- jobId: string;
23
- enabled: boolean;
24
- createdAt: string;
25
- updatedAt: string;
26
- }
27
- interface SchedulerExecutionRecord {
28
- executionId: string;
29
- jobId: string;
30
- scheduledFor: string;
31
- triggeredAt: string;
32
- status: "queued" | "running" | "succeeded" | "failed" | "dead-letter";
33
- queueTaskId?: string;
34
- attemptCount: number;
35
- lastError?: string;
36
- }
37
- interface SchedulerJobListItem {
38
- jobId: string;
39
- name: string;
40
- enabled: boolean;
41
- nextRunAt?: string;
42
- timezone: string;
43
- }
44
- interface SchedulerExecutionQuery {
45
- jobId?: string;
46
- status?: SchedulerExecutionRecord["status"];
47
- from?: string;
48
- to?: string;
49
- limit?: number;
50
- }
51
- interface SchedulerService {
52
- registerJob<TConfig>(job: SchedulerJobDefinition<TConfig>): Promise<{
53
- jobId: string;
54
- }>;
55
- updateJob<TConfig>(jobId: string, patch: Partial<SchedulerJobDefinition<TConfig>>): Promise<void>;
56
- pauseJob(jobId: string): Promise<void>;
57
- resumeJob(jobId: string): Promise<void>;
58
- deleteJob(jobId: string): Promise<void>;
59
- listJobs(): Promise<SchedulerJobListItem[]>;
60
- listExecutions(query?: SchedulerExecutionQuery): Promise<SchedulerExecutionRecord[]>;
61
- retryFailedExecution(executionId: string): Promise<void>;
62
- start(): Promise<void>;
63
- stop(): Promise<void>;
64
- }
65
- interface SchedulerServiceOptions {
66
- mode: SchedulerMode;
67
- queueName?: string;
68
- queueService?: import("@azlib/queue").QueueService;
69
- cache?: import("@azlib/cache").Cache<string>;
70
- logger?: {
71
- debug(message: string, meta?: Record<string, unknown>): void;
72
- info(message: string, meta?: Record<string, unknown>): void;
73
- warn(message: string, meta?: Record<string, unknown>): void;
74
- error(message: string, meta?: Record<string, unknown>): void;
75
- };
76
- tickIntervalMs?: number;
77
- maxDueJobsPerTick?: number;
78
- persistence?: SchedulerPersistenceConfig;
79
- }
80
- interface SchedulerPersistenceConfig {
81
- client: SqlClientAdapter;
82
- dialect: SqlDialectAdapter;
83
- namespace?: string;
84
- }
85
- interface SchedulerHandlerRegistry {
86
- register<TConfig>(handlerKey: string, handler: (input: TConfig) => Promise<void>): void;
87
- resolve(handlerKey: string): ((input: unknown) => Promise<void>) | null;
88
- has(handlerKey: string): boolean;
89
- }
90
- //#endregion
1
+ import { a as SchedulerHandlerRegistry, c as SchedulerMissedRunPolicy, d as SchedulerPersistenceConfig, f as SchedulerScheduleConfig, l as SchedulerMode, m as SchedulerServiceOptions, n as SchedulerDashboardItem, o as SchedulerJobDefinition, p as SchedulerService, r as SchedulerDashboardService, s as SchedulerJobRecord, t as SchedulerDashboardHealth, u as SchedulerOverlapPolicy } from "./dashboard-types-BHjRLcxJ.mjs";
2
+ import { i as createSchedulerDashboardService, n as createSchedulerDashboardFromStores, r as createSchedulerPersistence, t as createSchedulerDashboardFromPersistence } from "./store-dashboard-D-yIxXxL.mjs";
91
3
  //#region src/contracts/scheduler-host.d.ts
92
4
  interface SchedulerHostAdapter {
93
5
  onStart(listener: () => Promise<void> | void): void;
@@ -142,78 +54,11 @@ declare class CronExpressionBuilder {
142
54
  }
143
55
  declare function createCronExpression(): CronExpressionBuilder;
144
56
  //#endregion
145
- //#region src/dashboard/queue-queries.d.ts
146
- interface SchedulerDashboardHealth {
147
- totalJobs: number;
148
- enabledJobs: number;
149
- pausedJobs: number;
150
- failedExecutions: number;
151
- }
152
- declare function querySchedulerHealth(scheduler: SchedulerService): Promise<SchedulerDashboardHealth>;
153
- declare function querySchedulerItems(scheduler: SchedulerService): Promise<{
154
- jobId: string;
155
- name: string;
156
- enabled: boolean;
157
- nextRunAt?: string;
158
- timezone: string;
159
- executions: SchedulerExecutionRecord[];
160
- }[]>;
161
- //#endregion
162
- //#region src/dashboard/queue-dashboard-service.d.ts
163
- interface SchedulerDashboardService {
164
- getHealth(): ReturnType<typeof querySchedulerHealth>;
165
- listItems(): ReturnType<typeof querySchedulerItems>;
166
- pauseJob(jobId: string): Promise<void>;
167
- resumeJob(jobId: string): Promise<void>;
168
- retryExecution(executionId: string): Promise<void>;
169
- }
170
- declare function createSchedulerDashboardService(scheduler: SchedulerService): SchedulerDashboardService;
171
- //#endregion
172
- //#region src/core/job-execution-store.d.ts
173
- interface JobExecutionStore {
174
- create(record: SchedulerExecutionRecord): Promise<SchedulerExecutionRecord>;
175
- update(executionId: string, patch: Partial<Omit<SchedulerExecutionRecord, "executionId">>): Promise<SchedulerExecutionRecord | null>;
176
- listByJob(jobId: string): Promise<SchedulerExecutionRecord[]>;
177
- }
178
- //#endregion
179
- //#region src/core/schedule-cursor-store.d.ts
180
- interface ScheduleCursorRecord {
181
- jobId: string;
182
- lastEvaluatedAt: string;
183
- lastTriggeredAt?: string;
184
- nextRunAt: string;
185
- version: number;
186
- }
187
- interface ScheduleCursorStore {
188
- set(jobId: string, nextRunAt: string, now: string): Promise<ScheduleCursorRecord>;
189
- markTriggered(jobId: string, triggeredAt: string): Promise<ScheduleCursorRecord | null>;
190
- get(jobId: string): Promise<ScheduleCursorRecord | null>;
191
- remove(jobId: string): Promise<boolean>;
192
- }
193
- //#endregion
194
- //#region src/core/scheduler-job-store.d.ts
195
- interface SchedulerJobStore {
196
- create(jobId: string, definition: SchedulerJobDefinition): Promise<SchedulerJobRecord>;
197
- update(jobId: string, patch: Partial<SchedulerJobDefinition>): Promise<SchedulerJobRecord | null>;
198
- setEnabled(jobId: string, enabled: boolean): Promise<SchedulerJobRecord | null>;
199
- get(jobId: string): Promise<SchedulerJobRecord | null>;
200
- list(): Promise<SchedulerJobRecord[]>;
201
- remove(jobId: string): Promise<boolean>;
202
- }
203
- //#endregion
204
- //#region src/core/persistence.d.ts
205
- interface SchedulerPersistence {
206
- jobStore: SchedulerJobStore;
207
- cursorStore: ScheduleCursorStore;
208
- executionStore: JobExecutionStore;
209
- }
210
- declare function createSchedulerPersistence(config: SchedulerPersistenceConfig): SchedulerPersistence;
211
- //#endregion
212
57
  //#region index.d.ts
213
58
  declare function createSchedulerService(options: SchedulerServiceOptions): {
214
59
  service: SchedulerService;
215
60
  handlers: SchedulerHandlerRegistry;
216
61
  };
217
62
  //#endregion
218
- export { CronWeekday, type CronWeekdayValue, type SchedulerHandlerRegistry, type SchedulerHostAdapter, type SchedulerJobDefinition, type SchedulerJobRecord, type SchedulerMissedRunPolicy, type SchedulerMode, type SchedulerOverlapPolicy, type SchedulerPersistenceConfig, type SchedulerScheduleConfig, type SchedulerService, type SchedulerServiceOptions, bindSchedulerToHost, createCronExpression, createSchedulerDashboardService, createSchedulerPersistence, createSchedulerService };
63
+ export { CronWeekday, type CronWeekdayValue, type SchedulerDashboardHealth, type SchedulerDashboardItem, type SchedulerDashboardService, type SchedulerHandlerRegistry, type SchedulerHostAdapter, type SchedulerJobDefinition, type SchedulerJobRecord, type SchedulerMissedRunPolicy, type SchedulerMode, type SchedulerOverlapPolicy, type SchedulerPersistenceConfig, type SchedulerScheduleConfig, type SchedulerService, type SchedulerServiceOptions, bindSchedulerToHost, createCronExpression, createSchedulerDashboardFromPersistence, createSchedulerDashboardFromStores, createSchedulerDashboardService, createSchedulerPersistence, createSchedulerService };
219
64
  //# sourceMappingURL=index.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.mts","names":[],"sources":["../src/contracts/scheduler-types.ts","../src/contracts/scheduler-host.ts","../src/core/scheduler-host-binding.ts","../src/core/cron-expression-builder.ts","../src/dashboard/queue-queries.ts","../src/dashboard/queue-dashboard-service.ts","../src/core/job-execution-store.ts","../src/core/schedule-cursor-store.ts","../src/core/scheduler-job-store.ts","../src/core/persistence.ts","../index.ts"],"mappings":";;KAEY;KAEA;KAEA;KAEA;UAEK;EACf,cAAc;EACd;EACA;EACA,gBAAgB;EAChB,kBAAkB;;UAGH,uBAAuB;EACtC;EACA;EACA,UAAU;EACV,QAAQ;EACR;;UAGe,mBACf,2BACQ,uBAAuB;EAC/B;EACA;EACA;EACA;;UAGe;EACf;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;UAGe;EACf;EACA;EACA;EACA;EACA;;UAGe;EACf;EACA,SAAS;EACT;EACA;EACA;;UAGe;EACf,YAAY,SACV,KAAK,uBAAuB,WAC3B;IAAU;;EACb,UAAU,SACR,eACA,OAAO,QAAQ,uBAAuB,YACrC;EACH,SAAS,gBAAgB;EACzB,UAAU,gBAAgB;EAC1B,UAAU,gBAAgB;EAC1B,YAAY,QAAQ;EACpB,eACE,QAAQ,0BACP,QAAQ;EACX,qBAAqB,sBAAsB;EAC3C,SAAS;EACT,QAAQ;;UAGO;EACf,MAAM;EACN;EACA,sCAAsC;EACtC,+BAA+B;EAC/B;IACE,MAAM,iBAAiB,OAAO;IAC9B,KAAK,iBAAiB,OAAO;IAC7B,KAAK,iBAAiB,OAAO;IAC7B,MAAM,iBAAiB,OAAO;;EAEhC;EACA;EACA,cAAc;;UAGC;EACf,QAAQ;EACR,SAAS;EACT;;UAGe;EACf,SAAS,SACP,oBACA,UAAU,OAAO,YAAY;EAE/B,QAAQ,uBAAuB,mBAAmB;EAClD,IAAI;;;;UC9GW;EACf,QAAQ,gBAAgB;EACxB,OAAO,gBAAgB;;;;iBCCT,oBACd,WAAW,kBACX,MAAM;;;cCHK;WACX;WACA;WACA;WACA;WACA;WACA;WACA;;KAGU,2BAA2B,0BAA0B;cAgCpD;UACH;UACA;UACA;UACA;UACA;EAER;EAKA,cAAc;EAMd,SAAS;EAMT,UAAU;EASV;EAKA,YAAY;EAMZ,OAAO;EAMP,QAAQ;EASR,aAAa;EAMb,cAAc;EASd,kBAAkB;EAMlB;EAKA,QAAQ;EAMR,SAAS;EAST,aAAa;EAMb,UAAU,SAAS;EAMnB,WAAW,UAAU;EAWrB,eAAe;EAMf;EAKA;EAKA,QAAQ,cAAc;EAStB,SAAS,SAAS,kBAAkB,eAAU;EAS9C,UAAU,oBAAoB,eAAU;EASxC;EAIA;;iBAKc,wBAAwB;;;UCzNvB;EACf;EACA;EACA;EACA;;iBAGoB,qBACpB,WAAW,mBACV,QAAQ;iBAYW,oBAAoB,WAAW,mBAAgB;;;;;;cAAhB;;;;UCpBpC;EACf,aAAa,kBAAkB;EAC/B,aAAa,kBAAkB;EAC/B,SAAS,gBAAgB;EACzB,UAAU,gBAAgB;EAC1B,eAAe,sBAAsB;;iBAGvB,gCACd,WAAW,mBACV;;;UCXc;EACf,OAAO,QAAQ,2BAA2B,QAAQ;EAClD,OACE,qBACA,OAAO,QAAQ,KAAK,4CACnB,QAAQ;EACX,UAAU,gBAAgB,QAAQ;;;;UCRnB;EACf;EACA;EACA;EACA;EACA;;UAGe;EACf,IACE,eACA,mBACA,cACC,QAAQ;EACX,cACE,eACA,sBACC,QAAQ;EACX,IAAI,gBAAgB,QAAQ;EAC5B,OAAO,gBAAgB;;;;UCdR;EACf,OACE,eACA,YAAY,yBACX,QAAQ;EACX,OACE,eACA,OAAO,QAAQ,0BACd,QAAQ;EACX,WACE,eACA,mBACC,QAAQ;EACX,IAAI,gBAAgB,QAAQ;EAC5B,QAAQ,QAAQ;EAChB,OAAO,gBAAgB;;;;UCyLR;EACf,UAAU;EACV,aAAa;EACb,gBAAgB;;iBAGF,2BACd,QAAQ,6BACP;;;iBCtLa,uBAAuB,SAAS;EAC9C,SAAS;EACT,UAAU"}
1
+ {"version":3,"file":"index.d.mts","names":[],"sources":["../src/contracts/scheduler-host.ts","../src/core/scheduler-host-binding.ts","../src/core/cron-expression-builder.ts","../index.ts"],"mappings":";;;UAAiB;EACf,QAAQ,gBAAgB;EACxB,OAAO,gBAAgB;;;;iBCCT,oBACd,WAAW,kBACX,MAAM;;;cCHK;WACX;WACA;WACA;WACA;WACA;WACA;WACA;;KAGU,2BAA2B,0BAA0B;cAgCpD;UACH;UACA;UACA;UACA;UACA;EAER;EAKA,cAAc;EAMd,SAAS;EAMT,UAAU;EASV;EAKA,YAAY;EAMZ,OAAO;EAMP,QAAQ;EASR,aAAa;EAMb,cAAc;EASd,kBAAkB;EAMlB;EAKA,QAAQ;EAMR,SAAS;EAST,aAAa;EAMb,UAAU,SAAS;EAMnB,WAAW,UAAU;EAWrB,eAAe;EAMf;EAKA;EAKA,QAAQ,cAAc;EAStB,SAAS,SAAS,kBAAkB,eAAU;EAS9C,UAAU,oBAAoB,eAAU;EASxC;EAIA;;iBAKc,wBAAwB;;;iBCnLxB,uBAAuB,SAAS;EAC9C,SAAS;EACT,UAAU"}