@ooneex/logger 0.13.1 → 0.14.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/index.js CHANGED
@@ -1,70 +1,5 @@
1
1
  // @bun
2
- var __legacyDecorateClassTS = function(decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
5
- r = Reflect.decorate(decorators, target, key, desc);
6
- else
7
- for (var i = decorators.length - 1;i >= 0; i--)
8
- if (d = decorators[i])
9
- r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
10
- return c > 3 && r && Object.defineProperty(target, key, r), r;
11
- };
12
- var __legacyMetadataTS = (k, v) => {
13
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
14
- return Reflect.metadata(k, v);
15
- };
16
-
17
- // src/decorators.ts
18
- import { container, EContainerScope } from "@ooneex/container";
19
- var decorator = {
20
- logger: (scope = EContainerScope.Singleton) => {
21
- return (target) => {
22
- container.add(target, scope);
23
- };
24
- }
25
- };
26
- // src/LogsDatabase.ts
27
- import { DatabaseException } from "@ooneex/database";
28
-
29
- class LogsDatabase {
30
- client;
31
- options;
32
- constructor(options) {
33
- const fileName = options?.filename || Bun.env.LOGS_DATABASE_PATH || "";
34
- if (!fileName) {
35
- throw new DatabaseException("No database filename provided. Please set LOGS_DATABASE_PATH environment variable or provide a filename in the options.");
36
- }
37
- this.options = {
38
- filename: fileName,
39
- readonly: false,
40
- create: true,
41
- readwrite: true,
42
- strict: true,
43
- safeIntegers: false,
44
- ...options,
45
- adapter: "sqlite"
46
- };
47
- }
48
- getClient() {
49
- if (!this.client) {
50
- try {
51
- this.client = new Bun.SQL(this.options);
52
- } catch (error) {
53
- throw new DatabaseException(error.message);
54
- }
55
- }
56
- return this.client;
57
- }
58
- async open() {
59
- this.getClient();
60
- }
61
- async createTable() {
62
- const sql = this.getClient();
63
- try {
64
- await sql`PRAGMA foreign_keys = ON`;
65
- await sql`PRAGMA journal_mode = WAL`;
66
- await sql`PRAGMA integrity_check`;
67
- await sql`
2
+ var Z=function(y,O,T,S){var I=arguments.length,R=I<3?O:S===null?S=Object.getOwnPropertyDescriptor(O,T):S,F;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")R=Reflect.decorate(y,O,T,S);else for(var H=y.length-1;H>=0;H--)if(F=y[H])R=(I<3?F(R):I>3?F(O,T,R):F(O,T))||R;return I>3&&R&&Object.defineProperty(O,T,R),R};var f=(y,O)=>{if(typeof Reflect==="object"&&typeof Reflect.metadata==="function")return Reflect.metadata(y,O)};import{container as z,EContainerScope as m}from"@ooneex/container";var $={logger:(y=m.Singleton)=>{return(O)=>{z.add(O,y)}}};import{DatabaseException as K}from"@ooneex/database";class _{client;options;constructor(y){let O=y?.filename||Bun.env.LOGS_DATABASE_PATH||"";if(!O)throw new K("No database filename provided. Please set LOGS_DATABASE_PATH environment variable or provide a filename in the options.");this.options={filename:O,readonly:!1,create:!0,readwrite:!0,strict:!0,safeIntegers:!1,...y,adapter:"sqlite"}}getClient(){if(!this.client)try{this.client=new Bun.SQL(this.options)}catch(y){throw new K(y.message)}return this.client}async open(){this.getClient()}async createTable(){let y=this.getClient();try{await y`PRAGMA foreign_keys = ON`,await y`PRAGMA journal_mode = WAL`,await y`PRAGMA integrity_check`,await y`
68
3
  CREATE TABLE IF NOT EXISTS logs (
69
4
  id TEXT PRIMARY KEY,
70
5
  level TEXT NOT NULL,
@@ -92,506 +27,34 @@ class LogsDatabase {
92
27
  domain TEXT,
93
28
  hostname TEXT
94
29
  )
95
- `;
96
- await sql`CREATE INDEX IF NOT EXISTS idx_logs_level ON logs(level)`;
97
- await sql`CREATE INDEX IF NOT EXISTS idx_logs_user_id ON logs(userId)`;
98
- } catch (_e) {
99
- throw new DatabaseException("Failed to open log database connection");
100
- }
101
- }
102
- async dropTable() {
103
- const sql = this.getClient();
104
- try {
105
- await sql`DROP TABLE IF EXISTS logs`;
106
- } catch (_e) {
107
- throw new DatabaseException("Failed to drop log tables");
108
- }
109
- }
110
- async close() {
111
- try {
112
- await this.client?.close();
113
- this.client = undefined;
114
- } catch (_e) {
115
- throw new DatabaseException("Failed to close log database connection");
116
- }
117
- }
118
- async drop() {}
119
- }
120
- // src/LogsEntity.ts
121
- class LogsEntity {
122
- id;
123
- level;
124
- message;
125
- date = new Date;
126
- userId;
127
- email;
128
- lastName;
129
- firstName;
130
- status;
131
- exceptionName;
132
- stackTrace;
133
- ip;
134
- method;
135
- path;
136
- userAgent;
137
- referer;
138
- params;
139
- payload;
140
- queries;
141
- }
142
- // src/LogsRepository.ts
143
- import { deserialize, serialize } from "bun:jsc";
144
- import { random } from "@ooneex/utils";
145
- var {sql } = globalThis.Bun;
146
-
147
- class LogsRepository {
148
- db;
149
- constructor(db) {
150
- this.db = db;
151
- }
152
- async create(log) {
153
- const client = this.db.getClient();
154
- const data = {
155
- ...log,
156
- id: random.nanoid(15),
157
- date: log.date.toISOString(),
158
- stackTrace: log.stackTrace ? serialize(log.stackTrace) : null,
159
- params: log.params ? serialize(log.params) : null,
160
- payload: log.payload ? serialize(log.payload) : null,
161
- queries: log.queries ? serialize(log.queries) : null
162
- };
163
- const [newLog] = await client`
164
- INSERT INTO logs ${sql(data)}
30
+ `,await y`CREATE INDEX IF NOT EXISTS idx_logs_level ON logs(level)`,await y`CREATE INDEX IF NOT EXISTS idx_logs_user_id ON logs(userId)`}catch(O){throw new K("Failed to open log database connection")}}async dropTable(){let y=this.getClient();try{await y`DROP TABLE IF EXISTS logs`}catch(O){throw new K("Failed to drop log tables")}}async close(){try{await this.client?.close(),this.client=void 0}catch(y){throw new K("Failed to close log database connection")}}async drop(){}}class j{id;level;message;date=new Date;userId;email;lastName;firstName;status;exceptionName;stackTrace;ip;method;path;userAgent;referer;params;payload;queries}import{deserialize as U,serialize as V}from"bun:jsc";import{random as p}from"@ooneex/utils";var{sql:A}=globalThis.Bun;class b{db;constructor(y){this.db=y}async create(y){let O=this.db.getClient(),T={...y,id:p.nanoid(15),date:y.date.toISOString(),stackTrace:y.stackTrace?V(y.stackTrace):null,params:y.params?V(y.params):null,payload:y.payload?V(y.payload):null,queries:y.queries?V(y.queries):null},[S]=await O`
31
+ INSERT INTO logs ${A(T)}
165
32
  RETURNING *
166
- `;
167
- await this.db.close();
168
- return newLog;
169
- }
170
- async find(id) {
171
- const client = this.db.getClient();
172
- const [log] = await client`
33
+ `;return await this.db.close(),S}async find(y){let O=this.db.getClient(),[T]=await O`
173
34
  SELECT * FROM logs
174
- WHERE id = ${id}
35
+ WHERE id = ${y}
175
36
  LIMIT 1
176
- `;
177
- if (!log) {
178
- await this.db.close();
179
- return null;
180
- }
181
- const result = {
182
- ...log,
183
- date: new Date(log.date),
184
- stackTrace: log.stackTrace ? deserialize(log.stackTrace) : undefined,
185
- params: log.params ? deserialize(log.params) : undefined,
186
- payload: log.payload ? deserialize(log.payload) : undefined,
187
- queries: log.queries ? deserialize(log.queries) : undefined
188
- };
189
- await this.db.close();
190
- return result;
191
- }
192
- async findBy(criteria) {
193
- const client = this.db.getClient();
194
- const whereConditions = [];
195
- if (criteria.level !== undefined) {
196
- whereConditions.push(sql`level = ${criteria.level}`);
197
- }
198
- if (criteria.userId !== undefined) {
199
- whereConditions.push(sql`userId = ${criteria.userId}`);
200
- }
201
- if (criteria.email !== undefined) {
202
- whereConditions.push(sql`email = ${criteria.email}`);
203
- }
204
- if (criteria.lastName !== undefined) {
205
- whereConditions.push(sql`lastName = ${criteria.lastName}`);
206
- }
207
- if (criteria.firstName !== undefined) {
208
- whereConditions.push(sql`firstName = ${criteria.firstName}`);
209
- }
210
- if (criteria.status !== undefined) {
211
- whereConditions.push(sql`status = ${criteria.status}`);
212
- }
213
- if (criteria.exceptionName !== undefined) {
214
- whereConditions.push(sql`exceptionName = ${criteria.exceptionName}`);
215
- }
216
- if (criteria.method !== undefined) {
217
- whereConditions.push(sql`method = ${criteria.method}`);
218
- }
219
- if (criteria.path !== undefined) {
220
- whereConditions.push(sql`path = ${criteria.path}`);
221
- }
222
- const limit = criteria.limit || 100;
223
- const page = criteria.page || 1;
224
- const offset = (page - 1) * limit;
225
- if (whereConditions.length === 0) {
226
- const [countResult2] = await client`SELECT COUNT(*) as total FROM logs`;
227
- const logs2 = await client`
37
+ `;if(!T)return await this.db.close(),null;let S={...T,date:new Date(T.date),stackTrace:T.stackTrace?U(T.stackTrace):void 0,params:T.params?U(T.params):void 0,payload:T.payload?U(T.payload):void 0,queries:T.queries?U(T.queries):void 0};return await this.db.close(),S}async findBy(y){let O=this.db.getClient(),T=[];if(y.level!==void 0)T.push(A`level = ${y.level}`);if(y.userId!==void 0)T.push(A`userId = ${y.userId}`);if(y.email!==void 0)T.push(A`email = ${y.email}`);if(y.lastName!==void 0)T.push(A`lastName = ${y.lastName}`);if(y.firstName!==void 0)T.push(A`firstName = ${y.firstName}`);if(y.status!==void 0)T.push(A`status = ${y.status}`);if(y.exceptionName!==void 0)T.push(A`exceptionName = ${y.exceptionName}`);if(y.method!==void 0)T.push(A`method = ${y.method}`);if(y.path!==void 0)T.push(A`path = ${y.path}`);let S=y.limit||100,I=y.page||1,R=(I-1)*S;if(T.length===0){let[B]=await O`SELECT COUNT(*) as total FROM logs`,W=(await O`
228
38
  SELECT * FROM logs
229
39
  ORDER BY date DESC
230
- LIMIT ${limit}
231
- OFFSET ${offset}
232
- `;
233
- const transformedLogs2 = logs2.map((log) => ({
234
- ...log,
235
- date: new Date(log.date),
236
- stackTrace: log.stackTrace ? deserialize(log.stackTrace) : undefined,
237
- params: log.params ? deserialize(log.params) : undefined,
238
- payload: log.payload ? deserialize(log.payload) : undefined,
239
- queries: log.queries ? deserialize(log.queries) : undefined
240
- }));
241
- const total2 = countResult2.total;
242
- const totalPages2 = Math.ceil(total2 / limit);
243
- const result2 = {
244
- logs: transformedLogs2,
245
- total: total2,
246
- page,
247
- limit,
248
- totalPages: totalPages2
249
- };
250
- await this.db.close();
251
- return result2;
252
- }
253
- const whereClause = whereConditions.reduce((acc, condition, index) => {
254
- if (index === 0) {
255
- return condition;
256
- }
257
- return sql`${acc} AND ${condition}`;
258
- });
259
- const [countResult] = await client`
40
+ LIMIT ${S}
41
+ OFFSET ${R}
42
+ `).map((P)=>({...P,date:new Date(P.date),stackTrace:P.stackTrace?U(P.stackTrace):void 0,params:P.params?U(P.params):void 0,payload:P.payload?U(P.payload):void 0,queries:P.queries?U(P.queries):void 0})),X=B.total,u=Math.ceil(X/S),v={logs:W,total:X,page:I,limit:S,totalPages:u};return await this.db.close(),v}let F=T.reduce((B,Q,W)=>{if(W===0)return Q;return A`${B} AND ${Q}`}),[H]=await O`
260
43
  SELECT COUNT(*) as total
261
44
  FROM logs
262
- WHERE ${whereClause}
263
- `;
264
- const logs = await client`
45
+ WHERE ${F}
46
+ `,h=(await O`
265
47
  SELECT * FROM logs
266
- WHERE ${whereClause}
48
+ WHERE ${F}
267
49
  ORDER BY date DESC
268
- LIMIT ${limit}
269
- OFFSET ${offset}
270
- `;
271
- const transformedLogs = logs.map((log) => ({
272
- ...log,
273
- date: new Date(log.date),
274
- params: log.params ? deserialize(log.params) : undefined,
275
- payload: log.payload ? deserialize(log.payload) : undefined,
276
- queries: log.queries ? deserialize(log.queries) : undefined
277
- }));
278
- const total = countResult.total;
279
- const totalPages = Math.ceil(total / limit);
280
- const result = {
281
- logs: transformedLogs,
282
- total,
283
- page,
284
- limit,
285
- totalPages
286
- };
287
- await this.db.close();
288
- return result;
289
- }
290
- }
291
- // src/SqliteLogger.ts
292
- class SqliteLogger {
293
- db;
294
- repository;
295
- constructor() {
296
- this.db = new LogsDatabase;
297
- this.repository = new LogsRepository(this.db);
298
- }
299
- async init() {
300
- await this.db.open();
301
- await this.db.createTable();
302
- }
303
- error(message, data) {
304
- if (typeof message === "string") {
305
- this.writeLog("ERROR", {
306
- message,
307
- ...data && { data }
308
- });
309
- } else {
310
- this.writeLog("ERROR", {
311
- exception: message
312
- });
313
- }
314
- }
315
- warn(message, data) {
316
- this.writeLog("WARN", {
317
- message,
318
- ...data && { data }
319
- });
320
- }
321
- info(message, data) {
322
- this.writeLog("INFO", {
323
- message,
324
- ...data && { data }
325
- });
326
- }
327
- debug(message, data) {
328
- this.writeLog("DEBUG", {
329
- message,
330
- ...data && { data }
331
- });
332
- }
333
- log(message, data) {
334
- this.writeLog("LOG", {
335
- message,
336
- ...data && { data }
337
- });
338
- }
339
- success(message, data) {
340
- this.writeLog("SUCCESS", {
341
- message,
342
- ...data && { data }
343
- });
344
- }
345
- writeLog(level, config) {
346
- const { message, data, exception } = config || {};
347
- const logEntry = new LogsEntity;
348
- logEntry.level = level;
349
- if (message)
350
- logEntry.message = message;
351
- else if (exception?.message)
352
- logEntry.message = exception.message;
353
- logEntry.date = exception?.date || new Date;
354
- if (data?.userId !== undefined)
355
- logEntry.userId = data.userId;
356
- if (data?.email !== undefined)
357
- logEntry.email = data.email;
358
- if (data?.lastName !== undefined)
359
- logEntry.lastName = data.lastName;
360
- if (data?.firstName !== undefined)
361
- logEntry.firstName = data.firstName;
362
- if (exception?.status !== undefined) {
363
- logEntry.status = exception.status;
364
- } else if (data?.status !== undefined) {
365
- logEntry.status = data.status;
366
- }
367
- if (exception?.name !== undefined)
368
- logEntry.exceptionName = exception.name;
369
- const stackTrace = exception?.stackToJson();
370
- if (stackTrace !== undefined && stackTrace !== null)
371
- logEntry.stackTrace = stackTrace;
372
- if (data?.ip !== undefined)
373
- logEntry.ip = data.ip;
374
- if (data?.method !== undefined)
375
- logEntry.method = data.method;
376
- if (data?.path !== undefined)
377
- logEntry.path = data.path;
378
- if (data?.userAgent !== undefined)
379
- logEntry.userAgent = data.userAgent;
380
- if (data?.referer !== undefined)
381
- logEntry.referer = data.referer;
382
- if (data?.params !== undefined)
383
- logEntry.params = data.params;
384
- if (data?.payload !== undefined)
385
- logEntry.payload = data.payload;
386
- if (data?.queries !== undefined)
387
- logEntry.queries = data.queries;
388
- this.repository.create(logEntry);
389
- }
390
- }
391
- SqliteLogger = __legacyDecorateClassTS([
392
- decorator.logger(),
393
- __legacyMetadataTS("design:paramtypes", [])
394
- ], SqliteLogger);
395
- // src/TerminalLogger.ts
396
- class TerminalLogger {
397
- colorizeText(text, color) {
398
- const ansiColor = Bun.color(color, "ansi");
399
- const resetAnsi = "\x1B[0m";
400
- return ansiColor ? `${ansiColor}${text}${resetAnsi}` : text;
401
- }
402
- getLevelColor(level) {
403
- const colorMap = {
404
- ERROR: "#FF3B30",
405
- WARN: "#FFCC00",
406
- INFO: "#007AFF",
407
- DEBUG: "#8E8E93",
408
- LOG: "#8E8E93",
409
- SUCCESS: "#00C851"
410
- };
411
- return colorMap[level.toUpperCase()] || "white";
412
- }
413
- getLevelSymbol(level) {
414
- const symbolMap = {
415
- ERROR: "\u2716",
416
- WARN: "\u26A0",
417
- INFO: "\u2139",
418
- DEBUG: "\u2699",
419
- LOG: "\u25CF",
420
- SUCCESS: "\u2714"
421
- };
422
- return symbolMap[level.toUpperCase()] || "\u25CF";
423
- }
424
- writeToConsole(config) {
425
- const {
426
- level,
427
- message,
428
- date,
429
- data,
430
- stackTrace,
431
- showArrow = true,
432
- showTimestamp = true,
433
- showLevel = true,
434
- useSymbol = false
435
- } = config;
436
- const normalizedLevel = level.endsWith("Exception") ? "ERROR" : level;
437
- const color = this.getLevelColor(normalizedLevel);
438
- const now = date || new Date;
439
- const formattedTime = `${now.getFullYear()}-${String(now.getMonth() + 1).padStart(2, "0")}-${String(now.getDate()).padStart(2, "0")} ${String(now.getHours()).padStart(2, "0")}:${String(now.getMinutes()).padStart(2, "0")}:${String(now.getSeconds()).padStart(2, "0")}`;
440
- const timestamp = showTimestamp ? `${this.colorizeText(formattedTime, "#B2BEB5")} ` : "";
441
- const arrow = showArrow ? `${this.colorizeText("->", color)} ` : "";
442
- const levelDisplay = useSymbol ? this.getLevelSymbol(normalizedLevel) : `[${level}]`;
443
- const colorizedLevel = showLevel ? `${this.colorizeText(levelDisplay, color)} ` : "";
444
- const colorizedMessage = this.colorizeText(message, color);
445
- let logMessage = `${arrow}${timestamp}${colorizedLevel}${colorizedMessage}`;
446
- if (data && Object.keys(data).length > 0) {
447
- const dataEntries = Object.entries(data).filter(([key]) => key !== "stackTrace").map(([key, value]) => {
448
- const valueColor = typeof value === "string" ? "#69E502" : typeof value === "number" ? "#FFE809" : "#D3D3D3";
449
- const colorizedValue = this.colorizeText(String(value), valueColor);
450
- return `${this.colorizeText(key, "#79B")}: ${colorizedValue}`;
451
- });
452
- if (dataEntries.length > 0) {
453
- const colorizedData = dataEntries.join(`
454
- `);
455
- logMessage += `
456
- ${colorizedData}`;
457
- }
458
- }
459
- if (stackTrace && Array.isArray(stackTrace) && stackTrace.length > 0) {
460
- const stackHeader = this.colorizeText("Stack Trace:", "#FF6B6B");
461
- logMessage += `
462
- ${stackHeader}`;
463
- stackTrace.forEach((frame, index) => {
464
- const frameNumber = this.colorizeText(` ${index + 1}.`, "#B2BEB5");
465
- const functionName = frame.functionName ? this.colorizeText(frame.functionName, "#FFD93D") : this.colorizeText("<anonymous>", "#8E8E93");
466
- const fileName = frame.fileName ? this.colorizeText(frame.fileName, "#6BCF7F") : "";
467
- const lineCol = frame.lineNumber ? this.colorizeText(`:${frame.lineNumber}${frame.columnNumber ? `:${frame.columnNumber}` : ""}`, "#B2BEB5") : "";
468
- logMessage += `
469
- ${frameNumber} ${functionName}`;
470
- if (fileName) {
471
- logMessage += `
472
- at ${fileName}${lineCol}`;
473
- }
474
- });
475
- }
476
- logMessage += `
477
- `;
478
- if (level === "FATAL" || level === "ERROR") {
479
- process.stderr.write(`${logMessage}`);
480
- } else {
481
- process.stdout.write(`${logMessage}`);
482
- }
483
- }
484
- async init() {}
485
- error(message, data, options) {
486
- if (typeof message === "string") {
487
- this.writeToConsole({
488
- level: "ERROR",
489
- message,
490
- ...data && { data },
491
- ...options?.showArrow !== undefined && { showArrow: options.showArrow },
492
- ...options?.showTimestamp !== undefined && { showTimestamp: options.showTimestamp },
493
- ...options?.showLevel !== undefined && { showLevel: options.showLevel },
494
- ...options?.useSymbol !== undefined && { useSymbol: options.useSymbol }
495
- });
496
- } else {
497
- const exceptionData = {
498
- ...message.data,
499
- ...data
500
- };
501
- if (message.status) {
502
- exceptionData.status = message.status;
503
- }
504
- const stackJson = message.stackToJson();
505
- this.writeToConsole({
506
- level: message.name,
507
- message: message.message,
508
- data: exceptionData,
509
- ...stackJson && { stackTrace: stackJson },
510
- date: message.date,
511
- ...options?.showArrow !== undefined && { showArrow: options.showArrow },
512
- ...options?.showTimestamp !== undefined && { showTimestamp: options.showTimestamp },
513
- ...options?.showLevel !== undefined && { showLevel: options.showLevel },
514
- ...options?.useSymbol !== undefined && { useSymbol: options.useSymbol }
515
- });
516
- }
517
- }
518
- warn(message, data, options) {
519
- this.writeToConsole({
520
- level: "WARN",
521
- message,
522
- ...data && { data },
523
- ...options?.showArrow !== undefined && { showArrow: options.showArrow },
524
- ...options?.showTimestamp !== undefined && { showTimestamp: options.showTimestamp },
525
- ...options?.showLevel !== undefined && { showLevel: options.showLevel },
526
- ...options?.useSymbol !== undefined && { useSymbol: options.useSymbol }
527
- });
528
- }
529
- info(message, data, options) {
530
- this.writeToConsole({
531
- level: "INFO",
532
- message,
533
- ...data && { data },
534
- ...options?.showArrow !== undefined && { showArrow: options.showArrow },
535
- ...options?.showTimestamp !== undefined && { showTimestamp: options.showTimestamp },
536
- ...options?.showLevel !== undefined && { showLevel: options.showLevel },
537
- ...options?.useSymbol !== undefined && { useSymbol: options.useSymbol }
538
- });
539
- }
540
- debug(message, data, options) {
541
- this.writeToConsole({
542
- level: "DEBUG",
543
- message,
544
- ...data && { data },
545
- ...options?.showArrow !== undefined && { showArrow: options.showArrow },
546
- ...options?.showTimestamp !== undefined && { showTimestamp: options.showTimestamp },
547
- ...options?.showLevel !== undefined && { showLevel: options.showLevel },
548
- ...options?.useSymbol !== undefined && { useSymbol: options.useSymbol }
549
- });
550
- }
551
- log(message, data, options) {
552
- this.writeToConsole({
553
- level: "LOG",
554
- message,
555
- ...data && { data },
556
- ...options?.showArrow !== undefined && { showArrow: options.showArrow },
557
- ...options?.showTimestamp !== undefined && { showTimestamp: options.showTimestamp },
558
- ...options?.showLevel !== undefined && { showLevel: options.showLevel },
559
- ...options?.useSymbol !== undefined && { useSymbol: options.useSymbol }
560
- });
561
- }
562
- success(message, data, options) {
563
- this.writeToConsole({
564
- level: "SUCCESS",
565
- message,
566
- ...data && { data },
567
- ...options?.showArrow !== undefined && { showArrow: options.showArrow },
568
- ...options?.showTimestamp !== undefined && { showTimestamp: options.showTimestamp },
569
- ...options?.showLevel !== undefined && { showLevel: options.showLevel },
570
- ...options?.useSymbol !== undefined && { useSymbol: options.useSymbol }
571
- });
572
- }
573
- }
574
- TerminalLogger = __legacyDecorateClassTS([
575
- decorator.logger()
576
- ], TerminalLogger);
577
- // src/types.ts
578
- var ELogLevel;
579
- ((ELogLevel2) => {
580
- ELogLevel2["ERROR"] = "ERROR";
581
- ELogLevel2["WARN"] = "WARN";
582
- ELogLevel2["INFO"] = "INFO";
583
- ELogLevel2["DEBUG"] = "DEBUG";
584
- ELogLevel2["LOG"] = "LOG";
585
- ELogLevel2["SUCCESS"] = "SUCCESS";
586
- })(ELogLevel ||= {});
587
- export {
588
- decorator,
589
- TerminalLogger,
590
- SqliteLogger,
591
- LogsRepository,
592
- LogsEntity,
593
- LogsDatabase,
594
- ELogLevel
595
- };
50
+ LIMIT ${S}
51
+ OFFSET ${R}
52
+ `).map((B)=>({...B,date:new Date(B.date),params:B.params?U(B.params):void 0,payload:B.payload?U(B.payload):void 0,queries:B.queries?U(B.queries):void 0})),x=H.total,L=Math.ceil(x/S),G={logs:h,total:x,page:I,limit:S,totalPages:L};return await this.db.close(),G}}class J{db;repository;constructor(){this.db=new _,this.repository=new b(this.db)}async init(){await this.db.open(),await this.db.createTable()}error(y,O){if(typeof y==="string")this.writeLog("ERROR",{message:y,...O&&{data:O}});else this.writeLog("ERROR",{exception:y})}warn(y,O){this.writeLog("WARN",{message:y,...O&&{data:O}})}info(y,O){this.writeLog("INFO",{message:y,...O&&{data:O}})}debug(y,O){this.writeLog("DEBUG",{message:y,...O&&{data:O}})}log(y,O){this.writeLog("LOG",{message:y,...O&&{data:O}})}success(y,O){this.writeLog("SUCCESS",{message:y,...O&&{data:O}})}writeLog(y,O){let{message:T,data:S,exception:I}=O||{},R=new j;if(R.level=y,T)R.message=T;else if(I?.message)R.message=I.message;if(R.date=I?.date||new Date,S?.userId!==void 0)R.userId=S.userId;if(S?.email!==void 0)R.email=S.email;if(S?.lastName!==void 0)R.lastName=S.lastName;if(S?.firstName!==void 0)R.firstName=S.firstName;if(I?.status!==void 0)R.status=I.status;else if(S?.status!==void 0)R.status=S.status;if(I?.name!==void 0)R.exceptionName=I.name;let F=I?.stackToJson();if(F!==void 0&&F!==null)R.stackTrace=F;if(S?.ip!==void 0)R.ip=S.ip;if(S?.method!==void 0)R.method=S.method;if(S?.path!==void 0)R.path=S.path;if(S?.userAgent!==void 0)R.userAgent=S.userAgent;if(S?.referer!==void 0)R.referer=S.referer;if(S?.params!==void 0)R.params=S.params;if(S?.payload!==void 0)R.payload=S.payload;if(S?.queries!==void 0)R.queries=S.queries;this.repository.create(R)}}J=Z([$.logger(),f("design:paramtypes",[])],J);class M{colorizeText(y,O){let T=Bun.color(O,"ansi"),S="\x1B[0m";return T?`${T}${y}\x1B[0m`:y}getLevelColor(y){return{ERROR:"#FF3B30",WARN:"#FFCC00",INFO:"#007AFF",DEBUG:"#8E8E93",LOG:"#8E8E93",SUCCESS:"#00C851"}[y.toUpperCase()]||"white"}getLevelSymbol(y){return{ERROR:"\u2716",WARN:"\u26A0",INFO:"\u2139",DEBUG:"\u2699",LOG:"\u25CF",SUCCESS:"\u2714"}[y.toUpperCase()]||"\u25CF"}writeToConsole(y){let{level:O,message:T,date:S,data:I,stackTrace:R,showArrow:F=!0,showTimestamp:H=!0,showLevel:E=!0,useSymbol:h=!1}=y,x=O.endsWith("Exception")?"ERROR":O,L=this.getLevelColor(x),G=S||new Date,B=`${G.getFullYear()}-${String(G.getMonth()+1).padStart(2,"0")}-${String(G.getDate()).padStart(2,"0")} ${String(G.getHours()).padStart(2,"0")}:${String(G.getMinutes()).padStart(2,"0")}:${String(G.getSeconds()).padStart(2,"0")}`,Q=H?`${this.colorizeText(B,"#B2BEB5")} `:"",W=F?`${this.colorizeText("->",L)} `:"",X=h?this.getLevelSymbol(x):`[${O}]`,u=E?`${this.colorizeText(X,L)} `:"",v=this.colorizeText(T,L),P=`${W}${Q}${u}${v}`;if(I&&Object.keys(I).length>0){let Y=Object.entries(I).filter(([N])=>N!=="stackTrace").map(([N,D])=>{let C=typeof D==="string"?"#69E502":typeof D==="number"?"#FFE809":"#D3D3D3",k=this.colorizeText(String(D),C);return`${this.colorizeText(N,"#79B")}: ${k}`});if(Y.length>0){let N=Y.join(`
53
+ `);P+=`
54
+ ${N}`}}if(R&&Array.isArray(R)&&R.length>0){let Y=this.colorizeText("Stack Trace:","#FF6B6B");P+=`
55
+ ${Y}`,R.forEach((N,D)=>{let C=this.colorizeText(` ${D+1}.`,"#B2BEB5"),k=N.functionName?this.colorizeText(N.functionName,"#FFD93D"):this.colorizeText("<anonymous>","#8E8E93"),w=N.fileName?this.colorizeText(N.fileName,"#6BCF7F"):"",q=N.lineNumber?this.colorizeText(`:${N.lineNumber}${N.columnNumber?`:${N.columnNumber}`:""}`,"#B2BEB5"):"";if(P+=`
56
+ ${C} ${k}`,w)P+=`
57
+ at ${w}${q}`})}if(P+=`
58
+ `,O==="FATAL"||O==="ERROR")process.stderr.write(`${P}`);else process.stdout.write(`${P}`)}async init(){}error(y,O,T){if(typeof y==="string")this.writeToConsole({level:"ERROR",message:y,...O&&{data:O},...T?.showArrow!==void 0&&{showArrow:T.showArrow},...T?.showTimestamp!==void 0&&{showTimestamp:T.showTimestamp},...T?.showLevel!==void 0&&{showLevel:T.showLevel},...T?.useSymbol!==void 0&&{useSymbol:T.useSymbol}});else{let S={...y.data,...O};if(y.status)S.status=y.status;let I=y.stackToJson();this.writeToConsole({level:y.name,message:y.message,data:S,...I&&{stackTrace:I},date:y.date,...T?.showArrow!==void 0&&{showArrow:T.showArrow},...T?.showTimestamp!==void 0&&{showTimestamp:T.showTimestamp},...T?.showLevel!==void 0&&{showLevel:T.showLevel},...T?.useSymbol!==void 0&&{useSymbol:T.useSymbol}})}}warn(y,O,T){this.writeToConsole({level:"WARN",message:y,...O&&{data:O},...T?.showArrow!==void 0&&{showArrow:T.showArrow},...T?.showTimestamp!==void 0&&{showTimestamp:T.showTimestamp},...T?.showLevel!==void 0&&{showLevel:T.showLevel},...T?.useSymbol!==void 0&&{useSymbol:T.useSymbol}})}info(y,O,T){this.writeToConsole({level:"INFO",message:y,...O&&{data:O},...T?.showArrow!==void 0&&{showArrow:T.showArrow},...T?.showTimestamp!==void 0&&{showTimestamp:T.showTimestamp},...T?.showLevel!==void 0&&{showLevel:T.showLevel},...T?.useSymbol!==void 0&&{useSymbol:T.useSymbol}})}debug(y,O,T){this.writeToConsole({level:"DEBUG",message:y,...O&&{data:O},...T?.showArrow!==void 0&&{showArrow:T.showArrow},...T?.showTimestamp!==void 0&&{showTimestamp:T.showTimestamp},...T?.showLevel!==void 0&&{showLevel:T.showLevel},...T?.useSymbol!==void 0&&{useSymbol:T.useSymbol}})}log(y,O,T){this.writeToConsole({level:"LOG",message:y,...O&&{data:O},...T?.showArrow!==void 0&&{showArrow:T.showArrow},...T?.showTimestamp!==void 0&&{showTimestamp:T.showTimestamp},...T?.showLevel!==void 0&&{showLevel:T.showLevel},...T?.useSymbol!==void 0&&{useSymbol:T.useSymbol}})}success(y,O,T){this.writeToConsole({level:"SUCCESS",message:y,...O&&{data:O},...T?.showArrow!==void 0&&{showArrow:T.showArrow},...T?.showTimestamp!==void 0&&{showTimestamp:T.showTimestamp},...T?.showLevel!==void 0&&{showLevel:T.showLevel},...T?.useSymbol!==void 0&&{useSymbol:T.useSymbol}})}}M=Z([$.logger()],M);var c;((F)=>{F.ERROR="ERROR";F.WARN="WARN";F.INFO="INFO";F.DEBUG="DEBUG";F.LOG="LOG";F.SUCCESS="SUCCESS"})(c||={});export{$ as decorator,M as TerminalLogger,J as SqliteLogger,b as LogsRepository,j as LogsEntity,_ as LogsDatabase,c as ELogLevel};
596
59
 
597
- //# debugId=51C38557D7273D4164756E2164756E21
60
+ //# debugId=7C0ACE15FC79360564756E2164756E21
package/dist/index.js.map CHANGED
@@ -10,7 +10,7 @@
10
10
  "import type { ExceptionStackFrameType, IException } from \"@ooneex/exception\";\nimport type { ScalarType } from \"@ooneex/types\";\nimport { decorator } from \"./decorators\";\nimport type { ILogger, LoggerOptionsType } from \"./types\";\n\ninterface WriteToConsoleConfig {\n level: string;\n message: string;\n date?: Date;\n data?: Record<string, ScalarType>;\n stackTrace?: ExceptionStackFrameType[];\n showArrow?: boolean;\n showTimestamp?: boolean;\n showLevel?: boolean;\n useSymbol?: boolean;\n}\n\n@decorator.logger()\nexport class TerminalLogger implements ILogger {\n private colorizeText(text: string, color: string): string {\n const ansiColor = Bun.color(color, \"ansi\");\n const resetAnsi = \"\\u001b[0m\";\n return ansiColor ? `${ansiColor}${text}${resetAnsi}` : text;\n }\n\n private getLevelColor(level: string): string {\n const colorMap: Record<string, string> = {\n ERROR: \"#FF3B30\",\n WARN: \"#FFCC00\",\n INFO: \"#007AFF\",\n DEBUG: \"#8E8E93\",\n LOG: \"#8E8E93\",\n SUCCESS: \"#00C851\",\n };\n\n return colorMap[level.toUpperCase()] || \"white\";\n }\n\n private getLevelSymbol(level: string): string {\n const symbolMap: Record<string, string> = {\n ERROR: \"✖\",\n WARN: \"⚠\",\n INFO: \"ℹ\",\n DEBUG: \"⚙\",\n LOG: \"●\",\n SUCCESS: \"✔\",\n };\n\n return symbolMap[level.toUpperCase()] || \"●\";\n }\n\n private writeToConsole(config: WriteToConsoleConfig): void {\n const {\n level,\n message,\n date,\n data,\n stackTrace,\n showArrow = true,\n showTimestamp = true,\n showLevel = true,\n useSymbol = false,\n } = config;\n const normalizedLevel = level.endsWith(\"Exception\") ? \"ERROR\" : level;\n const color = this.getLevelColor(normalizedLevel);\n\n const now = date || new Date();\n const formattedTime = `${now.getFullYear()}-${String(now.getMonth() + 1).padStart(2, \"0\")}-${String(now.getDate()).padStart(2, \"0\")} ${String(now.getHours()).padStart(2, \"0\")}:${String(now.getMinutes()).padStart(2, \"0\")}:${String(now.getSeconds()).padStart(2, \"0\")}`;\n const timestamp = showTimestamp ? `${this.colorizeText(formattedTime, \"#B2BEB5\")} ` : \"\";\n const arrow = showArrow ? `${this.colorizeText(\"->\", color)} ` : \"\";\n const levelDisplay = useSymbol ? this.getLevelSymbol(normalizedLevel) : `[${level}]`;\n const colorizedLevel = showLevel ? `${this.colorizeText(levelDisplay, color)} ` : \"\";\n const colorizedMessage = this.colorizeText(message, color);\n\n let logMessage = `${arrow}${timestamp}${colorizedLevel}${colorizedMessage}`;\n\n if (data && Object.keys(data).length > 0) {\n const dataEntries = Object.entries(data)\n .filter(([key]) => key !== \"stackTrace\") // Exclude stackTrace from regular data display\n .map(([key, value]) => {\n const valueColor = typeof value === \"string\" ? \"#69E502\" : typeof value === \"number\" ? \"#FFE809\" : \"#D3D3D3\";\n const colorizedValue = this.colorizeText(String(value), valueColor);\n return `${this.colorizeText(key, \"#79B\")}: ${colorizedValue}`;\n });\n\n if (dataEntries.length > 0) {\n const colorizedData = dataEntries.join(\"\\n\");\n logMessage += `\\n${colorizedData}`;\n }\n }\n\n // Add formatted stack trace if available\n if (stackTrace && Array.isArray(stackTrace) && stackTrace.length > 0) {\n const stackHeader = this.colorizeText(\"Stack Trace:\", \"#FF6B6B\");\n logMessage += `\\n${stackHeader}`;\n\n stackTrace.forEach((frame, index) => {\n const frameNumber = this.colorizeText(` ${index + 1}.`, \"#B2BEB5\");\n const functionName = frame.functionName\n ? this.colorizeText(frame.functionName, \"#FFD93D\")\n : this.colorizeText(\"<anonymous>\", \"#8E8E93\");\n const fileName = frame.fileName ? this.colorizeText(frame.fileName, \"#6BCF7F\") : \"\";\n const lineCol = frame.lineNumber\n ? this.colorizeText(`:${frame.lineNumber}${frame.columnNumber ? `:${frame.columnNumber}` : \"\"}`, \"#B2BEB5\")\n : \"\";\n\n logMessage += `\\n${frameNumber} ${functionName}`;\n if (fileName) {\n logMessage += `\\n at ${fileName}${lineCol}`;\n }\n });\n }\n\n logMessage += \"\\n\";\n\n // Write to stderr for error levels, stdout for others\n if (level === \"FATAL\" || level === \"ERROR\") {\n process.stderr.write(`${logMessage}`);\n } else {\n process.stdout.write(`${logMessage}`);\n }\n }\n\n public async init(): Promise<void> {}\n\n public error(message: string | IException, data?: Record<string, ScalarType>, options?: LoggerOptionsType): void {\n if (typeof message === \"string\") {\n this.writeToConsole({\n level: \"ERROR\",\n message,\n ...(data && { data }),\n ...(options?.showArrow !== undefined && { showArrow: options.showArrow }),\n ...(options?.showTimestamp !== undefined && { showTimestamp: options.showTimestamp }),\n ...(options?.showLevel !== undefined && { showLevel: options.showLevel }),\n ...(options?.useSymbol !== undefined && { useSymbol: options.useSymbol }),\n });\n } else {\n // Handle IException object\n const exceptionData: Record<string, ScalarType> = {\n ...(message.data as Record<string, ScalarType>),\n ...(data as Record<string, ScalarType>),\n };\n\n if (message.status) {\n exceptionData.status = message.status;\n }\n\n // Get stack trace as structured data for better formatting\n const stackJson = message.stackToJson();\n this.writeToConsole({\n level: message.name,\n message: message.message,\n data: exceptionData,\n ...(stackJson && { stackTrace: stackJson }),\n date: message.date,\n ...(options?.showArrow !== undefined && { showArrow: options.showArrow }),\n ...(options?.showTimestamp !== undefined && { showTimestamp: options.showTimestamp }),\n ...(options?.showLevel !== undefined && { showLevel: options.showLevel }),\n ...(options?.useSymbol !== undefined && { useSymbol: options.useSymbol }),\n });\n }\n }\n\n public warn(message: string, data?: Record<string, ScalarType>, options?: LoggerOptionsType): void {\n this.writeToConsole({\n level: \"WARN\",\n message,\n ...(data && { data }),\n ...(options?.showArrow !== undefined && { showArrow: options.showArrow }),\n ...(options?.showTimestamp !== undefined && { showTimestamp: options.showTimestamp }),\n ...(options?.showLevel !== undefined && { showLevel: options.showLevel }),\n ...(options?.useSymbol !== undefined && { useSymbol: options.useSymbol }),\n });\n }\n\n public info(message: string, data?: Record<string, ScalarType>, options?: LoggerOptionsType): void {\n this.writeToConsole({\n level: \"INFO\",\n message,\n ...(data && { data }),\n ...(options?.showArrow !== undefined && { showArrow: options.showArrow }),\n ...(options?.showTimestamp !== undefined && { showTimestamp: options.showTimestamp }),\n ...(options?.showLevel !== undefined && { showLevel: options.showLevel }),\n ...(options?.useSymbol !== undefined && { useSymbol: options.useSymbol }),\n });\n }\n\n public debug(message: string, data?: Record<string, ScalarType>, options?: LoggerOptionsType): void {\n this.writeToConsole({\n level: \"DEBUG\",\n message,\n ...(data && { data }),\n ...(options?.showArrow !== undefined && { showArrow: options.showArrow }),\n ...(options?.showTimestamp !== undefined && { showTimestamp: options.showTimestamp }),\n ...(options?.showLevel !== undefined && { showLevel: options.showLevel }),\n ...(options?.useSymbol !== undefined && { useSymbol: options.useSymbol }),\n });\n }\n\n public log(message: string, data?: Record<string, ScalarType>, options?: LoggerOptionsType): void {\n this.writeToConsole({\n level: \"LOG\",\n message,\n ...(data && { data }),\n ...(options?.showArrow !== undefined && { showArrow: options.showArrow }),\n ...(options?.showTimestamp !== undefined && { showTimestamp: options.showTimestamp }),\n ...(options?.showLevel !== undefined && { showLevel: options.showLevel }),\n ...(options?.useSymbol !== undefined && { useSymbol: options.useSymbol }),\n });\n }\n\n public success(message: string, data?: Record<string, ScalarType>, options?: LoggerOptionsType): void {\n this.writeToConsole({\n level: \"SUCCESS\",\n message,\n ...(data && { data }),\n ...(options?.showArrow !== undefined && { showArrow: options.showArrow }),\n ...(options?.showTimestamp !== undefined && { showTimestamp: options.showTimestamp }),\n ...(options?.showLevel !== undefined && { showLevel: options.showLevel }),\n ...(options?.useSymbol !== undefined && { useSymbol: options.useSymbol }),\n });\n }\n}\n",
11
11
  "import type { IException } from \"@ooneex/exception\";\nimport type { HttpMethodType, ScalarType } from \"@ooneex/types\";\nimport type { LogsEntity } from \"./LogsEntity\";\n\nexport type LoggerClassType =\n | (new (\n ...args: unknown[]\n ) => ILogger)\n | (new (\n options?: Bun.SQL.SQLiteOptions,\n ) => ILogger<LogsEntity>);\n\nexport type LoggerOptionsType = {\n showArrow?: boolean;\n showTimestamp?: boolean;\n showLevel?: boolean;\n useSymbol?: boolean;\n};\n\nexport interface ILogger<Data = Record<string, ScalarType>> {\n init: () => Promise<void> | void;\n error: (message: string | IException, data?: Data, options?: LoggerOptionsType) => Promise<void> | void;\n warn: (message: string, data?: Data, options?: LoggerOptionsType) => Promise<void> | void;\n info: (message: string, data?: Data, options?: LoggerOptionsType) => Promise<void> | void;\n debug: (message: string, data?: Data, options?: LoggerOptionsType) => Promise<void> | void;\n log: (message: string, data?: Data, options?: LoggerOptionsType) => Promise<void> | void;\n success: (message: string, data?: Data, options?: LoggerOptionsType) => Promise<void> | void;\n}\n\nexport enum ELogLevel {\n ERROR = \"ERROR\",\n WARN = \"WARN\",\n INFO = \"INFO\",\n DEBUG = \"DEBUG\",\n LOG = \"LOG\",\n SUCCESS = \"SUCCESS\",\n}\n\nexport type LevelType = `${ELogLevel}`;\n\nexport type FindByCriteriaType = {\n level?: ELogLevel;\n userId?: string;\n email?: string;\n lastName?: string;\n firstName?: string;\n status?: number;\n exceptionName?: string;\n method?: HttpMethodType;\n path?: string;\n page?: number;\n limit?: number;\n};\n\nexport type FindByResultType = {\n logs: LogsEntity[];\n total: number;\n page: number;\n limit: number;\n totalPages: number;\n};\n"
12
12
  ],
13
- "mappings": "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",
14
- "debugId": "51C38557D7273D4164756E2164756E21",
13
+ "mappings": "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",
14
+ "debugId": "7C0ACE15FC79360564756E2164756E21",
15
15
  "names": []
16
16
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@ooneex/logger",
3
3
  "description": "Structured logging service with console and database output support, container integration, and customizable log levels",
4
- "version": "0.13.1",
4
+ "version": "0.14.0",
5
5
  "type": "module",
6
6
  "files": [
7
7
  "dist",