@voiceflow/logger 2.4.0 → 2.4.2-alpha.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 +1 @@
1
- {"version":3,"file":"http.logger.d.ts","sourceRoot":"","sources":["../../src/http.logger.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAGjD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AASzC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAGhE,eAAO,MAAM,gBAAgB,sBAAuB,aAAa,KAAG,OAuBlE,CAAC;AAEH,eAAO,MAAM,gBAAgB,YAAa,aAAa,2GAAwC,CAAC"}
1
+ {"version":3,"file":"http.logger.d.ts","sourceRoot":"","sources":["../../src/http.logger.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAIjD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AASzC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAGhE,eAAO,MAAM,gBAAgB,sBAAuB,aAAa,KAAG,OAoClE,CAAC;AAEH,eAAO,MAAM,gBAAgB,YAAa,aAAa,2GAAwC,CAAC"}
@@ -5,6 +5,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.createHTTPLogger = exports.createHTTPConfig = void 0;
7
7
  const colorette_1 = require("colorette");
8
+ const dd_trace_1 = __importDefault(require("dd-trace"));
8
9
  const pino_http_1 = __importDefault(require("pino-http"));
9
10
  const ts_pattern_1 = require("ts-pattern");
10
11
  const detailed_logger_1 = require("./detailed.logger");
@@ -14,6 +15,17 @@ const log_format_enum_1 = require("./log-format.enum");
14
15
  const log_level_enum_1 = require("./log-level.enum");
15
16
  const utils_1 = require("./utils");
16
17
  const createHTTPConfig = ({ format, level }) => ({
18
+ serializers: {
19
+ req(req) {
20
+ const span = dd_trace_1.default.scope().active();
21
+ if (!span) {
22
+ return req;
23
+ }
24
+ req.trace_id = span.context().toTraceId();
25
+ req.span_id = span.context().toSpanId();
26
+ return req;
27
+ },
28
+ },
17
29
  customLogLevel: (req, res) => {
18
30
  if ((0, utils_1.isWarnResponse)(res))
19
31
  return log_level_enum_1.LogLevel.WARN;
@@ -1 +1 @@
1
- {"version":3,"file":"http.logger.js","sourceRoot":"","sources":["../../src/http.logger.ts"],"names":[],"mappings":";;;;;;AAGA,yCAAwC;AAExC,0DAAiC;AACjC,2CAAmC;AAEnC,uDAAyD;AACzD,mDAAqD;AACrD,+CAAiD;AACjD,uDAA8C;AAC9C,qDAA4C;AAE5C,mCAAyF;AAElF,MAAM,gBAAgB,GAAG,CAAC,EAAE,MAAM,EAAE,KAAK,EAAiB,EAAW,EAAE,CAAC,CAAC;IAC9E,cAAc,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QAC3B,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,IAAI,IAAA,uBAAe,EAAC,GAAG,CAAC;YAAE,OAAO,yBAAQ,CAAC,KAAK,CAAC;QAChD,OAAO,yBAAQ,CAAC,KAAK,CAAC;IACxB,CAAC;IACD,eAAe,EAAE,IAAI;IAErB,GAAG,IAAA,kBAAK,EAAiE,MAAM,CAAC;SAC7E,IAAI,CAAC,2BAAS,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;QAC7B,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,WAAW,IAAI,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,IAAA,gBAAI,EACzG,IAAI,GAAG,CAAC,MAAM,CAAC,aAAa,IAAI,GAAG,CAAC,MAAM,CAAC,UAAU,GAAG,CACzD,EAAE;QACL,kBAAkB,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAC/B,GAAG,IAAA,oBAAY,EAAC,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,UAAU,GAAG,CAAC,IAAI,IAAA,iBAAK,EAAC,GAAG,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,WAAW,IAAI,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,IAAA,gBAAI,EACzG,IAAI,GAAG,CAAC,MAAM,CAAC,aAAa,IAAI,GAAG,CAAC,MAAM,CAAC,UAAU,GAAG,CACzD,MAAM,GAAG,CAAC,GAAG,EAAE,OAAO,EAAE;QAC3B,GAAG,IAAA,kCAAkB,EAAC,KAAK,CAAC;KAC7B,CAAC,CAAC;SACF,IAAI,CAAC,2BAAS,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAA,sCAAoB,EAAC,KAAK,CAAC,CAAC;SAC3D,SAAS,CAAC,GAAG,EAAE,CAAC,IAAA,8BAAgB,EAAC,KAAK,CAAC,CAAC;CAC5C,CAAC,CAAC;AAvBU,QAAA,gBAAgB,oBAuB1B;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,wDAA8B;AAE9B,0DAAiC;AACjC,2CAAmC;AAEnC,uDAAyD;AACzD,mDAAqD;AACrD,+CAAiD;AACjD,uDAA8C;AAC9C,qDAA4C;AAE5C,mCAAyF;AAElF,MAAM,gBAAgB,GAAG,CAAC,EAAE,MAAM,EAAE,KAAK,EAAiB,EAAW,EAAE,CAAC,CAAC;IAC9E,WAAW,EAAE;QACX,GAAG,CAAC,GAAG;YACL,MAAM,IAAI,GAAG,kBAAM,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,CAAC;YACrC,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,OAAO,GAAG,CAAC;YACb,CAAC;YAED,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,SAAS,EAAE,CAAC;YAC1C,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC;YAExC,OAAO,GAAG,CAAC;QACb,CAAC;KACF;IACD,cAAc,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QAC3B,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,IAAI,IAAA,uBAAe,EAAC,GAAG,CAAC;YAAE,OAAO,yBAAQ,CAAC,KAAK,CAAC;QAChD,OAAO,yBAAQ,CAAC,KAAK,CAAC;IACxB,CAAC;IACD,eAAe,EAAE,IAAI;IAErB,GAAG,IAAA,kBAAK,EAAiE,MAAM,CAAC;SAC7E,IAAI,CAAC,2BAAS,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;QAC7B,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,WAAW,IAAI,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,IAAA,gBAAI,EACzG,IAAI,GAAG,CAAC,MAAM,CAAC,aAAa,IAAI,GAAG,CAAC,MAAM,CAAC,UAAU,GAAG,CACzD,EAAE;QACL,kBAAkB,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAC/B,GAAG,IAAA,oBAAY,EAAC,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,UAAU,GAAG,CAAC,IAAI,IAAA,iBAAK,EAAC,GAAG,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,WAAW,IAAI,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,IAAA,gBAAI,EACzG,IAAI,GAAG,CAAC,MAAM,CAAC,aAAa,IAAI,GAAG,CAAC,MAAM,CAAC,UAAU,GAAG,CACzD,MAAM,GAAG,CAAC,GAAG,EAAE,OAAO,EAAE;QAC3B,GAAG,IAAA,kCAAkB,EAAC,KAAK,CAAC;KAC7B,CAAC,CAAC;SACF,IAAI,CAAC,2BAAS,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAA,sCAAoB,EAAC,KAAK,CAAC,CAAC;SAC3D,SAAS,CAAC,GAAG,EAAE,CAAC,IAAA,8BAAgB,EAAC,KAAK,CAAC,CAAC;CAC5C,CAAC,CAAC;AApCU,QAAA,gBAAgB,oBAoC1B;AAEI,MAAM,gBAAgB,GAAG,CAAC,OAAsB,EAAE,EAAE,CAAC,IAAA,mBAAQ,EAAC,IAAA,wBAAgB,EAAC,OAAO,CAAC,CAAC,CAAC;AAAnF,QAAA,gBAAgB,oBAAmE"}
@@ -1 +1 @@
1
- {"version":3,"file":"http.logger.d.ts","sourceRoot":"","sources":["../../src/http.logger.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAGjD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AASzC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAGhE,eAAO,MAAM,gBAAgB,sBAAuB,aAAa,KAAG,OAuBlE,CAAC;AAEH,eAAO,MAAM,gBAAgB,YAAa,aAAa,2GAAwC,CAAC"}
1
+ {"version":3,"file":"http.logger.d.ts","sourceRoot":"","sources":["../../src/http.logger.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAIjD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AASzC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAGhE,eAAO,MAAM,gBAAgB,sBAAuB,aAAa,KAAG,OAoClE,CAAC;AAEH,eAAO,MAAM,gBAAgB,YAAa,aAAa,2GAAwC,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import { gray, white } from 'colorette';
2
+ import tracer from 'dd-trace';
2
3
  import pinoHttp from 'pino-http';
3
4
  import { match } from 'ts-pattern';
4
5
  import { createDetailedConfig } from './detailed.logger.js';
@@ -8,6 +9,17 @@ import { LogFormat } from './log-format.enum.js';
8
9
  import { LogLevel } from './log-level.enum.js';
9
10
  import { getColorizer, isErrorResponse, isHealthRequest, isWarnResponse } from './utils.js';
10
11
  export const createHTTPConfig = ({ format, level }) => ({
12
+ serializers: {
13
+ req(req) {
14
+ const span = tracer.scope().active();
15
+ if (!span) {
16
+ return req;
17
+ }
18
+ req.trace_id = span.context().toTraceId();
19
+ req.span_id = span.context().toSpanId();
20
+ return req;
21
+ },
22
+ },
11
23
  customLogLevel: (req, res) => {
12
24
  if (isWarnResponse(res))
13
25
  return LogLevel.WARN;
@@ -1 +1 @@
1
- {"version":3,"file":"http.logger.js","sourceRoot":"","sources":["../../src/http.logger.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC;AAExC,OAAO,QAAQ,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAE5C,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAEzF,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,EAAE,MAAM,EAAE,KAAK,EAAiB,EAAW,EAAE,CAAC,CAAC;IAC9E,cAAc,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QAC3B,IAAI,cAAc,CAAC,GAAG,CAAC;YAAE,OAAO,QAAQ,CAAC,IAAI,CAAC;QAC9C,IAAI,eAAe,CAAC,GAAG,CAAC;YAAE,OAAO,QAAQ,CAAC,KAAK,CAAC;QAChD,IAAI,eAAe,CAAC,GAAG,CAAC;YAAE,OAAO,QAAQ,CAAC,KAAK,CAAC;QAChD,OAAO,QAAQ,CAAC,KAAK,CAAC;IACxB,CAAC;IACD,eAAe,EAAE,IAAI;IAErB,GAAG,KAAK,CAAiE,MAAM,CAAC;SAC7E,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;QAC7B,oBAAoB,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CACjC,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,UAAU,GAAG,CAAC,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,WAAW,IAAI,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,IAAI,CACzG,IAAI,GAAG,CAAC,MAAM,CAAC,aAAa,IAAI,GAAG,CAAC,MAAM,CAAC,UAAU,GAAG,CACzD,EAAE;QACL,kBAAkB,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAC/B,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,UAAU,GAAG,CAAC,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,WAAW,IAAI,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,IAAI,CACzG,IAAI,GAAG,CAAC,MAAM,CAAC,aAAa,IAAI,GAAG,CAAC,MAAM,CAAC,UAAU,GAAG,CACzD,MAAM,GAAG,CAAC,GAAG,EAAE,OAAO,EAAE;QAC3B,GAAG,kBAAkB,CAAC,KAAK,CAAC;KAC7B,CAAC,CAAC;SACF,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;SAC3D,SAAS,CAAC,GAAG,EAAE,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;CAC5C,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,OAAsB,EAAE,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"http.logger.js","sourceRoot":"","sources":["../../src/http.logger.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@voiceflow/logger",
3
- "version": "2.4.0",
3
+ "version": "2.4.2-alpha.0",
4
4
  "license": "ISC",
5
5
  "main": "build/cjs/main.js",
6
6
  "module": "build/esm/main.js",
@@ -43,5 +43,5 @@
43
43
  "publishConfig": {
44
44
  "access": "public"
45
45
  },
46
- "gitHead": "9c1f666432051784d62c2f739df21028c3956518"
46
+ "stableVersion": "2.4.1"
47
47
  }