logan-logger 1.1.21 â 2.0.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/README.md +83 -7
- package/dist/browser.cjs +1 -1
- package/dist/browser.mjs +20 -42
- package/dist/bun.cjs +1 -1
- package/dist/bun.d.cts +4 -1
- package/dist/bun.d.mts +4 -1
- package/dist/bun.d.ts +4 -1
- package/dist/bun.mjs +5 -4
- package/dist/chunks/{browser-D5QY2oJb.mjs â config-Db6PTLH2.mjs} +158 -23
- package/dist/chunks/config-PPDFSral.cjs +1 -0
- package/dist/chunks/config-file-37L8z8Lm.mjs +56 -0
- package/dist/chunks/config-file-Dvyi1e80.cjs +1 -0
- package/dist/chunks/factory-BPYE1-Nw.cjs +1 -0
- package/dist/chunks/factory-CXO2aNcc.mjs +169 -0
- package/dist/chunks/file-transport-DRyxQq8t.mjs +80 -0
- package/dist/chunks/file-transport-SA6KG1oM.cjs +1 -0
- package/dist/core/factory.d.cts +22 -0
- package/dist/core/factory.d.mts +22 -0
- package/dist/core/factory.d.ts +22 -0
- package/dist/core/transport.d.cts +73 -0
- package/dist/core/transport.d.mts +73 -0
- package/dist/core/transport.d.ts +73 -0
- package/dist/core/types.d.cts +9 -0
- package/dist/core/types.d.mts +9 -0
- package/dist/core/types.d.ts +9 -0
- package/dist/deno.cjs +1 -1
- package/dist/deno.d.cts +3 -1
- package/dist/deno.d.mts +3 -1
- package/dist/deno.d.ts +3 -1
- package/dist/deno.mjs +4 -4
- package/dist/index.cjs +1 -1
- package/dist/index.d.cts +2 -0
- package/dist/index.d.mts +2 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.mjs +9 -9
- package/dist/node.cjs +1 -1
- package/dist/node.d.cts +3 -1
- package/dist/node.d.mts +3 -1
- package/dist/node.d.ts +3 -1
- package/dist/node.mjs +3 -2
- package/dist/runtime/file-transport.d.cts +62 -0
- package/dist/runtime/file-transport.d.mts +62 -0
- package/dist/runtime/file-transport.d.ts +62 -0
- package/dist/runtime/node.d.cts +39 -8
- package/dist/runtime/node.d.mts +39 -8
- package/dist/runtime/node.d.ts +39 -8
- package/dist/utils/config-file.d.cts +2 -0
- package/dist/utils/config-file.d.mts +2 -0
- package/dist/utils/config-file.d.ts +2 -0
- package/dist/utils/config.d.cts +33 -2
- package/dist/utils/config.d.mts +33 -2
- package/dist/utils/config.d.ts +33 -2
- package/dist/utils/formatting.d.cts +14 -1
- package/dist/utils/formatting.d.mts +14 -1
- package/dist/utils/formatting.d.ts +14 -1
- package/dist/utils/serialization.d.cts +30 -3
- package/dist/utils/serialization.d.mts +30 -3
- package/dist/utils/serialization.d.ts +30 -3
- package/package.json +3 -10
- package/dist/chunks/__vite-browser-external-BgoQtmXf.mjs +0 -7
- package/dist/chunks/__vite-browser-external-Bjj3r6ML.cjs +0 -1
- package/dist/chunks/browser-Bq67gUmd.cjs +0 -1
- package/dist/chunks/factory-2po65gyH.mjs +0 -262
- package/dist/chunks/factory-CluPoiZb.cjs +0 -1
- package/dist/chunks/formatting-CLctAPm9.mjs +0 -29
- package/dist/chunks/formatting-Cb_xXgov.cjs +0 -1
package/README.md
CHANGED
|
@@ -6,11 +6,15 @@
|
|
|
6
6
|
|
|
7
7
|
A universal TypeScript logging library that works consistently across all JavaScript runtimes: Node.js, Deno, Bun, browsers, and WebAssembly environments.
|
|
8
8
|
|
|
9
|
+
> **Upgrading from 1.x?** See the [2.0 migration guide](./docs/migration-2.0.md).
|
|
10
|
+
> Winston is gone, file logging is opt-in, and repeated object references are no
|
|
11
|
+
> longer reported as `[Circular]`.
|
|
12
|
+
|
|
9
13
|
## Features
|
|
10
14
|
|
|
11
15
|
- đ **Universal Runtime Support** - Works in Node.js, Deno, Bun, browsers, and WebAssembly
|
|
12
16
|
- âī¸ **Next.js Ready** - Full compatibility with App Router, Server Components, and API Routes
|
|
13
|
-
- đĒļ **Zero Dependencies** -
|
|
17
|
+
- đĒļ **Zero Dependencies** - No dependencies at all, required or optional, on any runtime
|
|
14
18
|
- ⥠**Performance First** - Lazy evaluation, zero-allocation logging, minimal memory footprint
|
|
15
19
|
- đ¯ **TypeScript Native** - Full type safety with comprehensive type definitions
|
|
16
20
|
- đ§ **Flexible Configuration** - Environment-based auto-configuration or manual setup
|
|
@@ -170,13 +174,18 @@ const logger = createLoggerForEnvironment();
|
|
|
170
174
|
|
|
171
175
|
Logan Logger provides runtime-specific entry points for optimal bundling and type safety:
|
|
172
176
|
|
|
173
|
-
**đĸ Node.js with
|
|
177
|
+
**đĸ Node.js with file logging:**
|
|
174
178
|
```typescript
|
|
175
|
-
import { createLogger, NodeLogger, createMorganStream } from 'logan-logger/node';
|
|
179
|
+
import { createLogger, LogLevel, NodeLogger, createMorganStream } from 'logan-logger/node';
|
|
176
180
|
|
|
177
181
|
const logger = new NodeLogger({
|
|
178
182
|
transports: [
|
|
179
|
-
{ type: '
|
|
183
|
+
{ type: 'console', options: {} },
|
|
184
|
+
{
|
|
185
|
+
type: 'file',
|
|
186
|
+
level: LogLevel.ERROR,
|
|
187
|
+
options: { filename: 'logs/error.log', maxsize: 5_242_880, maxFiles: 5 }
|
|
188
|
+
}
|
|
180
189
|
]
|
|
181
190
|
});
|
|
182
191
|
|
|
@@ -184,6 +193,17 @@ const logger = new NodeLogger({
|
|
|
184
193
|
app.use(morgan('combined', { stream: createMorganStream(logger) }));
|
|
185
194
|
```
|
|
186
195
|
|
|
196
|
+
File logging is **opt-in**: with no `transports` configured a logger writes to the
|
|
197
|
+
console and nowhere else, whatever `NODE_ENV` says. The log directory is created
|
|
198
|
+
lazily on the first write, so a logger that is configured but never used touches
|
|
199
|
+
the disk zero times.
|
|
200
|
+
|
|
201
|
+
The `file` transport is registered by the `logan-logger/node` and
|
|
202
|
+
`logan-logger/bun` entry points. It is deliberately absent from the main
|
|
203
|
+
`logan-logger` entry so that `node:fs` never reaches a browser bundle â configure
|
|
204
|
+
a file transport from the main entry and you get a warning telling you which
|
|
205
|
+
entry point to import instead.
|
|
206
|
+
|
|
187
207
|
**đ Browser-Optimized (Webpack/Vite-Safe):**
|
|
188
208
|
```typescript
|
|
189
209
|
import { createLogger, BrowserLogger, PerformanceLogger } from 'logan-logger/browser';
|
|
@@ -240,7 +260,7 @@ logger.info('User processed', safeData);
|
|
|
240
260
|
| Runtime | Import Path | Status | Implementation | Features |
|
|
241
261
|
|---------|-------------|--------|----------------|----------|
|
|
242
262
|
| **Next.js 13+** | `logan-logger` | â
**Full** | **Auto-detection** | **Server/Client Components, API Routes, Edge Runtime** |
|
|
243
|
-
| Node.js 20+ | `logan-logger/node` | â
Full |
|
|
263
|
+
| Node.js 20+ | `logan-logger/node` | â
Full | Console + File transports | File logging with size rotation, custom transports, Morgan integration |
|
|
244
264
|
| Bun | `logan-logger/bun` | â
Full | NodeLogger adapter | Same as Node.js |
|
|
245
265
|
| Browser | `logan-logger/browser` | â
Full | Console API | CSS styling, performance marks, grouping |
|
|
246
266
|
| Deno | `@logan/logger/deno` (JSR) | â
Basic | BrowserLogger adapter | Console logging (native implementation planned) |
|
|
@@ -264,10 +284,16 @@ enum LogLevel {
|
|
|
264
284
|
```bash
|
|
265
285
|
LOG_LEVEL=debug # debug, info, warn, error, silent
|
|
266
286
|
LOG_FORMAT=json # json, text
|
|
267
|
-
LOG_TIMESTAMP=true # true, false
|
|
268
|
-
LOG_COLOR=false # true, false
|
|
287
|
+
LOG_TIMESTAMP=true # true/1/yes/on, false/0/no/off
|
|
288
|
+
LOG_COLOR=false # true/1/yes/on, false/0/no/off
|
|
269
289
|
```
|
|
270
290
|
|
|
291
|
+
These sit at the **top** of the precedence chain â above configuration passed to
|
|
292
|
+
`createLogger()` â so an operator can change logging on a running service without
|
|
293
|
+
a deploy. Opt out with `createLogger({ ..., ignoreEnvironment: true })`. A value
|
|
294
|
+
that does not parse is ignored with a warning rather than silently resolving to a
|
|
295
|
+
default.
|
|
296
|
+
|
|
271
297
|
> **đ See [Environment Variables Documentation](./docs/environment-variables.md) for complete details, examples, and runtime-specific considerations.**
|
|
272
298
|
|
|
273
299
|
### Configuration Options
|
|
@@ -282,6 +308,56 @@ interface LoggerConfig {
|
|
|
282
308
|
}
|
|
283
309
|
```
|
|
284
310
|
|
|
311
|
+
`timestamp` and `colorize` apply to the **text** form only. The JSON envelope
|
|
312
|
+
always carries a timestamp and is never colorized, so a structured log stream
|
|
313
|
+
stays parseable. `colorize` additionally defers to the terminal: ANSI escapes are
|
|
314
|
+
suppressed when stdout is not a TTY, and the `NO_COLOR` / `FORCE_COLOR`
|
|
315
|
+
conventions are honored.
|
|
316
|
+
|
|
317
|
+
### Transports
|
|
318
|
+
|
|
319
|
+
`transports` lists exactly where records go, in order. Omit it and you get the
|
|
320
|
+
console alone.
|
|
321
|
+
|
|
322
|
+
```typescript
|
|
323
|
+
import { LogLevel, NodeLogger } from 'logan-logger/node';
|
|
324
|
+
|
|
325
|
+
const logger = new NodeLogger({
|
|
326
|
+
transports: [
|
|
327
|
+
{ type: 'console', options: { format: 'text', colorize: true } },
|
|
328
|
+
{ type: 'file', level: LogLevel.ERROR, options: { filename: 'logs/error.log' } }
|
|
329
|
+
]
|
|
330
|
+
});
|
|
331
|
+
```
|
|
332
|
+
|
|
333
|
+
| Type | Available from | Options |
|
|
334
|
+
|---|---|---|
|
|
335
|
+
| `console` | everywhere | `format`, `timestamp`, `colorize` |
|
|
336
|
+
| `file` | `logan-logger/node`, `logan-logger/bun` | `filename`, `maxsize`, `maxFiles`, `format`, `timestamp` |
|
|
337
|
+
| `custom` | everywhere | `transport` â any object with a `write(entry)` method |
|
|
338
|
+
|
|
339
|
+
Each transport is constructed behind its own guard: one failing to initialize
|
|
340
|
+
warns and is dropped, and the rest keep working. The same applies at write time.
|
|
341
|
+
|
|
342
|
+
A child logger **shares** its parent's transport instances, so
|
|
343
|
+
`logger.child({ requestId })` per request costs no extra file handles.
|
|
344
|
+
|
|
345
|
+
Plug in your own destination either inline:
|
|
346
|
+
|
|
347
|
+
```typescript
|
|
348
|
+
const logger = new NodeLogger({
|
|
349
|
+
transports: [{ type: 'custom', options: { transport: { type: 'syslog', write(entry) { /* âĻ */ } } } }]
|
|
350
|
+
});
|
|
351
|
+
```
|
|
352
|
+
|
|
353
|
+
or by name, so it can be selected from configuration:
|
|
354
|
+
|
|
355
|
+
```typescript
|
|
356
|
+
import { registerTransport } from 'logan-logger';
|
|
357
|
+
|
|
358
|
+
registerTransport('syslog', (config, context) => new SyslogTransport(config.options));
|
|
359
|
+
```
|
|
360
|
+
|
|
285
361
|
## API Reference
|
|
286
362
|
|
|
287
363
|
### Core Methods
|
package/dist/browser.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./chunks/
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./chunks/config-PPDFSral.cjs");function t(){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 n(t){switch(t){case`production`:return e.g.ERROR;case`staging`:case`test`:return e.g.WARN;case`development`:case`dev`:return e.g.DEBUG;default:return e.g.INFO}}function r(t={}){let n=t.ignoreEnvironment?{}:e.n();return new e.l(e.r(t,n))}function i(){let e=t();return r({level:n(e),colorize:e!==`production`,timestamp:!0,format:e===`production`?`json`:`text`})}var a=i(),o={debug:(e,t)=>a.debug(e,t),info:(e,t)=>a.info(e,t),warn:(e,t)=>a.warn(e,t),error:(e,t)=>a.error(e,t)};exports.BrowserLogger=e.l,exports.ConsoleGroupLogger=e.u,exports.LogLevel=e.g,exports.PerformanceLogger=e.d,exports.createLogger=r,exports.createLoggerForEnvironment=i,exports.detectRuntime=e._,exports.filterSensitiveData=e.f,exports.formatLevel=e.s,exports.formatLogEntry=e.c,exports.isBrowser=e.v,exports.isBun=e.y,exports.isDeno=e.b,exports.isNode=e.x,exports.log=o,exports.logger=a,exports.safeStringify=e.p,exports.serializeError=e.m;
|
package/dist/browser.mjs
CHANGED
|
@@ -1,58 +1,36 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { n as f, t as p } from "./chunks/formatting-CLctAPm9.mjs";
|
|
1
|
+
import { _ as e, b as t, c as n, d as r, f as i, g as a, l as o, m as s, n as c, p as l, r as u, s as d, u as f, v as p, x as m, y as h } from "./chunks/config-Db6PTLH2.mjs";
|
|
3
2
|
//#region src/browser.ts
|
|
4
|
-
function
|
|
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() {
|
|
3
|
+
function g() {
|
|
19
4
|
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
5
|
}
|
|
21
|
-
function
|
|
6
|
+
function _(e) {
|
|
22
7
|
switch (e) {
|
|
23
|
-
case "production": return
|
|
8
|
+
case "production": return a.ERROR;
|
|
24
9
|
case "staging":
|
|
25
|
-
case "test": return
|
|
10
|
+
case "test": return a.WARN;
|
|
26
11
|
case "development":
|
|
27
|
-
case "dev": return
|
|
28
|
-
default: return
|
|
12
|
+
case "dev": return a.DEBUG;
|
|
13
|
+
default: return a.INFO;
|
|
29
14
|
}
|
|
30
15
|
}
|
|
31
|
-
function
|
|
32
|
-
let t =
|
|
33
|
-
|
|
34
|
-
...e,
|
|
35
|
-
metadata: {
|
|
36
|
-
...t.metadata,
|
|
37
|
-
...e.metadata
|
|
38
|
-
}
|
|
39
|
-
};
|
|
40
|
-
return new u(n);
|
|
16
|
+
function v(e = {}) {
|
|
17
|
+
let t = e.ignoreEnvironment ? {} : c();
|
|
18
|
+
return new o(u(e, t));
|
|
41
19
|
}
|
|
42
|
-
function
|
|
43
|
-
let e =
|
|
44
|
-
return
|
|
45
|
-
level:
|
|
20
|
+
function y() {
|
|
21
|
+
let e = g();
|
|
22
|
+
return v({
|
|
23
|
+
level: _(e),
|
|
46
24
|
colorize: e !== "production",
|
|
47
25
|
timestamp: !0,
|
|
48
26
|
format: e === "production" ? "json" : "text"
|
|
49
27
|
});
|
|
50
28
|
}
|
|
51
|
-
var
|
|
52
|
-
debug: (e, t) =>
|
|
53
|
-
info: (e, t) =>
|
|
54
|
-
warn: (e, t) =>
|
|
55
|
-
error: (e, t) =>
|
|
29
|
+
var b = y(), x = {
|
|
30
|
+
debug: (e, t) => b.debug(e, t),
|
|
31
|
+
info: (e, t) => b.info(e, t),
|
|
32
|
+
warn: (e, t) => b.warn(e, t),
|
|
33
|
+
error: (e, t) => b.error(e, t)
|
|
56
34
|
};
|
|
57
35
|
//#endregion
|
|
58
|
-
export {
|
|
36
|
+
export { o as BrowserLogger, f as ConsoleGroupLogger, a as LogLevel, r as PerformanceLogger, v as createLogger, y as createLoggerForEnvironment, e as detectRuntime, i as filterSensitiveData, d as formatLevel, n as formatLogEntry, p as isBrowser, h as isBun, t as isDeno, m as isNode, x as log, b as logger, l as safeStringify, s as serializeError };
|
package/dist/bun.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./chunks/
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./chunks/config-PPDFSral.cjs"),t=require("./chunks/factory-BPYE1-Nw.cjs"),n=require("./chunks/config-file-Dvyi1e80.cjs"),r=require("./chunks/file-transport-SA6KG1oM.cjs");exports.ConsoleTransport=t.c,exports.FileTransport=r.t,exports.NodeLogger=t.o,exports.createLogger=t.n,exports.createLoggerForEnvironment=t.r,exports.createTransports=t.l,exports.detectRuntime=e._,exports.filterSensitiveData=e.f,exports.formatLevel=e.s,exports.formatLogEntry=e.c,exports.getDefaultConfig=e.t,exports.isBrowser=e.v,exports.isBun=e.y,exports.isDeno=e.b,exports.isNode=e.x,exports.loadConfigFromEnvironment=e.n,exports.loadConfigFromFile=n.t,exports.mergeConfigs=e.r,exports.registerTransport=t.d,exports.resetEnvironmentWarnings=e.i,exports.safeStringify=e.p,exports.serializeError=e.m,exports.shouldColorize=e.a,exports.tryParseLogLevel=e.o;
|
package/dist/bun.d.cts
CHANGED
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
export { createLogger, createLoggerForEnvironment } from './core/factory.cjs';
|
|
2
|
-
export
|
|
2
|
+
export { ConsoleTransport, createTransports, registerTransport, type Transport, type TransportFactory, } from './core/transport.cjs';
|
|
3
|
+
export type { ILogger, LoggerConfig, LogLevel, TransportConfig } from './core/types.cjs';
|
|
4
|
+
export { FileTransport, type FileTransportOptions } from './runtime/file-transport.cjs';
|
|
3
5
|
export { NodeLogger } from './runtime/node.cjs';
|
|
6
|
+
export * from './utils/config-file.cjs';
|
|
4
7
|
export * from './utils/config.cjs';
|
|
5
8
|
export * from './utils/formatting.cjs';
|
|
6
9
|
export * from './utils/runtime.cjs';
|
package/dist/bun.d.mts
CHANGED
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
export { createLogger, createLoggerForEnvironment } from './core/factory.mjs';
|
|
2
|
-
export
|
|
2
|
+
export { ConsoleTransport, createTransports, registerTransport, type Transport, type TransportFactory, } from './core/transport.mjs';
|
|
3
|
+
export type { ILogger, LoggerConfig, LogLevel, TransportConfig } from './core/types.mjs';
|
|
4
|
+
export { FileTransport, type FileTransportOptions } from './runtime/file-transport.mjs';
|
|
3
5
|
export { NodeLogger } from './runtime/node.mjs';
|
|
6
|
+
export * from './utils/config-file.mjs';
|
|
4
7
|
export * from './utils/config.mjs';
|
|
5
8
|
export * from './utils/formatting.mjs';
|
|
6
9
|
export * from './utils/runtime.mjs';
|
package/dist/bun.d.ts
CHANGED
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
export { createLogger, createLoggerForEnvironment } from './core/factory';
|
|
2
|
-
export
|
|
2
|
+
export { ConsoleTransport, createTransports, registerTransport, type Transport, type TransportFactory, } from './core/transport';
|
|
3
|
+
export type { ILogger, LoggerConfig, LogLevel, TransportConfig } from './core/types';
|
|
4
|
+
export { FileTransport, type FileTransportOptions } from './runtime/file-transport';
|
|
3
5
|
export { NodeLogger } from './runtime/node';
|
|
6
|
+
export * from './utils/config-file';
|
|
4
7
|
export * from './utils/config';
|
|
5
8
|
export * from './utils/formatting';
|
|
6
9
|
export * from './utils/runtime';
|
package/dist/bun.mjs
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
|
|
1
|
+
import { _ as e, a as t, b as n, c as r, f as i, i as a, m as o, n as s, o as c, p as l, r as u, s as d, t as f, v as p, x as m, y as h } from "./chunks/config-Db6PTLH2.mjs";
|
|
2
|
+
import { c as g, d as _, l as v, n as y, o as b, r as x } from "./chunks/factory-CXO2aNcc.mjs";
|
|
3
|
+
import { t as S } from "./chunks/config-file-37L8z8Lm.mjs";
|
|
4
|
+
import { t as C } from "./chunks/file-transport-DRyxQq8t.mjs";
|
|
5
|
+
export { g as ConsoleTransport, C as FileTransport, b as NodeLogger, y as createLogger, x as createLoggerForEnvironment, v as createTransports, e as detectRuntime, i as filterSensitiveData, d as formatLevel, r as formatLogEntry, f as getDefaultConfig, p as isBrowser, h as isBun, n as isDeno, m as isNode, s as loadConfigFromEnvironment, S as loadConfigFromFile, u as mergeConfigs, _ as registerTransport, a as resetEnvironmentWarnings, l as safeStringify, o as serializeError, t as shouldColorize, c as tryParseLogLevel };
|
|
@@ -77,7 +77,7 @@ var c = /* @__PURE__ */ function(e) {
|
|
|
77
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
78
|
}({}), l = class {
|
|
79
79
|
constructor(t = {}) {
|
|
80
|
-
this.childMetadata = {}, this.config = t, this.level = t.level ?? c.INFO, this.runtime = e().name;
|
|
80
|
+
this.childMetadata = {}, this.config = t, this.level = t.level ?? c.INFO, this.runtime = e().name, this.childMetadata = { ...t.metadata };
|
|
81
81
|
}
|
|
82
82
|
debug(e, t) {
|
|
83
83
|
this.log(c.DEBUG, e, t);
|
|
@@ -121,20 +121,41 @@ var c = /* @__PURE__ */ function(e) {
|
|
|
121
121
|
shouldLog(e) {
|
|
122
122
|
return e >= this.level;
|
|
123
123
|
}
|
|
124
|
-
};
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
124
|
+
}, u = 100;
|
|
125
|
+
function d(e, t, n, r) {
|
|
126
|
+
if (e === void 0) return "[undefined]";
|
|
127
|
+
if (typeof e == "bigint") return `[BigInt: ${e.toString()}]`;
|
|
128
|
+
if (typeof e == "symbol") return `[Symbol: ${e.toString()}]`;
|
|
129
|
+
if (typeof e == "function") return `[Function: ${e.name || "anonymous"}]`;
|
|
130
|
+
if (typeof e != "object" || !e) return e;
|
|
131
|
+
let i = e;
|
|
132
|
+
if (t.has(i)) return "[Circular]";
|
|
133
|
+
if (n >= r) return "[MaxDepth]";
|
|
134
|
+
t.add(i);
|
|
135
|
+
try {
|
|
136
|
+
if (i instanceof Error) return f(_(i), t, n, r);
|
|
137
|
+
let e = i.toJSON;
|
|
138
|
+
if (typeof e == "function") return d(e.call(i), t, n, r);
|
|
139
|
+
if (Array.isArray(i)) {
|
|
140
|
+
let e = [];
|
|
141
|
+
for (let a = 0; a < i.length; a++) e.push(d(i[a], t, n + 1, r));
|
|
142
|
+
return e;
|
|
133
143
|
}
|
|
134
|
-
return
|
|
135
|
-
}
|
|
144
|
+
return f(i, t, n, r);
|
|
145
|
+
} finally {
|
|
146
|
+
t.delete(i);
|
|
147
|
+
}
|
|
136
148
|
}
|
|
137
|
-
function
|
|
149
|
+
function f(e, t, n, r) {
|
|
150
|
+
let i = {};
|
|
151
|
+
for (let [a, o] of Object.entries(e)) i[a] = d(o, t, n + 1, r);
|
|
152
|
+
return i;
|
|
153
|
+
}
|
|
154
|
+
function p(e, t, n = {}) {
|
|
155
|
+
let r = n.maxDepth ?? u;
|
|
156
|
+
return JSON.stringify(d(e, /* @__PURE__ */ new Set(), 0, r), null, t);
|
|
157
|
+
}
|
|
158
|
+
function m(e, t = [
|
|
138
159
|
"password",
|
|
139
160
|
"token",
|
|
140
161
|
"secret",
|
|
@@ -143,15 +164,15 @@ function d(e, t = [
|
|
|
143
164
|
]) {
|
|
144
165
|
if (typeof e != "object" || !e) return e;
|
|
145
166
|
let n = Array.isArray(e) ? [] : {};
|
|
146
|
-
for (let [r, i] of Object.entries(e)) n[r] = t.some((e) => r.toLowerCase().includes(e.toLowerCase())) ? "[REDACTED]" : typeof i == "object" && i ?
|
|
167
|
+
for (let [r, i] of Object.entries(e)) n[r] = t.some((e) => r.toLowerCase().includes(e.toLowerCase())) ? "[REDACTED]" : typeof i == "object" && i ? m(i, t) : i;
|
|
147
168
|
return n;
|
|
148
169
|
}
|
|
149
|
-
var
|
|
170
|
+
var h = [
|
|
150
171
|
"name",
|
|
151
172
|
"message",
|
|
152
173
|
"stack"
|
|
153
174
|
];
|
|
154
|
-
function
|
|
175
|
+
function g(e, t) {
|
|
155
176
|
let n = Object.getOwnPropertyDescriptor(e, t);
|
|
156
177
|
if (n) {
|
|
157
178
|
if (n.get) try {
|
|
@@ -162,24 +183,24 @@ function p(e, t) {
|
|
|
162
183
|
return n.value;
|
|
163
184
|
}
|
|
164
185
|
}
|
|
165
|
-
function
|
|
186
|
+
function _(e) {
|
|
166
187
|
if (!(e instanceof Error)) return e;
|
|
167
188
|
let t = {
|
|
168
189
|
name: e.name,
|
|
169
190
|
message: e.message
|
|
170
191
|
};
|
|
171
192
|
e.stack !== void 0 && (t.stack = e.stack);
|
|
172
|
-
for (let n of Object.getOwnPropertyNames(e))
|
|
193
|
+
for (let n of Object.getOwnPropertyNames(e)) h.includes(n) || (t[n] = g(e, n));
|
|
173
194
|
return t;
|
|
174
195
|
}
|
|
175
196
|
//#endregion
|
|
176
197
|
//#region src/runtime/browser.ts
|
|
177
|
-
var
|
|
198
|
+
var v = class e extends l {
|
|
178
199
|
constructor(e = {}) {
|
|
179
200
|
super(e);
|
|
180
201
|
}
|
|
181
202
|
writeLog(e) {
|
|
182
|
-
let t = this.formatMessage(e), n = this.getConsoleStyle(e.level), r = `%c${t}${e.metadata ? ` ${
|
|
203
|
+
let t = this.formatMessage(e), n = this.getConsoleStyle(e.level), r = `%c${t}${e.metadata ? ` ${p(e.metadata)}` : ""}`;
|
|
183
204
|
switch (e.level) {
|
|
184
205
|
case c.DEBUG:
|
|
185
206
|
console.debug ? console.debug(r, n) : console.log(r, n);
|
|
@@ -215,7 +236,7 @@ var h = class e extends l {
|
|
|
215
236
|
shouldLog(e) {
|
|
216
237
|
return !this.shouldLogInProduction() && e < c.ERROR ? !1 : super.shouldLog(e);
|
|
217
238
|
}
|
|
218
|
-
},
|
|
239
|
+
}, y = class extends v {
|
|
219
240
|
constructor(...e) {
|
|
220
241
|
super(...e), this.groupStack = [];
|
|
221
242
|
}
|
|
@@ -252,7 +273,7 @@ var h = class e extends l {
|
|
|
252
273
|
table(e) {
|
|
253
274
|
console.table(e);
|
|
254
275
|
}
|
|
255
|
-
},
|
|
276
|
+
}, b = class extends v {
|
|
256
277
|
mark(e) {
|
|
257
278
|
typeof performance < "u" && performance.mark && performance.mark(e);
|
|
258
279
|
}
|
|
@@ -282,4 +303,118 @@ var h = class e extends l {
|
|
|
282
303
|
}
|
|
283
304
|
};
|
|
284
305
|
//#endregion
|
|
285
|
-
|
|
306
|
+
//#region src/utils/formatting.ts
|
|
307
|
+
function x(e, t = "text", n = {}) {
|
|
308
|
+
if (t === "json") {
|
|
309
|
+
let t = {
|
|
310
|
+
timestamp: e.timestamp.toISOString(),
|
|
311
|
+
level: c[e.level].toLowerCase(),
|
|
312
|
+
message: e.message,
|
|
313
|
+
runtime: e.runtime
|
|
314
|
+
};
|
|
315
|
+
return e.metadata !== void 0 && (t.metadata = e.metadata), p(t);
|
|
316
|
+
}
|
|
317
|
+
let r = n.timestamp === !1 ? "" : `[${e.timestamp.toISOString()}] `, i = S(e.level, n.colorize === !0), a = e.metadata ? ` ${p(e.metadata)}` : "";
|
|
318
|
+
return `${r}${i}: ${e.message}${a}`;
|
|
319
|
+
}
|
|
320
|
+
function S(e, t = !1) {
|
|
321
|
+
let n = c[e].toUpperCase();
|
|
322
|
+
if (!t) return n;
|
|
323
|
+
let r = {
|
|
324
|
+
[c.DEBUG]: "\x1B[36m",
|
|
325
|
+
[c.INFO]: "\x1B[32m",
|
|
326
|
+
[c.WARN]: "\x1B[33m",
|
|
327
|
+
[c.ERROR]: "\x1B[31m",
|
|
328
|
+
[c.SILENT]: "\x1B[37m"
|
|
329
|
+
};
|
|
330
|
+
return `${r[e] || r[c.INFO]}${n}[0m`;
|
|
331
|
+
}
|
|
332
|
+
//#endregion
|
|
333
|
+
//#region src/utils/config.ts
|
|
334
|
+
function C() {
|
|
335
|
+
return e().capabilities.colorSupport ? typeof process > "u" || !process.env ? !0 : process.env.NO_COLOR ? !1 : process.env.FORCE_COLOR ? process.env.FORCE_COLOR !== "0" : process.stdout?.isTTY === !0 : !1;
|
|
336
|
+
}
|
|
337
|
+
function w() {
|
|
338
|
+
return {
|
|
339
|
+
level: c.INFO,
|
|
340
|
+
format: "text",
|
|
341
|
+
timestamp: !0,
|
|
342
|
+
colorize: C(),
|
|
343
|
+
metadata: {},
|
|
344
|
+
transports: [{
|
|
345
|
+
type: "console",
|
|
346
|
+
options: {}
|
|
347
|
+
}]
|
|
348
|
+
};
|
|
349
|
+
}
|
|
350
|
+
var T = [
|
|
351
|
+
"true",
|
|
352
|
+
"1",
|
|
353
|
+
"yes",
|
|
354
|
+
"on"
|
|
355
|
+
], E = [
|
|
356
|
+
"false",
|
|
357
|
+
"0",
|
|
358
|
+
"no",
|
|
359
|
+
"off"
|
|
360
|
+
], D = /* @__PURE__ */ new Set();
|
|
361
|
+
function O(e) {
|
|
362
|
+
D.has(e) || (D.add(e), console.warn(e));
|
|
363
|
+
}
|
|
364
|
+
function k() {
|
|
365
|
+
D.clear();
|
|
366
|
+
}
|
|
367
|
+
function A(e) {
|
|
368
|
+
switch (e.trim().toLowerCase()) {
|
|
369
|
+
case "debug": return c.DEBUG;
|
|
370
|
+
case "info": return c.INFO;
|
|
371
|
+
case "warn":
|
|
372
|
+
case "warning": return c.WARN;
|
|
373
|
+
case "error": return c.ERROR;
|
|
374
|
+
case "silent":
|
|
375
|
+
case "none": return c.SILENT;
|
|
376
|
+
default: return;
|
|
377
|
+
}
|
|
378
|
+
}
|
|
379
|
+
function j(e, t) {
|
|
380
|
+
let n = t.trim().toLowerCase();
|
|
381
|
+
if (T.includes(n)) return !0;
|
|
382
|
+
if (E.includes(n)) return !1;
|
|
383
|
+
O(`[logan-logger] ${e}="${t}" is not a recognized boolean and was ignored. Accepted: ${T.join(", ")} / ${E.join(", ")}.`);
|
|
384
|
+
}
|
|
385
|
+
function M() {
|
|
386
|
+
let e = {};
|
|
387
|
+
if (typeof process > "u" || !process.env) return e;
|
|
388
|
+
let t = process.env;
|
|
389
|
+
if (t.LOG_LEVEL) {
|
|
390
|
+
let n = A(t.LOG_LEVEL);
|
|
391
|
+
n === void 0 ? O(`[logan-logger] LOG_LEVEL="${t.LOG_LEVEL}" is not a recognized level and was ignored. Accepted: debug, info, warn, error, silent.`) : e.level = n;
|
|
392
|
+
}
|
|
393
|
+
if (t.LOG_FORMAT) {
|
|
394
|
+
let n = t.LOG_FORMAT.trim().toLowerCase();
|
|
395
|
+
n === "json" || n === "text" ? e.format = n : O(`[logan-logger] LOG_FORMAT="${t.LOG_FORMAT}" is not a recognized format and was ignored. Accepted: json, text.`);
|
|
396
|
+
}
|
|
397
|
+
if (t.LOG_TIMESTAMP) {
|
|
398
|
+
let n = j("LOG_TIMESTAMP", t.LOG_TIMESTAMP);
|
|
399
|
+
n !== void 0 && (e.timestamp = n);
|
|
400
|
+
}
|
|
401
|
+
if (t.LOG_COLOR) {
|
|
402
|
+
let n = j("LOG_COLOR", t.LOG_COLOR);
|
|
403
|
+
n !== void 0 && (e.colorize = n);
|
|
404
|
+
}
|
|
405
|
+
return e;
|
|
406
|
+
}
|
|
407
|
+
function N(...e) {
|
|
408
|
+
let t = w();
|
|
409
|
+
return e.reduce((e, t) => ({
|
|
410
|
+
...e,
|
|
411
|
+
...t,
|
|
412
|
+
metadata: {
|
|
413
|
+
...e.metadata,
|
|
414
|
+
...t.metadata
|
|
415
|
+
},
|
|
416
|
+
transports: t.transports || e.transports
|
|
417
|
+
}), t);
|
|
418
|
+
}
|
|
419
|
+
//#endregion
|
|
420
|
+
export { e as _, C as a, o as b, x as c, b as d, m as f, c as g, l as h, k as i, v as l, _ as m, M as n, A as o, p, N as r, S as s, w as t, y as u, a as v, i as x, s as y };
|
|
@@ -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,this.childMetadata={...t.metadata}}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}},u=100;function d(e,t,n,r){if(e===void 0)return`[undefined]`;if(typeof e==`bigint`)return`[BigInt: ${e.toString()}]`;if(typeof e==`symbol`)return`[Symbol: ${e.toString()}]`;if(typeof e==`function`)return`[Function: ${e.name||`anonymous`}]`;if(typeof e!=`object`||!e)return e;let i=e;if(t.has(i))return`[Circular]`;if(n>=r)return`[MaxDepth]`;t.add(i);try{if(i instanceof Error)return f(_(i),t,n,r);let e=i.toJSON;if(typeof e==`function`)return d(e.call(i),t,n,r);if(Array.isArray(i)){let e=[];for(let a=0;a<i.length;a++)e.push(d(i[a],t,n+1,r));return e}return f(i,t,n,r)}finally{t.delete(i)}}function f(e,t,n,r){let i={};for(let[a,o]of Object.entries(e))i[a]=d(o,t,n+1,r);return i}function p(e,t,n={}){let r=n.maxDepth??u;return JSON.stringify(d(e,new Set,0,r),null,t)}function m(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?m(i,t):i;return n}var h=[`name`,`message`,`stack`];function g(e,t){let n=Object.getOwnPropertyDescriptor(e,t);if(n){if(n.get)try{return n.get.call(e)}catch{return`[Throws]`}return n.value}}function _(e){if(!(e instanceof Error))return e;let t={name:e.name,message:e.message};e.stack!==void 0&&(t.stack=e.stack);for(let n of Object.getOwnPropertyNames(e))h.includes(n)||(t[n]=g(e,n));return t}var v=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?` ${p(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)}},y=class extends v{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)}},b=class extends v{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)}};function x(e,t=`text`,n={}){if(t===`json`){let t={timestamp:e.timestamp.toISOString(),level:c[e.level].toLowerCase(),message:e.message,runtime:e.runtime};return e.metadata!==void 0&&(t.metadata=e.metadata),p(t)}let r=n.timestamp===!1?``:`[${e.timestamp.toISOString()}] `,i=S(e.level,n.colorize===!0),a=e.metadata?` ${p(e.metadata)}`:``;return`${r}${i}: ${e.message}${a}`}function S(e,t=!1){let n=c[e].toUpperCase();if(!t)return n;let r={[c.DEBUG]:`\x1B[36m`,[c.INFO]:`\x1B[32m`,[c.WARN]:`\x1B[33m`,[c.ERROR]:`\x1B[31m`,[c.SILENT]:`\x1B[37m`};return`${r[e]||r[c.INFO]}${n}[0m`}function C(){return e().capabilities.colorSupport?typeof process>`u`||!process.env?!0:process.env.NO_COLOR?!1:process.env.FORCE_COLOR?process.env.FORCE_COLOR!==`0`:process.stdout?.isTTY===!0:!1}function w(){return{level:c.INFO,format:`text`,timestamp:!0,colorize:C(),metadata:{},transports:[{type:`console`,options:{}}]}}var T=[`true`,`1`,`yes`,`on`],E=[`false`,`0`,`no`,`off`],D=new Set;function O(e){D.has(e)||(D.add(e),console.warn(e))}function k(){D.clear()}function A(e){switch(e.trim().toLowerCase()){case`debug`:return c.DEBUG;case`info`:return c.INFO;case`warn`:case`warning`:return c.WARN;case`error`:return c.ERROR;case`silent`:case`none`:return c.SILENT;default:return}}function j(e,t){let n=t.trim().toLowerCase();if(T.includes(n))return!0;if(E.includes(n))return!1;O(`[logan-logger] ${e}="${t}" is not a recognized boolean and was ignored. Accepted: ${T.join(`, `)} / ${E.join(`, `)}.`)}function M(){let e={};if(typeof process>`u`||!process.env)return e;let t=process.env;if(t.LOG_LEVEL){let n=A(t.LOG_LEVEL);n===void 0?O(`[logan-logger] LOG_LEVEL="${t.LOG_LEVEL}" is not a recognized level and was ignored. Accepted: debug, info, warn, error, silent.`):e.level=n}if(t.LOG_FORMAT){let n=t.LOG_FORMAT.trim().toLowerCase();n===`json`||n===`text`?e.format=n:O(`[logan-logger] LOG_FORMAT="${t.LOG_FORMAT}" is not a recognized format and was ignored. Accepted: json, text.`)}if(t.LOG_TIMESTAMP){let n=j(`LOG_TIMESTAMP`,t.LOG_TIMESTAMP);n!==void 0&&(e.timestamp=n)}if(t.LOG_COLOR){let n=j(`LOG_COLOR`,t.LOG_COLOR);n!==void 0&&(e.colorize=n)}return e}function N(...e){let t=w();return e.reduce((e,t)=>({...e,...t,metadata:{...e.metadata,...t.metadata},transports:t.transports||e.transports}),t)}Object.defineProperty(exports,"_",{enumerable:!0,get:function(){return e}}),Object.defineProperty(exports,"a",{enumerable:!0,get:function(){return C}}),Object.defineProperty(exports,"b",{enumerable:!0,get:function(){return o}}),Object.defineProperty(exports,"c",{enumerable:!0,get:function(){return x}}),Object.defineProperty(exports,"d",{enumerable:!0,get:function(){return b}}),Object.defineProperty(exports,"f",{enumerable:!0,get:function(){return m}}),Object.defineProperty(exports,"g",{enumerable:!0,get:function(){return c}}),Object.defineProperty(exports,"h",{enumerable:!0,get:function(){return l}}),Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return k}}),Object.defineProperty(exports,"l",{enumerable:!0,get:function(){return v}}),Object.defineProperty(exports,"m",{enumerable:!0,get:function(){return _}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return M}}),Object.defineProperty(exports,"o",{enumerable:!0,get:function(){return A}}),Object.defineProperty(exports,"p",{enumerable:!0,get:function(){return p}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return N}}),Object.defineProperty(exports,"s",{enumerable:!0,get:function(){return S}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return w}}),Object.defineProperty(exports,"u",{enumerable:!0,get:function(){return y}}),Object.defineProperty(exports,"v",{enumerable:!0,get:function(){return a}}),Object.defineProperty(exports,"x",{enumerable:!0,get:function(){return i}}),Object.defineProperty(exports,"y",{enumerable:!0,get:function(){return s}});
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { _ as e } from "./config-Db6PTLH2.mjs";
|
|
2
|
+
//#region src/utils/config-file.ts
|
|
3
|
+
async function t(t) {
|
|
4
|
+
let a = e();
|
|
5
|
+
if (!a.capabilities.fileSystem) return {};
|
|
6
|
+
let o = t ? [t] : [
|
|
7
|
+
"logan.config.json",
|
|
8
|
+
"logan.config.js",
|
|
9
|
+
".loganrc",
|
|
10
|
+
"package.json"
|
|
11
|
+
];
|
|
12
|
+
for (let e of o) try {
|
|
13
|
+
if (a.name === "node") return await n(e);
|
|
14
|
+
if (a.name === "deno") return await r(e);
|
|
15
|
+
if (a.name === "bun") return await i(e);
|
|
16
|
+
} catch {}
|
|
17
|
+
return {};
|
|
18
|
+
}
|
|
19
|
+
async function n(e) {
|
|
20
|
+
try {
|
|
21
|
+
let t = await import("node:fs/promises"), n = await import("node:path");
|
|
22
|
+
if (e.endsWith(".json")) {
|
|
23
|
+
let n = await t.readFile(e, "utf-8"), r = JSON.parse(n);
|
|
24
|
+
return e === "package.json" ? r.logan || {} : r;
|
|
25
|
+
}
|
|
26
|
+
if (e.endsWith(".js")) {
|
|
27
|
+
let t = await import(
|
|
28
|
+
/* @vite-ignore */
|
|
29
|
+
`file://${n.resolve(e)}`
|
|
30
|
+
);
|
|
31
|
+
return t.default || t;
|
|
32
|
+
}
|
|
33
|
+
} catch {}
|
|
34
|
+
return {};
|
|
35
|
+
}
|
|
36
|
+
async function r(e) {
|
|
37
|
+
try {
|
|
38
|
+
if (e.endsWith(".json")) {
|
|
39
|
+
let t = await globalThis.Deno.readTextFile(e), n = JSON.parse(t);
|
|
40
|
+
return e === "package.json" ? n.logan || {} : n;
|
|
41
|
+
}
|
|
42
|
+
if (e.endsWith(".js")) {
|
|
43
|
+
let t = await import(
|
|
44
|
+
/* @vite-ignore */
|
|
45
|
+
`./${e}`
|
|
46
|
+
);
|
|
47
|
+
return t.default || t;
|
|
48
|
+
}
|
|
49
|
+
} catch {}
|
|
50
|
+
return {};
|
|
51
|
+
}
|
|
52
|
+
async function i(e) {
|
|
53
|
+
return n(e);
|
|
54
|
+
}
|
|
55
|
+
//#endregion
|
|
56
|
+
export { t };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const e=require("./config-PPDFSral.cjs");async function t(t){let a=e._();if(!a.capabilities.fileSystem)return{};let o=t?[t]:[`logan.config.json`,`logan.config.js`,`.loganrc`,`package.json`];for(let e of o)try{if(a.name===`node`)return await n(e);if(a.name===`deno`)return await r(e);if(a.name===`bun`)return await i(e)}catch{}return{}}async function n(e){try{let t=await import(`node:fs/promises`),n=await import(`node:path`);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 r(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 i(e){return n(e)}Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return t}});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const e=require("./config-PPDFSral.cjs");var t=new Map;function n(e,n){t.set(e,n)}function r(e){return t.get(e)}var i=class{constructor(e={}){this.type=`console`,this.level=e.level,this.format=e.format===`json`?`json`:`text`,this.formatOptions={timestamp:e.timestamp!==!1,colorize:e.colorize===!0}}write(t){let n=e.c(t,this.format,this.formatOptions);switch(t.level){case e.g.DEBUG:console.debug(n);break;case e.g.WARN:console.warn(n);break;case e.g.ERROR:console.error(n);break;default:console.info(n)}}};n(`console`,(e,t)=>{let n=e.options??{};return new i({format:n.format??t.format,timestamp:n.timestamp??t.timestamp,colorize:n.colorize??t.colorize,level:e.level})}),n(`custom`,e=>{let t=e.options?.transport;if(!t||typeof t.write!=`function`)throw Error(`custom transport requires options.transport to be an object with a write(entry) method`);return e.level===void 0?t:{type:t.type??`custom`,level:e.level,write:e=>t.write(e),close:t.close?()=>t.close?.():void 0}});function a(e){let t={format:e.format??`text`,timestamp:e.timestamp??!0,colorize:e.colorize??!1};if(e.transports===void 0)return[new i({format:t.format,timestamp:t.timestamp,colorize:t.colorize})];let n=[];for(let i of e.transports){let e=r(i.type);if(!e){console.warn(`[logan-logger] ${o(i.type)}`);continue}try{n.push(e(i,t))}catch(e){console.warn(`[logan-logger] transport '${i.type}' failed to initialize:`,e)}}return n}function o(e){return e===`file`?`the 'file' transport is not registered; import from 'logan-logger/node' (or 'logan-logger/bun') rather than the main entry point to use file logging`:e===`http`?`the 'http' transport is not built in; supply one with { type: 'custom', options: { transport } }`:`unknown transport type '${e}'; skipping`}var s=class t extends e.h{constructor(e={},t){super(e),this.transports=t??a(e)}getTransports(){return this.transports}close(){for(let e of this.transports)e.close?.()}writeLog(e){for(let t of this.transports)if(!(t.level!==void 0&&e.level<t.level))try{t.write(e)}catch(e){console.warn(`[logan-logger] transport '${t.type}' failed to write:`,e)}}createChild(){return new t(this.config,this.transports)}};function c(e){return{write:t=>{e.info(t.trim())}}}var l=class t{static create(n={}){let r=e._(),i=t.mergeConfig(n);switch(r.name){case`node`:return new s(i);case`deno`:return new e.l(i);case`bun`:return new s(i);case`browser`:case`webworker`:return new e.l(i);default:return new e.l(i)}}static createChild(e,t){return e.child(t)}static mergeConfig(t){let n=t.ignoreEnvironment?{}:e.n();return e.r(t,n)}};function u(e){return l.create(e)}function d(){let t=f();return u({level:p(t),colorize:t!==`production`&&e.a(),timestamp:!0,format:t===`production`?`json`:`text`})}function f(){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 p(t){switch(t){case`production`:return e.g.ERROR;case`staging`:case`test`:return e.g.WARN;case`development`:case`dev`:return e.g.DEBUG;default:return e.g.INFO}}function m(t){return e.o(t)??e.g.INFO}function h(t){switch(t){case e.g.DEBUG:return`debug`;case e.g.INFO:return`info`;case e.g.WARN:return`warn`;case e.g.ERROR:return`error`;case e.g.SILENT:return`silent`;default:return`info`}}Object.defineProperty(exports,"a",{enumerable:!0,get:function(){return m}}),Object.defineProperty(exports,"c",{enumerable:!0,get:function(){return i}}),Object.defineProperty(exports,"d",{enumerable:!0,get:function(){return n}}),Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return h}}),Object.defineProperty(exports,"l",{enumerable:!0,get:function(){return a}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return u}}),Object.defineProperty(exports,"o",{enumerable:!0,get:function(){return s}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return d}}),Object.defineProperty(exports,"s",{enumerable:!0,get:function(){return c}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return l}}),Object.defineProperty(exports,"u",{enumerable:!0,get:function(){return r}});
|