@lark-apaas/devtool-kits 1.0.6-alpha.3 → 1.0.6-alpha.5

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.d.cts CHANGED
@@ -199,37 +199,6 @@ interface DevLogsMiddlewareOptions {
199
199
  */
200
200
  declare function createCollectLogsMiddleware(options?: DevLogsMiddlewareOptions): RouteMiddleware;
201
201
 
202
- interface HealthCheckMiddlewareOptions {
203
- /** 目标服务端口,默认 3000 */
204
- targetPort?: number;
205
- /** 目标服务主机,默认 localhost */
206
- targetHost?: string;
207
- /** 健康检查超时时间(毫秒),默认 2000ms */
208
- timeout?: number;
209
- }
210
- /**
211
- * Creates health check middleware for checking service availability
212
- * Supports both rspack/webpack and Vite dev servers
213
- *
214
- * @example
215
- * ```typescript
216
- * // In rspack/webpack setupMiddlewares
217
- * registerMiddlewares(devServer.app, [
218
- * createHealthCheckMiddleware({ targetPort: 3000 })
219
- * ]);
220
- *
221
- * // Check health at: GET /dev/health
222
- * // Response:
223
- * // {
224
- * // "status": "healthy",
225
- * // "service": "localhost:3000",
226
- * // "responseTime": 15,
227
- * // "timestamp": "2025-01-10T12:00:00.000Z"
228
- * // }
229
- * ```
230
- */
231
- declare function createHealthCheckMiddleware(options?: HealthCheckMiddlewareOptions): RouteMiddleware;
232
-
233
202
  /**
234
203
  * Register middlewares for Express-compatible servers or Vite
235
204
  * @param server - Express app or Vite middleware instance
@@ -269,4 +238,4 @@ declare function createHealthCheckMiddleware(options?: HealthCheckMiddlewareOpti
269
238
  */
270
239
  declare function registerMiddlewares(server: ExpressApp | ViteMiddleware, middlewares: Middleware[], options?: Partial<MiddlewareContext>): Promise<void>;
271
240
 
272
- export { type GlobalMiddleware, type Middleware, type MiddlewareContext, type RouteInfo, type RouteMiddleware, createCollectLogsMiddleware, createDevLogsMiddleware, createHealthCheckMiddleware, createOpenapiMiddleware, handleDevProxyError, normalizeBasePath, postprocessDrizzleSchema, registerMiddlewares };
241
+ export { type GlobalMiddleware, type Middleware, type MiddlewareContext, type RouteInfo, type RouteMiddleware, createCollectLogsMiddleware, createDevLogsMiddleware, createOpenapiMiddleware, handleDevProxyError, normalizeBasePath, postprocessDrizzleSchema, registerMiddlewares };
package/dist/index.d.ts CHANGED
@@ -199,37 +199,6 @@ interface DevLogsMiddlewareOptions {
199
199
  */
200
200
  declare function createCollectLogsMiddleware(options?: DevLogsMiddlewareOptions): RouteMiddleware;
201
201
 
202
- interface HealthCheckMiddlewareOptions {
203
- /** 目标服务端口,默认 3000 */
204
- targetPort?: number;
205
- /** 目标服务主机,默认 localhost */
206
- targetHost?: string;
207
- /** 健康检查超时时间(毫秒),默认 2000ms */
208
- timeout?: number;
209
- }
210
- /**
211
- * Creates health check middleware for checking service availability
212
- * Supports both rspack/webpack and Vite dev servers
213
- *
214
- * @example
215
- * ```typescript
216
- * // In rspack/webpack setupMiddlewares
217
- * registerMiddlewares(devServer.app, [
218
- * createHealthCheckMiddleware({ targetPort: 3000 })
219
- * ]);
220
- *
221
- * // Check health at: GET /dev/health
222
- * // Response:
223
- * // {
224
- * // "status": "healthy",
225
- * // "service": "localhost:3000",
226
- * // "responseTime": 15,
227
- * // "timestamp": "2025-01-10T12:00:00.000Z"
228
- * // }
229
- * ```
230
- */
231
- declare function createHealthCheckMiddleware(options?: HealthCheckMiddlewareOptions): RouteMiddleware;
232
-
233
202
  /**
234
203
  * Register middlewares for Express-compatible servers or Vite
235
204
  * @param server - Express app or Vite middleware instance
@@ -269,4 +238,4 @@ declare function createHealthCheckMiddleware(options?: HealthCheckMiddlewareOpti
269
238
  */
270
239
  declare function registerMiddlewares(server: ExpressApp | ViteMiddleware, middlewares: Middleware[], options?: Partial<MiddlewareContext>): Promise<void>;
271
240
 
272
- export { type GlobalMiddleware, type Middleware, type MiddlewareContext, type RouteInfo, type RouteMiddleware, createCollectLogsMiddleware, createDevLogsMiddleware, createHealthCheckMiddleware, createOpenapiMiddleware, handleDevProxyError, normalizeBasePath, postprocessDrizzleSchema, registerMiddlewares };
241
+ export { type GlobalMiddleware, type Middleware, type MiddlewareContext, type RouteInfo, type RouteMiddleware, createCollectLogsMiddleware, createDevLogsMiddleware, createOpenapiMiddleware, handleDevProxyError, normalizeBasePath, postprocessDrizzleSchema, registerMiddlewares };
package/dist/index.js CHANGED
@@ -28644,99 +28644,8 @@ __name(sendSimpleRedirect, "sendSimpleRedirect");
28644
28644
  // src/middlewares/index.ts
28645
28645
  import path5 from "path";
28646
28646
 
28647
- // src/middlewares/health-check/router.ts
28648
- var import_express = __toESM(require_express2(), 1);
28649
- import http2 from "http";
28650
- function checkServiceHealth(host, port, timeout) {
28651
- return new Promise((resolve) => {
28652
- const startTime = Date.now();
28653
- const req = http2.request({
28654
- hostname: host,
28655
- port,
28656
- path: "/",
28657
- method: "HEAD",
28658
- timeout
28659
- }, (_res) => {
28660
- const responseTime = Date.now() - startTime;
28661
- resolve({
28662
- available: true,
28663
- responseTime
28664
- });
28665
- });
28666
- req.on("timeout", () => {
28667
- req.destroy();
28668
- resolve({
28669
- available: false,
28670
- error: "Request timeout"
28671
- });
28672
- });
28673
- req.on("error", (err) => {
28674
- resolve({
28675
- available: false,
28676
- error: err.message
28677
- });
28678
- });
28679
- req.end();
28680
- });
28681
- }
28682
- __name(checkServiceHealth, "checkServiceHealth");
28683
- function createHealthCheckRouter(options = {}) {
28684
- const { targetPort = Number(process.env.SERVER_PORT) || 3e3, targetHost = "localhost", timeout = 2e3 } = options;
28685
- const router = import_express.default.Router();
28686
- router.get("/check", async (_req, res) => {
28687
- try {
28688
- const result = await checkServiceHealth(targetHost, targetPort, timeout);
28689
- if (result.available) {
28690
- res.status(200).json({
28691
- status: "healthy",
28692
- service: `${targetHost}:${targetPort}`,
28693
- responseTime: result.responseTime,
28694
- timestamp: (/* @__PURE__ */ new Date()).toISOString()
28695
- });
28696
- } else {
28697
- res.status(503).json({
28698
- status: "unhealthy",
28699
- service: `${targetHost}:${targetPort}`,
28700
- error: result.error,
28701
- timestamp: (/* @__PURE__ */ new Date()).toISOString()
28702
- });
28703
- }
28704
- } catch (error) {
28705
- res.status(500).json({
28706
- status: "error",
28707
- service: `${targetHost}:${targetPort}`,
28708
- error: error instanceof Error ? error.message : "Unknown error",
28709
- timestamp: (/* @__PURE__ */ new Date()).toISOString()
28710
- });
28711
- }
28712
- });
28713
- return router;
28714
- }
28715
- __name(createHealthCheckRouter, "createHealthCheckRouter");
28716
-
28717
- // src/middlewares/health-check/index.ts
28718
- var HEALTH_CHECK_ROUTES = [
28719
- {
28720
- method: "GET",
28721
- path: "/check",
28722
- description: "Check if target service is healthy and available"
28723
- }
28724
- ];
28725
- function createHealthCheckMiddleware(options = {}) {
28726
- return {
28727
- name: "health-check",
28728
- mountPath: "/dev/health",
28729
- routes: HEALTH_CHECK_ROUTES,
28730
- enabled: /* @__PURE__ */ __name((context) => context.isDev, "enabled"),
28731
- createRouter: /* @__PURE__ */ __name((_context) => {
28732
- return createHealthCheckRouter(options);
28733
- }, "createRouter")
28734
- };
28735
- }
28736
- __name(createHealthCheckMiddleware, "createHealthCheckMiddleware");
28737
-
28738
28647
  // src/middlewares/openapi/router.ts
28739
- var import_express2 = __toESM(require_express2(), 1);
28648
+ var import_express = __toESM(require_express2(), 1);
28740
28649
 
28741
28650
  // src/middlewares/openapi/controller.ts
28742
28651
  import fs5 from "fs/promises";
@@ -28983,7 +28892,7 @@ __name(createOpenapiHandler, "createOpenapiHandler");
28983
28892
  // src/middlewares/openapi/router.ts
28984
28893
  function createOpenapiRouter(options, context) {
28985
28894
  const { openapiFilePath, enableEnhancement, serverDir } = options;
28986
- const router = import_express2.default.Router();
28895
+ const router = import_express.default.Router();
28987
28896
  const handler = createOpenapiHandler(openapiFilePath, enableEnhancement, serverDir);
28988
28897
  router.get("/openapi.json", (req, res) => handler(req, res, context));
28989
28898
  return router;
@@ -29002,7 +28911,7 @@ function createOpenapiMiddleware(options) {
29002
28911
  const { openapiFilePath, enableEnhancement = true, serverDir } = options;
29003
28912
  return {
29004
28913
  name: "openapi",
29005
- mountPath: "/dev/openapi.json",
28914
+ mountPath: "/dev",
29006
28915
  routes: OPENAPI_ROUTES,
29007
28916
  enabled: /* @__PURE__ */ __name((context) => context.isDev, "enabled"),
29008
28917
  createRouter: /* @__PURE__ */ __name((context) => {
@@ -29017,7 +28926,7 @@ function createOpenapiMiddleware(options) {
29017
28926
  __name(createOpenapiMiddleware, "createOpenapiMiddleware");
29018
28927
 
29019
28928
  // src/middlewares/dev-logs/router.ts
29020
- var import_express3 = __toESM(require_express2(), 1);
28929
+ var import_express2 = __toESM(require_express2(), 1);
29021
28930
 
29022
28931
  // src/middlewares/dev-logs/utils.ts
29023
28932
  import { promises as fs6 } from "fs";
@@ -29459,13 +29368,81 @@ function createGetLogFileHandler(logDir) {
29459
29368
  }
29460
29369
  __name(createGetLogFileHandler, "createGetLogFileHandler");
29461
29370
 
29371
+ // src/middlewares/dev-logs/health.controller.ts
29372
+ import http2 from "http";
29373
+ function checkServiceHealth(host, port, timeout) {
29374
+ return new Promise((resolve) => {
29375
+ const startTime = Date.now();
29376
+ const req = http2.request({
29377
+ hostname: host,
29378
+ port,
29379
+ path: "/",
29380
+ method: "HEAD",
29381
+ timeout
29382
+ }, (_res) => {
29383
+ const responseTime = Date.now() - startTime;
29384
+ resolve({
29385
+ available: true,
29386
+ responseTime
29387
+ });
29388
+ });
29389
+ req.on("timeout", () => {
29390
+ req.destroy();
29391
+ resolve({
29392
+ available: false,
29393
+ error: "Request timeout"
29394
+ });
29395
+ });
29396
+ req.on("error", (err) => {
29397
+ resolve({
29398
+ available: false,
29399
+ error: err.message
29400
+ });
29401
+ });
29402
+ req.end();
29403
+ });
29404
+ }
29405
+ __name(checkServiceHealth, "checkServiceHealth");
29406
+ function createHealthCheckHandler(options = {}) {
29407
+ const { targetPort = Number(process.env.SERVER_PORT) || 3e3, targetHost = "localhost", timeout = 2e3 } = options;
29408
+ return async (_req, res) => {
29409
+ try {
29410
+ const result = await checkServiceHealth(targetHost, targetPort, timeout);
29411
+ if (result.available) {
29412
+ res.status(200).json({
29413
+ status: "healthy",
29414
+ service: `${targetHost}:${targetPort}`,
29415
+ responseTime: result.responseTime,
29416
+ timestamp: (/* @__PURE__ */ new Date()).toISOString()
29417
+ });
29418
+ } else {
29419
+ res.status(503).json({
29420
+ status: "unhealthy",
29421
+ service: `${targetHost}:${targetPort}`,
29422
+ error: result.error,
29423
+ timestamp: (/* @__PURE__ */ new Date()).toISOString()
29424
+ });
29425
+ }
29426
+ } catch (error) {
29427
+ res.status(500).json({
29428
+ status: "error",
29429
+ service: `${targetHost}:${targetPort}`,
29430
+ error: error instanceof Error ? error.message : "Unknown error",
29431
+ timestamp: (/* @__PURE__ */ new Date()).toISOString()
29432
+ });
29433
+ }
29434
+ };
29435
+ }
29436
+ __name(createHealthCheckHandler, "createHealthCheckHandler");
29437
+
29462
29438
  // src/middlewares/dev-logs/router.ts
29463
29439
  function createDevLogRouter(options = {}) {
29464
29440
  const logDir = resolveLogDir(options.logDir);
29465
- const router = import_express3.default.Router();
29441
+ const router = import_express2.default.Router();
29466
29442
  router.get("/app/trace/:traceId", createGetTraceEntriesHandler(logDir));
29467
29443
  router.get("/trace/recent", createGetRecentTracesHandler(logDir));
29468
29444
  router.get("/files/:fileName", createGetLogFileHandler(logDir));
29445
+ router.get("/health", createHealthCheckHandler());
29469
29446
  return router;
29470
29447
  }
29471
29448
  __name(createDevLogRouter, "createDevLogRouter");
@@ -29505,7 +29482,7 @@ function createDevLogsMiddleware(options = {}) {
29505
29482
  __name(createDevLogsMiddleware, "createDevLogsMiddleware");
29506
29483
 
29507
29484
  // src/middlewares/collect-logs/router.ts
29508
- var import_express4 = __toESM(require_express2(), 1);
29485
+ var import_express3 = __toESM(require_express2(), 1);
29509
29486
 
29510
29487
  // src/middlewares/collect-logs/controller.ts
29511
29488
  import { join as join4 } from "path";
@@ -29604,9 +29581,9 @@ __name(handleError2, "handleError");
29604
29581
  // src/middlewares/collect-logs/router.ts
29605
29582
  function createDevLogRouter2(options = {}) {
29606
29583
  const logDir = resolveLogDir2(options.logDir);
29607
- const router = import_express4.default.Router();
29608
- router.post("/collect", import_express4.default.json(), collectLogsHandler(logDir, options.fileName || "client.log"));
29609
- router.post("/collect-batch", import_express4.default.json(), collectLogsBatchHandler(logDir, options.fileName || "client.log"));
29584
+ const router = import_express3.default.Router();
29585
+ router.post("/collect", import_express3.default.json(), collectLogsHandler(logDir, options.fileName || "client.log"));
29586
+ router.post("/collect-batch", import_express3.default.json(), collectLogsBatchHandler(logDir, options.fileName || "client.log"));
29610
29587
  return router;
29611
29588
  }
29612
29589
  __name(createDevLogRouter2, "createDevLogRouter");
@@ -29669,18 +29646,7 @@ async function registerRouteMiddleware(server, middleware, context) {
29669
29646
  }
29670
29647
  const router = middleware.createRouter(context);
29671
29648
  const fullMountPath = computeMountPath(context.basePath, middleware.mountPath);
29672
- const wrappedRouter = /* @__PURE__ */ __name((req, res, next) => {
29673
- console.log(`[Middleware] ${middleware.name} received request: ${req.method} ${req.url}`);
29674
- router(req, res, (err) => {
29675
- if (err) {
29676
- console.log(`[Middleware] ${middleware.name} error:`, err);
29677
- } else {
29678
- console.log(`[Middleware] ${middleware.name} called next()`);
29679
- }
29680
- next(err);
29681
- });
29682
- }, "wrappedRouter");
29683
- server.use(fullMountPath, wrappedRouter);
29649
+ server.use(fullMountPath, router);
29684
29650
  logMiddlewareRegistration(middleware, fullMountPath);
29685
29651
  }
29686
29652
  __name(registerRouteMiddleware, "registerRouteMiddleware");
@@ -29700,29 +29666,10 @@ async function registerMiddlewares(server, middlewares, options) {
29700
29666
  rootDir: process.cwd(),
29701
29667
  ...options
29702
29668
  };
29703
- const defaultMiddlewares = [
29704
- createHealthCheckMiddleware()
29705
- ];
29706
29669
  const allMiddlewares = [
29707
- ...middlewares,
29708
- ...defaultMiddlewares
29670
+ ...middlewares
29709
29671
  ];
29710
- console.log(`[Middleware] Total middlewares to register: ${allMiddlewares.length}`);
29711
- allMiddlewares.forEach((m, i) => {
29712
- console.log(`[Middleware] [${i}] ${m.name} (mountPath: ${m.mountPath || "N/A"})`);
29713
- });
29714
- const seen = /* @__PURE__ */ new Set();
29715
- const uniqueMiddlewares = [];
29716
29672
  for (const middleware of allMiddlewares) {
29717
- if (!seen.has(middleware.name)) {
29718
- seen.add(middleware.name);
29719
- uniqueMiddlewares.push(middleware);
29720
- } else {
29721
- console.log(`[Middleware] Skipping duplicate: ${middleware.name}`);
29722
- }
29723
- }
29724
- console.log(`[Middleware] After deduplication: ${uniqueMiddlewares.length} middlewares`);
29725
- for (const middleware of uniqueMiddlewares) {
29726
29673
  if (middleware.enabled && !middleware.enabled(context)) {
29727
29674
  continue;
29728
29675
  }
@@ -29748,7 +29695,6 @@ __name(registerMiddlewares, "registerMiddlewares");
29748
29695
  export {
29749
29696
  createCollectLogsMiddleware,
29750
29697
  createDevLogsMiddleware,
29751
- createHealthCheckMiddleware,
29752
29698
  createOpenapiMiddleware,
29753
29699
  handleDevProxyError,
29754
29700
  normalizeBasePath,