@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.cjs CHANGED
@@ -1361,10 +1361,10 @@ var SpanStatusCode;
1361
1361
  var init_status = __esm({
1362
1362
  "../../../node_modules/@opentelemetry/api/build/esm/trace/status.js"() {
1363
1363
  "use strict";
1364
- (function(SpanStatusCode2) {
1365
- SpanStatusCode2[SpanStatusCode2["UNSET"] = 0] = "UNSET";
1366
- SpanStatusCode2[SpanStatusCode2["OK"] = 1] = "OK";
1367
- SpanStatusCode2[SpanStatusCode2["ERROR"] = 2] = "ERROR";
1364
+ (function(SpanStatusCode3) {
1365
+ SpanStatusCode3[SpanStatusCode3["UNSET"] = 0] = "UNSET";
1366
+ SpanStatusCode3[SpanStatusCode3["OK"] = 1] = "OK";
1367
+ SpanStatusCode3[SpanStatusCode3["ERROR"] = 2] = "ERROR";
1368
1368
  })(SpanStatusCode || (SpanStatusCode = {}));
1369
1369
  }
1370
1370
  });
@@ -65612,16 +65612,20 @@ var METRICS_LOGGER = Symbol("METRICS_LOGGER");
65612
65612
  var import_nestjs_common3 = require("@lark-apaas/nestjs-common");
65613
65613
 
65614
65614
  // ../nestjs-observable/dist/index.js
65615
- var import_common4 = require("@nestjs/common");
65615
+ var import_common3 = require("@nestjs/common");
65616
65616
 
65617
65617
  // ../observable-server/dist/index.js
65618
65618
  var import_sdk_node = __toESM(require_src12(), 1);
65619
65619
  init_esm6();
65620
+ var import_sdk_trace_node = __toESM(require_src2(), 1);
65620
65621
  init_esm5();
65622
+ init_esm();
65621
65623
  init_esm4();
65622
65624
  init_esm3();
65623
- var import_common3 = require("@nestjs/common");
65624
65625
  var import_crypto2 = require("crypto");
65626
+ init_esm4();
65627
+ init_esm3();
65628
+ init_esm();
65625
65629
  var __defProp2 = Object.defineProperty;
65626
65630
  var __name2 = /* @__PURE__ */ __name((target, value) => __defProp2(target, "name", {
65627
65631
  value,
@@ -65683,6 +65687,11 @@ var AppEnv = /* @__PURE__ */ (function(AppEnv2) {
65683
65687
  AppEnv2["Prod"] = "runtime";
65684
65688
  return AppEnv2;
65685
65689
  })({});
65690
+ var defaultResourceAttr = {
65691
+ "sdk_version": "1.0.1-alpha.18",
65692
+ "sdk_type": "client-backend",
65693
+ "sdk_language": "node"
65694
+ };
65686
65695
  var safeStringify = /* @__PURE__ */ __name2((obj) => {
65687
65696
  try {
65688
65697
  return JSON.stringify(obj);
@@ -65699,19 +65708,6 @@ function convertAttributesToString(attributes) {
65699
65708
  }
65700
65709
  __name(convertAttributesToString, "convertAttributesToString");
65701
65710
  __name2(convertAttributesToString, "convertAttributesToString");
65702
- function _ts_decorate(decorators, target, key, desc) {
65703
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
65704
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
65705
- 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;
65706
- return c > 3 && r && Object.defineProperty(target, key, r), r;
65707
- }
65708
- __name(_ts_decorate, "_ts_decorate");
65709
- __name2(_ts_decorate, "_ts_decorate");
65710
- function _ts_metadata(k, v) {
65711
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
65712
- }
65713
- __name(_ts_metadata, "_ts_metadata");
65714
- __name2(_ts_metadata, "_ts_metadata");
65715
65711
  var CustomExporter = class {
65716
65712
  static {
65717
65713
  __name(this, "CustomExporter");
@@ -65729,30 +65725,145 @@ var CustomExporter = class {
65729
65725
  uuid: idGenerator.generateTraceId(),
65730
65726
  app_env: isDev ? AppEnv.Dev : AppEnv.Prod
65731
65727
  };
65732
- const otlpLikeStructure = {
65733
- resource: {
65734
- // 合并 OTel Resource(此处暂留空,真实场景可由 sdk.resource 提供)
65735
- attributes: {}
65736
- },
65737
- logRecords: logs2.map((log) => {
65738
- const rawAttributes = {
65739
- ...defaultAttributes,
65740
- ...log.attributes ?? {}
65741
- };
65742
- const attributes = convertAttributesToString(rawAttributes);
65743
- return {
65744
- timeUnixNano: hrTimeToNanosNumber(log.hrTime),
65745
- observedTimeUnixNano: hrTimeToNanosNumber(log.hrTimeObserved),
65746
- severityNumber: log.severityNumber,
65747
- severityText: log.severityText,
65748
- body: log.body,
65749
- attributes,
65750
- traceId: log.spanContext?.traceId,
65751
- spanId: log.spanContext?.spanId
65752
- };
65753
- })
65728
+ const otlpLikeStructures = logs2.map((log) => {
65729
+ const rawAttributes = {
65730
+ ...defaultAttributes,
65731
+ ...log.attributes ?? {}
65732
+ };
65733
+ const attributes = convertAttributesToString(rawAttributes);
65734
+ return {
65735
+ resource: {
65736
+ attributes: {
65737
+ ...defaultResourceAttr
65738
+ }
65739
+ },
65740
+ logRecords: [
65741
+ {
65742
+ timeUnixNano: hrTimeToNanosNumber(log.hrTime),
65743
+ observedTimeUnixNano: hrTimeToNanosNumber(log.hrTimeObserved),
65744
+ severityNumber: log.severityNumber,
65745
+ severityText: log.severityText,
65746
+ body: log.body,
65747
+ attributes,
65748
+ traceId: log.spanContext?.traceId,
65749
+ spanId: log.spanContext?.spanId
65750
+ }
65751
+ ]
65752
+ };
65753
+ });
65754
+ otlpLikeStructures.forEach((structure) => {
65755
+ console.log(this.logPrefix + JSON.stringify(structure) + this.logSuffix);
65756
+ });
65757
+ resultCallback({
65758
+ code: ExportResultCode.SUCCESS
65759
+ });
65760
+ }
65761
+ async shutdown() {
65762
+ }
65763
+ };
65764
+ function mapSeverity(level) {
65765
+ switch (level.toLowerCase()) {
65766
+ case "trace":
65767
+ return SeverityNumber.TRACE;
65768
+ case "debug":
65769
+ return SeverityNumber.DEBUG;
65770
+ case "info":
65771
+ return SeverityNumber.INFO;
65772
+ case "warn":
65773
+ return SeverityNumber.WARN;
65774
+ case "error":
65775
+ return SeverityNumber.ERROR;
65776
+ case "fatal":
65777
+ return SeverityNumber.FATAL;
65778
+ default:
65779
+ return SeverityNumber.INFO;
65780
+ }
65781
+ }
65782
+ __name(mapSeverity, "mapSeverity");
65783
+ __name2(mapSeverity, "mapSeverity");
65784
+ function mapSeverityText(level) {
65785
+ switch (level.toLowerCase()) {
65786
+ case "trace":
65787
+ return "INFO";
65788
+ case "debug":
65789
+ return "DEBUG";
65790
+ case "info":
65791
+ return "INFO";
65792
+ case "warn":
65793
+ return "WARN";
65794
+ case "error":
65795
+ return "ERROR";
65796
+ case "fatal":
65797
+ return "ERROR";
65798
+ default:
65799
+ return "INFO";
65800
+ }
65801
+ }
65802
+ __name(mapSeverityText, "mapSeverityText");
65803
+ __name2(mapSeverityText, "mapSeverityText");
65804
+ var CustomTraceExporter = class {
65805
+ static {
65806
+ __name(this, "CustomTraceExporter");
65807
+ }
65808
+ static {
65809
+ __name2(this, "CustomTraceExporter");
65810
+ }
65811
+ tracePrefix = "force-trace-prefix";
65812
+ traceSuffix = "force-trace-suffix";
65813
+ requestContextService;
65814
+ constructor(contextProvider) {
65815
+ this.requestContextService = contextProvider;
65816
+ }
65817
+ export(spans, resultCallback) {
65818
+ const isDev = process.env.NODE_ENV === "development";
65819
+ const defaultAttributes = {
65820
+ uuid: idGenerator.generateTraceId(),
65821
+ app_env: isDev ? AppEnv.Dev : AppEnv.Prod
65822
+ };
65823
+ const ctx = this.requestContextService.getContext();
65824
+ const contextAttributes = ctx ? {
65825
+ user_id: ctx.userId,
65826
+ tenant_id: ctx.tenantId,
65827
+ app_id: ctx.appId,
65828
+ method: ctx.method,
65829
+ path: ctx.path
65830
+ } : {
65831
+ user_id: void 0,
65832
+ tenant_id: void 0,
65833
+ app_id: void 0
65754
65834
  };
65755
- console.log(this.logPrefix + JSON.stringify(otlpLikeStructure) + this.logSuffix);
65835
+ const otlpLikeStructures = spans.map((span) => {
65836
+ const rawAttributes = {
65837
+ ...defaultAttributes,
65838
+ ...contextAttributes,
65839
+ ...span.attributes ?? {}
65840
+ };
65841
+ const attributes = convertAttributesToString(rawAttributes);
65842
+ return {
65843
+ resource: {
65844
+ // 合并 OTel Resource(此处暂留空,真实场景可由 sdk.resource 提供)
65845
+ attributes: {
65846
+ ...defaultResourceAttr
65847
+ }
65848
+ },
65849
+ spans: [
65850
+ {
65851
+ startTimeUnixNano: hrTimeToNanosNumber(span.startTime),
65852
+ endTimeUnixNano: hrTimeToNanosNumber(span.endTime),
65853
+ name: span.name,
65854
+ attributes,
65855
+ traceId: span.spanContext().traceId,
65856
+ spanId: span.spanContext().spanId,
65857
+ parentSpanID: span.parentSpanContext?.spanId,
65858
+ status: span.status,
65859
+ spanKind: SpanKind.SERVER
65860
+ }
65861
+ ]
65862
+ };
65863
+ });
65864
+ otlpLikeStructures.forEach((structure) => {
65865
+ console.log(this.tracePrefix + JSON.stringify(structure) + this.traceSuffix);
65866
+ });
65756
65867
  resultCallback({
65757
65868
  code: ExportResultCode.SUCCESS
65758
65869
  });
@@ -65760,20 +65871,20 @@ var CustomExporter = class {
65760
65871
  async shutdown() {
65761
65872
  }
65762
65873
  };
65763
- CustomExporter = _ts_decorate([
65764
- (0, import_common3.Injectable)(),
65765
- _ts_metadata("design:type", Function),
65766
- _ts_metadata("design:paramtypes", [])
65767
- ], CustomExporter);
65768
- var AppOTelLoggerSDK = class {
65874
+ var AppOTelSDK = class _AppOTelSDK {
65769
65875
  static {
65770
- __name(this, "AppOTelLoggerSDK");
65876
+ __name(this, "_AppOTelSDK");
65771
65877
  }
65772
65878
  static {
65773
- __name2(this, "AppOTelLoggerSDK");
65879
+ __name2(this, "AppOTelSDK");
65774
65880
  }
65775
65881
  sdk = null;
65776
65882
  logProcessor = null;
65883
+ spanProcessor = null;
65884
+ static CUSTOM_FORMAT_REGEX = /^[0-9a-fA-F]{32}-[0-9a-fA-F]{16}$/;
65885
+ contextProvider = {
65886
+ getContext: /* @__PURE__ */ __name2(() => ({}), "getContext")
65887
+ };
65777
65888
  start() {
65778
65889
  const resource = detectResources({
65779
65890
  detectors: [
@@ -65785,22 +65896,68 @@ var AppOTelLoggerSDK = class {
65785
65896
  scheduledDelayMillis: 2e3,
65786
65897
  maxExportBatchSize: 10
65787
65898
  });
65899
+ const traceExporter = new CustomTraceExporter(this.contextProvider);
65900
+ this.spanProcessor = new import_sdk_trace_node.BatchSpanProcessor(traceExporter, {
65901
+ scheduledDelayMillis: 1e3,
65902
+ maxExportBatchSize: 1
65903
+ });
65788
65904
  this.sdk = new import_sdk_node.NodeSDK({
65789
65905
  resource,
65790
65906
  logRecordProcessor: this.logProcessor,
65791
- traceExporter: void 0
65907
+ spanProcessor: this.spanProcessor
65792
65908
  });
65793
65909
  this.sdk.start();
65794
65910
  }
65795
65911
  /**
65796
- * 用户使用的日志接口
65797
- * 自动合并请求级上下文(由 ContextProvider 提供)
65912
+ * [框架专用 API] 开启一个根 Span (Root Span)
65913
+ * 该方法专供 Middleware/Interceptor 使用,不建议用户直接调用
65914
+ */
65915
+ startContext(headers, name, fn) {
65916
+ const carrier = {};
65917
+ const customTraceId = headers["x-apaas-observability"];
65918
+ if (customTraceId && _AppOTelSDK.CUSTOM_FORMAT_REGEX.test(customTraceId)) {
65919
+ carrier["traceparent"] = `00-${customTraceId}-01`;
65920
+ } else {
65921
+ carrier["traceparent"] = `00-${idGenerator.generateTraceId()}-${idGenerator.generateSpanId()}-01`;
65922
+ }
65923
+ const activeContext = propagation.extract(context.active(), carrier);
65924
+ const tracer = trace.getTracer("app-core");
65925
+ tracer.startActiveSpan(name, {}, activeContext, (span) => {
65926
+ fn(span);
65927
+ });
65928
+ }
65929
+ /**
65930
+ * [用户专用 API] 手动打点 (Child Span)
65931
+ * 用户在 Service 中调用此方法,会自动挂载到 Middleware 创建的 Root Span 下
65932
+ */
65933
+ async trace(name, fn) {
65934
+ const tracer = trace.getTracer("user-trace");
65935
+ return tracer.startActiveSpan(name, async (span) => {
65936
+ try {
65937
+ const res = await fn(span);
65938
+ span.setStatus({
65939
+ code: SpanStatusCode.OK
65940
+ });
65941
+ return res;
65942
+ } catch (e) {
65943
+ span.recordException(e);
65944
+ span.setStatus({
65945
+ code: SpanStatusCode.ERROR
65946
+ });
65947
+ throw e;
65948
+ } finally {
65949
+ span.end();
65950
+ }
65951
+ });
65952
+ }
65953
+ /**
65954
+ * [Log API] 自动关联 TraceContext
65798
65955
  */
65799
65956
  log(level, message, extra = {}) {
65800
65957
  const logger2 = logs.getLogger("app-logger");
65801
- const severityNumber = this.mapSeverity(level);
65802
- const severityText = this.mapSeverityText(level);
65803
- const mergedAttributes = {
65958
+ const severityNumber = mapSeverity(level);
65959
+ const severityText = mapSeverityText(level);
65960
+ const attributes = {
65804
65961
  ...extra || {},
65805
65962
  pid: process.pid
65806
65963
  };
@@ -65808,76 +65965,65 @@ var AppOTelLoggerSDK = class {
65808
65965
  body: message,
65809
65966
  severityNumber,
65810
65967
  severityText,
65811
- attributes: mergedAttributes,
65812
- timestamp: /* @__PURE__ */ new Date()
65968
+ attributes,
65969
+ timestamp: /* @__PURE__ */ new Date(),
65970
+ // 自动关联当前上下文
65971
+ context: context.active()
65813
65972
  });
65814
65973
  }
65974
+ /**
65975
+ * [框架专用] 强制刷新
65976
+ */
65815
65977
  async flush() {
65816
- if (this.logProcessor) {
65817
- await this.logProcessor.forceFlush();
65818
- }
65819
- }
65820
- mapSeverity(level) {
65821
- switch (level.toLowerCase()) {
65822
- case "trace":
65823
- return SeverityNumber.TRACE;
65824
- case "debug":
65825
- return SeverityNumber.DEBUG;
65826
- case "info":
65827
- return SeverityNumber.INFO;
65828
- case "warn":
65829
- return SeverityNumber.WARN;
65830
- case "error":
65831
- return SeverityNumber.ERROR;
65832
- case "fatal":
65833
- return SeverityNumber.FATAL;
65834
- default:
65835
- return SeverityNumber.INFO;
65836
- }
65837
- }
65838
- mapSeverityText(level) {
65839
- switch (level.toLowerCase()) {
65840
- case "trace":
65841
- return "INFO";
65842
- case "debug":
65843
- return "DEBUG";
65844
- case "info":
65845
- return "INFO";
65846
- case "warn":
65847
- return "WARN";
65848
- case "error":
65849
- return "ERROR";
65850
- case "fatal":
65851
- return "ERROR";
65852
- default:
65853
- return "INFO";
65854
- }
65978
+ await Promise.all([
65979
+ this.logProcessor?.forceFlush(),
65980
+ this.spanProcessor?.forceFlush()
65981
+ ]);
65855
65982
  }
65856
65983
  };
65857
- var appSdk = new AppOTelLoggerSDK();
65984
+ var appSdk = new AppOTelSDK();
65985
+ function Trace(name) {
65986
+ return function(target, propertyKey, descriptor) {
65987
+ const originalMethod = descriptor.value;
65988
+ if (!originalMethod) {
65989
+ return descriptor;
65990
+ }
65991
+ descriptor.value = async function(...args) {
65992
+ const spanName = name || `${target?.constructor?.name}.${String(propertyKey)}`;
65993
+ return await appSdk.trace(spanName, async (_) => {
65994
+ const result = await originalMethod.apply(this, args);
65995
+ return result;
65996
+ });
65997
+ };
65998
+ return descriptor;
65999
+ };
66000
+ }
66001
+ __name(Trace, "Trace");
66002
+ __name2(Trace, "Trace");
65858
66003
 
65859
66004
  // ../nestjs-observable/dist/index.js
65860
66005
  var import_nestjs_common = require("@lark-apaas/nestjs-common");
65861
- var import_common5 = require("@nestjs/common");
66006
+ var import_common4 = require("@nestjs/common");
65862
66007
  var import_nestjs_common2 = require("@lark-apaas/nestjs-common");
66008
+ var import_common5 = require("@nestjs/common");
65863
66009
  var __defProp3 = Object.defineProperty;
65864
66010
  var __name3 = /* @__PURE__ */ __name((target, value) => __defProp3(target, "name", {
65865
66011
  value,
65866
66012
  configurable: true
65867
66013
  }), "__name");
65868
- function _ts_decorate2(decorators, target, key, desc) {
66014
+ function _ts_decorate(decorators, target, key, desc) {
65869
66015
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
65870
66016
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
65871
66017
  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;
65872
66018
  return c > 3 && r && Object.defineProperty(target, key, r), r;
65873
66019
  }
65874
- __name(_ts_decorate2, "_ts_decorate");
65875
- __name3(_ts_decorate2, "_ts_decorate");
65876
- function _ts_metadata2(k, v) {
66020
+ __name(_ts_decorate, "_ts_decorate");
66021
+ __name3(_ts_decorate, "_ts_decorate");
66022
+ function _ts_metadata(k, v) {
65877
66023
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
65878
66024
  }
65879
- __name(_ts_metadata2, "_ts_metadata");
65880
- __name3(_ts_metadata2, "_ts_metadata");
66025
+ __name(_ts_metadata, "_ts_metadata");
66026
+ __name3(_ts_metadata, "_ts_metadata");
65881
66027
  var ObservableService = class {
65882
66028
  static {
65883
66029
  __name(this, "ObservableService");
@@ -65897,31 +66043,35 @@ var ObservableService = class {
65897
66043
  ...attributes
65898
66044
  });
65899
66045
  }
66046
+ /** 记录链路 */
66047
+ trace(name, fn) {
66048
+ return appSdk.trace(name, fn);
66049
+ }
65900
66050
  /** 手动刷新(FaaS/请求结束时可调用) */
65901
66051
  async flush() {
65902
66052
  await appSdk.flush();
65903
66053
  }
65904
66054
  };
65905
- ObservableService = _ts_decorate2([
65906
- (0, import_common5.Injectable)(),
65907
- _ts_metadata2("design:type", Function),
65908
- _ts_metadata2("design:paramtypes", [
66055
+ ObservableService = _ts_decorate([
66056
+ (0, import_common4.Injectable)(),
66057
+ _ts_metadata("design:type", Function),
66058
+ _ts_metadata("design:paramtypes", [
65909
66059
  typeof import_nestjs_common2.RequestContextService === "undefined" ? Object : import_nestjs_common2.RequestContextService
65910
66060
  ])
65911
66061
  ], ObservableService);
65912
- function _ts_decorate22(decorators, target, key, desc) {
66062
+ function _ts_decorate2(decorators, target, key, desc) {
65913
66063
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
65914
66064
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
65915
66065
  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;
65916
66066
  return c > 3 && r && Object.defineProperty(target, key, r), r;
65917
66067
  }
65918
- __name(_ts_decorate22, "_ts_decorate2");
65919
- __name3(_ts_decorate22, "_ts_decorate");
65920
- function _ts_metadata22(k, v) {
66068
+ __name(_ts_decorate2, "_ts_decorate2");
66069
+ __name3(_ts_decorate2, "_ts_decorate");
66070
+ function _ts_metadata2(k, v) {
65921
66071
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
65922
66072
  }
65923
- __name(_ts_metadata22, "_ts_metadata2");
65924
- __name3(_ts_metadata22, "_ts_metadata");
66073
+ __name(_ts_metadata2, "_ts_metadata2");
66074
+ __name3(_ts_metadata2, "_ts_metadata");
65925
66075
  var NestjsObservableModule = class _NestjsObservableModule {
65926
66076
  static {
65927
66077
  __name(this, "_NestjsObservableModule");
@@ -65941,9 +66091,9 @@ var NestjsObservableModule = class _NestjsObservableModule {
65941
66091
  appSdk.start();
65942
66092
  }
65943
66093
  };
65944
- NestjsObservableModule = _ts_decorate22([
65945
- (0, import_common4.Global)(),
65946
- (0, import_common4.Module)({
66094
+ NestjsObservableModule = _ts_decorate2([
66095
+ (0, import_common3.Global)(),
66096
+ (0, import_common3.Module)({
65947
66097
  imports: [
65948
66098
  import_nestjs_common.CommonModule
65949
66099
  ],
@@ -65954,18 +66104,71 @@ NestjsObservableModule = _ts_decorate22([
65954
66104
  ObservableService
65955
66105
  ]
65956
66106
  }),
65957
- _ts_metadata22("design:type", Function),
65958
- _ts_metadata22("design:paramtypes", [])
66107
+ _ts_metadata2("design:type", Function),
66108
+ _ts_metadata2("design:paramtypes", [])
65959
66109
  ], NestjsObservableModule);
66110
+ var SpanStatusCode2;
66111
+ (function(SpanStatusCode22) {
66112
+ SpanStatusCode22[SpanStatusCode22["UNSET"] = 0] = "UNSET";
66113
+ SpanStatusCode22[SpanStatusCode22["OK"] = 1] = "OK";
66114
+ SpanStatusCode22[SpanStatusCode22["ERROR"] = 2] = "ERROR";
66115
+ })(SpanStatusCode2 || (SpanStatusCode2 = {}));
66116
+ function _ts_decorate3(decorators, target, key, desc) {
66117
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
66118
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
66119
+ 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;
66120
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
66121
+ }
66122
+ __name(_ts_decorate3, "_ts_decorate3");
66123
+ __name3(_ts_decorate3, "_ts_decorate");
66124
+ var ObservableTraceMiddleware = class {
66125
+ static {
66126
+ __name(this, "ObservableTraceMiddleware");
66127
+ }
66128
+ static {
66129
+ __name3(this, "ObservableTraceMiddleware");
66130
+ }
66131
+ use(req, res, next) {
66132
+ const spanName = `${req.method} ${req.originalUrl || req.url}`;
66133
+ appSdk.startContext(req.headers, spanName, (span) => {
66134
+ res.on("finish", () => {
66135
+ const status = res.statusCode;
66136
+ span.setAttribute("http_status_code", status);
66137
+ if (status >= 500) {
66138
+ span.setStatus({
66139
+ code: SpanStatusCode2.ERROR,
66140
+ message: `Server Error ${status}`
66141
+ });
66142
+ } else if (status >= 400) {
66143
+ span.setStatus({
66144
+ code: SpanStatusCode2.UNSET
66145
+ });
66146
+ } else {
66147
+ span.setStatus({
66148
+ code: SpanStatusCode2.OK
66149
+ });
66150
+ }
66151
+ span.end();
66152
+ appSdk.flush().catch((err) => {
66153
+ console.error("[OtelMiddleware] Flush failed:", err);
66154
+ });
66155
+ });
66156
+ next();
66157
+ });
66158
+ }
66159
+ };
66160
+ ObservableTraceMiddleware = _ts_decorate3([
66161
+ (0, import_common5.Injectable)()
66162
+ ], ObservableTraceMiddleware);
65960
66163
 
65961
66164
  // src/service/app-logger.service.ts
65962
- function _ts_decorate3(decorators, target, key, desc) {
66165
+ function _ts_decorate4(decorators, target, key, desc) {
65963
66166
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
65964
66167
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
65965
66168
  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;
65966
66169
  return c > 3 && r && Object.defineProperty(target, key, r), r;
65967
66170
  }
65968
- __name(_ts_decorate3, "_ts_decorate");
66171
+ __name(_ts_decorate4, "_ts_decorate");
65969
66172
  function _ts_metadata3(k, v) {
65970
66173
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
65971
66174
  }
@@ -66259,7 +66462,7 @@ var AppLogger = class extends BasePinoLogger {
66259
66462
  import_common6.Logger.overrideLogger(this);
66260
66463
  }
66261
66464
  };
66262
- AppLogger = _ts_decorate3([
66465
+ AppLogger = _ts_decorate4([
66263
66466
  (0, import_common6.Injectable)(),
66264
66467
  _ts_param(0, (0, import_common6.Inject)(PINO_ROOT_LOGGER)),
66265
66468
  _ts_param(1, (0, import_common6.Inject)(import_nestjs_common3.OBSERVABLE_SERVICE_TOKEN)),
@@ -66316,7 +66519,7 @@ __name(sanitizeValue, "sanitizeValue");
66316
66519
 
66317
66520
  // src/module.ts
66318
66521
  var import_common9 = require("@nestjs/common");
66319
- var import_core41 = require("@nestjs/core");
66522
+ var import_core42 = require("@nestjs/core");
66320
66523
  var import_config6 = __toESM(require_config2(), 1);
66321
66524
  var import_nestjs_common6 = require("@lark-apaas/nestjs-common");
66322
66525
 
@@ -66357,13 +66560,13 @@ var import_config5 = __toESM(require_config2(), 1);
66357
66560
  var import_operators = __toESM(require_operators(), 1);
66358
66561
  var import_util6 = require("util");
66359
66562
  var import_nestjs_common4 = require("@lark-apaas/nestjs-common");
66360
- function _ts_decorate4(decorators, target, key, desc) {
66563
+ function _ts_decorate5(decorators, target, key, desc) {
66361
66564
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
66362
66565
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
66363
66566
  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;
66364
66567
  return c > 3 && r && Object.defineProperty(target, key, r), r;
66365
66568
  }
66366
- __name(_ts_decorate4, "_ts_decorate");
66569
+ __name(_ts_decorate5, "_ts_decorate");
66367
66570
  function _ts_metadata4(k, v) {
66368
66571
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
66369
66572
  }
@@ -66433,6 +66636,9 @@ var LoggingInterceptor = class {
66433
66636
  }
66434
66637
  this.appLogger.log(`HTTP request started
66435
66638
  url=${req.url}`, "HTTPTraceInterceptor");
66639
+ this.appLogger.log(`header`, {
66640
+ ...req.headers
66641
+ }, "HTTPHeaderInfo");
66436
66642
  this.traceLogger.logStructured("verbose", "HTTP request started", requestMeta, "HTTPTraceInterceptor");
66437
66643
  let logged = false;
66438
66644
  res.on("finish", () => {
@@ -66518,7 +66724,7 @@ duration_ms=${durationMs}`, "HTTPTraceInterceptor");
66518
66724
  }
66519
66725
  }
66520
66726
  };
66521
- LoggingInterceptor = _ts_decorate4([
66727
+ LoggingInterceptor = _ts_decorate5([
66522
66728
  (0, import_common7.Injectable)(),
66523
66729
  _ts_param2(0, (0, import_common7.Inject)(TRACE_LOGGER)),
66524
66730
  _ts_param2(2, (0, import_common7.Inject)(AppLogger)),
@@ -66586,13 +66792,13 @@ __name(createFileDestination, "createFileDestination");
66586
66792
  var import_common8 = require("@nestjs/common");
66587
66793
  var import_crypto3 = require("crypto");
66588
66794
  var import_nestjs_common5 = require("@lark-apaas/nestjs-common");
66589
- function _ts_decorate5(decorators, target, key, desc) {
66795
+ function _ts_decorate6(decorators, target, key, desc) {
66590
66796
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
66591
66797
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
66592
66798
  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;
66593
66799
  return c > 3 && r && Object.defineProperty(target, key, r), r;
66594
66800
  }
66595
- __name(_ts_decorate5, "_ts_decorate");
66801
+ __name(_ts_decorate6, "_ts_decorate");
66596
66802
  function _ts_metadata5(k, v) {
66597
66803
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
66598
66804
  }
@@ -66617,7 +66823,7 @@ var LoggerContextMiddleware = class {
66617
66823
  next();
66618
66824
  }
66619
66825
  };
66620
- LoggerContextMiddleware = _ts_decorate5([
66826
+ LoggerContextMiddleware = _ts_decorate6([
66621
66827
  (0, import_common8.Injectable)(),
66622
66828
  _ts_metadata5("design:type", Function),
66623
66829
  _ts_metadata5("design:paramtypes", [
@@ -66626,19 +66832,19 @@ LoggerContextMiddleware = _ts_decorate5([
66626
66832
  ], LoggerContextMiddleware);
66627
66833
 
66628
66834
  // src/module.ts
66629
- function _ts_decorate6(decorators, target, key, desc) {
66835
+ function _ts_decorate7(decorators, target, key, desc) {
66630
66836
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
66631
66837
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
66632
66838
  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;
66633
66839
  return c > 3 && r && Object.defineProperty(target, key, r), r;
66634
66840
  }
66635
- __name(_ts_decorate6, "_ts_decorate");
66841
+ __name(_ts_decorate7, "_ts_decorate");
66636
66842
  var LoggerModule = class {
66637
66843
  static {
66638
66844
  __name(this, "LoggerModule");
66639
66845
  }
66640
66846
  };
66641
- LoggerModule = _ts_decorate6([
66847
+ LoggerModule = _ts_decorate7([
66642
66848
  (0, import_common9.Global)(),
66643
66849
  (0, import_common9.Module)({
66644
66850
  imports: [
@@ -66668,13 +66874,13 @@ LoggerModule = _ts_decorate6([
66668
66874
  inject: [
66669
66875
  import_nestjs_common6.RequestContextService,
66670
66876
  logger_config_default.KEY,
66671
- ObservableService
66877
+ import_nestjs_common6.OBSERVABLE_SERVICE_TOKEN
66672
66878
  ]
66673
66879
  },
66674
66880
  AppLogger,
66675
66881
  LoggingInterceptor,
66676
66882
  {
66677
- provide: import_core41.APP_INTERCEPTOR,
66883
+ provide: import_core42.APP_INTERCEPTOR,
66678
66884
  useClass: LoggingInterceptor
66679
66885
  }
66680
66886
  ],