@lucaapp/service-utils 1.56.5 → 1.56.7

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.
@@ -9,6 +9,9 @@ const assert_1 = __importDefault(require("assert"));
9
9
  const http_1 = require("./types/http");
10
10
  const libphonenumber_js_1 = require("libphonenumber-js");
11
11
  const busboy_1 = __importDefault(require("busboy"));
12
+ const isRawResponse = (response) => {
13
+ return response.isRawResponseEnd === true;
14
+ };
12
15
  const sendBadContextError = (response, error, debug) => {
13
16
  response.err = error;
14
17
  return response.status(500).send({
@@ -120,6 +123,10 @@ const isTypedError = (error) => {
120
123
  };
121
124
  const validateAndSendResponse = async (expressResponse, response, validResponses, debug) => {
122
125
  try {
126
+ if (isRawResponse(response)) {
127
+ expressResponse.end();
128
+ return;
129
+ }
123
130
  (0, assert_1.default)(typeof response.status === 'number');
124
131
  const responseSchema = validResponses.find(r => r.status === response.status);
125
132
  const schema = responseSchema?.schema;
@@ -305,7 +312,7 @@ const mountEndpoint = (router, method, path, options, handler, debug) => {
305
312
  }
306
313
  await handler(handlerRequest, ctx, async (controllerResponse) => {
307
314
  await validateAndSendResponse(response, controllerResponse, options.responses, debug);
308
- });
315
+ }, response);
309
316
  }
310
317
  catch (error) {
311
318
  sendErrorResponse(response, error, options.errors, debug);
@@ -15,4 +15,10 @@ export declare const noContentResponse: () => {
15
15
  description: string;
16
16
  schema: typeof noContentSchema;
17
17
  };
18
+ export declare const rawResponseEnd: () => {
19
+ status: number;
20
+ isRawResponseEnd: true;
21
+ description: string;
22
+ schema: typeof noContentSchema;
23
+ };
18
24
  export {};
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.noContentResponse = exports.createdResponse = exports.okResponse = void 0;
3
+ exports.rawResponseEnd = exports.noContentResponse = exports.createdResponse = exports.okResponse = void 0;
4
4
  const zod_to_openapi_1 = require("@asteasolutions/zod-to-openapi");
5
5
  const zod_1 = require("zod");
6
6
  (0, zod_to_openapi_1.extendZodWithOpenApi)(zod_1.z);
@@ -25,3 +25,10 @@ const noContentResponse = () => ({
25
25
  schema: noContentSchema,
26
26
  });
27
27
  exports.noContentResponse = noContentResponse;
28
+ const rawResponseEnd = () => ({
29
+ status: 0,
30
+ isRawResponseEnd: true,
31
+ description: 'rawEnd',
32
+ schema: noContentSchema,
33
+ });
34
+ exports.rawResponseEnd = rawResponseEnd;
@@ -13,3 +13,11 @@ export declare const noContent: <T>(headers?: T | undefined) => {
13
13
  body: void;
14
14
  headers?: T | undefined;
15
15
  };
16
+ /**
17
+ * Specifies that the response is a raw response.
18
+ *
19
+ * `response.end()` is called in the handler function.
20
+ */
21
+ export declare const rawEnd: () => {
22
+ isRawResponseEnd: true;
23
+ };
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.noContent = exports.created = exports.ok = void 0;
3
+ exports.rawEnd = exports.noContent = exports.created = exports.ok = void 0;
4
4
  const ok = (body, headers) => ({
5
5
  status: 200,
6
6
  body: body,
@@ -19,3 +19,12 @@ const noContent = (headers) => ({
19
19
  headers: headers,
20
20
  });
21
21
  exports.noContent = noContent;
22
+ /**
23
+ * Specifies that the response is a raw response.
24
+ *
25
+ * `response.end()` is called in the handler function.
26
+ */
27
+ const rawEnd = () => ({
28
+ isRawResponseEnd: true,
29
+ });
30
+ exports.rawEnd = rawEnd;
@@ -1,11 +1,15 @@
1
+ import { Response } from 'express';
1
2
  import { Middleware, EndpointResponseSchema } from './middleware';
2
3
  import { ArrayToUnion, ExtractZodOutput, ExtractZodOutputFromMiddleware, Always, Merge, ZodSchemaOuput } from './utils';
4
+ export type RawResponseEnd = {
5
+ isRawResponseEnd: boolean;
6
+ };
3
7
  export type EndpointHandler<TResponse, TRequestBodySchema, TRequestParamsSchema, TRequestQuerySchema, TRequestHeadersSchema, TMiddlewares> = (request: {
4
8
  body: ZodSchemaOuput<TRequestBodySchema>;
5
9
  params: ZodSchemaOuput<TRequestParamsSchema>;
6
10
  query: ZodSchemaOuput<TRequestQuerySchema>;
7
11
  headers: ZodSchemaOuput<TRequestHeadersSchema>;
8
- }, context: Merge<Always<ExtractZodOutputFromMiddleware<ArrayToUnion<TMiddlewares>>>>, send: (response: ExtractZodOutput<ArrayToUnion<TResponse>>) => void) => Promise<void>;
12
+ }, context: Merge<Always<ExtractZodOutputFromMiddleware<ArrayToUnion<TMiddlewares>>>>, send: (response: ExtractZodOutput<ArrayToUnion<TResponse>> | RawResponseEnd) => void, rawResponse: Response) => Promise<void>;
9
13
  export type EndpointOptions<TResponseSchemas extends ReadonlyArray<EndpointResponseSchema>, TRequestBodySchema, TRequestParamsSchema, TRequestQuerySchema, TRequestHeadersSchema, TMiddlewares extends ReadonlyArray<Middleware<any, any, any, any, any, any>> | undefined> = {
10
14
  schemas?: {
11
15
  body?: TRequestBodySchema;
@@ -6,6 +6,7 @@ export type EndpointResponseSchema = {
6
6
  description: string;
7
7
  schema: z.ZodSchema<any> | z.ZodVoid;
8
8
  headers?: Record<string, string>;
9
+ isRawResponseEnd?: boolean;
9
10
  };
10
11
  export type FileUpload = {
11
12
  buffer: Buffer;
@@ -1,6 +1,8 @@
1
1
  export type Location = {
2
2
  uuid: string;
3
3
  groupId?: string;
4
+ timezone?: string;
5
+ scannerId?: string;
4
6
  createdAt: Date;
5
7
  updatedAt: Date;
6
8
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lucaapp/service-utils",
3
- "version": "1.56.5",
3
+ "version": "1.56.7",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "files": [
@@ -73,6 +73,7 @@
73
73
  "resolutions": {
74
74
  "yaml": "2.2.2",
75
75
  "semver": "7.5.2",
76
- "follow-redirects": "1.15.6"
76
+ "follow-redirects": "1.15.6",
77
+ "braces": "3.0.3"
77
78
  }
78
79
  }