@ooneex/logger 0.16.0 → 0.17.1
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 +13 -13
- package/dist/index.js.map +3 -3
- package/package.json +6 -6
package/dist/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
var
|
|
2
|
+
var X=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 G=y.length-1;G>=0;G--)if(F=y[G])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 k=(y,O)=>{if(typeof Reflect==="object"&&typeof Reflect.metadata==="function")return Reflect.metadata(y,O)};import{container as w,EContainerScope as f}from"@ooneex/container";var D={logger:(y=f.Singleton)=>{return(O)=>{w.add(O,y)}}};import{DatabaseException as $}from"@ooneex/database";class Y{client;options;constructor(y){let O=y?.filename||Bun.env.LOGS_DATABASE_PATH||"";if(!O)throw new $("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 $(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`
|
|
3
3
|
CREATE TABLE IF NOT EXISTS logs (
|
|
4
4
|
id TEXT PRIMARY KEY,
|
|
5
5
|
level TEXT NOT NULL,
|
|
@@ -27,34 +27,34 @@ var Z=function(y,O,T,S){var I=arguments.length,R=I<3?O:S===null?S=Object.getOwnP
|
|
|
27
27
|
domain TEXT,
|
|
28
28
|
hostname TEXT
|
|
29
29
|
)
|
|
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
|
|
31
|
-
INSERT INTO logs ${
|
|
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 $("Failed to open log database connection")}}async dropTable(){let y=this.getClient();try{await y`DROP TABLE IF EXISTS logs`}catch(O){throw new $("Failed to drop log tables")}}async close(){try{await this.client?.close(),this.client=void 0}catch(y){throw new $("Failed to close log database connection")}}async drop(){}}class Z{id;level;message;date=new Date;userId;email;lastName;firstName;status;exceptionName;stackTrace;ip;method;path;userAgent;referer;params;payload;queries}import{random as q}from"@ooneex/utils";var{sql:U}=globalThis.Bun;class _{db;constructor(y){this.db=y}async create(y){let O=this.db.getClient(),T={...y,id:q.nanoid(15),date:y.date.toISOString(),stackTrace:y.stackTrace?JSON.stringify(y.stackTrace):null,params:y.params?JSON.stringify(y.params):null,payload:y.payload?JSON.stringify(y.payload):null,queries:y.queries?JSON.stringify(y.queries):null},[S]=await O`
|
|
31
|
+
INSERT INTO logs ${U(T)}
|
|
32
32
|
RETURNING *
|
|
33
33
|
`;return await this.db.close(),S}async find(y){let O=this.db.getClient(),[T]=await O`
|
|
34
34
|
SELECT * FROM logs
|
|
35
35
|
WHERE id = ${y}
|
|
36
36
|
LIMIT 1
|
|
37
|
-
`;if(!T)return await this.db.close(),null;let S={...T,date:new Date(T.date),stackTrace:T.stackTrace?
|
|
37
|
+
`;if(!T)return await this.db.close(),null;let S={...T,date:new Date(T.date),stackTrace:T.stackTrace?JSON.parse(T.stackTrace):void 0,params:T.params?JSON.parse(T.params):void 0,payload:T.payload?JSON.parse(T.payload):void 0,queries:T.queries?JSON.parse(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(U`level = ${y.level}`);if(y.userId!==void 0)T.push(U`userId = ${y.userId}`);if(y.email!==void 0)T.push(U`email = ${y.email}`);if(y.lastName!==void 0)T.push(U`lastName = ${y.lastName}`);if(y.firstName!==void 0)T.push(U`firstName = ${y.firstName}`);if(y.status!==void 0)T.push(U`status = ${y.status}`);if(y.exceptionName!==void 0)T.push(U`exceptionName = ${y.exceptionName}`);if(y.method!==void 0)T.push(U`method = ${y.method}`);if(y.path!==void 0)T.push(U`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`,Q=(await O`
|
|
38
38
|
SELECT * FROM logs
|
|
39
39
|
ORDER BY date DESC
|
|
40
40
|
LIMIT ${S}
|
|
41
41
|
OFFSET ${R}
|
|
42
|
-
`).map((P)=>({...P,date:new Date(P.date),stackTrace:P.stackTrace?
|
|
42
|
+
`).map((P)=>({...P,date:new Date(P.date),stackTrace:P.stackTrace?JSON.parse(P.stackTrace):void 0,params:P.params?JSON.parse(P.params):void 0,payload:P.payload?JSON.parse(P.payload):void 0,queries:P.queries?JSON.parse(P.queries):void 0})),j=B.total,M=Math.ceil(j/S),h={logs:Q,total:j,page:I,limit:S,totalPages:M};return await this.db.close(),h}let F=T.reduce((B,L,Q)=>{if(Q===0)return L;return U`${B} AND ${L}`}),[G]=await O`
|
|
43
43
|
SELECT COUNT(*) as total
|
|
44
44
|
FROM logs
|
|
45
45
|
WHERE ${F}
|
|
46
|
-
`,
|
|
46
|
+
`,J=(await O`
|
|
47
47
|
SELECT * FROM logs
|
|
48
48
|
WHERE ${F}
|
|
49
49
|
ORDER BY date DESC
|
|
50
50
|
LIMIT ${S}
|
|
51
51
|
OFFSET ${R}
|
|
52
|
-
`).map((B)=>({...B,date:new Date(B.date),params:B.params?
|
|
52
|
+
`).map((B)=>({...B,date:new Date(B.date),params:B.params?JSON.parse(B.params):void 0,payload:B.payload?JSON.parse(B.payload):void 0,queries:B.queries?JSON.parse(B.queries):void 0})),H=G.total,x=Math.ceil(H/S),A={logs:J,total:H,page:I,limit:S,totalPages:x};return await this.db.close(),A}}class b{db;repository;constructor(){this.db=new Y,this.repository=new _(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 Z;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)}}b=X([D.logger(),k("design:paramtypes",[])],b);class V{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:G=!0,showLevel:z=!0,useSymbol:J=!1}=y,H=O.endsWith("Exception")?"ERROR":O,x=this.getLevelColor(H),A=S||new Date,B=`${A.getFullYear()}-${String(A.getMonth()+1).padStart(2,"0")}-${String(A.getDate()).padStart(2,"0")} ${String(A.getHours()).padStart(2,"0")}:${String(A.getMinutes()).padStart(2,"0")}:${String(A.getSeconds()).padStart(2,"0")}`,L=G?`${this.colorizeText(B,"#B2BEB5")} `:"",Q=F?`${this.colorizeText("->",x)} `:"",j=J?this.getLevelSymbol(H):`[${O}]`,M=z?`${this.colorizeText(j,x)} `:"",h=this.colorizeText(T,x),P=`${Q}${L}${M}${h}`;if(I&&Object.keys(I).length>0){let K=Object.entries(I).filter(([N])=>N!=="stackTrace").map(([N,W])=>{let u=typeof W==="string"?"#69E502":typeof W==="number"?"#FFE809":"#D3D3D3",v=this.colorizeText(String(W),u);return`${this.colorizeText(N,"#79B")}: ${v}`});if(K.length>0){let N=K.join(`
|
|
53
53
|
`);P+=`
|
|
54
|
-
${N}`}}if(R&&Array.isArray(R)&&R.length>0){let
|
|
55
|
-
${
|
|
56
|
-
${
|
|
57
|
-
at ${
|
|
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}})}}
|
|
54
|
+
${N}`}}if(R&&Array.isArray(R)&&R.length>0){let K=this.colorizeText("Stack Trace:","#FF6B6B");P+=`
|
|
55
|
+
${K}`,R.forEach((N,W)=>{let u=this.colorizeText(` ${W+1}.`,"#B2BEB5"),v=N.functionName?this.colorizeText(N.functionName,"#FFD93D"):this.colorizeText("<anonymous>","#8E8E93"),C=N.fileName?this.colorizeText(N.fileName,"#6BCF7F"):"",E=N.lineNumber?this.colorizeText(`:${N.lineNumber}${N.columnNumber?`:${N.columnNumber}`:""}`,"#B2BEB5"):"";if(P+=`
|
|
56
|
+
${u} ${v}`,C)P+=`
|
|
57
|
+
at ${C}${E}`})}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}})}}V=X([D.logger()],V);var m;((F)=>{F.ERROR="ERROR";F.WARN="WARN";F.INFO="INFO";F.DEBUG="DEBUG";F.LOG="LOG";F.SUCCESS="SUCCESS"})(m||={});export{D as decorator,V as TerminalLogger,b as SqliteLogger,_ as LogsRepository,Z as LogsEntity,Y as LogsDatabase,m as ELogLevel};
|
|
59
59
|
|
|
60
|
-
//# debugId=
|
|
60
|
+
//# debugId=8FC7EA24DDB9E4D864756E2164756E21
|
package/dist/index.js.map
CHANGED
|
@@ -5,12 +5,12 @@
|
|
|
5
5
|
"import { container, EContainerScope } from \"@ooneex/container\";\nimport type { LoggerClassType } from \"./types\";\n\nexport const decorator = {\n logger: (scope: EContainerScope = EContainerScope.Singleton) => {\n return (target: LoggerClassType): void => {\n container.add(target, scope);\n };\n },\n};\n",
|
|
6
6
|
"import { DatabaseException, type IDatabase } from \"@ooneex/database\";\n\nexport class LogsDatabase implements IDatabase {\n private client: Bun.SQL | undefined;\n private options: Bun.SQL.SQLiteOptions;\n\n constructor(options?: Bun.SQL.SQLiteOptions) {\n const fileName = options?.filename || Bun.env.LOGS_DATABASE_PATH || \"\";\n\n if (!fileName) {\n throw new DatabaseException(\n \"No database filename provided. Please set LOGS_DATABASE_PATH environment variable or provide a filename in the options.\",\n );\n }\n\n this.options = {\n filename: fileName,\n readonly: false,\n create: true,\n readwrite: true,\n strict: true,\n safeIntegers: false,\n ...options,\n adapter: \"sqlite\",\n };\n }\n\n public getClient(): Bun.SQL {\n if (!this.client) {\n try {\n this.client = new Bun.SQL(this.options);\n } catch (error) {\n throw new DatabaseException((error as Error).message);\n }\n }\n\n return this.client;\n }\n\n public async open(): Promise<void> {\n this.getClient();\n }\n\n public async createTable(): Promise<void> {\n const sql = this.getClient();\n\n try {\n await sql`PRAGMA foreign_keys = ON`;\n await sql`PRAGMA journal_mode = WAL`;\n await sql`PRAGMA integrity_check`;\n\n // Create logs table if it doesn't exist\n await sql`\n CREATE TABLE IF NOT EXISTS logs (\n id TEXT PRIMARY KEY,\n level TEXT NOT NULL,\n message TEXT,\n date TEXT NOT NULL,\n userId TEXT,\n email TEXT,\n lastName TEXT,\n firstName TEXT,\n status INTEGER,\n exceptionName TEXT,\n stackTrace TEXT,\n ip TEXT,\n method TEXT,\n path TEXT,\n userAgent TEXT,\n referer TEXT,\n params TEXT,\n payload TEXT,\n queries TEXT,\n protocol TEXT,\n host TEXT,\n port INTEGER,\n subdomain TEXT,\n domain TEXT,\n hostname TEXT\n )\n `;\n\n // Create indexes for better query performance\n await sql`CREATE INDEX IF NOT EXISTS idx_logs_level ON logs(level)`;\n await sql`CREATE INDEX IF NOT EXISTS idx_logs_user_id ON logs(userId)`;\n } catch (_e) {\n throw new DatabaseException(\"Failed to open log database connection\");\n }\n }\n\n public async dropTable(): Promise<void> {\n const sql = this.getClient();\n\n try {\n await sql`DROP TABLE IF EXISTS logs`;\n } catch (_e) {\n throw new DatabaseException(\"Failed to drop log tables\");\n }\n }\n\n public async close(): Promise<void> {\n try {\n await this.client?.close();\n this.client = undefined as Bun.SQL | undefined;\n } catch (_e) {\n throw new DatabaseException(\"Failed to close log database connection\");\n }\n }\n\n public async drop(): Promise<void> {}\n}\n",
|
|
7
7
|
"import type { ExceptionStackFrameType } from \"@ooneex/exception\";\nimport type { HttpMethodType, ScalarType } from \"@ooneex/types\";\nimport type { LevelType } from \"./types\";\n\nexport class LogsEntity {\n id?: string;\n level?: LevelType;\n message?: string;\n date: Date = new Date();\n userId?: string;\n email?: string;\n lastName?: string;\n firstName?: string;\n status?: number;\n exceptionName?: string;\n stackTrace?: ExceptionStackFrameType[];\n ip?: string;\n method?: HttpMethodType;\n path?: string;\n userAgent?: string;\n referer?: string;\n params?: Record<string, ScalarType>;\n payload?: Record<string, unknown>;\n queries?: Record<string, ScalarType>;\n}\n",
|
|
8
|
-
"import {
|
|
8
|
+
"import { random } from \"@ooneex/utils\";\nimport { sql } from \"bun\";\nimport type { LogsDatabase } from \"./LogsDatabase\";\nimport type { LogsEntity } from \"./LogsEntity\";\nimport type { FindByCriteriaType, FindByResultType } from \"./types\";\n\ntype RawLogRecordType = {\n id: string;\n level: string;\n message?: string;\n date: string;\n userId?: string;\n email?: string;\n lastName?: string;\n firstName?: string;\n status?: number;\n exceptionName?: string;\n stackTrace?: string;\n ip?: string;\n method?: string;\n path?: string;\n userAgent?: string;\n referer?: string;\n params?: string;\n payload?: string;\n queries?: string;\n};\n\nexport class LogsRepository {\n constructor(private db: LogsDatabase) {}\n\n public async create(log: LogsEntity): Promise<LogsEntity> {\n const client = this.db.getClient();\n\n const data = {\n ...log,\n id: random.nanoid(15),\n date: log.date.toISOString(),\n stackTrace: log.stackTrace ? JSON.stringify(log.stackTrace) : null,\n params: log.params ? JSON.stringify(log.params) : null,\n payload: log.payload ? JSON.stringify(log.payload) : null,\n queries: log.queries ? JSON.stringify(log.queries) : null,\n };\n\n const [newLog] = await client`\n INSERT INTO logs ${sql(data)}\n RETURNING *\n `;\n\n await this.db.close();\n\n return newLog as LogsEntity;\n }\n\n public async find(id: string): Promise<LogsEntity | null> {\n const client = this.db.getClient();\n\n const [log] = await client`\n SELECT * FROM logs\n WHERE id = ${id}\n LIMIT 1\n `;\n\n if (!log) {\n await this.db.close();\n return null;\n }\n\n const result = {\n ...log,\n date: new Date(log.date),\n stackTrace: log.stackTrace ? JSON.parse(log.stackTrace) : undefined,\n params: log.params ? JSON.parse(log.params) : undefined,\n payload: log.payload ? JSON.parse(log.payload) : undefined,\n queries: log.queries ? JSON.parse(log.queries) : undefined,\n };\n\n await this.db.close();\n\n return result;\n }\n\n public async findBy(criteria: FindByCriteriaType): Promise<FindByResultType> {\n const client = this.db.getClient();\n\n // Build WHERE conditions using SQL fragments\n const whereConditions: unknown[] = [];\n\n if (criteria.level !== undefined) {\n whereConditions.push(sql`level = ${criteria.level}`);\n }\n\n if (criteria.userId !== undefined) {\n whereConditions.push(sql`userId = ${criteria.userId}`);\n }\n\n if (criteria.email !== undefined) {\n whereConditions.push(sql`email = ${criteria.email}`);\n }\n\n if (criteria.lastName !== undefined) {\n whereConditions.push(sql`lastName = ${criteria.lastName}`);\n }\n\n if (criteria.firstName !== undefined) {\n whereConditions.push(sql`firstName = ${criteria.firstName}`);\n }\n\n if (criteria.status !== undefined) {\n whereConditions.push(sql`status = ${criteria.status}`);\n }\n\n if (criteria.exceptionName !== undefined) {\n whereConditions.push(sql`exceptionName = ${criteria.exceptionName}`);\n }\n\n if (criteria.method !== undefined) {\n whereConditions.push(sql`method = ${criteria.method}`);\n }\n\n if (criteria.path !== undefined) {\n whereConditions.push(sql`path = ${criteria.path}`);\n }\n\n // Handle pagination\n const limit = criteria.limit || 100; // Default limit of 100\n const page = criteria.page || 1; // Default to page 1\n const offset = (page - 1) * limit;\n\n // If no criteria provided, get all records with pagination\n if (whereConditions.length === 0) {\n const [countResult] = await client`SELECT COUNT(*) as total FROM logs`;\n const logs = await client`\n SELECT * FROM logs\n ORDER BY date DESC\n LIMIT ${limit}\n OFFSET ${offset}\n `;\n\n const transformedLogs = logs.map((log: RawLogRecordType) => ({\n ...log,\n date: new Date(log.date),\n stackTrace: log.stackTrace ? JSON.parse(log.stackTrace) : undefined,\n params: log.params ? JSON.parse(log.params) : undefined,\n payload: log.payload ? JSON.parse(log.payload) : undefined,\n queries: log.queries ? JSON.parse(log.queries) : undefined,\n })) as LogsEntity[];\n\n const total = countResult.total;\n const totalPages = Math.ceil(total / limit);\n\n const result = {\n logs: transformedLogs,\n total,\n page,\n limit,\n totalPages,\n };\n\n await this.db.close();\n\n return result;\n }\n\n // Build the WHERE clause by joining fragments with AND\n const whereClause = whereConditions.reduce((acc, condition, index) => {\n if (index === 0) {\n return condition;\n }\n return sql`${acc} AND ${condition}`;\n });\n\n // Get total count for pagination\n const [countResult] = await client`\n SELECT COUNT(*) as total\n FROM logs\n WHERE ${whereClause}\n `;\n\n // Execute the query with proper SQL fragment composition and pagination\n const logs = await client`\n SELECT * FROM logs\n WHERE ${whereClause}\n ORDER BY date DESC\n LIMIT ${limit}\n OFFSET ${offset}\n `;\n\n // Transform and deserialize results\n const transformedLogs = logs.map((log: RawLogRecordType) => ({\n ...log,\n date: new Date(log.date),\n params: log.params ? JSON.parse(log.params) : undefined,\n payload: log.payload ? JSON.parse(log.payload) : undefined,\n queries: log.queries ? JSON.parse(log.queries) : undefined,\n }));\n\n const total = countResult.total;\n const totalPages = Math.ceil(total / limit);\n\n const result = {\n logs: transformedLogs,\n total,\n page,\n limit,\n totalPages,\n };\n\n await this.db.close();\n\n return result;\n }\n}\n",
|
|
9
9
|
"import type { IException } from \"@ooneex/exception\";\nimport { decorator } from \"./decorators\";\nimport { LogsDatabase } from \"./LogsDatabase\";\nimport { LogsEntity } from \"./LogsEntity\";\nimport { LogsRepository } from \"./LogsRepository\";\nimport type { ILogger, LevelType } from \"./types\";\n\n@decorator.logger()\nexport class SqliteLogger implements ILogger<LogsEntity> {\n private db: LogsDatabase;\n private repository: LogsRepository;\n\n constructor() {\n this.db = new LogsDatabase();\n this.repository = new LogsRepository(this.db);\n }\n\n public async init(): Promise<void> {\n await this.db.open();\n await this.db.createTable();\n }\n\n public error(message: string | IException, data?: LogsEntity): void {\n if (typeof message === \"string\") {\n this.writeLog(\"ERROR\", {\n message,\n ...(data && { data }),\n });\n } else {\n this.writeLog(\"ERROR\", {\n exception: message,\n });\n }\n }\n\n public warn(message: string, data?: LogsEntity): void {\n this.writeLog(\"WARN\", {\n message,\n ...(data && { data }),\n });\n }\n\n public info(message: string, data?: LogsEntity): void {\n this.writeLog(\"INFO\", {\n message,\n ...(data && { data }),\n });\n }\n\n public debug(message: string, data?: LogsEntity): void {\n this.writeLog(\"DEBUG\", {\n message,\n ...(data && { data }),\n });\n }\n\n public log(message: string, data?: LogsEntity): void {\n this.writeLog(\"LOG\", {\n message,\n ...(data && { data }),\n });\n }\n\n public success(message: string, data?: LogsEntity): void {\n this.writeLog(\"SUCCESS\", {\n message,\n ...(data && { data }),\n });\n }\n\n private writeLog(\n level: LevelType,\n config?: {\n message?: string;\n data?: LogsEntity;\n exception?: IException;\n },\n ): void {\n const { message, data, exception } = config || {};\n\n const logEntry = new LogsEntity();\n logEntry.level = level;\n if (message) logEntry.message = message;\n else if (exception?.message) logEntry.message = exception.message;\n logEntry.date = exception?.date || new Date();\n if (data?.userId !== undefined) logEntry.userId = data.userId;\n if (data?.email !== undefined) logEntry.email = data.email;\n if (data?.lastName !== undefined) logEntry.lastName = data.lastName;\n if (data?.firstName !== undefined) logEntry.firstName = data.firstName;\n if (exception?.status !== undefined) {\n logEntry.status = exception.status;\n } else if (data?.status !== undefined) {\n logEntry.status = data.status;\n }\n if (exception?.name !== undefined) logEntry.exceptionName = exception.name;\n const stackTrace = exception?.stackToJson();\n if (stackTrace !== undefined && stackTrace !== null) logEntry.stackTrace = stackTrace;\n if (data?.ip !== undefined) logEntry.ip = data.ip;\n if (data?.method !== undefined) logEntry.method = data.method;\n if (data?.path !== undefined) logEntry.path = data.path;\n if (data?.userAgent !== undefined) logEntry.userAgent = data.userAgent;\n if (data?.referer !== undefined) logEntry.referer = data.referer;\n if (data?.params !== undefined) logEntry.params = data.params;\n if (data?.payload !== undefined) logEntry.payload = data.payload;\n if (data?.queries !== undefined) logEntry.queries = data.queries;\n\n // Save to database asynchronously\n this.repository.create(logEntry);\n }\n}\n",
|
|
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": ";ybAAA,oBAAS,qBAAW,0BAGb,IAAM,EAAY,CACvB,OAAQ,CAAC,EAAyB,EAAgB,YAAc,CAC9D,MAAO,CAAC,IAAkC,CACxC,EAAU,IAAI,EAAQ,CAAK,GAGjC,ECTA,4BAAS,yBAEF,MAAM,CAAkC,CACrC,OACA,QAER,WAAW,CAAC,EAAiC,CAC3C,IAAM,EAAW,GAAS,UAAY,IAAI,IAAI,oBAAsB,GAEpE,GAAI,CAAC,EACH,MAAM,IAAI,EACR,yHACF,EAGF,KAAK,QAAU,CACb,SAAU,EACV,SAAU,GACV,OAAQ,GACR,UAAW,GACX,OAAQ,GACR,aAAc,MACX,EACH,QAAS,QACX,EAGK,SAAS,EAAY,CAC1B,GAAI,CAAC,KAAK,OACR,GAAI,CACF,KAAK,OAAS,IAAI,IAAI,IAAI,KAAK,OAAO,EACtC,MAAO,EAAO,CACd,MAAM,IAAI,EAAmB,EAAgB,OAAO,EAIxD,OAAO,KAAK,YAGD,KAAI,EAAkB,CACjC,KAAK,UAAU,OAGJ,YAAW,EAAkB,CACxC,IAAM,EAAM,KAAK,UAAU,EAE3B,GAAI,CACF,KAAM,6BACN,KAAM,8BACN,KAAM,2BAGN,KAAM;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QA+BN,KAAM,6DACN,KAAM,gEACN,MAAO,EAAI,CACX,MAAM,IAAI,EAAkB,wCAAwC,QAI3D,UAAS,EAAkB,CACtC,IAAM,EAAM,KAAK,UAAU,EAE3B,GAAI,CACF,KAAM,8BACN,MAAO,EAAI,CACX,MAAM,IAAI,EAAkB,2BAA2B,QAI9C,MAAK,EAAkB,CAClC,GAAI,CACF,MAAM,KAAK,QAAQ,MAAM,EACzB,KAAK,OAAS,OACd,MAAO,EAAI,CACX,MAAM,IAAI,EAAkB,yCAAyC,QAI5D,KAAI,EAAkB,EACrC,CC1GO,MAAM,CAAW,CACtB,GACA,MACA,QACA,KAAa,IAAI,KACjB,OACA,MACA,SACA,UACA,OACA,cACA,WACA,GACA,OACA,KACA,UACA,QACA,OACA,QACA,OACF,CCxBA,
|
|
14
|
-
"debugId": "
|
|
13
|
+
"mappings": "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",
|
|
14
|
+
"debugId": "8FC7EA24DDB9E4D864756E2164756E21",
|
|
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.
|
|
4
|
+
"version": "0.17.1",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"files": [
|
|
7
7
|
"dist",
|
|
@@ -28,14 +28,14 @@
|
|
|
28
28
|
"npm:publish": "bun publish --tolerate-republish --access public"
|
|
29
29
|
},
|
|
30
30
|
"dependencies": {
|
|
31
|
-
"@ooneex/container": "0.0.
|
|
32
|
-
"@ooneex/database": "0.0.
|
|
31
|
+
"@ooneex/container": "0.0.18",
|
|
32
|
+
"@ooneex/database": "0.0.17",
|
|
33
33
|
"@ooneex/utils": "0.1.0"
|
|
34
34
|
},
|
|
35
35
|
"devDependencies": {
|
|
36
|
-
"@ooneex/exception": "0.0.
|
|
37
|
-
"@ooneex/http-status": "0.0.
|
|
38
|
-
"@ooneex/types": "0.0.
|
|
36
|
+
"@ooneex/exception": "0.0.17",
|
|
37
|
+
"@ooneex/http-status": "0.0.17",
|
|
38
|
+
"@ooneex/types": "0.0.17"
|
|
39
39
|
},
|
|
40
40
|
"keywords": [
|
|
41
41
|
"bun",
|