evlog 2.19.1 → 2.19.2

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 (172) hide show
  1. package/dist/adapters/axiom.d.mts +1 -1
  2. package/dist/adapters/axiom.mjs +2 -2
  3. package/dist/adapters/better-stack.d.mts +1 -1
  4. package/dist/adapters/better-stack.mjs +2 -2
  5. package/dist/adapters/datadog.d.mts +1 -1
  6. package/dist/adapters/datadog.mjs +2 -2
  7. package/dist/adapters/fs.d.mts +1 -1
  8. package/dist/adapters/fs.mjs +1 -1
  9. package/dist/adapters/hyperdx.d.mts +1 -1
  10. package/dist/adapters/hyperdx.mjs +1 -1
  11. package/dist/adapters/memory.d.mts +1 -1
  12. package/dist/adapters/memory.mjs +1 -1
  13. package/dist/adapters/otlp.d.mts +1 -1
  14. package/dist/adapters/otlp.mjs +2 -2
  15. package/dist/adapters/posthog.d.mts +1 -1
  16. package/dist/adapters/posthog.mjs +2 -2
  17. package/dist/adapters/sentry.d.mts +1 -1
  18. package/dist/adapters/sentry.mjs +2 -2
  19. package/dist/ai/index.d.mts +1 -1
  20. package/dist/{audit-D7v6JHj0.d.mts → audit-CBfv3rl1.d.mts} +70 -53
  21. package/dist/audit-CBfv3rl1.d.mts.map +1 -0
  22. package/dist/{audit-BQt8yAHo.mjs → audit-CL0q7GJU.mjs} +12 -89
  23. package/dist/audit-CL0q7GJU.mjs.map +1 -0
  24. package/dist/audit-action.d.mts +2 -0
  25. package/dist/audit-action.mjs +74 -0
  26. package/dist/audit-action.mjs.map +1 -0
  27. package/dist/audit.d.mts +2 -0
  28. package/dist/audit.mjs +3 -0
  29. package/dist/better-auth/index.d.mts +1 -1
  30. package/dist/browser.d.mts +1 -1
  31. package/dist/{index-EvnrXvQM.d.mts → catalog-CyemiLYG.d.mts} +4 -3
  32. package/dist/catalog-CyemiLYG.d.mts.map +1 -0
  33. package/dist/catalog.d.mts +2 -0
  34. package/dist/catalog.mjs +205 -0
  35. package/dist/catalog.mjs.map +1 -0
  36. package/dist/{define-DTQpu4f6.d.mts → define-BuDJpV2b.d.mts} +3 -3
  37. package/dist/{define-DTQpu4f6.d.mts.map → define-BuDJpV2b.d.mts.map} +1 -1
  38. package/dist/{drain-fDb-eNwz.mjs → drain-6lV-g7JB.mjs} +2 -2
  39. package/dist/{drain-fDb-eNwz.mjs.map → drain-6lV-g7JB.mjs.map} +1 -1
  40. package/dist/elysia/index.d.mts +4 -4
  41. package/dist/elysia/index.d.mts.map +1 -1
  42. package/dist/elysia/index.mjs +2 -2
  43. package/dist/elysia/index.mjs.map +1 -1
  44. package/dist/{enrich-error-stack-next.node-Dgm_rCf5.mjs → enrich-error-stack-next.node-BecxSKUc.mjs} +1 -1
  45. package/dist/{enrich-error-stack-next.node-Dgm_rCf5.mjs.map → enrich-error-stack-next.node-BecxSKUc.mjs.map} +1 -1
  46. package/dist/{enricher-CBRmQw6e.d.mts → enricher-VdBVX4oT.d.mts} +2 -2
  47. package/dist/{enricher-CBRmQw6e.d.mts.map → enricher-VdBVX4oT.d.mts.map} +1 -1
  48. package/dist/enrichers.d.mts +2 -2
  49. package/dist/{error-CpghjrkY.d.mts → error-CPCM5a1D.d.mts} +2 -2
  50. package/dist/{error-CpghjrkY.d.mts.map → error-CPCM5a1D.d.mts.map} +1 -1
  51. package/dist/error.d.mts +1 -1
  52. package/dist/{errors-BLU4Tfpe.d.mts → errors-ZdY6Ohi6.d.mts} +2 -2
  53. package/dist/{errors-BLU4Tfpe.d.mts.map → errors-ZdY6Ohi6.d.mts.map} +1 -1
  54. package/dist/express/index.d.mts +4 -4
  55. package/dist/express/index.d.mts.map +1 -1
  56. package/dist/express/index.mjs +3 -3
  57. package/dist/express/index.mjs.map +1 -1
  58. package/dist/fastify/index.d.mts +4 -4
  59. package/dist/fastify/index.d.mts.map +1 -1
  60. package/dist/fastify/index.mjs +4 -2
  61. package/dist/fastify/index.mjs.map +1 -1
  62. package/dist/{fork-CgGlAaHa.mjs → fork-Di44utlp.mjs} +2 -2
  63. package/dist/fork-Di44utlp.mjs.map +1 -0
  64. package/dist/hono/index.d.mts +3 -3
  65. package/dist/hono/index.d.mts.map +1 -1
  66. package/dist/hono/index.mjs +3 -6
  67. package/dist/hono/index.mjs.map +1 -1
  68. package/dist/{http-ChVS9GYc.mjs → http-DA3RWQrm.mjs} +2 -2
  69. package/dist/{http-ChVS9GYc.mjs.map → http-DA3RWQrm.mjs.map} +1 -1
  70. package/dist/http.d.mts +1 -1
  71. package/dist/index.d.mts +9 -9
  72. package/dist/index.mjs +3 -203
  73. package/dist/{instrumentation-create-BrjQtSKD.d.mts → instrumentation-create-STGmQGQt.d.mts} +2 -2
  74. package/dist/{instrumentation-create-BrjQtSKD.d.mts.map → instrumentation-create-STGmQGQt.d.mts.map} +1 -1
  75. package/dist/{integration-DYp2uw8O.mjs → integration-2PpI-bCm.mjs} +2 -2
  76. package/dist/{integration-DYp2uw8O.mjs.map → integration-2PpI-bCm.mjs.map} +1 -1
  77. package/dist/{logger-mHIWxBhJ.d.mts → logger-DWTPZ0c1.d.mts} +2 -2
  78. package/dist/{logger-mHIWxBhJ.d.mts.map → logger-DWTPZ0c1.d.mts.map} +1 -1
  79. package/dist/logger.d.mts +1 -1
  80. package/dist/logger.mjs +1 -1
  81. package/dist/{middleware-B_k4Mrzg.d.mts → middleware-CjVyGyrG.d.mts} +3 -3
  82. package/dist/middleware-CjVyGyrG.d.mts.map +1 -0
  83. package/dist/nestjs/index.d.mts +5 -5
  84. package/dist/nestjs/index.d.mts.map +1 -1
  85. package/dist/nestjs/index.mjs +3 -3
  86. package/dist/nestjs/index.mjs.map +1 -1
  87. package/dist/next/client.d.mts +1 -1
  88. package/dist/next/index.d.mts +5 -5
  89. package/dist/next/index.d.mts.map +1 -1
  90. package/dist/next/index.mjs +3 -3
  91. package/dist/next/index.mjs.map +1 -1
  92. package/dist/next/instrumentation/create.d.mts +1 -1
  93. package/dist/next/instrumentation/create.mjs +3 -1
  94. package/dist/next/instrumentation/create.mjs.map +1 -1
  95. package/dist/next/instrumentation.d.mts +1 -1
  96. package/dist/next/stream.d.mts +1 -1
  97. package/dist/nitro/errorHandler.mjs +9 -4
  98. package/dist/nitro/errorHandler.mjs.map +1 -1
  99. package/dist/nitro/module.d.mts +2 -2
  100. package/dist/nitro/module.mjs +1 -1
  101. package/dist/nitro/plugin.mjs +1 -1
  102. package/dist/nitro/v3/errorHandler.d.mts +0 -10
  103. package/dist/nitro/v3/errorHandler.mjs +13 -3
  104. package/dist/nitro/v3/errorHandler.mjs.map +1 -1
  105. package/dist/nitro/v3/index.d.mts +2 -2
  106. package/dist/nitro/v3/module.d.mts +1 -1
  107. package/dist/nitro/v3/module.mjs +1 -1
  108. package/dist/nitro/v3/plugin.mjs +1 -1
  109. package/dist/nitro/v3/useLogger.d.mts +2 -2
  110. package/dist/nitro/v3/useLogger.d.mts.map +1 -1
  111. package/dist/nitro/v3/useLogger.mjs.map +1 -1
  112. package/dist/{nitro-_Hda8Deo.d.mts → nitro--E4op34w.d.mts} +2 -2
  113. package/dist/{nitro-_Hda8Deo.d.mts.map → nitro--E4op34w.d.mts.map} +1 -1
  114. package/dist/{nitro-ClRZLD1g.mjs → nitro-ClHmVj1H.mjs} +29 -2
  115. package/dist/nitro-ClHmVj1H.mjs.map +1 -0
  116. package/dist/{nodeResponse-CIEEbrNE.mjs → nodeResponse-DKrYWrxk.mjs} +1 -1
  117. package/dist/{nodeResponse-CIEEbrNE.mjs.map → nodeResponse-DKrYWrxk.mjs.map} +1 -1
  118. package/dist/nuxt/module.d.mts +1 -1
  119. package/dist/nuxt/module.mjs +2 -2
  120. package/dist/orpc/index.d.mts +4 -4
  121. package/dist/orpc/index.d.mts.map +1 -1
  122. package/dist/orpc/index.mjs +2 -2
  123. package/dist/orpc/index.mjs.map +1 -1
  124. package/dist/{package-CNV_CXs8.mjs → package-Bgs0VSDF.mjs} +2 -2
  125. package/dist/package-Bgs0VSDF.mjs.map +1 -0
  126. package/dist/{parseError-BeBXEd2V.d.mts → parseError-BwBg-iW4.d.mts} +2 -2
  127. package/dist/parseError-BwBg-iW4.d.mts.map +1 -0
  128. package/dist/react-router/index.d.mts +4 -4
  129. package/dist/react-router/index.d.mts.map +1 -1
  130. package/dist/react-router/index.mjs +2 -2
  131. package/dist/react-router/index.mjs.map +1 -1
  132. package/dist/register-disk-snippet-B_JyhodL.mjs +21 -0
  133. package/dist/register-disk-snippet-B_JyhodL.mjs.map +1 -0
  134. package/dist/runtime/client/log.d.mts +1 -1
  135. package/dist/runtime/server/routes/_evlog/ingest.post.mjs +1 -1
  136. package/dist/runtime/server/useLogger.d.mts +1 -1
  137. package/dist/runtime/server/useLogger.mjs.map +1 -1
  138. package/dist/runtime/utils/parseError.d.mts +2 -2
  139. package/dist/{storage-7X37OToT.mjs → storage-D4sBVffQ.mjs} +1 -1
  140. package/dist/storage-D4sBVffQ.mjs.map +1 -0
  141. package/dist/stream.d.mts +1 -1
  142. package/dist/stream.mjs +1 -1
  143. package/dist/sveltekit/index.d.mts +3 -4
  144. package/dist/sveltekit/index.d.mts.map +1 -1
  145. package/dist/sveltekit/index.mjs +5 -3
  146. package/dist/sveltekit/index.mjs.map +1 -1
  147. package/dist/toolkit.d.mts +7 -7
  148. package/dist/toolkit.d.mts.map +1 -1
  149. package/dist/toolkit.mjs +6 -6
  150. package/dist/types.d.mts +1 -1
  151. package/dist/{useLogger-Cfv8Ck8b.d.mts → useLogger-DiRWGD33.d.mts} +3 -3
  152. package/dist/useLogger-DiRWGD33.d.mts.map +1 -0
  153. package/dist/{utils-CJJG0ZYW.d.mts → utils-XPMPENUK.d.mts} +2 -2
  154. package/dist/{utils-CJJG0ZYW.d.mts.map → utils-XPMPENUK.d.mts.map} +1 -1
  155. package/dist/utils.d.mts +1 -1
  156. package/dist/vite/index.d.mts +1 -1
  157. package/dist/workers.d.mts +3 -3
  158. package/dist/workers.d.mts.map +1 -1
  159. package/dist/workers.mjs +1 -1
  160. package/dist/workers.mjs.map +1 -1
  161. package/package.json +9 -1
  162. package/dist/audit-BQt8yAHo.mjs.map +0 -1
  163. package/dist/audit-D7v6JHj0.d.mts.map +0 -1
  164. package/dist/fork-CgGlAaHa.mjs.map +0 -1
  165. package/dist/index-EvnrXvQM.d.mts.map +0 -1
  166. package/dist/index.mjs.map +0 -1
  167. package/dist/middleware-B_k4Mrzg.d.mts.map +0 -1
  168. package/dist/nitro-ClRZLD1g.mjs.map +0 -1
  169. package/dist/package-CNV_CXs8.mjs.map +0 -1
  170. package/dist/parseError-BeBXEd2V.d.mts.map +0 -1
  171. package/dist/storage-7X37OToT.mjs.map +0 -1
  172. package/dist/useLogger-Cfv8Ck8b.d.mts.map +0 -1
@@ -1,4 +1,4 @@
1
- import { B as DrainContext, ft as WideEvent } from "../audit-D7v6JHj0.mjs";
1
+ import { U as DrainContext, ht as WideEvent } from "../audit-CBfv3rl1.mjs";
2
2
  //#region src/adapters/axiom.d.ts
3
3
  interface BaseAxiomConfig {
4
4
  /** Axiom dataset name. */
@@ -1,5 +1,5 @@
1
- import { r as httpPost } from "../http-ChVS9GYc.mjs";
2
- import { i as formatPublicEnvKeys, n as defineHttpDrain, o as resolveAdapterConfig, r as applyDeprecatedAlias } from "../drain-fDb-eNwz.mjs";
1
+ import { r as httpPost } from "../http-DA3RWQrm.mjs";
2
+ import { i as formatPublicEnvKeys, n as defineHttpDrain, o as resolveAdapterConfig, r as applyDeprecatedAlias } from "../drain-6lV-g7JB.mjs";
3
3
  //#region src/adapters/axiom.ts
4
4
  const AXIOM_FIELDS = [
5
5
  {
@@ -1,4 +1,4 @@
1
- import { B as DrainContext, ft as WideEvent } from "../audit-D7v6JHj0.mjs";
1
+ import { U as DrainContext, ht as WideEvent } from "../audit-CBfv3rl1.mjs";
2
2
  //#region src/adapters/better-stack.d.ts
3
3
  interface BetterStackConfig {
4
4
  /** Better Stack API key (replaces deprecated `sourceToken`). */
@@ -1,5 +1,5 @@
1
- import { r as httpPost } from "../http-ChVS9GYc.mjs";
2
- import { i as formatPublicEnvKeys, n as defineHttpDrain, o as resolveAdapterConfig, r as applyDeprecatedAlias } from "../drain-fDb-eNwz.mjs";
1
+ import { r as httpPost } from "../http-DA3RWQrm.mjs";
2
+ import { i as formatPublicEnvKeys, n as defineHttpDrain, o as resolveAdapterConfig, r as applyDeprecatedAlias } from "../drain-6lV-g7JB.mjs";
3
3
  //#region src/adapters/better-stack.ts
4
4
  const BETTER_STACK_FIELDS = [
5
5
  {
@@ -1,4 +1,4 @@
1
- import { B as DrainContext, ft as WideEvent } from "../audit-D7v6JHj0.mjs";
1
+ import { U as DrainContext, ht as WideEvent } from "../audit-CBfv3rl1.mjs";
2
2
  //#region src/adapters/datadog.d.ts
3
3
  interface DatadogConfig {
4
4
  /** Datadog API key with Logs intake permission */
@@ -1,5 +1,5 @@
1
- import { r as httpPost } from "../http-ChVS9GYc.mjs";
2
- import { i as formatPublicEnvKeys, n as defineHttpDrain, o as resolveAdapterConfig } from "../drain-fDb-eNwz.mjs";
1
+ import { r as httpPost } from "../http-DA3RWQrm.mjs";
2
+ import { i as formatPublicEnvKeys, n as defineHttpDrain, o as resolveAdapterConfig } from "../drain-6lV-g7JB.mjs";
3
3
  //#region src/adapters/datadog.ts
4
4
  const DATADOG_FIELDS = [
5
5
  {
@@ -1,4 +1,4 @@
1
- import { B as DrainContext, X as LogLevel, ft as WideEvent } from "../audit-D7v6JHj0.mjs";
1
+ import { $ as LogLevel, U as DrainContext, ht as WideEvent } from "../audit-CBfv3rl1.mjs";
2
2
  //#region src/adapters/fs.d.ts
3
3
  interface FsConfig {
4
4
  /** Directory for log files. Default: `.evlog/logs` */
@@ -1,4 +1,4 @@
1
- import { o as resolveAdapterConfig, t as defineDrain } from "../drain-fDb-eNwz.mjs";
1
+ import { o as resolveAdapterConfig, t as defineDrain } from "../drain-6lV-g7JB.mjs";
2
2
  import { join, sep } from "node:path";
3
3
  import { createReadStream } from "node:fs";
4
4
  import { appendFile, mkdir, open, readdir, stat, unlink, writeFile } from "node:fs/promises";
@@ -1,4 +1,4 @@
1
- import { B as DrainContext, ft as WideEvent } from "../audit-D7v6JHj0.mjs";
1
+ import { U as DrainContext, ht as WideEvent } from "../audit-CBfv3rl1.mjs";
2
2
  import { OTLPConfig } from "./otlp.mjs";
3
3
 
4
4
  //#region src/adapters/hyperdx.d.ts
@@ -1,4 +1,4 @@
1
- import { i as formatPublicEnvKeys, o as resolveAdapterConfig, t as defineDrain } from "../drain-fDb-eNwz.mjs";
1
+ import { i as formatPublicEnvKeys, o as resolveAdapterConfig, t as defineDrain } from "../drain-6lV-g7JB.mjs";
2
2
  import { sendBatchToOTLP } from "./otlp.mjs";
3
3
  //#region src/adapters/hyperdx.ts
4
4
  /**
@@ -1,4 +1,4 @@
1
- import { B as DrainContext, X as LogLevel, ft as WideEvent } from "../audit-D7v6JHj0.mjs";
1
+ import { $ as LogLevel, U as DrainContext, ht as WideEvent } from "../audit-CBfv3rl1.mjs";
2
2
  //#region src/adapters/memory.d.ts
3
3
  /**
4
4
  * Configuration for the in-memory drain.
@@ -1,4 +1,4 @@
1
- import { o as resolveAdapterConfig, t as defineDrain } from "../drain-fDb-eNwz.mjs";
1
+ import { o as resolveAdapterConfig, t as defineDrain } from "../drain-6lV-g7JB.mjs";
2
2
  //#region src/adapters/memory.ts
3
3
  const DEFAULT_STORE = "default";
4
4
  const DEFAULT_MAX_EVENTS = 1e3;
@@ -1,4 +1,4 @@
1
- import { B as DrainContext, ft as WideEvent } from "../audit-D7v6JHj0.mjs";
1
+ import { U as DrainContext, ht as WideEvent } from "../audit-CBfv3rl1.mjs";
2
2
  //#region src/adapters/otlp.d.ts
3
3
  interface OTLPConfig {
4
4
  /** OTLP HTTP endpoint (e.g., http://localhost:4318) */
@@ -1,5 +1,5 @@
1
- import { r as httpPost } from "../http-ChVS9GYc.mjs";
2
- import { i as formatPublicEnvKeys, n as defineHttpDrain, o as resolveAdapterConfig } from "../drain-fDb-eNwz.mjs";
1
+ import { r as httpPost } from "../http-DA3RWQrm.mjs";
2
+ import { i as formatPublicEnvKeys, n as defineHttpDrain, o as resolveAdapterConfig } from "../drain-6lV-g7JB.mjs";
3
3
  import { n as toOtlpAttributeValue } from "../event-qwAv-7AZ.mjs";
4
4
  import { n as OTEL_SEVERITY_TEXT, t as OTEL_SEVERITY_NUMBER } from "../severity-CwXUSHt3.mjs";
5
5
  //#region src/adapters/otlp.ts
@@ -1,4 +1,4 @@
1
- import { B as DrainContext, ft as WideEvent } from "../audit-D7v6JHj0.mjs";
1
+ import { U as DrainContext, ht as WideEvent } from "../audit-CBfv3rl1.mjs";
2
2
  //#region src/adapters/posthog.d.ts
3
3
  /**
4
4
  * Mode for {@link createPostHogDrain}.
@@ -1,5 +1,5 @@
1
- import { r as httpPost } from "../http-ChVS9GYc.mjs";
2
- import { i as formatPublicEnvKeys, n as defineHttpDrain, o as resolveAdapterConfig, t as defineDrain } from "../drain-fDb-eNwz.mjs";
1
+ import { r as httpPost } from "../http-DA3RWQrm.mjs";
2
+ import { i as formatPublicEnvKeys, n as defineHttpDrain, o as resolveAdapterConfig, t as defineDrain } from "../drain-6lV-g7JB.mjs";
3
3
  import { sendBatchToOTLP } from "./otlp.mjs";
4
4
  //#region src/adapters/posthog.ts
5
5
  const POSTHOG_FIELDS = [
@@ -1,4 +1,4 @@
1
- import { B as DrainContext, ft as WideEvent } from "../audit-D7v6JHj0.mjs";
1
+ import { U as DrainContext, ht as WideEvent } from "../audit-CBfv3rl1.mjs";
2
2
  //#region src/adapters/sentry.d.ts
3
3
  interface SentryConfig {
4
4
  /** Sentry DSN */
@@ -1,5 +1,5 @@
1
- import { r as httpPost } from "../http-ChVS9GYc.mjs";
2
- import { i as formatPublicEnvKeys, n as defineHttpDrain, o as resolveAdapterConfig } from "../drain-fDb-eNwz.mjs";
1
+ import { r as httpPost } from "../http-DA3RWQrm.mjs";
2
+ import { i as formatPublicEnvKeys, n as defineHttpDrain, o as resolveAdapterConfig } from "../drain-6lV-g7JB.mjs";
3
3
  import { t as OTEL_SEVERITY_NUMBER } from "../severity-CwXUSHt3.mjs";
4
4
  //#region src/adapters/sentry.ts
5
5
  const SENTRY_FIELDS = [
@@ -1,4 +1,4 @@
1
- import { rt as RequestLogger } from "../audit-D7v6JHj0.mjs";
1
+ import { ot as RequestLogger } from "../audit-CBfv3rl1.mjs";
2
2
  import { GatewayModelId, TelemetryIntegration } from "ai";
3
3
  import { LanguageModelV3, LanguageModelV3Middleware } from "@ai-sdk/provider";
4
4
 
@@ -830,6 +830,9 @@ interface RequestLogger<T extends object = Record<string, unknown>> {
830
830
  * Available on every logger returned by `createLogger()` / `createRequestLogger()`
831
831
  * and on framework loggers exposed via `useLogger()` / `c.get('log')` etc.
832
832
  *
833
+ * Optional on the base {@link RequestLogger} interface for structural typing;
834
+ * always present (required) on {@link import('./audit').AuditableLogger}.
835
+ *
833
836
  * @example
834
837
  * ```ts
835
838
  * log.audit({
@@ -989,7 +992,7 @@ interface RequestLoggerOptions {
989
992
  * H3 event context with evlog logger attached
990
993
  */
991
994
  interface H3EventContext {
992
- log?: RequestLogger;
995
+ log?: AuditableLogger;
993
996
  requestId?: string;
994
997
  status?: number;
995
998
  /** Internal: start time for duration calculation in tail sampling */
@@ -1043,12 +1046,7 @@ interface ParsedError {
1043
1046
  raw: unknown;
1044
1047
  }
1045
1048
  //#endregion
1046
- //#region src/audit.d.ts
1047
- /**
1048
- * Current version of the audit envelope. Bumped when `AuditFields` evolves
1049
- * in a backward-incompatible way so downstream pipelines can branch on it.
1050
- */
1051
- declare const AUDIT_SCHEMA_VERSION = 1;
1049
+ //#region src/audit-action.d.ts
1052
1050
  /**
1053
1051
  * Input accepted by `log.audit()`, `audit()`, and `withAudit()`.
1054
1052
  *
@@ -1067,6 +1065,57 @@ interface AuditInput {
1067
1065
  correlationId?: string;
1068
1066
  version?: number;
1069
1067
  }
1068
+ /** Options for {@link defineAuditAction}. Same shape as {@link AuditActionDefinition}. */
1069
+ type DefineAuditActionOptions = AuditActionDefinition;
1070
+ /**
1071
+ * Define a typed audit action with optional fixed target type and catalog metadata.
1072
+ *
1073
+ * Returns a curried helper that fills in the action name (and target shape
1074
+ * if provided) so call sites stay terse and the action set is discoverable
1075
+ * in one place. Metadata (`description`, `severity`, `requiresChanges`, …)
1076
+ * is exposed on the factory for introspection, docs, and review tooling.
1077
+ *
1078
+ * @example
1079
+ * ```ts
1080
+ * const refund = defineAuditAction('invoice.refund', {
1081
+ * target: 'invoice',
1082
+ * severity: 'high',
1083
+ * requiresChanges: true,
1084
+ * redactPaths: ['cardNumber'],
1085
+ * })
1086
+ *
1087
+ * log.audit(refund({
1088
+ * actor: { type: 'user', id: user.id },
1089
+ * target: { id: 'inv_889' }, // type inferred as 'invoice'
1090
+ * outcome: 'success',
1091
+ * }))
1092
+ * ```
1093
+ */
1094
+ declare function defineAuditAction<const TAction extends string, const TOptions extends DefineAuditActionOptions = DefineAuditActionOptions>(action: TAction, options?: TOptions): DefinedAuditAction<TAction, TOptions>;
1095
+ /**
1096
+ * Return type of {@link defineAuditAction}. Accepts a partial input (no
1097
+ * `action`, target type pre-filled when provided).
1098
+ */
1099
+ type DefinedAuditAction<TAction extends string = string, TOptions extends DefineAuditActionOptions = DefineAuditActionOptions> = ((input: TOptions['target'] extends string ? Omit<AuditInput, 'action' | 'target'> & {
1100
+ target?: Omit<AuditTarget, 'type'> & {
1101
+ type?: TOptions['target'];
1102
+ };
1103
+ } : Omit<AuditInput, 'action'>) => AuditInput) & {
1104
+ readonly action: TAction;
1105
+ readonly target: TOptions['target'];
1106
+ readonly description: TOptions['description'];
1107
+ readonly severity: TOptions['severity'];
1108
+ readonly requiresChanges: TOptions['requiresChanges'];
1109
+ readonly requiresReason: TOptions['requiresReason'];
1110
+ readonly redactPaths: TOptions['redactPaths'];
1111
+ };
1112
+ //#endregion
1113
+ //#region src/audit.d.ts
1114
+ /**
1115
+ * Current version of the audit envelope. Bumped when `AuditFields` evolves
1116
+ * in a backward-incompatible way so downstream pipelines can branch on it.
1117
+ */
1118
+ declare const AUDIT_SCHEMA_VERSION = 1;
1070
1119
  /**
1071
1120
  * Build a normalised {@link AuditFields} from caller input. Defaults:
1072
1121
  * - `outcome` → `'success'`
@@ -1213,50 +1262,6 @@ interface AuditDiffOptions {
1213
1262
  /** Include the full redacted `after` snapshot alongside the patch. */
1214
1263
  includeAfter?: boolean;
1215
1264
  }
1216
- /** Options for {@link defineAuditAction}. Same shape as {@link AuditCatalogEntry}. */
1217
- type DefineAuditActionOptions = AuditActionDefinition;
1218
- /**
1219
- * Define a typed audit action with optional fixed target type and catalog metadata.
1220
- *
1221
- * Returns a curried helper that fills in the action name (and target shape
1222
- * if provided) so call sites stay terse and the action set is discoverable
1223
- * in one place. Metadata (`description`, `severity`, `requiresChanges`, …)
1224
- * is exposed on the factory for introspection, docs, and review tooling.
1225
- *
1226
- * @example
1227
- * ```ts
1228
- * const refund = defineAuditAction('invoice.refund', {
1229
- * target: 'invoice',
1230
- * severity: 'high',
1231
- * requiresChanges: true,
1232
- * redactPaths: ['cardNumber'],
1233
- * })
1234
- *
1235
- * log.audit(refund({
1236
- * actor: { type: 'user', id: user.id },
1237
- * target: { id: 'inv_889' }, // type inferred as 'invoice'
1238
- * outcome: 'success',
1239
- * }))
1240
- * ```
1241
- */
1242
- declare function defineAuditAction<const TAction extends string, const TOptions extends DefineAuditActionOptions = DefineAuditActionOptions>(action: TAction, options?: TOptions): DefinedAuditAction<TAction, TOptions>;
1243
- /**
1244
- * Return type of {@link defineAuditAction}. Accepts a partial input (no
1245
- * `action`, target type pre-filled when provided).
1246
- */
1247
- type DefinedAuditAction<TAction extends string = string, TOptions extends DefineAuditActionOptions = DefineAuditActionOptions> = ((input: TOptions['target'] extends string ? Omit<AuditInput, 'action' | 'target'> & {
1248
- target?: Omit<AuditTarget, 'type'> & {
1249
- type?: TOptions['target'];
1250
- };
1251
- } : Omit<AuditInput, 'action'>) => AuditInput) & {
1252
- readonly action: TAction;
1253
- readonly target: TOptions['target'];
1254
- readonly description: TOptions['description'];
1255
- readonly severity: TOptions['severity'];
1256
- readonly requiresChanges: TOptions['requiresChanges'];
1257
- readonly requiresReason: TOptions['requiresReason'];
1258
- readonly redactPaths: TOptions['redactPaths'];
1259
- };
1260
1265
  /**
1261
1266
  * Test helper that captures every audit event emitted while it is active.
1262
1267
  *
@@ -1294,6 +1299,18 @@ interface AuditMatcher {
1294
1299
  actor?: Partial<AuditActor>;
1295
1300
  target?: Partial<AuditTarget>;
1296
1301
  }
1302
+ /**
1303
+ * @internal Hook used by `RequestLogger.emit()` to detect audit-driven
1304
+ * force-keep flags on the accumulated context. Returns whether the event was
1305
+ * marked by `log.audit()` and clears the flag.
1306
+ */
1307
+ declare function consumeAuditForceKeep(context: Record<string, unknown>): boolean;
1308
+ /**
1309
+ * @internal Decorate the audit field on an event right before drain — fills
1310
+ * in the deterministic idempotency key. Called by the logger pipeline so
1311
+ * it works for both `log.audit()` and direct `log.set({ audit })` paths.
1312
+ */
1313
+ declare function finalizeAudit(event: WideEvent): void;
1297
1314
  /** Shape of the optional better-auth bridge for the audit enricher. */
1298
1315
  interface AuditEnricherBetterAuthBridge {
1299
1316
  /** Read the current authenticated session for this request, if any. */
@@ -1428,5 +1445,5 @@ declare function signed(drain: DrainFn, options: SignedOptions): DrainFn;
1428
1445
  */
1429
1446
  declare const auditRedactPreset: RedactConfig;
1430
1447
  //#endregion
1431
- export { RedactConfig as $, AuditActionDefinition as A, DrainContext as B, buildAuditFields as C, enricherPlugin as Ct, withAudit as D, signed as E, AuditPatchOp as F, FieldContext as G, EnvironmentContext as H, AuditSeverity as I, InternalFields as J, H3EventContext as K, AuditTarget as L, AuditChanges as M, AuditFields as N, withAuditMethods as O, AuditLoggerMethod as P, ParsedError as Q, BaseWideEvent as R, auditRedactPreset as S, drainPlugin as St, mockAudit as T, ErrorCode as U, EnrichContext as V, ErrorOptions as W, LogLevel as X, Log as Y, LoggerConfig as Z, WithAuditOptions as _, PluginSetupContext as _t, AuditInput as a, RouteConfig as at, auditEnricher as b, createPluginRunner as bt, AuditOnlyOptions as c, ServerEvent as ct, DefinedAuditAction as d, TransportConfig as dt, RegisteredAuditCatalogs as et, DrainFn as f, WideEvent as ft, WithAuditContext as g, PluginRunner as gt, SignedOptions as h, EvlogPlugin as ht, AuditEnricherOptions as i, RequestLoggerOptions as it, AuditActor as j, AuditAction as k, AuditableLogger as l, TailSamplingCondition as lt, SignedChainState as m, ClientLogContext as mt, AuditDeniedError as n, RequestLogEntry as nt, AuditMatcher as o, SamplingConfig as ot, MockAudit as p, DevTerminalInput as pt, IngestPayload as q, AuditDiffOptions as r, RequestLogger as rt, AuditMethod as s, SamplingRates as st, AUDIT_SCHEMA_VERSION as t, RegisteredErrorCatalogs as tt, DefineAuditActionOptions as u, TailSamplingContext as ut, audit as v, RequestFinishContext as vt, defineAuditAction as w, getEmptyPluginRunner as wt, auditOnly as x, definePlugin as xt, auditDiff as y, RequestLifecycleContext as yt, DeepPartial as z };
1432
- //# sourceMappingURL=audit-D7v6JHj0.d.mts.map
1448
+ export { LogLevel as $, DefinedAuditAction as A, AuditTarget as B, finalizeAudit as C, createPluginRunner as Ct, withAuditMethods as D, getEmptyPluginRunner as Dt, withAudit as E, enricherPlugin as Et, AuditChanges as F, EnvironmentContext as G, DeepPartial as H, AuditFields as I, FieldContext as J, ErrorCode as K, AuditLoggerMethod as L, AuditAction as M, AuditActionDefinition as N, AuditInput as O, AuditActor as P, Log as Q, AuditPatchOp as R, consumeAuditForceKeep as S, RequestLifecycleContext as St, signed as T, drainPlugin as Tt, DrainContext as U, BaseWideEvent as V, EnrichContext as W, IngestPayload as X, H3EventContext as Y, InternalFields as Z, auditDiff as _, ClientLogContext as _t, AuditEnricherOptions as a, RequestLogEntry as at, auditRedactPreset as b, PluginSetupContext as bt, AuditOnlyOptions as c, RouteConfig as ct, MockAudit as d, ServerEvent as dt, LoggerConfig as et, SignedChainState as f, TailSamplingCondition as ft, audit as g, DevTerminalInput as gt, WithAuditOptions as h, WideEvent as ht, AuditEnricherBetterAuthBridge as i, RegisteredErrorCatalogs as it, defineAuditAction as j, DefineAuditActionOptions as k, AuditableLogger as l, SamplingConfig as lt, WithAuditContext as m, TransportConfig as mt, AuditDeniedError as n, RedactConfig as nt, AuditMatcher as o, RequestLogger as ot, SignedOptions as p, TailSamplingContext as pt, ErrorOptions as q, AuditDiffOptions as r, RegisteredAuditCatalogs as rt, AuditMethod as s, RequestLoggerOptions as st, AUDIT_SCHEMA_VERSION as t, ParsedError as tt, DrainFn as u, SamplingRates as ut, auditEnricher as v, EvlogPlugin as vt, mockAudit as w, definePlugin as wt, buildAuditFields as x, RequestFinishContext as xt, auditOnly as y, PluginRunner as yt, AuditSeverity as z };
1449
+ //# sourceMappingURL=audit-CBfv3rl1.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audit-CBfv3rl1.d.mts","names":[],"sources":["../src/shared/plugin.ts","../src/shared/dev-terminal.ts","../src/types.ts","../src/audit-action.ts","../src/audit.ts"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { colors, cssColors, detectEnvironment, escapeFormatString, formatDuration, getConsoleMethod, getCssLevelColor, getLevelColor, globToRegExp, isBrowser, isDev, isLevelEnabled, matchesPattern } from "./utils.mjs";
2
- import { n as buildErrorEntries, o as registerPrettyErrorSnippetReader, r as compactStackForStorage } from "./pretty-error-THg0U0w9.mjs";
2
+ import { n as buildErrorEntries, r as compactStackForStorage } from "./pretty-error-THg0U0w9.mjs";
3
3
  import { t as resolveDevTerminal } from "./dev-terminal-D4UaEm17.mjs";
4
4
  import { EvlogError } from "./error.mjs";
5
5
  import { r as getHeader$1 } from "./headers-VtmnWcfn.mjs";
@@ -550,11 +550,6 @@ function initLogger(config = {}) {
550
550
  globalMinLevel = config.minLevel ?? "debug";
551
551
  globalPluginRunner = config.plugins?.length ? createPluginRunner(config.plugins) : getEmptyPluginRunner();
552
552
  if (globalPluginRunner.plugins.length > 0) globalPluginRunner.runSetup({ env: { ...globalEnv } });
553
- if (!isBrowser() && typeof process !== "undefined" && process.versions?.node) import("./pretty-error-snippet.node-itfCajBM.mjs").then((n) => n.t).then((mod) => {
554
- registerPrettyErrorSnippetReader(mod.readCodeSnippetFromDisk);
555
- }).catch(() => {
556
- registerPrettyErrorSnippetReader(null);
557
- });
558
553
  const hasAnyDrain = !!globalDrain || globalPluginRunner.hasDrain;
559
554
  if (globalSilent && !hasAnyDrain && !config._suppressDrainWarning) console.warn("[evlog] silent mode is enabled but no drain is configured. Events will be built and sampled but not output anywhere. Set a drain via initLogger({ drain }) or a framework hook (evlog:drain).");
560
555
  }
@@ -1542,75 +1537,6 @@ function auditDiff(before, after, options = {}) {
1542
1537
  return result;
1543
1538
  }
1544
1539
  /**
1545
- * Define a typed audit action with optional fixed target type and catalog metadata.
1546
- *
1547
- * Returns a curried helper that fills in the action name (and target shape
1548
- * if provided) so call sites stay terse and the action set is discoverable
1549
- * in one place. Metadata (`description`, `severity`, `requiresChanges`, …)
1550
- * is exposed on the factory for introspection, docs, and review tooling.
1551
- *
1552
- * @example
1553
- * ```ts
1554
- * const refund = defineAuditAction('invoice.refund', {
1555
- * target: 'invoice',
1556
- * severity: 'high',
1557
- * requiresChanges: true,
1558
- * redactPaths: ['cardNumber'],
1559
- * })
1560
- *
1561
- * log.audit(refund({
1562
- * actor: { type: 'user', id: user.id },
1563
- * target: { id: 'inv_889' }, // type inferred as 'invoice'
1564
- * outcome: 'success',
1565
- * }))
1566
- * ```
1567
- */
1568
- function defineAuditAction(action, options) {
1569
- const targetType = options?.target;
1570
- const factory = ((input) => {
1571
- const merged = {
1572
- ...input,
1573
- action
1574
- };
1575
- if (targetType && input.target && !input.target.type) merged.target = {
1576
- ...input.target,
1577
- type: targetType
1578
- };
1579
- return merged;
1580
- });
1581
- Object.defineProperties(factory, {
1582
- action: {
1583
- value: action,
1584
- enumerable: true
1585
- },
1586
- target: {
1587
- value: options?.target,
1588
- enumerable: true
1589
- },
1590
- description: {
1591
- value: options?.description,
1592
- enumerable: true
1593
- },
1594
- severity: {
1595
- value: options?.severity,
1596
- enumerable: true
1597
- },
1598
- requiresChanges: {
1599
- value: options?.requiresChanges,
1600
- enumerable: true
1601
- },
1602
- requiresReason: {
1603
- value: options?.requiresReason,
1604
- enumerable: true
1605
- },
1606
- redactPaths: {
1607
- value: options?.redactPaths,
1608
- enumerable: true
1609
- }
1610
- });
1611
- return factory;
1612
- }
1613
- /**
1614
1540
  * Test helper that captures every audit event emitted while it is active.
1615
1541
  *
1616
1542
  * Returns `{ events, restore, toIncludeAuditOf, assertAudit }`:
@@ -1862,17 +1788,14 @@ function signed(drain, options) {
1862
1788
  }
1863
1789
  /**
1864
1790
  * @internal Resolve the Web Crypto SubtleCrypto interface. Available natively
1865
- * in browsers, Node 19+, Bun, Deno, and Cloudflare Workers. Falls back to
1866
- * Node's `webcrypto` for Node 18 (where `globalThis.crypto` is gated behind
1867
- * a flag). The dynamic import keeps `node:crypto` out of browser bundles.
1791
+ * in browsers, Node 19+, Bun, Deno, Cloudflare Workers, and Convex. Requires
1792
+ * `globalThis.crypto.subtle` no `node:crypto` fallback so non-Node bundlers
1793
+ * can import the main entrypoint without resolving Node built-ins (#387).
1868
1794
  */
1869
- async function getSubtle() {
1870
- const c = globalThis.crypto;
1871
- if (c?.subtle) return c.subtle;
1872
- return (await import(
1873
- /* @vite-ignore */
1874
- "node:crypto"
1875
- )).webcrypto.subtle;
1795
+ function getSubtle() {
1796
+ const subtle = globalThis.crypto?.subtle;
1797
+ if (subtle) return subtle;
1798
+ throw new Error("[evlog/audit] Web Crypto is not available. signed() requires globalThis.crypto.subtle (Node 19+, modern browsers, Cloudflare Workers, Convex, Bun, Deno).");
1876
1799
  }
1877
1800
  function normalizeAlgo(algorithm) {
1878
1801
  switch (algorithm.toLowerCase()) {
@@ -1893,10 +1816,10 @@ function bufToHex(buf) {
1893
1816
  return out;
1894
1817
  }
1895
1818
  async function digestHex(algorithm, data) {
1896
- return bufToHex(await (await getSubtle()).digest(normalizeAlgo(algorithm), new TextEncoder().encode(data)));
1819
+ return bufToHex(await getSubtle().digest(normalizeAlgo(algorithm), new TextEncoder().encode(data)));
1897
1820
  }
1898
1821
  async function hmacHex(algorithm, secret, data) {
1899
- const subtle = await getSubtle();
1822
+ const subtle = getSubtle();
1900
1823
  const hash = normalizeAlgo(algorithm);
1901
1824
  const key = await subtle.importKey("raw", new TextEncoder().encode(secret), {
1902
1825
  name: "HMAC",
@@ -1946,6 +1869,6 @@ const auditRedactPreset = { paths: [
1946
1869
  "set-cookie"
1947
1870
  ] };
1948
1871
  //#endregion
1949
- export { enricherPlugin as A, lockLogger as C, createPluginRunner as D, shouldKeep as E, resolveRedactConfig as F, isGloballyRedacted as M, normalizeRedactConfig as N, definePlugin as O, redactEvent as P, isLoggerLocked as S, mergeInto as T, getEnvironment as _, auditEnricher as a, initLogger as b, buildAuditFields as c, signed as d, withAudit as f, createRequestLogger as g, createLogger as h, auditDiff as i, getEmptyPluginRunner as j, drainPlugin as k, defineAuditAction as l, _log as m, AuditDeniedError as n, auditOnly as o, withAuditMethods as p, audit as r, auditRedactPreset as s, AUDIT_SCHEMA_VERSION as t, mockAudit as u, getGlobalDrain as v, markWideEventDrainStarted as w, isEnabled as x, getGlobalPluginRunner as y };
1872
+ export { drainPlugin as A, isLoggerLocked as C, shouldKeep as D, mergeInto as E, redactEvent as F, resolveRedactConfig as I, getEmptyPluginRunner as M, isGloballyRedacted as N, createPluginRunner as O, normalizeRedactConfig as P, isEnabled as S, markWideEventDrainStarted as T, createRequestLogger as _, auditEnricher as a, getGlobalPluginRunner as b, buildAuditFields as c, mockAudit as d, signed as f, createLogger as g, _log as h, auditDiff as i, enricherPlugin as j, definePlugin as k, consumeAuditForceKeep as l, withAuditMethods as m, AuditDeniedError as n, auditOnly as o, withAudit as p, audit as r, auditRedactPreset as s, AUDIT_SCHEMA_VERSION as t, finalizeAudit as u, getEnvironment as v, lockLogger as w, initLogger as x, getGlobalDrain as y };
1950
1873
 
1951
- //# sourceMappingURL=audit-BQt8yAHo.mjs.map
1874
+ //# sourceMappingURL=audit-CL0q7GJU.mjs.map