@lark-apaas/coding-preset-vite-react 1.0.12-alpha.1 → 1.0.12

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.
Files changed (134) hide show
  1. package/lib/index.d.ts +9 -1
  2. package/lib/index.d.ts.map +1 -1
  3. package/lib/index.js +153 -114
  4. package/lib/index.js.map +1 -1
  5. package/lib/plugins/{basename-injection.d.ts → basename.d.ts} +4 -4
  6. package/lib/plugins/basename.d.ts.map +1 -0
  7. package/lib/plugins/{basename-injection.js → basename.js} +7 -15
  8. package/lib/plugins/basename.js.map +1 -0
  9. package/lib/plugins/capabilities.d.ts +9 -6
  10. package/lib/plugins/capabilities.d.ts.map +1 -1
  11. package/lib/plugins/capabilities.js +27 -29
  12. package/lib/plugins/capabilities.js.map +1 -1
  13. package/lib/plugins/dev-proxy.d.ts +41 -0
  14. package/lib/plugins/dev-proxy.d.ts.map +1 -0
  15. package/lib/plugins/dev-proxy.js +229 -0
  16. package/lib/plugins/dev-proxy.js.map +1 -0
  17. package/lib/plugins/fonts-mirror.d.ts.map +1 -1
  18. package/lib/plugins/fonts-mirror.js +28 -0
  19. package/lib/plugins/fonts-mirror.js.map +1 -1
  20. package/lib/plugins/html-output.d.ts +21 -0
  21. package/lib/plugins/html-output.d.ts.map +1 -0
  22. package/lib/plugins/html-output.js +171 -0
  23. package/lib/plugins/html-output.js.map +1 -0
  24. package/lib/plugins/server-log.d.ts +45 -0
  25. package/lib/plugins/server-log.d.ts.map +1 -0
  26. package/lib/plugins/server-log.js +60 -0
  27. package/lib/plugins/server-log.js.map +1 -0
  28. package/lib/plugins/view-context.d.ts +0 -5
  29. package/lib/plugins/view-context.d.ts.map +1 -1
  30. package/lib/plugins/view-context.js +0 -3
  31. package/lib/plugins/view-context.js.map +1 -1
  32. package/lib/server-log/compat.d.ts +36 -0
  33. package/lib/server-log/compat.d.ts.map +1 -0
  34. package/lib/server-log/compat.js +73 -0
  35. package/lib/server-log/compat.js.map +1 -0
  36. package/lib/server-log/dev-logs/api-list-handler.d.ts +6 -0
  37. package/lib/server-log/dev-logs/api-list-handler.d.ts.map +1 -0
  38. package/lib/server-log/dev-logs/api-list-handler.js +132 -0
  39. package/lib/server-log/dev-logs/api-list-handler.js.map +1 -0
  40. package/lib/server-log/dev-logs/controller.d.ts +45 -0
  41. package/lib/server-log/dev-logs/controller.d.ts.map +1 -0
  42. package/lib/server-log/dev-logs/controller.js +239 -0
  43. package/lib/server-log/dev-logs/controller.js.map +1 -0
  44. package/lib/server-log/dev-logs/health.controller.d.ts +15 -0
  45. package/lib/server-log/dev-logs/health.controller.d.ts.map +1 -0
  46. package/lib/server-log/dev-logs/health.controller.js +79 -0
  47. package/lib/server-log/dev-logs/health.controller.js.map +1 -0
  48. package/lib/server-log/dev-logs/helper/path-matcher.d.ts +117 -0
  49. package/lib/server-log/dev-logs/helper/path-matcher.d.ts.map +1 -0
  50. package/lib/server-log/dev-logs/helper/path-matcher.js +214 -0
  51. package/lib/server-log/dev-logs/helper/path-matcher.js.map +1 -0
  52. package/lib/server-log/dev-logs/index.d.ts +12 -0
  53. package/lib/server-log/dev-logs/index.d.ts.map +1 -0
  54. package/lib/server-log/dev-logs/index.js +61 -0
  55. package/lib/server-log/dev-logs/index.js.map +1 -0
  56. package/lib/server-log/dev-logs/router.d.ts +7 -0
  57. package/lib/server-log/dev-logs/router.d.ts.map +1 -0
  58. package/lib/server-log/dev-logs/router.js +40 -0
  59. package/lib/server-log/dev-logs/router.js.map +1 -0
  60. package/lib/server-log/dev-logs/services/capability.service.d.ts +33 -0
  61. package/lib/server-log/dev-logs/services/capability.service.d.ts.map +1 -0
  62. package/lib/server-log/dev-logs/services/capability.service.js +127 -0
  63. package/lib/server-log/dev-logs/services/capability.service.js.map +1 -0
  64. package/lib/server-log/dev-logs/services/file-reader.d.ts +10 -0
  65. package/lib/server-log/dev-logs/services/file-reader.d.ts.map +1 -0
  66. package/lib/server-log/dev-logs/services/file-reader.js +67 -0
  67. package/lib/server-log/dev-logs/services/file-reader.js.map +1 -0
  68. package/lib/server-log/dev-logs/services/index.d.ts +8 -0
  69. package/lib/server-log/dev-logs/services/index.d.ts.map +1 -0
  70. package/lib/server-log/dev-logs/services/index.js +30 -0
  71. package/lib/server-log/dev-logs/services/index.js.map +1 -0
  72. package/lib/server-log/dev-logs/services/parsers.d.ts +23 -0
  73. package/lib/server-log/dev-logs/services/parsers.d.ts.map +1 -0
  74. package/lib/server-log/dev-logs/services/parsers.js +157 -0
  75. package/lib/server-log/dev-logs/services/parsers.js.map +1 -0
  76. package/lib/server-log/dev-logs/services/server-log.service.d.ts +17 -0
  77. package/lib/server-log/dev-logs/services/server-log.service.d.ts.map +1 -0
  78. package/lib/server-log/dev-logs/services/server-log.service.js +119 -0
  79. package/lib/server-log/dev-logs/services/server-log.service.js.map +1 -0
  80. package/lib/server-log/dev-logs/services/trace.service.d.ts +14 -0
  81. package/lib/server-log/dev-logs/services/trace.service.d.ts.map +1 -0
  82. package/lib/server-log/dev-logs/services/trace.service.js +162 -0
  83. package/lib/server-log/dev-logs/services/trace.service.js.map +1 -0
  84. package/lib/server-log/dev-logs/services/trigger.service.d.ts +14 -0
  85. package/lib/server-log/dev-logs/services/trigger.service.d.ts.map +1 -0
  86. package/lib/server-log/dev-logs/services/trigger.service.js +153 -0
  87. package/lib/server-log/dev-logs/services/trigger.service.js.map +1 -0
  88. package/lib/server-log/dev-logs/services.d.ts +7 -0
  89. package/lib/server-log/dev-logs/services.d.ts.map +1 -0
  90. package/lib/server-log/dev-logs/services.js +20 -0
  91. package/lib/server-log/dev-logs/services.js.map +1 -0
  92. package/lib/server-log/dev-logs/sse/client-manager.d.ts +61 -0
  93. package/lib/server-log/dev-logs/sse/client-manager.d.ts.map +1 -0
  94. package/lib/server-log/dev-logs/sse/client-manager.js +140 -0
  95. package/lib/server-log/dev-logs/sse/client-manager.js.map +1 -0
  96. package/lib/server-log/dev-logs/sse/index.d.ts +5 -0
  97. package/lib/server-log/dev-logs/sse/index.d.ts.map +1 -0
  98. package/lib/server-log/dev-logs/sse/index.js +11 -0
  99. package/lib/server-log/dev-logs/sse/index.js.map +1 -0
  100. package/lib/server-log/dev-logs/sse/log-watcher.d.ts +51 -0
  101. package/lib/server-log/dev-logs/sse/log-watcher.d.ts.map +1 -0
  102. package/lib/server-log/dev-logs/sse/log-watcher.js +381 -0
  103. package/lib/server-log/dev-logs/sse/log-watcher.js.map +1 -0
  104. package/lib/server-log/dev-logs/sse/sse.controller.d.ts +25 -0
  105. package/lib/server-log/dev-logs/sse/sse.controller.d.ts.map +1 -0
  106. package/lib/server-log/dev-logs/sse/sse.controller.js +95 -0
  107. package/lib/server-log/dev-logs/sse/sse.controller.js.map +1 -0
  108. package/lib/server-log/dev-logs/types.d.ts +104 -0
  109. package/lib/server-log/dev-logs/types.d.ts.map +1 -0
  110. package/lib/server-log/dev-logs/types.js +3 -0
  111. package/lib/server-log/dev-logs/types.js.map +1 -0
  112. package/lib/server-log/dev-logs/utils.d.ts +68 -0
  113. package/lib/server-log/dev-logs/utils.d.ts.map +1 -0
  114. package/lib/server-log/dev-logs/utils.js +151 -0
  115. package/lib/server-log/dev-logs/utils.js.map +1 -0
  116. package/lib/server-log/register.d.ts +34 -0
  117. package/lib/server-log/register.d.ts.map +1 -0
  118. package/lib/server-log/register.js +196 -0
  119. package/lib/server-log/register.js.map +1 -0
  120. package/lib/server-log/types.d.ts +99 -0
  121. package/lib/server-log/types.d.ts.map +1 -0
  122. package/lib/server-log/types.js +3 -0
  123. package/lib/server-log/types.js.map +1 -0
  124. package/lib/utils/local-dev.d.ts +46 -0
  125. package/lib/utils/local-dev.d.ts.map +1 -0
  126. package/lib/utils/local-dev.js +96 -0
  127. package/lib/utils/local-dev.js.map +1 -0
  128. package/lib/utils/proxy-error.d.ts +29 -0
  129. package/lib/utils/proxy-error.d.ts.map +1 -0
  130. package/lib/utils/proxy-error.js +158 -0
  131. package/lib/utils/proxy-error.js.map +1 -0
  132. package/package.json +3 -1
  133. package/lib/plugins/basename-injection.d.ts.map +0 -1
  134. package/lib/plugins/basename-injection.js.map +0 -1
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.readCapabilityTraceList = exports.readTriggerDetail = exports.readTriggerList = exports.readServerLogs = exports.readLogFilePage = exports.readRecentTraceCalls = exports.readLogEntriesByTrace = exports.parseStdLog = exports.parsePinoLog = exports.extractLogLevel = exports.mapPinoLevelToServerLogLevel = exports.generateUUID = exports.buildPaginatedResponse = exports.readFileReverse = void 0;
4
+ // File reading utilities
5
+ var file_reader_1 = require("./file-reader");
6
+ Object.defineProperty(exports, "readFileReverse", { enumerable: true, get: function () { return file_reader_1.readFileReverse; } });
7
+ Object.defineProperty(exports, "buildPaginatedResponse", { enumerable: true, get: function () { return file_reader_1.buildPaginatedResponse; } });
8
+ // Log parsers
9
+ var parsers_1 = require("./parsers");
10
+ Object.defineProperty(exports, "generateUUID", { enumerable: true, get: function () { return parsers_1.generateUUID; } });
11
+ Object.defineProperty(exports, "mapPinoLevelToServerLogLevel", { enumerable: true, get: function () { return parsers_1.mapPinoLevelToServerLogLevel; } });
12
+ Object.defineProperty(exports, "extractLogLevel", { enumerable: true, get: function () { return parsers_1.extractLogLevel; } });
13
+ Object.defineProperty(exports, "parsePinoLog", { enumerable: true, get: function () { return parsers_1.parsePinoLog; } });
14
+ Object.defineProperty(exports, "parseStdLog", { enumerable: true, get: function () { return parsers_1.parseStdLog; } });
15
+ // Trace services
16
+ var trace_service_1 = require("./trace.service");
17
+ Object.defineProperty(exports, "readLogEntriesByTrace", { enumerable: true, get: function () { return trace_service_1.readLogEntriesByTrace; } });
18
+ Object.defineProperty(exports, "readRecentTraceCalls", { enumerable: true, get: function () { return trace_service_1.readRecentTraceCalls; } });
19
+ Object.defineProperty(exports, "readLogFilePage", { enumerable: true, get: function () { return trace_service_1.readLogFilePage; } });
20
+ // Server log services
21
+ var server_log_service_1 = require("./server-log.service");
22
+ Object.defineProperty(exports, "readServerLogs", { enumerable: true, get: function () { return server_log_service_1.readServerLogs; } });
23
+ // Trigger services
24
+ var trigger_service_1 = require("./trigger.service");
25
+ Object.defineProperty(exports, "readTriggerList", { enumerable: true, get: function () { return trigger_service_1.readTriggerList; } });
26
+ Object.defineProperty(exports, "readTriggerDetail", { enumerable: true, get: function () { return trigger_service_1.readTriggerDetail; } });
27
+ // Capability services
28
+ var capability_service_1 = require("./capability.service");
29
+ Object.defineProperty(exports, "readCapabilityTraceList", { enumerable: true, get: function () { return capability_service_1.readCapabilityTraceList; } });
30
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/server-log/dev-logs/services/index.ts"],"names":[],"mappings":";;;AAAA,yBAAyB;AACzB,6CAAwE;AAA/D,8GAAA,eAAe,OAAA;AAAE,qHAAA,sBAAsB,OAAA;AAEhD,cAAc;AACd,qCAMmB;AALjB,uGAAA,YAAY,OAAA;AACZ,uHAAA,4BAA4B,OAAA;AAC5B,0GAAA,eAAe,OAAA;AACf,uGAAA,YAAY,OAAA;AACZ,sGAAA,WAAW,OAAA;AAGb,iBAAiB;AACjB,iDAIyB;AAHvB,sHAAA,qBAAqB,OAAA;AACrB,qHAAA,oBAAoB,OAAA;AACpB,gHAAA,eAAe,OAAA;AAGjB,sBAAsB;AACtB,2DAAsD;AAA7C,oHAAA,cAAc,OAAA;AAEvB,mBAAmB;AACnB,qDAAuE;AAA9D,kHAAA,eAAe,OAAA;AAAE,oHAAA,iBAAiB,OAAA;AAE3C,sBAAsB;AACtB,2DAA+D;AAAtD,6HAAA,uBAAuB,OAAA"}
@@ -0,0 +1,23 @@
1
+ import type { ServerLog } from '../types';
2
+ /**
3
+ * Generate a simple UUID v4
4
+ */
5
+ export declare function generateUUID(): string;
6
+ /**
7
+ * Map Pino log level to ServerLogLevel
8
+ */
9
+ export declare function mapPinoLevelToServerLogLevel(pinoLevel: number | string): 'fatal' | 'error' | 'warn' | 'log' | 'debug' | 'verbose';
10
+ /**
11
+ * Extract log level from text content
12
+ */
13
+ export declare function extractLogLevel(text: string): 'fatal' | 'error' | 'warn' | 'log' | 'debug' | 'verbose';
14
+ /**
15
+ * Parse Pino JSON log to ServerLog format
16
+ */
17
+ export declare function parsePinoLog(line: string, source: 'server' | 'trace'): ServerLog | null;
18
+ /**
19
+ * Parse plain text log to ServerLog format
20
+ * Format: [2025-11-20 21:48:42] [server] content
21
+ */
22
+ export declare function parseStdLog(line: string, source: 'server-std' | 'client-std'): ServerLog | null;
23
+ //# sourceMappingURL=parsers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parsers.d.ts","sourceRoot":"","sources":["../../../../src/server-log/dev-logs/services/parsers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAE1C;;GAEG;AACH,wBAAgB,YAAY,IAAI,MAAM,CAMrC;AAED;;GAEG;AACH,wBAAgB,4BAA4B,CAC1C,SAAS,EAAE,MAAM,GAAG,MAAM,GACzB,OAAO,GAAG,OAAO,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,SAAS,CAmB1D;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,OAAO,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,SAAS,CAUtG;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,GAAG,OAAO,GAAG,SAAS,GAAG,IAAI,CAkCvF;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,GAAG,YAAY,GAAG,SAAS,GAAG,IAAI,CAkD/F"}
@@ -0,0 +1,157 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.generateUUID = generateUUID;
4
+ exports.mapPinoLevelToServerLogLevel = mapPinoLevelToServerLogLevel;
5
+ exports.extractLogLevel = extractLogLevel;
6
+ exports.parsePinoLog = parsePinoLog;
7
+ exports.parseStdLog = parseStdLog;
8
+ /**
9
+ * Generate a simple UUID v4
10
+ */
11
+ function generateUUID() {
12
+ return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => {
13
+ const r = (Math.random() * 16) | 0;
14
+ const v = c === 'x' ? r : (r & 0x3) | 0x8;
15
+ return v.toString(16);
16
+ });
17
+ }
18
+ /**
19
+ * Map Pino log level to ServerLogLevel
20
+ */
21
+ function mapPinoLevelToServerLogLevel(pinoLevel) {
22
+ if (typeof pinoLevel === 'string') {
23
+ const lower = pinoLevel.toLowerCase();
24
+ if (lower === 'fatal')
25
+ return 'fatal';
26
+ if (lower === 'error')
27
+ return 'error';
28
+ if (lower === 'warn' || lower === 'warning')
29
+ return 'warn';
30
+ if (lower === 'info' || lower === 'log')
31
+ return 'log';
32
+ if (lower === 'debug')
33
+ return 'debug';
34
+ if (lower === 'trace' || lower === 'verbose')
35
+ return 'verbose';
36
+ return 'log';
37
+ }
38
+ // Pino numeric levels
39
+ if (pinoLevel >= 60)
40
+ return 'fatal';
41
+ if (pinoLevel >= 50)
42
+ return 'error';
43
+ if (pinoLevel >= 40)
44
+ return 'warn';
45
+ if (pinoLevel >= 30)
46
+ return 'log';
47
+ if (pinoLevel >= 20)
48
+ return 'debug';
49
+ return 'verbose';
50
+ }
51
+ /**
52
+ * Extract log level from text content
53
+ */
54
+ function extractLogLevel(text) {
55
+ const lower = text.toLowerCase();
56
+ if (lower.includes('fatal') || lower.includes('critical'))
57
+ return 'fatal';
58
+ if (lower.includes('error') || lower.includes('<e>') || lower.includes('✖'))
59
+ return 'error';
60
+ if (lower.includes('warn') || lower.includes('warning') || lower.includes('<w>') || lower.includes('⚠'))
61
+ return 'warn';
62
+ if (lower.includes('debug') || lower.includes('<d>'))
63
+ return 'debug';
64
+ if (lower.includes('verbose') || lower.includes('trace'))
65
+ return 'verbose';
66
+ return 'log';
67
+ }
68
+ /**
69
+ * Parse Pino JSON log to ServerLog format
70
+ */
71
+ function parsePinoLog(line, source) {
72
+ try {
73
+ const pinoLog = JSON.parse(line);
74
+ const id = generateUUID();
75
+ return {
76
+ id,
77
+ level: mapPinoLevelToServerLogLevel(pinoLog.level),
78
+ timestamp: new Date(pinoLog.time).getTime(),
79
+ message: pinoLog.message || pinoLog.msg || '',
80
+ context: pinoLog.context || null,
81
+ traceId: pinoLog.trace_id || null,
82
+ userId: pinoLog.user_id || null,
83
+ appId: pinoLog.app_id || null,
84
+ tenantId: pinoLog.tenant_id || null,
85
+ stack: pinoLog.stack || null,
86
+ meta: {
87
+ pid: pinoLog.pid,
88
+ hostname: pinoLog.hostname,
89
+ path: pinoLog.path,
90
+ method: pinoLog.method,
91
+ statusCode: pinoLog.status_code,
92
+ durationMs: pinoLog.duration_ms,
93
+ ip: pinoLog.ip,
94
+ pageRoute: pinoLog.page_route,
95
+ requestBody: pinoLog.request_body,
96
+ responseBody: pinoLog.response_body,
97
+ queryParams: pinoLog.query_params,
98
+ },
99
+ tags: [source],
100
+ };
101
+ }
102
+ catch (error) {
103
+ return null;
104
+ }
105
+ }
106
+ /**
107
+ * Parse plain text log to ServerLog format
108
+ * Format: [2025-11-20 21:48:42] [server] content
109
+ */
110
+ function parseStdLog(line, source) {
111
+ const id = generateUUID();
112
+ const match = line.match(/^\[(\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2})\] \[(server|client)\] (.*)$/);
113
+ if (!match) {
114
+ return {
115
+ id,
116
+ level: 'log',
117
+ timestamp: Date.now(),
118
+ message: line,
119
+ context: null,
120
+ traceId: null,
121
+ userId: null,
122
+ appId: null,
123
+ tenantId: null,
124
+ stack: null,
125
+ meta: null,
126
+ tags: [source],
127
+ };
128
+ }
129
+ const [, timeStr, , content] = match;
130
+ let timestamp;
131
+ try {
132
+ const isoStr = timeStr.replace(' ', 'T');
133
+ timestamp = new Date(isoStr).getTime();
134
+ if (isNaN(timestamp)) {
135
+ timestamp = Date.now();
136
+ }
137
+ }
138
+ catch (error) {
139
+ timestamp = Date.now();
140
+ }
141
+ const level = extractLogLevel(content);
142
+ return {
143
+ id,
144
+ level,
145
+ timestamp,
146
+ message: content,
147
+ context: null,
148
+ traceId: null,
149
+ userId: null,
150
+ appId: null,
151
+ tenantId: null,
152
+ stack: null,
153
+ meta: null,
154
+ tags: [source],
155
+ };
156
+ }
157
+ //# sourceMappingURL=parsers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parsers.js","sourceRoot":"","sources":["../../../../src/server-log/dev-logs/services/parsers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import type { ServerLogResponse } from '../types';
2
+ /**
3
+ * Read ServerLog logs from multiple sources
4
+ *
5
+ * Reads from 4 log files:
6
+ * - server.log (Pino JSON)
7
+ * - trace.log (Pino JSON)
8
+ * - server.std.log (plain text)
9
+ * - client.std.log (plain text)
10
+ */
11
+ export declare function readServerLogs(logDir: string, options?: {
12
+ limit?: number;
13
+ offset?: number;
14
+ levels?: string[];
15
+ sources?: string[];
16
+ }): Promise<ServerLogResponse | undefined>;
17
+ //# sourceMappingURL=server-log.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server-log.service.d.ts","sourceRoot":"","sources":["../../../../src/server-log/dev-logs/services/server-log.service.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAa,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAI7D;;;;;;;;GAQG;AACH,wBAAsB,cAAc,CAClC,MAAM,EAAE,MAAM,EACd,OAAO,GAAE;IACP,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACf,GACL,OAAO,CAAC,iBAAiB,GAAG,SAAS,CAAC,CA0CxC"}
@@ -0,0 +1,119 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.readServerLogs = readServerLogs;
4
+ const node_fs_1 = require("node:fs");
5
+ const node_readline_1 = require("node:readline");
6
+ const node_path_1 = require("node:path");
7
+ const utils_1 = require("../utils");
8
+ const parsers_1 = require("./parsers");
9
+ /**
10
+ * Read ServerLog logs from multiple sources
11
+ *
12
+ * Reads from 4 log files:
13
+ * - server.log (Pino JSON)
14
+ * - trace.log (Pino JSON)
15
+ * - server.std.log (plain text)
16
+ * - client.std.log (plain text)
17
+ */
18
+ async function readServerLogs(logDir, options = {}) {
19
+ const limit = options.limit || 100;
20
+ const offset = options.offset || 0;
21
+ const sources = options.sources || ['server', 'trace', 'server-std', 'client-std'];
22
+ const allLogs = [];
23
+ const errors = [];
24
+ for (const source of sources) {
25
+ try {
26
+ const logs = await readLogsBySource(logDir, source);
27
+ allLogs.push(...logs);
28
+ }
29
+ catch (error) {
30
+ const errorMsg = `Failed to read ${source}: ${error instanceof Error ? error.message : String(error)}`;
31
+ errors.push(errorMsg);
32
+ console.warn(`[readServerLogs] ${errorMsg}`);
33
+ }
34
+ }
35
+ if (allLogs.length === 0) {
36
+ if (errors.length > 0) {
37
+ console.warn(`[readServerLogs] No logs found. Errors: ${errors.join(', ')}`);
38
+ }
39
+ return undefined;
40
+ }
41
+ let filteredLogs = allLogs;
42
+ if (options.levels && options.levels.length > 0) {
43
+ filteredLogs = allLogs.filter(log => options.levels.includes(log.level));
44
+ }
45
+ // Sort by timestamp descending (newest first)
46
+ filteredLogs.sort((a, b) => b.timestamp - a.timestamp);
47
+ const total = filteredLogs.length;
48
+ const paginatedLogs = filteredLogs.slice(offset, offset + limit);
49
+ return {
50
+ logs: paginatedLogs,
51
+ total,
52
+ hasMore: offset + limit < total,
53
+ };
54
+ }
55
+ /**
56
+ * Read logs from a specific source
57
+ */
58
+ async function readLogsBySource(logDir, source) {
59
+ let filePath;
60
+ let parser;
61
+ if (source === 'server') {
62
+ filePath = (0, node_path_1.join)(logDir, 'server.log');
63
+ parser = (line) => (0, parsers_1.parsePinoLog)(line, 'server');
64
+ }
65
+ else if (source === 'trace') {
66
+ filePath = (0, node_path_1.join)(logDir, 'trace.log');
67
+ parser = (line) => (0, parsers_1.parsePinoLog)(line, 'trace');
68
+ }
69
+ else if (source === 'server-std') {
70
+ filePath = (0, node_path_1.join)(logDir, 'server.std.log');
71
+ parser = (line) => (0, parsers_1.parseStdLog)(line, 'server-std');
72
+ }
73
+ else if (source === 'client-std') {
74
+ filePath = (0, node_path_1.join)(logDir, 'client.std.log');
75
+ parser = (line) => (0, parsers_1.parseStdLog)(line, 'client-std');
76
+ }
77
+ else {
78
+ console.warn(`[readLogsBySource] Unknown source: ${source}`);
79
+ return [];
80
+ }
81
+ if (!(await (0, utils_1.fileExists)(filePath))) {
82
+ console.warn(`[readLogsBySource] File not found: ${filePath}`);
83
+ return [];
84
+ }
85
+ const logs = [];
86
+ let stream = null;
87
+ let rl = null;
88
+ try {
89
+ stream = (0, node_fs_1.createReadStream)(filePath, { encoding: 'utf8' });
90
+ rl = (0, node_readline_1.createInterface)({ input: stream, crlfDelay: Infinity });
91
+ for await (const line of rl) {
92
+ if (!line.trim())
93
+ continue;
94
+ try {
95
+ const log = parser(line);
96
+ if (log) {
97
+ logs.push(log);
98
+ }
99
+ }
100
+ catch (parseError) {
101
+ // Ignore individual line parse errors
102
+ }
103
+ }
104
+ }
105
+ catch (error) {
106
+ console.error(`[readLogsBySource] Error reading ${filePath}:`, error);
107
+ throw error;
108
+ }
109
+ finally {
110
+ if (rl) {
111
+ rl.close();
112
+ }
113
+ if (stream) {
114
+ stream.close();
115
+ }
116
+ }
117
+ return logs;
118
+ }
119
+ //# sourceMappingURL=server-log.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server-log.service.js","sourceRoot":"","sources":["../../../../src/server-log/dev-logs/services/server-log.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import type { LogEntry, RecentTraceCallsResponse, LogFilePageResponse } from '../types';
2
+ /**
3
+ * Read log entries by trace ID
4
+ */
5
+ export declare function readLogEntriesByTrace(filePath: string, traceId: string, limit: number): Promise<LogEntry[] | undefined>;
6
+ /**
7
+ * Read recent trace calls with pagination
8
+ */
9
+ export declare function readRecentTraceCalls(filePath: string, page: number, pageSize: number, pathFilter?: string, methodFilter?: string): Promise<RecentTraceCallsResponse | undefined>;
10
+ /**
11
+ * Read log file page with pagination
12
+ */
13
+ export declare function readLogFilePage(filePath: string, page: number, pageSize: number): Promise<LogFilePageResponse | undefined>;
14
+ //# sourceMappingURL=trace.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trace.service.d.ts","sourceRoot":"","sources":["../../../../src/server-log/dev-logs/services/trace.service.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,QAAQ,EAER,wBAAwB,EACxB,mBAAmB,EACpB,MAAM,UAAU,CAAC;AAIlB;;GAEG;AACH,wBAAsB,qBAAqB,CACzC,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,QAAQ,EAAE,GAAG,SAAS,CAAC,CAyBjC;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CACxC,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,UAAU,CAAC,EAAE,MAAM,EACnB,YAAY,CAAC,EAAE,MAAM,GACpB,OAAO,CAAC,wBAAwB,GAAG,SAAS,CAAC,CAwF/C;AAED;;GAEG;AACH,wBAAsB,eAAe,CACnC,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,mBAAmB,GAAG,SAAS,CAAC,CAkD1C"}
@@ -0,0 +1,162 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.readLogEntriesByTrace = readLogEntriesByTrace;
4
+ exports.readRecentTraceCalls = readRecentTraceCalls;
5
+ exports.readLogFilePage = readLogFilePage;
6
+ const node_fs_1 = require("node:fs");
7
+ const node_readline_1 = require("node:readline");
8
+ const utils_1 = require("../utils");
9
+ const file_reader_1 = require("./file-reader");
10
+ /**
11
+ * Read log entries by trace ID
12
+ */
13
+ async function readLogEntriesByTrace(filePath, traceId, limit) {
14
+ const exists = await (0, utils_1.fileExists)(filePath);
15
+ if (!exists) {
16
+ return undefined;
17
+ }
18
+ const matches = [];
19
+ const stream = (0, node_fs_1.createReadStream)(filePath, { encoding: 'utf8' });
20
+ const rl = (0, node_readline_1.createInterface)({ input: stream, crlfDelay: Infinity });
21
+ for await (const line of rl) {
22
+ const entry = (0, utils_1.parseLogLine)(line);
23
+ if (!entry)
24
+ continue;
25
+ if (entry.trace_id !== traceId)
26
+ continue;
27
+ matches.push(entry);
28
+ if (limit > 0 && matches.length > limit) {
29
+ matches.shift();
30
+ }
31
+ }
32
+ rl.close();
33
+ stream.close();
34
+ return matches;
35
+ }
36
+ /**
37
+ * Read recent trace calls with pagination
38
+ */
39
+ async function readRecentTraceCalls(filePath, page, pageSize, pathFilter, methodFilter) {
40
+ if (!(await (0, utils_1.fileExists)(filePath))) {
41
+ return undefined;
42
+ }
43
+ const config = {
44
+ maxEntriesPerTrace: 10,
45
+ chunkSize: 64 * 1024,
46
+ };
47
+ const builders = new Map();
48
+ const completedCalls = [];
49
+ const createTraceBuilder = (traceId) => ({
50
+ traceId,
51
+ entries: [],
52
+ method: undefined,
53
+ path: undefined,
54
+ startTime: undefined,
55
+ endTime: undefined,
56
+ statusCode: undefined,
57
+ durationMs: undefined,
58
+ hasCompleted: false,
59
+ });
60
+ const updateBuilderMetadata = (builder, entry) => {
61
+ if (entry.method && !builder.method)
62
+ builder.method = String(entry.method);
63
+ if (entry.path && !builder.path)
64
+ builder.path = String(entry.path);
65
+ builder.entries.push(entry);
66
+ if (builder.entries.length > config.maxEntriesPerTrace) {
67
+ builder.entries.shift();
68
+ }
69
+ };
70
+ const handleRequestCompleted = (builder, entry, message) => {
71
+ builder.hasCompleted = true;
72
+ builder.endTime = entry.time;
73
+ // 结构化日志将 status_code / duration_ms 作为顶层字段,优先读字段;
74
+ // 仅当日志以文本形式拼接(例如 app.log 的 HTTP request failed 消息)时才回退正则。
75
+ builder.statusCode =
76
+ typeof entry.status_code === 'number' ? entry.status_code : (0, utils_1.extractNumber)(message, /status_code:\s*(\d+)/);
77
+ builder.durationMs =
78
+ typeof entry.duration_ms === 'number' ? entry.duration_ms : (0, utils_1.extractNumber)(message, /duration_ms:\s*(\d+)/);
79
+ if (!builder.path && entry.path) {
80
+ builder.path = String(entry.path);
81
+ }
82
+ const pathMatches = !pathFilter || (0, utils_1.matchesPath)(builder.path, pathFilter);
83
+ const methodMatches = !methodFilter || (0, utils_1.matchesMethod)(builder.method, methodFilter);
84
+ const shouldInclude = pathMatches && methodMatches;
85
+ if (shouldInclude) {
86
+ completedCalls.push(builder);
87
+ }
88
+ };
89
+ const processLogEntry = (entry) => {
90
+ const { trace_id: traceId, message = '' } = entry;
91
+ if (!traceId)
92
+ return;
93
+ let builder = builders.get(traceId);
94
+ if (!builder) {
95
+ builder = createTraceBuilder(traceId);
96
+ builders.set(traceId, builder);
97
+ }
98
+ updateBuilderMetadata(builder, entry);
99
+ if (!builder.hasCompleted && (message.includes('HTTP request completed') || message.includes('HTTP request failed'))) {
100
+ handleRequestCompleted(builder, entry, message);
101
+ }
102
+ if (message.includes('HTTP request started') && !builder.startTime) {
103
+ builder.startTime = entry.time;
104
+ }
105
+ };
106
+ const processLine = (line) => {
107
+ const entry = (0, utils_1.parseLogLine)(line);
108
+ if (entry?.trace_id) {
109
+ processLogEntry(entry);
110
+ }
111
+ };
112
+ await (0, file_reader_1.readFileReverse)(filePath, config.chunkSize, processLine);
113
+ return (0, file_reader_1.buildPaginatedResponse)(completedCalls, page, pageSize);
114
+ }
115
+ /**
116
+ * Read log file page with pagination
117
+ */
118
+ async function readLogFilePage(filePath, page, pageSize) {
119
+ if (!(await (0, utils_1.fileExists)(filePath))) {
120
+ return undefined;
121
+ }
122
+ const capacity = page * pageSize;
123
+ const buffer = [];
124
+ let totalLines = 0;
125
+ const stream = (0, node_fs_1.createReadStream)(filePath, { encoding: 'utf8' });
126
+ const rl = (0, node_readline_1.createInterface)({ input: stream, crlfDelay: Infinity });
127
+ try {
128
+ for await (const line of rl) {
129
+ buffer.push(line);
130
+ if (buffer.length > capacity) {
131
+ buffer.shift();
132
+ }
133
+ totalLines += 1;
134
+ }
135
+ }
136
+ finally {
137
+ rl.close();
138
+ stream.close();
139
+ }
140
+ const totalPages = totalLines === 0 ? 0 : Math.ceil(totalLines / pageSize);
141
+ if (buffer.length === 0) {
142
+ return { page, pageSize, totalLines, totalPages, lines: [] };
143
+ }
144
+ const startIndex = Math.max(totalLines - page * pageSize, 0);
145
+ const endIndex = Math.max(totalLines - (page - 1) * pageSize, 0);
146
+ const bufferStartIndex = totalLines - buffer.length;
147
+ const lines = [];
148
+ for (let i = buffer.length - 1; i >= 0; i -= 1) {
149
+ const lineIndex = bufferStartIndex + i;
150
+ if (lineIndex >= startIndex && lineIndex < endIndex) {
151
+ lines.push(buffer[i]);
152
+ }
153
+ }
154
+ return {
155
+ page,
156
+ pageSize,
157
+ totalLines,
158
+ totalPages,
159
+ lines: lines.reverse(),
160
+ };
161
+ }
162
+ //# sourceMappingURL=trace.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trace.service.js","sourceRoot":"","sources":["../../../../src/server-log/dev-logs/services/trace.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import type { LogEntry, RecentTraceCallsResponse } from '../types';
2
+ /**
3
+ * Read all automation trigger list in trace.log
4
+ * filter by request_body.trigger & limit & path=/__innerapi__/automation/invoke
5
+ */
6
+ export declare function readTriggerList(filePath: string, trigger: string, path: string, limit?: number, triggerID?: string): Promise<RecentTraceCallsResponse | undefined>;
7
+ /**
8
+ * Read trigger detail entries by instance ID
9
+ */
10
+ export declare function readTriggerDetail(filePath: string, path: string, instanceID: string): Promise<{
11
+ instanceID: string;
12
+ entries: LogEntry[];
13
+ } | undefined>;
14
+ //# sourceMappingURL=trigger.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trigger.service.d.ts","sourceRoot":"","sources":["../../../../src/server-log/dev-logs/services/trigger.service.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAgB,wBAAwB,EAAE,MAAM,UAAU,CAAC;AAIjF;;;GAGG;AACH,wBAAsB,eAAe,CACnC,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EACZ,KAAK,CAAC,EAAE,MAAM,EACd,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,wBAAwB,GAAG,SAAS,CAAC,CAgI/C;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CACrC,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,QAAQ,EAAE,CAAA;CAAE,GAAG,SAAS,CAAC,CA4BlE"}