evlog 2.7.0 → 2.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +26 -0
- package/dist/{_drain-FZVTbHn9.mjs → _drain-C9Nr-6Wc.mjs} +1 -1
- package/dist/{_drain-FZVTbHn9.mjs.map → _drain-C9Nr-6Wc.mjs.map} +1 -1
- package/dist/_http-C2UoHWgm.mjs +82 -0
- package/dist/_http-C2UoHWgm.mjs.map +1 -0
- package/dist/{_severity-fhhv2Nq0.mjs → _severity-BLiOKoxh.mjs} +1 -1
- package/dist/{_severity-fhhv2Nq0.mjs.map → _severity-BLiOKoxh.mjs.map} +1 -1
- package/dist/adapters/axiom.d.mts +3 -1
- package/dist/adapters/axiom.d.mts.map +1 -1
- package/dist/adapters/axiom.mjs +5 -3
- package/dist/adapters/axiom.mjs.map +1 -1
- package/dist/adapters/better-stack.d.mts +3 -1
- package/dist/adapters/better-stack.d.mts.map +1 -1
- package/dist/adapters/better-stack.mjs +5 -3
- package/dist/adapters/better-stack.mjs.map +1 -1
- package/dist/adapters/fs.d.mts +1 -1
- package/dist/adapters/fs.mjs +1 -1
- package/dist/adapters/otlp.d.mts +3 -1
- package/dist/adapters/otlp.d.mts.map +1 -1
- package/dist/adapters/otlp.mjs +6 -4
- package/dist/adapters/otlp.mjs.map +1 -1
- package/dist/adapters/posthog.d.mts +3 -1
- package/dist/adapters/posthog.d.mts.map +1 -1
- package/dist/adapters/posthog.mjs +7 -4
- package/dist/adapters/posthog.mjs.map +1 -1
- package/dist/adapters/sentry.d.mts +3 -1
- package/dist/adapters/sentry.d.mts.map +1 -1
- package/dist/adapters/sentry.mjs +6 -4
- package/dist/adapters/sentry.mjs.map +1 -1
- package/dist/ai/index.d.mts +88 -0
- package/dist/ai/index.d.mts.map +1 -0
- package/dist/ai/index.mjs +199 -0
- package/dist/ai/index.mjs.map +1 -0
- package/dist/browser.d.mts +1 -1
- package/dist/client.d.mts +2 -0
- package/dist/client.mjs +2 -0
- package/dist/{dist-BsWcv7B8.mjs → dist-BFn8qsRC.mjs} +1 -1
- package/dist/{dist-BsWcv7B8.mjs.map → dist-BFn8qsRC.mjs.map} +1 -1
- package/dist/elysia/index.d.mts +2 -2
- package/dist/elysia/index.mjs +1 -1
- package/dist/enrichers.d.mts +1 -1
- package/dist/{error-BuPbEDGO.d.mts → error-BheHTFFB.d.mts} +2 -2
- package/dist/{error-BuPbEDGO.d.mts.map → error-BheHTFFB.d.mts.map} +1 -1
- package/dist/error.d.mts +1 -1
- package/dist/{errors-BJRXUfMg.mjs → errors-BQgyQ9xe.mjs} +1 -1
- package/dist/{errors-BJRXUfMg.mjs.map → errors-BQgyQ9xe.mjs.map} +1 -1
- package/dist/{errors-nScQVwHW.d.mts → errors-D8WVZclz.d.mts} +2 -2
- package/dist/{errors-nScQVwHW.d.mts.map → errors-D8WVZclz.d.mts.map} +1 -1
- package/dist/express/index.d.mts +2 -2
- package/dist/express/index.mjs +2 -2
- package/dist/fastify/index.d.mts +2 -2
- package/dist/fastify/index.mjs +2 -2
- package/dist/{headers-BSgpnR0c.mjs → headers-DJ_YZbxT.mjs} +3 -3
- package/dist/{headers-BSgpnR0c.mjs.map → headers-DJ_YZbxT.mjs.map} +1 -1
- package/dist/hono/index.d.mts +2 -2
- package/dist/hono/index.mjs +1 -1
- package/dist/index.d.mts +5 -5
- package/dist/{logger-BH1gOdNP.d.mts → logger-BkXYNnHP.d.mts} +2 -2
- package/dist/{logger-BH1gOdNP.d.mts.map → logger-BkXYNnHP.d.mts.map} +1 -1
- package/dist/logger.d.mts +1 -1
- package/dist/logger.mjs +89 -99
- package/dist/logger.mjs.map +1 -1
- package/dist/{middleware-CDLTVOBs.d.mts → middleware-B-4hPOVG.d.mts} +2 -2
- package/dist/{middleware-CDLTVOBs.d.mts.map → middleware-B-4hPOVG.d.mts.map} +1 -1
- package/dist/nestjs/index.d.mts +2 -2
- package/dist/nestjs/index.mjs +2 -2
- package/dist/next/client.d.mts +1 -1
- package/dist/next/index.d.mts +4 -4
- package/dist/next/index.mjs +1 -1
- package/dist/nitro/errorHandler.mjs +2 -2
- package/dist/nitro/module.d.mts +2 -2
- package/dist/nitro/plugin.mjs +2 -2
- package/dist/nitro/v3/errorHandler.mjs +3 -3
- package/dist/nitro/v3/module.d.mts +1 -1
- package/dist/nitro/v3/plugin.mjs +3 -3
- package/dist/nitro/v3/useLogger.d.mts +1 -1
- package/dist/{nitro-D1pPm37T.mjs → nitro-CzyGROOC.mjs} +2 -2
- package/dist/{nitro-D1pPm37T.mjs.map → nitro-CzyGROOC.mjs.map} +1 -1
- package/dist/{nitro-CaIIZfdG.d.mts → nitro-DCNNxY_7.d.mts} +2 -2
- package/dist/{nitro-CaIIZfdG.d.mts.map → nitro-DCNNxY_7.d.mts.map} +1 -1
- package/dist/nuxt/module.d.mts +13 -1
- package/dist/nuxt/module.d.mts.map +1 -1
- package/dist/nuxt/module.mjs +7 -2
- package/dist/nuxt/module.mjs.map +1 -1
- package/dist/{parseError-DYrhDD1r.d.mts → parseError-B08FS7EQ.d.mts} +2 -2
- package/dist/parseError-B08FS7EQ.d.mts.map +1 -0
- package/dist/{routes-CE3_c-iZ.mjs → routes-CGPmbzCZ.mjs} +1 -1
- package/dist/{routes-CE3_c-iZ.mjs.map → routes-CGPmbzCZ.mjs.map} +1 -1
- package/dist/runtime/client/log.d.mts +1 -1
- package/dist/runtime/server/useLogger.d.mts +1 -1
- package/dist/runtime/utils/parseError.d.mts +2 -2
- package/dist/source-location-B1VVgXkh.mjs +1165 -0
- package/dist/source-location-B1VVgXkh.mjs.map +1 -0
- package/dist/{storage-DHU1gGqV.mjs → storage-DsueXspk.mjs} +1 -1
- package/dist/{storage-DHU1gGqV.mjs.map → storage-DsueXspk.mjs.map} +1 -1
- package/dist/sveltekit/index.d.mts +2 -2
- package/dist/sveltekit/index.mjs +4 -4
- package/dist/toolkit.d.mts +3 -3
- package/dist/toolkit.mjs +4 -4
- package/dist/{types-US-1hJZl.d.mts → types-CBpJBj_7.d.mts} +1 -1
- package/dist/{types-US-1hJZl.d.mts.map → types-CBpJBj_7.d.mts.map} +1 -1
- package/dist/types.d.mts +1 -1
- package/dist/{useLogger-DBHI03WK.d.mts → useLogger-DBPGEDf_.d.mts} +2 -2
- package/dist/{useLogger-DBHI03WK.d.mts.map → useLogger-DBPGEDf_.d.mts.map} +1 -1
- package/dist/utils.d.mts +1 -1
- package/dist/utils.d.mts.map +1 -1
- package/dist/utils.mjs +22 -16
- package/dist/utils.mjs.map +1 -1
- package/dist/vite/index.d.mts +80 -0
- package/dist/vite/index.d.mts.map +1 -0
- package/dist/vite/index.mjs +213 -0
- package/dist/vite/index.mjs.map +1 -0
- package/dist/workers.d.mts +1 -1
- package/package.json +39 -2
- package/dist/_http-DpL_o_Wk.mjs +0 -57
- package/dist/_http-DpL_o_Wk.mjs.map +0 -1
- 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-B1VVgXkh.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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"}
|
package/dist/workers.d.mts
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "evlog",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.8.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,7 @@
|
|
|
25
25
|
"elysia",
|
|
26
26
|
"nestjs",
|
|
27
27
|
"sveltekit",
|
|
28
|
+
"vite",
|
|
28
29
|
"typescript"
|
|
29
30
|
],
|
|
30
31
|
"license": "MIT",
|
|
@@ -141,10 +142,25 @@
|
|
|
141
142
|
"import": "./dist/sveltekit/index.mjs",
|
|
142
143
|
"default": "./dist/sveltekit/index.mjs"
|
|
143
144
|
},
|
|
145
|
+
"./vite": {
|
|
146
|
+
"types": "./dist/vite/index.d.mts",
|
|
147
|
+
"import": "./dist/vite/index.mjs",
|
|
148
|
+
"default": "./dist/vite/index.mjs"
|
|
149
|
+
},
|
|
150
|
+
"./client": {
|
|
151
|
+
"types": "./dist/client.d.mts",
|
|
152
|
+
"import": "./dist/client.mjs",
|
|
153
|
+
"default": "./dist/client.mjs"
|
|
154
|
+
},
|
|
144
155
|
"./toolkit": {
|
|
145
156
|
"types": "./dist/toolkit.d.mts",
|
|
146
157
|
"import": "./dist/toolkit.mjs",
|
|
147
158
|
"default": "./dist/toolkit.mjs"
|
|
159
|
+
},
|
|
160
|
+
"./ai": {
|
|
161
|
+
"types": "./dist/ai/index.d.mts",
|
|
162
|
+
"import": "./dist/ai/index.mjs",
|
|
163
|
+
"default": "./dist/ai/index.mjs"
|
|
148
164
|
}
|
|
149
165
|
},
|
|
150
166
|
"main": "./dist/index.mjs",
|
|
@@ -217,8 +233,17 @@
|
|
|
217
233
|
"sveltekit": [
|
|
218
234
|
"./dist/sveltekit/index.d.mts"
|
|
219
235
|
],
|
|
236
|
+
"vite": [
|
|
237
|
+
"./dist/vite/index.d.mts"
|
|
238
|
+
],
|
|
239
|
+
"client": [
|
|
240
|
+
"./dist/client.d.mts"
|
|
241
|
+
],
|
|
220
242
|
"toolkit": [
|
|
221
243
|
"./dist/toolkit.d.mts"
|
|
244
|
+
],
|
|
245
|
+
"ai": [
|
|
246
|
+
"./dist/ai/index.d.mts"
|
|
222
247
|
]
|
|
223
248
|
}
|
|
224
249
|
},
|
|
@@ -243,6 +268,8 @@
|
|
|
243
268
|
"typecheck": "echo 'Typecheck handled by build'"
|
|
244
269
|
},
|
|
245
270
|
"devDependencies": {
|
|
271
|
+
"acorn": "^8.14.1",
|
|
272
|
+
"@codspeed/vitest-plugin": "^5.2.0",
|
|
246
273
|
"@nestjs/common": "^11.1.16",
|
|
247
274
|
"@nuxt/devtools": "^3.2.3",
|
|
248
275
|
"@nuxt/schema": "^4.4.2",
|
|
@@ -262,7 +289,9 @@
|
|
|
262
289
|
"pino": "^10.3.1",
|
|
263
290
|
"supertest": "^7.2.2",
|
|
264
291
|
"tsdown": "^0.21.1",
|
|
292
|
+
"magic-string": "^0.30.17",
|
|
265
293
|
"typescript": "^5.9.3",
|
|
294
|
+
"vite": "^8.0.0",
|
|
266
295
|
"ufo": "^1.6.3",
|
|
267
296
|
"winston": "^3.19.0"
|
|
268
297
|
},
|
|
@@ -278,7 +307,9 @@
|
|
|
278
307
|
"express": ">=5.2.1",
|
|
279
308
|
"elysia": ">=1.4.27",
|
|
280
309
|
"fastify": ">=5.8.2",
|
|
281
|
-
"@nestjs/common": ">=11.1.16"
|
|
310
|
+
"@nestjs/common": ">=11.1.16",
|
|
311
|
+
"vite": "^7.0.0 || ^8.0.0",
|
|
312
|
+
"ai": ">=6.0.0"
|
|
282
313
|
},
|
|
283
314
|
"peerDependenciesMeta": {
|
|
284
315
|
"@nuxt/kit": {
|
|
@@ -316,6 +347,12 @@
|
|
|
316
347
|
},
|
|
317
348
|
"@nestjs/common": {
|
|
318
349
|
"optional": true
|
|
350
|
+
},
|
|
351
|
+
"vite": {
|
|
352
|
+
"optional": true
|
|
353
|
+
},
|
|
354
|
+
"ai": {
|
|
355
|
+
"optional": true
|
|
319
356
|
}
|
|
320
357
|
}
|
|
321
358
|
}
|
package/dist/_http-DpL_o_Wk.mjs
DELETED
|
@@ -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"}
|