evlog 2.18.1 → 2.19.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +14 -16
- package/dist/adapters/axiom.d.mts +3 -3
- package/dist/adapters/axiom.d.mts.map +1 -1
- package/dist/adapters/axiom.mjs +10 -14
- package/dist/adapters/axiom.mjs.map +1 -1
- package/dist/adapters/better-stack.d.mts +2 -2
- package/dist/adapters/better-stack.d.mts.map +1 -1
- package/dist/adapters/better-stack.mjs +9 -13
- package/dist/adapters/better-stack.mjs.map +1 -1
- package/dist/adapters/datadog.d.mts +3 -3
- package/dist/adapters/datadog.mjs +9 -5
- package/dist/adapters/datadog.mjs.map +1 -1
- package/dist/adapters/fs.d.mts +1 -1
- package/dist/adapters/fs.d.mts.map +1 -1
- package/dist/adapters/fs.mjs +15 -2
- package/dist/adapters/fs.mjs.map +1 -1
- package/dist/adapters/hyperdx.d.mts +2 -2
- package/dist/adapters/hyperdx.mjs +3 -3
- package/dist/adapters/hyperdx.mjs.map +1 -1
- package/dist/adapters/memory.d.mts +2 -3
- package/dist/adapters/memory.d.mts.map +1 -1
- package/dist/adapters/memory.mjs +2 -3
- package/dist/adapters/memory.mjs.map +1 -1
- package/dist/adapters/otlp.d.mts +4 -4
- package/dist/adapters/otlp.mjs +19 -11
- package/dist/adapters/otlp.mjs.map +1 -1
- package/dist/adapters/posthog.d.mts +2 -2
- package/dist/adapters/posthog.mjs +5 -5
- package/dist/adapters/posthog.mjs.map +1 -1
- package/dist/adapters/sentry.d.mts +3 -3
- package/dist/adapters/sentry.mjs +6 -6
- package/dist/adapters/sentry.mjs.map +1 -1
- package/dist/ai/index.d.mts +1 -1
- package/dist/{audit-BUI3af4w.mjs → audit-BQt8yAHo.mjs} +376 -116
- package/dist/audit-BQt8yAHo.mjs.map +1 -0
- package/dist/{audit-DVdkntSO.d.mts → audit-D7v6JHj0.d.mts} +113 -35
- package/dist/audit-D7v6JHj0.d.mts.map +1 -0
- package/dist/better-auth/index.d.mts +1 -1
- package/dist/browser.d.mts +1 -1
- package/dist/deferred-drain-jeajC8QF.mjs +36 -0
- package/dist/deferred-drain-jeajC8QF.mjs.map +1 -0
- package/dist/{define-D6OJdSUH.mjs → define-Bpaymi-h.mjs} +2 -1
- package/dist/define-Bpaymi-h.mjs.map +1 -0
- package/dist/{define-D-BVMf2l.d.mts → define-DTQpu4f6.d.mts} +8 -3
- package/dist/define-DTQpu4f6.d.mts.map +1 -0
- package/dist/dev-terminal-D4UaEm17.mjs +54 -0
- package/dist/dev-terminal-D4UaEm17.mjs.map +1 -0
- package/dist/{dist-H3GIh-KK.mjs → dist-DdQWiZn8.mjs} +1 -1
- package/dist/{dist-H3GIh-KK.mjs.map → dist-DdQWiZn8.mjs.map} +1 -1
- package/dist/{drain-7n3K6kPe.mjs → drain-fDb-eNwz.mjs} +35 -4
- package/dist/drain-fDb-eNwz.mjs.map +1 -0
- package/dist/elysia/index.d.mts +3 -3
- package/dist/elysia/index.d.mts.map +1 -1
- package/dist/elysia/index.mjs +8 -5
- package/dist/elysia/index.mjs.map +1 -1
- package/dist/enrich-error-stack-next.node-Dgm_rCf5.mjs +120 -0
- package/dist/enrich-error-stack-next.node-Dgm_rCf5.mjs.map +1 -0
- package/dist/{enricher-UW9npoB2.d.mts → enricher-CBRmQw6e.d.mts} +2 -2
- package/dist/{enricher-UW9npoB2.d.mts.map → enricher-CBRmQw6e.d.mts.map} +1 -1
- package/dist/{enricher-N0erZS87.mjs → enricher-DAWf2-Fx.mjs} +2 -2
- package/dist/{enricher-N0erZS87.mjs.map → enricher-DAWf2-Fx.mjs.map} +1 -1
- package/dist/enrichers.d.mts +2 -2
- package/dist/enrichers.mjs +2 -2
- package/dist/{error-CVtn5U7b.d.mts → error-CpghjrkY.d.mts} +2 -2
- package/dist/{error-CVtn5U7b.d.mts.map → error-CpghjrkY.d.mts.map} +1 -1
- package/dist/error.d.mts +1 -1
- package/dist/{errors-dEMNQCiL.d.mts → errors-BLU4Tfpe.d.mts} +2 -2
- package/dist/{errors-dEMNQCiL.d.mts.map → errors-BLU4Tfpe.d.mts.map} +1 -1
- package/dist/{errors-BQgyQ9xe.mjs → errors-DA0cyr8q.mjs} +1 -1
- package/dist/{errors-BQgyQ9xe.mjs.map → errors-DA0cyr8q.mjs.map} +1 -1
- package/dist/{event-1BMl7o0k.mjs → event-qwAv-7AZ.mjs} +1 -1
- package/dist/{event-1BMl7o0k.mjs.map → event-qwAv-7AZ.mjs.map} +1 -1
- package/dist/express/index.d.mts +2 -2
- package/dist/express/index.mjs +3 -3
- package/dist/fastify/index.d.mts +2 -2
- package/dist/fastify/index.mjs +2 -2
- package/dist/{fork-Bga8x-X4.mjs → fork-CgGlAaHa.mjs} +39 -14
- package/dist/fork-CgGlAaHa.mjs.map +1 -0
- package/dist/{headers-CU-QqnYg.mjs → headers-VtmnWcfn.mjs} +1 -1
- package/dist/{headers-CU-QqnYg.mjs.map → headers-VtmnWcfn.mjs.map} +1 -1
- package/dist/hono/index.d.mts +2 -2
- package/dist/hono/index.d.mts.map +1 -1
- package/dist/hono/index.mjs +10 -2
- package/dist/hono/index.mjs.map +1 -1
- package/dist/{http-B6YgAhyN.mjs → http-ChVS9GYc.mjs} +2 -2
- package/dist/{http-B6YgAhyN.mjs.map → http-ChVS9GYc.mjs.map} +1 -1
- package/dist/http.d.mts +1 -1
- package/dist/{index-ZSRQP_BI.d.mts → index-EvnrXvQM.d.mts} +15 -8
- package/dist/index-EvnrXvQM.d.mts.map +1 -0
- package/dist/index.d.mts +9 -9
- package/dist/index.mjs +9 -15
- package/dist/index.mjs.map +1 -1
- package/dist/instrumentation-create-BrjQtSKD.d.mts +115 -0
- package/dist/instrumentation-create-BrjQtSKD.d.mts.map +1 -0
- package/dist/{integration-Dhig7ae6.mjs → integration-DYp2uw8O.mjs} +3 -3
- package/dist/{integration-Dhig7ae6.mjs.map → integration-DYp2uw8O.mjs.map} +1 -1
- package/dist/{logger-CTcvd5Cc.d.mts → logger-mHIWxBhJ.d.mts} +12 -4
- package/dist/logger-mHIWxBhJ.d.mts.map +1 -0
- package/dist/logger.d.mts +2 -2
- package/dist/logger.mjs +2 -2
- package/dist/{middleware-31KhtiEF.d.mts → middleware-B_k4Mrzg.d.mts} +9 -2
- package/dist/middleware-B_k4Mrzg.d.mts.map +1 -0
- package/dist/nestjs/index.d.mts +2 -2
- package/dist/nestjs/index.mjs +4 -4
- package/dist/next/client.d.mts +1 -1
- package/dist/next/index.d.mts +4 -4
- package/dist/next/index.d.mts.map +1 -1
- package/dist/next/index.mjs +49 -38
- package/dist/next/index.mjs.map +1 -1
- package/dist/next/instrumentation/create.d.mts +2 -0
- package/dist/next/instrumentation/create.mjs +155 -0
- package/dist/next/instrumentation/create.mjs.map +1 -0
- package/dist/next/instrumentation.d.mts +2 -77
- package/dist/next/instrumentation.mjs +32 -81
- package/dist/next/instrumentation.mjs.map +1 -1
- package/dist/next/stream.d.mts +1 -1
- package/dist/next/stream.mjs +2 -2
- package/dist/next/stream.mjs.map +1 -1
- package/dist/nitro/errorHandler.mjs +23 -18
- package/dist/nitro/errorHandler.mjs.map +1 -1
- package/dist/nitro/module.d.mts +2 -2
- package/dist/nitro/module.d.mts.map +1 -1
- package/dist/nitro/module.mjs +2 -1
- package/dist/nitro/module.mjs.map +1 -1
- package/dist/nitro/plugin.mjs +74 -18
- package/dist/nitro/plugin.mjs.map +1 -1
- package/dist/nitro/v3/errorHandler.d.mts +0 -7
- package/dist/nitro/v3/errorHandler.mjs +13 -15
- package/dist/nitro/v3/errorHandler.mjs.map +1 -1
- package/dist/nitro/v3/index.d.mts +2 -2
- package/dist/nitro/v3/module.d.mts +1 -1
- package/dist/nitro/v3/module.d.mts.map +1 -1
- package/dist/nitro/v3/module.mjs +3 -3
- package/dist/nitro/v3/module.mjs.map +1 -1
- package/dist/nitro/v3/plugin.mjs +76 -44
- package/dist/nitro/v3/plugin.mjs.map +1 -1
- package/dist/nitro/v3/useLogger.d.mts +1 -1
- package/dist/nitro-ClRZLD1g.mjs +96 -0
- package/dist/nitro-ClRZLD1g.mjs.map +1 -0
- package/dist/{nitro-BRddgqSb.d.mts → nitro-_Hda8Deo.d.mts} +7 -2
- package/dist/nitro-_Hda8Deo.d.mts.map +1 -0
- package/dist/{nitroConfigBridge-NbFn-sIK.mjs → nitroConfigBridge-BkVWnSV3.mjs} +9 -2
- package/dist/nitroConfigBridge-BkVWnSV3.mjs.map +1 -0
- package/dist/{nodeResponse-BkkionWl.mjs → nodeResponse-CIEEbrNE.mjs} +1 -1
- package/dist/{nodeResponse-BkkionWl.mjs.map → nodeResponse-CIEEbrNE.mjs.map} +1 -1
- package/dist/nuxt/module.d.mts +6 -1
- package/dist/nuxt/module.d.mts.map +1 -1
- package/dist/nuxt/module.mjs +11 -4
- package/dist/nuxt/module.mjs.map +1 -1
- package/dist/orpc/index.d.mts +2 -2
- package/dist/orpc/index.d.mts.map +1 -1
- package/dist/orpc/index.mjs +5 -4
- package/dist/orpc/index.mjs.map +1 -1
- package/dist/{package-B23bR3tK.mjs → package-CNV_CXs8.mjs} +2 -2
- package/dist/package-CNV_CXs8.mjs.map +1 -0
- package/dist/{parseError-D4PIxEWo.d.mts → parseError-BeBXEd2V.d.mts} +2 -2
- package/dist/parseError-BeBXEd2V.d.mts.map +1 -0
- package/dist/pipeline.d.mts +0 -19
- package/dist/pipeline.d.mts.map +1 -1
- package/dist/pipeline.mjs +12 -0
- package/dist/pipeline.mjs.map +1 -1
- package/dist/pretty-error-THg0U0w9.mjs +288 -0
- package/dist/pretty-error-THg0U0w9.mjs.map +1 -0
- package/dist/pretty-error-snippet.node-itfCajBM.mjs +48 -0
- package/dist/pretty-error-snippet.node-itfCajBM.mjs.map +1 -0
- package/dist/react-router/index.d.mts +2 -2
- package/dist/react-router/index.mjs +5 -6
- package/dist/react-router/index.mjs.map +1 -1
- package/dist/{routes-CnIgYWf8.mjs → routes-4rMzRyTk.mjs} +1 -1
- package/dist/{routes-CnIgYWf8.mjs.map → routes-4rMzRyTk.mjs.map} +1 -1
- package/dist/runtime/client/log.d.mts +1 -1
- package/dist/runtime/server/routes/_evlog/ingest.post.d.mts +7 -0
- package/dist/runtime/server/routes/_evlog/ingest.post.mjs +39 -3
- package/dist/runtime/server/routes/_evlog/ingest.post.mjs.map +1 -1
- package/dist/runtime/server/useLogger.d.mts +1 -1
- package/dist/runtime/utils/parseError.d.mts +2 -2
- package/dist/runtime/utils/parseError.mjs +1 -1
- package/dist/{severity-R5Egq3qz.mjs → severity-CwXUSHt3.mjs} +1 -1
- package/dist/{severity-R5Egq3qz.mjs.map → severity-CwXUSHt3.mjs.map} +1 -1
- package/dist/{source-location-Dco0cRTz.mjs → source-location-CHOPF2nd.mjs} +2 -1
- package/dist/{source-location-Dco0cRTz.mjs.map → source-location-CHOPF2nd.mjs.map} +1 -1
- package/dist/{storage-BNubsWwz.mjs → storage-7X37OToT.mjs} +1 -1
- package/dist/{storage-BNubsWwz.mjs.map → storage-7X37OToT.mjs.map} +1 -1
- package/dist/stream.d.mts +1 -1
- package/dist/stream.mjs +1 -1
- package/dist/streamResponse-CmQ3qUbF.mjs +94 -0
- package/dist/streamResponse-CmQ3qUbF.mjs.map +1 -0
- package/dist/sveltekit/index.d.mts +2 -2
- package/dist/sveltekit/index.d.mts.map +1 -1
- package/dist/sveltekit/index.mjs +7 -8
- package/dist/sveltekit/index.mjs.map +1 -1
- package/dist/toolkit.d.mts +51 -6
- package/dist/toolkit.d.mts.map +1 -1
- package/dist/toolkit.mjs +15 -14
- package/dist/types.d.mts +2 -2
- package/dist/{useLogger-CqvH6qOf.d.mts → useLogger-Cfv8Ck8b.d.mts} +2 -2
- package/dist/{useLogger-CqvH6qOf.d.mts.map → useLogger-Cfv8Ck8b.d.mts.map} +1 -1
- package/dist/{utils-DxqvIOyR.d.mts → utils-CJJG0ZYW.d.mts} +11 -3
- package/dist/{utils-DxqvIOyR.d.mts.map → utils-CJJG0ZYW.d.mts.map} +1 -1
- package/dist/utils.d.mts +2 -2
- package/dist/utils.mjs +23 -9
- package/dist/utils.mjs.map +1 -1
- package/dist/vite/index.d.mts +1 -1
- package/dist/vite/index.mjs +1 -1
- package/dist/workers.d.mts +1 -1
- package/dist/workers.mjs +1 -1
- package/package.json +12 -1
- package/dist/audit-BUI3af4w.mjs.map +0 -1
- package/dist/audit-DVdkntSO.d.mts.map +0 -1
- package/dist/define-D-BVMf2l.d.mts.map +0 -1
- package/dist/define-D6OJdSUH.mjs.map +0 -1
- package/dist/drain-7n3K6kPe.mjs.map +0 -1
- package/dist/fork-Bga8x-X4.mjs.map +0 -1
- package/dist/index-ZSRQP_BI.d.mts.map +0 -1
- package/dist/logger-CTcvd5Cc.d.mts.map +0 -1
- package/dist/middleware-31KhtiEF.d.mts.map +0 -1
- package/dist/next/instrumentation.d.mts.map +0 -1
- package/dist/nitro-BRddgqSb.d.mts.map +0 -1
- package/dist/nitro-DErMq_Zj.mjs +0 -34
- package/dist/nitro-DErMq_Zj.mjs.map +0 -1
- package/dist/nitroConfigBridge-NbFn-sIK.mjs.map +0 -1
- package/dist/package-B23bR3tK.mjs.map +0 -1
- package/dist/parseError-D4PIxEWo.d.mts.map +0 -1
package/dist/sveltekit/index.mjs
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { t as extractSafeHeaders } from "../headers-CU-QqnYg.mjs";
|
|
2
1
|
import { EvlogError } from "../error.mjs";
|
|
3
|
-
import { t as
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import { t as
|
|
2
|
+
import { t as extractSafeHeaders } from "../headers-VtmnWcfn.mjs";
|
|
3
|
+
import { t as extractErrorStatus } from "../errors-DA0cyr8q.mjs";
|
|
4
|
+
import { a as serializeEvlogErrorResponse, i as resolveEvlogError } from "../nitro-ClRZLD1g.mjs";
|
|
5
|
+
import { r as createMiddlewareLogger, t as attachForkToLogger } from "../fork-CgGlAaHa.mjs";
|
|
6
|
+
import { t as createLoggerStorage } from "../storage-7X37OToT.mjs";
|
|
7
7
|
//#region src/sveltekit/index.ts
|
|
8
8
|
const { storage, useLogger } = createLoggerStorage("handle context. Make sure evlog() handle is added to your hooks.server.ts.");
|
|
9
9
|
function isPlainObject(value) {
|
|
@@ -82,7 +82,7 @@ function evlog(options = {}) {
|
|
|
82
82
|
headers: extractSafeHeaders(event.request.headers),
|
|
83
83
|
...options
|
|
84
84
|
};
|
|
85
|
-
const { logger, finish, skipped } = createMiddlewareLogger(middlewareOpts);
|
|
85
|
+
const { logger, finish, finishResponse, skipped } = createMiddlewareLogger(middlewareOpts);
|
|
86
86
|
if (skipped) return await resolve(event);
|
|
87
87
|
attachForkToLogger(storage, logger, middlewareOpts);
|
|
88
88
|
event.locals.log = logger;
|
|
@@ -99,8 +99,7 @@ function evlog(options = {}) {
|
|
|
99
99
|
headers: { "content-type": "application/json" }
|
|
100
100
|
});
|
|
101
101
|
}
|
|
102
|
-
|
|
103
|
-
return response;
|
|
102
|
+
return finishResponse(response);
|
|
104
103
|
} catch (error) {
|
|
105
104
|
await finish({ error: error instanceof Error ? error : new Error(String(error)) });
|
|
106
105
|
if (error instanceof EvlogError) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","names":[],"sources":["../../src/sveltekit/index.ts"],"sourcesContent":["import type { RequestLogger } from '../types'\nimport { createMiddlewareLogger, type BaseEvlogOptions } from '../shared/middleware'\nimport { attachForkToLogger } from '../shared/fork'\nimport { extractSafeHeaders } from '../shared/headers'\nimport { createLoggerStorage } from '../shared/storage'\nimport { resolveEvlogError, extractErrorStatus, serializeEvlogErrorResponse } from '../nitro'\nimport { EvlogError } from '../error'\n\nconst { storage, useLogger } = createLoggerStorage(\n 'handle context. Make sure evlog() handle is added to your hooks.server.ts.',\n)\n\nexport type EvlogSvelteKitOptions = BaseEvlogOptions\n\nexport { useLogger }\n\n/**\n * SvelteKit `Handle` function signature — avoids a hard dependency on `@sveltejs/kit`.\n */\ntype SvelteKitHandle = (input: {\n event: { request: Request; url: URL; locals: Record<string, any> }\n resolve: (...args: any[]) => Response | Promise<Response>\n}) => Promise<Response>\n\n/**\n * SvelteKit `HandleServerError` signature — avoids a hard dependency on `@sveltejs/kit`.\n */\ntype SvelteKitHandleServerError = (input: {\n error: unknown\n event: { request: Request; url: URL; locals: Record<string, any> }\n status: number\n message: string\n}) => MaybePromise<void | AppError>\n\ntype MaybePromise<T> = T | Promise<T>\n\n/** Minimal SvelteKit `App.Error` shape */\ninterface AppError {\n message: string\n [key: string]: unknown\n}\n\nfunction isPlainObject(value: unknown): value is Record<string, unknown> {\n return typeof value === 'object' && value !== null && !Array.isArray(value)\n}\n\nfunction isRequestLogger(value: unknown): value is RequestLogger {\n return isPlainObject(value)\n && typeof value.error === 'function'\n && typeof value.emit === 'function'\n}\n\ninterface ContextEvlogError {\n name: 'EvlogError'\n status: number\n message: string\n why?: string\n fix?: string\n link?: string\n code?: string\n}\n\nfunction isContextEvlogError(value: unknown): value is Record<string, unknown> & ContextEvlogError {\n return isPlainObject(value)\n && value.name === 'EvlogError'\n && typeof value.status === 'number'\n && typeof value.message === 'string'\n}\n\nfunction evlogErrorFromContext(errorData: Record<string, unknown>): EvlogError {\n const nested = isPlainObject(errorData.data) ? errorData.data : undefined\n const readString = (key: string): string | undefined => {\n const direct = errorData[key]\n if (typeof direct === 'string') return direct\n const fromNested = nested?.[key]\n return typeof fromNested === 'string' ? fromNested : undefined\n }\n return new EvlogError({\n message: String(errorData.message),\n status: errorData.status as number,\n code: readString('code'),\n why: readString('why'),\n fix: readString('fix'),\n link: readString('link'),\n })\n}\n\nfunction readEvlogResponseData(response: Record<string, unknown>): { why?: string, fix?: string, link?: string } {\n const { data } = response\n if (!isPlainObject(data)) return {}\n return {\n why: typeof data.why === 'string' ? data.why : undefined,\n fix: typeof data.fix === 'string' ? data.fix : undefined,\n link: typeof data.link === 'string' ? data.link : undefined,\n }\n}\n\n/**\n * Create an evlog handle hook for SvelteKit.\n *\n * Add it to your `src/hooks.server.ts` using SvelteKit's `sequence` helper\n * or as the sole handle export.\n *\n * @example\n * ```ts\n * // src/hooks.server.ts\n * import { initLogger } from 'evlog'\n * import { evlog } from 'evlog/sveltekit'\n * import { createAxiomDrain } from 'evlog/axiom'\n *\n * initLogger({ env: { service: 'my-sveltekit-app' } })\n *\n * export const handle = evlog({\n * drain: createAxiomDrain(),\n * enrich: (ctx) => {\n * ctx.event.region = process.env.FLY_REGION\n * },\n * })\n * ```\n *\n * @example\n * ```ts\n * // Compose with other hooks using sequence\n * import { sequence } from '@sveltejs/kit/hooks'\n * import { evlog } from 'evlog/sveltekit'\n *\n * export const handle = sequence(evlog(), yourOtherHook)\n * ```\n */\nexport function evlog(options: EvlogSvelteKitOptions = {}): SvelteKitHandle {\n return async ({ event, resolve }) => {\n const middlewareOpts = {\n method: event.request.method,\n path: event.url.pathname,\n requestId: event.request.headers.get('x-request-id') || crypto.randomUUID(),\n headers: extractSafeHeaders(event.request.headers),\n ...options,\n }\n const { logger, finish, skipped } = createMiddlewareLogger(middlewareOpts)\n\n if (skipped) {\n return await resolve(event)\n }\n\n attachForkToLogger(storage, logger, middlewareOpts)\n event.locals.log = logger\n\n return storage.run(logger, async () => {\n try {\n const response = await resolve(event)\n\n // SvelteKit catches route errors internally and returns 500.\n // If handleError already logged an EvlogError with a specific status,\n // return a structured JSON response instead of SvelteKit's generic 500.\n const ctx = logger.getContext()\n const errorData = ctx.error\n if (response.status >= 500 && isContextEvlogError(errorData)) {\n const { status } = errorData\n await finish({ status })\n const body = serializeEvlogErrorResponse(evlogErrorFromContext(errorData), event.url.pathname)\n return new Response(JSON.stringify(body), {\n status,\n headers: { 'content-type': 'application/json' },\n })\n }\n\n await finish({ status: response.status })\n return response\n } catch (error) {\n await finish({ error: error instanceof Error ? error : new Error(String(error)) })\n\n // Return structured JSON for EvlogError (like NextJS withEvlog / Nuxt errorHandler)\n if (error instanceof EvlogError) {\n const status = error.status ?? 500\n const body = serializeEvlogErrorResponse(error, event.url.pathname)\n return new Response(JSON.stringify(body), {\n status,\n headers: { 'content-type': 'application/json' },\n })\n }\n\n throw error\n }\n })\n }\n}\n\n/**\n * Create an evlog error handler for SvelteKit.\n *\n * Logs unhandled errors via `event.locals.log` (if available) and returns\n * structured error responses for `EvlogError` instances. For non-evlog errors,\n * returns a generic error response with sanitized messages in production.\n *\n * @example\n * ```ts\n * // src/hooks.server.ts\n * import { evlog, evlogHandleError } from 'evlog/sveltekit'\n *\n * export const handle = evlog()\n * export const handleError = evlogHandleError()\n * ```\n */\nexport function evlogHandleError(): SvelteKitHandleServerError {\n return ({ error, event, status, message }) => {\n const logger = isRequestLogger(event.locals.log) ? event.locals.log : undefined\n\n if (logger && error instanceof Error) {\n logger.error(error)\n }\n\n const evlogError = error instanceof Error ? resolveEvlogError(error) : null\n\n if (evlogError) {\n const errorStatus = extractErrorStatus(evlogError)\n const response = serializeEvlogErrorResponse(evlogError, event.url.pathname)\n return {\n message: typeof response.message === 'string' ? response.message : message,\n status: errorStatus,\n ...readEvlogResponseData(response),\n }\n }\n\n return { message, status }\n }\n}\n\n/**\n * Create both `handle` and `handleError` hooks in a single call.\n *\n * This is the recommended setup for SvelteKit — it returns both hooks\n * pre-configured and ready to export from `hooks.server.ts`.\n *\n * @example\n * ```ts\n * // src/hooks.server.ts\n * import { initLogger } from 'evlog'\n * import { createEvlogHooks } from 'evlog/sveltekit'\n * import { createAxiomDrain } from 'evlog/axiom'\n *\n * initLogger({ env: { service: 'my-app' } })\n *\n * export const { handle, handleError } = createEvlogHooks({\n * drain: createAxiomDrain(),\n * enrich: (ctx) => {\n * ctx.event.region = process.env.FLY_REGION\n * },\n * })\n * ```\n *\n * @example\n * ```ts\n * // Compose with other hooks using sequence\n * import { sequence } from '@sveltejs/kit/hooks'\n * import { createEvlogHooks } from 'evlog/sveltekit'\n *\n * const evlogHooks = createEvlogHooks()\n *\n * export const handle = sequence(evlogHooks.handle, yourOtherHook)\n * export const handleError = evlogHooks.handleError\n * ```\n */\nexport function createEvlogHooks(options: EvlogSvelteKitOptions = {}) {\n return {\n handle: evlog(options),\n handleError: evlogHandleError(),\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.mjs","names":[],"sources":["../../src/sveltekit/index.ts"],"sourcesContent":["import type { RequestLogger } from '../types'\nimport { createMiddlewareLogger, type BaseEvlogOptions } from '../shared/middleware'\nimport { attachForkToLogger } from '../shared/fork'\nimport { extractSafeHeaders } from '../shared/headers'\nimport { createLoggerStorage } from '../shared/storage'\nimport { resolveEvlogError, extractErrorStatus, serializeEvlogErrorResponse } from '../nitro'\nimport { EvlogError } from '../error'\n\nconst { storage, useLogger } = createLoggerStorage(\n 'handle context. Make sure evlog() handle is added to your hooks.server.ts.',\n)\n\nexport type EvlogSvelteKitOptions = BaseEvlogOptions\n\nexport { useLogger }\n\n/**\n * SvelteKit `Handle` function signature — avoids a hard dependency on `@sveltejs/kit`.\n */\ntype SvelteKitHandle = (input: {\n event: { request: Request; url: URL; locals: Record<string, any> }\n resolve: (...args: any[]) => Response | Promise<Response>\n}) => Promise<Response>\n\n/**\n * SvelteKit `HandleServerError` signature — avoids a hard dependency on `@sveltejs/kit`.\n */\ntype SvelteKitHandleServerError = (input: {\n error: unknown\n event: { request: Request; url: URL; locals: Record<string, any> }\n status: number\n message: string\n}) => MaybePromise<void | AppError>\n\ntype MaybePromise<T> = T | Promise<T>\n\n/** Minimal SvelteKit `App.Error` shape */\ninterface AppError {\n message: string\n [key: string]: unknown\n}\n\nfunction isPlainObject(value: unknown): value is Record<string, unknown> {\n return typeof value === 'object' && value !== null && !Array.isArray(value)\n}\n\nfunction isRequestLogger(value: unknown): value is RequestLogger {\n return isPlainObject(value)\n && typeof value.error === 'function'\n && typeof value.emit === 'function'\n}\n\ninterface ContextEvlogError {\n name: 'EvlogError'\n status: number\n message: string\n why?: string\n fix?: string\n link?: string\n code?: string\n}\n\nfunction isContextEvlogError(value: unknown): value is Record<string, unknown> & ContextEvlogError {\n return isPlainObject(value)\n && value.name === 'EvlogError'\n && typeof value.status === 'number'\n && typeof value.message === 'string'\n}\n\nfunction evlogErrorFromContext(errorData: Record<string, unknown>): EvlogError {\n const nested = isPlainObject(errorData.data) ? errorData.data : undefined\n const readString = (key: string): string | undefined => {\n const direct = errorData[key]\n if (typeof direct === 'string') return direct\n const fromNested = nested?.[key]\n return typeof fromNested === 'string' ? fromNested : undefined\n }\n return new EvlogError({\n message: String(errorData.message),\n status: errorData.status as number,\n code: readString('code'),\n why: readString('why'),\n fix: readString('fix'),\n link: readString('link'),\n })\n}\n\nfunction readEvlogResponseData(response: Record<string, unknown>): { why?: string, fix?: string, link?: string } {\n const { data } = response\n if (!isPlainObject(data)) return {}\n return {\n why: typeof data.why === 'string' ? data.why : undefined,\n fix: typeof data.fix === 'string' ? data.fix : undefined,\n link: typeof data.link === 'string' ? data.link : undefined,\n }\n}\n\n/**\n * Create an evlog handle hook for SvelteKit.\n *\n * Add it to your `src/hooks.server.ts` using SvelteKit's `sequence` helper\n * or as the sole handle export.\n *\n * @example\n * ```ts\n * // src/hooks.server.ts\n * import { initLogger } from 'evlog'\n * import { evlog } from 'evlog/sveltekit'\n * import { createAxiomDrain } from 'evlog/axiom'\n *\n * initLogger({ env: { service: 'my-sveltekit-app' } })\n *\n * export const handle = evlog({\n * drain: createAxiomDrain(),\n * enrich: (ctx) => {\n * ctx.event.region = process.env.FLY_REGION\n * },\n * })\n * ```\n *\n * @example\n * ```ts\n * // Compose with other hooks using sequence\n * import { sequence } from '@sveltejs/kit/hooks'\n * import { evlog } from 'evlog/sveltekit'\n *\n * export const handle = sequence(evlog(), yourOtherHook)\n * ```\n */\nexport function evlog(options: EvlogSvelteKitOptions = {}): SvelteKitHandle {\n return async ({ event, resolve }) => {\n const middlewareOpts = {\n method: event.request.method,\n path: event.url.pathname,\n requestId: event.request.headers.get('x-request-id') || crypto.randomUUID(),\n headers: extractSafeHeaders(event.request.headers),\n ...options,\n }\n const { logger, finish, finishResponse, skipped } = createMiddlewareLogger(middlewareOpts)\n\n if (skipped) {\n return await resolve(event)\n }\n\n attachForkToLogger(storage, logger, middlewareOpts)\n event.locals.log = logger\n\n return storage.run(logger, async () => {\n try {\n const response = await resolve(event)\n\n // SvelteKit catches route errors internally and returns 500.\n // If handleError already logged an EvlogError with a specific status,\n // return a structured JSON response instead of SvelteKit's generic 500.\n const ctx = logger.getContext()\n const errorData = ctx.error\n if (response.status >= 500 && isContextEvlogError(errorData)) {\n const { status } = errorData\n await finish({ status })\n const body = serializeEvlogErrorResponse(evlogErrorFromContext(errorData), event.url.pathname)\n return new Response(JSON.stringify(body), {\n status,\n headers: { 'content-type': 'application/json' },\n })\n }\n\n return finishResponse(response)\n } catch (error) {\n await finish({ error: error instanceof Error ? error : new Error(String(error)) })\n\n // Return structured JSON for EvlogError (like NextJS withEvlog / Nuxt errorHandler)\n if (error instanceof EvlogError) {\n const status = error.status ?? 500\n const body = serializeEvlogErrorResponse(error, event.url.pathname)\n return new Response(JSON.stringify(body), {\n status,\n headers: { 'content-type': 'application/json' },\n })\n }\n\n throw error\n }\n })\n }\n}\n\n/**\n * Create an evlog error handler for SvelteKit.\n *\n * Logs unhandled errors via `event.locals.log` (if available) and returns\n * structured error responses for `EvlogError` instances. For non-evlog errors,\n * returns a generic error response with sanitized messages in production.\n *\n * @example\n * ```ts\n * // src/hooks.server.ts\n * import { evlog, evlogHandleError } from 'evlog/sveltekit'\n *\n * export const handle = evlog()\n * export const handleError = evlogHandleError()\n * ```\n */\nexport function evlogHandleError(): SvelteKitHandleServerError {\n return ({ error, event, status, message }) => {\n const logger = isRequestLogger(event.locals.log) ? event.locals.log : undefined\n\n if (logger && error instanceof Error) {\n logger.error(error)\n }\n\n const evlogError = error instanceof Error ? resolveEvlogError(error) : null\n\n if (evlogError) {\n const errorStatus = extractErrorStatus(evlogError)\n const response = serializeEvlogErrorResponse(evlogError, event.url.pathname)\n return {\n message: typeof response.message === 'string' ? response.message : message,\n status: errorStatus,\n ...readEvlogResponseData(response),\n }\n }\n\n return { message, status }\n }\n}\n\n/**\n * Create both `handle` and `handleError` hooks in a single call.\n *\n * This is the recommended setup for SvelteKit — it returns both hooks\n * pre-configured and ready to export from `hooks.server.ts`.\n *\n * @example\n * ```ts\n * // src/hooks.server.ts\n * import { initLogger } from 'evlog'\n * import { createEvlogHooks } from 'evlog/sveltekit'\n * import { createAxiomDrain } from 'evlog/axiom'\n *\n * initLogger({ env: { service: 'my-app' } })\n *\n * export const { handle, handleError } = createEvlogHooks({\n * drain: createAxiomDrain(),\n * enrich: (ctx) => {\n * ctx.event.region = process.env.FLY_REGION\n * },\n * })\n * ```\n *\n * @example\n * ```ts\n * // Compose with other hooks using sequence\n * import { sequence } from '@sveltejs/kit/hooks'\n * import { createEvlogHooks } from 'evlog/sveltekit'\n *\n * const evlogHooks = createEvlogHooks()\n *\n * export const handle = sequence(evlogHooks.handle, yourOtherHook)\n * export const handleError = evlogHooks.handleError\n * ```\n */\nexport function createEvlogHooks(options: EvlogSvelteKitOptions = {}) {\n return {\n handle: evlog(options),\n handleError: evlogHandleError(),\n }\n}\n"],"mappings":"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"}
|
package/dist/toolkit.d.mts
CHANGED
|
@@ -1,10 +1,41 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { a as resolveMiddlewarePluginRunner, i as createMiddlewareLogger, n as MiddlewareLoggerOptions, o as runEnrichAndDrain, r as MiddlewareLoggerResult, t as BaseEvlogOptions } from "./middleware-
|
|
3
|
-
import { i as toMiddlewareOptions, n as defineEvlog, r as toLoggerConfig, t as EvlogConfig } from "./define-
|
|
4
|
-
import { n as EnricherOptions, r as defineEnricher, t as EnricherDefinition } from "./enricher-
|
|
5
|
-
import { n as getServiceForPath, r as shouldLog, t as extractErrorStatus } from "./errors-
|
|
1
|
+
import { B as DrainContext, Ct as enricherPlugin, St as drainPlugin, V as EnrichContext, X as LogLevel, _t as PluginSetupContext, bt as createPluginRunner, ft as WideEvent, gt as PluginRunner, ht as EvlogPlugin, mt as ClientLogContext, rt as RequestLogger, ut as TailSamplingContext, vt as RequestFinishContext, wt as getEmptyPluginRunner, xt as definePlugin, yt as RequestLifecycleContext } from "./audit-D7v6JHj0.mjs";
|
|
2
|
+
import { a as resolveMiddlewarePluginRunner, i as createMiddlewareLogger, n as MiddlewareLoggerOptions, o as runEnrichAndDrain, r as MiddlewareLoggerResult, t as BaseEvlogOptions } from "./middleware-B_k4Mrzg.mjs";
|
|
3
|
+
import { i as toMiddlewareOptions, n as defineEvlog, r as toLoggerConfig, t as EvlogConfig } from "./define-DTQpu4f6.mjs";
|
|
4
|
+
import { n as EnricherOptions, r as defineEnricher, t as EnricherDefinition } from "./enricher-CBRmQw6e.mjs";
|
|
5
|
+
import { n as getServiceForPath, r as shouldLog, t as extractErrorStatus } from "./errors-BLU4Tfpe.mjs";
|
|
6
6
|
import { AsyncLocalStorage } from "node:async_hooks";
|
|
7
7
|
|
|
8
|
+
//#region src/shared/streamResponse.d.ts
|
|
9
|
+
/**
|
|
10
|
+
* Metadata passed to streaming response completion callbacks.
|
|
11
|
+
* Reports the HTTP status and any error that occurred while reading the body.
|
|
12
|
+
*/
|
|
13
|
+
interface StreamCompleteMeta {
|
|
14
|
+
/** Final HTTP status code for the response. */
|
|
15
|
+
status: number;
|
|
16
|
+
/** Present when the stream body failed before or during completion. */
|
|
17
|
+
error?: Error;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Whether a {@link Response} carries a stream body that may outlive handler return.
|
|
21
|
+
*/
|
|
22
|
+
declare function isStreamingResponse(response: Response): boolean;
|
|
23
|
+
/**
|
|
24
|
+
* Whether framework integrations should defer wide-event emit until the response
|
|
25
|
+
* body finishes. Static string/JSON bodies are excluded even though they use a
|
|
26
|
+
* {@link ReadableStream} under the hood in the Fetch API.
|
|
27
|
+
*/
|
|
28
|
+
declare function shouldDeferEmitForResponse(response: Response): boolean;
|
|
29
|
+
/**
|
|
30
|
+
* Observe a streaming {@link Response} body and invoke `onComplete` once when
|
|
31
|
+
* the body closes, errors, or is cancelled. Preserves status, headers, and chunks.
|
|
32
|
+
*
|
|
33
|
+
* Non-streaming responses invoke `onComplete` immediately.
|
|
34
|
+
*
|
|
35
|
+
* @internal Used by framework integrations to defer wide-event emit until streams finish.
|
|
36
|
+
*/
|
|
37
|
+
declare function bindStreamingResponseLifecycle(response: Response, onComplete: (meta: StreamCompleteMeta) => void | Promise<void>): Response;
|
|
38
|
+
//#endregion
|
|
8
39
|
//#region src/shared/compose.d.ts
|
|
9
40
|
/**
|
|
10
41
|
* Compose enricher callbacks into one. Runs in registration order; errors are
|
|
@@ -50,6 +81,20 @@ interface ConfigField<T> {
|
|
|
50
81
|
* 4. `process.env[envKey]` for each env in `field.env`
|
|
51
82
|
*/
|
|
52
83
|
declare function resolveAdapterConfig<T>(namespace: string, fields: ConfigField<T>[], overrides?: Partial<T>): Promise<Partial<T>>;
|
|
84
|
+
/**
|
|
85
|
+
* Format environment variable names for user-facing messages.
|
|
86
|
+
* Drops internal `NUXT_*` aliases; joins alternatives with `, ` and fields with `/`.
|
|
87
|
+
*/
|
|
88
|
+
declare function formatPublicEnvKeys(...envLists: (string[] | undefined)[]): string;
|
|
89
|
+
/**
|
|
90
|
+
* Copy a deprecated config field onto its replacement when the replacement is
|
|
91
|
+
* unset, warning once per adapter/field pair.
|
|
92
|
+
*/
|
|
93
|
+
declare function applyDeprecatedAlias<T extends object>(config: T, opts: {
|
|
94
|
+
adapter: string;
|
|
95
|
+
from: keyof T & string;
|
|
96
|
+
to: keyof T & string;
|
|
97
|
+
}): T;
|
|
53
98
|
//#endregion
|
|
54
99
|
//#region src/shared/drain.d.ts
|
|
55
100
|
/**
|
|
@@ -382,5 +427,5 @@ declare function createLoggerStorage(contextHint: string): {
|
|
|
382
427
|
useLogger: <T extends object = Record<string, unknown>>() => RequestLogger<T>;
|
|
383
428
|
};
|
|
384
429
|
//#endregion
|
|
385
|
-
export { AttributeValueKind, BaseEvlogOptions, ClientLogContext, ConfigField, DrainOptions, EVLOG_USER_AGENT, EVLOG_VERSION, EnricherDefinition, EnricherOptions, EvlogConfig, EvlogPlugin, ExtractedRequest, ForkBackgroundLoggerOptions, ForkLifecycle, FrameworkIntegrationHelpers, FrameworkIntegrationSpec, FrameworkRequestHandle, HttpDrainOptions, HttpDrainRequest, HttpPostOptions, MiddlewareLoggerOptions, MiddlewareLoggerResult, OTEL_SEVERITY_NUMBER, OTEL_SEVERITY_TEXT, PluginRunner, PluginSetupContext, RequestFinishContext, RequestLifecycleContext, TypedAttributeValue, attachForkToLogger, composeDrains, composeEnrichers, composeKeep, composePlugins, createLoggerStorage, createMiddlewareLogger, createPluginRunner, defineDrain, defineEnricher, defineEvlog, defineFrameworkIntegration, defineHttpDrain, definePlugin, drainPlugin, enricherPlugin, extractErrorStatus, extractSafeHeaders, extractSafeNodeHeaders, forkBackgroundLogger, getEmptyPluginRunner, getHeader, getRuntimeConfig, getServiceForPath, httpPost, mergeEventField, normalizeNumber, resolveAdapterConfig, resolveMiddlewarePluginRunner, runEnrichAndDrain, shouldLog, toLoggerConfig, toMiddlewareOptions, toOtlpAttributeValue, toTypedAttributeValue, withEvlogIdentityHeaders };
|
|
430
|
+
export { AttributeValueKind, BaseEvlogOptions, ClientLogContext, ConfigField, DrainOptions, EVLOG_USER_AGENT, EVLOG_VERSION, EnricherDefinition, EnricherOptions, EvlogConfig, EvlogPlugin, ExtractedRequest, ForkBackgroundLoggerOptions, ForkLifecycle, FrameworkIntegrationHelpers, FrameworkIntegrationSpec, FrameworkRequestHandle, HttpDrainOptions, HttpDrainRequest, HttpPostOptions, MiddlewareLoggerOptions, MiddlewareLoggerResult, OTEL_SEVERITY_NUMBER, OTEL_SEVERITY_TEXT, PluginRunner, PluginSetupContext, RequestFinishContext, RequestLifecycleContext, StreamCompleteMeta, TypedAttributeValue, applyDeprecatedAlias, attachForkToLogger, bindStreamingResponseLifecycle, composeDrains, composeEnrichers, composeKeep, composePlugins, createLoggerStorage, createMiddlewareLogger, createPluginRunner, defineDrain, defineEnricher, defineEvlog, defineFrameworkIntegration, defineHttpDrain, definePlugin, drainPlugin, enricherPlugin, extractErrorStatus, extractSafeHeaders, extractSafeNodeHeaders, forkBackgroundLogger, formatPublicEnvKeys, getEmptyPluginRunner, getHeader, getRuntimeConfig, getServiceForPath, httpPost, isStreamingResponse, mergeEventField, normalizeNumber, resolveAdapterConfig, resolveMiddlewarePluginRunner, runEnrichAndDrain, shouldDeferEmitForResponse, shouldLog, toLoggerConfig, toMiddlewareOptions, toOtlpAttributeValue, toTypedAttributeValue, withEvlogIdentityHeaders };
|
|
386
431
|
//# sourceMappingURL=toolkit.d.mts.map
|
package/dist/toolkit.d.mts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toolkit.d.mts","names":[],"sources":["../src/shared/compose.ts","../src/shared/config.ts","../src/shared/drain.ts","../src/shared/event.ts","../src/shared/fork.ts","../src/shared/headers.ts","../src/shared/http.ts","../src/shared/integration.ts","../src/shared/severity.ts","../src/shared/storage.ts"],"mappings":";;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"toolkit.d.mts","names":[],"sources":["../src/shared/streamResponse.ts","../src/shared/compose.ts","../src/shared/config.ts","../src/shared/drain.ts","../src/shared/event.ts","../src/shared/fork.ts","../src/shared/headers.ts","../src/shared/http.ts","../src/shared/integration.ts","../src/shared/severity.ts","../src/shared/storage.ts"],"mappings":";;;;;;;;;;;;UAIiB,kBAAA;;EAEf,MAAA;;EAEA,KAAA,GAAQ,KAAA;AAAA;;;;iBAMM,mBAAA,CAAoB,QAAA,EAAU,QAAA;;;;AAA9C;;iBASgB,0BAAA,CAA2B,QAAA,EAAU,QAAA;;;AAArD;;;;;AA0EA;iBAAgB,8BAAA,CACd,QAAA,EAAU,QAAA,EACV,UAAA,GAAa,IAAA,EAAM,kBAAA,YAA8B,OAAA,SAChD,QAAA;;;;;;;iBC7Fa,gBAAA,CACd,SAAA,EAAW,KAAA,EAAO,GAAA,EAAK,aAAA,YAAyB,OAAA,SAChD,OAAA;EAAW,IAAA;AAAA,KACT,GAAA,EAAK,aAAA,KAAkB,OAAA;;;;;iBAiBX,aAAA,CACd,MAAA,EAAQ,KAAA,EAAO,GAAA,EAAK,YAAA,YAAwB,OAAA,SAC5C,OAAA;EAAW,IAAA;AAAA,KACT,GAAA,EAAK,YAAA,KAAiB,OAAA;;ADhB1B;;;iBCoCgB,WAAA,CACd,OAAA,EAAS,KAAA,EAAO,GAAA,EAAK,mBAAA,YAA+B,OAAA,SACpD,OAAA;EAAW,IAAA;AAAA,KACT,GAAA,EAAK,mBAAA,KAAwB,OAAA;;iBAcjB,cAAA,CAAA,GAAkB,KAAA,EAAO,KAAA,CAAM,WAAA,kBAA6B,WAAA;;;;iBChE5D,gBAAA,CAAA,GAAoB,OAAA,CAAQ,MAAA;;;;;UAQ3B,WAAA;EACf,GAAA,QAAW,CAAA;EACX,GAAA;AAAA;;;;;;;;AFCF;iBEUsB,oBAAA,GAAA,CACpB,SAAA,UACA,MAAA,EAAQ,WAAA,CAAY,CAAA,KACpB,SAAA,GAAY,OAAA,CAAQ,CAAA,IACnB,OAAA,CAAQ,OAAA,CAAQ,CAAA;;;;AFLnB;iBE6BgB,mBAAA,CAAA,GAAuB,QAAA;;;;AF6CvC;iBE3BgB,oBAAA,kBAAA,CACd,MAAA,EAAQ,CAAA,EACR,IAAA;EACE,OAAA;EACA,IAAA,QAAY,CAAA;EACZ,EAAA,QAAU,CAAA;AAAA,IAEX,CAAA;;;;;;;;UCrEc,YAAA;;EAEf,IAAA;EHNiC;EGQjC,OAAA,QAAe,OAAA,UAAiB,OAAA,CAAQ,OAAA;EACxC,IAAA,GAAO,MAAA,EAAQ,SAAA,IAAa,MAAA,EAAQ,OAAA,KAAY,OAAA;AAAA;;;;;AHClD;;;;;AASA;;;;;AA0EA;iBGlEgB,WAAA,SAAA,CAAqB,OAAA,EAAS,YAAA,CAAa,OAAA,KAAY,GAAA,EAAK,YAAA,GAAe,YAAA,OAAmB,OAAA;AAAA,UAgB7F,gBAAA;EACf,GAAA;EHmDmB;EGjDnB,OAAA,EAAS,MAAA;EACT,IAAA;AAAA;;UAIe,gBAAA;EH2Cf;EGzCA,IAAA;EH0Ca;EGxCb,OAAA,QAAe,OAAA,UAAiB,OAAA,CAAQ,OAAA;EHwCxC;EGtCA,MAAA,GAAS,MAAA,EAAQ,SAAA,IAAa,MAAA,EAAQ,OAAA,KAAY,gBAAA;EHuCzC;EGrCT,OAAA;;EAEA,OAAA;;EAEA,cAAA,IAAkB,MAAA,EAAQ,OAAA;EF5DI;EE8D9B,cAAA,IAAkB,MAAA,EAAQ,OAAA;AAAA;;;;;;;;;;;;;;;;;;;AF1C5B;;;;;iBEsEgB,eAAA,SAAA,CAAyB,OAAA,EAAS,gBAAA,CAAiB,OAAA,KAAY,GAAA,EAAK,YAAA,GAAe,YAAA,OAAmB,OAAA;;;;;;;;;;;iBCxFtG,eAAA,GAAA,CACd,QAAA,WACA,QAAA,EAAU,CAAA,EACV,SAAA,aACC,CAAA;;KAYS,kBAAA;AAAA,UAEK,mBAAA;EACf,KAAA;EACA,IAAA,EAAM,kBAAA;AAAA;;iBAIQ,qBAAA,CAAsB,KAAA,YAAiB,mBAAA;AJnBvD;AAAA,iBI+BgB,oBAAA,CAAqB,KAAA;EACnC,WAAA;EACA,QAAA;EACA,SAAA;AAAA;;;;;;UCtCe,aAAA;;EAEf,YAAA,IAAgB,KAAA,EAAO,aAAA;ELRU;EKUjC,WAAA,IAAe,KAAA,EAAO,aAAA;AAAA;;;;;;UAQP,2BAAA;EACf,OAAA,EAAS,iBAAA,CAAkB,aAAA;EAC3B,MAAA,EAAQ,aAAA;EACR,iBAAA,EAAmB,uBAAA;EACnB,KAAA;EACA,EAAA,eAAiB,OAAA;EACjB,SAAA,GAAY,aAAA;AAAA;;;ALqEd;iBK/DgB,kBAAA,CACd,OAAA,EAAS,iBAAA,CAAkB,aAAA,GAC3B,MAAA,EAAQ,aAAA,EACR,iBAAA,EAAmB,uBAAA,EACnB,SAAA,GAAY,aAAA;;;;;;;;;iBAgBE,oBAAA,CAAqB,OAAA,EAAS,2BAAA;;;;;;;;iBC/C9B,kBAAA,CAAmB,OAAA,EAAS,OAAA,GAAU,MAAA;;;ANHtD;;iBMegB,sBAAA,CAAuB,OAAA,EAAS,MAAA,0CAAgD,MAAA;;;;;iBAahF,SAAA,CAAU,OAAA,EAAS,MAAA,8BAAoC,IAAA;;iBAYvD,eAAA,CAAgB,KAAA;;;;;;;;;;;ANxChC;AAAA,cOQa,aAAA;;cAGA,gBAAA;AAAA,UAEI,eAAA;EACf,GAAA;EPVQ;EOYR,OAAA,EAAS,MAAA;EPZI;EOcb,IAAA;EPRiC;EOUjC,OAAA;EPV4C;EOY5C,KAAA;EPHc;;;;EOQd,OAAA;EPkEc;;;;;EO5Dd,SAAA;EP+DC;;;;;EOzDD,MAAA;AAAA;;;;;;;iBAiBc,wBAAA,CACd,OAAA,EAAS,MAAA;EACP,SAAA;EAAW;AAAA;EAAY,SAAA;EAA4B,MAAA;AAAA,IACpD,MAAA;;;;;iBA0BmB,QAAA,CAAA;EAAW,GAAA;EAAK,OAAA;EAAS,IAAA;EAAM,OAAA;EAAS,KAAA;EAAO,OAAA;EAAa,SAAA;EAAW;AAAA,GAAU,eAAA,GAAkB,OAAA;;;;UCjFxG,gBAAA;EACf,MAAA;EACA,IAAA;;ARNF;;;;EQYE,OAAA,GAAU,OAAA,GAAU,MAAA;ERRpB;EQUA,SAAA;AAAA;;UAIe,wBAAA;ERRkB;EQUjC,IAAA;EACA,cAAA,GAAiB,GAAA,EAAK,IAAA,KAAS,gBAAA;ERXqB;EQapD,YAAA,GAAe,GAAA,EAAK,IAAA,EAAM,MAAA,EAAQ,aAAA;ERJM;;;;AA0E1C;EQhEE,OAAA,GAAU,iBAAA,CAAkB,aAAA;;EAE5B,aAAA,GAF2B,aAAA;AAAA;;UAMZ,sBAAA,SAA+B,sBAAA;EAC9C,iBAAA,EAAmB,uBAAA;ER4DV;;;;EQvDT,OAAA,MAAa,EAAA,QAAU,CAAA,GAAI,OAAA,CAAQ,CAAA,MAAO,OAAA,CAAQ,CAAA;AAAA;;UAInC,2BAAA;EACf,KAAA,GAAQ,GAAA,EAAK,IAAA,EAAM,OAAA,GAAU,gBAAA,KAAqB,sBAAA;AAAA;;;;AP3CpD;;;;;;;;;;;;;;;;;;;;;;AAoBA;;;;;;;;;;iBOqEgB,0BAAA,MAAA,CACd,IAAA,EAAM,wBAAA,CAAyB,IAAA,IAC9B,2BAAA,CAA4B,IAAA;;;;;;;cC5FlB,oBAAA,EAAsB,MAAA,CAAO,QAAA;AAAA,cAO7B,kBAAA,EAAoB,MAAA,CAAO,QAAA;;;;;;;;;ATTxC;;;iBUQgB,mBAAA,CAAoB,WAAA;;iCAGC,MAAA,wBAA+B,aAAA,CAAc,CAAA;AAAA"}
|
package/dist/toolkit.mjs
CHANGED
|
@@ -1,14 +1,15 @@
|
|
|
1
|
-
import { A as
|
|
2
|
-
import { i as normalizeNumber, n as extractSafeNodeHeaders, r as getHeader, t as extractSafeHeaders } from "./headers-
|
|
3
|
-
import { t as extractErrorStatus } from "./errors-
|
|
4
|
-
import { n as toLoggerConfig, r as toMiddlewareOptions, t as defineEvlog } from "./define-
|
|
5
|
-
import { n as shouldLog, t as getServiceForPath } from "./routes-
|
|
6
|
-
import {
|
|
7
|
-
import { i as
|
|
8
|
-
import { n as
|
|
9
|
-
import { n as
|
|
10
|
-
import {
|
|
11
|
-
import { a as
|
|
12
|
-
import { t as
|
|
13
|
-
import { t as
|
|
14
|
-
|
|
1
|
+
import { A as enricherPlugin, D as createPluginRunner, O as definePlugin, j as getEmptyPluginRunner, k as drainPlugin } from "./audit-BQt8yAHo.mjs";
|
|
2
|
+
import { i as normalizeNumber, n as extractSafeNodeHeaders, r as getHeader, t as extractSafeHeaders } from "./headers-VtmnWcfn.mjs";
|
|
3
|
+
import { t as extractErrorStatus } from "./errors-DA0cyr8q.mjs";
|
|
4
|
+
import { n as toLoggerConfig, r as toMiddlewareOptions, t as defineEvlog } from "./define-Bpaymi-h.mjs";
|
|
5
|
+
import { n as shouldLog, t as getServiceForPath } from "./routes-4rMzRyTk.mjs";
|
|
6
|
+
import { n as isStreamingResponse, r as shouldDeferEmitForResponse, t as bindStreamingResponseLifecycle } from "./streamResponse-CmQ3qUbF.mjs";
|
|
7
|
+
import { i as withEvlogIdentityHeaders, n as EVLOG_VERSION, r as httpPost, t as EVLOG_USER_AGENT } from "./http-ChVS9GYc.mjs";
|
|
8
|
+
import { a as getRuntimeConfig, i as formatPublicEnvKeys, n as defineHttpDrain, o as resolveAdapterConfig, r as applyDeprecatedAlias, t as defineDrain } from "./drain-fDb-eNwz.mjs";
|
|
9
|
+
import { n as toOtlpAttributeValue, r as toTypedAttributeValue, t as mergeEventField } from "./event-qwAv-7AZ.mjs";
|
|
10
|
+
import { n as OTEL_SEVERITY_TEXT, t as OTEL_SEVERITY_NUMBER } from "./severity-CwXUSHt3.mjs";
|
|
11
|
+
import { a as composePlugins, i as composeKeep, n as composeDrains, r as composeEnrichers, t as defineEnricher } from "./enricher-DAWf2-Fx.mjs";
|
|
12
|
+
import { a as runEnrichAndDrain, i as resolveMiddlewarePluginRunner, n as forkBackgroundLogger, r as createMiddlewareLogger, t as attachForkToLogger } from "./fork-CgGlAaHa.mjs";
|
|
13
|
+
import { t as defineFrameworkIntegration } from "./integration-DYp2uw8O.mjs";
|
|
14
|
+
import { t as createLoggerStorage } from "./storage-7X37OToT.mjs";
|
|
15
|
+
export { EVLOG_USER_AGENT, EVLOG_VERSION, OTEL_SEVERITY_NUMBER, OTEL_SEVERITY_TEXT, applyDeprecatedAlias, attachForkToLogger, bindStreamingResponseLifecycle, composeDrains, composeEnrichers, composeKeep, composePlugins, createLoggerStorage, createMiddlewareLogger, createPluginRunner, defineDrain, defineEnricher, defineEvlog, defineFrameworkIntegration, defineHttpDrain, definePlugin, drainPlugin, enricherPlugin, extractErrorStatus, extractSafeHeaders, extractSafeNodeHeaders, forkBackgroundLogger, formatPublicEnvKeys, getEmptyPluginRunner, getHeader, getRuntimeConfig, getServiceForPath, httpPost, isStreamingResponse, mergeEventField, normalizeNumber, resolveAdapterConfig, resolveMiddlewarePluginRunner, runEnrichAndDrain, shouldDeferEmitForResponse, shouldLog, toLoggerConfig, toMiddlewareOptions, toOtlpAttributeValue, toTypedAttributeValue, withEvlogIdentityHeaders };
|
package/dist/types.d.mts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { $ as
|
|
2
|
-
export { AuditAction, AuditActor, AuditFields, AuditLoggerMethod, AuditTarget, BaseWideEvent, DeepPartial, DrainContext, EnrichContext, EnvironmentContext, ErrorCode, ErrorOptions, FieldContext, H3EventContext, IngestPayload, InternalFields, Log, LogLevel, LoggerConfig, ParsedError, RedactConfig, RegisteredAuditCatalogs, RegisteredErrorCatalogs, RequestLogEntry, RequestLogger, RequestLoggerOptions, RouteConfig, SamplingConfig, SamplingRates, ServerEvent, TailSamplingCondition, TailSamplingContext, TransportConfig, WideEvent };
|
|
1
|
+
import { $ as RedactConfig, A as AuditActionDefinition, B as DrainContext, F as AuditPatchOp, G as FieldContext, H as EnvironmentContext, I as AuditSeverity, J as InternalFields, K as H3EventContext, L as AuditTarget, M as AuditChanges, N as AuditFields, P as AuditLoggerMethod, Q as ParsedError, R as BaseWideEvent, U as ErrorCode, V as EnrichContext, W as ErrorOptions, X as LogLevel, Y as Log, Z as LoggerConfig, at as RouteConfig, ct as ServerEvent, dt as TransportConfig, et as RegisteredAuditCatalogs, ft as WideEvent, it as RequestLoggerOptions, j as AuditActor, k as AuditAction, lt as TailSamplingCondition, nt as RequestLogEntry, ot as SamplingConfig, q as IngestPayload, rt as RequestLogger, st as SamplingRates, tt as RegisteredErrorCatalogs, ut as TailSamplingContext, z as DeepPartial } from "./audit-D7v6JHj0.mjs";
|
|
2
|
+
export { AuditAction, AuditActionDefinition, AuditActor, AuditChanges, AuditFields, AuditLoggerMethod, AuditPatchOp, AuditSeverity, AuditTarget, BaseWideEvent, DeepPartial, DrainContext, EnrichContext, EnvironmentContext, ErrorCode, ErrorOptions, FieldContext, H3EventContext, IngestPayload, InternalFields, Log, LogLevel, LoggerConfig, ParsedError, RedactConfig, RegisteredAuditCatalogs, RegisteredErrorCatalogs, RequestLogEntry, RequestLogger, RequestLoggerOptions, RouteConfig, SamplingConfig, SamplingRates, ServerEvent, TailSamplingCondition, TailSamplingContext, TransportConfig, WideEvent };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ct as ServerEvent, rt as RequestLogger } from "./audit-D7v6JHj0.mjs";
|
|
2
2
|
|
|
3
3
|
//#region src/runtime/server/useLogger.d.ts
|
|
4
4
|
/**
|
|
@@ -36,4 +36,4 @@ import { $ as RequestLogger, it as ServerEvent } from "./audit-DVdkntSO.mjs";
|
|
|
36
36
|
declare function useLogger<T extends object = Record<string, unknown>>(event: ServerEvent, service?: string): RequestLogger<T>;
|
|
37
37
|
//#endregion
|
|
38
38
|
export { useLogger as t };
|
|
39
|
-
//# sourceMappingURL=useLogger-
|
|
39
|
+
//# sourceMappingURL=useLogger-Cfv8Ck8b.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useLogger-
|
|
1
|
+
{"version":3,"file":"useLogger-Cfv8Ck8b.d.mts","names":[],"sources":["../src/runtime/server/useLogger.ts"],"mappings":";;;;;AAkCA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAAgB,SAAA,oBAA6B,MAAA,kBAAA,CAAyB,KAAA,EAAO,WAAA,EAAa,OAAA,YAAmB,aAAA,CAAc,CAAA"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { H as EnvironmentContext, X as LogLevel } from "./audit-D7v6JHj0.mjs";
|
|
2
2
|
|
|
3
3
|
//#region src/utils.d.ts
|
|
4
4
|
declare function formatDuration(ms: number): string;
|
|
@@ -54,11 +54,19 @@ declare const SENSITIVE_HEADERS: string[];
|
|
|
54
54
|
* (e.g. `authorization`, `cookie`, `x-api-key`).
|
|
55
55
|
*/
|
|
56
56
|
declare function filterSafeHeaders(headers: Partial<Record<string, string | undefined>>): Record<string, string>;
|
|
57
|
+
/**
|
|
58
|
+
* Compile a glob pattern to a anchored RegExp.
|
|
59
|
+
*
|
|
60
|
+
* - `*` matches any characters except the separator
|
|
61
|
+
* - `**` matches any characters including the separator
|
|
62
|
+
* - `?` matches one character except the separator
|
|
63
|
+
*/
|
|
64
|
+
declare function globToRegExp(pattern: string, separator?: '/' | '.'): RegExp;
|
|
57
65
|
/**
|
|
58
66
|
* Match a path against a glob pattern.
|
|
59
67
|
* Supports * (any chars except /) and ** (any chars including /).
|
|
60
68
|
*/
|
|
61
69
|
declare function matchesPattern(path: string, pattern: string): boolean;
|
|
62
70
|
//#endregion
|
|
63
|
-
export { escapeFormatString as a, getConsoleMethod as c,
|
|
64
|
-
//# sourceMappingURL=utils-
|
|
71
|
+
export { matchesPattern as _, escapeFormatString as a, getConsoleMethod as c, globToRegExp as d, isBrowser as f, isServer as g, isLevelEnabled as h, detectEnvironment as i, getCssLevelColor as l, isDev as m, colors as n, filterSafeHeaders as o, isClient as p, cssColors as r, formatDuration as s, SENSITIVE_HEADERS as t, getLevelColor as u };
|
|
72
|
+
//# sourceMappingURL=utils-CJJG0ZYW.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils-
|
|
1
|
+
{"version":3,"file":"utils-CJJG0ZYW.d.mts","names":[],"sources":["../src/utils.ts"],"mappings":";;;iBAEgB,cAAA,CAAe,EAAA;AAAA,iBAOf,QAAA,CAAA;AAAA,iBAIA,QAAA,CAAA;AAAA,iBAIA,SAAA,CAAA;AAAA,iBAOA,KAAA,CAAA;AAAA,iBAUA,iBAAA,CAAA,GAAqB,OAAA,CAAQ,kBAAA;;AAzB7C;;iBAsDgB,cAAA,CAAe,KAAA,EAAO,QAAA,EAAU,QAAA,EAAU,QAAA;AAAA,iBAI1C,gBAAA,CAAiB,KAAA,EAAO,QAAA,GAAW,QAAA;AAAA,cAItC,MAAA;EAAA;;;;;;;;;;;;iBAgBG,aAAA,CAAc,KAAA;AAAA,cAIjB,SAAA;EAAA;;;;;;;;iBAYG,gBAAA,CAAiB,KAAA;;;;;;iBASjB,kBAAA,CAAmB,GAAA;;cAKtB,iBAAA;;;;;;;;;AA9Cb;iBAkEgB,iBAAA,CAAkB,OAAA,EAAS,OAAA,CAAQ,MAAA,gCAAsC,MAAA;;;;;;;;iBAqBzE,YAAA,CAAa,OAAA,UAAiB,SAAA,eAA6B,MAAA;;;;;iBAsB3D,cAAA,CAAe,IAAA,UAAc,OAAA"}
|
package/dist/utils.d.mts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { a as escapeFormatString, c as getConsoleMethod, d as
|
|
2
|
-
export { SENSITIVE_HEADERS, colors, cssColors, detectEnvironment, escapeFormatString, filterSafeHeaders, formatDuration, getConsoleMethod, getCssLevelColor, getLevelColor, isBrowser, isClient, isDev, isLevelEnabled, isServer, matchesPattern };
|
|
1
|
+
import { _ as matchesPattern, a as escapeFormatString, c as getConsoleMethod, d as globToRegExp, f as isBrowser, g as isServer, h as isLevelEnabled, i as detectEnvironment, l as getCssLevelColor, m as isDev, n as colors, o as filterSafeHeaders, p as isClient, r as cssColors, s as formatDuration, t as SENSITIVE_HEADERS, u as getLevelColor } from "./utils-CJJG0ZYW.mjs";
|
|
2
|
+
export { SENSITIVE_HEADERS, colors, cssColors, detectEnvironment, escapeFormatString, filterSafeHeaders, formatDuration, getConsoleMethod, getCssLevelColor, getLevelColor, globToRegExp, isBrowser, isClient, isDev, isLevelEnabled, isServer, matchesPattern };
|
package/dist/utils.mjs
CHANGED
|
@@ -103,6 +103,7 @@ const SENSITIVE_HEADERS = [
|
|
|
103
103
|
"x-auth-token",
|
|
104
104
|
"proxy-authorization"
|
|
105
105
|
];
|
|
106
|
+
const SENSITIVE_HEADER_SET = new Set(SENSITIVE_HEADERS);
|
|
106
107
|
/**
|
|
107
108
|
* Filter out undefined values and sensitive headers from a raw header map.
|
|
108
109
|
*
|
|
@@ -114,24 +115,37 @@ const SENSITIVE_HEADERS = [
|
|
|
114
115
|
*/
|
|
115
116
|
function filterSafeHeaders(headers) {
|
|
116
117
|
const safeHeaders = {};
|
|
117
|
-
for (const [key, value] of Object.entries(headers)) if (value !== void 0 && !
|
|
118
|
+
for (const [key, value] of Object.entries(headers)) if (value !== void 0 && !SENSITIVE_HEADER_SET.has(key.toLowerCase())) safeHeaders[key] = value;
|
|
118
119
|
return safeHeaders;
|
|
119
120
|
}
|
|
120
121
|
const patternCache = /* @__PURE__ */ new Map();
|
|
121
122
|
/**
|
|
122
|
-
*
|
|
123
|
-
*
|
|
123
|
+
* Compile a glob pattern to a anchored RegExp.
|
|
124
|
+
*
|
|
125
|
+
* - `*` matches any characters except the separator
|
|
126
|
+
* - `**` matches any characters including the separator
|
|
127
|
+
* - `?` matches one character except the separator
|
|
124
128
|
*/
|
|
125
|
-
function
|
|
126
|
-
|
|
129
|
+
function globToRegExp(pattern, separator = "/") {
|
|
130
|
+
const cacheKey = `${separator}:${pattern}`;
|
|
131
|
+
let regex = patternCache.get(cacheKey);
|
|
127
132
|
if (!regex) {
|
|
128
|
-
const
|
|
133
|
+
const segment = separator === "/" ? "[^/]*" : "[^.]*";
|
|
134
|
+
const char = separator === "/" ? "[^/]" : "[^.]";
|
|
135
|
+
const regexPattern = pattern.replace(/[.+^${}()|[\]\\]/g, "\\$&").replace(/\*\*/g, "{{GLOBSTAR}}").replace(/\*/g, segment).replace(/{{GLOBSTAR}}/g, ".*").replace(/\?/g, char);
|
|
129
136
|
regex = new RegExp(`^${regexPattern}$`);
|
|
130
|
-
patternCache.set(
|
|
137
|
+
patternCache.set(cacheKey, regex);
|
|
131
138
|
}
|
|
132
|
-
return regex
|
|
139
|
+
return regex;
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* Match a path against a glob pattern.
|
|
143
|
+
* Supports * (any chars except /) and ** (any chars including /).
|
|
144
|
+
*/
|
|
145
|
+
function matchesPattern(path, pattern) {
|
|
146
|
+
return globToRegExp(pattern, "/").test(path);
|
|
133
147
|
}
|
|
134
148
|
//#endregion
|
|
135
|
-
export { SENSITIVE_HEADERS, colors, cssColors, detectEnvironment, escapeFormatString, filterSafeHeaders, formatDuration, getConsoleMethod, getCssLevelColor, getLevelColor, isBrowser, isClient, isDev, isLevelEnabled, isServer, matchesPattern };
|
|
149
|
+
export { SENSITIVE_HEADERS, colors, cssColors, detectEnvironment, escapeFormatString, filterSafeHeaders, formatDuration, getConsoleMethod, getCssLevelColor, getLevelColor, globToRegExp, isBrowser, isClient, isDev, isLevelEnabled, isServer, matchesPattern };
|
|
136
150
|
|
|
137
151
|
//# sourceMappingURL=utils.mjs.map
|
package/dist/utils.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.mjs","names":[],"sources":["../src/utils.ts"],"sourcesContent":["import type { EnvironmentContext, LogLevel } from './types'\n\nexport function formatDuration(ms: number): string {\n if (ms < 1000) {\n return `${Math.round(ms)}ms`\n }\n return `${(ms / 1000).toFixed(2)}s`\n}\n\nexport function isServer(): boolean {\n return typeof window === 'undefined'\n}\n\nexport function isClient(): boolean {\n return typeof window !== 'undefined'\n}\n\nexport function isBrowser(): boolean {\n if (typeof window === 'undefined') return false\n if (typeof document === 'undefined') return false\n if (typeof navigator !== 'undefined' && navigator.product === 'ReactNative') return false\n return true\n}\n\nexport function isDev(): boolean {\n if (typeof process !== 'undefined') {\n return process.env.NODE_ENV !== 'production'\n }\n if (typeof window !== 'undefined') {\n return true\n }\n return false\n}\n\nexport function detectEnvironment(): Partial<EnvironmentContext> {\n const env = typeof process !== 'undefined' ? process.env : {}\n const defaultEnvironment = isDev() ? 'development' : 'production'\n\n return {\n environment: env.NODE_ENV || defaultEnvironment,\n service: env.SERVICE_NAME || 'app',\n version: env.APP_VERSION,\n commitHash: env.COMMIT_SHA\n || env.GITHUB_SHA\n || env.VERCEL_GIT_COMMIT_SHA\n || env.CF_PAGES_COMMIT_SHA,\n region: env.VERCEL_REGION\n || env.AWS_REGION\n || env.FLY_REGION\n || env.CF_REGION,\n }\n}\n\nconst LEVEL_ORDER: Record<LogLevel, number> = {\n debug: 0,\n info: 1,\n warn: 2,\n error: 3,\n}\n\n/**\n * True if `level` is at least as severe as `minLevel` (debug < info < warn < error).\n */\nexport function isLevelEnabled(level: LogLevel, minLevel: LogLevel): boolean {\n return LEVEL_ORDER[level] >= LEVEL_ORDER[minLevel]\n}\n\nexport function getConsoleMethod(level: LogLevel): LogLevel {\n return level\n}\n\nexport const colors = {\n reset: '\\x1B[0m',\n bold: '\\x1B[1m',\n dim: '\\x1B[2m',\n red: '\\x1B[31m',\n green: '\\x1B[32m',\n yellow: '\\x1B[33m',\n blue: '\\x1B[34m',\n magenta: '\\x1B[35m',\n cyan: '\\x1B[36m',\n white: '\\x1B[37m',\n gray: '\\x1B[90m',\n} as const\n\nconst levelColorMap: Record<string, string> = { error: colors.red, warn: colors.yellow, info: colors.cyan, debug: colors.gray }\n\nexport function getLevelColor(level: string): string {\n return levelColorMap[level] ?? colors.white\n}\n\nexport const cssColors = {\n dim: 'color: #6b7280',\n red: 'color: #ef4444; font-weight: bold',\n green: 'color: #22c55e',\n yellow: 'color: #f59e0b; font-weight: bold',\n cyan: 'color: #06b6d4; font-weight: bold',\n gray: 'color: #6b7280; font-weight: bold',\n reset: 'color: inherit; font-weight: normal',\n} as const\n\nconst cssLevelColorMap: Record<string, string> = { error: cssColors.red, warn: cssColors.yellow, info: cssColors.cyan, debug: cssColors.gray }\n\nexport function getCssLevelColor(level: string): string {\n return cssLevelColorMap[level] ?? cssColors.reset\n}\n\n/**\n * Escape `%` in strings interpolated into `console.log` format strings\n * to prevent `%c`, `%s`, `%d` etc. in user data from being interpreted\n * as formatting directives.\n */\nexport function escapeFormatString(str: string): string {\n return str.replace(/%/g, '%%')\n}\n\n/** Headers that should never be passed to hooks for security */\nexport const SENSITIVE_HEADERS = [\n 'authorization',\n 'cookie',\n 'set-cookie',\n 'x-api-key',\n 'x-auth-token',\n 'proxy-authorization',\n]\n\n/**\n * Filter out undefined values and sensitive headers from a raw header map.\n *\n * @param headers - Flat header map where values may be `undefined`\n * (e.g. from `IncomingMessage.headers` or a framework's header accessor).\n * @returns A new object containing only the headers whose values are defined\n * and whose lowercased key is not in the built-in sensitive-header list\n * (e.g. `authorization`, `cookie`, `x-api-key`).\n */\nexport function filterSafeHeaders(headers: Partial<Record<string, string | undefined>>): Record<string, string> {\n const safeHeaders: Record<string, string> = {}\n\n for (const [key, value] of Object.entries(headers)) {\n if (value !== undefined && !
|
|
1
|
+
{"version":3,"file":"utils.mjs","names":[],"sources":["../src/utils.ts"],"sourcesContent":["import type { EnvironmentContext, LogLevel } from './types'\n\nexport function formatDuration(ms: number): string {\n if (ms < 1000) {\n return `${Math.round(ms)}ms`\n }\n return `${(ms / 1000).toFixed(2)}s`\n}\n\nexport function isServer(): boolean {\n return typeof window === 'undefined'\n}\n\nexport function isClient(): boolean {\n return typeof window !== 'undefined'\n}\n\nexport function isBrowser(): boolean {\n if (typeof window === 'undefined') return false\n if (typeof document === 'undefined') return false\n if (typeof navigator !== 'undefined' && navigator.product === 'ReactNative') return false\n return true\n}\n\nexport function isDev(): boolean {\n if (typeof process !== 'undefined') {\n return process.env.NODE_ENV !== 'production'\n }\n if (typeof window !== 'undefined') {\n return true\n }\n return false\n}\n\nexport function detectEnvironment(): Partial<EnvironmentContext> {\n const env = typeof process !== 'undefined' ? process.env : {}\n const defaultEnvironment = isDev() ? 'development' : 'production'\n\n return {\n environment: env.NODE_ENV || defaultEnvironment,\n service: env.SERVICE_NAME || 'app',\n version: env.APP_VERSION,\n commitHash: env.COMMIT_SHA\n || env.GITHUB_SHA\n || env.VERCEL_GIT_COMMIT_SHA\n || env.CF_PAGES_COMMIT_SHA,\n region: env.VERCEL_REGION\n || env.AWS_REGION\n || env.FLY_REGION\n || env.CF_REGION,\n }\n}\n\nconst LEVEL_ORDER: Record<LogLevel, number> = {\n debug: 0,\n info: 1,\n warn: 2,\n error: 3,\n}\n\n/**\n * True if `level` is at least as severe as `minLevel` (debug < info < warn < error).\n */\nexport function isLevelEnabled(level: LogLevel, minLevel: LogLevel): boolean {\n return LEVEL_ORDER[level] >= LEVEL_ORDER[minLevel]\n}\n\nexport function getConsoleMethod(level: LogLevel): LogLevel {\n return level\n}\n\nexport const colors = {\n reset: '\\x1B[0m',\n bold: '\\x1B[1m',\n dim: '\\x1B[2m',\n red: '\\x1B[31m',\n green: '\\x1B[32m',\n yellow: '\\x1B[33m',\n blue: '\\x1B[34m',\n magenta: '\\x1B[35m',\n cyan: '\\x1B[36m',\n white: '\\x1B[37m',\n gray: '\\x1B[90m',\n} as const\n\nconst levelColorMap: Record<string, string> = { error: colors.red, warn: colors.yellow, info: colors.cyan, debug: colors.gray }\n\nexport function getLevelColor(level: string): string {\n return levelColorMap[level] ?? colors.white\n}\n\nexport const cssColors = {\n dim: 'color: #6b7280',\n red: 'color: #ef4444; font-weight: bold',\n green: 'color: #22c55e',\n yellow: 'color: #f59e0b; font-weight: bold',\n cyan: 'color: #06b6d4; font-weight: bold',\n gray: 'color: #6b7280; font-weight: bold',\n reset: 'color: inherit; font-weight: normal',\n} as const\n\nconst cssLevelColorMap: Record<string, string> = { error: cssColors.red, warn: cssColors.yellow, info: cssColors.cyan, debug: cssColors.gray }\n\nexport function getCssLevelColor(level: string): string {\n return cssLevelColorMap[level] ?? cssColors.reset\n}\n\n/**\n * Escape `%` in strings interpolated into `console.log` format strings\n * to prevent `%c`, `%s`, `%d` etc. in user data from being interpreted\n * as formatting directives.\n */\nexport function escapeFormatString(str: string): string {\n return str.replace(/%/g, '%%')\n}\n\n/** Headers that should never be passed to hooks for security */\nexport const SENSITIVE_HEADERS = [\n 'authorization',\n 'cookie',\n 'set-cookie',\n 'x-api-key',\n 'x-auth-token',\n 'proxy-authorization',\n]\n\nconst SENSITIVE_HEADER_SET = new Set(SENSITIVE_HEADERS)\n\n/**\n * Filter out undefined values and sensitive headers from a raw header map.\n *\n * @param headers - Flat header map where values may be `undefined`\n * (e.g. from `IncomingMessage.headers` or a framework's header accessor).\n * @returns A new object containing only the headers whose values are defined\n * and whose lowercased key is not in the built-in sensitive-header list\n * (e.g. `authorization`, `cookie`, `x-api-key`).\n */\nexport function filterSafeHeaders(headers: Partial<Record<string, string | undefined>>): Record<string, string> {\n const safeHeaders: Record<string, string> = {}\n\n for (const [key, value] of Object.entries(headers)) {\n if (value !== undefined && !SENSITIVE_HEADER_SET.has(key.toLowerCase())) {\n safeHeaders[key] = value\n }\n }\n\n return safeHeaders\n}\n\nconst patternCache = new Map<string, RegExp>()\n\n/**\n * Compile a glob pattern to a anchored RegExp.\n *\n * - `*` matches any characters except the separator\n * - `**` matches any characters including the separator\n * - `?` matches one character except the separator\n */\nexport function globToRegExp(pattern: string, separator: '/' | '.' = '/'): RegExp {\n const cacheKey = `${separator}:${pattern}`\n let regex = patternCache.get(cacheKey)\n if (!regex) {\n const segment = separator === '/' ? '[^/]*' : '[^.]*'\n const char = separator === '/' ? '[^/]' : '[^.]'\n const regexPattern = pattern\n .replace(/[.+^${}()|[\\]\\\\]/g, '\\\\$&')\n .replace(/\\*\\*/g, '{{GLOBSTAR}}')\n .replace(/\\*/g, segment)\n .replace(/{{GLOBSTAR}}/g, '.*')\n .replace(/\\?/g, char)\n regex = new RegExp(`^${regexPattern}$`)\n patternCache.set(cacheKey, regex)\n }\n return regex\n}\n\n/**\n * Match a path against a glob pattern.\n * Supports * (any chars except /) and ** (any chars including /).\n */\nexport function matchesPattern(path: string, pattern: string): boolean {\n return globToRegExp(pattern, '/').test(path)\n}\n"],"mappings":"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"}
|
package/dist/vite/index.d.mts
CHANGED
package/dist/vite/index.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { a as walk, i as shouldTransform, n as createStripPlugin, o as MagicString, r as TRANSFORM_FILTER, t as createSourceLocationPlugin } from "../source-location-
|
|
1
|
+
import { a as walk, i as shouldTransform, n as createStripPlugin, o as MagicString, r as TRANSFORM_FILTER, t as createSourceLocationPlugin } from "../source-location-CHOPF2nd.mjs";
|
|
2
2
|
import { resolve } from "node:path";
|
|
3
3
|
import { existsSync, writeFileSync } from "node:fs";
|
|
4
4
|
//#region src/vite/auto-init.ts
|
package/dist/workers.d.mts
CHANGED
package/dist/workers.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { b as initLogger, g as createRequestLogger } from "./audit-
|
|
1
|
+
import { b as initLogger, g as createRequestLogger } from "./audit-BQt8yAHo.mjs";
|
|
2
2
|
//#region src/workers/index.ts
|
|
3
3
|
function isRecord(value) {
|
|
4
4
|
return typeof value === "object" && value !== null && !Array.isArray(value);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "evlog",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.19.1",
|
|
4
4
|
"description": "Modern TypeScript logger — simple logs, wide events, structured errors. Built for scripts, libraries, jobs, edge, and HTTP. One drain pipeline everywhere.",
|
|
5
5
|
"author": "HugoRCD <contact@hrcd.fr>",
|
|
6
6
|
"homepage": "https://evlog.dev",
|
|
@@ -35,6 +35,9 @@
|
|
|
35
35
|
"license": "MIT",
|
|
36
36
|
"type": "module",
|
|
37
37
|
"sideEffects": false,
|
|
38
|
+
"engines": {
|
|
39
|
+
"node": ">=18.0.0"
|
|
40
|
+
},
|
|
38
41
|
"exports": {
|
|
39
42
|
".": {
|
|
40
43
|
"types": "./dist/index.d.mts",
|
|
@@ -146,6 +149,11 @@
|
|
|
146
149
|
"import": "./dist/next/instrumentation.mjs",
|
|
147
150
|
"default": "./dist/next/instrumentation.mjs"
|
|
148
151
|
},
|
|
152
|
+
"./next/instrumentation/create": {
|
|
153
|
+
"types": "./dist/next/instrumentation/create.d.mts",
|
|
154
|
+
"import": "./dist/next/instrumentation/create.mjs",
|
|
155
|
+
"default": "./dist/next/instrumentation/create.mjs"
|
|
156
|
+
},
|
|
149
157
|
"./next/stream": {
|
|
150
158
|
"types": "./dist/next/stream.d.mts",
|
|
151
159
|
"import": "./dist/next/stream.mjs",
|
|
@@ -287,6 +295,9 @@
|
|
|
287
295
|
"next/instrumentation": [
|
|
288
296
|
"./dist/next/instrumentation.d.mts"
|
|
289
297
|
],
|
|
298
|
+
"next/instrumentation/create": [
|
|
299
|
+
"./dist/next/instrumentation/create.d.mts"
|
|
300
|
+
],
|
|
290
301
|
"next/stream": [
|
|
291
302
|
"./dist/next/stream.d.mts"
|
|
292
303
|
],
|