@lark-apaas/fullstack-nestjs-core 1.1.12-alpha.9 → 1.1.13

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
@@ -32,6 +32,7 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
32
32
  // src/index.ts
33
33
  var index_exports = {};
34
34
  __export(index_exports, {
35
+ AutoTrace: () => import_nestjs_common5.AutoTrace,
35
36
  CsrfMiddleware: () => CsrfMiddleware,
36
37
  CsrfTokenMiddleware: () => CsrfTokenMiddleware,
37
38
  DevToolsModule: () => import_nestjs_openapi_devtools2.DevToolsModule,
@@ -172,10 +173,47 @@ var import_common3 = require("@nestjs/common");
172
173
  var import_nestjs_common = require("@lark-apaas/nestjs-common");
173
174
 
174
175
  // src/utils/safe-stringify.ts
175
- function escapeRegExp(str) {
176
- return str.replace(/[.*+?^${}()|[\]\\]/g, "\\$&").replace(/</g, "\\u003c").replace(/>/g, "\\u003e").replace(/&/g, "\\u0026").replace(/'/g, "\\'").replace(/"/g, '\\"').replace(/\r/g, "\\r").replace(/\n/g, "\\n").replace(/\u2028/g, "\\u2028").replace(/\u2029/g, "\\u2029");
176
+ function safeEscape(s) {
177
+ return s.replace(/[<>&='"\n\r\u2028\u2029]/g, function(c) {
178
+ switch (c.charCodeAt(0)) {
179
+ case 60:
180
+ return "\\u003c";
181
+ // <
182
+ case 62:
183
+ return "\\u003e";
184
+ // >
185
+ case 38:
186
+ return "\\u0026";
187
+ // &
188
+ case 61:
189
+ return "\\u003d";
190
+ // =
191
+ case 39:
192
+ return "\\u0027";
193
+ // '
194
+ case 34:
195
+ return "\\u0022";
196
+ // "
197
+ case 10:
198
+ return "\\u000a";
199
+ // \n
200
+ case 13:
201
+ return "\\u000d";
202
+ // \r
203
+ // 正常来说用户无法输入这几个字符, 现代浏览器也修复了这个问题
204
+ // https://zhuanlan.zhihu.com/p/29958439
205
+ case 8232:
206
+ return "\\u2028";
207
+ // 行分隔符
208
+ case 8233:
209
+ return "\\u2029";
210
+ // 段落分隔符
211
+ default:
212
+ return c;
213
+ }
214
+ });
177
215
  }
178
- __name(escapeRegExp, "escapeRegExp");
216
+ __name(safeEscape, "safeEscape");
179
217
 
180
218
  // src/middlewares/view-context/index.ts
181
219
  function _ts_decorate3(decorators, target, key, desc) {
@@ -228,14 +266,13 @@ var ViewContextMiddleware = class _ViewContextMiddleware {
228
266
  const { userId, tenantId, appId } = req.userContext;
229
267
  const csrfToken = req.csrfToken;
230
268
  const appInfo = await this.getAppInfo(appId);
231
- this.logger.debug(`appInfo: ${JSON.stringify(appInfo)}`);
232
269
  req.__platform_data__ = {
233
270
  csrfToken: csrfToken ?? "",
234
271
  userId: userId ?? "",
235
272
  appId: appId ?? "",
236
- appName: escapeRegExp(appInfo?.app_name ?? "\u5999\u642D\u5E94\u7528"),
273
+ appName: safeEscape(appInfo?.app_name ?? "\u5999\u642D\u5E94\u7528"),
237
274
  appAvatar: appInfo?.app_avatar ?? "",
238
- appDescription: escapeRegExp(appInfo?.app_description ?? ""),
275
+ appDescription: safeEscape(appInfo?.app_description ?? ""),
239
276
  tenantId
240
277
  };
241
278
  res.locals = {
@@ -244,9 +281,9 @@ var ViewContextMiddleware = class _ViewContextMiddleware {
244
281
  userId: userId ?? "",
245
282
  tenantId: tenantId ?? "",
246
283
  appId: appId ?? "",
247
- appName: escapeRegExp(appInfo?.app_name ?? "\u5999\u642D\u5E94\u7528"),
284
+ appName: safeEscape(appInfo?.app_name ?? "\u5999\u642D\u5E94\u7528"),
248
285
  appAvatar: appInfo?.app_avatar ?? "",
249
- appDescription: escapeRegExp(appInfo?.app_description ?? "")
286
+ appDescription: safeEscape(appInfo?.app_description ?? "")
250
287
  };
251
288
  next();
252
289
  }
@@ -436,26 +473,30 @@ var HttpInterceptorService = class {
436
473
  setupInterceptors() {
437
474
  const axiosInstance = this.httpService.axiosRef;
438
475
  axiosInstance.interceptors.request.use((config) => {
439
- this.logger.log("HTTP Request", {
440
- method: config.method?.toUpperCase(),
441
- url: config.url,
442
- headers: config.headers,
443
- params: config.params,
444
- data: config.data
445
- }, "HttpService");
476
+ if (process.env.NODE_ENV === "development") {
477
+ this.logger.log("HTTP Request", {
478
+ method: config.method?.toUpperCase(),
479
+ url: config.url,
480
+ headers: config.headers,
481
+ params: config.params,
482
+ data: config.data
483
+ }, "HttpService");
484
+ }
446
485
  return config;
447
486
  }, (error) => {
448
487
  this.logger.error("HTTP Request Error", error, "HttpService");
449
488
  return Promise.reject(error);
450
489
  });
451
490
  axiosInstance.interceptors.response.use((response) => {
452
- this.logger.log("HTTP Response", {
453
- method: response.config.method?.toUpperCase(),
454
- url: response.config.url,
455
- status: response.status,
456
- statusText: response.statusText,
457
- data: response.data
458
- }, "HttpService");
491
+ if (process.env.NODE_ENV === "development") {
492
+ this.logger.log("HTTP Response", {
493
+ method: response.config.method?.toUpperCase(),
494
+ url: response.config.url,
495
+ status: response.status,
496
+ statusText: response.statusText,
497
+ data: response.data
498
+ }, "HttpService");
499
+ }
459
500
  return response;
460
501
  }, (error) => {
461
502
  this.logger.error("HTTP Response Error", {
@@ -698,14 +739,14 @@ var PlatformHttpClientService = class _PlatformHttpClientService {
698
739
  */
699
740
  registerGlobalInterceptors() {
700
741
  this.client.interceptors.request.use((config) => {
701
- this.logger.log(`HTTP Request: ${config.method?.toUpperCase()} ${config.url}`);
742
+ this.logger.debug(`Server SDK HTTP Request: ${config.method?.toUpperCase()} ${config.url}`);
702
743
  return config;
703
744
  }, (error) => {
704
- this.logger.error("HTTP Request Error", error, "HttpService");
745
+ this.logger.error("Server SDK HTTP Request Error", error, "HttpService");
705
746
  return Promise.reject(error);
706
747
  });
707
748
  this.client.interceptors.response.use((response) => {
708
- this.logger.log(`HTTP Response: ${response.status} ${response.url}`);
749
+ this.logger.debug(`Server SDK HTTP Response: ${response.status} ${response.url}`);
709
750
  return response;
710
751
  }, (error) => {
711
752
  const errorLog = {
@@ -713,7 +754,7 @@ var PlatformHttpClientService = class _PlatformHttpClientService {
713
754
  statusText: error.response?.statusText,
714
755
  message: error.message
715
756
  };
716
- this.logger.error(`HTTP Response Error: ${error.config?.method?.toUpperCase()} ${error.config?.url} ${JSON.stringify(errorLog)}`);
757
+ this.logger.error(`Server SDK HTTP Response Error: ${error.config?.method?.toUpperCase()} ${error.config?.url} ${JSON.stringify(errorLog)}`);
717
758
  return Promise.reject(error);
718
759
  });
719
760
  }
@@ -779,10 +820,12 @@ var PlatformModule = class _PlatformModule {
779
820
  const appLogger = args[1];
780
821
  const drizzleLogger = {
781
822
  logQuery(query, params) {
782
- appLogger.log?.("SQL Query " + JSON.stringify({
783
- query,
784
- params
785
- }), "Database");
823
+ if (process.env.NODE_ENV === "development") {
824
+ appLogger.log?.("SQL Query " + JSON.stringify({
825
+ query,
826
+ params
827
+ }), "Database");
828
+ }
786
829
  }
787
830
  };
788
831
  return {
@@ -821,7 +864,11 @@ var PlatformModule = class _PlatformModule {
821
864
  PlatformHttpClientService
822
865
  ]
823
866
  },
824
- HttpInterceptorService
867
+ HttpInterceptorService,
868
+ {
869
+ provide: import_core2.APP_INTERCEPTOR,
870
+ useClass: import_nestjs_observable.TraceInterceptor
871
+ }
825
872
  ],
826
873
  exports: [
827
874
  import_config2.ConfigModule,
@@ -841,7 +888,7 @@ var PlatformModule = class _PlatformModule {
841
888
  if (process.env.NODE_ENV === "development") {
842
889
  consumer.apply(FrameworkDebugMiddleware).forRoutes("/api/__framework__/debug");
843
890
  }
844
- consumer.apply(UserContextMiddleware, RequestContextMiddleware, import_nestjs_logger2.LoggerContextMiddleware, import_nestjs_datapaas.SqlExecutionContextMiddleware).forRoutes("/*");
891
+ consumer.apply(UserContextMiddleware, RequestContextMiddleware, import_nestjs_logger2.LoggerContextMiddleware, import_nestjs_observable.ObservableTraceMiddleware, import_nestjs_datapaas.SqlExecutionContextMiddleware).forRoutes("/*");
845
892
  consumer.apply(CsrfTokenMiddleware, ViewContextMiddleware).exclude("/api/(.*)").forRoutes("*");
846
893
  if (options.enableCsrf !== false) {
847
894
  const csrfRoutes = options.csrfRoutes || "/api/*";
@@ -885,6 +932,7 @@ async function configureApp(app, perms = defaultPerms) {
885
932
  console.error("[OpenAPI] OpenAPI \u751F\u6210\u5931\u8D25:", err);
886
933
  }
887
934
  }
935
+ console.log("App Started Successfully.");
888
936
  }
889
937
  __name(configureApp, "configureApp");
890
938
 
@@ -894,8 +942,10 @@ __reExport(index_exports, require("@lark-apaas/nestjs-authnpaas"), module.export
894
942
  __reExport(index_exports, require("@lark-apaas/nestjs-datapaas"), module.exports);
895
943
  __reExport(index_exports, require("@lark-apaas/nestjs-observable"), module.exports);
896
944
  __reExport(index_exports, require("@lark-apaas/nestjs-trigger"), module.exports);
945
+ var import_nestjs_common5 = require("@lark-apaas/nestjs-common");
897
946
  // Annotate the CommonJS export names for ESM import in node:
898
947
  0 && (module.exports = {
948
+ AutoTrace,
899
949
  CsrfMiddleware,
900
950
  CsrfTokenMiddleware,
901
951
  DevToolsModule,
package/dist/index.d.cts CHANGED
@@ -4,6 +4,7 @@ import { NestExpressApplication } from '@nestjs/platform-express';
4
4
  export { DevToolsModule, DevToolsOptions, DevToolsV2Module, DevToolsV2Options } from '@lark-apaas/nestjs-openapi-devtools';
5
5
  import { Request, Response, NextFunction } from 'express';
6
6
  import { PlatformHttpClient } from '@lark-apaas/nestjs-common';
7
+ export { AutoTrace } from '@lark-apaas/nestjs-common';
7
8
  export * from '@lark-apaas/nestjs-authnpaas';
8
9
  export * from '@lark-apaas/nestjs-datapaas';
9
10
  export * from '@lark-apaas/nestjs-observable';
package/dist/index.d.ts CHANGED
@@ -4,6 +4,7 @@ import { NestExpressApplication } from '@nestjs/platform-express';
4
4
  export { DevToolsModule, DevToolsOptions, DevToolsV2Module, DevToolsV2Options } from '@lark-apaas/nestjs-openapi-devtools';
5
5
  import { Request, Response, NextFunction } from 'express';
6
6
  import { PlatformHttpClient } from '@lark-apaas/nestjs-common';
7
+ export { AutoTrace } from '@lark-apaas/nestjs-common';
7
8
  export * from '@lark-apaas/nestjs-authnpaas';
8
9
  export * from '@lark-apaas/nestjs-datapaas';
9
10
  export * from '@lark-apaas/nestjs-observable';
package/dist/index.js CHANGED
@@ -3,10 +3,10 @@ var __name = (target, value) => __defProp(target, "name", { value, configurable:
3
3
 
4
4
  // src/modules/platform/module.ts
5
5
  import { Global, Module, ValidationPipe } from "@nestjs/common";
6
- import { APP_PIPE } from "@nestjs/core";
6
+ import { APP_INTERCEPTOR, APP_PIPE } from "@nestjs/core";
7
7
  import { CommonModule, OBSERVABLE_SERVICE } from "@lark-apaas/nestjs-common";
8
8
  import { ConfigModule, ConfigService } from "@nestjs/config";
9
- import { NestjsObservableModule as ObservableModule, Observable } from "@lark-apaas/nestjs-observable";
9
+ import { NestjsObservableModule as ObservableModule, Observable, ObservableTraceMiddleware, TraceInterceptor } from "@lark-apaas/nestjs-observable";
10
10
  import { HttpModule } from "@nestjs/axios";
11
11
  import { LoggerModule, AppLogger as AppLogger2, LoggerContextMiddleware } from "@lark-apaas/nestjs-logger";
12
12
  import { DataPaasModule, SqlExecutionContextMiddleware } from "@lark-apaas/nestjs-datapaas";
@@ -130,10 +130,47 @@ import { Inject, Injectable as Injectable3, Logger } from "@nestjs/common";
130
130
  import { PLATFORM_HTTP_CLIENT } from "@lark-apaas/nestjs-common";
131
131
 
132
132
  // src/utils/safe-stringify.ts
133
- function escapeRegExp(str) {
134
- return str.replace(/[.*+?^${}()|[\]\\]/g, "\\$&").replace(/</g, "\\u003c").replace(/>/g, "\\u003e").replace(/&/g, "\\u0026").replace(/'/g, "\\'").replace(/"/g, '\\"').replace(/\r/g, "\\r").replace(/\n/g, "\\n").replace(/\u2028/g, "\\u2028").replace(/\u2029/g, "\\u2029");
133
+ function safeEscape(s) {
134
+ return s.replace(/[<>&='"\n\r\u2028\u2029]/g, function(c) {
135
+ switch (c.charCodeAt(0)) {
136
+ case 60:
137
+ return "\\u003c";
138
+ // <
139
+ case 62:
140
+ return "\\u003e";
141
+ // >
142
+ case 38:
143
+ return "\\u0026";
144
+ // &
145
+ case 61:
146
+ return "\\u003d";
147
+ // =
148
+ case 39:
149
+ return "\\u0027";
150
+ // '
151
+ case 34:
152
+ return "\\u0022";
153
+ // "
154
+ case 10:
155
+ return "\\u000a";
156
+ // \n
157
+ case 13:
158
+ return "\\u000d";
159
+ // \r
160
+ // 正常来说用户无法输入这几个字符, 现代浏览器也修复了这个问题
161
+ // https://zhuanlan.zhihu.com/p/29958439
162
+ case 8232:
163
+ return "\\u2028";
164
+ // 行分隔符
165
+ case 8233:
166
+ return "\\u2029";
167
+ // 段落分隔符
168
+ default:
169
+ return c;
170
+ }
171
+ });
135
172
  }
136
- __name(escapeRegExp, "escapeRegExp");
173
+ __name(safeEscape, "safeEscape");
137
174
 
138
175
  // src/middlewares/view-context/index.ts
139
176
  function _ts_decorate3(decorators, target, key, desc) {
@@ -186,14 +223,13 @@ var ViewContextMiddleware = class _ViewContextMiddleware {
186
223
  const { userId, tenantId, appId } = req.userContext;
187
224
  const csrfToken = req.csrfToken;
188
225
  const appInfo = await this.getAppInfo(appId);
189
- this.logger.debug(`appInfo: ${JSON.stringify(appInfo)}`);
190
226
  req.__platform_data__ = {
191
227
  csrfToken: csrfToken ?? "",
192
228
  userId: userId ?? "",
193
229
  appId: appId ?? "",
194
- appName: escapeRegExp(appInfo?.app_name ?? "\u5999\u642D\u5E94\u7528"),
230
+ appName: safeEscape(appInfo?.app_name ?? "\u5999\u642D\u5E94\u7528"),
195
231
  appAvatar: appInfo?.app_avatar ?? "",
196
- appDescription: escapeRegExp(appInfo?.app_description ?? ""),
232
+ appDescription: safeEscape(appInfo?.app_description ?? ""),
197
233
  tenantId
198
234
  };
199
235
  res.locals = {
@@ -202,9 +238,9 @@ var ViewContextMiddleware = class _ViewContextMiddleware {
202
238
  userId: userId ?? "",
203
239
  tenantId: tenantId ?? "",
204
240
  appId: appId ?? "",
205
- appName: escapeRegExp(appInfo?.app_name ?? "\u5999\u642D\u5E94\u7528"),
241
+ appName: safeEscape(appInfo?.app_name ?? "\u5999\u642D\u5E94\u7528"),
206
242
  appAvatar: appInfo?.app_avatar ?? "",
207
- appDescription: escapeRegExp(appInfo?.app_description ?? "")
243
+ appDescription: safeEscape(appInfo?.app_description ?? "")
208
244
  };
209
245
  next();
210
246
  }
@@ -394,26 +430,30 @@ var HttpInterceptorService = class {
394
430
  setupInterceptors() {
395
431
  const axiosInstance = this.httpService.axiosRef;
396
432
  axiosInstance.interceptors.request.use((config) => {
397
- this.logger.log("HTTP Request", {
398
- method: config.method?.toUpperCase(),
399
- url: config.url,
400
- headers: config.headers,
401
- params: config.params,
402
- data: config.data
403
- }, "HttpService");
433
+ if (process.env.NODE_ENV === "development") {
434
+ this.logger.log("HTTP Request", {
435
+ method: config.method?.toUpperCase(),
436
+ url: config.url,
437
+ headers: config.headers,
438
+ params: config.params,
439
+ data: config.data
440
+ }, "HttpService");
441
+ }
404
442
  return config;
405
443
  }, (error) => {
406
444
  this.logger.error("HTTP Request Error", error, "HttpService");
407
445
  return Promise.reject(error);
408
446
  });
409
447
  axiosInstance.interceptors.response.use((response) => {
410
- this.logger.log("HTTP Response", {
411
- method: response.config.method?.toUpperCase(),
412
- url: response.config.url,
413
- status: response.status,
414
- statusText: response.statusText,
415
- data: response.data
416
- }, "HttpService");
448
+ if (process.env.NODE_ENV === "development") {
449
+ this.logger.log("HTTP Response", {
450
+ method: response.config.method?.toUpperCase(),
451
+ url: response.config.url,
452
+ status: response.status,
453
+ statusText: response.statusText,
454
+ data: response.data
455
+ }, "HttpService");
456
+ }
417
457
  return response;
418
458
  }, (error) => {
419
459
  this.logger.error("HTTP Response Error", {
@@ -656,14 +696,14 @@ var PlatformHttpClientService = class _PlatformHttpClientService {
656
696
  */
657
697
  registerGlobalInterceptors() {
658
698
  this.client.interceptors.request.use((config) => {
659
- this.logger.log(`HTTP Request: ${config.method?.toUpperCase()} ${config.url}`);
699
+ this.logger.debug(`Server SDK HTTP Request: ${config.method?.toUpperCase()} ${config.url}`);
660
700
  return config;
661
701
  }, (error) => {
662
- this.logger.error("HTTP Request Error", error, "HttpService");
702
+ this.logger.error("Server SDK HTTP Request Error", error, "HttpService");
663
703
  return Promise.reject(error);
664
704
  });
665
705
  this.client.interceptors.response.use((response) => {
666
- this.logger.log(`HTTP Response: ${response.status} ${response.url}`);
706
+ this.logger.debug(`Server SDK HTTP Response: ${response.status} ${response.url}`);
667
707
  return response;
668
708
  }, (error) => {
669
709
  const errorLog = {
@@ -671,7 +711,7 @@ var PlatformHttpClientService = class _PlatformHttpClientService {
671
711
  statusText: error.response?.statusText,
672
712
  message: error.message
673
713
  };
674
- this.logger.error(`HTTP Response Error: ${error.config?.method?.toUpperCase()} ${error.config?.url} ${JSON.stringify(errorLog)}`);
714
+ this.logger.error(`Server SDK HTTP Response Error: ${error.config?.method?.toUpperCase()} ${error.config?.url} ${JSON.stringify(errorLog)}`);
675
715
  return Promise.reject(error);
676
716
  });
677
717
  }
@@ -737,10 +777,12 @@ var PlatformModule = class _PlatformModule {
737
777
  const appLogger = args[1];
738
778
  const drizzleLogger = {
739
779
  logQuery(query, params) {
740
- appLogger.log?.("SQL Query " + JSON.stringify({
741
- query,
742
- params
743
- }), "Database");
780
+ if (process.env.NODE_ENV === "development") {
781
+ appLogger.log?.("SQL Query " + JSON.stringify({
782
+ query,
783
+ params
784
+ }), "Database");
785
+ }
744
786
  }
745
787
  };
746
788
  return {
@@ -779,7 +821,11 @@ var PlatformModule = class _PlatformModule {
779
821
  PlatformHttpClientService
780
822
  ]
781
823
  },
782
- HttpInterceptorService
824
+ HttpInterceptorService,
825
+ {
826
+ provide: APP_INTERCEPTOR,
827
+ useClass: TraceInterceptor
828
+ }
783
829
  ],
784
830
  exports: [
785
831
  ConfigModule,
@@ -799,7 +845,7 @@ var PlatformModule = class _PlatformModule {
799
845
  if (process.env.NODE_ENV === "development") {
800
846
  consumer.apply(FrameworkDebugMiddleware).forRoutes("/api/__framework__/debug");
801
847
  }
802
- consumer.apply(UserContextMiddleware, RequestContextMiddleware, LoggerContextMiddleware, SqlExecutionContextMiddleware).forRoutes("/*");
848
+ consumer.apply(UserContextMiddleware, RequestContextMiddleware, LoggerContextMiddleware, ObservableTraceMiddleware, SqlExecutionContextMiddleware).forRoutes("/*");
803
849
  consumer.apply(CsrfTokenMiddleware, ViewContextMiddleware).exclude("/api/(.*)").forRoutes("*");
804
850
  if (options.enableCsrf !== false) {
805
851
  const csrfRoutes = options.csrfRoutes || "/api/*";
@@ -843,6 +889,7 @@ async function configureApp(app, perms = defaultPerms) {
843
889
  console.error("[OpenAPI] OpenAPI \u751F\u6210\u5931\u8D25:", err);
844
890
  }
845
891
  }
892
+ console.log("App Started Successfully.");
846
893
  }
847
894
  __name(configureApp, "configureApp");
848
895
 
@@ -852,7 +899,9 @@ export * from "@lark-apaas/nestjs-authnpaas";
852
899
  export * from "@lark-apaas/nestjs-datapaas";
853
900
  export * from "@lark-apaas/nestjs-observable";
854
901
  export * from "@lark-apaas/nestjs-trigger";
902
+ import { AutoTrace } from "@lark-apaas/nestjs-common";
855
903
  export {
904
+ AutoTrace,
856
905
  CsrfMiddleware,
857
906
  CsrfTokenMiddleware,
858
907
  DevToolsModule,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lark-apaas/fullstack-nestjs-core",
3
- "version": "1.1.12-alpha.9",
3
+ "version": "1.1.13",
4
4
  "description": "FullStack Nestjs Core",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -39,12 +39,12 @@
39
39
  "prepublishOnly": "npm run build"
40
40
  },
41
41
  "dependencies": {
42
- "@lark-apaas/http-client": "0.1.2",
42
+ "@lark-apaas/http-client": "^0.1.2",
43
43
  "@lark-apaas/nestjs-authnpaas": "^1.0.2",
44
- "@lark-apaas/nestjs-common": "^0.1.0",
44
+ "@lark-apaas/nestjs-common": "^0.1.1",
45
45
  "@lark-apaas/nestjs-datapaas": "^1.0.7",
46
- "@lark-apaas/nestjs-logger": "^1.0.4",
47
- "@lark-apaas/nestjs-observable": "^0.0.1",
46
+ "@lark-apaas/nestjs-logger": "^1.0.7",
47
+ "@lark-apaas/nestjs-observable": "^0.0.2",
48
48
  "@lark-apaas/nestjs-openapi-devtools": "^1.0.9",
49
49
  "@lark-apaas/nestjs-trigger": "^0.0.1",
50
50
  "@nestjs/axios": "^4.0.1",
@@ -57,7 +57,6 @@
57
57
  "@nestjs/swagger": "^7.4.2",
58
58
  "@types/cookie-parser": "^1.4.9",
59
59
  "@types/express": "^5.0.3",
60
- "@types/serialize-javascript": "^5.0.4",
61
60
  "class-transformer": "^0.5.1",
62
61
  "class-validator": "^0.14.2",
63
62
  "drizzle-orm": "0.44.6",