@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/error.html CHANGED
@@ -160,13 +160,13 @@
160
160
  // 探测服务是否恢复
161
161
  async function probeService() {
162
162
  try {
163
- console.log('[Probe] 探测服务状态: /dev/health/check');
163
+ console.log('[Probe] 探测服务状态: /dev/logs/health');
164
164
 
165
165
  // 使用 AbortController 实现超时控制
166
166
  const controller = new AbortController();
167
167
  const timeoutId = setTimeout(() => controller.abort(), PROBE_TIMEOUT);
168
168
 
169
- const response = await fetch(`${clientBasePath}/dev/health/check`, {
169
+ const response = await fetch(`${clientBasePath}/dev/logs/health`, {
170
170
  method: 'GET',
171
171
  cache: 'no-cache',
172
172
  redirect: 'manual', // 不自动跟随重定向
package/dist/index.cjs CHANGED
@@ -28093,7 +28093,6 @@ var index_exports = {};
28093
28093
  __export(index_exports, {
28094
28094
  createCollectLogsMiddleware: () => createCollectLogsMiddleware,
28095
28095
  createDevLogsMiddleware: () => createDevLogsMiddleware,
28096
- createHealthCheckMiddleware: () => createHealthCheckMiddleware,
28097
28096
  createOpenapiMiddleware: () => createOpenapiMiddleware,
28098
28097
  handleDevProxyError: () => handleDevProxyError,
28099
28098
  normalizeBasePath: () => normalizeBasePath,
@@ -28658,99 +28657,8 @@ __name(sendSimpleRedirect, "sendSimpleRedirect");
28658
28657
  // src/middlewares/index.ts
28659
28658
  var import_node_path8 = __toESM(require("path"), 1);
28660
28659
 
28661
- // src/middlewares/health-check/router.ts
28662
- var import_express = __toESM(require_express2(), 1);
28663
- var import_node_http2 = __toESM(require("http"), 1);
28664
- function checkServiceHealth(host, port, timeout) {
28665
- return new Promise((resolve) => {
28666
- const startTime = Date.now();
28667
- const req = import_node_http2.default.request({
28668
- hostname: host,
28669
- port,
28670
- path: "/",
28671
- method: "HEAD",
28672
- timeout
28673
- }, (_res) => {
28674
- const responseTime = Date.now() - startTime;
28675
- resolve({
28676
- available: true,
28677
- responseTime
28678
- });
28679
- });
28680
- req.on("timeout", () => {
28681
- req.destroy();
28682
- resolve({
28683
- available: false,
28684
- error: "Request timeout"
28685
- });
28686
- });
28687
- req.on("error", (err) => {
28688
- resolve({
28689
- available: false,
28690
- error: err.message
28691
- });
28692
- });
28693
- req.end();
28694
- });
28695
- }
28696
- __name(checkServiceHealth, "checkServiceHealth");
28697
- function createHealthCheckRouter(options = {}) {
28698
- const { targetPort = Number(process.env.SERVER_PORT) || 3e3, targetHost = "localhost", timeout = 2e3 } = options;
28699
- const router = import_express.default.Router();
28700
- router.get("/check", async (_req, res) => {
28701
- try {
28702
- const result = await checkServiceHealth(targetHost, targetPort, timeout);
28703
- if (result.available) {
28704
- res.status(200).json({
28705
- status: "healthy",
28706
- service: `${targetHost}:${targetPort}`,
28707
- responseTime: result.responseTime,
28708
- timestamp: (/* @__PURE__ */ new Date()).toISOString()
28709
- });
28710
- } else {
28711
- res.status(503).json({
28712
- status: "unhealthy",
28713
- service: `${targetHost}:${targetPort}`,
28714
- error: result.error,
28715
- timestamp: (/* @__PURE__ */ new Date()).toISOString()
28716
- });
28717
- }
28718
- } catch (error) {
28719
- res.status(500).json({
28720
- status: "error",
28721
- service: `${targetHost}:${targetPort}`,
28722
- error: error instanceof Error ? error.message : "Unknown error",
28723
- timestamp: (/* @__PURE__ */ new Date()).toISOString()
28724
- });
28725
- }
28726
- });
28727
- return router;
28728
- }
28729
- __name(createHealthCheckRouter, "createHealthCheckRouter");
28730
-
28731
- // src/middlewares/health-check/index.ts
28732
- var HEALTH_CHECK_ROUTES = [
28733
- {
28734
- method: "GET",
28735
- path: "/check",
28736
- description: "Check if target service is healthy and available"
28737
- }
28738
- ];
28739
- function createHealthCheckMiddleware(options = {}) {
28740
- return {
28741
- name: "health-check",
28742
- mountPath: "/dev/health",
28743
- routes: HEALTH_CHECK_ROUTES,
28744
- enabled: /* @__PURE__ */ __name((context) => context.isDev, "enabled"),
28745
- createRouter: /* @__PURE__ */ __name((_context) => {
28746
- return createHealthCheckRouter(options);
28747
- }, "createRouter")
28748
- };
28749
- }
28750
- __name(createHealthCheckMiddleware, "createHealthCheckMiddleware");
28751
-
28752
28660
  // src/middlewares/openapi/router.ts
28753
- var import_express2 = __toESM(require_express2(), 1);
28661
+ var import_express = __toESM(require_express2(), 1);
28754
28662
 
28755
28663
  // src/middlewares/openapi/controller.ts
28756
28664
  var import_promises = __toESM(require("fs/promises"), 1);
@@ -28997,7 +28905,7 @@ __name(createOpenapiHandler, "createOpenapiHandler");
28997
28905
  // src/middlewares/openapi/router.ts
28998
28906
  function createOpenapiRouter(options, context) {
28999
28907
  const { openapiFilePath, enableEnhancement, serverDir } = options;
29000
- const router = import_express2.default.Router();
28908
+ const router = import_express.default.Router();
29001
28909
  const handler = createOpenapiHandler(openapiFilePath, enableEnhancement, serverDir);
29002
28910
  router.get("/openapi.json", (req, res) => handler(req, res, context));
29003
28911
  return router;
@@ -29016,7 +28924,7 @@ function createOpenapiMiddleware(options) {
29016
28924
  const { openapiFilePath, enableEnhancement = true, serverDir } = options;
29017
28925
  return {
29018
28926
  name: "openapi",
29019
- mountPath: "/dev/openapi.json",
28927
+ mountPath: "/dev",
29020
28928
  routes: OPENAPI_ROUTES,
29021
28929
  enabled: /* @__PURE__ */ __name((context) => context.isDev, "enabled"),
29022
28930
  createRouter: /* @__PURE__ */ __name((context) => {
@@ -29031,7 +28939,7 @@ function createOpenapiMiddleware(options) {
29031
28939
  __name(createOpenapiMiddleware, "createOpenapiMiddleware");
29032
28940
 
29033
28941
  // src/middlewares/dev-logs/router.ts
29034
- var import_express3 = __toESM(require_express2(), 1);
28942
+ var import_express2 = __toESM(require_express2(), 1);
29035
28943
 
29036
28944
  // src/middlewares/dev-logs/utils.ts
29037
28945
  var import_node_fs5 = require("fs");
@@ -29473,13 +29381,81 @@ function createGetLogFileHandler(logDir) {
29473
29381
  }
29474
29382
  __name(createGetLogFileHandler, "createGetLogFileHandler");
29475
29383
 
29384
+ // src/middlewares/dev-logs/health.controller.ts
29385
+ var import_node_http2 = __toESM(require("http"), 1);
29386
+ function checkServiceHealth(host, port, timeout) {
29387
+ return new Promise((resolve) => {
29388
+ const startTime = Date.now();
29389
+ const req = import_node_http2.default.request({
29390
+ hostname: host,
29391
+ port,
29392
+ path: "/",
29393
+ method: "HEAD",
29394
+ timeout
29395
+ }, (_res) => {
29396
+ const responseTime = Date.now() - startTime;
29397
+ resolve({
29398
+ available: true,
29399
+ responseTime
29400
+ });
29401
+ });
29402
+ req.on("timeout", () => {
29403
+ req.destroy();
29404
+ resolve({
29405
+ available: false,
29406
+ error: "Request timeout"
29407
+ });
29408
+ });
29409
+ req.on("error", (err) => {
29410
+ resolve({
29411
+ available: false,
29412
+ error: err.message
29413
+ });
29414
+ });
29415
+ req.end();
29416
+ });
29417
+ }
29418
+ __name(checkServiceHealth, "checkServiceHealth");
29419
+ function createHealthCheckHandler(options = {}) {
29420
+ const { targetPort = Number(process.env.SERVER_PORT) || 3e3, targetHost = "localhost", timeout = 2e3 } = options;
29421
+ return async (_req, res) => {
29422
+ try {
29423
+ const result = await checkServiceHealth(targetHost, targetPort, timeout);
29424
+ if (result.available) {
29425
+ res.status(200).json({
29426
+ status: "healthy",
29427
+ service: `${targetHost}:${targetPort}`,
29428
+ responseTime: result.responseTime,
29429
+ timestamp: (/* @__PURE__ */ new Date()).toISOString()
29430
+ });
29431
+ } else {
29432
+ res.status(503).json({
29433
+ status: "unhealthy",
29434
+ service: `${targetHost}:${targetPort}`,
29435
+ error: result.error,
29436
+ timestamp: (/* @__PURE__ */ new Date()).toISOString()
29437
+ });
29438
+ }
29439
+ } catch (error) {
29440
+ res.status(500).json({
29441
+ status: "error",
29442
+ service: `${targetHost}:${targetPort}`,
29443
+ error: error instanceof Error ? error.message : "Unknown error",
29444
+ timestamp: (/* @__PURE__ */ new Date()).toISOString()
29445
+ });
29446
+ }
29447
+ };
29448
+ }
29449
+ __name(createHealthCheckHandler, "createHealthCheckHandler");
29450
+
29476
29451
  // src/middlewares/dev-logs/router.ts
29477
29452
  function createDevLogRouter(options = {}) {
29478
29453
  const logDir = resolveLogDir(options.logDir);
29479
- const router = import_express3.default.Router();
29454
+ const router = import_express2.default.Router();
29480
29455
  router.get("/app/trace/:traceId", createGetTraceEntriesHandler(logDir));
29481
29456
  router.get("/trace/recent", createGetRecentTracesHandler(logDir));
29482
29457
  router.get("/files/:fileName", createGetLogFileHandler(logDir));
29458
+ router.get("/health", createHealthCheckHandler());
29483
29459
  return router;
29484
29460
  }
29485
29461
  __name(createDevLogRouter, "createDevLogRouter");
@@ -29519,7 +29495,7 @@ function createDevLogsMiddleware(options = {}) {
29519
29495
  __name(createDevLogsMiddleware, "createDevLogsMiddleware");
29520
29496
 
29521
29497
  // src/middlewares/collect-logs/router.ts
29522
- var import_express4 = __toESM(require_express2(), 1);
29498
+ var import_express3 = __toESM(require_express2(), 1);
29523
29499
 
29524
29500
  // src/middlewares/collect-logs/controller.ts
29525
29501
  var import_path = require("path");
@@ -29618,9 +29594,9 @@ __name(handleError2, "handleError");
29618
29594
  // src/middlewares/collect-logs/router.ts
29619
29595
  function createDevLogRouter2(options = {}) {
29620
29596
  const logDir = resolveLogDir2(options.logDir);
29621
- const router = import_express4.default.Router();
29622
- router.post("/collect", import_express4.default.json(), collectLogsHandler(logDir, options.fileName || "client.log"));
29623
- router.post("/collect-batch", import_express4.default.json(), collectLogsBatchHandler(logDir, options.fileName || "client.log"));
29597
+ const router = import_express3.default.Router();
29598
+ router.post("/collect", import_express3.default.json(), collectLogsHandler(logDir, options.fileName || "client.log"));
29599
+ router.post("/collect-batch", import_express3.default.json(), collectLogsBatchHandler(logDir, options.fileName || "client.log"));
29624
29600
  return router;
29625
29601
  }
29626
29602
  __name(createDevLogRouter2, "createDevLogRouter");
@@ -29683,18 +29659,7 @@ async function registerRouteMiddleware(server, middleware, context) {
29683
29659
  }
29684
29660
  const router = middleware.createRouter(context);
29685
29661
  const fullMountPath = computeMountPath(context.basePath, middleware.mountPath);
29686
- const wrappedRouter = /* @__PURE__ */ __name((req, res, next) => {
29687
- console.log(`[Middleware] ${middleware.name} received request: ${req.method} ${req.url}`);
29688
- router(req, res, (err) => {
29689
- if (err) {
29690
- console.log(`[Middleware] ${middleware.name} error:`, err);
29691
- } else {
29692
- console.log(`[Middleware] ${middleware.name} called next()`);
29693
- }
29694
- next(err);
29695
- });
29696
- }, "wrappedRouter");
29697
- server.use(fullMountPath, wrappedRouter);
29662
+ server.use(fullMountPath, router);
29698
29663
  logMiddlewareRegistration(middleware, fullMountPath);
29699
29664
  }
29700
29665
  __name(registerRouteMiddleware, "registerRouteMiddleware");
@@ -29714,29 +29679,10 @@ async function registerMiddlewares(server, middlewares, options) {
29714
29679
  rootDir: process.cwd(),
29715
29680
  ...options
29716
29681
  };
29717
- const defaultMiddlewares = [
29718
- createHealthCheckMiddleware()
29719
- ];
29720
29682
  const allMiddlewares = [
29721
- ...middlewares,
29722
- ...defaultMiddlewares
29683
+ ...middlewares
29723
29684
  ];
29724
- console.log(`[Middleware] Total middlewares to register: ${allMiddlewares.length}`);
29725
- allMiddlewares.forEach((m, i) => {
29726
- console.log(`[Middleware] [${i}] ${m.name} (mountPath: ${m.mountPath || "N/A"})`);
29727
- });
29728
- const seen = /* @__PURE__ */ new Set();
29729
- const uniqueMiddlewares = [];
29730
29685
  for (const middleware of allMiddlewares) {
29731
- if (!seen.has(middleware.name)) {
29732
- seen.add(middleware.name);
29733
- uniqueMiddlewares.push(middleware);
29734
- } else {
29735
- console.log(`[Middleware] Skipping duplicate: ${middleware.name}`);
29736
- }
29737
- }
29738
- console.log(`[Middleware] After deduplication: ${uniqueMiddlewares.length} middlewares`);
29739
- for (const middleware of uniqueMiddlewares) {
29740
29686
  if (middleware.enabled && !middleware.enabled(context)) {
29741
29687
  continue;
29742
29688
  }
@@ -29763,7 +29709,6 @@ __name(registerMiddlewares, "registerMiddlewares");
29763
29709
  0 && (module.exports = {
29764
29710
  createCollectLogsMiddleware,
29765
29711
  createDevLogsMiddleware,
29766
- createHealthCheckMiddleware,
29767
29712
  createOpenapiMiddleware,
29768
29713
  handleDevProxyError,
29769
29714
  normalizeBasePath,