autotel-adapters 0.3.19 → 2.0.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 +13 -0
- package/dist/cloudflare.cjs +44 -29
- package/dist/cloudflare.cjs.map +1 -1
- package/dist/cloudflare.d.cts +11 -17
- package/dist/cloudflare.d.cts.map +1 -1
- package/dist/cloudflare.d.ts +11 -17
- package/dist/cloudflare.d.ts.map +1 -1
- package/dist/cloudflare.js +47 -30
- package/dist/cloudflare.js.map +1 -1
- package/dist/core.cjs +7 -11
- package/dist/core.cjs.map +1 -1
- package/dist/core.d.cts +7 -11
- package/dist/core.d.cts.map +1 -1
- package/dist/core.d.ts +6 -10
- package/dist/core.d.ts.map +1 -1
- package/dist/core.js +7 -12
- package/dist/core.js.map +1 -1
- package/dist/elysia.cjs +50 -0
- package/dist/elysia.cjs.map +1 -0
- package/dist/elysia.d.cts +18 -0
- package/dist/elysia.d.cts.map +1 -0
- package/dist/elysia.d.ts +18 -0
- package/dist/elysia.d.ts.map +1 -0
- package/dist/elysia.js +44 -0
- package/dist/elysia.js.map +1 -0
- package/dist/express.cjs +5 -16
- package/dist/express.cjs.map +1 -1
- package/dist/express.d.cts +6 -15
- package/dist/express.d.cts.map +1 -1
- package/dist/express.d.ts +6 -15
- package/dist/express.d.ts.map +1 -1
- package/dist/express.js +7 -16
- package/dist/express.js.map +1 -1
- package/dist/fastify.cjs +5 -16
- package/dist/fastify.cjs.map +1 -1
- package/dist/fastify.d.cts +6 -15
- package/dist/fastify.d.cts.map +1 -1
- package/dist/fastify.d.ts +6 -15
- package/dist/fastify.d.ts.map +1 -1
- package/dist/fastify.js +7 -16
- package/dist/fastify.js.map +1 -1
- package/dist/hono.cjs +52 -11
- package/dist/hono.cjs.map +1 -1
- package/dist/hono.d.cts +12 -5
- package/dist/hono.d.cts.map +1 -1
- package/dist/hono.d.ts +12 -5
- package/dist/hono.d.ts.map +1 -1
- package/dist/hono.js +49 -12
- package/dist/hono.js.map +1 -1
- package/dist/index.cjs +14 -9
- package/dist/index.d.cts +12 -9
- package/dist/index.d.ts +12 -9
- package/dist/index.js +12 -9
- package/dist/integration-DI-1RuTh.d.cts +100 -0
- package/dist/integration-DI-1RuTh.d.cts.map +1 -0
- package/dist/integration-IUpfttGT.js +335 -0
- package/dist/integration-IUpfttGT.js.map +1 -0
- package/dist/integration-guh7BHTF.cjs +412 -0
- package/dist/integration-guh7BHTF.cjs.map +1 -0
- package/dist/integration-rYoX8QLk.d.ts +100 -0
- package/dist/integration-rYoX8QLk.d.ts.map +1 -0
- package/dist/nestjs.cjs +119 -0
- package/dist/nestjs.cjs.map +1 -0
- package/dist/nestjs.d.cts +42 -0
- package/dist/nestjs.d.cts.map +1 -0
- package/dist/nestjs.d.ts +42 -0
- package/dist/nestjs.d.ts.map +1 -0
- package/dist/nestjs.js +114 -0
- package/dist/nestjs.js.map +1 -0
- package/dist/next.cjs +35 -33
- package/dist/next.cjs.map +1 -1
- package/dist/next.d.cts +6 -17
- package/dist/next.d.cts.map +1 -1
- package/dist/next.d.ts +6 -17
- package/dist/next.d.ts.map +1 -1
- package/dist/next.js +38 -34
- package/dist/next.js.map +1 -1
- package/dist/nitro.cjs +33 -41
- package/dist/nitro.cjs.map +1 -1
- package/dist/nitro.d.cts +6 -17
- package/dist/nitro.d.cts.map +1 -1
- package/dist/nitro.d.ts +6 -17
- package/dist/nitro.d.ts.map +1 -1
- package/dist/nitro.js +33 -42
- package/dist/nitro.js.map +1 -1
- package/dist/sveltekit.cjs +48 -0
- package/dist/sveltekit.cjs.map +1 -0
- package/dist/sveltekit.d.cts +24 -0
- package/dist/sveltekit.d.cts.map +1 -0
- package/dist/sveltekit.d.ts +24 -0
- package/dist/sveltekit.d.ts.map +1 -0
- package/dist/sveltekit.js +43 -0
- package/dist/sveltekit.js.map +1 -0
- package/dist/tanstack.cjs +0 -8
- package/dist/tanstack.cjs.map +1 -1
- package/dist/tanstack.d.cts +1 -7
- package/dist/tanstack.d.cts.map +1 -1
- package/dist/tanstack.d.ts +1 -7
- package/dist/tanstack.d.ts.map +1 -1
- package/dist/tanstack.js +2 -9
- package/dist/tanstack.js.map +1 -1
- package/dist/toolkit/index.cjs +23 -0
- package/dist/toolkit/index.d.cts +42 -0
- package/dist/toolkit/index.d.cts.map +1 -0
- package/dist/toolkit/index.d.ts +42 -0
- package/dist/toolkit/index.d.ts.map +1 -0
- package/dist/toolkit/index.js +4 -0
- package/dist/toolkit/storage.cjs +35 -0
- package/dist/toolkit/storage.cjs.map +1 -0
- package/dist/toolkit/storage.d.cts +20 -0
- package/dist/toolkit/storage.d.cts.map +1 -0
- package/dist/toolkit/storage.d.ts +20 -0
- package/dist/toolkit/storage.d.ts.map +1 -0
- package/dist/toolkit/storage.js +33 -0
- package/dist/toolkit/storage.js.map +1 -0
- package/package.json +39 -8
- package/skills/autotel-adapters/SKILL.md +42 -34
package/dist/next.js
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
1
|
+
import { a as runWithIntegratedHandle, i as defineFrameworkIntegration, n as buildTracedOptions, t as applyLoggerEnrichment } from "./integration-IUpfttGT.js";
|
|
2
|
+
import { createLoggerStorage } from "./toolkit/storage.js";
|
|
3
|
+
import { createUseLogger, getHeader } from "./core.js";
|
|
4
|
+
import { createDrainPipeline, createStructuredError, parseError } from "autotel";
|
|
4
5
|
|
|
5
6
|
//#region src/next.ts
|
|
6
|
-
const nextLoggerStorage =
|
|
7
|
+
const { storage: nextLoggerStorage, useLogger: storageUseLogger } = createLoggerStorage("request context. Wrap handlers with withAutotel() first.");
|
|
7
8
|
function enrichFromRequest(request) {
|
|
8
9
|
if (!request) return void 0;
|
|
9
10
|
let route = "/";
|
|
@@ -25,42 +26,45 @@ const baseUseLogger = createUseLogger({
|
|
|
25
26
|
enrich: enrichFromRequest
|
|
26
27
|
});
|
|
27
28
|
function useLogger(request, requestLoggerOptions) {
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
29
|
+
try {
|
|
30
|
+
return storageUseLogger();
|
|
31
|
+
} catch {
|
|
32
|
+
return baseUseLogger(request, requestLoggerOptions);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
function resolvePath(request) {
|
|
36
|
+
if (!request?.url) return "/";
|
|
37
|
+
try {
|
|
38
|
+
return new URL(request.url).pathname;
|
|
39
|
+
} catch {
|
|
40
|
+
return request.url;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
const integration = defineFrameworkIntegration({
|
|
44
|
+
name: "next",
|
|
45
|
+
storage: nextLoggerStorage,
|
|
46
|
+
extractRequest: (request) => ({
|
|
47
|
+
method: request?.method ?? "GET",
|
|
48
|
+
path: resolvePath(request),
|
|
49
|
+
headers: request?.headers,
|
|
50
|
+
requestId: getHeader(request?.headers, "x-request-id")
|
|
51
|
+
}),
|
|
52
|
+
attachLogger: () => {}
|
|
53
|
+
});
|
|
54
|
+
function resolveSpanName(request, options) {
|
|
55
|
+
if (typeof options?.spanName === "function") return options.spanName(request);
|
|
56
|
+
return options?.spanName ?? "next.request";
|
|
31
57
|
}
|
|
32
58
|
function withAutotel(handler, options) {
|
|
33
59
|
return async (...args) => {
|
|
34
60
|
const request = args[0];
|
|
35
|
-
return
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
if (auto && Object.keys(auto).length > 0) log.set(auto);
|
|
40
|
-
const custom = options?.enrich?.(innerRequest);
|
|
41
|
-
if (custom && Object.keys(custom).length > 0) log.set(custom);
|
|
42
|
-
try {
|
|
43
|
-
return await nextLoggerStorage.run(log, async () => handler(...innerArgs));
|
|
44
|
-
} finally {
|
|
45
|
-
if (options?.autoEmit !== false) log.emitNow();
|
|
46
|
-
}
|
|
47
|
-
})(...args);
|
|
61
|
+
return integration.runTraced(request, buildTracedOptions(options, resolveSpanName(request, options)), async (handle) => runWithIntegratedHandle(handle, options, async () => {
|
|
62
|
+
applyLoggerEnrichment(handle.logger, enrichFromRequest(request), options?.enrichRequest?.(request));
|
|
63
|
+
return handler(...args);
|
|
64
|
+
}));
|
|
48
65
|
};
|
|
49
66
|
}
|
|
50
|
-
function createNextAdapter(options) {
|
|
51
|
-
return {
|
|
52
|
-
withAutotel: (handler) => withAutotel(handler, options),
|
|
53
|
-
useLogger: (request, requestLoggerOptions) => useLogger(request, requestLoggerOptions),
|
|
54
|
-
parseError: (error) => parseError(error),
|
|
55
|
-
createStructuredError: (input) => createStructuredError(input),
|
|
56
|
-
createDrainPipeline: (drainOptions) => createDrainPipeline(drainOptions)
|
|
57
|
-
};
|
|
58
|
-
}
|
|
59
|
-
const nextToolkit = createAdapterToolkit({
|
|
60
|
-
adapterName: "next",
|
|
61
|
-
enrich: enrichFromRequest
|
|
62
|
-
});
|
|
63
67
|
|
|
64
68
|
//#endregion
|
|
65
|
-
export { createDrainPipeline,
|
|
69
|
+
export { createDrainPipeline, createStructuredError, parseError, useLogger, withAutotel };
|
|
66
70
|
//# sourceMappingURL=next.js.map
|
package/dist/next.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"next.js","names":[],"sources":["../src/next.ts"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"file":"next.js","names":[],"sources":["../src/next.ts"],"sourcesContent":["import {\n createDrainPipeline,\n parseError,\n createStructuredError,\n type RequestLogger,\n type RequestLoggerOptions,\n} from 'autotel';\nimport {\n createUseLogger,\n getHeader,\n type FrameworkHandlerOptions,\n} from './core';\nimport { createLoggerStorage } from './toolkit/storage';\nimport {\n applyLoggerEnrichment,\n defineFrameworkIntegration,\n runWithIntegratedHandle,\n buildTracedOptions,\n} from './toolkit/integration';\n\nexport interface NextRequestLike {\n method?: string;\n url?: string;\n headers?:\n { get(name: string): string | null } | Record<string, string | undefined>;\n}\n\nexport interface NextWithAutotelOptions extends Omit<\n FrameworkHandlerOptions,\n 'spanName'\n> {\n spanName?: string | ((request?: NextRequestLike) => string);\n enrichRequest?: (\n request?: NextRequestLike,\n ) => Record<string, unknown> | undefined;\n}\n\nconst { storage: nextLoggerStorage, useLogger: storageUseLogger } =\n createLoggerStorage(\n 'request context. Wrap handlers with withAutotel() first.',\n );\n\nfunction enrichFromRequest(\n request?: NextRequestLike,\n): Record<string, unknown> | undefined {\n if (!request) return undefined;\n\n let route = '/';\n if (request.url) {\n try {\n route = new URL(request.url).pathname;\n } catch {\n route = request.url;\n }\n }\n const requestId = getHeader(request.headers, 'x-request-id');\n\n return {\n ...(request.method ? { 'http.request.method': request.method } : {}),\n ...(request.url ? { 'url.full': request.url } : {}),\n ...(route ? { 'http.route': route } : {}),\n ...(requestId ? { 'http.request.header.x-request-id': requestId } : {}),\n };\n}\n\nconst baseUseLogger = createUseLogger<NextRequestLike>({\n adapterName: 'next',\n enrich: enrichFromRequest,\n});\n\nexport function useLogger(\n request?: NextRequestLike,\n requestLoggerOptions?: RequestLoggerOptions,\n): RequestLogger {\n try {\n return storageUseLogger();\n } catch {\n return baseUseLogger(request, requestLoggerOptions);\n }\n}\n\nfunction resolvePath(request?: NextRequestLike): string {\n if (!request?.url) return '/';\n try {\n return new URL(request.url).pathname;\n } catch {\n return request.url;\n }\n}\n\nconst integration = defineFrameworkIntegration<NextRequestLike | undefined>({\n name: 'next',\n storage: nextLoggerStorage,\n extractRequest: (request) => ({\n method: request?.method ?? 'GET',\n path: resolvePath(request),\n headers: request?.headers,\n requestId: getHeader(request?.headers, 'x-request-id'),\n }),\n attachLogger: () => {},\n});\n\nfunction resolveSpanName(\n request: NextRequestLike | undefined,\n options?: NextWithAutotelOptions,\n): string {\n if (typeof options?.spanName === 'function') {\n return options.spanName(request);\n }\n return options?.spanName ?? 'next.request';\n}\n\nexport function withAutotel<TArgs extends unknown[], TReturn>(\n handler: (...args: TArgs) => TReturn | Promise<TReturn>,\n options?: NextWithAutotelOptions,\n): (...args: TArgs) => Promise<TReturn> {\n return async (...args: TArgs): Promise<TReturn> => {\n const request = args[0] as NextRequestLike | undefined;\n\n return integration.runTraced(\n request,\n buildTracedOptions(options, resolveSpanName(request, options)),\n async (handle) =>\n runWithIntegratedHandle(handle, options, async () => {\n applyLoggerEnrichment(\n handle.logger,\n enrichFromRequest(request),\n options?.enrichRequest?.(request),\n );\n return handler(...args);\n }),\n );\n };\n}\n\nexport { parseError, createDrainPipeline, createStructuredError };\n"],"mappings":";;;;;;AAqCA,MAAM,EAAE,SAAS,mBAAmB,WAAW,qBAC7C,oBACE,0DACF;AAEF,SAAS,kBACP,SACqC;CACrC,IAAI,CAAC,SAAS,OAAO;CAErB,IAAI,QAAQ;CACZ,IAAI,QAAQ,KACV,IAAI;EACF,QAAQ,IAAI,IAAI,QAAQ,GAAG,CAAC,CAAC;CAC/B,QAAQ;EACN,QAAQ,QAAQ;CAClB;CAEF,MAAM,YAAY,UAAU,QAAQ,SAAS,cAAc;CAE3D,OAAO;EACL,GAAI,QAAQ,SAAS,EAAE,uBAAuB,QAAQ,OAAO,IAAI,CAAC;EAClE,GAAI,QAAQ,MAAM,EAAE,YAAY,QAAQ,IAAI,IAAI,CAAC;EACjD,GAAI,QAAQ,EAAE,cAAc,MAAM,IAAI,CAAC;EACvC,GAAI,YAAY,EAAE,oCAAoC,UAAU,IAAI,CAAC;CACvE;AACF;AAEA,MAAM,gBAAgB,gBAAiC;CACrD,aAAa;CACb,QAAQ;AACV,CAAC;AAED,SAAgB,UACd,SACA,sBACe;CACf,IAAI;EACF,OAAO,iBAAiB;CAC1B,QAAQ;EACN,OAAO,cAAc,SAAS,oBAAoB;CACpD;AACF;AAEA,SAAS,YAAY,SAAmC;CACtD,IAAI,CAAC,SAAS,KAAK,OAAO;CAC1B,IAAI;EACF,OAAO,IAAI,IAAI,QAAQ,GAAG,CAAC,CAAC;CAC9B,QAAQ;EACN,OAAO,QAAQ;CACjB;AACF;AAEA,MAAM,cAAc,2BAAwD;CAC1E,MAAM;CACN,SAAS;CACT,iBAAiB,aAAa;EAC5B,QAAQ,SAAS,UAAU;EAC3B,MAAM,YAAY,OAAO;EACzB,SAAS,SAAS;EAClB,WAAW,UAAU,SAAS,SAAS,cAAc;CACvD;CACA,oBAAoB,CAAC;AACvB,CAAC;AAED,SAAS,gBACP,SACA,SACQ;CACR,IAAI,OAAO,SAAS,aAAa,YAC/B,OAAO,QAAQ,SAAS,OAAO;CAEjC,OAAO,SAAS,YAAY;AAC9B;AAEA,SAAgB,YACd,SACA,SACsC;CACtC,OAAO,OAAO,GAAG,SAAkC;EACjD,MAAM,UAAU,KAAK;EAErB,OAAO,YAAY,UACjB,SACA,mBAAmB,SAAS,gBAAgB,SAAS,OAAO,CAAC,GAC7D,OAAO,WACL,wBAAwB,QAAQ,SAAS,YAAY;GACnD,sBACE,OAAO,QACP,kBAAkB,OAAO,GACzB,SAAS,gBAAgB,OAAO,CAClC;GACA,OAAO,QAAQ,GAAG,IAAI;EACxB,CAAC,CACL;CACF;AACF"}
|
package/dist/nitro.cjs
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
2
|
+
const require_integration = require('./integration-guh7BHTF.cjs');
|
|
3
|
+
const require_toolkit_storage = require('./toolkit/storage.cjs');
|
|
2
4
|
const require_core = require('./core.cjs');
|
|
3
5
|
let autotel = require("autotel");
|
|
4
|
-
let node_async_hooks = require("node:async_hooks");
|
|
5
6
|
|
|
6
7
|
//#region src/nitro.ts
|
|
7
8
|
function enrichFromEvent(event) {
|
|
@@ -12,56 +13,47 @@ function enrichFromEvent(event) {
|
|
|
12
13
|
...typeof event.context?.requestId === "string" ? { "http.request.id": event.context.requestId } : {}
|
|
13
14
|
};
|
|
14
15
|
}
|
|
16
|
+
const { storage: nitroLoggerStorage, useLogger: storageUseLogger } = require_toolkit_storage.createLoggerStorage("request context. Wrap handlers with withAutotelEventHandler() first.");
|
|
15
17
|
const baseUseLogger = require_core.createUseLogger({
|
|
16
18
|
adapterName: "nitro",
|
|
17
19
|
enrich: enrichFromEvent
|
|
18
20
|
});
|
|
19
|
-
const nitroLoggerStorage = new node_async_hooks.AsyncLocalStorage();
|
|
20
21
|
function useLogger(event, serviceOrOptions) {
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
22
|
+
try {
|
|
23
|
+
const logger = storageUseLogger();
|
|
24
|
+
if (typeof serviceOrOptions === "string" && serviceOrOptions.length > 0) logger.set({ service: serviceOrOptions });
|
|
25
|
+
return logger;
|
|
26
|
+
} catch {
|
|
27
|
+
const logger = typeof serviceOrOptions === "string" ? baseUseLogger(event) : baseUseLogger(event, serviceOrOptions);
|
|
28
|
+
if (typeof serviceOrOptions === "string" && serviceOrOptions.length > 0) logger.set({ service: serviceOrOptions });
|
|
29
|
+
return logger;
|
|
30
|
+
}
|
|
24
31
|
}
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
})(event);
|
|
39
|
-
};
|
|
32
|
+
const integration = require_integration.defineFrameworkIntegration({
|
|
33
|
+
name: "nitro",
|
|
34
|
+
storage: nitroLoggerStorage,
|
|
35
|
+
extractRequest: (event) => ({
|
|
36
|
+
method: event.method ?? "GET",
|
|
37
|
+
path: event.path ?? "/",
|
|
38
|
+
requestId: typeof event.context?.requestId === "string" ? event.context.requestId : void 0
|
|
39
|
+
}),
|
|
40
|
+
attachLogger: () => {}
|
|
41
|
+
});
|
|
42
|
+
function resolveSpanName(event, options) {
|
|
43
|
+
if (typeof options?.spanName === "function") return options.spanName(event);
|
|
44
|
+
return options?.spanName ?? `nitro.${event.method ?? "request"}`;
|
|
40
45
|
}
|
|
41
|
-
function
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
...options?.enrich?.(event) ?? {}
|
|
47
|
-
})
|
|
48
|
-
});
|
|
49
|
-
return {
|
|
50
|
-
withAutotelEventHandler: (handler) => withAutotelEventHandler(handler, options),
|
|
51
|
-
useLogger,
|
|
52
|
-
parseError: toolkit.parseError,
|
|
53
|
-
createStructuredError: toolkit.createStructuredError,
|
|
54
|
-
createDrainPipeline: toolkit.createDrainPipeline
|
|
55
|
-
};
|
|
46
|
+
function withAutotelEventHandler(handler, options) {
|
|
47
|
+
return async (event) => integration.runTraced(event, require_integration.buildTracedOptions(options, resolveSpanName(event, options)), async (handle) => require_integration.runWithIntegratedHandle(handle, options, async () => {
|
|
48
|
+
require_integration.applyLoggerEnrichment(handle.logger, enrichFromEvent(event), options?.enrichRequest?.(event));
|
|
49
|
+
return handler(event);
|
|
50
|
+
}));
|
|
56
51
|
}
|
|
57
|
-
const nitroToolkit = require_core.createAdapterToolkit({
|
|
58
|
-
adapterName: "nitro",
|
|
59
|
-
enrich: enrichFromEvent
|
|
60
|
-
});
|
|
61
52
|
|
|
62
53
|
//#endregion
|
|
63
|
-
exports.
|
|
64
|
-
exports.
|
|
54
|
+
exports.createDrainPipeline = autotel.createDrainPipeline;
|
|
55
|
+
exports.createStructuredError = autotel.createStructuredError;
|
|
56
|
+
exports.parseError = autotel.parseError;
|
|
65
57
|
exports.useLogger = useLogger;
|
|
66
58
|
exports.withAutotelEventHandler = withAutotelEventHandler;
|
|
67
59
|
//# sourceMappingURL=nitro.cjs.map
|
package/dist/nitro.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nitro.cjs","names":["createUseLogger","
|
|
1
|
+
{"version":3,"file":"nitro.cjs","names":["createLoggerStorage","createUseLogger","defineFrameworkIntegration","buildTracedOptions","runWithIntegratedHandle"],"sources":["../src/nitro.ts"],"sourcesContent":["import {\n createDrainPipeline,\n parseError,\n createStructuredError,\n type RequestLogger,\n type RequestLoggerOptions,\n} from 'autotel';\nimport { createUseLogger, type FrameworkHandlerOptions } from './core';\nimport { createLoggerStorage } from './toolkit/storage';\nimport {\n applyLoggerEnrichment,\n defineFrameworkIntegration,\n runWithIntegratedHandle,\n buildTracedOptions,\n} from './toolkit/integration';\n\nexport interface NitroEventLike {\n method?: string;\n path?: string;\n context?: Record<string, unknown>;\n}\n\nexport interface NitroWithAutotelOptions extends Omit<\n FrameworkHandlerOptions,\n 'spanName'\n> {\n spanName?: string | ((event: NitroEventLike) => string);\n enrichRequest?: (\n event: NitroEventLike,\n ) => Record<string, unknown> | undefined;\n}\n\nfunction enrichFromEvent(\n event?: NitroEventLike,\n): Record<string, unknown> | undefined {\n if (!event) return undefined;\n\n return {\n ...(event.method ? { 'http.request.method': event.method } : {}),\n ...(event.path ? { 'http.route': event.path } : {}),\n ...(typeof event.context?.requestId === 'string'\n ? { 'http.request.id': event.context.requestId }\n : {}),\n };\n}\n\nconst { storage: nitroLoggerStorage, useLogger: storageUseLogger } =\n createLoggerStorage(\n 'request context. Wrap handlers with withAutotelEventHandler() first.',\n );\n\nconst baseUseLogger = createUseLogger<NitroEventLike>({\n adapterName: 'nitro',\n enrich: enrichFromEvent,\n});\n\nexport function useLogger(\n event?: NitroEventLike,\n serviceOrOptions?: string | RequestLoggerOptions,\n): RequestLogger {\n try {\n const logger = storageUseLogger();\n if (typeof serviceOrOptions === 'string' && serviceOrOptions.length > 0) {\n logger.set({ service: serviceOrOptions });\n }\n return logger;\n } catch {\n const logger =\n typeof serviceOrOptions === 'string'\n ? baseUseLogger(event)\n : baseUseLogger(event, serviceOrOptions);\n\n if (typeof serviceOrOptions === 'string' && serviceOrOptions.length > 0) {\n logger.set({ service: serviceOrOptions });\n }\n\n return logger;\n }\n}\n\nconst integration = defineFrameworkIntegration<NitroEventLike>({\n name: 'nitro',\n storage: nitroLoggerStorage,\n extractRequest: (event) => ({\n method: event.method ?? 'GET',\n path: event.path ?? '/',\n requestId:\n typeof event.context?.requestId === 'string'\n ? event.context.requestId\n : undefined,\n }),\n attachLogger: () => {},\n});\n\nfunction resolveSpanName(\n event: NitroEventLike,\n options?: NitroWithAutotelOptions,\n): string {\n if (typeof options?.spanName === 'function') {\n return options.spanName(event);\n }\n return options?.spanName ?? `nitro.${event.method ?? 'request'}`;\n}\n\nexport function withAutotelEventHandler<TEvent extends NitroEventLike, TReturn>(\n handler: (event: TEvent) => TReturn | Promise<TReturn>,\n options?: NitroWithAutotelOptions,\n): (event: TEvent) => Promise<TReturn> {\n return async (event: TEvent): Promise<TReturn> =>\n integration.runTraced(\n event,\n buildTracedOptions(options, resolveSpanName(event, options)),\n async (handle) =>\n runWithIntegratedHandle(handle, options, async () => {\n applyLoggerEnrichment(\n handle.logger,\n enrichFromEvent(event),\n options?.enrichRequest?.(event),\n );\n return handler(event);\n }),\n );\n}\n\nexport { parseError, createDrainPipeline, createStructuredError };\n"],"mappings":";;;;;;;AAgCA,SAAS,gBACP,OACqC;CACrC,IAAI,CAAC,OAAO,OAAO;CAEnB,OAAO;EACL,GAAI,MAAM,SAAS,EAAE,uBAAuB,MAAM,OAAO,IAAI,CAAC;EAC9D,GAAI,MAAM,OAAO,EAAE,cAAc,MAAM,KAAK,IAAI,CAAC;EACjD,GAAI,OAAO,MAAM,SAAS,cAAc,WACpC,EAAE,mBAAmB,MAAM,QAAQ,UAAU,IAC7C,CAAC;CACP;AACF;AAEA,MAAM,EAAE,SAAS,oBAAoB,WAAW,qBAC9CA,4CACE,sEACF;AAEF,MAAM,gBAAgBC,6BAAgC;CACpD,aAAa;CACb,QAAQ;AACV,CAAC;AAED,SAAgB,UACd,OACA,kBACe;CACf,IAAI;EACF,MAAM,SAAS,iBAAiB;EAChC,IAAI,OAAO,qBAAqB,YAAY,iBAAiB,SAAS,GACpE,OAAO,IAAI,EAAE,SAAS,iBAAiB,CAAC;EAE1C,OAAO;CACT,QAAQ;EACN,MAAM,SACJ,OAAO,qBAAqB,WACxB,cAAc,KAAK,IACnB,cAAc,OAAO,gBAAgB;EAE3C,IAAI,OAAO,qBAAqB,YAAY,iBAAiB,SAAS,GACpE,OAAO,IAAI,EAAE,SAAS,iBAAiB,CAAC;EAG1C,OAAO;CACT;AACF;AAEA,MAAM,cAAcC,+CAA2C;CAC7D,MAAM;CACN,SAAS;CACT,iBAAiB,WAAW;EAC1B,QAAQ,MAAM,UAAU;EACxB,MAAM,MAAM,QAAQ;EACpB,WACE,OAAO,MAAM,SAAS,cAAc,WAChC,MAAM,QAAQ,YACd;CACR;CACA,oBAAoB,CAAC;AACvB,CAAC;AAED,SAAS,gBACP,OACA,SACQ;CACR,IAAI,OAAO,SAAS,aAAa,YAC/B,OAAO,QAAQ,SAAS,KAAK;CAE/B,OAAO,SAAS,YAAY,SAAS,MAAM,UAAU;AACvD;AAEA,SAAgB,wBACd,SACA,SACqC;CACrC,OAAO,OAAO,UACZ,YAAY,UACV,OACAC,uCAAmB,SAAS,gBAAgB,OAAO,OAAO,CAAC,GAC3D,OAAO,WACLC,4CAAwB,QAAQ,SAAS,YAAY;EACnD,0CACE,OAAO,QACP,gBAAgB,KAAK,GACrB,SAAS,gBAAgB,KAAK,CAChC;EACA,OAAO,QAAQ,KAAK;CACtB,CAAC,CACL;AACJ"}
|
package/dist/nitro.d.cts
CHANGED
|
@@ -1,29 +1,18 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import
|
|
3
|
-
|
|
1
|
+
import { n as FrameworkHandlerOptions } from "./integration-DI-1RuTh.cjs";
|
|
2
|
+
import "./core.cjs";
|
|
3
|
+
import { RequestLogger, RequestLoggerOptions, createDrainPipeline, createStructuredError, parseError } from "autotel";
|
|
4
4
|
//#region src/nitro.d.ts
|
|
5
5
|
interface NitroEventLike {
|
|
6
6
|
method?: string;
|
|
7
7
|
path?: string;
|
|
8
8
|
context?: Record<string, unknown>;
|
|
9
9
|
}
|
|
10
|
-
interface NitroWithAutotelOptions {
|
|
10
|
+
interface NitroWithAutotelOptions extends Omit<FrameworkHandlerOptions, 'spanName'> {
|
|
11
11
|
spanName?: string | ((event: NitroEventLike) => string);
|
|
12
|
-
|
|
13
|
-
enrich?: (event: NitroEventLike) => Record<string, unknown> | undefined;
|
|
14
|
-
/** Emit one wide event automatically when the handler settles. Default `true`. */
|
|
15
|
-
autoEmit?: boolean;
|
|
12
|
+
enrichRequest?: (event: NitroEventLike) => Record<string, unknown> | undefined;
|
|
16
13
|
}
|
|
17
14
|
declare function useLogger(event?: NitroEventLike, serviceOrOptions?: string | RequestLoggerOptions): RequestLogger;
|
|
18
15
|
declare function withAutotelEventHandler<TEvent extends NitroEventLike, TReturn>(handler: (event: TEvent) => TReturn | Promise<TReturn>, options?: NitroWithAutotelOptions): (event: TEvent) => Promise<TReturn>;
|
|
19
|
-
declare function createNitroAdapter(options?: NitroWithAutotelOptions): {
|
|
20
|
-
withAutotelEventHandler: <TEvent extends NitroEventLike, TReturn>(handler: (event: TEvent) => TReturn | Promise<TReturn>) => (event: TEvent) => Promise<TReturn>;
|
|
21
|
-
useLogger: typeof useLogger;
|
|
22
|
-
parseError: (error: unknown) => import("autotel").ParsedError;
|
|
23
|
-
createStructuredError: (input: import("autotel").StructuredErrorInput) => import("autotel").StructuredError;
|
|
24
|
-
createDrainPipeline: <T = unknown>(options?: import("autotel").DrainPipelineOptions<T>) => (drain: (batch: T[]) => void | Promise<void>) => import("autotel").PipelineDrainFn<T>;
|
|
25
|
-
};
|
|
26
|
-
declare const nitroToolkit: AdapterToolkit<NitroEventLike>;
|
|
27
16
|
//#endregion
|
|
28
|
-
export { NitroEventLike, NitroWithAutotelOptions,
|
|
17
|
+
export { NitroEventLike, NitroWithAutotelOptions, createDrainPipeline, createStructuredError, parseError, useLogger, withAutotelEventHandler };
|
|
29
18
|
//# sourceMappingURL=nitro.d.cts.map
|
package/dist/nitro.d.cts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nitro.d.cts","names":[],"sources":["../src/nitro.ts"],"mappings":";;;;
|
|
1
|
+
{"version":3,"file":"nitro.d.cts","names":[],"sources":["../src/nitro.ts"],"mappings":";;;;UAgBiB;EACf;EACA;EACA,UAAU;;UAGK,gCAAgC,KAC/C;EAGA,sBAAsB,OAAO;EAC7B,iBACE,OAAO,mBACJ;;iBA2BS,UACd,QAAQ,gBACR,4BAA4B,uBAC3B;iBA6Ca,wBAAwB,eAAe,gBAAgB,SACrE,UAAU,OAAO,WAAW,UAAU,QAAQ,UAC9C,UAAU,2BACR,OAAO,WAAW,QAAQ"}
|
package/dist/nitro.d.ts
CHANGED
|
@@ -1,29 +1,18 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import
|
|
3
|
-
|
|
1
|
+
import { n as FrameworkHandlerOptions } from "./integration-rYoX8QLk.js";
|
|
2
|
+
import "./core.js";
|
|
3
|
+
import { RequestLogger, RequestLoggerOptions, createDrainPipeline, createStructuredError, parseError } from "autotel";
|
|
4
4
|
//#region src/nitro.d.ts
|
|
5
5
|
interface NitroEventLike {
|
|
6
6
|
method?: string;
|
|
7
7
|
path?: string;
|
|
8
8
|
context?: Record<string, unknown>;
|
|
9
9
|
}
|
|
10
|
-
interface NitroWithAutotelOptions {
|
|
10
|
+
interface NitroWithAutotelOptions extends Omit<FrameworkHandlerOptions, 'spanName'> {
|
|
11
11
|
spanName?: string | ((event: NitroEventLike) => string);
|
|
12
|
-
|
|
13
|
-
enrich?: (event: NitroEventLike) => Record<string, unknown> | undefined;
|
|
14
|
-
/** Emit one wide event automatically when the handler settles. Default `true`. */
|
|
15
|
-
autoEmit?: boolean;
|
|
12
|
+
enrichRequest?: (event: NitroEventLike) => Record<string, unknown> | undefined;
|
|
16
13
|
}
|
|
17
14
|
declare function useLogger(event?: NitroEventLike, serviceOrOptions?: string | RequestLoggerOptions): RequestLogger;
|
|
18
15
|
declare function withAutotelEventHandler<TEvent extends NitroEventLike, TReturn>(handler: (event: TEvent) => TReturn | Promise<TReturn>, options?: NitroWithAutotelOptions): (event: TEvent) => Promise<TReturn>;
|
|
19
|
-
declare function createNitroAdapter(options?: NitroWithAutotelOptions): {
|
|
20
|
-
withAutotelEventHandler: <TEvent extends NitroEventLike, TReturn>(handler: (event: TEvent) => TReturn | Promise<TReturn>) => (event: TEvent) => Promise<TReturn>;
|
|
21
|
-
useLogger: typeof useLogger;
|
|
22
|
-
parseError: (error: unknown) => import("autotel").ParsedError;
|
|
23
|
-
createStructuredError: (input: import("autotel").StructuredErrorInput) => import("autotel").StructuredError;
|
|
24
|
-
createDrainPipeline: <T = unknown>(options?: import("autotel").DrainPipelineOptions<T>) => (drain: (batch: T[]) => void | Promise<void>) => import("autotel").PipelineDrainFn<T>;
|
|
25
|
-
};
|
|
26
|
-
declare const nitroToolkit: AdapterToolkit<NitroEventLike>;
|
|
27
16
|
//#endregion
|
|
28
|
-
export { NitroEventLike, NitroWithAutotelOptions,
|
|
17
|
+
export { NitroEventLike, NitroWithAutotelOptions, createDrainPipeline, createStructuredError, parseError, useLogger, withAutotelEventHandler };
|
|
29
18
|
//# sourceMappingURL=nitro.d.ts.map
|
package/dist/nitro.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nitro.d.ts","names":[],"sources":["../src/nitro.ts"],"mappings":";;;;
|
|
1
|
+
{"version":3,"file":"nitro.d.ts","names":[],"sources":["../src/nitro.ts"],"mappings":";;;;UAgBiB;EACf;EACA;EACA,UAAU;;UAGK,gCAAgC,KAC/C;EAGA,sBAAsB,OAAO;EAC7B,iBACE,OAAO,mBACJ;;iBA2BS,UACd,QAAQ,gBACR,4BAA4B,uBAC3B;iBA6Ca,wBAAwB,eAAe,gBAAgB,SACrE,UAAU,OAAO,WAAW,UAAU,QAAQ,UAC9C,UAAU,2BACR,OAAO,WAAW,QAAQ"}
|
package/dist/nitro.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
1
|
+
import { a as runWithIntegratedHandle, i as defineFrameworkIntegration, n as buildTracedOptions, t as applyLoggerEnrichment } from "./integration-IUpfttGT.js";
|
|
2
|
+
import { createLoggerStorage } from "./toolkit/storage.js";
|
|
3
|
+
import { createUseLogger } from "./core.js";
|
|
4
|
+
import { createDrainPipeline, createStructuredError, parseError } from "autotel";
|
|
4
5
|
|
|
5
6
|
//#region src/nitro.ts
|
|
6
7
|
function enrichFromEvent(event) {
|
|
@@ -11,53 +12,43 @@ function enrichFromEvent(event) {
|
|
|
11
12
|
...typeof event.context?.requestId === "string" ? { "http.request.id": event.context.requestId } : {}
|
|
12
13
|
};
|
|
13
14
|
}
|
|
15
|
+
const { storage: nitroLoggerStorage, useLogger: storageUseLogger } = createLoggerStorage("request context. Wrap handlers with withAutotelEventHandler() first.");
|
|
14
16
|
const baseUseLogger = createUseLogger({
|
|
15
17
|
adapterName: "nitro",
|
|
16
18
|
enrich: enrichFromEvent
|
|
17
19
|
});
|
|
18
|
-
const nitroLoggerStorage = new AsyncLocalStorage();
|
|
19
20
|
function useLogger(event, serviceOrOptions) {
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
21
|
+
try {
|
|
22
|
+
const logger = storageUseLogger();
|
|
23
|
+
if (typeof serviceOrOptions === "string" && serviceOrOptions.length > 0) logger.set({ service: serviceOrOptions });
|
|
24
|
+
return logger;
|
|
25
|
+
} catch {
|
|
26
|
+
const logger = typeof serviceOrOptions === "string" ? baseUseLogger(event) : baseUseLogger(event, serviceOrOptions);
|
|
27
|
+
if (typeof serviceOrOptions === "string" && serviceOrOptions.length > 0) logger.set({ service: serviceOrOptions });
|
|
28
|
+
return logger;
|
|
29
|
+
}
|
|
23
30
|
}
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
})(event);
|
|
38
|
-
};
|
|
31
|
+
const integration = defineFrameworkIntegration({
|
|
32
|
+
name: "nitro",
|
|
33
|
+
storage: nitroLoggerStorage,
|
|
34
|
+
extractRequest: (event) => ({
|
|
35
|
+
method: event.method ?? "GET",
|
|
36
|
+
path: event.path ?? "/",
|
|
37
|
+
requestId: typeof event.context?.requestId === "string" ? event.context.requestId : void 0
|
|
38
|
+
}),
|
|
39
|
+
attachLogger: () => {}
|
|
40
|
+
});
|
|
41
|
+
function resolveSpanName(event, options) {
|
|
42
|
+
if (typeof options?.spanName === "function") return options.spanName(event);
|
|
43
|
+
return options?.spanName ?? `nitro.${event.method ?? "request"}`;
|
|
39
44
|
}
|
|
40
|
-
function
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
...options?.enrich?.(event) ?? {}
|
|
46
|
-
})
|
|
47
|
-
});
|
|
48
|
-
return {
|
|
49
|
-
withAutotelEventHandler: (handler) => withAutotelEventHandler(handler, options),
|
|
50
|
-
useLogger,
|
|
51
|
-
parseError: toolkit.parseError,
|
|
52
|
-
createStructuredError: toolkit.createStructuredError,
|
|
53
|
-
createDrainPipeline: toolkit.createDrainPipeline
|
|
54
|
-
};
|
|
45
|
+
function withAutotelEventHandler(handler, options) {
|
|
46
|
+
return async (event) => integration.runTraced(event, buildTracedOptions(options, resolveSpanName(event, options)), async (handle) => runWithIntegratedHandle(handle, options, async () => {
|
|
47
|
+
applyLoggerEnrichment(handle.logger, enrichFromEvent(event), options?.enrichRequest?.(event));
|
|
48
|
+
return handler(event);
|
|
49
|
+
}));
|
|
55
50
|
}
|
|
56
|
-
const nitroToolkit = createAdapterToolkit({
|
|
57
|
-
adapterName: "nitro",
|
|
58
|
-
enrich: enrichFromEvent
|
|
59
|
-
});
|
|
60
51
|
|
|
61
52
|
//#endregion
|
|
62
|
-
export {
|
|
53
|
+
export { createDrainPipeline, createStructuredError, parseError, useLogger, withAutotelEventHandler };
|
|
63
54
|
//# sourceMappingURL=nitro.js.map
|
package/dist/nitro.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nitro.js","names":[],"sources":["../src/nitro.ts"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"file":"nitro.js","names":[],"sources":["../src/nitro.ts"],"sourcesContent":["import {\n createDrainPipeline,\n parseError,\n createStructuredError,\n type RequestLogger,\n type RequestLoggerOptions,\n} from 'autotel';\nimport { createUseLogger, type FrameworkHandlerOptions } from './core';\nimport { createLoggerStorage } from './toolkit/storage';\nimport {\n applyLoggerEnrichment,\n defineFrameworkIntegration,\n runWithIntegratedHandle,\n buildTracedOptions,\n} from './toolkit/integration';\n\nexport interface NitroEventLike {\n method?: string;\n path?: string;\n context?: Record<string, unknown>;\n}\n\nexport interface NitroWithAutotelOptions extends Omit<\n FrameworkHandlerOptions,\n 'spanName'\n> {\n spanName?: string | ((event: NitroEventLike) => string);\n enrichRequest?: (\n event: NitroEventLike,\n ) => Record<string, unknown> | undefined;\n}\n\nfunction enrichFromEvent(\n event?: NitroEventLike,\n): Record<string, unknown> | undefined {\n if (!event) return undefined;\n\n return {\n ...(event.method ? { 'http.request.method': event.method } : {}),\n ...(event.path ? { 'http.route': event.path } : {}),\n ...(typeof event.context?.requestId === 'string'\n ? { 'http.request.id': event.context.requestId }\n : {}),\n };\n}\n\nconst { storage: nitroLoggerStorage, useLogger: storageUseLogger } =\n createLoggerStorage(\n 'request context. Wrap handlers with withAutotelEventHandler() first.',\n );\n\nconst baseUseLogger = createUseLogger<NitroEventLike>({\n adapterName: 'nitro',\n enrich: enrichFromEvent,\n});\n\nexport function useLogger(\n event?: NitroEventLike,\n serviceOrOptions?: string | RequestLoggerOptions,\n): RequestLogger {\n try {\n const logger = storageUseLogger();\n if (typeof serviceOrOptions === 'string' && serviceOrOptions.length > 0) {\n logger.set({ service: serviceOrOptions });\n }\n return logger;\n } catch {\n const logger =\n typeof serviceOrOptions === 'string'\n ? baseUseLogger(event)\n : baseUseLogger(event, serviceOrOptions);\n\n if (typeof serviceOrOptions === 'string' && serviceOrOptions.length > 0) {\n logger.set({ service: serviceOrOptions });\n }\n\n return logger;\n }\n}\n\nconst integration = defineFrameworkIntegration<NitroEventLike>({\n name: 'nitro',\n storage: nitroLoggerStorage,\n extractRequest: (event) => ({\n method: event.method ?? 'GET',\n path: event.path ?? '/',\n requestId:\n typeof event.context?.requestId === 'string'\n ? event.context.requestId\n : undefined,\n }),\n attachLogger: () => {},\n});\n\nfunction resolveSpanName(\n event: NitroEventLike,\n options?: NitroWithAutotelOptions,\n): string {\n if (typeof options?.spanName === 'function') {\n return options.spanName(event);\n }\n return options?.spanName ?? `nitro.${event.method ?? 'request'}`;\n}\n\nexport function withAutotelEventHandler<TEvent extends NitroEventLike, TReturn>(\n handler: (event: TEvent) => TReturn | Promise<TReturn>,\n options?: NitroWithAutotelOptions,\n): (event: TEvent) => Promise<TReturn> {\n return async (event: TEvent): Promise<TReturn> =>\n integration.runTraced(\n event,\n buildTracedOptions(options, resolveSpanName(event, options)),\n async (handle) =>\n runWithIntegratedHandle(handle, options, async () => {\n applyLoggerEnrichment(\n handle.logger,\n enrichFromEvent(event),\n options?.enrichRequest?.(event),\n );\n return handler(event);\n }),\n );\n}\n\nexport { parseError, createDrainPipeline, createStructuredError };\n"],"mappings":";;;;;;AAgCA,SAAS,gBACP,OACqC;CACrC,IAAI,CAAC,OAAO,OAAO;CAEnB,OAAO;EACL,GAAI,MAAM,SAAS,EAAE,uBAAuB,MAAM,OAAO,IAAI,CAAC;EAC9D,GAAI,MAAM,OAAO,EAAE,cAAc,MAAM,KAAK,IAAI,CAAC;EACjD,GAAI,OAAO,MAAM,SAAS,cAAc,WACpC,EAAE,mBAAmB,MAAM,QAAQ,UAAU,IAC7C,CAAC;CACP;AACF;AAEA,MAAM,EAAE,SAAS,oBAAoB,WAAW,qBAC9C,oBACE,sEACF;AAEF,MAAM,gBAAgB,gBAAgC;CACpD,aAAa;CACb,QAAQ;AACV,CAAC;AAED,SAAgB,UACd,OACA,kBACe;CACf,IAAI;EACF,MAAM,SAAS,iBAAiB;EAChC,IAAI,OAAO,qBAAqB,YAAY,iBAAiB,SAAS,GACpE,OAAO,IAAI,EAAE,SAAS,iBAAiB,CAAC;EAE1C,OAAO;CACT,QAAQ;EACN,MAAM,SACJ,OAAO,qBAAqB,WACxB,cAAc,KAAK,IACnB,cAAc,OAAO,gBAAgB;EAE3C,IAAI,OAAO,qBAAqB,YAAY,iBAAiB,SAAS,GACpE,OAAO,IAAI,EAAE,SAAS,iBAAiB,CAAC;EAG1C,OAAO;CACT;AACF;AAEA,MAAM,cAAc,2BAA2C;CAC7D,MAAM;CACN,SAAS;CACT,iBAAiB,WAAW;EAC1B,QAAQ,MAAM,UAAU;EACxB,MAAM,MAAM,QAAQ;EACpB,WACE,OAAO,MAAM,SAAS,cAAc,WAChC,MAAM,QAAQ,YACd;CACR;CACA,oBAAoB,CAAC;AACvB,CAAC;AAED,SAAS,gBACP,OACA,SACQ;CACR,IAAI,OAAO,SAAS,aAAa,YAC/B,OAAO,QAAQ,SAAS,KAAK;CAE/B,OAAO,SAAS,YAAY,SAAS,MAAM,UAAU;AACvD;AAEA,SAAgB,wBACd,SACA,SACqC;CACrC,OAAO,OAAO,UACZ,YAAY,UACV,OACA,mBAAmB,SAAS,gBAAgB,OAAO,OAAO,CAAC,GAC3D,OAAO,WACL,wBAAwB,QAAQ,SAAS,YAAY;EACnD,sBACE,OAAO,QACP,gBAAgB,KAAK,GACrB,SAAS,gBAAgB,KAAK,CAChC;EACA,OAAO,QAAQ,KAAK;CACtB,CAAC,CACL;AACJ"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
2
|
+
const require_integration = require('./integration-guh7BHTF.cjs');
|
|
3
|
+
const require_toolkit_storage = require('./toolkit/storage.cjs');
|
|
4
|
+
let autotel = require("autotel");
|
|
5
|
+
|
|
6
|
+
//#region src/sveltekit.ts
|
|
7
|
+
const { storage: svelteKitLoggerStorage, useLogger: storageUseLogger } = require_toolkit_storage.createLoggerStorage("request context. Register autotelHandle() in hooks.server.ts first.");
|
|
8
|
+
function enrichFromEvent(event) {
|
|
9
|
+
if (!event) return void 0;
|
|
10
|
+
return {
|
|
11
|
+
"http.request.method": event.request.method,
|
|
12
|
+
"url.full": event.url.toString(),
|
|
13
|
+
"http.route": event.route?.id ?? event.url.pathname,
|
|
14
|
+
...event.request.headers.get("x-request-id") ? { "http.request.id": event.request.headers.get("x-request-id") } : {}
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
const integration = require_integration.defineFrameworkIntegration({
|
|
18
|
+
name: "sveltekit",
|
|
19
|
+
storage: svelteKitLoggerStorage,
|
|
20
|
+
extractRequest: (event) => ({
|
|
21
|
+
method: event.request.method,
|
|
22
|
+
path: event.url.pathname,
|
|
23
|
+
headers: event.request.headers,
|
|
24
|
+
requestId: event.request.headers.get("x-request-id") ?? void 0
|
|
25
|
+
}),
|
|
26
|
+
attachLogger: (event, logger) => {
|
|
27
|
+
event.locals ??= {};
|
|
28
|
+
event.locals.autotelLogger = logger;
|
|
29
|
+
}
|
|
30
|
+
});
|
|
31
|
+
function useLogger() {
|
|
32
|
+
return storageUseLogger();
|
|
33
|
+
}
|
|
34
|
+
function autotelHandle(options = {}) {
|
|
35
|
+
return async ({ event, resolve }) => integration.runTraced(event, options, async (handle) => {
|
|
36
|
+
if (handle.skipped) return handle.runWith(() => resolve(event));
|
|
37
|
+
require_integration.applyLoggerEnrichment(handle.logger, enrichFromEvent(event), options.enrichRequest?.(event));
|
|
38
|
+
return require_integration.runWithIntegratedHandle(handle, options, () => resolve(event));
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
//#endregion
|
|
43
|
+
exports.autotelHandle = autotelHandle;
|
|
44
|
+
exports.createDrainPipeline = autotel.createDrainPipeline;
|
|
45
|
+
exports.createStructuredError = autotel.createStructuredError;
|
|
46
|
+
exports.parseError = autotel.parseError;
|
|
47
|
+
exports.useLogger = useLogger;
|
|
48
|
+
//# sourceMappingURL=sveltekit.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sveltekit.cjs","names":["createLoggerStorage","defineFrameworkIntegration","runWithIntegratedHandle"],"sources":["../src/sveltekit.ts"],"sourcesContent":["import {\n createDrainPipeline,\n createStructuredError,\n parseError,\n type RequestLogger,\n} from 'autotel';\nimport type { FrameworkHandlerOptions } from './core';\nimport { createLoggerStorage } from './toolkit/storage';\nimport {\n applyLoggerEnrichment,\n defineFrameworkIntegration,\n runWithIntegratedHandle,\n} from './toolkit/integration';\n\nexport interface SvelteKitEventLike {\n request: Request;\n url: URL;\n route?: { id?: string };\n locals?: Record<string, unknown>;\n}\n\nexport interface SvelteKitHandleInput {\n event: SvelteKitEventLike;\n resolve: (event: SvelteKitEventLike) => Response | Promise<Response>;\n}\n\nexport interface SvelteKitWithAutotelOptions extends FrameworkHandlerOptions {\n enrichRequest?: (\n event: SvelteKitEventLike,\n ) => Record<string, unknown> | undefined;\n}\n\nconst { storage: svelteKitLoggerStorage, useLogger: storageUseLogger } =\n createLoggerStorage(\n 'request context. Register autotelHandle() in hooks.server.ts first.',\n );\n\nfunction enrichFromEvent(\n event?: SvelteKitEventLike,\n): Record<string, unknown> | undefined {\n if (!event) return undefined;\n\n return {\n 'http.request.method': event.request.method,\n 'url.full': event.url.toString(),\n 'http.route': event.route?.id ?? event.url.pathname,\n ...(event.request.headers.get('x-request-id')\n ? { 'http.request.id': event.request.headers.get('x-request-id')! }\n : {}),\n };\n}\n\nconst integration = defineFrameworkIntegration<SvelteKitEventLike>({\n name: 'sveltekit',\n storage: svelteKitLoggerStorage,\n extractRequest: (event) => ({\n method: event.request.method,\n path: event.url.pathname,\n headers: event.request.headers,\n requestId: event.request.headers.get('x-request-id') ?? undefined,\n }),\n attachLogger: (event, logger) => {\n event.locals ??= {};\n event.locals.autotelLogger = logger;\n },\n});\n\nexport function useLogger(): RequestLogger {\n return storageUseLogger();\n}\n\nexport function autotelHandle(options: SvelteKitWithAutotelOptions = {}) {\n return async ({ event, resolve }: SvelteKitHandleInput): Promise<Response> =>\n integration.runTraced(event, options, async (handle) => {\n if (handle.skipped) {\n return handle.runWith(() => resolve(event));\n }\n\n applyLoggerEnrichment(\n handle.logger,\n enrichFromEvent(event),\n options.enrichRequest?.(event),\n );\n\n return runWithIntegratedHandle(handle, options, () => resolve(event));\n });\n}\n\nexport { parseError, createDrainPipeline, createStructuredError };\n"],"mappings":";;;;;;AAgCA,MAAM,EAAE,SAAS,wBAAwB,WAAW,qBAClDA,4CACE,qEACF;AAEF,SAAS,gBACP,OACqC;CACrC,IAAI,CAAC,OAAO,OAAO;CAEnB,OAAO;EACL,uBAAuB,MAAM,QAAQ;EACrC,YAAY,MAAM,IAAI,SAAS;EAC/B,cAAc,MAAM,OAAO,MAAM,MAAM,IAAI;EAC3C,GAAI,MAAM,QAAQ,QAAQ,IAAI,cAAc,IACxC,EAAE,mBAAmB,MAAM,QAAQ,QAAQ,IAAI,cAAc,EAAG,IAChE,CAAC;CACP;AACF;AAEA,MAAM,cAAcC,+CAA+C;CACjE,MAAM;CACN,SAAS;CACT,iBAAiB,WAAW;EAC1B,QAAQ,MAAM,QAAQ;EACtB,MAAM,MAAM,IAAI;EAChB,SAAS,MAAM,QAAQ;EACvB,WAAW,MAAM,QAAQ,QAAQ,IAAI,cAAc,KAAK;CAC1D;CACA,eAAe,OAAO,WAAW;EAC/B,MAAM,WAAW,CAAC;EAClB,MAAM,OAAO,gBAAgB;CAC/B;AACF,CAAC;AAED,SAAgB,YAA2B;CACzC,OAAO,iBAAiB;AAC1B;AAEA,SAAgB,cAAc,UAAuC,CAAC,GAAG;CACvE,OAAO,OAAO,EAAE,OAAO,cACrB,YAAY,UAAU,OAAO,SAAS,OAAO,WAAW;EACtD,IAAI,OAAO,SACT,OAAO,OAAO,cAAc,QAAQ,KAAK,CAAC;EAG5C,0CACE,OAAO,QACP,gBAAgB,KAAK,GACrB,QAAQ,gBAAgB,KAAK,CAC/B;EAEA,OAAOC,4CAAwB,QAAQ,eAAe,QAAQ,KAAK,CAAC;CACtE,CAAC;AACL"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { n as FrameworkHandlerOptions } from "./integration-DI-1RuTh.cjs";
|
|
2
|
+
import "./core.cjs";
|
|
3
|
+
import { RequestLogger, createDrainPipeline, createStructuredError, parseError } from "autotel";
|
|
4
|
+
//#region src/sveltekit.d.ts
|
|
5
|
+
interface SvelteKitEventLike {
|
|
6
|
+
request: Request;
|
|
7
|
+
url: URL;
|
|
8
|
+
route?: {
|
|
9
|
+
id?: string;
|
|
10
|
+
};
|
|
11
|
+
locals?: Record<string, unknown>;
|
|
12
|
+
}
|
|
13
|
+
interface SvelteKitHandleInput {
|
|
14
|
+
event: SvelteKitEventLike;
|
|
15
|
+
resolve: (event: SvelteKitEventLike) => Response | Promise<Response>;
|
|
16
|
+
}
|
|
17
|
+
interface SvelteKitWithAutotelOptions extends FrameworkHandlerOptions {
|
|
18
|
+
enrichRequest?: (event: SvelteKitEventLike) => Record<string, unknown> | undefined;
|
|
19
|
+
}
|
|
20
|
+
declare function useLogger(): RequestLogger;
|
|
21
|
+
declare function autotelHandle(options?: SvelteKitWithAutotelOptions): ({ event, resolve }: SvelteKitHandleInput) => Promise<Response>;
|
|
22
|
+
//#endregion
|
|
23
|
+
export { SvelteKitEventLike, SvelteKitHandleInput, SvelteKitWithAutotelOptions, autotelHandle, createDrainPipeline, createStructuredError, parseError, useLogger };
|
|
24
|
+
//# sourceMappingURL=sveltekit.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sveltekit.d.cts","names":[],"sources":["../src/sveltekit.ts"],"mappings":";;;;UAciB;EACf,SAAS;EACT,KAAK;EACL;IAAU;;EACV,SAAS;;UAGM;EACf,OAAO;EACP,UAAU,OAAO,uBAAuB,WAAW,QAAQ;;UAG5C,oCAAoC;EACnD,iBACE,OAAO,uBACJ;;iBAsCS,aAAa;iBAIb,cAAc,UAAS,iCACvB,OAAA,WAAoB,yBAAuB,QAAQ"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { n as FrameworkHandlerOptions } from "./integration-rYoX8QLk.js";
|
|
2
|
+
import "./core.js";
|
|
3
|
+
import { RequestLogger, createDrainPipeline, createStructuredError, parseError } from "autotel";
|
|
4
|
+
//#region src/sveltekit.d.ts
|
|
5
|
+
interface SvelteKitEventLike {
|
|
6
|
+
request: Request;
|
|
7
|
+
url: URL;
|
|
8
|
+
route?: {
|
|
9
|
+
id?: string;
|
|
10
|
+
};
|
|
11
|
+
locals?: Record<string, unknown>;
|
|
12
|
+
}
|
|
13
|
+
interface SvelteKitHandleInput {
|
|
14
|
+
event: SvelteKitEventLike;
|
|
15
|
+
resolve: (event: SvelteKitEventLike) => Response | Promise<Response>;
|
|
16
|
+
}
|
|
17
|
+
interface SvelteKitWithAutotelOptions extends FrameworkHandlerOptions {
|
|
18
|
+
enrichRequest?: (event: SvelteKitEventLike) => Record<string, unknown> | undefined;
|
|
19
|
+
}
|
|
20
|
+
declare function useLogger(): RequestLogger;
|
|
21
|
+
declare function autotelHandle(options?: SvelteKitWithAutotelOptions): ({ event, resolve }: SvelteKitHandleInput) => Promise<Response>;
|
|
22
|
+
//#endregion
|
|
23
|
+
export { SvelteKitEventLike, SvelteKitHandleInput, SvelteKitWithAutotelOptions, autotelHandle, createDrainPipeline, createStructuredError, parseError, useLogger };
|
|
24
|
+
//# sourceMappingURL=sveltekit.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sveltekit.d.ts","names":[],"sources":["../src/sveltekit.ts"],"mappings":";;;;UAciB;EACf,SAAS;EACT,KAAK;EACL;IAAU;;EACV,SAAS;;UAGM;EACf,OAAO;EACP,UAAU,OAAO,uBAAuB,WAAW,QAAQ;;UAG5C,oCAAoC;EACnD,iBACE,OAAO,uBACJ;;iBAsCS,aAAa;iBAIb,cAAc,UAAS,iCACvB,OAAA,WAAoB,yBAAuB,QAAQ"}
|