@camera.ui/common 0.0.42 → 0.0.46
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 +80 -33
- package/dist/logger/index.js +312 -106
- 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,142 +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
|
-
console.log(...message);
|
|
94
|
-
this.logToStream(message);
|
|
108
|
+
this.writeLog('trace', args);
|
|
95
109
|
}
|
|
96
110
|
}
|
|
111
|
+
/**
|
|
112
|
+
* Log raw content without any formatting (pass-through mode).
|
|
113
|
+
* Used for forwarding already-formatted output from child processes.
|
|
114
|
+
*/
|
|
97
115
|
raw(...args) {
|
|
98
|
-
|
|
99
|
-
|
|
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)}]`);
|
|
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;
|
|
100
218
|
}
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
219
|
+
/**
|
|
220
|
+
* Apply color to message based on log level
|
|
221
|
+
*/
|
|
222
|
+
colorizeMessage(level, message) {
|
|
104
223
|
switch (level) {
|
|
105
224
|
case 'debug':
|
|
106
|
-
|
|
107
|
-
|
|
225
|
+
case 'trace':
|
|
226
|
+
return darkGray(message);
|
|
108
227
|
case 'warn':
|
|
109
|
-
|
|
110
|
-
break;
|
|
228
|
+
return yellow(message);
|
|
111
229
|
case 'error':
|
|
112
|
-
|
|
113
|
-
break;
|
|
230
|
+
return red(message);
|
|
114
231
|
case 'success':
|
|
115
|
-
|
|
116
|
-
break;
|
|
117
|
-
case 'trace':
|
|
118
|
-
message = [...this.loggerPrefix, Logger.LEVEL_PREFIXES.trace, ...formattedArgs.map((x) => darkGray(x))];
|
|
119
|
-
break;
|
|
232
|
+
return green(message);
|
|
120
233
|
case 'attention':
|
|
121
|
-
|
|
122
|
-
break;
|
|
234
|
+
return magenta(message);
|
|
123
235
|
default:
|
|
124
|
-
message
|
|
125
|
-
}
|
|
126
|
-
if (this.loggerId) {
|
|
127
|
-
message.push(Logger.LOGGER_END);
|
|
128
|
-
}
|
|
129
|
-
return message;
|
|
130
|
-
}
|
|
131
|
-
extractLoggerIdAndContent(logLine) {
|
|
132
|
-
const startIndex = logLine.indexOf(Logger.LOGGER_ID_PREFIX);
|
|
133
|
-
if (startIndex === -1) {
|
|
134
|
-
return { loggerId: null, content: logLine };
|
|
135
|
-
}
|
|
136
|
-
const endIndex = logLine.indexOf(Logger.LOGGER_ID_SUFFIX, startIndex + Logger.LOGGER_ID_PREFIX.length);
|
|
137
|
-
if (endIndex === -1) {
|
|
138
|
-
return { loggerId: null, content: logLine };
|
|
236
|
+
return message;
|
|
139
237
|
}
|
|
140
|
-
const loggerId = logLine.slice(startIndex + Logger.LOGGER_ID_PREFIX.length, endIndex);
|
|
141
|
-
const content = logLine.slice(endIndex + Logger.LOGGER_ID_SUFFIX.length);
|
|
142
|
-
this._lastLoggerId = loggerId;
|
|
143
|
-
return { loggerId, content };
|
|
144
238
|
}
|
|
145
|
-
|
|
239
|
+
/**
|
|
240
|
+
* Format arguments for logging
|
|
241
|
+
*/
|
|
242
|
+
formatArgs(args) {
|
|
146
243
|
const inspectOptions = {
|
|
147
|
-
depth: 2,
|
|
148
|
-
colors:
|
|
149
|
-
compact: 3,
|
|
150
|
-
breakLength: 80,
|
|
151
|
-
maxArrayLength: 100,
|
|
152
|
-
maxStringLength: 100,
|
|
153
|
-
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,
|
|
154
251
|
};
|
|
155
252
|
return args.map((arg) => {
|
|
156
253
|
if (arg instanceof Error) {
|
|
@@ -165,13 +262,9 @@ export class Logger {
|
|
|
165
262
|
return inspect(arg, { ...inspectOptions, depth: 0 });
|
|
166
263
|
}
|
|
167
264
|
else if (Buffer.isBuffer(arg) || arg instanceof Uint8Array) {
|
|
168
|
-
return inspect(arg, {
|
|
169
|
-
...inspectOptions,
|
|
170
|
-
compact: 2,
|
|
171
|
-
maxArrayLength: 100,
|
|
172
|
-
});
|
|
265
|
+
return inspect(arg, { ...inspectOptions, compact: 2, maxArrayLength: 100 });
|
|
173
266
|
}
|
|
174
|
-
else if (typeof arg === 'object') {
|
|
267
|
+
else if (typeof arg === 'object' && arg !== null) {
|
|
175
268
|
return inspect(arg, inspectOptions);
|
|
176
269
|
}
|
|
177
270
|
else {
|
|
@@ -179,8 +272,11 @@ export class Logger {
|
|
|
179
272
|
}
|
|
180
273
|
});
|
|
181
274
|
}
|
|
182
|
-
|
|
183
|
-
|
|
275
|
+
/**
|
|
276
|
+
* Format timestamp for display
|
|
277
|
+
*/
|
|
278
|
+
formatTimestamp(timestamp) {
|
|
279
|
+
const date = new Date(timestamp);
|
|
184
280
|
const day = date.getDate().toString().padStart(2, '0');
|
|
185
281
|
const month = (date.getMonth() + 1).toString().padStart(2, '0');
|
|
186
282
|
const year = date.getFullYear();
|
|
@@ -189,15 +285,125 @@ export class Logger {
|
|
|
189
285
|
const seconds = date.getSeconds().toString().padStart(2, '0');
|
|
190
286
|
return `${day}.${month}.${year}, ${hours}:${minutes}:${seconds}`;
|
|
191
287
|
}
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
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;
|
|
199
401
|
}
|
|
200
402
|
}
|
|
403
|
+
catch {
|
|
404
|
+
// Not a valid JSON log line
|
|
405
|
+
}
|
|
406
|
+
return null;
|
|
201
407
|
}
|
|
202
408
|
}
|
|
203
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';
|