@lark-apaas/fullstack-nestjs-core 1.1.12-alpha.11 → 1.1.12-alpha.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 +58 -97
- package/dist/index.d.cts +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +59 -99
- package/package.json +6 -7
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,
|
|
@@ -170,51 +171,6 @@ CsrfMiddleware = _ts_decorate2([
|
|
|
170
171
|
// src/middlewares/view-context/index.ts
|
|
171
172
|
var import_common3 = require("@nestjs/common");
|
|
172
173
|
var import_nestjs_common = require("@lark-apaas/nestjs-common");
|
|
173
|
-
|
|
174
|
-
// src/utils/safe-stringify.ts
|
|
175
|
-
function safeEscape(s) {
|
|
176
|
-
return s.replace(/[<>&='"\n\r\u2028\u2029]/g, function(c) {
|
|
177
|
-
switch (c.charCodeAt(0)) {
|
|
178
|
-
case 60:
|
|
179
|
-
return "\\u003c";
|
|
180
|
-
// <
|
|
181
|
-
case 62:
|
|
182
|
-
return "\\u003e";
|
|
183
|
-
// >
|
|
184
|
-
case 38:
|
|
185
|
-
return "\\u0026";
|
|
186
|
-
// &
|
|
187
|
-
case 61:
|
|
188
|
-
return "\\u003d";
|
|
189
|
-
// =
|
|
190
|
-
case 39:
|
|
191
|
-
return "\\u0027";
|
|
192
|
-
// '
|
|
193
|
-
case 34:
|
|
194
|
-
return "\\u0022";
|
|
195
|
-
// "
|
|
196
|
-
case 10:
|
|
197
|
-
return "\\u000a";
|
|
198
|
-
// \n
|
|
199
|
-
case 13:
|
|
200
|
-
return "\\u000d";
|
|
201
|
-
// \r
|
|
202
|
-
// 正常来说用户无法输入这几个字符, 现代浏览器也修复了这个问题
|
|
203
|
-
// https://zhuanlan.zhihu.com/p/29958439
|
|
204
|
-
case 8232:
|
|
205
|
-
return "\\u2028";
|
|
206
|
-
// 行分隔符
|
|
207
|
-
case 8233:
|
|
208
|
-
return "\\u2029";
|
|
209
|
-
// 段落分隔符
|
|
210
|
-
default:
|
|
211
|
-
return c;
|
|
212
|
-
}
|
|
213
|
-
});
|
|
214
|
-
}
|
|
215
|
-
__name(safeEscape, "safeEscape");
|
|
216
|
-
|
|
217
|
-
// src/middlewares/view-context/index.ts
|
|
218
174
|
function _ts_decorate3(decorators, target, key, desc) {
|
|
219
175
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
220
176
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
@@ -270,9 +226,9 @@ var ViewContextMiddleware = class _ViewContextMiddleware {
|
|
|
270
226
|
csrfToken: csrfToken ?? "",
|
|
271
227
|
userId: userId ?? "",
|
|
272
228
|
appId: appId ?? "",
|
|
273
|
-
appName:
|
|
229
|
+
appName: appInfo?.app_name ?? "",
|
|
274
230
|
appAvatar: appInfo?.app_avatar ?? "",
|
|
275
|
-
appDescription:
|
|
231
|
+
appDescription: appInfo?.app_description ?? "",
|
|
276
232
|
tenantId
|
|
277
233
|
};
|
|
278
234
|
res.locals = {
|
|
@@ -281,9 +237,9 @@ var ViewContextMiddleware = class _ViewContextMiddleware {
|
|
|
281
237
|
userId: userId ?? "",
|
|
282
238
|
tenantId: tenantId ?? "",
|
|
283
239
|
appId: appId ?? "",
|
|
284
|
-
appName:
|
|
240
|
+
appName: appInfo?.app_name ?? "\u5999\u642D\u5E94\u7528",
|
|
285
241
|
appAvatar: appInfo?.app_avatar ?? "",
|
|
286
|
-
appDescription:
|
|
242
|
+
appDescription: appInfo?.app_description ?? ""
|
|
287
243
|
};
|
|
288
244
|
next();
|
|
289
245
|
}
|
|
@@ -473,26 +429,30 @@ var HttpInterceptorService = class {
|
|
|
473
429
|
setupInterceptors() {
|
|
474
430
|
const axiosInstance = this.httpService.axiosRef;
|
|
475
431
|
axiosInstance.interceptors.request.use((config) => {
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
432
|
+
if (process.env.NODE_ENV === "development") {
|
|
433
|
+
this.logger.log("HTTP Request", {
|
|
434
|
+
method: config.method?.toUpperCase(),
|
|
435
|
+
url: config.url,
|
|
436
|
+
headers: config.headers,
|
|
437
|
+
params: config.params,
|
|
438
|
+
data: config.data
|
|
439
|
+
}, "HttpService");
|
|
440
|
+
}
|
|
483
441
|
return config;
|
|
484
442
|
}, (error) => {
|
|
485
443
|
this.logger.error("HTTP Request Error", error, "HttpService");
|
|
486
444
|
return Promise.reject(error);
|
|
487
445
|
});
|
|
488
446
|
axiosInstance.interceptors.response.use((response) => {
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
447
|
+
if (process.env.NODE_ENV === "development") {
|
|
448
|
+
this.logger.log("HTTP Response", {
|
|
449
|
+
method: response.config.method?.toUpperCase(),
|
|
450
|
+
url: response.config.url,
|
|
451
|
+
status: response.status,
|
|
452
|
+
statusText: response.statusText,
|
|
453
|
+
data: response.data
|
|
454
|
+
}, "HttpService");
|
|
455
|
+
}
|
|
496
456
|
return response;
|
|
497
457
|
}, (error) => {
|
|
498
458
|
this.logger.error("HTTP Response Error", {
|
|
@@ -735,14 +695,14 @@ var PlatformHttpClientService = class _PlatformHttpClientService {
|
|
|
735
695
|
*/
|
|
736
696
|
registerGlobalInterceptors() {
|
|
737
697
|
this.client.interceptors.request.use((config) => {
|
|
738
|
-
this.logger.
|
|
698
|
+
this.logger.debug(`Server SDK HTTP Request: ${config.method?.toUpperCase()} ${config.url}`);
|
|
739
699
|
return config;
|
|
740
700
|
}, (error) => {
|
|
741
|
-
this.logger.error("HTTP Request Error", error, "HttpService");
|
|
701
|
+
this.logger.error("Server SDK HTTP Request Error", error, "HttpService");
|
|
742
702
|
return Promise.reject(error);
|
|
743
703
|
});
|
|
744
704
|
this.client.interceptors.response.use((response) => {
|
|
745
|
-
this.logger.
|
|
705
|
+
this.logger.debug(`Server SDK HTTP Response: ${response.status} ${response.url}`);
|
|
746
706
|
return response;
|
|
747
707
|
}, (error) => {
|
|
748
708
|
const errorLog = {
|
|
@@ -750,7 +710,7 @@ var PlatformHttpClientService = class _PlatformHttpClientService {
|
|
|
750
710
|
statusText: error.response?.statusText,
|
|
751
711
|
message: error.message
|
|
752
712
|
};
|
|
753
|
-
this.logger.error(`HTTP Response Error: ${error.config?.method?.toUpperCase()} ${error.config?.url} ${JSON.stringify(errorLog)}`);
|
|
713
|
+
this.logger.error(`Server SDK HTTP Response Error: ${error.config?.method?.toUpperCase()} ${error.config?.url} ${JSON.stringify(errorLog)}`);
|
|
754
714
|
return Promise.reject(error);
|
|
755
715
|
});
|
|
756
716
|
}
|
|
@@ -761,9 +721,6 @@ PlatformHttpClientService = _ts_decorate8([
|
|
|
761
721
|
_ts_metadata5("design:paramtypes", [])
|
|
762
722
|
], PlatformHttpClientService);
|
|
763
723
|
|
|
764
|
-
// src/modules/platform/config/feature-switch.ts
|
|
765
|
-
var DISABLE_DATAPASS = process.env.FORCE_FRAMEWORK_DISABLE_DATAPASS === "true";
|
|
766
|
-
|
|
767
724
|
// src/modules/platform/module.ts
|
|
768
725
|
function _ts_decorate9(decorators, target, key, desc) {
|
|
769
726
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
@@ -800,35 +757,34 @@ var PlatformModule = class _PlatformModule {
|
|
|
800
757
|
timeout: 5e3,
|
|
801
758
|
maxRedirects: 5
|
|
802
759
|
}),
|
|
803
|
-
|
|
804
|
-
|
|
805
|
-
|
|
806
|
-
|
|
807
|
-
|
|
808
|
-
|
|
809
|
-
|
|
810
|
-
|
|
811
|
-
|
|
812
|
-
|
|
813
|
-
]
|
|
814
|
-
|
|
815
|
-
|
|
816
|
-
|
|
817
|
-
|
|
818
|
-
logQuery(query, params) {
|
|
760
|
+
import_nestjs_datapaas.DataPaasModule.forRootAsync({
|
|
761
|
+
imports: [
|
|
762
|
+
import_config2.ConfigModule,
|
|
763
|
+
import_nestjs_logger2.LoggerModule
|
|
764
|
+
],
|
|
765
|
+
inject: [
|
|
766
|
+
import_config2.ConfigService,
|
|
767
|
+
import_nestjs_logger2.AppLogger
|
|
768
|
+
],
|
|
769
|
+
useFactory: /* @__PURE__ */ __name(async (...args) => {
|
|
770
|
+
const configService = args[0];
|
|
771
|
+
const appLogger = args[1];
|
|
772
|
+
const drizzleLogger = {
|
|
773
|
+
logQuery(query, params) {
|
|
774
|
+
if (process.env.NODE_ENV === "development") {
|
|
819
775
|
appLogger.log?.("SQL Query " + JSON.stringify({
|
|
820
776
|
query,
|
|
821
777
|
params
|
|
822
778
|
}), "Database");
|
|
823
779
|
}
|
|
824
|
-
}
|
|
825
|
-
|
|
826
|
-
|
|
827
|
-
|
|
828
|
-
|
|
829
|
-
}
|
|
830
|
-
})
|
|
831
|
-
|
|
780
|
+
}
|
|
781
|
+
};
|
|
782
|
+
return {
|
|
783
|
+
connectionString: configService.get("app.databaseUrl") ?? "",
|
|
784
|
+
logger: drizzleLogger
|
|
785
|
+
};
|
|
786
|
+
}, "useFactory")
|
|
787
|
+
}),
|
|
832
788
|
import_nestjs_authnpaas.AuthNPaasModule.forRoot(),
|
|
833
789
|
import_nestjs_trigger.AutomationModule.forRoot()
|
|
834
790
|
],
|
|
@@ -858,7 +814,11 @@ var PlatformModule = class _PlatformModule {
|
|
|
858
814
|
PlatformHttpClientService
|
|
859
815
|
]
|
|
860
816
|
},
|
|
861
|
-
HttpInterceptorService
|
|
817
|
+
HttpInterceptorService,
|
|
818
|
+
{
|
|
819
|
+
provide: import_core2.APP_INTERCEPTOR,
|
|
820
|
+
useClass: import_nestjs_observable.TraceInterceptor
|
|
821
|
+
}
|
|
862
822
|
],
|
|
863
823
|
exports: [
|
|
864
824
|
import_config2.ConfigModule,
|
|
@@ -878,7 +838,7 @@ var PlatformModule = class _PlatformModule {
|
|
|
878
838
|
if (process.env.NODE_ENV === "development") {
|
|
879
839
|
consumer.apply(FrameworkDebugMiddleware).forRoutes("/api/__framework__/debug");
|
|
880
840
|
}
|
|
881
|
-
consumer.apply(UserContextMiddleware, RequestContextMiddleware, import_nestjs_logger2.LoggerContextMiddleware, import_nestjs_datapaas.SqlExecutionContextMiddleware).forRoutes("/*");
|
|
841
|
+
consumer.apply(UserContextMiddleware, RequestContextMiddleware, import_nestjs_logger2.LoggerContextMiddleware, import_nestjs_observable.ObservableTraceMiddleware, import_nestjs_datapaas.SqlExecutionContextMiddleware).forRoutes("/*");
|
|
882
842
|
consumer.apply(CsrfTokenMiddleware, ViewContextMiddleware).exclude("/api/(.*)").forRoutes("*");
|
|
883
843
|
if (options.enableCsrf !== false) {
|
|
884
844
|
const csrfRoutes = options.csrfRoutes || "/api/*";
|
|
@@ -910,7 +870,6 @@ async function configureApp(app, perms = defaultPerms) {
|
|
|
910
870
|
app.use((0, import_cookie_parser.default)());
|
|
911
871
|
const globalPrefix = process.env.CLIENT_BASE_PATH ?? "";
|
|
912
872
|
app.setGlobalPrefix(globalPrefix);
|
|
913
|
-
app.set("trust proxy", true);
|
|
914
873
|
if (process.env.NODE_ENV !== "production" && perms.disableSwagger !== true) {
|
|
915
874
|
try {
|
|
916
875
|
await import_nestjs_openapi_devtools.DevToolsV2Module.mount(app, {
|
|
@@ -931,8 +890,10 @@ __reExport(index_exports, require("@lark-apaas/nestjs-authnpaas"), module.export
|
|
|
931
890
|
__reExport(index_exports, require("@lark-apaas/nestjs-datapaas"), module.exports);
|
|
932
891
|
__reExport(index_exports, require("@lark-apaas/nestjs-observable"), module.exports);
|
|
933
892
|
__reExport(index_exports, require("@lark-apaas/nestjs-trigger"), module.exports);
|
|
893
|
+
var import_nestjs_common5 = require("@lark-apaas/nestjs-common");
|
|
934
894
|
// Annotate the CommonJS export names for ESM import in node:
|
|
935
895
|
0 && (module.exports = {
|
|
896
|
+
AutoTrace,
|
|
936
897
|
CsrfMiddleware,
|
|
937
898
|
CsrfTokenMiddleware,
|
|
938
899
|
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";
|
|
@@ -128,51 +128,6 @@ CsrfMiddleware = _ts_decorate2([
|
|
|
128
128
|
// src/middlewares/view-context/index.ts
|
|
129
129
|
import { Inject, Injectable as Injectable3, Logger } from "@nestjs/common";
|
|
130
130
|
import { PLATFORM_HTTP_CLIENT } from "@lark-apaas/nestjs-common";
|
|
131
|
-
|
|
132
|
-
// src/utils/safe-stringify.ts
|
|
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
|
-
});
|
|
172
|
-
}
|
|
173
|
-
__name(safeEscape, "safeEscape");
|
|
174
|
-
|
|
175
|
-
// src/middlewares/view-context/index.ts
|
|
176
131
|
function _ts_decorate3(decorators, target, key, desc) {
|
|
177
132
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
178
133
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
@@ -228,9 +183,9 @@ var ViewContextMiddleware = class _ViewContextMiddleware {
|
|
|
228
183
|
csrfToken: csrfToken ?? "",
|
|
229
184
|
userId: userId ?? "",
|
|
230
185
|
appId: appId ?? "",
|
|
231
|
-
appName:
|
|
186
|
+
appName: appInfo?.app_name ?? "",
|
|
232
187
|
appAvatar: appInfo?.app_avatar ?? "",
|
|
233
|
-
appDescription:
|
|
188
|
+
appDescription: appInfo?.app_description ?? "",
|
|
234
189
|
tenantId
|
|
235
190
|
};
|
|
236
191
|
res.locals = {
|
|
@@ -239,9 +194,9 @@ var ViewContextMiddleware = class _ViewContextMiddleware {
|
|
|
239
194
|
userId: userId ?? "",
|
|
240
195
|
tenantId: tenantId ?? "",
|
|
241
196
|
appId: appId ?? "",
|
|
242
|
-
appName:
|
|
197
|
+
appName: appInfo?.app_name ?? "\u5999\u642D\u5E94\u7528",
|
|
243
198
|
appAvatar: appInfo?.app_avatar ?? "",
|
|
244
|
-
appDescription:
|
|
199
|
+
appDescription: appInfo?.app_description ?? ""
|
|
245
200
|
};
|
|
246
201
|
next();
|
|
247
202
|
}
|
|
@@ -431,26 +386,30 @@ var HttpInterceptorService = class {
|
|
|
431
386
|
setupInterceptors() {
|
|
432
387
|
const axiosInstance = this.httpService.axiosRef;
|
|
433
388
|
axiosInstance.interceptors.request.use((config) => {
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
389
|
+
if (process.env.NODE_ENV === "development") {
|
|
390
|
+
this.logger.log("HTTP Request", {
|
|
391
|
+
method: config.method?.toUpperCase(),
|
|
392
|
+
url: config.url,
|
|
393
|
+
headers: config.headers,
|
|
394
|
+
params: config.params,
|
|
395
|
+
data: config.data
|
|
396
|
+
}, "HttpService");
|
|
397
|
+
}
|
|
441
398
|
return config;
|
|
442
399
|
}, (error) => {
|
|
443
400
|
this.logger.error("HTTP Request Error", error, "HttpService");
|
|
444
401
|
return Promise.reject(error);
|
|
445
402
|
});
|
|
446
403
|
axiosInstance.interceptors.response.use((response) => {
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
404
|
+
if (process.env.NODE_ENV === "development") {
|
|
405
|
+
this.logger.log("HTTP Response", {
|
|
406
|
+
method: response.config.method?.toUpperCase(),
|
|
407
|
+
url: response.config.url,
|
|
408
|
+
status: response.status,
|
|
409
|
+
statusText: response.statusText,
|
|
410
|
+
data: response.data
|
|
411
|
+
}, "HttpService");
|
|
412
|
+
}
|
|
454
413
|
return response;
|
|
455
414
|
}, (error) => {
|
|
456
415
|
this.logger.error("HTTP Response Error", {
|
|
@@ -693,14 +652,14 @@ var PlatformHttpClientService = class _PlatformHttpClientService {
|
|
|
693
652
|
*/
|
|
694
653
|
registerGlobalInterceptors() {
|
|
695
654
|
this.client.interceptors.request.use((config) => {
|
|
696
|
-
this.logger.
|
|
655
|
+
this.logger.debug(`Server SDK HTTP Request: ${config.method?.toUpperCase()} ${config.url}`);
|
|
697
656
|
return config;
|
|
698
657
|
}, (error) => {
|
|
699
|
-
this.logger.error("HTTP Request Error", error, "HttpService");
|
|
658
|
+
this.logger.error("Server SDK HTTP Request Error", error, "HttpService");
|
|
700
659
|
return Promise.reject(error);
|
|
701
660
|
});
|
|
702
661
|
this.client.interceptors.response.use((response) => {
|
|
703
|
-
this.logger.
|
|
662
|
+
this.logger.debug(`Server SDK HTTP Response: ${response.status} ${response.url}`);
|
|
704
663
|
return response;
|
|
705
664
|
}, (error) => {
|
|
706
665
|
const errorLog = {
|
|
@@ -708,7 +667,7 @@ var PlatformHttpClientService = class _PlatformHttpClientService {
|
|
|
708
667
|
statusText: error.response?.statusText,
|
|
709
668
|
message: error.message
|
|
710
669
|
};
|
|
711
|
-
this.logger.error(`HTTP Response Error: ${error.config?.method?.toUpperCase()} ${error.config?.url} ${JSON.stringify(errorLog)}`);
|
|
670
|
+
this.logger.error(`Server SDK HTTP Response Error: ${error.config?.method?.toUpperCase()} ${error.config?.url} ${JSON.stringify(errorLog)}`);
|
|
712
671
|
return Promise.reject(error);
|
|
713
672
|
});
|
|
714
673
|
}
|
|
@@ -719,9 +678,6 @@ PlatformHttpClientService = _ts_decorate8([
|
|
|
719
678
|
_ts_metadata5("design:paramtypes", [])
|
|
720
679
|
], PlatformHttpClientService);
|
|
721
680
|
|
|
722
|
-
// src/modules/platform/config/feature-switch.ts
|
|
723
|
-
var DISABLE_DATAPASS = process.env.FORCE_FRAMEWORK_DISABLE_DATAPASS === "true";
|
|
724
|
-
|
|
725
681
|
// src/modules/platform/module.ts
|
|
726
682
|
function _ts_decorate9(decorators, target, key, desc) {
|
|
727
683
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
@@ -758,35 +714,34 @@ var PlatformModule = class _PlatformModule {
|
|
|
758
714
|
timeout: 5e3,
|
|
759
715
|
maxRedirects: 5
|
|
760
716
|
}),
|
|
761
|
-
|
|
762
|
-
|
|
763
|
-
|
|
764
|
-
|
|
765
|
-
|
|
766
|
-
|
|
767
|
-
|
|
768
|
-
|
|
769
|
-
|
|
770
|
-
|
|
771
|
-
]
|
|
772
|
-
|
|
773
|
-
|
|
774
|
-
|
|
775
|
-
|
|
776
|
-
logQuery(query, params) {
|
|
717
|
+
DataPaasModule.forRootAsync({
|
|
718
|
+
imports: [
|
|
719
|
+
ConfigModule,
|
|
720
|
+
LoggerModule
|
|
721
|
+
],
|
|
722
|
+
inject: [
|
|
723
|
+
ConfigService,
|
|
724
|
+
AppLogger2
|
|
725
|
+
],
|
|
726
|
+
useFactory: /* @__PURE__ */ __name(async (...args) => {
|
|
727
|
+
const configService = args[0];
|
|
728
|
+
const appLogger = args[1];
|
|
729
|
+
const drizzleLogger = {
|
|
730
|
+
logQuery(query, params) {
|
|
731
|
+
if (process.env.NODE_ENV === "development") {
|
|
777
732
|
appLogger.log?.("SQL Query " + JSON.stringify({
|
|
778
733
|
query,
|
|
779
734
|
params
|
|
780
735
|
}), "Database");
|
|
781
736
|
}
|
|
782
|
-
}
|
|
783
|
-
|
|
784
|
-
|
|
785
|
-
|
|
786
|
-
|
|
787
|
-
}
|
|
788
|
-
})
|
|
789
|
-
|
|
737
|
+
}
|
|
738
|
+
};
|
|
739
|
+
return {
|
|
740
|
+
connectionString: configService.get("app.databaseUrl") ?? "",
|
|
741
|
+
logger: drizzleLogger
|
|
742
|
+
};
|
|
743
|
+
}, "useFactory")
|
|
744
|
+
}),
|
|
790
745
|
AuthNPaasModule.forRoot(),
|
|
791
746
|
AutomationModule.forRoot()
|
|
792
747
|
],
|
|
@@ -816,7 +771,11 @@ var PlatformModule = class _PlatformModule {
|
|
|
816
771
|
PlatformHttpClientService
|
|
817
772
|
]
|
|
818
773
|
},
|
|
819
|
-
HttpInterceptorService
|
|
774
|
+
HttpInterceptorService,
|
|
775
|
+
{
|
|
776
|
+
provide: APP_INTERCEPTOR,
|
|
777
|
+
useClass: TraceInterceptor
|
|
778
|
+
}
|
|
820
779
|
],
|
|
821
780
|
exports: [
|
|
822
781
|
ConfigModule,
|
|
@@ -836,7 +795,7 @@ var PlatformModule = class _PlatformModule {
|
|
|
836
795
|
if (process.env.NODE_ENV === "development") {
|
|
837
796
|
consumer.apply(FrameworkDebugMiddleware).forRoutes("/api/__framework__/debug");
|
|
838
797
|
}
|
|
839
|
-
consumer.apply(UserContextMiddleware, RequestContextMiddleware, LoggerContextMiddleware, SqlExecutionContextMiddleware).forRoutes("/*");
|
|
798
|
+
consumer.apply(UserContextMiddleware, RequestContextMiddleware, LoggerContextMiddleware, ObservableTraceMiddleware, SqlExecutionContextMiddleware).forRoutes("/*");
|
|
840
799
|
consumer.apply(CsrfTokenMiddleware, ViewContextMiddleware).exclude("/api/(.*)").forRoutes("*");
|
|
841
800
|
if (options.enableCsrf !== false) {
|
|
842
801
|
const csrfRoutes = options.csrfRoutes || "/api/*";
|
|
@@ -868,7 +827,6 @@ async function configureApp(app, perms = defaultPerms) {
|
|
|
868
827
|
app.use(cookieParser());
|
|
869
828
|
const globalPrefix = process.env.CLIENT_BASE_PATH ?? "";
|
|
870
829
|
app.setGlobalPrefix(globalPrefix);
|
|
871
|
-
app.set("trust proxy", true);
|
|
872
830
|
if (process.env.NODE_ENV !== "production" && perms.disableSwagger !== true) {
|
|
873
831
|
try {
|
|
874
832
|
await DevToolsV2Module.mount(app, {
|
|
@@ -889,7 +847,9 @@ export * from "@lark-apaas/nestjs-authnpaas";
|
|
|
889
847
|
export * from "@lark-apaas/nestjs-datapaas";
|
|
890
848
|
export * from "@lark-apaas/nestjs-observable";
|
|
891
849
|
export * from "@lark-apaas/nestjs-trigger";
|
|
850
|
+
import { AutoTrace } from "@lark-apaas/nestjs-common";
|
|
892
851
|
export {
|
|
852
|
+
AutoTrace,
|
|
893
853
|
CsrfMiddleware,
|
|
894
854
|
CsrfTokenMiddleware,
|
|
895
855
|
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.
|
|
3
|
+
"version": "1.1.12-alpha.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.
|
|
44
|
+
"@lark-apaas/nestjs-common": "^0.1.1",
|
|
45
45
|
"@lark-apaas/nestjs-datapaas": "^1.0.7",
|
|
46
|
-
"@lark-apaas/nestjs-logger": "^1.0.
|
|
47
|
-
"@lark-apaas/nestjs-observable": "^0.0.
|
|
46
|
+
"@lark-apaas/nestjs-logger": "^1.0.6-alpha.0",
|
|
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",
|
|
@@ -73,4 +72,4 @@
|
|
|
73
72
|
"class-validator": "^0.14.2",
|
|
74
73
|
"drizzle-orm": "0.44.6"
|
|
75
74
|
}
|
|
76
|
-
}
|
|
75
|
+
}
|