@lark-apaas/coding-preset-vite-react 1.0.12 → 1.0.13-alpha.0
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/index.d.ts +1 -9
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +114 -153
- package/lib/index.js.map +1 -1
- package/lib/plugins/{basename.d.ts → basename-injection.d.ts} +4 -4
- package/lib/plugins/basename-injection.d.ts.map +1 -0
- package/lib/plugins/{basename.js → basename-injection.js} +15 -7
- package/lib/plugins/basename-injection.js.map +1 -0
- package/lib/plugins/capabilities.d.ts +6 -9
- package/lib/plugins/capabilities.d.ts.map +1 -1
- package/lib/plugins/capabilities.js +29 -27
- package/lib/plugins/capabilities.js.map +1 -1
- package/lib/plugins/fonts-mirror.d.ts.map +1 -1
- package/lib/plugins/fonts-mirror.js +0 -28
- package/lib/plugins/fonts-mirror.js.map +1 -1
- package/lib/plugins/view-context.d.ts +5 -0
- package/lib/plugins/view-context.d.ts.map +1 -1
- package/lib/plugins/view-context.js +3 -0
- package/lib/plugins/view-context.js.map +1 -1
- package/package.json +1 -3
- package/lib/plugins/basename.d.ts.map +0 -1
- package/lib/plugins/basename.js.map +0 -1
- package/lib/plugins/dev-proxy.d.ts +0 -41
- package/lib/plugins/dev-proxy.d.ts.map +0 -1
- package/lib/plugins/dev-proxy.js +0 -229
- package/lib/plugins/dev-proxy.js.map +0 -1
- package/lib/plugins/html-output.d.ts +0 -21
- package/lib/plugins/html-output.d.ts.map +0 -1
- package/lib/plugins/html-output.js +0 -171
- package/lib/plugins/html-output.js.map +0 -1
- package/lib/plugins/server-log.d.ts +0 -45
- package/lib/plugins/server-log.d.ts.map +0 -1
- package/lib/plugins/server-log.js +0 -60
- package/lib/plugins/server-log.js.map +0 -1
- package/lib/server-log/compat.d.ts +0 -36
- package/lib/server-log/compat.d.ts.map +0 -1
- package/lib/server-log/compat.js +0 -73
- package/lib/server-log/compat.js.map +0 -1
- package/lib/server-log/dev-logs/api-list-handler.d.ts +0 -6
- package/lib/server-log/dev-logs/api-list-handler.d.ts.map +0 -1
- package/lib/server-log/dev-logs/api-list-handler.js +0 -132
- package/lib/server-log/dev-logs/api-list-handler.js.map +0 -1
- package/lib/server-log/dev-logs/controller.d.ts +0 -45
- package/lib/server-log/dev-logs/controller.d.ts.map +0 -1
- package/lib/server-log/dev-logs/controller.js +0 -239
- package/lib/server-log/dev-logs/controller.js.map +0 -1
- package/lib/server-log/dev-logs/health.controller.d.ts +0 -15
- package/lib/server-log/dev-logs/health.controller.d.ts.map +0 -1
- package/lib/server-log/dev-logs/health.controller.js +0 -79
- package/lib/server-log/dev-logs/health.controller.js.map +0 -1
- package/lib/server-log/dev-logs/helper/path-matcher.d.ts +0 -117
- package/lib/server-log/dev-logs/helper/path-matcher.d.ts.map +0 -1
- package/lib/server-log/dev-logs/helper/path-matcher.js +0 -214
- package/lib/server-log/dev-logs/helper/path-matcher.js.map +0 -1
- package/lib/server-log/dev-logs/index.d.ts +0 -12
- package/lib/server-log/dev-logs/index.d.ts.map +0 -1
- package/lib/server-log/dev-logs/index.js +0 -61
- package/lib/server-log/dev-logs/index.js.map +0 -1
- package/lib/server-log/dev-logs/router.d.ts +0 -7
- package/lib/server-log/dev-logs/router.d.ts.map +0 -1
- package/lib/server-log/dev-logs/router.js +0 -40
- package/lib/server-log/dev-logs/router.js.map +0 -1
- package/lib/server-log/dev-logs/services/capability.service.d.ts +0 -33
- package/lib/server-log/dev-logs/services/capability.service.d.ts.map +0 -1
- package/lib/server-log/dev-logs/services/capability.service.js +0 -127
- package/lib/server-log/dev-logs/services/capability.service.js.map +0 -1
- package/lib/server-log/dev-logs/services/file-reader.d.ts +0 -10
- package/lib/server-log/dev-logs/services/file-reader.d.ts.map +0 -1
- package/lib/server-log/dev-logs/services/file-reader.js +0 -67
- package/lib/server-log/dev-logs/services/file-reader.js.map +0 -1
- package/lib/server-log/dev-logs/services/index.d.ts +0 -8
- package/lib/server-log/dev-logs/services/index.d.ts.map +0 -1
- package/lib/server-log/dev-logs/services/index.js +0 -30
- package/lib/server-log/dev-logs/services/index.js.map +0 -1
- package/lib/server-log/dev-logs/services/parsers.d.ts +0 -23
- package/lib/server-log/dev-logs/services/parsers.d.ts.map +0 -1
- package/lib/server-log/dev-logs/services/parsers.js +0 -157
- package/lib/server-log/dev-logs/services/parsers.js.map +0 -1
- package/lib/server-log/dev-logs/services/server-log.service.d.ts +0 -17
- package/lib/server-log/dev-logs/services/server-log.service.d.ts.map +0 -1
- package/lib/server-log/dev-logs/services/server-log.service.js +0 -119
- package/lib/server-log/dev-logs/services/server-log.service.js.map +0 -1
- package/lib/server-log/dev-logs/services/trace.service.d.ts +0 -14
- package/lib/server-log/dev-logs/services/trace.service.d.ts.map +0 -1
- package/lib/server-log/dev-logs/services/trace.service.js +0 -162
- package/lib/server-log/dev-logs/services/trace.service.js.map +0 -1
- package/lib/server-log/dev-logs/services/trigger.service.d.ts +0 -14
- package/lib/server-log/dev-logs/services/trigger.service.d.ts.map +0 -1
- package/lib/server-log/dev-logs/services/trigger.service.js +0 -153
- package/lib/server-log/dev-logs/services/trigger.service.js.map +0 -1
- package/lib/server-log/dev-logs/services.d.ts +0 -7
- package/lib/server-log/dev-logs/services.d.ts.map +0 -1
- package/lib/server-log/dev-logs/services.js +0 -20
- package/lib/server-log/dev-logs/services.js.map +0 -1
- package/lib/server-log/dev-logs/sse/client-manager.d.ts +0 -61
- package/lib/server-log/dev-logs/sse/client-manager.d.ts.map +0 -1
- package/lib/server-log/dev-logs/sse/client-manager.js +0 -140
- package/lib/server-log/dev-logs/sse/client-manager.js.map +0 -1
- package/lib/server-log/dev-logs/sse/index.d.ts +0 -5
- package/lib/server-log/dev-logs/sse/index.d.ts.map +0 -1
- package/lib/server-log/dev-logs/sse/index.js +0 -11
- package/lib/server-log/dev-logs/sse/index.js.map +0 -1
- package/lib/server-log/dev-logs/sse/log-watcher.d.ts +0 -51
- package/lib/server-log/dev-logs/sse/log-watcher.d.ts.map +0 -1
- package/lib/server-log/dev-logs/sse/log-watcher.js +0 -381
- package/lib/server-log/dev-logs/sse/log-watcher.js.map +0 -1
- package/lib/server-log/dev-logs/sse/sse.controller.d.ts +0 -25
- package/lib/server-log/dev-logs/sse/sse.controller.d.ts.map +0 -1
- package/lib/server-log/dev-logs/sse/sse.controller.js +0 -95
- package/lib/server-log/dev-logs/sse/sse.controller.js.map +0 -1
- package/lib/server-log/dev-logs/types.d.ts +0 -104
- package/lib/server-log/dev-logs/types.d.ts.map +0 -1
- package/lib/server-log/dev-logs/types.js +0 -3
- package/lib/server-log/dev-logs/types.js.map +0 -1
- package/lib/server-log/dev-logs/utils.d.ts +0 -68
- package/lib/server-log/dev-logs/utils.d.ts.map +0 -1
- package/lib/server-log/dev-logs/utils.js +0 -151
- package/lib/server-log/dev-logs/utils.js.map +0 -1
- package/lib/server-log/register.d.ts +0 -34
- package/lib/server-log/register.d.ts.map +0 -1
- package/lib/server-log/register.js +0 -196
- package/lib/server-log/register.js.map +0 -1
- package/lib/server-log/types.d.ts +0 -99
- package/lib/server-log/types.d.ts.map +0 -1
- package/lib/server-log/types.js +0 -3
- package/lib/server-log/types.js.map +0 -1
- package/lib/utils/local-dev.d.ts +0 -46
- package/lib/utils/local-dev.d.ts.map +0 -1
- package/lib/utils/local-dev.js +0 -96
- package/lib/utils/local-dev.js.map +0 -1
- package/lib/utils/proxy-error.d.ts +0 -29
- package/lib/utils/proxy-error.d.ts.map +0 -1
- package/lib/utils/proxy-error.js +0 -158
- package/lib/utils/proxy-error.js.map +0 -1
|
@@ -1,239 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.createGetTraceEntriesHandler = createGetTraceEntriesHandler;
|
|
4
|
-
exports.createGetRecentTracesHandler = createGetRecentTracesHandler;
|
|
5
|
-
exports.createGetLogFileHandler = createGetLogFileHandler;
|
|
6
|
-
exports.createGetServerLogsHandler = createGetServerLogsHandler;
|
|
7
|
-
exports.createGetTriggerListHandler = createGetTriggerListHandler;
|
|
8
|
-
exports.createGetTriggerDetailHandler = createGetTriggerDetailHandler;
|
|
9
|
-
exports.createGetCapabilityTraceListHandler = createGetCapabilityTraceListHandler;
|
|
10
|
-
const node_path_1 = require("node:path");
|
|
11
|
-
const services_1 = require("./services");
|
|
12
|
-
const utils_1 = require("./utils");
|
|
13
|
-
/**
|
|
14
|
-
* Handle not found error
|
|
15
|
-
*/
|
|
16
|
-
function handleNotFound(res, filePath, message = 'Log file not found') {
|
|
17
|
-
res.status(404).json({ message: `${message}: ${(0, utils_1.getRelativePath)(filePath)}` });
|
|
18
|
-
}
|
|
19
|
-
/**
|
|
20
|
-
* Handle generic error
|
|
21
|
-
*/
|
|
22
|
-
function handleError(res, error, message = 'Failed to read log file') {
|
|
23
|
-
res.status(500).json({ message, error: (0, utils_1.serializeError)(error) });
|
|
24
|
-
}
|
|
25
|
-
/**
|
|
26
|
-
* Create handler for getting log entries by trace ID
|
|
27
|
-
*/
|
|
28
|
-
function createGetTraceEntriesHandler(logDir) {
|
|
29
|
-
const appLogPath = (0, node_path_1.join)(logDir, 'server.log');
|
|
30
|
-
return async (req, res) => {
|
|
31
|
-
const traceId = String(req.params.traceId || '').trim();
|
|
32
|
-
if (!traceId) {
|
|
33
|
-
return res.status(400).json({ message: 'traceId is required' });
|
|
34
|
-
}
|
|
35
|
-
const limit = (0, utils_1.parseLimit)(req.query.limit, 200, 1000);
|
|
36
|
-
try {
|
|
37
|
-
const entries = await (0, services_1.readLogEntriesByTrace)(appLogPath, traceId, limit);
|
|
38
|
-
if (!entries) {
|
|
39
|
-
return handleNotFound(res, appLogPath);
|
|
40
|
-
}
|
|
41
|
-
res.json({
|
|
42
|
-
file: (0, utils_1.getRelativePath)(appLogPath),
|
|
43
|
-
traceId,
|
|
44
|
-
count: entries.length,
|
|
45
|
-
entries,
|
|
46
|
-
});
|
|
47
|
-
}
|
|
48
|
-
catch (error) {
|
|
49
|
-
handleError(res, error);
|
|
50
|
-
}
|
|
51
|
-
};
|
|
52
|
-
}
|
|
53
|
-
/**
|
|
54
|
-
* Create handler for getting recent trace calls
|
|
55
|
-
*/
|
|
56
|
-
function createGetRecentTracesHandler(logDir) {
|
|
57
|
-
const traceLogPath = (0, node_path_1.join)(logDir, 'trace.log');
|
|
58
|
-
return async (req, res) => {
|
|
59
|
-
const page = (0, utils_1.parsePositiveInt)(req.query.page, 1);
|
|
60
|
-
const pageSize = (0, utils_1.parseLimit)(req.query.pageSize, 10, 100);
|
|
61
|
-
const pathFilter = typeof req.query.path === 'string' ? req.query.path.trim() : undefined;
|
|
62
|
-
const methodFilter = typeof req.query.method === 'string' ? req.query.method.trim().toUpperCase() : undefined;
|
|
63
|
-
try {
|
|
64
|
-
const result = await (0, services_1.readRecentTraceCalls)(traceLogPath, page, pageSize, pathFilter, methodFilter);
|
|
65
|
-
if (!result) {
|
|
66
|
-
return handleNotFound(res, traceLogPath);
|
|
67
|
-
}
|
|
68
|
-
res.json({
|
|
69
|
-
file: (0, utils_1.getRelativePath)(traceLogPath),
|
|
70
|
-
...result,
|
|
71
|
-
path: pathFilter || null,
|
|
72
|
-
method: methodFilter || null,
|
|
73
|
-
count: result.calls.length,
|
|
74
|
-
});
|
|
75
|
-
}
|
|
76
|
-
catch (error) {
|
|
77
|
-
handleError(res, error, 'Failed to read trace log');
|
|
78
|
-
}
|
|
79
|
-
};
|
|
80
|
-
}
|
|
81
|
-
/**
|
|
82
|
-
* Create handler for getting log file by name
|
|
83
|
-
*/
|
|
84
|
-
function createGetLogFileHandler(logDir) {
|
|
85
|
-
return async (req, res) => {
|
|
86
|
-
const fileName = String(req.params.fileName || '').trim();
|
|
87
|
-
if (!fileName) {
|
|
88
|
-
return res.status(400).json({ message: 'fileName is required' });
|
|
89
|
-
}
|
|
90
|
-
const page = (0, utils_1.parsePositiveInt)(req.query.page, 1);
|
|
91
|
-
const pageSize = (0, utils_1.parseLimit)(req.query.pageSize, 200, 2000);
|
|
92
|
-
try {
|
|
93
|
-
const filePath = (0, utils_1.resolveLogFilePath)(logDir, fileName);
|
|
94
|
-
const result = await (0, services_1.readLogFilePage)(filePath, page, pageSize);
|
|
95
|
-
if (!result) {
|
|
96
|
-
return handleNotFound(res, filePath);
|
|
97
|
-
}
|
|
98
|
-
res.json({
|
|
99
|
-
file: (0, utils_1.getRelativePath)(filePath),
|
|
100
|
-
...result,
|
|
101
|
-
});
|
|
102
|
-
}
|
|
103
|
-
catch (error) {
|
|
104
|
-
handleError(res, error, 'Failed to read specified log file');
|
|
105
|
-
}
|
|
106
|
-
};
|
|
107
|
-
}
|
|
108
|
-
/**
|
|
109
|
-
* Create handler for getting server logs
|
|
110
|
-
*
|
|
111
|
-
* Reads from 4 log sources:
|
|
112
|
-
* - server.log (Pino JSON)
|
|
113
|
-
* - trace.log (Pino JSON)
|
|
114
|
-
* - server.std.log (plain text)
|
|
115
|
-
* - client.std.log (plain text)
|
|
116
|
-
*
|
|
117
|
-
* Query parameters:
|
|
118
|
-
* - limit: number of logs to return (default: 100, max: 1000)
|
|
119
|
-
* - offset: offset for pagination (default: 0)
|
|
120
|
-
* - levels: comma-separated log levels (e.g., "error,warn")
|
|
121
|
-
* - sources: comma-separated sources (e.g., "server,trace")
|
|
122
|
-
*/
|
|
123
|
-
function createGetServerLogsHandler(logDir) {
|
|
124
|
-
return async (req, res) => {
|
|
125
|
-
const limit = (0, utils_1.parseLimit)(req.query.limit, 100, 1000);
|
|
126
|
-
const offset = (0, utils_1.parsePositiveInt)(req.query.offset, 0);
|
|
127
|
-
// Parse levels filter
|
|
128
|
-
const levels = req.query.levels
|
|
129
|
-
? String(req.query.levels).split(',').map(l => l.trim()).filter(Boolean)
|
|
130
|
-
: undefined;
|
|
131
|
-
// Parse sources filter
|
|
132
|
-
const sources = req.query.sources
|
|
133
|
-
? String(req.query.sources).split(',').map(s => s.trim()).filter(Boolean)
|
|
134
|
-
: undefined;
|
|
135
|
-
try {
|
|
136
|
-
const result = await (0, services_1.readServerLogs)(logDir, {
|
|
137
|
-
limit,
|
|
138
|
-
offset,
|
|
139
|
-
levels,
|
|
140
|
-
sources,
|
|
141
|
-
});
|
|
142
|
-
if (!result) {
|
|
143
|
-
return res.status(404).json({
|
|
144
|
-
message: 'No server log files found',
|
|
145
|
-
hint: 'Expected files: server.log, trace.log, server.std.log, client.std.log',
|
|
146
|
-
});
|
|
147
|
-
}
|
|
148
|
-
return res.json(result);
|
|
149
|
-
}
|
|
150
|
-
catch (error) {
|
|
151
|
-
return handleError(res, error, 'Failed to read server logs');
|
|
152
|
-
}
|
|
153
|
-
};
|
|
154
|
-
}
|
|
155
|
-
/**
|
|
156
|
-
* Create handler for getting all automation trigger list in trace.log
|
|
157
|
-
* filter by request_body.trigger & limit & path=/__innerapi__/automation/invoke
|
|
158
|
-
*/
|
|
159
|
-
function createGetTriggerListHandler(logDir) {
|
|
160
|
-
const traceLogPath = (0, node_path_1.join)(logDir, 'trace.log');
|
|
161
|
-
return async (req, res) => {
|
|
162
|
-
const trigger = typeof req.query.trigger === 'string' ? req.query.trigger.trim() : undefined;
|
|
163
|
-
if (!trigger) {
|
|
164
|
-
return res.status(400).json({ message: 'trigger is required' });
|
|
165
|
-
}
|
|
166
|
-
const triggerID = typeof req.query.triggerID === 'string' ? req.query.triggerID.trim() : undefined;
|
|
167
|
-
const path = typeof req.query.path === 'string' ? req.query.path.trim() : '/__innerapi__/automation/invoke';
|
|
168
|
-
const limit = (0, utils_1.parseLimit)(req.query.limit, 10, 200);
|
|
169
|
-
try {
|
|
170
|
-
const result = await (0, services_1.readTriggerList)(traceLogPath, trigger, path, limit, triggerID);
|
|
171
|
-
if (!result) {
|
|
172
|
-
return handleNotFound(res, traceLogPath);
|
|
173
|
-
}
|
|
174
|
-
res.json({
|
|
175
|
-
file: (0, utils_1.getRelativePath)(traceLogPath),
|
|
176
|
-
path,
|
|
177
|
-
...result,
|
|
178
|
-
});
|
|
179
|
-
}
|
|
180
|
-
catch (error) {
|
|
181
|
-
handleError(res, error, 'Failed to read trace log');
|
|
182
|
-
}
|
|
183
|
-
};
|
|
184
|
-
}
|
|
185
|
-
function createGetTriggerDetailHandler(logDir) {
|
|
186
|
-
const traceLogPath = (0, node_path_1.join)(logDir, 'server.log');
|
|
187
|
-
return async (req, res) => {
|
|
188
|
-
const instanceID = String(req.params.instanceID || '').trim();
|
|
189
|
-
if (!instanceID) {
|
|
190
|
-
return res.status(400).json({ message: 'instanceID is required' });
|
|
191
|
-
}
|
|
192
|
-
const path = typeof req.query.path === 'string' ? req.query.path.trim() : '/__innerapi__/automation/invoke';
|
|
193
|
-
try {
|
|
194
|
-
const result = await (0, services_1.readTriggerDetail)(traceLogPath, path, instanceID);
|
|
195
|
-
if (!result) {
|
|
196
|
-
return handleNotFound(res, traceLogPath);
|
|
197
|
-
}
|
|
198
|
-
res.json({
|
|
199
|
-
file: (0, utils_1.getRelativePath)(traceLogPath),
|
|
200
|
-
...result,
|
|
201
|
-
});
|
|
202
|
-
}
|
|
203
|
-
catch (error) {
|
|
204
|
-
handleError(res, error, 'Failed to read trace log');
|
|
205
|
-
}
|
|
206
|
-
};
|
|
207
|
-
}
|
|
208
|
-
/**
|
|
209
|
-
* Create handler for getting capability trace list
|
|
210
|
-
* Filter by capability_id in server.log
|
|
211
|
-
*
|
|
212
|
-
* Query parameters:
|
|
213
|
-
* - capability_id: required, the capability ID to filter
|
|
214
|
-
* - limit: number of traces to return (default: 10, max: 200)
|
|
215
|
-
*/
|
|
216
|
-
function createGetCapabilityTraceListHandler(logDir) {
|
|
217
|
-
const serverLogPath = (0, node_path_1.join)(logDir, 'server.log');
|
|
218
|
-
return async (req, res) => {
|
|
219
|
-
const capabilityId = typeof req.query.capability_id === 'string' ? req.query.capability_id.trim() : undefined;
|
|
220
|
-
if (!capabilityId) {
|
|
221
|
-
return res.status(400).json({ message: 'capability_id is required' });
|
|
222
|
-
}
|
|
223
|
-
const limit = (0, utils_1.parseLimit)(req.query.limit, 10, 200);
|
|
224
|
-
try {
|
|
225
|
-
const result = await (0, services_1.readCapabilityTraceList)(serverLogPath, capabilityId, limit);
|
|
226
|
-
if (!result) {
|
|
227
|
-
return handleNotFound(res, serverLogPath);
|
|
228
|
-
}
|
|
229
|
-
res.json({
|
|
230
|
-
file: (0, utils_1.getRelativePath)(serverLogPath),
|
|
231
|
-
...result,
|
|
232
|
-
});
|
|
233
|
-
}
|
|
234
|
-
catch (error) {
|
|
235
|
-
handleError(res, error, 'Failed to read server log');
|
|
236
|
-
}
|
|
237
|
-
};
|
|
238
|
-
}
|
|
239
|
-
//# sourceMappingURL=controller.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"controller.js","sourceRoot":"","sources":["../../../src/server-log/dev-logs/controller.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import type { Request, Response } from 'express';
|
|
2
|
-
interface HealthCheckRouterOptions {
|
|
3
|
-
/** 目标服务端口,默认 3000 */
|
|
4
|
-
targetPort?: number;
|
|
5
|
-
/** 目标服务主机,默认 localhost */
|
|
6
|
-
targetHost?: string;
|
|
7
|
-
/** 健康检查超时时间(毫秒),默认 2000ms */
|
|
8
|
-
timeout?: number;
|
|
9
|
-
}
|
|
10
|
-
/**
|
|
11
|
-
* 创建健康检查路由
|
|
12
|
-
*/
|
|
13
|
-
export declare function createHealthCheckHandler(options?: HealthCheckRouterOptions): (_req: Request, res: Response) => Promise<void>;
|
|
14
|
-
export {};
|
|
15
|
-
//# sourceMappingURL=health.controller.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"health.controller.d.ts","sourceRoot":"","sources":["../../../src/server-log/dev-logs/health.controller.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEjD,UAAU,wBAAwB;IAChC,qBAAqB;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,0BAA0B;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,6BAA6B;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAkDD;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,GAAE,wBAA6B,IAM9D,MAAM,OAAO,EAAE,KAAK,QAAQ,mBA4B5C"}
|
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.createHealthCheckHandler = createHealthCheckHandler;
|
|
7
|
-
const node_http_1 = __importDefault(require("node:http"));
|
|
8
|
-
/**
|
|
9
|
-
* 检查目标服务是否可用
|
|
10
|
-
*/
|
|
11
|
-
function checkServiceHealth(host, port, timeout) {
|
|
12
|
-
return new Promise((resolve) => {
|
|
13
|
-
const startTime = Date.now();
|
|
14
|
-
const req = node_http_1.default.request({
|
|
15
|
-
hostname: host,
|
|
16
|
-
port,
|
|
17
|
-
path: '/',
|
|
18
|
-
method: 'HEAD',
|
|
19
|
-
timeout,
|
|
20
|
-
}, (_res) => {
|
|
21
|
-
const responseTime = Date.now() - startTime;
|
|
22
|
-
// 任何响应都表示服务可用(包括错误状态码)
|
|
23
|
-
resolve({
|
|
24
|
-
available: true,
|
|
25
|
-
responseTime,
|
|
26
|
-
});
|
|
27
|
-
});
|
|
28
|
-
req.on('timeout', () => {
|
|
29
|
-
req.destroy();
|
|
30
|
-
resolve({
|
|
31
|
-
available: false,
|
|
32
|
-
error: 'Request timeout',
|
|
33
|
-
});
|
|
34
|
-
});
|
|
35
|
-
req.on('error', (err) => {
|
|
36
|
-
resolve({
|
|
37
|
-
available: false,
|
|
38
|
-
error: err.message,
|
|
39
|
-
});
|
|
40
|
-
});
|
|
41
|
-
req.end();
|
|
42
|
-
});
|
|
43
|
-
}
|
|
44
|
-
/**
|
|
45
|
-
* 创建健康检查路由
|
|
46
|
-
*/
|
|
47
|
-
function createHealthCheckHandler(options = {}) {
|
|
48
|
-
const { targetPort = Number(process.env.SERVER_PORT) || 3000, targetHost = 'localhost', timeout = 2000, } = options;
|
|
49
|
-
return async (_req, res) => {
|
|
50
|
-
try {
|
|
51
|
-
const result = await checkServiceHealth(targetHost, targetPort, timeout);
|
|
52
|
-
if (result.available) {
|
|
53
|
-
res.status(200).json({
|
|
54
|
-
status: 'healthy',
|
|
55
|
-
service: `${targetHost}:${targetPort}`,
|
|
56
|
-
responseTime: result.responseTime,
|
|
57
|
-
timestamp: new Date().toISOString(),
|
|
58
|
-
});
|
|
59
|
-
}
|
|
60
|
-
else {
|
|
61
|
-
res.status(503).json({
|
|
62
|
-
status: 'unhealthy',
|
|
63
|
-
service: `${targetHost}:${targetPort}`,
|
|
64
|
-
error: result.error,
|
|
65
|
-
timestamp: new Date().toISOString(),
|
|
66
|
-
});
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
catch (error) {
|
|
70
|
-
res.status(500).json({
|
|
71
|
-
status: 'error',
|
|
72
|
-
service: `${targetHost}:${targetPort}`,
|
|
73
|
-
error: error instanceof Error ? error.message : 'Unknown error',
|
|
74
|
-
timestamp: new Date().toISOString(),
|
|
75
|
-
});
|
|
76
|
-
}
|
|
77
|
-
};
|
|
78
|
-
}
|
|
79
|
-
//# sourceMappingURL=health.controller.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"health.controller.js","sourceRoot":"","sources":["../../../src/server-log/dev-logs/health.controller.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,117 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Path matcher utility for matching request paths against OpenAPI/Swagger/NestJS path patterns
|
|
3
|
-
*
|
|
4
|
-
* Note: Input paths should be clean request paths without query strings or hash fragments
|
|
5
|
-
*
|
|
6
|
-
* Supports:
|
|
7
|
-
* - Exact matching: /api/users === /api/users (only)
|
|
8
|
-
* - Path parameters: /api/users/{id} matches /api/users/123
|
|
9
|
-
* - Nested parameters: /api/users/{userId}/posts/{postId}
|
|
10
|
-
* - Wildcard (asterisk): /api/star/users matches /api/v1/users (use * for single segment)
|
|
11
|
-
* - Recursive wildcard: /files/star-star matches /files/a/b/c (use two asterisks for multiple segments)
|
|
12
|
-
*
|
|
13
|
-
* Note: Prefix matching has been removed. Use slash-two-asterisks for matching sub-paths:
|
|
14
|
-
* - /api/users - matches /api/users only
|
|
15
|
-
* - /api/users/two-asterisks - matches /api/users, /api/users/123, /api/users/123/posts, etc.
|
|
16
|
-
*/
|
|
17
|
-
/**
|
|
18
|
-
* Check if an actual path matches an OpenAPI/Swagger/NestJS path pattern
|
|
19
|
-
*
|
|
20
|
-
* @param actualPath - The actual request path (e.g., /api/users/123)
|
|
21
|
-
* @param pattern - The path pattern (e.g., /api/users/{id})
|
|
22
|
-
* @returns true if the actual path matches the pattern
|
|
23
|
-
*
|
|
24
|
-
* @example
|
|
25
|
-
* // Exact match
|
|
26
|
-
* matchesPathPattern('/api/users', '/api/users') // true
|
|
27
|
-
* matchesPathPattern('/api/users/123', '/api/users') // false
|
|
28
|
-
*
|
|
29
|
-
* // Path parameters
|
|
30
|
-
* matchesPathPattern('/api/users/123', '/api/users/{id}') // true
|
|
31
|
-
*
|
|
32
|
-
* // Wildcards
|
|
33
|
-
* matchesPathPattern('/api/v1/users', '/api/star/users') // true (use * not star)
|
|
34
|
-
* matchesPathPattern('/api/v2/users', '/api/star/users') // true
|
|
35
|
-
*
|
|
36
|
-
* // Recursive wildcards (use two asterisks, not /**!)
|
|
37
|
-
* matchesPathPattern('/files/a/b/c', '/files/starstar') // true (use ** not starstar)
|
|
38
|
-
* matchesPathPattern('/files/x', '/files/starstar') // true
|
|
39
|
-
*/
|
|
40
|
-
export declare function matchesPathPattern(actualPath: string | undefined, pattern: string): boolean;
|
|
41
|
-
/**
|
|
42
|
-
* Extract path parameters from actual path using pattern
|
|
43
|
-
*
|
|
44
|
-
* Note: This only extracts named parameters {param}, not wildcards
|
|
45
|
-
*
|
|
46
|
-
* @param actualPath - The actual request path
|
|
47
|
-
* @param pattern - The path pattern with parameters
|
|
48
|
-
* @returns Object with parameter names and values, or null if no match
|
|
49
|
-
*
|
|
50
|
-
* @example
|
|
51
|
-
* extractPathParams('/api/users/123', '/api/users/{id}')
|
|
52
|
-
* // { id: '123' }
|
|
53
|
-
*
|
|
54
|
-
* extractPathParams('/api/users/123/posts/456', '/api/users/{userId}/posts/{postId}')
|
|
55
|
-
* // { userId: '123', postId: '456' }
|
|
56
|
-
*
|
|
57
|
-
* // Wildcards are not captured (use asterisk)
|
|
58
|
-
* extractPathParams('/api/v1/users/123', '/api/asterisk/users/{id}')
|
|
59
|
-
* // { id: '123' }
|
|
60
|
-
*/
|
|
61
|
-
export declare function extractPathParams(actualPath: string, pattern: string): Record<string, string> | null;
|
|
62
|
-
/**
|
|
63
|
-
* Check if a pattern contains special matching characters
|
|
64
|
-
*
|
|
65
|
-
* @param pattern - The path pattern to check
|
|
66
|
-
* @returns true if the pattern contains parameters, wildcards, etc.
|
|
67
|
-
*
|
|
68
|
-
* @example
|
|
69
|
-
* hasSpecialPatterns('/api/users/{id}') // true
|
|
70
|
-
* hasSpecialPatterns('/api/asterisk/users') // true (with actual asterisk character)
|
|
71
|
-
* hasSpecialPatterns('/files/double-asterisk') // true (with actual double asterisk)
|
|
72
|
-
* hasSpecialPatterns('/api/users') // false
|
|
73
|
-
*/
|
|
74
|
-
export declare function hasSpecialPatterns(pattern: string): boolean;
|
|
75
|
-
/**
|
|
76
|
-
* Check if a pattern contains path parameters (not wildcards)
|
|
77
|
-
*
|
|
78
|
-
* @param pattern - The path pattern to check
|
|
79
|
-
* @returns true if the pattern contains {param} style parameters
|
|
80
|
-
*
|
|
81
|
-
* @example
|
|
82
|
-
* hasPathParameters('/api/users/{id}') // true
|
|
83
|
-
* hasPathParameters('/api/asterisk/users') // false (with actual asterisk character)
|
|
84
|
-
* hasPathParameters('/api/users') // false
|
|
85
|
-
*/
|
|
86
|
-
export declare function hasPathParameters(pattern: string): boolean;
|
|
87
|
-
/**
|
|
88
|
-
* Check if a pattern contains wildcards
|
|
89
|
-
*
|
|
90
|
-
* @param pattern - The path pattern to check
|
|
91
|
-
* @returns true if the pattern contains asterisk or double asterisk
|
|
92
|
-
*
|
|
93
|
-
* @example
|
|
94
|
-
* hasWildcards('/api/asterisk/users') // true (with actual asterisk character)
|
|
95
|
-
* hasWildcards('/files/double-asterisk') // true (with actual double asterisk)
|
|
96
|
-
* hasWildcards('/api/users/{id}') // false
|
|
97
|
-
*/
|
|
98
|
-
export declare function hasWildcards(pattern: string): boolean;
|
|
99
|
-
/**
|
|
100
|
-
* Normalize a path for matching by:
|
|
101
|
-
* - Removing trailing slashes
|
|
102
|
-
* - Removing duplicate slashes
|
|
103
|
-
*
|
|
104
|
-
* @param path - The path to normalize
|
|
105
|
-
* @returns Normalized path
|
|
106
|
-
*
|
|
107
|
-
* @example
|
|
108
|
-
* normalizePathForMatching('/api/users/') // '/api/users'
|
|
109
|
-
* normalizePathForMatching('/api//users') // '/api/users'
|
|
110
|
-
*/
|
|
111
|
-
export declare function normalizePathForMatching(path: string): string;
|
|
112
|
-
/**
|
|
113
|
-
* Normalize a path (deprecated, use normalizePathForMatching)
|
|
114
|
-
* @deprecated Use normalizePathForMatching instead
|
|
115
|
-
*/
|
|
116
|
-
export declare function normalizePath(path: string): string;
|
|
117
|
-
//# sourceMappingURL=path-matcher.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"path-matcher.d.ts","sourceRoot":"","sources":["../../../../src/server-log/dev-logs/helper/path-matcher.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAgCH;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAsB3F;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,iBAAiB,CAC/B,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,GACd,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CA2C/B;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAE3D;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAE1D;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAErD;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAI7D;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAElD"}
|