@superdangerous/app-framework 4.9.2 → 4.14.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/README.md CHANGED
@@ -251,7 +251,10 @@ const server = new StandardServer({
251
251
  ### Real-Time Dashboard
252
252
 
253
253
  ```typescript
254
- import { StandardServer, getWebSocketServer } from "@superdangerous/app-framework";
254
+ import {
255
+ StandardServer,
256
+ getWebSocketServer,
257
+ } from "@superdangerous/app-framework";
255
258
 
256
259
  const server = new StandardServer({
257
260
  appName: "Dashboard",
@@ -272,7 +275,10 @@ const server = new StandardServer({
272
275
  ### React WebSocket Integration
273
276
 
274
277
  ```tsx
275
- import { useSocketIO, useConnectionStatus } from "@superdangerous/app-framework/ui";
278
+ import {
279
+ useSocketIO,
280
+ useConnectionStatus,
281
+ } from "@superdangerous/app-framework/ui";
276
282
 
277
283
  function Dashboard() {
278
284
  const [state, actions] = useSocketIO();
@@ -1,6 +1,9 @@
1
1
  /**
2
2
  * Standardized Logging API Router
3
- * Provides consistent logging endpoints for all SuperDangerous applications
3
+ * Provides consistent logging endpoints for all EpiSensor applications
4
+ *
5
+ * SECURITY WARNING: This router exposes sensitive log files without authentication.
6
+ * Before production use, implement proper authentication middleware.
4
7
  */
5
8
  declare const router: import("express-serve-static-core").Router;
6
9
  export interface LogEntry {
@@ -1 +1 @@
1
- {"version":3,"file":"logsRouter.d.ts","sourceRoot":"","sources":["../../src/api/logsRouter.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAQH,QAAA,MAAM,MAAM,4CAAmB,CAAC;AAEhC,MAAM,WAAW,QAAQ;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,GAAG,CAAC;CAChB;AAED,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AA6jBD,eAAe,MAAM,CAAC"}
1
+ {"version":3,"file":"logsRouter.d.ts","sourceRoot":"","sources":["../../src/api/logsRouter.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAQH,QAAA,MAAM,MAAM,4CAAmB,CAAC;AAEhC,MAAM,WAAW,QAAQ;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,GAAG,CAAC;CAChB;AAED,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAuiBD,eAAe,MAAM,CAAC"}
@@ -1,6 +1,9 @@
1
1
  /**
2
2
  * Standardized Logging API Router
3
- * Provides consistent logging endpoints for all SuperDangerous applications
3
+ * Provides consistent logging endpoints for all EpiSensor applications
4
+ *
5
+ * SECURITY WARNING: This router exposes sensitive log files without authentication.
6
+ * Before production use, implement proper authentication middleware.
4
7
  */
5
8
  import express from "express";
6
9
  import { getLogger } from "../core/logger.js";
@@ -8,13 +11,80 @@ import path from "path";
8
11
  import fs from "fs/promises";
9
12
  import { existsSync, createReadStream } from "fs";
10
13
  const router = express.Router();
14
+ /**
15
+ * Validate and sanitize file path to prevent directory traversal
16
+ */
17
+ function validateFilePath(filename, baseDir) {
18
+ if (!filename || typeof filename !== "string") {
19
+ return null;
20
+ }
21
+ // Normalize the filename and resolve path
22
+ const safeName = path.normalize(filename).replace(/^(\.\.[/\\])+/, "");
23
+ const resolvedPath = path.resolve(baseDir, safeName);
24
+ const resolvedBase = path.resolve(baseDir);
25
+ // Ensure the resolved path is within the base directory
26
+ if (!resolvedPath.startsWith(resolvedBase + path.sep) &&
27
+ resolvedPath !== resolvedBase) {
28
+ return null;
29
+ }
30
+ return resolvedPath;
31
+ }
32
+ /**
33
+ * Safely parse integer with fallback
34
+ */
35
+ function parseIntSafe(value, defaultValue) {
36
+ if (typeof value === "number")
37
+ return Math.floor(value);
38
+ if (typeof value === "string") {
39
+ const parsed = parseInt(value, 10);
40
+ return isNaN(parsed) ? defaultValue : parsed;
41
+ }
42
+ return defaultValue;
43
+ }
44
+ // Helper function to format bytes
45
+ function formatBytes(bytes, decimals = 2) {
46
+ if (bytes === 0)
47
+ return "0 Bytes";
48
+ const k = 1024;
49
+ const dm = decimals < 0 ? 0 : decimals;
50
+ const sizes = ["Bytes", "KB", "MB", "GB"];
51
+ const i = Math.floor(Math.log(bytes) / Math.log(k));
52
+ return parseFloat((bytes / Math.pow(k, i)).toFixed(dm)) + " " + sizes[i];
53
+ }
54
+ /**
55
+ * Helper to get log files from a directory
56
+ */
57
+ async function getLogFilesFromDir(logsDir, includeFullPath = false) {
58
+ if (!existsSync(logsDir)) {
59
+ return [];
60
+ }
61
+ const files = await fs.readdir(logsDir);
62
+ const logFiles = [];
63
+ for (const file of files) {
64
+ if (file.endsWith(".log") ||
65
+ file.endsWith(".txt") ||
66
+ file.endsWith(".gz")) {
67
+ const filePath = path.join(logsDir, file);
68
+ const stats = await fs.stat(filePath);
69
+ logFiles.push({
70
+ name: file,
71
+ size: stats.size,
72
+ modified: stats.mtime.toISOString(),
73
+ ...(includeFullPath && { path: filePath }),
74
+ });
75
+ }
76
+ }
77
+ // Sort by modified date, newest first
78
+ logFiles.sort((a, b) => new Date(b.modified).getTime() - new Date(a.modified).getTime());
79
+ return logFiles;
80
+ }
11
81
  /**
12
82
  * Get recent log entries
13
83
  * GET /api/logs/entries?limit=100&level=info
14
84
  */
15
85
  router.get("/entries", async (req, res) => {
16
86
  try {
17
- const limit = parseInt(req.query.limit) || 100;
87
+ const limit = parseIntSafe(req.query.limit, 100);
18
88
  const level = req.query.level || "all";
19
89
  const logger = getLogger;
20
90
  const logs = await logger.getRecentLogs(limit, level);
@@ -39,29 +109,7 @@ router.get("/entries", async (req, res) => {
39
109
  router.get("/files", async (_req, res) => {
40
110
  try {
41
111
  const logsDir = path.join(process.cwd(), "data", "logs");
42
- if (!existsSync(logsDir)) {
43
- res.json({
44
- success: true,
45
- files: [],
46
- });
47
- return;
48
- }
49
- const files = await fs.readdir(logsDir);
50
- const logFiles = [];
51
- for (const file of files) {
52
- if (file.endsWith(".log") || file.endsWith(".txt")) {
53
- const filePath = path.join(logsDir, file);
54
- const stats = await fs.stat(filePath);
55
- logFiles.push({
56
- name: file,
57
- size: stats.size,
58
- modified: stats.mtime.toISOString(),
59
- path: filePath,
60
- });
61
- }
62
- }
63
- // Sort by modified date, newest first
64
- logFiles.sort((a, b) => new Date(b.modified).getTime() - new Date(a.modified).getTime());
112
+ const logFiles = await getLogFilesFromDir(logsDir, true);
65
113
  res.json({
66
114
  success: true,
67
115
  files: logFiles,
@@ -84,9 +132,9 @@ router.get("/download/:filename", async (req, res) => {
84
132
  try {
85
133
  const { filename } = req.params;
86
134
  const logsDir = path.join(process.cwd(), "data", "logs");
87
- const filePath = path.join(logsDir, filename);
88
135
  // Security check - prevent directory traversal
89
- if (!filePath.startsWith(logsDir)) {
136
+ const filePath = validateFilePath(filename, logsDir);
137
+ if (!filePath) {
90
138
  res.status(403).json({
91
139
  success: false,
92
140
  error: "Access denied",
@@ -118,9 +166,9 @@ router.get("/stream/:filename", async (req, res) => {
118
166
  try {
119
167
  const { filename } = req.params;
120
168
  const logsDir = path.join(process.cwd(), "data", "logs");
121
- const filePath = path.join(logsDir, filename);
122
- // Security check
123
- if (!filePath.startsWith(logsDir)) {
169
+ // Security check - prevent directory traversal
170
+ const filePath = validateFilePath(filename, logsDir);
171
+ if (!filePath) {
124
172
  res.status(403).json({
125
173
  success: false,
126
174
  error: "Access denied",
@@ -168,41 +216,21 @@ router.post("/clear", async (_req, res) => {
168
216
  }
169
217
  });
170
218
  /**
171
- * Get archived log files
219
+ * Get archived log files (alias for /files for backward compatibility)
172
220
  * GET /api/logs/archives
173
221
  */
174
222
  router.get("/archives", async (_req, res) => {
175
223
  try {
176
224
  const logsDir = path.join(process.cwd(), "data", "logs");
177
- if (!existsSync(logsDir)) {
178
- return res.json({
179
- success: true,
180
- archives: [],
181
- });
182
- }
183
- const files = await fs.readdir(logsDir);
184
- const archives = [];
185
- for (const file of files) {
186
- if (file.endsWith(".log") || file.endsWith(".txt")) {
187
- const filePath = path.join(logsDir, file);
188
- const stats = await fs.stat(filePath);
189
- archives.push({
190
- name: file,
191
- size: stats.size,
192
- modified: stats.mtime.toISOString(),
193
- });
194
- }
195
- }
196
- // Sort by modified date, newest first
197
- archives.sort((a, b) => new Date(b.modified).getTime() - new Date(a.modified).getTime());
198
- return res.json({
225
+ const archives = await getLogFilesFromDir(logsDir);
226
+ res.json({
199
227
  success: true,
200
228
  archives,
201
229
  });
202
230
  }
203
231
  catch (_error) {
204
232
  console.error("Failed to fetch archives:", _error);
205
- return res.status(500).json({
233
+ res.status(500).json({
206
234
  success: false,
207
235
  error: "Failed to fetch archives",
208
236
  archives: [],
@@ -217,9 +245,9 @@ router.delete("/archive/:filename", async (req, res) => {
217
245
  try {
218
246
  const { filename } = req.params;
219
247
  const logsDir = path.join(process.cwd(), "data", "logs");
220
- const filePath = path.join(logsDir, filename);
221
- // Security check
222
- if (!filePath.startsWith(logsDir) || filename.includes("..")) {
248
+ // Security check - prevent directory traversal
249
+ const filePath = validateFilePath(filename, logsDir);
250
+ if (!filePath) {
223
251
  return res.status(403).json({
224
252
  success: false,
225
253
  error: "Access denied",
@@ -280,46 +308,13 @@ router.get("/export", async (req, res) => {
280
308
  */
281
309
  router.get("/stats", async (_req, res) => {
282
310
  try {
283
- const logsDir = path.join(process.cwd(), "data", "logs");
284
- if (!existsSync(logsDir)) {
285
- res.json({
286
- success: true,
287
- stats: {
288
- totalSize: 0,
289
- fileCount: 0,
290
- oldestLog: null,
291
- newestLog: null,
292
- },
293
- });
294
- return;
295
- }
296
- const files = await fs.readdir(logsDir);
297
- let totalSize = 0;
298
- let oldestTime = null;
299
- let newestTime = null;
300
- let fileCount = 0;
301
- for (const file of files) {
302
- if (file.endsWith(".log") || file.endsWith(".txt")) {
303
- const filePath = path.join(logsDir, file);
304
- const stats = await fs.stat(filePath);
305
- totalSize += stats.size;
306
- fileCount++;
307
- if (!oldestTime || stats.birthtime < oldestTime) {
308
- oldestTime = stats.birthtime;
309
- }
310
- if (!newestTime || stats.mtime > newestTime) {
311
- newestTime = stats.mtime;
312
- }
313
- }
314
- }
311
+ const logger = getLogger;
312
+ const stats = await logger.getLogStats();
315
313
  res.json({
316
314
  success: true,
317
315
  stats: {
318
- totalSize,
319
- totalSizeFormatted: formatBytes(totalSize),
320
- fileCount,
321
- oldestLog: oldestTime?.toISOString() || null,
322
- newestLog: newestTime?.toISOString() || null,
316
+ ...stats,
317
+ totalSizeFormatted: formatBytes(stats.totalSize || 0),
323
318
  },
324
319
  });
325
320
  }
@@ -431,21 +426,18 @@ router.get("/all-files", async (_req, res) => {
431
426
  router.get("/download-any/:filename(*)", async (req, res) => {
432
427
  try {
433
428
  const { filename } = req.params;
434
- // Security: prevent directory traversal
435
- const safeName = path.basename(filename);
436
- // Check in logs directory first
437
429
  const logsDir = path.join(process.cwd(), "data", "logs");
438
- let filePath = path.join(logsDir, safeName);
439
- // If not found, check in archive directory
440
- if (!existsSync(filePath)) {
441
- filePath = path.join(logsDir, "archive", safeName);
442
- }
443
- // If still not found and filename includes 'archive/', handle that case
444
- if (!existsSync(filePath) && filename.startsWith("archive/")) {
445
- const archiveName = filename.replace("archive/", "");
446
- filePath = path.join(logsDir, "archive", archiveName);
430
+ // Security: prevent directory traversal using proper validation
431
+ let filePath = validateFilePath(filename, logsDir);
432
+ // If not found in main logs, try archive directory
433
+ if (!filePath || !existsSync(filePath)) {
434
+ const archiveDir = path.join(logsDir, "archive");
435
+ const archiveFilename = filename.startsWith("archive/")
436
+ ? filename.substring("archive/".length)
437
+ : filename;
438
+ filePath = validateFilePath(archiveFilename, archiveDir);
447
439
  }
448
- if (!existsSync(filePath)) {
440
+ if (!filePath || !existsSync(filePath)) {
449
441
  return res.status(404).json({
450
442
  success: false,
451
443
  error: "File not found",
@@ -459,7 +451,7 @@ router.get("/download-any/:filename(*)", async (req, res) => {
459
451
  else {
460
452
  res.setHeader("Content-Type", "text/plain");
461
453
  }
462
- return res.download(filePath, safeName);
454
+ return res.download(filePath, path.basename(filePath));
463
455
  }
464
456
  catch (_error) {
465
457
  return res.status(500).json({
@@ -501,15 +493,5 @@ router.post("/rotate", async (_req, res) => {
501
493
  });
502
494
  }
503
495
  });
504
- // Helper function to format bytes
505
- function formatBytes(bytes, decimals = 2) {
506
- if (bytes === 0)
507
- return "0 Bytes";
508
- const k = 1024;
509
- const dm = decimals < 0 ? 0 : decimals;
510
- const sizes = ["Bytes", "KB", "MB", "GB"];
511
- const i = Math.floor(Math.log(bytes) / Math.log(k));
512
- return parseFloat((bytes / Math.pow(k, i)).toFixed(dm)) + " " + sizes[i];
513
- }
514
496
  export default router;
515
497
  //# sourceMappingURL=logsRouter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"logsRouter.js","sourceRoot":"","sources":["../../src/api/logsRouter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"logsRouter.js","sourceRoot":"","sources":["../../src/api/logsRouter.ts"],"names":[],"mappings":"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"}
@@ -12,17 +12,14 @@
12
12
  */
13
13
  import { z, ZodSchema } from "zod";
14
14
  import { Request, Response, NextFunction } from "express";
15
- import { ApiResponse } from "../types/index.js";
16
15
  /**
17
16
  * Validation options for middleware
18
17
  */
19
18
  export interface ValidationOptions {
19
+ /** Whether to stop on first error (not used with Zod) */
20
20
  abortEarly?: boolean;
21
+ /** Whether to strip unknown properties from validated data */
21
22
  stripUnknown?: boolean;
22
- convert?: boolean;
23
- presence?: "optional" | "required" | "forbidden";
24
- context?: Record<string, any>;
25
- allowUnknown?: boolean;
26
23
  }
27
24
  /**
28
25
  * Validation schemas for different endpoints
@@ -499,13 +496,13 @@ export declare const schemas: {
499
496
  maxSize: z.ZodString;
500
497
  maxFiles: z.ZodString;
501
498
  }, "strip", z.ZodTypeAny, {
502
- level: "error" | "debug" | "warn" | "info";
499
+ level: "debug" | "error" | "info" | "warn";
503
500
  maxSize: string;
504
501
  maxFiles: string;
505
502
  file: boolean;
506
503
  console: boolean;
507
504
  }, {
508
- level: "error" | "debug" | "warn" | "info";
505
+ level: "debug" | "error" | "info" | "warn";
509
506
  maxSize: string;
510
507
  maxFiles: string;
511
508
  file: boolean;
@@ -526,7 +523,7 @@ export declare const schemas: {
526
523
  }>>;
527
524
  }, "strip", z.ZodTypeAny, {
528
525
  logging?: {
529
- level: "error" | "debug" | "warn" | "info";
526
+ level: "debug" | "error" | "info" | "warn";
530
527
  maxSize: string;
531
528
  maxFiles: string;
532
529
  file: boolean;
@@ -552,7 +549,7 @@ export declare const schemas: {
552
549
  } | undefined;
553
550
  }, {
554
551
  logging?: {
555
- level: "error" | "debug" | "warn" | "info";
552
+ level: "debug" | "error" | "info" | "warn";
556
553
  maxSize: string;
557
554
  maxFiles: string;
558
555
  file: boolean;
@@ -623,15 +620,15 @@ export declare const schemas: {
623
620
  /**
624
621
  * Create a validation middleware for request body
625
622
  */
626
- export declare function validate<T extends ZodSchema>(schema: T, options?: ValidationOptions): (req: Request, res: Response<ApiResponse<any>>, next: NextFunction) => any;
623
+ export declare function validate<T extends ZodSchema>(schema: T, options?: ValidationOptions): (req: Request, res: Response, next: NextFunction) => void;
627
624
  /**
628
625
  * Validate request parameters
629
626
  */
630
- export declare function validateParams<T extends ZodSchema>(schema: T, options?: ValidationOptions): (req: Request, res: Response<ApiResponse<any>>, next: NextFunction) => any;
627
+ export declare function validateParams<T extends ZodSchema>(schema: T, options?: ValidationOptions): (req: Request, res: Response, next: NextFunction) => void;
631
628
  /**
632
629
  * Validate query parameters
633
630
  */
634
- export declare function validateQuery<T extends ZodSchema>(schema: T, options?: ValidationOptions): (req: Request, res: Response<ApiResponse<any>>, next: NextFunction) => any;
631
+ export declare function validateQuery<T extends ZodSchema>(schema: T, options?: ValidationOptions): (req: Request, res: Response, next: NextFunction) => void;
635
632
  /**
636
633
  * Combined validation for body, params, and query
637
634
  */
@@ -639,15 +636,15 @@ export declare function validateRequest<T extends {
639
636
  body?: ZodSchema;
640
637
  params?: ZodSchema;
641
638
  query?: ZodSchema;
642
- }>(schemas: T, options?: ValidationOptions): (req: Request, res: Response<ApiResponse<any>>, next: NextFunction) => any;
639
+ }>(validationSchemas: T, options?: ValidationOptions): (req: Request, res: Response, next: NextFunction) => void;
643
640
  /**
644
641
  * Async validation wrapper for custom validation logic
645
642
  */
646
- export declare function validateAsync(validationFn: (req: Request) => Promise<any>): (req: Request, res: Response<ApiResponse<any>>, next: NextFunction) => Promise<void>;
643
+ export declare function validateAsync(validationFn: (req: Request) => Promise<void>): (req: Request, res: Response, next: NextFunction) => Promise<void>;
647
644
  /**
648
645
  * Create a conditional validation middleware
649
646
  */
650
- export declare function validateIf<T extends ZodSchema>(condition: (req: Request) => boolean, schema: T, options?: ValidationOptions): (req: Request, res: Response<ApiResponse<any>>, next: NextFunction) => any;
647
+ export declare function validateIf<T extends ZodSchema>(condition: (req: Request) => boolean, schema: T, options?: ValidationOptions): (req: Request, res: Response, next: NextFunction) => void;
651
648
  /**
652
649
  * Schema composition helpers using Zod's built-in methods
653
650
  */
@@ -659,8 +656,8 @@ export declare const compose: {
659
656
  /**
660
657
  * Make all fields optional
661
658
  */
662
- partial: <T extends z.ZodObject<any>>(schema: T) => z.ZodObject<{
663
- [x: string]: z.ZodOptional<any>;
659
+ partial: <T extends z.ZodObject<z.ZodRawShape>>(schema: T) => z.ZodObject<{
660
+ [x: string]: z.ZodOptional<z.ZodTypeAny>;
664
661
  }, z.UnknownKeysParam, z.ZodTypeAny, {
665
662
  [x: string]: any;
666
663
  }, {
@@ -669,8 +666,8 @@ export declare const compose: {
669
666
  /**
670
667
  * Make specific fields required
671
668
  */
672
- require: <T extends z.ZodObject<any>>(schema: T, fields: Array<keyof T["shape"]>) => z.ZodObject<{} & {
673
- [x: string]: any;
669
+ require: <T extends z.ZodObject<z.ZodRawShape>>(schema: T, fields: Array<keyof T["shape"]>) => z.ZodObject<{} & {
670
+ [x: string]: z.ZodTypeAny;
674
671
  }, z.UnknownKeysParam, z.ZodTypeAny, {
675
672
  [x: string]: any;
676
673
  }, {
@@ -679,7 +676,7 @@ export declare const compose: {
679
676
  /**
680
677
  * Pick specific fields from a schema
681
678
  */
682
- pick: <T extends z.ZodObject<any>>(schema: T, fields: Array<keyof T["shape"]>) => z.ZodObject<any, "strip", z.ZodTypeAny, {
679
+ pick: <T extends z.ZodObject<z.ZodRawShape>>(schema: T, fields: Array<keyof T["shape"]>) => z.ZodObject<Record<string, z.ZodTypeAny>, "strip", z.ZodTypeAny, {
683
680
  [x: string]: any;
684
681
  }, {
685
682
  [x: string]: any;
@@ -687,7 +684,11 @@ export declare const compose: {
687
684
  /**
688
685
  * Omit specific fields from a schema
689
686
  */
690
- omit: <T extends z.ZodObject<any>>(schema: T, fields: Array<keyof T["shape"]>) => z.ZodObject<Omit<any, string | number | symbol>, z.UnknownKeysParam, z.ZodTypeAny, {}, {}>;
687
+ omit: <T extends z.ZodObject<z.ZodRawShape>>(schema: T, fields: Array<keyof T["shape"]>) => z.ZodObject<Omit<z.ZodRawShape, string>, z.UnknownKeysParam, z.ZodTypeAny, {
688
+ [x: number]: any;
689
+ }, {
690
+ [x: number]: any;
691
+ }>;
691
692
  };
692
693
  /**
693
694
  * Export Zod for direct use
@@ -1172,13 +1173,13 @@ declare const _default: {
1172
1173
  maxSize: z.ZodString;
1173
1174
  maxFiles: z.ZodString;
1174
1175
  }, "strip", z.ZodTypeAny, {
1175
- level: "error" | "debug" | "warn" | "info";
1176
+ level: "debug" | "error" | "info" | "warn";
1176
1177
  maxSize: string;
1177
1178
  maxFiles: string;
1178
1179
  file: boolean;
1179
1180
  console: boolean;
1180
1181
  }, {
1181
- level: "error" | "debug" | "warn" | "info";
1182
+ level: "debug" | "error" | "info" | "warn";
1182
1183
  maxSize: string;
1183
1184
  maxFiles: string;
1184
1185
  file: boolean;
@@ -1199,7 +1200,7 @@ declare const _default: {
1199
1200
  }>>;
1200
1201
  }, "strip", z.ZodTypeAny, {
1201
1202
  logging?: {
1202
- level: "error" | "debug" | "warn" | "info";
1203
+ level: "debug" | "error" | "info" | "warn";
1203
1204
  maxSize: string;
1204
1205
  maxFiles: string;
1205
1206
  file: boolean;
@@ -1225,7 +1226,7 @@ declare const _default: {
1225
1226
  } | undefined;
1226
1227
  }, {
1227
1228
  logging?: {
1228
- level: "error" | "debug" | "warn" | "info";
1229
+ level: "debug" | "error" | "info" | "warn";
1229
1230
  maxSize: string;
1230
1231
  maxFiles: string;
1231
1232
  file: boolean;
@@ -1301,8 +1302,8 @@ declare const _default: {
1301
1302
  /**
1302
1303
  * Make all fields optional
1303
1304
  */
1304
- partial: <T extends z.ZodObject<any>>(schema: T) => z.ZodObject<{
1305
- [x: string]: z.ZodOptional<any>;
1305
+ partial: <T extends z.ZodObject<z.ZodRawShape>>(schema: T) => z.ZodObject<{
1306
+ [x: string]: z.ZodOptional<z.ZodTypeAny>;
1306
1307
  }, z.UnknownKeysParam, z.ZodTypeAny, {
1307
1308
  [x: string]: any;
1308
1309
  }, {
@@ -1311,8 +1312,8 @@ declare const _default: {
1311
1312
  /**
1312
1313
  * Make specific fields required
1313
1314
  */
1314
- require: <T extends z.ZodObject<any>>(schema: T, fields: Array<keyof T["shape"]>) => z.ZodObject<{} & {
1315
- [x: string]: any;
1315
+ require: <T extends z.ZodObject<z.ZodRawShape>>(schema: T, fields: Array<keyof T["shape"]>) => z.ZodObject<{} & {
1316
+ [x: string]: z.ZodTypeAny;
1316
1317
  }, z.UnknownKeysParam, z.ZodTypeAny, {
1317
1318
  [x: string]: any;
1318
1319
  }, {
@@ -1321,7 +1322,7 @@ declare const _default: {
1321
1322
  /**
1322
1323
  * Pick specific fields from a schema
1323
1324
  */
1324
- pick: <T extends z.ZodObject<any>>(schema: T, fields: Array<keyof T["shape"]>) => z.ZodObject<any, "strip", z.ZodTypeAny, {
1325
+ pick: <T extends z.ZodObject<z.ZodRawShape>>(schema: T, fields: Array<keyof T["shape"]>) => z.ZodObject<Record<string, z.ZodTypeAny>, "strip", z.ZodTypeAny, {
1325
1326
  [x: string]: any;
1326
1327
  }, {
1327
1328
  [x: string]: any;
@@ -1329,7 +1330,11 @@ declare const _default: {
1329
1330
  /**
1330
1331
  * Omit specific fields from a schema
1331
1332
  */
1332
- omit: <T extends z.ZodObject<any>>(schema: T, fields: Array<keyof T["shape"]>) => z.ZodObject<Omit<any, string | number | symbol>, z.UnknownKeysParam, z.ZodTypeAny, {}, {}>;
1333
+ omit: <T extends z.ZodObject<z.ZodRawShape>>(schema: T, fields: Array<keyof T["shape"]>) => z.ZodObject<Omit<z.ZodRawShape, string>, z.UnknownKeysParam, z.ZodTypeAny, {
1334
+ [x: number]: any;
1335
+ }, {
1336
+ [x: number]: any;
1337
+ }>;
1333
1338
  };
1334
1339
  z: typeof z;
1335
1340
  };