logan-logger 1.1.20 â 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-DV_BQqDK.mjs â config-Db6PTLH2.mjs} +178 -30
- 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 +19 -3
- package/dist/utils/serialization.d.mts +19 -3
- package/dist/utils/serialization.d.ts +19 -3
- package/package.json +3 -10
- package/dist/chunks/__vite-browser-external-C71mkwFX.mjs +0 -7
- package/dist/chunks/__vite-browser-external-DWL5uGdo.cjs +0 -1
- package/dist/chunks/browser-D9bA4EUQ.cjs +0 -1
- package/dist/chunks/factory-B8mZAA08.cjs +0 -1
- package/dist/chunks/factory-CG8zWIqv.mjs +0 -262
- package/dist/chunks/formatting-D6Y8pN18.cjs +0 -1
- package/dist/chunks/formatting-DP_57uSR.mjs +0 -29
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-DP_57uSR.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,25 +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 t
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
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);
|
|
144
|
+
return f(i, t, n, r);
|
|
145
|
+
} finally {
|
|
146
|
+
t.delete(i);
|
|
147
|
+
}
|
|
141
148
|
}
|
|
142
|
-
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 = [
|
|
143
159
|
"password",
|
|
144
160
|
"token",
|
|
145
161
|
"secret",
|
|
@@ -148,25 +164,43 @@ function d(e, t = [
|
|
|
148
164
|
]) {
|
|
149
165
|
if (typeof e != "object" || !e) return e;
|
|
150
166
|
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 ?
|
|
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;
|
|
152
168
|
return n;
|
|
153
169
|
}
|
|
154
|
-
|
|
155
|
-
|
|
170
|
+
var h = [
|
|
171
|
+
"name",
|
|
172
|
+
"message",
|
|
173
|
+
"stack"
|
|
174
|
+
];
|
|
175
|
+
function g(e, t) {
|
|
176
|
+
let n = Object.getOwnPropertyDescriptor(e, t);
|
|
177
|
+
if (n) {
|
|
178
|
+
if (n.get) try {
|
|
179
|
+
return n.get.call(e);
|
|
180
|
+
} catch {
|
|
181
|
+
return "[Throws]";
|
|
182
|
+
}
|
|
183
|
+
return n.value;
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
function _(e) {
|
|
187
|
+
if (!(e instanceof Error)) return e;
|
|
188
|
+
let t = {
|
|
156
189
|
name: e.name,
|
|
157
|
-
message: e.message
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
190
|
+
message: e.message
|
|
191
|
+
};
|
|
192
|
+
e.stack !== void 0 && (t.stack = e.stack);
|
|
193
|
+
for (let n of Object.getOwnPropertyNames(e)) h.includes(n) || (t[n] = g(e, n));
|
|
194
|
+
return t;
|
|
161
195
|
}
|
|
162
196
|
//#endregion
|
|
163
197
|
//#region src/runtime/browser.ts
|
|
164
|
-
var
|
|
198
|
+
var v = class e extends l {
|
|
165
199
|
constructor(e = {}) {
|
|
166
200
|
super(e);
|
|
167
201
|
}
|
|
168
202
|
writeLog(e) {
|
|
169
|
-
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)}` : ""}`;
|
|
170
204
|
switch (e.level) {
|
|
171
205
|
case c.DEBUG:
|
|
172
206
|
console.debug ? console.debug(r, n) : console.log(r, n);
|
|
@@ -202,7 +236,7 @@ var p = class e extends l {
|
|
|
202
236
|
shouldLog(e) {
|
|
203
237
|
return !this.shouldLogInProduction() && e < c.ERROR ? !1 : super.shouldLog(e);
|
|
204
238
|
}
|
|
205
|
-
},
|
|
239
|
+
}, y = class extends v {
|
|
206
240
|
constructor(...e) {
|
|
207
241
|
super(...e), this.groupStack = [];
|
|
208
242
|
}
|
|
@@ -239,7 +273,7 @@ var p = class e extends l {
|
|
|
239
273
|
table(e) {
|
|
240
274
|
console.table(e);
|
|
241
275
|
}
|
|
242
|
-
},
|
|
276
|
+
}, b = class extends v {
|
|
243
277
|
mark(e) {
|
|
244
278
|
typeof performance < "u" && performance.mark && performance.mark(e);
|
|
245
279
|
}
|
|
@@ -269,4 +303,118 @@ var p = class e extends l {
|
|
|
269
303
|
}
|
|
270
304
|
};
|
|
271
305
|
//#endregion
|
|
272
|
-
|
|
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}});
|