@logtide/sdk-node 0.2.3 → 0.2.4

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.
@@ -108,9 +108,9 @@ var require_plugin = __commonJS({
108
108
  autoName = true;
109
109
  options.name = getPluginName(fn) + "-auto-" + count++;
110
110
  }
111
- fn[Symbol.for("skip-override")] = options.encapsulate !== true;
112
- fn[Symbol.for("fastify.display-name")] = options.name;
113
- fn[Symbol.for("plugin-meta")] = options;
111
+ fn[/* @__PURE__ */ Symbol.for("skip-override")] = options.encapsulate !== true;
112
+ fn[/* @__PURE__ */ Symbol.for("fastify.display-name")] = options.name;
113
+ fn[/* @__PURE__ */ Symbol.for("plugin-meta")] = options;
114
114
  if (!fn.default) {
115
115
  fn.default = fn;
116
116
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../node_modules/tsup/assets/cjs_shims.js","../../node_modules/fastify-plugin/lib/getPluginName.js","../../node_modules/fastify-plugin/lib/toCamelCase.js","../../node_modules/fastify-plugin/plugin.js","../../src/middleware/index.ts","../../src/middleware/express.ts","../../src/middleware/fastify.ts"],"names":["exports","fp"],"mappings":"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","file":"index.cjs","sourcesContent":["// Shim globals in cjs bundle\n// There's a weird bug that esbuild will always inject importMetaUrl\n// if we export it as `const importMetaUrl = ... __filename ...`\n// But using a function will not cause this issue\n\nconst getImportMetaUrl = () => \n typeof document === \"undefined\" \n ? new URL(`file:${__filename}`).href \n : (document.currentScript && document.currentScript.tagName.toUpperCase() === 'SCRIPT') \n ? document.currentScript.src \n : new URL(\"main.js\", document.baseURI).href;\n\nexport const importMetaUrl = /* @__PURE__ */ getImportMetaUrl()\n","'use strict'\n\nconst fpStackTracePattern = /at\\s{1}(?:.*\\.)?plugin\\s{1}.*\\n\\s*(.*)/\nconst fileNamePattern = /(\\w*(\\.\\w*)*)\\..*/\n\nmodule.exports = function getPluginName (fn) {\n if (fn.name.length > 0) return fn.name\n\n const stackTraceLimit = Error.stackTraceLimit\n Error.stackTraceLimit = 10\n try {\n throw new Error('anonymous function')\n } catch (e) {\n Error.stackTraceLimit = stackTraceLimit\n return extractPluginName(e.stack)\n }\n}\n\nfunction extractPluginName (stack) {\n const m = stack.match(fpStackTracePattern)\n\n // get last section of path and match for filename\n return m ? m[1].split(/[/\\\\]/).slice(-1)[0].match(fileNamePattern)[1] : 'anonymous'\n}\nmodule.exports.extractPluginName = extractPluginName\n","'use strict'\n\nmodule.exports = function toCamelCase (name) {\n if (name[0] === '@') {\n name = name.slice(1).replace('/', '-')\n }\n const newName = name.replace(/-(.)/g, function (match, g1) {\n return g1.toUpperCase()\n })\n return newName\n}\n","'use strict'\n\nconst getPluginName = require('./lib/getPluginName')\nconst toCamelCase = require('./lib/toCamelCase')\n\nlet count = 0\n\nfunction plugin (fn, options = {}) {\n let autoName = false\n\n if (typeof fn.default !== 'undefined') {\n // Support for 'export default' behaviour in transpiled ECMAScript module\n fn = fn.default\n }\n\n if (typeof fn !== 'function') {\n throw new TypeError(\n `fastify-plugin expects a function, instead got a '${typeof fn}'`\n )\n }\n\n if (typeof options === 'string') {\n options = {\n fastify: options\n }\n }\n\n if (\n typeof options !== 'object' ||\n Array.isArray(options) ||\n options === null\n ) {\n throw new TypeError('The options object should be an object')\n }\n\n if (options.fastify !== undefined && typeof options.fastify !== 'string') {\n throw new TypeError(`fastify-plugin expects a version string, instead got '${typeof options.fastify}'`)\n }\n\n if (!options.name) {\n autoName = true\n options.name = getPluginName(fn) + '-auto-' + count++\n }\n\n fn[Symbol.for('skip-override')] = options.encapsulate !== true\n fn[Symbol.for('fastify.display-name')] = options.name\n fn[Symbol.for('plugin-meta')] = options\n\n // Faux modules support\n if (!fn.default) {\n fn.default = fn\n }\n\n // TypeScript support for named imports\n // See https://github.com/fastify/fastify/issues/2404 for more details\n // The type definitions would have to be update to match this.\n const camelCase = toCamelCase(options.name)\n if (!autoName && !fn[camelCase]) {\n fn[camelCase] = fn\n }\n\n return fn\n}\n\nmodule.exports = plugin\nmodule.exports.default = plugin\nmodule.exports.fastifyPlugin = plugin\n","export { logTideMiddleware } from './express.js';\nexport { logTideFastifyPlugin } from './fastify.js';\nexport type { ExpressMiddlewareOptions } from './express.js';\nexport type { FastifyMiddlewareOptions } from './fastify.js';\n","import type { Request, Response, NextFunction } from 'express';\nimport type { LogTideClient } from '../index.js';\n\nexport interface ExpressMiddlewareOptions {\n client: LogTideClient;\n serviceName: string;\n logRequests?: boolean;\n logResponses?: boolean;\n logErrors?: boolean;\n includeHeaders?: boolean;\n includeBody?: boolean;\n skipPaths?: string[];\n skipHealthCheck?: boolean;\n}\n\nexport function logTideMiddleware(options: ExpressMiddlewareOptions) {\n const {\n client,\n serviceName,\n logRequests = true,\n logResponses = true,\n logErrors = true,\n includeHeaders = false,\n includeBody = false,\n skipPaths = [],\n skipHealthCheck = true,\n } = options;\n\n return (req: Request, res: Response, next: NextFunction) => {\n // Skip paths\n if (skipHealthCheck && (req.path === '/health' || req.path === '/healthz')) {\n return next();\n }\n\n if (skipPaths.includes(req.path)) {\n return next();\n }\n\n const startTime = Date.now();\n const traceId = (req.headers['x-trace-id'] as string) || client.getTraceId();\n\n // Set trace ID in client context\n if (traceId) {\n client.setTraceId(traceId);\n }\n\n // Log incoming request\n if (logRequests) {\n const metadata: Record<string, unknown> = {\n method: req.method,\n path: req.path,\n query: req.query,\n ip: req.ip || req.socket.remoteAddress,\n userAgent: req.get('user-agent'),\n };\n\n if (includeHeaders) {\n metadata.headers = req.headers;\n }\n\n if (includeBody && req.body) {\n metadata.body = req.body;\n }\n\n client.info(serviceName, `${req.method} ${req.path}`, metadata);\n }\n\n // Capture original end function\n const originalEnd = res.end;\n\n // Override res.end to log response\n res.end = function (this: Response, chunk?: any, encoding?: any, callback?: any): Response {\n const duration = Date.now() - startTime;\n\n if (logResponses) {\n const level = res.statusCode >= 500 ? 'error' : res.statusCode >= 400 ? 'warn' : 'info';\n\n const metadata: Record<string, unknown> = {\n method: req.method,\n path: req.path,\n statusCode: res.statusCode,\n duration_ms: duration,\n };\n\n if (includeHeaders) {\n metadata.responseHeaders = res.getHeaders();\n }\n\n client.log({\n service: serviceName,\n level,\n message: `${req.method} ${req.path} ${res.statusCode} (${duration}ms)`,\n metadata,\n });\n }\n\n // Call original end\n if (typeof encoding === 'function') {\n return originalEnd.call(this, chunk, encoding) as Response;\n }\n return originalEnd.call(this, chunk, encoding, callback) as Response;\n };\n\n // Error handling\n const errorHandler = (error: Error) => {\n if (logErrors) {\n client.error(serviceName, `Request error: ${error.message}`, error);\n }\n };\n\n res.on('error', errorHandler);\n\n next();\n };\n}\n\nexport default logTideMiddleware;\n","import type { FastifyRequest, FastifyReply, FastifyPluginCallback } from 'fastify';\nimport type { LogTideClient } from '../index.js';\nimport fp from 'fastify-plugin';\n\nexport interface FastifyMiddlewareOptions {\n client: LogTideClient;\n serviceName: string;\n logRequests?: boolean;\n logResponses?: boolean;\n logErrors?: boolean;\n includeHeaders?: boolean;\n includeBody?: boolean;\n skipPaths?: string[];\n skipHealthCheck?: boolean;\n}\n\nconst logTidePlugin: FastifyPluginCallback<FastifyMiddlewareOptions> = (\n fastify,\n options,\n done,\n) => {\n const {\n client,\n serviceName,\n logRequests = true,\n logResponses = true,\n logErrors = true,\n includeHeaders = false,\n includeBody = false,\n skipPaths = [],\n skipHealthCheck = true,\n } = options;\n\n // Request hook - log incoming requests\n fastify.addHook('onRequest', async (request: FastifyRequest) => {\n // Skip paths\n if (skipHealthCheck && (request.url === '/health' || request.url === '/healthz')) {\n return;\n }\n\n if (skipPaths.includes(request.url)) {\n return;\n }\n\n // Extract trace ID from headers or use current context\n const traceId = (request.headers['x-trace-id'] as string) || client.getTraceId();\n\n if (traceId) {\n client.setTraceId(traceId);\n }\n\n // Store start time for duration calculation\n (request as any).startTime = Date.now();\n\n if (logRequests) {\n const metadata: Record<string, unknown> = {\n method: request.method,\n path: request.url,\n query: request.query,\n ip: request.ip,\n userAgent: request.headers['user-agent'],\n };\n\n if (includeHeaders) {\n metadata.headers = request.headers;\n }\n\n if (includeBody && request.body) {\n metadata.body = request.body;\n }\n\n client.info(serviceName, `${request.method} ${request.url}`, metadata);\n }\n });\n\n // Response hook - log responses\n fastify.addHook('onResponse', async (request: FastifyRequest, reply: FastifyReply) => {\n if (skipHealthCheck && (request.url === '/health' || request.url === '/healthz')) {\n return;\n }\n\n if (skipPaths.includes(request.url)) {\n return;\n }\n\n if (logResponses) {\n const startTime = (request as any).startTime || Date.now();\n const duration = Date.now() - startTime;\n\n const level = reply.statusCode >= 500 ? 'error' : reply.statusCode >= 400 ? 'warn' : 'info';\n\n const metadata: Record<string, unknown> = {\n method: request.method,\n path: request.url,\n statusCode: reply.statusCode,\n duration_ms: duration,\n };\n\n if (includeHeaders) {\n metadata.responseHeaders = reply.getHeaders();\n }\n\n client.log({\n service: serviceName,\n level,\n message: `${request.method} ${request.url} ${reply.statusCode} (${duration}ms)`,\n metadata,\n });\n }\n });\n\n // Error hook - log errors\n fastify.addHook('onError', async (_request: FastifyRequest, _reply: FastifyReply, error: Error) => {\n if (logErrors) {\n client.error(serviceName, `Request error: ${error.message}`, error);\n }\n });\n\n done();\n};\n\nexport const logTideFastifyPlugin = fp(logTidePlugin, {\n fastify: '4.x',\n name: '@logtide/fastify-plugin',\n});\n\nexport default logTideFastifyPlugin;\n"]}
1
+ {"version":3,"sources":["../../node_modules/tsup/assets/cjs_shims.js","../../node_modules/fastify-plugin/lib/getPluginName.js","../../node_modules/fastify-plugin/lib/toCamelCase.js","../../node_modules/fastify-plugin/plugin.js","../../src/middleware/index.ts","../../src/middleware/express.ts","../../src/middleware/fastify.ts"],"names":["exports","fp"],"mappings":"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","file":"index.cjs","sourcesContent":["// Shim globals in cjs bundle\n// There's a weird bug that esbuild will always inject importMetaUrl\n// if we export it as `const importMetaUrl = ... __filename ...`\n// But using a function will not cause this issue\n\nconst getImportMetaUrl = () => \n typeof document === \"undefined\" \n ? new URL(`file:${__filename}`).href \n : (document.currentScript && document.currentScript.tagName.toUpperCase() === 'SCRIPT') \n ? document.currentScript.src \n : new URL(\"main.js\", document.baseURI).href;\n\nexport const importMetaUrl = /* @__PURE__ */ getImportMetaUrl()\n","'use strict'\n\nconst fpStackTracePattern = /at\\s{1}(?:.*\\.)?plugin\\s{1}.*\\n\\s*(.*)/\nconst fileNamePattern = /(\\w*(\\.\\w*)*)\\..*/\n\nmodule.exports = function getPluginName (fn) {\n if (fn.name.length > 0) return fn.name\n\n const stackTraceLimit = Error.stackTraceLimit\n Error.stackTraceLimit = 10\n try {\n throw new Error('anonymous function')\n } catch (e) {\n Error.stackTraceLimit = stackTraceLimit\n return extractPluginName(e.stack)\n }\n}\n\nfunction extractPluginName (stack) {\n const m = stack.match(fpStackTracePattern)\n\n // get last section of path and match for filename\n return m ? m[1].split(/[/\\\\]/).slice(-1)[0].match(fileNamePattern)[1] : 'anonymous'\n}\nmodule.exports.extractPluginName = extractPluginName\n","'use strict'\n\nmodule.exports = function toCamelCase (name) {\n if (name[0] === '@') {\n name = name.slice(1).replace('/', '-')\n }\n const newName = name.replace(/-(.)/g, function (match, g1) {\n return g1.toUpperCase()\n })\n return newName\n}\n","'use strict'\n\nconst getPluginName = require('./lib/getPluginName')\nconst toCamelCase = require('./lib/toCamelCase')\n\nlet count = 0\n\nfunction plugin (fn, options = {}) {\n let autoName = false\n\n if (typeof fn.default !== 'undefined') {\n // Support for 'export default' behaviour in transpiled ECMAScript module\n fn = fn.default\n }\n\n if (typeof fn !== 'function') {\n throw new TypeError(\n `fastify-plugin expects a function, instead got a '${typeof fn}'`\n )\n }\n\n if (typeof options === 'string') {\n options = {\n fastify: options\n }\n }\n\n if (\n typeof options !== 'object' ||\n Array.isArray(options) ||\n options === null\n ) {\n throw new TypeError('The options object should be an object')\n }\n\n if (options.fastify !== undefined && typeof options.fastify !== 'string') {\n throw new TypeError(`fastify-plugin expects a version string, instead got '${typeof options.fastify}'`)\n }\n\n if (!options.name) {\n autoName = true\n options.name = getPluginName(fn) + '-auto-' + count++\n }\n\n fn[Symbol.for('skip-override')] = options.encapsulate !== true\n fn[Symbol.for('fastify.display-name')] = options.name\n fn[Symbol.for('plugin-meta')] = options\n\n // Faux modules support\n if (!fn.default) {\n fn.default = fn\n }\n\n // TypeScript support for named imports\n // See https://github.com/fastify/fastify/issues/2404 for more details\n // The type definitions would have to be update to match this.\n const camelCase = toCamelCase(options.name)\n if (!autoName && !fn[camelCase]) {\n fn[camelCase] = fn\n }\n\n return fn\n}\n\nmodule.exports = plugin\nmodule.exports.default = plugin\nmodule.exports.fastifyPlugin = plugin\n","export { logTideMiddleware } from './express.js';\nexport { logTideFastifyPlugin } from './fastify.js';\nexport type { ExpressMiddlewareOptions } from './express.js';\nexport type { FastifyMiddlewareOptions } from './fastify.js';\n","import type { Request, Response, NextFunction } from 'express';\nimport type { LogTideClient } from '../index.js';\n\nexport interface ExpressMiddlewareOptions {\n client: LogTideClient;\n serviceName: string;\n logRequests?: boolean;\n logResponses?: boolean;\n logErrors?: boolean;\n includeHeaders?: boolean;\n includeBody?: boolean;\n skipPaths?: string[];\n skipHealthCheck?: boolean;\n}\n\nexport function logTideMiddleware(options: ExpressMiddlewareOptions) {\n const {\n client,\n serviceName,\n logRequests = true,\n logResponses = true,\n logErrors = true,\n includeHeaders = false,\n includeBody = false,\n skipPaths = [],\n skipHealthCheck = true,\n } = options;\n\n return (req: Request, res: Response, next: NextFunction) => {\n // Skip paths\n if (skipHealthCheck && (req.path === '/health' || req.path === '/healthz')) {\n return next();\n }\n\n if (skipPaths.includes(req.path)) {\n return next();\n }\n\n const startTime = Date.now();\n const traceId = (req.headers['x-trace-id'] as string) || client.getTraceId();\n\n // Set trace ID in client context\n if (traceId) {\n client.setTraceId(traceId);\n }\n\n // Log incoming request\n if (logRequests) {\n const metadata: Record<string, unknown> = {\n method: req.method,\n path: req.path,\n query: req.query,\n ip: req.ip || req.socket.remoteAddress,\n userAgent: req.get('user-agent'),\n };\n\n if (includeHeaders) {\n metadata.headers = req.headers;\n }\n\n if (includeBody && req.body) {\n metadata.body = req.body;\n }\n\n client.info(serviceName, `${req.method} ${req.path}`, metadata);\n }\n\n // Capture original end function\n const originalEnd = res.end;\n\n // Override res.end to log response\n res.end = function (this: Response, chunk?: any, encoding?: any, callback?: any): Response {\n const duration = Date.now() - startTime;\n\n if (logResponses) {\n const level = res.statusCode >= 500 ? 'error' : res.statusCode >= 400 ? 'warn' : 'info';\n\n const metadata: Record<string, unknown> = {\n method: req.method,\n path: req.path,\n statusCode: res.statusCode,\n duration_ms: duration,\n };\n\n if (includeHeaders) {\n metadata.responseHeaders = res.getHeaders();\n }\n\n client.log({\n service: serviceName,\n level,\n message: `${req.method} ${req.path} ${res.statusCode} (${duration}ms)`,\n metadata,\n });\n }\n\n // Call original end\n if (typeof encoding === 'function') {\n return originalEnd.call(this, chunk, encoding) as Response;\n }\n return originalEnd.call(this, chunk, encoding, callback) as Response;\n };\n\n // Error handling\n const errorHandler = (error: Error) => {\n if (logErrors) {\n client.error(serviceName, `Request error: ${error.message}`, error);\n }\n };\n\n res.on('error', errorHandler);\n\n next();\n };\n}\n\nexport default logTideMiddleware;\n","import type { FastifyRequest, FastifyReply, FastifyPluginCallback } from 'fastify';\nimport type { LogTideClient } from '../index.js';\nimport fp from 'fastify-plugin';\n\nexport interface FastifyMiddlewareOptions {\n client: LogTideClient;\n serviceName: string;\n logRequests?: boolean;\n logResponses?: boolean;\n logErrors?: boolean;\n includeHeaders?: boolean;\n includeBody?: boolean;\n skipPaths?: string[];\n skipHealthCheck?: boolean;\n}\n\nconst logTidePlugin: FastifyPluginCallback<FastifyMiddlewareOptions> = (\n fastify,\n options,\n done,\n) => {\n const {\n client,\n serviceName,\n logRequests = true,\n logResponses = true,\n logErrors = true,\n includeHeaders = false,\n includeBody = false,\n skipPaths = [],\n skipHealthCheck = true,\n } = options;\n\n // Request hook - log incoming requests\n fastify.addHook('onRequest', async (request: FastifyRequest) => {\n // Skip paths\n if (skipHealthCheck && (request.url === '/health' || request.url === '/healthz')) {\n return;\n }\n\n if (skipPaths.includes(request.url)) {\n return;\n }\n\n // Extract trace ID from headers or use current context\n const traceId = (request.headers['x-trace-id'] as string) || client.getTraceId();\n\n if (traceId) {\n client.setTraceId(traceId);\n }\n\n // Store start time for duration calculation\n (request as any).startTime = Date.now();\n\n if (logRequests) {\n const metadata: Record<string, unknown> = {\n method: request.method,\n path: request.url,\n query: request.query,\n ip: request.ip,\n userAgent: request.headers['user-agent'],\n };\n\n if (includeHeaders) {\n metadata.headers = request.headers;\n }\n\n if (includeBody && request.body) {\n metadata.body = request.body;\n }\n\n client.info(serviceName, `${request.method} ${request.url}`, metadata);\n }\n });\n\n // Response hook - log responses\n fastify.addHook('onResponse', async (request: FastifyRequest, reply: FastifyReply) => {\n if (skipHealthCheck && (request.url === '/health' || request.url === '/healthz')) {\n return;\n }\n\n if (skipPaths.includes(request.url)) {\n return;\n }\n\n if (logResponses) {\n const startTime = (request as any).startTime || Date.now();\n const duration = Date.now() - startTime;\n\n const level = reply.statusCode >= 500 ? 'error' : reply.statusCode >= 400 ? 'warn' : 'info';\n\n const metadata: Record<string, unknown> = {\n method: request.method,\n path: request.url,\n statusCode: reply.statusCode,\n duration_ms: duration,\n };\n\n if (includeHeaders) {\n metadata.responseHeaders = reply.getHeaders();\n }\n\n client.log({\n service: serviceName,\n level,\n message: `${request.method} ${request.url} ${reply.statusCode} (${duration}ms)`,\n metadata,\n });\n }\n });\n\n // Error hook - log errors\n fastify.addHook('onError', async (_request: FastifyRequest, _reply: FastifyReply, error: Error) => {\n if (logErrors) {\n client.error(serviceName, `Request error: ${error.message}`, error);\n }\n });\n\n done();\n};\n\nexport const logTideFastifyPlugin = fp(logTidePlugin, {\n fastify: '4.x',\n name: '@logtide/fastify-plugin',\n});\n\nexport default logTideFastifyPlugin;\n"]}
@@ -107,9 +107,9 @@ var require_plugin = __commonJS({
107
107
  autoName = true;
108
108
  options.name = getPluginName(fn) + "-auto-" + count++;
109
109
  }
110
- fn[Symbol.for("skip-override")] = options.encapsulate !== true;
111
- fn[Symbol.for("fastify.display-name")] = options.name;
112
- fn[Symbol.for("plugin-meta")] = options;
110
+ fn[/* @__PURE__ */ Symbol.for("skip-override")] = options.encapsulate !== true;
111
+ fn[/* @__PURE__ */ Symbol.for("fastify.display-name")] = options.name;
112
+ fn[/* @__PURE__ */ Symbol.for("plugin-meta")] = options;
113
113
  if (!fn.default) {
114
114
  fn.default = fn;
115
115
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../node_modules/tsup/assets/esm_shims.js","../../node_modules/fastify-plugin/lib/getPluginName.js","../../node_modules/fastify-plugin/lib/toCamelCase.js","../../node_modules/fastify-plugin/plugin.js","../../src/middleware/index.ts","../../src/middleware/express.ts","../../src/middleware/fastify.ts"],"names":["exports","fp"],"mappings":"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","file":"index.js","sourcesContent":["// Shim globals in esm bundle\nimport path from 'node:path'\nimport { fileURLToPath } from 'node:url'\n\nconst getFilename = () => fileURLToPath(import.meta.url)\nconst getDirname = () => path.dirname(getFilename())\n\nexport const __dirname = /* @__PURE__ */ getDirname()\nexport const __filename = /* @__PURE__ */ getFilename()\n","'use strict'\n\nconst fpStackTracePattern = /at\\s{1}(?:.*\\.)?plugin\\s{1}.*\\n\\s*(.*)/\nconst fileNamePattern = /(\\w*(\\.\\w*)*)\\..*/\n\nmodule.exports = function getPluginName (fn) {\n if (fn.name.length > 0) return fn.name\n\n const stackTraceLimit = Error.stackTraceLimit\n Error.stackTraceLimit = 10\n try {\n throw new Error('anonymous function')\n } catch (e) {\n Error.stackTraceLimit = stackTraceLimit\n return extractPluginName(e.stack)\n }\n}\n\nfunction extractPluginName (stack) {\n const m = stack.match(fpStackTracePattern)\n\n // get last section of path and match for filename\n return m ? m[1].split(/[/\\\\]/).slice(-1)[0].match(fileNamePattern)[1] : 'anonymous'\n}\nmodule.exports.extractPluginName = extractPluginName\n","'use strict'\n\nmodule.exports = function toCamelCase (name) {\n if (name[0] === '@') {\n name = name.slice(1).replace('/', '-')\n }\n const newName = name.replace(/-(.)/g, function (match, g1) {\n return g1.toUpperCase()\n })\n return newName\n}\n","'use strict'\n\nconst getPluginName = require('./lib/getPluginName')\nconst toCamelCase = require('./lib/toCamelCase')\n\nlet count = 0\n\nfunction plugin (fn, options = {}) {\n let autoName = false\n\n if (typeof fn.default !== 'undefined') {\n // Support for 'export default' behaviour in transpiled ECMAScript module\n fn = fn.default\n }\n\n if (typeof fn !== 'function') {\n throw new TypeError(\n `fastify-plugin expects a function, instead got a '${typeof fn}'`\n )\n }\n\n if (typeof options === 'string') {\n options = {\n fastify: options\n }\n }\n\n if (\n typeof options !== 'object' ||\n Array.isArray(options) ||\n options === null\n ) {\n throw new TypeError('The options object should be an object')\n }\n\n if (options.fastify !== undefined && typeof options.fastify !== 'string') {\n throw new TypeError(`fastify-plugin expects a version string, instead got '${typeof options.fastify}'`)\n }\n\n if (!options.name) {\n autoName = true\n options.name = getPluginName(fn) + '-auto-' + count++\n }\n\n fn[Symbol.for('skip-override')] = options.encapsulate !== true\n fn[Symbol.for('fastify.display-name')] = options.name\n fn[Symbol.for('plugin-meta')] = options\n\n // Faux modules support\n if (!fn.default) {\n fn.default = fn\n }\n\n // TypeScript support for named imports\n // See https://github.com/fastify/fastify/issues/2404 for more details\n // The type definitions would have to be update to match this.\n const camelCase = toCamelCase(options.name)\n if (!autoName && !fn[camelCase]) {\n fn[camelCase] = fn\n }\n\n return fn\n}\n\nmodule.exports = plugin\nmodule.exports.default = plugin\nmodule.exports.fastifyPlugin = plugin\n","export { logTideMiddleware } from './express.js';\nexport { logTideFastifyPlugin } from './fastify.js';\nexport type { ExpressMiddlewareOptions } from './express.js';\nexport type { FastifyMiddlewareOptions } from './fastify.js';\n","import type { Request, Response, NextFunction } from 'express';\nimport type { LogTideClient } from '../index.js';\n\nexport interface ExpressMiddlewareOptions {\n client: LogTideClient;\n serviceName: string;\n logRequests?: boolean;\n logResponses?: boolean;\n logErrors?: boolean;\n includeHeaders?: boolean;\n includeBody?: boolean;\n skipPaths?: string[];\n skipHealthCheck?: boolean;\n}\n\nexport function logTideMiddleware(options: ExpressMiddlewareOptions) {\n const {\n client,\n serviceName,\n logRequests = true,\n logResponses = true,\n logErrors = true,\n includeHeaders = false,\n includeBody = false,\n skipPaths = [],\n skipHealthCheck = true,\n } = options;\n\n return (req: Request, res: Response, next: NextFunction) => {\n // Skip paths\n if (skipHealthCheck && (req.path === '/health' || req.path === '/healthz')) {\n return next();\n }\n\n if (skipPaths.includes(req.path)) {\n return next();\n }\n\n const startTime = Date.now();\n const traceId = (req.headers['x-trace-id'] as string) || client.getTraceId();\n\n // Set trace ID in client context\n if (traceId) {\n client.setTraceId(traceId);\n }\n\n // Log incoming request\n if (logRequests) {\n const metadata: Record<string, unknown> = {\n method: req.method,\n path: req.path,\n query: req.query,\n ip: req.ip || req.socket.remoteAddress,\n userAgent: req.get('user-agent'),\n };\n\n if (includeHeaders) {\n metadata.headers = req.headers;\n }\n\n if (includeBody && req.body) {\n metadata.body = req.body;\n }\n\n client.info(serviceName, `${req.method} ${req.path}`, metadata);\n }\n\n // Capture original end function\n const originalEnd = res.end;\n\n // Override res.end to log response\n res.end = function (this: Response, chunk?: any, encoding?: any, callback?: any): Response {\n const duration = Date.now() - startTime;\n\n if (logResponses) {\n const level = res.statusCode >= 500 ? 'error' : res.statusCode >= 400 ? 'warn' : 'info';\n\n const metadata: Record<string, unknown> = {\n method: req.method,\n path: req.path,\n statusCode: res.statusCode,\n duration_ms: duration,\n };\n\n if (includeHeaders) {\n metadata.responseHeaders = res.getHeaders();\n }\n\n client.log({\n service: serviceName,\n level,\n message: `${req.method} ${req.path} ${res.statusCode} (${duration}ms)`,\n metadata,\n });\n }\n\n // Call original end\n if (typeof encoding === 'function') {\n return originalEnd.call(this, chunk, encoding) as Response;\n }\n return originalEnd.call(this, chunk, encoding, callback) as Response;\n };\n\n // Error handling\n const errorHandler = (error: Error) => {\n if (logErrors) {\n client.error(serviceName, `Request error: ${error.message}`, error);\n }\n };\n\n res.on('error', errorHandler);\n\n next();\n };\n}\n\nexport default logTideMiddleware;\n","import type { FastifyRequest, FastifyReply, FastifyPluginCallback } from 'fastify';\nimport type { LogTideClient } from '../index.js';\nimport fp from 'fastify-plugin';\n\nexport interface FastifyMiddlewareOptions {\n client: LogTideClient;\n serviceName: string;\n logRequests?: boolean;\n logResponses?: boolean;\n logErrors?: boolean;\n includeHeaders?: boolean;\n includeBody?: boolean;\n skipPaths?: string[];\n skipHealthCheck?: boolean;\n}\n\nconst logTidePlugin: FastifyPluginCallback<FastifyMiddlewareOptions> = (\n fastify,\n options,\n done,\n) => {\n const {\n client,\n serviceName,\n logRequests = true,\n logResponses = true,\n logErrors = true,\n includeHeaders = false,\n includeBody = false,\n skipPaths = [],\n skipHealthCheck = true,\n } = options;\n\n // Request hook - log incoming requests\n fastify.addHook('onRequest', async (request: FastifyRequest) => {\n // Skip paths\n if (skipHealthCheck && (request.url === '/health' || request.url === '/healthz')) {\n return;\n }\n\n if (skipPaths.includes(request.url)) {\n return;\n }\n\n // Extract trace ID from headers or use current context\n const traceId = (request.headers['x-trace-id'] as string) || client.getTraceId();\n\n if (traceId) {\n client.setTraceId(traceId);\n }\n\n // Store start time for duration calculation\n (request as any).startTime = Date.now();\n\n if (logRequests) {\n const metadata: Record<string, unknown> = {\n method: request.method,\n path: request.url,\n query: request.query,\n ip: request.ip,\n userAgent: request.headers['user-agent'],\n };\n\n if (includeHeaders) {\n metadata.headers = request.headers;\n }\n\n if (includeBody && request.body) {\n metadata.body = request.body;\n }\n\n client.info(serviceName, `${request.method} ${request.url}`, metadata);\n }\n });\n\n // Response hook - log responses\n fastify.addHook('onResponse', async (request: FastifyRequest, reply: FastifyReply) => {\n if (skipHealthCheck && (request.url === '/health' || request.url === '/healthz')) {\n return;\n }\n\n if (skipPaths.includes(request.url)) {\n return;\n }\n\n if (logResponses) {\n const startTime = (request as any).startTime || Date.now();\n const duration = Date.now() - startTime;\n\n const level = reply.statusCode >= 500 ? 'error' : reply.statusCode >= 400 ? 'warn' : 'info';\n\n const metadata: Record<string, unknown> = {\n method: request.method,\n path: request.url,\n statusCode: reply.statusCode,\n duration_ms: duration,\n };\n\n if (includeHeaders) {\n metadata.responseHeaders = reply.getHeaders();\n }\n\n client.log({\n service: serviceName,\n level,\n message: `${request.method} ${request.url} ${reply.statusCode} (${duration}ms)`,\n metadata,\n });\n }\n });\n\n // Error hook - log errors\n fastify.addHook('onError', async (_request: FastifyRequest, _reply: FastifyReply, error: Error) => {\n if (logErrors) {\n client.error(serviceName, `Request error: ${error.message}`, error);\n }\n });\n\n done();\n};\n\nexport const logTideFastifyPlugin = fp(logTidePlugin, {\n fastify: '4.x',\n name: '@logtide/fastify-plugin',\n});\n\nexport default logTideFastifyPlugin;\n"]}
1
+ {"version":3,"sources":["../../node_modules/tsup/assets/esm_shims.js","../../node_modules/fastify-plugin/lib/getPluginName.js","../../node_modules/fastify-plugin/lib/toCamelCase.js","../../node_modules/fastify-plugin/plugin.js","../../src/middleware/index.ts","../../src/middleware/express.ts","../../src/middleware/fastify.ts"],"names":["exports","fp"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAA,cAAA,GAAA,KAAA,CAAA;AAAA,EAAA,uCAAA,GAAA;AAAA,EAAA;AAAA,CAAA,CAAA;;;ACAA,IAAA,qBAAA,GAAA,UAAA,CAAA;AAAA,EAAA,kDAAA,CAAAA,SAAA,EAAA,MAAA,EAAA;AAAA,IAAA,cAAA,EAAA;AAEA,IAAA,IAAM,mBAAA,GAAsB,wCAAA;AAC5B,IAAA,IAAM,eAAA,GAAkB,mBAAA;AAExB,IAAA,MAAA,CAAO,OAAA,GAAU,SAAS,aAAA,CAAe,EAAA,EAAI;AAC3C,MAAA,IAAI,EAAA,CAAG,IAAA,CAAK,MAAA,GAAS,CAAA,SAAU,EAAA,CAAG,IAAA;AAElC,MAAA,MAAM,kBAAkB,KAAA,CAAM,eAAA;AAC9B,MAAA,KAAA,CAAM,eAAA,GAAkB,EAAA;AACxB,MAAA,IAAI;AACF,QAAA,MAAM,IAAI,MAAM,oBAAoB,CAAA;AAAA,MACtC,SAAS,CAAA,EAAG;AACV,QAAA,KAAA,CAAM,eAAA,GAAkB,eAAA;AACxB,QAAA,OAAO,iBAAA,CAAkB,EAAE,KAAK,CAAA;AAAA,MAClC;AAAA,IACF,CAAA;AAEA,IAAA,SAAS,kBAAmB,KAAA,EAAO;AACjC,MAAA,MAAM,CAAA,GAAI,KAAA,CAAM,KAAA,CAAM,mBAAmB,CAAA;AAGzC,MAAA,OAAO,IAAI,CAAA,CAAE,CAAC,CAAA,CAAE,KAAA,CAAM,OAAO,CAAA,CAAE,KAAA,CAAM,EAAE,CAAA,CAAE,CAAC,CAAA,CAAE,KAAA,CAAM,eAAe,CAAA,CAAE,CAAC,CAAA,GAAI,WAAA;AAAA,IAC1E;AACA,IAAA,MAAA,CAAO,QAAQ,iBAAA,GAAoB,iBAAA;AAAA,EAAA;AAAA,CAAA,CAAA;;;ACxBnC,IAAA,mBAAA,GAAA,UAAA,CAAA;AAAA,EAAA,gDAAA,CAAAA,SAAA,EAAA,MAAA,EAAA;AAAA,IAAA,cAAA,EAAA;AAEA,IAAA,MAAA,CAAO,OAAA,GAAU,SAAS,WAAA,CAAa,IAAA,EAAM;AAC3C,MAAA,IAAI,IAAA,CAAK,CAAC,CAAA,KAAM,GAAA,EAAK;AACnB,QAAA,IAAA,GAAO,KAAK,KAAA,CAAM,CAAC,CAAA,CAAE,OAAA,CAAQ,KAAK,GAAG,CAAA;AAAA,MACvC;AACA,MAAA,MAAM,UAAU,IAAA,CAAK,OAAA,CAAQ,OAAA,EAAS,SAAU,OAAO,EAAA,EAAI;AACzD,QAAA,OAAO,GAAG,WAAA,EAAY;AAAA,MACxB,CAAC,CAAA;AACD,MAAA,OAAO,OAAA;AAAA,IACT,CAAA;AAAA,EAAA;AAAA,CAAA,CAAA;;;ACVA,IAAA,cAAA,GAAA,UAAA,CAAA;AAAA,EAAA,uCAAA,CAAAA,SAAA,EAAA,MAAA,EAAA;AAAA,IAAA,cAAA,EAAA;AAEA,IAAA,IAAM,aAAA,GAAgB,qBAAA,EAAA;AACtB,IAAA,IAAM,WAAA,GAAc,mBAAA,EAAA;AAEpB,IAAA,IAAI,KAAA,GAAQ,CAAA;AAEZ,IAAA,SAAS,MAAA,CAAQ,EAAA,EAAI,OAAA,GAAU,EAAC,EAAG;AACjC,MAAA,IAAI,QAAA,GAAW,KAAA;AAEf,MAAA,IAAI,OAAO,EAAA,CAAG,OAAA,KAAY,WAAA,EAAa;AAErC,QAAA,EAAA,GAAK,EAAA,CAAG,OAAA;AAAA,MACV;AAEA,MAAA,IAAI,OAAO,OAAO,UAAA,EAAY;AAC5B,QAAA,MAAM,IAAI,SAAA;AAAA,UACR,CAAA,kDAAA,EAAqD,OAAO,EAAE,CAAA,CAAA;AAAA,SAChE;AAAA,MACF;AAEA,MAAA,IAAI,OAAO,YAAY,QAAA,EAAU;AAC/B,QAAA,OAAA,GAAU;AAAA,UACR,OAAA,EAAS;AAAA,SACX;AAAA,MACF;AAEA,MAAA,IACE,OAAO,YAAY,QAAA,IACnB,KAAA,CAAM,QAAQ,OAAO,CAAA,IACrB,YAAY,IAAA,EACZ;AACA,QAAA,MAAM,IAAI,UAAU,wCAAwC,CAAA;AAAA,MAC9D;AAEA,MAAA,IAAI,QAAQ,OAAA,KAAY,MAAA,IAAa,OAAO,OAAA,CAAQ,YAAY,QAAA,EAAU;AACxE,QAAA,MAAM,IAAI,SAAA,CAAU,CAAA,sDAAA,EAAyD,OAAO,OAAA,CAAQ,OAAO,CAAA,CAAA,CAAG,CAAA;AAAA,MACxG;AAEA,MAAA,IAAI,CAAC,QAAQ,IAAA,EAAM;AACjB,QAAA,QAAA,GAAW,IAAA;AACX,QAAA,OAAA,CAAQ,IAAA,GAAO,aAAA,CAAc,EAAE,CAAA,GAAI,QAAA,GAAW,KAAA,EAAA;AAAA,MAChD;AAEA,MAAA,EAAA,wBAAU,GAAA,CAAI,eAAe,CAAC,CAAA,GAAI,QAAQ,WAAA,KAAgB,IAAA;AAC1D,MAAA,EAAA,iBAAG,MAAA,CAAO,GAAA,CAAI,sBAAsB,CAAC,IAAI,OAAA,CAAQ,IAAA;AACjD,MAAA,EAAA,iBAAG,MAAA,CAAO,GAAA,CAAI,aAAa,CAAC,CAAA,GAAI,OAAA;AAGhC,MAAA,IAAI,CAAC,GAAG,OAAA,EAAS;AACf,QAAA,EAAA,CAAG,OAAA,GAAU,EAAA;AAAA,MACf;AAKA,MAAA,MAAM,SAAA,GAAY,WAAA,CAAY,OAAA,CAAQ,IAAI,CAAA;AAC1C,MAAA,IAAI,CAAC,QAAA,IAAY,CAAC,EAAA,CAAG,SAAS,CAAA,EAAG;AAC/B,QAAA,EAAA,CAAG,SAAS,CAAA,GAAI,EAAA;AAAA,MAClB;AAEA,MAAA,OAAO,EAAA;AAAA,IACT;AAEA,IAAA,MAAA,CAAO,OAAA,GAAU,MAAA;AACjB,IAAA,MAAA,CAAO,QAAQ,OAAA,GAAU,MAAA;AACzB,IAAA,MAAA,CAAO,QAAQ,aAAA,GAAgB,MAAA;AAAA,EAAA;AAAA,CAAA,CAAA;;;AClE/B,cAAA,EAAA;;;ACAA,cAAA,EAAA;AAeO,SAAS,kBAAkB,OAAA,EAAmC;AACnE,EAAA,MAAM;AAAA,IACJ,MAAA;AAAA,IACA,WAAA;AAAA,IACA,WAAA,GAAc,IAAA;AAAA,IACd,YAAA,GAAe,IAAA;AAAA,IACf,SAAA,GAAY,IAAA;AAAA,IACZ,cAAA,GAAiB,KAAA;AAAA,IACjB,WAAA,GAAc,KAAA;AAAA,IACd,YAAY,EAAC;AAAA,IACb,eAAA,GAAkB;AAAA,GACpB,GAAI,OAAA;AAEJ,EAAA,OAAO,CAAC,GAAA,EAAc,GAAA,EAAe,IAAA,KAAuB;AAE1D,IAAA,IAAI,oBAAoB,GAAA,CAAI,IAAA,KAAS,SAAA,IAAa,GAAA,CAAI,SAAS,UAAA,CAAA,EAAa;AAC1E,MAAA,OAAO,IAAA,EAAK;AAAA,IACd;AAEA,IAAA,IAAI,SAAA,CAAU,QAAA,CAAS,GAAA,CAAI,IAAI,CAAA,EAAG;AAChC,MAAA,OAAO,IAAA,EAAK;AAAA,IACd;AAEA,IAAA,MAAM,SAAA,GAAY,KAAK,GAAA,EAAI;AAC3B,IAAA,MAAM,UAAW,GAAA,CAAI,OAAA,CAAQ,YAAY,CAAA,IAAgB,OAAO,UAAA,EAAW;AAG3E,IAAA,IAAI,OAAA,EAAS;AACX,MAAA,MAAA,CAAO,WAAW,OAAO,CAAA;AAAA,IAC3B;AAGA,IAAA,IAAI,WAAA,EAAa;AACf,MAAA,MAAM,QAAA,GAAoC;AAAA,QACxC,QAAQ,GAAA,CAAI,MAAA;AAAA,QACZ,MAAM,GAAA,CAAI,IAAA;AAAA,QACV,OAAO,GAAA,CAAI,KAAA;AAAA,QACX,EAAA,EAAI,GAAA,CAAI,EAAA,IAAM,GAAA,CAAI,MAAA,CAAO,aAAA;AAAA,QACzB,SAAA,EAAW,GAAA,CAAI,GAAA,CAAI,YAAY;AAAA,OACjC;AAEA,MAAA,IAAI,cAAA,EAAgB;AAClB,QAAA,QAAA,CAAS,UAAU,GAAA,CAAI,OAAA;AAAA,MACzB;AAEA,MAAA,IAAI,WAAA,IAAe,IAAI,IAAA,EAAM;AAC3B,QAAA,QAAA,CAAS,OAAO,GAAA,CAAI,IAAA;AAAA,MACtB;AAEA,MAAA,MAAA,CAAO,IAAA,CAAK,aAAa,CAAA,EAAG,GAAA,CAAI,MAAM,CAAA,CAAA,EAAI,GAAA,CAAI,IAAI,CAAA,CAAA,EAAI,QAAQ,CAAA;AAAA,IAChE;AAGA,IAAA,MAAM,cAAc,GAAA,CAAI,GAAA;AAGxB,IAAA,GAAA,CAAI,GAAA,GAAM,SAA0B,KAAA,EAAa,QAAA,EAAgB,QAAA,EAA0B;AACzF,MAAA,MAAM,QAAA,GAAW,IAAA,CAAK,GAAA,EAAI,GAAI,SAAA;AAE9B,MAAA,IAAI,YAAA,EAAc;AAChB,QAAA,MAAM,KAAA,GAAQ,IAAI,UAAA,IAAc,GAAA,GAAM,UAAU,GAAA,CAAI,UAAA,IAAc,MAAM,MAAA,GAAS,MAAA;AAEjF,QAAA,MAAM,QAAA,GAAoC;AAAA,UACxC,QAAQ,GAAA,CAAI,MAAA;AAAA,UACZ,MAAM,GAAA,CAAI,IAAA;AAAA,UACV,YAAY,GAAA,CAAI,UAAA;AAAA,UAChB,WAAA,EAAa;AAAA,SACf;AAEA,QAAA,IAAI,cAAA,EAAgB;AAClB,UAAA,QAAA,CAAS,eAAA,GAAkB,IAAI,UAAA,EAAW;AAAA,QAC5C;AAEA,QAAA,MAAA,CAAO,GAAA,CAAI;AAAA,UACT,OAAA,EAAS,WAAA;AAAA,UACT,KAAA;AAAA,UACA,OAAA,EAAS,CAAA,EAAG,GAAA,CAAI,MAAM,CAAA,CAAA,EAAI,GAAA,CAAI,IAAI,CAAA,CAAA,EAAI,GAAA,CAAI,UAAU,CAAA,EAAA,EAAK,QAAQ,CAAA,GAAA,CAAA;AAAA,UACjE;AAAA,SACD,CAAA;AAAA,MACH;AAGA,MAAA,IAAI,OAAO,aAAa,UAAA,EAAY;AAClC,QAAA,OAAO,WAAA,CAAY,IAAA,CAAK,IAAA,EAAM,KAAA,EAAO,QAAQ,CAAA;AAAA,MAC/C;AACA,MAAA,OAAO,WAAA,CAAY,IAAA,CAAK,IAAA,EAAM,KAAA,EAAO,UAAU,QAAQ,CAAA;AAAA,IACzD,CAAA;AAGA,IAAA,MAAM,YAAA,GAAe,CAAC,KAAA,KAAiB;AACrC,MAAA,IAAI,SAAA,EAAW;AACb,QAAA,MAAA,CAAO,MAAM,WAAA,EAAa,CAAA,eAAA,EAAkB,KAAA,CAAM,OAAO,IAAI,KAAK,CAAA;AAAA,MACpE;AAAA,IACF,CAAA;AAEA,IAAA,GAAA,CAAI,EAAA,CAAG,SAAS,YAAY,CAAA;AAE5B,IAAA,IAAA,EAAK;AAAA,EACP,CAAA;AACF;;;AClHA,cAAA,EAAA;AAEA,IAAA,qBAAA,GAAe,OAAA,CAAA,cAAA,EAAA,CAAA;AAcf,IAAM,aAAA,GAAiE,CACrE,OAAA,EACA,OAAA,EACA,IAAA,KACG;AACH,EAAA,MAAM;AAAA,IACJ,MAAA;AAAA,IACA,WAAA;AAAA,IACA,WAAA,GAAc,IAAA;AAAA,IACd,YAAA,GAAe,IAAA;AAAA,IACf,SAAA,GAAY,IAAA;AAAA,IACZ,cAAA,GAAiB,KAAA;AAAA,IACjB,WAAA,GAAc,KAAA;AAAA,IACd,YAAY,EAAC;AAAA,IACb,eAAA,GAAkB;AAAA,GACpB,GAAI,OAAA;AAGJ,EAAA,OAAA,CAAQ,OAAA,CAAQ,WAAA,EAAa,OAAO,OAAA,KAA4B;AAE9D,IAAA,IAAI,oBAAoB,OAAA,CAAQ,GAAA,KAAQ,SAAA,IAAa,OAAA,CAAQ,QAAQ,UAAA,CAAA,EAAa;AAChF,MAAA;AAAA,IACF;AAEA,IAAA,IAAI,SAAA,CAAU,QAAA,CAAS,OAAA,CAAQ,GAAG,CAAA,EAAG;AACnC,MAAA;AAAA,IACF;AAGA,IAAA,MAAM,UAAW,OAAA,CAAQ,OAAA,CAAQ,YAAY,CAAA,IAAgB,OAAO,UAAA,EAAW;AAE/E,IAAA,IAAI,OAAA,EAAS;AACX,MAAA,MAAA,CAAO,WAAW,OAAO,CAAA;AAAA,IAC3B;AAGA,IAAC,OAAA,CAAgB,SAAA,GAAY,IAAA,CAAK,GAAA,EAAI;AAEtC,IAAA,IAAI,WAAA,EAAa;AACf,MAAA,MAAM,QAAA,GAAoC;AAAA,QACxC,QAAQ,OAAA,CAAQ,MAAA;AAAA,QAChB,MAAM,OAAA,CAAQ,GAAA;AAAA,QACd,OAAO,OAAA,CAAQ,KAAA;AAAA,QACf,IAAI,OAAA,CAAQ,EAAA;AAAA,QACZ,SAAA,EAAW,OAAA,CAAQ,OAAA,CAAQ,YAAY;AAAA,OACzC;AAEA,MAAA,IAAI,cAAA,EAAgB;AAClB,QAAA,QAAA,CAAS,UAAU,OAAA,CAAQ,OAAA;AAAA,MAC7B;AAEA,MAAA,IAAI,WAAA,IAAe,QAAQ,IAAA,EAAM;AAC/B,QAAA,QAAA,CAAS,OAAO,OAAA,CAAQ,IAAA;AAAA,MAC1B;AAEA,MAAA,MAAA,CAAO,IAAA,CAAK,aAAa,CAAA,EAAG,OAAA,CAAQ,MAAM,CAAA,CAAA,EAAI,OAAA,CAAQ,GAAG,CAAA,CAAA,EAAI,QAAQ,CAAA;AAAA,IACvE;AAAA,EACF,CAAC,CAAA;AAGD,EAAA,OAAA,CAAQ,OAAA,CAAQ,YAAA,EAAc,OAAO,OAAA,EAAyB,KAAA,KAAwB;AACpF,IAAA,IAAI,oBAAoB,OAAA,CAAQ,GAAA,KAAQ,SAAA,IAAa,OAAA,CAAQ,QAAQ,UAAA,CAAA,EAAa;AAChF,MAAA;AAAA,IACF;AAEA,IAAA,IAAI,SAAA,CAAU,QAAA,CAAS,OAAA,CAAQ,GAAG,CAAA,EAAG;AACnC,MAAA;AAAA,IACF;AAEA,IAAA,IAAI,YAAA,EAAc;AAChB,MAAA,MAAM,SAAA,GAAa,OAAA,CAAgB,SAAA,IAAa,IAAA,CAAK,GAAA,EAAI;AACzD,MAAA,MAAM,QAAA,GAAW,IAAA,CAAK,GAAA,EAAI,GAAI,SAAA;AAE9B,MAAA,MAAM,KAAA,GAAQ,MAAM,UAAA,IAAc,GAAA,GAAM,UAAU,KAAA,CAAM,UAAA,IAAc,MAAM,MAAA,GAAS,MAAA;AAErF,MAAA,MAAM,QAAA,GAAoC;AAAA,QACxC,QAAQ,OAAA,CAAQ,MAAA;AAAA,QAChB,MAAM,OAAA,CAAQ,GAAA;AAAA,QACd,YAAY,KAAA,CAAM,UAAA;AAAA,QAClB,WAAA,EAAa;AAAA,OACf;AAEA,MAAA,IAAI,cAAA,EAAgB;AAClB,QAAA,QAAA,CAAS,eAAA,GAAkB,MAAM,UAAA,EAAW;AAAA,MAC9C;AAEA,MAAA,MAAA,CAAO,GAAA,CAAI;AAAA,QACT,OAAA,EAAS,WAAA;AAAA,QACT,KAAA;AAAA,QACA,OAAA,EAAS,CAAA,EAAG,OAAA,CAAQ,MAAM,CAAA,CAAA,EAAI,OAAA,CAAQ,GAAG,CAAA,CAAA,EAAI,KAAA,CAAM,UAAU,CAAA,EAAA,EAAK,QAAQ,CAAA,GAAA,CAAA;AAAA,QAC1E;AAAA,OACD,CAAA;AAAA,IACH;AAAA,EACF,CAAC,CAAA;AAGD,EAAA,OAAA,CAAQ,OAAA,CAAQ,SAAA,EAAW,OAAO,QAAA,EAA0B,QAAsB,KAAA,KAAiB;AACjG,IAAA,IAAI,SAAA,EAAW;AACb,MAAA,MAAA,CAAO,MAAM,WAAA,EAAa,CAAA,eAAA,EAAkB,KAAA,CAAM,OAAO,IAAI,KAAK,CAAA;AAAA,IACpE;AAAA,EACF,CAAC,CAAA;AAED,EAAA,IAAA,EAAK;AACP,CAAA;AAEO,IAAM,oBAAA,GAAA,IAAuB,qBAAA,CAAAC,OAAAA,EAAG,aAAA,EAAe;AAAA,EACpD,OAAA,EAAS,KAAA;AAAA,EACT,IAAA,EAAM;AACR,CAAC","file":"index.js","sourcesContent":["// Shim globals in esm bundle\nimport path from 'node:path'\nimport { fileURLToPath } from 'node:url'\n\nconst getFilename = () => fileURLToPath(import.meta.url)\nconst getDirname = () => path.dirname(getFilename())\n\nexport const __dirname = /* @__PURE__ */ getDirname()\nexport const __filename = /* @__PURE__ */ getFilename()\n","'use strict'\n\nconst fpStackTracePattern = /at\\s{1}(?:.*\\.)?plugin\\s{1}.*\\n\\s*(.*)/\nconst fileNamePattern = /(\\w*(\\.\\w*)*)\\..*/\n\nmodule.exports = function getPluginName (fn) {\n if (fn.name.length > 0) return fn.name\n\n const stackTraceLimit = Error.stackTraceLimit\n Error.stackTraceLimit = 10\n try {\n throw new Error('anonymous function')\n } catch (e) {\n Error.stackTraceLimit = stackTraceLimit\n return extractPluginName(e.stack)\n }\n}\n\nfunction extractPluginName (stack) {\n const m = stack.match(fpStackTracePattern)\n\n // get last section of path and match for filename\n return m ? m[1].split(/[/\\\\]/).slice(-1)[0].match(fileNamePattern)[1] : 'anonymous'\n}\nmodule.exports.extractPluginName = extractPluginName\n","'use strict'\n\nmodule.exports = function toCamelCase (name) {\n if (name[0] === '@') {\n name = name.slice(1).replace('/', '-')\n }\n const newName = name.replace(/-(.)/g, function (match, g1) {\n return g1.toUpperCase()\n })\n return newName\n}\n","'use strict'\n\nconst getPluginName = require('./lib/getPluginName')\nconst toCamelCase = require('./lib/toCamelCase')\n\nlet count = 0\n\nfunction plugin (fn, options = {}) {\n let autoName = false\n\n if (typeof fn.default !== 'undefined') {\n // Support for 'export default' behaviour in transpiled ECMAScript module\n fn = fn.default\n }\n\n if (typeof fn !== 'function') {\n throw new TypeError(\n `fastify-plugin expects a function, instead got a '${typeof fn}'`\n )\n }\n\n if (typeof options === 'string') {\n options = {\n fastify: options\n }\n }\n\n if (\n typeof options !== 'object' ||\n Array.isArray(options) ||\n options === null\n ) {\n throw new TypeError('The options object should be an object')\n }\n\n if (options.fastify !== undefined && typeof options.fastify !== 'string') {\n throw new TypeError(`fastify-plugin expects a version string, instead got '${typeof options.fastify}'`)\n }\n\n if (!options.name) {\n autoName = true\n options.name = getPluginName(fn) + '-auto-' + count++\n }\n\n fn[Symbol.for('skip-override')] = options.encapsulate !== true\n fn[Symbol.for('fastify.display-name')] = options.name\n fn[Symbol.for('plugin-meta')] = options\n\n // Faux modules support\n if (!fn.default) {\n fn.default = fn\n }\n\n // TypeScript support for named imports\n // See https://github.com/fastify/fastify/issues/2404 for more details\n // The type definitions would have to be update to match this.\n const camelCase = toCamelCase(options.name)\n if (!autoName && !fn[camelCase]) {\n fn[camelCase] = fn\n }\n\n return fn\n}\n\nmodule.exports = plugin\nmodule.exports.default = plugin\nmodule.exports.fastifyPlugin = plugin\n","export { logTideMiddleware } from './express.js';\nexport { logTideFastifyPlugin } from './fastify.js';\nexport type { ExpressMiddlewareOptions } from './express.js';\nexport type { FastifyMiddlewareOptions } from './fastify.js';\n","import type { Request, Response, NextFunction } from 'express';\nimport type { LogTideClient } from '../index.js';\n\nexport interface ExpressMiddlewareOptions {\n client: LogTideClient;\n serviceName: string;\n logRequests?: boolean;\n logResponses?: boolean;\n logErrors?: boolean;\n includeHeaders?: boolean;\n includeBody?: boolean;\n skipPaths?: string[];\n skipHealthCheck?: boolean;\n}\n\nexport function logTideMiddleware(options: ExpressMiddlewareOptions) {\n const {\n client,\n serviceName,\n logRequests = true,\n logResponses = true,\n logErrors = true,\n includeHeaders = false,\n includeBody = false,\n skipPaths = [],\n skipHealthCheck = true,\n } = options;\n\n return (req: Request, res: Response, next: NextFunction) => {\n // Skip paths\n if (skipHealthCheck && (req.path === '/health' || req.path === '/healthz')) {\n return next();\n }\n\n if (skipPaths.includes(req.path)) {\n return next();\n }\n\n const startTime = Date.now();\n const traceId = (req.headers['x-trace-id'] as string) || client.getTraceId();\n\n // Set trace ID in client context\n if (traceId) {\n client.setTraceId(traceId);\n }\n\n // Log incoming request\n if (logRequests) {\n const metadata: Record<string, unknown> = {\n method: req.method,\n path: req.path,\n query: req.query,\n ip: req.ip || req.socket.remoteAddress,\n userAgent: req.get('user-agent'),\n };\n\n if (includeHeaders) {\n metadata.headers = req.headers;\n }\n\n if (includeBody && req.body) {\n metadata.body = req.body;\n }\n\n client.info(serviceName, `${req.method} ${req.path}`, metadata);\n }\n\n // Capture original end function\n const originalEnd = res.end;\n\n // Override res.end to log response\n res.end = function (this: Response, chunk?: any, encoding?: any, callback?: any): Response {\n const duration = Date.now() - startTime;\n\n if (logResponses) {\n const level = res.statusCode >= 500 ? 'error' : res.statusCode >= 400 ? 'warn' : 'info';\n\n const metadata: Record<string, unknown> = {\n method: req.method,\n path: req.path,\n statusCode: res.statusCode,\n duration_ms: duration,\n };\n\n if (includeHeaders) {\n metadata.responseHeaders = res.getHeaders();\n }\n\n client.log({\n service: serviceName,\n level,\n message: `${req.method} ${req.path} ${res.statusCode} (${duration}ms)`,\n metadata,\n });\n }\n\n // Call original end\n if (typeof encoding === 'function') {\n return originalEnd.call(this, chunk, encoding) as Response;\n }\n return originalEnd.call(this, chunk, encoding, callback) as Response;\n };\n\n // Error handling\n const errorHandler = (error: Error) => {\n if (logErrors) {\n client.error(serviceName, `Request error: ${error.message}`, error);\n }\n };\n\n res.on('error', errorHandler);\n\n next();\n };\n}\n\nexport default logTideMiddleware;\n","import type { FastifyRequest, FastifyReply, FastifyPluginCallback } from 'fastify';\nimport type { LogTideClient } from '../index.js';\nimport fp from 'fastify-plugin';\n\nexport interface FastifyMiddlewareOptions {\n client: LogTideClient;\n serviceName: string;\n logRequests?: boolean;\n logResponses?: boolean;\n logErrors?: boolean;\n includeHeaders?: boolean;\n includeBody?: boolean;\n skipPaths?: string[];\n skipHealthCheck?: boolean;\n}\n\nconst logTidePlugin: FastifyPluginCallback<FastifyMiddlewareOptions> = (\n fastify,\n options,\n done,\n) => {\n const {\n client,\n serviceName,\n logRequests = true,\n logResponses = true,\n logErrors = true,\n includeHeaders = false,\n includeBody = false,\n skipPaths = [],\n skipHealthCheck = true,\n } = options;\n\n // Request hook - log incoming requests\n fastify.addHook('onRequest', async (request: FastifyRequest) => {\n // Skip paths\n if (skipHealthCheck && (request.url === '/health' || request.url === '/healthz')) {\n return;\n }\n\n if (skipPaths.includes(request.url)) {\n return;\n }\n\n // Extract trace ID from headers or use current context\n const traceId = (request.headers['x-trace-id'] as string) || client.getTraceId();\n\n if (traceId) {\n client.setTraceId(traceId);\n }\n\n // Store start time for duration calculation\n (request as any).startTime = Date.now();\n\n if (logRequests) {\n const metadata: Record<string, unknown> = {\n method: request.method,\n path: request.url,\n query: request.query,\n ip: request.ip,\n userAgent: request.headers['user-agent'],\n };\n\n if (includeHeaders) {\n metadata.headers = request.headers;\n }\n\n if (includeBody && request.body) {\n metadata.body = request.body;\n }\n\n client.info(serviceName, `${request.method} ${request.url}`, metadata);\n }\n });\n\n // Response hook - log responses\n fastify.addHook('onResponse', async (request: FastifyRequest, reply: FastifyReply) => {\n if (skipHealthCheck && (request.url === '/health' || request.url === '/healthz')) {\n return;\n }\n\n if (skipPaths.includes(request.url)) {\n return;\n }\n\n if (logResponses) {\n const startTime = (request as any).startTime || Date.now();\n const duration = Date.now() - startTime;\n\n const level = reply.statusCode >= 500 ? 'error' : reply.statusCode >= 400 ? 'warn' : 'info';\n\n const metadata: Record<string, unknown> = {\n method: request.method,\n path: request.url,\n statusCode: reply.statusCode,\n duration_ms: duration,\n };\n\n if (includeHeaders) {\n metadata.responseHeaders = reply.getHeaders();\n }\n\n client.log({\n service: serviceName,\n level,\n message: `${request.method} ${request.url} ${reply.statusCode} (${duration}ms)`,\n metadata,\n });\n }\n });\n\n // Error hook - log errors\n fastify.addHook('onError', async (_request: FastifyRequest, _reply: FastifyReply, error: Error) => {\n if (logErrors) {\n client.error(serviceName, `Request error: ${error.message}`, error);\n }\n });\n\n done();\n};\n\nexport const logTideFastifyPlugin = fp(logTidePlugin, {\n fastify: '4.x',\n name: '@logtide/fastify-plugin',\n});\n\nexport default logTideFastifyPlugin;\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@logtide/sdk-node",
3
- "version": "0.2.3",
3
+ "version": "0.2.4",
4
4
  "description": "Official Node.js SDK for LogTide (logtide.dev) - Self-hosted log management with advanced features: retry logic, circuit breaker, query API, live streaming, and middleware support",
5
5
  "type": "module",
6
6
  "main": "./dist/index.cjs",
@@ -73,7 +73,7 @@
73
73
  "@types/express": "^4.17.21",
74
74
  "@types/node": "^20.14.15",
75
75
  "express": "^5.1.0",
76
- "fastify": "^5.6.2",
76
+ "fastify": "^5.7.2",
77
77
  "fastify-plugin": "^4.5.1",
78
78
  "tsup": "^8.5.1",
79
79
  "typescript": "^5.5.4",
@@ -93,5 +93,9 @@
93
93
  },
94
94
  "engines": {
95
95
  "node": ">=20.0.0"
96
+ },
97
+ "overrides": {
98
+ "qs": ">=6.14.1",
99
+ "esbuild": ">=0.25.0"
96
100
  }
97
101
  }