@lark-apaas/fullstack-nestjs-core 1.1.10 → 1.1.12-alpha.0

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
@@ -36,15 +36,17 @@ __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,
39
40
  PlatformModule: () => PlatformModule,
40
41
  UserContextMiddleware: () => UserContextMiddleware,
41
42
  ViewContextMiddleware: () => ViewContextMiddleware,
42
- configureApp: () => configureApp
43
+ configureApp: () => configureApp,
44
+ forwardedHostExpressMiddleware: () => forwardedHostExpressMiddleware
43
45
  });
44
46
  module.exports = __toCommonJS(index_exports);
45
47
 
46
48
  // src/modules/platform/module.ts
47
- var import_common9 = require("@nestjs/common");
49
+ var import_common10 = require("@nestjs/common");
48
50
  var import_core2 = require("@nestjs/core");
49
51
  var import_nestjs_common3 = require("@lark-apaas/nestjs-common");
50
52
  var import_config2 = require("@nestjs/config");
@@ -716,7 +718,8 @@ PlatformHttpClientService = _ts_decorate8([
716
718
  _ts_metadata5("design:paramtypes", [])
717
719
  ], PlatformHttpClientService);
718
720
 
719
- // src/modules/platform/module.ts
721
+ // src/middlewares/forwarded-host/index.ts
722
+ var import_common9 = require("@nestjs/common");
720
723
  function _ts_decorate9(decorators, target, key, desc) {
721
724
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
722
725
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
@@ -724,6 +727,41 @@ function _ts_decorate9(decorators, target, key, desc) {
724
727
  return c > 3 && r && Object.defineProperty(target, key, r), r;
725
728
  }
726
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);
756
+
757
+ // src/modules/platform/module.ts
758
+ function _ts_decorate10(decorators, target, key, desc) {
759
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
760
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
761
+ 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
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
763
+ }
764
+ __name(_ts_decorate10, "_ts_decorate");
727
765
  var PLATFORM_MODULE_OPTIONS = /* @__PURE__ */ Symbol("PLATFORM_MODULE_OPTIONS");
728
766
  var PlatformModule = class _PlatformModule {
729
767
  static {
@@ -788,7 +826,7 @@ var PlatformModule = class _PlatformModule {
788
826
  },
789
827
  {
790
828
  provide: import_core2.APP_PIPE,
791
- useValue: new import_common9.ValidationPipe({
829
+ useValue: new import_common10.ValidationPipe({
792
830
  transform: true,
793
831
  transformOptions: {
794
832
  enableImplicitConversion: true
@@ -827,7 +865,7 @@ var PlatformModule = class _PlatformModule {
827
865
  if (process.env.NODE_ENV === "development") {
828
866
  consumer.apply(FrameworkDebugMiddleware).forRoutes("/api/__framework__/debug");
829
867
  }
830
- consumer.apply(UserContextMiddleware, RequestContextMiddleware, import_nestjs_logger2.LoggerContextMiddleware, import_nestjs_datapaas.SqlExecutionContextMiddleware).forRoutes("/*");
868
+ consumer.apply(ForwardedHostMiddleware, UserContextMiddleware, RequestContextMiddleware, import_nestjs_logger2.LoggerContextMiddleware, import_nestjs_datapaas.SqlExecutionContextMiddleware).forRoutes("/*");
831
869
  consumer.apply(CsrfTokenMiddleware, ViewContextMiddleware).exclude("/api/(.*)").forRoutes("*");
832
870
  if (options.enableCsrf !== false) {
833
871
  const csrfRoutes = options.csrfRoutes || "/api/*";
@@ -841,9 +879,9 @@ var PlatformModule = class _PlatformModule {
841
879
  }
842
880
  }
843
881
  };
844
- PlatformModule = _ts_decorate9([
845
- (0, import_common9.Global)(),
846
- (0, import_common9.Module)({})
882
+ PlatformModule = _ts_decorate10([
883
+ (0, import_common10.Global)(),
884
+ (0, import_common10.Module)({})
847
885
  ], PlatformModule);
848
886
 
849
887
  // src/setup.ts
@@ -857,6 +895,7 @@ async function configureApp(app, perms = defaultPerms) {
857
895
  app.useLogger(app.get(import_nestjs_logger3.AppLogger));
858
896
  app.flushLogs();
859
897
  app.use((0, import_cookie_parser.default)());
898
+ app.use(forwardedHostExpressMiddleware);
860
899
  const globalPrefix = process.env.CLIENT_BASE_PATH ?? "";
861
900
  app.setGlobalPrefix(globalPrefix);
862
901
  if (process.env.NODE_ENV !== "production" && perms.disableSwagger !== true) {
@@ -865,11 +904,11 @@ async function configureApp(app, perms = defaultPerms) {
865
904
  basePath: process.env.CLIENT_BASE_PATH,
866
905
  docsPath: "/api_docs"
867
906
  });
907
+ console.log("App Started Successfully.");
868
908
  } catch (err) {
869
909
  console.error("[OpenAPI] OpenAPI \u751F\u6210\u5931\u8D25:", err);
870
910
  }
871
911
  }
872
- console.log("App Started Successfully.");
873
912
  }
874
913
  __name(configureApp, "configureApp");
875
914
 
@@ -885,10 +924,12 @@ __reExport(index_exports, require("@lark-apaas/nestjs-trigger"), module.exports)
885
924
  CsrfTokenMiddleware,
886
925
  DevToolsModule,
887
926
  DevToolsV2Module,
927
+ ForwardedHostMiddleware,
888
928
  PlatformModule,
889
929
  UserContextMiddleware,
890
930
  ViewContextMiddleware,
891
931
  configureApp,
932
+ forwardedHostExpressMiddleware,
892
933
  ...require("@lark-apaas/nestjs-authnpaas"),
893
934
  ...require("@lark-apaas/nestjs-datapaas"),
894
935
  ...require("@lark-apaas/nestjs-observable"),
package/dist/index.d.cts CHANGED
@@ -117,6 +117,11 @@ 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
+
120
125
  /**
121
126
  * API 404 响应格式
122
127
  */
@@ -128,4 +133,4 @@ interface ApiNotFoundResponse {
128
133
  timestamp: string;
129
134
  }
130
135
 
131
- export { type ApiNotFoundResponse, CsrfMiddleware, CsrfTokenMiddleware, type PlatformHttpClientOptions, PlatformModule, type PlatformModuleOptions, UserContextMiddleware, ViewContextMiddleware, configureApp };
136
+ export { type ApiNotFoundResponse, CsrfMiddleware, CsrfTokenMiddleware, ForwardedHostMiddleware, type PlatformHttpClientOptions, PlatformModule, type PlatformModuleOptions, UserContextMiddleware, ViewContextMiddleware, configureApp, forwardedHostExpressMiddleware };
package/dist/index.d.ts CHANGED
@@ -117,6 +117,11 @@ 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
+
120
125
  /**
121
126
  * API 404 响应格式
122
127
  */
@@ -128,4 +133,4 @@ interface ApiNotFoundResponse {
128
133
  timestamp: string;
129
134
  }
130
135
 
131
- export { type ApiNotFoundResponse, CsrfMiddleware, CsrfTokenMiddleware, type PlatformHttpClientOptions, PlatformModule, type PlatformModuleOptions, UserContextMiddleware, ViewContextMiddleware, configureApp };
136
+ export { type ApiNotFoundResponse, CsrfMiddleware, CsrfTokenMiddleware, ForwardedHostMiddleware, type PlatformHttpClientOptions, PlatformModule, type PlatformModuleOptions, UserContextMiddleware, ViewContextMiddleware, configureApp, forwardedHostExpressMiddleware };
package/dist/index.js CHANGED
@@ -674,7 +674,8 @@ PlatformHttpClientService = _ts_decorate8([
674
674
  _ts_metadata5("design:paramtypes", [])
675
675
  ], PlatformHttpClientService);
676
676
 
677
- // src/modules/platform/module.ts
677
+ // src/middlewares/forwarded-host/index.ts
678
+ import { Injectable as Injectable9 } from "@nestjs/common";
678
679
  function _ts_decorate9(decorators, target, key, desc) {
679
680
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
680
681
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
@@ -682,6 +683,41 @@ function _ts_decorate9(decorators, target, key, desc) {
682
683
  return c > 3 && r && Object.defineProperty(target, key, r), r;
683
684
  }
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);
712
+
713
+ // src/modules/platform/module.ts
714
+ function _ts_decorate10(decorators, target, key, desc) {
715
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
716
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
717
+ 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
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
719
+ }
720
+ __name(_ts_decorate10, "_ts_decorate");
685
721
  var PLATFORM_MODULE_OPTIONS = /* @__PURE__ */ Symbol("PLATFORM_MODULE_OPTIONS");
686
722
  var PlatformModule = class _PlatformModule {
687
723
  static {
@@ -785,7 +821,7 @@ var PlatformModule = class _PlatformModule {
785
821
  if (process.env.NODE_ENV === "development") {
786
822
  consumer.apply(FrameworkDebugMiddleware).forRoutes("/api/__framework__/debug");
787
823
  }
788
- consumer.apply(UserContextMiddleware, RequestContextMiddleware, LoggerContextMiddleware, SqlExecutionContextMiddleware).forRoutes("/*");
824
+ consumer.apply(ForwardedHostMiddleware, UserContextMiddleware, RequestContextMiddleware, LoggerContextMiddleware, SqlExecutionContextMiddleware).forRoutes("/*");
789
825
  consumer.apply(CsrfTokenMiddleware, ViewContextMiddleware).exclude("/api/(.*)").forRoutes("*");
790
826
  if (options.enableCsrf !== false) {
791
827
  const csrfRoutes = options.csrfRoutes || "/api/*";
@@ -799,7 +835,7 @@ var PlatformModule = class _PlatformModule {
799
835
  }
800
836
  }
801
837
  };
802
- PlatformModule = _ts_decorate9([
838
+ PlatformModule = _ts_decorate10([
803
839
  Global(),
804
840
  Module({})
805
841
  ], PlatformModule);
@@ -815,6 +851,7 @@ async function configureApp(app, perms = defaultPerms) {
815
851
  app.useLogger(app.get(AppLogger3));
816
852
  app.flushLogs();
817
853
  app.use(cookieParser());
854
+ app.use(forwardedHostExpressMiddleware);
818
855
  const globalPrefix = process.env.CLIENT_BASE_PATH ?? "";
819
856
  app.setGlobalPrefix(globalPrefix);
820
857
  if (process.env.NODE_ENV !== "production" && perms.disableSwagger !== true) {
@@ -823,11 +860,11 @@ async function configureApp(app, perms = defaultPerms) {
823
860
  basePath: process.env.CLIENT_BASE_PATH,
824
861
  docsPath: "/api_docs"
825
862
  });
863
+ console.log("App Started Successfully.");
826
864
  } catch (err) {
827
865
  console.error("[OpenAPI] OpenAPI \u751F\u6210\u5931\u8D25:", err);
828
866
  }
829
867
  }
830
- console.log("App Started Successfully.");
831
868
  }
832
869
  __name(configureApp, "configureApp");
833
870
 
@@ -842,8 +879,10 @@ export {
842
879
  CsrfTokenMiddleware,
843
880
  DevToolsModule,
844
881
  DevToolsV2Module2 as DevToolsV2Module,
882
+ ForwardedHostMiddleware,
845
883
  PlatformModule,
846
884
  UserContextMiddleware,
847
885
  ViewContextMiddleware,
848
- configureApp
886
+ configureApp,
887
+ forwardedHostExpressMiddleware
849
888
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lark-apaas/fullstack-nestjs-core",
3
- "version": "1.1.10",
3
+ "version": "1.1.12-alpha.0",
4
4
  "description": "FullStack Nestjs Core",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",