@cloudnux/local-cloud-provider 0.2.1 → 0.2.2
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/dev-console-plugin/index.d.mts +177 -0
- package/dist/dev-console-plugin/index.mjs +3047 -0
- package/dist/dev-console-plugin/index.mjs.map +1 -0
- package/dist/index.mjs +66 -53970
- package/dist/index.mjs.map +1 -1
- package/dist/queue-plugin/index.d.mts +29 -2
- package/dist/queue-plugin/index.mjs +221 -873
- package/dist/queue-plugin/index.mjs.map +1 -1
- package/dist/schedule-plugin/index.d.mts +3 -1
- package/dist/schedule-plugin/index.mjs +118 -8505
- package/dist/schedule-plugin/index.mjs.map +1 -1
- package/package.json +15 -13
- package/dist/index.d.ts +0 -11
- package/dist/index.js +0 -55733
- package/dist/index.js.map +0 -1
- package/dist/queue-plugin/index.d.ts +0 -83
- package/dist/queue-plugin/index.js +0 -2200
- package/dist/queue-plugin/index.js.map +0 -1
- package/dist/schedule-plugin/index.d.ts +0 -111
- package/dist/schedule-plugin/index.js +0 -10334
- package/dist/schedule-plugin/index.js.map +0 -1
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
import { FastifyInstance } from 'fastify';
|
|
2
|
+
|
|
3
|
+
interface QueueMessage {
|
|
4
|
+
id: string;
|
|
5
|
+
timestamp: Date;
|
|
6
|
+
attempts: number;
|
|
7
|
+
payload: any;
|
|
8
|
+
attributes: Record<string, any>;
|
|
9
|
+
nextAttempt?: Date;
|
|
10
|
+
error?: string;
|
|
11
|
+
failedAt?: Date;
|
|
12
|
+
reprocessed?: boolean;
|
|
13
|
+
originalId?: string;
|
|
14
|
+
}
|
|
15
|
+
type EventHandler = (message: QueueMessage) => Promise<void>;
|
|
16
|
+
interface QueueService {
|
|
17
|
+
handler: EventHandler;
|
|
18
|
+
incoming: QueueMessage[];
|
|
19
|
+
processing: QueueMessage[];
|
|
20
|
+
dlq: QueueMessage[];
|
|
21
|
+
timeoutId: NodeJS.Timeout | null;
|
|
22
|
+
processingBatch: boolean;
|
|
23
|
+
activeProcessing: number;
|
|
24
|
+
module?: string;
|
|
25
|
+
}
|
|
26
|
+
interface QueueConfig {
|
|
27
|
+
batchSize: number;
|
|
28
|
+
batchWindowMs: number;
|
|
29
|
+
maxRetries: number;
|
|
30
|
+
parallel: boolean;
|
|
31
|
+
maxConcurrent: number;
|
|
32
|
+
retryBackoff: boolean;
|
|
33
|
+
persistence: {
|
|
34
|
+
enabled: boolean;
|
|
35
|
+
directory: string;
|
|
36
|
+
saveInterval: number;
|
|
37
|
+
saveOnShutdown: boolean;
|
|
38
|
+
loadOnStartup: boolean;
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
interface QueueSummary {
|
|
42
|
+
incoming: number;
|
|
43
|
+
processing: number;
|
|
44
|
+
dlq: number;
|
|
45
|
+
isProcessing: boolean;
|
|
46
|
+
activeProcessing: number;
|
|
47
|
+
configuration: {
|
|
48
|
+
batchSize: number;
|
|
49
|
+
batchWindowMs: number;
|
|
50
|
+
parallel: boolean;
|
|
51
|
+
maxConcurrent: number;
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
interface QueueManager {
|
|
55
|
+
addQueue: (queueName: string, handler: EventHandler, module?: string) => Promise<void>;
|
|
56
|
+
removeQueue: (queueName: string) => Promise<void>;
|
|
57
|
+
hasQueue: (queueName: string) => boolean;
|
|
58
|
+
listQueues: (module?: string) => string[];
|
|
59
|
+
getQueueStats: (queueName: string) => QueueService | null;
|
|
60
|
+
getQueuesMap: () => Record<string, QueueService>;
|
|
61
|
+
getConfig: () => QueueConfig;
|
|
62
|
+
getDashboardSummary: () => Record<string, QueueSummary>;
|
|
63
|
+
getQueueSummary: (queueName: string) => {
|
|
64
|
+
stats: QueueSummary;
|
|
65
|
+
messages: {
|
|
66
|
+
incoming: QueueMessage[];
|
|
67
|
+
processing: QueueMessage[];
|
|
68
|
+
dlq: QueueMessage[];
|
|
69
|
+
};
|
|
70
|
+
} | null;
|
|
71
|
+
enqueueMessage: (queueName: string, body: any, attributes: any) => Promise<{
|
|
72
|
+
id: string;
|
|
73
|
+
queueName: string;
|
|
74
|
+
} | null>;
|
|
75
|
+
processDlq: (queueName: string) => Promise<{
|
|
76
|
+
status: string;
|
|
77
|
+
message: string;
|
|
78
|
+
processed: number;
|
|
79
|
+
} | null>;
|
|
80
|
+
purgeDlq: (queueName: string) => Promise<{
|
|
81
|
+
status: string;
|
|
82
|
+
message: string;
|
|
83
|
+
purged: number;
|
|
84
|
+
} | null>;
|
|
85
|
+
}
|
|
86
|
+
declare module 'fastify' {
|
|
87
|
+
interface FastifyInstance {
|
|
88
|
+
queues: QueueManager;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
interface ScheduledJob {
|
|
93
|
+
id: string;
|
|
94
|
+
name: string;
|
|
95
|
+
cronExpression?: string;
|
|
96
|
+
intervalMs?: number;
|
|
97
|
+
delayMs?: number;
|
|
98
|
+
nextRun: Date;
|
|
99
|
+
lastRun?: Date;
|
|
100
|
+
enabled: boolean;
|
|
101
|
+
runCount: number;
|
|
102
|
+
maxRuns?: number;
|
|
103
|
+
metadata?: Record<string, any>;
|
|
104
|
+
createdAt: Date;
|
|
105
|
+
timezone?: string;
|
|
106
|
+
module?: string;
|
|
107
|
+
}
|
|
108
|
+
interface JobExecution {
|
|
109
|
+
id: string;
|
|
110
|
+
jobId: string;
|
|
111
|
+
startTime: Date;
|
|
112
|
+
endTime?: Date;
|
|
113
|
+
status: 'running' | 'completed' | 'failed';
|
|
114
|
+
error?: string;
|
|
115
|
+
result?: any;
|
|
116
|
+
}
|
|
117
|
+
interface SchedulerService {
|
|
118
|
+
job: ScheduledJob;
|
|
119
|
+
handler: JobHandler;
|
|
120
|
+
timerId?: NodeJS.Timeout;
|
|
121
|
+
isRunning: boolean;
|
|
122
|
+
}
|
|
123
|
+
type JobHandler = (job: ScheduledJob, execution: JobExecution) => Promise<void>;
|
|
124
|
+
interface JobDefinition {
|
|
125
|
+
name: string;
|
|
126
|
+
cronExpression?: string;
|
|
127
|
+
intervalMs?: number;
|
|
128
|
+
delayMs?: number;
|
|
129
|
+
handler: JobHandler;
|
|
130
|
+
enabled?: boolean;
|
|
131
|
+
maxRuns?: number;
|
|
132
|
+
metadata?: Record<string, any>;
|
|
133
|
+
timezone?: string;
|
|
134
|
+
module?: string;
|
|
135
|
+
}
|
|
136
|
+
interface SchedulerManager {
|
|
137
|
+
addJob: (jobDefinition: JobDefinition) => Promise<string>;
|
|
138
|
+
removeJob: (jobName: string) => Promise<void>;
|
|
139
|
+
hasJob: (jobName: string) => boolean;
|
|
140
|
+
listJobs: (module?: string) => string[];
|
|
141
|
+
getJobStats: (jobName: string) => SchedulerService | null;
|
|
142
|
+
enableJob: (jobName: string) => Promise<void>;
|
|
143
|
+
disableJob: (jobName: string) => Promise<void>;
|
|
144
|
+
triggerJob: (jobName: string) => Promise<void>;
|
|
145
|
+
getJobsMap: () => Record<string, SchedulerService>;
|
|
146
|
+
}
|
|
147
|
+
declare module 'fastify' {
|
|
148
|
+
interface FastifyInstance {
|
|
149
|
+
scheduler: SchedulerManager;
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
interface DevConsolePluginOptions {
|
|
154
|
+
prefix?: string;
|
|
155
|
+
enableUI?: boolean;
|
|
156
|
+
}
|
|
157
|
+
declare function devConsolePluginFunction(fastify: FastifyInstance, options?: DevConsolePluginOptions): Promise<void>;
|
|
158
|
+
declare const devConsolePlugin: typeof devConsolePluginFunction;
|
|
159
|
+
|
|
160
|
+
interface RouteInfo {
|
|
161
|
+
method: string | string[];
|
|
162
|
+
url: string;
|
|
163
|
+
handler: string;
|
|
164
|
+
registeredAt: Date;
|
|
165
|
+
module?: string;
|
|
166
|
+
}
|
|
167
|
+
declare class RouteRegistry {
|
|
168
|
+
private routes;
|
|
169
|
+
register(routeOptions: any): void;
|
|
170
|
+
getAll(): RouteInfo[];
|
|
171
|
+
getByMethod(method: string): RouteInfo[];
|
|
172
|
+
clear(): void;
|
|
173
|
+
count(): number;
|
|
174
|
+
}
|
|
175
|
+
declare const routeRegistry: RouteRegistry;
|
|
176
|
+
|
|
177
|
+
export { type DevConsolePluginOptions, type RouteInfo, devConsolePlugin, routeRegistry };
|