@lensmcp/node-instrumentation 1.23.1 → 1.23.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/lib/emit.js +3 -3
  2. package/package.json +4 -4
package/lib/emit.js CHANGED
@@ -1,3 +1,3 @@
1
- "use strict";var u=Object.defineProperty;var E=(e,s)=>u(e,"name",{value:s,configurable:!0});var a=Object.defineProperty,c=E((e,s)=>a(e,"name",{value:s,configurable:!0}),"c");Object.defineProperty(exports,"__esModule",{value:!0}),exports.EVENT_FILE=exports.PROJECT=exports.EVENT_MAX_FILES=exports.EVENT_MAX_BYTES=void 0,exports.maybeRotateEventFile=maybeRotateEventFile,exports.isLensWriting=isLensWriting,exports.lensEmit=lensEmit,exports.lensLog=lensLog;const tslib_1=require("tslib"),nodeFs=tslib_1.__importStar(require("node:fs")),node_path_1=require("node:path"),flood_guard_1=require("./flood-guard"),flow_context_1=require("./flow-context"),appendFileSync=nodeFs.appendFileSync,mkdirSync=nodeFs.mkdirSync,statSync=nodeFs.statSync,renameSync=nodeFs.renameSync,unlinkSync=nodeFs.unlinkSync;exports.EVENT_MAX_BYTES=(()=>{const e=Number(process.env.LENSMCP_EVENT_MAX_BYTES);return Number.isFinite(e)&&e>0?e:50*1024*1024})(),exports.EVENT_MAX_FILES=(()=>{const e=Number(process.env.LENSMCP_EVENT_MAX_FILES);return Number.isFinite(e)&&e>=1&&e<=20?Math.floor(e):5})();const ROTATE_CHECK_BYTES=1024*1024,bytesSinceCheck=new Map;function maybeRotateEventFile(e,s,o){const n=(bytesSinceCheck.get(e)??0)+s;if(n<ROTATE_CHECK_BYTES&&o===void 0){bytesSinceCheck.set(e,n);return}const i=o?.maxBytes??exports.EVENT_MAX_BYTES,t=o?.maxFiles??exports.EVENT_MAX_FILES;try{const r=statSync(e).size;if(bytesSinceCheck.set(e,0),r<=i)return}catch{bytesSinceCheck.set(e,n);return}try{unlinkSync(`${e}.${t}`)}catch{}for(let r=t-1;r>=1;r--)try{renameSync(`${e}.${r}`,`${e}.${r+1}`)}catch{}try{renameSync(e,`${e}.1`)}catch{}}E(maybeRotateEventFile,"maybeRotateEventFile"),c(maybeRotateEventFile,"maybeRotateEventFile"),exports.PROJECT=process.env.LENSMCP_PROJECT||process.env.SERVICE_NAME||"app",exports.EVENT_FILE=process.env.LENSMCP_EVENT_FILE||`${process.cwd()}/.lensmcp/events.jsonl`;let writing=!1,dirReady=!1;const emitGuard=(0,flood_guard_1.createEventFloodGuard)({burst:30,perSec:5}),logGuard=(0,flood_guard_1.createEventFloodGuard)({burst:120,perSec:20});function isLensWriting(){return writing}E(isLensWriting,"isLensWriting"),c(isLensWriting,"isLensWriting");function lensEmit(e,s,o,n,i,t,r="cluster"){try{writing=!0;const d=i??`${e}:${String(n.name??e)}`,p=emitGuard.admit(d);if(!p.ok)return;dirReady||(mkdirSync((0,node_path_1.dirname)(exports.EVENT_FILE),{recursive:!0}),dirReady=!0);const l=JSON.stringify({id:Date.now().toString(36)+Math.random().toString(36).slice(2,10),sessionId:"pending",timestamp:Date.now(),source:e,category:r,severity:s,context:{sessionId:"pending",projectName:exports.PROJECT,...t?.flowId?{flowId:t.flowId}:{},...t?.requestId?{requestId:t.requestId}:{},...t?.originNodeId?{originNodeId:t.originNodeId}:{}},fingerprint:d,title:o,raw:{project:exports.PROJECT,...n,...p.suppressed>0?{floodSuppressed:p.suppressed}:{}}})+`
2
- `;maybeRotateEventFile(exports.EVENT_FILE,l.length),appendFileSync(exports.EVENT_FILE,l)}catch{}finally{writing=!1}}E(lensEmit,"lensEmit"),c(lensEmit,"lensEmit");function lensLog(e,s,o){try{writing=!0;const n=e==="error"||e==="fatal"?`log:error:${exports.PROJECT}`:`log:${exports.PROJECT}`,i=logGuard.admit(n);if(!i.ok)return;dirReady||(mkdirSync((0,node_path_1.dirname)(exports.EVENT_FILE),{recursive:!0}),dirReady=!0);const t=(0,flow_context_1.flowContext)(),r=JSON.stringify({id:Date.now().toString(36)+Math.random().toString(36).slice(2,10),sessionId:"pending",timestamp:Date.now(),source:"nestjs",category:"runtime",severity:e,context:{sessionId:"pending",projectName:exports.PROJECT,...t?.flowId?{flowId:t.flowId}:{},...t?.requestId?{requestId:t.requestId}:{}},fingerprint:n,title:s,raw:{project:exports.PROJECT,kind:"log",...o?.stack?{request:{error:{message:s,stack:o.stack}}}:{},...i.suppressed>0?{floodSuppressed:i.suppressed}:{}}})+`
3
- `;maybeRotateEventFile(exports.EVENT_FILE,r.length),appendFileSync(exports.EVENT_FILE,r)}catch{}finally{writing=!1}}E(lensLog,"lensLog"),c(lensLog,"lensLog");
1
+ "use strict";var u=Object.defineProperty;var E=(e,r)=>u(e,"name",{value:r,configurable:!0});var a=Object.defineProperty,c=E((e,r)=>a(e,"name",{value:r,configurable:!0}),"c");Object.defineProperty(exports,"__esModule",{value:!0}),exports.EVENT_FILE=exports.PROJECT=exports.EVENT_MAX_FILES=exports.EVENT_MAX_BYTES=void 0,exports.maybeRotateEventFile=maybeRotateEventFile,exports.isLensWriting=isLensWriting,exports.lensEmit=lensEmit,exports.lensLog=lensLog;const tslib_1=require("tslib"),nodeFs=tslib_1.__importStar(require("node:fs")),node_path_1=require("node:path"),bus_rotation_1=require("@lensmcp/core/bus-rotation"),flood_guard_1=require("./flood-guard"),flow_context_1=require("./flow-context"),appendFileSync=nodeFs.appendFileSync,mkdirSync=nodeFs.mkdirSync,statSync=nodeFs.statSync,renameSync=nodeFs.renameSync,unlinkSync=nodeFs.unlinkSync,openSync=nodeFs.openSync,closeSync=nodeFs.closeSync;exports.EVENT_MAX_BYTES=(()=>{const e=Number(process.env.LENSMCP_EVENT_MAX_BYTES);return Number.isFinite(e)&&e>0?e:50*1024*1024})(),exports.EVENT_MAX_FILES=(()=>{const e=Number(process.env.LENSMCP_EVENT_MAX_FILES);return Number.isFinite(e)&&e>=1&&e<=20?Math.floor(e):5})();const ROTATE_CHECK_BYTES=1024*1024,bytesSinceCheck=new Map;function maybeRotateEventFile(e,r,o){const s=(bytesSinceCheck.get(e)??0)+r;if(s<ROTATE_CHECK_BYTES&&o===void 0){bytesSinceCheck.set(e,s);return}const n=o?.maxBytes??exports.EVENT_MAX_BYTES,t=o?.maxFiles??exports.EVENT_MAX_FILES;try{const i=statSync(e).size;if(bytesSinceCheck.set(e,0),i<=n)return}catch{bytesSinceCheck.set(e,s);return}(0,bus_rotation_1.rotateBusFile)(e,{maxBytes:n,maxFiles:t,fs:{statSync,renameSync,unlinkSync,openSync,closeSync}})}E(maybeRotateEventFile,"maybeRotateEventFile"),c(maybeRotateEventFile,"maybeRotateEventFile"),exports.PROJECT=process.env.LENSMCP_PROJECT||process.env.SERVICE_NAME||"app",exports.EVENT_FILE=process.env.LENSMCP_EVENT_FILE||`${process.cwd()}/.lensmcp/events.jsonl`;let writing=!1,dirReady=!1;const emitGuard=(0,flood_guard_1.createEventFloodGuard)({burst:30,perSec:5}),logGuard=(0,flood_guard_1.createEventFloodGuard)({burst:120,perSec:20});function isLensWriting(){return writing}E(isLensWriting,"isLensWriting"),c(isLensWriting,"isLensWriting");function lensEmit(e,r,o,s,n,t,i="cluster"){try{writing=!0;const d=n??`${e}:${String(s.name??e)}`,p=emitGuard.admit(d);if(!p.ok)return;dirReady||(mkdirSync((0,node_path_1.dirname)(exports.EVENT_FILE),{recursive:!0}),dirReady=!0);const l=JSON.stringify({id:Date.now().toString(36)+Math.random().toString(36).slice(2,10),sessionId:"pending",timestamp:Date.now(),source:e,category:i,severity:r,context:{sessionId:"pending",projectName:exports.PROJECT,...t?.flowId?{flowId:t.flowId}:{},...t?.requestId?{requestId:t.requestId}:{},...t?.originNodeId?{originNodeId:t.originNodeId}:{}},fingerprint:d,title:o,raw:{project:exports.PROJECT,...s,...p.suppressed>0?{floodSuppressed:p.suppressed}:{}}})+`
2
+ `;maybeRotateEventFile(exports.EVENT_FILE,l.length),appendFileSync(exports.EVENT_FILE,l)}catch{}finally{writing=!1}}E(lensEmit,"lensEmit"),c(lensEmit,"lensEmit");function lensLog(e,r,o){try{writing=!0;const s=e==="error"||e==="fatal"?`log:error:${exports.PROJECT}`:`log:${exports.PROJECT}`,n=logGuard.admit(s);if(!n.ok)return;dirReady||(mkdirSync((0,node_path_1.dirname)(exports.EVENT_FILE),{recursive:!0}),dirReady=!0);const t=(0,flow_context_1.flowContext)(),i=JSON.stringify({id:Date.now().toString(36)+Math.random().toString(36).slice(2,10),sessionId:"pending",timestamp:Date.now(),source:"nestjs",category:"runtime",severity:e,context:{sessionId:"pending",projectName:exports.PROJECT,...t?.flowId?{flowId:t.flowId}:{},...t?.requestId?{requestId:t.requestId}:{}},fingerprint:s,title:r,raw:{project:exports.PROJECT,kind:"log",...o?.stack?{request:{error:{message:r,stack:o.stack}}}:{},...n.suppressed>0?{floodSuppressed:n.suppressed}:{}}})+`
3
+ `;maybeRotateEventFile(exports.EVENT_FILE,i.length),appendFileSync(exports.EVENT_FILE,i)}catch{}finally{writing=!1}}E(lensLog,"lensLog"),c(lensLog,"lensLog");
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lensmcp/node-instrumentation",
3
- "version": "1.23.1",
3
+ "version": "1.23.3",
4
4
  "main": "./index.js",
5
5
  "types": "./index.d.ts",
6
6
  "exports": {
@@ -15,9 +15,9 @@
15
15
  }
16
16
  },
17
17
  "dependencies": {
18
- "@lensmcp/core": "1.23.1",
19
- "@lensmcp/nest-instrumentation": "1.23.1",
20
- "@lensmcp/protocol-types": "1.23.1",
18
+ "@lensmcp/core": "1.23.3",
19
+ "@lensmcp/nest-instrumentation": "1.23.3",
20
+ "@lensmcp/protocol-types": "1.23.3",
21
21
  "tslib": "^2.3.0"
22
22
  },
23
23
  "optionalDependencies": {