@onesub/server 0.23.3 → 0.24.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/dist/__tests__/log-format.test.d.ts +15 -0
- package/dist/__tests__/log-format.test.d.ts.map +1 -0
- package/dist/__tests__/logger.test.d.ts +13 -6
- package/dist/__tests__/logger.test.d.ts.map +1 -1
- package/dist/index.cjs +119 -9
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +119 -9
- package/dist/index.js.map +1 -1
- package/dist/log-format.d.ts +68 -0
- package/dist/log-format.d.ts.map +1 -0
- package/dist/logger.d.ts.map +1 -1
- package/package.json +2 -2
package/dist/index.js
CHANGED
|
@@ -163,21 +163,131 @@ at+qIxUCMG1mihDK1A3UT82NQz60imOlM27jbdoXt2QfyFMm+YhidDkLF1vLUagM
|
|
|
163
163
|
-----END CERTIFICATE-----`;
|
|
164
164
|
var APPLE_ROOT_CA_PEMS = [APPLE_ROOT_CA_G3_PEM];
|
|
165
165
|
|
|
166
|
+
// src/log-format.ts
|
|
167
|
+
var LOG_CONTINUATION = "\n | ";
|
|
168
|
+
var BARE_VALUE = /^[\w.:/@+-]+$/;
|
|
169
|
+
var LINE_TERMINATORS = /\r\n|\r|\n|\u2028|\u2029/;
|
|
170
|
+
var MAX_CAUSE_DEPTH = 2;
|
|
171
|
+
var MAX_AGGREGATE_ERRORS = 3;
|
|
172
|
+
function esc(value) {
|
|
173
|
+
return value.replace(/\\/g, "\\\\").replace(/\r/g, "\\r").replace(/\n/g, "\\n").replace(/\u2028/g, "\\u2028").replace(/\u2029/g, "\\u2029");
|
|
174
|
+
}
|
|
175
|
+
function escQuoted(value) {
|
|
176
|
+
return value.replace(/\\/g, "\\\\").replace(/"/g, '\\"').replace(/\r/g, "\\r").replace(/\n/g, "\\n").replace(/\u2028/g, "\\u2028").replace(/\u2029/g, "\\u2029");
|
|
177
|
+
}
|
|
178
|
+
function renderValue(value) {
|
|
179
|
+
if (value === void 0) return void 0;
|
|
180
|
+
if (value === null) return "null";
|
|
181
|
+
switch (typeof value) {
|
|
182
|
+
case "number":
|
|
183
|
+
case "boolean":
|
|
184
|
+
return String(value);
|
|
185
|
+
case "bigint":
|
|
186
|
+
return `${value}n`;
|
|
187
|
+
case "string":
|
|
188
|
+
return BARE_VALUE.test(value) ? value : `"${escQuoted(value)}"`;
|
|
189
|
+
case "object":
|
|
190
|
+
try {
|
|
191
|
+
return `"${escQuoted(JSON.stringify(value) ?? "null")}"`;
|
|
192
|
+
} catch {
|
|
193
|
+
return '"[unserialisable]"';
|
|
194
|
+
}
|
|
195
|
+
default:
|
|
196
|
+
try {
|
|
197
|
+
return `"${escQuoted(String(value))}"`;
|
|
198
|
+
} catch {
|
|
199
|
+
return '"[unrenderable]"';
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
function renderFields(fields) {
|
|
204
|
+
const pairs = [];
|
|
205
|
+
let err2;
|
|
206
|
+
for (const key of Object.keys(fields)) {
|
|
207
|
+
let value;
|
|
208
|
+
try {
|
|
209
|
+
value = fields[key];
|
|
210
|
+
} catch {
|
|
211
|
+
pairs.push(`${esc(key)}="[threw]"`);
|
|
212
|
+
continue;
|
|
213
|
+
}
|
|
214
|
+
if (key === "err") {
|
|
215
|
+
err2 = value;
|
|
216
|
+
continue;
|
|
217
|
+
}
|
|
218
|
+
const rendered = renderValue(value);
|
|
219
|
+
if (rendered !== void 0) pairs.push(`${esc(key)}=${rendered}`);
|
|
220
|
+
}
|
|
221
|
+
return { pairs, err: err2 };
|
|
222
|
+
}
|
|
223
|
+
function renderStack(stack) {
|
|
224
|
+
if (!stack) return "";
|
|
225
|
+
const lines = stack.split(LINE_TERMINATORS);
|
|
226
|
+
const firstFrame = lines.findIndex((line) => /^\s+at\s/.test(line));
|
|
227
|
+
const frames = firstFrame === -1 ? [] : lines.slice(firstFrame);
|
|
228
|
+
return frames.map((line) => LOG_CONTINUATION + esc(line.trim())).join("");
|
|
229
|
+
}
|
|
230
|
+
function renderError(value, depth = 0) {
|
|
231
|
+
if (!(value instanceof Error)) {
|
|
232
|
+
const rendered = renderValue(typeof value === "string" ? value : String(value));
|
|
233
|
+
return { pairs: [`err.msg=${rendered ?? '"[unrenderable]"'}`], lines: "" };
|
|
234
|
+
}
|
|
235
|
+
const pairs = [`err=${renderValue(value.name) ?? "Error"}`];
|
|
236
|
+
const message = renderValue(value.message);
|
|
237
|
+
if (message !== void 0) pairs.push(`err.msg=${message}`);
|
|
238
|
+
let lines = renderStack(value.stack);
|
|
239
|
+
if (depth < MAX_CAUSE_DEPTH && value.cause !== void 0 && value.cause !== null) {
|
|
240
|
+
const cause = renderError(value.cause, depth + 1);
|
|
241
|
+
lines += LOG_CONTINUATION + `cause: ${cause.pairs.join(" ")}` + cause.lines;
|
|
242
|
+
}
|
|
243
|
+
if (value instanceof AggregateError && Array.isArray(value.errors)) {
|
|
244
|
+
for (const inner of value.errors.slice(0, MAX_AGGREGATE_ERRORS)) {
|
|
245
|
+
const rendered = renderError(inner, MAX_CAUSE_DEPTH);
|
|
246
|
+
lines += LOG_CONTINUATION + `also: ${rendered.pairs.join(" ")}`;
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
return { pairs, lines };
|
|
250
|
+
}
|
|
251
|
+
function formatLogArgs(args) {
|
|
252
|
+
const words = [];
|
|
253
|
+
const pairs = [];
|
|
254
|
+
let errorLines = "";
|
|
255
|
+
for (const arg of args) {
|
|
256
|
+
if (typeof arg === "string") {
|
|
257
|
+
words.push(esc(arg));
|
|
258
|
+
continue;
|
|
259
|
+
}
|
|
260
|
+
if (arg instanceof Error) {
|
|
261
|
+
const rendered2 = renderError(arg);
|
|
262
|
+
pairs.push(...rendered2.pairs);
|
|
263
|
+
errorLines += rendered2.lines;
|
|
264
|
+
continue;
|
|
265
|
+
}
|
|
266
|
+
if (arg !== null && typeof arg === "object" && !Array.isArray(arg)) {
|
|
267
|
+
const { pairs: fieldPairs, err: err2 } = renderFields(arg);
|
|
268
|
+
pairs.push(...fieldPairs);
|
|
269
|
+
if (err2 !== void 0) {
|
|
270
|
+
const rendered2 = renderError(err2);
|
|
271
|
+
pairs.push(...rendered2.pairs);
|
|
272
|
+
errorLines += rendered2.lines;
|
|
273
|
+
}
|
|
274
|
+
continue;
|
|
275
|
+
}
|
|
276
|
+
const rendered = renderValue(arg);
|
|
277
|
+
if (rendered !== void 0) words.push(rendered);
|
|
278
|
+
}
|
|
279
|
+
return [words.join(" "), ...pairs].filter((part) => part !== "").join(" ") + errorLines;
|
|
280
|
+
}
|
|
281
|
+
|
|
166
282
|
// src/logger.ts
|
|
167
283
|
var current = console;
|
|
168
284
|
function setLogger(logger) {
|
|
169
285
|
if (logger) current = logger;
|
|
170
286
|
}
|
|
171
|
-
function escapeLineBreaks(value) {
|
|
172
|
-
return value.replace(/\\/g, "\\\\").replace(/\r/g, "\\r").replace(/\n/g, "\\n").replace(/\u2028/g, "\\u2028").replace(/\u2029/g, "\\u2029");
|
|
173
|
-
}
|
|
174
|
-
function scrub(args) {
|
|
175
|
-
return args.map((arg) => typeof arg === "string" ? escapeLineBreaks(arg) : arg);
|
|
176
|
-
}
|
|
177
287
|
var log = {
|
|
178
|
-
info: (...args) => current.info(
|
|
179
|
-
warn: (...args) => current.warn(
|
|
180
|
-
error: (...args) => current.error(
|
|
288
|
+
info: (...args) => current.info(formatLogArgs(args)),
|
|
289
|
+
warn: (...args) => current.warn(formatLogArgs(args)),
|
|
290
|
+
error: (...args) => current.error(formatLogArgs(args))
|
|
181
291
|
};
|
|
182
292
|
|
|
183
293
|
// src/http.ts
|