@visulima/pail 4.0.0-alpha.12 → 4.0.0-alpha.13

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.
Files changed (86) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/LICENSE.md +0 -27
  3. package/dist/error.js +5 -76
  4. package/dist/index.browser.js +19 -1499
  5. package/dist/index.server.js +31 -2804
  6. package/dist/middleware/elysia.d.ts +3 -3
  7. package/dist/middleware/elysia.js +1 -70
  8. package/dist/middleware/express.d.ts +3 -3
  9. package/dist/middleware/express.js +1 -29
  10. package/dist/middleware/fastify.d.ts +3 -3
  11. package/dist/middleware/fastify.js +1 -46
  12. package/dist/middleware/hono.d.ts +3 -3
  13. package/dist/middleware/hono.js +1 -33
  14. package/dist/middleware/next/handler.d.ts +5 -5
  15. package/dist/middleware/next/handler.js +1 -53
  16. package/dist/middleware/sveltekit.d.ts +3 -3
  17. package/dist/middleware/sveltekit.js +1 -43
  18. package/dist/object-tree.js +2 -89
  19. package/dist/packem_shared/AbstractJsonReporter-BawNFYxI.js +1 -0
  20. package/dist/packem_shared/AbstractJsonReporter-Dt5-5x2R.js +1 -0
  21. package/dist/packem_shared/JsonReporter-15ln04rX.js +2 -0
  22. package/dist/packem_shared/JsonReporter-CerNvhg-.js +1 -0
  23. package/dist/packem_shared/PrettyReporter-Br5njEEy.js +5 -0
  24. package/dist/packem_shared/PrettyReporter-CgXnwIip.js +44 -0
  25. package/dist/packem_shared/{abstract-json-reporter.d-BAgznjyU.d.ts → abstract-json-reporter.d-Bz3lZEDi.d.ts} +1 -1
  26. package/dist/packem_shared/abstract-pretty-reporter-BiHgKxG_.js +33 -0
  27. package/dist/packem_shared/constants-DKfCaSUR.js +1 -0
  28. package/dist/packem_shared/constants-ep2nsfdy.js +1 -0
  29. package/dist/packem_shared/{create-middleware-logger.d-DheMh8q4.d.ts → create-middleware-logger.d-DeNLii5l.d.ts} +2 -2
  30. package/dist/packem_shared/createPailError-53jAfQ-T.js +5 -0
  31. package/dist/packem_shared/headers-S8WyX-2m.js +1 -0
  32. package/dist/packem_shared/index-Bzp4LnJ5.js +1 -0
  33. package/dist/packem_shared/pailMiddleware-CWOJRmJq.js +1 -0
  34. package/dist/packem_shared/storage-DHM1EP2P.js +1 -0
  35. package/dist/packem_shared/{types.d-BeLumqgD.d.ts → types.d-ByY2ZuYG.d.ts} +1 -1
  36. package/dist/packem_shared/useLogger-qyZrjy4D.js +1 -0
  37. package/dist/packem_shared/{wide-event.d-B-t8ZnhI.d.ts → wide-event.d-Ke44zirU.d.ts} +1 -1
  38. package/dist/packem_shared/write-console-log-based-on-level-DfD64owL.js +1 -0
  39. package/dist/packem_shared/write-stream-Dd4_PTcm.js +1 -0
  40. package/dist/processor/caller/caller-processor.d.ts +1 -1
  41. package/dist/processor/caller/caller-processor.js +1 -59
  42. package/dist/processor/environment-processor.d.ts +1 -1
  43. package/dist/processor/environment-processor.js +1 -82
  44. package/dist/processor/message-formatter-processor.d.ts +1 -1
  45. package/dist/processor/message-formatter-processor.js +1 -715
  46. package/dist/processor/opentelemetry-processor.d.ts +1 -1
  47. package/dist/processor/opentelemetry-processor.js +1 -52
  48. package/dist/processor/redact-processor.d.ts +1 -1
  49. package/dist/processor/redact-processor.js +1 -31
  50. package/dist/processor/sampling-processor.d.ts +1 -1
  51. package/dist/processor/sampling-processor.js +1 -59
  52. package/dist/reporter/file/json-file-reporter.d.ts +2 -2
  53. package/dist/reporter/file/json-file-reporter.js +2 -136
  54. package/dist/reporter/http/abstract-http-reporter.d.ts +2 -2
  55. package/dist/reporter/http/abstract-http-reporter.js +2 -432
  56. package/dist/reporter/http/http-reporter.d.ts +2 -2
  57. package/dist/reporter/http/http-reporter.edge-light.js +2 -728
  58. package/dist/reporter/http/http-reporter.js +1 -13
  59. package/dist/reporter/json/index.browser.js +1 -2
  60. package/dist/reporter/json/index.d.ts +2 -2
  61. package/dist/reporter/json/index.js +1 -2
  62. package/dist/reporter/pretty/index.browser.js +1 -1
  63. package/dist/reporter/pretty/index.d.ts +3 -36
  64. package/dist/reporter/pretty/index.js +1 -1
  65. package/dist/reporter/simple/simple-reporter.server.d.ts +1 -1
  66. package/dist/reporter/simple/simple-reporter.server.js +8 -183
  67. package/dist/wide-event.d.ts +2 -2
  68. package/dist/wide-event.js +1 -284
  69. package/package.json +24 -24
  70. package/dist/packem_shared/AbstractJsonReporter-BO8Calb4.js +0 -284
  71. package/dist/packem_shared/AbstractJsonReporter-nOj0Ft1F.js +0 -284
  72. package/dist/packem_shared/JsonReporter-CCmj7oYL.js +0 -28
  73. package/dist/packem_shared/JsonReporter-Ck2PIAEw.js +0 -58
  74. package/dist/packem_shared/PrettyReporter-CIbrmjUV.js +0 -213
  75. package/dist/packem_shared/PrettyReporter-CNJEO9g7.js +0 -2723
  76. package/dist/packem_shared/abstract-pretty-reporter-CkqCt5hg.js +0 -2637
  77. package/dist/packem_shared/constants-B1RjD_ps.js +0 -99
  78. package/dist/packem_shared/constants-omsTHUWB.js +0 -119
  79. package/dist/packem_shared/createPailError-B_sgL0nF.js +0 -76
  80. package/dist/packem_shared/headers-BxHWM6KI.js +0 -127
  81. package/dist/packem_shared/index-6cG1Kp0t.js +0 -658
  82. package/dist/packem_shared/pailMiddleware-Ci88geIF.js +0 -24
  83. package/dist/packem_shared/storage-D0vqz8OX.js +0 -36
  84. package/dist/packem_shared/useLogger-D0rU3lcX.js +0 -33
  85. package/dist/packem_shared/write-console-log-based-on-level-ree2lDPw.js +0 -15
  86. package/dist/packem_shared/write-stream-MDqyXmc_.js +0 -6
@@ -1,7 +1,7 @@
1
- import { W as WideEvent } from "../packem_shared/wide-event.d-B-t8ZnhI.js";
2
- import { P as PailMiddlewareOptions } from "../packem_shared/create-middleware-logger.d-DheMh8q4.js";
1
+ import { W as WideEvent } from "../packem_shared/wide-event.d-Ke44zirU.js";
2
+ import { P as PailMiddlewareOptions } from "../packem_shared/create-middleware-logger.d-DeNLii5l.js";
3
3
  import 'safe-stable-stringify';
4
- import "../packem_shared/types.d-BeLumqgD.js";
4
+ import "../packem_shared/types.d-ByY2ZuYG.js";
5
5
  import '@visulima/colorize';
6
6
  import '@visulima/interactive-manager';
7
7
  /**
@@ -1,70 +1 @@
1
- import { createRequire as __cjs_createRequire } from "node:module";
2
-
3
- const __cjs_require = __cjs_createRequire(import.meta.url);
4
-
5
- const __cjs_getProcess = typeof globalThis !== "undefined" && typeof globalThis.process !== "undefined" ? globalThis.process : process;
6
-
7
- const __cjs_getBuiltinModule = (module) => {
8
- // Check if we're in Node.js and version supports getBuiltinModule
9
- if (typeof __cjs_getProcess !== "undefined" && __cjs_getProcess.versions && __cjs_getProcess.versions.node) {
10
- const [major, minor] = __cjs_getProcess.versions.node.split(".").map(Number);
11
- // Node.js 20.16.0+ and 22.3.0+
12
- if (major > 22 || (major === 22 && minor >= 3) || (major === 20 && minor >= 16)) {
13
- return __cjs_getProcess.getBuiltinModule(module);
14
- }
15
- }
16
- // Fallback to createRequire
17
- return __cjs_require(module);
18
- };
19
-
20
- const {
21
- AsyncLocalStorage
22
- } = __cjs_getBuiltinModule("node:async_hooks");
23
- import { a as extractSafeHeaders, c as createMiddlewareLogger } from '../packem_shared/headers-BxHWM6KI.js';
24
-
25
- const storage = new AsyncLocalStorage();
26
- const activeLoggers = /* @__PURE__ */ new WeakSet();
27
- const useLogger = () => {
28
- const logger = storage.getStore();
29
- if (!logger || !activeLoggers.has(logger)) {
30
- throw new Error("[pail] useLogger() called outside of Elysia pail plugin context.");
31
- }
32
- return logger;
33
- };
34
- const pailPlugin = (app, options) => {
35
- const requestState = /* @__PURE__ */ new WeakMap();
36
- const emitted = /* @__PURE__ */ new WeakSet();
37
- return app.derive({ as: "global" }, ({ request }) => {
38
- const url = new URL(request.url);
39
- const requestId = request.headers.get("x-request-id") ?? crypto.randomUUID();
40
- const safeHeaders = extractSafeHeaders(request.headers);
41
- const result = createMiddlewareLogger(options, {
42
- headers: safeHeaders,
43
- method: request.method,
44
- path: url.pathname,
45
- requestId
46
- });
47
- requestState.set(request, result);
48
- if (!result.skipped) {
49
- activeLoggers.add(result.logger);
50
- storage.enterWith(result.logger);
51
- }
52
- return { log: result.logger };
53
- }).onAfterHandle({ as: "global" }, async ({ request, set }) => {
54
- const state = requestState.get(request);
55
- if (!state?.skipped && state && !emitted.has(request)) {
56
- emitted.add(request);
57
- state.finish({ status: set.status ?? 200 });
58
- activeLoggers.delete(state.logger);
59
- }
60
- }).onError({ as: "global" }, async ({ error, request }) => {
61
- const state = requestState.get(request);
62
- if (!state?.skipped && state && !emitted.has(request)) {
63
- emitted.add(request);
64
- state.finish({ error });
65
- activeLoggers.delete(state.logger);
66
- }
67
- });
68
- };
69
-
70
- export { pailPlugin, useLogger };
1
+ var f=Object.defineProperty;var g=(e,t)=>f(e,"name",{value:t,configurable:!0});import{createRequire as h}from"node:module";import{a as b,c as q}from"../packem_shared/headers-S8WyX-2m.js";const m=h(import.meta.url),i=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,_=g(e=>{if(typeof i<"u"&&i.versions&&i.versions.node){const[t,a]=i.versions.node.split(".").map(Number);if(t>22||t===22&&a>=3||t===20&&a>=16)return i.getBuiltinModule(e)}return m(e)},"__cjs_getBuiltinModule"),{AsyncLocalStorage:y}=_("node:async_hooks");var w=Object.defineProperty,c=g((e,t)=>w(e,"name",{value:t,configurable:!0}),"d");const u=new y,d=new WeakSet,L=c(()=>{const e=u.getStore();if(!e||!d.has(e))throw new Error("[pail] useLogger() called outside of Elysia pail plugin context.");return e},"useLogger"),S=c((e,t)=>{const a=new WeakMap,l=new WeakSet;return e.derive({as:"global"},({request:r})=>{const o=new URL(r.url),s=r.headers.get("x-request-id")??crypto.randomUUID(),p=b(r.headers),n=q(t,{headers:p,method:r.method,path:o.pathname,requestId:s});return a.set(r,n),n.skipped||(d.add(n.logger),u.enterWith(n.logger)),{log:n.logger}}).onAfterHandle({as:"global"},async({request:r,set:o})=>{const s=a.get(r);!s?.skipped&&s&&!l.has(r)&&(l.add(r),s.finish({status:o.status??200}),d.delete(s.logger))}).onError({as:"global"},async({error:r,request:o})=>{const s=a.get(o);!s?.skipped&&s&&!l.has(o)&&(l.add(o),s.finish({error:r}),d.delete(s.logger))})},"pailPlugin");export{S as pailPlugin,L as useLogger};
@@ -1,7 +1,7 @@
1
- import { W as WideEvent } from "../packem_shared/wide-event.d-B-t8ZnhI.js";
2
- import { P as PailMiddlewareOptions } from "../packem_shared/create-middleware-logger.d-DheMh8q4.js";
1
+ import { W as WideEvent } from "../packem_shared/wide-event.d-Ke44zirU.js";
2
+ import { P as PailMiddlewareOptions } from "../packem_shared/create-middleware-logger.d-DeNLii5l.js";
3
3
  import 'safe-stable-stringify';
4
- import "../packem_shared/types.d-BeLumqgD.js";
4
+ import "../packem_shared/types.d-ByY2ZuYG.js";
5
5
  import '@visulima/colorize';
6
6
  import '@visulima/interactive-manager';
7
7
  /**
@@ -1,29 +1 @@
1
- import { e as extractSafeNodeHeaders, c as createMiddlewareLogger } from '../packem_shared/headers-BxHWM6KI.js';
2
- import { c as createLoggerStorage } from '../packem_shared/storage-D0vqz8OX.js';
3
-
4
- const loggerStorage = createLoggerStorage("Express middleware context. Make sure pail middleware is registered before your route handlers.");
5
- const useLogger = () => loggerStorage.useLogger();
6
- const pailMiddleware = (options) => (request, response, next) => {
7
- const requestId = request.headers["x-request-id"] ?? crypto.randomUUID();
8
- const path = request.originalUrl ?? request.url ?? "/";
9
- const safeHeaders = extractSafeNodeHeaders(request.headers);
10
- const { finish, logger, skipped } = createMiddlewareLogger(options, {
11
- headers: safeHeaders,
12
- method: request.method,
13
- path,
14
- requestId
15
- });
16
- if (skipped) {
17
- next();
18
- return;
19
- }
20
- request.log = logger;
21
- response.on("finish", () => {
22
- finish({ status: response.statusCode });
23
- });
24
- loggerStorage.storage.run(logger, () => {
25
- next();
26
- });
27
- };
28
-
29
- export { pailMiddleware, useLogger };
1
+ var c=Object.defineProperty;var t=(r,e)=>c(r,"name",{value:e,configurable:!0});import{e as m,c as f}from"../packem_shared/headers-S8WyX-2m.js";import{c as h}from"../packem_shared/storage-DHM1EP2P.js";var w=Object.defineProperty,d=t((r,e)=>w(r,"name",{value:e,configurable:!0}),"i");const i=h("Express middleware context. Make sure pail middleware is registered before your route handlers."),b=d(()=>i.useLogger(),"useLogger"),v=d(r=>(e,a,o)=>{const g=e.headers["x-request-id"]??crypto.randomUUID(),l=e.originalUrl??e.url??"/",u=m(e.headers),{finish:n,logger:s,skipped:p}=f(r,{headers:u,method:e.method,path:l,requestId:g});if(p){o();return}e.log=s,a.on("finish",()=>{n({status:a.statusCode})}),i.storage.run(s,()=>{o()})},"pailMiddleware");export{v as pailMiddleware,b as useLogger};
@@ -1,7 +1,7 @@
1
- import { W as WideEvent } from "../packem_shared/wide-event.d-B-t8ZnhI.js";
2
- import { P as PailMiddlewareOptions } from "../packem_shared/create-middleware-logger.d-DheMh8q4.js";
1
+ import { W as WideEvent } from "../packem_shared/wide-event.d-Ke44zirU.js";
2
+ import { P as PailMiddlewareOptions } from "../packem_shared/create-middleware-logger.d-DeNLii5l.js";
3
3
  import 'safe-stable-stringify';
4
- import "../packem_shared/types.d-BeLumqgD.js";
4
+ import "../packem_shared/types.d-ByY2ZuYG.js";
5
5
  import '@visulima/colorize';
6
6
  import '@visulima/interactive-manager';
7
7
  /**
@@ -1,46 +1 @@
1
- import { e as extractSafeNodeHeaders, c as createMiddlewareLogger } from '../packem_shared/headers-BxHWM6KI.js';
2
- import { c as createLoggerStorage } from '../packem_shared/storage-D0vqz8OX.js';
3
-
4
- const loggerStorage = createLoggerStorage("Fastify middleware context. Make sure pail plugin is registered before your route handlers.");
5
- const useLogger = () => loggerStorage.useLogger();
6
- const pailPlugin = (fastify, options) => {
7
- const requestState = /* @__PURE__ */ new WeakMap();
8
- const emitted = /* @__PURE__ */ new WeakSet();
9
- fastify.addHook("onRequest", (request, _reply, done) => {
10
- const requestId = request.headers["x-request-id"] ?? crypto.randomUUID();
11
- const safeHeaders = extractSafeNodeHeaders(request.headers);
12
- const { finish, logger, skipped } = createMiddlewareLogger(options, {
13
- headers: safeHeaders,
14
- method: request.method,
15
- path: request.url,
16
- requestId
17
- });
18
- if (skipped) {
19
- done();
20
- return;
21
- }
22
- request.log = logger;
23
- requestState.set(request, { finish });
24
- loggerStorage.storage.run(logger, () => {
25
- done();
26
- });
27
- });
28
- fastify.addHook("onResponse", async (request, reply) => {
29
- const state = requestState.get(request);
30
- if (!state || emitted.has(request)) {
31
- return;
32
- }
33
- emitted.add(request);
34
- state.finish({ status: reply.statusCode });
35
- });
36
- fastify.addHook("onError", async (request, _reply, error) => {
37
- const state = requestState.get(request);
38
- if (!state || emitted.has(request)) {
39
- return;
40
- }
41
- emitted.add(request);
42
- state.finish({ error });
43
- });
44
- };
45
-
46
- export { pailPlugin, useLogger };
1
+ var h=Object.defineProperty;var g=(r,a)=>h(r,"name",{value:a,configurable:!0});import{e as m,c as k}from"../packem_shared/headers-S8WyX-2m.js";import{c as y}from"../packem_shared/storage-DHM1EP2P.js";var L=Object.defineProperty,u=g((r,a)=>L(r,"name",{value:a,configurable:!0}),"d");const c=y("Fastify middleware context. Make sure pail plugin is registered before your route handlers."),b=u(()=>c.useLogger(),"useLogger"),q=u((r,a)=>{const n=new WeakMap,s=new WeakSet;r.addHook("onRequest",(e,d,o)=>{const t=e.headers["x-request-id"]??crypto.randomUUID(),l=m(e.headers),{finish:p,logger:i,skipped:f}=k(a,{headers:l,method:e.method,path:e.url,requestId:t});if(f){o();return}e.log=i,n.set(e,{finish:p}),c.storage.run(i,()=>{o()})}),r.addHook("onResponse",async(e,d)=>{const o=n.get(e);!o||s.has(e)||(s.add(e),o.finish({status:d.statusCode}))}),r.addHook("onError",async(e,d,o)=>{const t=n.get(e);!t||s.has(e)||(s.add(e),t.finish({error:o}))})},"pailPlugin");export{q as pailPlugin,b as useLogger};
@@ -1,7 +1,7 @@
1
- import { W as WideEvent } from "../packem_shared/wide-event.d-B-t8ZnhI.js";
2
- import { P as PailMiddlewareOptions } from "../packem_shared/create-middleware-logger.d-DheMh8q4.js";
1
+ import { W as WideEvent } from "../packem_shared/wide-event.d-Ke44zirU.js";
2
+ import { P as PailMiddlewareOptions } from "../packem_shared/create-middleware-logger.d-DeNLii5l.js";
3
3
  import 'safe-stable-stringify';
4
- import "../packem_shared/types.d-BeLumqgD.js";
4
+ import "../packem_shared/types.d-ByY2ZuYG.js";
5
5
  import '@visulima/colorize';
6
6
  import '@visulima/interactive-manager';
7
7
  /**
@@ -1,33 +1 @@
1
- import { a as extractSafeHeaders, c as createMiddlewareLogger } from '../packem_shared/headers-BxHWM6KI.js';
2
-
3
- const useLogger = (c) => {
4
- const logger = c.get("log");
5
- if (!logger) {
6
- throw new Error("[pail] useLogger() called but pail middleware is not registered.");
7
- }
8
- return logger;
9
- };
10
- const pailMiddleware = (options) => async (c, next) => {
11
- const requestId = c.req.header("x-request-id") ?? crypto.randomUUID();
12
- const safeHeaders = extractSafeHeaders(c.req.raw.headers);
13
- const { finish, logger, skipped } = createMiddlewareLogger(options, {
14
- headers: safeHeaders,
15
- method: c.req.method,
16
- path: c.req.path,
17
- requestId
18
- });
19
- if (skipped) {
20
- await next();
21
- return;
22
- }
23
- c.set("log", logger);
24
- try {
25
- await next();
26
- finish({ status: c.res.status });
27
- } catch (error) {
28
- finish({ error: error instanceof Error ? error : new Error(String(error)) });
29
- throw error;
30
- }
31
- };
32
-
33
- export { pailMiddleware, useLogger };
1
+ var c=Object.defineProperty;var s=(r,e)=>c(r,"name",{value:e,configurable:!0});import{a as u,c as p}from"../packem_shared/headers-S8WyX-2m.js";var h=Object.defineProperty,d=s((r,e)=>h(r,"name",{value:e,configurable:!0}),"o");const m=d(r=>{const e=r.get("log");if(!e)throw new Error("[pail] useLogger() called but pail middleware is not registered.");return e},"useLogger"),q=d(r=>async(e,t)=>{const i=e.req.header("x-request-id")??crypto.randomUUID(),n=u(e.req.raw.headers),{finish:o,logger:g,skipped:l}=p(r,{headers:n,method:e.req.method,path:e.req.path,requestId:i});if(l){await t();return}e.set("log",g);try{await t(),o({status:e.res.status})}catch(a){throw o({error:a instanceof Error?a:new Error(String(a))}),a}},"pailMiddleware");export{q as pailMiddleware,m as useLogger};
@@ -1,7 +1,7 @@
1
- import { P as PailMiddlewareOptions } from "../../packem_shared/create-middleware-logger.d-DheMh8q4.js";
2
- import { W as WideEvent } from "../../packem_shared/wide-event.d-B-t8ZnhI.js";
1
+ import { P as PailMiddlewareOptions } from "../../packem_shared/create-middleware-logger.d-DeNLii5l.js";
2
+ import { W as WideEvent } from "../../packem_shared/wide-event.d-Ke44zirU.js";
3
3
  import 'node:async_hooks';
4
- import "../../packem_shared/types.d-BeLumqgD.js";
4
+ import "../../packem_shared/types.d-ByY2ZuYG.js";
5
5
  import '@visulima/colorize';
6
6
  import '@visulima/interactive-manager';
7
7
  import 'safe-stable-stringify';
@@ -62,7 +62,7 @@ interface PailNextMiddlewareOptions {
62
62
  * export default middleware;
63
63
  * ```
64
64
  */
65
- declare const pailMiddleware: (NextResponseClass: NextResponseConstructor, options?: PailNextMiddlewareOptions) => (request: NextRequest) => NextResponse;
65
+ declare const pailMiddleware: (NextResponseClass: NextResponseConstructor, options?: PailNextMiddlewareOptions) => ((request: NextRequest) => NextResponse);
66
66
  /**
67
67
  * Retrieve the request-scoped WideEvent logger from AsyncLocalStorage.
68
68
  * Must be called within a `withPail()` wrapped handler or server action.
@@ -99,5 +99,5 @@ type NextPailOptions<T extends string = string> = PailMiddlewareOptions<T>;
99
99
  * });
100
100
  * ```
101
101
  */
102
- declare const createWithPail: <T extends string = string>(options: NextPailOptions<T>) => <TArgs extends unknown[], TReturn>(handler: (...args: TArgs) => Promise<TReturn> | TReturn) => (...args: TArgs) => Promise<TReturn>;
102
+ declare const createWithPail: <T extends string = string>(options: NextPailOptions<T>) => <TArgs extends unknown[], TReturn>(handler: (...args: TArgs) => Promise<TReturn> | TReturn) => ((...args: TArgs) => Promise<TReturn>);
103
103
  export { type NextPailOptions, type PailNextMiddlewareOptions, type WideEvent, createWithPail, pailMiddleware, useLogger };
@@ -1,53 +1 @@
1
- import { a as extractSafeHeaders, c as createMiddlewareLogger } from '../../packem_shared/headers-BxHWM6KI.js';
2
- import { pailStorage } from '../../packem_shared/useLogger-D0rU3lcX.js';
3
- export { useLogger } from '../../packem_shared/useLogger-D0rU3lcX.js';
4
- export { pailMiddleware } from '../../packem_shared/pailMiddleware-Ci88geIF.js';
5
-
6
- const createWithPail = (options) => (
7
- /**
8
- * Wrap a Next.js route handler or server action with wide event logging.
9
- * @returns A wrapped handler that creates and emits a WideEvent
10
- */
11
- (handler) => async (...args) => {
12
- const [firstArgument] = args;
13
- const isRequest = firstArgument instanceof Request;
14
- let method = "UNKNOWN";
15
- let path = "/";
16
- let requestId = crypto.randomUUID();
17
- let headers = {};
18
- if (isRequest) {
19
- const request = firstArgument;
20
- const url = new URL(request.url);
21
- method = request.method;
22
- path = url.pathname;
23
- headers = extractSafeHeaders(request.headers);
24
- const middlewareRequestId = request.headers.get("x-request-id");
25
- if (middlewareRequestId) {
26
- requestId = middlewareRequestId;
27
- }
28
- }
29
- const { finish, logger, skipped } = createMiddlewareLogger(options, {
30
- headers,
31
- method,
32
- path,
33
- requestId
34
- });
35
- if (skipped) {
36
- return handler(...args);
37
- }
38
- try {
39
- const result = await pailStorage.run(logger, () => handler(...args));
40
- const status = result instanceof Response ? result.status : 200;
41
- finish({ status });
42
- return result;
43
- } catch (error) {
44
- const errorInstance = error instanceof Error ? error : new Error(String(error));
45
- const errorStatus = errorInstance.status ?? errorInstance.statusCode ?? 500;
46
- finish({ error: errorInstance });
47
- logger.setStatus(errorStatus);
48
- throw error;
49
- }
50
- }
51
- );
52
-
53
- export { createWithPail };
1
+ var g=Object.defineProperty;var h=(a,r)=>g(a,"name",{value:r,configurable:!0});import{a as w,c as x}from"../../packem_shared/headers-S8WyX-2m.js";import{pailStorage as y}from"../../packem_shared/useLogger-qyZrjy4D.js";import{useLogger as W}from"../../packem_shared/useLogger-qyZrjy4D.js";import{pailMiddleware as E}from"../../packem_shared/pailMiddleware-CWOJRmJq.js";var S=Object.defineProperty,U=h((a,r)=>S(a,"name",{value:r,configurable:!0}),"c");const N=U(a=>r=>async(...o)=>{const[n]=o,l=n instanceof Request;let i="UNKNOWN",c="/",d=crypto.randomUUID(),u={};if(l){const e=n,t=new URL(e.url);i=e.method,c=t.pathname,u=w(e.headers);const s=e.headers.get("x-request-id");s&&(d=s)}const{finish:p,logger:f,skipped:m}=x(a,{headers:u,method:i,path:c,requestId:d});if(m)return r(...o);try{const e=await y.run(f,()=>r(...o)),t=e instanceof Response?e.status:200;return p({status:t}),e}catch(e){const t=e instanceof Error?e:new Error(String(e)),s=t.status??t.statusCode??500;throw p({error:t}),f.setStatus(s),e}},"createWithPail");export{N as createWithPail,E as pailMiddleware,W as useLogger};
@@ -1,7 +1,7 @@
1
- import { W as WideEvent } from "../packem_shared/wide-event.d-B-t8ZnhI.js";
2
- import { P as PailMiddlewareOptions } from "../packem_shared/create-middleware-logger.d-DheMh8q4.js";
1
+ import { W as WideEvent } from "../packem_shared/wide-event.d-Ke44zirU.js";
2
+ import { P as PailMiddlewareOptions } from "../packem_shared/create-middleware-logger.d-DeNLii5l.js";
3
3
  import 'safe-stable-stringify';
4
- import "../packem_shared/types.d-BeLumqgD.js";
4
+ import "../packem_shared/types.d-ByY2ZuYG.js";
5
5
  import '@visulima/colorize';
6
6
  import '@visulima/interactive-manager';
7
7
  /**
@@ -1,43 +1 @@
1
- import { a as extractSafeHeaders, c as createMiddlewareLogger } from '../packem_shared/headers-BxHWM6KI.js';
2
- import { c as createLoggerStorage } from '../packem_shared/storage-D0vqz8OX.js';
3
-
4
- const loggerStorage = createLoggerStorage("SvelteKit handle hook context. Make sure pailHandle is added to your hooks.server.ts.");
5
- const useLogger = () => loggerStorage.useLogger();
6
- const pailHandle = (options) => async ({ event, resolve }) => {
7
- const requestId = event.request.headers.get("x-request-id") ?? crypto.randomUUID();
8
- const safeHeaders = extractSafeHeaders(event.request.headers);
9
- const { finish, logger, skipped } = createMiddlewareLogger(options, {
10
- headers: safeHeaders,
11
- method: event.request.method,
12
- path: event.url.pathname,
13
- requestId
14
- });
15
- if (skipped) {
16
- return resolve(event);
17
- }
18
- event.locals.log = logger;
19
- return loggerStorage.storage.run(logger, async () => {
20
- try {
21
- const response = await resolve(event);
22
- finish({ status: response.status });
23
- return response;
24
- } catch (error) {
25
- finish({ error: error instanceof Error ? error : new Error(String(error)) });
26
- throw error;
27
- }
28
- });
29
- };
30
- const pailHandleError = () => ({ error, event }) => {
31
- const logger = event.locals.log;
32
- if (logger && error instanceof Error) {
33
- logger.error(error.message, error);
34
- }
35
- };
36
- const createPailHooks = (options) => {
37
- return {
38
- handle: pailHandle(options),
39
- handleError: pailHandleError()
40
- };
41
- };
42
-
43
- export { createPailHooks, pailHandle, pailHandleError, useLogger };
1
+ var u=Object.defineProperty;var l=(r,e)=>u(r,"name",{value:e,configurable:!0});import{a as h,c as p}from"../packem_shared/headers-S8WyX-2m.js";import{c as m}from"../packem_shared/storage-DHM1EP2P.js";var v=Object.defineProperty,t=l((r,e)=>v(r,"name",{value:e,configurable:!0}),"n");const d=m("SvelteKit handle hook context. Make sure pailHandle is added to your hooks.server.ts."),q=t(()=>d.useLogger(),"useLogger"),f=t(r=>async({event:e,resolve:o})=>{const c=e.request.headers.get("x-request-id")??crypto.randomUUID(),i=h(e.request.headers),{finish:s,logger:n,skipped:g}=p(r,{headers:i,method:e.request.method,path:e.url.pathname,requestId:c});return g?o(e):(e.locals.log=n,d.storage.run(n,async()=>{try{const a=await o(e);return s({status:a.status}),a}catch(a){throw s({error:a instanceof Error?a:new Error(String(a))}),a}}))},"pailHandle"),H=t(()=>({error:r,event:e})=>{const o=e.locals.log;o&&r instanceof Error&&o.error(r.message,r)},"pailHandleError"),L=t(r=>({handle:f(r),handleError:H()}),"createPailHooks");export{L as createPailHooks,f as pailHandle,H as pailHandleError,q as useLogger};
@@ -1,89 +1,2 @@
1
- const buildContext = (options) => {
2
- const context = {
3
- breakCircularWith: " (circular ref.)",
4
- joined: true,
5
- keyNeighbour: "├─ ",
6
- keyNoNeighbour: "└─ ",
7
- renderFn: (node) => {
8
- if (["boolean", "number", "string"].includes(typeof node)) {
9
- return String(node);
10
- }
11
- return void 0;
12
- },
13
- separator: ": ",
14
- sortFn: void 0,
15
- spacerNeighbour: "│ ",
16
- spacerNoNeighbour: " ",
17
- ...options
18
- };
19
- if (typeof context.joined !== "boolean") {
20
- throw new TypeError('Option "joined" must be a boolean');
21
- }
22
- if (typeof context.spacerNoNeighbour !== "string") {
23
- throw new TypeError('Option "spacerNoNeighbour" must be a string');
24
- }
25
- if (typeof context.spacerNeighbour !== "string") {
26
- throw new TypeError('Option "spacerNeighbour" must be a string');
27
- }
28
- if (typeof context.keyNoNeighbour !== "string") {
29
- throw new TypeError('Option "keyNoNeighbour" must be a string');
30
- }
31
- if (typeof context.keyNeighbour !== "string") {
32
- throw new TypeError('Option "keyNeighbour" must be a string');
33
- }
34
- if (typeof context.separator !== "string") {
35
- throw new TypeError('Option "separator" must be a string');
36
- }
37
- if (typeof context.renderFn !== "function") {
38
- throw new TypeError('Option "renderFn" must be a function');
39
- }
40
- if (context.sortFn !== void 0 && typeof context.sortFn !== "function") {
41
- throw new TypeError('Option "sortFn" must be a function or undefined');
42
- }
43
- if (context.breakCircularWith !== null && typeof context.breakCircularWith !== "string") {
44
- throw new TypeError('Option "breakCircularWith" must be a string or null');
45
- }
46
- return context;
47
- };
48
- const renderObjectTree = (tree, options) => {
49
- const context = buildContext(options);
50
- const result = [];
51
- const rootRendered = context.renderFn(tree);
52
- if (rootRendered !== void 0) {
53
- result.push(rootRendered);
54
- }
55
- const sort = (input) => {
56
- if (context.sortFn === void 0) {
57
- return input;
58
- }
59
- return input.toSorted((a, b) => context.sortFn?.(b, a) ?? 0);
60
- };
61
- const neighbours = [];
62
- const keys = sort(Object.keys(tree)).map((k) => [k]);
63
- const lookup = [tree];
64
- while (keys.length > 0) {
65
- const key = keys.pop() ?? [];
66
- const node = lookup[key.length - 1][key.at(-1) ?? ""];
67
- const isCircular = context.breakCircularWith !== null && lookup.slice(0, key.length).includes(node);
68
- neighbours[key.length - 1] = keys.length > 0 && (keys.at(-1)?.length ?? 0) === key.length;
69
- const indent = neighbours.slice(0, key.length - 1).map((n) => {
70
- if (n) {
71
- return context.spacerNeighbour;
72
- }
73
- return context.spacerNoNeighbour;
74
- }).join("");
75
- const connector = neighbours[key.length - 1] ? context.keyNeighbour : context.keyNoNeighbour;
76
- const keyName = key.at(-1) ?? "";
77
- const nodeRendered = context.renderFn(node);
78
- const value = nodeRendered === void 0 ? "" : `${context.separator}${nodeRendered}`;
79
- const circular = isCircular ? context.breakCircularWith ?? "" : "";
80
- result.push(`${indent}${connector}${keyName}${value}${circular}`);
81
- if (node !== null && typeof node === "object" && !Array.isArray(node) && !isCircular) {
82
- keys.push(...sort(Object.keys(node)).map((k) => [...key, k]));
83
- lookup[key.length] = node;
84
- }
85
- }
86
- return context.joined ? result.join("\n") : result;
87
- };
88
-
89
- export { renderObjectTree as default, renderObjectTree };
1
+ var O=Object.defineProperty;var y=(o,r)=>O(o,"name",{value:r,configurable:!0});var m=Object.defineProperty,u=y((o,r)=>m(o,"name",{value:r,configurable:!0}),"s");const j=u(o=>{const r={breakCircularWith:" (circular ref.)",joined:!0,keyNeighbour:"├─ ",keyNoNeighbour:"└─ ",renderFn:u(e=>{if(["boolean","number","string"].includes(typeof e))return String(e)},"renderFn"),separator:": ",sortFn:void 0,spacerNeighbour:"│ ",spacerNoNeighbour:" ",...o};if(typeof r.joined!="boolean")throw new TypeError('Option "joined" must be a boolean');if(typeof r.spacerNoNeighbour!="string")throw new TypeError('Option "spacerNoNeighbour" must be a string');if(typeof r.spacerNeighbour!="string")throw new TypeError('Option "spacerNeighbour" must be a string');if(typeof r.keyNoNeighbour!="string")throw new TypeError('Option "keyNoNeighbour" must be a string');if(typeof r.keyNeighbour!="string")throw new TypeError('Option "keyNeighbour" must be a string');if(typeof r.separator!="string")throw new TypeError('Option "separator" must be a string');if(typeof r.renderFn!="function")throw new TypeError('Option "renderFn" must be a function');if(r.sortFn!==void 0&&typeof r.sortFn!="function")throw new TypeError('Option "sortFn" must be a function or undefined');if(r.breakCircularWith!==null&&typeof r.breakCircularWith!="string")throw new TypeError('Option "breakCircularWith" must be a string or null');return r},"buildContext"),T=u((o,r)=>{const e=j(r),s=[],g=e.renderFn(o);g!==void 0&&s.push(g);const c=u(t=>e.sortFn===void 0?t:t.toSorted((n,a)=>e.sortFn?.(a,n)??0),"sort"),p=[],i=c(Object.keys(o)).map(t=>[t]),h=[o];for(;i.length>0;){const t=i.pop()??[],n=h[t.length-1][t.at(-1)??""],a=e.breakCircularWith!==null&&h.slice(0,t.length).includes(n);p[t.length-1]=i.length>0&&(i.at(-1)?.length??0)===t.length;const f=p.slice(0,t.length-1).map(b=>b?e.spacerNeighbour:e.spacerNoNeighbour).join(""),d=p[t.length-1]?e.keyNeighbour:e.keyNoNeighbour,N=t.at(-1)??"",l=e.renderFn(n),w=l===void 0?"":`${e.separator}${l}`,k=a?e.breakCircularWith??"":"";s.push(`${f}${d}${N}${w}${k}`),n!==null&&typeof n=="object"&&!Array.isArray(n)&&!a&&(i.push(...c(Object.keys(n)).map(b=>[...t,b])),h[t.length]=n)}return e.joined?s.join(`
2
+ `):s},"renderObjectTree");export{T as default,T as renderObjectTree};
@@ -0,0 +1 @@
1
+ var j=Object.defineProperty;var l=(e,r)=>j(e,"name",{value:r,configurable:!0});import{E as O}from"./constants-ep2nsfdy.js";var h=Object.defineProperty,S=l((e,r)=>h(e,"name",{value:r,configurable:!0}),"e");function v(e){if(typeof e!="object"||e===null)return!1;const r=Object.getPrototypeOf(e);return(r===null||r===Object.prototype||Object.getPrototypeOf(r)===null)&&!(Symbol.toStringTag in e)&&!(Symbol.iterator in e)}l(v,"r");S(v,"isPlainObject");var P=Object.defineProperty,s=l((e,r)=>P(e,"name",{value:r,configurable:!0}),"i");const w=Object.create({},{cause:{enumerable:!1,value:void 0,writable:!0},code:{enumerable:!0,value:void 0,writable:!0},errors:{enumerable:!1,value:void 0,writable:!0},message:{enumerable:!1,value:void 0,writable:!0},name:{enumerable:!1,value:void 0,writable:!0},stack:{enumerable:!1,value:void 0,writable:!0}}),m=new WeakSet,d=s(e=>{const r=Object.getOwnPropertyNames(e);for(const n of r){const t=Object.getOwnPropertyDescriptor(e,n);t&&(t.enumerable||Object.defineProperty(e,n,{...t,enumerable:!0}),t.value&&typeof t.value=="object"&&!Array.isArray(t.value)&&(Object.getPrototypeOf(t.value)===Object.prototype||Object.getPrototypeOf(t.value)===null)&&d(t.value))}},"makePropertiesEnumerable"),N=s(e=>{m.add(e);const r=e.toJSON();return m.delete(e),Object.isExtensible(r)&&d(r),r},"toJSON"),y=s((e,r,n,t)=>{if(e&&e instanceof Uint8Array&&e.constructor.name==="Buffer")return"[object Buffer]";if(e!==null&&typeof e=="object"&&"pipe"in e&&typeof e.pipe=="function")return"[object Stream]";if(e instanceof Error)return r.has(e)?"[Circular]":(n+=1,b(e,t,r,n));if(t.useToJSON&&e!==null&&typeof e=="object"&&"toJSON"in e&&typeof e.toJSON=="function")return e.toJSON();if(e instanceof Date)return e.toISOString();if(typeof e=="function")return`[Function: ${e.name||"anonymous"}]`;if(typeof e=="bigint")return`${String(e)}n`;if(v(e)){if(t.maxDepth!==void 0&&t.maxDepth!==Number.POSITIVE_INFINITY&&n+1>=t.maxDepth)return{};n+=1;const o={};for(const i in e)o[i]=y(e[i],r,n,t);return o}try{return e}catch{return"[Not Available]"}},"serializeValue"),b=s((e,r,n,t)=>{if(n.add(e),r.maxDepth===0)return{};if(r.useToJSON&&typeof e.toJSON=="function"&&!m.has(e))return N(e);const o=Object.create(w);if(Object.defineProperty(o,"name",{configurable:!0,enumerable:!0,value:Object.prototype.toString.call(e.constructor)==="[object Function]"?e.constructor.name:e.name,writable:!0}),Object.defineProperty(o,"message",{configurable:!0,enumerable:!0,value:e.message,writable:!0}),Object.defineProperty(o,"stack",{configurable:!0,enumerable:!0,value:e.stack,writable:!0}),Array.isArray(e.errors)){const u=[];for(const a of e.errors){if(!(a instanceof Error))throw new TypeError("All errors in the 'errors' property must be instances of Error");if(n.has(a))return Object.defineProperty(o,"errors",{configurable:!0,enumerable:!0,value:[],writable:!0}),o;u.push(b(a,r,n,t))}Object.defineProperty(o,"errors",{configurable:!0,enumerable:!0,value:u,writable:!0})}const i=e.cause;if(i!=null)if(i instanceof Error)n.has(i)?Object.defineProperty(o,"cause",{configurable:!0,enumerable:!0,value:"[Circular]",writable:!0}):Object.defineProperty(o,"cause",{configurable:!0,enumerable:!0,value:b(i,r,n,t),writable:!0});else{const u=y(i,n,t,r);Object.defineProperty(o,"cause",{configurable:!0,enumerable:!0,value:u,writable:!0})}for(const u in e){if(u==="name"||u==="message"||u==="stack"||u==="cause"||u==="errors")continue;const a=e[u],c=y(a,n,t,r);Object.defineProperty(o,u,{configurable:!0,enumerable:!0,value:c,writable:!0})}if(Array.isArray(r.exclude)&&r.exclude.length>0)for(const u of r.exclude)try{delete o[u]}catch{}return o},"_serialize"),g=s((e,r={})=>b(e,{exclude:r.exclude??[],maxDepth:r.maxDepth??Number.POSITIVE_INFINITY,useToJSON:r.useToJSON??!1},new Set,0),"serialize");var x=Object.defineProperty,E=l((e,r)=>x(e,"name",{value:r,configurable:!0}),"f");class I{static{l(this,"AbstractJsonReporter")}static{E(this,"AbstractJsonReporter")}stringify;errorOptions;constructor(r={}){this.errorOptions=r.error??{}}setStringify(r){this.stringify=r}log(r){const{context:n,error:t,file:o,message:i,type:u,...a}=r;if(a.label&&(a.label=a.label.trim()),o&&(a.file=`${o.name??""}:${String(o.line)}${o.column?`:${String(o.column)}`:""}`),a.message=i===O?void 0:i,t&&(a.error=g(t,this.errorOptions)),n){const c=[];for(let p=0;p<n.length;p+=1){const f=n[p];f!==O&&(f instanceof Error?c.push(g(f,this.errorOptions)):c.push(f))}a.context=c}this._log(this.stringify(a),u.level)}}export{I as AbstractJsonReporter};
@@ -0,0 +1 @@
1
+ var j=Object.defineProperty;var l=(e,r)=>j(e,"name",{value:r,configurable:!0});import{E as O}from"./constants-DKfCaSUR.js";var h=Object.defineProperty,S=l((e,r)=>h(e,"name",{value:r,configurable:!0}),"e");function v(e){if(typeof e!="object"||e===null)return!1;const r=Object.getPrototypeOf(e);return(r===null||r===Object.prototype||Object.getPrototypeOf(r)===null)&&!(Symbol.toStringTag in e)&&!(Symbol.iterator in e)}l(v,"r");S(v,"isPlainObject");var P=Object.defineProperty,s=l((e,r)=>P(e,"name",{value:r,configurable:!0}),"i");const w=Object.create({},{cause:{enumerable:!1,value:void 0,writable:!0},code:{enumerable:!0,value:void 0,writable:!0},errors:{enumerable:!1,value:void 0,writable:!0},message:{enumerable:!1,value:void 0,writable:!0},name:{enumerable:!1,value:void 0,writable:!0},stack:{enumerable:!1,value:void 0,writable:!0}}),m=new WeakSet,d=s(e=>{const r=Object.getOwnPropertyNames(e);for(const n of r){const t=Object.getOwnPropertyDescriptor(e,n);t&&(t.enumerable||Object.defineProperty(e,n,{...t,enumerable:!0}),t.value&&typeof t.value=="object"&&!Array.isArray(t.value)&&(Object.getPrototypeOf(t.value)===Object.prototype||Object.getPrototypeOf(t.value)===null)&&d(t.value))}},"makePropertiesEnumerable"),N=s(e=>{m.add(e);const r=e.toJSON();return m.delete(e),Object.isExtensible(r)&&d(r),r},"toJSON"),y=s((e,r,n,t)=>{if(e&&e instanceof Uint8Array&&e.constructor.name==="Buffer")return"[object Buffer]";if(e!==null&&typeof e=="object"&&"pipe"in e&&typeof e.pipe=="function")return"[object Stream]";if(e instanceof Error)return r.has(e)?"[Circular]":(n+=1,b(e,t,r,n));if(t.useToJSON&&e!==null&&typeof e=="object"&&"toJSON"in e&&typeof e.toJSON=="function")return e.toJSON();if(e instanceof Date)return e.toISOString();if(typeof e=="function")return`[Function: ${e.name||"anonymous"}]`;if(typeof e=="bigint")return`${String(e)}n`;if(v(e)){if(t.maxDepth!==void 0&&t.maxDepth!==Number.POSITIVE_INFINITY&&n+1>=t.maxDepth)return{};n+=1;const o={};for(const i in e)o[i]=y(e[i],r,n,t);return o}try{return e}catch{return"[Not Available]"}},"serializeValue"),b=s((e,r,n,t)=>{if(n.add(e),r.maxDepth===0)return{};if(r.useToJSON&&typeof e.toJSON=="function"&&!m.has(e))return N(e);const o=Object.create(w);if(Object.defineProperty(o,"name",{configurable:!0,enumerable:!0,value:Object.prototype.toString.call(e.constructor)==="[object Function]"?e.constructor.name:e.name,writable:!0}),Object.defineProperty(o,"message",{configurable:!0,enumerable:!0,value:e.message,writable:!0}),Object.defineProperty(o,"stack",{configurable:!0,enumerable:!0,value:e.stack,writable:!0}),Array.isArray(e.errors)){const u=[];for(const a of e.errors){if(!(a instanceof Error))throw new TypeError("All errors in the 'errors' property must be instances of Error");if(n.has(a))return Object.defineProperty(o,"errors",{configurable:!0,enumerable:!0,value:[],writable:!0}),o;u.push(b(a,r,n,t))}Object.defineProperty(o,"errors",{configurable:!0,enumerable:!0,value:u,writable:!0})}const i=e.cause;if(i!=null)if(i instanceof Error)n.has(i)?Object.defineProperty(o,"cause",{configurable:!0,enumerable:!0,value:"[Circular]",writable:!0}):Object.defineProperty(o,"cause",{configurable:!0,enumerable:!0,value:b(i,r,n,t),writable:!0});else{const u=y(i,n,t,r);Object.defineProperty(o,"cause",{configurable:!0,enumerable:!0,value:u,writable:!0})}for(const u in e){if(u==="name"||u==="message"||u==="stack"||u==="cause"||u==="errors")continue;const a=e[u],c=y(a,n,t,r);Object.defineProperty(o,u,{configurable:!0,enumerable:!0,value:c,writable:!0})}if(Array.isArray(r.exclude)&&r.exclude.length>0)for(const u of r.exclude)try{delete o[u]}catch{}return o},"_serialize"),g=s((e,r={})=>b(e,{exclude:r.exclude??[],maxDepth:r.maxDepth??Number.POSITIVE_INFINITY,useToJSON:r.useToJSON??!1},new Set,0),"serialize");var x=Object.defineProperty,E=l((e,r)=>x(e,"name",{value:r,configurable:!0}),"f");class I{static{l(this,"AbstractJsonReporter")}static{E(this,"AbstractJsonReporter")}stringify;errorOptions;constructor(r={}){this.errorOptions=r.error??{}}setStringify(r){this.stringify=r}log(r){const{context:n,error:t,file:o,message:i,type:u,...a}=r;if(a.label&&(a.label=a.label.trim()),o&&(a.file=`${o.name??""}:${String(o.line)}${o.column?`:${String(o.column)}`:""}`),a.message=i===O?void 0:i,t&&(a.error=g(t,this.errorOptions)),n){const c=[];for(let p=0;p<n.length;p+=1){const f=n[p];f!==O&&(f instanceof Error?c.push(g(f,this.errorOptions)):c.push(f))}a.context=c}this._log(this.stringify(a),u.level)}}export{I as AbstractJsonReporter};
@@ -0,0 +1,2 @@
1
+ var i=Object.defineProperty;var s=(t,e)=>i(t,"name",{value:e,configurable:!0});import{createRequire as c}from"node:module";import{i as p}from"./write-stream-Dd4_PTcm.js";import{AbstractJsonReporter as l}from"./AbstractJsonReporter-BawNFYxI.js";const _=c(import.meta.url),a=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,{stdout:n,stderr:u}=a;var d=Object.defineProperty,f=s((t,e)=>d(t,"name",{value:e,configurable:!0}),"r");class j extends l{static{s(this,"m")}static{f(this,"JsonReporter")}#e;#t;constructor(e={}){super(e),this.#e=n,this.#t=u}setStdout(e){this.#e=e}setStderr(e){this.#t=e}_log(e,r){const o=["error","warn"].includes(r)?this.#t:this.#e;p(`${e}
2
+ `,o)}}export{j as default};
@@ -0,0 +1 @@
1
+ var s=Object.defineProperty;var t=(e,r)=>s(e,"name",{value:r,configurable:!0});import{AbstractJsonReporter as a}from"./AbstractJsonReporter-Dt5-5x2R.js";import{t as p}from"./write-console-log-based-on-level-DfD64owL.js";var c=Object.defineProperty,n=t((e,r)=>c(e,"name",{value:r,configurable:!0}),"e");class l extends a{static{t(this,"p")}static{n(this,"JsonReporter")}constructor(r={}){super(r)}_log(r,o){p(o)(r)}}export{l as default};
@@ -0,0 +1,5 @@
1
+ var E=Object.defineProperty;var c=(r,t)=>E(r,"name",{value:t,configurable:!0});import F,{grey as o,white as w,underline as T,bold as M}from"@visulima/colorize/browser";import{v as a,s as Y}from"./index-Bzp4LnJ5.js";import{L as _,E as k}from"./constants-DKfCaSUR.js";import{t as C}from"./write-console-log-based-on-level-DfD64owL.js";var D=Object.defineProperty,G=c((r,t)=>D(r,"name",{value:t,configurable:!0}),"r$1");const H=G(r=>{const t=Object.keys(r).map(l=>r[l].badge??"");return t.length===0?"":t.reduce((l,u)=>l.length>u.length?l:u,"")},"getLongestBadge");var U=Object.defineProperty,R=c((r,t)=>U(r,"name",{value:t,configurable:!0}),"o");const q=R(r=>[r.getHours(),r.getMinutes(),r.getSeconds()].map(t=>String(t).padStart(2,"0")).join(":"),"dateFormatter");class z{static{c(this,"AbstractPrettyReporter")}static{R(this,"AbstractPrettyReporter")}styles;loggerTypes;constructor(t){this.styles={bold:{label:!1},dateFormatter:q,underline:{label:!1,message:!1,prefix:!1,suffix:!1},uppercase:{label:!1},...t},this.loggerTypes=_}setLoggerTypes(t){this.loggerTypes=t}}var I=Object.defineProperty,J=c((r,t)=>I(r,"name",{value:t,configurable:!0}),"B");class X extends z{static{c(this,"_")}static{J(this,"PrettyReporter")}constructor(t={}){super({uppercase:{label:!0,...t.uppercase},...t})}log(t){const l=typeof globalThis.window<"u"&&typeof globalThis.document<"u",u=C(t.type.level),{badge:x,context:A,date:g,error:P,groups:y,label:d,message:S,prefix:b,repeated:f,scope:h,suffix:m,type:B}=t,{color:j}=this.loggerTypes[B.name],O=j?F[j]:w,s=[];if(l&&y.length>0){const e=y.map(()=>" ").join(""),i=o(`[${y.at(-1)}]`);s.push(a(e+i[0],i.slice(1)))}if(g){const e=o(this.styles.dateFormatter(typeof g=="string"?new Date(g):g));l?s.push(a(e[0],e.slice(1))):s.push([`${e[0]} `,...e.slice(1)])}if(x){const e=O(x);l?s.push(a(e[0],e.slice(1))):s.push([`${e[0]} `,...e.slice(1)])}else{const e=H(this.loggerTypes);if(e.length>0){const i=o(".".repeat(e.length));l?s.push(a(`${i[0]} `,i.slice(1))):s.push([`${i[0]} `,...i.slice(1)])}}const L=Y(this.loggerTypes);let $;if(f){const e=w(`[${f}x]`);$=l?a(e[0],e.slice(1)):[e[0],...e.slice(1)]}if(d){const e=O(this.#e(d));l?s.push(a(e[0],e.slice(1))):s.push([e[0],...e.slice(1)]),$&&s.push($);let i=L.length-d.length;if(f?i-=String(f).length+3:i+=1,i>0){const n=o(".".repeat(i));l?s.push(a(n[0],n.slice(1))):s.push([` ${n[0]}`,...n.slice(1)])}}else{const e=o(".".repeat(L.length+1));l?s.push(a(e[0],e.slice(1))):s.push([e[0],...e.slice(1)])}if(Array.isArray(h)&&h.length>0){const e=o(`[${h.join(" > ")}]`);l?s.push(a(e[0],e.slice(1))):s.push([e[0],...e.slice(1)])}if(b){const e=o(`${Array.isArray(h)&&h.length>0?". ":" "}[${this.styles.underline.prefix?T(b):b}] `);l?s.push(a(e[0],e.slice(1))):s.push([e[0],...e.slice(1)])}if(S!==k&&s.push(S),A&&s.push(...A),P&&s.push(P,`
2
+
3
+ `),m){const e=o(this.styles.underline.suffix?T(m):m);l?s.push(a(`
4
+ ${e[0]}`,e.slice(1))):s.push([`
5
+ ${e[0]}`,...e.slice(1)])}if(l)u(...s);else{let e="";const i=[],n=[];for(let v=0;v<s.length;v+=1){const p=s[v];Array.isArray(p)&&p.length>1&&p[0].includes("%c")?(e+=String(p[0]),i.push(...p.slice(1))):n.push(p)}u(`${e}%c`,...i,"",...n)}}#e(t){let l=this.styles.uppercase.label?t.toUpperCase():t;return l=this.styles.underline.label?T(l):l,this.styles.bold.label&&(l=M(l)),l}}export{X as default};