@voiceflow/logger 2.2.0 → 2.3.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.
@@ -1,5 +1,7 @@
1
+ /// <reference types="node" />
1
2
  /// <reference types="node/http" />
3
+ import type { IncomingMessage } from 'node:http';
2
4
  import { Options } from 'pino-http';
3
5
  import { LoggerOptions } from './logger-options.interface';
4
6
  export declare const createHTTPConfig: ({ format, level }: LoggerOptions) => Options;
5
- export declare const createHTTPLogger: (options: LoggerOptions) => import("pino-http").HttpLogger<import("http").IncomingMessage, import("http").ServerResponse, never>;
7
+ export declare const createHTTPLogger: (options: LoggerOptions) => import("pino-http").HttpLogger<IncomingMessage, import("http").ServerResponse, never>;
@@ -4,7 +4,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.createHTTPLogger = exports.createHTTPConfig = void 0;
7
- /* eslint-disable sonarjs/no-nested-template-literals */
8
7
  const colorette_1 = require("colorette");
9
8
  const pino_http_1 = __importDefault(require("pino-http"));
10
9
  const ts_pattern_1 = require("ts-pattern");
@@ -21,9 +20,12 @@ const createHTTPConfig = ({ format, level }) => (Object.assign({ customLogLevel:
21
20
  return log_level_enum_1.LogLevel.ERROR;
22
21
  return log_level_enum_1.LogLevel.INFO;
23
22
  }, wrapSerializers: true }, (0, ts_pattern_1.match)(format)
24
- .with(log_format_enum_1.LogFormat.INLINE, () => (Object.assign({ customSuccessMessage: (req, res) => `${(0, utils_1.getColorizer)(res)(`(${res.statusCode})`)} ${(0, colorette_1.white)(`${req.method} ${req.url}`)} ${(0, colorette_1.gray)(`(${req.socket.remoteAddress}:${req.socket.remotePort})`)}`, customErrorMessage: (req, res) => {
23
+ .with(log_format_enum_1.LogFormat.INLINE, () => (Object.assign({ customSuccessMessage: (req, res) => {
25
24
  var _a;
26
- return `${(0, utils_1.getColorizer)(res)(`(${res.statusCode})`)} ${(0, colorette_1.white)(`${req.method} ${req.url} -`)} ${(0, colorette_1.gray)(`(${req.socket.remoteAddress}:${req.socket.remotePort})`)} ${(_a = res.err) === null || _a === void 0 ? void 0 : _a.message}`;
25
+ return `${(0, utils_1.getColorizer)(res)(`(${res.statusCode})`)} ${(0, colorette_1.white)(`${req.method} ${(_a = req.originalUrl) !== null && _a !== void 0 ? _a : req.url}`)} ${(0, colorette_1.gray)(`(${req.socket.remoteAddress}:${req.socket.remotePort})`)}`;
26
+ }, customErrorMessage: (req, res) => {
27
+ var _a, _b;
28
+ return `${(0, utils_1.getColorizer)(res)(`(${res.statusCode})`)} ${(0, colorette_1.white)(`${req.method} ${(_a = req.originalUrl) !== null && _a !== void 0 ? _a : req.url}`)} ${(0, colorette_1.gray)(`(${req.socket.remoteAddress}:${req.socket.remotePort})`)} - ${(_b = res.err) === null || _b === void 0 ? void 0 : _b.message}`;
27
29
  } }, (0, inline_logger_1.createInlineConfig)(level))))
28
30
  .with(log_format_enum_1.LogFormat.DETAILED, () => (0, detailed_logger_1.createDetailedConfig)(level))
29
31
  .otherwise(() => (0, json_logger_1.createJSONConfig)(level))));
@@ -1 +1 @@
1
- {"version":3,"file":"http.logger.js","sourceRoot":"","sources":["../src/http.logger.ts"],"names":[],"mappings":";;;;;;AAAA,wDAAwD;AACxD,yCAAwC;AACxC,0DAA8C;AAC9C,2CAAmC;AAEnC,uDAAyD;AACzD,mDAAqD;AACrD,+CAAiD;AACjD,uDAA8C;AAC9C,qDAA4C;AAE5C,mCAAwE;AAEjE,MAAM,gBAAgB,GAAG,CAAC,EAAE,MAAM,EAAE,KAAK,EAAiB,EAAW,EAAE,CAAC,iBAC7E,cAAc,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;QAC5B,IAAI,IAAA,sBAAc,EAAC,GAAG,CAAC;YAAE,OAAO,yBAAQ,CAAC,IAAI,CAAC;QAC9C,IAAI,IAAA,uBAAe,EAAC,GAAG,CAAC;YAAE,OAAO,yBAAQ,CAAC,KAAK,CAAC;QAChD,OAAO,yBAAQ,CAAC,IAAI,CAAC;IACvB,CAAC,EACD,eAAe,EAAE,IAAI,IAElB,IAAA,kBAAK,EAAqB,MAAM,CAAC;KACjC,IAAI,CAAC,2BAAS,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,iBAC5B,oBAAoB,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CACjC,GAAG,IAAA,oBAAY,EAAC,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,UAAU,GAAG,CAAC,IAAI,IAAA,iBAAK,EAAC,GAAG,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,IAAA,gBAAI,EACtF,IAAI,GAAG,CAAC,MAAM,CAAC,aAAa,IAAI,GAAG,CAAC,MAAM,CAAC,UAAU,GAAG,CACzD,EAAE,EACL,kBAAkB,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;;QAC/B,OAAA,GAAG,IAAA,oBAAY,EAAC,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,UAAU,GAAG,CAAC,IAAI,IAAA,iBAAK,EAAC,GAAG,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,IAAA,gBAAI,EACxF,IAAI,GAAG,CAAC,MAAM,CAAC,aAAa,IAAI,GAAG,CAAC,MAAM,CAAC,UAAU,GAAG,CACzD,IAAI,MAAA,GAAG,CAAC,GAAG,0CAAE,OAAO,EAAE,CAAA;KAAA,IACtB,IAAA,kCAAkB,EAAC,KAAK,CAAC,EAC5B,CAAC;KACF,IAAI,CAAC,2BAAS,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAA,sCAAoB,EAAC,KAAK,CAAC,CAAC;KAC3D,SAAS,CAAC,GAAG,EAAE,CAAC,IAAA,8BAAgB,EAAC,KAAK,CAAC,CAAC,EAC3C,CAAC;AAtBU,QAAA,gBAAgB,oBAsB1B;AAEI,MAAM,gBAAgB,GAAG,CAAC,OAAsB,EAAE,EAAE,CAAC,IAAA,mBAAQ,EAAC,IAAA,wBAAgB,EAAC,OAAO,CAAC,CAAC,CAAC;AAAnF,QAAA,gBAAgB,oBAAmE"}
1
+ {"version":3,"file":"http.logger.js","sourceRoot":"","sources":["../src/http.logger.ts"],"names":[],"mappings":";;;;;;AAGA,yCAAwC;AACxC,0DAA8C;AAC9C,2CAAmC;AAEnC,uDAAyD;AACzD,mDAAqD;AACrD,+CAAiD;AACjD,uDAA8C;AAC9C,qDAA4C;AAE5C,mCAAwE;AAEjE,MAAM,gBAAgB,GAAG,CAAC,EAAE,MAAM,EAAE,KAAK,EAAiB,EAAW,EAAE,CAAC,iBAC7E,cAAc,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;QAC5B,IAAI,IAAA,sBAAc,EAAC,GAAG,CAAC;YAAE,OAAO,yBAAQ,CAAC,IAAI,CAAC;QAC9C,IAAI,IAAA,uBAAe,EAAC,GAAG,CAAC;YAAE,OAAO,yBAAQ,CAAC,KAAK,CAAC;QAChD,OAAO,yBAAQ,CAAC,IAAI,CAAC;IACvB,CAAC,EACD,eAAe,EAAE,IAAI,IAElB,IAAA,kBAAK,EAAiE,MAAM,CAAC;KAC7E,IAAI,CAAC,2BAAS,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,iBAC5B,oBAAoB,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;;QACjC,OAAA,GAAG,IAAA,oBAAY,EAAC,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,UAAU,GAAG,CAAC,IAAI,IAAA,iBAAK,EAAC,GAAG,GAAG,CAAC,MAAM,IAAI,MAAA,GAAG,CAAC,WAAW,mCAAI,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,IAAA,gBAAI,EACzG,IAAI,GAAG,CAAC,MAAM,CAAC,aAAa,IAAI,GAAG,CAAC,MAAM,CAAC,UAAU,GAAG,CACzD,EAAE,CAAA;KAAA,EACL,kBAAkB,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;;QAC/B,OAAA,GAAG,IAAA,oBAAY,EAAC,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,UAAU,GAAG,CAAC,IAAI,IAAA,iBAAK,EAAC,GAAG,GAAG,CAAC,MAAM,IAAI,MAAA,GAAG,CAAC,WAAW,mCAAI,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,IAAA,gBAAI,EACzG,IAAI,GAAG,CAAC,MAAM,CAAC,aAAa,IAAI,GAAG,CAAC,MAAM,CAAC,UAAU,GAAG,CACzD,MAAM,MAAA,GAAG,CAAC,GAAG,0CAAE,OAAO,EAAE,CAAA;KAAA,IACxB,IAAA,kCAAkB,EAAC,KAAK,CAAC,EAC5B,CAAC;KACF,IAAI,CAAC,2BAAS,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAA,sCAAoB,EAAC,KAAK,CAAC,CAAC;KAC3D,SAAS,CAAC,GAAG,EAAE,CAAC,IAAA,8BAAgB,EAAC,KAAK,CAAC,CAAC,EAC3C,CAAC;AAtBU,QAAA,gBAAgB,oBAsB1B;AAEI,MAAM,gBAAgB,GAAG,CAAC,OAAsB,EAAE,EAAE,CAAC,IAAA,mBAAQ,EAAC,IAAA,wBAAgB,EAAC,OAAO,CAAC,CAAC,CAAC;AAAnF,QAAA,gBAAgB,oBAAmE"}
@@ -1,24 +1,2 @@
1
- import { SerializedError, SerializedRequest, SerializedResponse } from 'pino';
2
- export declare const MaximalSerializer: {
3
- req: (req: SerializedRequest) => {
4
- id: string | undefined;
5
- method: string;
6
- url: string;
7
- query: Record<string, string>;
8
- params: Record<string, string>;
9
- headers: {
10
- [k: string]: string;
11
- };
12
- remoteAddress: string;
13
- remotePort: number;
14
- };
15
- res: (res: SerializedResponse) => {
16
- statusCode: number;
17
- headers: Record<string, string>;
18
- };
19
- err: (err: SerializedError) => {
20
- type: string;
21
- message: string;
22
- stack: string;
23
- };
24
- };
1
+ import type { Serializer } from './serializer.interface';
2
+ export declare const MaximalSerializer: Serializer;
@@ -1,25 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.MaximalSerializer = void 0;
4
+ const minimal_1 = require("./minimal");
4
5
  exports.MaximalSerializer = {
5
- req: (req) => ({
6
- id: req.id,
7
- method: req.method,
8
- url: req.url,
9
- query: req.query,
10
- params: req.params,
11
- headers: Object.fromEntries(Object.entries(req.headers).filter(([key]) => key === 'authorization')),
12
- remoteAddress: req.remoteAddress,
13
- remotePort: req.remotePort,
14
- }),
15
- res: (res) => ({
16
- statusCode: res.statusCode,
17
- headers: res.headers,
18
- }),
19
- err: (err) => ({
20
- type: err.type,
21
- message: err.message,
22
- stack: err.stack,
23
- }),
6
+ req: (req) => (Object.assign(Object.assign({}, minimal_1.MinimalSerializer.req(req)), { headers: Object.fromEntries(Object.entries(req.headers).filter(([key]) => key === 'authorization')) })),
7
+ res: (res) => (Object.assign(Object.assign({}, minimal_1.MinimalSerializer.res(res)), { headers: res.headers })),
8
+ err: (err) => minimal_1.MinimalSerializer.err(err),
24
9
  };
25
10
  //# sourceMappingURL=maximal.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"maximal.js","sourceRoot":"","sources":["../../src/serializers/maximal.ts"],"names":[],"mappings":";;;AAEa,QAAA,iBAAiB,GAAG;IAC/B,GAAG,EAAE,CAAC,GAAsB,EAAE,EAAE,CAAC,CAAC;QAChC,EAAE,EAAE,GAAG,CAAC,EAAE;QACV,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,GAAG,EAAE,GAAG,CAAC,GAAG;QACZ,KAAK,EAAE,GAAG,CAAC,KAAK;QAChB,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,OAAO,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,eAAe,CAAC,CAAC;QACnG,aAAa,EAAE,GAAG,CAAC,aAAa;QAChC,UAAU,EAAE,GAAG,CAAC,UAAU;KAC3B,CAAC;IACF,GAAG,EAAE,CAAC,GAAuB,EAAE,EAAE,CAAC,CAAC;QACjC,UAAU,EAAE,GAAG,CAAC,UAAU;QAC1B,OAAO,EAAE,GAAG,CAAC,OAAO;KACrB,CAAC;IACF,GAAG,EAAE,CAAC,GAAoB,EAAE,EAAE,CAAC,CAAC;QAC9B,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,OAAO,EAAE,GAAG,CAAC,OAAO;QACpB,KAAK,EAAE,GAAG,CAAC,KAAK;KACjB,CAAC;CACH,CAAC"}
1
+ {"version":3,"file":"maximal.js","sourceRoot":"","sources":["../../src/serializers/maximal.ts"],"names":[],"mappings":";;;AAAA,uCAA8C;AAGjC,QAAA,iBAAiB,GAAe;IAC3C,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,iCACT,2BAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,KAC7B,OAAO,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,eAAe,CAAC,CAAC,IACnG;IACF,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,iCACT,2BAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,KAC7B,OAAO,EAAE,GAAG,CAAC,OAAO,IACpB;IACF,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,2BAAiB,CAAC,GAAG,CAAC,GAAG,CAAC;CACzC,CAAC"}
@@ -1,19 +1,2 @@
1
- import { SerializedError, SerializedRequest, SerializedResponse } from 'pino';
2
- export declare const MinimalSerializer: {
3
- req: (req: SerializedRequest) => {
4
- method: string;
5
- url: string;
6
- query: Record<string, string>;
7
- params: Record<string, string>;
8
- remoteAddress: string;
9
- remotePort: number;
10
- };
11
- res: (res: SerializedResponse) => {
12
- statusCode: number;
13
- };
14
- err: (err: SerializedError) => {
15
- type: string;
16
- message: string;
17
- stack: string;
18
- };
19
- };
1
+ import type { Serializer } from './serializer.interface';
2
+ export declare const MinimalSerializer: Serializer;
@@ -2,14 +2,17 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.MinimalSerializer = void 0;
4
4
  exports.MinimalSerializer = {
5
- req: (req) => ({
6
- method: req.method,
7
- url: req.url,
8
- query: req.query,
9
- params: req.params,
10
- remoteAddress: req.remoteAddress,
11
- remotePort: req.remotePort,
12
- }),
5
+ req: (req) => {
6
+ var _a;
7
+ return ({
8
+ method: req.method,
9
+ url: (_a = req.raw.originalUrl) !== null && _a !== void 0 ? _a : req.url,
10
+ query: req.query,
11
+ params: req.params,
12
+ remoteAddress: req.remoteAddress,
13
+ remotePort: req.remotePort,
14
+ });
15
+ },
13
16
  res: (res) => ({
14
17
  statusCode: res.statusCode,
15
18
  }),
@@ -1 +1 @@
1
- {"version":3,"file":"minimal.js","sourceRoot":"","sources":["../../src/serializers/minimal.ts"],"names":[],"mappings":";;;AAEa,QAAA,iBAAiB,GAAG;IAC/B,GAAG,EAAE,CAAC,GAAsB,EAAE,EAAE,CAAC,CAAC;QAChC,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,GAAG,EAAE,GAAG,CAAC,GAAG;QACZ,KAAK,EAAE,GAAG,CAAC,KAAK;QAChB,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,aAAa,EAAE,GAAG,CAAC,aAAa;QAChC,UAAU,EAAE,GAAG,CAAC,UAAU;KAC3B,CAAC;IACF,GAAG,EAAE,CAAC,GAAuB,EAAE,EAAE,CAAC,CAAC;QACjC,UAAU,EAAE,GAAG,CAAC,UAAU;KAC3B,CAAC;IACF,GAAG,EAAE,CAAC,GAAoB,EAAE,EAAE,CAAC,CAAC;QAC9B,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,OAAO,EAAE,GAAG,CAAC,OAAO;QACpB,KAAK,EAAE,GAAG,CAAC,KAAK;KACjB,CAAC;CACH,CAAC"}
1
+ {"version":3,"file":"minimal.js","sourceRoot":"","sources":["../../src/serializers/minimal.ts"],"names":[],"mappings":";;;AAEa,QAAA,iBAAiB,GAAe;IAC3C,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE;;QAAC,OAAA,CAAC;YACb,MAAM,EAAE,GAAG,CAAC,MAAM;YAClB,GAAG,EAAE,MAAA,GAAG,CAAC,GAAG,CAAC,WAAW,mCAAI,GAAG,CAAC,GAAG;YACnC,KAAK,EAAE,GAAG,CAAC,KAAK;YAChB,MAAM,EAAE,GAAG,CAAC,MAAM;YAClB,aAAa,EAAE,GAAG,CAAC,aAAa;YAChC,UAAU,EAAE,GAAG,CAAC,UAAU;SAC3B,CAAC,CAAA;KAAA;IACF,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QACb,UAAU,EAAE,GAAG,CAAC,UAAU;KAC3B,CAAC;IACF,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QACb,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,OAAO,EAAE,GAAG,CAAC,OAAO;QACpB,KAAK,EAAE,GAAG,CAAC,KAAK;KACjB,CAAC;CACH,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { SerializedError, SerializedRequest, SerializedResponse } from 'pino';
2
+ export declare type Serializer = {
3
+ req(req: SerializedRequest & {
4
+ raw: SerializedRequest['raw'] & {
5
+ originalUrl?: string;
6
+ };
7
+ }): any;
8
+ res(res: SerializedResponse): any;
9
+ err(err: SerializedError): any;
10
+ };
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=serializer.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serializer.interface.js","sourceRoot":"","sources":["../../src/serializers/serializer.interface.ts"],"names":[],"mappings":""}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@voiceflow/logger",
3
3
  "description": "Common logger for Voiceflow backend microservices",
4
- "version": "2.2.0",
4
+ "version": "2.3.0",
5
5
  "author": "Frank Gu <frank@voiceflow.com>",
6
6
  "bugs": {
7
7
  "url": "https://github.com/voiceflow/logger/issues"
@@ -44,10 +44,14 @@
44
44
  "mocha": "10.0.0",
45
45
  "nyc": "^15.1.0",
46
46
  "prettier": "2.7.1",
47
+ "rimraf": "5.0.0",
47
48
  "ts-mocha": "10.0.0",
48
49
  "tsc-alias": "1.7.0",
49
50
  "typescript": "4.8.3"
50
51
  },
52
+ "engines": {
53
+ "node": "20"
54
+ },
51
55
  "files": [
52
56
  "build/"
53
57
  ],
@@ -57,11 +61,12 @@
57
61
  ],
58
62
  "license": "ISC",
59
63
  "main": "build/main.js",
64
+ "packageManager": "yarn@3.2.1",
60
65
  "prettier": "@voiceflow/prettier-config",
61
66
  "repository": "git@github.com:voiceflow/logger.git",
62
67
  "scripts": {
63
68
  "build": "yarn clean && tsc -p tsconfig.build.json && tsc-alias -p tsconfig.build.json",
64
- "clean": "rimraf build",
69
+ "clean": "yarn rimraf build",
65
70
  "commit": "cz",
66
71
  "eslint-output": "eslint-output",
67
72
  "lint": "eslint '**/*.{js,ts}'",
@@ -75,5 +80,9 @@
75
80
  "test:single": "NODE_ENV=test ts-mocha --paths --config ./config/test/.mocharc.yml",
76
81
  "test:unit": "NODE_ENV=test nyc --report-dir=nyc_coverage_unit ts-mocha --paths --config ./config/test/.mocharc.yml 'test/**/*.unit.ts'"
77
82
  },
78
- "types": "build/main.d.ts"
83
+ "types": "build/main.d.ts",
84
+ "volta": {
85
+ "node": "20.10.0",
86
+ "yarn": "3.2.1"
87
+ }
79
88
  }