@camera.ui/common 0.0.41 → 0.0.44
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/LICENSE.md +1 -1
- package/README.md +5 -1
- package/dist/camera/codec-hardware.js +2 -2
- package/dist/camera/codec-hardware.js.map +1 -1
- package/dist/camera/ffmpeg.d.ts +18 -1
- package/dist/camera/ffmpeg.js +0 -17
- package/dist/camera/ffmpeg.js.map +1 -1
- package/dist/camera/index.d.ts +0 -1
- package/dist/camera/index.js +0 -1
- package/dist/camera/index.js.map +1 -1
- package/dist/camera/rtp-splitter.js +2 -2
- package/dist/camera/rtp-splitter.js.map +1 -1
- package/dist/camera/utils.d.ts +8 -5
- package/dist/camera/utils.js +112 -144
- package/dist/camera/utils.js.map +1 -1
- package/dist/logger/index.d.ts +81 -29
- package/dist/logger/index.js +314 -104
- package/dist/logger/index.js.map +1 -1
- package/dist/logger/types.d.ts +82 -0
- package/dist/logger/types.js +2 -0
- package/dist/logger/types.js.map +1 -0
- package/dist/net/index.d.ts +2 -6
- package/dist/net/index.js +2 -71
- package/dist/net/index.js.map +1 -1
- package/dist/net/monitor.d.ts +34 -0
- package/dist/net/monitor.js +87 -0
- package/dist/net/monitor.js.map +1 -0
- package/dist/net/utils.d.ts +6 -0
- package/dist/net/utils.js +72 -0
- package/dist/net/utils.js.map +1 -0
- package/dist/network/index.d.ts +4 -0
- package/dist/network/index.js +72 -0
- package/dist/network/index.js.map +1 -1
- package/dist/node/index.d.ts +1 -0
- package/dist/node/index.js +1 -0
- package/dist/node/index.js.map +1 -1
- package/dist/node/transform.d.ts +8 -0
- package/dist/node/transform.js +19 -0
- package/dist/node/transform.js.map +1 -0
- package/dist/utils/env.js +5 -4
- package/dist/utils/env.js.map +1 -1
- package/dist/utils/index.d.ts +1 -0
- package/dist/utils/index.js +1 -0
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/promise.d.ts +8 -0
- package/dist/utils/promise.js +19 -0
- package/dist/utils/promise.js.map +1 -0
- package/dist/utils/reactive.d.ts +2 -2
- package/dist/utils/reactive.js +1 -2
- package/dist/utils/reactive.js.map +1 -1
- package/dist/utils/signalHandler.d.ts +1 -1
- package/dist/utils/signalHandler.js +1 -1
- package/dist/utils/signalHandler.js.map +1 -1
- package/dist/utils/subscribed.d.ts +6 -6
- package/dist/utils/subscribed.js +4 -4
- package/dist/utils/subscribed.js.map +1 -1
- package/dist/utils/utils.d.ts +1 -2
- package/dist/utils/utils.js +0 -3
- package/dist/utils/utils.js.map +1 -1
- package/package.json +23 -21
- package/CHANGELOG.md +0 -8
- package/CONTRIBUTING.md +0 -1
- package/dist/camera/mp4.d.ts +0 -2
- package/dist/camera/mp4.js +0 -115
- package/dist/camera/mp4.js.map +0 -1
- package/dist/logger/test.d.ts +0 -1
- package/dist/logger/test.js +0 -103
- package/dist/logger/test.js.map +0 -1
package/dist/logger/index.js
CHANGED
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
import { bgDarkGray, bgGreen, bgMagenta, bgRed, bgYellow, blue, cyan, darkGray, green, magenta, red, yellow } from 'ansicolor';
|
|
2
|
+
import { EventEmitter } from 'node:events';
|
|
2
3
|
import { inspect } from 'util';
|
|
3
|
-
export class Logger {
|
|
4
|
-
static LOGGER_ID_PREFIX = '##LOG_ID::';
|
|
5
|
-
static LOGGER_ID_SUFFIX = '::LOG_ID_END##';
|
|
6
|
-
static LOGGER_END = '##LOG_END##';
|
|
4
|
+
export class Logger extends EventEmitter {
|
|
7
5
|
static LEVEL_PREFIXES = {
|
|
8
6
|
error: bgRed(' ERROR '),
|
|
9
7
|
warn: bgYellow(' WARN '),
|
|
@@ -15,138 +13,241 @@ export class Logger {
|
|
|
15
13
|
};
|
|
16
14
|
prefix;
|
|
17
15
|
suffix;
|
|
18
|
-
loggerId;
|
|
19
16
|
disablePrefix = false;
|
|
20
17
|
disableTimestamps = false;
|
|
21
18
|
debugEnabled = false;
|
|
22
19
|
traceEnabled = false;
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
const prefixes = [loggerId + timestamp, prefix, suffix];
|
|
34
|
-
return prefixes.filter((x) => x !== '');
|
|
35
|
-
}
|
|
20
|
+
/** Target ID for log routing (camera ID, plugin ID) */
|
|
21
|
+
targetId;
|
|
22
|
+
/** Target type for log routing */
|
|
23
|
+
targetType;
|
|
24
|
+
/** Plugin ID for routing camera logs to plugin log files */
|
|
25
|
+
pluginId;
|
|
26
|
+
/** Whether this logger runs in a child process (outputs JSON to stdout) */
|
|
27
|
+
isChildProcess = false;
|
|
28
|
+
/** Source identifier for log entries */
|
|
29
|
+
source = 'main';
|
|
36
30
|
constructor(options) {
|
|
31
|
+
super();
|
|
37
32
|
this.prefix = options?.prefix ?? 'camera.ui';
|
|
38
33
|
this.suffix = options?.suffix;
|
|
39
|
-
this.
|
|
40
|
-
this.disablePrefix = options?.disableTimestamps ?? false;
|
|
34
|
+
this.disablePrefix = options?.disablePrefix ?? false;
|
|
41
35
|
this.disableTimestamps = options?.disableTimestamps ?? false;
|
|
42
36
|
this.debugEnabled = options?.debugEnabled ?? false;
|
|
43
37
|
this.traceEnabled = options?.traceEnabled ?? false;
|
|
44
|
-
this.
|
|
38
|
+
this.targetId = options?.targetId;
|
|
39
|
+
this.targetType = options?.targetType;
|
|
40
|
+
this.pluginId = options?.pluginId;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Configure this logger for child process mode.
|
|
44
|
+
* In child mode, logs are written as JSON to stdout instead of console.log
|
|
45
|
+
*/
|
|
46
|
+
setChildProcessMode(enabled) {
|
|
47
|
+
this.isChildProcess = enabled;
|
|
48
|
+
this.source = enabled ? 'child' : 'main';
|
|
45
49
|
}
|
|
50
|
+
/**
|
|
51
|
+
* Create a child logger that inherits settings from this logger
|
|
52
|
+
*/
|
|
46
53
|
createLogger(options) {
|
|
47
|
-
|
|
54
|
+
const logger = new Logger({
|
|
48
55
|
prefix: options?.prefix ?? this.prefix,
|
|
49
56
|
suffix: options?.suffix ?? this.suffix,
|
|
50
|
-
disablePrefix: options?.
|
|
57
|
+
disablePrefix: options?.disablePrefix ?? this.disablePrefix,
|
|
51
58
|
disableTimestamps: options?.disableTimestamps ?? this.disableTimestamps,
|
|
52
59
|
debugEnabled: options?.debugEnabled ?? this.debugEnabled,
|
|
53
60
|
traceEnabled: options?.traceEnabled ?? this.traceEnabled,
|
|
54
|
-
|
|
55
|
-
|
|
61
|
+
targetId: options?.targetId ?? this.targetId,
|
|
62
|
+
targetType: options?.targetType ?? this.targetType,
|
|
63
|
+
pluginId: options?.pluginId ?? this.pluginId,
|
|
64
|
+
});
|
|
65
|
+
// Inherit child process mode
|
|
66
|
+
logger.isChildProcess = this.isChildProcess;
|
|
67
|
+
logger.source = this.source;
|
|
68
|
+
// Forward log events to parent logger
|
|
69
|
+
logger.on('log', (entry) => {
|
|
70
|
+
this.emit('log', entry);
|
|
56
71
|
});
|
|
72
|
+
return logger;
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Listen for log events
|
|
76
|
+
*/
|
|
77
|
+
onLog(callback) {
|
|
78
|
+
this.on('log', callback);
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Remove log event listener
|
|
82
|
+
*/
|
|
83
|
+
offLog(callback) {
|
|
84
|
+
this.off('log', callback);
|
|
57
85
|
}
|
|
58
86
|
log(...args) {
|
|
59
|
-
|
|
60
|
-
console.log(...message);
|
|
61
|
-
this.logToStream(message);
|
|
87
|
+
this.writeLog('log', args);
|
|
62
88
|
}
|
|
63
89
|
error(...args) {
|
|
64
|
-
|
|
65
|
-
console.log(...message);
|
|
66
|
-
this.logToStream(message);
|
|
90
|
+
this.writeLog('error', args);
|
|
67
91
|
}
|
|
68
92
|
warn(...args) {
|
|
69
|
-
|
|
70
|
-
console.log(...message);
|
|
71
|
-
this.logToStream(message);
|
|
93
|
+
this.writeLog('warn', args);
|
|
72
94
|
}
|
|
73
95
|
success(...args) {
|
|
74
|
-
|
|
75
|
-
console.log(...message);
|
|
76
|
-
this.logToStream(message);
|
|
96
|
+
this.writeLog('success', args);
|
|
77
97
|
}
|
|
78
98
|
attention(...args) {
|
|
79
|
-
|
|
80
|
-
console.log(...message);
|
|
81
|
-
this.logToStream(message);
|
|
99
|
+
this.writeLog('attention', args);
|
|
82
100
|
}
|
|
83
101
|
debug(...args) {
|
|
84
102
|
if (this.debugEnabled) {
|
|
85
|
-
|
|
86
|
-
console.log(...message);
|
|
87
|
-
this.logToStream(message);
|
|
103
|
+
this.writeLog('debug', args);
|
|
88
104
|
}
|
|
89
105
|
}
|
|
90
106
|
trace(...args) {
|
|
91
107
|
if (this.traceEnabled) {
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
108
|
+
this.writeLog('trace', args);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Log raw content without any formatting (pass-through mode).
|
|
113
|
+
* Used for forwarding already-formatted output from child processes.
|
|
114
|
+
*/
|
|
115
|
+
raw(...args) {
|
|
116
|
+
const message = args.map((arg) => (typeof arg === 'string' ? arg : String(arg))).join(' ');
|
|
117
|
+
// Raw logs bypass normal formatting - just output as-is
|
|
118
|
+
if (this.isChildProcess) {
|
|
119
|
+
// Child process: still wrap in JSON for parent to parse
|
|
120
|
+
const entry = this.createEntry('raw', args);
|
|
121
|
+
this.writeToStdout(entry);
|
|
122
|
+
}
|
|
123
|
+
else {
|
|
124
|
+
// Main process: output directly to console without formatting
|
|
125
|
+
console.log(message);
|
|
126
|
+
// Create entry for file logging and event emission (with minimal formatting)
|
|
127
|
+
const entry = {
|
|
128
|
+
timestamp: Date.now(),
|
|
129
|
+
level: 'raw',
|
|
130
|
+
prefix: '',
|
|
131
|
+
message,
|
|
132
|
+
targetId: this.targetId,
|
|
133
|
+
targetType: this.targetType,
|
|
134
|
+
source: this.source,
|
|
135
|
+
processId: process.pid,
|
|
136
|
+
};
|
|
137
|
+
this.emit('log', entry);
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* Core logging method that creates entry and routes it
|
|
142
|
+
*/
|
|
143
|
+
writeLog(level, args) {
|
|
144
|
+
const entry = this.createEntry(level, args);
|
|
145
|
+
if (this.isChildProcess) {
|
|
146
|
+
// Child process: write JSON to stdout
|
|
147
|
+
this.writeToStdout(entry);
|
|
148
|
+
}
|
|
149
|
+
else {
|
|
150
|
+
// Main process: write to console and emit event
|
|
151
|
+
this.writeToConsole(entry);
|
|
152
|
+
this.emit('log', entry);
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* Create a structured log entry
|
|
157
|
+
*/
|
|
158
|
+
createEntry(level, args) {
|
|
159
|
+
const formattedArgs = this.formatArgs(args);
|
|
160
|
+
const message = formattedArgs.join(' ');
|
|
161
|
+
return {
|
|
162
|
+
timestamp: Date.now(),
|
|
163
|
+
level,
|
|
164
|
+
prefix: this.prefix,
|
|
165
|
+
suffix: this.suffix,
|
|
166
|
+
message,
|
|
167
|
+
targetId: this.targetId,
|
|
168
|
+
targetType: this.targetType,
|
|
169
|
+
pluginId: this.pluginId,
|
|
170
|
+
source: this.source,
|
|
171
|
+
processId: process.pid,
|
|
172
|
+
};
|
|
173
|
+
}
|
|
174
|
+
/**
|
|
175
|
+
* Write log entry to stdout as JSON (for child processes)
|
|
176
|
+
*/
|
|
177
|
+
writeToStdout(entry) {
|
|
178
|
+
const message = { type: 'log', entry };
|
|
179
|
+
process.stdout.write(JSON.stringify(message) + '\n');
|
|
180
|
+
}
|
|
181
|
+
/**
|
|
182
|
+
* Write formatted log to console (for main process)
|
|
183
|
+
*/
|
|
184
|
+
writeToConsole(entry) {
|
|
185
|
+
const formatted = this.formatForConsole(entry);
|
|
186
|
+
console.log(...formatted);
|
|
187
|
+
}
|
|
188
|
+
/**
|
|
189
|
+
* Format a log entry for console output with ANSI colors
|
|
190
|
+
*/
|
|
191
|
+
formatForConsole(entry) {
|
|
192
|
+
// For raw entries, just return the message as-is (it's already formatted)
|
|
193
|
+
if (entry.level === 'raw') {
|
|
194
|
+
return [entry.message];
|
|
195
|
+
}
|
|
196
|
+
const parts = [];
|
|
197
|
+
// Timestamp
|
|
198
|
+
if (!this.disableTimestamps) {
|
|
199
|
+
parts.push(`[${this.formatTimestamp(entry.timestamp)}]`);
|
|
95
200
|
}
|
|
201
|
+
// Prefix
|
|
202
|
+
if (!this.disablePrefix && entry.prefix) {
|
|
203
|
+
parts.push(blue(`[${entry.prefix}]`));
|
|
204
|
+
}
|
|
205
|
+
// Suffix
|
|
206
|
+
if (entry.suffix) {
|
|
207
|
+
parts.push(cyan(`[${entry.suffix}]`));
|
|
208
|
+
}
|
|
209
|
+
// Level prefix and colored message
|
|
210
|
+
const levelPrefix = Logger.LEVEL_PREFIXES[entry.level];
|
|
211
|
+
if (levelPrefix) {
|
|
212
|
+
parts.push(levelPrefix);
|
|
213
|
+
}
|
|
214
|
+
// Message with appropriate color
|
|
215
|
+
const coloredMessage = this.colorizeMessage(entry.level, entry.message);
|
|
216
|
+
parts.push(coloredMessage);
|
|
217
|
+
return parts;
|
|
96
218
|
}
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
219
|
+
/**
|
|
220
|
+
* Apply color to message based on log level
|
|
221
|
+
*/
|
|
222
|
+
colorizeMessage(level, message) {
|
|
100
223
|
switch (level) {
|
|
101
224
|
case 'debug':
|
|
102
|
-
|
|
103
|
-
|
|
225
|
+
case 'trace':
|
|
226
|
+
return darkGray(message);
|
|
104
227
|
case 'warn':
|
|
105
|
-
|
|
106
|
-
break;
|
|
228
|
+
return yellow(message);
|
|
107
229
|
case 'error':
|
|
108
|
-
|
|
109
|
-
break;
|
|
230
|
+
return red(message);
|
|
110
231
|
case 'success':
|
|
111
|
-
|
|
112
|
-
break;
|
|
113
|
-
case 'trace':
|
|
114
|
-
message = [...this.loggerPrefix, Logger.LEVEL_PREFIXES.trace, ...formattedArgs.map((x) => darkGray(x))];
|
|
115
|
-
break;
|
|
232
|
+
return green(message);
|
|
116
233
|
case 'attention':
|
|
117
|
-
|
|
118
|
-
break;
|
|
234
|
+
return magenta(message);
|
|
119
235
|
default:
|
|
120
|
-
message
|
|
121
|
-
}
|
|
122
|
-
if (this.loggerId) {
|
|
123
|
-
message.push(Logger.LOGGER_END);
|
|
124
|
-
}
|
|
125
|
-
return message;
|
|
126
|
-
}
|
|
127
|
-
extractLoggerIdAndContent(logLine) {
|
|
128
|
-
const startIndex = logLine.indexOf(Logger.LOGGER_ID_PREFIX);
|
|
129
|
-
if (startIndex === -1) {
|
|
130
|
-
return { loggerId: null, content: logLine };
|
|
131
|
-
}
|
|
132
|
-
const endIndex = logLine.indexOf(Logger.LOGGER_ID_SUFFIX, startIndex + Logger.LOGGER_ID_PREFIX.length);
|
|
133
|
-
if (endIndex === -1) {
|
|
134
|
-
return { loggerId: null, content: logLine };
|
|
236
|
+
return message;
|
|
135
237
|
}
|
|
136
|
-
const loggerId = logLine.slice(startIndex + Logger.LOGGER_ID_PREFIX.length, endIndex);
|
|
137
|
-
const content = logLine.slice(endIndex + Logger.LOGGER_ID_SUFFIX.length);
|
|
138
|
-
this._lastLoggerId = loggerId;
|
|
139
|
-
return { loggerId, content };
|
|
140
238
|
}
|
|
141
|
-
|
|
239
|
+
/**
|
|
240
|
+
* Format arguments for logging
|
|
241
|
+
*/
|
|
242
|
+
formatArgs(args) {
|
|
142
243
|
const inspectOptions = {
|
|
143
|
-
depth: 2,
|
|
144
|
-
colors:
|
|
145
|
-
compact: 3,
|
|
146
|
-
breakLength: 80,
|
|
147
|
-
maxArrayLength: 100,
|
|
148
|
-
maxStringLength: 100,
|
|
149
|
-
numericSeparator: false,
|
|
244
|
+
depth: 2,
|
|
245
|
+
colors: !this.isChildProcess, // No colors in JSON mode
|
|
246
|
+
compact: 3,
|
|
247
|
+
breakLength: 80,
|
|
248
|
+
maxArrayLength: 100,
|
|
249
|
+
maxStringLength: 100,
|
|
250
|
+
numericSeparator: false,
|
|
150
251
|
};
|
|
151
252
|
return args.map((arg) => {
|
|
152
253
|
if (arg instanceof Error) {
|
|
@@ -161,13 +262,9 @@ export class Logger {
|
|
|
161
262
|
return inspect(arg, { ...inspectOptions, depth: 0 });
|
|
162
263
|
}
|
|
163
264
|
else if (Buffer.isBuffer(arg) || arg instanceof Uint8Array) {
|
|
164
|
-
return inspect(arg, {
|
|
165
|
-
...inspectOptions,
|
|
166
|
-
compact: 2,
|
|
167
|
-
maxArrayLength: 100,
|
|
168
|
-
});
|
|
265
|
+
return inspect(arg, { ...inspectOptions, compact: 2, maxArrayLength: 100 });
|
|
169
266
|
}
|
|
170
|
-
else if (typeof arg === 'object') {
|
|
267
|
+
else if (typeof arg === 'object' && arg !== null) {
|
|
171
268
|
return inspect(arg, inspectOptions);
|
|
172
269
|
}
|
|
173
270
|
else {
|
|
@@ -175,8 +272,11 @@ export class Logger {
|
|
|
175
272
|
}
|
|
176
273
|
});
|
|
177
274
|
}
|
|
178
|
-
|
|
179
|
-
|
|
275
|
+
/**
|
|
276
|
+
* Format timestamp for display
|
|
277
|
+
*/
|
|
278
|
+
formatTimestamp(timestamp) {
|
|
279
|
+
const date = new Date(timestamp);
|
|
180
280
|
const day = date.getDate().toString().padStart(2, '0');
|
|
181
281
|
const month = (date.getMonth() + 1).toString().padStart(2, '0');
|
|
182
282
|
const year = date.getFullYear();
|
|
@@ -185,15 +285,125 @@ export class Logger {
|
|
|
185
285
|
const seconds = date.getSeconds().toString().padStart(2, '0');
|
|
186
286
|
return `${day}.${month}.${year}, ${hours}:${minutes}:${seconds}`;
|
|
187
287
|
}
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
288
|
+
/**
|
|
289
|
+
* Format a log entry as a colored string (for terminal/WebSocket output)
|
|
290
|
+
* Preserves ANSI codes for terminal display
|
|
291
|
+
*/
|
|
292
|
+
static formatWithColors(entry) {
|
|
293
|
+
// For raw entries, just return the message as-is
|
|
294
|
+
if (entry.level === 'raw') {
|
|
295
|
+
return entry.message;
|
|
296
|
+
}
|
|
297
|
+
const parts = [];
|
|
298
|
+
// Timestamp
|
|
299
|
+
const date = new Date(entry.timestamp);
|
|
300
|
+
const day = date.getDate().toString().padStart(2, '0');
|
|
301
|
+
const month = (date.getMonth() + 1).toString().padStart(2, '0');
|
|
302
|
+
const year = date.getFullYear();
|
|
303
|
+
const hours = date.getHours().toString().padStart(2, '0');
|
|
304
|
+
const minutes = date.getMinutes().toString().padStart(2, '0');
|
|
305
|
+
const seconds = date.getSeconds().toString().padStart(2, '0');
|
|
306
|
+
parts.push(`[${day}.${month}.${year}, ${hours}:${minutes}:${seconds}]`);
|
|
307
|
+
// Prefix with color
|
|
308
|
+
if (entry.prefix) {
|
|
309
|
+
parts.push(blue(`[${entry.prefix}]`));
|
|
310
|
+
}
|
|
311
|
+
// Suffix with color
|
|
312
|
+
if (entry.suffix) {
|
|
313
|
+
parts.push(cyan(`[${entry.suffix}]`));
|
|
314
|
+
}
|
|
315
|
+
// Level prefix with background color
|
|
316
|
+
const levelPrefix = Logger.LEVEL_PREFIXES[entry.level];
|
|
317
|
+
if (levelPrefix) {
|
|
318
|
+
parts.push(levelPrefix);
|
|
319
|
+
}
|
|
320
|
+
// Message with appropriate color
|
|
321
|
+
let coloredMessage;
|
|
322
|
+
switch (entry.level) {
|
|
323
|
+
case 'debug':
|
|
324
|
+
case 'trace':
|
|
325
|
+
coloredMessage = darkGray(entry.message);
|
|
326
|
+
break;
|
|
327
|
+
case 'warn':
|
|
328
|
+
coloredMessage = yellow(entry.message);
|
|
329
|
+
break;
|
|
330
|
+
case 'error':
|
|
331
|
+
coloredMessage = red(entry.message);
|
|
332
|
+
break;
|
|
333
|
+
case 'success':
|
|
334
|
+
coloredMessage = green(entry.message);
|
|
335
|
+
break;
|
|
336
|
+
case 'attention':
|
|
337
|
+
coloredMessage = magenta(entry.message);
|
|
338
|
+
break;
|
|
339
|
+
default:
|
|
340
|
+
coloredMessage = entry.message;
|
|
341
|
+
}
|
|
342
|
+
parts.push(coloredMessage);
|
|
343
|
+
return parts.join(' ');
|
|
344
|
+
}
|
|
345
|
+
/**
|
|
346
|
+
* Format a log entry as a plain text line (for file output)
|
|
347
|
+
* Strips ANSI codes and formats consistently
|
|
348
|
+
*/
|
|
349
|
+
static formatAsText(entry) {
|
|
350
|
+
// For raw entries, just return the message as-is (it's already formatted)
|
|
351
|
+
if (entry.level === 'raw') {
|
|
352
|
+
// Strip ANSI codes from the message
|
|
353
|
+
return entry.message.replace(/\x1b\[[0-9;]*m/g, '');
|
|
354
|
+
}
|
|
355
|
+
const parts = [];
|
|
356
|
+
// Timestamp
|
|
357
|
+
const date = new Date(entry.timestamp);
|
|
358
|
+
const day = date.getDate().toString().padStart(2, '0');
|
|
359
|
+
const month = (date.getMonth() + 1).toString().padStart(2, '0');
|
|
360
|
+
const year = date.getFullYear();
|
|
361
|
+
const hours = date.getHours().toString().padStart(2, '0');
|
|
362
|
+
const minutes = date.getMinutes().toString().padStart(2, '0');
|
|
363
|
+
const seconds = date.getSeconds().toString().padStart(2, '0');
|
|
364
|
+
parts.push(`[${day}.${month}.${year}, ${hours}:${minutes}:${seconds}]`);
|
|
365
|
+
// Prefix
|
|
366
|
+
if (entry.prefix) {
|
|
367
|
+
parts.push(`[${entry.prefix}]`);
|
|
368
|
+
}
|
|
369
|
+
// Suffix
|
|
370
|
+
if (entry.suffix) {
|
|
371
|
+
parts.push(`[${entry.suffix}]`);
|
|
372
|
+
}
|
|
373
|
+
// Level prefix
|
|
374
|
+
const levelPrefixes = {
|
|
375
|
+
error: ' ERROR ',
|
|
376
|
+
warn: ' WARN ',
|
|
377
|
+
success: ' SUCCESS ',
|
|
378
|
+
attention: ' ATTENTION ',
|
|
379
|
+
trace: ' TRACE ',
|
|
380
|
+
debug: '',
|
|
381
|
+
log: '',
|
|
382
|
+
raw: '',
|
|
383
|
+
};
|
|
384
|
+
const levelPrefix = levelPrefixes[entry.level];
|
|
385
|
+
if (levelPrefix) {
|
|
386
|
+
parts.push(levelPrefix);
|
|
387
|
+
}
|
|
388
|
+
// Message (strip ANSI codes)
|
|
389
|
+
const cleanMessage = entry.message.replace(/\x1b\[[0-9;]*m/g, '');
|
|
390
|
+
parts.push(cleanMessage);
|
|
391
|
+
return parts.join(' ');
|
|
392
|
+
}
|
|
393
|
+
/**
|
|
394
|
+
* Parse a JSON log line from a child process
|
|
395
|
+
*/
|
|
396
|
+
static parseChildLog(line) {
|
|
397
|
+
try {
|
|
398
|
+
const parsed = JSON.parse(line);
|
|
399
|
+
if (parsed.type === 'log' && parsed.entry) {
|
|
400
|
+
return parsed.entry;
|
|
195
401
|
}
|
|
196
402
|
}
|
|
403
|
+
catch {
|
|
404
|
+
// Not a valid JSON log line
|
|
405
|
+
}
|
|
406
|
+
return null;
|
|
197
407
|
}
|
|
198
408
|
}
|
|
199
409
|
//# sourceMappingURL=index.js.map
|
package/dist/logger/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/logger/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/logger/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Log levels supported by the logging system
|
|
3
|
+
*/
|
|
4
|
+
export type LogLevel = 'log' | 'warn' | 'error' | 'debug' | 'trace' | 'success' | 'attention' | 'raw';
|
|
5
|
+
/**
|
|
6
|
+
* Target type for routing logs to specific destinations
|
|
7
|
+
*/
|
|
8
|
+
export type LogTargetType = 'camera' | 'plugin' | 'system';
|
|
9
|
+
/**
|
|
10
|
+
* Source of the log entry
|
|
11
|
+
*/
|
|
12
|
+
export type LogSource = 'main' | 'child';
|
|
13
|
+
/**
|
|
14
|
+
* Structured log entry that flows through the logging system
|
|
15
|
+
*/
|
|
16
|
+
export interface LogEntry {
|
|
17
|
+
/** Unix timestamp in milliseconds */
|
|
18
|
+
timestamp: number;
|
|
19
|
+
/** Log level */
|
|
20
|
+
level: LogLevel;
|
|
21
|
+
/** Primary prefix (e.g., component name) */
|
|
22
|
+
prefix: string;
|
|
23
|
+
/** Optional secondary prefix (e.g., camera name) */
|
|
24
|
+
suffix?: string;
|
|
25
|
+
/** The formatted log message */
|
|
26
|
+
message: string;
|
|
27
|
+
/** Target ID for routing (camera ID, plugin ID) */
|
|
28
|
+
targetId?: string;
|
|
29
|
+
/** Target type for routing */
|
|
30
|
+
targetType?: LogTargetType;
|
|
31
|
+
/** Plugin ID for routing camera logs to plugin log files */
|
|
32
|
+
pluginId?: string;
|
|
33
|
+
/** Whether this log came from main process or child */
|
|
34
|
+
source: LogSource;
|
|
35
|
+
/** Process ID that generated the log */
|
|
36
|
+
processId?: number;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Message format for child process log communication
|
|
40
|
+
*/
|
|
41
|
+
export interface ChildLogMessage {
|
|
42
|
+
type: 'log';
|
|
43
|
+
entry: LogEntry;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Options for creating a logger instance
|
|
47
|
+
*/
|
|
48
|
+
export interface LoggerOptions {
|
|
49
|
+
/** Primary prefix shown in logs */
|
|
50
|
+
prefix?: string;
|
|
51
|
+
/** Secondary prefix/suffix shown in logs */
|
|
52
|
+
suffix?: string;
|
|
53
|
+
/** Disable the prefix in output */
|
|
54
|
+
disablePrefix?: boolean;
|
|
55
|
+
/** Disable timestamps in output */
|
|
56
|
+
disableTimestamps?: boolean;
|
|
57
|
+
/** Enable debug level logging */
|
|
58
|
+
debugEnabled?: boolean;
|
|
59
|
+
/** Enable trace level logging */
|
|
60
|
+
traceEnabled?: boolean;
|
|
61
|
+
/** Target ID for log routing (camera ID, plugin ID) */
|
|
62
|
+
targetId?: string;
|
|
63
|
+
/** Target type for log routing */
|
|
64
|
+
targetType?: LogTargetType;
|
|
65
|
+
/** Plugin ID for routing camera logs to plugin log files */
|
|
66
|
+
pluginId?: string;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Transport interface for log destinations
|
|
70
|
+
*/
|
|
71
|
+
export interface LogTransport {
|
|
72
|
+
/** Write a log entry to this transport */
|
|
73
|
+
write(entry: LogEntry): void;
|
|
74
|
+
/** Flush any buffered entries */
|
|
75
|
+
flush?(): Promise<void>;
|
|
76
|
+
/** Close the transport and release resources */
|
|
77
|
+
close?(): Promise<void>;
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Callback type for log event listeners
|
|
81
|
+
*/
|
|
82
|
+
export type LogEventCallback = (entry: LogEntry) => void;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/logger/types.ts"],"names":[],"mappings":""}
|
package/dist/net/index.d.ts
CHANGED
|
@@ -1,6 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
export
|
|
3
|
-
constructor();
|
|
4
|
-
}
|
|
5
|
-
export declare function readLength(readable: Readable, length: number): Promise<Buffer>;
|
|
6
|
-
export declare function isPortInUse(port: number): Promise<boolean>;
|
|
1
|
+
export * from './monitor.js';
|
|
2
|
+
export * from './utils.js';
|