@lark-apaas/coding-preset-vite-react 1.0.10-alpha.4 → 1.0.10-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/lib/plugins/server-log.d.ts +22 -10
- package/lib/plugins/server-log.d.ts.map +1 -1
- package/lib/plugins/server-log.js +26 -27
- package/lib/plugins/server-log.js.map +1 -1
- package/lib/server-log/compat.d.ts +36 -0
- package/lib/server-log/compat.d.ts.map +1 -0
- package/lib/server-log/compat.js +73 -0
- package/lib/server-log/compat.js.map +1 -0
- package/lib/server-log/dev-logs/api-list-handler.d.ts +6 -0
- package/lib/server-log/dev-logs/api-list-handler.d.ts.map +1 -0
- package/lib/server-log/dev-logs/api-list-handler.js +132 -0
- package/lib/server-log/dev-logs/api-list-handler.js.map +1 -0
- package/lib/server-log/dev-logs/controller.d.ts +45 -0
- package/lib/server-log/dev-logs/controller.d.ts.map +1 -0
- package/lib/server-log/dev-logs/controller.js +239 -0
- package/lib/server-log/dev-logs/controller.js.map +1 -0
- package/lib/server-log/dev-logs/health.controller.d.ts +15 -0
- package/lib/server-log/dev-logs/health.controller.d.ts.map +1 -0
- package/lib/server-log/dev-logs/health.controller.js +79 -0
- package/lib/server-log/dev-logs/health.controller.js.map +1 -0
- package/lib/server-log/dev-logs/helper/path-matcher.d.ts +117 -0
- package/lib/server-log/dev-logs/helper/path-matcher.d.ts.map +1 -0
- package/lib/server-log/dev-logs/helper/path-matcher.js +214 -0
- package/lib/server-log/dev-logs/helper/path-matcher.js.map +1 -0
- package/lib/server-log/dev-logs/index.d.ts +12 -0
- package/lib/server-log/dev-logs/index.d.ts.map +1 -0
- package/lib/server-log/dev-logs/index.js +61 -0
- package/lib/server-log/dev-logs/index.js.map +1 -0
- package/lib/server-log/dev-logs/router.d.ts +7 -0
- package/lib/server-log/dev-logs/router.d.ts.map +1 -0
- package/lib/server-log/dev-logs/router.js +40 -0
- package/lib/server-log/dev-logs/router.js.map +1 -0
- package/lib/server-log/dev-logs/services/capability.service.d.ts +33 -0
- package/lib/server-log/dev-logs/services/capability.service.d.ts.map +1 -0
- package/lib/server-log/dev-logs/services/capability.service.js +127 -0
- package/lib/server-log/dev-logs/services/capability.service.js.map +1 -0
- package/lib/server-log/dev-logs/services/file-reader.d.ts +10 -0
- package/lib/server-log/dev-logs/services/file-reader.d.ts.map +1 -0
- package/lib/server-log/dev-logs/services/file-reader.js +67 -0
- package/lib/server-log/dev-logs/services/file-reader.js.map +1 -0
- package/lib/server-log/dev-logs/services/index.d.ts +8 -0
- package/lib/server-log/dev-logs/services/index.d.ts.map +1 -0
- package/lib/server-log/dev-logs/services/index.js +30 -0
- package/lib/server-log/dev-logs/services/index.js.map +1 -0
- package/lib/server-log/dev-logs/services/parsers.d.ts +23 -0
- package/lib/server-log/dev-logs/services/parsers.d.ts.map +1 -0
- package/lib/server-log/dev-logs/services/parsers.js +157 -0
- package/lib/server-log/dev-logs/services/parsers.js.map +1 -0
- package/lib/server-log/dev-logs/services/server-log.service.d.ts +17 -0
- package/lib/server-log/dev-logs/services/server-log.service.d.ts.map +1 -0
- package/lib/server-log/dev-logs/services/server-log.service.js +119 -0
- package/lib/server-log/dev-logs/services/server-log.service.js.map +1 -0
- package/lib/server-log/dev-logs/services/trace.service.d.ts +14 -0
- package/lib/server-log/dev-logs/services/trace.service.d.ts.map +1 -0
- package/lib/server-log/dev-logs/services/trace.service.js +162 -0
- package/lib/server-log/dev-logs/services/trace.service.js.map +1 -0
- package/lib/server-log/dev-logs/services/trigger.service.d.ts +14 -0
- package/lib/server-log/dev-logs/services/trigger.service.d.ts.map +1 -0
- package/lib/server-log/dev-logs/services/trigger.service.js +153 -0
- package/lib/server-log/dev-logs/services/trigger.service.js.map +1 -0
- package/lib/server-log/dev-logs/services.d.ts +7 -0
- package/lib/server-log/dev-logs/services.d.ts.map +1 -0
- package/lib/server-log/dev-logs/services.js +20 -0
- package/lib/server-log/dev-logs/services.js.map +1 -0
- package/lib/server-log/dev-logs/sse/client-manager.d.ts +61 -0
- package/lib/server-log/dev-logs/sse/client-manager.d.ts.map +1 -0
- package/lib/server-log/dev-logs/sse/client-manager.js +140 -0
- package/lib/server-log/dev-logs/sse/client-manager.js.map +1 -0
- package/lib/server-log/dev-logs/sse/index.d.ts +5 -0
- package/lib/server-log/dev-logs/sse/index.d.ts.map +1 -0
- package/lib/server-log/dev-logs/sse/index.js +11 -0
- package/lib/server-log/dev-logs/sse/index.js.map +1 -0
- package/lib/server-log/dev-logs/sse/log-watcher.d.ts +51 -0
- package/lib/server-log/dev-logs/sse/log-watcher.d.ts.map +1 -0
- package/lib/server-log/dev-logs/sse/log-watcher.js +381 -0
- package/lib/server-log/dev-logs/sse/log-watcher.js.map +1 -0
- package/lib/server-log/dev-logs/sse/sse.controller.d.ts +25 -0
- package/lib/server-log/dev-logs/sse/sse.controller.d.ts.map +1 -0
- package/lib/server-log/dev-logs/sse/sse.controller.js +95 -0
- package/lib/server-log/dev-logs/sse/sse.controller.js.map +1 -0
- package/lib/server-log/dev-logs/types.d.ts +104 -0
- package/lib/server-log/dev-logs/types.d.ts.map +1 -0
- package/lib/server-log/dev-logs/types.js +3 -0
- package/lib/server-log/dev-logs/types.js.map +1 -0
- package/lib/server-log/dev-logs/utils.d.ts +68 -0
- package/lib/server-log/dev-logs/utils.d.ts.map +1 -0
- package/lib/server-log/dev-logs/utils.js +151 -0
- package/lib/server-log/dev-logs/utils.js.map +1 -0
- package/lib/server-log/register.d.ts +34 -0
- package/lib/server-log/register.d.ts.map +1 -0
- package/lib/server-log/register.js +196 -0
- package/lib/server-log/register.js.map +1 -0
- package/lib/server-log/types.d.ts +99 -0
- package/lib/server-log/types.d.ts.map +1 -0
- package/lib/server-log/types.js +3 -0
- package/lib/server-log/types.js.map +1 -0
- package/package.json +3 -1
|
@@ -1,31 +1,43 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Server-Log Middleware Plugin(dev only)for nestjs-vite-react fullstack 形态。
|
|
3
3
|
*
|
|
4
|
-
* 在 vite dev server
|
|
5
|
-
*
|
|
6
|
-
*
|
|
4
|
+
* 在 vite dev server 上挂内联的 dev-logs middleware(含 server-log SSE / 合并读 /
|
|
5
|
+
* 单文件分页等 endpoints),让妙搭外壳(编辑器侧)能够实时拿到 Nest server 写的
|
|
6
|
+
* 日志(server.log / trace.log / *.std.log)。
|
|
7
7
|
*
|
|
8
|
-
* 提供的 endpoints
|
|
8
|
+
* 提供的 endpoints(挂在 `<basePath>/dev/logs` 下):
|
|
9
9
|
* - GET /server-logs/stream SSE 实时流
|
|
10
10
|
* - GET /server-logs 合并读所有日志文件(分页 / 过滤)
|
|
11
11
|
* - GET /files/:fileName 单文件分页读
|
|
12
|
-
* -
|
|
12
|
+
* - GET /trace/recent 最近 trace 列表(含分页 / 过滤)
|
|
13
|
+
* - GET /trace/:traceId 按 traceId 查 log entries
|
|
14
|
+
* - GET /trace/trigger/list 自动化 trigger 列表
|
|
15
|
+
* - GET /trace/trigger/:id trigger 详情
|
|
16
|
+
* - GET /trace/capability/list capability trace 列表
|
|
17
|
+
* - GET /health 健康检查
|
|
18
|
+
* - GET /api-list 所有 API 路由
|
|
13
19
|
*
|
|
14
20
|
* 跟 `coding-preset-vite-react/plugins/dev-logs.ts`(jsPage 的浏览器端 batch logger
|
|
15
|
-
* 收集 `/dev/logs/collect-batch` → `browser.log`)互不冲突——前者读 server
|
|
16
|
-
*
|
|
21
|
+
* 收集 `/dev/logs/collect-batch` → `browser.log`)互不冲突——前者读 server 端日志
|
|
22
|
+
* 文件提供给外壳;后者收浏览器端 batch 上报写 `browser.log`。
|
|
17
23
|
*
|
|
18
|
-
*
|
|
24
|
+
* 实现原本来自 `@lark-apaas/devtool-kits`(`packages/tools/fullstack-toolkits/`
|
|
25
|
+
* 的发布名),按产品要求 user app node_modules 不能出现 devtool-kits 包名,整段
|
|
26
|
+
* source 内联到 `../server-log/`(包含 dev-logs/ + registerMiddlewares 入口)。
|
|
27
|
+
* 行为跟老 `fullstack-vite-preset` 通过 devtool-kits 间接挂载的版本完全一致。
|
|
28
|
+
*
|
|
29
|
+
* 调用方在 `src/index.ts` 已经做了 `isFullstack && serverLogPlugin(...)` gating,
|
|
30
|
+
* jsPage 形态根本不会挂这个 plugin —— 此处不再重复判断。
|
|
19
31
|
*/
|
|
20
32
|
import type { Plugin } from 'vite';
|
|
21
33
|
export interface ServerLogPluginOptions {
|
|
22
34
|
/** 日志读取目录。默认 `process.env.LOG_DIR || './logs'`,跟 Nest server 写日志的目录一致 */
|
|
23
35
|
logDir?: string;
|
|
24
|
-
/** 挂载基路径(沙箱 base path
|
|
36
|
+
/** 挂载基路径(沙箱 base path),内部把 routes 挂到 `<basePath>/dev/logs/...` */
|
|
25
37
|
basePath?: string;
|
|
26
38
|
}
|
|
27
39
|
/**
|
|
28
|
-
* Vite plugin:
|
|
40
|
+
* Vite plugin: 挂载内联的 dev-logs middleware(server-log SSE 等)。
|
|
29
41
|
* 仅 dev 模式启用;build 时不影响。
|
|
30
42
|
*/
|
|
31
43
|
export declare function serverLogPlugin(options?: ServerLogPluginOptions): Plugin;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server-log.d.ts","sourceRoot":"","sources":["../../src/plugins/server-log.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"server-log.d.ts","sourceRoot":"","sources":["../../src/plugins/server-log.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAiB,MAAM,MAAM,CAAC;AAIlD,MAAM,WAAW,sBAAsB;IACrC,yEAAyE;IACzE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,kEAAkE;IAClE,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,OAAO,GAAE,sBAA2B,GAAG,MAAM,CAsB5E;AAED,eAAe,eAAe,CAAC"}
|
|
@@ -2,26 +2,40 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* Server-Log Middleware Plugin(dev only)for nestjs-vite-react fullstack 形态。
|
|
4
4
|
*
|
|
5
|
-
* 在 vite dev server
|
|
6
|
-
*
|
|
7
|
-
*
|
|
5
|
+
* 在 vite dev server 上挂内联的 dev-logs middleware(含 server-log SSE / 合并读 /
|
|
6
|
+
* 单文件分页等 endpoints),让妙搭外壳(编辑器侧)能够实时拿到 Nest server 写的
|
|
7
|
+
* 日志(server.log / trace.log / *.std.log)。
|
|
8
8
|
*
|
|
9
|
-
* 提供的 endpoints
|
|
9
|
+
* 提供的 endpoints(挂在 `<basePath>/dev/logs` 下):
|
|
10
10
|
* - GET /server-logs/stream SSE 实时流
|
|
11
11
|
* - GET /server-logs 合并读所有日志文件(分页 / 过滤)
|
|
12
12
|
* - GET /files/:fileName 单文件分页读
|
|
13
|
-
* -
|
|
13
|
+
* - GET /trace/recent 最近 trace 列表(含分页 / 过滤)
|
|
14
|
+
* - GET /trace/:traceId 按 traceId 查 log entries
|
|
15
|
+
* - GET /trace/trigger/list 自动化 trigger 列表
|
|
16
|
+
* - GET /trace/trigger/:id trigger 详情
|
|
17
|
+
* - GET /trace/capability/list capability trace 列表
|
|
18
|
+
* - GET /health 健康检查
|
|
19
|
+
* - GET /api-list 所有 API 路由
|
|
14
20
|
*
|
|
15
21
|
* 跟 `coding-preset-vite-react/plugins/dev-logs.ts`(jsPage 的浏览器端 batch logger
|
|
16
|
-
* 收集 `/dev/logs/collect-batch` → `browser.log`)互不冲突——前者读 server
|
|
17
|
-
*
|
|
22
|
+
* 收集 `/dev/logs/collect-batch` → `browser.log`)互不冲突——前者读 server 端日志
|
|
23
|
+
* 文件提供给外壳;后者收浏览器端 batch 上报写 `browser.log`。
|
|
18
24
|
*
|
|
19
|
-
*
|
|
25
|
+
* 实现原本来自 `@lark-apaas/devtool-kits`(`packages/tools/fullstack-toolkits/`
|
|
26
|
+
* 的发布名),按产品要求 user app node_modules 不能出现 devtool-kits 包名,整段
|
|
27
|
+
* source 内联到 `../server-log/`(包含 dev-logs/ + registerMiddlewares 入口)。
|
|
28
|
+
* 行为跟老 `fullstack-vite-preset` 通过 devtool-kits 间接挂载的版本完全一致。
|
|
29
|
+
*
|
|
30
|
+
* 调用方在 `src/index.ts` 已经做了 `isFullstack && serverLogPlugin(...)` gating,
|
|
31
|
+
* jsPage 形态根本不会挂这个 plugin —— 此处不再重复判断。
|
|
20
32
|
*/
|
|
21
33
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
22
34
|
exports.serverLogPlugin = serverLogPlugin;
|
|
35
|
+
const register_1 = require("../server-log/register");
|
|
36
|
+
const dev_logs_1 = require("../server-log/dev-logs");
|
|
23
37
|
/**
|
|
24
|
-
* Vite plugin:
|
|
38
|
+
* Vite plugin: 挂载内联的 dev-logs middleware(server-log SSE 等)。
|
|
25
39
|
* 仅 dev 模式启用;build 时不影响。
|
|
26
40
|
*/
|
|
27
41
|
function serverLogPlugin(options = {}) {
|
|
@@ -30,24 +44,9 @@ function serverLogPlugin(options = {}) {
|
|
|
30
44
|
return {
|
|
31
45
|
name: 'nestjs-vite-react-server-log',
|
|
32
46
|
apply: 'serve',
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
// resolve entry"。devtool-kits 是 CJS 包,require 直接走 Node 解析,不进 vite。
|
|
37
|
-
// 同时这样写也兼容"包未装"的场景——require 失败就跳过 server-log middleware。
|
|
38
|
-
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
39
|
-
let devtoolKits;
|
|
40
|
-
try {
|
|
41
|
-
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
42
|
-
devtoolKits = require('@lark-apaas/devtool-kits');
|
|
43
|
-
}
|
|
44
|
-
catch {
|
|
45
|
-
console.warn('[nestjs-vite-react-server-log] @lark-apaas/devtool-kits not installed; server-log SSE disabled.');
|
|
46
|
-
return;
|
|
47
|
-
}
|
|
48
|
-
const { registerMiddlewares, createDevLogsMiddleware } = devtoolKits;
|
|
49
|
-
await registerMiddlewares(server.middlewares, [
|
|
50
|
-
createDevLogsMiddleware({
|
|
47
|
+
configureServer(server) {
|
|
48
|
+
(0, register_1.registerMiddlewares)(server.middlewares, [
|
|
49
|
+
(0, dev_logs_1.createDevLogsMiddleware)({
|
|
51
50
|
logDir,
|
|
52
51
|
}),
|
|
53
52
|
], {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server-log.js","sourceRoot":"","sources":["../../src/plugins/server-log.ts"],"names":[],"mappings":";AAAA
|
|
1
|
+
{"version":3,"file":"server-log.js","sourceRoot":"","sources":["../../src/plugins/server-log.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;;AAiBH,0CAsBC;AApCD,qDAA6D;AAC7D,qDAAiE;AASjE;;;GAGG;AACH,SAAgB,eAAe,CAAC,UAAkC,EAAE;IAClE,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,QAAQ,CAAC;IACjE,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAC;IAExC,OAAO;QACL,IAAI,EAAE,8BAA8B;QACpC,KAAK,EAAE,OAAO;QACd,eAAe,CAAC,MAAqB;YACnC,IAAA,8BAAmB,EACjB,MAAM,CAAC,WAAW,EAClB;gBACE,IAAA,kCAAuB,EAAC;oBACtB,MAAM;iBACP,CAAC;aACH,EACD;gBACE,QAAQ;gBACR,KAAK,EAAE,IAAI;aACZ,CACF,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC;AAED,kBAAe,eAAe,CAAC"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Express/Connect 兼容层
|
|
3
|
+
* 让 middleware 同时支持 Express 和 Vite/Connect
|
|
4
|
+
*/
|
|
5
|
+
import type { ServerResponse, IncomingMessage } from 'http';
|
|
6
|
+
type AnyResponse = ServerResponse & {
|
|
7
|
+
status?: (code: number) => AnyResponse;
|
|
8
|
+
json?: (data: unknown) => void;
|
|
9
|
+
send?: (data: unknown) => void;
|
|
10
|
+
};
|
|
11
|
+
type AnyRequest = IncomingMessage & {
|
|
12
|
+
query?: Record<string, string>;
|
|
13
|
+
params?: Record<string, string>;
|
|
14
|
+
};
|
|
15
|
+
/**
|
|
16
|
+
* 发送 JSON 响应,兼容 Express 和 Connect
|
|
17
|
+
*/
|
|
18
|
+
export declare function sendJson(res: AnyResponse, data: unknown, statusCode?: number): void;
|
|
19
|
+
/**
|
|
20
|
+
* 发送错误响应
|
|
21
|
+
*/
|
|
22
|
+
export declare function sendError(res: AnyResponse, message: string, error?: unknown, statusCode?: number): void;
|
|
23
|
+
/**
|
|
24
|
+
* 发送成功响应
|
|
25
|
+
*/
|
|
26
|
+
export declare function sendSuccess(res: AnyResponse, data?: Record<string, unknown>): void;
|
|
27
|
+
/**
|
|
28
|
+
* 获取 query 参数,兼容 Express 和 Connect
|
|
29
|
+
*/
|
|
30
|
+
export declare function getQuery(req: AnyRequest): Record<string, string>;
|
|
31
|
+
/**
|
|
32
|
+
* 获取单个 query 参数
|
|
33
|
+
*/
|
|
34
|
+
export declare function getQueryParam(req: AnyRequest, key: string): string | undefined;
|
|
35
|
+
export {};
|
|
36
|
+
//# sourceMappingURL=compat.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compat.d.ts","sourceRoot":"","sources":["../../src/server-log/compat.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,MAAM,CAAC;AAE5D,KAAK,WAAW,GAAG,cAAc,GAAG;IAClC,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,WAAW,CAAC;IACvC,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IAC/B,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;CAChC,CAAC;AAEF,KAAK,UAAU,GAAG,eAAe,GAAG;IAClC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACjC,CAAC;AAEF;;GAEG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,SAAM,GAAG,IAAI,CAahF;AAED;;GAEG;AACH,wBAAgB,SAAS,CACvB,GAAG,EAAE,WAAW,EAChB,OAAO,EAAE,MAAM,EACf,KAAK,CAAC,EAAE,OAAO,EACf,UAAU,SAAM,GACf,IAAI,CAMN;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,WAAW,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAElF;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAOhE;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAG9E"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.sendJson = sendJson;
|
|
4
|
+
exports.sendError = sendError;
|
|
5
|
+
exports.sendSuccess = sendSuccess;
|
|
6
|
+
exports.getQuery = getQuery;
|
|
7
|
+
exports.getQueryParam = getQueryParam;
|
|
8
|
+
/**
|
|
9
|
+
* 发送 JSON 响应,兼容 Express 和 Connect
|
|
10
|
+
*/
|
|
11
|
+
function sendJson(res, data, statusCode = 200) {
|
|
12
|
+
const statusFn = res.status;
|
|
13
|
+
const jsonFn = res.json;
|
|
14
|
+
if (typeof statusFn === 'function' && typeof jsonFn === 'function') {
|
|
15
|
+
// Express style
|
|
16
|
+
statusFn.call(res, statusCode);
|
|
17
|
+
jsonFn.call(res, data);
|
|
18
|
+
}
|
|
19
|
+
else {
|
|
20
|
+
// Connect/Node style
|
|
21
|
+
res.statusCode = statusCode;
|
|
22
|
+
res.setHeader('Content-Type', 'application/json');
|
|
23
|
+
res.end(JSON.stringify(data));
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* 发送错误响应
|
|
28
|
+
*/
|
|
29
|
+
function sendError(res, message, error, statusCode = 500) {
|
|
30
|
+
const errorData = {
|
|
31
|
+
message,
|
|
32
|
+
...(error ? { error: serializeError(error) } : {}),
|
|
33
|
+
};
|
|
34
|
+
sendJson(res, errorData, statusCode);
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* 发送成功响应
|
|
38
|
+
*/
|
|
39
|
+
function sendSuccess(res, data) {
|
|
40
|
+
sendJson(res, { success: true, ...data }, 200);
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* 获取 query 参数,兼容 Express 和 Connect
|
|
44
|
+
*/
|
|
45
|
+
function getQuery(req) {
|
|
46
|
+
if (req.query) {
|
|
47
|
+
return req.query;
|
|
48
|
+
}
|
|
49
|
+
// Connect/Node style - parse from URL
|
|
50
|
+
const url = new URL(req.url || '', `http://${req.headers.host}`);
|
|
51
|
+
return Object.fromEntries(url.searchParams.entries());
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* 获取单个 query 参数
|
|
55
|
+
*/
|
|
56
|
+
function getQueryParam(req, key) {
|
|
57
|
+
const query = getQuery(req);
|
|
58
|
+
return query[key];
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* 序列化错误对象
|
|
62
|
+
*/
|
|
63
|
+
function serializeError(error) {
|
|
64
|
+
if (error instanceof Error) {
|
|
65
|
+
return {
|
|
66
|
+
name: error.name,
|
|
67
|
+
message: error.message,
|
|
68
|
+
stack: error.stack,
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
return { message: String(error) };
|
|
72
|
+
}
|
|
73
|
+
//# sourceMappingURL=compat.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compat.js","sourceRoot":"","sources":["../../src/server-log/compat.ts"],"names":[],"mappings":";;AAoBA,4BAaC;AAKD,8BAWC;AAKD,kCAEC;AAKD,4BAOC;AAKD,sCAGC;AA3DD;;GAEG;AACH,SAAgB,QAAQ,CAAC,GAAgB,EAAE,IAAa,EAAE,UAAU,GAAG,GAAG;IACxE,MAAM,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC;IAC5B,MAAM,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC;IACxB,IAAI,OAAO,QAAQ,KAAK,UAAU,IAAI,OAAO,MAAM,KAAK,UAAU,EAAE,CAAC;QACnE,gBAAgB;QAChB,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;QAC/B,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IACzB,CAAC;SAAM,CAAC;QACN,qBAAqB;QACrB,GAAG,CAAC,UAAU,GAAG,UAAU,CAAC;QAC5B,GAAG,CAAC,SAAS,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAC;QAClD,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;IAChC,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAgB,SAAS,CACvB,GAAgB,EAChB,OAAe,EACf,KAAe,EACf,UAAU,GAAG,GAAG;IAEhB,MAAM,SAAS,GAAG;QAChB,OAAO;QACP,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACnD,CAAC;IACF,QAAQ,CAAC,GAAG,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;AACvC,CAAC;AAED;;GAEG;AACH,SAAgB,WAAW,CAAC,GAAgB,EAAE,IAA8B;IAC1E,QAAQ,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,EAAE,GAAG,CAAC,CAAC;AACjD,CAAC;AAED;;GAEG;AACH,SAAgB,QAAQ,CAAC,GAAe;IACtC,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;QACd,OAAO,GAAG,CAAC,KAA+B,CAAC;IAC7C,CAAC;IACD,sCAAsC;IACtC,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,EAAE,EAAE,UAAU,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IACjE,OAAO,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC,CAAC;AACxD,CAAC;AAED;;GAEG;AACH,SAAgB,aAAa,CAAC,GAAe,EAAE,GAAW;IACxD,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;IAC5B,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC;AACpB,CAAC;AAED;;GAEG;AACH,SAAS,cAAc,CAAC,KAAc;IACpC,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;QAC3B,OAAO;YACL,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,KAAK,EAAE,KAAK,CAAC,KAAK;SACnB,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;AACpC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api-list-handler.d.ts","sourceRoot":"","sources":["../../../src/server-log/dev-logs/api-list-handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,cAAc,EAAE,MAAM,SAAS,CAAC;AAwK5D;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,cAAc,CAsBrD"}
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createApiListHandler = createApiListHandler;
|
|
4
|
+
const SERVER_PORT = process.env.SERVER_PORT || '3000';
|
|
5
|
+
/**
|
|
6
|
+
* 从路径中提取模块名
|
|
7
|
+
*/
|
|
8
|
+
function extractModuleFromPath(path) {
|
|
9
|
+
const segments = path.split('/').filter(Boolean);
|
|
10
|
+
// 跳过 'api' 前缀
|
|
11
|
+
let startIndex = 0;
|
|
12
|
+
if (segments[0] === 'api') {
|
|
13
|
+
startIndex = 1;
|
|
14
|
+
}
|
|
15
|
+
// 跳过版本号 (v1, v2, etc.)
|
|
16
|
+
if (segments[startIndex]?.match(/^v\d+$/)) {
|
|
17
|
+
startIndex++;
|
|
18
|
+
}
|
|
19
|
+
const moduleName = segments[startIndex];
|
|
20
|
+
if (!moduleName || moduleName.startsWith(':')) {
|
|
21
|
+
return 'default';
|
|
22
|
+
}
|
|
23
|
+
return moduleName;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* 生成路由唯一标识
|
|
27
|
+
*/
|
|
28
|
+
function generateRouteId(method, path) {
|
|
29
|
+
const cleanPath = path.replace(/[/:]/g, '_').replace(/^_+|_+$/g, '');
|
|
30
|
+
return `${method.toLowerCase()}_${cleanPath}`;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* 首字母大写
|
|
34
|
+
*/
|
|
35
|
+
function capitalize(str) {
|
|
36
|
+
return str.charAt(0).toUpperCase() + str.slice(1);
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* 按模块分组路由
|
|
40
|
+
*/
|
|
41
|
+
function groupRoutesByModule(routes) {
|
|
42
|
+
const groupMap = new Map();
|
|
43
|
+
routes.forEach((route) => {
|
|
44
|
+
const existing = groupMap.get(route.module) || [];
|
|
45
|
+
existing.push(route);
|
|
46
|
+
groupMap.set(route.module, existing);
|
|
47
|
+
});
|
|
48
|
+
const groups = [];
|
|
49
|
+
groupMap.forEach((apis, moduleName) => {
|
|
50
|
+
groups.push({
|
|
51
|
+
id: moduleName,
|
|
52
|
+
name: capitalize(moduleName),
|
|
53
|
+
apis: apis.sort((a, b) => a.path.localeCompare(b.path)),
|
|
54
|
+
});
|
|
55
|
+
});
|
|
56
|
+
return groups.sort((a, b) => a.name.localeCompare(b.name));
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* 从后端 debug 接口获取路由列表
|
|
60
|
+
*/
|
|
61
|
+
async function fetchRoutesFromBackend(basePath) {
|
|
62
|
+
// basePath 例如 /af/p/app_xxx,需要拼接完整路径
|
|
63
|
+
const normalizedBasePath = basePath.replace(/\/+$/, '');
|
|
64
|
+
const url = `http://localhost:${SERVER_PORT}${normalizedBasePath}/api/__framework__/debug`;
|
|
65
|
+
const response = await fetch(url, {
|
|
66
|
+
method: 'GET',
|
|
67
|
+
headers: {
|
|
68
|
+
'Accept': 'application/json',
|
|
69
|
+
},
|
|
70
|
+
});
|
|
71
|
+
if (!response.ok) {
|
|
72
|
+
throw new Error(`Failed to fetch routes: ${response.status}`);
|
|
73
|
+
}
|
|
74
|
+
const data = (await response.json());
|
|
75
|
+
// 从 debug 接口响应中提取路由信息
|
|
76
|
+
const routeConfig = data['路由配置'];
|
|
77
|
+
if (!routeConfig || !routeConfig.routes || !Array.isArray(routeConfig.routes)) {
|
|
78
|
+
console.warn('[api-list] Invalid routes data:', routeConfig);
|
|
79
|
+
return [];
|
|
80
|
+
}
|
|
81
|
+
const debugRoutes = routeConfig.routes;
|
|
82
|
+
return debugRoutes
|
|
83
|
+
.filter((route) => {
|
|
84
|
+
// 只保留包含 /api/ 的路由,排除内部路由和 capability 路由
|
|
85
|
+
return route.path.includes('/api/') &&
|
|
86
|
+
!route.path.includes('__framework__') &&
|
|
87
|
+
!route.path.includes('__innerapi__') &&
|
|
88
|
+
!route.path.includes('__platform__') &&
|
|
89
|
+
!route.path.includes('/api/capability') &&
|
|
90
|
+
!route.path.includes('/api/authnpaas') &&
|
|
91
|
+
!route.path.includes('/api/sdk_innerapi');
|
|
92
|
+
})
|
|
93
|
+
.map((route) => {
|
|
94
|
+
// 从完整路径中提取 /api/... 部分
|
|
95
|
+
const apiPathMatch = route.path.match(/\/api\/.*/);
|
|
96
|
+
const apiPath = apiPathMatch ? apiPathMatch[0] : route.path;
|
|
97
|
+
const method = route.method || 'ALL';
|
|
98
|
+
return {
|
|
99
|
+
id: generateRouteId(method, apiPath),
|
|
100
|
+
path: apiPath,
|
|
101
|
+
method,
|
|
102
|
+
module: extractModuleFromPath(apiPath),
|
|
103
|
+
};
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Create handler for /api-list route
|
|
108
|
+
*/
|
|
109
|
+
function createApiListHandler() {
|
|
110
|
+
return async (_req, res) => {
|
|
111
|
+
try {
|
|
112
|
+
// 从环境变量或请求中获取 basePath
|
|
113
|
+
// req.baseUrl 是当前 router 的挂载路径,如 /af/p/app_xxx/dev/logs
|
|
114
|
+
// 我们需要提取 /af/p/app_xxx 部分
|
|
115
|
+
const basePath = process.env.CLIENT_BASE_PATH || '';
|
|
116
|
+
const routes = await fetchRoutesFromBackend(basePath);
|
|
117
|
+
const groups = groupRoutesByModule(routes);
|
|
118
|
+
res.json({
|
|
119
|
+
groups,
|
|
120
|
+
total: routes.length,
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
catch (error) {
|
|
124
|
+
console.error('[api-list] Failed to fetch routes:', error);
|
|
125
|
+
res.status(500).json({
|
|
126
|
+
error: 'Failed to fetch routes',
|
|
127
|
+
message: error instanceof Error ? error.message : 'Unknown error',
|
|
128
|
+
});
|
|
129
|
+
}
|
|
130
|
+
};
|
|
131
|
+
}
|
|
132
|
+
//# sourceMappingURL=api-list-handler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api-list-handler.js","sourceRoot":"","sources":["../../../src/server-log/dev-logs/api-list-handler.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import type { Request, Response } from 'express';
|
|
2
|
+
/**
|
|
3
|
+
* Create handler for getting log entries by trace ID
|
|
4
|
+
*/
|
|
5
|
+
export declare function createGetTraceEntriesHandler(logDir: string): (req: Request, res: Response) => Promise<void | Response<any, Record<string, any>>>;
|
|
6
|
+
/**
|
|
7
|
+
* Create handler for getting recent trace calls
|
|
8
|
+
*/
|
|
9
|
+
export declare function createGetRecentTracesHandler(logDir: string): (req: Request, res: Response) => Promise<void>;
|
|
10
|
+
/**
|
|
11
|
+
* Create handler for getting log file by name
|
|
12
|
+
*/
|
|
13
|
+
export declare function createGetLogFileHandler(logDir: string): (req: Request, res: Response) => Promise<void | Response<any, Record<string, any>>>;
|
|
14
|
+
/**
|
|
15
|
+
* Create handler for getting server logs
|
|
16
|
+
*
|
|
17
|
+
* Reads from 4 log sources:
|
|
18
|
+
* - server.log (Pino JSON)
|
|
19
|
+
* - trace.log (Pino JSON)
|
|
20
|
+
* - server.std.log (plain text)
|
|
21
|
+
* - client.std.log (plain text)
|
|
22
|
+
*
|
|
23
|
+
* Query parameters:
|
|
24
|
+
* - limit: number of logs to return (default: 100, max: 1000)
|
|
25
|
+
* - offset: offset for pagination (default: 0)
|
|
26
|
+
* - levels: comma-separated log levels (e.g., "error,warn")
|
|
27
|
+
* - sources: comma-separated sources (e.g., "server,trace")
|
|
28
|
+
*/
|
|
29
|
+
export declare function createGetServerLogsHandler(logDir: string): (req: Request, res: Response) => Promise<void | Response<any, Record<string, any>>>;
|
|
30
|
+
/**
|
|
31
|
+
* Create handler for getting all automation trigger list in trace.log
|
|
32
|
+
* filter by request_body.trigger & limit & path=/__innerapi__/automation/invoke
|
|
33
|
+
*/
|
|
34
|
+
export declare function createGetTriggerListHandler(logDir: string): (req: Request, res: Response) => Promise<void | Response<any, Record<string, any>>>;
|
|
35
|
+
export declare function createGetTriggerDetailHandler(logDir: string): (req: Request, res: Response) => Promise<void | Response<any, Record<string, any>>>;
|
|
36
|
+
/**
|
|
37
|
+
* Create handler for getting capability trace list
|
|
38
|
+
* Filter by capability_id in server.log
|
|
39
|
+
*
|
|
40
|
+
* Query parameters:
|
|
41
|
+
* - capability_id: required, the capability ID to filter
|
|
42
|
+
* - limit: number of traces to return (default: 10, max: 200)
|
|
43
|
+
*/
|
|
44
|
+
export declare function createGetCapabilityTraceListHandler(logDir: string): (req: Request, res: Response) => Promise<void | Response<any, Record<string, any>>>;
|
|
45
|
+
//# sourceMappingURL=controller.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"controller.d.ts","sourceRoot":"","sources":["../../../src/server-log/dev-logs/controller.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAyBjD;;GAEG;AACH,wBAAgB,4BAA4B,CAAC,MAAM,EAAE,MAAM,IAG3C,KAAK,OAAO,EAAE,KAAK,QAAQ,wDAuB1C;AAED;;GAEG;AACH,wBAAgB,4BAA4B,CAAC,MAAM,EAAE,MAAM,IAG3C,KAAK,OAAO,EAAE,KAAK,QAAQ,mBAsB1C;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,MAAM,IACtC,KAAK,OAAO,EAAE,KAAK,QAAQ,wDAwB1C;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,MAAM,IACzC,KAAK,OAAO,EAAE,KAAK,QAAQ,wDAkC1C;AACD;;;GAGG;AACH,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,MAAM,IAG1C,KAAK,OAAO,EAAE,KAAK,QAAQ,wDAwB1C;AAED,wBAAgB,6BAA6B,CAAC,MAAM,EAAE,MAAM,IAG5C,KAAK,OAAO,EAAE,KAAK,QAAQ,wDAqB1C;AAED;;;;;;;GAOG;AACH,wBAAgB,mCAAmC,CAAC,MAAM,EAAE,MAAM,IAGlD,KAAK,OAAO,EAAE,KAAK,QAAQ,wDAqB1C"}
|