evlog 2.7.0 → 2.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (129) hide show
  1. package/README.md +54 -0
  2. package/dist/{_drain-FZVTbHn9.mjs → _drain-C9Nr-6Wc.mjs} +1 -1
  3. package/dist/{_drain-FZVTbHn9.mjs.map → _drain-C9Nr-6Wc.mjs.map} +1 -1
  4. package/dist/_http-C2UoHWgm.mjs +82 -0
  5. package/dist/_http-C2UoHWgm.mjs.map +1 -0
  6. package/dist/{_severity-fhhv2Nq0.mjs → _severity-BLiOKoxh.mjs} +1 -1
  7. package/dist/{_severity-fhhv2Nq0.mjs.map → _severity-BLiOKoxh.mjs.map} +1 -1
  8. package/dist/adapters/axiom.d.mts +3 -1
  9. package/dist/adapters/axiom.d.mts.map +1 -1
  10. package/dist/adapters/axiom.mjs +5 -3
  11. package/dist/adapters/axiom.mjs.map +1 -1
  12. package/dist/adapters/better-stack.d.mts +3 -1
  13. package/dist/adapters/better-stack.d.mts.map +1 -1
  14. package/dist/adapters/better-stack.mjs +5 -3
  15. package/dist/adapters/better-stack.mjs.map +1 -1
  16. package/dist/adapters/fs.d.mts +1 -1
  17. package/dist/adapters/fs.mjs +1 -1
  18. package/dist/adapters/otlp.d.mts +3 -1
  19. package/dist/adapters/otlp.d.mts.map +1 -1
  20. package/dist/adapters/otlp.mjs +6 -4
  21. package/dist/adapters/otlp.mjs.map +1 -1
  22. package/dist/adapters/posthog.d.mts +3 -1
  23. package/dist/adapters/posthog.d.mts.map +1 -1
  24. package/dist/adapters/posthog.mjs +7 -4
  25. package/dist/adapters/posthog.mjs.map +1 -1
  26. package/dist/adapters/sentry.d.mts +3 -1
  27. package/dist/adapters/sentry.d.mts.map +1 -1
  28. package/dist/adapters/sentry.mjs +6 -4
  29. package/dist/adapters/sentry.mjs.map +1 -1
  30. package/dist/ai/index.d.mts +165 -0
  31. package/dist/ai/index.d.mts.map +1 -0
  32. package/dist/ai/index.mjs +340 -0
  33. package/dist/ai/index.mjs.map +1 -0
  34. package/dist/browser.d.mts +1 -1
  35. package/dist/client.d.mts +2 -0
  36. package/dist/client.mjs +2 -0
  37. package/dist/{dist-BsWcv7B8.mjs → dist-BFn8qsRC.mjs} +1 -1
  38. package/dist/{dist-BsWcv7B8.mjs.map → dist-BFn8qsRC.mjs.map} +1 -1
  39. package/dist/elysia/index.d.mts +2 -2
  40. package/dist/elysia/index.d.mts.map +1 -1
  41. package/dist/elysia/index.mjs +7 -7
  42. package/dist/elysia/index.mjs.map +1 -1
  43. package/dist/enrichers.d.mts +1 -1
  44. package/dist/{error-BuPbEDGO.d.mts → error-BjaGNgoo.d.mts} +2 -2
  45. package/dist/{error-BuPbEDGO.d.mts.map → error-BjaGNgoo.d.mts.map} +1 -1
  46. package/dist/error.d.mts +1 -1
  47. package/dist/{errors-nScQVwHW.d.mts → errors-BBJmxg3d.d.mts} +2 -2
  48. package/dist/{errors-nScQVwHW.d.mts.map → errors-BBJmxg3d.d.mts.map} +1 -1
  49. package/dist/express/index.d.mts +2 -2
  50. package/dist/express/index.mjs +2 -2
  51. package/dist/fastify/index.d.mts +2 -2
  52. package/dist/fastify/index.mjs +2 -2
  53. package/dist/{headers-BSgpnR0c.mjs → headers-DmzJ3sQ-.mjs} +2 -2
  54. package/dist/{headers-BSgpnR0c.mjs.map → headers-DmzJ3sQ-.mjs.map} +1 -1
  55. package/dist/hono/index.d.mts +2 -2
  56. package/dist/hono/index.mjs +1 -1
  57. package/dist/index.d.mts +5 -5
  58. package/dist/{logger-BH1gOdNP.d.mts → logger-3ZE3g6GW.d.mts} +2 -2
  59. package/dist/{logger-BH1gOdNP.d.mts.map → logger-3ZE3g6GW.d.mts.map} +1 -1
  60. package/dist/logger.d.mts +1 -1
  61. package/dist/logger.mjs +89 -99
  62. package/dist/logger.mjs.map +1 -1
  63. package/dist/{middleware-CDLTVOBs.d.mts → middleware-B9uwQ5B4.d.mts} +2 -2
  64. package/dist/{middleware-CDLTVOBs.d.mts.map → middleware-B9uwQ5B4.d.mts.map} +1 -1
  65. package/dist/nestjs/index.d.mts +2 -2
  66. package/dist/nestjs/index.mjs +2 -2
  67. package/dist/next/client.d.mts +1 -1
  68. package/dist/next/index.d.mts +4 -4
  69. package/dist/next/index.mjs +1 -1
  70. package/dist/nitro/errorHandler.mjs +1 -1
  71. package/dist/nitro/module.d.mts +2 -2
  72. package/dist/nitro/plugin.mjs +4 -3
  73. package/dist/nitro/plugin.mjs.map +1 -1
  74. package/dist/nitro/v3/errorHandler.mjs +2 -2
  75. package/dist/nitro/v3/middleware.d.mts +3 -1
  76. package/dist/nitro/v3/middleware.d.mts.map +1 -1
  77. package/dist/nitro/v3/middleware.mjs +2 -1
  78. package/dist/nitro/v3/middleware.mjs.map +1 -1
  79. package/dist/nitro/v3/module.d.mts +1 -1
  80. package/dist/nitro/v3/plugin.mjs +7 -6
  81. package/dist/nitro/v3/plugin.mjs.map +1 -1
  82. package/dist/nitro/v3/useLogger.d.mts +1 -1
  83. package/dist/{nitro-CaIIZfdG.d.mts → nitro-BbTINVdZ.d.mts} +2 -2
  84. package/dist/{nitro-CaIIZfdG.d.mts.map → nitro-BbTINVdZ.d.mts.map} +1 -1
  85. package/dist/{nitro-D1pPm37T.mjs → nitro-OmT_M4Pb.mjs} +1 -1
  86. package/dist/{nitro-D1pPm37T.mjs.map → nitro-OmT_M4Pb.mjs.map} +1 -1
  87. package/dist/nuxt/module.d.mts +13 -1
  88. package/dist/nuxt/module.d.mts.map +1 -1
  89. package/dist/nuxt/module.mjs +7 -2
  90. package/dist/nuxt/module.mjs.map +1 -1
  91. package/dist/{parseError-DYrhDD1r.d.mts → parseError-DO1qtmGL.d.mts} +2 -2
  92. package/dist/parseError-DO1qtmGL.d.mts.map +1 -0
  93. package/dist/react-router/index.d.mts +47 -0
  94. package/dist/react-router/index.d.mts.map +1 -0
  95. package/dist/react-router/index.mjs +59 -0
  96. package/dist/react-router/index.mjs.map +1 -0
  97. package/dist/{routes-CE3_c-iZ.mjs → routes-CGPmbzCZ.mjs} +1 -1
  98. package/dist/{routes-CE3_c-iZ.mjs.map → routes-CGPmbzCZ.mjs.map} +1 -1
  99. package/dist/runtime/client/log.d.mts +1 -1
  100. package/dist/runtime/server/useLogger.d.mts +1 -1
  101. package/dist/runtime/utils/parseError.d.mts +2 -2
  102. package/dist/runtime/utils/parseError.mjs +2 -1
  103. package/dist/runtime/utils/parseError.mjs.map +1 -1
  104. package/dist/source-location-DRvDDqfq.mjs +1165 -0
  105. package/dist/source-location-DRvDDqfq.mjs.map +1 -0
  106. package/dist/{storage-DHU1gGqV.mjs → storage-DsueXspk.mjs} +1 -1
  107. package/dist/{storage-DHU1gGqV.mjs.map → storage-DsueXspk.mjs.map} +1 -1
  108. package/dist/sveltekit/index.d.mts +2 -2
  109. package/dist/sveltekit/index.mjs +3 -3
  110. package/dist/toolkit.d.mts +3 -3
  111. package/dist/toolkit.mjs +3 -3
  112. package/dist/{types-US-1hJZl.d.mts → types-BpsDbwHU.d.mts} +3 -1
  113. package/dist/{types-US-1hJZl.d.mts.map → types-BpsDbwHU.d.mts.map} +1 -1
  114. package/dist/types.d.mts +1 -1
  115. package/dist/{useLogger-DBHI03WK.d.mts → useLogger-C_8vgz0g.d.mts} +2 -2
  116. package/dist/{useLogger-DBHI03WK.d.mts.map → useLogger-C_8vgz0g.d.mts.map} +1 -1
  117. package/dist/utils.d.mts +1 -1
  118. package/dist/utils.d.mts.map +1 -1
  119. package/dist/utils.mjs +22 -16
  120. package/dist/utils.mjs.map +1 -1
  121. package/dist/vite/index.d.mts +80 -0
  122. package/dist/vite/index.d.mts.map +1 -0
  123. package/dist/vite/index.mjs +213 -0
  124. package/dist/vite/index.mjs.map +1 -0
  125. package/dist/workers.d.mts +1 -1
  126. package/package.json +56 -5
  127. package/dist/_http-DpL_o_Wk.mjs +0 -57
  128. package/dist/_http-DpL_o_Wk.mjs.map +0 -1
  129. package/dist/parseError-DYrhDD1r.d.mts.map +0 -1
@@ -0,0 +1,213 @@
1
+ import { a as walk, i as shouldTransform, n as createStripPlugin, o as MagicString, r as TRANSFORM_FILTER, t as createSourceLocationPlugin } from "../source-location-DRvDDqfq.mjs";
2
+ import { resolve } from "node:path";
3
+ import { existsSync, writeFileSync } from "node:fs";
4
+ //#region src/vite/auto-init.ts
5
+ function createAutoInitPlugin(options) {
6
+ const config = buildConfig(options);
7
+ return {
8
+ name: "evlog:auto-init",
9
+ config() {
10
+ return { define: { __EVLOG_CONFIG__: JSON.stringify(config) } };
11
+ }
12
+ };
13
+ }
14
+ function buildConfig(options) {
15
+ const env = {};
16
+ if (options.service) env.service = options.service;
17
+ if (options.environment) env.environment = options.environment;
18
+ const config = {};
19
+ if (Object.keys(env).length > 0) config.env = env;
20
+ if (options.enabled !== void 0) config.enabled = options.enabled;
21
+ if (options.pretty !== void 0) config.pretty = options.pretty;
22
+ if (options.silent !== void 0) config.silent = options.silent;
23
+ if (options.sampling) config.sampling = options.sampling;
24
+ if (options.stringify !== void 0) config.stringify = options.stringify;
25
+ return config;
26
+ }
27
+ //#endregion
28
+ //#region src/vite/auto-imports.ts
29
+ const DEFAULT_IMPORTS = [
30
+ "log",
31
+ "createEvlogError",
32
+ "parseError"
33
+ ];
34
+ const LOG_METHODS = [
35
+ "info",
36
+ "error",
37
+ "warn",
38
+ "debug"
39
+ ];
40
+ const IMPORT_SOURCES = {
41
+ log: "evlog",
42
+ createEvlogError: "evlog",
43
+ parseError: "evlog",
44
+ setIdentity: "evlog/client",
45
+ clearIdentity: "evlog/client"
46
+ };
47
+ function createAutoImportsPlugin(options = {}) {
48
+ const symbols = options.imports ?? DEFAULT_IMPORTS;
49
+ return {
50
+ name: "evlog:auto-imports",
51
+ configResolved(config) {
52
+ if (options.dts === false) return;
53
+ if (typeof options.dts === "string") {
54
+ writeFileSync(resolve(config.root, options.dts), generateDts(symbols));
55
+ return;
56
+ }
57
+ const srcDir = resolve(config.root, "src");
58
+ writeFileSync(resolve(existsSync(srcDir) ? srcDir : config.root, "auto-imports.d.ts"), generateDts(symbols));
59
+ },
60
+ transform: {
61
+ filter: TRANSFORM_FILTER,
62
+ handler(code, id) {
63
+ if (!shouldTransform(id)) return;
64
+ if (!symbols.some((s) => code.includes(s))) return;
65
+ let ast;
66
+ try {
67
+ ast = this.parse(code);
68
+ } catch {
69
+ return;
70
+ }
71
+ const declared = collectTopLevelDeclarations(ast);
72
+ const needed = detectUsedSymbols(ast, symbols, declared);
73
+ if (needed.size === 0) return;
74
+ const grouped = groupBySource(needed);
75
+ const s = new MagicString(code);
76
+ for (const [source, names] of grouped) s.prepend(`import { ${names.join(", ")} } from '${source}'\n`);
77
+ return {
78
+ code: s.toString(),
79
+ map: s.generateMap({ hires: true })
80
+ };
81
+ }
82
+ }
83
+ };
84
+ }
85
+ function collectBindingNames(pattern, out) {
86
+ if (!pattern) return;
87
+ if (pattern.type === "Identifier") out.add(pattern.name);
88
+ else if (pattern.type === "ObjectPattern") for (const prop of pattern.properties) collectBindingNames(prop.type === "RestElement" ? prop.argument : prop.value, out);
89
+ else if (pattern.type === "ArrayPattern") {
90
+ for (const el of pattern.elements) if (el) collectBindingNames(el, out);
91
+ } else if (pattern.type === "AssignmentPattern") collectBindingNames(pattern.left, out);
92
+ else if (pattern.type === "RestElement") collectBindingNames(pattern.argument, out);
93
+ }
94
+ function collectTopLevelDeclarations(ast) {
95
+ const declared = /* @__PURE__ */ new Set();
96
+ for (const node of ast.body) {
97
+ if (node.type === "VariableDeclaration") for (const decl of node.declarations) collectBindingNames(decl.id, declared);
98
+ if (node.type === "FunctionDeclaration" && node.id?.name) declared.add(node.id.name);
99
+ if (node.type === "ImportDeclaration") {
100
+ for (const spec of node.specifiers ?? []) if (spec.local?.name) declared.add(spec.local.name);
101
+ }
102
+ }
103
+ return declared;
104
+ }
105
+ function detectUsedSymbols(ast, symbols, declared) {
106
+ const needed = /* @__PURE__ */ new Set();
107
+ walk(ast, (node) => {
108
+ if (symbols.includes("log") && !declared.has("log") && node.type === "MemberExpression" && node.object?.type === "Identifier" && node.object.name === "log" && node.property?.type === "Identifier" && LOG_METHODS.includes(node.property.name)) needed.add("log");
109
+ if (node.type === "CallExpression" && node.callee?.type === "Identifier" && symbols.includes(node.callee.name) && !declared.has(node.callee.name)) needed.add(node.callee.name);
110
+ });
111
+ return needed;
112
+ }
113
+ function groupBySource(symbols) {
114
+ const map = /* @__PURE__ */ new Map();
115
+ for (const sym of symbols) {
116
+ const source = IMPORT_SOURCES[sym] ?? "evlog";
117
+ const list = map.get(source) ?? [];
118
+ list.push(sym);
119
+ map.set(source, list);
120
+ }
121
+ return map;
122
+ }
123
+ function generateDts(symbols) {
124
+ const lines = [
125
+ "/* eslint-disable */",
126
+ "// Generated by evlog/vite — do not edit",
127
+ "export {}",
128
+ "declare global {"
129
+ ];
130
+ for (const sym of symbols) switch (sym) {
131
+ case "log":
132
+ lines.push(" const log: import('evlog').Log");
133
+ break;
134
+ case "createEvlogError":
135
+ lines.push(" const createEvlogError: typeof import('evlog').createEvlogError");
136
+ break;
137
+ case "parseError":
138
+ lines.push(" const parseError: typeof import('evlog').parseError");
139
+ break;
140
+ case "setIdentity":
141
+ lines.push(" const setIdentity: (identity: Record<string, unknown>) => void");
142
+ break;
143
+ case "clearIdentity":
144
+ lines.push(" const clearIdentity: () => void");
145
+ break;
146
+ default:
147
+ lines.push(` const ${sym}: typeof import('evlog').${sym}`);
148
+ break;
149
+ }
150
+ lines.push("}", "");
151
+ return lines.join("\n");
152
+ }
153
+ //#endregion
154
+ //#region src/vite/client-inject.ts
155
+ function createClientInjectPlugin(clientOptions) {
156
+ let isDev = true;
157
+ return {
158
+ name: "evlog:client-inject",
159
+ configResolved(config) {
160
+ isDev = config.command === "serve";
161
+ },
162
+ transformIndexHtml() {
163
+ const config = {};
164
+ config.service = clientOptions.service ?? "client";
165
+ if (clientOptions.console !== void 0) config.console = clientOptions.console;
166
+ config.pretty = clientOptions.pretty ?? isDev;
167
+ if (clientOptions.transport) config.transport = clientOptions.transport;
168
+ return [{
169
+ tag: "script",
170
+ attrs: { type: "module" },
171
+ children: `import{initLog}from'evlog/client'\ninitLog(${JSON.stringify(config)})`,
172
+ injectTo: "head-prepend"
173
+ }];
174
+ }
175
+ };
176
+ }
177
+ //#endregion
178
+ //#region src/vite/index.ts
179
+ /**
180
+ * evlog Vite plugin — brings Nuxt-level DX to any Vite-based framework.
181
+ *
182
+ * @example
183
+ * ```ts
184
+ * // vite.config.ts
185
+ * import evlog from 'evlog/vite'
186
+ *
187
+ * export default defineConfig({
188
+ * plugins: [
189
+ * evlog({ service: 'my-app' }),
190
+ * ],
191
+ * })
192
+ * ```
193
+ */
194
+ function evlog(options = {}) {
195
+ const plugins = [];
196
+ plugins.push(createAutoInitPlugin(options));
197
+ if (options.autoImports) {
198
+ const autoImportOpts = typeof options.autoImports === "object" ? options.autoImports : {};
199
+ plugins.push(createAutoImportsPlugin(autoImportOpts));
200
+ }
201
+ if (options.client) plugins.push(createClientInjectPlugin(options.client));
202
+ const stripLevels = options.strip ?? ["debug"];
203
+ if (stripLevels.length > 0) plugins.push(createStripPlugin(stripLevels));
204
+ if (options.sourceLocation) {
205
+ const enabled = options.sourceLocation === "dev" ? void 0 : true;
206
+ plugins.push(createSourceLocationPlugin(enabled));
207
+ }
208
+ return plugins;
209
+ }
210
+ //#endregion
211
+ export { createAutoImportsPlugin, createAutoInitPlugin, createClientInjectPlugin, createSourceLocationPlugin, createStripPlugin, evlog as default };
212
+
213
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","names":[],"sources":["../../src/vite/auto-init.ts","../../src/vite/auto-imports.ts","../../src/vite/client-inject.ts","../../src/vite/index.ts"],"sourcesContent":["import type { Plugin } from 'vite'\nimport type { EvlogViteOptions } from './types'\n\nexport function createAutoInitPlugin(options: EvlogViteOptions): Plugin {\n const config = buildConfig(options)\n\n return {\n name: 'evlog:auto-init',\n config() {\n return {\n define: {\n __EVLOG_CONFIG__: JSON.stringify(config),\n },\n }\n },\n }\n}\n\nfunction buildConfig(options: EvlogViteOptions): Record<string, unknown> {\n const env: Record<string, unknown> = {}\n if (options.service) env.service = options.service\n if (options.environment) env.environment = options.environment\n\n const config: Record<string, unknown> = {}\n if (Object.keys(env).length > 0) config.env = env\n if (options.enabled !== undefined) config.enabled = options.enabled\n if (options.pretty !== undefined) config.pretty = options.pretty\n if (options.silent !== undefined) config.silent = options.silent\n if (options.sampling) config.sampling = options.sampling\n if (options.stringify !== undefined) config.stringify = options.stringify\n\n return config\n}\n","import { existsSync, writeFileSync } from 'node:fs'\nimport { resolve } from 'node:path'\nimport type { Plugin } from 'vite'\nimport MagicString from 'magic-string'\nimport type { AutoImportsOptions } from './types'\nimport { TRANSFORM_FILTER, shouldTransform, walk } from './utils'\n\nconst DEFAULT_IMPORTS = ['log', 'createEvlogError', 'parseError']\nconst LOG_METHODS = ['info', 'error', 'warn', 'debug']\n\nconst IMPORT_SOURCES: Record<string, string> = {\n log: 'evlog',\n createEvlogError: 'evlog',\n parseError: 'evlog',\n setIdentity: 'evlog/client',\n clearIdentity: 'evlog/client',\n}\n\nexport function createAutoImportsPlugin(options: AutoImportsOptions = {}): Plugin {\n const symbols = options.imports ?? DEFAULT_IMPORTS\n\n return {\n name: 'evlog:auto-imports',\n\n configResolved(config) {\n if (options.dts === false) return\n if (typeof options.dts === 'string') {\n writeFileSync(resolve(config.root, options.dts), generateDts(symbols))\n return\n }\n const srcDir = resolve(config.root, 'src')\n const dir = existsSync(srcDir) ? srcDir : config.root\n writeFileSync(resolve(dir, 'auto-imports.d.ts'), generateDts(symbols))\n },\n\n transform: {\n filter: TRANSFORM_FILTER,\n handler(code, id) {\n if (!shouldTransform(id)) return\n if (!symbols.some(s => code.includes(s))) return\n\n let ast: any\n try {\n ast = (this as any).parse(code)\n } catch {\n return\n }\n\n const declared = collectTopLevelDeclarations(ast)\n const needed = detectUsedSymbols(ast, symbols, declared)\n\n if (needed.size === 0) return\n\n const grouped = groupBySource(needed)\n const s = new MagicString(code)\n\n for (const [source, names] of grouped) {\n s.prepend(`import { ${names.join(', ')} } from '${source}'\\n`)\n }\n\n return { code: s.toString(), map: s.generateMap({ hires: true }) }\n },\n },\n }\n}\n\nfunction collectBindingNames(pattern: any, out: Set<string>): void {\n if (!pattern) return\n if (pattern.type === 'Identifier') {\n out.add(pattern.name)\n } else if (pattern.type === 'ObjectPattern') {\n for (const prop of pattern.properties) {\n collectBindingNames(prop.type === 'RestElement' ? prop.argument : prop.value, out)\n }\n } else if (pattern.type === 'ArrayPattern') {\n for (const el of pattern.elements) {\n if (el) collectBindingNames(el, out)\n }\n } else if (pattern.type === 'AssignmentPattern') {\n collectBindingNames(pattern.left, out)\n } else if (pattern.type === 'RestElement') {\n collectBindingNames(pattern.argument, out)\n }\n}\n\nfunction collectTopLevelDeclarations(ast: any): Set<string> {\n const declared = new Set<string>()\n for (const node of ast.body) {\n if (node.type === 'VariableDeclaration') {\n for (const decl of node.declarations) {\n collectBindingNames(decl.id, declared)\n }\n }\n if (node.type === 'FunctionDeclaration' && node.id?.name) {\n declared.add(node.id.name)\n }\n if (node.type === 'ImportDeclaration') {\n for (const spec of node.specifiers ?? []) {\n if (spec.local?.name) declared.add(spec.local.name)\n }\n }\n }\n return declared\n}\n\nfunction detectUsedSymbols(ast: any, symbols: string[], declared: Set<string>): Set<string> {\n const needed = new Set<string>()\n\n walk(ast, (node: any) => {\n if (\n symbols.includes('log')\n && !declared.has('log')\n && node.type === 'MemberExpression'\n && node.object?.type === 'Identifier'\n && node.object.name === 'log'\n && node.property?.type === 'Identifier'\n && LOG_METHODS.includes(node.property.name)\n ) {\n needed.add('log')\n }\n\n if (\n node.type === 'CallExpression'\n && node.callee?.type === 'Identifier'\n && symbols.includes(node.callee.name)\n && !declared.has(node.callee.name)\n ) {\n needed.add(node.callee.name)\n }\n })\n\n return needed\n}\n\nfunction groupBySource(symbols: Set<string>): Map<string, string[]> {\n const map = new Map<string, string[]>()\n for (const sym of symbols) {\n const source = IMPORT_SOURCES[sym] ?? 'evlog'\n const list = map.get(source) ?? []\n list.push(sym)\n map.set(source, list)\n }\n return map\n}\n\nfunction generateDts(symbols: string[]): string {\n const lines = [\n '/* eslint-disable */',\n '// Generated by evlog/vite — do not edit',\n 'export {}',\n 'declare global {',\n ]\n\n for (const sym of symbols) {\n switch (sym) {\n case 'log':\n lines.push(' const log: import(\\'evlog\\').Log')\n break\n case 'createEvlogError':\n lines.push(' const createEvlogError: typeof import(\\'evlog\\').createEvlogError')\n break\n case 'parseError':\n lines.push(' const parseError: typeof import(\\'evlog\\').parseError')\n break\n case 'setIdentity':\n lines.push(' const setIdentity: (identity: Record<string, unknown>) => void')\n break\n case 'clearIdentity':\n lines.push(' const clearIdentity: () => void')\n break\n default:\n lines.push(` const ${sym}: typeof import('evlog').${sym}`)\n break\n }\n }\n\n lines.push('}', '')\n return lines.join('\\n')\n}\n","import type { Plugin } from 'vite'\nimport type { ClientOptions } from './types'\n\nexport function createClientInjectPlugin(clientOptions: ClientOptions): Plugin {\n let isDev = true\n\n return {\n name: 'evlog:client-inject',\n\n configResolved(config) {\n isDev = config.command === 'serve'\n },\n\n transformIndexHtml() {\n const config: Record<string, unknown> = {}\n config.service = clientOptions.service ?? 'client'\n if (clientOptions.console !== undefined) config.console = clientOptions.console\n config.pretty = clientOptions.pretty ?? isDev\n if (clientOptions.transport) config.transport = clientOptions.transport\n\n const configJson = JSON.stringify(config)\n\n return [\n {\n tag: 'script',\n attrs: { type: 'module' },\n children: `import{initLog}from'evlog/client'\\ninitLog(${configJson})`,\n injectTo: 'head-prepend',\n },\n ]\n },\n }\n}\n","import type { Plugin } from 'vite'\nimport type { EvlogViteOptions } from './types'\nimport { createAutoInitPlugin } from './auto-init'\nimport { createAutoImportsPlugin } from './auto-imports'\nimport { createClientInjectPlugin } from './client-inject'\nimport { createStripPlugin } from './strip'\nimport { createSourceLocationPlugin } from './source-location'\n\n/**\n * evlog Vite plugin — brings Nuxt-level DX to any Vite-based framework.\n *\n * @example\n * ```ts\n * // vite.config.ts\n * import evlog from 'evlog/vite'\n *\n * export default defineConfig({\n * plugins: [\n * evlog({ service: 'my-app' }),\n * ],\n * })\n * ```\n */\nexport default function evlog(options: EvlogViteOptions = {}): Plugin[] {\n const plugins: Plugin[] = []\n\n plugins.push(createAutoInitPlugin(options))\n\n if (options.autoImports) {\n const autoImportOpts = typeof options.autoImports === 'object' ? options.autoImports : {}\n plugins.push(createAutoImportsPlugin(autoImportOpts))\n }\n\n if (options.client) {\n plugins.push(createClientInjectPlugin(options.client))\n }\n\n const stripLevels = options.strip ?? ['debug']\n if (stripLevels.length > 0) {\n plugins.push(createStripPlugin(stripLevels))\n }\n\n if (options.sourceLocation) {\n const enabled = options.sourceLocation === 'dev' ? undefined : true\n plugins.push(createSourceLocationPlugin(enabled))\n }\n\n return plugins\n}\n\nexport { createAutoInitPlugin } from './auto-init'\nexport { createAutoImportsPlugin } from './auto-imports'\nexport { createClientInjectPlugin } from './client-inject'\nexport { createStripPlugin } from './strip'\nexport { createSourceLocationPlugin } from './source-location'\nexport type { EvlogViteOptions, AutoImportsOptions, ClientOptions } from './types'\n"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { g as RequestLogger, p as LoggerConfig } from "./types-US-1hJZl.mjs";
1
+ import { g as RequestLogger, p as LoggerConfig } from "./types-BpsDbwHU.mjs";
2
2
 
3
3
  //#region src/workers/index.d.ts
4
4
  /**
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "evlog",
3
- "version": "2.7.0",
3
+ "version": "2.9.0",
4
4
  "description": "Wide event logging library with structured error handling. Inspired by LoggingSucks.",
5
5
  "author": "HugoRCD <contact@hrcd.fr>",
6
6
  "homepage": "https://evlog.dev",
@@ -25,6 +25,8 @@
25
25
  "elysia",
26
26
  "nestjs",
27
27
  "sveltekit",
28
+ "react-router",
29
+ "vite",
28
30
  "typescript"
29
31
  ],
30
32
  "license": "MIT",
@@ -136,15 +138,35 @@
136
138
  "import": "./dist/nestjs/index.mjs",
137
139
  "default": "./dist/nestjs/index.mjs"
138
140
  },
141
+ "./react-router": {
142
+ "types": "./dist/react-router/index.d.mts",
143
+ "import": "./dist/react-router/index.mjs",
144
+ "default": "./dist/react-router/index.mjs"
145
+ },
139
146
  "./sveltekit": {
140
147
  "types": "./dist/sveltekit/index.d.mts",
141
148
  "import": "./dist/sveltekit/index.mjs",
142
149
  "default": "./dist/sveltekit/index.mjs"
143
150
  },
151
+ "./vite": {
152
+ "types": "./dist/vite/index.d.mts",
153
+ "import": "./dist/vite/index.mjs",
154
+ "default": "./dist/vite/index.mjs"
155
+ },
156
+ "./client": {
157
+ "types": "./dist/client.d.mts",
158
+ "import": "./dist/client.mjs",
159
+ "default": "./dist/client.mjs"
160
+ },
144
161
  "./toolkit": {
145
162
  "types": "./dist/toolkit.d.mts",
146
163
  "import": "./dist/toolkit.mjs",
147
164
  "default": "./dist/toolkit.mjs"
165
+ },
166
+ "./ai": {
167
+ "types": "./dist/ai/index.d.mts",
168
+ "import": "./dist/ai/index.mjs",
169
+ "default": "./dist/ai/index.mjs"
148
170
  }
149
171
  },
150
172
  "main": "./dist/index.mjs",
@@ -214,11 +236,23 @@
214
236
  "nestjs": [
215
237
  "./dist/nestjs/index.d.mts"
216
238
  ],
239
+ "react-router": [
240
+ "./dist/react-router/index.d.mts"
241
+ ],
217
242
  "sveltekit": [
218
243
  "./dist/sveltekit/index.d.mts"
219
244
  ],
245
+ "vite": [
246
+ "./dist/vite/index.d.mts"
247
+ ],
248
+ "client": [
249
+ "./dist/client.d.mts"
250
+ ],
220
251
  "toolkit": [
221
252
  "./dist/toolkit.d.mts"
253
+ ],
254
+ "ai": [
255
+ "./dist/ai/index.d.mts"
222
256
  ]
223
257
  }
224
258
  },
@@ -243,7 +277,9 @@
243
277
  "typecheck": "echo 'Typecheck handled by build'"
244
278
  },
245
279
  "devDependencies": {
246
- "@nestjs/common": "^11.1.16",
280
+ "acorn": "^8.16.0",
281
+ "@codspeed/vitest-plugin": "^5.2.0",
282
+ "@nestjs/common": "^11.1.17",
247
283
  "@nuxt/devtools": "^3.2.3",
248
284
  "@nuxt/schema": "^4.4.2",
249
285
  "@nuxt/test-utils": "^4.0.0",
@@ -255,14 +291,17 @@
255
291
  "express": "^5.2.1",
256
292
  "fastify": "^5.8.2",
257
293
  "h3": "^1.15.6",
258
- "happy-dom": "^20.8.3",
294
+ "happy-dom": "^20.8.4",
259
295
  "nitro": "^3.0.260311-beta",
260
296
  "nitropack": "^2.13.1",
261
297
  "nuxt": "^4.4.2",
262
298
  "pino": "^10.3.1",
299
+ "react-router": "^7.9.0",
263
300
  "supertest": "^7.2.2",
264
- "tsdown": "^0.21.1",
301
+ "tsdown": "^0.21.4",
302
+ "magic-string": "^0.30.21",
265
303
  "typescript": "^5.9.3",
304
+ "vite": "^8.0.0",
266
305
  "ufo": "^1.6.3",
267
306
  "winston": "^3.19.0"
268
307
  },
@@ -278,7 +317,10 @@
278
317
  "express": ">=5.2.1",
279
318
  "elysia": ">=1.4.27",
280
319
  "fastify": ">=5.8.2",
281
- "@nestjs/common": ">=11.1.16"
320
+ "@nestjs/common": ">=11.1.17",
321
+ "react-router": ">=7.9.0",
322
+ "vite": "^7.0.0 || ^8.0.0",
323
+ "ai": ">=6.0.116"
282
324
  },
283
325
  "peerDependenciesMeta": {
284
326
  "@nuxt/kit": {
@@ -316,6 +358,15 @@
316
358
  },
317
359
  "@nestjs/common": {
318
360
  "optional": true
361
+ },
362
+ "react-router": {
363
+ "optional": true
364
+ },
365
+ "vite": {
366
+ "optional": true
367
+ },
368
+ "ai": {
369
+ "optional": true
319
370
  }
320
371
  }
321
372
  }
@@ -1,57 +0,0 @@
1
- import { createRequire } from "node:module";
2
- //#region \0rolldown/runtime.js
3
- var __require = /* @__PURE__ */ createRequire(import.meta.url);
4
- //#endregion
5
- //#region src/adapters/_config.ts
6
- /**
7
- * Try to get runtime config from Nitro/Nuxt environment.
8
- * Returns undefined if not in a Nitro context.
9
- */
10
- function getRuntimeConfig() {
11
- try {
12
- const { useRuntimeConfig } = __require("nitropack/runtime");
13
- return useRuntimeConfig();
14
- } catch {
15
- return;
16
- }
17
- }
18
- function resolveAdapterConfig(namespace, fields, overrides) {
19
- const runtimeConfig = getRuntimeConfig();
20
- const evlogNs = runtimeConfig?.evlog?.[namespace];
21
- const rootNs = runtimeConfig?.[namespace];
22
- const config = {};
23
- for (const { key, env } of fields) config[key] = overrides?.[key] ?? evlogNs?.[key] ?? rootNs?.[key] ?? resolveEnv(env);
24
- return config;
25
- }
26
- function resolveEnv(envKeys) {
27
- if (!envKeys) return void 0;
28
- for (const key of envKeys) {
29
- const val = process.env[key];
30
- if (val) return val;
31
- }
32
- }
33
- //#endregion
34
- //#region src/adapters/_http.ts
35
- async function httpPost({ url, headers, body, timeout, label }) {
36
- const controller = new AbortController();
37
- const timeoutId = setTimeout(() => controller.abort(), timeout);
38
- try {
39
- const response = await fetch(url, {
40
- method: "POST",
41
- headers,
42
- body,
43
- signal: controller.signal
44
- });
45
- if (!response.ok) {
46
- const text = await response.text().catch(() => "Unknown error");
47
- const safeText = text.length > 200 ? `${text.slice(0, 200)}...[truncated]` : text;
48
- throw new Error(`${label} API error: ${response.status} ${response.statusText} - ${safeText}`);
49
- }
50
- } finally {
51
- clearTimeout(timeoutId);
52
- }
53
- }
54
- //#endregion
55
- export { resolveAdapterConfig as n, httpPost as t };
56
-
57
- //# sourceMappingURL=_http-DpL_o_Wk.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"_http-DpL_o_Wk.mjs","names":[],"sources":["../src/adapters/_config.ts","../src/adapters/_http.ts"],"sourcesContent":["/**\n * Try to get runtime config from Nitro/Nuxt environment.\n * Returns undefined if not in a Nitro context.\n */\nexport function getRuntimeConfig(): Record<string, any> | undefined {\n try {\n // eslint-disable-next-line @typescript-eslint/no-require-imports\n const { useRuntimeConfig } = require('nitropack/runtime')\n return useRuntimeConfig()\n } catch {\n return undefined\n }\n}\n\nexport interface ConfigField<T> {\n key: keyof T & string\n env?: string[]\n}\n\nexport function resolveAdapterConfig<T>(\n namespace: string,\n fields: ConfigField<T>[],\n overrides?: Partial<T>,\n): Partial<T> {\n const runtimeConfig = getRuntimeConfig()\n const evlogNs = runtimeConfig?.evlog?.[namespace]\n const rootNs = runtimeConfig?.[namespace]\n\n const config: Record<string, unknown> = {}\n\n for (const { key, env } of fields) {\n config[key] =\n overrides?.[key]\n ?? evlogNs?.[key]\n ?? rootNs?.[key]\n ?? resolveEnv(env)\n }\n\n return config as Partial<T>\n}\n\nfunction resolveEnv(envKeys?: string[]): string | undefined {\n if (!envKeys) return undefined\n for (const key of envKeys) {\n const val = process.env[key]\n if (val) return val\n }\n return undefined\n}\n","export interface HttpPostOptions {\n url: string\n headers: Record<string, string>\n body: string\n timeout: number\n label: string\n}\n\nexport async function httpPost({ url, headers, body, timeout, label }: HttpPostOptions): Promise<void> {\n const controller = new AbortController()\n const timeoutId = setTimeout(() => controller.abort(), timeout)\n\n try {\n const response = await fetch(url, {\n method: 'POST',\n headers,\n body,\n signal: controller.signal,\n })\n\n if (!response.ok) {\n const text = await response.text().catch(() => 'Unknown error')\n const safeText = text.length > 200 ? `${text.slice(0, 200)}...[truncated]` : text\n throw new Error(`${label} API error: ${response.status} ${response.statusText} - ${safeText}`)\n }\n } finally {\n clearTimeout(timeoutId)\n }\n}\n"],"mappings":";;;;;;;;;AAIA,SAAgB,mBAAoD;AAClE,KAAI;EAEF,MAAM,EAAE,qBAAA,UAA6B,oBAAoB;AACzD,SAAO,kBAAkB;SACnB;AACN;;;AASJ,SAAgB,qBACd,WACA,QACA,WACY;CACZ,MAAM,gBAAgB,kBAAkB;CACxC,MAAM,UAAU,eAAe,QAAQ;CACvC,MAAM,SAAS,gBAAgB;CAE/B,MAAM,SAAkC,EAAE;AAE1C,MAAK,MAAM,EAAE,KAAK,SAAS,OACzB,QAAO,OACL,YAAY,QACT,UAAU,QACV,SAAS,QACT,WAAW,IAAI;AAGtB,QAAO;;AAGT,SAAS,WAAW,SAAwC;AAC1D,KAAI,CAAC,QAAS,QAAO,KAAA;AACrB,MAAK,MAAM,OAAO,SAAS;EACzB,MAAM,MAAM,QAAQ,IAAI;AACxB,MAAI,IAAK,QAAO;;;;;ACrCpB,eAAsB,SAAS,EAAE,KAAK,SAAS,MAAM,SAAS,SAAyC;CACrG,MAAM,aAAa,IAAI,iBAAiB;CACxC,MAAM,YAAY,iBAAiB,WAAW,OAAO,EAAE,QAAQ;AAE/D,KAAI;EACF,MAAM,WAAW,MAAM,MAAM,KAAK;GAChC,QAAQ;GACR;GACA;GACA,QAAQ,WAAW;GACpB,CAAC;AAEF,MAAI,CAAC,SAAS,IAAI;GAChB,MAAM,OAAO,MAAM,SAAS,MAAM,CAAC,YAAY,gBAAgB;GAC/D,MAAM,WAAW,KAAK,SAAS,MAAM,GAAG,KAAK,MAAM,GAAG,IAAI,CAAC,kBAAkB;AAC7E,SAAM,IAAI,MAAM,GAAG,MAAM,cAAc,SAAS,OAAO,GAAG,SAAS,WAAW,KAAK,WAAW;;WAExF;AACR,eAAa,UAAU"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"parseError-DYrhDD1r.d.mts","names":[],"sources":["../src/runtime/utils/parseError.ts"],"mappings":";;;iBAKgB,UAAA,CAAW,KAAA,YAAiB,WAAA"}