@lark-apaas/fullstack-nestjs-core 1.1.48-alpha.12 → 1.1.48-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 CHANGED
@@ -5492,9 +5492,9 @@ var require_read = __commonJS({
5492
5492
  }
5493
5493
  });
5494
5494
 
5495
- // ../../../node_modules/type-is/node_modules/media-typer/index.js
5495
+ // ../../../node_modules/media-typer/index.js
5496
5496
  var require_media_typer = __commonJS({
5497
- "../../../node_modules/type-is/node_modules/media-typer/index.js"(exports2) {
5497
+ "../../../node_modules/media-typer/index.js"(exports2) {
5498
5498
  "use strict";
5499
5499
  var paramRegExp = /; *([!#$%&'\*\+\-\.0-9A-Z\^_`a-z\|~]+) *= *("(?:[ !\u0023-\u005b\u005d-\u007e\u0080-\u00ff]|\\[\u0020-\u007e])*"|[!#$%&'\*\+\-\.0-9A-Z\^_`a-z\|~]+) */g;
5500
5500
  var textRegExp = /^[\u0020-\u007e\u0080-\u00ff]+$/;
@@ -34437,7 +34437,6 @@ var import_axios2 = require("@nestjs/axios");
34437
34437
  var import_nestjs_logger2 = require("@lark-apaas/nestjs-logger");
34438
34438
  var import_nestjs_datapaas = require("@lark-apaas/nestjs-datapaas");
34439
34439
  var import_nestjs_authnpaas = require("@lark-apaas/nestjs-authnpaas");
34440
- var import_nestjs_http_forwarder = require("@lark-apaas/nestjs-http-forwarder");
34441
34440
  var import_nestjs_trigger = require("@lark-apaas/nestjs-trigger");
34442
34441
  var import_nestjs_common7 = require("@lark-apaas/nestjs-common");
34443
34442
  var import_nestjs_capability = require("@lark-apaas/nestjs-capability");
@@ -34652,6 +34651,7 @@ var ViewContextMiddleware = class _ViewContextMiddleware {
34652
34651
  const { userId, tenantId, appId, loginUrl, userType } = req.userContext;
34653
34652
  const csrfToken = req.csrfToken;
34654
34653
  const environment = mapToWindowEnvironment(process.env.FORCE_FRAMEWORK_ENVIRONMENT);
34654
+ const basename = resolveBasename(req, appId);
34655
34655
  const appPublishedData = await this.getAppPublished(appId);
34656
34656
  const appInfo = appPublishedData?.app_info ?? null;
34657
34657
  req.__platform_data__ = {
@@ -34666,7 +34666,8 @@ var ViewContextMiddleware = class _ViewContextMiddleware {
34666
34666
  tenantId,
34667
34667
  environment,
34668
34668
  showBadge: appInfo?.show_badge !== false,
34669
- appPublished: appPublishedData ?? null
34669
+ appPublished: appPublishedData ?? null,
34670
+ basename
34670
34671
  };
34671
34672
  res.locals = {
34672
34673
  ...res.locals ?? {},
@@ -34700,6 +34701,16 @@ function mapToWindowEnvironment(input) {
34700
34701
  return "online";
34701
34702
  }
34702
34703
  __name(mapToWindowEnvironment, "mapToWindowEnvironment");
34704
+ var CUSTOM_DOMAINS = new Set((process.env.CUSTOM_DOMAINS || "").split(",").map((d) => d.trim()).filter(Boolean));
34705
+ function resolveBasename(req, appId) {
34706
+ const headerValue = req.headers["x-app-basename"];
34707
+ if (typeof headerValue === "string" && headerValue) return headerValue;
34708
+ if (CUSTOM_DOMAINS.size > 0 && CUSTOM_DOMAINS.has(req.hostname)) {
34709
+ return "/";
34710
+ }
34711
+ return appId ? `/app/${appId}` : "/";
34712
+ }
34713
+ __name(resolveBasename, "resolveBasename");
34703
34714
 
34704
34715
  // src/middlewares/csrf_token/index.ts
34705
34716
  var import_common4 = require("@nestjs/common");
@@ -34947,8 +34958,7 @@ var app_config_default = (0, import_config.registerAs)(NAMESPACE, () => {
34947
34958
  return {
34948
34959
  host: process.env.SERVER_HOST ?? "localhost",
34949
34960
  port: Number(process.env.SERVER_PORT ?? 3e3),
34950
- clientBasePath: process.env.CLIENT_BASE_PATH ?? "/",
34951
- databaseUrl: process.env.SUDA_DATABASE_URL ?? ""
34961
+ clientBasePath: process.env.CLIENT_BASE_PATH ?? "/"
34952
34962
  };
34953
34963
  });
34954
34964
 
@@ -36339,16 +36349,13 @@ var PlatformModule = class _PlatformModule {
36339
36349
  ...DISABLE_DATAPASS ? [] : [
36340
36350
  import_nestjs_datapaas.DataPaasModule.forRootAsync({
36341
36351
  imports: [
36342
- import_config2.ConfigModule,
36343
36352
  import_nestjs_logger2.LoggerModule
36344
36353
  ],
36345
36354
  inject: [
36346
- import_config2.ConfigService,
36347
36355
  import_nestjs_logger2.AppLogger
36348
36356
  ],
36349
36357
  useFactory: /* @__PURE__ */ __name(async (...args) => {
36350
- const configService = args[0];
36351
- const appLogger = args[1];
36358
+ const appLogger = args[0];
36352
36359
  const drizzleLogger = {
36353
36360
  logQuery(query, params) {
36354
36361
  if (process.env.NODE_ENV === "development") {
@@ -36360,7 +36367,7 @@ var PlatformModule = class _PlatformModule {
36360
36367
  }
36361
36368
  };
36362
36369
  return {
36363
- connectionString: configService.get("app.databaseUrl") ?? "",
36370
+ connectionString: process.env.SUDA_DATABASE_URL ?? "",
36364
36371
  logger: drizzleLogger,
36365
36372
  connectionTokenFilePath: "/var/run/secrets/zti/credential"
36366
36373
  };
@@ -36372,9 +36379,6 @@ var PlatformModule = class _PlatformModule {
36372
36379
  ...options.authz || {}
36373
36380
  }),
36374
36381
  import_nestjs_trigger.AutomationModule.forRoot(),
36375
- // 通用内网转发:自动注册 ALL /api/sdk_innerapi/anycross/forward?targetUrl=...
36376
- // 业务方接入 PlatformModule 后零改动获得内网代理路由
36377
- import_nestjs_http_forwarder.HttpForwarderModule.forRoot(options.httpForwarder),
36378
36382
  import_nestjs_capability.CapabilityModule.forRoot({
36379
36383
  capabilitiesDir: options.capabilitiesDir,
36380
36384
  enableWatching: process.env.NODE_ENV === "development"
package/dist/index.d.cts CHANGED
@@ -2,7 +2,6 @@ import { NestModule, DynamicModule, MiddlewareConsumer, OnModuleInit, NestMiddle
2
2
  import { HttpClientConfig, PlatformPluginOptions, HttpClient } from '@lark-apaas/http-client';
3
3
  import { AuthZPaasModuleOptions } from '@lark-apaas/nestjs-authzpaas';
4
4
  export { AddMembersParams, AuthZPaasModule, AuthorizationSDK, Can, CanRole, ChatSimpleDTO, CommonParam, CreateRoleParams, CreateRoleResponse, DepartmentDTO, DepartmentEntity, DepartmentSimpleDTO, FilterParams, ForceRoleDTO, I18nText, IPermissionResolver, ListMembersParams, ListMembersResponse, ListRolesParams, MemberMutationData, MemberType, PERMISSION_RESOLVER_TOKEN, PermissionPoint, PermissionRequirement, PresetGroupDTO, RemoveMembersParams, RoleMemberDTO, SearchChatEntity, SearchParams, SearchResponse, SearchResult, SearchUserEntity, UpdateRoleParams, UserSimpleDTO } from '@lark-apaas/nestjs-authzpaas';
5
- import { HttpForwarderModuleOptions } from '@lark-apaas/nestjs-http-forwarder';
6
5
  import { NestExpressApplication } from '@nestjs/platform-express';
7
6
  import { PlatformHttpClient, RequestContextService, ObservableService } from '@lark-apaas/nestjs-common';
8
7
  export { AutoTrace } from '@lark-apaas/nestjs-common';
@@ -24,6 +23,8 @@ declare global {
24
23
  userId?: string;
25
24
  tenantId?: number;
26
25
  csrfToken?: string;
26
+ /** React Router basename,由 ViewContextMiddleware 注入;自定义域名场景下 = / 或 /<alias>,默认域名 = /app/<appId> */
27
+ basename?: string;
27
28
  [key: string]: unknown;
28
29
  };
29
30
  userContext: {
@@ -79,12 +80,6 @@ interface PlatformModuleOptions {
79
80
  * 可传入 permissionResolver 等选项,透传给 AuthZPaasModule.forRoot()
80
81
  */
81
82
  authz?: AuthZPaasModuleOptions;
82
- /**
83
- * HttpForwarder 模块配置(默认自动启用,注册 ALL /api/sdk_innerapi/anycross/forward 路由)
84
- * 透传给 HttpForwarderModule.forRoot();不传则使用模块默认值
85
- * (requestTimeoutMs=30s, maxResponseBytes=10MB)。
86
- */
87
- httpForwarder?: HttpForwarderModuleOptions;
88
83
  }
89
84
 
90
85
  declare class PlatformModule implements NestModule {
package/dist/index.d.ts CHANGED
@@ -2,7 +2,6 @@ import { NestModule, DynamicModule, MiddlewareConsumer, OnModuleInit, NestMiddle
2
2
  import { HttpClientConfig, PlatformPluginOptions, HttpClient } from '@lark-apaas/http-client';
3
3
  import { AuthZPaasModuleOptions } from '@lark-apaas/nestjs-authzpaas';
4
4
  export { AddMembersParams, AuthZPaasModule, AuthorizationSDK, Can, CanRole, ChatSimpleDTO, CommonParam, CreateRoleParams, CreateRoleResponse, DepartmentDTO, DepartmentEntity, DepartmentSimpleDTO, FilterParams, ForceRoleDTO, I18nText, IPermissionResolver, ListMembersParams, ListMembersResponse, ListRolesParams, MemberMutationData, MemberType, PERMISSION_RESOLVER_TOKEN, PermissionPoint, PermissionRequirement, PresetGroupDTO, RemoveMembersParams, RoleMemberDTO, SearchChatEntity, SearchParams, SearchResponse, SearchResult, SearchUserEntity, UpdateRoleParams, UserSimpleDTO } from '@lark-apaas/nestjs-authzpaas';
5
- import { HttpForwarderModuleOptions } from '@lark-apaas/nestjs-http-forwarder';
6
5
  import { NestExpressApplication } from '@nestjs/platform-express';
7
6
  import { PlatformHttpClient, RequestContextService, ObservableService } from '@lark-apaas/nestjs-common';
8
7
  export { AutoTrace } from '@lark-apaas/nestjs-common';
@@ -24,6 +23,8 @@ declare global {
24
23
  userId?: string;
25
24
  tenantId?: number;
26
25
  csrfToken?: string;
26
+ /** React Router basename,由 ViewContextMiddleware 注入;自定义域名场景下 = / 或 /<alias>,默认域名 = /app/<appId> */
27
+ basename?: string;
27
28
  [key: string]: unknown;
28
29
  };
29
30
  userContext: {
@@ -79,12 +80,6 @@ interface PlatformModuleOptions {
79
80
  * 可传入 permissionResolver 等选项,透传给 AuthZPaasModule.forRoot()
80
81
  */
81
82
  authz?: AuthZPaasModuleOptions;
82
- /**
83
- * HttpForwarder 模块配置(默认自动启用,注册 ALL /api/sdk_innerapi/anycross/forward 路由)
84
- * 透传给 HttpForwarderModule.forRoot();不传则使用模块默认值
85
- * (requestTimeoutMs=30s, maxResponseBytes=10MB)。
86
- */
87
- httpForwarder?: HttpForwarderModuleOptions;
88
83
  }
89
84
 
90
85
  declare class PlatformModule implements NestModule {
package/dist/index.js CHANGED
@@ -5491,9 +5491,9 @@ var require_read = __commonJS({
5491
5491
  }
5492
5492
  });
5493
5493
 
5494
- // ../../../node_modules/type-is/node_modules/media-typer/index.js
5494
+ // ../../../node_modules/media-typer/index.js
5495
5495
  var require_media_typer = __commonJS({
5496
- "../../../node_modules/type-is/node_modules/media-typer/index.js"(exports) {
5496
+ "../../../node_modules/media-typer/index.js"(exports) {
5497
5497
  "use strict";
5498
5498
  var paramRegExp = /; *([!#$%&'\*\+\-\.0-9A-Z\^_`a-z\|~]+) *= *("(?:[ !\u0023-\u005b\u005d-\u007e\u0080-\u00ff]|\\[\u0020-\u007e])*"|[!#$%&'\*\+\-\.0-9A-Z\^_`a-z\|~]+) */g;
5499
5499
  var textRegExp = /^[\u0020-\u007e\u0080-\u00ff]+$/;
@@ -34404,13 +34404,12 @@ var require_express2 = __commonJS({
34404
34404
  import { Global, Module as Module3, ValidationPipe } from "@nestjs/common";
34405
34405
  import { APP_INTERCEPTOR, APP_PIPE } from "@nestjs/core";
34406
34406
  import { CommonModule, OBSERVABLE_SERVICE as OBSERVABLE_SERVICE2, HTTP_CLIENT_FACTORY } from "@lark-apaas/nestjs-common";
34407
- import { ConfigModule, ConfigService } from "@nestjs/config";
34407
+ import { ConfigModule } from "@nestjs/config";
34408
34408
  import { NestjsObservableModule as ObservableModule, Observable, ObservableTraceMiddleware, TraceInterceptor } from "@lark-apaas/nestjs-observable";
34409
34409
  import { HttpModule } from "@nestjs/axios";
34410
34410
  import { LoggerModule, AppLogger as AppLogger2, LoggerContextMiddleware } from "@lark-apaas/nestjs-logger";
34411
34411
  import { DataPaasModule, SqlExecutionContextMiddleware } from "@lark-apaas/nestjs-datapaas";
34412
34412
  import { AuthNPaasModule } from "@lark-apaas/nestjs-authnpaas";
34413
- import { HttpForwarderModule } from "@lark-apaas/nestjs-http-forwarder";
34414
34413
  import { AutomationModule } from "@lark-apaas/nestjs-trigger";
34415
34414
  import { PLATFORM_HTTP_CLIENT as PLATFORM_HTTP_CLIENT4 } from "@lark-apaas/nestjs-common";
34416
34415
  import { CapabilityModule } from "@lark-apaas/nestjs-capability";
@@ -34625,6 +34624,7 @@ var ViewContextMiddleware = class _ViewContextMiddleware {
34625
34624
  const { userId, tenantId, appId, loginUrl, userType } = req.userContext;
34626
34625
  const csrfToken = req.csrfToken;
34627
34626
  const environment = mapToWindowEnvironment(process.env.FORCE_FRAMEWORK_ENVIRONMENT);
34627
+ const basename = resolveBasename(req, appId);
34628
34628
  const appPublishedData = await this.getAppPublished(appId);
34629
34629
  const appInfo = appPublishedData?.app_info ?? null;
34630
34630
  req.__platform_data__ = {
@@ -34639,7 +34639,8 @@ var ViewContextMiddleware = class _ViewContextMiddleware {
34639
34639
  tenantId,
34640
34640
  environment,
34641
34641
  showBadge: appInfo?.show_badge !== false,
34642
- appPublished: appPublishedData ?? null
34642
+ appPublished: appPublishedData ?? null,
34643
+ basename
34643
34644
  };
34644
34645
  res.locals = {
34645
34646
  ...res.locals ?? {},
@@ -34673,6 +34674,16 @@ function mapToWindowEnvironment(input) {
34673
34674
  return "online";
34674
34675
  }
34675
34676
  __name(mapToWindowEnvironment, "mapToWindowEnvironment");
34677
+ var CUSTOM_DOMAINS = new Set((process.env.CUSTOM_DOMAINS || "").split(",").map((d) => d.trim()).filter(Boolean));
34678
+ function resolveBasename(req, appId) {
34679
+ const headerValue = req.headers["x-app-basename"];
34680
+ if (typeof headerValue === "string" && headerValue) return headerValue;
34681
+ if (CUSTOM_DOMAINS.size > 0 && CUSTOM_DOMAINS.has(req.hostname)) {
34682
+ return "/";
34683
+ }
34684
+ return appId ? `/app/${appId}` : "/";
34685
+ }
34686
+ __name(resolveBasename, "resolveBasename");
34676
34687
 
34677
34688
  // src/middlewares/csrf_token/index.ts
34678
34689
  import { Injectable as Injectable4 } from "@nestjs/common";
@@ -34920,8 +34931,7 @@ var app_config_default = registerAs(NAMESPACE, () => {
34920
34931
  return {
34921
34932
  host: process.env.SERVER_HOST ?? "localhost",
34922
34933
  port: Number(process.env.SERVER_PORT ?? 3e3),
34923
- clientBasePath: process.env.CLIENT_BASE_PATH ?? "/",
34924
- databaseUrl: process.env.SUDA_DATABASE_URL ?? ""
34934
+ clientBasePath: process.env.CLIENT_BASE_PATH ?? "/"
34925
34935
  };
34926
34936
  });
34927
34937
 
@@ -36312,16 +36322,13 @@ var PlatformModule = class _PlatformModule {
36312
36322
  ...DISABLE_DATAPASS ? [] : [
36313
36323
  DataPaasModule.forRootAsync({
36314
36324
  imports: [
36315
- ConfigModule,
36316
36325
  LoggerModule
36317
36326
  ],
36318
36327
  inject: [
36319
- ConfigService,
36320
36328
  AppLogger2
36321
36329
  ],
36322
36330
  useFactory: /* @__PURE__ */ __name(async (...args) => {
36323
- const configService = args[0];
36324
- const appLogger = args[1];
36331
+ const appLogger = args[0];
36325
36332
  const drizzleLogger = {
36326
36333
  logQuery(query, params) {
36327
36334
  if (process.env.NODE_ENV === "development") {
@@ -36333,7 +36340,7 @@ var PlatformModule = class _PlatformModule {
36333
36340
  }
36334
36341
  };
36335
36342
  return {
36336
- connectionString: configService.get("app.databaseUrl") ?? "",
36343
+ connectionString: process.env.SUDA_DATABASE_URL ?? "",
36337
36344
  logger: drizzleLogger,
36338
36345
  connectionTokenFilePath: "/var/run/secrets/zti/credential"
36339
36346
  };
@@ -36345,9 +36352,6 @@ var PlatformModule = class _PlatformModule {
36345
36352
  ...options.authz || {}
36346
36353
  }),
36347
36354
  AutomationModule.forRoot(),
36348
- // 通用内网转发:自动注册 ALL /api/sdk_innerapi/anycross/forward?targetUrl=...
36349
- // 业务方接入 PlatformModule 后零改动获得内网代理路由
36350
- HttpForwarderModule.forRoot(options.httpForwarder),
36351
36355
  CapabilityModule.forRoot({
36352
36356
  capabilitiesDir: options.capabilitiesDir,
36353
36357
  enableWatching: process.env.NODE_ENV === "development"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lark-apaas/fullstack-nestjs-core",
3
- "version": "1.1.48-alpha.12",
3
+ "version": "1.1.48-alpha.13",
4
4
  "description": "FullStack Nestjs Core",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -46,7 +46,6 @@
46
46
  "@lark-apaas/nestjs-capability": "^0.1.13",
47
47
  "@lark-apaas/nestjs-common": "^0.1.8",
48
48
  "@lark-apaas/nestjs-datapaas": "^1.0.19",
49
- "@lark-apaas/nestjs-http-forwarder": "0.1.3-alpha.3",
50
49
  "@lark-apaas/nestjs-logger": "^1.0.16",
51
50
  "@lark-apaas/nestjs-observable": "^0.0.11",
52
51
  "@lark-apaas/nestjs-openapi-devtools": "^1.0.10",