@azlib/scheduler 1.0.5 → 1.2.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/Dockerfile +14 -0
- package/README.md +53 -0
- package/compose.yaml +28 -0
- package/dist/cli-config-6u8AzSdw.mjs +542 -0
- package/dist/cli-config-6u8AzSdw.mjs.map +1 -0
- package/dist/cli-config-CFBl-YOh.cjs +628 -0
- package/dist/dashboard/cli.cjs +30 -0
- package/dist/dashboard/cli.d.cts +6 -0
- package/dist/dashboard/cli.d.cts.map +1 -0
- package/dist/dashboard/cli.d.mts +6 -0
- package/dist/dashboard/cli.d.mts.map +1 -0
- package/dist/dashboard/cli.mjs +31 -0
- package/dist/dashboard/cli.mjs.map +1 -0
- package/dist/dashboard/public/assets/index-CbmpG6_w.css +2 -0
- package/dist/dashboard/public/assets/index-DczjtqRn.js +12 -0
- package/dist/dashboard/public/index.html +13 -0
- package/dist/dashboard-types-BHjRLcxJ.d.cts +127 -0
- package/dist/dashboard-types-BHjRLcxJ.d.cts.map +1 -0
- package/dist/dashboard-types-BHjRLcxJ.d.mts +127 -0
- package/dist/dashboard-types-BHjRLcxJ.d.mts.map +1 -0
- package/dist/dashboard.cjs +15 -0
- package/dist/dashboard.d.cts +31 -0
- package/dist/dashboard.d.cts.map +1 -0
- package/dist/dashboard.d.mts +31 -0
- package/dist/dashboard.d.mts.map +1 -0
- package/dist/dashboard.mjs +4 -0
- package/dist/http-server-Cme4XKyH.d.mts +34 -0
- package/dist/http-server-Cme4XKyH.d.mts.map +1 -0
- package/dist/http-server-u1BnbkAK.d.cts +34 -0
- package/dist/http-server-u1BnbkAK.d.cts.map +1 -0
- package/dist/index.cjs +49 -442
- package/dist/index.d.cts +3 -158
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.mts +3 -158
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +44 -439
- package/dist/index.mjs.map +1 -1
- package/dist/queue-dashboard-service-BFXcnfUr.cjs +55 -0
- package/dist/queue-dashboard-service-C0QapgOg.mjs +52 -0
- package/dist/queue-dashboard-service-C0QapgOg.mjs.map +1 -0
- package/dist/store-dashboard-C44d7sdh.d.cts +59 -0
- package/dist/store-dashboard-C44d7sdh.d.cts.map +1 -0
- package/dist/store-dashboard-Cyf_JILa.mjs +515 -0
- package/dist/store-dashboard-Cyf_JILa.mjs.map +1 -0
- package/dist/store-dashboard-D-yIxXxL.d.mts +59 -0
- package/dist/store-dashboard-D-yIxXxL.d.mts.map +1 -0
- package/dist/store-dashboard-Sg4BBWiJ.cjs +554 -0
- package/package.json +54 -6
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="UTF-8" />
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
6
|
+
<title>@azlib/scheduler dashboard</title>
|
|
7
|
+
<script type="module" crossorigin src="./assets/index-DczjtqRn.js"></script>
|
|
8
|
+
<link rel="stylesheet" crossorigin href="./assets/index-CbmpG6_w.css">
|
|
9
|
+
</head>
|
|
10
|
+
<body>
|
|
11
|
+
<div id="root"></div>
|
|
12
|
+
</body>
|
|
13
|
+
</html>
|
|
@@ -0,0 +1,127 @@
|
|
|
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
|
+
handlerKey: string;
|
|
44
|
+
schedule: SchedulerScheduleConfig;
|
|
45
|
+
config: unknown;
|
|
46
|
+
createdAt: string;
|
|
47
|
+
updatedAt: string;
|
|
48
|
+
}
|
|
49
|
+
interface SchedulerExecutionQuery {
|
|
50
|
+
jobId?: string;
|
|
51
|
+
status?: SchedulerExecutionRecord["status"];
|
|
52
|
+
from?: string;
|
|
53
|
+
to?: string;
|
|
54
|
+
limit?: number;
|
|
55
|
+
}
|
|
56
|
+
interface SchedulerService {
|
|
57
|
+
registerJob<TConfig>(job: SchedulerJobDefinition<TConfig>): Promise<{
|
|
58
|
+
jobId: string;
|
|
59
|
+
}>;
|
|
60
|
+
updateJob<TConfig>(jobId: string, patch: Partial<SchedulerJobDefinition<TConfig>>): Promise<void>;
|
|
61
|
+
pauseJob(jobId: string): Promise<void>;
|
|
62
|
+
resumeJob(jobId: string): Promise<void>;
|
|
63
|
+
deleteJob(jobId: string): Promise<void>;
|
|
64
|
+
listJobs(): Promise<SchedulerJobListItem[]>;
|
|
65
|
+
listExecutions(query?: SchedulerExecutionQuery): Promise<SchedulerExecutionRecord[]>;
|
|
66
|
+
retryFailedExecution(executionId: string): Promise<void>;
|
|
67
|
+
runNow(jobId: string): Promise<void>;
|
|
68
|
+
start(): Promise<void>;
|
|
69
|
+
stop(): Promise<void>;
|
|
70
|
+
}
|
|
71
|
+
interface SchedulerServiceOptions {
|
|
72
|
+
mode: SchedulerMode;
|
|
73
|
+
queueName?: string;
|
|
74
|
+
queueService?: import("@azlib/queue").QueueService;
|
|
75
|
+
cache?: import("@azlib/cache").Cache<string>;
|
|
76
|
+
logger?: {
|
|
77
|
+
debug(message: string, meta?: Record<string, unknown>): void;
|
|
78
|
+
info(message: string, meta?: Record<string, unknown>): void;
|
|
79
|
+
warn(message: string, meta?: Record<string, unknown>): void;
|
|
80
|
+
error(message: string, meta?: Record<string, unknown>): void;
|
|
81
|
+
};
|
|
82
|
+
tickIntervalMs?: number;
|
|
83
|
+
maxDueJobsPerTick?: number;
|
|
84
|
+
persistence?: SchedulerPersistenceConfig;
|
|
85
|
+
}
|
|
86
|
+
interface SchedulerPersistenceConfig {
|
|
87
|
+
client: SqlClientAdapter;
|
|
88
|
+
dialect: SqlDialectAdapter;
|
|
89
|
+
namespace?: string;
|
|
90
|
+
}
|
|
91
|
+
interface SchedulerHandlerRegistry {
|
|
92
|
+
register<TConfig>(handlerKey: string, handler: (input: TConfig) => Promise<void>): void;
|
|
93
|
+
resolve(handlerKey: string): ((input: unknown) => Promise<void>) | null;
|
|
94
|
+
has(handlerKey: string): boolean;
|
|
95
|
+
keys(): string[];
|
|
96
|
+
}
|
|
97
|
+
//#endregion
|
|
98
|
+
//#region src/dashboard/dashboard-types.d.ts
|
|
99
|
+
interface SchedulerDashboardHealth {
|
|
100
|
+
totalJobs: number;
|
|
101
|
+
enabledJobs: number;
|
|
102
|
+
pausedJobs: number;
|
|
103
|
+
failedExecutions: number;
|
|
104
|
+
}
|
|
105
|
+
interface SchedulerDashboardItem extends SchedulerJobRecord {
|
|
106
|
+
nextRunAt?: string;
|
|
107
|
+
executions: SchedulerExecutionRecord[];
|
|
108
|
+
}
|
|
109
|
+
interface SchedulerDashboardService {
|
|
110
|
+
getHealth(): Promise<SchedulerDashboardHealth>;
|
|
111
|
+
listItems(): Promise<SchedulerDashboardItem[]>;
|
|
112
|
+
getJob(jobId: string): Promise<SchedulerDashboardItem | null>;
|
|
113
|
+
createJob<TConfig>(job: SchedulerJobDefinition<TConfig>): Promise<{
|
|
114
|
+
jobId: string;
|
|
115
|
+
}>;
|
|
116
|
+
updateJob<TConfig>(jobId: string, patch: Partial<SchedulerJobDefinition<TConfig>>): Promise<void>;
|
|
117
|
+
pauseJob(jobId: string): Promise<void>;
|
|
118
|
+
resumeJob(jobId: string): Promise<void>;
|
|
119
|
+
deleteJob(jobId: string): Promise<void>;
|
|
120
|
+
runJob(jobId: string): Promise<void>;
|
|
121
|
+
listExecutions(jobId: string): Promise<SchedulerExecutionRecord[]>;
|
|
122
|
+
retryExecution(executionId: string): Promise<void>;
|
|
123
|
+
listHandlerKeys(): string[];
|
|
124
|
+
}
|
|
125
|
+
//#endregion
|
|
126
|
+
export { SchedulerHandlerRegistry as a, SchedulerMissedRunPolicy as c, SchedulerPersistenceConfig as d, SchedulerScheduleConfig as f, SchedulerExecutionRecord as i, SchedulerMode as l, SchedulerServiceOptions as m, SchedulerDashboardItem as n, SchedulerJobDefinition as o, SchedulerService as p, SchedulerDashboardService as r, SchedulerJobRecord as s, SchedulerDashboardHealth as t, SchedulerOverlapPolicy as u };
|
|
127
|
+
//# sourceMappingURL=dashboard-types-BHjRLcxJ.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dashboard-types-BHjRLcxJ.d.cts","names":[],"sources":["../src/contracts/scheduler-types.ts","../src/dashboard/dashboard-types.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;EACA;EACA,UAAU;EACV;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,OAAO,gBAAgB;EACvB,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;EACJ;;;;UC9Ge;EACf;EACA;EACA;EACA;;UAGe,+BAA+B;EAC9C;EACA,YAAY;;UAGG;EACf,aAAa,QAAQ;EACrB,aAAa,QAAQ;EACrB,OAAO,gBAAgB,QAAQ;EAC/B,UAAU,SACR,KAAK,uBAAuB,WAC3B;IAAU;;EACb,UAAU,SACR,eACA,OAAO,QAAQ,uBAAuB,YACrC;EACH,SAAS,gBAAgB;EACzB,UAAU,gBAAgB;EAC1B,UAAU,gBAAgB;EAC1B,OAAO,gBAAgB;EACvB,eAAe,gBAAgB,QAAQ;EACvC,eAAe,sBAAsB;EACrC"}
|
|
@@ -0,0 +1,127 @@
|
|
|
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
|
+
handlerKey: string;
|
|
44
|
+
schedule: SchedulerScheduleConfig;
|
|
45
|
+
config: unknown;
|
|
46
|
+
createdAt: string;
|
|
47
|
+
updatedAt: string;
|
|
48
|
+
}
|
|
49
|
+
interface SchedulerExecutionQuery {
|
|
50
|
+
jobId?: string;
|
|
51
|
+
status?: SchedulerExecutionRecord["status"];
|
|
52
|
+
from?: string;
|
|
53
|
+
to?: string;
|
|
54
|
+
limit?: number;
|
|
55
|
+
}
|
|
56
|
+
interface SchedulerService {
|
|
57
|
+
registerJob<TConfig>(job: SchedulerJobDefinition<TConfig>): Promise<{
|
|
58
|
+
jobId: string;
|
|
59
|
+
}>;
|
|
60
|
+
updateJob<TConfig>(jobId: string, patch: Partial<SchedulerJobDefinition<TConfig>>): Promise<void>;
|
|
61
|
+
pauseJob(jobId: string): Promise<void>;
|
|
62
|
+
resumeJob(jobId: string): Promise<void>;
|
|
63
|
+
deleteJob(jobId: string): Promise<void>;
|
|
64
|
+
listJobs(): Promise<SchedulerJobListItem[]>;
|
|
65
|
+
listExecutions(query?: SchedulerExecutionQuery): Promise<SchedulerExecutionRecord[]>;
|
|
66
|
+
retryFailedExecution(executionId: string): Promise<void>;
|
|
67
|
+
runNow(jobId: string): Promise<void>;
|
|
68
|
+
start(): Promise<void>;
|
|
69
|
+
stop(): Promise<void>;
|
|
70
|
+
}
|
|
71
|
+
interface SchedulerServiceOptions {
|
|
72
|
+
mode: SchedulerMode;
|
|
73
|
+
queueName?: string;
|
|
74
|
+
queueService?: import("@azlib/queue").QueueService;
|
|
75
|
+
cache?: import("@azlib/cache").Cache<string>;
|
|
76
|
+
logger?: {
|
|
77
|
+
debug(message: string, meta?: Record<string, unknown>): void;
|
|
78
|
+
info(message: string, meta?: Record<string, unknown>): void;
|
|
79
|
+
warn(message: string, meta?: Record<string, unknown>): void;
|
|
80
|
+
error(message: string, meta?: Record<string, unknown>): void;
|
|
81
|
+
};
|
|
82
|
+
tickIntervalMs?: number;
|
|
83
|
+
maxDueJobsPerTick?: number;
|
|
84
|
+
persistence?: SchedulerPersistenceConfig;
|
|
85
|
+
}
|
|
86
|
+
interface SchedulerPersistenceConfig {
|
|
87
|
+
client: SqlClientAdapter;
|
|
88
|
+
dialect: SqlDialectAdapter;
|
|
89
|
+
namespace?: string;
|
|
90
|
+
}
|
|
91
|
+
interface SchedulerHandlerRegistry {
|
|
92
|
+
register<TConfig>(handlerKey: string, handler: (input: TConfig) => Promise<void>): void;
|
|
93
|
+
resolve(handlerKey: string): ((input: unknown) => Promise<void>) | null;
|
|
94
|
+
has(handlerKey: string): boolean;
|
|
95
|
+
keys(): string[];
|
|
96
|
+
}
|
|
97
|
+
//#endregion
|
|
98
|
+
//#region src/dashboard/dashboard-types.d.ts
|
|
99
|
+
interface SchedulerDashboardHealth {
|
|
100
|
+
totalJobs: number;
|
|
101
|
+
enabledJobs: number;
|
|
102
|
+
pausedJobs: number;
|
|
103
|
+
failedExecutions: number;
|
|
104
|
+
}
|
|
105
|
+
interface SchedulerDashboardItem extends SchedulerJobRecord {
|
|
106
|
+
nextRunAt?: string;
|
|
107
|
+
executions: SchedulerExecutionRecord[];
|
|
108
|
+
}
|
|
109
|
+
interface SchedulerDashboardService {
|
|
110
|
+
getHealth(): Promise<SchedulerDashboardHealth>;
|
|
111
|
+
listItems(): Promise<SchedulerDashboardItem[]>;
|
|
112
|
+
getJob(jobId: string): Promise<SchedulerDashboardItem | null>;
|
|
113
|
+
createJob<TConfig>(job: SchedulerJobDefinition<TConfig>): Promise<{
|
|
114
|
+
jobId: string;
|
|
115
|
+
}>;
|
|
116
|
+
updateJob<TConfig>(jobId: string, patch: Partial<SchedulerJobDefinition<TConfig>>): Promise<void>;
|
|
117
|
+
pauseJob(jobId: string): Promise<void>;
|
|
118
|
+
resumeJob(jobId: string): Promise<void>;
|
|
119
|
+
deleteJob(jobId: string): Promise<void>;
|
|
120
|
+
runJob(jobId: string): Promise<void>;
|
|
121
|
+
listExecutions(jobId: string): Promise<SchedulerExecutionRecord[]>;
|
|
122
|
+
retryExecution(executionId: string): Promise<void>;
|
|
123
|
+
listHandlerKeys(): string[];
|
|
124
|
+
}
|
|
125
|
+
//#endregion
|
|
126
|
+
export { SchedulerHandlerRegistry as a, SchedulerMissedRunPolicy as c, SchedulerPersistenceConfig as d, SchedulerScheduleConfig as f, SchedulerExecutionRecord as i, SchedulerMode as l, SchedulerServiceOptions as m, SchedulerDashboardItem as n, SchedulerJobDefinition as o, SchedulerService as p, SchedulerDashboardService as r, SchedulerJobRecord as s, SchedulerDashboardHealth as t, SchedulerOverlapPolicy as u };
|
|
127
|
+
//# sourceMappingURL=dashboard-types-BHjRLcxJ.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dashboard-types-BHjRLcxJ.d.mts","names":[],"sources":["../src/contracts/scheduler-types.ts","../src/dashboard/dashboard-types.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;EACA;EACA,UAAU;EACV;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,OAAO,gBAAgB;EACvB,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;EACJ;;;;UC9Ge;EACf;EACA;EACA;EACA;;UAGe,+BAA+B;EAC9C;EACA,YAAY;;UAGG;EACf,aAAa,QAAQ;EACrB,aAAa,QAAQ;EACrB,OAAO,gBAAgB,QAAQ;EAC/B,UAAU,SACR,KAAK,uBAAuB,WAC3B;IAAU;;EACb,UAAU,SACR,eACA,OAAO,QAAQ,uBAAuB,YACrC;EACH,SAAS,gBAAgB;EACzB,UAAU,gBAAgB;EAC1B,UAAU,gBAAgB;EAC1B,OAAO,gBAAgB;EACvB,eAAe,gBAAgB,QAAQ;EACvC,eAAe,sBAAsB;EACrC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
const require_cli_config = require("./cli-config-CFBl-YOh.cjs");
|
|
3
|
+
const require_store_dashboard = require("./store-dashboard-Sg4BBWiJ.cjs");
|
|
4
|
+
const require_queue_dashboard_service = require("./queue-dashboard-service-BFXcnfUr.cjs");
|
|
5
|
+
exports.DashboardHttpError = require_cli_config.DashboardHttpError;
|
|
6
|
+
exports.createSchedulerDashboardFromPersistence = require_store_dashboard.createSchedulerDashboardFromPersistence;
|
|
7
|
+
exports.createSchedulerDashboardFromStores = require_store_dashboard.createSchedulerDashboardFromStores;
|
|
8
|
+
exports.createSchedulerDashboardNodeHandler = require_cli_config.createSchedulerDashboardNodeHandler;
|
|
9
|
+
exports.createSchedulerDashboardServer = require_cli_config.createSchedulerDashboardServer;
|
|
10
|
+
exports.createSchedulerDashboardService = require_queue_dashboard_service.createSchedulerDashboardService;
|
|
11
|
+
exports.handleSchedulerDashboardRequest = require_cli_config.handleSchedulerDashboardRequest;
|
|
12
|
+
exports.normalizeDashboardBasePath = require_cli_config.normalizeDashboardBasePath;
|
|
13
|
+
exports.parseDashboardCliEnv = require_cli_config.parseDashboardCliEnv;
|
|
14
|
+
exports.resolveDashboardApiBase = require_cli_config.resolveDashboardApiBase;
|
|
15
|
+
exports.stripDashboardBasePath = require_cli_config.stripDashboardBasePath;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { n as SchedulerDashboardItem, r as SchedulerDashboardService, t as SchedulerDashboardHealth } from "./dashboard-types-BHjRLcxJ.cjs";
|
|
2
|
+
import { i as createSchedulerDashboardService, n as createSchedulerDashboardFromStores, t as createSchedulerDashboardFromPersistence } from "./store-dashboard-C44d7sdh.cjs";
|
|
3
|
+
import { a as SchedulerDashboardHandlerOptions, c as handleSchedulerDashboardRequest, i as DashboardAuthorize, n as SchedulerDashboardServerOptions, o as SchedulerDashboardRequestHandler, r as createSchedulerDashboardServer, s as createSchedulerDashboardNodeHandler, t as SchedulerDashboardServer } from "./http-server-u1BnbkAK.cjs";
|
|
4
|
+
import { SqlDialectAdapter } from "@azlib/persistence";
|
|
5
|
+
//#region src/dashboard/http-auth.d.ts
|
|
6
|
+
declare class DashboardHttpError extends Error {
|
|
7
|
+
readonly status: number;
|
|
8
|
+
constructor(status: number, message: string);
|
|
9
|
+
}
|
|
10
|
+
//#endregion
|
|
11
|
+
//#region src/dashboard/http-path.d.ts
|
|
12
|
+
declare function normalizeDashboardBasePath(basePath?: string): string;
|
|
13
|
+
declare function stripDashboardBasePath(pathname: string, basePath?: string): string | null;
|
|
14
|
+
declare function resolveDashboardApiBase(pathname: string): string;
|
|
15
|
+
//#endregion
|
|
16
|
+
//#region src/dashboard/sql-drivers.d.ts
|
|
17
|
+
type SchedulerDashboardDialect = "postgres" | "mysql" | "sqlite" | "mssql";
|
|
18
|
+
//#endregion
|
|
19
|
+
//#region src/dashboard/cli-config.d.ts
|
|
20
|
+
interface SchedulerDashboardCliConfig {
|
|
21
|
+
databaseUrl: string;
|
|
22
|
+
dialect: SchedulerDashboardDialect;
|
|
23
|
+
namespace: string;
|
|
24
|
+
port: number;
|
|
25
|
+
host: string;
|
|
26
|
+
token?: string;
|
|
27
|
+
}
|
|
28
|
+
declare function parseDashboardCliEnv(env: Record<string, string | undefined>): SchedulerDashboardCliConfig;
|
|
29
|
+
//#endregion
|
|
30
|
+
export { type DashboardAuthorize, DashboardHttpError, type SchedulerDashboardHandlerOptions, type SchedulerDashboardHealth, type SchedulerDashboardItem, type SchedulerDashboardRequestHandler, type SchedulerDashboardServer, type SchedulerDashboardServerOptions, type SchedulerDashboardService, createSchedulerDashboardFromPersistence, createSchedulerDashboardFromStores, createSchedulerDashboardNodeHandler, createSchedulerDashboardServer, createSchedulerDashboardService, handleSchedulerDashboardRequest, normalizeDashboardBasePath, parseDashboardCliEnv, resolveDashboardApiBase, stripDashboardBasePath };
|
|
31
|
+
//# sourceMappingURL=dashboard.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dashboard.d.cts","names":[],"sources":["../src/dashboard/http-auth.ts","../src/dashboard/http-path.ts","../src/dashboard/sql-drivers.ts","../src/dashboard/cli-config.ts"],"mappings":";;;;;cAAa,2BAA2B;WAC7B;EAET,YAAY,gBAAgB;;;;iBCHd,2BAA2B;iBAS3B,uBACd,kBACA;iBAiBc,wBAAwB;;;KChB5B;;;UCJK;EACf;EACA,SAAS;EACT;EACA;EACA;EACA;;iBAmCc,qBACd,KAAK,qCACJ"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { n as SchedulerDashboardItem, r as SchedulerDashboardService, t as SchedulerDashboardHealth } from "./dashboard-types-BHjRLcxJ.mjs";
|
|
2
|
+
import { i as createSchedulerDashboardService, n as createSchedulerDashboardFromStores, t as createSchedulerDashboardFromPersistence } from "./store-dashboard-D-yIxXxL.mjs";
|
|
3
|
+
import { a as SchedulerDashboardHandlerOptions, c as handleSchedulerDashboardRequest, i as DashboardAuthorize, n as SchedulerDashboardServerOptions, o as SchedulerDashboardRequestHandler, r as createSchedulerDashboardServer, s as createSchedulerDashboardNodeHandler, t as SchedulerDashboardServer } from "./http-server-Cme4XKyH.mjs";
|
|
4
|
+
import { SqlDialectAdapter } from "@azlib/persistence";
|
|
5
|
+
//#region src/dashboard/http-auth.d.ts
|
|
6
|
+
declare class DashboardHttpError extends Error {
|
|
7
|
+
readonly status: number;
|
|
8
|
+
constructor(status: number, message: string);
|
|
9
|
+
}
|
|
10
|
+
//#endregion
|
|
11
|
+
//#region src/dashboard/http-path.d.ts
|
|
12
|
+
declare function normalizeDashboardBasePath(basePath?: string): string;
|
|
13
|
+
declare function stripDashboardBasePath(pathname: string, basePath?: string): string | null;
|
|
14
|
+
declare function resolveDashboardApiBase(pathname: string): string;
|
|
15
|
+
//#endregion
|
|
16
|
+
//#region src/dashboard/sql-drivers.d.ts
|
|
17
|
+
type SchedulerDashboardDialect = "postgres" | "mysql" | "sqlite" | "mssql";
|
|
18
|
+
//#endregion
|
|
19
|
+
//#region src/dashboard/cli-config.d.ts
|
|
20
|
+
interface SchedulerDashboardCliConfig {
|
|
21
|
+
databaseUrl: string;
|
|
22
|
+
dialect: SchedulerDashboardDialect;
|
|
23
|
+
namespace: string;
|
|
24
|
+
port: number;
|
|
25
|
+
host: string;
|
|
26
|
+
token?: string;
|
|
27
|
+
}
|
|
28
|
+
declare function parseDashboardCliEnv(env: Record<string, string | undefined>): SchedulerDashboardCliConfig;
|
|
29
|
+
//#endregion
|
|
30
|
+
export { type DashboardAuthorize, DashboardHttpError, type SchedulerDashboardHandlerOptions, type SchedulerDashboardHealth, type SchedulerDashboardItem, type SchedulerDashboardRequestHandler, type SchedulerDashboardServer, type SchedulerDashboardServerOptions, type SchedulerDashboardService, createSchedulerDashboardFromPersistence, createSchedulerDashboardFromStores, createSchedulerDashboardNodeHandler, createSchedulerDashboardServer, createSchedulerDashboardService, handleSchedulerDashboardRequest, normalizeDashboardBasePath, parseDashboardCliEnv, resolveDashboardApiBase, stripDashboardBasePath };
|
|
31
|
+
//# sourceMappingURL=dashboard.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dashboard.d.mts","names":[],"sources":["../src/dashboard/http-auth.ts","../src/dashboard/http-path.ts","../src/dashboard/sql-drivers.ts","../src/dashboard/cli-config.ts"],"mappings":";;;;;cAAa,2BAA2B;WAC7B;EAET,YAAY,gBAAgB;;;;iBCHd,2BAA2B;iBAS3B,uBACd,kBACA;iBAiBc,wBAAwB;;;KChB5B;;;UCJK;EACf;EACA,SAAS;EACT;EACA;EACA;EACA;;iBAmCc,qBACd,KAAK,qCACJ"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { n as createSchedulerDashboardFromStores, t as createSchedulerDashboardFromPersistence } from "./store-dashboard-Cyf_JILa.mjs";
|
|
2
|
+
import { t as createSchedulerDashboardService } from "./queue-dashboard-service-C0QapgOg.mjs";
|
|
3
|
+
import { a as createSchedulerDashboardNodeHandler, c as normalizeDashboardBasePath, d as DashboardHttpError, i as createSchedulerDashboardServer, l as resolveDashboardApiBase, o as handleSchedulerDashboardRequest, t as parseDashboardCliEnv, u as stripDashboardBasePath } from "./cli-config-6u8AzSdw.mjs";
|
|
4
|
+
export { DashboardHttpError, createSchedulerDashboardFromPersistence, createSchedulerDashboardFromStores, createSchedulerDashboardNodeHandler, createSchedulerDashboardServer, createSchedulerDashboardService, handleSchedulerDashboardRequest, normalizeDashboardBasePath, parseDashboardCliEnv, resolveDashboardApiBase, stripDashboardBasePath };
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { r as SchedulerDashboardService } from "./dashboard-types-BHjRLcxJ.mjs";
|
|
2
|
+
import { IncomingMessage, ServerResponse } from "node:http";
|
|
3
|
+
//#region src/dashboard/http-handler.d.ts
|
|
4
|
+
type DashboardAuthorize = (input: {
|
|
5
|
+
method: string;
|
|
6
|
+
pathname: string;
|
|
7
|
+
authorization?: string | string[];
|
|
8
|
+
}) => void | Promise<void>;
|
|
9
|
+
interface SchedulerDashboardHandlerOptions {
|
|
10
|
+
dashboard: SchedulerDashboardService;
|
|
11
|
+
token?: string;
|
|
12
|
+
authorize?: DashboardAuthorize;
|
|
13
|
+
publicDir?: string;
|
|
14
|
+
basePath?: string;
|
|
15
|
+
}
|
|
16
|
+
type SchedulerDashboardRequestHandler = (req: IncomingMessage, res: ServerResponse, next?: (err?: unknown) => void) => void;
|
|
17
|
+
declare function handleSchedulerDashboardRequest(req: IncomingMessage, res: ServerResponse, options: SchedulerDashboardHandlerOptions): Promise<boolean>;
|
|
18
|
+
declare function createSchedulerDashboardNodeHandler(options: SchedulerDashboardHandlerOptions): SchedulerDashboardRequestHandler;
|
|
19
|
+
//#endregion
|
|
20
|
+
//#region src/dashboard/http-server.d.ts
|
|
21
|
+
interface SchedulerDashboardServerOptions extends SchedulerDashboardHandlerOptions {
|
|
22
|
+
port?: number;
|
|
23
|
+
host?: string;
|
|
24
|
+
}
|
|
25
|
+
interface SchedulerDashboardServer {
|
|
26
|
+
readonly port: number;
|
|
27
|
+
readonly host: string;
|
|
28
|
+
listen(): Promise<void>;
|
|
29
|
+
close(): Promise<void>;
|
|
30
|
+
}
|
|
31
|
+
declare function createSchedulerDashboardServer(options: SchedulerDashboardServerOptions): SchedulerDashboardServer;
|
|
32
|
+
//#endregion
|
|
33
|
+
export { SchedulerDashboardHandlerOptions as a, handleSchedulerDashboardRequest as c, DashboardAuthorize as i, SchedulerDashboardServerOptions as n, SchedulerDashboardRequestHandler as o, createSchedulerDashboardServer as r, createSchedulerDashboardNodeHandler as s, SchedulerDashboardServer as t };
|
|
34
|
+
//# sourceMappingURL=http-server-Cme4XKyH.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http-server-Cme4XKyH.d.mts","names":[],"sources":["../src/dashboard/http-handler.ts","../src/dashboard/http-server.ts"],"mappings":";;;KA+BY,sBAAsB;EAChC;EACA;EACA;aACW;UAEI;EACf,WAAW;EACX;EACA,YAAY;EACZ;EACA;;KAGU,oCACV,KAAK,iBACL,KAAK,gBACL,QAAQ;iBAuOY,gCACpB,KAAK,iBACL,KAAK,gBACL,SAAS,mCACR;iBAiDa,oCACd,SAAS,mCACR;;;UC5Tc,wCACP;EACR;EACA;;UAGe;WACN;WACA;EACT,UAAU;EACV,SAAS;;iBAGK,+BACd,SAAS,kCACR"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { r as SchedulerDashboardService } from "./dashboard-types-BHjRLcxJ.cjs";
|
|
2
|
+
import { IncomingMessage, ServerResponse } from "node:http";
|
|
3
|
+
//#region src/dashboard/http-handler.d.ts
|
|
4
|
+
type DashboardAuthorize = (input: {
|
|
5
|
+
method: string;
|
|
6
|
+
pathname: string;
|
|
7
|
+
authorization?: string | string[];
|
|
8
|
+
}) => void | Promise<void>;
|
|
9
|
+
interface SchedulerDashboardHandlerOptions {
|
|
10
|
+
dashboard: SchedulerDashboardService;
|
|
11
|
+
token?: string;
|
|
12
|
+
authorize?: DashboardAuthorize;
|
|
13
|
+
publicDir?: string;
|
|
14
|
+
basePath?: string;
|
|
15
|
+
}
|
|
16
|
+
type SchedulerDashboardRequestHandler = (req: IncomingMessage, res: ServerResponse, next?: (err?: unknown) => void) => void;
|
|
17
|
+
declare function handleSchedulerDashboardRequest(req: IncomingMessage, res: ServerResponse, options: SchedulerDashboardHandlerOptions): Promise<boolean>;
|
|
18
|
+
declare function createSchedulerDashboardNodeHandler(options: SchedulerDashboardHandlerOptions): SchedulerDashboardRequestHandler;
|
|
19
|
+
//#endregion
|
|
20
|
+
//#region src/dashboard/http-server.d.ts
|
|
21
|
+
interface SchedulerDashboardServerOptions extends SchedulerDashboardHandlerOptions {
|
|
22
|
+
port?: number;
|
|
23
|
+
host?: string;
|
|
24
|
+
}
|
|
25
|
+
interface SchedulerDashboardServer {
|
|
26
|
+
readonly port: number;
|
|
27
|
+
readonly host: string;
|
|
28
|
+
listen(): Promise<void>;
|
|
29
|
+
close(): Promise<void>;
|
|
30
|
+
}
|
|
31
|
+
declare function createSchedulerDashboardServer(options: SchedulerDashboardServerOptions): SchedulerDashboardServer;
|
|
32
|
+
//#endregion
|
|
33
|
+
export { SchedulerDashboardHandlerOptions as a, handleSchedulerDashboardRequest as c, DashboardAuthorize as i, SchedulerDashboardServerOptions as n, SchedulerDashboardRequestHandler as o, createSchedulerDashboardServer as r, createSchedulerDashboardNodeHandler as s, SchedulerDashboardServer as t };
|
|
34
|
+
//# sourceMappingURL=http-server-u1BnbkAK.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http-server-u1BnbkAK.d.cts","names":[],"sources":["../src/dashboard/http-handler.ts","../src/dashboard/http-server.ts"],"mappings":";;;KA+BY,sBAAsB;EAChC;EACA;EACA;aACW;UAEI;EACf,WAAW;EACX;EACA,YAAY;EACZ;EACA;;KAGU,oCACV,KAAK,iBACL,KAAK,gBACL,QAAQ;iBAuOY,gCACpB,KAAK,iBACL,KAAK,gBACL,SAAS,mCACR;iBAiDa,oCACd,SAAS,mCACR;;;UC5Tc,wCACP;EACR;EACA;;UAGe;WACN;WACA;EACT,UAAU;EACV,SAAS;;iBAGK,+BACd,SAAS,kCACR"}
|