@lark-apaas/nestjs-logger 1.0.2-alpha.17 → 1.0.2-alpha.18

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/dist/index.js CHANGED
@@ -63663,10 +63663,14 @@ import { Global, Module } from "@nestjs/common";
63663
63663
  // ../observable-server/dist/index.js
63664
63664
  var import_sdk_node = __toESM(require_src12(), 1);
63665
63665
  init_esm6();
63666
+ var import_sdk_trace_node = __toESM(require_src2(), 1);
63666
63667
  init_esm5();
63668
+ init_esm();
63667
63669
  init_esm4();
63668
63670
  init_esm3();
63669
- import { Injectable } from "@nestjs/common";
63671
+ init_esm4();
63672
+ init_esm3();
63673
+ init_esm();
63670
63674
  import { randomBytes } from "crypto";
63671
63675
  var __defProp = Object.defineProperty;
63672
63676
  var __name2 = /* @__PURE__ */ __name((target, value) => __defProp(target, "name", {
@@ -63729,6 +63733,11 @@ var AppEnv = /* @__PURE__ */ (function(AppEnv2) {
63729
63733
  AppEnv2["Prod"] = "runtime";
63730
63734
  return AppEnv2;
63731
63735
  })({});
63736
+ var defaultResourceAttr = {
63737
+ "sdk_version": "1.0.1-alpha.18",
63738
+ "sdk_type": "client-backend",
63739
+ "sdk_language": "node"
63740
+ };
63732
63741
  var safeStringify = /* @__PURE__ */ __name2((obj) => {
63733
63742
  try {
63734
63743
  return JSON.stringify(obj);
@@ -63745,19 +63754,6 @@ function convertAttributesToString(attributes) {
63745
63754
  }
63746
63755
  __name(convertAttributesToString, "convertAttributesToString");
63747
63756
  __name2(convertAttributesToString, "convertAttributesToString");
63748
- function _ts_decorate(decorators, target, key, desc) {
63749
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
63750
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
63751
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
63752
- return c > 3 && r && Object.defineProperty(target, key, r), r;
63753
- }
63754
- __name(_ts_decorate, "_ts_decorate");
63755
- __name2(_ts_decorate, "_ts_decorate");
63756
- function _ts_metadata(k, v) {
63757
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
63758
- }
63759
- __name(_ts_metadata, "_ts_metadata");
63760
- __name2(_ts_metadata, "_ts_metadata");
63761
63757
  var CustomExporter = class {
63762
63758
  static {
63763
63759
  __name(this, "CustomExporter");
@@ -63775,30 +63771,145 @@ var CustomExporter = class {
63775
63771
  uuid: idGenerator.generateTraceId(),
63776
63772
  app_env: isDev ? AppEnv.Dev : AppEnv.Prod
63777
63773
  };
63778
- const otlpLikeStructure = {
63779
- resource: {
63780
- // 合并 OTel Resource(此处暂留空,真实场景可由 sdk.resource 提供)
63781
- attributes: {}
63782
- },
63783
- logRecords: logs2.map((log) => {
63784
- const rawAttributes = {
63785
- ...defaultAttributes,
63786
- ...log.attributes ?? {}
63787
- };
63788
- const attributes = convertAttributesToString(rawAttributes);
63789
- return {
63790
- timeUnixNano: hrTimeToNanosNumber(log.hrTime),
63791
- observedTimeUnixNano: hrTimeToNanosNumber(log.hrTimeObserved),
63792
- severityNumber: log.severityNumber,
63793
- severityText: log.severityText,
63794
- body: log.body,
63795
- attributes,
63796
- traceId: log.spanContext?.traceId,
63797
- spanId: log.spanContext?.spanId
63798
- };
63799
- })
63774
+ const otlpLikeStructures = logs2.map((log) => {
63775
+ const rawAttributes = {
63776
+ ...defaultAttributes,
63777
+ ...log.attributes ?? {}
63778
+ };
63779
+ const attributes = convertAttributesToString(rawAttributes);
63780
+ return {
63781
+ resource: {
63782
+ attributes: {
63783
+ ...defaultResourceAttr
63784
+ }
63785
+ },
63786
+ logRecords: [
63787
+ {
63788
+ timeUnixNano: hrTimeToNanosNumber(log.hrTime),
63789
+ observedTimeUnixNano: hrTimeToNanosNumber(log.hrTimeObserved),
63790
+ severityNumber: log.severityNumber,
63791
+ severityText: log.severityText,
63792
+ body: log.body,
63793
+ attributes,
63794
+ traceId: log.spanContext?.traceId,
63795
+ spanId: log.spanContext?.spanId
63796
+ }
63797
+ ]
63798
+ };
63799
+ });
63800
+ otlpLikeStructures.forEach((structure) => {
63801
+ console.log(this.logPrefix + JSON.stringify(structure) + this.logSuffix);
63802
+ });
63803
+ resultCallback({
63804
+ code: ExportResultCode.SUCCESS
63805
+ });
63806
+ }
63807
+ async shutdown() {
63808
+ }
63809
+ };
63810
+ function mapSeverity(level) {
63811
+ switch (level.toLowerCase()) {
63812
+ case "trace":
63813
+ return SeverityNumber.TRACE;
63814
+ case "debug":
63815
+ return SeverityNumber.DEBUG;
63816
+ case "info":
63817
+ return SeverityNumber.INFO;
63818
+ case "warn":
63819
+ return SeverityNumber.WARN;
63820
+ case "error":
63821
+ return SeverityNumber.ERROR;
63822
+ case "fatal":
63823
+ return SeverityNumber.FATAL;
63824
+ default:
63825
+ return SeverityNumber.INFO;
63826
+ }
63827
+ }
63828
+ __name(mapSeverity, "mapSeverity");
63829
+ __name2(mapSeverity, "mapSeverity");
63830
+ function mapSeverityText(level) {
63831
+ switch (level.toLowerCase()) {
63832
+ case "trace":
63833
+ return "INFO";
63834
+ case "debug":
63835
+ return "DEBUG";
63836
+ case "info":
63837
+ return "INFO";
63838
+ case "warn":
63839
+ return "WARN";
63840
+ case "error":
63841
+ return "ERROR";
63842
+ case "fatal":
63843
+ return "ERROR";
63844
+ default:
63845
+ return "INFO";
63846
+ }
63847
+ }
63848
+ __name(mapSeverityText, "mapSeverityText");
63849
+ __name2(mapSeverityText, "mapSeverityText");
63850
+ var CustomTraceExporter = class {
63851
+ static {
63852
+ __name(this, "CustomTraceExporter");
63853
+ }
63854
+ static {
63855
+ __name2(this, "CustomTraceExporter");
63856
+ }
63857
+ tracePrefix = "force-trace-prefix";
63858
+ traceSuffix = "force-trace-suffix";
63859
+ requestContextService;
63860
+ constructor(contextProvider) {
63861
+ this.requestContextService = contextProvider;
63862
+ }
63863
+ export(spans, resultCallback) {
63864
+ const isDev = process.env.NODE_ENV === "development";
63865
+ const defaultAttributes = {
63866
+ uuid: idGenerator.generateTraceId(),
63867
+ app_env: isDev ? AppEnv.Dev : AppEnv.Prod
63800
63868
  };
63801
- console.log(this.logPrefix + JSON.stringify(otlpLikeStructure) + this.logSuffix);
63869
+ const ctx = this.requestContextService.getContext();
63870
+ const contextAttributes = ctx ? {
63871
+ user_id: ctx.userId,
63872
+ tenant_id: ctx.tenantId,
63873
+ app_id: ctx.appId,
63874
+ method: ctx.method,
63875
+ path: ctx.path
63876
+ } : {
63877
+ user_id: void 0,
63878
+ tenant_id: void 0,
63879
+ app_id: void 0
63880
+ };
63881
+ const otlpLikeStructures = spans.map((span) => {
63882
+ const rawAttributes = {
63883
+ ...defaultAttributes,
63884
+ ...contextAttributes,
63885
+ ...span.attributes ?? {}
63886
+ };
63887
+ const attributes = convertAttributesToString(rawAttributes);
63888
+ return {
63889
+ resource: {
63890
+ // 合并 OTel Resource(此处暂留空,真实场景可由 sdk.resource 提供)
63891
+ attributes: {
63892
+ ...defaultResourceAttr
63893
+ }
63894
+ },
63895
+ spans: [
63896
+ {
63897
+ startTimeUnixNano: hrTimeToNanosNumber(span.startTime),
63898
+ endTimeUnixNano: hrTimeToNanosNumber(span.endTime),
63899
+ name: span.name,
63900
+ attributes,
63901
+ traceId: span.spanContext().traceId,
63902
+ spanId: span.spanContext().spanId,
63903
+ parentSpanID: span.parentSpanContext?.spanId,
63904
+ status: span.status,
63905
+ spanKind: SpanKind.SERVER
63906
+ }
63907
+ ]
63908
+ };
63909
+ });
63910
+ otlpLikeStructures.forEach((structure) => {
63911
+ console.log(this.tracePrefix + JSON.stringify(structure) + this.traceSuffix);
63912
+ });
63802
63913
  resultCallback({
63803
63914
  code: ExportResultCode.SUCCESS
63804
63915
  });
@@ -63806,20 +63917,20 @@ var CustomExporter = class {
63806
63917
  async shutdown() {
63807
63918
  }
63808
63919
  };
63809
- CustomExporter = _ts_decorate([
63810
- Injectable(),
63811
- _ts_metadata("design:type", Function),
63812
- _ts_metadata("design:paramtypes", [])
63813
- ], CustomExporter);
63814
- var AppOTelLoggerSDK = class {
63920
+ var AppOTelSDK = class _AppOTelSDK {
63815
63921
  static {
63816
- __name(this, "AppOTelLoggerSDK");
63922
+ __name(this, "_AppOTelSDK");
63817
63923
  }
63818
63924
  static {
63819
- __name2(this, "AppOTelLoggerSDK");
63925
+ __name2(this, "AppOTelSDK");
63820
63926
  }
63821
63927
  sdk = null;
63822
63928
  logProcessor = null;
63929
+ spanProcessor = null;
63930
+ static CUSTOM_FORMAT_REGEX = /^[0-9a-fA-F]{32}-[0-9a-fA-F]{16}$/;
63931
+ contextProvider = {
63932
+ getContext: /* @__PURE__ */ __name2(() => ({}), "getContext")
63933
+ };
63823
63934
  start() {
63824
63935
  const resource = detectResources({
63825
63936
  detectors: [
@@ -63831,22 +63942,68 @@ var AppOTelLoggerSDK = class {
63831
63942
  scheduledDelayMillis: 2e3,
63832
63943
  maxExportBatchSize: 10
63833
63944
  });
63945
+ const traceExporter = new CustomTraceExporter(this.contextProvider);
63946
+ this.spanProcessor = new import_sdk_trace_node.BatchSpanProcessor(traceExporter, {
63947
+ scheduledDelayMillis: 1e3,
63948
+ maxExportBatchSize: 1
63949
+ });
63834
63950
  this.sdk = new import_sdk_node.NodeSDK({
63835
63951
  resource,
63836
63952
  logRecordProcessor: this.logProcessor,
63837
- traceExporter: void 0
63953
+ spanProcessor: this.spanProcessor
63838
63954
  });
63839
63955
  this.sdk.start();
63840
63956
  }
63841
63957
  /**
63842
- * 用户使用的日志接口
63843
- * 自动合并请求级上下文(由 ContextProvider 提供)
63958
+ * [框架专用 API] 开启一个根 Span (Root Span)
63959
+ * 该方法专供 Middleware/Interceptor 使用,不建议用户直接调用
63960
+ */
63961
+ startContext(headers, name, fn) {
63962
+ const carrier = {};
63963
+ const customTraceId = headers["x-apaas-observability"];
63964
+ if (customTraceId && _AppOTelSDK.CUSTOM_FORMAT_REGEX.test(customTraceId)) {
63965
+ carrier["traceparent"] = `00-${customTraceId}-01`;
63966
+ } else {
63967
+ carrier["traceparent"] = `00-${idGenerator.generateTraceId()}-${idGenerator.generateSpanId()}-01`;
63968
+ }
63969
+ const activeContext = propagation.extract(context.active(), carrier);
63970
+ const tracer = trace.getTracer("app-core");
63971
+ tracer.startActiveSpan(name, {}, activeContext, (span) => {
63972
+ fn(span);
63973
+ });
63974
+ }
63975
+ /**
63976
+ * [用户专用 API] 手动打点 (Child Span)
63977
+ * 用户在 Service 中调用此方法,会自动挂载到 Middleware 创建的 Root Span 下
63978
+ */
63979
+ async trace(name, fn) {
63980
+ const tracer = trace.getTracer("user-trace");
63981
+ return tracer.startActiveSpan(name, async (span) => {
63982
+ try {
63983
+ const res = await fn(span);
63984
+ span.setStatus({
63985
+ code: SpanStatusCode.OK
63986
+ });
63987
+ return res;
63988
+ } catch (e) {
63989
+ span.recordException(e);
63990
+ span.setStatus({
63991
+ code: SpanStatusCode.ERROR
63992
+ });
63993
+ throw e;
63994
+ } finally {
63995
+ span.end();
63996
+ }
63997
+ });
63998
+ }
63999
+ /**
64000
+ * [Log API] 自动关联 TraceContext
63844
64001
  */
63845
64002
  log(level, message, extra = {}) {
63846
64003
  const logger2 = logs.getLogger("app-logger");
63847
- const severityNumber = this.mapSeverity(level);
63848
- const severityText = this.mapSeverityText(level);
63849
- const mergedAttributes = {
64004
+ const severityNumber = mapSeverity(level);
64005
+ const severityText = mapSeverityText(level);
64006
+ const attributes = {
63850
64007
  ...extra || {},
63851
64008
  pid: process.pid
63852
64009
  };
@@ -63854,76 +64011,65 @@ var AppOTelLoggerSDK = class {
63854
64011
  body: message,
63855
64012
  severityNumber,
63856
64013
  severityText,
63857
- attributes: mergedAttributes,
63858
- timestamp: /* @__PURE__ */ new Date()
64014
+ attributes,
64015
+ timestamp: /* @__PURE__ */ new Date(),
64016
+ // 自动关联当前上下文
64017
+ context: context.active()
63859
64018
  });
63860
64019
  }
64020
+ /**
64021
+ * [框架专用] 强制刷新
64022
+ */
63861
64023
  async flush() {
63862
- if (this.logProcessor) {
63863
- await this.logProcessor.forceFlush();
63864
- }
63865
- }
63866
- mapSeverity(level) {
63867
- switch (level.toLowerCase()) {
63868
- case "trace":
63869
- return SeverityNumber.TRACE;
63870
- case "debug":
63871
- return SeverityNumber.DEBUG;
63872
- case "info":
63873
- return SeverityNumber.INFO;
63874
- case "warn":
63875
- return SeverityNumber.WARN;
63876
- case "error":
63877
- return SeverityNumber.ERROR;
63878
- case "fatal":
63879
- return SeverityNumber.FATAL;
63880
- default:
63881
- return SeverityNumber.INFO;
63882
- }
63883
- }
63884
- mapSeverityText(level) {
63885
- switch (level.toLowerCase()) {
63886
- case "trace":
63887
- return "INFO";
63888
- case "debug":
63889
- return "DEBUG";
63890
- case "info":
63891
- return "INFO";
63892
- case "warn":
63893
- return "WARN";
63894
- case "error":
63895
- return "ERROR";
63896
- case "fatal":
63897
- return "ERROR";
63898
- default:
63899
- return "INFO";
63900
- }
64024
+ await Promise.all([
64025
+ this.logProcessor?.forceFlush(),
64026
+ this.spanProcessor?.forceFlush()
64027
+ ]);
63901
64028
  }
63902
64029
  };
63903
- var appSdk = new AppOTelLoggerSDK();
64030
+ var appSdk = new AppOTelSDK();
64031
+ function Trace(name) {
64032
+ return function(target, propertyKey, descriptor) {
64033
+ const originalMethod = descriptor.value;
64034
+ if (!originalMethod) {
64035
+ return descriptor;
64036
+ }
64037
+ descriptor.value = async function(...args) {
64038
+ const spanName = name || `${target?.constructor?.name}.${String(propertyKey)}`;
64039
+ return await appSdk.trace(spanName, async (_) => {
64040
+ const result = await originalMethod.apply(this, args);
64041
+ return result;
64042
+ });
64043
+ };
64044
+ return descriptor;
64045
+ };
64046
+ }
64047
+ __name(Trace, "Trace");
64048
+ __name2(Trace, "Trace");
63904
64049
 
63905
64050
  // ../nestjs-observable/dist/index.js
63906
64051
  import { CommonModule } from "@lark-apaas/nestjs-common";
63907
- import { Injectable as Injectable2 } from "@nestjs/common";
64052
+ import { Injectable } from "@nestjs/common";
63908
64053
  import { RequestContextService } from "@lark-apaas/nestjs-common";
64054
+ import { Injectable as Injectable2 } from "@nestjs/common";
63909
64055
  var __defProp2 = Object.defineProperty;
63910
64056
  var __name3 = /* @__PURE__ */ __name((target, value) => __defProp2(target, "name", {
63911
64057
  value,
63912
64058
  configurable: true
63913
64059
  }), "__name");
63914
- function _ts_decorate2(decorators, target, key, desc) {
64060
+ function _ts_decorate(decorators, target, key, desc) {
63915
64061
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
63916
64062
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
63917
64063
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
63918
64064
  return c > 3 && r && Object.defineProperty(target, key, r), r;
63919
64065
  }
63920
- __name(_ts_decorate2, "_ts_decorate");
63921
- __name3(_ts_decorate2, "_ts_decorate");
63922
- function _ts_metadata2(k, v) {
64066
+ __name(_ts_decorate, "_ts_decorate");
64067
+ __name3(_ts_decorate, "_ts_decorate");
64068
+ function _ts_metadata(k, v) {
63923
64069
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
63924
64070
  }
63925
- __name(_ts_metadata2, "_ts_metadata");
63926
- __name3(_ts_metadata2, "_ts_metadata");
64071
+ __name(_ts_metadata, "_ts_metadata");
64072
+ __name3(_ts_metadata, "_ts_metadata");
63927
64073
  var ObservableService = class {
63928
64074
  static {
63929
64075
  __name(this, "ObservableService");
@@ -63943,31 +64089,35 @@ var ObservableService = class {
63943
64089
  ...attributes
63944
64090
  });
63945
64091
  }
64092
+ /** 记录链路 */
64093
+ trace(name, fn) {
64094
+ return appSdk.trace(name, fn);
64095
+ }
63946
64096
  /** 手动刷新(FaaS/请求结束时可调用) */
63947
64097
  async flush() {
63948
64098
  await appSdk.flush();
63949
64099
  }
63950
64100
  };
63951
- ObservableService = _ts_decorate2([
63952
- Injectable2(),
63953
- _ts_metadata2("design:type", Function),
63954
- _ts_metadata2("design:paramtypes", [
64101
+ ObservableService = _ts_decorate([
64102
+ Injectable(),
64103
+ _ts_metadata("design:type", Function),
64104
+ _ts_metadata("design:paramtypes", [
63955
64105
  typeof RequestContextService === "undefined" ? Object : RequestContextService
63956
64106
  ])
63957
64107
  ], ObservableService);
63958
- function _ts_decorate22(decorators, target, key, desc) {
64108
+ function _ts_decorate2(decorators, target, key, desc) {
63959
64109
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
63960
64110
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
63961
64111
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
63962
64112
  return c > 3 && r && Object.defineProperty(target, key, r), r;
63963
64113
  }
63964
- __name(_ts_decorate22, "_ts_decorate2");
63965
- __name3(_ts_decorate22, "_ts_decorate");
63966
- function _ts_metadata22(k, v) {
64114
+ __name(_ts_decorate2, "_ts_decorate2");
64115
+ __name3(_ts_decorate2, "_ts_decorate");
64116
+ function _ts_metadata2(k, v) {
63967
64117
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
63968
64118
  }
63969
- __name(_ts_metadata22, "_ts_metadata2");
63970
- __name3(_ts_metadata22, "_ts_metadata");
64119
+ __name(_ts_metadata2, "_ts_metadata2");
64120
+ __name3(_ts_metadata2, "_ts_metadata");
63971
64121
  var NestjsObservableModule = class _NestjsObservableModule {
63972
64122
  static {
63973
64123
  __name(this, "_NestjsObservableModule");
@@ -63987,7 +64137,7 @@ var NestjsObservableModule = class _NestjsObservableModule {
63987
64137
  appSdk.start();
63988
64138
  }
63989
64139
  };
63990
- NestjsObservableModule = _ts_decorate22([
64140
+ NestjsObservableModule = _ts_decorate2([
63991
64141
  Global(),
63992
64142
  Module({
63993
64143
  imports: [
@@ -64000,18 +64150,71 @@ NestjsObservableModule = _ts_decorate22([
64000
64150
  ObservableService
64001
64151
  ]
64002
64152
  }),
64003
- _ts_metadata22("design:type", Function),
64004
- _ts_metadata22("design:paramtypes", [])
64153
+ _ts_metadata2("design:type", Function),
64154
+ _ts_metadata2("design:paramtypes", [])
64005
64155
  ], NestjsObservableModule);
64156
+ var SpanStatusCode2;
64157
+ (function(SpanStatusCode22) {
64158
+ SpanStatusCode22[SpanStatusCode22["UNSET"] = 0] = "UNSET";
64159
+ SpanStatusCode22[SpanStatusCode22["OK"] = 1] = "OK";
64160
+ SpanStatusCode22[SpanStatusCode22["ERROR"] = 2] = "ERROR";
64161
+ })(SpanStatusCode2 || (SpanStatusCode2 = {}));
64162
+ function _ts_decorate3(decorators, target, key, desc) {
64163
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
64164
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
64165
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
64166
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
64167
+ }
64168
+ __name(_ts_decorate3, "_ts_decorate3");
64169
+ __name3(_ts_decorate3, "_ts_decorate");
64170
+ var ObservableTraceMiddleware = class {
64171
+ static {
64172
+ __name(this, "ObservableTraceMiddleware");
64173
+ }
64174
+ static {
64175
+ __name3(this, "ObservableTraceMiddleware");
64176
+ }
64177
+ use(req, res, next) {
64178
+ const spanName = `${req.method} ${req.originalUrl || req.url}`;
64179
+ appSdk.startContext(req.headers, spanName, (span) => {
64180
+ res.on("finish", () => {
64181
+ const status = res.statusCode;
64182
+ span.setAttribute("http_status_code", status);
64183
+ if (status >= 500) {
64184
+ span.setStatus({
64185
+ code: SpanStatusCode2.ERROR,
64186
+ message: `Server Error ${status}`
64187
+ });
64188
+ } else if (status >= 400) {
64189
+ span.setStatus({
64190
+ code: SpanStatusCode2.UNSET
64191
+ });
64192
+ } else {
64193
+ span.setStatus({
64194
+ code: SpanStatusCode2.OK
64195
+ });
64196
+ }
64197
+ span.end();
64198
+ appSdk.flush().catch((err) => {
64199
+ console.error("[OtelMiddleware] Flush failed:", err);
64200
+ });
64201
+ });
64202
+ next();
64203
+ });
64204
+ }
64205
+ };
64206
+ ObservableTraceMiddleware = _ts_decorate3([
64207
+ Injectable2()
64208
+ ], ObservableTraceMiddleware);
64006
64209
 
64007
64210
  // src/service/app-logger.service.ts
64008
- function _ts_decorate3(decorators, target, key, desc) {
64211
+ function _ts_decorate4(decorators, target, key, desc) {
64009
64212
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
64010
64213
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
64011
64214
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
64012
64215
  return c > 3 && r && Object.defineProperty(target, key, r), r;
64013
64216
  }
64014
- __name(_ts_decorate3, "_ts_decorate");
64217
+ __name(_ts_decorate4, "_ts_decorate");
64015
64218
  function _ts_metadata3(k, v) {
64016
64219
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
64017
64220
  }
@@ -64305,7 +64508,7 @@ var AppLogger = class extends BasePinoLogger {
64305
64508
  Logger2.overrideLogger(this);
64306
64509
  }
64307
64510
  };
64308
- AppLogger = _ts_decorate3([
64511
+ AppLogger = _ts_decorate4([
64309
64512
  Injectable3(),
64310
64513
  _ts_param(0, Inject(PINO_ROOT_LOGGER)),
64311
64514
  _ts_param(1, Inject(OBSERVABLE_SERVICE_TOKEN)),
@@ -64364,7 +64567,7 @@ __name(sanitizeValue, "sanitizeValue");
64364
64567
  var import_config6 = __toESM(require_config2(), 1);
64365
64568
  import { Global as Global2, Module as Module2 } from "@nestjs/common";
64366
64569
  import { APP_INTERCEPTOR } from "@nestjs/core";
64367
- import { CommonModule as CommonModule2, RequestContextService as RequestContextService5 } from "@lark-apaas/nestjs-common";
64570
+ import { CommonModule as CommonModule2, OBSERVABLE_SERVICE_TOKEN as OBSERVABLE_SERVICE_TOKEN2, RequestContextService as RequestContextService5 } from "@lark-apaas/nestjs-common";
64368
64571
 
64369
64572
  // src/config/logger.config.ts
64370
64573
  var import_config4 = __toESM(require_config2(), 1);
@@ -64403,13 +64606,13 @@ var import_operators = __toESM(require_operators(), 1);
64403
64606
  import { Inject as Inject2, Injectable as Injectable4 } from "@nestjs/common";
64404
64607
  import { format } from "util";
64405
64608
  import { RequestContextService as RequestContextService3 } from "@lark-apaas/nestjs-common";
64406
- function _ts_decorate4(decorators, target, key, desc) {
64609
+ function _ts_decorate5(decorators, target, key, desc) {
64407
64610
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
64408
64611
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
64409
64612
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
64410
64613
  return c > 3 && r && Object.defineProperty(target, key, r), r;
64411
64614
  }
64412
- __name(_ts_decorate4, "_ts_decorate");
64615
+ __name(_ts_decorate5, "_ts_decorate");
64413
64616
  function _ts_metadata4(k, v) {
64414
64617
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
64415
64618
  }
@@ -64479,6 +64682,9 @@ var LoggingInterceptor = class {
64479
64682
  }
64480
64683
  this.appLogger.log(`HTTP request started
64481
64684
  url=${req.url}`, "HTTPTraceInterceptor");
64685
+ this.appLogger.log(`header`, {
64686
+ ...req.headers
64687
+ }, "HTTPHeaderInfo");
64482
64688
  this.traceLogger.logStructured("verbose", "HTTP request started", requestMeta, "HTTPTraceInterceptor");
64483
64689
  let logged = false;
64484
64690
  res.on("finish", () => {
@@ -64564,7 +64770,7 @@ duration_ms=${durationMs}`, "HTTPTraceInterceptor");
64564
64770
  }
64565
64771
  }
64566
64772
  };
64567
- LoggingInterceptor = _ts_decorate4([
64773
+ LoggingInterceptor = _ts_decorate5([
64568
64774
  Injectable4(),
64569
64775
  _ts_param2(0, Inject2(TRACE_LOGGER)),
64570
64776
  _ts_param2(2, Inject2(AppLogger)),
@@ -64632,13 +64838,13 @@ __name(createFileDestination, "createFileDestination");
64632
64838
  import { Injectable as Injectable5 } from "@nestjs/common";
64633
64839
  import { randomUUID as randomUUID2 } from "crypto";
64634
64840
  import { RequestContextService as RequestContextService4 } from "@lark-apaas/nestjs-common";
64635
- function _ts_decorate5(decorators, target, key, desc) {
64841
+ function _ts_decorate6(decorators, target, key, desc) {
64636
64842
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
64637
64843
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
64638
64844
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
64639
64845
  return c > 3 && r && Object.defineProperty(target, key, r), r;
64640
64846
  }
64641
- __name(_ts_decorate5, "_ts_decorate");
64847
+ __name(_ts_decorate6, "_ts_decorate");
64642
64848
  function _ts_metadata5(k, v) {
64643
64849
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
64644
64850
  }
@@ -64663,7 +64869,7 @@ var LoggerContextMiddleware = class {
64663
64869
  next();
64664
64870
  }
64665
64871
  };
64666
- LoggerContextMiddleware = _ts_decorate5([
64872
+ LoggerContextMiddleware = _ts_decorate6([
64667
64873
  Injectable5(),
64668
64874
  _ts_metadata5("design:type", Function),
64669
64875
  _ts_metadata5("design:paramtypes", [
@@ -64672,19 +64878,19 @@ LoggerContextMiddleware = _ts_decorate5([
64672
64878
  ], LoggerContextMiddleware);
64673
64879
 
64674
64880
  // src/module.ts
64675
- function _ts_decorate6(decorators, target, key, desc) {
64881
+ function _ts_decorate7(decorators, target, key, desc) {
64676
64882
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
64677
64883
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
64678
64884
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
64679
64885
  return c > 3 && r && Object.defineProperty(target, key, r), r;
64680
64886
  }
64681
- __name(_ts_decorate6, "_ts_decorate");
64887
+ __name(_ts_decorate7, "_ts_decorate");
64682
64888
  var LoggerModule = class {
64683
64889
  static {
64684
64890
  __name(this, "LoggerModule");
64685
64891
  }
64686
64892
  };
64687
- LoggerModule = _ts_decorate6([
64893
+ LoggerModule = _ts_decorate7([
64688
64894
  Global2(),
64689
64895
  Module2({
64690
64896
  imports: [
@@ -64714,7 +64920,7 @@ LoggerModule = _ts_decorate6([
64714
64920
  inject: [
64715
64921
  RequestContextService5,
64716
64922
  logger_config_default.KEY,
64717
- ObservableService
64923
+ OBSERVABLE_SERVICE_TOKEN2
64718
64924
  ]
64719
64925
  },
64720
64926
  AppLogger,