@lark-apaas/fullstack-nestjs-core 1.1.12-alpha.0 → 1.1.12-alpha.10
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 +86 -79
- package/dist/index.d.cts +1 -6
- package/dist/index.d.ts +1 -6
- package/dist/index.js +82 -73
- package/package.json +3 -2
package/dist/index.cjs
CHANGED
|
@@ -36,17 +36,15 @@ __export(index_exports, {
|
|
|
36
36
|
CsrfTokenMiddleware: () => CsrfTokenMiddleware,
|
|
37
37
|
DevToolsModule: () => import_nestjs_openapi_devtools2.DevToolsModule,
|
|
38
38
|
DevToolsV2Module: () => import_nestjs_openapi_devtools2.DevToolsV2Module,
|
|
39
|
-
ForwardedHostMiddleware: () => ForwardedHostMiddleware,
|
|
40
39
|
PlatformModule: () => PlatformModule,
|
|
41
40
|
UserContextMiddleware: () => UserContextMiddleware,
|
|
42
41
|
ViewContextMiddleware: () => ViewContextMiddleware,
|
|
43
|
-
configureApp: () => configureApp
|
|
44
|
-
forwardedHostExpressMiddleware: () => forwardedHostExpressMiddleware
|
|
42
|
+
configureApp: () => configureApp
|
|
45
43
|
});
|
|
46
44
|
module.exports = __toCommonJS(index_exports);
|
|
47
45
|
|
|
48
46
|
// src/modules/platform/module.ts
|
|
49
|
-
var
|
|
47
|
+
var import_common9 = require("@nestjs/common");
|
|
50
48
|
var import_core2 = require("@nestjs/core");
|
|
51
49
|
var import_nestjs_common3 = require("@lark-apaas/nestjs-common");
|
|
52
50
|
var import_config2 = require("@nestjs/config");
|
|
@@ -172,6 +170,47 @@ CsrfMiddleware = _ts_decorate2([
|
|
|
172
170
|
// src/middlewares/view-context/index.ts
|
|
173
171
|
var import_common3 = require("@nestjs/common");
|
|
174
172
|
var import_nestjs_common = require("@lark-apaas/nestjs-common");
|
|
173
|
+
|
|
174
|
+
// src/utils/safe-stringify.ts
|
|
175
|
+
function escapeChar(c) {
|
|
176
|
+
switch (c.charCodeAt(0)) {
|
|
177
|
+
case 60:
|
|
178
|
+
return "\\u003c";
|
|
179
|
+
case 62:
|
|
180
|
+
return "\\u003e";
|
|
181
|
+
case 38:
|
|
182
|
+
return "\\u0026";
|
|
183
|
+
case 61:
|
|
184
|
+
return "\\u003d";
|
|
185
|
+
case 39:
|
|
186
|
+
return "\\u0027";
|
|
187
|
+
case 34:
|
|
188
|
+
return "\\u0022";
|
|
189
|
+
case 123:
|
|
190
|
+
return "\\u007b";
|
|
191
|
+
case 125:
|
|
192
|
+
return "\\u007d";
|
|
193
|
+
case 40:
|
|
194
|
+
return "\\u0028";
|
|
195
|
+
case 41:
|
|
196
|
+
return "\\u0029";
|
|
197
|
+
case 10:
|
|
198
|
+
return "\\n";
|
|
199
|
+
case 8232:
|
|
200
|
+
return "\\u2028";
|
|
201
|
+
case 8233:
|
|
202
|
+
return "\\u2029";
|
|
203
|
+
default:
|
|
204
|
+
return c;
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
__name(escapeChar, "escapeChar");
|
|
208
|
+
function safeEscape(s) {
|
|
209
|
+
return s.replace(/[<>&='"{}()\n\u2028\u2029]/g, escapeChar);
|
|
210
|
+
}
|
|
211
|
+
__name(safeEscape, "safeEscape");
|
|
212
|
+
|
|
213
|
+
// src/middlewares/view-context/index.ts
|
|
175
214
|
function _ts_decorate3(decorators, target, key, desc) {
|
|
176
215
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
177
216
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
@@ -227,9 +266,9 @@ var ViewContextMiddleware = class _ViewContextMiddleware {
|
|
|
227
266
|
csrfToken: csrfToken ?? "",
|
|
228
267
|
userId: userId ?? "",
|
|
229
268
|
appId: appId ?? "",
|
|
230
|
-
appName: appInfo?.app_name ?? "",
|
|
269
|
+
appName: safeEscape(appInfo?.app_name ?? "\u5999\u642D\u5E94\u7528"),
|
|
231
270
|
appAvatar: appInfo?.app_avatar ?? "",
|
|
232
|
-
appDescription: appInfo?.app_description ?? "",
|
|
271
|
+
appDescription: safeEscape(appInfo?.app_description ?? ""),
|
|
233
272
|
tenantId
|
|
234
273
|
};
|
|
235
274
|
res.locals = {
|
|
@@ -238,9 +277,9 @@ var ViewContextMiddleware = class _ViewContextMiddleware {
|
|
|
238
277
|
userId: userId ?? "",
|
|
239
278
|
tenantId: tenantId ?? "",
|
|
240
279
|
appId: appId ?? "",
|
|
241
|
-
appName: appInfo?.app_name ?? "\u5999\u642D\u5E94\u7528",
|
|
280
|
+
appName: safeEscape(appInfo?.app_name ?? "\u5999\u642D\u5E94\u7528"),
|
|
242
281
|
appAvatar: appInfo?.app_avatar ?? "",
|
|
243
|
-
appDescription: appInfo?.app_description ?? ""
|
|
282
|
+
appDescription: safeEscape(appInfo?.app_description ?? "")
|
|
244
283
|
};
|
|
245
284
|
next();
|
|
246
285
|
}
|
|
@@ -718,50 +757,17 @@ PlatformHttpClientService = _ts_decorate8([
|
|
|
718
757
|
_ts_metadata5("design:paramtypes", [])
|
|
719
758
|
], PlatformHttpClientService);
|
|
720
759
|
|
|
721
|
-
// src/
|
|
722
|
-
var
|
|
723
|
-
function _ts_decorate9(decorators, target, key, desc) {
|
|
724
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
725
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
726
|
-
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;
|
|
727
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
728
|
-
}
|
|
729
|
-
__name(_ts_decorate9, "_ts_decorate");
|
|
730
|
-
function normalizeForwardedHost(raw) {
|
|
731
|
-
if (!raw) return void 0;
|
|
732
|
-
const combined = Array.isArray(raw) ? raw.join(",") : raw;
|
|
733
|
-
const first = combined.split(",")[0]?.trim();
|
|
734
|
-
return first || void 0;
|
|
735
|
-
}
|
|
736
|
-
__name(normalizeForwardedHost, "normalizeForwardedHost");
|
|
737
|
-
function forwardedHostExpressMiddleware(req, _res, next) {
|
|
738
|
-
const forwardedHost = normalizeForwardedHost(req.headers["x-forwarded-host"]);
|
|
739
|
-
if (forwardedHost) {
|
|
740
|
-
req.headers.host = forwardedHost;
|
|
741
|
-
}
|
|
742
|
-
next();
|
|
743
|
-
}
|
|
744
|
-
__name(forwardedHostExpressMiddleware, "forwardedHostExpressMiddleware");
|
|
745
|
-
var ForwardedHostMiddleware = class {
|
|
746
|
-
static {
|
|
747
|
-
__name(this, "ForwardedHostMiddleware");
|
|
748
|
-
}
|
|
749
|
-
use(req, res, next) {
|
|
750
|
-
forwardedHostExpressMiddleware(req, res, next);
|
|
751
|
-
}
|
|
752
|
-
};
|
|
753
|
-
ForwardedHostMiddleware = _ts_decorate9([
|
|
754
|
-
(0, import_common9.Injectable)()
|
|
755
|
-
], ForwardedHostMiddleware);
|
|
760
|
+
// src/modules/platform/config/feature-switch.ts
|
|
761
|
+
var DISABLE_DATAPASS = process.env.FORCE_FRAMEWORK_DISABLE_DATAPASS === "true";
|
|
756
762
|
|
|
757
763
|
// src/modules/platform/module.ts
|
|
758
|
-
function
|
|
764
|
+
function _ts_decorate9(decorators, target, key, desc) {
|
|
759
765
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
760
766
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
761
767
|
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;
|
|
762
768
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
763
769
|
}
|
|
764
|
-
__name(
|
|
770
|
+
__name(_ts_decorate9, "_ts_decorate");
|
|
765
771
|
var PLATFORM_MODULE_OPTIONS = /* @__PURE__ */ Symbol("PLATFORM_MODULE_OPTIONS");
|
|
766
772
|
var PlatformModule = class _PlatformModule {
|
|
767
773
|
static {
|
|
@@ -790,32 +796,35 @@ var PlatformModule = class _PlatformModule {
|
|
|
790
796
|
timeout: 5e3,
|
|
791
797
|
maxRedirects: 5
|
|
792
798
|
}),
|
|
793
|
-
|
|
794
|
-
|
|
795
|
-
|
|
796
|
-
|
|
797
|
-
|
|
798
|
-
|
|
799
|
-
|
|
800
|
-
|
|
801
|
-
|
|
802
|
-
|
|
803
|
-
|
|
804
|
-
|
|
805
|
-
|
|
806
|
-
|
|
807
|
-
|
|
808
|
-
|
|
809
|
-
|
|
810
|
-
|
|
811
|
-
|
|
812
|
-
|
|
813
|
-
|
|
814
|
-
|
|
815
|
-
|
|
816
|
-
|
|
817
|
-
|
|
818
|
-
|
|
799
|
+
// 读取环境变量判断是否启用 DataPaasModule
|
|
800
|
+
...DISABLE_DATAPASS ? [] : [
|
|
801
|
+
import_nestjs_datapaas.DataPaasModule.forRootAsync({
|
|
802
|
+
imports: [
|
|
803
|
+
import_config2.ConfigModule,
|
|
804
|
+
import_nestjs_logger2.LoggerModule
|
|
805
|
+
],
|
|
806
|
+
inject: [
|
|
807
|
+
import_config2.ConfigService,
|
|
808
|
+
import_nestjs_logger2.AppLogger
|
|
809
|
+
],
|
|
810
|
+
useFactory: /* @__PURE__ */ __name(async (...args) => {
|
|
811
|
+
const configService = args[0];
|
|
812
|
+
const appLogger = args[1];
|
|
813
|
+
const drizzleLogger = {
|
|
814
|
+
logQuery(query, params) {
|
|
815
|
+
appLogger.log?.("SQL Query " + JSON.stringify({
|
|
816
|
+
query,
|
|
817
|
+
params
|
|
818
|
+
}), "Database");
|
|
819
|
+
}
|
|
820
|
+
};
|
|
821
|
+
return {
|
|
822
|
+
connectionString: configService.get("app.databaseUrl") ?? "",
|
|
823
|
+
logger: drizzleLogger
|
|
824
|
+
};
|
|
825
|
+
}, "useFactory")
|
|
826
|
+
})
|
|
827
|
+
],
|
|
819
828
|
import_nestjs_authnpaas.AuthNPaasModule.forRoot(),
|
|
820
829
|
import_nestjs_trigger.AutomationModule.forRoot()
|
|
821
830
|
],
|
|
@@ -826,7 +835,7 @@ var PlatformModule = class _PlatformModule {
|
|
|
826
835
|
},
|
|
827
836
|
{
|
|
828
837
|
provide: import_core2.APP_PIPE,
|
|
829
|
-
useValue: new
|
|
838
|
+
useValue: new import_common9.ValidationPipe({
|
|
830
839
|
transform: true,
|
|
831
840
|
transformOptions: {
|
|
832
841
|
enableImplicitConversion: true
|
|
@@ -865,7 +874,7 @@ var PlatformModule = class _PlatformModule {
|
|
|
865
874
|
if (process.env.NODE_ENV === "development") {
|
|
866
875
|
consumer.apply(FrameworkDebugMiddleware).forRoutes("/api/__framework__/debug");
|
|
867
876
|
}
|
|
868
|
-
consumer.apply(
|
|
877
|
+
consumer.apply(UserContextMiddleware, RequestContextMiddleware, import_nestjs_logger2.LoggerContextMiddleware, import_nestjs_datapaas.SqlExecutionContextMiddleware).forRoutes("/*");
|
|
869
878
|
consumer.apply(CsrfTokenMiddleware, ViewContextMiddleware).exclude("/api/(.*)").forRoutes("*");
|
|
870
879
|
if (options.enableCsrf !== false) {
|
|
871
880
|
const csrfRoutes = options.csrfRoutes || "/api/*";
|
|
@@ -879,9 +888,9 @@ var PlatformModule = class _PlatformModule {
|
|
|
879
888
|
}
|
|
880
889
|
}
|
|
881
890
|
};
|
|
882
|
-
PlatformModule =
|
|
883
|
-
(0,
|
|
884
|
-
(0,
|
|
891
|
+
PlatformModule = _ts_decorate9([
|
|
892
|
+
(0, import_common9.Global)(),
|
|
893
|
+
(0, import_common9.Module)({})
|
|
885
894
|
], PlatformModule);
|
|
886
895
|
|
|
887
896
|
// src/setup.ts
|
|
@@ -895,9 +904,9 @@ async function configureApp(app, perms = defaultPerms) {
|
|
|
895
904
|
app.useLogger(app.get(import_nestjs_logger3.AppLogger));
|
|
896
905
|
app.flushLogs();
|
|
897
906
|
app.use((0, import_cookie_parser.default)());
|
|
898
|
-
app.use(forwardedHostExpressMiddleware);
|
|
899
907
|
const globalPrefix = process.env.CLIENT_BASE_PATH ?? "";
|
|
900
908
|
app.setGlobalPrefix(globalPrefix);
|
|
909
|
+
app.set("trust proxy", true);
|
|
901
910
|
if (process.env.NODE_ENV !== "production" && perms.disableSwagger !== true) {
|
|
902
911
|
try {
|
|
903
912
|
await import_nestjs_openapi_devtools.DevToolsV2Module.mount(app, {
|
|
@@ -924,12 +933,10 @@ __reExport(index_exports, require("@lark-apaas/nestjs-trigger"), module.exports)
|
|
|
924
933
|
CsrfTokenMiddleware,
|
|
925
934
|
DevToolsModule,
|
|
926
935
|
DevToolsV2Module,
|
|
927
|
-
ForwardedHostMiddleware,
|
|
928
936
|
PlatformModule,
|
|
929
937
|
UserContextMiddleware,
|
|
930
938
|
ViewContextMiddleware,
|
|
931
939
|
configureApp,
|
|
932
|
-
forwardedHostExpressMiddleware,
|
|
933
940
|
...require("@lark-apaas/nestjs-authnpaas"),
|
|
934
941
|
...require("@lark-apaas/nestjs-datapaas"),
|
|
935
942
|
...require("@lark-apaas/nestjs-observable"),
|
package/dist/index.d.cts
CHANGED
|
@@ -117,11 +117,6 @@ declare class ViewContextMiddleware implements NestMiddleware {
|
|
|
117
117
|
use(req: Request, res: Response, next: NextFunction): Promise<void>;
|
|
118
118
|
}
|
|
119
119
|
|
|
120
|
-
declare function forwardedHostExpressMiddleware(req: Request, _res: Response, next: NextFunction): void;
|
|
121
|
-
declare class ForwardedHostMiddleware implements NestMiddleware {
|
|
122
|
-
use(req: Request, res: Response, next: NextFunction): void;
|
|
123
|
-
}
|
|
124
|
-
|
|
125
120
|
/**
|
|
126
121
|
* API 404 响应格式
|
|
127
122
|
*/
|
|
@@ -133,4 +128,4 @@ interface ApiNotFoundResponse {
|
|
|
133
128
|
timestamp: string;
|
|
134
129
|
}
|
|
135
130
|
|
|
136
|
-
export { type ApiNotFoundResponse, CsrfMiddleware, CsrfTokenMiddleware,
|
|
131
|
+
export { type ApiNotFoundResponse, CsrfMiddleware, CsrfTokenMiddleware, type PlatformHttpClientOptions, PlatformModule, type PlatformModuleOptions, UserContextMiddleware, ViewContextMiddleware, configureApp };
|
package/dist/index.d.ts
CHANGED
|
@@ -117,11 +117,6 @@ declare class ViewContextMiddleware implements NestMiddleware {
|
|
|
117
117
|
use(req: Request, res: Response, next: NextFunction): Promise<void>;
|
|
118
118
|
}
|
|
119
119
|
|
|
120
|
-
declare function forwardedHostExpressMiddleware(req: Request, _res: Response, next: NextFunction): void;
|
|
121
|
-
declare class ForwardedHostMiddleware implements NestMiddleware {
|
|
122
|
-
use(req: Request, res: Response, next: NextFunction): void;
|
|
123
|
-
}
|
|
124
|
-
|
|
125
120
|
/**
|
|
126
121
|
* API 404 响应格式
|
|
127
122
|
*/
|
|
@@ -133,4 +128,4 @@ interface ApiNotFoundResponse {
|
|
|
133
128
|
timestamp: string;
|
|
134
129
|
}
|
|
135
130
|
|
|
136
|
-
export { type ApiNotFoundResponse, CsrfMiddleware, CsrfTokenMiddleware,
|
|
131
|
+
export { type ApiNotFoundResponse, CsrfMiddleware, CsrfTokenMiddleware, type PlatformHttpClientOptions, PlatformModule, type PlatformModuleOptions, UserContextMiddleware, ViewContextMiddleware, configureApp };
|
package/dist/index.js
CHANGED
|
@@ -128,6 +128,47 @@ 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 escapeChar(c) {
|
|
134
|
+
switch (c.charCodeAt(0)) {
|
|
135
|
+
case 60:
|
|
136
|
+
return "\\u003c";
|
|
137
|
+
case 62:
|
|
138
|
+
return "\\u003e";
|
|
139
|
+
case 38:
|
|
140
|
+
return "\\u0026";
|
|
141
|
+
case 61:
|
|
142
|
+
return "\\u003d";
|
|
143
|
+
case 39:
|
|
144
|
+
return "\\u0027";
|
|
145
|
+
case 34:
|
|
146
|
+
return "\\u0022";
|
|
147
|
+
case 123:
|
|
148
|
+
return "\\u007b";
|
|
149
|
+
case 125:
|
|
150
|
+
return "\\u007d";
|
|
151
|
+
case 40:
|
|
152
|
+
return "\\u0028";
|
|
153
|
+
case 41:
|
|
154
|
+
return "\\u0029";
|
|
155
|
+
case 10:
|
|
156
|
+
return "\\n";
|
|
157
|
+
case 8232:
|
|
158
|
+
return "\\u2028";
|
|
159
|
+
case 8233:
|
|
160
|
+
return "\\u2029";
|
|
161
|
+
default:
|
|
162
|
+
return c;
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
__name(escapeChar, "escapeChar");
|
|
166
|
+
function safeEscape(s) {
|
|
167
|
+
return s.replace(/[<>&='"{}()\n\u2028\u2029]/g, escapeChar);
|
|
168
|
+
}
|
|
169
|
+
__name(safeEscape, "safeEscape");
|
|
170
|
+
|
|
171
|
+
// src/middlewares/view-context/index.ts
|
|
131
172
|
function _ts_decorate3(decorators, target, key, desc) {
|
|
132
173
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
133
174
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
@@ -183,9 +224,9 @@ var ViewContextMiddleware = class _ViewContextMiddleware {
|
|
|
183
224
|
csrfToken: csrfToken ?? "",
|
|
184
225
|
userId: userId ?? "",
|
|
185
226
|
appId: appId ?? "",
|
|
186
|
-
appName: appInfo?.app_name ?? "",
|
|
227
|
+
appName: safeEscape(appInfo?.app_name ?? "\u5999\u642D\u5E94\u7528"),
|
|
187
228
|
appAvatar: appInfo?.app_avatar ?? "",
|
|
188
|
-
appDescription: appInfo?.app_description ?? "",
|
|
229
|
+
appDescription: safeEscape(appInfo?.app_description ?? ""),
|
|
189
230
|
tenantId
|
|
190
231
|
};
|
|
191
232
|
res.locals = {
|
|
@@ -194,9 +235,9 @@ var ViewContextMiddleware = class _ViewContextMiddleware {
|
|
|
194
235
|
userId: userId ?? "",
|
|
195
236
|
tenantId: tenantId ?? "",
|
|
196
237
|
appId: appId ?? "",
|
|
197
|
-
appName: appInfo?.app_name ?? "\u5999\u642D\u5E94\u7528",
|
|
238
|
+
appName: safeEscape(appInfo?.app_name ?? "\u5999\u642D\u5E94\u7528"),
|
|
198
239
|
appAvatar: appInfo?.app_avatar ?? "",
|
|
199
|
-
appDescription: appInfo?.app_description ?? ""
|
|
240
|
+
appDescription: safeEscape(appInfo?.app_description ?? "")
|
|
200
241
|
};
|
|
201
242
|
next();
|
|
202
243
|
}
|
|
@@ -674,50 +715,17 @@ PlatformHttpClientService = _ts_decorate8([
|
|
|
674
715
|
_ts_metadata5("design:paramtypes", [])
|
|
675
716
|
], PlatformHttpClientService);
|
|
676
717
|
|
|
677
|
-
// src/
|
|
678
|
-
|
|
679
|
-
function _ts_decorate9(decorators, target, key, desc) {
|
|
680
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
681
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
682
|
-
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;
|
|
683
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
684
|
-
}
|
|
685
|
-
__name(_ts_decorate9, "_ts_decorate");
|
|
686
|
-
function normalizeForwardedHost(raw) {
|
|
687
|
-
if (!raw) return void 0;
|
|
688
|
-
const combined = Array.isArray(raw) ? raw.join(",") : raw;
|
|
689
|
-
const first = combined.split(",")[0]?.trim();
|
|
690
|
-
return first || void 0;
|
|
691
|
-
}
|
|
692
|
-
__name(normalizeForwardedHost, "normalizeForwardedHost");
|
|
693
|
-
function forwardedHostExpressMiddleware(req, _res, next) {
|
|
694
|
-
const forwardedHost = normalizeForwardedHost(req.headers["x-forwarded-host"]);
|
|
695
|
-
if (forwardedHost) {
|
|
696
|
-
req.headers.host = forwardedHost;
|
|
697
|
-
}
|
|
698
|
-
next();
|
|
699
|
-
}
|
|
700
|
-
__name(forwardedHostExpressMiddleware, "forwardedHostExpressMiddleware");
|
|
701
|
-
var ForwardedHostMiddleware = class {
|
|
702
|
-
static {
|
|
703
|
-
__name(this, "ForwardedHostMiddleware");
|
|
704
|
-
}
|
|
705
|
-
use(req, res, next) {
|
|
706
|
-
forwardedHostExpressMiddleware(req, res, next);
|
|
707
|
-
}
|
|
708
|
-
};
|
|
709
|
-
ForwardedHostMiddleware = _ts_decorate9([
|
|
710
|
-
Injectable9()
|
|
711
|
-
], ForwardedHostMiddleware);
|
|
718
|
+
// src/modules/platform/config/feature-switch.ts
|
|
719
|
+
var DISABLE_DATAPASS = process.env.FORCE_FRAMEWORK_DISABLE_DATAPASS === "true";
|
|
712
720
|
|
|
713
721
|
// src/modules/platform/module.ts
|
|
714
|
-
function
|
|
722
|
+
function _ts_decorate9(decorators, target, key, desc) {
|
|
715
723
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
716
724
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
717
725
|
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;
|
|
718
726
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
719
727
|
}
|
|
720
|
-
__name(
|
|
728
|
+
__name(_ts_decorate9, "_ts_decorate");
|
|
721
729
|
var PLATFORM_MODULE_OPTIONS = /* @__PURE__ */ Symbol("PLATFORM_MODULE_OPTIONS");
|
|
722
730
|
var PlatformModule = class _PlatformModule {
|
|
723
731
|
static {
|
|
@@ -746,32 +754,35 @@ var PlatformModule = class _PlatformModule {
|
|
|
746
754
|
timeout: 5e3,
|
|
747
755
|
maxRedirects: 5
|
|
748
756
|
}),
|
|
749
|
-
DataPaasModule
|
|
750
|
-
|
|
751
|
-
|
|
752
|
-
|
|
753
|
-
|
|
754
|
-
|
|
755
|
-
|
|
756
|
-
|
|
757
|
-
|
|
758
|
-
|
|
759
|
-
|
|
760
|
-
|
|
761
|
-
|
|
762
|
-
|
|
763
|
-
|
|
764
|
-
|
|
765
|
-
|
|
766
|
-
|
|
767
|
-
|
|
768
|
-
|
|
769
|
-
|
|
770
|
-
|
|
771
|
-
|
|
772
|
-
|
|
773
|
-
|
|
774
|
-
|
|
757
|
+
// 读取环境变量判断是否启用 DataPaasModule
|
|
758
|
+
...DISABLE_DATAPASS ? [] : [
|
|
759
|
+
DataPaasModule.forRootAsync({
|
|
760
|
+
imports: [
|
|
761
|
+
ConfigModule,
|
|
762
|
+
LoggerModule
|
|
763
|
+
],
|
|
764
|
+
inject: [
|
|
765
|
+
ConfigService,
|
|
766
|
+
AppLogger2
|
|
767
|
+
],
|
|
768
|
+
useFactory: /* @__PURE__ */ __name(async (...args) => {
|
|
769
|
+
const configService = args[0];
|
|
770
|
+
const appLogger = args[1];
|
|
771
|
+
const drizzleLogger = {
|
|
772
|
+
logQuery(query, params) {
|
|
773
|
+
appLogger.log?.("SQL Query " + JSON.stringify({
|
|
774
|
+
query,
|
|
775
|
+
params
|
|
776
|
+
}), "Database");
|
|
777
|
+
}
|
|
778
|
+
};
|
|
779
|
+
return {
|
|
780
|
+
connectionString: configService.get("app.databaseUrl") ?? "",
|
|
781
|
+
logger: drizzleLogger
|
|
782
|
+
};
|
|
783
|
+
}, "useFactory")
|
|
784
|
+
})
|
|
785
|
+
],
|
|
775
786
|
AuthNPaasModule.forRoot(),
|
|
776
787
|
AutomationModule.forRoot()
|
|
777
788
|
],
|
|
@@ -821,7 +832,7 @@ var PlatformModule = class _PlatformModule {
|
|
|
821
832
|
if (process.env.NODE_ENV === "development") {
|
|
822
833
|
consumer.apply(FrameworkDebugMiddleware).forRoutes("/api/__framework__/debug");
|
|
823
834
|
}
|
|
824
|
-
consumer.apply(
|
|
835
|
+
consumer.apply(UserContextMiddleware, RequestContextMiddleware, LoggerContextMiddleware, SqlExecutionContextMiddleware).forRoutes("/*");
|
|
825
836
|
consumer.apply(CsrfTokenMiddleware, ViewContextMiddleware).exclude("/api/(.*)").forRoutes("*");
|
|
826
837
|
if (options.enableCsrf !== false) {
|
|
827
838
|
const csrfRoutes = options.csrfRoutes || "/api/*";
|
|
@@ -835,7 +846,7 @@ var PlatformModule = class _PlatformModule {
|
|
|
835
846
|
}
|
|
836
847
|
}
|
|
837
848
|
};
|
|
838
|
-
PlatformModule =
|
|
849
|
+
PlatformModule = _ts_decorate9([
|
|
839
850
|
Global(),
|
|
840
851
|
Module({})
|
|
841
852
|
], PlatformModule);
|
|
@@ -851,9 +862,9 @@ async function configureApp(app, perms = defaultPerms) {
|
|
|
851
862
|
app.useLogger(app.get(AppLogger3));
|
|
852
863
|
app.flushLogs();
|
|
853
864
|
app.use(cookieParser());
|
|
854
|
-
app.use(forwardedHostExpressMiddleware);
|
|
855
865
|
const globalPrefix = process.env.CLIENT_BASE_PATH ?? "";
|
|
856
866
|
app.setGlobalPrefix(globalPrefix);
|
|
867
|
+
app.set("trust proxy", true);
|
|
857
868
|
if (process.env.NODE_ENV !== "production" && perms.disableSwagger !== true) {
|
|
858
869
|
try {
|
|
859
870
|
await DevToolsV2Module.mount(app, {
|
|
@@ -879,10 +890,8 @@ export {
|
|
|
879
890
|
CsrfTokenMiddleware,
|
|
880
891
|
DevToolsModule,
|
|
881
892
|
DevToolsV2Module2 as DevToolsV2Module,
|
|
882
|
-
ForwardedHostMiddleware,
|
|
883
893
|
PlatformModule,
|
|
884
894
|
UserContextMiddleware,
|
|
885
895
|
ViewContextMiddleware,
|
|
886
|
-
configureApp
|
|
887
|
-
forwardedHostExpressMiddleware
|
|
896
|
+
configureApp
|
|
888
897
|
};
|
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.10",
|
|
4
4
|
"description": "FullStack Nestjs Core",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -42,7 +42,7 @@
|
|
|
42
42
|
"@lark-apaas/http-client": "0.1.2",
|
|
43
43
|
"@lark-apaas/nestjs-authnpaas": "^1.0.2",
|
|
44
44
|
"@lark-apaas/nestjs-common": "^0.1.0",
|
|
45
|
-
"@lark-apaas/nestjs-datapaas": "^1.0.
|
|
45
|
+
"@lark-apaas/nestjs-datapaas": "^1.0.7",
|
|
46
46
|
"@lark-apaas/nestjs-logger": "^1.0.4",
|
|
47
47
|
"@lark-apaas/nestjs-observable": "^0.0.1",
|
|
48
48
|
"@lark-apaas/nestjs-openapi-devtools": "^1.0.9",
|
|
@@ -57,6 +57,7 @@
|
|
|
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",
|
|
60
61
|
"class-transformer": "^0.5.1",
|
|
61
62
|
"class-validator": "^0.14.2",
|
|
62
63
|
"drizzle-orm": "0.44.6",
|