logan-logger 1.1.18 → 1.1.20
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/README.md +4 -1
- package/dist/browser.cjs +1 -0
- package/dist/browser.d.cts +25 -0
- package/dist/browser.d.mts +25 -0
- package/dist/browser.mjs +58 -0
- package/dist/bun.cjs +1 -0
- package/dist/bun.d.cts +7 -0
- package/dist/bun.d.mts +7 -0
- package/dist/bun.mjs +4 -0
- package/dist/chunks/__vite-browser-external-C71mkwFX.mjs +7 -0
- package/dist/chunks/__vite-browser-external-DWL5uGdo.cjs +1 -0
- package/dist/chunks/browser-D9bA4EUQ.cjs +1 -0
- package/dist/chunks/browser-DV_BQqDK.mjs +272 -0
- package/dist/chunks/factory-B8mZAA08.cjs +1 -0
- package/dist/chunks/factory-CG8zWIqv.mjs +262 -0
- package/dist/chunks/formatting-D6Y8pN18.cjs +1 -0
- package/dist/chunks/formatting-DP_57uSR.mjs +29 -0
- package/dist/core/factory.d.cts +46 -0
- package/dist/core/factory.d.mts +46 -0
- package/dist/core/logger.d.cts +19 -0
- package/dist/core/logger.d.mts +19 -0
- package/dist/core/types.d.cts +170 -0
- package/dist/core/types.d.mts +170 -0
- package/dist/deno.cjs +1 -0
- package/dist/deno.d.cts +7 -0
- package/dist/deno.d.mts +7 -0
- package/dist/deno.mjs +4 -0
- package/dist/index.cjs +1 -0
- package/dist/index.d.cts +19 -0
- package/dist/index.d.mts +19 -0
- package/dist/index.mjs +12 -0
- package/dist/node.cjs +1 -0
- package/dist/node.d.cts +3 -0
- package/dist/node.d.mts +3 -0
- package/dist/node.mjs +2 -0
- package/dist/runtime/browser.d.cts +31 -0
- package/dist/runtime/browser.d.mts +31 -0
- package/dist/runtime/node.d.cts +16 -0
- package/dist/runtime/node.d.mts +16 -0
- package/dist/utils/config.d.cts +5 -0
- package/dist/utils/config.d.mts +5 -0
- package/dist/utils/formatting.d.cts +31 -0
- package/dist/utils/formatting.d.mts +31 -0
- package/dist/utils/runtime.d.cts +31 -0
- package/dist/utils/runtime.d.mts +31 -0
- package/dist/utils/serialization.d.cts +33 -0
- package/dist/utils/serialization.d.mts +33 -0
- package/package.json +71 -20
- package/dist/__vite-browser-external-BcPniuRQ.js +0 -1
- package/dist/__vite-browser-external-DYxpcVy9.mjs +0 -4
- package/dist/browser-BYqYELrw.js +0 -1
- package/dist/browser-Daz7tvRv.mjs +0 -313
- package/dist/browser.esm.js +0 -86
- package/dist/browser.js +0 -1
- package/dist/bun.esm.js +0 -22
- package/dist/bun.js +0 -1
- package/dist/deno.esm.js +0 -24
- package/dist/deno.js +0 -1
- package/dist/formatting-BkTf4uG7.mjs +0 -36
- package/dist/formatting-CBWhnvN2.js +0 -1
- package/dist/index.esm.js +0 -42
- package/dist/index.js +0 -1
- package/dist/node-md3-PT4o.mjs +0 -341
- package/dist/node-ooDjKAKE.js +0 -1
- package/dist/node.esm.js +0 -7
- package/dist/node.js +0 -1
package/README.md
CHANGED
|
@@ -59,6 +59,9 @@ const requestLogger = logger.child({
|
|
|
59
59
|
requestLogger.info('Processing request', { endpoint: '/api/users' });
|
|
60
60
|
```
|
|
61
61
|
|
|
62
|
+
Use named imports from `logan-logger` and its runtime subpaths. Default imports
|
|
63
|
+
are not part of the public API.
|
|
64
|
+
|
|
62
65
|
### Next.js Integration
|
|
63
66
|
|
|
64
67
|
Logan Logger is fully compatible with Next.js 13+ App Router, including Server Components, Client Components, and API Routes.
|
|
@@ -362,4 +365,4 @@ MIT License - see LICENSE file for details.
|
|
|
362
365
|
|
|
363
366
|
## Credits
|
|
364
367
|
|
|
365
|
-
Created by Logan Lindquist Land
|
|
368
|
+
Created by Logan Lindquist Land
|
package/dist/browser.cjs
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./chunks/browser-D9bA4EUQ.cjs"),t=require("./chunks/formatting-D6Y8pN18.cjs");function n(){let t=e.l();return{level:e.c.INFO,format:`text`,timestamp:!0,colorize:t.capabilities.colorSupport,metadata:{},transports:[{type:`console`,options:{}}]}}function r(){return typeof process<`u`&&process.env?process.env.NODE_ENV||process.env.NEXT_PUBLIC_APP_ENV||process.env.ENVIRONMENT||`development`:typeof window<`u`&&globalThis.__ENV__||`development`}function i(t){switch(t){case`production`:return e.c.ERROR;case`staging`:case`test`:return e.c.WARN;case`development`:case`dev`:return e.c.DEBUG;default:return e.c.INFO}}function a(t={}){let r=n(),i={...r,...t,metadata:{...r.metadata,...t.metadata}};return new e.t(i)}function o(){let e=r();return a({level:i(e),colorize:e!==`production`,timestamp:!0,format:e===`production`?`json`:`text`})}var s=o(),c={debug:(e,t)=>s.debug(e,t),info:(e,t)=>s.info(e,t),warn:(e,t)=>s.warn(e,t),error:(e,t)=>s.error(e,t)};exports.BrowserLogger=e.t,exports.ConsoleGroupLogger=e.n,exports.LogLevel=e.c,exports.PerformanceLogger=e.r,exports.createLogger=a,exports.createLoggerForEnvironment=o,exports.detectRuntime=e.l,exports.filterSensitiveData=e.i,exports.formatLevel=t.t,exports.formatLogEntry=t.n,exports.isBrowser=e.u,exports.isBun=e.d,exports.isDeno=e.f,exports.isNode=e.p,exports.log=c,exports.logger=s,exports.safeStringify=e.a,exports.serializeError=e.o;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { ILogger, LoggerConfig } from './core/types.cjs';
|
|
2
|
+
export type { ILogger, LoggerConfig } from './core/types.cjs';
|
|
3
|
+
export { LogLevel } from './core/types.cjs';
|
|
4
|
+
export { BrowserLogger, ConsoleGroupLogger, PerformanceLogger } from './runtime/browser.cjs';
|
|
5
|
+
export * from './utils/formatting.cjs';
|
|
6
|
+
export * from './utils/runtime.cjs';
|
|
7
|
+
export * from './utils/serialization.cjs';
|
|
8
|
+
/**
|
|
9
|
+
* Browser-specific logger factory function.
|
|
10
|
+
* Creates a BrowserLogger instance without importing Node.js dependencies.
|
|
11
|
+
*/
|
|
12
|
+
export declare function createLogger(config?: Partial<LoggerConfig>): ILogger;
|
|
13
|
+
/**
|
|
14
|
+
* Create a browser logger with configuration based on the current environment.
|
|
15
|
+
* Automatically detects production/development/test environments and
|
|
16
|
+
* sets appropriate log levels and formatting.
|
|
17
|
+
*/
|
|
18
|
+
export declare function createLoggerForEnvironment(): ILogger;
|
|
19
|
+
export declare const logger: ILogger;
|
|
20
|
+
export declare const log: {
|
|
21
|
+
debug: (message: string, meta?: any) => void;
|
|
22
|
+
info: (message: string, meta?: any) => void;
|
|
23
|
+
warn: (message: string, meta?: any) => void;
|
|
24
|
+
error: (message: string, meta?: any) => void;
|
|
25
|
+
};
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { ILogger, LoggerConfig } from './core/types.mjs';
|
|
2
|
+
export type { ILogger, LoggerConfig } from './core/types.mjs';
|
|
3
|
+
export { LogLevel } from './core/types.mjs';
|
|
4
|
+
export { BrowserLogger, ConsoleGroupLogger, PerformanceLogger } from './runtime/browser.mjs';
|
|
5
|
+
export * from './utils/formatting.mjs';
|
|
6
|
+
export * from './utils/runtime.mjs';
|
|
7
|
+
export * from './utils/serialization.mjs';
|
|
8
|
+
/**
|
|
9
|
+
* Browser-specific logger factory function.
|
|
10
|
+
* Creates a BrowserLogger instance without importing Node.js dependencies.
|
|
11
|
+
*/
|
|
12
|
+
export declare function createLogger(config?: Partial<LoggerConfig>): ILogger;
|
|
13
|
+
/**
|
|
14
|
+
* Create a browser logger with configuration based on the current environment.
|
|
15
|
+
* Automatically detects production/development/test environments and
|
|
16
|
+
* sets appropriate log levels and formatting.
|
|
17
|
+
*/
|
|
18
|
+
export declare function createLoggerForEnvironment(): ILogger;
|
|
19
|
+
export declare const logger: ILogger;
|
|
20
|
+
export declare const log: {
|
|
21
|
+
debug: (message: string, meta?: any) => void;
|
|
22
|
+
info: (message: string, meta?: any) => void;
|
|
23
|
+
warn: (message: string, meta?: any) => void;
|
|
24
|
+
error: (message: string, meta?: any) => void;
|
|
25
|
+
};
|
package/dist/browser.mjs
ADDED
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { a as e, c as t, d as n, f as r, i, l as a, n as o, o as s, p as c, r as l, t as u, u as d } from "./chunks/browser-DV_BQqDK.mjs";
|
|
2
|
+
import { n as f, t as p } from "./chunks/formatting-DP_57uSR.mjs";
|
|
3
|
+
//#region src/browser.ts
|
|
4
|
+
function m() {
|
|
5
|
+
let e = a();
|
|
6
|
+
return {
|
|
7
|
+
level: t.INFO,
|
|
8
|
+
format: "text",
|
|
9
|
+
timestamp: !0,
|
|
10
|
+
colorize: e.capabilities.colorSupport,
|
|
11
|
+
metadata: {},
|
|
12
|
+
transports: [{
|
|
13
|
+
type: "console",
|
|
14
|
+
options: {}
|
|
15
|
+
}]
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
function h() {
|
|
19
|
+
return typeof process < "u" && process.env ? process.env.NODE_ENV || process.env.NEXT_PUBLIC_APP_ENV || process.env.ENVIRONMENT || "development" : typeof window < "u" && globalThis.__ENV__ || "development";
|
|
20
|
+
}
|
|
21
|
+
function g(e) {
|
|
22
|
+
switch (e) {
|
|
23
|
+
case "production": return t.ERROR;
|
|
24
|
+
case "staging":
|
|
25
|
+
case "test": return t.WARN;
|
|
26
|
+
case "development":
|
|
27
|
+
case "dev": return t.DEBUG;
|
|
28
|
+
default: return t.INFO;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
function _(e = {}) {
|
|
32
|
+
let t = m(), n = {
|
|
33
|
+
...t,
|
|
34
|
+
...e,
|
|
35
|
+
metadata: {
|
|
36
|
+
...t.metadata,
|
|
37
|
+
...e.metadata
|
|
38
|
+
}
|
|
39
|
+
};
|
|
40
|
+
return new u(n);
|
|
41
|
+
}
|
|
42
|
+
function v() {
|
|
43
|
+
let e = h();
|
|
44
|
+
return _({
|
|
45
|
+
level: g(e),
|
|
46
|
+
colorize: e !== "production",
|
|
47
|
+
timestamp: !0,
|
|
48
|
+
format: e === "production" ? "json" : "text"
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
var y = v(), b = {
|
|
52
|
+
debug: (e, t) => y.debug(e, t),
|
|
53
|
+
info: (e, t) => y.info(e, t),
|
|
54
|
+
warn: (e, t) => y.warn(e, t),
|
|
55
|
+
error: (e, t) => y.error(e, t)
|
|
56
|
+
};
|
|
57
|
+
//#endregion
|
|
58
|
+
export { u as BrowserLogger, o as ConsoleGroupLogger, t as LogLevel, l as PerformanceLogger, _ as createLogger, v as createLoggerForEnvironment, a as detectRuntime, i as filterSensitiveData, p as formatLevel, f as formatLogEntry, d as isBrowser, n as isBun, r as isDeno, c as isNode, b as log, y as logger, e as safeStringify, s as serializeError };
|
package/dist/bun.cjs
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./chunks/factory-B8mZAA08.cjs"),t=require("./chunks/browser-D9bA4EUQ.cjs"),n=require("./chunks/formatting-D6Y8pN18.cjs");exports.NodeLogger=e.u,exports.createLogger=e.n,exports.createLoggerForEnvironment=e.r,exports.detectRuntime=t.l,exports.filterSensitiveData=t.i,exports.formatLevel=n.t,exports.formatLogEntry=n.n,exports.getDefaultConfig=e.o,exports.isBrowser=t.u,exports.isBun=t.d,exports.isDeno=t.f,exports.isNode=t.p,exports.loadConfigFromEnvironment=e.s,exports.loadConfigFromFile=e.c,exports.mergeConfigs=e.l,exports.safeStringify=t.a,exports.serializeError=t.o;
|
package/dist/bun.d.cts
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export { createLogger, createLoggerForEnvironment } from './core/factory.cjs';
|
|
2
|
+
export type { ILogger, LoggerConfig, LogLevel } from './core/types.cjs';
|
|
3
|
+
export { NodeLogger } from './runtime/node.cjs';
|
|
4
|
+
export * from './utils/config.cjs';
|
|
5
|
+
export * from './utils/formatting.cjs';
|
|
6
|
+
export * from './utils/runtime.cjs';
|
|
7
|
+
export * from './utils/serialization.cjs';
|
package/dist/bun.d.mts
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export { createLogger, createLoggerForEnvironment } from './core/factory.mjs';
|
|
2
|
+
export type { ILogger, LoggerConfig, LogLevel } from './core/types.mjs';
|
|
3
|
+
export { NodeLogger } from './runtime/node.mjs';
|
|
4
|
+
export * from './utils/config.mjs';
|
|
5
|
+
export * from './utils/formatting.mjs';
|
|
6
|
+
export * from './utils/runtime.mjs';
|
|
7
|
+
export * from './utils/serialization.mjs';
|
package/dist/bun.mjs
ADDED
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { c as e, l as t, n, o as r, r as i, s as a, u as o } from "./chunks/factory-CG8zWIqv.mjs";
|
|
2
|
+
import { a as s, d as c, f as l, i as u, l as d, o as f, p, u as m } from "./chunks/browser-DV_BQqDK.mjs";
|
|
3
|
+
import { n as h, t as g } from "./chunks/formatting-DP_57uSR.mjs";
|
|
4
|
+
export { o as NodeLogger, n as createLogger, i as createLoggerForEnvironment, d as detectRuntime, u as filterSensitiveData, g as formatLevel, h as formatLogEntry, r as getDefaultConfig, m as isBrowser, c as isBun, l as isDeno, p as isNode, a as loadConfigFromEnvironment, e as loadConfigFromFile, t as mergeConfigs, s as safeStringify, f as serializeError };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e=require("./factory-B8mZAA08.cjs").f(((e,t)=>{t.exports={}}));Object.defineProperty(exports,"default",{enumerable:!0,get:function(){return e()}});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
function e(){let e=t();return{name:e,version:n(e),capabilities:r(e)}}function t(){return globalThis.Deno===void 0?globalThis.Bun===void 0?typeof window<`u`&&typeof document<`u`?`browser`:typeof globalThis.importScripts==`function`&&typeof window>`u`?`webworker`:typeof process<`u`&&process.versions&&process.versions.node?`node`:`unknown`:`bun`:`deno`}function n(e){switch(e){case`node`:return typeof process<`u`?process.version:void 0;case`deno`:return globalThis.Deno===void 0?void 0:globalThis.Deno.version?.deno;case`bun`:return globalThis.Bun===void 0?void 0:globalThis.Bun.version;case`browser`:return typeof navigator<`u`?navigator.userAgent:void 0;default:return}}function r(e){switch(e){case`node`:return{fileSystem:!0,colorSupport:!0,processInfo:!0,streams:!0};case`deno`:return{fileSystem:!0,colorSupport:!0,processInfo:!0,streams:!0};case`bun`:return{fileSystem:!0,colorSupport:!0,processInfo:!0,streams:!0};case`browser`:return{fileSystem:!1,colorSupport:!0,processInfo:!1,streams:!1};case`webworker`:return{fileSystem:!1,colorSupport:!1,processInfo:!1,streams:!1};default:return{fileSystem:!1,colorSupport:!1,processInfo:!1,streams:!1}}}function i(){return t()===`node`}function a(){return t()===`browser`}function o(){return t()===`deno`}function s(){return t()===`bun`}var c=function(e){return e[e.DEBUG=0]=`DEBUG`,e[e.INFO=1]=`INFO`,e[e.WARN=2]=`WARN`,e[e.ERROR=3]=`ERROR`,e[e.SILENT=4]=`SILENT`,e}({}),l=class{constructor(t={}){this.childMetadata={},this.config=t,this.level=t.level??c.INFO,this.runtime=e().name}debug(e,t){this.log(c.DEBUG,e,t)}info(e,t){this.log(c.INFO,e,t)}warn(e,t){this.log(c.WARN,e,t)}error(e,t){this.log(c.ERROR,e,t)}log(e,t,n){if(!this.shouldLog(e))return;let r=typeof t==`function`?t():t,i={...this.childMetadata,...n},a={timestamp:new Date,level:e,message:r,metadata:Object.keys(i).length>0?i:void 0,runtime:this.runtime};this.writeLog(a)}setLevel(e){this.level=e}getLevel(){return this.level}child(e){let t=this.createChild();return t.childMetadata={...this.childMetadata,...e},t}shouldLog(e){return e>=this.level}};function u(e,t){let n=new WeakSet;return JSON.stringify(e,(e,t)=>{if(typeof t==`object`&&t){if(n.has(t))return`[Circular]`;n.add(t)}return t instanceof Error?{name:t.name,message:t.message,stack:t.stack,...Object.getOwnPropertyNames(t).reduce((e,n)=>(n!==`name`&&n!==`message`&&n!==`stack`&&(e[n]=t[n]),e),{})}:typeof t==`function`?`[Function: ${t.name||`anonymous`}]`:t===void 0?`[undefined]`:typeof t==`bigint`?`[BigInt: ${t.toString()}]`:typeof t==`symbol`?`[Symbol: ${t.toString()}]`:t},t)}function d(e,t=[`password`,`token`,`secret`,`key`,`auth`]){if(typeof e!=`object`||!e)return e;let n=Array.isArray(e)?[]:{};for(let[r,i]of Object.entries(e))n[r]=t.some(e=>r.toLowerCase().includes(e.toLowerCase()))?`[REDACTED]`:typeof i==`object`&&i?d(i,t):i;return n}function f(e){return e instanceof Error?{name:e.name,message:e.message,stack:e.stack,...e}:e}var p=class e extends l{constructor(e={}){super(e)}writeLog(e){let t=this.formatMessage(e),n=this.getConsoleStyle(e.level),r=`%c${t}${e.metadata?` ${u(e.metadata)}`:``}`;switch(e.level){case c.DEBUG:console.debug?console.debug(r,n):console.log(r,n);break;case c.INFO:console.info(r,n);break;case c.WARN:console.warn(r,n);break;case c.ERROR:console.error(r,n)}}createChild(){return new e(this.config)}formatMessage(e){return`[${e.timestamp.toISOString()}] ${c[e.level].toUpperCase()}: ${e.message}`}getConsoleStyle(e){if(!this.config.colorize)return``;switch(e){case c.DEBUG:return`color: #888; font-weight: normal;`;case c.INFO:return`color: #007acc; font-weight: normal;`;case c.WARN:return`color: #ff8c00; font-weight: bold;`;case c.ERROR:return`color: #dc3545; font-weight: bold;`;default:return``}}shouldLogInProduction(){return(globalThis.process?.env?.NODE_ENV||globalThis.process?.env?.NEXT_PUBLIC_APP_ENV||`development`)!==`production`||this.level<=c.ERROR}shouldLog(e){return!this.shouldLogInProduction()&&e<c.ERROR?!1:super.shouldLog(e)}},m=class extends p{constructor(...e){super(...e),this.groupStack=[]}group(e){console.group(e),this.groupStack.push(e)}groupCollapsed(e){console.groupCollapsed(e),this.groupStack.push(e)}groupEnd(){console.groupEnd(),this.groupStack.pop()}getCurrentGroupStack(){return[...this.groupStack]}getCurrentGroupPath(){return this.groupStack.join(` > `)}time(e){console.time(e)}timeEnd(e){console.timeEnd(e)}trace(e,t){console.trace(e,t)}count(e){console.count(e)}countReset(e){console.countReset(e)}table(e){console.table(e)}},h=class extends p{mark(e){typeof performance<`u`&&performance.mark&&performance.mark(e)}measure(e,t,n){if(typeof performance<`u`&&performance.measure)try{performance.measure(e,t,n);let r=performance.getEntriesByName(e,`measure`);if(r.length>0){let t=r[r.length-1];this.info(`Performance: ${e}`,{duration:t.duration,startTime:t.startTime})}}catch(t){this.warn(`Failed to measure performance`,{name:e,error:t})}}clearMarks(e){typeof performance<`u`&&performance.clearMarks&&performance.clearMarks(e)}clearMeasures(e){typeof performance<`u`&&performance.clearMeasures&&performance.clearMeasures(e)}};Object.defineProperty(exports,"a",{enumerable:!0,get:function(){return u}}),Object.defineProperty(exports,"c",{enumerable:!0,get:function(){return c}}),Object.defineProperty(exports,"d",{enumerable:!0,get:function(){return s}}),Object.defineProperty(exports,"f",{enumerable:!0,get:function(){return o}}),Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return d}}),Object.defineProperty(exports,"l",{enumerable:!0,get:function(){return e}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return m}}),Object.defineProperty(exports,"o",{enumerable:!0,get:function(){return f}}),Object.defineProperty(exports,"p",{enumerable:!0,get:function(){return i}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return h}}),Object.defineProperty(exports,"s",{enumerable:!0,get:function(){return l}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return p}}),Object.defineProperty(exports,"u",{enumerable:!0,get:function(){return a}});
|
|
@@ -0,0 +1,272 @@
|
|
|
1
|
+
//#region src/utils/runtime.ts
|
|
2
|
+
function e() {
|
|
3
|
+
let e = t();
|
|
4
|
+
return {
|
|
5
|
+
name: e,
|
|
6
|
+
version: n(e),
|
|
7
|
+
capabilities: r(e)
|
|
8
|
+
};
|
|
9
|
+
}
|
|
10
|
+
function t() {
|
|
11
|
+
return globalThis.Deno === void 0 ? globalThis.Bun === void 0 ? typeof window < "u" && typeof document < "u" ? "browser" : typeof globalThis.importScripts == "function" && typeof window > "u" ? "webworker" : typeof process < "u" && process.versions && process.versions.node ? "node" : "unknown" : "bun" : "deno";
|
|
12
|
+
}
|
|
13
|
+
function n(e) {
|
|
14
|
+
switch (e) {
|
|
15
|
+
case "node": return typeof process < "u" ? process.version : void 0;
|
|
16
|
+
case "deno": return globalThis.Deno === void 0 ? void 0 : globalThis.Deno.version?.deno;
|
|
17
|
+
case "bun": return globalThis.Bun === void 0 ? void 0 : globalThis.Bun.version;
|
|
18
|
+
case "browser": return typeof navigator < "u" ? navigator.userAgent : void 0;
|
|
19
|
+
default: return;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
function r(e) {
|
|
23
|
+
switch (e) {
|
|
24
|
+
case "node": return {
|
|
25
|
+
fileSystem: !0,
|
|
26
|
+
colorSupport: !0,
|
|
27
|
+
processInfo: !0,
|
|
28
|
+
streams: !0
|
|
29
|
+
};
|
|
30
|
+
case "deno": return {
|
|
31
|
+
fileSystem: !0,
|
|
32
|
+
colorSupport: !0,
|
|
33
|
+
processInfo: !0,
|
|
34
|
+
streams: !0
|
|
35
|
+
};
|
|
36
|
+
case "bun": return {
|
|
37
|
+
fileSystem: !0,
|
|
38
|
+
colorSupport: !0,
|
|
39
|
+
processInfo: !0,
|
|
40
|
+
streams: !0
|
|
41
|
+
};
|
|
42
|
+
case "browser": return {
|
|
43
|
+
fileSystem: !1,
|
|
44
|
+
colorSupport: !0,
|
|
45
|
+
processInfo: !1,
|
|
46
|
+
streams: !1
|
|
47
|
+
};
|
|
48
|
+
case "webworker": return {
|
|
49
|
+
fileSystem: !1,
|
|
50
|
+
colorSupport: !1,
|
|
51
|
+
processInfo: !1,
|
|
52
|
+
streams: !1
|
|
53
|
+
};
|
|
54
|
+
default: return {
|
|
55
|
+
fileSystem: !1,
|
|
56
|
+
colorSupport: !1,
|
|
57
|
+
processInfo: !1,
|
|
58
|
+
streams: !1
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
function i() {
|
|
63
|
+
return t() === "node";
|
|
64
|
+
}
|
|
65
|
+
function a() {
|
|
66
|
+
return t() === "browser";
|
|
67
|
+
}
|
|
68
|
+
function o() {
|
|
69
|
+
return t() === "deno";
|
|
70
|
+
}
|
|
71
|
+
function s() {
|
|
72
|
+
return t() === "bun";
|
|
73
|
+
}
|
|
74
|
+
//#endregion
|
|
75
|
+
//#region src/core/types.ts
|
|
76
|
+
var c = /* @__PURE__ */ function(e) {
|
|
77
|
+
return e[e.DEBUG = 0] = "DEBUG", e[e.INFO = 1] = "INFO", e[e.WARN = 2] = "WARN", e[e.ERROR = 3] = "ERROR", e[e.SILENT = 4] = "SILENT", e;
|
|
78
|
+
}({}), l = class {
|
|
79
|
+
constructor(t = {}) {
|
|
80
|
+
this.childMetadata = {}, this.config = t, this.level = t.level ?? c.INFO, this.runtime = e().name;
|
|
81
|
+
}
|
|
82
|
+
debug(e, t) {
|
|
83
|
+
this.log(c.DEBUG, e, t);
|
|
84
|
+
}
|
|
85
|
+
info(e, t) {
|
|
86
|
+
this.log(c.INFO, e, t);
|
|
87
|
+
}
|
|
88
|
+
warn(e, t) {
|
|
89
|
+
this.log(c.WARN, e, t);
|
|
90
|
+
}
|
|
91
|
+
error(e, t) {
|
|
92
|
+
this.log(c.ERROR, e, t);
|
|
93
|
+
}
|
|
94
|
+
log(e, t, n) {
|
|
95
|
+
if (!this.shouldLog(e)) return;
|
|
96
|
+
let r = typeof t == "function" ? t() : t, i = {
|
|
97
|
+
...this.childMetadata,
|
|
98
|
+
...n
|
|
99
|
+
}, a = {
|
|
100
|
+
timestamp: /* @__PURE__ */ new Date(),
|
|
101
|
+
level: e,
|
|
102
|
+
message: r,
|
|
103
|
+
metadata: Object.keys(i).length > 0 ? i : void 0,
|
|
104
|
+
runtime: this.runtime
|
|
105
|
+
};
|
|
106
|
+
this.writeLog(a);
|
|
107
|
+
}
|
|
108
|
+
setLevel(e) {
|
|
109
|
+
this.level = e;
|
|
110
|
+
}
|
|
111
|
+
getLevel() {
|
|
112
|
+
return this.level;
|
|
113
|
+
}
|
|
114
|
+
child(e) {
|
|
115
|
+
let t = this.createChild();
|
|
116
|
+
return t.childMetadata = {
|
|
117
|
+
...this.childMetadata,
|
|
118
|
+
...e
|
|
119
|
+
}, t;
|
|
120
|
+
}
|
|
121
|
+
shouldLog(e) {
|
|
122
|
+
return e >= this.level;
|
|
123
|
+
}
|
|
124
|
+
};
|
|
125
|
+
//#endregion
|
|
126
|
+
//#region src/utils/serialization.ts
|
|
127
|
+
function u(e, t) {
|
|
128
|
+
let n = /* @__PURE__ */ new WeakSet();
|
|
129
|
+
return JSON.stringify(e, (e, t) => {
|
|
130
|
+
if (typeof t == "object" && t) {
|
|
131
|
+
if (n.has(t)) return "[Circular]";
|
|
132
|
+
n.add(t);
|
|
133
|
+
}
|
|
134
|
+
return t instanceof Error ? {
|
|
135
|
+
name: t.name,
|
|
136
|
+
message: t.message,
|
|
137
|
+
stack: t.stack,
|
|
138
|
+
...Object.getOwnPropertyNames(t).reduce((e, n) => (n !== "name" && n !== "message" && n !== "stack" && (e[n] = t[n]), e), {})
|
|
139
|
+
} : typeof t == "function" ? `[Function: ${t.name || "anonymous"}]` : t === void 0 ? "[undefined]" : typeof t == "bigint" ? `[BigInt: ${t.toString()}]` : typeof t == "symbol" ? `[Symbol: ${t.toString()}]` : t;
|
|
140
|
+
}, t);
|
|
141
|
+
}
|
|
142
|
+
function d(e, t = [
|
|
143
|
+
"password",
|
|
144
|
+
"token",
|
|
145
|
+
"secret",
|
|
146
|
+
"key",
|
|
147
|
+
"auth"
|
|
148
|
+
]) {
|
|
149
|
+
if (typeof e != "object" || !e) return e;
|
|
150
|
+
let n = Array.isArray(e) ? [] : {};
|
|
151
|
+
for (let [r, i] of Object.entries(e)) n[r] = t.some((e) => r.toLowerCase().includes(e.toLowerCase())) ? "[REDACTED]" : typeof i == "object" && i ? d(i, t) : i;
|
|
152
|
+
return n;
|
|
153
|
+
}
|
|
154
|
+
function f(e) {
|
|
155
|
+
return e instanceof Error ? {
|
|
156
|
+
name: e.name,
|
|
157
|
+
message: e.message,
|
|
158
|
+
stack: e.stack,
|
|
159
|
+
...e
|
|
160
|
+
} : e;
|
|
161
|
+
}
|
|
162
|
+
//#endregion
|
|
163
|
+
//#region src/runtime/browser.ts
|
|
164
|
+
var p = class e extends l {
|
|
165
|
+
constructor(e = {}) {
|
|
166
|
+
super(e);
|
|
167
|
+
}
|
|
168
|
+
writeLog(e) {
|
|
169
|
+
let t = this.formatMessage(e), n = this.getConsoleStyle(e.level), r = `%c${t}${e.metadata ? ` ${u(e.metadata)}` : ""}`;
|
|
170
|
+
switch (e.level) {
|
|
171
|
+
case c.DEBUG:
|
|
172
|
+
console.debug ? console.debug(r, n) : console.log(r, n);
|
|
173
|
+
break;
|
|
174
|
+
case c.INFO:
|
|
175
|
+
console.info(r, n);
|
|
176
|
+
break;
|
|
177
|
+
case c.WARN:
|
|
178
|
+
console.warn(r, n);
|
|
179
|
+
break;
|
|
180
|
+
case c.ERROR: console.error(r, n);
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
createChild() {
|
|
184
|
+
return new e(this.config);
|
|
185
|
+
}
|
|
186
|
+
formatMessage(e) {
|
|
187
|
+
return `[${e.timestamp.toISOString()}] ${c[e.level].toUpperCase()}: ${e.message}`;
|
|
188
|
+
}
|
|
189
|
+
getConsoleStyle(e) {
|
|
190
|
+
if (!this.config.colorize) return "";
|
|
191
|
+
switch (e) {
|
|
192
|
+
case c.DEBUG: return "color: #888; font-weight: normal;";
|
|
193
|
+
case c.INFO: return "color: #007acc; font-weight: normal;";
|
|
194
|
+
case c.WARN: return "color: #ff8c00; font-weight: bold;";
|
|
195
|
+
case c.ERROR: return "color: #dc3545; font-weight: bold;";
|
|
196
|
+
default: return "";
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
shouldLogInProduction() {
|
|
200
|
+
return (globalThis.process?.env?.NODE_ENV || globalThis.process?.env?.NEXT_PUBLIC_APP_ENV || "development") !== "production" || this.level <= c.ERROR;
|
|
201
|
+
}
|
|
202
|
+
shouldLog(e) {
|
|
203
|
+
return !this.shouldLogInProduction() && e < c.ERROR ? !1 : super.shouldLog(e);
|
|
204
|
+
}
|
|
205
|
+
}, m = class extends p {
|
|
206
|
+
constructor(...e) {
|
|
207
|
+
super(...e), this.groupStack = [];
|
|
208
|
+
}
|
|
209
|
+
group(e) {
|
|
210
|
+
console.group(e), this.groupStack.push(e);
|
|
211
|
+
}
|
|
212
|
+
groupCollapsed(e) {
|
|
213
|
+
console.groupCollapsed(e), this.groupStack.push(e);
|
|
214
|
+
}
|
|
215
|
+
groupEnd() {
|
|
216
|
+
console.groupEnd(), this.groupStack.pop();
|
|
217
|
+
}
|
|
218
|
+
getCurrentGroupStack() {
|
|
219
|
+
return [...this.groupStack];
|
|
220
|
+
}
|
|
221
|
+
getCurrentGroupPath() {
|
|
222
|
+
return this.groupStack.join(" > ");
|
|
223
|
+
}
|
|
224
|
+
time(e) {
|
|
225
|
+
console.time(e);
|
|
226
|
+
}
|
|
227
|
+
timeEnd(e) {
|
|
228
|
+
console.timeEnd(e);
|
|
229
|
+
}
|
|
230
|
+
trace(e, t) {
|
|
231
|
+
console.trace(e, t);
|
|
232
|
+
}
|
|
233
|
+
count(e) {
|
|
234
|
+
console.count(e);
|
|
235
|
+
}
|
|
236
|
+
countReset(e) {
|
|
237
|
+
console.countReset(e);
|
|
238
|
+
}
|
|
239
|
+
table(e) {
|
|
240
|
+
console.table(e);
|
|
241
|
+
}
|
|
242
|
+
}, h = class extends p {
|
|
243
|
+
mark(e) {
|
|
244
|
+
typeof performance < "u" && performance.mark && performance.mark(e);
|
|
245
|
+
}
|
|
246
|
+
measure(e, t, n) {
|
|
247
|
+
if (typeof performance < "u" && performance.measure) try {
|
|
248
|
+
performance.measure(e, t, n);
|
|
249
|
+
let r = performance.getEntriesByName(e, "measure");
|
|
250
|
+
if (r.length > 0) {
|
|
251
|
+
let t = r[r.length - 1];
|
|
252
|
+
this.info(`Performance: ${e}`, {
|
|
253
|
+
duration: t.duration,
|
|
254
|
+
startTime: t.startTime
|
|
255
|
+
});
|
|
256
|
+
}
|
|
257
|
+
} catch (t) {
|
|
258
|
+
this.warn("Failed to measure performance", {
|
|
259
|
+
name: e,
|
|
260
|
+
error: t
|
|
261
|
+
});
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
clearMarks(e) {
|
|
265
|
+
typeof performance < "u" && performance.clearMarks && performance.clearMarks(e);
|
|
266
|
+
}
|
|
267
|
+
clearMeasures(e) {
|
|
268
|
+
typeof performance < "u" && performance.clearMeasures && performance.clearMeasures(e);
|
|
269
|
+
}
|
|
270
|
+
};
|
|
271
|
+
//#endregion
|
|
272
|
+
export { u as a, c, s as d, o as f, d as i, e as l, m as n, f as o, i as p, h as r, l as s, p as t, a as u };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,t)=>()=>(t||(e((t={exports:{}}).exports,t),e=null),t.exports),s=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;l<u;l++)d=c[l],!a.call(e,d)&&d!==o&&t(e,d,{get:(e=>i[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},c=(n,r,o)=>(o=n==null?{}:e(i(n)),s(r||!n||!n.__esModule||!a.call(n,`default`)?t(o,`default`,{value:n,enumerable:!0}):o,n));const l=require("./browser-D9bA4EUQ.cjs");var u=class e extends l.s{constructor(e={}){super(e),this.initializeWinston()}async initializeWinston(){try{let e=await import(`winston`);this.winston=this.createWinstonLogger(e)}catch(e){console.warn(`[logan-logger] Winston not found, falling back to console logging:`,e)}}createWinstonLogger(e){let t=e.format.combine(e.format.timestamp({format:`YYYY-MM-DD HH:mm:ss`}),e.format.errors({stack:!0}),e.format.json(),e.format.prettyPrint()),n=e.format.combine(e.format.colorize(),e.format.timestamp({format:`HH:mm:ss`}),e.format.printf(({timestamp:e,level:t,message:n,...r})=>`${e} [${t}]: ${n} ${Object.keys(r).length?JSON.stringify(r,null,2):``}`)),r=e.createLogger({level:this.getWinstonLevel(this.level),format:t,transports:[new e.transports.Console({format:process.env.NODE_ENV===`production`?t:n})]});return process.env.NODE_ENV===`production`&&(r.add(new e.transports.File({filename:`logs/error.log`,level:`error`,maxsize:5242880,maxFiles:5})),r.add(new e.transports.File({filename:`logs/combined.log`,maxsize:5242880,maxFiles:10}))),r}writeLog(e){this.winston?this.winston.log({level:this.getWinstonLevel(e.level),message:e.message,timestamp:e.timestamp,...e.metadata}):this.writeToConsole(e)}createChild(){return new e(this.config)}writeToConsole(e){let t=e.timestamp.toISOString(),n=l.c[e.level].toLowerCase(),r=e.metadata?` ${l.a(e.metadata)}`:``,i=`[${t}] ${n.toUpperCase()}: ${e.message}${r}`;switch(e.level){case l.c.DEBUG:console.debug(i);break;case l.c.INFO:console.info(i);break;case l.c.WARN:console.warn(i);break;case l.c.ERROR:console.error(i)}}getWinstonLevel(e){switch(e){case l.c.DEBUG:return`debug`;case l.c.INFO:return`info`;case l.c.WARN:return`warn`;case l.c.ERROR:return`error`;default:return`info`}}setLevel(e){super.setLevel(e),this.winston&&(this.winston.level=this.getWinstonLevel(e))}};function d(e){return{write:t=>{e.info(t.trim())}}}function f(){let e=l.l();return{level:l.c.INFO,format:`text`,timestamp:!0,colorize:e.capabilities.colorSupport,metadata:{},transports:[{type:`console`,options:{}}]}}function p(){let e={};if(typeof process<`u`&&process.env){let t=process.env;t.LOG_LEVEL&&(e.level=v(t.LOG_LEVEL)),t.LOG_FORMAT&&[`json`,`text`].includes(t.LOG_FORMAT)&&(e.format=t.LOG_FORMAT),t.LOG_TIMESTAMP&&(e.timestamp=t.LOG_TIMESTAMP.toLowerCase()===`true`),t.LOG_COLOR&&(e.colorize=t.LOG_COLOR.toLowerCase()===`true`)}return e}async function m(e){let t=l.l();if(!t.capabilities.fileSystem)return{};let n=e?[e]:[`logan.config.json`,`logan.config.js`,`.loganrc`,`package.json`];for(let e of n)try{if(t.name===`node`)return await h(e);if(t.name===`deno`)return await g(e);if(t.name===`bun`)return await _(e)}catch{}return{}}async function h(e){try{let t=await Promise.resolve().then(()=>c(require("./__vite-browser-external-DWL5uGdo.cjs").default)),n=await Promise.resolve().then(()=>c(require("./__vite-browser-external-DWL5uGdo.cjs").default));if(e.endsWith(`.json`)){let n=await t.readFile(e,`utf-8`),r=JSON.parse(n);return e===`package.json`?r.logan||{}:r}if(e.endsWith(`.js`)){let t=await import(`file://${n.resolve(e)}`);return t.default||t}}catch{}return{}}async function g(e){try{if(e.endsWith(`.json`)){let t=await globalThis.Deno.readTextFile(e),n=JSON.parse(t);return e===`package.json`?n.logan||{}:n}if(e.endsWith(`.js`)){let t=await import(`./${e}`);return t.default||t}}catch{}return{}}async function _(e){return h(e)}function v(e){switch(e.toLowerCase()){case`debug`:return l.c.DEBUG;case`info`:return l.c.INFO;case`warn`:case`warning`:return l.c.WARN;case`error`:return l.c.ERROR;case`silent`:case`none`:return l.c.SILENT;default:return l.c.INFO}}function y(...e){let t=f();return e.reduce((e,t)=>({...e,...t,metadata:{...e.metadata,...t.metadata},transports:t.transports||e.transports}),t)}var b=class e{static create(t={}){let n=l.l(),r=e.mergeConfig(t);switch(n.name){case`node`:return new u(r);case`deno`:return new l.t(r);case`bun`:return new u(r);case`browser`:case`webworker`:return new l.t(r);default:return new l.t(r)}}static createChild(e,t){return e.child(t)}static mergeConfig(e){let t=f();return{...t,...e,metadata:{...t.metadata,...e.metadata}}}};function x(e){return b.create(e)}function S(){let e=C();return x({level:w(e),colorize:e!==`production`,timestamp:!0,format:e===`production`?`json`:`text`})}function C(){return typeof process<`u`&&process.env?process.env.NODE_ENV||process.env.NEXT_PUBLIC_APP_ENV||process.env.ENVIRONMENT||`development`:typeof window<`u`&&globalThis.__ENV__||`development`}function w(e){switch(e){case`production`:return l.c.ERROR;case`staging`:case`test`:return l.c.WARN;case`development`:case`dev`:return l.c.DEBUG;default:return l.c.INFO}}function T(e){switch(e.toLowerCase()){case`debug`:return l.c.DEBUG;case`info`:return l.c.INFO;case`warn`:case`warning`:return l.c.WARN;case`error`:return l.c.ERROR;case`silent`:case`none`:return l.c.SILENT;default:return l.c.INFO}}function E(e){switch(e){case l.c.DEBUG:return`debug`;case l.c.INFO:return`info`;case l.c.WARN:return`warn`;case l.c.ERROR:return`error`;case l.c.SILENT:return`silent`;default:return`info`}}Object.defineProperty(exports,"a",{enumerable:!0,get:function(){return T}}),Object.defineProperty(exports,"c",{enumerable:!0,get:function(){return m}}),Object.defineProperty(exports,"d",{enumerable:!0,get:function(){return d}}),Object.defineProperty(exports,"f",{enumerable:!0,get:function(){return o}}),Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return E}}),Object.defineProperty(exports,"l",{enumerable:!0,get:function(){return y}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return x}}),Object.defineProperty(exports,"o",{enumerable:!0,get:function(){return f}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return S}}),Object.defineProperty(exports,"s",{enumerable:!0,get:function(){return p}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return b}}),Object.defineProperty(exports,"u",{enumerable:!0,get:function(){return u}});
|