@zero-server/cli 0.9.2 → 0.9.5

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.
@@ -0,0 +1,316 @@
1
+ // --- Error Classes -----------------------------------------------
2
+
3
+ export interface HttpErrorOptions {
4
+ code?: string;
5
+ details?: any;
6
+ }
7
+
8
+ export class HttpError extends Error {
9
+ readonly statusCode: number;
10
+ readonly code: string;
11
+ readonly name: string;
12
+ details?: any;
13
+ constructor(statusCode: number, message?: string, opts?: HttpErrorOptions);
14
+ toJSON(): { error: string; code: string; statusCode: number; details?: any };
15
+ }
16
+
17
+ export class BadRequestError extends HttpError {
18
+ constructor(message?: string, opts?: HttpErrorOptions);
19
+ }
20
+
21
+ export class UnauthorizedError extends HttpError {
22
+ constructor(message?: string, opts?: HttpErrorOptions);
23
+ }
24
+
25
+ export class ForbiddenError extends HttpError {
26
+ constructor(message?: string, opts?: HttpErrorOptions);
27
+ }
28
+
29
+ export class NotFoundError extends HttpError {
30
+ constructor(message?: string, opts?: HttpErrorOptions);
31
+ }
32
+
33
+ export class MethodNotAllowedError extends HttpError {
34
+ constructor(message?: string, opts?: HttpErrorOptions);
35
+ }
36
+
37
+ export class ConflictError extends HttpError {
38
+ constructor(message?: string, opts?: HttpErrorOptions);
39
+ }
40
+
41
+ export class GoneError extends HttpError {
42
+ constructor(message?: string, opts?: HttpErrorOptions);
43
+ }
44
+
45
+ export class PayloadTooLargeError extends HttpError {
46
+ constructor(message?: string, opts?: HttpErrorOptions);
47
+ }
48
+
49
+ export class UnprocessableEntityError extends HttpError {
50
+ constructor(message?: string, opts?: HttpErrorOptions);
51
+ }
52
+
53
+ export class ValidationError extends HttpError {
54
+ readonly errors: Record<string, string> | string[];
55
+ constructor(message?: string, errors?: Record<string, string> | string[], opts?: HttpErrorOptions);
56
+ }
57
+
58
+ export class TooManyRequestsError extends HttpError {
59
+ constructor(message?: string, opts?: HttpErrorOptions);
60
+ }
61
+
62
+ export class InternalError extends HttpError {
63
+ constructor(message?: string, opts?: HttpErrorOptions);
64
+ }
65
+
66
+ export class NotImplementedError extends HttpError {
67
+ constructor(message?: string, opts?: HttpErrorOptions);
68
+ }
69
+
70
+ export class BadGatewayError extends HttpError {
71
+ constructor(message?: string, opts?: HttpErrorOptions);
72
+ }
73
+
74
+ export class ServiceUnavailableError extends HttpError {
75
+ constructor(message?: string, opts?: HttpErrorOptions);
76
+ }
77
+
78
+ // --- Framework Error Classes -------------------------------------
79
+
80
+ export interface DatabaseErrorOptions extends HttpErrorOptions {
81
+ query?: string;
82
+ adapter?: string;
83
+ }
84
+
85
+ export class DatabaseError extends HttpError {
86
+ readonly query?: string;
87
+ readonly adapter?: string;
88
+ constructor(message?: string, opts?: DatabaseErrorOptions);
89
+ }
90
+
91
+ export interface ConfigurationErrorOptions extends HttpErrorOptions {
92
+ setting?: string;
93
+ }
94
+
95
+ export class ConfigurationError extends HttpError {
96
+ readonly setting?: string;
97
+ constructor(message?: string, opts?: ConfigurationErrorOptions);
98
+ }
99
+
100
+ export interface MiddlewareErrorOptions extends HttpErrorOptions {
101
+ middleware?: string;
102
+ }
103
+
104
+ export class MiddlewareError extends HttpError {
105
+ readonly middleware?: string;
106
+ constructor(message?: string, opts?: MiddlewareErrorOptions);
107
+ }
108
+
109
+ export interface RoutingErrorOptions extends HttpErrorOptions {
110
+ path?: string;
111
+ method?: string;
112
+ }
113
+
114
+ export class RoutingError extends HttpError {
115
+ readonly path?: string;
116
+ readonly method?: string;
117
+ constructor(message?: string, opts?: RoutingErrorOptions);
118
+ }
119
+
120
+ export interface TimeoutErrorOptions extends HttpErrorOptions {
121
+ timeout?: number;
122
+ }
123
+
124
+ export class TimeoutError extends HttpError {
125
+ readonly timeout?: number;
126
+ constructor(message?: string, opts?: TimeoutErrorOptions);
127
+ }
128
+
129
+ export function createError(statusCode: number, message?: string, opts?: HttpErrorOptions): HttpError;
130
+ export function isHttpError(err: any): err is HttpError;
131
+
132
+ // --- ORM Error Classes -------------------------------------------
133
+
134
+ export interface ConnectionErrorOptions extends DatabaseErrorOptions {
135
+ attempt?: number;
136
+ maxRetries?: number;
137
+ host?: string;
138
+ port?: number;
139
+ }
140
+
141
+ export class ConnectionError extends DatabaseError {
142
+ readonly attempt?: number;
143
+ readonly maxRetries?: number;
144
+ readonly host?: string;
145
+ readonly port?: number;
146
+ constructor(message?: string, opts?: ConnectionErrorOptions);
147
+ }
148
+
149
+ export interface MigrationErrorOptions extends DatabaseErrorOptions {
150
+ migration?: string;
151
+ direction?: 'up' | 'down';
152
+ batch?: number;
153
+ }
154
+
155
+ export class MigrationError extends DatabaseError {
156
+ readonly migration?: string;
157
+ readonly direction?: 'up' | 'down';
158
+ readonly batch?: number;
159
+ constructor(message?: string, opts?: MigrationErrorOptions);
160
+ }
161
+
162
+ export interface TransactionErrorOptions extends DatabaseErrorOptions {
163
+ phase?: 'begin' | 'commit' | 'rollback';
164
+ }
165
+
166
+ export class TransactionError extends DatabaseError {
167
+ readonly phase?: 'begin' | 'commit' | 'rollback';
168
+ constructor(message?: string, opts?: TransactionErrorOptions);
169
+ }
170
+
171
+ export interface QueryErrorOptions extends DatabaseErrorOptions {
172
+ sql?: string;
173
+ params?: any[];
174
+ table?: string;
175
+ }
176
+
177
+ export class QueryError extends DatabaseError {
178
+ readonly sql?: string;
179
+ readonly params?: any[];
180
+ readonly table?: string;
181
+ constructor(message?: string, opts?: QueryErrorOptions);
182
+ }
183
+
184
+ export interface AdapterErrorOptions extends DatabaseErrorOptions {
185
+ operation?: string;
186
+ }
187
+
188
+ export class AdapterError extends DatabaseError {
189
+ readonly operation?: string;
190
+ constructor(message?: string, opts?: AdapterErrorOptions);
191
+ }
192
+
193
+ export interface CacheErrorOptions extends HttpErrorOptions {
194
+ operation?: string;
195
+ key?: string;
196
+ }
197
+
198
+ export class CacheError extends HttpError {
199
+ readonly operation?: string;
200
+ readonly key?: string;
201
+ constructor(message?: string, opts?: CacheErrorOptions);
202
+ }
203
+
204
+ // --- Phase 4 Error Classes ------------------------------------------
205
+
206
+ export interface TenancyErrorOptions extends DatabaseErrorOptions {
207
+ tenant?: string;
208
+ strategy?: string;
209
+ }
210
+
211
+ export class TenancyError extends DatabaseError {
212
+ readonly tenant?: string;
213
+ readonly strategy?: string;
214
+ constructor(message?: string, opts?: TenancyErrorOptions);
215
+ }
216
+
217
+ export interface AuditErrorOptions extends DatabaseErrorOptions {
218
+ action?: string;
219
+ table?: string;
220
+ }
221
+
222
+ export class AuditError extends DatabaseError {
223
+ readonly action?: string;
224
+ readonly table?: string;
225
+ constructor(message?: string, opts?: AuditErrorOptions);
226
+ }
227
+
228
+ export interface PluginErrorOptions extends HttpErrorOptions {
229
+ plugin?: string;
230
+ phase?: string;
231
+ }
232
+
233
+ export class PluginError extends HttpError {
234
+ readonly plugin?: string;
235
+ readonly phase?: string;
236
+ constructor(message?: string, opts?: PluginErrorOptions);
237
+ }
238
+
239
+ export interface ProcedureErrorOptions extends DatabaseErrorOptions {
240
+ procedure?: string;
241
+ operation?: string;
242
+ }
243
+
244
+ export class ProcedureError extends DatabaseError {
245
+ readonly procedure?: string;
246
+ readonly operation?: string;
247
+ constructor(message?: string, opts?: ProcedureErrorOptions);
248
+ }
249
+
250
+ // --- Error Handler Middleware ------------------------------------
251
+
252
+ import { Request } from './request';
253
+ import { Response } from './response';
254
+
255
+ export interface ErrorHandlerOptions {
256
+ /** Include stack traces in responses (default: true when NODE_ENV !== 'production'). */
257
+ stack?: boolean;
258
+ /** Log errors to console (default: true). */
259
+ log?: boolean;
260
+ /** Custom log function (default: console.error). */
261
+ logger?: (...args: any[]) => void;
262
+ /** Custom response formatter: (err, req, isDev) => responseBody. */
263
+ formatter?: (err: Error, req: Request, isDev: boolean) => any;
264
+ /** Callback on every error. */
265
+ onError?: (err: Error, req: Request, res: Response) => void;
266
+ }
267
+
268
+ export function errorHandler(opts?: ErrorHandlerOptions): (err: any, req: Request, res: Response, next: (err?: any) => void) => void;
269
+
270
+ // --- Debug Logger ------------------------------------------------
271
+
272
+ export interface DebugLogger {
273
+ (...args: any[]): void;
274
+ trace(...args: any[]): void;
275
+ debug(...args: any[]): void;
276
+ info(...args: any[]): void;
277
+ warn(...args: any[]): void;
278
+ error(...args: any[]): void;
279
+ fatal(...args: any[]): void;
280
+ readonly enabled: boolean;
281
+ readonly namespace: string;
282
+ }
283
+
284
+ export interface DebugLevels {
285
+ trace: 0;
286
+ debug: 1;
287
+ info: 2;
288
+ warn: 3;
289
+ error: 4;
290
+ fatal: 5;
291
+ silent: 6;
292
+ }
293
+
294
+ export interface Debug {
295
+ (namespace: string): DebugLogger;
296
+ /** Set minimum log level globally. */
297
+ level(level: keyof DebugLevels | number): void;
298
+ /** Enable/disable namespaces (same syntax as DEBUG env var). */
299
+ enable(patterns: string): void;
300
+ /** Disable all debug output. */
301
+ disable(): void;
302
+ /** Enable structured JSON output. */
303
+ json(on?: boolean): void;
304
+ /** Enable/disable timestamps. */
305
+ timestamps(on?: boolean): void;
306
+ /** Enable/disable colors. */
307
+ colors(on?: boolean): void;
308
+ /** Set custom output stream. */
309
+ output(stream: { write(s: string): void }): void;
310
+ /** Reset all settings to defaults. */
311
+ reset(): void;
312
+ /** Level constants. */
313
+ readonly LEVELS: DebugLevels;
314
+ }
315
+
316
+ export const debug: Debug;
@@ -0,0 +1,43 @@
1
+ import { Readable } from 'stream';
2
+
3
+ export interface FetchOptions {
4
+ method?: string;
5
+ headers?: Record<string, string>;
6
+ body?: string | Buffer | object | Readable | URLSearchParams | ArrayBuffer | Uint8Array;
7
+ timeout?: number;
8
+ signal?: AbortSignal;
9
+ agent?: any;
10
+ onDownloadProgress?: (progress: { loaded: number; total: number | null }) => void;
11
+ onUploadProgress?: (progress: { loaded: number; total: number | null }) => void;
12
+ // TLS options
13
+ rejectUnauthorized?: boolean;
14
+ ca?: string | Buffer | Array<string | Buffer>;
15
+ cert?: string | Buffer;
16
+ key?: string | Buffer;
17
+ pfx?: string | Buffer;
18
+ passphrase?: string;
19
+ servername?: string;
20
+ ciphers?: string;
21
+ secureProtocol?: string;
22
+ minVersion?: string;
23
+ maxVersion?: string;
24
+ }
25
+
26
+ export interface FetchHeaders {
27
+ get(name: string): string | undefined;
28
+ raw: Record<string, string | string[]>;
29
+ }
30
+
31
+ export interface FetchResponse {
32
+ status: number;
33
+ statusText: string;
34
+ ok: boolean;
35
+ secure: boolean;
36
+ url: string;
37
+ headers: FetchHeaders;
38
+ arrayBuffer(): Promise<Buffer>;
39
+ text(): Promise<string>;
40
+ json(): Promise<any>;
41
+ }
42
+
43
+ export function fetch(url: string, opts?: FetchOptions): Promise<FetchResponse>;