@tc-libs/request 5.7.7 → 5.8.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
@@ -103,6 +103,7 @@ Il package espone validator riusabili come:
103
103
  ## Note operative
104
104
 
105
105
  - Gli endpoint SSE vengono esclusi dal timeout globale.
106
+ - I body parser girano dopo helmet e CORS, quindi anche i loro errori (400, 413) escono con quegli header, solo se l'app nasce con `NestFactory.create(AppModule, { bodyParser: false })`: altrimenti Nest registra i suoi parser prima dei middleware. Con `bodyParser: false` l'opzione `rawBody` di Nest non ha effetto: per avere i byte ricevuti in `req.rawBody`, per esempio per la firma dei webhook, si imposta `body.json.rawBody: true`.
106
107
  - I metadati raccolti qui vengono poi usati da `response` ed `error-handler`.
107
108
 
108
109
  ## Sviluppo
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@tc-libs/request",
3
- "version": "5.7.7",
3
+ "version": "5.8.0",
4
4
  "dependencies": {
5
- "@tc-libs/constant": "5.7.7",
6
- "@tc-libs/errors": "5.7.7",
7
- "@tc-libs/helper": "5.7.7",
8
- "@tc-libs/pagination": "5.7.7",
9
- "@tc-libs/service": "5.7.7",
5
+ "@tc-libs/constant": "5.8.0",
6
+ "@tc-libs/errors": "5.8.0",
7
+ "@tc-libs/helper": "5.8.0",
8
+ "@tc-libs/pagination": "5.8.0",
9
+ "@tc-libs/service": "5.8.0",
10
10
  "body-parser": "^2.4.0",
11
11
  "cors": "2.8.5",
12
12
  "express": "^5.2.1",
@@ -10,6 +10,7 @@ export declare class RequestUrlencodedBodyParserMiddleware implements NestMiddle
10
10
  export declare class RequestJsonBodyParserMiddleware implements NestMiddleware {
11
11
  private readonly options;
12
12
  private readonly maxFile;
13
+ private readonly rawBody;
13
14
  constructor(options: RequestModuleOptions);
14
15
  use(req: Request, res: Response, next: NextFunction): void;
15
16
  }
@@ -27,10 +27,17 @@ let RequestJsonBodyParserMiddleware = class RequestJsonBodyParserMiddleware {
27
27
  constructor(options) {
28
28
  this.options = options;
29
29
  this.maxFile = this.options.request.body.json.maxFileSize;
30
+ this.rawBody = this.options.request.body.json.rawBody ?? false;
30
31
  }
31
32
  use(req, res, next) {
32
33
  body_parser_1.default.json({
33
34
  limit: this.maxFile,
35
+ // TLC-717: i byte ricevuti in req.rawBody, come fa Nest con rawBody: true
36
+ ...(this.rawBody && {
37
+ verify: (request, _response, buffer) => {
38
+ request.rawBody = buffer;
39
+ },
40
+ }),
34
41
  })(req, res, next);
35
42
  }
36
43
  };
@@ -1 +1 @@
1
- {"version":3,"file":"request.body-parser.middleware.js","sourceRoot":"","sources":["../../../../../../packages/request/src/middleware/body-parser/request.body-parser.middleware.ts"],"names":[],"mappings":";;;;AAAA,2CAAoE;AAEpE,sEAAqC;AACrC,yEAGsC;AAG/B,IAAM,qCAAqC,GAA3C,MAAM,qCAAqC;IAGhD,YAEmB,OAA6B;QAA7B,YAAO,GAAP,OAAO,CAAsB;QAE9C,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC;IAClE,CAAC;IAED,GAAG,CAAC,GAAY,EAAE,GAAa,EAAE,IAAkB;QACjD,qBAAU,CAAC,UAAU,CAAC;YACpB,QAAQ,EAAE,KAAK;YACf,KAAK,EAAE,IAAI,CAAC,OAAO;SACpB,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;IACrB,CAAC;CACF,CAAA;AAhBY,sFAAqC;gDAArC,qCAAqC;IADjD,IAAA,mBAAU,GAAE;IAKR,mBAAA,IAAA,eAAM,EAAC,+CAAsB,CAAC,CAAA;;GAJtB,qCAAqC,CAgBjD;AAGM,IAAM,+BAA+B,GAArC,MAAM,+BAA+B;IAG1C,YAEmB,OAA6B;QAA7B,YAAO,GAAP,OAAO,CAAsB;QAE9C,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC;IAC5D,CAAC;IAED,GAAG,CAAC,GAAY,EAAE,GAAa,EAAE,IAAkB;QACjD,qBAAU,CAAC,IAAI,CAAC;YACd,KAAK,EAAE,IAAI,CAAC,OAAO;SACpB,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;IACrB,CAAC;CACF,CAAA;AAfY,0EAA+B;0CAA/B,+BAA+B;IAD3C,IAAA,mBAAU,GAAE;IAKR,mBAAA,IAAA,eAAM,EAAC,+CAAsB,CAAC,CAAA;;GAJtB,+BAA+B,CAe3C;AAGM,IAAM,8BAA8B,GAApC,MAAM,8BAA8B;IAGzC,YAEmB,OAA6B;QAA7B,YAAO,GAAP,OAAO,CAAsB;QAE9C,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC;IAC3D,CAAC;IAED,GAAG,CAAC,GAAY,EAAE,GAAa,EAAE,IAAkB;QACjD,qBAAU,CAAC,GAAG,CAAC;YACb,KAAK,EAAE,IAAI,CAAC,OAAO;SACpB,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;IACrB,CAAC;CACF,CAAA;AAfY,wEAA8B;yCAA9B,8BAA8B;IAD1C,IAAA,mBAAU,GAAE;IAKR,mBAAA,IAAA,eAAM,EAAC,+CAAsB,CAAC,CAAA;;GAJtB,8BAA8B,CAe1C;AAGM,IAAM,+BAA+B,GAArC,MAAM,+BAA+B;IAG1C,YAEmB,OAA6B;QAA7B,YAAO,GAAP,OAAO,CAAsB;QAE9C,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC;IAC5D,CAAC;IAED,GAAG,CAAC,GAAY,EAAE,GAAa,EAAE,IAAkB;QACjD,qBAAU,CAAC,IAAI,CAAC;YACd,KAAK,EAAE,IAAI,CAAC,OAAO;SACpB,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;IACrB,CAAC;CACF,CAAA;AAfY,0EAA+B;0CAA/B,+BAA+B;IAD3C,IAAA,mBAAU,GAAE;IAKR,mBAAA,IAAA,eAAM,EAAC,+CAAsB,CAAC,CAAA;;GAJtB,+BAA+B,CAe3C"}
1
+ {"version":3,"file":"request.body-parser.middleware.js","sourceRoot":"","sources":["../../../../../../packages/request/src/middleware/body-parser/request.body-parser.middleware.ts"],"names":[],"mappings":"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"}
@@ -21,6 +21,7 @@ export interface IRequestModuleRequestOptions {
21
21
  };
22
22
  json: {
23
23
  maxFileSize: number;
24
+ rawBody?: boolean;
24
25
  };
25
26
  raw: {
26
27
  maxFileSize: number;