@lark-apaas/devtool-kits 1.0.6-alpha.4 → 1.0.6
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 +2 -2
- package/dist/index.cjs +76 -118
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +1 -32
- package/dist/index.d.ts +1 -32
- package/dist/index.js +76 -117
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
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,
|
|
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,
|
|
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
|
|
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 =
|
|
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;
|
|
@@ -29017,7 +28926,7 @@ function createOpenapiMiddleware(options) {
|
|
|
29017
28926
|
__name(createOpenapiMiddleware, "createOpenapiMiddleware");
|
|
29018
28927
|
|
|
29019
28928
|
// src/middlewares/dev-logs/router.ts
|
|
29020
|
-
var
|
|
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 =
|
|
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
|
|
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 =
|
|
29608
|
-
router.post("/collect",
|
|
29609
|
-
router.post("/collect-batch",
|
|
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");
|
|
@@ -29689,27 +29666,10 @@ async function registerMiddlewares(server, middlewares, options) {
|
|
|
29689
29666
|
rootDir: process.cwd(),
|
|
29690
29667
|
...options
|
|
29691
29668
|
};
|
|
29692
|
-
const defaultMiddlewares = [
|
|
29693
|
-
createHealthCheckMiddleware()
|
|
29694
|
-
];
|
|
29695
29669
|
const allMiddlewares = [
|
|
29696
|
-
...defaultMiddlewares,
|
|
29697
29670
|
...middlewares
|
|
29698
29671
|
];
|
|
29699
|
-
allMiddlewares.forEach((m, i) => {
|
|
29700
|
-
console.log(`[Middleware] [${i}] ${m.name} (mountPath: ${m.mountPath || "N/A"})`);
|
|
29701
|
-
});
|
|
29702
|
-
const seen = /* @__PURE__ */ new Set();
|
|
29703
|
-
const uniqueMiddlewares = [];
|
|
29704
29672
|
for (const middleware of allMiddlewares) {
|
|
29705
|
-
if (!seen.has(middleware.name)) {
|
|
29706
|
-
seen.add(middleware.name);
|
|
29707
|
-
uniqueMiddlewares.push(middleware);
|
|
29708
|
-
} else {
|
|
29709
|
-
console.log(`[Middleware] Skipping duplicate: ${middleware.name}`);
|
|
29710
|
-
}
|
|
29711
|
-
}
|
|
29712
|
-
for (const middleware of uniqueMiddlewares) {
|
|
29713
29673
|
if (middleware.enabled && !middleware.enabled(context)) {
|
|
29714
29674
|
continue;
|
|
29715
29675
|
}
|
|
@@ -29735,7 +29695,6 @@ __name(registerMiddlewares, "registerMiddlewares");
|
|
|
29735
29695
|
export {
|
|
29736
29696
|
createCollectLogsMiddleware,
|
|
29737
29697
|
createDevLogsMiddleware,
|
|
29738
|
-
createHealthCheckMiddleware,
|
|
29739
29698
|
createOpenapiMiddleware,
|
|
29740
29699
|
handleDevProxyError,
|
|
29741
29700
|
normalizeBasePath,
|