@lensmcp/node-instrumentation 1.24.1 → 1.24.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.
- package/lib/emit.d.ts +2 -0
- package/lib/emit.js +2 -2
- package/lib/tap-stdout.js +4 -3
- package/package.json +4 -4
package/lib/emit.d.ts
CHANGED
package/lib/emit.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
"use strict";var
|
|
2
|
-
`;return maybeRotateEventFile(exports.EVENT_FILE,
|
|
1
|
+
"use strict";var x=Object.defineProperty;var i=(e,r)=>x(e,"name",{value:r,configurable:!0});var d=Object.defineProperty,c=i((e,r)=>d(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.lensEmitOutcome=lensEmitOutcome,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,BUS_CAPS=(0,bus_rotation_1.busCapsFromEnv)();exports.EVENT_MAX_BYTES=BUS_CAPS.maxBytes,exports.EVENT_MAX_FILES=BUS_CAPS.maxFiles;const rotators=new Map,BUS_FS={statSync,renameSync,unlinkSync,openSync,closeSync};function maybeRotateEventFile(e,r,s){if(s!==void 0){const n=s.maxBytes??exports.EVENT_MAX_BYTES,t=s.maxFiles??exports.EVENT_MAX_FILES;(0,bus_rotation_1.createBusRotator)(e,{maxBytes:n,maxFiles:t,fs:BUS_FS,checkEveryBytes:0})(r);return}let o=rotators.get(e);o||(o=(0,bus_rotation_1.createBusRotator)(e,{maxBytes:exports.EVENT_MAX_BYTES,maxFiles:exports.EVENT_MAX_FILES,fs:BUS_FS}),rotators.set(e,o)),o(r)}i(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}i(isLensWriting,"isLensWriting"),c(isLensWriting,"isLensWriting");function lensEmit(e,r,s,o,n,t,a="cluster"){return lensEmitOutcome(e,r,s,o,n,t,a)==="written"}i(lensEmit,"lensEmit"),c(lensEmit,"lensEmit");function lensEmitOutcome(e,r,s,o,n,t,a="cluster",u=emitGuard){try{writing=!0;const E=n??`${e}:${String(o.name??e)}`,p=u.admit(E);if(!p.ok)return"suppressed";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:a,severity:r,context:{sessionId:"pending",projectName:exports.PROJECT,...t?.flowId?{flowId:t.flowId}:{},...t?.requestId?{requestId:t.requestId}:{},...t?.originNodeId?{originNodeId:t.originNodeId}:{}},fingerprint:E,title:s,raw:{project:exports.PROJECT,...o,...p.suppressed>0?{floodSuppressed:p.suppressed}:{}}})+`
|
|
2
|
+
`;return maybeRotateEventFile(exports.EVENT_FILE,l.length),appendFileSync(exports.EVENT_FILE,l),"written"}catch{return"failed"}finally{writing=!1}}i(lensEmitOutcome,"lensEmitOutcome"),c(lensEmitOutcome,"lensEmitOutcome");function lensLog(e,r,s){try{writing=!0;const o=e==="error"||e==="fatal"?`log:error:${exports.PROJECT}`:`log:${exports.PROJECT}`,n=logGuard.admit(o);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)(),a=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:o,title:r,raw:{project:exports.PROJECT,kind:"log",...s?.stack?{request:{error:{message:r,stack:s.stack}}}:{},...s?.text?{text:s.text}:{},...s?.continues?{continues:!0}:{},...n.suppressed>0?{floodSuppressed:n.suppressed}:{}}})+`
|
|
3
3
|
`;maybeRotateEventFile(exports.EVENT_FILE,a.length),appendFileSync(exports.EVENT_FILE,a)}catch{}finally{writing=!1}}i(lensLog,"lensLog"),c(lensLog,"lensLog");
|
package/lib/tap-stdout.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
-
"use strict";var
|
|
2
|
-
`).map(r=>r.replace(ANSI,"").replace(/\s+$/,""));let s=0;for(;s<
|
|
3
|
-
`)}:
|
|
1
|
+
"use strict";var E=Object.defineProperty;var u=(t,e)=>E(t,"name",{value:e,configurable:!0});var R=Object.defineProperty,c=u((t,e)=>R(t,"name",{value:e,configurable:!0}),"c");Object.defineProperty(exports,"__esModule",{value:!0}),exports.tapStdout=tapStdout;const emit_1=require("./emit"),ANSI=new RegExp("\x1B\\[[0-9;]*m","g");function severityOf(t,e){return/\bFATAL\b/.test(t)?"fatal":/\bERROR\b/.test(t)?"error":/\bWARN\b/.test(t)?"warning":/\bDEBUG\b/.test(t)||/\bVERBOSE\b/.test(t)?"debug":/\bLOG\b/.test(t)?"info":e}u(severityOf,"severityOf"),c(severityOf,"severityOf");const STACK_FRAME=/^\s+(at\s|\.\.\.\s\d+\smore)/,CONTINUATION=/^(\s+\S|[}\])]+[,;]?$)/,CONTINUES_WITHIN_MS=1e3;function emitChunk(t,e,p,f){const o=t.split(`
|
|
2
|
+
`).map(r=>r.replace(ANSI,"").replace(/\s+$/,""));let s=0,n=p;for(;s<o.length;){const r=o[s];if(s+=1,!r.trim())continue;const i=[];for(;s<o.length&&o[s].trim()&&CONTINUATION.test(o[s]);)i.push(o[s]),s+=1;const a=[r,...i].filter(m=>STACK_FRAME.test(m)),l=CONTINUATION.test(r)&&n&&f-n.at<=CONTINUES_WITHIN_MS?n.severity:void 0,b=severityOf(r,e),O=b!==e||/\b(?:FATAL|ERROR|WARN|DEBUG|VERBOSE|LOG)\b/.test(r),g=l??(O?b:a.length>0?"error":e),d=[r,...i];(0,emit_1.lensLog)(g,l?r.trim():r,{...a.length>0?{stack:d.join(`
|
|
3
|
+
`)}:{},...i.length>0&&a.length<i.length?{text:d.join(`
|
|
4
|
+
`)}:{},...l?{continues:!0}:{}}),n={severity:g,at:f}}return n}u(emitChunk,"emitChunk"),c(emitChunk,"emitChunk");function tapStdout(){if(process.env.LENSMCP_LOGS==="0"||process.env.APP_RUNNER!=="1")return;const t=[[process.stdout,"info"],[process.stderr,"error"]];for(const[e,p]of t){if(e.write.__lensmcp)continue;const f=e.write.bind(e);let o;const s=c(function(n,...r){try{if(!(0,emit_1.isLensWriting)()){const i=typeof n=="string"?n:Buffer.isBuffer(n)?n.toString("utf8"):"";i&&i.indexOf("[lensmcp]")===-1&&(o=emitChunk(i,p,o,Date.now()))}}catch{}return f(n,...r)},"wrapped");s.__lensmcp=!0,e.write=s}}u(tapStdout,"tapStdout"),c(tapStdout,"tapStdout");
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lensmcp/node-instrumentation",
|
|
3
|
-
"version": "1.24.
|
|
3
|
+
"version": "1.24.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.24.
|
|
19
|
-
"@lensmcp/nest-instrumentation": "1.24.
|
|
20
|
-
"@lensmcp/protocol-types": "1.24.
|
|
18
|
+
"@lensmcp/core": "1.24.3",
|
|
19
|
+
"@lensmcp/nest-instrumentation": "1.24.3",
|
|
20
|
+
"@lensmcp/protocol-types": "1.24.3",
|
|
21
21
|
"tslib": "^2.3.0"
|
|
22
22
|
},
|
|
23
23
|
"optionalDependencies": {
|