sprint-es 0.0.157 → 0.0.160

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.
@@ -470,14 +470,12 @@ class Sprint {
470
470
  for (const routeLayer of layer.route.stack) {
471
471
  const handler = routeLayer.handle;
472
472
  const handlerSchema = handler.__sprintRouteSchema;
473
- if (handlerSchema?.files && typeof handlerSchema.files === "object" && "field" in handlerSchema.files) {
474
- const fileConfig = handlerSchema.files;
475
- if (fileConfig.maxCount) {
476
- fileUploadMiddleware = this.uploadFiles(fileConfig.field);
477
- } else {
478
- fileUploadMiddleware = this.uploadFile(fileConfig.field);
473
+ if (handlerSchema?.files && typeof handlerSchema.files === "object" && !Array.isArray(handlerSchema.files)) {
474
+ const fileFields = Object.keys(handlerSchema.files);
475
+ if (fileFields.length > 0) {
476
+ fileUploadMiddleware = this.uploadFiles(fileFields);
477
+ break;
479
478
  }
480
- break;
481
479
  }
482
480
  }
483
481
  if (fileUploadMiddleware) break;
@@ -20,7 +20,7 @@ function createFileSchema(options = {}) {
20
20
  size: zod.z.number(),
21
21
  buffer: zod.z.instanceof(Buffer).optional()
22
22
  });
23
- return fileSchema.refine((file) => {
23
+ const schemaWithValidations = fileSchema.refine((file) => {
24
24
  if (extensions.length === 0) return true;
25
25
  const fileExt = file.originalname.toLowerCase().substring(file.originalname.lastIndexOf("."));
26
26
  return extensions.includes(fileExt);
@@ -46,15 +46,21 @@ function createFileSchema(options = {}) {
46
46
  message: `File size must be at least ${options.minSize} bytes`,
47
47
  path: ["size"]
48
48
  });
49
+ const chainedSchema = Object.create(schemaWithValidations);
50
+ chainedSchema.format = (ext) => createFileSchema({ ...options, ext: normalizeExtensions(ext) });
51
+ chainedSchema.mimeType = (mime) => createFileSchema({ ...options, mimeType: normalizeMimeTypes(mime) });
52
+ chainedSchema.maxSize = (size) => createFileSchema({ ...options, maxSize: size });
53
+ chainedSchema.minSize = (size) => createFileSchema({ ...options, minSize: size });
54
+ return chainedSchema;
49
55
  }
50
56
  function createFilesArraySchema(fieldName, options = {}) {
51
- const fileSchema = createFileSchema({ ...options });
57
+ const fileSchema = createFileSchema({ ...options, required: false });
52
58
  return zod.z.array(fileSchema).min(options.required === false ? 0 : 1, {
53
59
  message: options.required === false ? void 0 : `At least one file is required for field "${fieldName}"`
54
60
  });
55
61
  }
56
62
  const fileValidators = {
57
- ext: (ext) => {
63
+ format: (ext) => {
58
64
  const extensions = normalizeExtensions(ext);
59
65
  return createFileSchema({ ext: extensions });
60
66
  },
@@ -148,7 +154,7 @@ function parseSchema(schema, data) {
148
154
  }
149
155
  function defineRouteSchema(schema) {
150
156
  const headersSchema = schema.headers ? normalizeHeadersSchema(schema.headers) : null;
151
- const fileConfig = typeof schema.files === "object" && "field" in schema.files ? schema.files : null;
157
+ const fileFields = schema.files ? Object.keys(schema.files) : [];
152
158
  const middleware = (req, res, next) => {
153
159
  const errors = [];
154
160
  const method = req.method.toUpperCase();
@@ -170,22 +176,17 @@ function defineRouteSchema(schema) {
170
176
  const result = headersSchema.safeParse(normalizedHeaders);
171
177
  if (!result.success) errors.push(...result.errors.map((e) => ({ location: "headers", ...e })));
172
178
  }
173
- let filesData = [];
174
- if (schema.files) {
175
- if (fileConfig) {
176
- const fieldFiles = req.file ? [req.file] : [];
177
- const multiFiles = req.files?.[fileConfig.field] || [];
178
- filesData = [...fieldFiles, ...Array.isArray(multiFiles) ? multiFiles : []];
179
- if (fileConfig.maxCount && filesData.length > fileConfig.maxCount) errors.push({ location: "files", path: fileConfig.field, message: `Maximum ${fileConfig.maxCount} files allowed` });
180
- if (fileConfig.schema && filesData.length > 0) {
181
- const result = parseSchema(fileConfig.schema, filesData);
182
- if (!result.success) errors.push(...result.errors.map((e) => ({ location: "files", ...e })));
179
+ if (schema.files && typeof schema.files === "object") {
180
+ for (const [fieldName, fieldSchema] of Object.entries(schema.files)) {
181
+ const fieldFiles = req.files?.[fieldName] || [];
182
+ const filesArray = Array.isArray(fieldFiles) ? fieldFiles : [fieldFiles];
183
+ const isOptional = fieldSchema.isOptional ? fieldSchema.isOptional() : false;
184
+ if (filesArray.length > 0 || isOptional) {
185
+ const result = parseSchema(fieldSchema, filesArray);
186
+ if (!result.success) {
187
+ errors.push(...result.errors.map((e) => ({ location: "files", path: fieldName, message: `${e.path || fieldName}: ${e.message}` })));
188
+ }
183
189
  }
184
- } else {
185
- const filesSchema = schema.files;
186
- const reqFiles = req.files || (req.file ? [req.file] : []);
187
- const result = parseSchema(filesSchema, reqFiles);
188
- if (!result.success) errors.push(...result.errors.map((e) => ({ location: "files", ...e })));
189
190
  }
190
191
  }
191
192
  if (schema.sprint?.authorization) {
@@ -227,12 +228,7 @@ function defineRouteSchema(schema) {
227
228
  next();
228
229
  };
229
230
  middleware.__sprintRouteSchema = schema;
230
- if (fileConfig) {
231
- middleware.applyFileUpload = function(sprint) {
232
- if (fileConfig.maxCount) return sprint.uploadFiles(fileConfig.field);
233
- return sprint.uploadFile(fileConfig.field);
234
- };
235
- }
231
+ middleware.getFileFields = () => fileFields;
236
232
  return middleware;
237
233
  }
238
234
  exports.createFileSchema = createFileSchema;
package/dist/esm/index.js CHANGED
@@ -445,14 +445,12 @@ class Sprint {
445
445
  for (const routeLayer of layer.route.stack) {
446
446
  const handler = routeLayer.handle;
447
447
  const handlerSchema = handler.__sprintRouteSchema;
448
- if (handlerSchema?.files && typeof handlerSchema.files === "object" && "field" in handlerSchema.files) {
449
- const fileConfig = handlerSchema.files;
450
- if (fileConfig.maxCount) {
451
- fileUploadMiddleware = this.uploadFiles(fileConfig.field);
452
- } else {
453
- fileUploadMiddleware = this.uploadFile(fileConfig.field);
448
+ if (handlerSchema?.files && typeof handlerSchema.files === "object" && !Array.isArray(handlerSchema.files)) {
449
+ const fileFields = Object.keys(handlerSchema.files);
450
+ if (fileFields.length > 0) {
451
+ fileUploadMiddleware = this.uploadFiles(fileFields);
452
+ break;
454
453
  }
455
- break;
456
454
  }
457
455
  }
458
456
  if (fileUploadMiddleware) break;
@@ -18,7 +18,7 @@ function createFileSchema(options = {}) {
18
18
  size: z.number(),
19
19
  buffer: z.instanceof(Buffer).optional()
20
20
  });
21
- return fileSchema.refine((file) => {
21
+ const schemaWithValidations = fileSchema.refine((file) => {
22
22
  if (extensions.length === 0) return true;
23
23
  const fileExt = file.originalname.toLowerCase().substring(file.originalname.lastIndexOf("."));
24
24
  return extensions.includes(fileExt);
@@ -44,15 +44,21 @@ function createFileSchema(options = {}) {
44
44
  message: `File size must be at least ${options.minSize} bytes`,
45
45
  path: ["size"]
46
46
  });
47
+ const chainedSchema = Object.create(schemaWithValidations);
48
+ chainedSchema.format = (ext) => createFileSchema({ ...options, ext: normalizeExtensions(ext) });
49
+ chainedSchema.mimeType = (mime) => createFileSchema({ ...options, mimeType: normalizeMimeTypes(mime) });
50
+ chainedSchema.maxSize = (size) => createFileSchema({ ...options, maxSize: size });
51
+ chainedSchema.minSize = (size) => createFileSchema({ ...options, minSize: size });
52
+ return chainedSchema;
47
53
  }
48
54
  function createFilesArraySchema(fieldName, options = {}) {
49
- const fileSchema = createFileSchema({ ...options });
55
+ const fileSchema = createFileSchema({ ...options, required: false });
50
56
  return z.array(fileSchema).min(options.required === false ? 0 : 1, {
51
57
  message: options.required === false ? void 0 : `At least one file is required for field "${fieldName}"`
52
58
  });
53
59
  }
54
60
  const fileValidators = {
55
- ext: (ext) => {
61
+ format: (ext) => {
56
62
  const extensions = normalizeExtensions(ext);
57
63
  return createFileSchema({ ext: extensions });
58
64
  },
@@ -146,7 +152,7 @@ function parseSchema(schema, data) {
146
152
  }
147
153
  function defineRouteSchema(schema) {
148
154
  const headersSchema = schema.headers ? normalizeHeadersSchema(schema.headers) : null;
149
- const fileConfig = typeof schema.files === "object" && "field" in schema.files ? schema.files : null;
155
+ const fileFields = schema.files ? Object.keys(schema.files) : [];
150
156
  const middleware = (req, res, next) => {
151
157
  const errors = [];
152
158
  const method = req.method.toUpperCase();
@@ -168,22 +174,17 @@ function defineRouteSchema(schema) {
168
174
  const result = headersSchema.safeParse(normalizedHeaders);
169
175
  if (!result.success) errors.push(...result.errors.map((e) => ({ location: "headers", ...e })));
170
176
  }
171
- let filesData = [];
172
- if (schema.files) {
173
- if (fileConfig) {
174
- const fieldFiles = req.file ? [req.file] : [];
175
- const multiFiles = req.files?.[fileConfig.field] || [];
176
- filesData = [...fieldFiles, ...Array.isArray(multiFiles) ? multiFiles : []];
177
- if (fileConfig.maxCount && filesData.length > fileConfig.maxCount) errors.push({ location: "files", path: fileConfig.field, message: `Maximum ${fileConfig.maxCount} files allowed` });
178
- if (fileConfig.schema && filesData.length > 0) {
179
- const result = parseSchema(fileConfig.schema, filesData);
180
- if (!result.success) errors.push(...result.errors.map((e) => ({ location: "files", ...e })));
177
+ if (schema.files && typeof schema.files === "object") {
178
+ for (const [fieldName, fieldSchema] of Object.entries(schema.files)) {
179
+ const fieldFiles = req.files?.[fieldName] || [];
180
+ const filesArray = Array.isArray(fieldFiles) ? fieldFiles : [fieldFiles];
181
+ const isOptional = fieldSchema.isOptional ? fieldSchema.isOptional() : false;
182
+ if (filesArray.length > 0 || isOptional) {
183
+ const result = parseSchema(fieldSchema, filesArray);
184
+ if (!result.success) {
185
+ errors.push(...result.errors.map((e) => ({ location: "files", path: fieldName, message: `${e.path || fieldName}: ${e.message}` })));
186
+ }
181
187
  }
182
- } else {
183
- const filesSchema = schema.files;
184
- const reqFiles = req.files || (req.file ? [req.file] : []);
185
- const result = parseSchema(filesSchema, reqFiles);
186
- if (!result.success) errors.push(...result.errors.map((e) => ({ location: "files", ...e })));
187
188
  }
188
189
  }
189
190
  if (schema.sprint?.authorization) {
@@ -225,12 +226,7 @@ function defineRouteSchema(schema) {
225
226
  next();
226
227
  };
227
228
  middleware.__sprintRouteSchema = schema;
228
- if (fileConfig) {
229
- middleware.applyFileUpload = function(sprint) {
230
- if (fileConfig.maxCount) return sprint.uploadFiles(fileConfig.field);
231
- return sprint.uploadFile(fileConfig.field);
232
- };
233
- }
229
+ middleware.getFileFields = () => fileFields;
234
230
  return middleware;
235
231
  }
236
232
  export {
@@ -12,19 +12,25 @@ export interface FileValidationOptions {
12
12
  minSize?: number;
13
13
  required?: boolean;
14
14
  }
15
- declare function createFileSchema(options?: FileValidationOptions): ZodSchemaType<FileObject, ZodTypeDef, FileObject>;
15
+ interface FileSchemaType {
16
+ format(ext: string | string[]): FileSchemaType;
17
+ mimeType(mimeType: string | string[]): FileSchemaType;
18
+ maxSize(maxSize: number): FileSchemaType;
19
+ minSize(minSize: number): FileSchemaType;
20
+ }
21
+ declare function createFileSchema(options?: FileValidationOptions): FileSchemaType;
16
22
  declare function createFilesArraySchema(fieldName: string, options?: FileValidationOptions): ZodSchemaType<FileObject[], ZodTypeDef, FileObject[]>;
17
23
  declare const fileValidators: {
18
- ext: (ext: string | string[]) => z.ZodType<FileObject, z.ZodTypeDef, FileObject>;
19
- mimeType: (mimeType: string | string[]) => z.ZodType<FileObject, z.ZodTypeDef, FileObject>;
20
- maxSize: (maxSize: number) => z.ZodType<FileObject, z.ZodTypeDef, FileObject>;
21
- minSize: (minSize: number) => z.ZodType<FileObject, z.ZodTypeDef, FileObject>;
22
- image: () => z.ZodType<FileObject, z.ZodTypeDef, FileObject>;
23
- document: () => z.ZodType<FileObject, z.ZodTypeDef, FileObject>;
24
- video: () => z.ZodType<FileObject, z.ZodTypeDef, FileObject>;
25
- audio: () => z.ZodType<FileObject, z.ZodTypeDef, FileObject>;
26
- archive: () => z.ZodType<FileObject, z.ZodTypeDef, FileObject>;
27
- any: () => z.ZodType<FileObject, z.ZodTypeDef, FileObject>;
24
+ format: (ext: string | string[]) => ZodSchemaType<FileObject, ZodTypeDef, FileObject>;
25
+ mimeType: (mimeType: string | string[]) => ZodSchemaType<FileObject, ZodTypeDef, FileObject>;
26
+ maxSize: (maxSize: number) => ZodSchemaType<FileObject, ZodTypeDef, FileObject>;
27
+ minSize: (minSize: number) => ZodSchemaType<FileObject, ZodTypeDef, FileObject>;
28
+ image: () => ZodSchemaType<FileObject, ZodTypeDef, FileObject>;
29
+ document: () => ZodSchemaType<FileObject, ZodTypeDef, FileObject>;
30
+ video: () => ZodSchemaType<FileObject, ZodTypeDef, FileObject>;
31
+ audio: () => ZodSchemaType<FileObject, ZodTypeDef, FileObject>;
32
+ archive: () => ZodSchemaType<FileObject, ZodTypeDef, FileObject>;
33
+ any: () => ZodSchemaType<FileObject, ZodTypeDef, FileObject>;
28
34
  field: (fieldName: string, options?: FileValidationOptions) => z.ZodType<FileObject[], z.ZodTypeDef, FileObject[]>;
29
35
  };
30
36
  export declare function normalizeHeadersSchema(schema: any): any;
@@ -50,17 +56,15 @@ export interface RouteSchemaOptions {
50
56
  queryParams?: ZodSchemaType<any, ZodTypeDef, any>;
51
57
  params?: ZodSchemaType<any, ZodTypeDef, any>;
52
58
  headers?: ZodSchemaType<any, ZodTypeDef, any>;
53
- files?: ZodSchemaType<any, ZodTypeDef, any> | {
54
- field: string;
55
- maxCount?: number;
56
- schema?: ZodSchemaType<any, ZodTypeDef, any>;
59
+ files?: {
60
+ [fieldName: string]: ZodSchemaType<any, ZodTypeDef, any>;
57
61
  };
58
62
  sprint?: {
59
63
  authorization?: ZodSchemaType<string, ZodTypeDef, string>;
60
64
  };
61
65
  }
62
66
  export declare function defineRouteSchema<T extends RouteSchemaOptions>(schema: T): RequestHandler & {
63
- applyFileUpload?: (sprint: any) => any;
67
+ getFileFields?: () => string[];
64
68
  };
65
69
  export type { ZodSchema, ZodMiddlewareOptions } from './types';
66
70
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/modules/schemas/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/modules/schemas/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"sprint.d.ts","sourceRoot":"","sources":["../../src/sprint.ts"],"names":[],"mappings":"AAYA,OAAO,OAAO,EAAE,EAAE,WAAW,EAA2C,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC3G,OAAO,EAAE,OAAO,EAA+B,gBAAgB,EAAsC,MAAM,SAAS,CAAC;AAcrH,eAAO,MAAM,aAAa,SAAQ,CAAC;AACnC,eAAO,MAAM,YAAY,SAAS,CAAC;AA0CnC,qBAAa,MAAM;IACR,GAAG,EAAE,WAAW,CAAC;IACxB,OAAO,CAAC,IAAI,CAAwD;IACpE,OAAO,CAAC,UAAU,CAAsB;IACxC,OAAO,CAAC,eAAe,CAA2B;IAClD,OAAO,CAAC,YAAY,CAAwB;IAC5C,OAAO,CAAC,SAAS,CAAkB;IACnC,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,YAAY,CAAiB;IACrC,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,iBAAiB,CAA4C;IACrE,OAAO,CAAC,QAAQ,CAA8C;IAC9D,OAAO,CAAC,OAAO,CAcT;IACN,OAAO,CAAC,OAAO,CAcT;IACN,OAAO,CAAC,aAAa,CAAa;IAClC,OAAO,CAAC,gBAAgB,CAIhB;IACD,uBAAuB,EAAE,MAAM,CAAmB;IAClD,YAAY,EAAE,GAAG,CAAC;;YA6JX,IAAI;IAkDlB,OAAO,CAAC,YAAY;IAiDpB;;OAEG;IACH,OAAO,CAAC,sBAAsB;IA4B9B;;OAEG;YACW,eAAe;IAkC7B,OAAO,CAAC,eAAe;YAeT,UAAU;YA+GV,YAAY;IAqB1B,OAAO,CAAC,YAAY;IAgCpB,+BAA+B;IAC/B,OAAO,CAAC,WAAW;IAKnB,OAAO,CAAC,mBAAmB;IA+K3B,OAAO,CAAC,kBAAkB;IAqC1B,OAAO,CAAC,kBAAkB;IA8B1B,OAAO,CAAC,mBAAmB;IA+BpB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO;IAClC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO;IACnC,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO;IAClC,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO;IACrC,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO;IACpC,GAAG,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,GAAG,gBAAgB,EAAE,YAAY,CAAC,EAAE,OAAO;IAY9E,gBAAgB,CAAC,MAAM,EAAE,GAAG,GAAG,IAAI;IAInC,MAAM,CAAC,QAAQ,CAAC,EAAE,MAAM,IAAI,GAAG,IAAI;IAgEnC,UAAU,CAAC,SAAS,GAAE,MAAe;IAIrC,WAAW,CAAC,UAAU,GAAE,MAAM,GAAG,MAAM,EAAY;IAKnD,YAAY,CAAC,OAAO,CAAC,EAAE;QAC1B,MAAM,CAAC,EAAE;YACL,QAAQ,CAAC,EAAE,MAAM,CAAC;YAClB,KAAK,CAAC,EAAE,MAAM,CAAC;SAClB,CAAC;QACF,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KACpC,IACW,KAAK,OAAO,EAAE,KAAK,QAAQ,KAAG,OAAO,CAAC;QAC1C,KAAK,EAAE,KAAK,CAAC;YACT,SAAS,EAAE,MAAM,CAAC;YAClB,IAAI,EAAE,MAAM,CAAC,cAAc,CAAC;YAC5B,QAAQ,EAAE,MAAM,CAAC;YACjB,QAAQ,EAAE,MAAM,CAAC;YACjB,QAAQ,EAAE,MAAM,CAAC;SACpB,CAAC,CAAC;QACH,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KAClC,CAAC;CA0CT"}
1
+ {"version":3,"file":"sprint.d.ts","sourceRoot":"","sources":["../../src/sprint.ts"],"names":[],"mappings":"AAYA,OAAO,OAAO,EAAE,EAAE,WAAW,EAA2C,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC3G,OAAO,EAAE,OAAO,EAA+B,gBAAgB,EAAsC,MAAM,SAAS,CAAC;AAcrH,eAAO,MAAM,aAAa,SAAQ,CAAC;AACnC,eAAO,MAAM,YAAY,SAAS,CAAC;AA0CnC,qBAAa,MAAM;IACR,GAAG,EAAE,WAAW,CAAC;IACxB,OAAO,CAAC,IAAI,CAAwD;IACpE,OAAO,CAAC,UAAU,CAAsB;IACxC,OAAO,CAAC,eAAe,CAA2B;IAClD,OAAO,CAAC,YAAY,CAAwB;IAC5C,OAAO,CAAC,SAAS,CAAkB;IACnC,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,YAAY,CAAiB;IACrC,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,iBAAiB,CAA4C;IACrE,OAAO,CAAC,QAAQ,CAA8C;IAC9D,OAAO,CAAC,OAAO,CAcT;IACN,OAAO,CAAC,OAAO,CAcT;IACN,OAAO,CAAC,aAAa,CAAa;IAClC,OAAO,CAAC,gBAAgB,CAIhB;IACD,uBAAuB,EAAE,MAAM,CAAmB;IAClD,YAAY,EAAE,GAAG,CAAC;;YA6JX,IAAI;IAkDlB,OAAO,CAAC,YAAY;IAiDpB;;OAEG;IACH,OAAO,CAAC,sBAAsB;IA4B9B;;OAEG;YACW,eAAe;IAkC7B,OAAO,CAAC,eAAe;YAeT,UAAU;YA6GV,YAAY;IAqB1B,OAAO,CAAC,YAAY;IAgCpB,+BAA+B;IAC/B,OAAO,CAAC,WAAW;IAKnB,OAAO,CAAC,mBAAmB;IA+K3B,OAAO,CAAC,kBAAkB;IAqC1B,OAAO,CAAC,kBAAkB;IA8B1B,OAAO,CAAC,mBAAmB;IA+BpB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO;IAClC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO;IACnC,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO;IAClC,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO;IACrC,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO;IACpC,GAAG,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,GAAG,gBAAgB,EAAE,YAAY,CAAC,EAAE,OAAO;IAY9E,gBAAgB,CAAC,MAAM,EAAE,GAAG,GAAG,IAAI;IAInC,MAAM,CAAC,QAAQ,CAAC,EAAE,MAAM,IAAI,GAAG,IAAI;IAgEnC,UAAU,CAAC,SAAS,GAAE,MAAe;IAIrC,WAAW,CAAC,UAAU,GAAE,MAAM,GAAG,MAAM,EAAY;IAKnD,YAAY,CAAC,OAAO,CAAC,EAAE;QAC1B,MAAM,CAAC,EAAE;YACL,QAAQ,CAAC,EAAE,MAAM,CAAC;YAClB,KAAK,CAAC,EAAE,MAAM,CAAC;SAClB,CAAC;QACF,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KACpC,IACW,KAAK,OAAO,EAAE,KAAK,QAAQ,KAAG,OAAO,CAAC;QAC1C,KAAK,EAAE,KAAK,CAAC;YACT,SAAS,EAAE,MAAM,CAAC;YAClB,IAAI,EAAE,MAAM,CAAC,cAAc,CAAC;YAC5B,QAAQ,EAAE,MAAM,CAAC;YACjB,QAAQ,EAAE,MAAM,CAAC;YACjB,QAAQ,EAAE,MAAM,CAAC;SACpB,CAAC,CAAC;QACH,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KAClC,CAAC;CA0CT"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sprint-es",
3
- "version": "0.0.157",
3
+ "version": "0.0.160",
4
4
  "description": "Sprint - Quickly API",
5
5
  "main": "dist/cjs/index.js",
6
6
  "module": "dist/esm/index.js",
@@ -128,6 +128,7 @@
128
128
  "devDependencies": {
129
129
  "@types/busboy": "^1.5.4",
130
130
  "@types/cors": "^2.8.19",
131
+ "@types/dotenv": "^6.1.1",
131
132
  "@types/jest": "^30.0.0",
132
133
  "@types/morgan": "^1.9.10",
133
134
  "@types/node": "^22.18.7",