@lark-apaas/fullstack-nestjs-core 1.1.50-alpha.6 → 1.1.50-alpha.8

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
@@ -34423,7 +34423,9 @@ __export(index_exports, {
34423
34423
  UserContextMiddleware: () => UserContextMiddleware,
34424
34424
  ViewContextMiddleware: () => ViewContextMiddleware,
34425
34425
  configureApp: () => configureApp,
34426
- createLegacyPathRedirectMiddleware: () => createLegacyPathRedirectMiddleware
34426
+ createLegacyPathRedirectMiddleware: () => createLegacyPathRedirectMiddleware,
34427
+ createLocalDevMiddleware: () => createLocalDevMiddleware,
34428
+ isLocalDev: () => isLocalDev
34427
34429
  });
34428
34430
  module.exports = __toCommonJS(index_exports);
34429
34431
 
@@ -36546,6 +36548,45 @@ function createLegacyPathRedirectMiddleware() {
36546
36548
  }
36547
36549
  __name(createLegacyPathRedirectMiddleware, "createLegacyPathRedirectMiddleware");
36548
36550
 
36551
+ // src/middlewares/local-dev/index.ts
36552
+ var CSRF_COOKIE_KEY = "suda-csrf-token";
36553
+ var CSRF_HEADER_KEY = "x-suda-csrf-token";
36554
+ var WEBUSER_HEADER_KEY = "x-larkgw-suda-webuser";
36555
+ function isLocalDev() {
36556
+ if (process.env.NODE_ENV === "production") return false;
36557
+ const flag = process.env.MIAODA_LOCAL_DEV;
36558
+ return flag === "1" || flag === "true";
36559
+ }
36560
+ __name(isLocalDev, "isLocalDev");
36561
+ function extractCsrfFromCookie(cookieHeader) {
36562
+ if (!cookieHeader) return void 0;
36563
+ const re = new RegExp(`(?:^|;\\s*)${CSRF_COOKIE_KEY}=([^;]+)`);
36564
+ const m = cookieHeader.match(re);
36565
+ return m?.[1];
36566
+ }
36567
+ __name(extractCsrfFromCookie, "extractCsrfFromCookie");
36568
+ function createLocalDevMiddleware() {
36569
+ let webUserHeader = "";
36570
+ if (process.env.SUDA_WEBUSER) {
36571
+ try {
36572
+ webUserHeader = encodeURIComponent(JSON.stringify(JSON.parse(process.env.SUDA_WEBUSER)));
36573
+ } catch {
36574
+ }
36575
+ }
36576
+ return /* @__PURE__ */ __name(function localDevMiddleware(req, _res, next) {
36577
+ const headers = req.headers;
36578
+ if (!headers[CSRF_HEADER_KEY]) {
36579
+ const token = extractCsrfFromCookie(req.headers.cookie);
36580
+ if (token) headers[CSRF_HEADER_KEY] = token;
36581
+ }
36582
+ if (webUserHeader && !headers[WEBUSER_HEADER_KEY]) {
36583
+ headers[WEBUSER_HEADER_KEY] = webUserHeader;
36584
+ }
36585
+ next();
36586
+ }, "localDevMiddleware");
36587
+ }
36588
+ __name(createLocalDevMiddleware, "createLocalDevMiddleware");
36589
+
36549
36590
  // src/setup.ts
36550
36591
  var DEFAULT_BODY_LIMIT = "1mb";
36551
36592
  var defaultPerms = {
@@ -36563,6 +36604,9 @@ async function configureApp(app, perms = defaultPerms) {
36563
36604
  extended: true
36564
36605
  }));
36565
36606
  app.use((0, import_cookie_parser.default)());
36607
+ if (isLocalDev()) {
36608
+ app.use(createLocalDevMiddleware());
36609
+ }
36566
36610
  app.use(createLegacyPathRedirectMiddleware());
36567
36611
  const globalPrefix = process.env.CLIENT_BASE_PATH ?? "";
36568
36612
  app.setGlobalPrefix(globalPrefix);
@@ -36614,6 +36658,8 @@ var import_nestjs_authzpaas2 = require("@lark-apaas/nestjs-authzpaas");
36614
36658
  ViewContextMiddleware,
36615
36659
  configureApp,
36616
36660
  createLegacyPathRedirectMiddleware,
36661
+ createLocalDevMiddleware,
36662
+ isLocalDev,
36617
36663
  ...require("@lark-apaas/nestjs-authnpaas"),
36618
36664
  ...require("@lark-apaas/nestjs-capability"),
36619
36665
  ...require("@lark-apaas/nestjs-datapaas"),
package/dist/index.d.cts CHANGED
@@ -6,7 +6,7 @@ import { NestExpressApplication } from '@nestjs/platform-express';
6
6
  import { PlatformHttpClient, RequestContextService, ObservableService } from '@lark-apaas/nestjs-common';
7
7
  export { AutoTrace } from '@lark-apaas/nestjs-common';
8
8
  export { DevToolsModule, DevToolsOptions, DevToolsV2Module, DevToolsV2Options } from '@lark-apaas/nestjs-openapi-devtools';
9
- import { Request, Response, NextFunction } from 'express';
9
+ import { Request, Response, NextFunction, RequestHandler } from 'express';
10
10
  import * as _lark_apaas_file_service from '@lark-apaas/file-service';
11
11
  import { FileBody, UploadOptions, FileDownloadBuilder, SearchOptions } from '@lark-apaas/file-service';
12
12
  export * from '@lark-apaas/file-service';
@@ -221,6 +221,9 @@ declare class ViewContextMiddleware implements NestMiddleware {
221
221
  */
222
222
  declare function createLegacyPathRedirectMiddleware(): (req: Request, res: Response, next: NextFunction) => void;
223
223
 
224
+ declare function isLocalDev(): boolean;
225
+ declare function createLocalDevMiddleware(): RequestHandler;
226
+
224
227
  /**
225
228
  * API 404 响应格式
226
229
  */
@@ -402,4 +405,4 @@ declare class PlatformHttpClientService {
402
405
  private registerInterceptorsForClient;
403
406
  }
404
407
 
405
- export { type ApiNotFoundResponse, CsrfMiddleware, CsrfTokenMiddleware, FileService, HtmlHotUpdateModule, HtmlHotUpdateService, type PlatformHttpClientOptions, PlatformHttpClientService, PlatformModule, type PlatformModuleOptions, StaticModule, UserContextMiddleware, ViewContextMiddleware, configureApp, createLegacyPathRedirectMiddleware };
408
+ export { type ApiNotFoundResponse, CsrfMiddleware, CsrfTokenMiddleware, FileService, HtmlHotUpdateModule, HtmlHotUpdateService, type PlatformHttpClientOptions, PlatformHttpClientService, PlatformModule, type PlatformModuleOptions, StaticModule, UserContextMiddleware, ViewContextMiddleware, configureApp, createLegacyPathRedirectMiddleware, createLocalDevMiddleware, isLocalDev };
package/dist/index.d.ts CHANGED
@@ -6,7 +6,7 @@ import { NestExpressApplication } from '@nestjs/platform-express';
6
6
  import { PlatformHttpClient, RequestContextService, ObservableService } from '@lark-apaas/nestjs-common';
7
7
  export { AutoTrace } from '@lark-apaas/nestjs-common';
8
8
  export { DevToolsModule, DevToolsOptions, DevToolsV2Module, DevToolsV2Options } from '@lark-apaas/nestjs-openapi-devtools';
9
- import { Request, Response, NextFunction } from 'express';
9
+ import { Request, Response, NextFunction, RequestHandler } from 'express';
10
10
  import * as _lark_apaas_file_service from '@lark-apaas/file-service';
11
11
  import { FileBody, UploadOptions, FileDownloadBuilder, SearchOptions } from '@lark-apaas/file-service';
12
12
  export * from '@lark-apaas/file-service';
@@ -221,6 +221,9 @@ declare class ViewContextMiddleware implements NestMiddleware {
221
221
  */
222
222
  declare function createLegacyPathRedirectMiddleware(): (req: Request, res: Response, next: NextFunction) => void;
223
223
 
224
+ declare function isLocalDev(): boolean;
225
+ declare function createLocalDevMiddleware(): RequestHandler;
226
+
224
227
  /**
225
228
  * API 404 响应格式
226
229
  */
@@ -402,4 +405,4 @@ declare class PlatformHttpClientService {
402
405
  private registerInterceptorsForClient;
403
406
  }
404
407
 
405
- export { type ApiNotFoundResponse, CsrfMiddleware, CsrfTokenMiddleware, FileService, HtmlHotUpdateModule, HtmlHotUpdateService, type PlatformHttpClientOptions, PlatformHttpClientService, PlatformModule, type PlatformModuleOptions, StaticModule, UserContextMiddleware, ViewContextMiddleware, configureApp, createLegacyPathRedirectMiddleware };
408
+ export { type ApiNotFoundResponse, CsrfMiddleware, CsrfTokenMiddleware, FileService, HtmlHotUpdateModule, HtmlHotUpdateService, type PlatformHttpClientOptions, PlatformHttpClientService, PlatformModule, type PlatformModuleOptions, StaticModule, UserContextMiddleware, ViewContextMiddleware, configureApp, createLegacyPathRedirectMiddleware, createLocalDevMiddleware, isLocalDev };
package/dist/index.js CHANGED
@@ -36519,6 +36519,45 @@ function createLegacyPathRedirectMiddleware() {
36519
36519
  }
36520
36520
  __name(createLegacyPathRedirectMiddleware, "createLegacyPathRedirectMiddleware");
36521
36521
 
36522
+ // src/middlewares/local-dev/index.ts
36523
+ var CSRF_COOKIE_KEY = "suda-csrf-token";
36524
+ var CSRF_HEADER_KEY = "x-suda-csrf-token";
36525
+ var WEBUSER_HEADER_KEY = "x-larkgw-suda-webuser";
36526
+ function isLocalDev() {
36527
+ if (process.env.NODE_ENV === "production") return false;
36528
+ const flag = process.env.MIAODA_LOCAL_DEV;
36529
+ return flag === "1" || flag === "true";
36530
+ }
36531
+ __name(isLocalDev, "isLocalDev");
36532
+ function extractCsrfFromCookie(cookieHeader) {
36533
+ if (!cookieHeader) return void 0;
36534
+ const re = new RegExp(`(?:^|;\\s*)${CSRF_COOKIE_KEY}=([^;]+)`);
36535
+ const m = cookieHeader.match(re);
36536
+ return m?.[1];
36537
+ }
36538
+ __name(extractCsrfFromCookie, "extractCsrfFromCookie");
36539
+ function createLocalDevMiddleware() {
36540
+ let webUserHeader = "";
36541
+ if (process.env.SUDA_WEBUSER) {
36542
+ try {
36543
+ webUserHeader = encodeURIComponent(JSON.stringify(JSON.parse(process.env.SUDA_WEBUSER)));
36544
+ } catch {
36545
+ }
36546
+ }
36547
+ return /* @__PURE__ */ __name(function localDevMiddleware(req, _res, next) {
36548
+ const headers = req.headers;
36549
+ if (!headers[CSRF_HEADER_KEY]) {
36550
+ const token = extractCsrfFromCookie(req.headers.cookie);
36551
+ if (token) headers[CSRF_HEADER_KEY] = token;
36552
+ }
36553
+ if (webUserHeader && !headers[WEBUSER_HEADER_KEY]) {
36554
+ headers[WEBUSER_HEADER_KEY] = webUserHeader;
36555
+ }
36556
+ next();
36557
+ }, "localDevMiddleware");
36558
+ }
36559
+ __name(createLocalDevMiddleware, "createLocalDevMiddleware");
36560
+
36522
36561
  // src/setup.ts
36523
36562
  var DEFAULT_BODY_LIMIT = "1mb";
36524
36563
  var defaultPerms = {
@@ -36536,6 +36575,9 @@ async function configureApp(app, perms = defaultPerms) {
36536
36575
  extended: true
36537
36576
  }));
36538
36577
  app.use(cookieParser());
36578
+ if (isLocalDev()) {
36579
+ app.use(createLocalDevMiddleware());
36580
+ }
36539
36581
  app.use(createLegacyPathRedirectMiddleware());
36540
36582
  const globalPrefix = process.env.CLIENT_BASE_PATH ?? "";
36541
36583
  app.setGlobalPrefix(globalPrefix);
@@ -36585,7 +36627,9 @@ export {
36585
36627
  UserContextMiddleware,
36586
36628
  ViewContextMiddleware,
36587
36629
  configureApp,
36588
- createLegacyPathRedirectMiddleware
36630
+ createLegacyPathRedirectMiddleware,
36631
+ createLocalDevMiddleware,
36632
+ isLocalDev
36589
36633
  };
36590
36634
  /*! Bundled license information:
36591
36635
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lark-apaas/fullstack-nestjs-core",
3
- "version": "1.1.50-alpha.6",
3
+ "version": "1.1.50-alpha.8",
4
4
  "description": "FullStack Nestjs Core",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -41,13 +41,13 @@
41
41
  "dependencies": {
42
42
  "@lark-apaas/file-service": "^0.1.2",
43
43
  "@lark-apaas/http-client": "^0.1.6",
44
- "@lark-apaas/nestjs-authnpaas": "1.0.4-alpha.0",
45
- "@lark-apaas/nestjs-authzpaas": "0.1.9-alpha.0",
46
- "@lark-apaas/nestjs-capability": "0.1.14-alpha.0",
47
- "@lark-apaas/nestjs-common": "0.1.9-alpha.0",
48
- "@lark-apaas/nestjs-datapaas": "1.0.21-alpha.0",
49
- "@lark-apaas/nestjs-logger": "1.0.17-alpha.0",
50
- "@lark-apaas/nestjs-observable": "0.0.12-alpha.0",
44
+ "@lark-apaas/nestjs-authnpaas": "^1.0.3",
45
+ "@lark-apaas/nestjs-authzpaas": "^0.1.8",
46
+ "@lark-apaas/nestjs-capability": "^0.1.13",
47
+ "@lark-apaas/nestjs-common": "^0.1.8",
48
+ "@lark-apaas/nestjs-datapaas": "^1.0.20",
49
+ "@lark-apaas/nestjs-logger": "^1.0.16",
50
+ "@lark-apaas/nestjs-observable": "^0.0.11",
51
51
  "@lark-apaas/nestjs-openapi-devtools": "^1.0.10",
52
52
  "@lark-apaas/nestjs-trigger": "^0.0.3",
53
53
  "@nestjs/axios": "^4.0.1",